summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortusooa <tusooa@kazv.moe>2023-03-02 00:50:02 +0000
committertusooa <tusooa@kazv.moe>2023-03-02 00:50:02 +0000
commitfd46f83d2daca51055633875671e5fa41e454ca4 (patch)
treeea2c9dd75a806fbfd2e916fbf64fafaaee73774d
parentf76c1d4f70fdda6da621a46fb75891e68e266946 (diff)
parent938e238ea10f2e56316650892ad6ba1dd46b3ea5 (diff)
Merge branch 'release/2.5.1' into 'stable'v2.5.1
release: 2.5.1 See merge request pleroma/pleroma!3841
-rw-r--r--CHANGELOG.md18
-rw-r--r--Dockerfile8
-rw-r--r--config/description.exs9
-rw-r--r--lib/pleroma/application.ex3
-rw-r--r--lib/pleroma/notification.ex3
-rw-r--r--lib/pleroma/upload/filter/exiftool/read_description.ex5
-rw-r--r--lib/pleroma/upload/filter/exiftool/strip_location.ex1
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex11
-rw-r--r--lib/pleroma/web/admin_api/report.ex2
-rw-r--r--lib/pleroma/web/mastodon_api/views/instance_view.ex2
-rw-r--r--lib/pleroma/web/rel_me.ex18
-rw-r--r--mix.exs10
-rw-r--r--mix.lock8
-rw-r--r--priv/static/index.html2
-rw-r--r--priv/static/static/css/1264.177d0bf6917b317388ae.css11
-rw-r--r--priv/static/static/css/1264.177d0bf6917b317388ae.css.map1
-rw-r--r--priv/static/static/css/1325.715a7f40cdd53f460ef4.css2
-rw-r--r--priv/static/static/css/1325.715a7f40cdd53f460ef4.css.map1
-rw-r--r--priv/static/static/css/159.1d523a00378ebd68c5b3.css (renamed from priv/static/static/css/8532.88b90ac86f3060a3144e.css)2
-rw-r--r--priv/static/static/css/159.1d523a00378ebd68c5b3.css.map1
-rw-r--r--priv/static/static/css/5948.06d2a0d84620cba6a4fb.css2
-rw-r--r--priv/static/static/css/5948.06d2a0d84620cba6a4fb.css.map1
-rw-r--r--priv/static/static/css/6464.169260b661120cc50815.css (renamed from priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css)4
-rw-r--r--priv/static/static/css/6464.169260b661120cc50815.css.map1
-rw-r--r--priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css.map1
-rw-r--r--priv/static/static/css/8532.88b90ac86f3060a3144e.css.map1
-rw-r--r--priv/static/static/css/9114.8def3b2b7fe70b3b3712.css11
-rw-r--r--priv/static/static/css/9114.8def3b2b7fe70b3b3712.css.map1
-rw-r--r--priv/static/static/css/app.48e52505beba5b9ab69b.css2
-rw-r--r--priv/static/static/css/app.48e52505beba5b9ab69b.css.map1
-rw-r--r--priv/static/static/css/app.86977512e08af1f17d78.css2
-rw-r--r--priv/static/static/css/app.86977512e08af1f17d78.css.map1
-rw-r--r--priv/static/static/js/1264.1e16af28a0b44d4d17d0.js2
-rw-r--r--priv/static/static/js/1264.1e16af28a0b44d4d17d0.js.map1
-rw-r--r--priv/static/static/js/1325.d1e5fcff4166acac7f06.js2
-rw-r--r--priv/static/static/js/159.3a9274574f1e33801c4a.js2
-rw-r--r--priv/static/static/js/159.3a9274574f1e33801c4a.js.map1
-rw-r--r--priv/static/static/js/2677.45ff400a54f2f4c858f2.js3
-rw-r--r--priv/static/static/js/2677.45ff400a54f2f4c858f2.js.map1
-rw-r--r--priv/static/static/js/2724.e4840c73281069ba54ab.js3
-rw-r--r--priv/static/static/js/2724.e4840c73281069ba54ab.js.LICENSE.txt (renamed from priv/static/static/js/9169.335214f6ab57538eae0b.js.LICENSE.txt)6
-rw-r--r--priv/static/static/js/2724.e4840c73281069ba54ab.js.map1
-rw-r--r--priv/static/static/js/48.d7e479b200a6c89c4958.js3
-rw-r--r--priv/static/static/js/48.d7e479b200a6c89c4958.js.LICENSE.txt (renamed from priv/static/static/js/2677.45ff400a54f2f4c858f2.js.LICENSE.txt)0
-rw-r--r--priv/static/static/js/48.d7e479b200a6c89c4958.js.map1
-rw-r--r--priv/static/static/js/5948.2b7b4e97487f2539eb44.js2
-rw-r--r--priv/static/static/js/5948.2b7b4e97487f2539eb44.js.map (renamed from priv/static/static/js/1325.d1e5fcff4166acac7f06.js.map)2
-rw-r--r--priv/static/static/js/6464.fea96fa80a7373e4e5f8.js (renamed from priv/static/static/js/6464.2ababce187697ee8b1e9.js)4
-rw-r--r--priv/static/static/js/6464.fea96fa80a7373e4e5f8.js.map (renamed from priv/static/static/js/6464.2ababce187697ee8b1e9.js.map)2
-rw-r--r--priv/static/static/js/8532.290194af65a2e3a4120e.js2
-rw-r--r--priv/static/static/js/8532.290194af65a2e3a4120e.js.map1
-rw-r--r--priv/static/static/js/9114.e761a1c6846fea99aaf1.js2
-rw-r--r--priv/static/static/js/9114.e761a1c6846fea99aaf1.js.map1
-rw-r--r--priv/static/static/js/9169.335214f6ab57538eae0b.js3
-rw-r--r--priv/static/static/js/9169.335214f6ab57538eae0b.js.map1
-rw-r--r--priv/static/static/js/app.4c23e08cf351a54f4177.js2
-rw-r--r--priv/static/static/js/app.4c23e08cf351a54f4177.js.map1
-rw-r--r--priv/static/static/js/app.8d2126d35dba9482db51.js2
-rw-r--r--priv/static/static/js/app.8d2126d35dba9482db51.js.map1
-rw-r--r--priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js2
-rw-r--r--priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js.map1
-rw-r--r--priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js2
-rw-r--r--priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js.map1
-rw-r--r--priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js2
-rw-r--r--priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js.map1
-rw-r--r--priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js2
-rw-r--r--priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js.map1
-rw-r--r--priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js2
-rw-r--r--priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js.map1
-rw-r--r--priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js2
-rw-r--r--priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js.map1
-rw-r--r--priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js2
-rw-r--r--priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js.map1
-rw-r--r--priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js2
-rw-r--r--priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js.map1
-rw-r--r--priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js2
-rw-r--r--priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js.map1
-rw-r--r--priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js2
-rw-r--r--priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js.map1
-rw-r--r--priv/static/sw-pleroma.js4
-rw-r--r--priv/static/sw-pleroma.js.LICENSE.txt2
-rw-r--r--priv/static/sw-pleroma.js.map2
-rw-r--r--test/fixtures/image_with_imagedescription_and_caption-abstract_and_stray_data_after.pngbin0 -> 820 bytes
-rwxr-xr-xtest/fixtures/image_with_stray_data_after.pngbin0 -> 104435 bytes
-rw-r--r--test/pleroma/notification_test.exs53
-rw-r--r--test/pleroma/upload/filter/exiftool/read_description_test.exs27
-rw-r--r--test/pleroma/upload/filter/exiftool/strip_location_test.exs21
-rw-r--r--test/pleroma/web/activity_pub/activity_pub_test.exs8
-rw-r--r--test/pleroma/web/admin_api/controllers/report_controller_test.exs28
-rw-r--r--test/pleroma/web/common_api/utils_test.exs4
-rw-r--r--test/pleroma/web/common_api_test.exs19
-rw-r--r--test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs14
-rw-r--r--test/pleroma/web/mastodon_api/controllers/media_controller_test.exs17
-rw-r--r--test/pleroma/web/mastodon_api/update_credentials_test.exs28
94 files changed, 346 insertions, 109 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18da66e8b..6a7ec1032 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Removed
+## 2.5.1
+
+### Added
+- Allow customizing instance languages
+
+### Fixed
+- Security: uploading HTTP endpoint can no longer create directories in the upload dir (internal APIs, like backup, still can do it.)
+- ~ character in urls in Markdown posts are handled properly
+- Exiftool upload filter will now ignore SVG files
+- Fix `block_from_stranger` setting
+- Fix rel="me"
+- Docker images will now run properly
+- Fix inproper content being cached in report content
+- Notification filter on object content will not operate on the ones that inherently have no content
+- ZWNJ and double dots in links are parsed properly for Plain-text posts
+- OTP releases will work on systems with a newer libcrypt
+- Errors when running Exiftool.ReadDescription filter will not be filled into the image description
+
## 2.5.0 - 2022-12-23
### Removed
diff --git a/Dockerfile b/Dockerfile
index 64f955b78..8c3ff3ac5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,8 @@
-FROM elixir:1.11.4-alpine as build
+ARG ELIXIR_VER=1.11.4
+ARG ERLANG_VER=24.2.1
+ARG ALPINE_VER=3.17.0
+
+FROM hexpm/elixir:${ELIXIR_VER}-erlang-${ERLANG_VER}-alpine-${ALPINE_VER} as build
COPY . .
@@ -12,7 +16,7 @@ RUN apk add git gcc g++ musl-dev make cmake file-dev &&\
mkdir release &&\
mix release --path release
-FROM alpine
+FROM alpine:${ALPINE_VER}
ARG BUILD_DATE
ARG VCS_REF
diff --git a/config/description.exs b/config/description.exs
index bf4734426..78dc8770d 100644
--- a/config/description.exs
+++ b/config/description.exs
@@ -1052,6 +1052,15 @@ config :pleroma, :config_description, [
description:
"Minimum required age (in days) for users to create account. Only used if birthday is required.",
suggestions: [6570]
+ },
+ %{
+ key: :languages,
+ type: {:list, :string},
+ description:
+ "Languages to be exposed in /api/v1/instance. Should be in the format of BCP47 language codes.",
+ suggestions: [
+ "en"
+ ]
}
]
},
diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex
index 1c1db8c10..e68a3c57e 100644
--- a/lib/pleroma/application.ex
+++ b/lib/pleroma/application.ex
@@ -209,7 +209,8 @@ defmodule Pleroma.Application do
build_cachex("chat_message_id_idempotency_key",
expiration: chat_message_id_idempotency_key_expiration(),
limit: 500_000
- )
+ ),
+ build_cachex("rel_me", limit: 2500)
]
end
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex
index aba6096bc..48d467c59 100644
--- a/lib/pleroma/notification.ex
+++ b/lib/pleroma/notification.ex
@@ -178,6 +178,7 @@ defmodule Pleroma.Notification do
from([_n, a, o] in query,
where:
fragment("not(?->>'content' ~* ?)", o.data, ^regex) or
+ fragment("?->>'content' is null", o.data) or
fragment("?->>'actor' = ?", o.data, ^user.ap_id)
)
end
@@ -679,7 +680,7 @@ defmodule Pleroma.Notification do
cond do
opts[:type] == "poll" -> false
user.ap_id == actor -> false
- !User.following?(follower, user) -> true
+ !User.following?(user, follower) -> true
true -> false
end
end
diff --git a/lib/pleroma/upload/filter/exiftool/read_description.ex b/lib/pleroma/upload/filter/exiftool/read_description.ex
index 03d698a81..543b22031 100644
--- a/lib/pleroma/upload/filter/exiftool/read_description.ex
+++ b/lib/pleroma/upload/filter/exiftool/read_description.ex
@@ -33,7 +33,10 @@ defmodule Pleroma.Upload.Filter.Exiftool.ReadDescription do
defp read_when_empty(_, file, tag) do
try do
{tag_content, 0} =
- System.cmd("exiftool", ["-b", "-s3", tag, file], stderr_to_stdout: true, parallelism: true)
+ System.cmd("exiftool", ["-b", "-s3", tag, file],
+ stderr_to_stdout: false,
+ parallelism: true
+ )
tag_content = String.trim(tag_content)
diff --git a/lib/pleroma/upload/filter/exiftool/strip_location.ex b/lib/pleroma/upload/filter/exiftool/strip_location.ex
index 6100527d3..f2bcc4622 100644
--- a/lib/pleroma/upload/filter/exiftool/strip_location.ex
+++ b/lib/pleroma/upload/filter/exiftool/strip_location.ex
@@ -14,6 +14,7 @@ defmodule Pleroma.Upload.Filter.Exiftool.StripLocation do
# Formats not compatible with exiftool at this time
def filter(%Pleroma.Upload{content_type: "image/heic"}), do: {:ok, :noop}
def filter(%Pleroma.Upload{content_type: "image/webp"}), do: {:ok, :noop}
+ def filter(%Pleroma.Upload{content_type: "image/svg" <> _}), do: {:ok, :noop}
def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do
try do
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index b9206b4da..1ab2db94a 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -1453,13 +1453,22 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
@spec upload(Upload.source(), keyword()) :: {:ok, Object.t()} | {:error, any()}
def upload(file, opts \\ []) do
- with {:ok, data} <- Upload.store(file, opts) do
+ with {:ok, data} <- Upload.store(sanitize_upload_file(file), opts) do
obj_data = Maps.put_if_present(data, "actor", opts[:actor])
Repo.insert(%Object{data: obj_data})
end
end
+ defp sanitize_upload_file(%Plug.Upload{filename: filename} = upload) when is_binary(filename) do
+ %Plug.Upload{
+ upload
+ | filename: Path.basename(filename)
+ }
+ end
+
+ defp sanitize_upload_file(upload), do: upload
+
@spec get_actor_url(any()) :: binary() | nil
defp get_actor_url(url) when is_binary(url), do: url
defp get_actor_url(%{"href" => href}) when is_binary(href), do: href
diff --git a/lib/pleroma/web/admin_api/report.ex b/lib/pleroma/web/admin_api/report.ex
index c79bee27e..fa89e3405 100644
--- a/lib/pleroma/web/admin_api/report.ex
+++ b/lib/pleroma/web/admin_api/report.ex
@@ -31,7 +31,7 @@ defmodule Pleroma.Web.AdminAPI.Report do
defp make_fake_activity(act, user) do
%Activity{
- id: "pleroma:fake",
+ id: "pleroma:fake:#{act["id"]}",
data: %{
"actor" => user.ap_id,
"type" => "Create",
diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex
index 917725839..abf7f29ab 100644
--- a/lib/pleroma/web/mastodon_api/views/instance_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex
@@ -27,7 +27,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do
thumbnail:
URI.merge(Pleroma.Web.Endpoint.url(), Keyword.get(instance, :instance_thumbnail))
|> to_string,
- languages: ["en"],
+ languages: Keyword.get(instance, :languages, ["en"]),
registrations: Keyword.get(instance, :registrations_open),
approval_required: Keyword.get(instance, :account_approval_required),
# Extra (not present in Mastodon):
diff --git a/lib/pleroma/web/rel_me.ex b/lib/pleroma/web/rel_me.ex
index 98fbc1c59..ceb6a05f0 100644
--- a/lib/pleroma/web/rel_me.ex
+++ b/lib/pleroma/web/rel_me.ex
@@ -9,17 +9,13 @@ defmodule Pleroma.Web.RelMe do
recv_timeout: 2_000
]
- if Pleroma.Config.get(:env) == :test do
- def parse(url) when is_binary(url), do: parse_url(url)
- else
- @cachex Pleroma.Config.get([:cachex, :provider], Cachex)
- def parse(url) when is_binary(url) do
- @cachex.fetch!(:rel_me_cache, url, fn _ ->
- {:commit, parse_url(url)}
- end)
- rescue
- e -> {:error, "Cachex error: #{inspect(e)}"}
- end
+ @cachex Pleroma.Config.get([:cachex, :provider], Cachex)
+ def parse(url) when is_binary(url) do
+ @cachex.fetch!(:rel_me_cache, url, fn _ ->
+ {:commit, parse_url(url)}
+ end)
+ rescue
+ e -> {:error, "Cachex error: #{inspect(e)}"}
end
def parse(_), do: {:error, "No URL provided"}
diff --git a/mix.exs b/mix.exs
index 151513639..ab0be4deb 100644
--- a/mix.exs
+++ b/mix.exs
@@ -4,7 +4,7 @@ defmodule Pleroma.Mixfile do
def project do
[
app: :pleroma,
- version: version("2.5.0"),
+ version: version("2.5.1"),
elixir: "~> 1.11",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:phoenix, :gettext] ++ Mix.compilers(),
@@ -148,11 +148,9 @@ defmodule Pleroma.Mixfile do
{:ex_aws, "~> 2.1.6"},
{:ex_aws_s3, "~> 2.0"},
{:sweet_xml, "~> 0.7.2"},
- {:earmark, "~> 1.4.15"},
+ {:earmark, "~> 1.4.22"},
{:bbcode_pleroma, "~> 0.2.0"},
- {:crypt,
- git: "https://github.com/msantos/crypt.git",
- ref: "f75cd55325e33cbea198fb41fe41871392f8fb76"},
+ {:crypt, "~> 1.0"},
{:cors_plug, "~> 2.0"},
{:web_push_encryption, "~> 0.3.1"},
{:swoosh, "~> 1.0"},
@@ -162,7 +160,7 @@ defmodule Pleroma.Mixfile do
{:floki, "~> 0.27"},
{:timex, "~> 3.6"},
{:ueberauth, "~> 0.4"},
- {:linkify, "~> 0.5.2"},
+ {:linkify, "~> 0.5.3"},
{:http_signatures, "~> 0.1.1"},
{:telemetry, "~> 1.0.0", override: true},
{:poolboy, "~> 1.5"},
diff --git a/mix.lock b/mix.lock
index 8f4f17f83..302786326 100644
--- a/mix.lock
+++ b/mix.lock
@@ -21,13 +21,13 @@
"cowlib": {:hex, :cowlib, "2.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"},
"credo": {:hex, :credo, "1.6.7", "323f5734350fd23a456f2688b9430e7d517afb313fbd38671b8a4449798a7854", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "41e110bfb007f7eda7f897c10bf019ceab9a0b269ce79f015d54b0dcf4fc7dd3"},
"crontab": {:hex, :crontab, "1.1.8", "2ce0e74777dfcadb28a1debbea707e58b879e6aa0ffbf9c9bb540887bce43617", [:mix], [{:ecto, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"},
- "crypt": {:git, "https://github.com/msantos/crypt.git", "f75cd55325e33cbea198fb41fe41871392f8fb76", [ref: "f75cd55325e33cbea198fb41fe41871392f8fb76"]},
+ "crypt": {:hex, :crypt, "1.0.1", "a3567e1c651a2ec42c6650d9f3ab789e0f12a508c060653a9bbb5fafe60f043c", [:rebar3], [], "hexpm", "968dffe321c7a5d9f9b4577c4a4ff56a1c26d1a8a2270eb22c7636a0b43d3982"},
"custom_base": {:hex, :custom_base, "0.2.1", "4a832a42ea0552299d81652aa0b1f775d462175293e99dfbe4d7dbaab785a706", [:mix], [], "hexpm", "8df019facc5ec9603e94f7270f1ac73ddf339f56ade76a721eaa57c1493ba463"},
"db_connection": {:hex, :db_connection, "2.4.2", "f92e79aff2375299a16bcb069a14ee8615c3414863a6fef93156aee8e86c2ff3", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4fe53ca91b99f55ea249693a0229356a08f4d1a7931d8ffa79289b145fe83668"},
"decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"},
"deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"},
- "earmark": {:hex, :earmark, "1.4.18", "618c4ff1563450d1832b7fb41dc6755e470f91a6fd4c70f350a58b14f64a7db8", [:mix], [{:earmark_parser, ">= 1.4.17", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "57ac3b6da3958ed09c669a9b159e86377fcccda56bacde8a209fa4dcdef52560"},
- "earmark_parser": {:hex, :earmark_parser, "1.4.17", "6f3c7e94170377ba45241d394389e800fb15adc5de51d0a3cd52ae766aafd63f", [:mix], [], "hexpm", "f93ac89c9feca61c165b264b5837bf82344d13bebc634cd575cb711e2e342023"},
+ "earmark": {:hex, :earmark, "1.4.22", "ea3e45c6359446dc308be0a64ce82a03260d973de7d0625a762e6d352ff57958", [:mix], [{:earmark_parser, "~> 1.4.23", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "1caf5145665a42fd76d5317286b0c171861fb1c04f86ab103dde76868814fdfb"},
+ "earmark_parser": {:hex, :earmark_parser, "1.4.29", "149d50dcb3a93d9f3d6f3ecf18c918fb5a2d3c001b5d3305c926cddfbd33355b", [:mix], [], "hexpm", "4902af1b3eb139016aed210888748db8070b8125c2342ce3dcae4f38dcc63503"},
"eblurhash": {:hex, :eblurhash, "1.2.2", "7da4255aaea984b31bb71155f673257353b0e0554d0d30dcf859547e74602582", [:rebar3], [], "hexpm", "8c20ca00904de023a835a9dcb7b7762fed32264c85a80c3cafa85288e405044c"},
"ecto": {:hex, :ecto, "3.9.2", "017db3bc786ff64271108522c01a5d3f6ba0aea5c84912cfb0dd73bf13684108", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "21466d5177e09e55289ac7eade579a642578242c7a3a9f91ad5c6583337a9d15"},
"ecto_enum": {:hex, :ecto_enum, "1.4.0", "d14b00e04b974afc69c251632d1e49594d899067ee2b376277efd8233027aec8", [:mix], [{:ecto, ">= 3.0.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "> 3.0.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:mariaex, ">= 0.0.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "8fb55c087181c2b15eee406519dc22578fa60dd82c088be376d0010172764ee4"},
@@ -64,7 +64,7 @@
"joken": {:hex, :joken, "2.3.0", "62a979c46f2c81dcb8ddc9150453b60d3757d1ac393c72bb20fc50a7b0827dc6", [:mix], [{:jose, "~> 1.10", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "57b263a79c0ec5d536ac02d569c01e6b4de91bd1cb825625fe90eab4feb7bc1e"},
"jose": {:hex, :jose, "1.11.1", "59da64010c69aad6cde2f5b9248b896b84472e99bd18f246085b7b9fe435dcdb", [:mix, :rebar3], [], "hexpm", "078f6c9fb3cd2f4cfafc972c814261a7d1e8d2b3685c0a76eb87e158efff1ac5"},
"jumper": {:hex, :jumper, "1.0.1", "3c00542ef1a83532b72269fab9f0f0c82bf23a35e27d278bfd9ed0865cecabff", [:mix], [], "hexpm", "318c59078ac220e966d27af3646026db9b5a5e6703cb2aa3e26bcfaba65b7433"},
- "linkify": {:hex, :linkify, "0.5.2", "fb66be139fdf1656ecb31f78a93592724d1b78d960a1b3598bd661013ea0e3c7", [:mix], [], "hexpm", "8d71ac690218d8952c90cbeb63cb8cc33738bb230d8a56d487d9447f2a5eab86"},
+ "linkify": {:hex, :linkify, "0.5.3", "5f8143d8f61f5ff08d3aeeff47ef6509492b4948d8f08007fbf66e4d2246a7f2", [:mix], [], "hexpm", "3ef35a1377d47c25506e07c1c005ea9d38d700699d92ee92825f024434258177"},
"majic": {:hex, :majic, "1.0.0", "37e50648db5f5c2ff0c9fb46454d034d11596c03683807b9fb3850676ffdaab3", [:make, :mix], [{:elixir_make, "~> 0.6.1", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "7905858f76650d49695f14ea55cd9aaaee0c6654fa391671d4cf305c275a0a9e"},
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
"makeup_elixir": {:hex, :makeup_elixir, "0.14.1", "4f0e96847c63c17841d42c08107405a005a2680eb9c7ccadfd757bd31dabccfb", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f2438b1a80eaec9ede832b5c41cd4f373b38fd7aa33e3b22d9db79e640cbde11"},
diff --git a/priv/static/index.html b/priv/static/index.html
index 5593fe142..7dd5d0b78 100644
--- a/priv/static/index.html
+++ b/priv/static/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><!--server-generated-meta--><link rel=icon type=image/png href=/favicon.png><script defer=defer src=/static/js/9169.335214f6ab57538eae0b.js></script><script defer=defer src=/static/js/app.4c23e08cf351a54f4177.js></script><link href=/static/css/app.86977512e08af1f17d78.css rel=stylesheet></head><body class=hidden><noscript>To use Pleroma, please enable JavaScript.</noscript><div id=app></div><div id=popovers></body></html> \ No newline at end of file
+<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><!--server-generated-meta--><link rel=icon type=image/png href=/favicon.png><script defer=defer src=/static/js/2724.e4840c73281069ba54ab.js></script><script defer=defer src=/static/js/app.8d2126d35dba9482db51.js></script><link href=/static/css/app.48e52505beba5b9ab69b.css rel=stylesheet></head><body class=hidden><noscript>To use Pleroma, please enable JavaScript.</noscript><div id=app></div><div id=modal></div><div id=popovers></body></html> \ No newline at end of file
diff --git a/priv/static/static/css/1264.177d0bf6917b317388ae.css b/priv/static/static/css/1264.177d0bf6917b317388ae.css
deleted file mode 100644
index 63976a6d7..000000000
--- a/priv/static/static/css/1264.177d0bf6917b317388ae.css
+++ /dev/null
@@ -1,11 +0,0 @@
-.importer-uploading{font-size:1.5em;margin:.25em}.exporter-processing{margin:.25em}.autosuggest{position:relative}.autosuggest-input{display:block;width:100%}.autosuggest-results{background-color:#121a24;background-color:var(--bg,#121a24);border:1px solid #222;border-color:var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);border-top-left-radius:0;border-top-right-radius:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);left:0;max-height:400px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1}.block-card-content-container{margin-top:.5em;text-align:right}.block-card-content-container button{width:10em}.mute-card-content-container{margin-top:.5em;text-align:right}.mute-card-content-container button{width:10em}.domain-mute-card{align-items:center;display:flex;flex:1 0;justify-content:space-between;padding:.6em 1em .6em 0}.domain-mute-card-domain{margin-right:1em;overflow:hidden;text-overflow:ellipsis}.domain-mute-card button{width:10em}.autosuggest-results .domain-mute-card{padding-left:1em}.selectable-list-item-inner{align-items:center;display:flex}.selectable-list-item-inner>*{min-width:0}.selectable-list-item-selected-inner{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:var(--selectedMenuText,#b9b9ba)}.selectable-list-header{align-items:center;border-bottom:2px solid #222;border-bottom-color:var(--border,#222);display:flex;padding:.6em 0}.selectable-list-header-actions{flex:1}.selectable-list-checkbox-wrapper{flex:none;padding:0 10px}.with-subscription-loading{padding:10px;text-align:center}.with-subscription-loading .error{font-size:1rem}.mutes-and-blocks-tab{height:100%}.mutes-and-blocks-tab .usersearch-wrapper{padding:1em}.mutes-and-blocks-tab .bulk-actions{min-height:2em;padding:0 1em;text-align:right}.mutes-and-blocks-tab .bulk-action-button{width:10em}.mutes-and-blocks-tab .domain-mute-form{display:flex;flex-direction:column;padding:1em}.mutes-and-blocks-tab .domain-mute-button{align-self:flex-end;margin-top:1em;width:10em}.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ServerSideIndicator{display:inline-block;position:relative}.serverside-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.mfa-backup-codes .warning{color:orange;color:var(--cOrange,orange)}.mfa-backup-codes .backup-codes{font-family:var(--postCodeFont,monospace)}.mfa-settings .method-item,.mfa-settings .mfa-heading{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:space-between}.mfa-settings .warning{color:orange;color:var(--cOrange,orange)}.mfa-settings .setup-otp{display:flex;flex-wrap:wrap;justify-content:center}.mfa-settings .setup-otp .qr-code{flex:1;padding-right:10px}.mfa-settings .setup-otp .verify{flex:1}.mfa-settings .setup-otp .error{margin:4px 0 0}.mfa-settings .setup-otp .confirm-otp-actions button{margin-top:5px;width:15em}
-/*!
- * Cropper.js v1.5.12
- * https://fengyuanchen.github.io/cropperjs
- *
- * Copyright 2015-present Chen Fengyuan
- * Released under the MIT license
- *
- * Date: 2021-06-12T08:00:11.623Z
- */.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.image-cropper-img-input{display:none}.image-cropper-image-container{position:relative}.image-cropper-image-container img{display:block;max-width:100%}.image-cropper-buttons-wrapper{margin-top:10px}.image-cropper-buttons-wrapper button{margin-top:5px}.profile-tab .bio{margin:0}.profile-tab .visibility-tray{padding-top:5px}.profile-tab input[type=file]{height:auto;padding:5px}.profile-tab .banner-background-preview{max-width:100%;position:relative;width:300px}.profile-tab .banner-background-preview img{width:100%}.profile-tab .uploading{font-size:1.5em;margin:.25em}.profile-tab .name-changer{width:100%}.profile-tab .current-avatar-container{height:150px;position:relative;width:150px}.profile-tab .current-avatar{border-radius:4px;border-radius:var(--avatarRadius,4px);display:block;height:100%;width:100%}.profile-tab .reset-button{background-color:rgba(0,0,0,.6);border-radius:5px;border-radius:var(--tooltipRadius,5px);cursor:pointer;font-size:1.5em;height:1.5em;line-height:1.5em;opacity:.7;position:absolute;right:.2em;text-align:center;top:.2em;width:1.5em}.profile-tab .reset-button:hover{opacity:1}.profile-tab .reset-button svg{color:#fff}.profile-tab .oauth-tokens{width:100%}.profile-tab .oauth-tokens th{text-align:left}.profile-tab .oauth-tokens .actions{text-align:right}.profile-tab-usersearch-wrapper{padding:1em}.profile-tab-bulk-actions{min-height:2em;padding:0 1em;text-align:right}.profile-tab-bulk-actions button{width:10em}.profile-tab-domain-mute-form{display:flex;flex-direction:column;padding:1em}.profile-tab-domain-mute-form button{align-self:flex-end;margin-top:1em;width:10em}.profile-tab .setting-subitem{margin-left:1.75em}.profile-tab .profile-fields{display:flex}.profile-tab .profile-fields>.emoji-input{flex:1 1 auto;margin:0 .2em .5em;min-width:0}.profile-tab .profile-fields .delete-field{align-self:center;margin:0 .2em .5em;padding:0 .5em;width:20px}.css-unit-input,.css-unit-input select{margin-left:.5em;max-width:4em!important;min-width:4em!important;width:4em!important}.column-settings{display:flex;flex-wrap:wrap;justify-content:space-evenly}.column-settings .size-label{display:block;margin-bottom:.5em;margin-top:.5em}.color-input{display:inline-flex}.color-input-field.input{align-items:stretch;display:inline-flex;flex:0 0 0;max-width:9em;padding:.2em 8px}.color-input-field.input input{background:none;border:none;color:#b9b9ba;color:var(--inputText,#b9b9ba);margin:0;padding:0}.color-input-field.input input.textColor{flex:1 0 3em;min-width:3em;padding:0}.color-input-field.input .computedIndicator,.color-input-field.input .transparentIndicator,.color-input-field.input input.nativeColor{align-self:stretch;flex:0 0 2em;min-height:100%;min-width:2em}.color-input-field.input .transparentIndicator{background-color:#f0f;position:relative}.color-input-field.input .transparentIndicator:after,.color-input-field.input .transparentIndicator:before{background-color:#000;content:"";display:block;height:50%;position:absolute;width:50%}.color-input-field.input .transparentIndicator:after{left:0;top:0}.color-input-field.input .transparentIndicator:before{bottom:0;right:0}.color-input .label{flex:1 1 auto}.color-control input.text-input{flex:1;max-width:7em}.shadow-control{display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:1em}.shadow-control .shadow-preview-container,.shadow-control .shadow-tweak{margin:5px 6px 0 0}.shadow-control .shadow-preview-container{display:flex;flex:0;flex-wrap:wrap}.shadow-control .shadow-preview-container input[type=number]{min-width:2em;width:5em}.shadow-control .shadow-preview-container .x-shift-control,.shadow-control .shadow-preview-container .y-shift-control{display:flex;flex:0}.shadow-control .shadow-preview-container .x-shift-control[disabled=disabled] *,.shadow-control .shadow-preview-container .y-shift-control[disabled=disabled] *{opacity:.5}.shadow-control .shadow-preview-container .x-shift-control{align-items:flex-start}.shadow-control .shadow-preview-container .x-shift-control .wrap,.shadow-control .shadow-preview-container input[type=range]{height:2em;margin:0;width:15em}.shadow-control .shadow-preview-container .y-shift-control{align-items:flex-end;flex-direction:column}.shadow-control .shadow-preview-container .y-shift-control .wrap{height:15em;width:2em}.shadow-control .shadow-preview-container .y-shift-control input[type=range]{transform:rotate(90deg);transform-origin:1em 1em}.shadow-control .shadow-preview-container .preview-window{align-items:center;background-color:#999;background-image:linear-gradient(45deg,#666 25%,transparent 0),linear-gradient(-45deg,#666 25%,transparent 0),linear-gradient(45deg,transparent 75%,#666 0),linear-gradient(-45deg,transparent 75%,#666 0);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:4px;border-radius:var(--inputRadius,4px);display:flex;flex:1;justify-content:center}.shadow-control .shadow-preview-container .preview-window .preview-block{background-color:#121a24;background-color:var(--bg,#121a24);border-radius:10px;border-radius:var(--panelRadius,10px);height:33%;width:33%}.shadow-control .shadow-tweak{flex:1;min-width:280px}.shadow-control .shadow-tweak .id-control{align-items:stretch}.shadow-control .shadow-tweak .id-control .shadow-switcher{flex:1}.shadow-control .shadow-tweak .id-control .btn,.shadow-control .shadow-tweak .id-control .shadow-switcher{margin-right:5px;min-width:1px}.shadow-control .shadow-tweak .id-control .btn{margin:0 .1em;padding:0 .4em}.font-control input.custom-font{min-width:10em}.font-control.custom .font-switcher{border-bottom-right-radius:0;border-top-right-radius:0}.font-control.custom .custom-font{border-bottom-left-radius:0;border-top-left-radius:0}.contrast-ratio{display:flex;justify-content:flex-end;margin-bottom:5px;margin-top:-4px}.contrast-ratio .label{margin-right:1em}.contrast-ratio .rating{display:inline-block;margin-left:.5em;text-align:center}.preview-container{position:relative}.underlay-preview{bottom:0;left:10px;position:absolute;right:10px;top:0}.theme-tab{padding-bottom:2em}.theme-tab .theme-warning{align-items:baseline;display:flex;margin-bottom:.5em}.theme-tab .theme-warning .buttons .btn{margin-bottom:.5em}.theme-tab .preset-switcher{margin-right:1em}.theme-tab .style-control{align-items:baseline;display:flex;margin-bottom:5px}.theme-tab .style-control .label{flex:1}.theme-tab .style-control.disabled input,.theme-tab .style-control.disabled select{opacity:.5}.theme-tab .style-control .opt{margin:.5em}.theme-tab .style-control .color-input{flex:0 0 0}.theme-tab .style-control input,.theme-tab .style-control select{flex:0;margin:0;min-width:3em}.theme-tab .style-control input[type=number],.theme-tab .style-control select[type=number]{min-width:5em}.theme-tab .style-control input[type=range],.theme-tab .style-control select[type=range]{align-self:flex-start;flex:1;min-width:3em}.theme-tab .reset-container{flex-wrap:wrap}.theme-tab .apply-container,.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .radius-container,.theme-tab .reset-container{display:flex}.theme-tab .fonts-container,.theme-tab .radius-container{flex-direction:column}.theme-tab .color-container{flex-wrap:wrap;justify-content:space-between}.theme-tab .color-container>h4{width:99%}.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .presets-container,.theme-tab .radius-container,.theme-tab .shadow-container{margin:1em 1em 0}.theme-tab .tab-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:1em;min-height:30px;width:100%}.theme-tab .tab-header p{flex:1;margin:0 .5em 0 0}.theme-tab .tab-header-buttons{display:flex;flex-direction:column}.theme-tab .tab-header-buttons .btn{flex:0 auto;margin-bottom:.5em;min-width:1px;padding:0 1em}.theme-tab .shadow-selector .override{flex:1;margin-left:.5em}.theme-tab .shadow-selector .select-container{margin-bottom:-3px;margin-top:-4px}.theme-tab .save-load,.theme-tab .save-load-options{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:center}.theme-tab .save-load .import-export,.theme-tab .save-load .presets,.theme-tab .save-load-options .import-export,.theme-tab .save-load-options .presets{margin-bottom:.5em}.theme-tab .save-load .import-export,.theme-tab .save-load-options .import-export{display:flex}.theme-tab .save-load .override,.theme-tab .save-load-options .override{margin-left:.5em}.theme-tab .save-load-options{flex-wrap:wrap;justify-content:center;margin-top:.5em}.theme-tab .save-load-options .keep-option{margin:0 .5em .5em;min-width:25%}.theme-tab .preview-container{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50% 50%;background-size:cover;border-bottom:1px dashed #222;border-color:#222 currentcolor;border-top:1px dashed #222;border-color:var(--border,#222);margin:1em 0;padding:1em}.theme-tab .preview-container .dummy .post{display:flex;font-family:var(--postFont)}.theme-tab .preview-container .dummy .post .content{flex:1}.theme-tab .preview-container .dummy .post .content h4{margin-bottom:.25em}.theme-tab .preview-container .dummy .post .content .icons{display:flex;margin-top:.5em}.theme-tab .preview-container .dummy .post .content .icons i{margin-right:1em}.theme-tab .preview-container .dummy .after-post{align-items:center;display:flex;margin-top:1em}.theme-tab .preview-container .dummy .avatar,.theme-tab .preview-container .dummy .avatar-alt{background:linear-gradient(135deg,#b8e1fc,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd);color:#000;font-family:sans-serif;margin-right:1em;text-align:center}.theme-tab .preview-container .dummy .avatar-alt{border-radius:10px;border-radius:var(--avatarAltRadius,10px);flex:0 auto;font-size:12px;line-height:20px;margin-left:28px;min-height:20px;min-width:20px}.theme-tab .preview-container .dummy .avatar{flex:0 auto;font-size:14px;height:48px;line-height:48px;width:48px}.theme-tab .preview-container .dummy .actions{align-items:baseline;display:flex}.theme-tab .preview-container .dummy .actions .checkbox{align-items:baseline;display:inline-flex;flex:1;margin-right:1em}.theme-tab .preview-container .dummy .separator{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);margin:1em}.theme-tab .preview-container .dummy .btn{min-width:3em}.theme-tab .color-item,.theme-tab .radius-item{display:flex;flex:1 1 0;flex-direction:column;margin:5px 6px 0 0;min-width:20em}.theme-tab .color-item.wide,.theme-tab .radius-item.wide{min-width:60%}.theme-tab .color-item:not(.wide):nth-child(odd),.theme-tab .radius-item:not(.wide):nth-child(odd){margin-right:7px}.theme-tab .color-item .color,.theme-tab .color-item .opacity,.theme-tab .radius-item .color,.theme-tab .radius-item .opacity{align-items:baseline;display:flex}.theme-tab .radius-item{flex-basis:auto}.theme-tab .theme-color-cl,.theme-tab .theme-radius-rn{align-self:stretch;background:transparent;border:0;box-shadow:none;color:var(--faint,hsla(240,1%,73%,.5))}.theme-tab .theme-color-cl,.theme-tab .theme-color-in,.theme-tab .theme-radius-in{margin-left:4px}.theme-tab .theme-radius-in{flex:1;max-width:7em;min-width:1em}.theme-tab .theme-radius-lb{max-width:50em}.theme-tab .theme-preview-content{padding:20px}.theme-tab .btn{margin-left:.25em;margin-right:.25em}.extra-content .apply-container{display:flex;flex-direction:row;flex-grow:1;justify-content:space-around}.extra-content .apply-container .btn{flex-grow:1;max-width:10em;min-height:2em;min-width:0;padding:0}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item select{min-width:10em}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed,red);color:red}.settings_tab-switcher .setting-item .number-input{max-width:6em}
-/*# sourceMappingURL=1264.177d0bf6917b317388ae.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/1264.177d0bf6917b317388ae.css.map b/priv/static/static/css/1264.177d0bf6917b317388ae.css.map
deleted file mode 100644
index 326c27d14..000000000
--- a/priv/static/static/css/1264.177d0bf6917b317388ae.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/1264.177d0bf6917b317388ae.css","mappings":"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","sources":["webpack://pleroma_fe/./src/components/importer/importer.vue","webpack://pleroma_fe/./src/components/exporter/exporter.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/block_card/block_card.vue","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue","webpack://pleroma_fe/./src/hocs/with_subscription/with_subscription.scss","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/server_side_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack://pleroma_fe/./node_modules/cropperjs/dist/cropper.css","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue","webpack://pleroma_fe/./src/components/color_input/color_input.scss","webpack://pleroma_fe/./src/components/color_input/color_input.vue","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue","webpack://pleroma_fe/./src/components/font_control/font_control.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.scss"],"sourcesContent":["\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n","\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-style: solid;\n border-width: 1px;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgba(185, 185, 186, .5);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21, 30, 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #ff0000;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgba(211,16,20,.5);\n$fallback--alertWarning: rgba(111,111,20,.5);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0px 0px 2px 0px rgba(0, 0, 0, 1), 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset;\n\n$status-margin: 0.75em;\n","\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n","\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n","\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.selectable-list {\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-item-selected-inner {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: var(--selectedMenuText, $fallback--text);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: 0.6em 0;\n border-bottom: 2px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding: 0 10px;\n flex: none;\n }\n}\n",".with-subscription {\n &-loading {\n padding: 10px;\n text-align: center;\n\n .error {\n font-size: 1rem;\n }\n }\n}",".mutes-and-blocks-tab {\n height: 100%;\n\n .usersearch-wrapper {\n padding: 1em;\n }\n\n .bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n }\n\n .bulk-action-button {\n width: 10em\n }\n\n .domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column\n }\n\n .domain-mute-button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em\n }\n}\n","\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ServerSideIndicator {\n display: inline-block;\n position: relative;\n}\n\n.serverside-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n@import '../../../../_variables.scss';\n\n.mfa-backup-codes {\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n .backup-codes {\n font-family: var(--postCodeFont, monospace);\n }\n}\n","\n@import '../../../../_variables.scss';\n.mfa-settings {\n .mfa-heading, .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0 0; }\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n\n }\n }\n}\n","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:11.623Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n.cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n","\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n","@import '../../../_variables.scss';\n.profile-tab {\n .bio {\n margin: 0;\n }\n\n .visibility-tray {\n padding-top: 5px;\n }\n\n input[type=file] {\n padding: 5px;\n height: auto;\n }\n\n .banner-background-preview {\n max-width: 100%;\n width: 300px;\n position: relative;\n\n img {\n width: 100%;\n }\n }\n\n .uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n\n .name-changer {\n width: 100%;\n }\n\n .current-avatar-container {\n position: relative;\n width: 150px;\n height: 150px;\n }\n\n .current-avatar {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n }\n\n .reset-button {\n position: absolute;\n top: 0.2em;\n right: 0.2em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n background-color: rgba(0, 0, 0, 0.6);\n opacity: 0.7;\n width: 1.5em;\n height: 1.5em;\n text-align: center;\n line-height: 1.5em;\n font-size: 1.5em;\n cursor: pointer;\n\n &:hover {\n opacity: 1;\n }\n\n svg {\n color: white;\n }\n }\n\n .oauth-tokens {\n width: 100%;\n\n th {\n text-align: left;\n }\n\n .actions {\n text-align: right;\n }\n }\n\n &-usersearch-wrapper {\n padding: 1em;\n }\n\n &-bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n\n button {\n width: 10em;\n }\n }\n\n &-domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n\n button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n }\n\n .setting-subitem {\n margin-left: 1.75em;\n }\n\n .profile-fields {\n display: flex;\n\n & > .emoji-input {\n flex: 1 1 auto;\n margin: 0 0.2em 0.5em;\n min-width: 0;\n }\n\n .delete-field {\n width: 20px;\n align-self: center;\n margin: 0 0.2em 0.5em;\n padding: 0 0.5em;\n }\n }\n}\n","\n.css-unit-input, .css-unit-input select {\n margin-left: 0.5em;\n width: 4em !important;\n max-width: 4em !important;\n min-width: 4em !important;\n}\n","\n.column-settings {\n display: flex;\n justify-content: space-evenly;\n flex-wrap: wrap;\n}\n.column-settings .size-label {\n display: block;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n","@import '../../_variables.scss';\n\n.color-input {\n display: inline-flex;\n\n &-field.input {\n display: inline-flex;\n flex: 0 0 0;\n max-width: 9em;\n align-items: stretch;\n padding: .2em 8px;\n\n input {\n background: none;\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n border: none;\n padding: 0;\n margin: 0;\n\n &.textColor {\n flex: 1 0 3em;\n min-width: 3em;\n padding: 0;\n }\n\n &.nativeColor {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n }\n .computedIndicator,\n .transparentIndicator {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n .transparentIndicator {\n // forgot to install counter-strike source, ooops\n background-color: #FF00FF;\n position: relative;\n &::before, &::after {\n display: block;\n content: '';\n background-color: #000000;\n position: absolute;\n height: 50%;\n width: 50%;\n }\n &::after {\n top: 0;\n left: 0;\n }\n &::before {\n bottom: 0;\n right: 0;\n }\n }\n }\n\n .label {\n flex: 1 1 auto;\n }\n\n}\n","\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n","\n@import '../../_variables.scss';\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n $side: 15em;\n\n input[type=number] {\n width: 5em;\n min-width: 2em;\n }\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=disabled] *{\n opacity: .5\n }\n\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=range] {\n margin: 0;\n width: $side;\n height: 2em;\n }\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n .wrap {\n width: 2em;\n height: $side;\n }\n input[type=range] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n .preview-window {\n flex: 1;\n background-color: #999999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666666 25%, transparent 25%),\n linear-gradient(-45deg, #666666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666666 75%),\n linear-gradient(-45deg, transparent 75%, #666666 75%);\n background-size: 20px 20px;\n background-position:0 0, 0 10px, 10px -10px, -10px 0;\n\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .preview-block {\n width: 33%;\n height: 33%;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher, .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 .4em;\n margin: 0 .1em;\n }\n }\n }\n}\n","\n@import '../../_variables.scss';\n.font-control {\n input.custom-font {\n min-width: 10em;\n }\n &.custom {\n /* TODO Should make proper joiners... */\n .font-switcher {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .custom-font {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n","\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n","\n.preview-container {\n position: relative;\n}\n.underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n}\n","@import 'src/_variables.scss';\n.theme-tab {\n padding-bottom: 2em;\n .theme-warning {\n display: flex;\n align-items: baseline;\n margin-bottom: .5em;\n .buttons {\n .btn {\n margin-bottom: .5em;\n }\n }\n }\n .preset-switcher {\n margin-right: 1em;\n }\n\n .style-control {\n display: flex;\n align-items: baseline;\n margin-bottom: 5px;\n\n .label {\n flex: 1;\n }\n\n &.disabled {\n input, select {\n opacity: .5\n }\n }\n\n .opt {\n margin: .5em;\n }\n\n .color-input {\n flex: 0 0 0;\n }\n\n input, select {\n min-width: 3em;\n margin: 0;\n flex: 0;\n\n &[type=number] {\n min-width: 5em;\n }\n\n &[type=range] {\n flex: 1;\n min-width: 3em;\n align-self: flex-start;\n }\n }\n }\n\n .reset-container {\n flex-wrap: wrap;\n }\n\n .fonts-container,\n .reset-container,\n .apply-container,\n .radius-container,\n .color-container,\n {\n display: flex;\n }\n\n .fonts-container,\n .radius-container {\n flex-direction: column;\n }\n\n .color-container{\n > h4 {\n width: 99%;\n }\n flex-wrap: wrap;\n justify-content: space-between;\n }\n\n .fonts-container,\n .color-container,\n .shadow-container,\n .radius-container,\n .presets-container {\n margin: 1em 1em 0;\n }\n\n .tab-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n width: 100%;\n min-height: 30px;\n margin-bottom: 1em;\n\n p {\n flex: 1;\n margin: 0;\n margin-right: .5em;\n }\n }\n\n .tab-header-buttons {\n display: flex;\n flex-direction: column;\n\n .btn {\n min-width: 1px;\n flex: 0 auto;\n padding: 0 1em;\n margin-bottom: .5em;\n }\n }\n\n .shadow-selector {\n .override {\n flex: 1;\n margin-left: .5em;\n }\n .select-container {\n margin-top: -4px;\n margin-bottom: -3px;\n }\n }\n\n .save-load,\n .save-load-options {\n display: flex;\n justify-content: center;\n align-items: baseline;\n flex-wrap: wrap;\n\n .presets,\n .import-export {\n margin-bottom: .5em;\n }\n\n .import-export {\n display: flex;\n }\n\n .override {\n margin-left: .5em;\n }\n }\n\n .save-load-options {\n flex-wrap: wrap;\n margin-top: .5em;\n justify-content: center;\n .keep-option {\n margin: 0 .5em .5em;\n min-width: 25%;\n }\n }\n\n .preview-container {\n border-top: 1px dashed;\n border-bottom: 1px dashed;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n margin: 1em 0;\n padding: 1em;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-size: cover;\n background-position: 50% 50%;\n\n .dummy {\n .post {\n font-family: var(--postFont);\n display: flex;\n\n .content {\n flex: 1;\n\n h4 {\n margin-bottom: .25em;\n }\n\n .icons {\n margin-top: .5em;\n display: flex;\n\n i {\n margin-right: 1em;\n }\n }\n }\n }\n\n .after-post {\n margin-top: 1em;\n display: flex;\n align-items: center;\n }\n\n .avatar, .avatar-alt{\n background: linear-gradient(135deg, #b8e1fc 0%,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd 100%);\n color: black;\n font-family: sans-serif;\n text-align: center;\n margin-right: 1em;\n }\n\n .avatar-alt {\n flex: 0 auto;\n margin-left: 28px;\n font-size: 12px;\n min-width: 20px;\n min-height: 20px;\n line-height: 20px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n flex: 0 auto;\n width: 48px;\n height: 48px;\n font-size: 14px;\n line-height: 48px;\n }\n\n .actions {\n display: flex;\n align-items: baseline;\n\n .checkbox {\n display: inline-flex;\n align-items: baseline;\n margin-right: 1em;\n flex: 1;\n }\n }\n\n .separator {\n margin: 1em;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .btn {\n min-width: 3em;\n }\n }\n }\n\n .radius-item,\n .color-item {\n min-width: 20em;\n margin: 5px 6px 0 0;\n display:flex;\n flex-direction: column;\n flex: 1 1 0;\n\n &.wide {\n min-width: 60%\n }\n\n &:not(.wide):nth-child(2n+1) {\n margin-right: 7px;\n\n }\n\n .color, .opacity {\n display:flex;\n align-items: baseline;\n }\n }\n\n .radius-item {\n flex-basis: auto;\n }\n\n .theme-radius-rn,\n .theme-color-cl {\n border: 0;\n box-shadow: none;\n background: transparent;\n color: var(--faint, $fallback--faint);\n align-self: stretch;\n }\n\n .theme-color-cl,\n .theme-radius-in,\n .theme-color-in {\n margin-left: 4px;\n }\n\n .theme-radius-in {\n min-width: 1em;\n }\n\n .theme-radius-in {\n max-width: 7em;\n flex: 1;\n }\n\n .theme-radius-lb{\n max-width: 50em;\n }\n\n .theme-preview-content {\n padding: 20px;\n }\n\n .btn {\n margin-left: .25em;\n margin-right: .25em;\n }\n}\n\n.extra-content {\n .apply-container {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n flex-grow: 1;\n\n .btn {\n flex-grow: 1;\n min-height: 2em;\n min-width: 0;\n max-width: 10em;\n padding: 0;\n }\n }\n}\n","@import 'src/_variables.scss';\n.settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--fg, $fallback--fg);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: .5em;\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: .5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n select {\n min-width: 10em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed, $fallback--cRed);\n color: $fallback--cRed;\n }\n\n .number-input {\n max-width: 6em;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/1325.715a7f40cdd53f460ef4.css b/priv/static/static/css/1325.715a7f40cdd53f460ef4.css
deleted file mode 100644
index 29e3e12d8..000000000
--- a/priv/static/static/css/1325.715a7f40cdd53f460ef4.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.async-component-error{align-items:center;display:flex;height:100%;justify-content:center}.async-component-error .btn{margin:.5em;padding:.5em 2em}.settings-modal{overflow:hidden}.settings-modal .option-list,.settings-modal .setting-list{list-style-type:none;padding-left:2em}.settings-modal .option-list li,.settings-modal .setting-list li{margin-bottom:.5em}.settings-modal .option-list .suboptions,.settings-modal .setting-list .suboptions{margin-top:.3em}.settings-modal.peek .settings-modal-panel{transform:translateY(calc(50vh + 50% - 50px))}@media (max-width:800px){.settings-modal.peek .settings-modal-panel{transform:translateY(calc(100% - 50px))}}.settings-modal .settings-modal-panel{height:90vh;max-width:90vw;overflow:hidden;transition:transform;transition-duration:.3s;transition-timing-function:ease-in-out;width:1000px}@media (max-width:800px){.settings-modal .settings-modal-panel{height:100%;max-width:100vw}}.settings-modal .settings-modal-panel>.panel-body{height:100%;overflow-y:hidden}.settings-modal .settings-modal-panel>.panel-body .btn{min-height:2em;min-width:10em;padding:0 2em}.settings-modal .settings-footer{display:flex}.settings-modal .settings-footer>*{margin-right:.5em}.settings-modal .settings-footer .extra-content{display:flex;flex-grow:1}
-/*# sourceMappingURL=1325.715a7f40cdd53f460ef4.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/1325.715a7f40cdd53f460ef4.css.map b/priv/static/static/css/1325.715a7f40cdd53f460ef4.css.map
deleted file mode 100644
index 4e392f2f5..000000000
--- a/priv/static/static/css/1325.715a7f40cdd53f460ef4.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/1325.715a7f40cdd53f460ef4.css","mappings":"AACA,uBAGE,mBAFA,aACA,YAEA,uBACA,4BACE,YACA,iBCPJ,gBACE,gBAEA,2DAEE,qBACA,iBACA,iEACE,mBAEF,mFACE,gBAKF,2CASE,8CAEA,yBAXF,2CAeI,yCAKN,sCAOE,YADA,eALA,gBACA,qBAEA,wBADA,uCAEA,YAEA,CAEA,yBATF,sCAWI,YADA,eACA,EAGF,kDACE,YACA,kBAEA,uDACE,eACA,eACA,cAKN,iCACE,aACA,mCACE,kBAGF,gDACE,aACA","sources":["webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.scss"],"sourcesContent":["\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n .btn {\n margin: .5em;\n padding: .5em 2em;\n }\n}\n","@import 'src/_variables.scss';\n.settings-modal {\n overflow: hidden;\n\n .setting-list,\n .option-list {\n list-style-type: none;\n padding-left: 2em;\n li {\n margin-bottom: 0.5em;\n }\n .suboptions {\n margin-top: 0.3em\n }\n }\n\n &.peek {\n .settings-modal-panel {\n /* Explanation:\n * Modal is positioned vertically centered.\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n * + 100% - we move modal completely off-screen, it's top boundary touches\n * bottom of the screen\n * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible\n */\n transform: translateY(calc(((100vh - 100%) / 2 + 100%) - 50px));\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom bar regardless of whether or not it is visible.\n */\n transform: translateY(calc(100% - 50px));\n }\n }\n }\n\n .settings-modal-panel {\n overflow: hidden;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 300ms;\n width: 1000px;\n max-width: 90vw;\n height: 90vh;\n\n @media all and (max-width: 800px) {\n max-width: 100vw;\n height: 100%;\n }\n\n >.panel-body {\n height: 100%;\n overflow-y: hidden;\n\n .btn {\n min-height: 2em;\n min-width: 10em;\n padding: 0 2em;\n }\n }\n }\n\n .settings-footer {\n display: flex;\n >* {\n margin-right: 0.5em;\n }\n\n .extra-content {\n display: flex;\n flex-grow: 1;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/8532.88b90ac86f3060a3144e.css b/priv/static/static/css/159.1d523a00378ebd68c5b3.css
index 7a36bfd7a..146838cff 100644
--- a/priv/static/static/css/8532.88b90ac86f3060a3144e.css
+++ b/priv/static/static/css/159.1d523a00378ebd68c5b3.css
@@ -1,2 +1,2 @@
.sticker-picker{width:100%}.sticker-picker .contents{min-height:250px}.sticker-picker .contents .sticker-picker-content{display:flex;flex-wrap:wrap;padding:0 4px}.sticker-picker .contents .sticker-picker-content .sticker{display:flex;flex:1 1 auto;height:56px;margin:4px;width:56px}.sticker-picker .contents .sticker-picker-content .sticker img{height:100%}.sticker-picker .contents .sticker-picker-content .sticker img:hover{filter:drop-shadow(0 0 5px var(--accent,#d8a070))}
-/*# sourceMappingURL=8532.88b90ac86f3060a3144e.css.map*/ \ No newline at end of file
+/*# sourceMappingURL=159.1d523a00378ebd68c5b3.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/159.1d523a00378ebd68c5b3.css.map b/priv/static/static/css/159.1d523a00378ebd68c5b3.css.map
new file mode 100644
index 000000000..cb7151a69
--- /dev/null
+++ b/priv/static/static/css/159.1d523a00378ebd68c5b3.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/159.1d523a00378ebd68c5b3.css","mappings":"AAGA,gBACE,WAEA,0BACE,iBAEA,kDACE,aACA,eACA,cAEA,2DACE,aACA,cAGA,YAFA,WACA,UACA,CAEA,+DACE,YAEA,qEACE","sources":["webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue"],"sourcesContent":["\n@import \"../../variables\";\n\n.sticker-picker {\n width: 100%;\n\n .contents {\n min-height: 250px;\n\n .sticker-picker-content {\n display: flex;\n flex-wrap: wrap;\n padding: 0 4px;\n\n .sticker {\n display: flex;\n flex: 1 1 auto;\n margin: 4px;\n width: 56px;\n height: 56px;\n\n img {\n height: 100%;\n\n &:hover {\n filter: drop-shadow(0 0 5px var(--accent, $fallback--link));\n }\n }\n }\n }\n }\n}\n\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/5948.06d2a0d84620cba6a4fb.css b/priv/static/static/css/5948.06d2a0d84620cba6a4fb.css
new file mode 100644
index 000000000..b14e14143
--- /dev/null
+++ b/priv/static/static/css/5948.06d2a0d84620cba6a4fb.css
@@ -0,0 +1,2 @@
+.async-component-error{align-items:center;display:flex;height:100%;justify-content:center}.async-component-error .btn{margin:.5em;padding:.5em 2em}.settings-modal{overflow:hidden}.settings-modal .option-list,.settings-modal .setting-list{list-style-type:none;padding-left:2em}.settings-modal .option-list li,.settings-modal .setting-list li{margin-bottom:.5em}.settings-modal .option-list .suboptions,.settings-modal .setting-list .suboptions{margin-top:.3em}.settings-modal .settings-modal-panel{height:90vh;max-width:90vw;overflow:hidden;transition:transform;transition-duration:.3s;transition-timing-function:ease-in-out;width:1000px}@media (max-width:800px){.settings-modal .settings-modal-panel{height:100%;max-width:100vw}}.settings-modal .settings-modal-panel>.panel-body{height:100%;overflow-y:hidden}.settings-modal .settings-modal-panel>.panel-body .btn{min-height:2em;min-width:10em;padding:0 2em}.settings-modal .settings-footer{display:flex}.settings-modal .settings-footer>*{margin-right:.5em}.settings-modal .settings-footer .extra-content{display:flex;flex-grow:1}.settings-modal.peek .settings-modal-panel{transform:translateY(calc(50vh + 50% - 50px))}@media (max-width:800px){.settings-modal.peek .settings-modal-panel{transform:translateY(calc(100% - 50px))}}
+/*# sourceMappingURL=5948.06d2a0d84620cba6a4fb.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/5948.06d2a0d84620cba6a4fb.css.map b/priv/static/static/css/5948.06d2a0d84620cba6a4fb.css.map
new file mode 100644
index 000000000..72f22de67
--- /dev/null
+++ b/priv/static/static/css/5948.06d2a0d84620cba6a4fb.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/5948.06d2a0d84620cba6a4fb.css","mappings":"AACA,uBAGE,mBAFA,aACA,YAEA,uBAEA,4BACE,YACA,iBCPJ,gBACE,gBAEA,2DAEE,qBACA,iBAEA,iEACE,mBAGF,mFACE,gBAIJ,sCAOE,YADA,eALA,gBACA,qBAEA,wBADA,uCAEA,YAEA,CAEA,yBATF,sCAWI,YADA,eACA,EAGF,kDACE,YACA,kBAEA,uDACE,eACA,eACA,cAKN,iCACE,aAEA,mCACE,kBAGF,gDACE,aACA,YAKF,2CASE,8CAEA,yBAXF,2CAgBI","sources":["webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.scss"],"sourcesContent":["\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n\n .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n }\n}\n","@import \"src/variables\";\n\n.settings-modal {\n overflow: hidden;\n\n .setting-list,\n .option-list {\n list-style-type: none;\n padding-left: 2em;\n\n li {\n margin-bottom: 0.5em;\n }\n\n .suboptions {\n margin-top: 0.3em;\n }\n }\n\n .settings-modal-panel {\n overflow: hidden;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 300ms;\n width: 1000px;\n max-width: 90vw;\n height: 90vh;\n\n @media all and (max-width: 800px) {\n max-width: 100vw;\n height: 100%;\n }\n\n >.panel-body {\n height: 100%;\n overflow-y: hidden;\n\n .btn {\n min-height: 2em;\n min-width: 10em;\n padding: 0 2em;\n }\n }\n }\n\n .settings-footer {\n display: flex;\n\n >* {\n margin-right: 0.5em;\n }\n\n .extra-content {\n display: flex;\n flex-grow: 1;\n }\n }\n\n &.peek {\n .settings-modal-panel {\n /* Explanation:\n * Modal is positioned vertically centered.\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n * + 100% - we move modal completely off-screen, it's top boundary touches\n * bottom of the screen\n * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible\n */\n transform: translateY(calc(((100vh - 100%) / 2 + 100%) - 50px));\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom\n bar regardless of whether or not it is visible.\n */\n transform: translateY(calc(100% - 50px));\n }\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css b/priv/static/static/css/6464.169260b661120cc50815.css
index ed8fef7cc..240087a1d 100644
--- a/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css
+++ b/priv/static/static/css/6464.169260b661120cc50815.css
@@ -1,2 +1,2 @@
-.UpdateNotification{overflow:hidden}.UpdateNotificationModal{--__top-fringe:15em;--__bottom-fringe:80em;--__right-fringe:8em;font-size:15px;position:relative;transition:transform;transition-duration:.5s;transition-timing-function:ease-in-out}.UpdateNotificationModal .text{max-width:40em;padding-left:1em}@media (max-width:800px){.UpdateNotificationModal{width:100vw}}@media (max-height:600px){.UpdateNotificationModal{display:none}}.UpdateNotificationModal .content{margin-bottom:calc(var(--__bottom-fringe)*-1);margin-right:calc(var(--__right-fringe)*-1);margin-top:calc(var(--__top-fringe)*-1);overflow:hidden}.UpdateNotificationModal .content.-noImage .text{padding-right:var(--__right-fringe)}.UpdateNotificationModal .panel-body{border-color:var(--border,#222);border-style:solid;border-width:0 0 1px}.UpdateNotificationModal .panel-footer{border-width:0;grid-template-columns:auto;position:relative;z-index:22}.UpdateNotificationModal .pleroma-tan{filter:drop-shadow(5px 5px 10px rgba(0,0,0,.5));float:right;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;pointer-events:none;position:relative;shape-margin:.5em;transition:position,left,right,top,bottom,max-width,max-height;transition-duration:.5s;transition-timing-function:ease-in-out;width:25em;z-index:20}.UpdateNotificationModal .spacer-top{min-height:var(--__top-fringe)}.UpdateNotificationModal .spacer-bottom{min-height:var(--__bottom-fringe)}.UpdateNotificationModal .extra-info-group{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);max-height:70vh;transition:max-height,padding,height;transition-duration:.7s;transition-timing-function:ease-in}.UpdateNotificationModal .art-credit{text-align:right}.UpdateNotificationModal.-peek{transform:translateY(calc(50vh - 50%))}.UpdateNotificationModal.-peek .pleroma-tan{float:right;shape-image-threshold:.7;z-index:10}.UpdateNotificationModal.-peek .extra-info-group{max-height:0}
-/*# sourceMappingURL=6464.2fa2e5f1fa93842c62b1.css.map*/ \ No newline at end of file
+.UpdateNotification{overflow:hidden}.UpdateNotificationModal{--__top-fringe:15em;--__bottom-fringe:80em;--__right-fringe:8em;font-size:15px;position:relative;transition:transform;transition-duration:.5s;transition-timing-function:ease-in-out}.UpdateNotificationModal .text{max-width:40em;padding-left:1em}@media (max-width:800px){.UpdateNotificationModal{width:100vw}}@media (max-height:600px){.UpdateNotificationModal{display:none}}.UpdateNotificationModal .content{margin-bottom:calc(var(--__bottom-fringe)*-1);margin-right:calc(var(--__right-fringe)*-1);margin-top:calc(var(--__top-fringe)*-1);overflow:hidden}.UpdateNotificationModal .content.-noImage .text{padding-right:var(--__right-fringe)}.UpdateNotificationModal .panel-body{border-color:var(--border,#222);border-style:solid;border-width:0 0 1px}.UpdateNotificationModal .panel-footer{border-width:0;grid-template-columns:auto;position:relative;z-index:22}.UpdateNotificationModal .pleroma-tan{filter:drop-shadow(5px 5px 10px rgba(0,0,0,.5));float:right;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;pointer-events:none;position:relative;shape-margin:.5em;transition:position,left,right,top,bottom,max-width,max-height;transition-duration:.5s;transition-timing-function:ease-in-out;width:25em;z-index:20}.UpdateNotificationModal .spacer-top{min-height:var(--__top-fringe)}.UpdateNotificationModal .spacer-bottom{min-height:var(--__bottom-fringe)}.UpdateNotificationModal .extra-info-group{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 2px no-repeat,linear-gradient(0deg,#fff,#fff);max-height:70vh;transition:max-height,padding,height;transition-duration:.7s;transition-timing-function:ease-in}.UpdateNotificationModal .art-credit{text-align:right}.UpdateNotificationModal.-peek{transform:translateY(calc(50vh - 50%))}.UpdateNotificationModal.-peek .pleroma-tan{float:right;shape-image-threshold:70%;z-index:10}.UpdateNotificationModal.-peek .extra-info-group{max-height:0}
+/*# sourceMappingURL=6464.169260b661120cc50815.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/6464.169260b661120cc50815.css.map b/priv/static/static/css/6464.169260b661120cc50815.css.map
new file mode 100644
index 000000000..048efb2b9
--- /dev/null
+++ b/priv/static/static/css/6464.169260b661120cc50815.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/6464.169260b661120cc50815.css","mappings":"AAEA,oBACE,gBAGF,yBACE,mBAAoB,CACpB,sBAAuB,CACvB,oBAAqB,CAErB,eACA,kBACA,qBAEA,wBADA,sCACA,CAEA,+BACE,eACA,iBAGF,yBAhBF,yBAqBI,aAGF,0BAxBF,yBAyBI,cAGF,kCAGE,8CACA,4CAFA,wCADA,eAGA,CAGE,iDACE,oCAKN,qCAGE,gCADA,mBADA,oBAEA,CAGF,uCAGE,eACA,2BAFA,kBADA,UAGA,CAGF,sCAWE,gDAJA,YANA,qCACA,2CAUA,oBAHA,kBACA,kBAPA,+DAEA,wBADA,uCAEA,WAEA,UAIA,CAGF,qCACE,+BAGF,wCACE,kCAGF,2CAKE,6GACE,CADF,sGADA,gBAHA,qCAEA,wBADA,kCAIE,CAIJ,qCACE,iBAGF,+BAKE,uCAEA,4CACE,YAEA,0BADA,UACA,CAGF,iDACE","sources":["webpack://pleroma_fe/./src/components/update_notification/update_notification.scss"],"sourcesContent":["@import \"src/variables\";\n\n.UpdateNotification {\n overflow: hidden;\n}\n\n.UpdateNotificationModal {\n --__top-fringe: 15em; // how much pleroma-tan should stick her head above\n --__bottom-fringe: 80em; // just reserving as much as we can, number is mostly irrelevant\n --__right-fringe: 8em;\n\n font-size: 15px;\n position: relative;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n\n .text {\n max-width: 40em;\n padding-left: 1em;\n }\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser\n bottom bar regardless of whether or not it is visible.\n */\n width: 100vw;\n }\n\n @media all and (max-height: 600px) {\n display: none;\n }\n\n .content {\n overflow: hidden;\n margin-top: calc(-1 * var(--__top-fringe));\n margin-bottom: calc(-1 * var(--__bottom-fringe));\n margin-right: calc(-1 * var(--__right-fringe));\n\n &.-noImage {\n .text {\n padding-right: var(--__right-fringe);\n }\n }\n }\n\n .panel-body {\n border-width: 0 0 1px;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n }\n\n .panel-footer {\n z-index: 22;\n position: relative;\n border-width: 0;\n grid-template-columns: auto;\n }\n\n .pleroma-tan {\n object-fit: cover;\n object-position: top;\n transition: position, left, right, top, bottom, max-width, max-height;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n width: 25em;\n float: right;\n z-index: 20;\n position: relative;\n shape-margin: 0.5em;\n filter: drop-shadow(5px 5px 10px rgb(0 0 0 / 50%));\n pointer-events: none;\n }\n\n .spacer-top {\n min-height: var(--__top-fringe);\n }\n\n .spacer-bottom {\n min-height: var(--__bottom-fringe);\n }\n\n .extra-info-group {\n transition: max-height, padding, height;\n transition-timing-function: ease-in;\n transition-duration: 700ms;\n max-height: 70vh;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 2px no-repeat,\n linear-gradient(to top, white, white);\n }\n\n .art-credit {\n text-align: right;\n }\n\n &.-peek {\n /* Explanation:\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n */\n transform: translateY(calc(((100vh - 100%) / 2)));\n\n .pleroma-tan {\n float: right;\n z-index: 10;\n shape-image-threshold: 70%;\n }\n\n .extra-info-group {\n max-height: 0;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css.map b/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css.map
deleted file mode 100644
index 3812ecde4..000000000
--- a/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/6464.2fa2e5f1fa93842c62b1.css","mappings":"AACA,oBACE,gBAGF,yBACE,mBAAoB,CACpB,sBAAuB,CACvB,oBAAqB,CAErB,eACA,kBACA,qBAEA,wBADA,sCACA,CAEA,+BACE,eACA,iBAGF,yBAhBF,yBAoBI,aAGF,0BAvBF,yBAwBI,cAGF,kCAGE,8CACA,4CAFA,wCADA,eAGA,CAGE,iDACE,oCAKN,qCAGE,gCADA,mBADA,oBAEA,CAGF,uCAGE,eACA,2BAFA,kBADA,UAGA,CAGF,sCAWE,gDAJA,YANA,qCACA,2CAUA,oBAHA,kBACA,kBAPA,+DAEA,wBADA,uCAEA,WAEA,UAIA,CAGF,qCACE,+BAGF,wCACE,kCAGF,2CAKE,6GACE,CADF,sGADA,gBAHA,qCAEA,wBADA,kCAIE,CAIJ,qCACE,iBAGF,+BAKE,uCAEA,4CACE,YAEA,yBADA,UACA,CAGF,iDACE","sources":["webpack://pleroma_fe/./src/components/update_notification/update_notification.scss"],"sourcesContent":["@import 'src/_variables.scss';\n.UpdateNotification {\n overflow: hidden;\n}\n\n.UpdateNotificationModal {\n --__top-fringe: 15em; // how much pleroma-tan should stick her head above\n --__bottom-fringe: 80em; // just reserving as much as we can, number is mostly irrelevant\n --__right-fringe: 8em;\n\n font-size: 15px;\n position: relative;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n\n .text {\n max-width: 40em;\n padding-left: 1em;\n }\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom bar regardless of whether or not it is visible.\n */\n width: 100vw;\n }\n\n @media all and (max-height: 600px) {\n display: none;\n }\n\n .content {\n overflow: hidden;\n margin-top: calc(-1 * var(--__top-fringe));\n margin-bottom: calc(-1 * var(--__bottom-fringe));\n margin-right: calc(-1 * var(--__right-fringe));\n\n &.-noImage {\n .text {\n padding-right: var(--__right-fringe);\n }\n }\n }\n\n .panel-body {\n border-width: 0 0 1px 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n }\n\n .panel-footer {\n z-index: 22;\n position: relative;\n border-width: 0;\n grid-template-columns: auto;\n }\n\n .pleroma-tan {\n object-fit: cover;\n object-position: top;\n transition: position, left, right, top, bottom, max-width, max-height;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n width: 25em;\n float: right;\n z-index: 20;\n position: relative;\n shape-margin: 0.5em;\n filter: drop-shadow(5px 5px 10px rgba(0,0,0,0.5));\n pointer-events: none;\n }\n\n .spacer-top {\n min-height: var(--__top-fringe);\n }\n\n .spacer-bottom {\n min-height: var(--__bottom-fringe);\n }\n\n .extra-info-group {\n transition: max-height, padding, height;\n transition-timing-function: ease-in;\n transition-duration: 700ms;\n max-height: 70vh;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 2px no-repeat,\n linear-gradient(to top, white, white);\n }\n\n .art-credit {\n text-align: right;\n }\n\n &.-peek {\n /* Explanation:\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n */\n transform: translateY(calc(((100vh - 100%) / 2)));\n\n .pleroma-tan {\n float: right;\n z-index: 10;\n shape-image-threshold: 0.7;\n }\n\n .extra-info-group {\n max-height: 0;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/8532.88b90ac86f3060a3144e.css.map b/priv/static/static/css/8532.88b90ac86f3060a3144e.css.map
deleted file mode 100644
index 271f4c7e9..000000000
--- a/priv/static/static/css/8532.88b90ac86f3060a3144e.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/8532.88b90ac86f3060a3144e.css","mappings":"AAGA,gBACE,WACA,0BACE,iBACA,kDACE,aACA,eACA,cACA,2DACE,aACA,cAGA,YAFA,WACA,UACA,CACA,+DACE,YACA,qEACE","sources":["webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue"],"sourcesContent":["\n@import '../../_variables.scss';\n\n.sticker-picker {\n width: 100%;\n .contents {\n min-height: 250px;\n .sticker-picker-content {\n display: flex;\n flex-wrap: wrap;\n padding: 0 4px;\n .sticker {\n display: flex;\n flex: 1 1 auto;\n margin: 4px;\n width: 56px;\n height: 56px;\n img {\n height: 100%;\n &:hover {\n filter: drop-shadow(0 0 5px var(--accent, $fallback--link));\n }\n }\n }\n }\n }\n}\n\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/9114.8def3b2b7fe70b3b3712.css b/priv/static/static/css/9114.8def3b2b7fe70b3b3712.css
new file mode 100644
index 000000000..6c25e9030
--- /dev/null
+++ b/priv/static/static/css/9114.8def3b2b7fe70b3b3712.css
@@ -0,0 +1,11 @@
+.importer-uploading{font-size:1.5em;margin:.25em}.exporter-processing{margin:.25em}.autosuggest{position:relative}.autosuggest-input{display:block;width:100%}.autosuggest-results{background-color:#121a24;background-color:var(--bg,#121a24);border:1px solid #222;border-color:var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);border-top-left-radius:0;border-top-right-radius:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);left:0;max-height:400px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1}.block-card-content-container{margin-top:.5em;text-align:right}.block-card-content-container button{width:10em}.mute-card-content-container{margin-top:.5em;text-align:right}.mute-card-content-container button{width:10em}.domain-mute-card{align-items:center;display:flex;flex:1 0;justify-content:space-between;padding:.6em 1em .6em 0}.domain-mute-card-domain{margin-right:1em;overflow:hidden;text-overflow:ellipsis}.domain-mute-card button{width:10em}.autosuggest-results .domain-mute-card{padding-left:1em}.selectable-list-item-inner{align-items:center;display:flex}.selectable-list-item-inner>*{min-width:0}.selectable-list-item-selected-inner{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:var(--selectedMenuText,#b9b9ba)}.selectable-list-header{align-items:center;border-bottom:2px solid #222;border-bottom-color:var(--border,#222);display:flex;padding:.6em 0}.selectable-list-header-actions{flex:1}.selectable-list-checkbox-wrapper{flex:none;padding:0 10px}.with-subscription-loading{padding:10px;text-align:center}.with-subscription-loading .error{font-size:1rem}.mutes-and-blocks-tab{height:100%}.mutes-and-blocks-tab .usersearch-wrapper{padding:1em}.mutes-and-blocks-tab .bulk-actions{min-height:2em;padding:0 1em;text-align:right}.mutes-and-blocks-tab .bulk-action-button{width:10em}.mutes-and-blocks-tab .domain-mute-form{display:flex;flex-direction:column;padding:1em}.mutes-and-blocks-tab .domain-mute-button{align-self:flex-end;margin-top:1em;width:10em}.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ServerSideIndicator{display:inline-block;position:relative}.serverside-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.mfa-backup-codes .warning{color:orange;color:var(--cOrange,orange)}.mfa-backup-codes .backup-codes{font-family:var(--postCodeFont,monospace)}.mfa-settings .method-item,.mfa-settings .mfa-heading{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:space-between}.mfa-settings .warning{color:orange;color:var(--cOrange,orange)}.mfa-settings .setup-otp{display:flex;flex-wrap:wrap;justify-content:center}.mfa-settings .setup-otp .qr-code{flex:1;padding-right:10px}.mfa-settings .setup-otp .verify{flex:1}.mfa-settings .setup-otp .error{margin:4px 0 0}.mfa-settings .setup-otp .confirm-otp-actions button{margin-top:5px;width:15em}
+/*!
+ * Cropper.js v1.5.12
+ * https://fengyuanchen.github.io/cropperjs
+ *
+ * Copyright 2015-present Chen Fengyuan
+ * Released under the MIT license
+ *
+ * Date: 2021-06-12T08:00:11.623Z
+ */.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.image-cropper-img-input{display:none}.image-cropper-image-container{position:relative}.image-cropper-image-container img{display:block;max-width:100%}.image-cropper-buttons-wrapper{margin-top:10px}.image-cropper-buttons-wrapper button{margin-top:5px}.profile-tab .bio{margin:0}.profile-tab .visibility-tray{padding-top:5px}.profile-tab input[type=file]{height:auto;padding:5px}.profile-tab .banner-background-preview{max-width:100%;position:relative;width:300px}.profile-tab .banner-background-preview img{width:100%}.profile-tab .uploading{font-size:1.5em;margin:.25em}.profile-tab .name-changer{width:100%}.profile-tab .current-avatar-container{height:150px;position:relative;width:150px}.profile-tab .current-avatar{border-radius:4px;border-radius:var(--avatarRadius,4px);display:block;height:100%;width:100%}.profile-tab .reset-button{background-color:rgba(0,0,0,.6);border-radius:5px;border-radius:var(--tooltipRadius,5px);cursor:pointer;font-size:1.5em;height:1.5em;line-height:1.5em;opacity:.7;position:absolute;right:.2em;text-align:center;top:.2em;width:1.5em}.profile-tab .reset-button:hover{opacity:1}.profile-tab .reset-button svg{color:#fff}.profile-tab .oauth-tokens{width:100%}.profile-tab .oauth-tokens th{text-align:left}.profile-tab .oauth-tokens .actions{text-align:right}.profile-tab-usersearch-wrapper{padding:1em}.profile-tab-bulk-actions{min-height:2em;padding:0 1em;text-align:right}.profile-tab-bulk-actions button{width:10em}.profile-tab-domain-mute-form{display:flex;flex-direction:column;padding:1em}.profile-tab-domain-mute-form button{align-self:flex-end;margin-top:1em;width:10em}.profile-tab .setting-subitem{margin-left:1.75em}.profile-tab .profile-fields{display:flex}.profile-tab .profile-fields>.emoji-input{flex:1 1 auto;margin:0 .2em .5em;min-width:0}.profile-tab .profile-fields .delete-field{align-self:center;margin:0 .2em .5em;padding:0 .5em;width:20px}.profile-tab .birthday-input{display:block;margin-bottom:1em}.css-unit-input,.css-unit-input select{margin-left:.5em;max-width:4em;min-width:4em;width:4em}.column-settings{display:flex;flex-wrap:wrap;justify-content:space-evenly}.column-settings .size-label{display:block;margin-bottom:.5em;margin-top:.5em}.color-input{display:inline-flex}.color-input-field.input{align-items:stretch;display:inline-flex;flex:0 0 0;max-width:9em;padding:.2em 8px}.color-input-field.input input{background:none;border:none;color:#b9b9ba;color:var(--inputText,#b9b9ba);margin:0;padding:0}.color-input-field.input input.textColor{flex:1 0 3em;min-width:3em;padding:0}.color-input-field.input .computedIndicator,.color-input-field.input .transparentIndicator,.color-input-field.input input.nativeColor{align-self:stretch;flex:0 0 2em;min-height:100%;min-width:2em}.color-input-field.input .transparentIndicator{background-color:#f0f;position:relative}.color-input-field.input .transparentIndicator:after,.color-input-field.input .transparentIndicator:before{background-color:#000;content:"";display:block;height:50%;position:absolute;width:50%}.color-input-field.input .transparentIndicator:after{left:0;top:0}.color-input-field.input .transparentIndicator:before{bottom:0;right:0}.color-input .label{flex:1 1 auto}.color-control input.text-input{flex:1;max-width:7em}.shadow-control{display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:1em}.shadow-control .shadow-preview-container,.shadow-control .shadow-tweak{margin:5px 6px 0 0}.shadow-control .shadow-preview-container{display:flex;flex:0;flex-wrap:wrap}.shadow-control .shadow-preview-container input[type=number]{min-width:2em;width:5em}.shadow-control .shadow-preview-container .x-shift-control,.shadow-control .shadow-preview-container .y-shift-control{display:flex;flex:0}.shadow-control .shadow-preview-container .x-shift-control[disabled=disabled] *,.shadow-control .shadow-preview-container .y-shift-control[disabled=disabled] *{opacity:.5}.shadow-control .shadow-preview-container .x-shift-control{align-items:flex-start}.shadow-control .shadow-preview-container .x-shift-control .wrap,.shadow-control .shadow-preview-container input[type=range]{height:2em;margin:0;width:15em}.shadow-control .shadow-preview-container .y-shift-control{align-items:flex-end;flex-direction:column}.shadow-control .shadow-preview-container .y-shift-control .wrap{height:15em;width:2em}.shadow-control .shadow-preview-container .y-shift-control input[type=range]{transform:rotate(90deg);transform-origin:1em 1em}.shadow-control .shadow-preview-container .preview-window{align-items:center;background-color:#999;background-image:linear-gradient(45deg,#666 25%,transparent 0),linear-gradient(-45deg,#666 25%,transparent 0),linear-gradient(45deg,transparent 75%,#666 0),linear-gradient(-45deg,transparent 75%,#666 0);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:4px;border-radius:var(--inputRadius,4px);display:flex;flex:1;justify-content:center}.shadow-control .shadow-preview-container .preview-window .preview-block{background-color:#121a24;background-color:var(--bg,#121a24);border-radius:10px;border-radius:var(--panelRadius,10px);height:33%;width:33%}.shadow-control .shadow-tweak{flex:1;min-width:280px}.shadow-control .shadow-tweak .id-control{align-items:stretch}.shadow-control .shadow-tweak .id-control .shadow-switcher{flex:1}.shadow-control .shadow-tweak .id-control .btn,.shadow-control .shadow-tweak .id-control .shadow-switcher{margin-right:5px;min-width:1px}.shadow-control .shadow-tweak .id-control .btn{margin:0 .1em;padding:0 .4em}.font-control input.custom-font{min-width:10em}.font-control.custom .font-switcher{border-bottom-right-radius:0;border-top-right-radius:0}.font-control.custom .custom-font{border-bottom-left-radius:0;border-top-left-radius:0}.contrast-ratio{display:flex;justify-content:flex-end;margin-bottom:5px;margin-top:-4px}.contrast-ratio .label{margin-right:1em}.contrast-ratio .rating{display:inline-block;margin-left:.5em;text-align:center}.preview-container{position:relative}.underlay-preview{bottom:0;left:10px;position:absolute;right:10px;top:0}.theme-tab{padding-bottom:2em}.theme-tab .preset-switcher{margin-right:1em}.theme-tab .btn{margin-left:.25em;margin-right:.25em}.theme-tab .style-control{align-items:baseline;display:flex;margin-bottom:5px}.theme-tab .style-control .label{flex:1}.theme-tab .style-control .opt{margin:.5em}.theme-tab .style-control .color-input{flex:0 0 0}.theme-tab .style-control input,.theme-tab .style-control select{flex:0;margin:0;min-width:3em}.theme-tab .style-control input[type=number],.theme-tab .style-control select[type=number]{min-width:5em}.theme-tab .style-control input[type=range],.theme-tab .style-control select[type=range]{align-self:flex-start;flex:1;min-width:3em}.theme-tab .style-control.disabled input,.theme-tab .style-control.disabled select{opacity:.5}.theme-tab .reset-container{flex-wrap:wrap}.theme-tab .apply-container,.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .radius-container,.theme-tab .reset-container{display:flex}.theme-tab .fonts-container,.theme-tab .radius-container{flex-direction:column}.theme-tab .color-container{flex-wrap:wrap;justify-content:space-between}.theme-tab .color-container>h4{width:99%}.theme-tab .color-container,.theme-tab .fonts-container,.theme-tab .presets-container,.theme-tab .radius-container,.theme-tab .shadow-container{margin:1em 1em 0}.theme-tab .tab-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:1em;min-height:30px;width:100%}.theme-tab .tab-header p{flex:1;margin:0 .5em 0 0}.theme-tab .tab-header-buttons{display:flex;flex-direction:column}.theme-tab .tab-header-buttons .btn{flex:0 auto;margin-bottom:.5em;min-width:1px;padding:0 1em}.theme-tab .shadow-selector .override{flex:1;margin-left:.5em}.theme-tab .shadow-selector .select-container{margin-bottom:-3px;margin-top:-4px}.theme-tab .save-load,.theme-tab .save-load-options{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:center}.theme-tab .save-load .import-export,.theme-tab .save-load .presets,.theme-tab .save-load-options .import-export,.theme-tab .save-load-options .presets{margin-bottom:.5em}.theme-tab .save-load .import-export,.theme-tab .save-load-options .import-export{display:flex}.theme-tab .save-load .override,.theme-tab .save-load-options .override{margin-left:.5em}.theme-tab .save-load-options{flex-wrap:wrap;justify-content:center;margin-top:.5em}.theme-tab .save-load-options .keep-option{margin:0 .5em .5em;min-width:25%}.theme-tab .preview-container{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50% 50%;background-size:cover;border-bottom:1px dashed #222;border-color:#222 currentcolor;border-top:1px dashed #222;border-color:var(--border,#222);margin:1em 0;padding:1em}.theme-tab .preview-container .dummy .post{display:flex;font-family:var(--postFont)}.theme-tab .preview-container .dummy .post .content{flex:1}.theme-tab .preview-container .dummy .post .content h4{margin-bottom:.25em}.theme-tab .preview-container .dummy .post .content .icons{display:flex;margin-top:.5em}.theme-tab .preview-container .dummy .post .content .icons i{margin-right:1em}.theme-tab .preview-container .dummy .after-post{align-items:center;display:flex;margin-top:1em}.theme-tab .preview-container .dummy .avatar,.theme-tab .preview-container .dummy .avatar-alt{background:linear-gradient(135deg,#b8e1fc,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd);color:#000;font-family:sans-serif;margin-right:1em;text-align:center}.theme-tab .preview-container .dummy .avatar-alt{border-radius:10px;border-radius:var(--avatarAltRadius,10px);flex:0 auto;font-size:12px;line-height:20px;margin-left:28px;min-height:20px;min-width:20px}.theme-tab .preview-container .dummy .avatar{flex:0 auto;font-size:14px;height:48px;line-height:48px;width:48px}.theme-tab .preview-container .dummy .actions{align-items:baseline;display:flex}.theme-tab .preview-container .dummy .actions .checkbox{align-items:baseline;display:inline-flex;flex:1;margin-right:1em}.theme-tab .preview-container .dummy .separator{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);margin:1em}.theme-tab .preview-container .dummy .btn{min-width:3em}.theme-tab .radius-item{flex-basis:auto}.theme-tab .color-item,.theme-tab .radius-item{display:flex;flex:1 1 0;flex-direction:column;margin:5px 6px 0 0;min-width:20em}.theme-tab .color-item.wide,.theme-tab .radius-item.wide{min-width:60%}.theme-tab .color-item:not(.wide):nth-child(odd),.theme-tab .radius-item:not(.wide):nth-child(odd){margin-right:7px}.theme-tab .color-item .color,.theme-tab .color-item .opacity,.theme-tab .radius-item .color,.theme-tab .radius-item .opacity{align-items:baseline;display:flex}.theme-tab .theme-color-cl,.theme-tab .theme-radius-rn{align-self:stretch;background:transparent;border:0;box-shadow:none;color:var(--faint,hsla(240,1%,73%,.5))}.theme-tab .theme-color-cl,.theme-tab .theme-color-in,.theme-tab .theme-radius-in{margin-left:4px}.theme-tab .theme-radius-in{flex:1;max-width:7em;min-width:1em}.theme-tab .theme-radius-lb{max-width:50em}.theme-tab .theme-preview-content{padding:20px}.theme-tab .theme-warning{align-items:baseline;display:flex;margin-bottom:.5em}.theme-tab .theme-warning .buttons .btn{margin-bottom:.5em}.extra-content .apply-container{display:flex;flex-direction:row;flex-grow:1;justify-content:space-around}.extra-content .apply-container .btn{flex-grow:1;max-width:10em;min-height:2em;min-width:0;padding:0}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item select{min-width:10em}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed,red);color:red}.settings_tab-switcher .setting-item .number-input{max-width:6em}
+/*# sourceMappingURL=9114.8def3b2b7fe70b3b3712.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/9114.8def3b2b7fe70b3b3712.css.map b/priv/static/static/css/9114.8def3b2b7fe70b3b3712.css.map
new file mode 100644
index 000000000..e8f8688ae
--- /dev/null
+++ b/priv/static/static/css/9114.8def3b2b7fe70b3b3712.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/9114.8def3b2b7fe70b3b3712.css","mappings":"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","sources":["webpack://pleroma_fe/./src/components/importer/importer.vue","webpack://pleroma_fe/./src/components/exporter/exporter.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/block_card/block_card.vue","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue","webpack://pleroma_fe/./src/hocs/with_subscription/with_subscription.scss","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/server_side_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack://pleroma_fe/./node_modules/cropperjs/dist/cropper.css","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue","webpack://pleroma_fe/./src/components/color_input/color_input.scss","webpack://pleroma_fe/./src/components/color_input/color_input.vue","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue","webpack://pleroma_fe/./src/components/font_control/font_control.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.scss"],"sourcesContent":["\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n","\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n","\n@import \"../../variables\";\n\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-style: solid;\n border-width: 1px;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n","\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n","\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n","\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n","\n@import \"../../variables\";\n\n.selectable-list {\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-item-selected-inner {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: 0.6em 0;\n border-bottom: 2px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding: 0 10px;\n flex: none;\n }\n}\n",".with-subscription {\n &-loading {\n padding: 10px;\n text-align: center;\n\n .error {\n font-size: 1rem;\n }\n }\n}\n",".mutes-and-blocks-tab {\n height: 100%;\n\n .usersearch-wrapper {\n padding: 1em;\n }\n\n .bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n }\n\n .bulk-action-button {\n width: 10em;\n }\n\n .domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n }\n\n .domain-mute-button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n}\n","\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ServerSideIndicator {\n display: inline-block;\n position: relative;\n}\n\n.serverside-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n@import \"../../../../variables\";\n\n.mfa-backup-codes {\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .backup-codes {\n font-family: var(--postCodeFont, monospace);\n }\n}\n","\n@import \"../../../../variables\";\n\n.mfa-settings {\n .mfa-heading,\n .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0; }\n\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n }\n }\n}\n","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:11.623Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n.cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n","\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n","@import \"../../../variables\";\n\n.profile-tab {\n .bio {\n margin: 0;\n }\n\n .visibility-tray {\n padding-top: 5px;\n }\n\n input[type=\"file\"] {\n padding: 5px;\n height: auto;\n }\n\n .banner-background-preview {\n max-width: 100%;\n width: 300px;\n position: relative;\n\n img {\n width: 100%;\n }\n }\n\n .uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n\n .name-changer {\n width: 100%;\n }\n\n .current-avatar-container {\n position: relative;\n width: 150px;\n height: 150px;\n }\n\n .current-avatar {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n }\n\n .reset-button {\n position: absolute;\n top: 0.2em;\n right: 0.2em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n background-color: rgb(0 0 0 / 60%);\n opacity: 0.7;\n width: 1.5em;\n height: 1.5em;\n text-align: center;\n line-height: 1.5em;\n font-size: 1.5em;\n cursor: pointer;\n\n &:hover {\n opacity: 1;\n }\n\n svg {\n color: white;\n }\n }\n\n .oauth-tokens {\n width: 100%;\n\n th {\n text-align: left;\n }\n\n .actions {\n text-align: right;\n }\n }\n\n &-usersearch-wrapper {\n padding: 1em;\n }\n\n &-bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n\n button {\n width: 10em;\n }\n }\n\n &-domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n\n button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n }\n\n .setting-subitem {\n margin-left: 1.75em;\n }\n\n .profile-fields {\n display: flex;\n\n & > .emoji-input {\n flex: 1 1 auto;\n margin: 0 0.2em 0.5em;\n min-width: 0;\n }\n\n .delete-field {\n width: 20px;\n align-self: center;\n margin: 0 0.2em 0.5em;\n padding: 0 0.5em;\n }\n }\n\n .birthday-input {\n display: block;\n margin-bottom: 1em;\n }\n}\n","\n.css-unit-input,\n.css-unit-input select {\n margin-left: 0.5em;\n width: 4em;\n max-width: 4em;\n min-width: 4em;\n}\n","\n.column-settings {\n display: flex;\n justify-content: space-evenly;\n flex-wrap: wrap;\n}\n\n.column-settings .size-label {\n display: block;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n","@import \"../../variables\";\n\n.color-input {\n display: inline-flex;\n\n &-field.input {\n display: inline-flex;\n flex: 0 0 0;\n max-width: 9em;\n align-items: stretch;\n padding: 0.2em 8px;\n\n input {\n background: none;\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n border: none;\n padding: 0;\n margin: 0;\n\n &.textColor {\n flex: 1 0 3em;\n min-width: 3em;\n padding: 0;\n }\n\n &.nativeColor {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n }\n\n .computedIndicator,\n .transparentIndicator {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n\n .transparentIndicator {\n // forgot to install counter-strike source, ooops\n background-color: #f0f;\n position: relative;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n background-color: #000;\n position: absolute;\n height: 50%;\n width: 50%;\n }\n\n &::after {\n top: 0;\n left: 0;\n }\n\n &::before {\n bottom: 0;\n right: 0;\n }\n }\n }\n\n .label {\n flex: 1 1 auto;\n }\n}\n","\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n","\n@import \"../../variables\";\n\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n $side: 15em;\n\n input[type=\"number\"] {\n width: 5em;\n min-width: 2em;\n }\n\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=\"disabled\"] * {\n opacity: 0.5;\n }\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=\"range\"] {\n margin: 0;\n width: $side;\n height: 2em;\n }\n\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n\n .wrap {\n width: 2em;\n height: $side;\n }\n\n input[type=\"range\"] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n\n .preview-window {\n flex: 1;\n background-color: #999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666 25%, transparent 25%),\n linear-gradient(-45deg, #666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666 75%),\n linear-gradient(-45deg, transparent 75%, #666 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0;\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .preview-block {\n width: 33%;\n height: 33%;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher,\n .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 0.4em;\n margin: 0 0.1em;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.font-control {\n input.custom-font {\n min-width: 10em;\n }\n\n &.custom {\n /* TODO Should make proper joiners... */\n .font-switcher {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .custom-font {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n","\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n","\n.preview-container {\n position: relative;\n}\n\n.underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n}\n","@import \"src/variables\";\n\n.theme-tab {\n padding-bottom: 2em;\n\n .preset-switcher {\n margin-right: 1em;\n }\n\n .btn {\n margin-left: 0.25em;\n margin-right: 0.25em;\n }\n\n .style-control {\n display: flex;\n align-items: baseline;\n margin-bottom: 5px;\n\n .label {\n flex: 1;\n }\n\n .opt {\n margin: 0.5em;\n }\n\n .color-input {\n flex: 0 0 0;\n }\n\n input,\n select {\n min-width: 3em;\n margin: 0;\n flex: 0;\n\n &[type=\"number\"] {\n min-width: 5em;\n }\n\n &[type=\"range\"] {\n flex: 1;\n min-width: 3em;\n align-self: flex-start;\n }\n }\n\n &.disabled {\n input,\n select {\n opacity: 0.5;\n }\n }\n }\n\n .reset-container {\n flex-wrap: wrap;\n }\n\n .fonts-container,\n .reset-container,\n .apply-container,\n .radius-container,\n .color-container, {\n display: flex;\n }\n\n .fonts-container,\n .radius-container {\n flex-direction: column;\n }\n\n .color-container {\n > h4 {\n width: 99%;\n }\n\n flex-wrap: wrap;\n justify-content: space-between;\n }\n\n .fonts-container,\n .color-container,\n .shadow-container,\n .radius-container,\n .presets-container {\n margin: 1em 1em 0;\n }\n\n .tab-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n width: 100%;\n min-height: 30px;\n margin-bottom: 1em;\n\n p {\n flex: 1;\n margin: 0;\n margin-right: 0.5em;\n }\n }\n\n .tab-header-buttons {\n display: flex;\n flex-direction: column;\n\n .btn {\n min-width: 1px;\n flex: 0 auto;\n padding: 0 1em;\n margin-bottom: 0.5em;\n }\n }\n\n .shadow-selector {\n .override {\n flex: 1;\n margin-left: 0.5em;\n }\n\n .select-container {\n margin-top: -4px;\n margin-bottom: -3px;\n }\n }\n\n .save-load,\n .save-load-options {\n display: flex;\n justify-content: center;\n align-items: baseline;\n flex-wrap: wrap;\n\n .presets,\n .import-export {\n margin-bottom: 0.5em;\n }\n\n .import-export {\n display: flex;\n }\n\n .override {\n margin-left: 0.5em;\n }\n }\n\n .save-load-options {\n flex-wrap: wrap;\n margin-top: 0.5em;\n justify-content: center;\n\n .keep-option {\n margin: 0 0.5em 0.5em;\n min-width: 25%;\n }\n }\n\n .preview-container {\n border-top: 1px dashed;\n border-bottom: 1px dashed;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n margin: 1em 0;\n padding: 1em;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-size: cover;\n background-position: 50% 50%;\n\n .dummy {\n .post {\n font-family: var(--postFont);\n display: flex;\n\n .content {\n flex: 1;\n\n h4 {\n margin-bottom: 0.25em;\n }\n\n .icons {\n margin-top: 0.5em;\n display: flex;\n\n i {\n margin-right: 1em;\n }\n }\n }\n }\n\n .after-post {\n margin-top: 1em;\n display: flex;\n align-items: center;\n }\n\n .avatar,\n .avatar-alt {\n background:\n linear-gradient(\n 135deg,\n #b8e1fc 0%,\n #a9d2f3 10%,\n #90bae4 25%,\n #90bcea 37%,\n #90bff0 50%,\n #6ba8e5 51%,\n #a2daf5 83%,\n #bdf3fd 100%\n );\n color: black;\n font-family: sans-serif;\n text-align: center;\n margin-right: 1em;\n }\n\n .avatar-alt {\n flex: 0 auto;\n margin-left: 28px;\n font-size: 12px;\n min-width: 20px;\n min-height: 20px;\n line-height: 20px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n flex: 0 auto;\n width: 48px;\n height: 48px;\n font-size: 14px;\n line-height: 48px;\n }\n\n .actions {\n display: flex;\n align-items: baseline;\n\n .checkbox {\n display: inline-flex;\n align-items: baseline;\n margin-right: 1em;\n flex: 1;\n }\n }\n\n .separator {\n margin: 1em;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .btn {\n min-width: 3em;\n }\n }\n }\n\n .radius-item {\n flex-basis: auto;\n }\n\n .radius-item,\n .color-item {\n min-width: 20em;\n margin: 5px 6px 0 0;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n\n &.wide {\n min-width: 60%;\n }\n\n &:not(.wide):nth-child(2n+1) {\n margin-right: 7px;\n }\n\n .color,\n .opacity {\n display: flex;\n align-items: baseline;\n }\n }\n\n .theme-radius-rn,\n .theme-color-cl {\n border: 0;\n box-shadow: none;\n background: transparent;\n color: var(--faint, $fallback--faint);\n align-self: stretch;\n }\n\n .theme-color-cl,\n .theme-radius-in,\n .theme-color-in {\n margin-left: 4px;\n }\n\n .theme-radius-in {\n min-width: 1em;\n max-width: 7em;\n flex: 1;\n }\n\n .theme-radius-lb {\n max-width: 50em;\n }\n\n .theme-preview-content {\n padding: 20px;\n }\n\n .theme-warning {\n display: flex;\n align-items: baseline;\n margin-bottom: 0.5em;\n\n .buttons {\n .btn {\n margin-bottom: 0.5em;\n }\n }\n }\n}\n\n.extra-content {\n .apply-container {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n flex-grow: 1;\n\n /* stylelint-disable-next-line no-descending-specificity */\n .btn {\n flex-grow: 1;\n min-height: 2em;\n min-width: 0;\n max-width: 10em;\n padding: 0;\n }\n }\n}\n","@import \"src/variables\";\n\n.settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--fg, $fallback--fg);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: 0.5em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: 0.5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n select {\n min-width: 10em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed, $fallback--cRed);\n color: $fallback--cRed;\n }\n\n .number-input {\n max-width: 6em;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/app.48e52505beba5b9ab69b.css b/priv/static/static/css/app.48e52505beba5b9ab69b.css
new file mode 100644
index 000000000..ee1ea9cb4
--- /dev/null
+++ b/priv/static/static/css/app.48e52505beba5b9ab69b.css
@@ -0,0 +1,2 @@
+.modal-view{align-items:center;animation-duration:.2s;animation-name:modal-background-fadein;bottom:0;display:flex;justify-content:center;left:0;opacity:0;overflow:auto;pointer-events:none;position:fixed;right:0;top:0;z-index:var(--ZI_modals)}.modal-view>*{pointer-events:auto}.modal-view.modal-background{background-color:rgba(0,0,0,.5);pointer-events:auto}.modal-view.open{opacity:1}@keyframes modal-background-fadein{0%{background-color:transparent}to{background-color:rgba(0,0,0,.5)}}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex:1;flex:1;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{left:0;position:absolute;top:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{background-color:transparent;border:none;opacity:0}.resize-observer[data-v-b329ee4c],.resize-observer[data-v-b329ee4c] object{display:block;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.login-form{display:flex;flex-direction:column;padding:.6em}.login-form .btn{min-height:2em;width:10em}.login-form .register{flex:1 1}.login-form .login-bottom{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:1em}.login-form .form-group{display:flex;flex-direction:column;line-height:24px;padding:.3em .5em .6em}.login-form .form-bottom{display:flex;height:32px;padding:.5em}.login-form .form-bottom button{width:10em}.login-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.login-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.media-upload{cursor:pointer}.media-upload .hidden-input-file{display:none}.ScopeSelector .scope{cursor:pointer;display:inline-block;min-height:1.3em;min-width:1.3em;text-align:center}.ScopeSelector .scope.selected svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.checkbox{display:inline-block;min-height:1.2em;position:relative}.checkbox-indicator{padding-left:1.2em;position:relative}.checkbox-indicator:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:block;font-size:1.1em;height:1.1em;line-height:1.1em;overflow:hidden;position:absolute;right:0;text-align:center;top:0;transition:color .2s;vertical-align:top;width:1.1em}.checkbox.disabled .checkbox-indicator:before,.checkbox.disabled .label{opacity:.5}.checkbox.disabled .label{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.checkbox input[type=checkbox]:checked+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba);content:"–"}.checkbox>span{margin-left:.5em}.popover-trigger-button{display:inline-block}.popover{box-shadow:2px 2px 3px rgba(0,0,0,.5);box-shadow:var(--popupShadow);max-width:calc(100vw - 20px);min-width:0;position:fixed;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.popover-default{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--postLink:var(--popoverPostLink,$fallback--link);--postFaintLink:var(--popoverPostFaintLink,$fallback--link);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);border-radius:4px;border-radius:var(--btnRadius,4px);color:#b9b9ba;color:var(--popoverText,#b9b9ba)}.popover-default:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.dropdown-menu{display:block;font-size:1em;list-style:none;max-width:100vw;padding:.5rem 0;text-align:left;white-space:nowrap;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.dropdown-menu .dropdown-divider{border-top:1px solid #222;border-top:1px solid var(--border,#222);height:0;margin:.5rem 0;overflow:hidden}.dropdown-menu .dropdown-item{--btnText:var(--popoverText,$fallback--text);background-color:transparent;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;clear:both;display:block;font-weight:400;height:100%;line-height:21px;overflow:hidden;padding:.5em .75em;text-align:inherit;white-space:nowrap;width:100%}.dropdown-menu .dropdown-item-icon svg{color:var(--menuPopoverIcon,#666);margin-right:.75rem;width:22px}.dropdown-menu .dropdown-item.-has-submenu .chevron-icon{margin-left:2rem;margin-right:.25rem}.dropdown-menu .dropdown-item:active,.dropdown-menu .dropdown-item:hover{--btnText:var(--selectedMenuPopoverText,$fallback--link);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);box-shadow:none}.dropdown-menu .dropdown-item:active svg,.dropdown-menu .dropdown-item:hover svg{--icon:var(--selectedMenuPopoverIcon,$fallback--icon);color:var(--selectedMenuPopoverIcon,#666)}.dropdown-menu .dropdown-item .menu-checkbox{background-color:#182230;background-color:var(--input,#182230);border-radius:0;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);display:inline-block;line-height:22px;margin-right:.75em;max-height:22px;max-width:22px;min-height:22px;min-width:22px;text-align:center;vertical-align:middle}.dropdown-menu .dropdown-item .menu-checkbox.menu-checkbox-checked:after{content:"✓";font-size:1.25em}.dropdown-menu .dropdown-item .menu-checkbox.-radio{border-radius:9999px}.dropdown-menu .dropdown-item .menu-checkbox.-radio.menu-checkbox-checked:after{content:"•";font-size:2em}.dropdown-menu .button-default.dropdown-item,.dropdown-menu .button-default.dropdown-item i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item:active{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#d8a070;color:var(--selectedMenuPopoverText,#d8a070)}.dropdown-menu .button-default.dropdown-item:disabled{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item.toggled{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.still-image{align-items:center;display:inline-flex;line-height:0;overflow:hidden;position:relative}.still-image canvas{bottom:0;left:0;position:absolute;right:0;top:0;visibility:var(--_still-image-canvas-visibility,visible)}.still-image canvas,.still-image img{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.still-image.animated:before{zoom:var(--_still_image-label-scale,1);background:hsla(0,0%,50%,.5);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#fff;content:"gif";display:block;font-size:.7em;left:.5em;line-height:1;padding:2px 4px;position:absolute;top:.5em;visibility:var(--_still-image-label-visibility,visible);z-index:2}.still-image.animated:hover canvas{display:none}.still-image.animated:hover:before{visibility:var(--_still-image-label-visibility,hidden)}.still-image.animated img{visibility:var(--_still-image-img-visibility,hidden)}.still-image.animated:hover img{visibility:visible}.emoji-picker{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);display:flex;flex-direction:column;max-width:calc(100vw - 20px);width:25em}.emoji-picker-header-image{align-items:center;display:inline-flex;height:32px;justify-content:center;max-height:32px;max-width:32px;width:32px}.emoji-picker-header-image .still-image{height:100%;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:100%}.emoji-picker .keep-open,.emoji-picker .too-many-emoji{line-height:normal;padding:7px}.emoji-picker .too-many-emoji{display:flex;flex-direction:column}.emoji-picker .keep-open-label{display:flex;padding:0 7px}.emoji-picker .heading{display:flex;padding:10px 7px 5px}.emoji-picker .content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-tabs{display:flex;flex-flow:row nowrap;flex-grow:1;overflow-x:auto}.emoji-picker .additional-tabs{border-left:1px solid #666;border-left-color:var(--icon,#666);display:flex;flex:0 0 auto;padding-left:7px}.emoji-picker .additional-tabs,.emoji-picker .emoji-tabs{align-content:center;display:flex;flex-basis:auto}.emoji-picker .additional-tabs-item,.emoji-picker .emoji-tabs-item{align-items:center;cursor:pointer;display:flex;font-size:1.85em;height:32px;max-height:32px;max-width:32px;padding:0 7px;width:32px}.emoji-picker .additional-tabs-item.disabled,.emoji-picker .emoji-tabs-item.disabled{opacity:.5;pointer-events:none}.emoji-picker .additional-tabs-item.active,.emoji-picker .emoji-tabs-item.active{border-bottom:4px solid}.emoji-picker .additional-tabs-item.active svg,.emoji-picker .emoji-tabs-item.active svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.emoji-picker .sticker-picker{flex:1 1 auto}.emoji-picker .emoji-content,.emoji-picker .stickers-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-content.hidden,.emoji-picker .stickers-content.hidden{opacity:0;pointer-events:none;position:absolute}.emoji-picker .emoji-search{flex:0 0 auto;padding:5px}.emoji-picker .emoji-search input{width:100%}.emoji-picker .emoji-groups{flex:1 1 1px;height:100%;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;min-height:200px;overflow:auto;position:relative;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.emoji-picker .emoji-groups.scrolled-top{-webkit-mask-size:100% 20px,100% 0,auto;mask-size:100% 20px,100% 0,auto}.emoji-picker .emoji-groups.scrolled-bottom{-webkit-mask-size:100% 0,100% 20px,auto;mask-size:100% 0,100% 20px,auto}.emoji-picker .emoji-group{align-items:center;display:flex;flex-wrap:wrap;justify-content:left;padding-left:5px}.emoji-picker .emoji-group-title{font-size:.85em;margin:0;width:100%}.emoji-picker .emoji-group-title.disabled{display:none}.emoji-picker .emoji-item{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:32px;justify-content:center;line-height:32px;margin:4px;width:32px}.emoji-picker .emoji-item .emoji-picker-emoji.-custom{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.emoji-picker .emoji-item .emoji-picker-emoji.-unicode{font-size:24px;overflow:hidden}.emoji-input{display:flex;flex-direction:column;position:relative}.emoji-input .emoji-picker-icon{cursor:pointer;font-size:1.3em;line-height:24px;margin:.2em .25em;position:absolute;right:0;top:0}.emoji-input .emoji-picker-icon:hover i{color:#b9b9ba;color:var(--text,#b9b9ba)}.emoji-input .emoji-picker-panel{margin-top:2px;position:absolute;z-index:20}.emoji-input .emoji-picker-panel.hide{display:none}.emoji-input input,.emoji-input textarea{flex:1 0 auto}.emoji-input.with-picker input{padding-right:30px}.emoji-input .hidden-overlay{bottom:0;color:red;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.emoji-input .hidden-overlay .caret{border:1px solid red;margin-right:calc(-1ch - 1px);width:0}.autocomplete-panel{position:absolute}.autocomplete-item{border-bottom:1px solid rgba(0,0,0,.4);cursor:pointer;display:flex;height:32px;padding:.2em .4em}.autocomplete-item .image{font-size:32px;height:32px;line-height:32px;margin-right:4px;text-align:center;width:32px}.autocomplete-item .image img{height:32px;-o-object-fit:contain;object-fit:contain;width:32px}.autocomplete-item .label{display:flex;flex-direction:column;justify-content:center;margin:0 .1em 0 .2em}.autocomplete-item .label .displayText{line-height:1.5}.autocomplete-item .label .detailText{font-size:9px;line-height:9px}.autocomplete-item.highlighted{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#182230;background-color:var(--selectedMenuPopover,#182230);color:var(--selectedMenuPopoverText,#b9b9ba)}label.Select{padding:0}label.Select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:#b9b9ba;color:var(--inputText,--text,#b9b9ba);font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;height:2em;line-height:16px;margin:0;padding:0 2em 0 .2em;width:100%;z-index:1}label.Select .select-down-icon{bottom:0;color:#b9b9ba;color:var(--inputText,#b9b9ba);height:100%;line-height:2;pointer-events:none;position:absolute;right:5px;top:0;width:.875em;z-index:0}.poll-form{display:flex;flex-direction:column;padding:0 .5em .5em}.poll-form .add-option{align-self:flex-start;padding-left:.1em;padding-top:.25em}.poll-form .poll-option{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.25em}.poll-form .input-container{width:100%}.poll-form .input-container input{padding-right:2.5em;width:100%}.poll-form .delete-option{margin-left:-1.5em;width:1.5em;z-index:1}.poll-form .poll-type-expiry{display:flex;margin-top:.5em;width:100%}.poll-form .poll-type{flex:1 1 60%;margin-right:.75em}.poll-form .poll-type .poll-type-select{padding-right:.75em}.poll-form .poll-expiry{display:flex}.poll-form .poll-expiry .expiry-amount{text-align:right;width:3em}.Flash{display:inline-block;position:relative}.Flash,.Flash .placeholder,.Flash .player{height:100%;width:100%}.Flash .placeholder{align-items:center;background:var(--bg);color:var(--link);display:flex;justify-content:center}.Flash .hider{top:0}.Flash .label{word-wrap:normal;flex:1 1 0;line-height:1.2;text-align:center;white-space:normal}.Flash .hidden{display:none;visibility:"hidden"}.Attachment{align-self:flex-start;border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);display:inline-flex;flex-direction:column;height:100%;line-height:0;position:relative}.Attachment .attachment-wrapper{flex:1 1 auto;height:100%;overflow:hidden;position:relative}.Attachment .description-container{display:flex;flex:0 1 0;padding-top:.5em;z-index:1}.Attachment .description-container p{flex:1;line-height:1.5;margin:0;overflow:hidden;padding:.5em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.Attachment .description-container.-static{background:var(--popover);bottom:0;box-shadow:var(--popupShadow);left:0;padding-top:0;position:absolute;right:0}.Attachment .description-field{flex:1;min-width:0}.Attachment .audio-container,.Attachment .flash-container,.Attachment .image-container,.Attachment .oembed-container,.Attachment .placeholder-container,.Attachment .video-container{display:flex;height:100%;justify-content:center;width:100%}.Attachment .image-container .image{height:100%;width:100%}.Attachment .flash-container .flash,.Attachment .flash-container video,.Attachment .video-container .flash,.Attachment .video-container video{align-self:center;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.Attachment .audio-container{align-items:flex-end;display:flex}.Attachment .audio-container audio{height:100%;width:100%}.Attachment .placeholder-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding-top:.5em}.Attachment .play-icon{color:hsla(0,0%,100%,.75);font-size:64px;left:calc(50% - 32px);position:absolute;text-shadow:0 0 2px rgba(0,0,0,.4);top:calc(50% - 32px)}.Attachment .play-icon:before{margin:0}.Attachment .attachment-buttons{display:flex;margin-right:.5em;margin-top:.5em;position:absolute;right:0;top:0;z-index:1}.Attachment .attachment-buttons .attachment-button{background:hsla(0,0%,90%,.7);border-radius:5px;border-radius:var(--tooltipRadius,5px);font-size:1.25em;height:2em;margin-left:.5em;padding:0;text-align:center;width:2em}.Attachment .attachment-buttons .attachment-button .svg-inline--fa{color:rgba(0,0,0,.6)}.Attachment .attachment-buttons .attachment-button:hover .svg-inline--fa{color:rgba(0,0,0,.9)}.Attachment.-contain-fit canvas,.Attachment.-contain-fit img{-o-object-fit:contain;object-fit:contain}.Attachment.-cover-fit canvas,.Attachment.-cover-fit img{-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container{display:flex;flex:1 0 100%;line-height:1.2em;margin-right:15px;width:100%}.Attachment .oembed-container img{width:100%}.Attachment .oembed-container .image{flex:1}.Attachment .oembed-container .image img{border:0;border-radius:5px;height:100%;-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container .text{flex:2;margin:8px;word-break:break-all}.Attachment .oembed-container .text h1{font-size:1rem;margin:0}.Attachment.-size-small .play-icon{zoom:.5;opacity:.7}.Attachment.-size-small .attachment-buttons{zoom:.7;opacity:.5}.Attachment.-editable{padding:.5em}.Attachment.-editable .attachment-buttons,.Attachment.-editable .description-container{margin:0}.Attachment.-placeholder{color:#d8a070;color:var(--postLink,#d8a070);display:inline-block;height:auto;line-height:1.5;overflow:hidden;white-space:nowrap}.Attachment.-placeholder:not(.-editable){border:none}.Attachment.-placeholder.-editable{align-items:baseline;display:flex;flex-direction:row}.Attachment.-placeholder.-editable .attachment-buttons,.Attachment.-placeholder.-editable .description-container{margin:0;padding:0;position:relative}.Attachment.-placeholder.-editable .description-container{flex:1;padding-left:.5em}.Attachment.-placeholder.-editable .attachment-buttons{align-self:center;order:99}.Attachment.-placeholder a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.Attachment.-placeholder svg{color:inherit}.Attachment.-loading{cursor:progress}.Attachment.-compact .placeholder-container{padding-bottom:.5em}.Gallery .gallery-rows{display:flex;flex-direction:column}.Gallery .gallery-row{flex-grow:1;height:0;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner{align-content:stretch;bottom:0;display:flex;flex-flow:row wrap;left:0;position:absolute;right:0;top:0}.Gallery .gallery-row .gallery-row-inner .gallery-item{box-sizing:border-box;flex-grow:1;height:100%;margin:0 .5em 0 0;min-width:2em}.Gallery .gallery-row .gallery-row-inner .gallery-item:last-child{margin:0}.Gallery .gallery-row .gallery-row-inner.-grid{grid-gap:.5em;display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));height:auto;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner.-grid .gallery-item{height:200px;margin:0}.Gallery .gallery-row.-grid,.Gallery .gallery-row.-minimal{height:auto}.Gallery .gallery-row.-grid .gallery-row-inner,.Gallery .gallery-row.-minimal .gallery-row-inner{position:relative}.Gallery .gallery-row:not(:first-child){margin-top:.5em}.Gallery.-long .gallery-rows{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;max-height:25em;overflow:hidden}.Gallery .many-attachments-text{line-height:2;text-align:center}.Gallery .many-attachments-buttons{display:flex}.Gallery .many-attachments-button{display:flex;flex:1;justify-content:center;line-height:2}.Gallery .many-attachments-button button{padding:0 2em}.Avatar{--_avatarShadowBox:var(--avatarStatusShadow);--_avatarShadowFilter:var(--avatarStatusShadowFilter);--_avatarShadowInset:var(--avatarStatusShadowInset);--_still-image-label-visibility:hidden;display:inline-block;height:48px;position:relative;width:48px}.Avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:32px;width:32px}.Avatar .avatar{border-radius:4px;border-radius:var(--avatarRadius,4px);box-shadow:var(--_avatarShadowBox);height:100%;width:100%}.Avatar .avatar.-better-shadow{box-shadow:var(--_avatarShadowInset);filter:var(--_avatarShadowFilter)}.Avatar .avatar.-animated:before{display:none}.Avatar .avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.Avatar .avatar.-placeholder{background-color:#182230;background-color:var(--fg,#182230)}.Avatar img{height:100%;width:100%}.Avatar .bot-indicator{background:hsla(0,0%,50%,.5);border-radius:var(--tooltipRadius);bottom:0;color:#fff;margin:-.2em;padding:.2em;position:absolute;right:0}.MentionLink{color:var(--link);display:inline;position:relative;white-space:normal;word-break:normal}.MentionLink .new,.MentionLink .original{border-radius:2px;display:inline}.MentionLink .mention-avatar{border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.2em;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1.5em}.MentionLink .full{word-wrap:normal;display:inline-block;height:100%;left:0;margin-top:.25em;opacity:0;padding:.5em;pointer-events:none;position:absolute;top:100%;transition:opacity .2s ease;-webkit-user-select:all;-moz-user-select:all;user-select:all;white-space:nowrap;z-index:1}.MentionLink .short.-with-tooltip,.MentionLink .you{-webkit-user-select:none;-moz-user-select:none;user-select:none}.MentionLink .full,.MentionLink .short{white-space:nowrap}.MentionLink .shortName{white-space:normal}.MentionLink .new.-you .shortName{font-weight:600}.MentionLink .new.-has-selection{background-color:var(--alertNeutral,#182230);color:var(--alertNeutralText,#b9b9ba)}.MentionLink .new .at{color:var(--link);display:inline-block;line-height:1;margin:0;opacity:.8;padding:0 .1em;vertical-align:-25%}.MentionLink .new.-striped .shortName{background-image:repeating-linear-gradient(135deg,var(--____highlight-tintColor),var(--____highlight-tintColor) 5px,var(--____highlight-tintColor2) 5px,var(--____highlight-tintColor2) 10px)}.MentionLink .new.-solid .shortName{background-image:linear-gradient(var(--____highlight-tintColor2),var(--____highlight-tintColor2))}.MentionLink .new.-side .shortName{box-shadow:0 -5px 3px -4px inset var(--____highlight-solidColor)}.MentionLink .serverName.-faded{color:var(--faintLink,#d8a070)}.mention-link-popover{max-height:20rem;max-width:70ch;overflow:hidden}.MentionsLine{word-break:break-all}.MentionsLine .mention-link:not(:first-child):before{content:" "}.MentionsLine .showMoreLess{color:var(--link);margin-left:.5em;white-space:normal}.HashtagLink{color:var(--link);display:inline-block;position:relative;white-space:normal}.RichContent blockquote{border-left:.2em solid var(--faint,hsla(240,1%,73%,.5));font-style:italic;margin:.2em 0 .2em .2em;padding-left:1em}.RichContent pre{overflow:auto}.RichContent code,.RichContent kbd,.RichContent pre,.RichContent samp,.RichContent var{font-family:var(--postCodeFont,monospace)}.RichContent p{margin:0 0 1em}.RichContent p:last-child{margin:0}.RichContent h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.RichContent h2{font-size:1.1em;margin:1em 0}.RichContent h3{font-size:1em;margin:1.2em 0}.RichContent h4{margin:1.1em 0}.RichContent .emoji,.RichContent .img{display:inline-block}.RichContent .emoji{height:var(--emoji-size,32px);width:var(--emoji-size,32px)}.RichContent .img,.RichContent video{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.poll .votes{display:flex;flex-direction:column;margin:0 0 .5em}.poll .poll-option{margin:.75em .5em}.poll .option-result{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-direction:row;height:100%;position:relative}.poll .option-result-label{align-items:center;display:flex;padding:.1em .25em;word-break:break-word;z-index:1}.poll .result-percentage{flex-shrink:0;width:3.5em}.poll .result-fill{background-color:#151e2a;background-color:var(--poll,#151e2a);border-radius:10px;border-radius:var(--panelRadius,10px);color:#b9b9ba;color:var(--pollText,#b9b9ba);height:100%;left:0;position:absolute;top:0;transition:width .5s}.poll .option-vote{align-items:center;display:flex}.poll input{width:3.5em}.poll .footer{align-items:center;display:flex}.poll.loading *{cursor:progress}.poll .poll-vote-button{margin-right:.5em;padding:0 .5em}.poll .poll-checkbox{display:none}.StatusBody{display:flex;flex-direction:column}.StatusBody .emoji{--_still_image-label-scale:0.5}.StatusBody .attachments{margin-top:.5em}.StatusBody .summary,.StatusBody .text{word-wrap:break-word;font-family:var(--postFont,sans-serif);line-height:var(--post-line-height);overflow-wrap:break-word;white-space:pre-wrap;word-break:break-word}.StatusBody .summary{display:block;font-style:italic;padding-bottom:.5em}.StatusBody .text.-single-line{height:1.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .summary-wrapper{border-color:var(--border,#222);border-style:solid;border-width:0 0 1px;flex-grow:0;margin-bottom:.5em}.StatusBody .summary-wrapper.-tall{position:relative}.StatusBody .summary-wrapper.-tall .summary{max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .text-wrapper{display:flex;flex-flow:column nowrap}.StatusBody .text-wrapper.-tall-status{height:220px;overflow-x:hidden;overflow-y:hidden;position:relative;z-index:1}.StatusBody .text-wrapper.-tall-status .media-body{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;min-height:0}.StatusBody .cw-status-hider,.StatusBody .status-unhider,.StatusBody .tall-status-hider,.StatusBody .tall-subject-hider{display:inline-block;text-align:center;width:100%;word-break:break-all}.StatusBody .tall-status-hider{height:70px;line-height:110px;margin-top:150px;position:absolute;z-index:2}.StatusBody .tall-subject-hider{padding-bottom:.5em}.StatusBody .cw-status-hider,.StatusBody .status-unhider{word-break:break-all}.StatusBody .cw-status-hider svg,.StatusBody .status-unhider svg{color:inherit}.StatusBody .greentext{color:#0fa00f;color:var(--postGreentext,#0fa00f)}.StatusBody .cyantext{color:var(--postCyantext,#0095ff)}.StatusBody.-compact{--emoji-size:16px;align-items:top;flex-direction:row}.StatusBody.-compact .attachments,.StatusBody.-compact .body{max-height:3.25em}.StatusBody.-compact .body{flex:5 1 auto;mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-repeat:repeat-x,repeat;mask-repeat:repeat-x,repeat;-webkit-mask-size:auto 3.5em,auto auto;mask-size:auto 3.5em,auto auto;min-width:5em;overflow:hidden;white-space:normal}.StatusBody.-compact .attachments{flex:1 1 0;height:100%;margin-left:.5em;margin-top:0;min-width:5em}.StatusBody.-compact .summary-wrapper{border:none;display:inline-block;line-height:inherit;margin:0}.StatusBody.-compact .summary-wrapper .summary:after{content:": "}.StatusBody.-compact .text-wrapper{display:inline-block}.link-preview-card{border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);color:#b9b9ba;color:var(--text,#b9b9ba);cursor:pointer;display:flex;flex-direction:row;margin-top:.5em;overflow:hidden}.link-preview-card .card-image{flex-shrink:0;max-width:25%;width:120px}.link-preview-card .card-image img{border-radius:10px;border-radius:var(--attachmentRadius,10px);height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.link-preview-card .card-content{display:flex;flex-direction:column;margin:.5em;max-height:100%}.link-preview-card .card-host{font-size:.85em}.link-preview-card .card-description{line-height:1.2em;margin:.5em 0 0;max-height:calc(3.6em - 1px);overflow:hidden;text-overflow:ellipsis;word-break:break-word}.link-preview-card .nsfw-alert{margin:2em 0}.StatusContent{flex:1;min-width:0}.post-status-form{position:relative}.post-status-form .attachments{margin-bottom:.5em}.post-status-form .form-bottom{display:flex;height:2.5em;justify-content:space-between;padding:.5em}.post-status-form .form-bottom button{width:10em}.post-status-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.post-status-form .form-bottom-left{display:flex;flex:1;margin-right:7px;max-width:10em;padding-right:7px}.post-status-form .preview-heading{display:flex;padding-left:.5em}.post-status-form .preview-toggle{cursor:pointer;flex:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.post-status-form .preview-toggle:hover{text-decoration:underline}.post-status-form .preview-toggle i,.post-status-form .preview-toggle svg{font-size:.8em;margin-left:.2em;transform:rotate(90deg)}.post-status-form .preview-container{margin-bottom:1em}.post-status-form .preview-error{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.post-status-form .preview-status{border:1px solid #222;border:1px solid var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0;padding:.5em}.post-status-form .text-format .only-format{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.post-status-form .visibility-tray{align-items:baseline;display:flex;justify-content:space-between;padding-top:5px}.post-status-form .visibility-notice.edit-warning>:first-child{margin-top:0}.post-status-form .visibility-notice.edit-warning>:last-child{margin-bottom:0}.post-status-form .media-upload-icon{justify-content:left;order:1}.post-status-form .emoji-icon{justify-content:center;order:2}.post-status-form .poll-icon{justify-content:right;order:3}.post-status-form .emoji-icon,.post-status-form .media-upload-icon,.post-status-form .poll-icon{align-items:center;display:flex;flex:1;font-size:1.85em;line-height:1.1;padding:0 .1em}.post-status-form .emoji-icon.selected i,.post-status-form .emoji-icon.selected label,.post-status-form .emoji-icon.selected svg,.post-status-form .emoji-icon:hover i,.post-status-form .emoji-icon:hover label,.post-status-form .emoji-icon:hover svg,.post-status-form .media-upload-icon.selected i,.post-status-form .media-upload-icon.selected label,.post-status-form .media-upload-icon.selected svg,.post-status-form .media-upload-icon:hover i,.post-status-form .media-upload-icon:hover label,.post-status-form .media-upload-icon:hover svg,.post-status-form .poll-icon.selected i,.post-status-form .poll-icon.selected label,.post-status-form .poll-icon.selected svg,.post-status-form .poll-icon:hover i,.post-status-form .poll-icon:hover label,.post-status-form .poll-icon:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.post-status-form .emoji-icon.disabled i,.post-status-form .emoji-icon.disabled svg,.post-status-form .media-upload-icon.disabled i,.post-status-form .media-upload-icon.disabled svg,.post-status-form .poll-icon.disabled i,.post-status-form .poll-icon.disabled svg{color:#666;color:var(--btnDisabledText,#666);cursor:not-allowed}.post-status-form .emoji-icon.disabled i:hover,.post-status-form .emoji-icon.disabled svg:hover,.post-status-form .media-upload-icon.disabled i:hover,.post-status-form .media-upload-icon.disabled svg:hover,.post-status-form .poll-icon.disabled i:hover,.post-status-form .poll-icon.disabled svg:hover{color:#666;color:var(--btnDisabledText,#666)}.post-status-form .error{text-align:center}.post-status-form .media-upload-wrapper{margin-bottom:.5em;margin-right:.2em;width:18em}.post-status-form .media-upload-wrapper img,.post-status-form .media-upload-wrapper video{max-height:10em;-o-object-fit:contain;object-fit:contain}.post-status-form .media-upload-wrapper .video{max-height:10em}.post-status-form .media-upload-wrapper input{flex:1;width:100%}.post-status-form .status-input-wrapper{display:flex;flex-direction:column;position:relative;width:100%}.post-status-form .btn[disabled]{cursor:not-allowed}.post-status-form form{display:flex;flex-direction:column;margin:.6em;position:relative}.post-status-form .form-group{display:flex;flex-direction:column;line-height:1.85;padding:.25em .5em .5em}.post-status-form .form-post-body{box-sizing:content-box;height:calc(var(--post-line-height)*1em);min-height:calc(var(--post-line-height)*1em);overflow:hidden;padding-bottom:calc(var(--_padding) + var(--post-line-height)*1em);resize:none;transition:min-height .2s .1s}.post-status-form .form-post-body.scrollable-form{overflow-y:auto}.post-status-form .main-input{position:relative}.post-status-form .character-counter{bottom:0;margin:0 .5em;padding:0;position:absolute;right:0}.post-status-form .character-counter.error{color:red;color:var(--cRed,red)}@keyframes fade-in{0%{opacity:0}to{opacity:.6}}@keyframes fade-out{0%{opacity:.6}to{opacity:0}}.post-status-form .drop-indicator{align-items:center;background-color:#121a24;background-color:var(--bg,#121a24);border:2px dashed #b9b9ba;border:2px dashed var(--text,#b9b9ba);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:5em;height:100%;justify-content:center;opacity:.6;position:absolute;width:100%}.remote-follow{max-width:220px}.remote-follow .remote-button{min-height:2em;width:100%}.dark-overlay:before{background:rgba(27,31,35,.5);bottom:0;content:" ";left:0;right:0;z-index:2000}.dark-overlay:before,.dialog-modal.panel{cursor:default;display:block;position:fixed;top:0}.dialog-modal.panel{background-color:#121a24;background-color:var(--bg,#121a24);left:50%;margin:15vh auto;max-height:80vh;max-width:90vw;transform:translateX(-50%);z-index:2001}.dialog-modal.panel .dialog-modal-heading .title{text-align:center}.dialog-modal.panel .dialog-modal-content{background-color:#121a24;background-color:var(--bg,#121a24);margin:0;padding:1rem;white-space:normal}.dialog-modal.panel .dialog-modal-footer{background-color:#121a24;background-color:var(--bg,#121a24);border-top:1px solid #222;border-top:1px solid var(--border,#222);display:flex;justify-content:flex-end;margin:0;padding:.5em}.dialog-modal.panel .dialog-modal-footer button{margin-left:.5rem;width:auto}.moderation-tools-popover{height:100%}.moderation-tools-popover .trigger{display:flex!important;height:100%}.moderation-tools-button i,.moderation-tools-button svg{font-size:.8em}.AccountActions .ellipsis-button{margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.AccountActions .ellipsis-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-note{display:flex;flex-direction:column}.user-note .heading{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.75em}.user-note .heading .btn{min-width:95px}.user-note .heading .buttons{display:flex;flex-direction:row;justify-content:right}.user-note .heading .buttons .btn{margin-left:.5em}.user-note .note-text{align-self:stretch}.user-note .note-text.-blank{color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.user-card{position:relative;z-index:1}.user-card:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.user-card .panel-heading{align-items:stretch;background:transparent;box-shadow:none;flex-direction:column;padding:.5em 0;position:relative;text-align:center}.user-card .panel-body{word-wrap:break-word;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;position:relative}.user-card .background-image{background-color:var(--profileBg);background-size:cover;border-bottom-left-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-bottom-right-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-top-left-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);border-top-right-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);bottom:0;left:0;-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 60%;mask-size:100% 60%;position:absolute;right:0;top:0;z-index:-2}.user-card .background-image.hide-bio{-webkit-mask-size:100% 40px;mask-size:100% 40px}.user-card-bio{display:block;line-height:1.3;margin:0;padding:1em;text-align:center}.user-card-bio a{color:#d8a070;color:var(--postLink,#d8a070)}.user-card-bio img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-card.-rounded-t{--__roundnessTop:var(--panelRadius);--__roundnessBottom:0;border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.user-card.-rounded{--__roundnessTop:var(--panelRadius);--__roundnessBottom:var(--panelRadius);border-radius:10px;border-radius:var(--panelRadius,10px)}.user-card.-popover{--__roundnessTop:var(--tooltipRadius);--__roundnessBottom:var(--tooltipRadius);border-radius:5px;border-radius:var(--tooltipRadius,5px)}.user-card.-bordered{border:1px solid #222;border-color:var(--border,#222)}.user-info{padding:0 26px}.user-info,.user-info a{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info a:hover{color:var(--icon)}.user-info .container{align-items:flex-start;display:flex;max-height:56px;min-width:0;padding:16px 0 6px}.user-info .container>*{min-width:0}.user-info .container>a{display:flex;vertical-align:middle}.user-info .container .Avatar{--_avatarShadowBox:var(--avatarShadow);--_avatarShadowFilter:var(--avatarShadowFilter);--_avatarShadowInset:var(--avatarShadowInset);height:56px;-o-object-fit:cover;object-fit:cover;width:56px}.user-info-avatar{cursor:pointer;position:relative}.user-info-avatar.-overlay{align-items:center;background-color:rgba(0,0,0,.3);border-radius:4px;border-radius:var(--avatarRadius,4px);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.user-info-avatar.-overlay svg{color:#fff}.user-info-avatar:hover .user-info-avatar.-overlay{opacity:1}.user-info .edit-profile-button,.user-info .external-link-button{cursor:pointer;margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.user-info .edit-profile-button:not(:hover) .icon,.user-info .external-link-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info .bottom-line{align-items:baseline;font-size:1.1em;font-weight:light}.user-info .bottom-line .lock-icon{margin-left:.5em}.user-info .bottom-line .user-screen-name{flex:0 1 auto;min-width:1px;overflow:hidden;text-overflow:ellipsis}.user-info .bottom-line .dailyAvg{color:#b9b9ba;color:var(--text,#b9b9ba);flex:0 0 auto;font-size:.7em;margin-left:1em;min-width:1px}.user-info .bottom-line .user-role{background-color:#182230;background-color:var(--alertNeutral,#182230);color:#b9b9ba;color:var(--alertNeutralText,#b9b9ba);flex:none}.user-info .user-summary{--emoji-size:1.7em;display:block;flex:1 1 0;line-height:2em;margin-left:.6em;text-align:left;text-overflow:ellipsis;white-space:nowrap;z-index:1}.user-info .user-summary .bottom-line,.user-info .user-summary .top-line{display:flex}.user-info .user-name{flex:1 1 auto;font-size:1.1em;margin-right:1em;overflow:hidden;text-overflow:ellipsis}.user-info .user-meta{align-items:baseline;display:flex;flex-wrap:wrap;line-height:22px;margin-bottom:.15em}.user-info .user-meta .following{flex:1 0 auto;margin:0 0 .25em;text-align:left}.user-info .user-meta .highlighter{align-self:start;display:flex;flex:0 1 auto;flex-wrap:wrap;margin-right:-.5em}.user-info .user-meta .highlighter .userHighlightCl{flex:1 0 auto;padding:2px 10px}.user-info .user-meta .highlighter .userHighlightSel{flex:1 0 auto;padding-bottom:0;padding-top:0}.user-info .user-meta .highlighter .userHighlightText{flex:1 0 auto;width:70px}.user-info .user-meta .highlighter .userHighlightCl,.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightText{margin-bottom:.25em;margin-right:.5em;vertical-align:top}.user-info .user-interactions{display:flex;flex-flow:row wrap;margin-right:-.75em;position:relative}.user-info .user-interactions>*{margin:0 .75em .6em 0;min-width:95px;white-space:nowrap}.user-info .user-interactions button{margin:0}.user-info .user-note{margin:0 .75em .6em 0}.sidebar .edit-profile-button{display:none}.user-counts{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-wrap:wrap;justify-content:space-between;line-height:16px;padding:.5em 1.5em 0;text-align:center}.user-count{flex:1 0 auto;margin:0 .5em;padding:.5em 0}.user-count h5{font-size:1em;font-weight:bolder;margin:0 0 .25em}.user-count a{text-decoration:none}.mute-expiry{display:flex;flex-direction:row}.user-panel .signed-in{overflow:visible;z-index:10}.NavigationEntry{align-items:baseline;box-sizing:border-box;color:#d8a070;color:var(--link,#d8a070);display:flex;height:3.5em;line-height:3.5em;padding:0 1em;width:100%}.NavigationEntry .timelines-chevron{margin-right:0}.NavigationEntry .main-link{flex:1}.NavigationEntry .menu-icon{margin-right:.8em}.NavigationEntry .extra-button{text-align:center;width:3em}.NavigationEntry .extra-button:last-child{margin-right:-.8em}.NavigationEntry:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.NavigationEntry:hover .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.NavigationEntry.-active .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active:hover{text-decoration:underline}.NavigationPins{display:flex;flex-wrap:wrap;height:100%;overflow:hidden}.NavigationPins .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:.5em;position:absolute;right:calc(50% - .75em);top:calc(50% - .5em);width:.5em}.NavigationPins .pinned-item{box-sizing:border-box;flex:1 0 3em;height:100%;min-width:2em;overflow:visible;position:relative;text-align:center}.NavigationPins .pinned-item .iconLetter,.NavigationPins .pinned-item .svg-inline--fa{margin:0}.NavigationPins .pinned-item.router-link-active{border-bottom:4px solid;color:#b9b9ba;color:var(--panelText,#b9b9ba)}.NavigationPins .pinned-item.router-link-active .iconLetter,.NavigationPins .pinned-item.router-link-active .svg-inline--fa{color:inherit}.NavPanel .panel{box-shadow:var(--panelShadow);overflow:hidden}.NavPanel ul{list-style:none;margin:0;padding:0}.NavPanel li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);position:relative}.NavPanel>li:first-child .menu-item{border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.NavPanel>li:last-child .menu-item{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.NavPanel li:last-child{border:none}.NavPanel .navigation-chevron{margin-right:.8em}.NavPanel .navigation-chevron,.NavPanel .timelines-chevron{font-size:1.1em;margin-left:.8em}.NavPanel .timelines-background{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0 0 0 .6em}.NavPanel .timelines{background-color:#121a24;background-color:var(--bg,#121a24)}.NavPanel .nav-panel-heading{--panel-heading-height-padding:0px}.features-panel li{line-height:24px}.who-to-follow *{vertical-align:middle}.who-to-follow img{height:32px;width:32px}.who-to-follow{margin:0;padding:0 1em}.who-to-follow-items{margin:1em 0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.who-to-follow-more{margin:1em 0;padding:0;text-align:center}.floating-shout{bottom:.5em;max-width:25em;position:fixed;z-index:var(--ZI_popovers)}.floating-shout.-left{left:.5em}.floating-shout:not(.-left){right:.5em}.shout-panel .shout-heading{cursor:pointer}.shout-panel .shout-heading .icon{color:#b9b9ba;color:var(--panelText,#b9b9ba);margin-right:.5em}.shout-panel .shout-heading .title{align-items:center;display:flex;justify-content:space-between}.shout-panel .shout-window{max-height:20em;overflow-x:hidden;overflow-y:auto}.shout-panel .shout-window-container{height:100%}.shout-panel .shout-message{display:flex;padding:.2em .5em}.shout-panel .shout-avatar img{border-radius:4px;border-radius:var(--avatarRadius,4px);height:24px;margin-right:.5em;margin-top:.25em;width:24px}.shout-panel .shout-input{display:flex}.shout-panel .shout-input textarea{flex:1;margin:.6em;min-height:3.5em;resize:none}.shout-panel .shout-panel .title{display:flex;justify-content:space-between}@keyframes media-fadein{0%{opacity:0}to{opacity:1}}.media-modal-view .modal-image-container{max-height:100%;max-width:100%;overflow:hidden}.media-modal-view .modal-image-container,.media-modal-view .modal-image-container-inner{align-items:center;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:center;width:100%}.media-modal-view .counter,.media-modal-view .description{color:#fff;margin-top:1em;padding:.2em 2em;text-shadow:0 0 10px #000,0 0 10px #000}.media-modal-view .description{flex:0 0 auto;max-height:9.5em;max-width:500px;min-height:1em;overflow-y:auto;word-break:break-all}.media-modal-view .modal-image{animation:media-fadein .1s cubic-bezier(.7,0,1,.6);image-orientation:from-image;max-height:100%;max-width:100%}.media-modal-view .modal-image.loading{opacity:.5}.media-modal-view .loading-spinner{align-items:center;display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.media-modal-view .loading-spinner svg{color:#fff}.media-modal-view .modal-view-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;height:3em;opacity:0;overflow:visible;padding:0;transition:opacity 333ms cubic-bezier(.4,0,.22,1);width:3em}.media-modal-view .modal-view-button .button-icon{background-color:rgba(0,0,0,.3);color:#fff;font-size:1rem;height:3em;line-height:3em;position:absolute;text-align:center;width:3em}.media-modal-view .modal-view-button-arrow{display:block;height:3em;margin-top:1.5em;position:absolute;top:50%;width:3em}.media-modal-view .modal-view-button-arrow .arrow-icon{background-color:rgba(0,0,0,.3);color:#fff;line-height:3em;position:absolute;text-align:center;top:0}.media-modal-view .modal-view-button-arrow--prev{left:0}.media-modal-view .modal-view-button-arrow--prev .arrow-icon{left:.5em}.media-modal-view .modal-view-button-arrow--next{right:0}.media-modal-view .modal-view-button-arrow--next .arrow-icon{right:.5em}.media-modal-view .modal-view-button-hide{position:absolute;right:0;top:0}.media-modal-view .modal-view-button-hide .button-icon{right:.5em;top:.5em}.modal-view.media-modal-view{flex-direction:column;overflow:hidden;z-index:var(--ZI_media_modal)}.modal-view.media-modal-view .modal-view-button-arrow,.modal-view.media-modal-view .modal-view-button-hide{opacity:.75}.modal-view.media-modal-view .modal-view-button-arrow:focus,.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:focus,.modal-view.media-modal-view .modal-view-button-hide:hover{box-shadow:none;outline:none}.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:hover{opacity:1}.side-drawer-container{align-items:stretch;display:flex;height:100%;left:0;position:fixed;top:0;transition-duration:0s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.side-drawer-container-open{transform:translate(0)}.side-drawer-container-closed{transform:translate(-100%);transition-delay:.35s}.side-drawer-darken{background-color:rgba(0,0,0,.5);height:100vh;left:0;position:fixed;top:0;transition:.35s;transition-property:background-color;width:100vw;z-index:-1}.side-drawer-darken-closed{background-color:transparent}.side-drawer-click-outside{flex:1 1 100%}.side-drawer{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);color:#d8a070;color:var(--popoverText,#d8a070);flex:0 0 80%;margin:0 0 0 -100px;max-width:20em;overflow-x:hidden;padding:0 0 1em 100px;transition:.35s;transition-property:transform;transition-timing-function:cubic-bezier(0,1,.5,1);width:80%}.side-drawer .badge{margin-left:10px}.side-drawer-logo-wrapper{align-items:center;display:flex;padding:.85em}.side-drawer-logo-wrapper img{flex:none;height:50px;margin-right:.85em}.side-drawer-logo-wrapper span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-drawer-click-outside-closed{flex:0 0 0}.side-drawer-closed{transform:translate(-100%)}.side-drawer-heading{align-items:stretch;background:transparent;display:flex;flex-direction:column;margin:0;padding:0}.side-drawer ul{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);list-style:none;margin:0;padding:0}.side-drawer ul:last-child{border:0}.side-drawer li{padding:0}.side-drawer li a,.side-drawer li button{box-sizing:border-box;display:block;height:3em;line-height:3em;padding:0 .7em}.side-drawer li a:hover,.side-drawer li button:hover{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#b9b9ba;color:var(--selectedMenuPopoverText,#b9b9ba)}.MobilePostButton.button-default{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;bottom:1.5em;box-shadow:0 2px 2px rgba(0,0,0,.3),0 4px 6px rgba(0,0,0,.3);display:flex;height:5em;justify-content:center;position:fixed;right:1.5em;transition:transform .35s;transition-timing-function:cubic-bezier(0,1,.5,1);width:5em;z-index:10}.MobilePostButton.hidden{transform:translateY(150%)}.MobilePostButton svg{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1.5em}@media (min-width:801px){.new-status-button:not(.always-show){display:none}}.ReplyButton{display:flex}.ReplyButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.ReplyButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ReplyButton .interactive.-active .svg-inline--fa,.ReplyButton .interactive:hover .svg-inline--fa{color:#0095ff;color:var(--cBlue,#0095ff)}.ReplyButton .interactive .focus-marker{visibility:hidden}.ReplyButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReplyButton .interactive:focus .focus-marker,.ReplyButton .interactive:hover .focus-marker{visibility:visible}.ReplyButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton{display:flex}.FavoriteButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.FavoriteButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.FavoriteButton .interactive .svg-inline--fa{animation-duration:.6s}.FavoriteButton .interactive.-favorited .svg-inline--fa,.FavoriteButton .interactive:hover .svg-inline--fa{color:orange;color:var(--cOrange,orange)}.FavoriteButton .interactive .focus-marker{visibility:hidden}.FavoriteButton .interactive .active-marker{visibility:visible}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.FavoriteButton .interactive:focus .focus-marker,.FavoriteButton .interactive:hover .focus-marker{visibility:visible}.FavoriteButton .interactive:focus .active-marker,.FavoriteButton .interactive:hover .active-marker{visibility:hidden}.FavoriteButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton .interactive:focus-visible .active-marker{visibility:hidden}.ReactButton .reaction-picker-filter{display:flex;padding:.5em}.ReactButton .reaction-picker-filter input{flex:1}.ReactButton .reaction-picker-divider{background-color:var(--border,#222);height:1px;margin:.5em;width:100%}.ReactButton .reaction-picker{align-content:flex-start;display:flex;flex-wrap:wrap;font-size:1.5em;height:9em;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;overflow-y:scroll;padding:.5em;text-align:center;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:10em}.ReactButton .reaction-picker .emoji-button{align-content:center;cursor:pointer;flex-basis:20%;line-height:1.5}.ReactButton .reaction-picker .emoji-button:hover{transform:scale(1.25)}.ReactButton .popover-trigger{margin:-10px;padding:10px}.ReactButton .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ReactButton .popover-trigger-button{width:auto}.ReactButton .popover-trigger-button .focus-marker{visibility:hidden}.ReactButton .popover-trigger-button:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReactButton .popover-trigger-button:focus .focus-marker,.ReactButton .popover-trigger-button:hover .focus-marker{visibility:visible}.ReactButton .popover-trigger-button:focus-visible .focus-marker{visibility:visible}.RetweetButton{display:flex}.RetweetButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.RetweetButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.RetweetButton .interactive .svg-inline--fa{animation-duration:.6s}.RetweetButton .interactive.-repeated .svg-inline--fa,.RetweetButton .interactive:hover .svg-inline--fa{color:#0fa00f;color:var(--cGreen,#0fa00f)}.RetweetButton .interactive .focus-marker{visibility:hidden}.RetweetButton .interactive .active-marker{visibility:visible}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.RetweetButton .interactive:focus .focus-marker,.RetweetButton .interactive:hover .focus-marker{visibility:visible}.RetweetButton .interactive:focus .active-marker,.RetweetButton .interactive:hover .active-marker{visibility:hidden}.RetweetButton .interactive:focus-visible .focus-marker{visibility:visible}.RetweetButton .interactive:focus-visible .active-marker{visibility:hidden}.ExtraButtons .popover-trigger{margin:-10px;padding:10px;position:static}.ExtraButtons .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ExtraButtons .popover-trigger-button{width:auto}.ExtraButtons .popover-trigger-button .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus .focus-marker,.ExtraButtons .popover-trigger-button:hover .focus-marker{visibility:visible}.ExtraButtons .popover-trigger-button:focus-visible .focus-marker{visibility:visible}.avatars{display:flex;flex-wrap:wrap;height:24px;margin:0;padding:0}.avatars .avatars-item{margin:0 0 5px 5px}.avatars .avatars-item:first-child{padding-left:5px}.avatars .avatars-item .avatar-small{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:24px;width:24px}.status-popover.popover{border-color:#222;border-color:var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);border-style:solid;border-width:1px;font-size:1rem;max-width:95%;min-width:15em}.status-popover.popover .Status.Status{border:none}.status-popover.popover .status-preview-no-content{padding:1em;text-align:center}.status-popover.popover .status-preview-no-content i{font-size:2em}.user-list-popover{--emoji-size:16px;padding:.5em}.user-list-popover .user-list-row{display:flex;flex-direction:row;padding:.25em}.user-list-popover .user-list-row .user-list-names{display:flex;flex-direction:column;margin-left:.5em;min-width:5em}.user-list-popover .user-list-row .user-list-names img{height:1em;width:1em}.user-list-popover .user-list-row .user-list-screen-name{font-size:.65em}.EmojiReactions{display:flex;flex-wrap:wrap;margin-top:.25em}.EmojiReactions .emoji-reaction{align-items:center;box-sizing:border-box;display:flex;justify-content:center;margin-right:.5em;margin-top:.5em;padding:0 .5em}.EmojiReactions .emoji-reaction .reaction-emoji{margin-right:.25em;width:1.25em}.EmojiReactions .emoji-reaction:focus{outline:none}.EmojiReactions .emoji-reaction.not-clickable{cursor:default}.EmojiReactions .emoji-reaction.not-clickable:hover{box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow)}.EmojiReactions .emoji-reaction.-picked-reaction{border:1px solid var(--accent,#d8a070);margin-left:-1px;margin-right:calc(.5em - 1px)}.EmojiReactions .emoji-reaction-expand{align-items:center;display:flex;justify-content:center;margin-right:.5em;margin-top:.5em;padding:0 .5em}.EmojiReactions .emoji-reaction-expand:hover{text-decoration:underline}.Status{word-wrap:break-word;min-width:0;white-space:normal;word-break:break-word}.Status:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Status.-focused{--lightText:var(--selectedPostLightText,$fallback--light);--faint:var(--selectedPostFaintText,$fallback--faint);--faintLink:var(--selectedPostFaintLink,$fallback--faint);--postLink:var(--selectedPostPostLink,$fallback--faint);--postFaintLink:var(--selectedPostFaintPostLink,$fallback--faint);--icon:var(--selectedPostIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedPost,#151e2a);color:#b9b9ba;color:var(--selectedPostText,#b9b9ba)}.Status .gravestone{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));display:flex;padding:var(--status-margin,.75em)}.Status .gravestone .deleted-text{align-items:center;margin:.5em 0}.Status .status-container{display:flex;padding:var(--status-margin,.75em)}.Status .status-container>*{min-width:0}.Status .status-container.-repeat{padding-top:0}.Status .pin{align-items:center;display:flex;justify-content:flex-end;padding:var(--status-margin,.75em) var(--status-margin,.75em) 0}._misclick-prevention .Status{pointer-events:none}._misclick-prevention .Status .attachments{cursor:auto;pointer-events:auto}.Status .left-side{margin-right:var(--status-margin,.75em)}.Status .right-side{flex:1;min-width:0}.Status .usercard{margin-bottom:var(--status-margin,.75em)}.Status .status-username{--_still_image-label-scale:0.25;--emoji-size:14px;flex-shrink:1;font-weight:700;margin-right:.4em;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .status-favicon{height:18px;margin-right:.4em;width:18px}.Status .status-heading{margin-bottom:.5em}.Status .heading-name-row{display:flex;justify-content:space-between;line-height:1.3}.Status .heading-name-row a{display:inline-block;word-break:break-all}.Status .account-name{flex:1 1 0;margin-right:.4em;min-width:1.6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .heading-left{display:flex;min-width:0}.Status .heading-right{display:flex;flex-shrink:0}.Status .heading-right .button-unstyled{margin:-5px;padding:5px}.Status .heading-right .button-unstyled:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.Status .heading-right .svg-inline--fa{margin-left:.25em}.Status .glued-label{display:inline-flex;white-space:nowrap}.Status .timeago{margin-right:.2em}.Status .heading-edited-row,.Status .heading-reply-row{align-content:baseline;align-items:stretch;font-size:.85em;line-height:130%;margin-top:.2em;max-width:100%;position:relative}.Status .mentions,.Status .reply-to-no-popover,.Status .reply-to-popover{flex-shrink:0;margin-right:.4em;min-width:0}.Status .reply-glued-label{margin-right:.5em}.Status .reply-to-popover .reply-to:hover:before{border-bottom:1px solid var(--faint);bottom:0;content:"";display:block;pointer-events:none;position:absolute;width:100%}.Status .reply-to-popover .faint-link:hover{text-decoration:none}.Status .reply-to-popover.-strikethrough .reply-to:after{border-bottom:1px solid var(--faint);content:"";display:block;pointer-events:none;position:absolute;top:50%;width:100%}.Status .mentions,.Status .reply-to{position:relative;white-space:nowrap}.Status .mentions-text,.Status .reply-to-text{color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .mentions-line{display:inline}.Status .replies{display:flex;flex-wrap:wrap;font-size:.85em;line-height:1.3;margin-top:.25em}.Status .replies>*{margin-right:.4em}.Status .reply-link{height:17px}.Status .repeat-info{padding:.4em var(--status-margin,.75em)}.Status .repeat-info .repeat-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Status .repeater-avatar{border-radius:var(--avatarAltRadius,10px);height:20px;margin-left:28px;width:20px}.Status .repeater-name{margin-right:0;text-overflow:ellipsis}.Status .repeater-name .emoji{height:14px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:14px}.Status .status-fadein{animation-duration:.4s;animation-name:fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.Status .status-actions{display:flex;margin-top:var(--status-margin,.75em);position:relative;width:100%}.Status .status-actions>*{flex:1;max-width:4em}.Status .muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Status .muted .mute-thread,.Status .muted .mute-words,.Status .muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Status .muted .mute-words,.Status .muted .status-username{overflow:hidden;text-overflow:ellipsis}.Status .muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Status .muted .mute-thread{flex:0 0 auto}.Status .muted .mute-words{flex:1 0 5em;margin-left:.2em}.Status .muted .mute-words:before{content:" "}.Status .muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Status .reply-form{padding-bottom:0;padding-top:0}.Status .reply-body{flex:1}.Status .favs-repeated-users{margin-top:var(--status-margin,.75em)}.Status .stats{display:flex;line-height:1em;width:100%}.Status .avatar-row{align-items:center;display:flex;flex:1;overflow:hidden;position:relative}.Status .avatar-row:before{background-color:var(--faint,hsla(240,1%,73%,.5));content:"";height:100%;left:0;position:absolute;width:1px}.Status .stat-count{margin-right:var(--status-margin,.75em);-webkit-user-select:none;-moz-user-select:none;user-select:none}.Status .stat-count .stat-title{color:var(--faint,hsla(240,1%,73%,.5));font-size:.85em;position:relative;text-transform:uppercase}.Status .stat-count .stat-number{font-size:1.1em;font-weight:bolder;line-height:1em}.Status .stat-count:hover .stat-title{text-decoration:underline}@media (max-width:800px){.Status .repeater-avatar{margin-left:20px}.Status .post-avatar{height:40px;width:40px}.Status .post-avatar.-compact{height:32px;width:32px}}.Report .report-content,.Report .report-state{margin:.5em 0 1em}.Report .reported-status{border:1px solid hsla(240,1%,73%,.5);border-color:var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px);color:#b9b9ba;color:var(--text,#b9b9ba);display:block;margin:.5em 0;padding:.5em}.Report .reported-status .status-content{pointer-events:none}.Report .reported-status .reported-status-heading{display:flex;justify-content:space-between;margin-bottom:.2em;width:100%}.Report .reported-status .reported-status-name{font-weight:700}.Report .note{margin-bottom:.5em;width:100%}.Notification{word-wrap:break-word;--emoji-size:14px;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);word-break:break-word}.Notification:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Notification.-muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Notification.-muted .mute-thread,.Notification.-muted .mute-words,.Notification.-muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Notification.-muted .mute-words,.Notification.-muted .status-username{overflow:hidden;text-overflow:ellipsis}.Notification.-muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Notification.-muted .mute-thread{flex:0 0 auto}.Notification.-muted .mute-words{flex:1 0 5em;margin-left:.2em}.Notification.-muted .mute-words:before{content:" "}.Notification.-muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Notification .type-icon{margin:0 .1em}.Notification.-type--repeat .type-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Notification.-type--follow .type-icon,.Notification.-type--follow-request .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notification.-type--like .type-icon{color:orange;color:var(--cOrange,orange)}.Notification.-type--move .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notifications:not(.minimal){padding-bottom:15em}.Notifications .loadmore-error{color:#b9b9ba;color:var(--text,#b9b9ba)}.Notifications .notification{position:relative}.Notifications .notification .notification-overlay{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.Notifications .notification.unseen .notification-overlay{background-image:linear-gradient(135deg,var(--badgeNotification,red) 4px,transparent 10px)}.notification{box-sizing:border-box}.notification:hover .animated.Avatar canvas{display:none}.notification:hover .animated.Avatar img{visibility:visible}.notification:last-child .Notification{border-bottom:none}.notification .non-mention{display:flex;flex:1;flex-wrap:nowrap;min-width:0;padding:.6em}.notification .non-mention .avatar-container{height:32px;width:32px}.notification .non-mention .faint{--link:var(--faintLink);--text:var(--faint)}.notification .follow-request-accept:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}.notification .follow-request-reject:hover{color:red;color:var(--cRed,red)}.notification .follow-text,.notification .move-text{display:flex;justify-content:space-between;overflow-wrap:break-word;padding:.5em 0}.notification .follow-text .follow-name,.notification .move-text .follow-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification .Status{flex:1}.notification time{white-space:nowrap}.notification .notification-right{flex:1;min-width:0;padding-left:.8em}.notification .notification-right .timeago{min-width:3em;text-align:right}.notification .notification-right .timeago-link{margin-right:.2em}.notification .notification-right .expand-icon .svg-inline--fa{margin-left:.25em}.notification .emoji-reaction-emoji{font-size:1.3em}.notification .notification-details{word-wrap:break-word;display:flex;flex:1 1 0;flex-wrap:nowrap;justify-content:space-between;line-height:var(--post-line-height);min-width:0;overflow:hidden;position:relative;width:100%}.notification .notification-details .name-and-action{flex:1;overflow:hidden;text-overflow:ellipsis}.notification .notification-details .username{font-weight:bolder;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.notification .notification-details .timeago{margin-right:.2em}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{font-size:1em;line-height:1.5;margin:0 0 .3em;padding:0;word-break:break-all}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0 0 .3em}.MobileNav{z-index:var(--ZI_navbar)}.MobileNav .mobile-nav{box-sizing:border-box;display:grid;grid-template-columns:2fr auto;grid-template-rows:50px;line-height:var(--navbar-height);width:100%}.MobileNav .mobile-nav a{color:var(--topBarLink,#d8a070)}.MobileNav .mobile-inner-nav{align-items:center;display:flex;width:100%}.MobileNav .mobile-nav-button{cursor:pointer;display:inline-block;padding:0 1em;position:relative;text-align:center}.MobileNav .site-name{display:inline-block;padding:0 .3em}.MobileNav .item{display:flex}.MobileNav .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;position:absolute;top:calc(50% - 4px);width:8px}.MobileNav .mobile-notifications-drawer{-webkit-overflow-scrolling:touch;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);height:100vh;left:0;overflow-x:hidden;position:fixed;top:0;transform:translateX(0);transition-duration:.25s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.MobileNav .mobile-notifications-drawer.-closed{box-shadow:none;transform:translateX(100%)}.MobileNav .mobile-notifications-header{align-items:center;background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);color:var(--topBarText);display:flex;height:50px;justify-content:space-between;line-height:50px;position:absolute;width:100%;z-index:calc(var(--ZI_navbar) + 100)}.MobileNav .mobile-notifications-header .spacer{flex:1}.MobileNav .mobile-notifications-header .title{font-size:1.3em;margin-left:.6em}.MobileNav .pins{flex:1}.MobileNav .pins .pinned-item{flex-grow:1}.MobileNav .mobile-notifications{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba);height:calc(100vh - var(--navbar-height));margin-top:50px;overflow-x:hidden;overflow-y:scroll;width:100vw}.MobileNav .mobile-notifications .notifications{border-radius:0;box-shadow:none;padding:0}.MobileNav .mobile-notifications .notifications .panel{border-radius:0;box-shadow:none;margin:0}.MobileNav .mobile-notifications .notifications .panel:after{border-radius:0}.MobileNav .mobile-notifications .notifications .panel .panel-heading{border-radius:0;box-shadow:none}.MobileNav .confirm-modal.dark-overlay:before{z-index:3000}.MobileNav .confirm-modal.dark-overlay .dialog-modal.panel{z-index:3001}.SearchBar{align-items:baseline;display:inline-flex;justify-content:flex-end;vertical-align:baseline}.SearchBar.-expanded{width:100%}.SearchBar .search-bar-input,.SearchBar .search-button{height:29px}.SearchBar .search-bar-input{flex:1 0 auto}.SearchBar .cancel-search{height:50px}.SearchBar .cancel-icon{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav{width:100%;z-index:var(--ZI_navbar)}.DesktopNav input{color:var(--inputTopbarText,var(--inputText))}.DesktopNav a{color:var(--topBarLink,#d8a070)}.DesktopNav .inner-nav{box-sizing:border-box;display:grid;grid-template-areas:"sitename logo actions";grid-template-columns:2fr auto 2fr;grid-template-rows:var(--navbar-height);margin:auto;max-width:980px;padding:0 1.2em}.DesktopNav.-column-stretch .inner-nav{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--columnGap))}.DesktopNav.-logoLeft .inner-nav{grid-template-areas:"logo sitename actions";grid-template-columns:auto 2fr 2fr}.DesktopNav.-column-stretch.-wide .inner-nav{max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--notifsColumnWidth, var(--miniColumn)) + var(--columnGap))}.DesktopNav .button-default,.DesktopNav .button-default svg{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav .button-default:active{background-color:#182230;background-color:var(--btnPressedTopBar,#182230);color:#b9b9ba;color:var(--btnPressedTopBarText,#b9b9ba)}.DesktopNav .button-default:disabled{color:#b9b9ba;color:var(--btnDisabledTopBarText,#b9b9ba)}.DesktopNav .button-default.toggled{background-color:#182230;background-color:var(--btnToggledTopBar,#182230);color:#b9b9ba;color:var(--btnToggledTopBarText,#b9b9ba)}.DesktopNav .logo{grid-area:logo;position:relative;transition:opacity;transition-duration:.1s;transition-timing-function:ease-out}@media (min-width:800px){.DesktopNav .logo{opacity:1!important}}.DesktopNav .logo .mask{background-color:#182230;background-color:var(--topBarText,#182230);bottom:0;left:0;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;right:0;top:0}.DesktopNav .logo img{display:inline-block;height:var(--navbar-height)}.DesktopNav .nav-icon{height:100%;margin-left:.2em;text-align:center;width:2em}.DesktopNav .nav-icon .svg-inline--fa{color:#d8a070;color:var(--topBarLink,#d8a070)}.DesktopNav .sitename{grid-area:sitename}.DesktopNav .actions{grid-area:actions}.DesktopNav .item{display:flex;flex:1;flex-wrap:wrap;height:var(--navbar-height);line-height:var(--navbar-height);overflow:hidden}.DesktopNav .item.right{justify-content:flex-end;text-align:right}.DesktopNav .spacer{width:1em}.list-item:not(:last-child){border-bottom:1px solid #222;border-bottom-color:var(--border,#222)}.list-empty-content{padding:10px;text-align:center}.user-reporting-panel{max-height:80vh;max-width:700px;min-height:20vh;width:90vw}.user-reporting-panel .panel-body{border-color:currentcolor #222 #222;border-top:1px solid #222;border-color:var(--border,#222);display:flex;flex-direction:column-reverse;overflow:hidden}.user-reporting-panel-left{box-sizing:border-box;line-height:var(--post-line-height);padding:1.1em .7em .7em}.user-reporting-panel-left>div{margin-bottom:1em}.user-reporting-panel-left>div:last-child{margin-bottom:0}.user-reporting-panel-left p{margin-top:0}.user-reporting-panel-left textarea.form-control{line-height:16px;min-height:44px;overflow:hidden;resize:none;transition:min-height .2s .1s;width:100%}.user-reporting-panel-left .btn{min-width:10em;padding:0 2em}.user-reporting-panel-left .alert{line-height:1.3em;margin:1em 0 0}.user-reporting-panel-right{display:flex;flex-direction:column;overflow-y:auto}.user-reporting-panel-sitem{display:flex;justify-content:space-between}.user-reporting-panel-sitem>.Status{flex:1}.user-reporting-panel-sitem>.checkbox{margin:.75em}@media (min-width:801px){.user-reporting-panel .panel-body{flex-direction:row}.user-reporting-panel-left{border-right:1px solid;border-color:#222;border-color:var(--border,#222);max-width:320px;padding:1.1em;width:50%}.user-reporting-panel-left>div{margin-bottom:2em}.user-reporting-panel-right{flex:1 1 auto;margin-bottom:12px;width:50%}}.modal-view.edit-form-modal-view{align-items:flex-start}.edit-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.edit-form-modal-panel{margin-top:8%}}.edit-form-modal-panel .form-bottom-left{max-width:6.5em}.edit-form-modal-panel .form-bottom-left .emoji-icon{justify-content:right}.modal-view.post-form-modal-view{align-items:flex-start}.post-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.post-form-modal-panel{margin-top:8%}}.modal-view.status-history-modal-view{align-items:flex-start}.status-history-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.status-history-modal-panel{margin-top:8%}}.global-notice-list{align-items:center;display:flex;flex-direction:column;pointer-events:none;position:fixed;top:calc(var(--navbar-height) + .5em);width:100%;z-index:var(--ZI_navbar_popovers)}.global-notice-list .global-notice{display:flex;line-height:2;margin-bottom:.5em;max-width:calc(100% - 3em);padding-left:1.5em;pointer-events:auto;text-align:center;width:40em}.global-notice-list .global-notice .notice-message{flex:1 1 100%}.global-notice-list .global-error{background-color:var(--alertPopupError,red)}.global-notice-list .global-error,.global-notice-list .global-error .svg-inline--fa{color:var(--alertPopupErrorText,#b9b9ba)}.global-notice-list .global-warning{background-color:var(--alertPopupWarning,orange)}.global-notice-list .global-warning,.global-notice-list .global-warning .svg-inline--fa{color:var(--alertPopupWarningText,#b9b9ba)}.global-notice-list .global-success{background-color:var(--alertPopupSuccess,#0fa00f)}.global-notice-list .global-success,.global-notice-list .global-success .svg-inline--fa{color:var(--alertPopupSuccessText,#b9b9ba)}.global-notice-list .global-info{background-color:var(--alertPopupNeutral,#182230)}.global-notice-list .global-info,.global-notice-list .global-info .svg-inline--fa{color:var(--alertPopupNeutralText,#b9b9ba)}.global-notice-list .close-notice{padding-right:.2em}.global-notice-list .close-notice .svg-inline--fa:hover{opacity:.6}.panel{background-color:#121a24;background-color:var(--bg,#121a24);display:flex;flex-direction:column;position:relative}.panel,.panel:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.panel-body{padding:var(--panel-body-padding,0)}.panel-body:empty:before{content:"¯\\_(ツ)_/¯";display:block;margin:1em;text-align:center}.panel-body>p{line-height:1.3;margin:0;padding:1em}.panel-footer,.panel-heading{--panel-heading-height-padding:0.6em;--__panel-heading-gap:0.5em;--__panel-heading-height:3.2em;--__panel-heading-height-inner:calc(var(--__panel-heading-height) - var(--panel-heading-height-padding, 0)*2);grid-column-gap:var(--__panel-heading-gap);background-size:cover;box-sizing:border-box;display:grid;flex:none;grid-auto-columns:auto;grid-auto-flow:column;grid-template-columns:minmax(50%,1fr);height:var(--__panel-heading-height);line-height:var(--__panel-heading-height-inner);padding:var(--panel-heading-height-padding);position:relative;z-index:4}.panel-footer.-flexible-height,.panel-heading.-flexible-height{--__panel-heading-height:auto}.panel-footer.-flexible-height:after,.panel-footer.-flexible-height:before,.panel-heading.-flexible-height:after,.panel-heading.-flexible-height:before{display:none}.panel-footer.-stub,.panel-footer.-stub:after,.panel-heading.-stub,.panel-heading.-stub:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel-footer.-sticky,.panel-heading.-sticky{position:sticky;top:var(--navbar-height)}.panel-footer:after,.panel-footer:before,.panel-heading:after,.panel-heading:before{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.panel-footer .title,.panel-heading .title{font-size:1.3em}.panel-footer .alert,.panel-heading .alert{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-footer:not(.-flexible-height)>.alert,.panel-footer:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.alert,.panel-heading:not(.-flexible-height)>.button-default{align-self:stretch;box-sizing:border-box;height:var(--__panel-heading-height-inner);margin:0;min-height:0;min-width:1px;padding-bottom:0;padding-top:0}.panel-heading{align-items:start;background-color:#121a24;background-color:var(--bg,#121a24);border-width:0 0 1px;color:var(--panelText)}.panel-heading,.panel-heading:after{border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0}.panel-heading:after{background-color:#182230;background-color:var(--panel,#182230);box-shadow:var(--panelHeaderShadow);z-index:-2}.panel-heading .-link,.panel-heading a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-heading .button-unstyled:hover .iconLetter,.panel-heading .button-unstyled:hover .svg-inline--fa,.panel-heading .button-unstyled:hover i[class*=icon-],.panel-heading a:hover .iconLetter,.panel-heading a:hover .svg-inline--fa,.panel-heading a:hover i[class*=icon-]{color:var(--panelText)}.panel-heading .faint{background-color:transparent;color:hsla(240,1%,73%,.5);color:var(--panelFaint,hsla(240,1%,73%,.5))}.panel-heading .faint-link{color:hsla(240,1%,73%,.5);color:var(--faintLink,hsla(240,1%,73%,.5))}.panel-heading:not(.-flexible-height)>.button-default{flex-shrink:0}.panel-heading:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:active{background-color:#182230;background-color:var(--btnPressedPanel,#182230);color:#b9b9ba;color:var(--btnPressedPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:disabled{color:#b9b9ba;color:var(--btnDisabledPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default.toggled{color:#b9b9ba;color:var(--btnToggledPanelText,#b9b9ba)}.panel-heading .rightside-button{align-self:stretch;height:var(--__panel-heading-height);margin:calc(var(--panel-heading-height-padding)*-1) 0;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-button>button{box-sizing:border-box;height:100%;padding:calc(var(--panel-heading-height-padding)*1) 0;text-align:center;width:100%}.panel-heading .rightside-button>button svg{font-size:1.2em}.panel-heading .rightside-icon{align-self:stretch;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-icon svg{font-size:1.2em}.panel-footer{align-items:center;border-color:var(--border,#222);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px);border-style:solid;border-width:1px 0 0}:root{--navbar-height:3.5rem;--post-line-height:1.4;--ZI_media_modal:9000;--ZI_modals_popovers:8500;--ZI_modals:8000;--ZI_navbar_popovers:7500;--ZI_navbar:7000;--ZI_popovers:6000}html{font-size:14px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#b9b9ba;color:var(--text,#b9b9ba);font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);margin:0;overflow-x:clip;overflow-y:scroll;overscroll-behavior-y:none}body.hidden{display:none}@media(any-pointer:fine){*{scrollbar-color:var(--btn) transparent}::-webkit-scrollbar{background:transparent}::-webkit-scrollbar-button,::-webkit-scrollbar-thumb{background-color:var(--btn);border-radius:var(--btnRadius);box-shadow:var(--buttonShadow)}::-webkit-scrollbar-button{--___bgPadding:2px;background-repeat:no-repeat,no-repeat;color:var(--btnText)}::-webkit-scrollbar-button:horizontal{background-size:50% calc(50% - var(--___bgPadding)),50% calc(50% - var(--___bgPadding))}::-webkit-scrollbar-button:horizontal:increment{background-image:linear-gradient(45deg,var(--btnText) 50%,transparent 51%),linear-gradient(-45deg,transparent 50%,var(--btnText) 51%);background-position:top var(--___bgPadding) left 50%,right 50% bottom var(--___bgPadding)}::-webkit-scrollbar-button:horizontal:decrement{background-image:linear-gradient(45deg,transparent 50%,var(--btnText) 51%),linear-gradient(-45deg,var(--btnText) 50%,transparent 51%);background-position:bottom var(--___bgPadding) right 50%,left 50% top var(--___bgPadding)}::-webkit-scrollbar-button:vertical{background-size:calc(50% - var(--___bgPadding)) 50%,calc(50% - var(--___bgPadding)) 50%}::-webkit-scrollbar-button:vertical:increment{background-image:linear-gradient(-45deg,transparent 50%,var(--btnText) 51%),linear-gradient(45deg,transparent 50%,var(--btnText) 51%);background-position:right var(--___bgPadding) top 50%,left var(--___bgPadding) top 50%}::-webkit-scrollbar-button:vertical:decrement{background-image:linear-gradient(-45deg,var(--btnText) 50%,transparent 51%),linear-gradient(45deg,var(--btnText) 50%,transparent 51%);background-position:left var(--___bgPadding) top 50%,right var(--___bgPadding) top 50%}html{background:var(--wallpaper);scrollbar-color:var(--selectedMenu) var(--wallpaper)}}a{color:#d8a070;color:var(--link,#d8a070);text-decoration:none}h4{margin:0}.iconLetter{display:inline-block;font-weight:1000;text-align:center}.iconLetter,.svg-inline--fa,i[class*=icon-]{color:#666;color:var(--icon,#666)}.button-unstyled:hover>.iconLetter,.button-unstyled:hover>.svg-inline--fa,.button-unstyled:hover>i[class*=icon-],a:hover>.iconLetter,a:hover>.svg-inline--fa,a:hover>i[class*=icon-]{color:var(--text)}nav{background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);box-sizing:border-box;color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));height:var(--navbar-height);position:fixed;z-index:var(--ZI_navbar)}#sidebar{grid-area:sidebar}#modal{position:absolute;z-index:var(--ZI_modals)}.column.-scrollable{position:sticky;top:var(--navbar-height)}#main-scroller{grid-area:content;position:relative}#notifs-column{grid-area:notifs}.app-bg-wrapper{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;height:100%;left:0;position:fixed;right:-20px;top:var(--navbar-height);z-index:-1000}.underlay{background-color:rgba(0,0,0,.15);background-color:var(--underlay,rgba(0,0,0,.15));grid-column:1/span 3;grid-row:1/1;pointer-events:none;z-index:-1000}.app-layout{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;--status-margin:0.75em;--effectiveSidebarColumnWidth:minmax(var(--miniColumn),var(--sidebarColumnWidth,var(--miniColumn)));--effectiveNotifsColumnWidth:minmax(var(--miniColumn),var(--notifsColumnWidth,var(--miniColumn)));--effectiveContentColumnWidth:minmax(var(--miniColumn),var(--contentColumnWidth,var(--maxiColumn)));align-content:flex-start;flex-wrap:wrap;grid-template-areas:"sidebar content";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth);grid-template-rows:1fr;justify-content:center;margin:0 auto;min-height:100vh;overflow-x:clip;position:relative}.app-layout,.app-layout .column{box-sizing:border-box;display:grid}.app-layout .column{--___columnMargin:var(--columnGap);align-content:start;grid-row:1/1;grid-template-columns:100%;margin:0 calc(var(--___columnMargin)/2);padding:calc(var(--___columnMargin)) 0;row-gap:var(--___columnMargin)}.app-layout .column:not(.-scrollable){margin-top:var(--navbar-height)}.app-layout .column:hover{z-index:2}.app-layout .column.-full-height{margin-bottom:0;padding-bottom:0;padding-top:0}.app-layout .column.-scrollable{--___paddingIncrease:calc(var(--columnGap)/2);margin-left:calc(var(--___paddingIncrease)*-1);max-height:calc(100vh - var(--navbar-height));overflow-x:hidden;overflow-y:auto;padding-left:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);position:sticky;top:var(--navbar-height)}@supports(scrollbar-width:none) or (-webkit-text-fill-color:initial){.app-layout .column.-scrollable:not(.-show-scrollbar){margin-right:calc(var(--___paddingIncrease)*-1);padding-right:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);scrollbar-width:none}.app-layout .column.-scrollable:not(.-show-scrollbar)::-webkit-scrollbar{display:block;width:0}}.app-layout .column.-scrollable .panel-heading.-sticky{top:calc(var(--columnGap)/-1)}.app-layout.-has-new-post-button .column{padding-bottom:10rem}.app-layout.-no-sticky-headers .column .panel-heading.-sticky{position:relative;top:0}.app-layout .column-inner{align-content:start;box-sizing:border-box;display:grid;grid-template-columns:100%;row-gap:1em}.app-layout.-reverse:not(.-wide,.-mobile){grid-template-areas:"content sidebar";grid-template-columns:var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-wide{grid-template-areas:"sidebar content notifs";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveNotifsColumnWidth)}.app-layout.-wide.-reverse{grid-template-areas:"notifs content sidebar";grid-template-columns:var(--effectiveNotifsColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-mobile{grid-template-areas:"content";grid-template-columns:100vw;padding:0}.app-layout.-mobile .column{margin:var(--navbar-height) 0 0 0;padding-top:0}.app-layout.-mobile .panel,.app-layout.-mobile .panel-heading,.app-layout.-mobile .panel-heading:after,.app-layout.-mobile .panel-heading:before,.app-layout.-mobile .panel:after{border-top-left-radius:0;border-top-right-radius:0}.app-layout.-mobile #notifs-column,.app-layout.-mobile #sidebar,.app-layout.-normal #notifs-column{display:none}.text-center{text-align:center}.button-default{background-color:#182230;background-color:var(--btn,#182230);border:none;border-radius:4px;border-radius:var(--btnRadius,4px);box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow);color:#b9b9ba;color:var(--btnText,#b9b9ba);cursor:pointer;font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);font-size:1em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.button-default.-sublime{background:transparent}.button-default .svg-inline--fa,.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.button-default::-moz-focus-inner{border:none}.button-default:hover{box-shadow:0 0 4px hsla(0,0%,100%,.3);box-shadow:var(--buttonHoverShadow)}.button-default:active{background-color:#182230;background-color:var(--btnPressed,#182230);box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow)}.button-default:active,.button-default:active i,.button-default:active svg{color:#b9b9ba;color:var(--btnPressedText,#b9b9ba)}.button-default:disabled{background-color:#182230;background-color:var(--btnDisabled,#182230);cursor:not-allowed}.button-default:disabled,.button-default:disabled i,.button-default:disabled svg{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.button-default.toggled{background-color:#182230;background-color:var(--btnToggled,#182230);box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow)}.button-default.toggled,.button-default.toggled i,.button-default.toggled svg{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.button-default.danger{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.button-unstyled{background:none;border:none;box-sizing:content-box;color:inherit;cursor:pointer;display:inline;font-family:inherit;font-size:100%;line-height:unset;outline:none;padding:0;text-align:initial}.button-unstyled.-link{color:#d8a070;color:var(--link,#d8a070)}.button-unstyled.-fullwidth{width:100%}.button-unstyled.-hover-highlight:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.input,input,textarea{--_padding:0.5em;background-color:#182230;background-color:var(--input,#182230);border:none;border-radius:4px;border-radius:var(--inputRadius,4px);box-shadow:inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2),inset 0 0 2px 0 #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:#b9b9ba;color:var(--inputText,#b9b9ba);display:inline-block;font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:2;margin:0;padding:0 var(--_padding);position:relative}.input.unstyled,input.unstyled,textarea.unstyled{background:none;border-radius:0;box-shadow:none;height:unset}.input.disabled,.input:disabled,.input[disabled=disabled],input.disabled,input:disabled,input[disabled=disabled],textarea.disabled,textarea:disabled,textarea[disabled=disabled]{cursor:not-allowed;opacity:.5}.input[type=range],input[type=range],textarea[type=range]{background:none;border:none;box-shadow:none;flex:1;margin:0}.input[type=radio],input[type=radio],textarea[type=radio]{display:none}.input[type=radio]:checked+label:before,input[type=radio]:checked+label:before,textarea[type=radio]:checked+label:before{background-color:var(--accent,#d8a070);box-shadow:inset 0 0 2px #000,inset 0 0 0 4px #182230;box-shadow:var(--inputShadow),0 0 0 4px var(--fg,#182230) inset}.input[type=radio]:disabled,.input[type=radio]:disabled+label,.input[type=radio]:disabled+label:before,input[type=radio]:disabled,input[type=radio]:disabled+label,input[type=radio]:disabled+label:before,textarea[type=radio]:disabled,textarea[type=radio]:disabled+label,textarea[type=radio]:disabled+label:before{opacity:.5}.input[type=radio]+label:before,input[type=radio]+label:before,textarea[type=radio]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:100%;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:box-shadow .2s;vertical-align:top;width:1.1em}.input[type=checkbox]:checked+label:before,input[type=checkbox]:checked+label:before,textarea[type=checkbox]:checked+label:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.input[type=checkbox]:disabled,.input[type=checkbox]:disabled+label,.input[type=checkbox]:disabled+label:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled+label,input[type=checkbox]:disabled+label:before,textarea[type=checkbox]:disabled,textarea[type=checkbox]:disabled+label,textarea[type=checkbox]:disabled+label:before{opacity:.5}.input[type=checkbox]+label:before,input[type=checkbox]+label:before,textarea[type=checkbox]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:color .2s;vertical-align:top;width:1.1em}.input.resize-height,input.resize-height,textarea.resize-height{resize:vertical}textarea{line-height:var(--post-line-height);padding:var(--_padding)}option{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba)}.hide-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.hide-number-spinner[type=number]::-webkit-inner-spin-button,.hide-number-spinner[type=number]::-webkit-outer-spin-button{display:none;opacity:0}.btn-block{display:block;width:100%}.btn-group{display:inline-flex;position:relative;vertical-align:middle}.btn-group button{flex:1 1 auto;position:relative}.btn-group button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.fa{color:gray}.mobile-shown{display:none}.badge{border-radius:99px;box-sizing:border-box;display:inline-block;font-size:.9em;font-style:normal;font-weight:400;height:1.3em;line-height:1;max-width:10em;min-width:1.7em;overflow:hidden;padding:.15em;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.badge.badge-notification{background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff)}.alert{border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0 .35em;padding:0 .25em}.alert.error{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorText,#b9b9ba)}.panel-heading .alert.error{color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.alert.warning{background-color:rgba(111,111,20,.5);background-color:var(--alertWarning,rgba(111,111,20,.5));color:#b9b9ba;color:var(--alertWarningText,#b9b9ba)}.panel-heading .alert.warning{color:#b9b9ba;color:var(--alertWarningPanelText,#b9b9ba)}.alert.success{background-color:var(--alertSuccess,rgba(111,111,20,.5));color:var(--alertSuccessText,#b9b9ba)}.panel-heading .alert.success{color:var(--alertSuccessPanelText,#b9b9ba)}.faint,.faint-link{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.faint-link:hover{text-decoration:underline}.visibility-notice{border:1px solid hsla(240,1%,73%,.5);border:1px solid var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px);padding:.5em}.notice-dismissible{padding-right:4rem;position:relative}.notice-dismissible .dismiss{color:inherit;padding:.5em;position:absolute;right:0;top:0}.fa-scale-110.iconLetter,.fa-scale-110.svg-inline--fa{font-size:1.1em}.fa-old-padding-layer,.fa-old-padding.iconLetter,.fa-old-padding.svg-inline--fa{padding:0 .3em}.veryfaint{opacity:.25}.login-hint{text-align:center}@media (min-width:801px){.login-hint{display:none}}.login-hint a{display:inline-block;padding:1em 0;width:100%}.btn.button-default{min-height:2em}.new-status-notification{flex:1;font-size:1.1em;position:relative;z-index:1}@media (max-width:800px){.mobile-hidden{display:none}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes shakeError{0%{transform:translateX(0)}15%{transform:translateX(.375rem)}30%{transform:translateX(-.375rem)}45%{transform:translateX(.375rem)}60%{transform:translateX(-.375rem)}75%{transform:translateX(.375rem)}90%{transform:translateX(-.375rem)}to{transform:translateX(0)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-active{opacity:0}.visible-for-screenreader-only{clip:rect(0 0 0 0);display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;visibility:visible;width:1px}.thread-tree-replies{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.thread-tree-replies-hidden{align-items:stretch;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation{z-index:1}.Conversation .conversation-dive-to-top-level-box{align-items:stretch;border-bottom:1px solid var(--border,#222);border-radius:0;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation .thread-ancestors{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.Conversation .thread-ancestor.-faded .StatusContent{--link:var(--faintLink);--text:var(--faint);color:var(--text)}.Conversation .thread-ancestor-dive-box{border-bottom:1px solid var(--border,#222);border-radius:0;padding-left:var(--status-margin,.75em)}.Conversation .thread-ancestor-dive-box,.Conversation .thread-ancestor-dive-box-inner{align-items:stretch;display:flex;flex-direction:column}.Conversation .thread-ancestor-dive-box-inner{padding:var(--status-margin,.75em)}.Conversation .conversation-status{border-bottom:1px solid var(--border,#222);border-radius:0}.Conversation .thread-ancestor-has-other-replies .conversation-status,.Conversation .thread-ancestor:last-child .conversation-status,.Conversation .thread-ancestor:last-child .thread-ancestor-dive-box,.Conversation.-expanded .thread-tree .conversation-status,.Conversation:last-child .conversation-status{border-bottom:none}.Conversation .thread-ancestors+.thread-tree>.conversation-status{border-top:1px solid var(--border,#222)}.Conversation.status-fadein.-expanded .thread-body{border-bottom:1px solid var(--border,#222);border-left:4px solid red;border-left-color:var(--cRed,red);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px)}.Conversation.-expanded.status-fadein{margin:calc(var(--status-margin, .75em)/2)}.timeline-menu-popover{border-top-left-radius:0;border-top-right-radius:0;font-size:1rem;margin-top:.6rem;max-width:100vw;min-width:24rem}.timeline-menu-popover ul{list-style:none;margin:0;padding:0}.timeline-menu-popover a{display:block;height:3.5em;line-height:3.5em;padding:0 .65em}.timeline-menu-popover a:hover{color:#d8a070;color:var(--selectedMenuText,#d8a070)}.timeline-menu-popover a.router-link-active,.timeline-menu-popover a:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a)}.timeline-menu-popover a.router-link-active{color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.timeline-menu-popover a.router-link-active:hover{text-decoration:underline}.timeline-menu-popover a svg{margin-left:-.2em;margin-right:.4em}.timeline-menu-popover li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0}.timeline-menu-popover li:last-child a{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.timeline-menu-popover li:last-child{border:none}.TimelineMenu{margin-right:auto;min-width:0}.TimelineMenu .popover-trigger-button{vertical-align:bottom}.TimelineMenu .panel:after{border-top-left-radius:0;border-top-right-radius:0}.TimelineMenu .timeline-menu-title{cursor:pointer;display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.TimelineMenu .timeline-menu-title .timeline-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TimelineMenu .timeline-menu-title svg{margin-left:.6em;transition:transform .1s}.TimelineMenu .timeline-menu-title .click-blocker{cursor:default;flex-grow:1}.TimelineMenu.open .timeline-menu-title svg{color:#b9b9ba;color:var(--panelText,#b9b9ba);transform:rotate(180deg)}.TimelineMenu .panel{box-shadow:var(--popoverShadow)}.Timeline .alert-dot{border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;top:calc(50% - 4px);width:8px}.Timeline .alert-badge,.Timeline .alert-dot{background-color:var(--badgeNeutral);position:absolute}.Timeline .alert-badge{border-radius:var(--tooltipRadius);color:var(--badgeNeutralText);font-size:.75em;left:calc(50% - .5em);line-height:1;margin-left:.7em;margin-top:-1em;padding:.2em;text-align:right;top:calc(50% - .4em)}.Timeline .loadmore-button{position:relative}.Timeline.-blocked{cursor:progress}.Timeline .conversation-heading{top:calc(var(--__panel-heading-height)*var(--currentPanelStack, 2));z-index:2}.Timeline.-nonpanel .timeline-heading{line-height:2.75em;padding:0 .5em;text-align:center}.Timeline.-nonpanel .timeline-heading .alert,.Timeline.-nonpanel .timeline-heading .button-default{line-height:2em;width:100%}.tab-switcher{display:flex}.tab-switcher .tab-icon{display:block;margin:.2em auto}.tab-switcher.top-tabs{flex-direction:column}.tab-switcher.top-tabs>.tabs{flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding-top:5px;width:100%}.tab-switcher.top-tabs>.tabs:after,.tab-switcher.top-tabs>.tabs:before{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);content:"";flex:1 1 auto}.tab-switcher.top-tabs>.tabs .tab-wrapper{height:2em}.tab-switcher.top-tabs>.tabs .tab-wrapper:not(.active):after{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);bottom:0;left:0;right:0}.tab-switcher.top-tabs>.tabs .tab{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-93px;min-width:1px;padding-bottom:99px;width:100%}.tab-switcher.top-tabs .contents.scrollable-tabs{flex-basis:0}.tab-switcher.side-tabs{flex-direction:row}@media (max-width:800px){.tab-switcher.side-tabs{overflow-x:auto}}.tab-switcher.side-tabs>.contents{flex:1 1 auto}.tab-switcher.side-tabs>.tabs{flex:0 0 auto;flex-direction:column;overflow-x:hidden;overflow-y:auto}.tab-switcher.side-tabs>.tabs:after,.tab-switcher.side-tabs>.tabs:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex-basis:.5em;flex-shrink:0}.tab-switcher.side-tabs>.tabs:after{flex-grow:1}.tab-switcher.side-tabs>.tabs:before{flex-grow:0}.tab-switcher.side-tabs>.tabs .tab-wrapper{display:flex;flex-direction:column;min-width:10em}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab-wrapper{min-width:4em}}.tab-switcher.side-tabs>.tabs .tab-wrapper:not(.active):after{border-right:1px solid #222;border-right-color:var(--border,#222);bottom:0;right:0;top:0}.tab-switcher.side-tabs>.tabs .tab-wrapper:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex:0 0 6px}.tab-switcher.side-tabs>.tabs .tab-wrapper:last-child .tab{margin-bottom:0}.tab-switcher.side-tabs>.tabs .tab{border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:content-box;flex:1;margin-left:1em;margin-right:-200px;min-width:10em;min-width:1px;padding-left:1em;padding-right:calc(1em + 200px)}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab{margin-left:.25em;margin-right:calc(.25em - 200px);padding-left:.25em;padding-right:calc(.25em + 200px)}.tab-switcher.side-tabs>.tabs .tab .text{display:none}}.tab-switcher .contents{flex:1 0 auto;min-height:0}.tab-switcher .contents .hidden{display:none}.tab-switcher .contents .full-height:not(.hidden){display:flex;flex-direction:column;height:100%}.tab-switcher .contents .full-height:not(.hidden)>:not(.mobile-label){flex:1}.tab-switcher .contents.scrollable-tabs{overflow-y:auto}.tab-switcher .tab{padding:6px 1em;position:relative;white-space:nowrap}.tab-switcher .tab:not(.active){z-index:4}.tab-switcher .tab:not(.active):hover{z-index:6}.tab-switcher .tab.active{background:transparent;color:#b9b9ba;color:var(--tabActiveText,#b9b9ba);z-index:5}.tab-switcher .tab img{margin-top:-5px;max-height:26px;vertical-align:top}.tab-switcher .tabs{box-sizing:border-box;display:flex;position:relative}.tab-switcher .tabs:after,.tab-switcher .tabs:before{display:block;flex:1 1 auto}.tab-switcher .tab-wrapper{display:flex;flex:0 0 auto;position:relative}.tab-switcher .tab-wrapper:not(.active):after{content:"";position:absolute;z-index:7}.tab-switcher .mobile-label{border-bottom:1px solid var(--border,#222);margin-bottom:.25em;margin-left:.2em;margin-top:.5em;padding-bottom:.25em;padding-left:.3em}@media (min-width:800px){.tab-switcher .mobile-label{display:none}}.chat-title{--emoji-size:14px;display:flex}.chat-title,.chat-title .username{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title .username{word-wrap:break-word;display:inline;max-width:100%}.chat-title .avatar-container{align-self:center;line-height:1}.chat-title .titlebar-avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.5em;width:1.5em}.chat-title .titlebar-avatar.animated:before{display:none}.chat-list-item{box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;height:5em;overflow:hidden;padding:.75em}.chat-list-item :focus{outline:none}.chat-list-item:hover{background-color:var(--selectedPost,#151e2a);box-shadow:0 0 3px 1px rgba(0,0,0,.1)}.chat-list-item .chat-list-item-left{margin-right:1em}.chat-list-item .chat-list-item-center{word-wrap:break-word;box-sizing:border-box;overflow:hidden;width:100%}.chat-list-item .heading{display:inline-flex;justify-content:space-between;line-height:1em;width:100%}.chat-list-item .heading-right{white-space:nowrap}.chat-list-item .name-and-account-name{flex-shrink:1;line-height:var(--post-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-item .chat-preview{color:#b9b9ba;color:var(--faint,#b9b9ba);display:inline-flex;margin:.35em 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.chat-list-item a{color:var(--faintLink,#d8a070);pointer-events:none;text-decoration:none}.chat-list-item:hover .animated.avatar canvas{display:none}.chat-list-item:hover .animated.avatar img{visibility:visible}.chat-list-item .Avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.chat-list-item .chat-preview-body{--emoji-size:1.4em;padding-right:1em}.chat-list-item .time-wrapper{line-height:var(--post-line-height)}.basic-user-card{--emoji-size:14px;display:flex;flex:1 0;margin:0;padding:.6em 1em}.basic-user-card-collapsed-content{flex:1;margin-left:.7em;min-width:0;text-align:left}.basic-user-card-user-name img{height:16px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:16px}.basic-user-card-screen-name,.basic-user-card-user-name-value{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-user-card-expanded-content{flex:1;margin-left:.7em;min-width:0}.chat-new .input-wrap{display:flex;margin:.7em .5em}.chat-new .input-wrap input{width:100%}.chat-new .search-icon{margin-right:.3em}.chat-new .member-list{padding-bottom:.7rem}.chat-new .basic-user-card:hover{background-color:var(--selectedPost,#151e2a);cursor:pointer}.chat-new .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-list{margin-bottom:0;min-height:25em}.emtpy-chat-list-alert{color:#b9b9ba;color:var(--faint,#b9b9ba);display:flex;font-size:1.2em;justify-content:center;padding:3em}.chat-message-wrapper.hovered-message-chain .animated.Avatar canvas{display:none}.chat-message-wrapper.hovered-message-chain .animated.Avatar img{visibility:visible}.chat-message-wrapper .chat-message-menu{opacity:0;position:absolute;top:-.8em;transition:opacity .1s}.chat-message-wrapper .chat-message-menu button{padding-bottom:.2em;padding-top:.2em}.chat-message-wrapper .menu-icon{cursor:pointer}.chat-message-wrapper .menu-icon:hover,.extra-button-popover.open .chat-message-wrapper .menu-icon{color:#b9b9ba;color:var(--text,#b9b9ba)}.chat-message-wrapper .popover{width:12em}.chat-message-wrapper .chat-message{display:flex;padding-bottom:.5em}.chat-message-wrapper .chat-message .status-body:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.chat-message-wrapper .avatar-wrapper{margin-right:.72em;width:32px}.chat-message-wrapper .attachments,.chat-message-wrapper .link-preview{margin-bottom:1em}.chat-message-wrapper .status{border-radius:10px;border-radius:var(--chatMessageRadius,10px);display:flex;padding:.75em}.chat-message-wrapper .created-at{float:right;font-size:.8em;font-style:italic;margin:-1em 0 -.5em;opacity:.8;position:relative}.chat-message-wrapper .without-attachment .message-content .RichContent:after{content:" ";display:inline-block;margin-right:5.4em}.chat-message-wrapper .pending .created-at,.chat-message-wrapper .pending .status-content.media-body{color:var(--faint)}.chat-message-wrapper .error .created-at,.chat-message-wrapper .error .status-content.media-body{color:red;color:var(--badgeNotification,red)}.chat-message-wrapper .chat-message-inner{align-items:flex-start;display:flex;flex-direction:column;max-width:80%;min-width:10em;width:100%}.chat-message-wrapper .outgoing{align-content:end;display:flex;flex-flow:row wrap;justify-content:flex-end}.chat-message-wrapper .outgoing a{color:var(--chatMessageOutgoingLink,#d8a070)}.chat-message-wrapper .outgoing .status{background-color:var(--chatMessageOutgoingBg,#151e2a);border:1px solid var(--chatMessageOutgoingBorder,--lightBg);color:var(--chatMessageOutgoingText,#b9b9ba)}.chat-message-wrapper .outgoing .chat-message-inner{align-items:flex-end}.chat-message-wrapper .outgoing .chat-message-menu{right:.4rem}.chat-message-wrapper .incoming a{color:var(--chatMessageIncomingLink,#d8a070)}.chat-message-wrapper .incoming .status{background-color:var(--chatMessageIncomingBg,#121a24);border:1px solid var(--chatMessageIncomingBorder,--border)}.chat-message-wrapper .incoming .created-at a,.chat-message-wrapper .incoming .status{color:var(--chatMessageIncomingText,#b9b9ba)}.chat-message-wrapper .incoming .chat-message-menu{left:.4rem}.chat-message-wrapper .chat-message-inner.with-media,.chat-message-wrapper .chat-message-inner.with-media .status{width:100%}.chat-message-wrapper .visible{opacity:1}.chat-message-date-separator{color:#b9b9ba;color:var(--faintedText,#b9b9ba);font-size:.9em;margin:1.4em 0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-view{display:flex;height:100%}.chat-view .chat-view-inner{display:flex;height:auto;overflow:visible;width:100%}.chat-view .chat-view-body{background-color:var(--chatBg,#121a24);border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0;box-sizing:border-box;display:flex;flex-direction:column;margin:0;min-height:calc(100vh - var(--navbar-height));overflow:visible;width:100%}.chat-view .chat-view-body:after{border-radius:0}.chat-view .message-list{display:flex;flex-direction:column;height:100%;justify-content:end;padding:0 .8em}.chat-view .footer{background-color:#121a24;background-color:var(--bg,#121a24);bottom:0;position:sticky;z-index:1}.chat-view .chat-view-heading{grid-template-columns:auto minmax(50%,1fr)}.chat-view .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-view .jump-to-bottom-button{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.3);cursor:pointer;display:flex;height:2.5em;justify-content:center;opacity:0;position:absolute;right:1.3em;top:-3.2em;transition:all .35s;transition-timing-function:cubic-bezier(0,1,.5,1);visibility:hidden;width:2.5em;z-index:10}.chat-view .jump-to-bottom-button.visible{opacity:1;visibility:visible}.chat-view .jump-to-bottom-button i{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1em}.chat-view .jump-to-bottom-button .unread-message-count{border-radius:50px;font-size:.8em;left:50%;margin-top:-1rem;padding:.1em;position:absolute}.chat-view .jump-to-bottom-button .chat-loading-error{align-items:flex-end;display:flex;height:100%;width:100%}.chat-view .jump-to-bottom-button .chat-loading-error .error{width:100%}.follow-card-content-container{display:flex;flex-flow:row wrap;flex-shrink:0;justify-content:space-between;line-height:1.5em}.follow-card-button{margin-left:1em;margin-top:.5em;padding:0 1.5em}.follow-card-follow-button{margin-left:auto;margin-top:.5em;width:10em}.with-load-more-footer{border-top:1px solid #222;border-top-color:var(--border,#222);padding:10px;text-align:center}.with-load-more-footer .error{font-size:1rem}.with-load-more-footer a{cursor:pointer}.user-profile{--currentPanelStack:1;flex:2;flex-basis:500px}.user-profile .user-birthday{margin:0 .75em .5em}.user-profile .user-profile-fields{margin:0 .5em}.user-profile .user-profile-fields img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-profile .user-profile-fields img.emoji{height:18px;width:18px}.user-profile .user-profile-fields .user-profile-field{border:1px solid var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);display:flex;margin:.25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name{border-right:1px solid var(--border,#222);color:var(--lightText);flex:0 1 30%;font-weight:500;min-width:120px;text-align:right}.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{color:var(--text);flex:1 1 70%;margin:0 0 0 .25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name,.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{box-sizing:border-box;line-height:1.3;overflow:hidden;padding:.5em 1.5em;text-overflow:ellipsis;white-space:nowrap}.user-profile .userlist-placeholder{align-items:middle;display:flex;justify-content:center;padding:2em}.user-profile-placeholder .panel-body{align-items:middle;display:flex;justify-content:center;padding:7em}.search-result-heading{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));padding:.75rem;text-align:center}@media (max-width:800px){.search-nav-heading .tab-switcher .tabs .tab-wrapper{display:block;flex:1 1 auto;justify-content:center;text-align:center}}.search-result{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);box-sizing:border-box}.search-result-footer{background-color:#182230;background-color:var(--panel,#182230);border-color:var(--border,#222);border-style:solid;border-width:1px 0 0;padding:10px}.search-input-container{display:flex;justify-content:center;padding:.8rem}.search-input-container .search-input{box-sizing:border-box;font-size:1rem;line-height:1.125rem;padding:.5rem;width:100%}.search-input-container .search-button{margin-left:.5em}.loading-icon{padding:1em}.trend{align-items:center;display:flex}.trend .hashtag{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend .count,.trend .hashtag{color:#b9b9ba;color:var(--text,#b9b9ba)}.trend .count{flex:0 0 auto;font-size:1.5rem;font-weight:500;line-height:2.25rem;text-align:center;width:2rem}.more-statuses-button{height:3.5em;line-height:3.5em}.interface-language-switcher .language-select{margin-right:1em}.registration-form{display:flex;flex-direction:column;margin:.6em}.registration-form .container{display:flex;flex-direction:row}.registration-form .container>*{min-width:0}.registration-form .terms-of-service{flex:0 1 50%;margin:.8em}.registration-form .text-fields{display:flex;flex:1 0;flex-direction:column;margin-top:.6em}.registration-form textarea{min-height:100px;resize:vertical}.registration-form .form-group{display:flex;flex-direction:column;line-height:2;margin-bottom:1em;padding:.3em 0}.registration-form .form-group--error{animation-duration:.6s;animation-name:shakeError;animation-timing-function:ease-in-out}.registration-form .form-group--error .form--label{color:#f04124;color:var(--cRed,#f04124)}.registration-form .form-error{margin-top:-.7em;text-align:left}.registration-form .form-error span{font-size:.85em}.registration-form .form-error ul{list-style:none;margin-top:0;padding:0 0 0 5px}.registration-form .form-error ul li:before{content:"• "}.registration-form form textarea{line-height:16px;resize:vertical}.registration-form .captcha{margin-bottom:.4em;max-width:350px}.registration-form .btn{height:2em;margin-top:.6em}.registration-form .error{text-align:center}@media (max-width:800px){.registration-form .container{flex-direction:column-reverse}}.password-reset-form{align-items:center;display:flex;flex-direction:column;margin:.6em}.password-reset-form .container{display:flex;flex:1 0;flex-direction:column;margin-top:.6em;max-width:18rem}.password-reset-form .container>*{min-width:0}.password-reset-form .form-group{display:flex;flex-direction:column;line-height:1.85em;margin-bottom:1em;padding:.3em 0}.password-reset-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.password-reset-form .alert{margin:.3em 0 1em;padding:.5em}.password-reset-form .password-reset-required{background-color:var(--alertError,rgba(211,16,20,.5));padding:10px 0}.password-reset-form .notice-dismissible{padding-right:2rem}.password-reset-form .dismiss{cursor:pointer}.follow-request-card-content-container{display:flex;flex-flow:row wrap}.follow-request-card-content-container button{flex:1 1;margin-right:.5em;margin-top:.5em;max-width:12em;min-width:8em}.follow-request-card-content-container button:last-child{margin-right:0}.tos-content{margin:1em}.staff-group{padding-left:1em;padding-top:1em}.staff-group .basic-user-card{padding-left:0}.mrf-section{margin:1em}.mrf-section table{padding-bottom:20px;padding-left:10px;text-align:left;width:100%}.mrf-section table td,.mrf-section table th{max-width:360px;overflow:hidden;vertical-align:text-top;width:180px}.mrf-section table td+td,.mrf-section table th+th{width:auto}.list-card{display:flex}.list-name{flex-grow:1}.button-list-edit,.list-name{color:#d8a070;color:var(--link,#d8a070);margin:0;padding:1em}.button-list-edit:hover,.list-name:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.Lists .new-list-button{padding:0 .5em}.ListsUserSearch .input-wrap{display:flex;margin:.7em .5em}.ListsUserSearch .input-wrap input{width:100%}.ListsUserSearch .search-icon{margin-right:.3em}.panel-loading{align-items:center;color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:2em;height:100%;justify-content:center}.panel-loading .loading-text svg{color:#b9b9ba;color:var(--text,#b9b9ba);line-height:0;vertical-align:middle}.ListEdit{--panel-body-padding:0.5em;display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow:hidden}.ListEdit .list-edit-heading{grid-template-columns:auto minmax(50%,1fr)}.ListEdit .panel-body{display:flex;flex:1;flex-direction:column;overflow:hidden}.ListEdit .list-member-management{flex:1 0 auto}.ListEdit .search-icon{margin-right:.3em}.ListEdit .users-list{overflow-y:auto;padding-bottom:.7rem}.ListEdit .members-list,.ListEdit .search-list{flex-direction:column;min-height:0;overflow:hidden}.ListEdit .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.ListEdit .btn{margin:0 .5em}.ListEdit .panel-footer{grid-template-columns:minmax(10%,1fr)}.ListEdit .panel-footer .footer-button{min-width:9em}.announcement-editor{align-items:stretch;display:flex;flex-direction:column}.announcement-editor .announcement-metadata{margin-top:.5em}.announcement-editor .post-textarea{box-sizing:content-box;height:10em;overflow:none;resize:vertical}.announcement{border-bottom:1px solid var(--border,#222);border-radius:0;padding:var(--status-margin,.75em)}.announcement .body,.announcement .heading{margin-bottom:var(--status-margin,.75em)}.announcement .footer,.announcement .footer .times{display:flex;flex-direction:column}.announcement .footer .actions{display:flex;flex-direction:row;justify-content:space-evenly}.announcement .footer .actions .btn{flex:1;margin:1em;max-width:10em}.announcements-page .post-form{padding:var(--status-margin,.75em)}.announcements-page .post-form .body,.announcements-page .post-form .heading{margin-bottom:var(--status-margin,.75em)}.announcements-page .post-form .post-button{min-width:10em}
+/*# sourceMappingURL=app.48e52505beba5b9ab69b.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/app.48e52505beba5b9ab69b.css.map b/priv/static/static/css/app.48e52505beba5b9ab69b.css.map
new file mode 100644
index 000000000..a87315d2b
--- /dev/null
+++ b/priv/static/static/css/app.48e52505beba5b9ab69b.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/app.48e52505beba5b9ab69b.css","mappings":"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","sources":["webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./node_modules/vue-virtual-scroller/dist/vue-virtual-scroller.css","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.scss","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/attachment/attachment.scss","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.scss","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.scss","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.scss","webpack://pleroma_fe/./src/components/rich_content/rich_content.scss","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/status_body/status_body.scss","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_card/user_card.scss","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/status/status.scss","webpack://pleroma_fe/./src/components/report/report.scss","webpack://pleroma_fe/./src/components/notification/notification.scss","webpack://pleroma_fe/./src/components/notifications/notifications.scss","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.scss","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/App.scss","webpack://pleroma_fe/./src/panel.scss","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline/timeline.scss","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.scss","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.scss","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.scss","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.scss","webpack://pleroma_fe/./src/components/chat/chat.scss","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.scss","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.scss","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue"],"sourcesContent":["\n.modal-view {\n z-index: var(--ZI_modals);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgb(0 0 0 / 50%);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgb(0 0 0 / 0%);\n }\n\n to {\n background-color: rgb(0 0 0 / 50%);\n }\n}\n",".vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:flex}.vue-recycle-scroller__slot{flex:auto 0 0}.vue-recycle-scroller__item-wrapper{flex:1;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}","\n@import \"../../variables\";\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n","\n@import \"../../variables\";\n\n.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n\n .hidden-input-file {\n display: none;\n }\n}\n ","\n@import \"../../variables\";\n\n.ScopeSelector {\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.checkbox {\n position: relative;\n display: inline-block;\n min-height: 1.2em;\n\n &-indicator {\n position: relative;\n padding-left: 1.2em;\n }\n\n &-indicator::before {\n position: absolute;\n right: 0;\n top: 0;\n display: block;\n content: \"✓\";\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: $fallback--checkboxRadius;\n border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1em;\n font-size: 1.1em;\n color: transparent;\n overflow: hidden;\n box-sizing: border-box;\n }\n\n &.disabled {\n .checkbox-indicator::before,\n .label {\n opacity: 0.5;\n }\n\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=\"checkbox\"] {\n &:checked + .checkbox-indicator::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:indeterminate + .checkbox-indicator::before {\n content: \"–\";\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n }\n\n & > span {\n margin-left: 0.5em;\n }\n}\n","\n@import \"../../variables\";\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgb(0 0 0 / 50%);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon);\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active,\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"✓\";\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"•\";\n }\n }\n }\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n","@import \"../../variables\";\n\n$emoji-picker-header-height: 36px;\n$emoji-picker-header-picture-width: 32px;\n$emoji-picker-header-picture-height: 32px;\n$emoji-picker-emoji-size: 32px;\n\n.emoji-picker {\n width: 25em;\n max-width: calc(100vw - 20px); // popover gives 10px margin from window edge\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n &-header-image {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n\n .still-image {\n max-width: 100%;\n max-height: 100%;\n height: 100%;\n width: 100%;\n object-fit: contain;\n }\n }\n\n .keep-open,\n .too-many-emoji {\n padding: 7px;\n line-height: normal;\n }\n\n .too-many-emoji {\n display: flex;\n flex-direction: column;\n }\n\n .keep-open-label {\n padding: 0 7px;\n display: flex;\n }\n\n .heading {\n display: flex;\n padding: 10px 7px 5px;\n }\n\n .content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n\n .emoji-tabs {\n flex-grow: 1;\n display: flex;\n flex-flow: row nowrap;\n overflow-x: auto;\n }\n\n .additional-tabs {\n display: flex;\n border-left: 1px solid;\n border-left-color: $fallback--icon;\n border-left-color: var(--icon, $fallback--icon);\n padding-left: 7px;\n flex: 0 0 auto;\n }\n\n .additional-tabs,\n .emoji-tabs {\n flex-basis: auto;\n display: flex;\n align-content: center;\n\n &-item {\n padding: 0 7px;\n cursor: pointer;\n font-size: 1.85em;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n display: flex;\n align-items: center;\n\n &.disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n &.active {\n border-bottom: 4px solid;\n\n svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n }\n }\n\n .sticker-picker {\n flex: 1 1 auto;\n }\n\n .stickers,\n .emoji {\n &-content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n\n &.hidden {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n }\n }\n }\n\n .emoji {\n &-search {\n padding: 5px;\n flex: 0 0 auto;\n\n input {\n width: 100%;\n }\n }\n\n &-groups {\n height: 100%;\n min-height: 200px;\n flex: 1 1 1px;\n position: relative;\n overflow: auto;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n // Autoprefixed seem to ignore this one, and also syntax is different\n mask-composite: xor;\n mask-composite: exclude;\n\n &.scrolled {\n &-top {\n mask-size: 100% 20px, 100% 0, auto;\n }\n\n &-bottom {\n mask-size: 100% 0, 100% 20px, auto;\n }\n }\n }\n\n &-group {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n padding-left: 5px;\n justify-content: left;\n\n &-title {\n font-size: 0.85em;\n width: 100%;\n margin: 0;\n\n &.disabled {\n display: none;\n }\n }\n }\n\n &-item {\n width: $emoji-picker-emoji-size;\n height: $emoji-picker-emoji-size;\n box-sizing: border-box;\n display: flex;\n line-height: $emoji-picker-emoji-size;\n align-items: center;\n justify-content: center;\n margin: 4px;\n cursor: pointer;\n\n .emoji-picker-emoji.-custom {\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n }\n\n .emoji-picker-emoji.-unicode {\n font-size: 24px;\n overflow: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none;\n }\n }\n\n input,\n textarea {\n flex: 1 0 auto;\n }\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n\n /* DEBUG STUFF */\n color: red;\n\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgb(0 0 0 / 40%);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import \"../../variables\";\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n}\n","\n@import \"../../variables\";\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: \"hidden\";\n }\n}\n","@import \"../../variables\";\n\n.Attachment {\n display: inline-flex;\n flex-direction: column;\n position: relative;\n align-self: flex-start;\n line-height: 0;\n height: 100%;\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n\n .attachment-wrapper {\n flex: 1 1 auto;\n height: 100%;\n position: relative;\n overflow: hidden;\n }\n\n .description-container {\n flex: 0 1 0;\n display: flex;\n padding-top: 0.5em;\n z-index: 1;\n\n p {\n flex: 1;\n text-align: center;\n line-height: 1.5;\n padding: 0.5em;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &.-static {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n padding-top: 0;\n background: var(--popover);\n box-shadow: var(--popupShadow);\n }\n }\n\n .description-field {\n flex: 1;\n min-width: 0;\n }\n\n & .placeholder-container,\n & .image-container,\n & .audio-container,\n & .video-container,\n & .flash-container,\n & .oembed-container {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n }\n\n .image-container {\n .image {\n width: 100%;\n height: 100%;\n }\n }\n\n & .flash-container,\n & .video-container {\n & .flash,\n & video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n align-self: center;\n }\n }\n\n .audio-container {\n display: flex;\n align-items: flex-end;\n\n audio {\n width: 100%;\n height: 100%;\n }\n }\n\n .placeholder-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-top: 0.5em;\n }\n\n .play-icon {\n position: absolute;\n font-size: 64px;\n top: calc(50% - 32px);\n left: calc(50% - 32px);\n color: rgb(255 255 255 / 75%);\n text-shadow: 0 0 2px rgb(0 0 0 / 40%);\n\n &::before {\n margin: 0;\n }\n }\n\n .attachment-buttons {\n display: flex;\n position: absolute;\n right: 0;\n top: 0;\n margin-top: 0.5em;\n margin-right: 0.5em;\n z-index: 1;\n\n .attachment-button {\n padding: 0;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n text-align: center;\n width: 2em;\n height: 2em;\n margin-left: 0.5em;\n font-size: 1.25em;\n // TODO: theming? hard to theme with unknown background image color\n background: rgb(230 230 230 / 70%);\n\n .svg-inline--fa {\n color: rgb(0 0 0 / 60%);\n }\n\n &:hover .svg-inline--fa {\n color: rgb(0 0 0 / 90%);\n }\n }\n }\n\n &.-contain-fit {\n img,\n canvas {\n object-fit: contain;\n }\n }\n\n &.-cover-fit {\n img,\n canvas {\n object-fit: cover;\n }\n }\n\n .oembed-container {\n line-height: 1.2em;\n flex: 1 0 100%;\n width: 100%;\n margin-right: 15px;\n display: flex;\n\n img {\n width: 100%;\n }\n\n .image {\n flex: 1;\n\n img {\n border: 0;\n border-radius: 5px;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .text {\n flex: 2;\n margin: 8px;\n word-break: break-all;\n\n h1 {\n font-size: 1rem;\n margin: 0;\n }\n }\n }\n\n &.-size-small {\n .play-icon {\n zoom: 0.5;\n opacity: 0.7;\n }\n\n .attachment-buttons {\n zoom: 0.7;\n opacity: 0.5;\n }\n }\n\n &.-editable {\n padding: 0.5em;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n }\n }\n\n &.-placeholder {\n display: inline-block;\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n overflow: hidden;\n white-space: nowrap;\n height: auto;\n line-height: 1.5;\n\n &:not(.-editable) {\n border: none;\n }\n\n &.-editable {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n padding: 0;\n position: relative;\n }\n\n .description-container {\n flex: 1;\n padding-left: 0.5em;\n }\n\n .attachment-buttons {\n order: 99;\n align-self: center;\n }\n }\n\n a {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n color: inherit;\n }\n }\n\n &.-loading {\n cursor: progress;\n }\n\n &.-compact {\n .placeholder-container {\n padding-bottom: 0.5em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-flow: row wrap;\n align-content: stretch;\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n\n &:last-child {\n margin: 0;\n }\n }\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n &.-grid,\n &.-minimal {\n height: auto;\n\n .gallery-row-inner {\n position: relative;\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n}\n","@import \"../../variables\";\n\n.MentionLink {\n position: relative;\n white-space: normal;\n display: inline;\n color: var(--link);\n word-break: normal;\n\n & .new,\n & .original {\n display: inline;\n border-radius: 2px;\n }\n\n .mention-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n user-select: none;\n margin-right: 0.2em;\n }\n\n .full {\n position: absolute;\n display: inline-block;\n pointer-events: none;\n opacity: 0;\n top: 100%;\n left: 0;\n height: 100%;\n word-wrap: normal;\n white-space: nowrap;\n transition: opacity 0.2s ease;\n z-index: 1;\n margin-top: 0.25em;\n padding: 0.5em;\n user-select: all;\n }\n\n & .short.-with-tooltip,\n & .you {\n user-select: none;\n }\n\n & .short,\n & .full {\n white-space: nowrap;\n }\n\n .shortName {\n white-space: normal;\n }\n\n .new {\n &.-you {\n .shortName {\n font-weight: 600;\n }\n }\n\n &.-has-selection {\n color: var(--alertNeutralText, $fallback--text);\n background-color: var(--alertNeutral, $fallback--fg);\n }\n\n .at {\n color: var(--link);\n opacity: 0.8;\n display: inline-block;\n line-height: 1;\n padding: 0 0.1em;\n vertical-align: -25%;\n margin: 0;\n }\n\n &.-striped {\n & .shortName {\n background-image:\n repeating-linear-gradient(\n 135deg,\n var(--____highlight-tintColor),\n var(--____highlight-tintColor) 5px,\n var(--____highlight-tintColor2) 5px,\n var(--____highlight-tintColor2) 10px\n );\n }\n }\n\n &.-solid {\n .shortName {\n background-image: linear-gradient(var(--____highlight-tintColor2), var(--____highlight-tintColor2));\n }\n }\n\n &.-side {\n .shortName {\n box-shadow: 0 -5px 3px -4px inset var(--____highlight-solidColor);\n }\n }\n }\n\n .serverName.-faded {\n color: var(--faintLink, $fallback--link);\n }\n}\n\n.mention-link-popover {\n max-width: 70ch;\n max-height: 20rem;\n overflow: hidden;\n}\n",".MentionsLine {\n word-break: break-all;\n\n .mention-link:not(:first-child)::before {\n content: \" \";\n }\n\n .showMoreLess {\n margin-left: 0.5em;\n white-space: normal;\n color: var(--link);\n }\n}\n",".HashtagLink {\n position: relative;\n white-space: normal;\n display: inline-block;\n color: var(--link);\n}\n","@import \"../../variables\";\n\n.RichContent {\n blockquote {\n margin: 0.2em 0 0.2em 0.2em;\n font-style: italic;\n border-left: 0.2em solid var(--faint, $fallback--faint);\n padding-left: 1em;\n }\n\n pre {\n overflow: auto;\n }\n\n code,\n samp,\n kbd,\n var,\n pre {\n font-family: var(--postCodeFont, monospace);\n }\n\n p {\n margin: 0 0 1em;\n }\n\n p:last-child {\n margin: 0;\n }\n\n h1 {\n font-size: 1.1em;\n line-height: 1.2em;\n margin: 1.4em 0;\n }\n\n h2 {\n font-size: 1.1em;\n margin: 1em 0;\n }\n\n h3 {\n font-size: 1em;\n margin: 1.2em 0;\n }\n\n h4 {\n margin: 1.1em 0;\n }\n\n .img {\n display: inline-block;\n }\n\n .emoji {\n display: inline-block;\n width: var(--emoji-size, 32px);\n height: var(--emoji-size, 32px);\n }\n\n .img,\n video {\n max-width: 100%;\n max-height: 400px;\n vertical-align: middle;\n object-fit: contain;\n }\n}\n","\n@import \"../../variables\";\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n\n .poll-option {\n margin: 0.75em 0.5em;\n }\n\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n\n .option-vote {\n display: flex;\n align-items: center;\n }\n\n input {\n width: 3.5em;\n }\n\n .footer {\n display: flex;\n align-items: center;\n }\n\n &.loading * {\n cursor: progress;\n }\n\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n\n .poll-checkbox {\n display: none;\n }\n}\n","@import \"../../variables\";\n\n.StatusBody {\n display: flex;\n flex-direction: column;\n\n .emoji {\n --_still_image-label-scale: 0.5;\n }\n\n .attachments {\n margin-top: 0.5em;\n }\n\n & .text,\n & .summary {\n font-family: var(--postFont, sans-serif);\n white-space: pre-wrap;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n line-height: var(--post-line-height);\n }\n\n .summary {\n display: block;\n font-style: italic;\n padding-bottom: 0.5em;\n }\n\n .text {\n &.-single-line {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n height: 1.4em;\n }\n }\n\n .summary-wrapper {\n margin-bottom: 0.5em;\n border-style: solid;\n border-width: 0 0 1px;\n border-color: var(--border, $fallback--border);\n flex-grow: 0;\n\n &.-tall {\n position: relative;\n\n .summary {\n max-height: 2em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n\n .text-wrapper {\n display: flex;\n flex-flow: column nowrap;\n\n &.-tall-status {\n position: relative;\n height: 220px;\n overflow-x: hidden;\n overflow-y: hidden;\n z-index: 1;\n\n .media-body {\n min-height: 0;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n }\n\n & .tall-status-hider,\n & .tall-subject-hider,\n & .status-unhider,\n & .cw-status-hider {\n display: inline-block;\n word-break: break-all;\n width: 100%;\n text-align: center;\n }\n\n .tall-status-hider {\n position: absolute;\n height: 70px;\n margin-top: 150px;\n line-height: 110px;\n z-index: 2;\n }\n\n .tall-subject-hider {\n // position: absolute;\n padding-bottom: 0.5em;\n }\n\n & .status-unhider,\n & .cw-status-hider {\n word-break: break-all;\n\n svg {\n color: inherit;\n }\n }\n\n .greentext {\n color: $fallback--cGreen;\n color: var(--postGreentext, $fallback--cGreen);\n }\n\n .cyantext {\n color: var(--postCyantext, $fallback--cBlue);\n }\n\n &.-compact {\n align-items: top;\n flex-direction: row;\n\n --emoji-size: 16px;\n\n & .body,\n & .attachments {\n max-height: 3.25em;\n }\n\n .body {\n overflow: hidden;\n white-space: normal;\n min-width: 5em;\n flex: 5 1 auto;\n mask-size: auto 3.5em, auto auto;\n mask-position: 0 0, 0 0;\n mask-repeat: repeat-x, repeat;\n mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n\n .attachments {\n margin-top: 0;\n flex: 1 1 0;\n min-width: 5em;\n height: 100%;\n margin-left: 0.5em;\n }\n\n .summary-wrapper {\n .summary::after {\n content: \": \";\n }\n\n line-height: inherit;\n margin: 0;\n border: none;\n display: inline-block;\n }\n\n .text-wrapper {\n display: inline-block;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n","\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n","\n@import \"../../variables\";\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n svg,\n i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .media-upload-icon,\n .poll-icon,\n .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected,\n &:hover {\n // needs to be specific to override icon default color\n svg,\n i,\n label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg,\n i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n\n img,\n video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n","\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n","\n@import \"../../variables\";\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgb(27 31 35 / 50%);\n z-index: 2000;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 2001;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: 0.5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: 0.5rem;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.moderation-tools-popover {\n height: 100%;\n\n .trigger {\n /* stylelint-disable-next-line declaration-no-important */\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,\n i {\n font-size: 0.8em;\n }\n}\n","\n@import \"../../variables\";\n\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n","@import \"../../variables\";\n\n.user-card {\n position: relative;\n z-index: 1;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n .panel-heading {\n padding: 0.5em 0;\n text-align: center;\n box-shadow: none;\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n // create new stacking context\n position: relative;\n }\n\n .panel-body {\n word-wrap: break-word;\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n // create new stacking context\n position: relative;\n }\n\n .background-image {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n mask:\n linear-gradient(to top, white, transparent) bottom no-repeat,\n linear-gradient(to top, white, white);\n // Autoprefixer seem to ignore this one, and also syntax is different\n mask-composite: xor;\n mask-composite: exclude;\n background-size: cover;\n mask-size: 100% 60%;\n border-top-left-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-top-right-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-bottom-left-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n border-bottom-right-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n background-color: var(--profileBg);\n z-index: -2;\n\n &.hide-bio {\n mask-size: 100% 40px;\n }\n }\n\n &-bio {\n text-align: center;\n display: block;\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n\n a {\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n }\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n }\n }\n\n &.-rounded-t {\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: 0;\n }\n\n &.-rounded {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: var(--panelRadius);\n }\n\n &.-popover {\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n --__roundnessTop: var(--tooltipRadius);\n --__roundnessBottom: var(--tooltipRadius);\n }\n\n &.-bordered {\n border-width: 1px;\n border-style: solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n}\n\n.user-info {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n padding: 0 26px;\n\n a {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n\n &:hover {\n color: var(--icon);\n }\n }\n\n .container {\n min-width: 0;\n padding: 16px 0 6px;\n display: flex;\n align-items: flex-start;\n max-height: 56px;\n\n > * {\n min-width: 0;\n }\n\n > a {\n vertical-align: middle;\n display: flex;\n }\n\n .Avatar {\n --_avatarShadowBox: var(--avatarShadow);\n --_avatarShadowFilter: var(--avatarShadowFilter);\n --_avatarShadowInset: var(--avatarShadowInset);\n\n width: 56px;\n height: 56px;\n object-fit: cover;\n }\n }\n\n &-avatar {\n position: relative;\n cursor: pointer;\n\n &.-overlay {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: rgb(0 0 0 / 30%);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n opacity: 0;\n transition: opacity 0.2s ease;\n\n svg {\n color: #fff;\n }\n }\n\n &:hover &.-overlay {\n opacity: 1;\n }\n }\n\n .external-link-button,\n .edit-profile-button {\n cursor: pointer;\n width: 2.5em;\n text-align: center;\n margin: -0.5em 0;\n padding: 0.5em 0;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .bottom-line {\n font-weight: light;\n font-size: 1.1em;\n align-items: baseline;\n\n .lock-icon {\n margin-left: 0.5em;\n }\n\n .user-screen-name {\n min-width: 1px;\n flex: 0 1 auto;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .dailyAvg {\n min-width: 1px;\n flex: 0 0 auto;\n margin-left: 1em;\n font-size: 0.7em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .user-role {\n flex: none;\n color: $fallback--text;\n color: var(--alertNeutralText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--alertNeutral, $fallback--fg);\n }\n }\n\n .user-summary {\n display: block;\n margin-left: 0.6em;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1 1 0;\n // This is so that text doesn't get overlapped by avatar's shadow if it has\n // big one\n z-index: 1;\n line-height: 2em;\n\n --emoji-size: 1.7em;\n\n .top-line,\n .bottom-line {\n display: flex;\n }\n }\n\n .user-name {\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 1 1 auto;\n margin-right: 1em;\n font-size: 1.1em;\n }\n\n .user-meta {\n margin-bottom: 0.15em;\n display: flex;\n align-items: baseline;\n line-height: 22px;\n flex-wrap: wrap;\n\n .following {\n flex: 1 0 auto;\n margin: 0;\n margin-bottom: 0.25em;\n text-align: left;\n }\n\n .highlighter {\n flex: 0 1 auto;\n display: flex;\n flex-wrap: wrap;\n margin-right: -0.5em;\n align-self: start;\n\n .userHighlightCl {\n padding: 2px 10px;\n flex: 1 0 auto;\n }\n\n .userHighlightSel {\n padding-top: 0;\n padding-bottom: 0;\n flex: 1 0 auto;\n }\n\n .userHighlightText {\n width: 70px;\n flex: 1 0 auto;\n }\n\n .userHighlightCl,\n .userHighlightText,\n .userHighlightSel {\n vertical-align: top;\n margin-right: 0.5em;\n margin-bottom: 0.25em;\n }\n }\n }\n\n .user-interactions {\n position: relative;\n display: flex;\n flex-flow: row wrap;\n margin-right: -0.75em;\n\n > * {\n margin: 0 0.75em 0.6em 0;\n white-space: nowrap;\n min-width: 95px;\n }\n\n button {\n margin: 0;\n }\n }\n\n .user-note {\n margin: 0 0.75em 0.6em 0;\n }\n}\n\n.sidebar .edit-profile-button {\n display: none;\n}\n\n.user-counts {\n display: flex;\n line-height: 16px;\n padding: 0.5em 1.5em 0;\n text-align: center;\n justify-content: space-between;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n flex-wrap: wrap;\n}\n\n.user-count {\n flex: 1 0 auto;\n padding: 0.5em 0;\n margin: 0 0.5em;\n\n h5 {\n font-size: 1em;\n font-weight: bolder;\n margin: 0 0 0.25em;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */\n a {\n text-decoration: none;\n }\n}\n\n.mute-expiry {\n display: flex;\n flex-direction: row;\n}\n","\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n","\n@import \"../../variables\";\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n // stylelint-disable-next-line length-zero-no-unit\n --panel-heading-height-padding: 0px;\n }\n}\n","\n .features-panel li {\n line-height: 24px;\n }\n","\n .who-to-follow * {\n vertical-align: middle;\n }\n\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n\n .who-to-follow {\n padding: 0 1em;\n margin: 0;\n }\n\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n margin: 1em 0;\n }\n\n .who-to-follow-more {\n padding: 0;\n margin: 1em 0;\n text-align: center;\n }\n","\n@import \"../../variables\";\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n","\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n\n &--prev {\n left: 0;\n\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n overflow: hidden;\n}\n","\n@import \"../../variables\";\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgb(0 0 0 / 50%);\n}\n\n.side-drawer-darken-closed {\n background-color: rgb(0 0 0 / 0%);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition: 0.35s;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a,\n button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 2px 2px rgb(0 0 0 / 30%), 0 4px 6px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ExtraButtons {\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n","\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n .emoji-reaction {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n\n .reaction-emoji {\n width: 1.25em;\n margin-right: 0.25em;\n }\n\n &:focus {\n outline: none;\n }\n\n &.not-clickable {\n cursor: default;\n\n &:hover {\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n }\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: calc(0.5em - 1px);\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n","@import \"../../variables\";\n\n.Status {\n min-width: 0;\n white-space: normal;\n word-wrap: break-word;\n word-break: break-word;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-focused {\n background-color: $fallback--lightBg;\n background-color: var(--selectedPost, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedPostText, $fallback--text);\n\n --lightText: var(--selectedPostLightText, $fallback--light);\n --faint: var(--selectedPostFaintText, $fallback--faint);\n --faintLink: var(--selectedPostFaintLink, $fallback--faint);\n --postLink: var(--selectedPostPostLink, $fallback--faint);\n --postFaintLink: var(--selectedPostFaintPostLink, $fallback--faint);\n --icon: var(--selectedPostIcon, $fallback--icon);\n }\n\n .gravestone {\n padding: var(--status-margin, $status-margin);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n display: flex;\n\n .deleted-text {\n margin: 0.5em 0;\n align-items: center;\n }\n }\n\n .status-container {\n display: flex;\n padding: var(--status-margin, $status-margin);\n\n > * {\n min-width: 0;\n }\n\n &.-repeat {\n padding-top: 0;\n }\n }\n\n .pin {\n padding: var(--status-margin, $status-margin) var(--status-margin, $status-margin) 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n ._misclick-prevention & {\n pointer-events: none;\n\n .attachments {\n pointer-events: initial;\n cursor: initial;\n }\n }\n\n .left-side {\n margin-right: var(--status-margin, $status-margin);\n }\n\n .right-side {\n flex: 1;\n min-width: 0;\n }\n\n .usercard {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .status-username {\n white-space: nowrap;\n overflow: hidden;\n max-width: 85%;\n font-weight: bold;\n flex-shrink: 1;\n margin-right: 0.4em;\n text-overflow: ellipsis;\n\n --_still_image-label-scale: 0.25;\n --emoji-size: 14px;\n }\n\n .status-favicon {\n height: 18px;\n width: 18px;\n margin-right: 0.4em;\n }\n\n .status-heading {\n margin-bottom: 0.5em;\n }\n\n .heading-name-row {\n display: flex;\n justify-content: space-between;\n line-height: 1.3;\n\n a {\n display: inline-block;\n word-break: break-all;\n }\n }\n\n .account-name {\n min-width: 1.6em;\n margin-right: 0.4em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1 1 0;\n }\n\n .heading-left {\n display: flex;\n min-width: 0;\n }\n\n .heading-right {\n display: flex;\n flex-shrink: 0;\n\n .button-unstyled {\n padding: 5px;\n margin: -5px;\n\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n\n .glued-label {\n display: inline-flex;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n & .heading-reply-row,\n & .heading-edited-row {\n position: relative;\n align-content: baseline;\n font-size: 0.85em;\n margin-top: 0.2em;\n line-height: 130%;\n max-width: 100%;\n align-items: stretch;\n }\n\n & .reply-to-popover,\n & .reply-to-no-popover,\n & .mentions {\n min-width: 0;\n margin-right: 0.4em;\n flex-shrink: 0;\n }\n\n .reply-glued-label {\n margin-right: 0.5em;\n }\n\n .reply-to-popover {\n .reply-to:hover::before {\n content: \"\";\n display: block;\n position: absolute;\n bottom: 0;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n\n .faint-link:hover {\n // override default\n text-decoration: none;\n }\n\n &.-strikethrough {\n .reply-to::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n }\n }\n\n & .mentions,\n & .reply-to {\n white-space: nowrap;\n position: relative;\n }\n\n & .mentions-text,\n & .reply-to-text {\n color: var(--faint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .mentions-line {\n display: inline;\n }\n\n .replies {\n margin-top: 0.25em;\n line-height: 1.3;\n font-size: 0.85em;\n display: flex;\n flex-wrap: wrap;\n\n & > * {\n margin-right: 0.4em;\n }\n }\n\n .reply-link {\n height: 17px;\n }\n\n .repeat-info {\n padding: 0.4em var(--status-margin, $status-margin);\n\n .repeat-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n }\n\n .repeater-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n margin-left: 28px;\n width: 20px;\n height: 20px;\n }\n\n .repeater-name {\n text-overflow: ellipsis;\n margin-right: 0;\n\n .emoji {\n width: 14px;\n height: 14px;\n vertical-align: middle;\n object-fit: contain;\n }\n }\n\n .status-fadein {\n animation-duration: 0.4s;\n animation-name: fadein;\n }\n\n @keyframes fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .status-actions {\n position: relative;\n width: 100%;\n display: flex;\n margin-top: var(--status-margin, $status-margin);\n\n > * {\n max-width: 4em;\n flex: 1;\n }\n }\n\n .muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: \" \";\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .reply-form {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n .reply-body {\n flex: 1;\n }\n\n .favs-repeated-users {\n margin-top: var(--status-margin, $status-margin);\n }\n\n .stats {\n width: 100%;\n display: flex;\n line-height: 1em;\n }\n\n .avatar-row {\n flex: 1;\n overflow: hidden;\n position: relative;\n display: flex;\n align-items: center;\n\n &::before {\n content: \"\";\n position: absolute;\n height: 100%;\n width: 1px;\n left: 0;\n background-color: var(--faint, $fallback--faint);\n }\n }\n\n .stat-count {\n margin-right: var(--status-margin, $status-margin);\n user-select: none;\n\n .stat-title {\n color: var(--faint, $fallback--faint);\n font-size: 0.85em;\n text-transform: uppercase;\n position: relative;\n }\n\n .stat-number {\n font-weight: bolder;\n font-size: 1.1em;\n line-height: 1em;\n }\n\n &:hover .stat-title {\n text-decoration: underline;\n }\n }\n\n @media all and (max-width: 800px) {\n .repeater-avatar {\n margin-left: 20px;\n }\n\n .post-avatar {\n width: 40px;\n height: 40px;\n\n // TODO define those other way somehow?\n // stylelint-disable rscss/class-format\n &.-compact {\n width: 32px;\n height: 32px;\n }\n }\n }\n}\n","@import \"../../variables\";\n\n.Report {\n .report-content {\n margin: 0.5em 0 1em;\n }\n\n .report-state {\n margin: 0.5em 0 1em;\n }\n\n .reported-status {\n border: 1px solid $fallback--faint;\n border-color: var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n color: $fallback--text;\n color: var(--text, $fallback--text);\n display: block;\n padding: 0.5em;\n margin: 0.5em 0;\n\n .status-content {\n pointer-events: none;\n }\n\n .reported-status-heading {\n display: flex;\n width: 100%;\n justify-content: space-between;\n margin-bottom: 0.2em;\n }\n\n .reported-status-name {\n font-weight: bold;\n }\n }\n\n .note {\n width: 100%;\n margin-bottom: 0.5em;\n }\n}\n","@import \"../../variables\";\n\n// TODO Copypaste from Status, should unify it somehow\n.Notification {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n word-wrap: break-word;\n word-break: break-word;\n\n --emoji-size: 14px;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: \" \";\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .type-icon {\n margin: 0 0.1em;\n }\n\n &.-type--repeat .type-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n &.-type--follow .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--follow-request .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--like .type-icon {\n color: orange;\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n &.-type--move .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n}\n","@import \"../../variables\";\n\n.Notifications {\n &:not(.minimal) {\n // a bit of a hack to allow scrolling below notifications\n padding-bottom: 15em;\n }\n\n .loadmore-error {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .notification {\n position: relative;\n\n .notification-overlay {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n &.unseen {\n .notification-overlay {\n background-image: linear-gradient(135deg, var(--badgeNotification, $fallback--cRed) 4px, transparent 10px);\n }\n }\n }\n}\n\n/* stylelint-disable-next-line no-descending-specificity */\n.notification {\n box-sizing: border-box;\n\n &:hover .animated.Avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n\n &:last-child .Notification {\n border-bottom: none;\n }\n\n .non-mention {\n display: flex;\n flex: 1;\n flex-wrap: nowrap;\n padding: 0.6em;\n min-width: 0;\n\n .avatar-container {\n width: 32px;\n height: 32px;\n }\n\n .faint {\n --link: var(--faintLink);\n --text: var(--faint);\n }\n }\n\n .follow-request-accept {\n &:hover {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .follow-request-reject {\n &:hover {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n .follow-text,\n .move-text {\n padding: 0.5em 0;\n overflow-wrap: break-word;\n display: flex;\n justify-content: space-between;\n\n .follow-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n /* TODO cleanup this */\n .Status {\n flex: 1;\n }\n\n time {\n white-space: nowrap;\n }\n\n .notification-right {\n flex: 1;\n padding-left: 0.8em;\n min-width: 0;\n\n .timeago {\n min-width: 3em;\n text-align: right;\n }\n\n .timeago-link {\n margin-right: 0.2em;\n }\n\n .expand-icon {\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n }\n\n .emoji-reaction-emoji {\n font-size: 1.3em;\n }\n\n .notification-details {\n min-width: 0;\n word-wrap: break-word;\n line-height: var(--post-line-height);\n position: relative;\n overflow: hidden;\n width: 100%;\n flex: 1 1 0;\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n\n .name-and-action {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .username {\n font-weight: bolder;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n .status-content {\n margin: 0;\n max-height: 300px;\n }\n\n h1 {\n word-break: break-all;\n margin: 0 0 0.3em;\n padding: 0;\n font-size: 1em;\n line-height: 1.5;\n\n small {\n font-weight: lighter;\n }\n }\n\n p {\n margin: 0;\n margin-top: 0;\n margin-bottom: 0.3em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 0.3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n .confirm-modal.dark-overlay {\n &::before {\n z-index: 3000;\n }\n\n .dialog-modal.panel {\n z-index: 3001;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n","@import \"../../variables\";\n\n.DesktopNav {\n width: 100%;\n z-index: var(--ZI_navbar);\n\n input {\n color: var(--inputTopbarText, var(--inputText));\n }\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n\n .inner-nav {\n display: grid;\n grid-template-rows: var(--navbar-height);\n grid-template-columns: 2fr auto 2fr;\n grid-template-areas: \"sitename logo actions\";\n box-sizing: border-box;\n padding: 0 1.2em;\n margin: auto;\n max-width: 980px;\n }\n\n &.-column-stretch .inner-nav {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n\n max-width:\n calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--columnGap)\n );\n }\n\n &.-logoLeft .inner-nav {\n grid-template-columns: auto 2fr 2fr;\n grid-template-areas: \"logo sitename actions\";\n }\n\n &.-column-stretch.-wide .inner-nav {\n max-width:\n calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--notifsColumnWidth, var(--miniColumn)) +\n var(--columnGap)\n );\n }\n\n .button-default {\n &,\n svg {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedTopBar, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedTopBarText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledTopBarText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledTopBarText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggledTopBar, $fallback--fg);\n }\n }\n\n .logo {\n grid-area: logo;\n position: relative;\n transition: opacity;\n transition-timing-function: ease-out;\n transition-duration: 100ms;\n\n @media all and (min-width: 800px) {\n /* stylelint-disable-next-line declaration-no-important */\n opacity: 1 !important;\n }\n\n .mask {\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n background-color: $fallback--fg;\n background-color: var(--topBarText, $fallback--fg);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n img {\n display: inline-block;\n height: var(--navbar-height);\n }\n }\n\n .nav-icon {\n margin-left: 0.2em;\n width: 2em;\n height: 100%;\n text-align: center;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .sitename {\n grid-area: sitename;\n }\n\n .actions {\n grid-area: actions;\n }\n\n .item {\n flex: 1;\n line-height: var(--navbar-height);\n height: var(--navbar-height);\n overflow: hidden;\n display: flex;\n flex-wrap: wrap;\n\n &.right {\n justify-content: flex-end;\n text-align: right;\n }\n }\n\n .spacer {\n width: 1em;\n }\n}\n","\n@import \"../../variables\";\n\n.list {\n &-item:not(:last-child) {\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n &-empty-content {\n text-align: center;\n padding: 10px;\n }\n}\n","\n@import \"../../variables\";\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n","\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n","\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n@import \"../../variables\";\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_navbar_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n","// stylelint-disable rscss/class-format\n/* stylelint-disable no-descending-specificity */\n@import \"./variables\";\n@import \"./panel\";\n\n:root {\n --navbar-height: 3.5rem;\n --post-line-height: 1.4;\n // Z-Index stuff\n --ZI_media_modal: 9000;\n --ZI_modals_popovers: 8500;\n --ZI_modals: 8000;\n --ZI_navbar_popovers: 7500;\n --ZI_navbar: 7000;\n --ZI_popovers: 6000;\n}\n\nhtml {\n font-size: 14px;\n // overflow-x: clip causes my browser's tab to crash with SIGILL lul\n}\n\nbody {\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n margin: 0;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n overscroll-behavior-y: none;\n overflow-x: clip;\n overflow-y: scroll;\n\n &.hidden {\n display: none;\n }\n}\n\n// ## Custom scrollbars\n// Only show custom scrollbars on devices which\n// have a cursor/pointer to operate them\n@media (any-pointer: fine) {\n * {\n scrollbar-color: var(--btn) transparent;\n\n &::-webkit-scrollbar {\n background: transparent;\n }\n\n &::-webkit-scrollbar-button,\n &::-webkit-scrollbar-thumb {\n background-color: var(--btn);\n box-shadow: var(--buttonShadow);\n border-radius: var(--btnRadius);\n }\n\n // horizontal/vertical/increment/decrement are webkit-specific stuff\n // that indicates whether we're affecting vertical scrollbar, increase button etc\n // stylelint-disable selector-pseudo-class-no-unknown\n &::-webkit-scrollbar-button {\n --___bgPadding: 2px;\n\n color: var(--btnText);\n background-repeat: no-repeat, no-repeat;\n\n &:horizontal {\n background-size: 50% calc(50% - var(--___bgPadding)), 50% calc(50% - var(--___bgPadding));\n\n &:increment {\n background-image:\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%);\n background-position: top var(--___bgPadding) left 50%, right 50% bottom var(--___bgPadding);\n }\n\n &:decrement {\n background-image:\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%);\n background-position: bottom var(--___bgPadding) right 50%, left 50% top var(--___bgPadding);\n }\n }\n\n &:vertical {\n background-size: calc(50% - var(--___bgPadding)) 50%, calc(50% - var(--___bgPadding)) 50%;\n\n &:increment {\n background-image:\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%);\n background-position: right var(--___bgPadding) top 50%, left var(--___bgPadding) top 50%;\n }\n\n &:decrement {\n background-image:\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%);\n background-position: left var(--___bgPadding) top 50%, right var(--___bgPadding) top 50%;\n }\n }\n }\n // stylelint-enable selector-pseudo-class-no-unknown\n }\n // Body should have background to scrollbar otherwise it will use white (body color?)\n html {\n scrollbar-color: var(--selectedMenu) var(--wallpaper);\n background: var(--wallpaper);\n }\n}\n\na {\n text-decoration: none;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n}\n\nh4 {\n margin: 0;\n}\n\n.iconLetter {\n display: inline-block;\n text-align: center;\n font-weight: 1000;\n}\n\ni[class*=\"icon-\"],\n.svg-inline--fa,\n.iconLetter {\n color: $fallback--icon;\n color: var(--icon, $fallback--icon);\n}\n\n.button-unstyled:hover,\na:hover {\n > i[class*=\"icon-\"],\n > .svg-inline--fa,\n > .iconLetter {\n color: var(--text);\n }\n}\n\nnav {\n z-index: var(--ZI_navbar);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n box-sizing: border-box;\n height: var(--navbar-height);\n position: fixed;\n}\n\n#sidebar {\n grid-area: sidebar;\n}\n\n#modal {\n position: absolute;\n z-index: var(--ZI_modals);\n}\n\n.column.-scrollable {\n top: var(--navbar-height);\n position: sticky;\n}\n\n#main-scroller {\n grid-area: content;\n position: relative;\n}\n\n#notifs-column {\n grid-area: notifs;\n}\n\n.app-bg-wrapper {\n position: fixed;\n height: 100%;\n top: var(--navbar-height);\n z-index: -1000;\n left: 0;\n right: -20px;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-position: 50%;\n}\n\n.underlay {\n grid-column: 1 / span 3;\n grid-row: 1 / 1;\n pointer-events: none;\n background-color: rgb(0 0 0 / 15%);\n background-color: var(--underlay, rgb(0 0 0 / 15%));\n z-index: -1000;\n}\n\n.app-layout {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n --status-margin: 0.75em;\n --effectiveSidebarColumnWidth: minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)));\n --effectiveNotifsColumnWidth: minmax(var(--miniColumn), var(--notifsColumnWidth, var(--miniColumn)));\n --effectiveContentColumnWidth: minmax(var(--miniColumn), var(--contentColumnWidth, var(--maxiColumn)));\n\n position: relative;\n display: grid;\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth);\n grid-template-areas: \"sidebar content\";\n grid-template-rows: 1fr;\n box-sizing: border-box;\n margin: 0 auto;\n align-content: flex-start;\n flex-wrap: wrap;\n justify-content: center;\n min-height: 100vh;\n overflow-x: clip;\n\n .column {\n --___columnMargin: var(--columnGap);\n\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n grid-row: 1 / 1;\n margin: 0 calc(var(--___columnMargin) / 2);\n padding: calc(var(--___columnMargin)) 0;\n row-gap: var(--___columnMargin);\n align-content: start;\n\n &:not(.-scrollable) {\n margin-top: var(--navbar-height);\n }\n\n &:hover {\n z-index: 2;\n }\n\n &.-full-height {\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n\n &.-scrollable {\n --___paddingIncrease: calc(var(--columnGap) / 2);\n\n position: sticky;\n top: var(--navbar-height);\n max-height: calc(100vh - var(--navbar-height));\n overflow-y: auto;\n overflow-x: hidden;\n margin-left: calc(var(--___paddingIncrease) * -1);\n padding-left: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n // On browsers that don't support hiding scrollbars we enforce \"show scrolbars\" mode\n // might implement old style of hiding scrollbars later if there's demand\n @supports (scrollbar-width: none) or (-webkit-text-fill-color: initial) {\n &:not(.-show-scrollbar) {\n scrollbar-width: none;\n margin-right: calc(var(--___paddingIncrease) * -1);\n padding-right: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n &::-webkit-scrollbar {\n display: block;\n width: 0;\n }\n }\n }\n\n .panel-heading.-sticky {\n top: calc(var(--columnGap) / -1);\n }\n }\n }\n\n &.-has-new-post-button {\n .column {\n padding-bottom: 10rem;\n }\n }\n\n &.-no-sticky-headers {\n .column {\n .panel-heading.-sticky {\n position: relative;\n top: 0;\n }\n }\n }\n\n .column-inner {\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n row-gap: 1em;\n align-content: start;\n }\n\n &.-reverse:not(.-wide, .-mobile) {\n grid-template-columns:\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"content sidebar\";\n }\n\n &.-wide {\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveNotifsColumnWidth);\n grid-template-areas: \"sidebar content notifs\";\n\n &.-reverse {\n grid-template-columns:\n var(--effectiveNotifsColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"notifs content sidebar\";\n }\n }\n\n &.-mobile {\n grid-template-columns: 100vw;\n grid-template-areas: \"content\";\n padding: 0;\n\n .column {\n padding-top: 0;\n margin: var(--navbar-height) 0 0 0;\n }\n\n .panel-heading,\n .panel-heading::after,\n .panel-heading::before,\n .panel,\n .panel::after {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n #sidebar,\n #notifs-column {\n display: none;\n }\n }\n\n &.-normal {\n #notifs-column {\n display: none;\n }\n }\n}\n\n.text-center {\n text-align: center;\n}\n\n.button-default {\n user-select: none;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n border: none;\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n cursor: pointer;\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n font-size: 1em;\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n\n &.-sublime {\n background: transparent;\n }\n\n i[class*=\"icon-\"],\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &::-moz-focus-inner {\n border: none;\n }\n\n &:hover {\n box-shadow: 0 0 4px rgb(255 255 255 / 30%);\n box-shadow: var(--buttonHoverShadow);\n }\n\n &:active {\n box-shadow:\n 0 0 4px 0 rgb(255 255 255 / 30%),\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset;\n box-shadow: var(--buttonPressedShadow);\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnPressed, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnDisabled, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggled, $fallback--fg);\n box-shadow:\n 0 0 4px 0 rgb(255 255 255 / 30%),\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset;\n box-shadow: var(--buttonPressedShadow);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n\n &.danger {\n // TODO: add better color variable\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n }\n}\n\n.button-unstyled {\n background: none;\n border: none;\n outline: none;\n display: inline;\n text-align: initial;\n font-size: 100%;\n font-family: inherit;\n padding: 0;\n line-height: unset;\n cursor: pointer;\n box-sizing: content-box;\n color: inherit;\n\n &.-link {\n color: $fallback--link;\n color: var(--link, $fallback--link);\n }\n\n &.-fullwidth {\n width: 100%;\n }\n\n &.-hover-highlight {\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n\ninput,\ntextarea,\n.input {\n &.unstyled {\n border-radius: 0;\n background: none;\n box-shadow: none;\n height: unset;\n }\n\n --_padding: 0.5em;\n\n border: none;\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n box-shadow:\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 0 2px 0 rgb(0 0 0 / 100%) inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n margin: 0;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n line-height: 2;\n hyphens: none;\n padding: 0 var(--_padding);\n\n &:disabled,\n &[disabled=\"disabled\"],\n &.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &[type=\"range\"] {\n background: none;\n border: none;\n margin: 0;\n box-shadow: none;\n flex: 1;\n }\n\n &[type=\"radio\"] {\n display: none;\n\n &:checked + label::before {\n box-shadow: 0 0 2px black inset, 0 0 0 4px $fallback--fg inset;\n box-shadow: var(--inputShadow), 0 0 0 4px var(--fg, $fallback--fg) inset;\n background-color: var(--accent, $fallback--link);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-block;\n content: \"\";\n transition: box-shadow 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 100%; // Radio buttons should always be circle\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &[type=\"checkbox\"] {\n &:checked + label::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-block;\n content: \"✓\";\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: $fallback--checkboxRadius;\n border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &.resize-height {\n resize: vertical;\n }\n}\n\n// Textareas should have stock line-height + vertical padding instead of huge line-height\ntextarea {\n padding: var(--_padding);\n line-height: var(--post-line-height);\n}\n\noption {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n}\n\n.hide-number-spinner {\n appearance: textfield;\n\n &[type=\"number\"]::-webkit-inner-spin-button,\n &[type=\"number\"]::-webkit-outer-spin-button {\n opacity: 0;\n display: none;\n }\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-group {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n\n button {\n position: relative;\n flex: 1 1 auto;\n\n &:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n\n.fa {\n color: grey;\n}\n\n.mobile-shown {\n display: none;\n}\n\n.badge {\n box-sizing: border-box;\n display: inline-block;\n border-radius: 99px;\n max-width: 10em;\n min-width: 1.7em;\n height: 1.3em;\n padding: 0.15em;\n vertical-align: middle;\n font-weight: normal;\n font-style: normal;\n font-size: 0.9em;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.badge-notification {\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n color: white;\n color: var(--badgeNotificationText, white);\n }\n}\n\n.alert {\n margin: 0 0.35em;\n padding: 0 0.25em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n &.error {\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n color: $fallback--text;\n color: var(--alertErrorText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n }\n }\n\n &.warning {\n background-color: $fallback--alertWarning;\n background-color: var(--alertWarning, $fallback--alertWarning);\n color: $fallback--text;\n color: var(--alertWarningText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertWarningPanelText, $fallback--text);\n }\n }\n\n &.success {\n background-color: var(--alertSuccess, $fallback--alertWarning);\n color: var(--alertSuccessText, $fallback--text);\n\n .panel-heading & {\n color: var(--alertSuccessPanelText, $fallback--text);\n }\n }\n}\n\n.faint {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n}\n\n.faint-link {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.visibility-notice {\n padding: 0.5em;\n border: 1px solid $fallback--faint;\n border: 1px solid var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n}\n\n.notice-dismissible {\n padding-right: 4rem;\n position: relative;\n\n .dismiss {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.5em;\n color: inherit;\n }\n}\n\n.fa-scale-110 {\n &.svg-inline--fa,\n &.iconLetter {\n font-size: 1.1em;\n }\n}\n\n.fa-old-padding {\n &.iconLetter,\n &.svg-inline--fa,\n &-layer {\n padding: 0 0.3em;\n }\n}\n\n.veryfaint {\n opacity: 0.25;\n}\n\n.login-hint {\n text-align: center;\n\n @media all and (min-width: 801px) {\n display: none;\n }\n\n a {\n display: inline-block;\n padding: 1em 0;\n width: 100%;\n }\n}\n\n.btn.button-default {\n min-height: 2em;\n}\n\n.new-status-notification {\n position: relative;\n font-size: 1.1em;\n z-index: 1;\n flex: 1;\n}\n\n@media all and (max-width: 800px) {\n .mobile-hidden {\n display: none;\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(359deg);\n }\n}\n\n@keyframes shakeError {\n 0% {\n transform: translateX(0);\n }\n\n 15% {\n transform: translateX(0.375rem);\n }\n\n 30% {\n transform: translateX(-0.375rem);\n }\n\n 45% {\n transform: translateX(0.375rem);\n }\n\n 60% {\n transform: translateX(-0.375rem);\n }\n\n 75% {\n transform: translateX(0.375rem);\n }\n\n 90% {\n transform: translateX(-0.375rem);\n }\n\n 100% {\n transform: translateX(0);\n }\n}\n\n// Vue transitions\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.3s;\n}\n\n.fade-enter-from,\n.fade-leave-active {\n opacity: 0;\n}\n/* stylelint-enable no-descending-specificity */\n\n.visible-for-screenreader-only {\n display: block;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n visibility: visible;\n clip: rect(0 0 0 0);\n padding: 0;\n position: absolute;\n}\n","/* stylelint-disable no-descending-specificity */\n.panel {\n position: relative;\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after,\n & {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n}\n\n.panel-body {\n padding: var(--panel-body-padding, 0);\n\n &:empty::before {\n content: \"¯\\\\_(ツ)_/¯\"; // Could use words but it'd require translations\n display: block;\n margin: 1em;\n text-align: center;\n }\n\n > p {\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n }\n}\n\n.panel-heading,\n.panel-footer {\n --panel-heading-height-padding: 0.6em;\n --__panel-heading-gap: 0.5em;\n --__panel-heading-height: 3.2em;\n --__panel-heading-height-inner: calc(var(--__panel-heading-height) - 2 * var(--panel-heading-height-padding, 0));\n\n position: relative;\n box-sizing: border-box;\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: minmax(50%, 1fr);\n grid-auto-columns: auto;\n grid-column-gap: var(--__panel-heading-gap);\n flex: none;\n background-size: cover;\n padding: var(--panel-heading-height-padding);\n height: var(--__panel-heading-height);\n line-height: var(--__panel-heading-height-inner);\n z-index: 4;\n\n &.-flexible-height {\n --__panel-heading-height: auto;\n\n &::after,\n &::before {\n display: none;\n }\n }\n\n &.-stub {\n &,\n &::after {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n &.-sticky {\n position: sticky;\n top: var(--navbar-height);\n }\n\n &::after,\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n pointer-events: none;\n }\n\n .title {\n font-size: 1.3em;\n }\n\n .alert {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n }\n\n &:not(.-flexible-height) {\n > .button-default,\n > .alert {\n height: var(--__panel-heading-height-inner);\n min-height: 0;\n box-sizing: border-box;\n margin: 0;\n min-width: 1px;\n padding-top: 0;\n padding-bottom: 0;\n align-self: stretch;\n }\n }\n}\n\n// TODO Should refactor panels into separate component and utilize slots\n\n.panel-heading {\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n border-width: 0 0 1px;\n align-items: start;\n // panel theme\n color: var(--panelText);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after {\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n z-index: -2;\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n box-shadow: var(--panelHeaderShadow);\n }\n\n a,\n .-link {\n color: $fallback--link;\n color: var(--panelLink, $fallback--link);\n }\n\n .button-unstyled:hover,\n a:hover {\n i[class*=\"icon-\"],\n .svg-inline--fa,\n .iconLetter {\n color: var(--panelText);\n }\n }\n\n .faint {\n background-color: transparent;\n color: $fallback--faint;\n color: var(--panelFaint, $fallback--faint);\n }\n\n .faint-link {\n color: $fallback--faint;\n color: var(--faintLink, $fallback--faint);\n }\n\n &:not(.-flexible-height) {\n > .button-default {\n flex-shrink: 0;\n\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnPanelText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedPanel, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedPanelText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledPanelText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledPanelText, $fallback--text);\n }\n }\n }\n\n .rightside-button {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n height: var(--__panel-heading-height);\n margin: calc(-1 * var(--panel-heading-height-padding)) 0;\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n > button {\n box-sizing: border-box;\n padding: calc(1 * var(--panel-heading-height-padding)) 0;\n height: 100%;\n width: 100%;\n text-align: center;\n\n svg {\n font-size: 1.2em;\n }\n }\n }\n\n .rightside-icon {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n svg {\n font-size: 1.2em;\n }\n }\n}\n\n.panel-footer {\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n align-items: center;\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n}\n/* stylelint-enable no-descending-specificity */\n","\n@import \"../../variables\";\n\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n","\n@import \"../../variables\";\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n &,\n &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n &:last-child .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left: 4px solid $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n","\n@import \"../../variables\";\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n}\n","@import \"../../variables\";\n\n.Timeline {\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: var(--badgeNeutral);\n }\n\n .alert-badge {\n font-size: 0.75em;\n line-height: 1;\n text-align: right;\n border-radius: var(--tooltipRadius);\n position: absolute;\n left: calc(50% - 0.5em);\n top: calc(50% - 0.4em);\n padding: 0.2em;\n margin-left: 0.7em;\n margin-top: -1em;\n background-color: var(--badgeNeutral);\n color: var(--badgeNeutralText);\n }\n\n .loadmore-button {\n position: relative;\n }\n\n &.-blocked {\n cursor: progress;\n }\n\n .conversation-heading {\n top: calc(var(--__panel-heading-height) * var(--currentPanelStack, 2));\n z-index: 2;\n }\n\n &.-nonpanel {\n .timeline-heading {\n text-align: center;\n line-height: 2.75em;\n padding: 0 0.5em;\n\n .button-default,\n .alert {\n line-height: 2em;\n width: 100%;\n }\n }\n }\n}\n","@import \"../../variables\";\n\n/* stylelint-disable no-descending-specificity */\n.tab-switcher {\n display: flex;\n\n .tab-icon {\n margin: 0.2em auto;\n display: block;\n }\n\n &.top-tabs {\n flex-direction: column;\n\n > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n flex-direction: row;\n flex: 0 0 auto;\n\n &::after,\n &::before {\n content: \"\";\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n .tab-wrapper {\n height: 2em;\n\n &:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n }\n\n .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: 6px - 99px;\n }\n }\n\n .contents.scrollable-tabs {\n flex-basis: 0;\n }\n }\n\n &.side-tabs {\n flex-direction: row;\n\n @media all and (max-width: 800px) {\n overflow-x: auto;\n }\n\n > .contents {\n flex: 1 1 auto;\n }\n\n > .tabs {\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n flex-direction: column;\n\n &::after,\n &::before {\n flex-shrink: 0;\n flex-basis: 0.5em;\n content: \"\";\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::after {\n flex-grow: 1;\n }\n\n &::before {\n flex-grow: 0;\n }\n\n .tab-wrapper {\n min-width: 10em;\n display: flex;\n flex-direction: column;\n\n @media all and (max-width: 800px) {\n min-width: 4em;\n }\n\n &:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::before {\n flex: 0 0 6px;\n content: \"\";\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &:last-child .tab {\n margin-bottom: 0;\n }\n }\n\n .tab {\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n\n @media all and (max-width: 800px) {\n padding-left: 0.25em;\n padding-right: calc(0.25em + 200px);\n margin-right: calc(0.25em - 200px);\n margin-left: 0.25em;\n\n .text {\n display: none;\n }\n }\n }\n }\n }\n\n .contents {\n flex: 1 0 auto;\n min-height: 0;\n\n .hidden {\n display: none;\n }\n\n .full-height:not(.hidden) {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n > *:not(.mobile-label) {\n flex: 1;\n }\n }\n\n &.scrollable-tabs {\n overflow-y: auto;\n }\n }\n\n .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n\n &:not(.active) {\n z-index: 4;\n\n &:hover {\n z-index: 6;\n }\n }\n\n &.active {\n background: transparent;\n z-index: 5;\n color: $fallback--text;\n color: var(--tabActiveText, $fallback--text);\n }\n\n img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n }\n }\n\n .tabs {\n display: flex;\n position: relative;\n box-sizing: border-box;\n\n &::after,\n &::before {\n display: block;\n flex: 1 1 auto;\n }\n }\n\n .tab-wrapper {\n position: relative;\n display: flex;\n flex: 0 0 auto;\n\n &:not(.active) {\n &::after {\n content: \"\";\n position: absolute;\n z-index: 7;\n }\n }\n }\n\n .mobile-label {\n padding-left: 0.3em;\n padding-bottom: 0.25em;\n margin-top: 0.5em;\n margin-left: 0.2em;\n margin-bottom: 0.25em;\n border-bottom: 1px solid var(--border, $fallback--border);\n\n @media all and (min-width: 800px) {\n display: none;\n }\n }\n}\n/* stylelint-enable no-descending-specificity */\n","\n@import \"../../variables\";\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n",".chat-list-item {\n display: flex;\n flex-direction: row;\n padding: 0.75em;\n height: 5em;\n overflow: hidden;\n box-sizing: border-box;\n cursor: pointer;\n\n :focus {\n outline: none;\n }\n\n &:hover {\n background-color: var(--selectedPost, $fallback--lightBg);\n box-shadow: 0 0 3px 1px rgb(0 0 0 / 10%);\n }\n\n .chat-list-item-left {\n margin-right: 1em;\n }\n\n .chat-list-item-center {\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n word-wrap: break-word;\n }\n\n .heading {\n width: 100%;\n display: inline-flex;\n justify-content: space-between;\n line-height: 1em;\n }\n\n .heading-right {\n white-space: nowrap;\n }\n\n .name-and-account-name {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n flex-shrink: 1;\n line-height: var(--post-line-height);\n }\n\n .chat-preview {\n display: inline-flex;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: 0.35em 0;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n width: 100%;\n }\n\n a {\n color: var(--faintLink, $fallback--link);\n text-decoration: none;\n pointer-events: none;\n }\n\n &:hover .animated.avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n\n .Avatar {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .chat-preview-body {\n --emoji-size: 1.4em;\n\n padding-right: 1em;\n }\n\n .time-wrapper {\n line-height: var(--post-line-height);\n }\n}\n","\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n",".chat-new {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .member-list {\n padding-bottom: 0.7rem;\n }\n\n .basic-user-card:hover {\n cursor: pointer;\n background-color: var(--selectedPost, $fallback--lightBg);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n}\n","\n@import \"../../variables\";\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n","@import \"../../variables\";\n\n.chat-message-wrapper {\n &.hovered-message-chain {\n .animated.Avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n }\n\n .chat-message-menu {\n transition: opacity 0.1s;\n opacity: 0;\n position: absolute;\n top: -0.8em;\n\n button {\n padding-top: 0.2em;\n padding-bottom: 0.2em;\n }\n }\n\n .menu-icon {\n cursor: pointer;\n\n &:hover,\n .extra-button-popover.open & {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover {\n width: 12em;\n }\n\n .chat-message {\n display: flex;\n padding-bottom: 0.5em;\n\n .status-body:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n }\n\n .avatar-wrapper {\n margin-right: 0.72em;\n width: 32px;\n }\n\n .link-preview,\n .attachments {\n margin-bottom: 1em;\n }\n\n .status {\n border-radius: $fallback--chatMessageRadius;\n border-radius: var(--chatMessageRadius, $fallback--chatMessageRadius);\n display: flex;\n padding: 0.75em;\n }\n\n .created-at {\n position: relative;\n float: right;\n font-size: 0.8em;\n margin: -1em 0 -0.5em;\n font-style: italic;\n opacity: 0.8;\n }\n\n .without-attachment {\n .message-content {\n // TODO figure out how to do it properly\n .RichContent::after {\n margin-right: 5.4em;\n content: \" \";\n display: inline-block;\n }\n }\n }\n\n .pending {\n .status-content.media-body,\n .created-at {\n color: var(--faint);\n }\n }\n\n .error {\n .status-content.media-body,\n .created-at {\n color: $fallback--cRed;\n color: var(--badgeNotification, $fallback--cRed);\n }\n }\n\n .chat-message-inner {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 80%;\n min-width: 10em;\n width: 100%;\n }\n\n .outgoing {\n display: flex;\n flex-flow: row wrap;\n align-content: end;\n justify-content: flex-end;\n\n a {\n color: var(--chatMessageOutgoingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageOutgoingText, $fallback--text);\n background-color: var(--chatMessageOutgoingBg, $fallback--lightBg);\n border: 1px solid var(--chatMessageOutgoingBorder, --lightBg);\n }\n\n .chat-message-inner {\n align-items: flex-end;\n }\n\n .chat-message-menu {\n right: 0.4rem;\n }\n }\n\n .incoming {\n a {\n color: var(--chatMessageIncomingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageIncomingText, $fallback--text);\n background-color: var(--chatMessageIncomingBg, $fallback--bg);\n border: 1px solid var(--chatMessageIncomingBorder, --border);\n }\n\n .created-at {\n a {\n color: var(--chatMessageIncomingText, $fallback--text);\n }\n }\n\n .chat-message-menu {\n left: 0.4rem;\n }\n }\n\n .chat-message-inner.with-media {\n width: 100%;\n\n .status {\n width: 100%;\n }\n }\n\n .visible {\n opacity: 1;\n }\n}\n\n.chat-message-date-separator {\n text-align: center;\n margin: 1.4em 0;\n font-size: 0.9em;\n user-select: none;\n color: $fallback--text;\n color: var(--faintedText, $fallback--text);\n}\n",".chat-view {\n display: flex;\n height: 100%;\n\n .chat-view-inner {\n height: auto;\n width: 100%;\n overflow: visible;\n display: flex;\n }\n\n .chat-view-body {\n box-sizing: border-box;\n background-color: var(--chatBg, $fallback--bg);\n display: flex;\n flex-direction: column;\n width: 100%;\n overflow: visible;\n min-height: calc(100vh - var(--navbar-height));\n margin: 0;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n\n &::after {\n border-radius: 0;\n }\n }\n\n .message-list {\n padding: 0 0.8em;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: end;\n }\n\n .footer {\n position: sticky;\n bottom: 0;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n z-index: 1;\n }\n\n .chat-view-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .jump-to-bottom-button {\n width: 2.5em;\n height: 2.5em;\n border-radius: 100%;\n position: absolute;\n right: 1.3em;\n top: -3.2em;\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 1px 1px rgb(0 0 0 / 30%), 0 2px 4px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s all;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n opacity: 0;\n visibility: hidden;\n cursor: pointer;\n\n &.visible {\n opacity: 1;\n visibility: visible;\n }\n\n i {\n font-size: 1em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .unread-message-count {\n font-size: 0.8em;\n left: 50%;\n margin-top: -1rem;\n padding: 0.1em;\n border-radius: 50px;\n position: absolute;\n }\n\n .chat-loading-error {\n width: 100%;\n display: flex;\n align-items: flex-end;\n height: 100%;\n\n .error {\n width: 100%;\n }\n }\n }\n}\n","\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n","@import \"../../variables\";\n\n.with-load-more {\n &-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: $fallback--border;\n border-top-color: var(--border, $fallback--border);\n\n .error {\n font-size: 1rem;\n }\n\n a {\n cursor: pointer;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-birthday {\n margin: 0 0.75em 0.5em;\n }\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name,\n .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n","\n@import \"../../variables\";\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n.more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n}\n\n","\n@import \"../../variables\";\n\n.interface-language-switcher {\n .language-select {\n margin-right: 1em;\n }\n}\n","\n@import \"../../variables\";\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height: 16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n","\n@import \"../../variables\";\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n","\n.follow-request-card-content-container {\n display: flex;\n flex-flow: row wrap;\n\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n","\n.tos-content {\n margin: 1em;\n}\n","\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n",".mrf-section {\n margin: 1em;\n\n table {\n width: 100%;\n text-align: left;\n padding-left: 10px;\n padding-bottom: 20px;\n\n th,\n td {\n width: 180px;\n max-width: 360px;\n overflow: hidden;\n vertical-align: text-top;\n }\n\n th + th,\n td + td {\n width: auto;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.list-card {\n display: flex;\n}\n\n.list-name {\n flex-grow: 1;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n","\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n","\n@import \"../../variables\";\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n","\n@import \"src/variables\";\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n","\n@import \"../../variables\";\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n","\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n","\n@import \"../../variables\";\n\n.announcement {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/app.86977512e08af1f17d78.css b/priv/static/static/css/app.86977512e08af1f17d78.css
deleted file mode 100644
index 840bc45c1..000000000
--- a/priv/static/static/css/app.86977512e08af1f17d78.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.modal-view{align-items:center;animation-duration:.2s;animation-name:modal-background-fadein;bottom:0;display:flex;justify-content:center;left:0;opacity:0;overflow:auto;pointer-events:none;position:fixed;right:0;top:0;z-index:var(--ZI_modals)}.modal-view>*{pointer-events:auto}.modal-view.modal-background{background-color:rgba(0,0,0,.5);pointer-events:auto}.modal-view.open{opacity:1}@keyframes modal-background-fadein{0%{background-color:transparent}to{background-color:rgba(0,0,0,.5)}}.login-form{display:flex;flex-direction:column;padding:.6em}.login-form .btn{min-height:2em;width:10em}.login-form .register{flex:1 1}.login-form .login-bottom{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:1em}.login-form .form-group{display:flex;flex-direction:column;line-height:24px;padding:.3em .5em .6em}.login-form .form-bottom{display:flex;height:32px;padding:.5em}.login-form .form-bottom button{width:10em}.login-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.login-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.media-upload{cursor:pointer}.media-upload .hidden-input-file{display:none}.ScopeSelector .scope{cursor:pointer;display:inline-block;min-height:1.3em;min-width:1.3em;text-align:center}.ScopeSelector .scope.selected svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.checkbox{display:inline-block;min-height:1.2em;position:relative}.checkbox-indicator{padding-left:1.2em;position:relative}.checkbox-indicator:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:block;font-size:1.1em;height:1.1em;line-height:1.1em;overflow:hidden;position:absolute;right:0;text-align:center;top:0;transition:color .2s;vertical-align:top;width:1.1em}.checkbox.disabled .checkbox-indicator:before,.checkbox.disabled .label{opacity:.5}.checkbox.disabled .label{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.checkbox input[type=checkbox]{display:none}.checkbox input[type=checkbox]:checked+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba);content:"–"}.checkbox>span{margin-left:.5em}.popover-trigger-button{display:inline-block}.popover{box-shadow:2px 2px 3px rgba(0,0,0,.5);box-shadow:var(--popupShadow);max-width:calc(100vw - 20px);min-width:0;position:fixed;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.popover-default{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--postLink:var(--popoverPostLink,$fallback--link);--postFaintLink:var(--popoverPostFaintLink,$fallback--link);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);border-radius:4px;border-radius:var(--btnRadius,4px);color:#b9b9ba;color:var(--popoverText,#b9b9ba)}.popover-default:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.dropdown-menu{display:block;font-size:1em;list-style:none;max-width:100vw;padding:.5rem 0;text-align:left;white-space:nowrap;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.dropdown-menu .dropdown-divider{border-top:1px solid #222;border-top:1px solid var(--border,#222);height:0;margin:.5rem 0;overflow:hidden}.dropdown-menu .dropdown-item{--btnText:var(--popoverText,$fallback--text);background-color:transparent;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;clear:both;display:block;font-weight:400;height:100%;line-height:21px;overflow:hidden;padding:.5em .75em;text-align:inherit;white-space:nowrap;width:100%}.dropdown-menu .dropdown-item-icon svg{color:var(--menuPopoverIcon,#666);margin-right:.75rem;width:22px}.dropdown-menu .dropdown-item.-has-submenu .chevron-icon{margin-left:2rem;margin-right:.25rem}.dropdown-menu .dropdown-item:active,.dropdown-menu .dropdown-item:hover{--btnText:var(--selectedMenuPopoverText,$fallback--link);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);box-shadow:none}.dropdown-menu .dropdown-item:active svg,.dropdown-menu .dropdown-item:hover svg{--icon:var(--selectedMenuPopoverIcon,$fallback--icon);color:var(--selectedMenuPopoverIcon,#666)}.dropdown-menu .dropdown-item .menu-checkbox{background-color:#182230;background-color:var(--input,#182230);border-radius:0;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);display:inline-block;line-height:22px;margin-right:.75em;max-height:22px;max-width:22px;min-height:22px;min-width:22px;text-align:center;vertical-align:middle}.dropdown-menu .dropdown-item .menu-checkbox.menu-checkbox-checked:after{content:"✓";font-size:1.25em}.dropdown-menu .dropdown-item .menu-checkbox.-radio{border-radius:9999px}.dropdown-menu .dropdown-item .menu-checkbox.-radio.menu-checkbox-checked:after{content:"•";font-size:2em}.dropdown-menu .button-default.dropdown-item,.dropdown-menu .button-default.dropdown-item i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item:active{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#d8a070;color:var(--selectedMenuPopoverText,#d8a070)}.dropdown-menu .button-default.dropdown-item:disabled{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item.toggled{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.still-image{align-items:center;display:inline-flex;line-height:0;overflow:hidden;position:relative}.still-image canvas{bottom:0;left:0;position:absolute;right:0;top:0;visibility:var(--_still-image-canvas-visibility,visible)}.still-image canvas,.still-image img{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.still-image.animated:before{zoom:var(--_still_image-label-scale,1);background:hsla(0,0%,50%,.5);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#fff;content:"gif";display:block;font-size:.7em;left:.5em;line-height:1;padding:2px 4px;position:absolute;top:.5em;visibility:var(--_still-image-label-visibility,visible);z-index:2}.still-image.animated:hover canvas{display:none}.still-image.animated:hover:before{visibility:var(--_still-image-label-visibility,hidden)}.still-image.animated img{visibility:var(--_still-image-img-visibility,hidden)}.still-image.animated:hover img{visibility:visible}.emoji-picker{--lightText:var(--popoverLightText,$fallback--faint);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);display:flex;flex-direction:column;max-width:100vw;width:25em}.emoji-picker-header-image{align-items:center;display:inline-flex;height:32px;justify-content:center;max-height:32px;max-width:32px;width:32px}.emoji-picker-header-image .still-image{height:100%;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:100%}.emoji-picker .keep-open,.emoji-picker .too-many-emoji{line-height:normal;padding:7px}.emoji-picker .too-many-emoji{display:flex;flex-direction:column}.emoji-picker .keep-open-label{display:flex;padding:0 7px}.emoji-picker .heading{display:flex;padding:10px 7px 5px}.emoji-picker .content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-tabs{display:flex;flex-direction:row;flex-grow:1;flex-wrap:nowrap;overflow-x:auto}.emoji-picker .emoji-groups{min-height:200px}.emoji-picker .additional-tabs{border-left:1px solid #666;border-left-color:var(--icon,#666);display:flex;flex:1;flex:0 0 auto;padding-left:7px}.emoji-picker .additional-tabs,.emoji-picker .emoji-tabs{align-content:center;display:flex;flex-basis:auto}.emoji-picker .additional-tabs-item,.emoji-picker .emoji-tabs-item{align-items:center;cursor:pointer;display:flex;font-size:1.85em;height:32px;max-height:32px;max-width:32px;padding:0 7px;width:32px}.emoji-picker .additional-tabs-item.disabled,.emoji-picker .emoji-tabs-item.disabled{opacity:.5;pointer-events:none}.emoji-picker .additional-tabs-item.active,.emoji-picker .emoji-tabs-item.active{border-bottom:4px solid}.emoji-picker .additional-tabs-item.active svg,.emoji-picker .emoji-tabs-item.active svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.emoji-picker .sticker-picker{flex:1 1 auto}.emoji-picker .emoji-content,.emoji-picker .stickers-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-content.hidden,.emoji-picker .stickers-content.hidden{opacity:0;pointer-events:none;position:absolute}.emoji-picker .emoji-search{flex:0 0 auto;padding:5px}.emoji-picker .emoji-search input{width:100%}.emoji-picker .emoji-groups{flex:1 1 1px;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;overflow:auto;position:relative;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.emoji-picker .emoji-groups.scrolled-top{-webkit-mask-size:100% 20px,100% 0,auto;mask-size:100% 20px,100% 0,auto}.emoji-picker .emoji-groups.scrolled-bottom{-webkit-mask-size:100% 0,100% 20px,auto;mask-size:100% 0,100% 20px,auto}.emoji-picker .emoji-group{align-items:center;display:flex;flex-wrap:wrap;justify-content:left;padding-left:5px}.emoji-picker .emoji-group-title{font-size:.85em;margin:0;width:100%}.emoji-picker .emoji-group-title.disabled{display:none}.emoji-picker .emoji-item{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:32px;justify-content:center;line-height:32px;margin:4px;width:32px}.emoji-picker .emoji-item .emoji-picker-emoji.-custom{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.emoji-picker .emoji-item .emoji-picker-emoji.-unicode{font-size:24px;overflow:hidden}.emoji-input{display:flex;flex-direction:column;position:relative}.emoji-input.with-picker input{padding-right:30px}.emoji-input .emoji-picker-icon{cursor:pointer;font-size:1.3em;line-height:24px;margin:.2em .25em;position:absolute;right:0;top:0}.emoji-input .emoji-picker-icon:hover i{color:#b9b9ba;color:var(--text,#b9b9ba)}.emoji-input .emoji-picker-panel{margin-top:2px;position:absolute;z-index:20}.emoji-input .emoji-picker-panel.hide{display:none}.emoji-input input,.emoji-input textarea{flex:1 0 auto}.emoji-input .hidden-overlay{bottom:0;color:red;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.emoji-input .hidden-overlay .caret{border:1px solid red;margin-right:calc(-1ch - 1px);width:0}.autocomplete-panel{position:absolute}.autocomplete-item{border-bottom:1px solid rgba(0,0,0,.4);cursor:pointer;display:flex;height:32px;padding:.2em .4em}.autocomplete-item .image{font-size:32px;height:32px;line-height:32px;margin-right:4px;text-align:center;width:32px}.autocomplete-item .image img{height:32px;-o-object-fit:contain;object-fit:contain;width:32px}.autocomplete-item .label{display:flex;flex-direction:column;justify-content:center;margin:0 .1em 0 .2em}.autocomplete-item .label .displayText{line-height:1.5}.autocomplete-item .label .detailText{font-size:9px;line-height:9px}.autocomplete-item.highlighted{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#182230;background-color:var(--selectedMenuPopover,#182230);color:var(--selectedMenuPopoverText,#b9b9ba)}label.Select{padding:0}label.Select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:#b9b9ba;color:var(--inputText,--text,#b9b9ba);font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;height:2em;line-height:16px;margin:0;padding:0 2em 0 .2em;width:100%;z-index:1}label.Select .select-down-icon{bottom:0;color:#b9b9ba;color:var(--inputText,#b9b9ba);height:100%;line-height:2;pointer-events:none;position:absolute;right:5px;top:0;width:.875em;z-index:0}.poll-form{display:flex;flex-direction:column;padding:0 .5em .5em}.poll-form .add-option{align-self:flex-start;padding-left:.1em;padding-top:.25em}.poll-form .poll-option{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.25em}.poll-form .input-container{width:100%}.poll-form .input-container input{padding-right:2.5em;width:100%}.poll-form .delete-option{margin-left:-1.5em;width:1.5em;z-index:1}.poll-form .poll-type-expiry{display:flex;margin-top:.5em;width:100%}.poll-form .poll-type{flex:1 1 60%;margin-right:.75em}.poll-form .poll-type .poll-type-select{padding-right:.75em}.poll-form .poll-expiry{display:flex}.poll-form .poll-expiry .expiry-amount{text-align:right;width:3em}.Flash{display:inline-block;position:relative}.Flash,.Flash .placeholder,.Flash .player{height:100%;width:100%}.Flash .placeholder{align-items:center;background:var(--bg);color:var(--link);display:flex;justify-content:center}.Flash .hider{top:0}.Flash .label{word-wrap:normal;flex:1 1 0;line-height:1.2;text-align:center;white-space:normal}.Flash .hidden{display:none;visibility:"hidden"}.Attachment{align-self:flex-start;border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);display:inline-flex;flex-direction:column;height:100%;line-height:0;position:relative}.Attachment .attachment-wrapper{flex:1 1 auto;height:100%;overflow:hidden;position:relative}.Attachment .description-container{display:flex;flex:0 1 0;padding-top:.5em;z-index:1}.Attachment .description-container p{flex:1;line-height:1.5;margin:0;overflow:hidden;padding:.5em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.Attachment .description-container.-static{background:var(--popover);bottom:0;box-shadow:var(--popupShadow);left:0;padding-top:0;position:absolute;right:0}.Attachment .description-field{flex:1;min-width:0}.Attachment .audio-container,.Attachment .flash-container,.Attachment .image-container,.Attachment .oembed-container,.Attachment .placeholder-container,.Attachment .video-container{display:flex;height:100%;justify-content:center;width:100%}.Attachment .image-container .image{height:100%;width:100%}.Attachment .flash-container .flash,.Attachment .flash-container video,.Attachment .video-container .flash,.Attachment .video-container video{align-self:center;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.Attachment .audio-container{align-items:flex-end;display:flex}.Attachment .audio-container audio{height:100%;width:100%}.Attachment .placeholder-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding-top:.5em}.Attachment .play-icon{color:hsla(0,0%,100%,.75);font-size:64px;left:calc(50% - 32px);position:absolute;text-shadow:0 0 2px rgba(0,0,0,.4);top:calc(50% - 32px)}.Attachment .play-icon:before{margin:0}.Attachment .attachment-buttons{display:flex;margin-right:.5em;margin-top:.5em;position:absolute;right:0;top:0;z-index:1}.Attachment .attachment-buttons .attachment-button{background:hsla(0,0%,90%,.7);border-radius:5px;border-radius:var(--tooltipRadius,5px);font-size:1.25em;height:2em;margin-left:.5em;padding:0;text-align:center;width:2em}.Attachment .attachment-buttons .attachment-button .svg-inline--fa{color:rgba(0,0,0,.6)}.Attachment .attachment-buttons .attachment-button:hover .svg-inline--fa{color:rgba(0,0,0,.9)}.Attachment .oembed-container{display:flex;flex:1 0 100%;line-height:1.2em;margin-right:15px;width:100%}.Attachment .oembed-container img{width:100%}.Attachment .oembed-container .image{flex:1}.Attachment .oembed-container .image img{border:0;border-radius:5px;height:100%;-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container .text{flex:2;margin:8px;word-break:break-all}.Attachment .oembed-container .text h1{font-size:1rem;margin:0}.Attachment.-size-small .play-icon{zoom:.5;opacity:.7}.Attachment.-size-small .attachment-buttons{zoom:.7;opacity:.5}.Attachment.-editable{padding:.5em}.Attachment.-editable .attachment-buttons,.Attachment.-editable .description-container{margin:0}.Attachment.-placeholder{color:#d8a070;color:var(--postLink,#d8a070);display:inline-block;height:auto;line-height:1.5;overflow:hidden;white-space:nowrap}.Attachment.-placeholder:not(.-editable){border:none}.Attachment.-placeholder.-editable{align-items:baseline;display:flex;flex-direction:row}.Attachment.-placeholder.-editable .attachment-buttons,.Attachment.-placeholder.-editable .description-container{margin:0;padding:0;position:relative}.Attachment.-placeholder.-editable .description-container{flex:1;padding-left:.5em}.Attachment.-placeholder.-editable .attachment-buttons{align-self:center;order:99}.Attachment.-placeholder a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.Attachment.-placeholder svg{color:inherit}.Attachment.-loading{cursor:progress}.Attachment.-contain-fit canvas,.Attachment.-contain-fit img{-o-object-fit:contain;object-fit:contain}.Attachment.-cover-fit canvas,.Attachment.-cover-fit img{-o-object-fit:cover;object-fit:cover}.Gallery .gallery-rows{display:flex;flex-direction:column}.Gallery .gallery-row{flex-grow:1;height:0;position:relative;width:100%}.Gallery .gallery-row:not(:first-child){margin-top:.5em}.Gallery.-long .gallery-rows{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude;max-height:25em;overflow:hidden}.Gallery .many-attachments-text{line-height:2;text-align:center}.Gallery .many-attachments-buttons{display:flex}.Gallery .many-attachments-button{display:flex;flex:1;justify-content:center;line-height:2}.Gallery .many-attachments-button button{padding:0 2em}.Gallery .gallery-row.-grid,.Gallery .gallery-row.-minimal{height:auto}.Gallery .gallery-row.-grid .gallery-row-inner,.Gallery .gallery-row.-minimal .gallery-row-inner{position:relative}.Gallery .gallery-row-inner{align-content:stretch;bottom:0;display:flex;flex-direction:row;flex-wrap:nowrap;left:0;position:absolute;right:0;top:0}.Gallery .gallery-row-inner.-grid{grid-column-gap:.5em;grid-row-gap:.5em;display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));height:auto;position:relative;width:100%}.Gallery .gallery-row-inner.-grid .gallery-item{height:200px;margin:0}.Gallery .gallery-item{box-sizing:border-box;flex-grow:1;height:100%;margin:0 .5em 0 0;min-width:2em}.Gallery .gallery-item:last-child{margin:0}.Avatar{--_avatarShadowBox:var(--avatarStatusShadow);--_avatarShadowFilter:var(--avatarStatusShadowFilter);--_avatarShadowInset:var(--avatarStatusShadowInset);--_still-image-label-visibility:hidden;display:inline-block;height:48px;position:relative;width:48px}.Avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:32px;width:32px}.Avatar .avatar{border-radius:4px;border-radius:var(--avatarRadius,4px);box-shadow:var(--_avatarShadowBox);height:100%;width:100%}.Avatar .avatar.-better-shadow{box-shadow:var(--_avatarShadowInset);filter:var(--_avatarShadowFilter)}.Avatar .avatar.-animated:before{display:none}.Avatar .avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.Avatar .avatar.-placeholder{background-color:#182230;background-color:var(--fg,#182230)}.Avatar img{height:100%;width:100%}.Avatar .bot-indicator{background:hsla(0,0%,50%,.5);border-radius:var(--tooltipRadius);bottom:0;color:#fff;margin:-.2em;padding:.2em;position:absolute;right:0}.MentionLink{color:var(--link);display:inline;position:relative;white-space:normal;word-break:normal}.MentionLink .new,.MentionLink .original{border-radius:2px;display:inline}.MentionLink .mention-avatar{border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.2em;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1.5em}.MentionLink .full{word-wrap:normal;display:inline-block;height:100%;left:0;margin-top:.25em;opacity:0;padding:.5em;position:absolute;top:100%;transition:opacity .2s ease;-webkit-user-select:all;-moz-user-select:all;user-select:all;white-space:nowrap;z-index:1}.MentionLink .short.-with-tooltip,.MentionLink .you{-webkit-user-select:none;-moz-user-select:none;user-select:none}.MentionLink .full,.MentionLink .short{white-space:nowrap}.MentionLink .shortName{white-space:normal}.MentionLink .new.-you .shortName{font-weight:600}.MentionLink .new.-has-selection{background-color:var(--alertNeutral,#182230);color:var(--alertNeutralText,#b9b9ba)}.MentionLink .new .at{color:var(--link);display:inline-block;line-height:1;margin:0;opacity:.8;padding:0 .1em;vertical-align:-25%}.MentionLink .new.-striped .shortName{background-image:repeating-linear-gradient(135deg,var(--____highlight-tintColor),var(--____highlight-tintColor) 5px,var(--____highlight-tintColor2) 5px,var(--____highlight-tintColor2) 10px)}.MentionLink .new.-solid .shortName{background-image:linear-gradient(var(--____highlight-tintColor2),var(--____highlight-tintColor2))}.MentionLink .new.-side .shortName{box-shadow:0 -5px 3px -4px inset var(--____highlight-solidColor)}.MentionLink .full{pointer-events:none}.MentionLink .serverName.-faded{color:var(--faintLink,#d8a070)}.mention-link-popover{max-height:20rem;max-width:70ch;overflow:hidden}.MentionsLine{word-break:break-all}.MentionsLine .mention-link:not(:first-child):before{content:" "}.MentionsLine .showMoreLess{color:var(--link);margin-left:.5em;white-space:normal}.HashtagLink{color:var(--link);display:inline-block;position:relative;white-space:normal}.RichContent blockquote{font-style:italic;margin:.2em 0 .2em 2em}.RichContent pre{overflow:auto}.RichContent code,.RichContent kbd,.RichContent pre,.RichContent samp,.RichContent var{font-family:var(--postCodeFont,monospace)}.RichContent p{margin:0 0 1em}.RichContent p:last-child{margin:0}.RichContent h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.RichContent h2{font-size:1.1em;margin:1em 0}.RichContent h3{font-size:1em;margin:1.2em 0}.RichContent h4{margin:1.1em 0}.RichContent .emoji,.RichContent .img{display:inline-block}.RichContent .emoji{height:var(--emoji-size,32px);width:var(--emoji-size,32px)}.RichContent .img,.RichContent video{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.poll .votes{display:flex;flex-direction:column;margin:0 0 .5em}.poll .poll-option{margin:.75em .5em}.poll .option-result{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-direction:row;height:100%;position:relative}.poll .option-result-label{align-items:center;display:flex;padding:.1em .25em;word-break:break-word;z-index:1}.poll .result-percentage{flex-shrink:0;width:3.5em}.poll .result-fill{background-color:#151e2a;background-color:var(--poll,#151e2a);border-radius:10px;border-radius:var(--panelRadius,10px);color:#b9b9ba;color:var(--pollText,#b9b9ba);height:100%;left:0;position:absolute;top:0;transition:width .5s}.poll .option-vote{align-items:center;display:flex}.poll input{width:3.5em}.poll .footer{align-items:center;display:flex}.poll.loading *{cursor:progress}.poll .poll-vote-button{margin-right:.5em;padding:0 .5em}.StatusBody{display:flex;flex-direction:column}.StatusBody .emoji{--_still_image-label-scale:0.5}.StatusBody .attachments{margin-top:.5em}.StatusBody .summary,.StatusBody .text{word-wrap:break-word;font-family:var(--postFont,sans-serif);line-height:var(--post-line-height);overflow-wrap:break-word;white-space:pre-wrap;word-break:break-word}.StatusBody .summary{display:block;font-style:italic;padding-bottom:.5em}.StatusBody .text.-single-line{height:1.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .summary-wrapper{border-color:var(--border,#222);border-style:solid;border-width:0 0 1px;flex-grow:0;margin-bottom:.5em}.StatusBody .summary-wrapper.-tall{position:relative}.StatusBody .summary-wrapper.-tall .summary{max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .text-wrapper{display:flex;flex-direction:column;flex-wrap:nowrap}.StatusBody .text-wrapper.-tall-status{height:220px;overflow-x:hidden;overflow-y:hidden;position:relative;z-index:1}.StatusBody .text-wrapper.-tall-status .media-body{-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude;min-height:0}.StatusBody .cw-status-hider,.StatusBody .status-unhider,.StatusBody .tall-status-hider,.StatusBody .tall-subject-hider{display:inline-block;text-align:center;width:100%;word-break:break-all}.StatusBody .tall-status-hider{height:70px;line-height:110px;margin-top:150px;position:absolute;z-index:2}.StatusBody .tall-subject-hider{padding-bottom:.5em}.StatusBody .cw-status-hider,.StatusBody .status-unhider{word-break:break-all}.StatusBody .cw-status-hider svg,.StatusBody .status-unhider svg{color:inherit}.StatusBody .greentext{color:#0fa00f;color:var(--postGreentext,#0fa00f)}.StatusBody .cyantext{color:var(--postCyantext,#0095ff)}.StatusBody.-compact{--emoji-size:16px;align-items:top;flex-direction:row}.StatusBody.-compact .attachments,.StatusBody.-compact .body{max-height:3.25em}.StatusBody.-compact .body{flex:5 1 auto;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-repeat:repeat-x,repeat;mask-repeat:repeat-x,repeat;-webkit-mask-size:auto 3.5em,auto auto;mask-size:auto 3.5em,auto auto;min-width:5em;overflow:hidden;white-space:normal}.StatusBody.-compact .attachments{flex:1 1 0;height:100%;margin-left:.5em;margin-top:0;min-width:5em}.StatusBody.-compact .summary-wrapper{border:none;display:inline-block;line-height:inherit;margin:0}.StatusBody.-compact .summary-wrapper .summary:after{content:": "}.StatusBody.-compact .text-wrapper{display:inline-block}.link-preview-card{border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);color:#b9b9ba;color:var(--text,#b9b9ba);cursor:pointer;display:flex;flex-direction:row;margin-top:.5em;overflow:hidden}.link-preview-card .card-image{flex-shrink:0;max-width:25%;width:120px}.link-preview-card .card-image img{border-radius:10px;border-radius:var(--attachmentRadius,10px);height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.link-preview-card .card-content{display:flex;flex-direction:column;margin:.5em;max-height:100%}.link-preview-card .card-host{font-size:.85em}.link-preview-card .card-description{line-height:1.2em;margin:.5em 0 0;max-height:calc(3.6em - 1px);overflow:hidden;text-overflow:ellipsis;word-break:break-word}.link-preview-card .nsfw-alert{margin:2em 0}.StatusContent{flex:1;min-width:0}.post-status-form{position:relative}.post-status-form .attachments{margin-bottom:.5em}.post-status-form .form-bottom{display:flex;height:2.5em;justify-content:space-between;padding:.5em}.post-status-form .form-bottom button{width:10em}.post-status-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.post-status-form .form-bottom-left{display:flex;flex:1;margin-right:7px;max-width:10em;padding-right:7px}.post-status-form .preview-heading{display:flex;padding-left:.5em}.post-status-form .preview-toggle{cursor:pointer;flex:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.post-status-form .preview-toggle:hover{text-decoration:underline}.post-status-form .preview-toggle i,.post-status-form .preview-toggle svg{font-size:.8em;margin-left:.2em;transform:rotate(90deg)}.post-status-form .preview-container{margin-bottom:1em}.post-status-form .preview-error{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.post-status-form .preview-status{border:1px solid #222;border:1px solid var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0;padding:.5em}.post-status-form .text-format .only-format{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.post-status-form .visibility-tray{align-items:baseline;display:flex;justify-content:space-between;padding-top:5px}.post-status-form .visibility-notice.edit-warning>:first-child{margin-top:0}.post-status-form .visibility-notice.edit-warning>:last-child{margin-bottom:0}.post-status-form .emoji-icon,.post-status-form .media-upload-icon,.post-status-form .poll-icon{align-items:center;display:flex;flex:1;font-size:1.85em;line-height:1.1;padding:0 .1em}.post-status-form .emoji-icon.selected i,.post-status-form .emoji-icon.selected label,.post-status-form .emoji-icon.selected svg,.post-status-form .emoji-icon:hover i,.post-status-form .emoji-icon:hover label,.post-status-form .emoji-icon:hover svg,.post-status-form .media-upload-icon.selected i,.post-status-form .media-upload-icon.selected label,.post-status-form .media-upload-icon.selected svg,.post-status-form .media-upload-icon:hover i,.post-status-form .media-upload-icon:hover label,.post-status-form .media-upload-icon:hover svg,.post-status-form .poll-icon.selected i,.post-status-form .poll-icon.selected label,.post-status-form .poll-icon.selected svg,.post-status-form .poll-icon:hover i,.post-status-form .poll-icon:hover label,.post-status-form .poll-icon:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.post-status-form .emoji-icon.disabled i,.post-status-form .emoji-icon.disabled svg,.post-status-form .media-upload-icon.disabled i,.post-status-form .media-upload-icon.disabled svg,.post-status-form .poll-icon.disabled i,.post-status-form .poll-icon.disabled svg{color:#666;color:var(--btnDisabledText,#666);cursor:not-allowed}.post-status-form .emoji-icon.disabled i:hover,.post-status-form .emoji-icon.disabled svg:hover,.post-status-form .media-upload-icon.disabled i:hover,.post-status-form .media-upload-icon.disabled svg:hover,.post-status-form .poll-icon.disabled i:hover,.post-status-form .poll-icon.disabled svg:hover{color:#666;color:var(--btnDisabledText,#666)}.post-status-form .media-upload-icon{justify-content:left;order:1}.post-status-form .emoji-icon{justify-content:center;order:2}.post-status-form .poll-icon{justify-content:right;order:3}.post-status-form .error{text-align:center}.post-status-form .media-upload-wrapper{margin-bottom:.5em;margin-right:.2em;width:18em}.post-status-form .media-upload-wrapper img,.post-status-form .media-upload-wrapper video{max-height:10em;-o-object-fit:contain;object-fit:contain}.post-status-form .media-upload-wrapper .video{max-height:10em}.post-status-form .media-upload-wrapper input{flex:1;width:100%}.post-status-form .status-input-wrapper{display:flex;flex-direction:column;position:relative;width:100%}.post-status-form form{display:flex;flex-direction:column;margin:.6em;position:relative}.post-status-form .form-group{display:flex;flex-direction:column;line-height:1.85;padding:.25em .5em .5em}.post-status-form .form-post-body{box-sizing:content-box;height:calc(var(--post-line-height)*1em);min-height:calc(var(--post-line-height)*1em);overflow:hidden;padding-bottom:calc(var(--_padding) + var(--post-line-height)*1em);resize:none;transition:min-height .2s .1s}.post-status-form .form-post-body.scrollable-form{overflow-y:auto}.post-status-form .main-input{position:relative}.post-status-form .character-counter{bottom:0;margin:0 .5em;padding:0;position:absolute;right:0}.post-status-form .character-counter.error{color:red;color:var(--cRed,red)}.post-status-form .btn[disabled]{cursor:not-allowed}@keyframes fade-in{0%{opacity:0}to{opacity:.6}}@keyframes fade-out{0%{opacity:.6}to{opacity:0}}.post-status-form .drop-indicator{align-items:center;background-color:#121a24;background-color:var(--bg,#121a24);border:2px dashed #b9b9ba;border:2px dashed var(--text,#b9b9ba);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:5em;height:100%;justify-content:center;opacity:.6;position:absolute;width:100%}.remote-follow{max-width:220px}.remote-follow .remote-button{min-height:2em;width:100%}.dark-overlay:before{background:rgba(27,31,35,.5);bottom:0;content:" ";left:0;right:0;z-index:99}.dark-overlay:before,.dialog-modal.panel{cursor:default;display:block;position:fixed;top:0}.dialog-modal.panel{background-color:#121a24;background-color:var(--bg,#121a24);left:50%;margin:15vh auto;max-height:80vh;max-width:90vw;transform:translateX(-50%);z-index:999}.dialog-modal.panel .dialog-modal-heading .title{text-align:center}.dialog-modal.panel .dialog-modal-content{background-color:#121a24;background-color:var(--bg,#121a24);margin:0;padding:1rem;white-space:normal}.dialog-modal.panel .dialog-modal-footer{background-color:#121a24;background-color:var(--bg,#121a24);border-top:1px solid #222;border-top:1px solid var(--border,#222);display:flex;justify-content:flex-end;margin:0;padding:.5em}.dialog-modal.panel .dialog-modal-footer button{margin-left:.5rem;width:auto}.moderation-tools-popover{height:100%}.moderation-tools-popover .trigger{display:flex!important;height:100%}.moderation-tools-button i,.moderation-tools-button svg{font-size:.8em}.AccountActions .ellipsis-button{margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.AccountActions .ellipsis-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-note{display:flex;flex-direction:column}.user-note .heading{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.75em}.user-note .heading .btn{min-width:95px}.user-note .heading .buttons{display:flex;flex-direction:row;justify-content:right}.user-note .heading .buttons .btn{margin-left:.5em}.user-note .note-text{align-self:stretch}.user-note .note-text.-blank{color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.user-card{position:relative;z-index:1}.user-card:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.user-card .panel-heading{align-items:stretch;background:transparent;box-shadow:none;flex-direction:column;padding:.5em 0;position:relative;text-align:center}.user-card .panel-body{word-wrap:break-word;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;position:relative}.user-card .background-image{background-color:var(--profileBg);background-size:cover;border-bottom-left-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-bottom-right-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-top-left-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);border-top-right-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);bottom:0;left:0;-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 60%;mask-size:100% 60%;position:absolute;right:0;top:0;z-index:-2}.user-card .background-image.hide-bio{-webkit-mask-size:100% 40px;mask-size:100% 40px}.user-card-bio{display:block;line-height:1.3;margin:0;padding:1em;text-align:center}.user-card-bio a{color:#d8a070;color:var(--postLink,#d8a070)}.user-card-bio img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-card.-rounded-t{--__roundnessTop:var(--panelRadius);--__roundnessBottom:0;border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.user-card.-rounded{--__roundnessTop:var(--panelRadius);--__roundnessBottom:var(--panelRadius);border-radius:10px;border-radius:var(--panelRadius,10px)}.user-card.-popover{--__roundnessTop:var(--tooltipRadius);--__roundnessBottom:var(--tooltipRadius);border-radius:5px;border-radius:var(--tooltipRadius,5px)}.user-card.-bordered{border:1px solid #222;border-color:var(--border,#222)}.user-info{padding:0 26px}.user-info,.user-info a{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info a:hover{color:var(--icon)}.user-info .container{align-items:flex-start;display:flex;max-height:56px;min-width:0;padding:16px 0 6px}.user-info .container>*{min-width:0}.user-info .container>a{display:flex;vertical-align:middle}.user-info .container .Avatar{--_avatarShadowBox:var(--avatarShadow);--_avatarShadowFilter:var(--avatarShadowFilter);--_avatarShadowInset:var(--avatarShadowInset);height:56px;-o-object-fit:cover;object-fit:cover;width:56px}.user-info-avatar{cursor:pointer;position:relative}.user-info-avatar.-overlay{align-items:center;background-color:rgba(0,0,0,.3);border-radius:4px;border-radius:var(--avatarRadius,4px);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.user-info-avatar.-overlay svg{color:#fff}.user-info-avatar:hover .user-info-avatar.-overlay{opacity:1}.user-info .edit-profile-button,.user-info .external-link-button{cursor:pointer;margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.user-info .edit-profile-button:not(:hover) .icon,.user-info .external-link-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info .user-summary{--emoji-size:1.7em;display:block;flex:1 1 0;line-height:2em;margin-left:.6em;text-align:left;text-overflow:ellipsis;white-space:nowrap;z-index:1}.user-info .user-summary .bottom-line,.user-info .user-summary .top-line{display:flex}.user-info .user-name{flex:1 1 auto;font-size:1.1em;margin-right:1em;overflow:hidden;text-overflow:ellipsis}.user-info .bottom-line{align-items:baseline;font-size:1.1em;font-weight:light}.user-info .bottom-line .lock-icon{margin-left:.5em}.user-info .bottom-line .user-screen-name{flex:0 1 auto;min-width:1px;overflow:hidden;text-overflow:ellipsis}.user-info .bottom-line .dailyAvg{color:#b9b9ba;color:var(--text,#b9b9ba);flex:0 0 auto;font-size:.7em;margin-left:1em;min-width:1px}.user-info .bottom-line .user-role{background-color:#182230;background-color:var(--alertNeutral,#182230);color:#b9b9ba;color:var(--alertNeutralText,#b9b9ba);flex:none}.user-info .user-meta{align-items:baseline;display:flex;flex-wrap:wrap;line-height:22px;margin-bottom:.15em}.user-info .user-meta .following{flex:1 0 auto;margin:0 0 .25em;text-align:left}.user-info .user-meta .highlighter{align-self:start;display:flex;flex:0 1 auto;flex-wrap:wrap;margin-right:-.5em}.user-info .user-meta .highlighter .userHighlightCl{flex:1 0 auto;padding:2px 10px}.user-info .user-meta .highlighter .userHighlightSel{flex:1 0 auto;padding-bottom:0;padding-top:0}.user-info .user-meta .highlighter .userHighlightText{flex:1 0 auto;width:70px}.user-info .user-meta .highlighter .userHighlightCl,.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightText{margin-bottom:.25em;margin-right:.5em;vertical-align:top}.user-info .user-interactions{display:flex;flex-flow:row wrap;margin-right:-.75em;position:relative}.user-info .user-interactions>*{margin:0 .75em .6em 0;min-width:95px;white-space:nowrap}.user-info .user-interactions button{margin:0}.user-info .user-note{margin:0 .75em .6em 0}.sidebar .edit-profile-button{display:none}.user-counts{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-wrap:wrap;justify-content:space-between;line-height:16px;padding:.5em 1.5em 0;text-align:center}.user-count{flex:1 0 auto;margin:0 .5em;padding:.5em 0}.user-count h5{font-size:1em;font-weight:bolder;margin:0 0 .25em}.user-count a{text-decoration:none}.user-panel .signed-in{overflow:visible;z-index:10}.NavigationEntry{align-items:baseline;box-sizing:border-box;color:#d8a070;color:var(--link,#d8a070);display:flex;height:3.5em;line-height:3.5em;padding:0 1em;width:100%}.NavigationEntry .timelines-chevron{margin-right:0}.NavigationEntry .main-link{flex:1}.NavigationEntry .menu-icon{margin-right:.8em}.NavigationEntry .extra-button{text-align:center;width:3em}.NavigationEntry .extra-button:last-child{margin-right:-.8em}.NavigationEntry:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.NavigationEntry:hover .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.NavigationEntry.-active .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active:hover{text-decoration:underline}.NavigationPins{display:flex;flex-wrap:wrap;height:100%;overflow:hidden}.NavigationPins .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:.5em;position:absolute;right:calc(50% - .75em);top:calc(50% - .5em);width:.5em}.NavigationPins .pinned-item{box-sizing:border-box;flex:1 0 3em;height:100%;min-width:2em;overflow:visible;position:relative;text-align:center}.NavigationPins .pinned-item .iconLetter,.NavigationPins .pinned-item .svg-inline--fa{margin:0}.NavigationPins .pinned-item.router-link-active{border-bottom:4px solid;color:#b9b9ba;color:var(--panelText,#b9b9ba)}.NavigationPins .pinned-item.router-link-active .iconLetter,.NavigationPins .pinned-item.router-link-active .svg-inline--fa{color:inherit}.NavPanel .panel{box-shadow:var(--panelShadow);overflow:hidden}.NavPanel ul{list-style:none;margin:0;padding:0}.NavPanel li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);position:relative}.NavPanel>li:first-child .menu-item{border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.NavPanel>li:last-child .menu-item{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.NavPanel li:last-child{border:none}.NavPanel .navigation-chevron{margin-right:.8em}.NavPanel .navigation-chevron,.NavPanel .timelines-chevron{font-size:1.1em;margin-left:.8em}.NavPanel .timelines-background{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0 0 0 .6em}.NavPanel .timelines{background-color:#121a24;background-color:var(--bg,#121a24)}.NavPanel .nav-panel-heading{--panel-heading-height-padding:0em}.features-panel li{line-height:24px}.who-to-follow *{vertical-align:middle}.who-to-follow img{height:32px;width:32px}.who-to-follow{margin:0;padding:0 1em}.who-to-follow-items{margin:1em 0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.who-to-follow-more{margin:1em 0;padding:0;text-align:center}.floating-shout{bottom:.5em;max-width:25em;position:fixed;z-index:var(--ZI_popovers)}.floating-shout.-left{left:.5em}.floating-shout:not(.-left){right:.5em}.shout-panel .shout-heading{cursor:pointer}.shout-panel .shout-heading .icon{color:#b9b9ba;color:var(--panelText,#b9b9ba);margin-right:.5em}.shout-panel .shout-heading .title{align-items:center;display:flex;justify-content:space-between}.shout-panel .shout-window{max-height:20em;overflow-x:hidden;overflow-y:auto}.shout-panel .shout-window-container{height:100%}.shout-panel .shout-message{display:flex;padding:.2em .5em}.shout-panel .shout-avatar img{border-radius:4px;border-radius:var(--avatarRadius,4px);height:24px;margin-right:.5em;margin-top:.25em;width:24px}.shout-panel .shout-input{display:flex}.shout-panel .shout-input textarea{flex:1;margin:.6em;min-height:3.5em;resize:none}.shout-panel .shout-panel .title{display:flex;justify-content:space-between}.modal-view.media-modal-view{flex-direction:column;overflow:hidden;z-index:var(--ZI_media_modal)}.modal-view.media-modal-view .modal-view-button-arrow,.modal-view.media-modal-view .modal-view-button-hide{opacity:.75}.modal-view.media-modal-view .modal-view-button-arrow:focus,.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:focus,.modal-view.media-modal-view .modal-view-button-hide:hover{box-shadow:none;outline:none}.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:hover{opacity:1}@keyframes media-fadein{0%{opacity:0}to{opacity:1}}.media-modal-view .modal-image-container{max-height:100%;max-width:100%;overflow:hidden}.media-modal-view .modal-image-container,.media-modal-view .modal-image-container-inner{align-items:center;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:center;width:100%}.media-modal-view .counter,.media-modal-view .description{color:#fff;margin-top:1em;padding:.2em 2em;text-shadow:0 0 10px #000,0 0 10px #000}.media-modal-view .description{flex:0 0 auto;max-height:9.5em;max-width:500px;min-height:1em;overflow-y:auto;word-break:break-all}.media-modal-view .modal-image{animation:media-fadein .1s cubic-bezier(.7,0,1,.6);image-orientation:from-image;max-height:100%;max-width:100%}.media-modal-view .modal-image.loading{opacity:.5}.media-modal-view .loading-spinner{align-items:center;display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.media-modal-view .loading-spinner svg{color:#fff}.media-modal-view .modal-view-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;height:3em;opacity:0;overflow:visible;padding:0;transition:opacity 333ms cubic-bezier(.4,0,.22,1);width:3em}.media-modal-view .modal-view-button .button-icon{background-color:rgba(0,0,0,.3);color:#fff;font-size:1rem;height:3em;line-height:3em;position:absolute;text-align:center;width:3em}.media-modal-view .modal-view-button-arrow{display:block;height:3em;margin-top:1.5em;position:absolute;top:50%;width:3em}.media-modal-view .modal-view-button-arrow .arrow-icon{background-color:rgba(0,0,0,.3);color:#fff;line-height:3em;position:absolute;text-align:center;top:0}.media-modal-view .modal-view-button-arrow--prev{left:0}.media-modal-view .modal-view-button-arrow--prev .arrow-icon{left:.5em}.media-modal-view .modal-view-button-arrow--next{right:0}.media-modal-view .modal-view-button-arrow--next .arrow-icon{right:.5em}.media-modal-view .modal-view-button-hide{position:absolute;right:0;top:0}.media-modal-view .modal-view-button-hide .button-icon{right:.5em;top:.5em}.side-drawer-container{align-items:stretch;display:flex;height:100%;left:0;position:fixed;top:0;transition-duration:0s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.side-drawer-container-open{transform:translate(0)}.side-drawer-container-closed{transform:translate(-100%);transition-delay:.35s}.side-drawer-darken{background-color:rgba(0,0,0,.5);height:100vh;left:0;position:fixed;top:0;transition:.35s;transition-property:background-color;width:100vw;z-index:-1}.side-drawer-darken-closed{background-color:transparent}.side-drawer-click-outside{flex:1 1 100%}.side-drawer{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);color:#d8a070;color:var(--popoverText,#d8a070);flex:0 0 80%;margin:0 0 0 -100px;max-width:20em;overflow-x:hidden;padding:0 0 1em 100px;transition-timing-function:cubic-bezier(0,1,.5,1);transition:.35s;transition-property:transform;width:80%}.side-drawer .badge{margin-left:10px}.side-drawer-logo-wrapper{align-items:center;display:flex;padding:.85em}.side-drawer-logo-wrapper img{flex:none;height:50px;margin-right:.85em}.side-drawer-logo-wrapper span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-drawer-click-outside-closed{flex:0 0 0}.side-drawer-closed{transform:translate(-100%)}.side-drawer-heading{align-items:stretch;background:transparent;display:flex;flex-direction:column;margin:0;padding:0}.side-drawer ul{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);list-style:none;margin:0;padding:0}.side-drawer ul:last-child{border:0}.side-drawer li{padding:0}.side-drawer li a,.side-drawer li button{box-sizing:border-box;display:block;height:3em;line-height:3em;padding:0 .7em}.side-drawer li a:hover,.side-drawer li button:hover{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#b9b9ba;color:var(--selectedMenuPopoverText,#b9b9ba)}.MobilePostButton.button-default{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;bottom:1.5em;box-shadow:0 2px 2px rgba(0,0,0,.3),0 4px 6px rgba(0,0,0,.3);display:flex;height:5em;justify-content:center;position:fixed;right:1.5em;transition:transform .35s;transition-timing-function:cubic-bezier(0,1,.5,1);width:5em;z-index:10}.MobilePostButton.hidden{transform:translateY(150%)}.MobilePostButton svg{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1.5em}@media (min-width:801px){.new-status-button:not(.always-show){display:none}}.ReplyButton{display:flex}.ReplyButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.ReplyButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ReplyButton .interactive.-active .svg-inline--fa,.ReplyButton .interactive:hover .svg-inline--fa{color:#0095ff;color:var(--cBlue,#0095ff)}.ReplyButton .interactive .focus-marker{visibility:hidden}.ReplyButton .interactive:focus:not(:focus-visible):not(:hover) .focus-marker{visibility:hidden}.ReplyButton .interactive:focus .focus-marker,.ReplyButton .interactive:hover .focus-marker{visibility:visible}.ReplyButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton{display:flex}.FavoriteButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.FavoriteButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.FavoriteButton .interactive .svg-inline--fa{animation-duration:.6s}.FavoriteButton .interactive.-favorited .svg-inline--fa,.FavoriteButton .interactive:hover .svg-inline--fa{color:orange;color:var(--cOrange,orange)}.FavoriteButton .interactive .focus-marker{visibility:hidden}.FavoriteButton .interactive .active-marker{visibility:visible}.FavoriteButton .interactive:focus:not(:focus-visible):not(:hover) .focus-marker{visibility:hidden}.FavoriteButton .interactive:focus:not(:focus-visible):not(:hover) .active-marker{visibility:visible}.FavoriteButton .interactive:focus .focus-marker,.FavoriteButton .interactive:hover .focus-marker{visibility:visible}.FavoriteButton .interactive:focus .active-marker,.FavoriteButton .interactive:hover .active-marker{visibility:hidden}.FavoriteButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton .interactive:focus-visible .active-marker{visibility:hidden}.ReactButton .reaction-picker-filter{display:flex;padding:.5em}.ReactButton .reaction-picker-filter input{flex:1}.ReactButton .reaction-picker-divider{background-color:var(--border,#222);height:1px;margin:.5em;width:100%}.ReactButton .reaction-picker{align-content:flex-start;display:flex;flex-wrap:wrap;font-size:1.5em;height:9em;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;overflow-y:scroll;padding:.5em;text-align:center;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:10em}.ReactButton .reaction-picker .emoji-button{align-content:center;cursor:pointer;flex-basis:20%;line-height:1.5}.ReactButton .reaction-picker .emoji-button:hover{transform:scale(1.25)}.ReactButton .popover-trigger-button{width:auto}.ReactButton .popover-trigger{margin:-10px;padding:10px}.ReactButton .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ReactButton .popover-trigger-button .focus-marker{visibility:hidden}.ReactButton .popover-trigger-button:focus:not(:focus-visible):not(:hover) .focus-marker{visibility:hidden}.ReactButton .popover-trigger-button:focus .focus-marker,.ReactButton .popover-trigger-button:hover .focus-marker{visibility:visible}.ReactButton .popover-trigger-button:focus-visible .focus-marker{visibility:visible}.RetweetButton{display:flex}.RetweetButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.RetweetButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.RetweetButton .interactive .svg-inline--fa{animation-duration:.6s}.RetweetButton .interactive.-repeated .svg-inline--fa,.RetweetButton .interactive:hover .svg-inline--fa{color:#0fa00f;color:var(--cGreen,#0fa00f)}.RetweetButton .interactive .focus-marker{visibility:hidden}.RetweetButton .interactive .active-marker{visibility:visible}.RetweetButton .interactive:focus:not(:focus-visible):not(:hover) .focus-marker{visibility:hidden}.RetweetButton .interactive:focus:not(:focus-visible):not(:hover) .active-marker{visibility:visible}.RetweetButton .interactive:focus .focus-marker,.RetweetButton .interactive:hover .focus-marker{visibility:visible}.RetweetButton .interactive:focus .active-marker,.RetweetButton .interactive:hover .active-marker{visibility:hidden}.RetweetButton .interactive:focus-visible .focus-marker{visibility:visible}.RetweetButton .interactive:focus-visible .active-marker{visibility:hidden}.ExtraButtons .popover-trigger-button{width:auto}.ExtraButtons .popover-trigger{margin:-10px;padding:10px;position:static}.ExtraButtons .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ExtraButtons .popover-trigger-button .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus:not(:focus-visible):not(:hover) .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus .focus-marker,.ExtraButtons .popover-trigger-button:hover .focus-marker{visibility:visible}.ExtraButtons .popover-trigger-button:focus-visible .focus-marker{visibility:visible}.avatars{display:flex;flex-wrap:wrap;height:24px;margin:0;padding:0}.avatars .avatars-item{margin:0 0 5px 5px}.avatars .avatars-item:first-child{padding-left:5px}.avatars .avatars-item .avatar-small{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:24px;width:24px}.status-popover.popover{border-color:#222;border-color:var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);border-style:solid;border-width:1px;font-size:1rem;max-width:95%;min-width:15em}.status-popover.popover .Status.Status{border:none}.status-popover.popover .status-preview-no-content{padding:1em;text-align:center}.status-popover.popover .status-preview-no-content i{font-size:2em}.user-list-popover{--emoji-size:16px;padding:.5em}.user-list-popover .user-list-row{display:flex;flex-direction:row;padding:.25em}.user-list-popover .user-list-row .user-list-names{display:flex;flex-direction:column;margin-left:.5em;min-width:5em}.user-list-popover .user-list-row .user-list-names img{height:1em;width:1em}.user-list-popover .user-list-row .user-list-screen-name{font-size:.65em}.EmojiReactions{display:flex;flex-wrap:wrap;margin-top:.25em}.EmojiReactions .emoji-reaction{align-items:center;box-sizing:border-box;display:flex;justify-content:center;margin-right:.5em;margin-top:.5em;padding:0 .5em}.EmojiReactions .emoji-reaction .reaction-emoji{margin-right:.25em;width:1.25em}.EmojiReactions .emoji-reaction:focus{outline:none}.EmojiReactions .emoji-reaction.not-clickable{cursor:default}.EmojiReactions .emoji-reaction.not-clickable:hover{box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow)}.EmojiReactions .emoji-reaction.-picked-reaction{border:1px solid var(--accent,#d8a070);margin-left:-1px;margin-right:calc(.5em - 1px)}.EmojiReactions .emoji-reaction-expand{align-items:center;display:flex;justify-content:center;margin-right:.5em;margin-top:.5em;padding:0 .5em}.EmojiReactions .emoji-reaction-expand:hover{text-decoration:underline}.Status{word-wrap:break-word;min-width:0;white-space:normal;word-break:break-word}.Status:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Status.-focused{--lightText:var(--selectedPostLightText,$fallback--light);--faint:var(--selectedPostFaintText,$fallback--faint);--faintLink:var(--selectedPostFaintLink,$fallback--faint);--postLink:var(--selectedPostPostLink,$fallback--faint);--postFaintLink:var(--selectedPostFaintPostLink,$fallback--faint);--icon:var(--selectedPostIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedPost,#151e2a);color:#b9b9ba;color:var(--selectedPostText,#b9b9ba)}.Status .gravestone{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));display:flex;padding:var(--status-margin,.75em)}.Status .gravestone .deleted-text{align-items:center;margin:.5em 0}.Status .status-container{display:flex;padding:var(--status-margin,.75em)}.Status .status-container>*{min-width:0}.Status .status-container.-repeat{padding-top:0}.Status .pin{align-items:center;display:flex;justify-content:flex-end;padding:var(--status-margin,.75em) var(--status-margin,.75em) 0}._misclick-prevention .Status{pointer-events:none}._misclick-prevention .Status .attachments{cursor:auto;pointer-events:auto}.Status .left-side{margin-right:var(--status-margin,.75em)}.Status .right-side{flex:1;min-width:0}.Status .usercard{margin-bottom:var(--status-margin,.75em)}.Status .status-username{--_still_image-label-scale:0.25;--emoji-size:14px;flex-shrink:1;font-weight:700;margin-right:.4em;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .status-favicon{height:18px;margin-right:.4em;width:18px}.Status .status-heading{margin-bottom:.5em}.Status .heading-name-row{display:flex;justify-content:space-between;line-height:1.3}.Status .heading-name-row a{display:inline-block;word-break:break-all}.Status .account-name{flex:1 1 0;margin-right:.4em;min-width:1.6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .heading-left{display:flex;min-width:0}.Status .heading-right{display:flex;flex-shrink:0}.Status .heading-right .button-unstyled{margin:-5px;padding:5px}.Status .heading-right .button-unstyled:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.Status .heading-right .svg-inline--fa{margin-left:.25em}.Status .glued-label{display:inline-flex;white-space:nowrap}.Status .timeago{margin-right:.2em}.Status .heading-edited-row,.Status .heading-reply-row{align-content:baseline;align-items:stretch;font-size:.85em;line-height:130%;margin-top:.2em;max-width:100%;position:relative}.Status .mentions,.Status .reply-to-no-popover,.Status .reply-to-popover{flex-shrink:0;margin-right:.4em;min-width:0}.Status .reply-glued-label{margin-right:.5em}.Status .reply-to-popover .reply-to:hover:before{border-bottom:1px solid var(--faint);bottom:0;content:"";display:block;pointer-events:none;position:absolute;width:100%}.Status .reply-to-popover .faint-link:hover{text-decoration:none}.Status .reply-to-popover.-strikethrough .reply-to:after{border-bottom:1px solid var(--faint);content:"";display:block;pointer-events:none;position:absolute;top:50%;width:100%}.Status .mentions,.Status .reply-to{position:relative;white-space:nowrap}.Status .mentions-text,.Status .reply-to-text{color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .mentions-line{display:inline}.Status .replies{display:flex;flex-wrap:wrap;font-size:.85em;line-height:1.3;margin-top:.25em}.Status .replies>*{margin-right:.4em}.Status .reply-link{height:17px}.Status .repeat-info{padding:.4em var(--status-margin,.75em)}.Status .repeat-info .repeat-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Status .repeater-avatar{border-radius:var(--avatarAltRadius,10px);height:20px;margin-left:28px;width:20px}.Status .repeater-name{margin-right:0;text-overflow:ellipsis}.Status .repeater-name .emoji{height:14px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:14px}.Status .status-fadein{animation-duration:.4s;animation-name:fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.Status .status-actions{display:flex;margin-top:var(--status-margin,.75em);position:relative;width:100%}.Status .status-actions>*{flex:1;max-width:4em}.Status .muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Status .muted .mute-thread,.Status .muted .mute-words,.Status .muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Status .muted .mute-words,.Status .muted .status-username{overflow:hidden;text-overflow:ellipsis}.Status .muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Status .muted .mute-thread{flex:0 0 auto}.Status .muted .mute-words{flex:1 0 5em;margin-left:.2em}.Status .muted .mute-words:before{content:" "}.Status .muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Status .reply-form{padding-bottom:0;padding-top:0}.Status .reply-body{flex:1}.Status .favs-repeated-users{margin-top:var(--status-margin,.75em)}.Status .stats{display:flex;line-height:1em;width:100%}.Status .avatar-row{align-items:center;display:flex;flex:1;overflow:hidden;position:relative}.Status .avatar-row:before{background-color:var(--faint,hsla(240,1%,73%,.5));content:"";height:100%;left:0;position:absolute;width:1px}.Status .stat-count{margin-right:var(--status-margin,.75em);-webkit-user-select:none;-moz-user-select:none;user-select:none}.Status .stat-count .stat-title{color:var(--faint,hsla(240,1%,73%,.5));font-size:.85em;position:relative;text-transform:uppercase}.Status .stat-count .stat-number{font-size:1.1em;font-weight:bolder;line-height:1em}.Status .stat-count:hover .stat-title{text-decoration:underline}@media (max-width:800px){.Status .repeater-avatar{margin-left:20px}.Status .post-avatar{height:40px;width:40px}.Status .post-avatar.-compact{height:32px;width:32px}}.Report .report-content,.Report .report-state{margin:.5em 0 1em}.Report .reported-status{border:1px solid hsla(240,1%,73%,.5);border-color:var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px);color:#b9b9ba;color:var(--text,#b9b9ba);display:block;margin:.5em 0;padding:.5em}.Report .reported-status .status-content{pointer-events:none}.Report .reported-status .reported-status-heading{display:flex;justify-content:space-between;margin-bottom:.2em;width:100%}.Report .reported-status .reported-status-name{font-weight:700}.Report .note{margin-bottom:.5em;width:100%}.Notification{word-wrap:break-word;--emoji-size:14px;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);word-break:break-word}.Notification:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Notification.-muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Notification.-muted .mute-thread,.Notification.-muted .mute-words,.Notification.-muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Notification.-muted .mute-words,.Notification.-muted .status-username{overflow:hidden;text-overflow:ellipsis}.Notification.-muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Notification.-muted .mute-thread{flex:0 0 auto}.Notification.-muted .mute-words{flex:1 0 5em;margin-left:.2em}.Notification.-muted .mute-words:before{content:" "}.Notification.-muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Notification .type-icon{margin:0 .1em}.Notification.-type--repeat .type-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Notification.-type--follow .type-icon,.Notification.-type--follow-request .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notification.-type--like .type-icon{color:orange;color:var(--cOrange,orange)}.Notification.-type--move .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notifications:not(.minimal){padding-bottom:15em}.Notifications .loadmore-error{color:#b9b9ba;color:var(--text,#b9b9ba)}.Notifications .notification{position:relative}.Notifications .notification .notification-overlay{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.Notifications .notification.unseen .notification-overlay{background-image:linear-gradient(135deg,var(--badgeNotification,red) 4px,transparent 10px)}.notification{box-sizing:border-box}.notification:hover .animated.Avatar canvas{display:none}.notification:hover .animated.Avatar img{visibility:visible}.notification:last-child .Notification{border-bottom:none}.notification .non-mention{display:flex;flex:1;flex-wrap:nowrap;min-width:0;padding:.6em}.notification .non-mention .avatar-container{height:32px;width:32px}.notification .non-mention .faint{--link:var(--faintLink);--text:var(--faint)}.notification .follow-request-accept:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}.notification .follow-request-reject:hover{color:red;color:var(--cRed,red)}.notification .follow-text,.notification .move-text{display:flex;justify-content:space-between;overflow-wrap:break-word;padding:.5em 0}.notification .follow-text .follow-name,.notification .move-text .follow-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification .Status{flex:1}.notification time{white-space:nowrap}.notification .notification-right{flex:1;min-width:0;padding-left:.8em}.notification .notification-right .timeago{min-width:3em;text-align:right}.notification .notification-right .timeago-link{margin-right:.2em}.notification .notification-right .expand-icon .svg-inline--fa{margin-left:.25em}.notification .emoji-reaction-emoji{font-size:1.3em}.notification .notification-details{word-wrap:break-word;display:flex;flex:1 1 0;flex-wrap:nowrap;justify-content:space-between;line-height:var(--post-line-height);min-width:0;overflow:hidden;position:relative;width:100%}.notification .notification-details .name-and-action{flex:1;overflow:hidden;text-overflow:ellipsis}.notification .notification-details .username{font-weight:bolder;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.notification .notification-details .timeago{margin-right:.2em}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{font-size:1em;line-height:1.5;margin:0 0 .3em;padding:0;word-break:break-all}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0 0 .3em}.MobileNav{z-index:var(--ZI_navbar)}.MobileNav .mobile-nav{box-sizing:border-box;display:grid;grid-template-columns:2fr auto;grid-template-rows:50px;line-height:var(--navbar-height);width:100%}.MobileNav .mobile-nav a{color:var(--topBarLink,#d8a070)}.MobileNav .mobile-inner-nav{align-items:center;display:flex;width:100%}.MobileNav .mobile-nav-button{cursor:pointer;display:inline-block;padding:0 1em;position:relative;text-align:center}.MobileNav .site-name{display:inline-block;padding:0 .3em}.MobileNav .item{display:flex}.MobileNav .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;position:absolute;top:calc(50% - 4px);width:8px}.MobileNav .mobile-notifications-drawer{-webkit-overflow-scrolling:touch;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);height:100vh;left:0;overflow-x:hidden;position:fixed;top:0;transform:translateX(0);transition-duration:.25s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.MobileNav .mobile-notifications-drawer.-closed{box-shadow:none;transform:translateX(100%)}.MobileNav .mobile-notifications-header{align-items:center;background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);color:var(--topBarText);display:flex;height:50px;justify-content:space-between;line-height:50px;position:absolute;width:100%;z-index:calc(var(--ZI_navbar) + 100)}.MobileNav .mobile-notifications-header .spacer{flex:1}.MobileNav .mobile-notifications-header .title{font-size:1.3em;margin-left:.6em}.MobileNav .pins{flex:1}.MobileNav .pins .pinned-item{flex-grow:1}.MobileNav .mobile-notifications{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba);height:calc(100vh - var(--navbar-height));margin-top:50px;overflow-x:hidden;overflow-y:scroll;width:100vw}.MobileNav .mobile-notifications .notifications{border-radius:0;box-shadow:none;padding:0}.MobileNav .mobile-notifications .notifications .panel{border-radius:0;box-shadow:none;margin:0}.MobileNav .mobile-notifications .notifications .panel:after{border-radius:0}.MobileNav .mobile-notifications .notifications .panel .panel-heading{border-radius:0;box-shadow:none}.SearchBar{align-items:baseline;display:inline-flex;justify-content:flex-end;vertical-align:baseline}.SearchBar.-expanded{width:100%}.SearchBar .search-bar-input,.SearchBar .search-button{height:29px}.SearchBar .search-bar-input{flex:1 0 auto}.SearchBar .cancel-search{height:50px}.SearchBar .cancel-icon{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav{width:100%;z-index:var(--ZI_navbar)}.DesktopNav input{color:var(--inputTopbarText,var(--inputText))}.DesktopNav a{color:var(--topBarLink,#d8a070)}.DesktopNav .inner-nav{box-sizing:border-box;display:grid;grid-template-areas:"sitename logo actions";grid-template-columns:2fr auto 2fr;grid-template-rows:var(--navbar-height);margin:auto;max-width:980px;padding:0 1.2em}.DesktopNav.-column-stretch .inner-nav{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--columnGap))}.DesktopNav.-column-stretch.-wide .inner-nav{max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--notifsColumnWidth, var(--miniColumn)) + var(--columnGap))}.DesktopNav.-logoLeft .inner-nav{grid-template-areas:"logo sitename actions";grid-template-columns:auto 2fr 2fr}.DesktopNav .button-default,.DesktopNav .button-default svg{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav .button-default:active{background-color:#182230;background-color:var(--btnPressedTopBar,#182230);color:#b9b9ba;color:var(--btnPressedTopBarText,#b9b9ba)}.DesktopNav .button-default:disabled{color:#b9b9ba;color:var(--btnDisabledTopBarText,#b9b9ba)}.DesktopNav .button-default.toggled{background-color:#182230;background-color:var(--btnToggledTopBar,#182230);color:#b9b9ba;color:var(--btnToggledTopBarText,#b9b9ba)}.DesktopNav .logo{grid-area:logo;position:relative;transition:opacity;transition-duration:.1s;transition-timing-function:ease-out}@media (min-width:800px){.DesktopNav .logo{opacity:1!important}}.DesktopNav .logo .mask{background-color:#182230;background-color:var(--topBarText,#182230);bottom:0;left:0;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;right:0;top:0}.DesktopNav .logo img{display:inline-block;height:var(--navbar-height)}.DesktopNav .nav-icon{height:100%;margin-left:.2em;text-align:center;width:2em}.DesktopNav .nav-icon .svg-inline--fa{color:#d8a070;color:var(--topBarLink,#d8a070)}.DesktopNav .sitename{grid-area:sitename}.DesktopNav .actions{grid-area:actions}.DesktopNav .item{display:flex;flex:1;flex-wrap:wrap;height:var(--navbar-height);line-height:var(--navbar-height);overflow:hidden}.DesktopNav .item.right{justify-content:flex-end;text-align:right}.DesktopNav .spacer{width:1em}.list-item:not(:last-child){border-bottom:1px solid #222;border-bottom-color:var(--border,#222)}.list-empty-content{padding:10px;text-align:center}.user-reporting-panel{max-height:80vh;max-width:700px;min-height:20vh;width:90vw}.user-reporting-panel .panel-body{border-color:currentcolor #222 #222;border-top:1px solid #222;border-color:var(--border,#222);display:flex;flex-direction:column-reverse;overflow:hidden}.user-reporting-panel-left{box-sizing:border-box;line-height:var(--post-line-height);padding:1.1em .7em .7em}.user-reporting-panel-left>div{margin-bottom:1em}.user-reporting-panel-left>div:last-child{margin-bottom:0}.user-reporting-panel-left p{margin-top:0}.user-reporting-panel-left textarea.form-control{line-height:16px;min-height:44px;overflow:hidden;resize:none;transition:min-height .2s .1s;width:100%}.user-reporting-panel-left .btn{min-width:10em;padding:0 2em}.user-reporting-panel-left .alert{line-height:1.3em;margin:1em 0 0}.user-reporting-panel-right{display:flex;flex-direction:column;overflow-y:auto}.user-reporting-panel-sitem{display:flex;justify-content:space-between}.user-reporting-panel-sitem>.Status{flex:1}.user-reporting-panel-sitem>.checkbox{margin:.75em}@media (min-width:801px){.user-reporting-panel .panel-body{flex-direction:row}.user-reporting-panel-left{border-right:1px solid;border-color:#222;border-color:var(--border,#222);max-width:320px;padding:1.1em;width:50%}.user-reporting-panel-left>div{margin-bottom:2em}.user-reporting-panel-right{flex:1 1 auto;margin-bottom:12px;width:50%}}.modal-view.edit-form-modal-view{align-items:flex-start}.edit-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.edit-form-modal-panel{margin-top:8%}}.edit-form-modal-panel .form-bottom-left{max-width:6.5em}.edit-form-modal-panel .form-bottom-left .emoji-icon{justify-content:right}.modal-view.post-form-modal-view{align-items:flex-start}.post-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.post-form-modal-panel{margin-top:8%}}.modal-view.status-history-modal-view{align-items:flex-start}.status-history-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.status-history-modal-panel{margin-top:8%}}.global-notice-list{align-items:center;display:flex;flex-direction:column;pointer-events:none;position:fixed;top:calc(var(--navbar-height) + .5em);width:100%;z-index:var(--ZI_navbar_popovers)}.global-notice-list .global-notice{display:flex;line-height:2;margin-bottom:.5em;max-width:calc(100% - 3em);padding-left:1.5em;pointer-events:auto;text-align:center;width:40em}.global-notice-list .global-notice .notice-message{flex:1 1 100%}.global-notice-list .global-error{background-color:var(--alertPopupError,red)}.global-notice-list .global-error,.global-notice-list .global-error .svg-inline--fa{color:var(--alertPopupErrorText,#b9b9ba)}.global-notice-list .global-warning{background-color:var(--alertPopupWarning,orange)}.global-notice-list .global-warning,.global-notice-list .global-warning .svg-inline--fa{color:var(--alertPopupWarningText,#b9b9ba)}.global-notice-list .global-success{background-color:var(--alertPopupSuccess,#0fa00f)}.global-notice-list .global-success,.global-notice-list .global-success .svg-inline--fa{color:var(--alertPopupSuccessText,#b9b9ba)}.global-notice-list .global-info{background-color:var(--alertPopupNeutral,#182230)}.global-notice-list .global-info,.global-notice-list .global-info .svg-inline--fa{color:var(--alertPopupNeutralText,#b9b9ba)}.global-notice-list .close-notice{padding-right:.2em}.global-notice-list .close-notice .svg-inline--fa:hover{opacity:.6}:root{--navbar-height:3.5rem;--post-line-height:1.4;--ZI_media_modal:9000;--ZI_modals_popovers:8500;--ZI_modals:8000;--ZI_navbar_popovers:7500;--ZI_navbar:7000;--ZI_popovers:6000}html{font-size:14px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#b9b9ba;color:var(--text,#b9b9ba);font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);margin:0;overflow-x:clip;overflow-y:scroll;overscroll-behavior-y:none}body.hidden{display:none}@media(any-pointer:fine){*{scrollbar-color:var(--btn) transparent}::-webkit-scrollbar{background:transparent}::-webkit-scrollbar-button,::-webkit-scrollbar-thumb{background-color:var(--btn);border-radius:var(--btnRadius);box-shadow:var(--buttonShadow)}::-webkit-scrollbar-button{--___bgPadding:2px;background-repeat:no-repeat,no-repeat;color:var(--btnText)}::-webkit-scrollbar-button:horizontal{background-size:50% calc(50% - var(--___bgPadding)),50% calc(50% - var(--___bgPadding))}::-webkit-scrollbar-button:horizontal:increment{background-image:linear-gradient(45deg,var(--btnText) 50%,transparent 51%),linear-gradient(-45deg,transparent 50%,var(--btnText) 51%);background-position:top var(--___bgPadding) left 50%,right 50% bottom var(--___bgPadding)}::-webkit-scrollbar-button:horizontal:decrement{background-image:linear-gradient(45deg,transparent 50%,var(--btnText) 51%),linear-gradient(-45deg,var(--btnText) 50%,transparent 51%);background-position:bottom var(--___bgPadding) right 50%,left 50% top var(--___bgPadding)}::-webkit-scrollbar-button:vertical{background-size:calc(50% - var(--___bgPadding)) 50%,calc(50% - var(--___bgPadding)) 50%}::-webkit-scrollbar-button:vertical:increment{background-image:linear-gradient(-45deg,transparent 50%,var(--btnText) 51%),linear-gradient(45deg,transparent 50%,var(--btnText) 51%);background-position:right var(--___bgPadding) top 50%,left var(--___bgPadding) top 50%}::-webkit-scrollbar-button:vertical:decrement{background-image:linear-gradient(-45deg,var(--btnText) 50%,transparent 51%),linear-gradient(45deg,var(--btnText) 50%,transparent 51%);background-position:left var(--___bgPadding) top 50%,right var(--___bgPadding) top 50%}html{background:var(--wallpaper);scrollbar-color:var(--selectedMenu) var(--wallpaper)}}a{color:#d8a070;color:var(--link,#d8a070);text-decoration:none}h4{margin:0}.iconLetter{display:inline-block;font-weight:1000;text-align:center}.iconLetter,.svg-inline--fa,i[class*=icon-]{color:#666;color:var(--icon,#666)}.button-unstyled:hover>.iconLetter,.button-unstyled:hover>.svg-inline--fa,.button-unstyled:hover>i[class*=icon-],a:hover>.iconLetter,a:hover>.svg-inline--fa,a:hover>i[class*=icon-]{color:var(--text)}nav{background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);box-sizing:border-box;color:var(--topBarText);color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));height:var(--navbar-height);position:fixed;z-index:var(--ZI_navbar)}#sidebar{grid-area:sidebar}#modal{position:absolute;z-index:var(--ZI_modals)}.column.-scrollable{position:sticky;top:var(--navbar-height)}#main-scroller{grid-area:content;position:relative}#notifs-column{grid-area:notifs}.app-bg-wrapper{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;height:100%;left:0;position:fixed;right:-20px;top:var(--navbar-height);z-index:-1000}.underlay{background-color:rgba(0,0,0,.15);background-color:var(--underlay,rgba(0,0,0,.15));grid-column-end:span 3;grid-column-start:1;grid-row-end:1;grid-row-start:1;pointer-events:none;z-index:-1000}.app-layout{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;--status-margin:0.75em;--effectiveSidebarColumnWidth:minmax(var(--miniColumn),var(--sidebarColumnWidth,var(--miniColumn)));--effectiveNotifsColumnWidth:minmax(var(--miniColumn),var(--notifsColumnWidth,var(--miniColumn)));--effectiveContentColumnWidth:minmax(var(--miniColumn),var(--contentColumnWidth,var(--maxiColumn)));align-content:flex-start;flex-wrap:wrap;grid-template-areas:"sidebar content";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth);grid-template-rows:1fr;justify-content:center;margin:0 auto;min-height:100vh;overflow-x:clip;position:relative}.app-layout,.app-layout .column{box-sizing:border-box;display:grid}.app-layout .column{--___columnMargin:var(--columnGap);align-content:start;grid-row-end:1;grid-row-start:1;grid-template-columns:100%;margin:0 calc(var(--___columnMargin)/2);padding:calc(var(--___columnMargin)) 0;row-gap:var(--___columnMargin)}.app-layout .column:not(.-scrollable){margin-top:var(--navbar-height)}.app-layout .column:hover{z-index:2}.app-layout .column.-full-height{margin-bottom:0;padding-bottom:0;padding-top:0}.app-layout .column.-scrollable{--___paddingIncrease:calc(var(--columnGap)/2);margin-left:calc(var(--___paddingIncrease)*-1);max-height:calc(100vh - var(--navbar-height));overflow-x:hidden;overflow-y:auto;padding-left:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);position:sticky;top:var(--navbar-height)}@supports(scrollbar-width:none) or (-webkit-text-fill-color:initial){.app-layout .column.-scrollable:not(.-show-scrollbar){margin-right:calc(var(--___paddingIncrease)*-1);padding-right:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);scrollbar-width:none}.app-layout .column.-scrollable:not(.-show-scrollbar)::-webkit-scrollbar{display:block;width:0}}.app-layout .column.-scrollable .panel-heading.-sticky{top:calc(var(--columnGap)/-1)}.app-layout.-has-new-post-button .column{padding-bottom:10rem}.app-layout.-no-sticky-headers .column .panel-heading.-sticky{position:relative;top:0}.app-layout .column-inner{align-content:start;box-sizing:border-box;display:grid;grid-template-columns:100%;row-gap:1em}.app-layout.-reverse:not(.-wide):not(.-mobile){grid-template-areas:"content sidebar";grid-template-columns:var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-wide{grid-template-areas:"sidebar content notifs";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveNotifsColumnWidth)}.app-layout.-wide.-reverse{grid-template-areas:"notifs content sidebar";grid-template-columns:var(--effectiveNotifsColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-mobile{grid-template-areas:"content";grid-template-columns:100vw;padding:0}.app-layout.-mobile .column{margin-bottom:0;margin-left:0;margin-right:0;margin-top:var(--navbar-height);padding-top:0}.app-layout.-mobile .panel,.app-layout.-mobile .panel-heading,.app-layout.-mobile .panel-heading:after,.app-layout.-mobile .panel-heading:before,.app-layout.-mobile .panel:after{border-top-left-radius:0;border-top-right-radius:0}.app-layout.-mobile #notifs-column,.app-layout.-mobile #sidebar,.app-layout.-normal #notifs-column{display:none}.text-center{text-align:center}.button-default{background-color:#182230;background-color:var(--btn,#182230);border:none;border-radius:4px;border-radius:var(--btnRadius,4px);box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow);color:#b9b9ba;color:var(--btnText,#b9b9ba);cursor:pointer;font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);font-size:1em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.button-default.-sublime{background:transparent}.button-default .svg-inline--fa,.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.button-default::-moz-focus-inner{border:none}.button-default:hover{box-shadow:0 0 4px hsla(0,0%,100%,.3);box-shadow:var(--buttonHoverShadow)}.button-default:active{background-color:#182230;background-color:var(--btnPressed,#182230);box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow)}.button-default:active,.button-default:active i,.button-default:active svg{color:#b9b9ba;color:var(--btnPressedText,#b9b9ba)}.button-default:disabled{background-color:#182230;background-color:var(--btnDisabled,#182230);cursor:not-allowed}.button-default:disabled,.button-default:disabled i,.button-default:disabled svg{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.button-default.toggled{background-color:#182230;background-color:var(--btnToggled,#182230);box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow)}.button-default.toggled,.button-default.toggled i,.button-default.toggled svg{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.button-default.danger{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.button-unstyled{background:none;border:none;box-sizing:content-box;color:inherit;cursor:pointer;display:inline;font-family:inherit;font-size:100%;line-height:unset;outline:none;padding:0;text-align:initial}.button-unstyled.-link{color:#d8a070;color:var(--link,#d8a070)}.button-unstyled.-fullwidth{width:100%}.button-unstyled.-hover-highlight:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.input,input,textarea{--_padding:0.5em;background-color:#182230;background-color:var(--input,#182230);border:none;border-radius:4px;border-radius:var(--inputRadius,4px);box-shadow:inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2),inset 0 0 2px 0 #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:#b9b9ba;color:var(--inputText,#b9b9ba);display:inline-block;font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:2;margin:0;padding:0 var(--_padding);position:relative}.input.unstyled,input.unstyled,textarea.unstyled{background:none;border-radius:0;box-shadow:none;height:unset}.input.disabled,.input:disabled,.input[disabled=disabled],input.disabled,input:disabled,input[disabled=disabled],textarea.disabled,textarea:disabled,textarea[disabled=disabled]{cursor:not-allowed;opacity:.5}.input[type=range],input[type=range],textarea[type=range]{background:none;border:none;box-shadow:none;flex:1;margin:0}.input[type=radio],input[type=radio],textarea[type=radio]{display:none}.input[type=radio]:checked+label:before,input[type=radio]:checked+label:before,textarea[type=radio]:checked+label:before{background-color:var(--accent,#d8a070);box-shadow:inset 0 0 2px #000,inset 0 0 0 4px #182230;box-shadow:var(--inputShadow),0 0 0 4px var(--fg,#182230) inset}.input[type=radio]:disabled,.input[type=radio]:disabled+label,.input[type=radio]:disabled+label:before,input[type=radio]:disabled,input[type=radio]:disabled+label,input[type=radio]:disabled+label:before,textarea[type=radio]:disabled,textarea[type=radio]:disabled+label,textarea[type=radio]:disabled+label:before{opacity:.5}.input[type=radio]+label:before,input[type=radio]+label:before,textarea[type=radio]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:100%;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:box-shadow .2s;vertical-align:top;width:1.1em}.input[type=checkbox],input[type=checkbox],textarea[type=checkbox]{display:none}.input[type=checkbox]:checked+label:before,input[type=checkbox]:checked+label:before,textarea[type=checkbox]:checked+label:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.input[type=checkbox]:disabled,.input[type=checkbox]:disabled+label,.input[type=checkbox]:disabled+label:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled+label,input[type=checkbox]:disabled+label:before,textarea[type=checkbox]:disabled,textarea[type=checkbox]:disabled+label,textarea[type=checkbox]:disabled+label:before{opacity:.5}.input[type=checkbox]+label:before,input[type=checkbox]+label:before,textarea[type=checkbox]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:color .2s;vertical-align:top;width:1.1em}.input.resize-height,input.resize-height,textarea.resize-height{resize:vertical}textarea{line-height:var(--post-line-height);padding:var(--_padding)}option{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba)}.hide-number-spinner{-moz-appearance:textfield}.hide-number-spinner[type=number]::-webkit-inner-spin-button,.hide-number-spinner[type=number]::-webkit-outer-spin-button{display:none;opacity:0}.btn-block{display:block;width:100%}.btn-group{display:inline-flex;position:relative;vertical-align:middle}.btn-group button{flex:1 1 auto;position:relative}.btn-group button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.panel{background-color:#121a24;background-color:var(--bg,#121a24);display:flex;flex-direction:column;position:relative}.panel,.panel:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.panel-body{padding:var(--panel-body-padding,0)}.panel-body:empty:before{content:"¯\\_(ツ)_/¯";display:block;margin:1em;text-align:center}.panel-body>p{line-height:1.3;margin:0;padding:1em}.panel-footer,.panel-heading{--panel-heading-height-padding:0.6em;--__panel-heading-gap:0.5em;--__panel-heading-height:3.2em;--__panel-heading-height-inner:calc(var(--__panel-heading-height) - var(--panel-heading-height-padding, 0)*2);grid-column-gap:var(--__panel-heading-gap);background-size:cover;box-sizing:border-box;display:grid;flex:none;grid-auto-columns:auto;grid-auto-flow:column;grid-template-columns:minmax(50%,1fr);height:var(--__panel-heading-height);line-height:var(--__panel-heading-height-inner);padding:var(--panel-heading-height-padding);position:relative;z-index:4}.panel-footer.-flexible-height,.panel-heading.-flexible-height{--__panel-heading-height:auto}.panel-footer.-flexible-height:after,.panel-footer.-flexible-height:before,.panel-heading.-flexible-height:after,.panel-heading.-flexible-height:before{display:none}.panel-footer.-stub,.panel-footer.-stub:after,.panel-heading.-stub,.panel-heading.-stub:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel-footer.-sticky,.panel-heading.-sticky{position:sticky;top:var(--navbar-height)}.panel-footer:after,.panel-footer:before,.panel-heading:after,.panel-heading:before{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.panel-footer .title,.panel-heading .title{font-size:1.3em}.panel-footer .alert,.panel-heading .alert{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-footer:not(.-flexible-height)>.alert,.panel-footer:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.alert,.panel-heading:not(.-flexible-height)>.button-default{align-self:stretch;box-sizing:border-box;height:var(--__panel-heading-height-inner);margin:0;min-height:0;min-width:1px;padding-bottom:0;padding-top:0}.panel-heading{align-items:start;background-color:#121a24;background-color:var(--bg,#121a24);border-width:0 0 1px;color:var(--panelText)}.panel-heading,.panel-heading:after{border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0}.panel-heading:after{background-color:#182230;background-color:var(--panel,#182230);box-shadow:var(--panelHeaderShadow);z-index:-2}.panel-heading .-link,.panel-heading a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-heading .button-unstyled:hover .iconLetter,.panel-heading .button-unstyled:hover .svg-inline--fa,.panel-heading .button-unstyled:hover i[class*=icon-],.panel-heading a:hover .iconLetter,.panel-heading a:hover .svg-inline--fa,.panel-heading a:hover i[class*=icon-]{color:var(--panelText)}.panel-heading .faint{background-color:transparent;color:hsla(240,1%,73%,.5);color:var(--panelFaint,hsla(240,1%,73%,.5))}.panel-heading .faint-link{color:hsla(240,1%,73%,.5);color:var(--faintLink,hsla(240,1%,73%,.5))}.panel-heading:not(.-flexible-height)>.button-default{flex-shrink:0}.panel-heading:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:active{background-color:#182230;background-color:var(--btnPressedPanel,#182230);color:#b9b9ba;color:var(--btnPressedPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:disabled{color:#b9b9ba;color:var(--btnDisabledPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default.toggled{color:#b9b9ba;color:var(--btnToggledPanelText,#b9b9ba)}.panel-heading .rightside-button{align-self:stretch;height:var(--__panel-heading-height);margin:calc(var(--panel-heading-height-padding)*-1) 0;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-button>button{box-sizing:border-box;height:100%;padding:calc(var(--panel-heading-height-padding)*1) 0;text-align:center;width:100%}.panel-heading .rightside-button>button svg{font-size:1.2em}.panel-heading .rightside-icon{align-self:stretch;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-icon svg{font-size:1.2em}.panel-footer{align-items:center;border-color:var(--border,#222);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px);border-style:solid;border-width:1px 0 0}.fa{color:gray}.mobile-shown{display:none}.badge{border-radius:99px;box-sizing:border-box;display:inline-block;font-size:.9em;font-style:normal;font-weight:400;height:1.3em;line-height:1;max-width:10em;min-width:1.7em;overflow:hidden;padding:.15em;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.badge.badge-notification{background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff)}.alert{border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0 .35em;padding:0 .25em}.alert.error{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorText,#b9b9ba)}.panel-heading .alert.error{color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.alert.warning{background-color:rgba(111,111,20,.5);background-color:var(--alertWarning,rgba(111,111,20,.5));color:#b9b9ba;color:var(--alertWarningText,#b9b9ba)}.panel-heading .alert.warning{color:#b9b9ba;color:var(--alertWarningPanelText,#b9b9ba)}.alert.success{background-color:var(--alertSuccess,rgba(111,111,20,.5));color:var(--alertSuccessText,#b9b9ba)}.panel-heading .alert.success{color:var(--alertSuccessPanelText,#b9b9ba)}.faint,.faint-link{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.faint-link:hover{text-decoration:underline}.visibility-notice{border:1px solid hsla(240,1%,73%,.5);border:1px solid var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px);padding:.5em}.notice-dismissible{padding-right:4rem;position:relative}.notice-dismissible .dismiss{color:inherit;padding:.5em;position:absolute;right:0;top:0}.fa-scale-110.iconLetter,.fa-scale-110.svg-inline--fa{font-size:1.1em}.fa-old-padding-layer,.fa-old-padding.iconLetter,.fa-old-padding.svg-inline--fa{padding:0 .3em}.veryfaint{opacity:.25}.login-hint{text-align:center}@media (min-width:801px){.login-hint{display:none}}.login-hint a{display:inline-block;padding:1em 0;width:100%}.btn.button-default{min-height:2em}.new-status-notification{flex:1;font-size:1.1em;position:relative;z-index:1}@media (max-width:800px){.mobile-hidden{display:none}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes shakeError{0%{transform:translateX(0)}15%{transform:translateX(.375rem)}30%{transform:translateX(-.375rem)}45%{transform:translateX(.375rem)}60%{transform:translateX(-.375rem)}75%{transform:translateX(.375rem)}90%{transform:translateX(-.375rem)}to{transform:translateX(0)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-active{opacity:0}.thread-tree-replies{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.thread-tree-replies-hidden{align-items:stretch;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation{z-index:1}.Conversation .conversation-dive-to-top-level-box{align-items:stretch;border-bottom:1px solid var(--border,#222);border-radius:0;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation .thread-ancestors{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.Conversation .thread-ancestor.-faded .StatusContent{--link:var(--faintLink);--text:var(--faint);color:var(--text)}.Conversation .thread-ancestor-dive-box{border-bottom:1px solid var(--border,#222);border-radius:0;padding-left:var(--status-margin,.75em)}.Conversation .thread-ancestor-dive-box,.Conversation .thread-ancestor-dive-box-inner{align-items:stretch;display:flex;flex-direction:column}.Conversation .thread-ancestor-dive-box-inner{padding:var(--status-margin,.75em)}.Conversation .conversation-status{border-bottom:1px solid var(--border,#222);border-radius:0}.Conversation .thread-ancestor-has-other-replies .conversation-status,.Conversation .thread-ancestor:last-child .conversation-status,.Conversation .thread-ancestor:last-child .thread-ancestor-dive-box,.Conversation.-expanded .thread-tree .conversation-status,.Conversation:last-child .conversation-status{border-bottom:none}.Conversation .thread-ancestors+.thread-tree>.conversation-status{border-top:1px solid var(--border,#222)}.Conversation.status-fadein.-expanded .thread-body{border-bottom:1px solid var(--border,#222);border-left:4px solid red;border-left-color:var(--cRed,red);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px)}.Conversation.-expanded.status-fadein{margin:calc(var(--status-margin, .75em)/2)}.TimelineMenu{margin-right:auto;min-width:0}.TimelineMenu .popover-trigger-button{vertical-align:bottom}.TimelineMenu .panel:after{border-top-left-radius:0;border-top-right-radius:0}.TimelineMenu .timeline-menu-title{cursor:pointer;display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.TimelineMenu .timeline-menu-title .timeline-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TimelineMenu .timeline-menu-title svg{margin-left:.6em;transition:transform .1s}.TimelineMenu .timeline-menu-title .click-blocker{cursor:default;flex-grow:1}.TimelineMenu.open .timeline-menu-title svg{color:#b9b9ba;color:var(--panelText,#b9b9ba);transform:rotate(180deg)}.TimelineMenu .panel{box-shadow:var(--popoverShadow)}.timeline-menu-popover{border-top-left-radius:0;border-top-right-radius:0;font-size:1rem;margin-top:.6rem;max-width:100vw;min-width:24rem}.timeline-menu-popover ul{list-style:none;margin:0;padding:0}.timeline-menu-popover li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0}.timeline-menu-popover li:last-child a{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.timeline-menu-popover li:last-child{border:none}.timeline-menu-popover a{display:block;height:3.5em;line-height:3.5em;padding:0 .65em}.timeline-menu-popover a:hover{color:#d8a070;color:var(--selectedMenuText,#d8a070)}.timeline-menu-popover a.router-link-active,.timeline-menu-popover a:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a)}.timeline-menu-popover a.router-link-active{color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.timeline-menu-popover a.router-link-active:hover{text-decoration:underline}.timeline-menu-popover a svg{margin-left:-.2em;margin-right:.4em}.Timeline .alert-dot{border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;top:calc(50% - 4px);width:8px}.Timeline .alert-badge,.Timeline .alert-dot{background-color:var(--badgeNeutral);position:absolute}.Timeline .alert-badge{border-radius:var(--tooltipRadius);color:var(--badgeNeutralText);font-size:.75em;left:calc(50% - .5em);line-height:1;margin-left:.7em;margin-top:-1em;padding:.2em;text-align:right;top:calc(50% - .4em)}.Timeline .loadmore-button{position:relative}.Timeline.-blocked{cursor:progress}.Timeline .conversation-heading{top:calc(var(--__panel-heading-height)*var(--currentPanelStack, 2));z-index:2}.Timeline.-nonpanel .timeline-heading{line-height:2.75em;padding:0 .5em;text-align:center}.Timeline.-nonpanel .timeline-heading .alert,.Timeline.-nonpanel .timeline-heading .button-default{line-height:2em;width:100%}.tab-switcher{display:flex}.tab-switcher .tab-icon{display:block;margin:.2em auto}.tab-switcher.top-tabs{flex-direction:column}.tab-switcher.top-tabs>.tabs{flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding-top:5px;width:100%}.tab-switcher.top-tabs>.tabs:after,.tab-switcher.top-tabs>.tabs:before{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);content:"";flex:1 1 auto}.tab-switcher.top-tabs>.tabs .tab-wrapper{height:2em}.tab-switcher.top-tabs>.tabs .tab-wrapper:not(.active):after{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);bottom:0;left:0;right:0}.tab-switcher.top-tabs>.tabs .tab{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-93px;min-width:1px;padding-bottom:99px;width:100%}.tab-switcher.top-tabs .contents.scrollable-tabs{flex-basis:0}.tab-switcher.side-tabs{flex-direction:row}@media (max-width:800px){.tab-switcher.side-tabs{overflow-x:auto}}.tab-switcher.side-tabs>.contents{flex:1 1 auto}.tab-switcher.side-tabs>.tabs{flex:0 0 auto;flex-direction:column;overflow-x:hidden;overflow-y:auto}.tab-switcher.side-tabs>.tabs:after,.tab-switcher.side-tabs>.tabs:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex-basis:.5em;flex-shrink:0}.tab-switcher.side-tabs>.tabs:after{flex-grow:1}.tab-switcher.side-tabs>.tabs:before{flex-grow:0}.tab-switcher.side-tabs>.tabs .tab-wrapper{display:flex;flex-direction:column;min-width:10em}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab-wrapper{min-width:4em}}.tab-switcher.side-tabs>.tabs .tab-wrapper:not(.active):after{border-right:1px solid #222;border-right-color:var(--border,#222);bottom:0;right:0;top:0}.tab-switcher.side-tabs>.tabs .tab-wrapper:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex:0 0 6px}.tab-switcher.side-tabs>.tabs .tab-wrapper:last-child .tab{margin-bottom:0}.tab-switcher.side-tabs>.tabs .tab{border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:content-box;flex:1;margin-left:1em;margin-right:-200px;min-width:10em;min-width:1px;padding-left:1em;padding-right:calc(1em + 200px)}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab{margin-left:.25em;margin-right:calc(.25em - 200px);padding-left:.25em;padding-right:calc(.25em + 200px)}.tab-switcher.side-tabs>.tabs .tab .text{display:none}}.tab-switcher .contents{flex:1 0 auto;min-height:0}.tab-switcher .contents .hidden{display:none}.tab-switcher .contents .full-height:not(.hidden){display:flex;flex-direction:column;height:100%}.tab-switcher .contents .full-height:not(.hidden)>:not(.mobile-label){flex:1}.tab-switcher .contents.scrollable-tabs{overflow-y:auto}.tab-switcher .tab{padding:6px 1em;position:relative;white-space:nowrap}.tab-switcher .tab:not(.active){z-index:4}.tab-switcher .tab:not(.active):hover{z-index:6}.tab-switcher .tab.active{background:transparent;color:#b9b9ba;color:var(--tabActiveText,#b9b9ba);z-index:5}.tab-switcher .tab img{margin-top:-5px;max-height:26px;vertical-align:top}.tab-switcher .tabs{box-sizing:border-box;display:flex;position:relative}.tab-switcher .tabs:after,.tab-switcher .tabs:before{display:block;flex:1 1 auto}.tab-switcher .tab-wrapper{display:flex;flex:0 0 auto;position:relative}.tab-switcher .tab-wrapper:not(.active):after{content:"";position:absolute;z-index:7}.tab-switcher .mobile-label{border-bottom:1px solid var(--border,#222);margin-bottom:.25em;margin-left:.2em;margin-top:.5em;padding-bottom:.25em;padding-left:.3em}@media (min-width:800px){.tab-switcher .mobile-label{display:none}}.chat-title{--emoji-size:14px;display:flex}.chat-title,.chat-title .username{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title .username{word-wrap:break-word;display:inline;max-width:100%}.chat-title .avatar-container{align-self:center;line-height:1}.chat-title .titlebar-avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.5em;width:1.5em}.chat-title .titlebar-avatar.animated:before{display:none}.chat-list-item{box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;height:5em;overflow:hidden;padding:.75em}.chat-list-item :focus{outline:none}.chat-list-item:hover{background-color:var(--selectedPost,#151e2a);box-shadow:0 0 3px 1px rgba(0,0,0,.1)}.chat-list-item .chat-list-item-left{margin-right:1em}.chat-list-item .chat-list-item-center{word-wrap:break-word;box-sizing:border-box;overflow:hidden;width:100%}.chat-list-item .heading{display:inline-flex;justify-content:space-between;line-height:1em;width:100%}.chat-list-item .heading-right{white-space:nowrap}.chat-list-item .name-and-account-name{flex-shrink:1;line-height:var(--post-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-item .chat-preview{color:#b9b9ba;color:var(--faint,#b9b9ba);display:inline-flex;margin:.35em 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.chat-list-item a{color:var(--faintLink,#d8a070);pointer-events:none;text-decoration:none}.chat-list-item:hover .animated.avatar canvas{display:none}.chat-list-item:hover .animated.avatar img{visibility:visible}.chat-list-item .Avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.chat-list-item .chat-preview-body{--emoji-size:1.4em}.chat-list-item .time-wrapper{line-height:var(--post-line-height)}.chat-list-item .chat-preview-body{padding-right:1em}.basic-user-card{--emoji-size:14px;display:flex;flex:1 0;margin:0;padding:.6em 1em}.basic-user-card-collapsed-content{flex:1;margin-left:.7em;min-width:0;text-align:left}.basic-user-card-user-name img{height:16px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:16px}.basic-user-card-screen-name,.basic-user-card-user-name-value{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-user-card-expanded-content{flex:1;margin-left:.7em;min-width:0}.chat-new .input-wrap{display:flex;margin:.7em .5em}.chat-new .input-wrap input{width:100%}.chat-new .search-icon{margin-right:.3em}.chat-new .member-list{padding-bottom:.7rem}.chat-new .basic-user-card:hover{background-color:var(--selectedPost,#151e2a);cursor:pointer}.chat-new .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-list{margin-bottom:0;min-height:25em}.emtpy-chat-list-alert{color:#b9b9ba;color:var(--faint,#b9b9ba);display:flex;font-size:1.2em;justify-content:center;padding:3em}.chat-message-wrapper.hovered-message-chain .animated.Avatar canvas{display:none}.chat-message-wrapper.hovered-message-chain .animated.Avatar img{visibility:visible}.chat-message-wrapper .chat-message-menu{opacity:0;position:absolute;top:-.8em;transition:opacity .1s}.chat-message-wrapper .chat-message-menu button{padding-bottom:.2em;padding-top:.2em}.chat-message-wrapper .menu-icon{cursor:pointer}.chat-message-wrapper .menu-icon:hover,.extra-button-popover.open .chat-message-wrapper .menu-icon{color:#b9b9ba;color:var(--text,#b9b9ba)}.chat-message-wrapper .popover{width:12em}.chat-message-wrapper .chat-message{display:flex;padding-bottom:.5em}.chat-message-wrapper .chat-message .status-body:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.chat-message-wrapper .avatar-wrapper{margin-right:.72em;width:32px}.chat-message-wrapper .attachments,.chat-message-wrapper .link-preview{margin-bottom:1em}.chat-message-wrapper .chat-message-inner{align-items:flex-start;display:flex;flex-direction:column;max-width:80%;min-width:10em;width:100%}.chat-message-wrapper .chat-message-inner.with-media,.chat-message-wrapper .chat-message-inner.with-media .status{width:100%}.chat-message-wrapper .status{border-radius:10px;border-radius:var(--chatMessageRadius,10px);display:flex;padding:.75em}.chat-message-wrapper .created-at{float:right;font-size:.8em;font-style:italic;margin:-1em 0 -.5em;opacity:.8;position:relative}.chat-message-wrapper .without-attachment .message-content .RichContent:after{content:" ";display:inline-block;margin-right:5.4em}.chat-message-wrapper .pending .created-at,.chat-message-wrapper .pending .status-content.media-body{color:var(--faint)}.chat-message-wrapper .error .created-at,.chat-message-wrapper .error .status-content.media-body{color:red;color:var(--badgeNotification,red)}.chat-message-wrapper .incoming a{color:var(--chatMessageIncomingLink,#d8a070)}.chat-message-wrapper .incoming .status{background-color:var(--chatMessageIncomingBg,#121a24);border:1px solid var(--chatMessageIncomingBorder,--border)}.chat-message-wrapper .incoming .created-at a,.chat-message-wrapper .incoming .status{color:var(--chatMessageIncomingText,#b9b9ba)}.chat-message-wrapper .incoming .chat-message-menu{left:.4rem}.chat-message-wrapper .outgoing{align-content:end;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.chat-message-wrapper .outgoing a{color:var(--chatMessageOutgoingLink,#d8a070)}.chat-message-wrapper .outgoing .status{background-color:var(--chatMessageOutgoingBg,#151e2a);border:1px solid var(--chatMessageOutgoingBorder,--lightBg);color:var(--chatMessageOutgoingText,#b9b9ba)}.chat-message-wrapper .outgoing .chat-message-inner{align-items:flex-end}.chat-message-wrapper .outgoing .chat-message-menu{right:.4rem}.chat-message-wrapper .visible{opacity:1}.chat-message-date-separator{color:#b9b9ba;color:var(--faintedText,#b9b9ba);font-size:.9em;margin:1.4em 0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-view{display:flex;height:100%}.chat-view .chat-view-inner{display:flex;height:auto;overflow:visible;width:100%}.chat-view .chat-view-body{background-color:var(--chatBg,#121a24);border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0;box-sizing:border-box;display:flex;flex-direction:column;margin:0;min-height:calc(100vh - var(--navbar-height));overflow:visible;width:100%}.chat-view .chat-view-body:after{border-radius:0}.chat-view .message-list{display:flex;flex-direction:column;height:100%;justify-content:end;padding:0 .8em}.chat-view .footer{background-color:#121a24;background-color:var(--bg,#121a24);bottom:0;position:sticky;z-index:1}.chat-view .chat-view-heading{grid-template-columns:auto minmax(50%,1fr)}.chat-view .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-view .jump-to-bottom-button{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.3);cursor:pointer;display:flex;height:2.5em;justify-content:center;opacity:0;position:absolute;right:1.3em;top:-3.2em;transition:all .35s;transition-timing-function:cubic-bezier(0,1,.5,1);visibility:hidden;width:2.5em;z-index:10}.chat-view .jump-to-bottom-button.visible{opacity:1;visibility:visible}.chat-view .jump-to-bottom-button i{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1em}.chat-view .jump-to-bottom-button .unread-message-count{border-radius:50px;font-size:.8em;left:50%;margin-top:-1rem;padding:.1em;position:absolute}.chat-view .jump-to-bottom-button .chat-loading-error{align-items:flex-end;display:flex;height:100%;width:100%}.chat-view .jump-to-bottom-button .chat-loading-error .error{width:100%}.follow-card-content-container{display:flex;flex-direction:row;flex-shrink:0;flex-wrap:wrap;justify-content:space-between;line-height:1.5em}.follow-card-button{margin-left:1em;margin-top:.5em;padding:0 1.5em}.follow-card-follow-button{margin-left:auto;margin-top:.5em;width:10em}.with-load-more-footer{border-top:1px solid #222;border-top-color:var(--border,#222);padding:10px;text-align:center}.with-load-more-footer .error{font-size:1rem}.with-load-more-footer a{cursor:pointer}.user-profile{--currentPanelStack:1;flex:2;flex-basis:500px}.user-profile .user-profile-fields{margin:0 .5em}.user-profile .user-profile-fields img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-profile .user-profile-fields img.emoji{height:18px;width:18px}.user-profile .user-profile-fields .user-profile-field{border:1px solid var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);display:flex;margin:.25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name{border-right:1px solid var(--border,#222);color:var(--lightText);flex:0 1 30%;font-weight:500;min-width:120px;text-align:right}.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{color:var(--text);flex:1 1 70%;margin:0 0 0 .25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name,.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{box-sizing:border-box;line-height:1.3;overflow:hidden;padding:.5em 1.5em;text-overflow:ellipsis;white-space:nowrap}.user-profile .userlist-placeholder{align-items:middle;display:flex;justify-content:center;padding:2em}.user-profile-placeholder .panel-body{align-items:middle;display:flex;justify-content:center;padding:7em}.search-result-heading{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));padding:.75rem;text-align:center}@media (max-width:800px){.search-nav-heading .tab-switcher .tabs .tab-wrapper{display:block;flex:1 1 auto;justify-content:center;text-align:center}}.search-result{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);box-sizing:border-box}.search-result-footer{background-color:#182230;background-color:var(--panel,#182230);border-color:var(--border,#222);border-style:solid;border-width:1px 0 0;padding:10px}.search-input-container{display:flex;justify-content:center;padding:.8rem}.search-input-container .search-input{box-sizing:border-box;font-size:1rem;line-height:1.125rem;padding:.5rem;width:100%}.search-input-container .search-button{margin-left:.5em}.loading-icon{padding:1em}.trend{align-items:center;display:flex}.trend .hashtag{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend .count,.trend .hashtag{color:#b9b9ba;color:var(--text,#b9b9ba)}.trend .count{flex:0 0 auto;font-size:1.5rem;font-weight:500;line-height:2.25rem;text-align:center;width:2rem}.more-statuses-button{height:3.5em;line-height:3.5em}.registration-form{display:flex;flex-direction:column;margin:.6em}.registration-form .container{display:flex;flex-direction:row}.registration-form .container>*{min-width:0}.registration-form .terms-of-service{flex:0 1 50%;margin:.8em}.registration-form .text-fields{display:flex;flex:1 0;flex-direction:column;margin-top:.6em}.registration-form textarea{min-height:100px;resize:vertical}.registration-form .form-group{display:flex;flex-direction:column;line-height:2;margin-bottom:1em;padding:.3em 0}.registration-form .form-group--error{animation-duration:.6s;animation-name:shakeError;animation-timing-function:ease-in-out}.registration-form .form-group--error .form--label{color:#f04124;color:var(--cRed,#f04124)}.registration-form .form-error{margin-top:-.7em;text-align:left}.registration-form .form-error span{font-size:.85em}.registration-form .form-error ul{list-style:none;margin-top:0;padding:0 0 0 5px}.registration-form .form-error ul li:before{content:"• "}.registration-form form textarea{line-height:16px;resize:vertical}.registration-form .captcha{margin-bottom:.4em;max-width:350px}.registration-form .btn{height:2em;margin-top:.6em}.registration-form .error{text-align:center}@media (max-width:800px){.registration-form .container{flex-direction:column-reverse}}.password-reset-form{align-items:center;display:flex;flex-direction:column;margin:.6em}.password-reset-form .container{display:flex;flex:1 0;flex-direction:column;margin-top:.6em;max-width:18rem}.password-reset-form .container>*{min-width:0}.password-reset-form .form-group{display:flex;flex-direction:column;line-height:1.85em;margin-bottom:1em;padding:.3em 0}.password-reset-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.password-reset-form .alert{margin:.3em 0 1em;padding:.5em}.password-reset-form .password-reset-required{background-color:var(--alertError,rgba(211,16,20,.5));padding:10px 0}.password-reset-form .notice-dismissible{padding-right:2rem}.password-reset-form .dismiss{cursor:pointer}.follow-request-card-content-container{display:flex;flex-direction:row;flex-wrap:wrap}.follow-request-card-content-container button{flex:1 1;margin-right:.5em;margin-top:.5em;max-width:12em;min-width:8em}.follow-request-card-content-container button:last-child{margin-right:0}.tos-content{margin:1em}.staff-group{padding-left:1em;padding-top:1em}.staff-group .basic-user-card{padding-left:0}.mrf-section{margin:1em}.mrf-section table{padding-bottom:20px;padding-left:10px;text-align:left;width:100%}.mrf-section table td,.mrf-section table th{max-width:360px;overflow:hidden;vertical-align:text-top;width:180px}.mrf-section table td+td,.mrf-section table th+th{width:auto}.list-card{display:flex}.button-list-edit,.list-name{color:#d8a070;color:var(--link,#d8a070);margin:0;padding:1em}.button-list-edit:hover,.list-name:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.list-name{flex-grow:1}.Lists .new-list-button{padding:0 .5em}.ListsUserSearch .input-wrap{display:flex;margin:.7em .5em}.ListsUserSearch .input-wrap input{width:100%}.ListsUserSearch .search-icon{margin-right:.3em}.panel-loading{align-items:center;color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:2em;height:100%;justify-content:center}.panel-loading .loading-text svg{color:#b9b9ba;color:var(--text,#b9b9ba);line-height:0;vertical-align:middle}.ListEdit{--panel-body-padding:0.5em;display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow:hidden}.ListEdit .list-edit-heading{grid-template-columns:auto minmax(50%,1fr)}.ListEdit .panel-body{display:flex;flex:1;flex-direction:column;overflow:hidden}.ListEdit .list-member-management{flex:1 0 auto}.ListEdit .search-icon{margin-right:.3em}.ListEdit .users-list{overflow-y:auto;padding-bottom:.7rem}.ListEdit .members-list,.ListEdit .search-list{flex-direction:column;min-height:0;overflow:hidden}.ListEdit .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.ListEdit .btn{margin:0 .5em}.ListEdit .panel-footer{grid-template-columns:minmax(10%,1fr)}.ListEdit .panel-footer .footer-button{min-width:9em}.announcement-editor{align-items:stretch;display:flex;flex-direction:column}.announcement-editor .announcement-metadata{margin-top:.5em}.announcement-editor .post-textarea{box-sizing:content-box;height:10em;overflow:none;resize:vertical}.announcement{border-bottom:1px solid var(--border,#222);border-radius:0;padding:var(--status-margin,.75em)}.announcement .body,.announcement .heading{margin-bottom:var(--status-margin,.75em)}.announcement .footer,.announcement .footer .times{display:flex;flex-direction:column}.announcement .footer .actions{display:flex;flex-direction:row;justify-content:space-evenly}.announcement .footer .actions .btn{flex:1;margin:1em;max-width:10em}.announcements-page .post-form{padding:var(--status-margin,.75em)}.announcements-page .post-form .body,.announcements-page .post-form .heading{margin-bottom:var(--status-margin,.75em)}.announcements-page .post-form .post-button{min-width:10em}
-/*# sourceMappingURL=app.86977512e08af1f17d78.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/app.86977512e08af1f17d78.css.map b/priv/static/static/css/app.86977512e08af1f17d78.css.map
deleted file mode 100644
index ee55a6a63..000000000
--- a/priv/static/static/css/app.86977512e08af1f17d78.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/app.86977512e08af1f17d78.css","mappings":"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","sources":["webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.scss","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/attachment/attachment.scss","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.scss","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.scss","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.scss","webpack://pleroma_fe/./src/components/rich_content/rich_content.scss","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/status_body/status_body.scss","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_card/user_card.scss","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/status/status.scss","webpack://pleroma_fe/./src/components/report/report.scss","webpack://pleroma_fe/./src/components/notification/notification.scss","webpack://pleroma_fe/./src/components/notifications/notifications.scss","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.scss","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/App.scss","webpack://pleroma_fe/./src/panel.scss","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline/timeline.scss","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.scss","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.scss","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.scss","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.scss","webpack://pleroma_fe/./src/components/chat/chat.scss","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.scss","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.scss","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue"],"sourcesContent":["\n.modal-view {\n z-index: var(--ZI_modals);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgba(0, 0, 0, 0.5);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgba(0, 0, 0, 0);\n }\n to {\n background-color: rgba(0, 0, 0, 0.5);\n }\n}\n","\n@import '../../_variables.scss';\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1.0em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height:24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n","\n@import '../../_variables.scss';\n\n.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n\n .hidden-input-file {\n display: none;\n }\n}\n ","\n@import '../../_variables.scss';\n\n.ScopeSelector {\n\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgba(185, 185, 186, .5);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21, 30, 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #ff0000;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgba(211,16,20,.5);\n$fallback--alertWarning: rgba(111,111,20,.5);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0px 0px 2px 0px rgba(0, 0, 0, 1), 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset;\n\n$status-margin: 0.75em;\n","\n@import '../../_variables.scss';\n\n.checkbox {\n position: relative;\n display: inline-block;\n min-height: 1.2em;\n\n &-indicator {\n position: relative;\n padding-left: 1.2em;\n }\n\n &-indicator::before {\n position: absolute;\n right: 0;\n top: 0;\n display: block;\n content: '✓';\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: $fallback--checkboxRadius;\n border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1em;\n font-size: 1.1em;\n color: transparent;\n overflow: hidden;\n box-sizing: border-box;\n }\n\n &.disabled {\n .checkbox-indicator::before,\n .label {\n opacity: .5;\n }\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=checkbox] {\n display: none;\n\n &:checked + .checkbox-indicator::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:indeterminate + .checkbox-indicator::before {\n content: '–';\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n }\n\n & > span {\n margin-left: .5em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &:after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: .5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: .5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0px;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon)\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active, &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0px;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: '✓';\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: '•';\n }\n }\n }\n\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=icon-] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: 'gif';\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n","@import '../../_variables.scss';\n\n$emoji-picker-header-height: 36px;\n$emoji-picker-header-picture-width: 32px;\n$emoji-picker-header-picture-height: 32px;\n$emoji-picker-emoji-size: 32px;\n\n.emoji-picker {\n width: 25em;\n max-width: 100vw;\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n --lightText: var(--popoverLightText, $fallback--faint);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n &-header-image {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n .still-image {\n max-width: 100%;\n max-height: 100%;\n height: 100%;\n width: 100%;\n object-fit: contain;\n }\n }\n\n .keep-open,\n .too-many-emoji {\n padding: 7px;\n line-height: normal;\n }\n\n .too-many-emoji {\n display: flex;\n flex-direction: column;\n }\n\n .keep-open-label {\n padding: 0 7px;\n display: flex;\n }\n\n .heading {\n display: flex;\n padding: 10px 7px 5px;\n }\n\n .content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0px;\n }\n\n .emoji-tabs {\n flex-grow: 1;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n overflow-x: auto;\n }\n\n .emoji-groups {\n min-height: 200px;\n }\n\n .additional-tabs {\n display: flex;\n flex: 1;\n border-left: 1px solid;\n border-left-color: $fallback--icon;\n border-left-color: var(--icon, $fallback--icon);\n padding-left: 7px;\n flex: 0 0 auto;\n }\n\n .additional-tabs,\n .emoji-tabs {\n flex-basis: auto;\n display: flex;\n align-content: center;\n\n &-item {\n padding: 0 7px;\n cursor: pointer;\n font-size: 1.85em;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n display: flex;\n align-items: center;\n\n &.disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n &.active {\n border-bottom: 4px solid;\n\n svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n }\n }\n\n .sticker-picker {\n flex: 1 1 auto\n }\n\n .stickers,\n .emoji {\n &-content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n\n &.hidden {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n }\n }\n }\n\n .emoji {\n &-search {\n padding: 5px;\n flex: 0 0 auto;\n\n input {\n width: 100%;\n }\n }\n\n &-groups {\n flex: 1 1 1px;\n position: relative;\n overflow: auto;\n user-select: none;\n mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n // Autoprefixed seem to ignore this one, and also syntax is different\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n &.scrolled {\n &-top {\n mask-size: 100% 20px, 100% 0, auto;\n }\n &-bottom {\n mask-size: 100% 0, 100% 20px, auto;\n }\n }\n }\n\n &-group {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n padding-left: 5px;\n justify-content: left;\n\n &-title {\n font-size: 0.85em;\n width: 100%;\n margin: 0;\n\n &.disabled {\n display: none;\n }\n }\n }\n\n &-item {\n width: $emoji-picker-emoji-size;\n height: $emoji-picker-emoji-size;\n box-sizing: border-box;\n display: flex;\n line-height: $emoji-picker-emoji-size;\n align-items: center;\n justify-content: center;\n margin: 4px;\n\n cursor: pointer;\n\n .emoji-picker-emoji.-custom {\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n }\n .emoji-picker-emoji.-unicode {\n font-size: 24px;\n overflow: hidden;\n }\n }\n\n }\n\n}\n","\n@import '../../_variables.scss';\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: .2em .25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none\n }\n }\n\n input, textarea {\n flex: 1 0 auto;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n /* DEBUG STUFF */\n color: red;\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 .2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n\n}\n","\n@import '../../_variables.scss';\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n","\n@import '../../_variables.scss';\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: 'hidden';\n }\n}\n","@import '../../_variables.scss';\n\n.Attachment {\n display: inline-flex;\n flex-direction: column;\n position: relative;\n align-self: flex-start;\n line-height: 0;\n height: 100%;\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n\n .attachment-wrapper {\n flex: 1 1 auto;\n height: 100%;\n position: relative;\n overflow: hidden;\n }\n\n .description-container {\n flex: 0 1 0;\n display: flex;\n padding-top: 0.5em;\n z-index: 1;\n\n p {\n flex: 1;\n text-align: center;\n line-height: 1.5;\n padding: 0.5em;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &.-static {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n padding-top: 0;\n background: var(--popover);\n box-shadow: var(--popupShadow);\n }\n }\n\n .description-field {\n flex: 1;\n min-width: 0;\n }\n\n & .placeholder-container,\n & .image-container,\n & .audio-container,\n & .video-container,\n & .flash-container,\n & .oembed-container {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n }\n\n .image-container {\n .image {\n width: 100%;\n height: 100%;\n }\n }\n\n & .flash-container,\n & .video-container {\n & .flash,\n & video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n align-self: center;\n }\n }\n\n .audio-container {\n display: flex;\n align-items: flex-end;\n\n audio {\n width: 100%;\n height: 100%;\n }\n }\n\n .placeholder-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-top: 0.5em;\n }\n\n\n .play-icon {\n position: absolute;\n font-size: 64px;\n top: calc(50% - 32px);\n left: calc(50% - 32px);\n color: rgba(255, 255, 255, 0.75);\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.4);\n\n &::before {\n margin: 0;\n }\n }\n\n .attachment-buttons {\n display: flex;\n position: absolute;\n right: 0;\n top: 0;\n margin-top: 0.5em;\n margin-right: 0.5em;\n z-index: 1;\n\n .attachment-button {\n padding: 0;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n text-align: center;\n width: 2em;\n height: 2em;\n margin-left: 0.5em;\n font-size: 1.25em;\n // TODO: theming? hard to theme with unknown background image color\n background: rgba(230, 230, 230, 0.7);\n\n .svg-inline--fa {\n color: rgba(0, 0, 0, 0.6);\n }\n\n &:hover .svg-inline--fa {\n color: rgba(0, 0, 0, 0.9);\n }\n }\n }\n\n .oembed-container {\n line-height: 1.2em;\n flex: 1 0 100%;\n width: 100%;\n margin-right: 15px;\n display: flex;\n\n img {\n width: 100%;\n }\n\n .image {\n flex: 1;\n img {\n border: 0px;\n border-radius: 5px;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .text {\n flex: 2;\n margin: 8px;\n word-break: break-all;\n h1 {\n font-size: 1rem;\n margin: 0px;\n }\n }\n }\n\n &.-size-small {\n .play-icon {\n zoom: 0.5;\n opacity: 0.7;\n }\n\n .attachment-buttons {\n zoom: 0.7;\n opacity: 0.5;\n }\n }\n\n &.-editable {\n padding: 0.5em;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n }\n }\n\n &.-placeholder {\n display: inline-block;\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n overflow: hidden;\n white-space: nowrap;\n height: auto;\n line-height: 1.5;\n\n &:not(.-editable) {\n border: none;\n }\n\n &.-editable {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n padding: 0;\n position: relative;\n }\n\n .description-container {\n flex: 1;\n padding-left: 0.5em;\n }\n\n .attachment-buttons {\n order: 99;\n align-self: center;\n }\n }\n\n a {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n color: inherit;\n }\n }\n\n &.-loading {\n cursor: progress;\n }\n\n &.-contain-fit {\n img,\n canvas {\n object-fit: contain;\n }\n }\n\n &.-cover-fit {\n img,\n canvas {\n object-fit: cover;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n\n .gallery-row {\n &.-grid,\n &.-minimal {\n height: auto;\n .gallery-row-inner {\n position: relative;\n }\n }\n }\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-content: stretch;\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-column-gap: 0.5em;\n grid-row-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n &:last-child {\n margin: 0;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n\n}\n","@import '../../_variables.scss';\n\n.MentionLink {\n position: relative;\n white-space: normal;\n display: inline;\n color: var(--link);\n word-break: normal;\n\n & .new,\n & .original {\n display: inline;\n border-radius: 2px;\n }\n\n .mention-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n user-select: none;\n margin-right: 0.2em;\n }\n\n .full {\n position: absolute;\n display: inline-block;\n pointer-events: none;\n opacity: 0;\n top: 100%;\n left: 0;\n height: 100%;\n word-wrap: normal;\n white-space: nowrap;\n transition: opacity 0.2s ease;\n z-index: 1;\n margin-top: 0.25em;\n padding: 0.5em;\n user-select: all;\n }\n\n & .short.-with-tooltip,\n & .you {\n user-select: none;\n }\n\n & .short,\n & .full {\n white-space: nowrap;\n }\n\n .shortName {\n white-space: normal;\n }\n\n .new {\n &.-you {\n .shortName {\n font-weight: 600;\n }\n }\n &.-has-selection {\n color: var(--alertNeutralText, $fallback--text);\n background-color: var(--alertNeutral, $fallback--fg);\n }\n\n .at {\n color: var(--link);\n opacity: 0.8;\n display: inline-block;\n line-height: 1;\n padding: 0 0.1em;\n vertical-align: -25%;\n margin: 0;\n }\n\n &.-striped {\n & .shortName {\n background-image:\n repeating-linear-gradient(\n 135deg,\n var(--____highlight-tintColor),\n var(--____highlight-tintColor) 5px,\n var(--____highlight-tintColor2) 5px,\n var(--____highlight-tintColor2) 10px\n );\n }\n }\n\n &.-solid {\n .shortName {\n background-image: linear-gradient(var(--____highlight-tintColor2), var(--____highlight-tintColor2));\n }\n }\n\n &.-side {\n .shortName {\n box-shadow: 0 -5px 3px -4px inset var(--____highlight-solidColor);\n }\n }\n }\n\n .full {\n pointer-events: none;\n }\n\n .serverName.-faded {\n color: var(--faintLink, $fallback--link);\n }\n}\n\n.mention-link-popover {\n max-width: 70ch;\n max-height: 20rem;\n overflow: hidden;\n}\n",".MentionsLine {\n word-break: break-all;\n\n .mention-link:not(:first-child)::before {\n content: ' ';\n }\n\n .showMoreLess {\n margin-left: 0.5em;\n white-space: normal;\n color: var(--link);\n }\n}\n",".HashtagLink {\n position: relative;\n white-space: normal;\n display: inline-block;\n color: var(--link);\n}\n",".RichContent {\n blockquote {\n margin: 0.2em 0 0.2em 2em;\n font-style: italic;\n }\n\n pre {\n overflow: auto;\n }\n\n code,\n samp,\n kbd,\n var,\n pre {\n font-family: var(--postCodeFont, monospace);\n }\n\n p {\n margin: 0 0 1em 0;\n }\n\n p:last-child {\n margin: 0 0 0 0;\n }\n\n h1 {\n font-size: 1.1em;\n line-height: 1.2em;\n margin: 1.4em 0;\n }\n\n h2 {\n font-size: 1.1em;\n margin: 1em 0;\n }\n\n h3 {\n font-size: 1em;\n margin: 1.2em 0;\n }\n\n h4 {\n margin: 1.1em 0;\n }\n\n .img {\n display: inline-block;\n }\n\n .emoji {\n display: inline-block;\n width: var(--emoji-size, 32px);\n height: var(--emoji-size, 32px);\n }\n\n .img,\n video {\n max-width: 100%;\n max-height: 400px;\n vertical-align: middle;\n object-fit: contain;\n }\n}\n","\n@import '../../_variables.scss';\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n .poll-option {\n margin: 0.75em 0.5em;\n }\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n .option-vote {\n display: flex;\n align-items: center;\n }\n input {\n width: 3.5em;\n }\n .footer {\n display: flex;\n align-items: center;\n }\n &.loading * {\n cursor: progress;\n }\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n}\n","@import '../../_variables.scss';\n\n.StatusBody {\n display: flex;\n flex-direction: column;\n\n .emoji {\n --_still_image-label-scale: 0.5;\n }\n\n .attachments {\n margin-top: 0.5em;\n }\n\n & .text,\n & .summary {\n font-family: var(--postFont, sans-serif);\n white-space: pre-wrap;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n line-height: var(--post-line-height);\n }\n\n .summary {\n display: block;\n font-style: italic;\n padding-bottom: 0.5em;\n }\n\n .text {\n &.-single-line {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n height: 1.4em;\n }\n }\n\n .summary-wrapper {\n margin-bottom: 0.5em;\n border-style: solid;\n border-width: 0 0 1px 0;\n border-color: var(--border, $fallback--border);\n flex-grow: 0;\n\n &.-tall {\n position: relative;\n\n .summary {\n max-height: 2em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n\n .text-wrapper {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n\n &.-tall-status {\n position: relative;\n height: 220px;\n overflow-x: hidden;\n overflow-y: hidden;\n z-index: 1;\n\n .media-body {\n min-height: 0;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n }\n }\n }\n\n & .tall-status-hider,\n & .tall-subject-hider,\n & .status-unhider,\n & .cw-status-hider {\n display: inline-block;\n word-break: break-all;\n width: 100%;\n text-align: center;\n }\n\n .tall-status-hider {\n position: absolute;\n height: 70px;\n margin-top: 150px;\n line-height: 110px;\n z-index: 2;\n }\n\n .tall-subject-hider {\n // position: absolute;\n padding-bottom: 0.5em;\n }\n\n & .status-unhider,\n & .cw-status-hider {\n word-break: break-all;\n\n svg {\n color: inherit;\n }\n }\n\n .greentext {\n color: $fallback--cGreen;\n color: var(--postGreentext, $fallback--cGreen);\n }\n\n .cyantext {\n color: var(--postCyantext, $fallback--cBlue);\n }\n\n &.-compact {\n align-items: top;\n flex-direction: row;\n\n --emoji-size: 16px;\n\n & .body,\n & .attachments {\n max-height: 3.25em;\n }\n\n .body {\n overflow: hidden;\n white-space: normal;\n min-width: 5em;\n flex: 5 1 auto;\n mask-size: auto 3.5em, auto auto;\n mask-position: 0 0, 0 0;\n mask-repeat: repeat-x, repeat;\n mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n }\n\n .attachments {\n margin-top: 0;\n flex: 1 1 0;\n min-width: 5em;\n height: 100%;\n margin-left: 0.5em;\n }\n\n .summary-wrapper {\n .summary::after {\n content: ': ';\n }\n\n line-height: inherit;\n margin: 0;\n border: none;\n display: inline-block;\n }\n\n .text-wrapper {\n display: inline-block;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n","\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n","\n@import '../../_variables.scss';\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n svg, i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n .media-upload-icon, .poll-icon, .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected, &:hover {\n // needs to be specific to override icon default color\n svg, i, label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg, i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: .2em;\n margin-bottom: .5em;\n width: 18em;\n\n img, video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n","\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n","\n@import '../../_variables.scss';\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgba(27,31,35,.5);\n z-index: 99;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 999;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: .5em .5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: .5rem;\n }\n }\n}\n\n","\n@import '../../_variables.scss';\n\n.moderation-tools-popover {\n height: 100%;\n .trigger {\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,i {\n font-size: 0.8em;\n }\n}\n","\n@import '../../_variables.scss';\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","\n@import '../../variables';\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n","@import '../../_variables.scss';\n\n.user-card {\n position: relative;\n z-index: 1;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n .panel-heading {\n padding: .5em 0;\n text-align: center;\n box-shadow: none;\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n // create new stacking context\n position: relative;\n }\n\n .panel-body {\n word-wrap: break-word;\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n // create new stacking context\n position: relative;\n }\n\n .background-image {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n mask: linear-gradient(to top, white, transparent) bottom no-repeat,\n linear-gradient(to top, white, white);\n // Autoprefixer seem to ignore this one, and also syntax is different\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n background-size: cover;\n mask-size: 100% 60%;\n border-top-left-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-top-right-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-bottom-left-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n border-bottom-right-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n background-color: var(--profileBg);\n z-index: -2;\n\n &.hide-bio {\n mask-size: 100% 40px;\n }\n }\n\n &-bio {\n text-align: center;\n display: block;\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n\n a {\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n }\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n }\n }\n\n &.-rounded-t {\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: 0;\n }\n\n &.-rounded {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: var(--panelRadius);\n }\n\n &.-popover {\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n --__roundnessTop: var(--tooltipRadius);\n --__roundnessBottom: var(--tooltipRadius);\n }\n\n &.-bordered {\n border-width: 1px;\n border-style: solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n}\n\n.user-info {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n padding: 0 26px;\n\n a {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n\n &:hover {\n color: var(--icon);\n }\n }\n\n .container {\n min-width: 0;\n padding: 16px 0 6px;\n display: flex;\n align-items: flex-start;\n max-height: 56px;\n\n > * {\n min-width: 0;\n }\n\n > a {\n vertical-align: middle;\n display: flex;\n }\n\n .Avatar {\n --_avatarShadowBox: var(--avatarShadow);\n --_avatarShadowFilter: var(--avatarShadowFilter);\n --_avatarShadowInset: var(--avatarShadowInset);\n\n width: 56px;\n height: 56px;\n object-fit: cover;\n }\n }\n\n &-avatar {\n position: relative;\n cursor: pointer;\n\n &.-overlay {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.3);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n opacity: 0;\n transition: opacity .2s ease;\n\n svg {\n color: #FFF;\n }\n }\n\n &:hover &.-overlay {\n opacity: 1;\n }\n }\n\n .external-link-button, .edit-profile-button {\n cursor: pointer;\n width: 2.5em;\n text-align: center;\n margin: -0.5em 0;\n padding: 0.5em 0;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .user-summary {\n display: block;\n margin-left: 0.6em;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1 1 0;\n // This is so that text doesn't get overlapped by avatar's shadow if it has\n // big one\n z-index: 1;\n line-height: 2em;\n\n --emoji-size: 1.7em;\n\n .top-line,\n .bottom-line {\n display: flex;\n }\n }\n\n .user-name {\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 1 1 auto;\n margin-right: 1em;\n font-size: 1.1em;\n }\n\n .bottom-line {\n font-weight: light;\n font-size: 1.1em;\n align-items: baseline;\n\n .lock-icon {\n margin-left: 0.5em;\n }\n\n .user-screen-name {\n min-width: 1px;\n flex: 0 1 auto;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .dailyAvg {\n min-width: 1px;\n flex: 0 0 auto;\n margin-left: 1em;\n font-size: 0.7em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .user-role {\n flex: none;\n color: $fallback--text;\n color: var(--alertNeutralText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--alertNeutral, $fallback--fg);\n }\n }\n\n .user-meta {\n margin-bottom: .15em;\n display: flex;\n align-items: baseline;\n line-height: 22px;\n flex-wrap: wrap;\n\n .following {\n flex: 1 0 auto;\n margin: 0;\n margin-bottom: .25em;\n text-align: left;\n }\n\n .highlighter {\n flex: 0 1 auto;\n display: flex;\n flex-wrap: wrap;\n margin-right: -.5em;\n align-self: start;\n\n .userHighlightCl {\n padding: 2px 10px;\n flex: 1 0 auto;\n }\n\n .userHighlightSel {\n padding-top: 0;\n padding-bottom: 0;\n flex: 1 0 auto;\n }\n\n .userHighlightText {\n width: 70px;\n flex: 1 0 auto;\n }\n\n .userHighlightCl,\n .userHighlightText,\n .userHighlightSel {\n vertical-align: top;\n margin-right: .5em;\n margin-bottom: .25em;\n }\n }\n }\n .user-interactions {\n position: relative;\n display: flex;\n flex-flow: row wrap;\n margin-right: -.75em;\n\n > * {\n margin: 0 .75em .6em 0;\n white-space: nowrap;\n min-width: 95px;\n }\n\n button {\n margin: 0;\n }\n }\n\n .user-note {\n margin: 0 .75em .6em 0;\n }\n}\n\n.sidebar .edit-profile-button {\n display: none;\n}\n\n.user-counts {\n display: flex;\n line-height:16px;\n padding: .5em 1.5em 0em 1.5em;\n text-align: center;\n justify-content: space-between;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n flex-wrap: wrap;\n}\n\n.user-count {\n flex: 1 0 auto;\n padding: .5em 0 .5em 0;\n margin: 0 .5em;\n\n h5 {\n font-size:1em;\n font-weight: bolder;\n margin: 0 0 0.25em;\n }\n a {\n text-decoration: none;\n }\n}\n","\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n","\n@import '../../_variables.scss';\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n","\n@import '../../_variables.scss';\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n --panel-heading-height-padding: 0em;\n }\n}\n","\n .features-panel li {\n line-height: 24px;\n }\n","\n .who-to-follow * {\n vertical-align: middle;\n }\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n .who-to-follow {\n padding: 0em 1em;\n margin: 0px;\n }\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0px;\n margin: 1em 0em;\n }\n .who-to-follow-more {\n padding: 0px;\n margin: 1em 0em;\n text-align: center;\n }\n","\n@import '../../_variables.scss';\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n","\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n overflow: hidden;\n}\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(.4,0,.22,1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #FFF;\n text-align: center;\n background-color: rgba(0,0,0,.3);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #FFF;\n text-align: center;\n background-color: rgba(0,0,0,.3);\n }\n\n &--prev {\n left: 0;\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgba(0, 0, 0, 0.5);\n}\n\n.side-drawer-darken-closed {\n background-color: rgba(0, 0, 0, 0);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition: 0.35s;\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a, button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3), 0px 4px 6px rgba(0, 0, 0, 0.3);\n z-index: 10;\n\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n","\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n\n}\n","\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n\n mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n /* override of popover internal stuff */\n .popover-trigger-button {\n width: auto;\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n }\n\n .popover-trigger-button {\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n","\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.ExtraButtons {\n /* override of popover internal stuff */\n .popover-trigger-button {\n width: auto;\n }\n\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n }\n\n .popover-trigger-button {\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n","\n@import '../../_variables.scss';\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n","\n@import '../../_variables.scss';\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n .emoji-reaction {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n\n .reaction-emoji {\n width: 1.25em;\n margin-right: 0.25em;\n }\n\n &:focus {\n outline: none;\n }\n\n &.not-clickable {\n cursor: default;\n &:hover {\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n }\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: calc(0.5em - 1px);\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n text-decoration: underline;\n }\n }\n\n}\n","@import '../../_variables.scss';\n\n.Status {\n min-width: 0;\n white-space: normal;\n word-wrap: break-word;\n word-break: break-word;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-focused {\n background-color: $fallback--lightBg;\n background-color: var(--selectedPost, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedPostText, $fallback--text);\n\n --lightText: var(--selectedPostLightText, $fallback--light);\n --faint: var(--selectedPostFaintText, $fallback--faint);\n --faintLink: var(--selectedPostFaintLink, $fallback--faint);\n --postLink: var(--selectedPostPostLink, $fallback--faint);\n --postFaintLink: var(--selectedPostFaintPostLink, $fallback--faint);\n --icon: var(--selectedPostIcon, $fallback--icon);\n }\n\n .gravestone {\n padding: var(--status-margin, $status-margin);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n display: flex;\n\n .deleted-text {\n margin: 0.5em 0;\n align-items: center;\n }\n }\n\n .status-container {\n display: flex;\n padding: var(--status-margin, $status-margin);\n\n > * {\n min-width: 0;\n }\n\n &.-repeat {\n padding-top: 0;\n }\n }\n\n .pin {\n padding: var(--status-margin, $status-margin) var(--status-margin, $status-margin) 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n ._misclick-prevention & {\n pointer-events: none;\n\n .attachments {\n pointer-events: initial;\n cursor: initial;\n }\n }\n\n .left-side {\n margin-right: var(--status-margin, $status-margin);\n }\n\n .right-side {\n flex: 1;\n min-width: 0;\n }\n\n .usercard {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .status-username {\n white-space: nowrap;\n overflow: hidden;\n max-width: 85%;\n font-weight: bold;\n flex-shrink: 1;\n margin-right: 0.4em;\n text-overflow: ellipsis;\n\n --_still_image-label-scale: 0.25;\n --emoji-size: 14px;\n }\n\n .status-favicon {\n height: 18px;\n width: 18px;\n margin-right: 0.4em;\n }\n\n .status-heading {\n margin-bottom: 0.5em;\n }\n\n .heading-name-row {\n display: flex;\n justify-content: space-between;\n line-height: 1.3;\n\n a {\n display: inline-block;\n word-break: break-all;\n }\n }\n\n .account-name {\n min-width: 1.6em;\n margin-right: 0.4em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1 1 0;\n }\n\n .heading-left {\n display: flex;\n min-width: 0;\n }\n\n .heading-right {\n display: flex;\n flex-shrink: 0;\n\n .button-unstyled {\n padding: 5px;\n margin: -5px;\n\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n\n .glued-label {\n display: inline-flex;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n & .heading-reply-row,\n & .heading-edited-row {\n position: relative;\n align-content: baseline;\n font-size: 0.85em;\n margin-top: 0.2em;\n line-height: 130%;\n max-width: 100%;\n align-items: stretch;\n }\n\n & .reply-to-popover,\n & .reply-to-no-popover,\n & .mentions {\n min-width: 0;\n margin-right: 0.4em;\n flex-shrink: 0;\n }\n\n .reply-glued-label {\n margin-right: 0.5em;\n }\n\n .reply-to-popover {\n .reply-to:hover::before {\n content: '';\n display: block;\n position: absolute;\n bottom: 0;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n\n .faint-link:hover {\n // override default\n text-decoration: none;\n }\n\n &.-strikethrough {\n .reply-to::after {\n content: '';\n display: block;\n position: absolute;\n top: 50%;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n }\n }\n\n & .mentions,\n & .reply-to {\n white-space: nowrap;\n position: relative;\n }\n\n & .mentions-text,\n & .reply-to-text {\n color: var(--faint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .mentions-line {\n display: inline;\n }\n\n .replies {\n margin-top: 0.25em;\n line-height: 1.3;\n font-size: 0.85em;\n display: flex;\n flex-wrap: wrap;\n\n & > * {\n margin-right: 0.4em;\n }\n }\n\n .reply-link {\n height: 17px;\n }\n\n .repeat-info {\n padding: 0.4em var(--status-margin, $status-margin);\n\n .repeat-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n }\n\n .repeater-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n margin-left: 28px;\n width: 20px;\n height: 20px;\n }\n\n .repeater-name {\n text-overflow: ellipsis;\n margin-right: 0;\n\n .emoji {\n width: 14px;\n height: 14px;\n vertical-align: middle;\n object-fit: contain;\n }\n }\n\n .status-fadein {\n animation-duration: 0.4s;\n animation-name: fadein;\n }\n\n @keyframes fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .status-actions {\n position: relative;\n width: 100%;\n display: flex;\n margin-top: var(--status-margin, $status-margin);\n\n > * {\n max-width: 4em;\n flex: 1;\n }\n }\n\n .muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: ' ';\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .reply-form {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n .reply-body {\n flex: 1;\n }\n\n .favs-repeated-users {\n margin-top: var(--status-margin, $status-margin);\n }\n\n .stats {\n width: 100%;\n display: flex;\n line-height: 1em;\n }\n\n .avatar-row {\n flex: 1;\n overflow: hidden;\n position: relative;\n display: flex;\n align-items: center;\n\n &::before {\n content: '';\n position: absolute;\n height: 100%;\n width: 1px;\n left: 0;\n background-color: var(--faint, $fallback--faint);\n }\n }\n\n .stat-count {\n margin-right: var(--status-margin, $status-margin);\n user-select: none;\n\n .stat-title {\n color: var(--faint, $fallback--faint);\n font-size: 0.85em;\n text-transform: uppercase;\n position: relative;\n }\n\n .stat-number {\n font-weight: bolder;\n font-size: 1.1em;\n line-height: 1em;\n }\n\n &:hover .stat-title {\n text-decoration: underline;\n }\n }\n\n @media all and (max-width: 800px) {\n .repeater-avatar {\n margin-left: 20px;\n }\n\n .post-avatar {\n width: 40px;\n height: 40px;\n\n // TODO define those other way somehow?\n // stylelint-disable rscss/class-format\n &.-compact {\n width: 32px;\n height: 32px;\n }\n }\n }\n}\n","@import '../../_variables.scss';\n\n.Report {\n .report-content {\n margin: 0.5em 0 1em;\n }\n\n .report-state {\n margin: 0.5em 0 1em;\n }\n\n .reported-status {\n border: 1px solid $fallback--faint;\n border-color: var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n color: $fallback--text;\n color: var(--text, $fallback--text);\n display: block;\n padding: 0.5em;\n margin: 0.5em 0;\n\n .status-content {\n pointer-events: none;\n }\n\n .reported-status-heading {\n display: flex;\n width: 100%;\n justify-content: space-between;\n margin-bottom: 0.2em;\n }\n\n .reported-status-name {\n font-weight: bold;\n }\n }\n\n .note {\n width: 100%;\n margin-bottom: 0.5em;\n }\n}\n","@import '../../_variables.scss';\n\n// TODO Copypaste from Status, should unify it somehow\n.Notification {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n word-wrap: break-word;\n word-break: break-word;\n --emoji-size: 14px;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: ' ';\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .type-icon {\n margin: 0 0.1em;\n }\n\n &.-type--repeat .type-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n &.-type--follow .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--follow-request .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--like .type-icon {\n color: orange;\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n &.-type--move .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n}\n","@import '../../_variables.scss';\n\n.Notifications {\n &:not(.minimal) {\n // a bit of a hack to allow scrolling below notifications\n padding-bottom: 15em;\n }\n\n .loadmore-error {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .notification {\n position: relative;\n\n .notification-overlay {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n &.unseen {\n .notification-overlay {\n background-image: linear-gradient(135deg, var(--badgeNotification, $fallback--cRed) 4px, transparent 10px)\n }\n }\n }\n}\n\n.notification {\n box-sizing: border-box;\n\n &:hover .animated.Avatar {\n canvas {\n display: none;\n }\n img {\n visibility: visible;\n }\n }\n\n &:last-child .Notification {\n border-bottom: none;\n }\n\n .non-mention {\n display: flex;\n flex: 1;\n flex-wrap: nowrap;\n padding: 0.6em;\n min-width: 0;\n\n .avatar-container {\n width: 32px;\n height: 32px;\n }\n\n .faint {\n --link: var(--faintLink);\n --text: var(--faint);\n }\n }\n\n .follow-request-accept {\n &:hover {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .follow-request-reject {\n &:hover {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n .follow-text, .move-text {\n padding: 0.5em 0;\n overflow-wrap: break-word;\n display: flex;\n justify-content: space-between;\n\n .follow-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n /* TODO cleanup this */\n .Status {\n flex: 1;\n }\n\n time {\n white-space: nowrap;\n }\n\n .notification-right {\n flex: 1;\n padding-left: 0.8em;\n min-width: 0;\n\n .timeago {\n min-width: 3em;\n text-align: right;\n }\n\n .timeago-link {\n margin-right: 0.2em;\n }\n\n .expand-icon {\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n }\n\n .emoji-reaction-emoji {\n font-size: 1.3em;\n }\n\n .notification-details {\n min-width: 0;\n word-wrap: break-word;\n line-height: var(--post-line-height);\n position: relative;\n overflow: hidden;\n width: 100%;\n flex: 1 1 0;\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n\n .name-and-action {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .username {\n font-weight: bolder;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n .status-content {\n margin: 0;\n max-height: 300px;\n }\n\n h1 {\n word-break: break-all;\n margin: 0 0 0.3em;\n padding: 0;\n font-size: 1em;\n line-height: 1.5;\n\n small {\n font-weight: lighter;\n }\n }\n\n p {\n margin: 0;\n margin-top: 0;\n margin-bottom: 0.3em;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 .3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgba(0,0,0,.6);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0px 0px 4px rgba(0,0,0,.6);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n}\n\n","\n@import '../../_variables.scss';\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n","@import '../../_variables.scss';\n\n.DesktopNav {\n width: 100%;\n z-index: var(--ZI_navbar);\n\n input {\n color: var(--inputTopbarText, var(--inputText));\n }\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n\n .inner-nav {\n display: grid;\n grid-template-rows: var(--navbar-height);\n grid-template-columns: 2fr auto 2fr;\n grid-template-areas: \"sitename logo actions\";\n box-sizing: border-box;\n padding: 0 1.2em;\n margin: auto;\n max-width: 980px;\n }\n\n &.-column-stretch .inner-nav {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n max-width: calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--columnGap)\n );\n }\n\n &.-column-stretch.-wide .inner-nav {\n max-width: calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--notifsColumnWidth, var(--miniColumn)) +\n var(--columnGap)\n );\n }\n\n &.-logoLeft .inner-nav {\n grid-template-columns: auto 2fr 2fr;\n grid-template-areas: \"logo sitename actions\";\n }\n\n .button-default {\n &, svg {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedTopBar, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedTopBarText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledTopBarText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledTopBarText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggledTopBar, $fallback--fg)\n }\n }\n\n .logo {\n grid-area: logo;\n position: relative;\n transition: opacity;\n transition-timing-function: ease-out;\n transition-duration: 100ms;\n\n @media all and (min-width: 800px) {\n opacity: 1 !important;\n }\n\n .mask {\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n background-color: $fallback--fg;\n background-color: var(--topBarText, $fallback--fg);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n img {\n display: inline-block;\n height: var(--navbar-height);\n }\n }\n\n .nav-icon {\n margin-left: 0.2em;\n width: 2em;\n height: 100%;\n text-align: center;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .sitename {\n grid-area: sitename;\n }\n\n .actions {\n grid-area: actions;\n }\n\n .item {\n flex: 1;\n line-height: var(--navbar-height);\n height: var(--navbar-height);\n overflow: hidden;\n display: flex;\n flex-wrap: wrap;\n\n &.right {\n justify-content: flex-end;\n text-align: right;\n }\n }\n\n .spacer {\n width: 1em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.list {\n &-item:not(:last-child) {\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n &-empty-content {\n text-align: center;\n padding: 10px;\n }\n}\n","\n@import '../../_variables.scss';\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n","\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n","\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n@import '../../_variables.scss';\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_navbar_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n","// stylelint-disable rscss/class-format\n@import './_variables.scss';\n\n:root {\n --navbar-height: 3.5rem;\n --post-line-height: 1.4;\n // Z-Index stuff\n --ZI_media_modal: 9000;\n --ZI_modals_popovers: 8500;\n --ZI_modals: 8000;\n --ZI_navbar_popovers: 7500;\n --ZI_navbar: 7000;\n --ZI_popovers: 6000;\n}\n\nhtml {\n font-size: 14px;\n // overflow-x: clip causes my browser's tab to crash with SIGILL lul\n}\n\nbody {\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n margin: 0;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n overscroll-behavior-y: none;\n overflow-x: clip;\n overflow-y: scroll;\n\n &.hidden {\n display: none;\n }\n}\n\n// ## Custom scrollbars\n// Only show custom scrollbars on devices which\n// have a cursor/pointer to operate them\n@media (any-pointer: fine) {\n * {\n scrollbar-color: var(--btn) transparent;\n\n &::-webkit-scrollbar {\n background: transparent;\n }\n\n &::-webkit-scrollbar-button,\n &::-webkit-scrollbar-thumb {\n background-color: var(--btn);\n box-shadow: var(--buttonShadow);\n border-radius: var(--btnRadius);\n }\n\n // horizontal/vertical/increment/decrement are webkit-specific stuff\n // that indicates whether we're affecting vertical scrollbar, increase button etc\n // stylelint-disable selector-pseudo-class-no-unknown\n &::-webkit-scrollbar-button {\n --___bgPadding: 2px;\n\n color: var(--btnText);\n background-repeat: no-repeat, no-repeat;\n\n &:horizontal {\n background-size: 50% calc(50% - var(--___bgPadding)), 50% calc(50% - var(--___bgPadding));\n\n &:increment {\n background-image:\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%);\n background-position: top var(--___bgPadding) left 50%, right 50% bottom var(--___bgPadding);\n }\n\n &:decrement {\n background-image:\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%);\n background-position: bottom var(--___bgPadding) right 50%, left 50% top var(--___bgPadding);\n }\n }\n\n &:vertical {\n background-size: calc(50% - var(--___bgPadding)) 50%, calc(50% - var(--___bgPadding)) 50%;\n\n &:increment {\n background-image:\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%);\n background-position: right var(--___bgPadding) top 50%, left var(--___bgPadding) top 50%;\n }\n\n &:decrement {\n background-image:\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%);\n background-position: left var(--___bgPadding) top 50%, right var(--___bgPadding) top 50%;\n }\n }\n }\n // stylelint-enable selector-pseudo-class-no-unknown\n }\n // Body should have background to scrollbar otherwise it will use white (body color?)\n html {\n scrollbar-color: var(--selectedMenu) var(--wallpaper);\n background: var(--wallpaper);\n }\n}\n\na {\n text-decoration: none;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n}\n\nh4 {\n margin: 0;\n}\n\n.iconLetter {\n display: inline-block;\n text-align: center;\n font-weight: 1000;\n}\n\ni[class*=icon-],\n.svg-inline--fa,\n.iconLetter {\n color: $fallback--icon;\n color: var(--icon, $fallback--icon);\n}\n\n.button-unstyled:hover,\na:hover {\n > i[class*=icon-],\n > .svg-inline--fa,\n > .iconLetter {\n color: var(--text);\n }\n}\n\nnav {\n z-index: var(--ZI_navbar);\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--topBarShadow);\n box-sizing: border-box;\n height: var(--navbar-height);\n position: fixed;\n}\n\n#sidebar {\n grid-area: sidebar;\n}\n\n#modal {\n position: absolute;\n z-index: var(--ZI_modals);\n}\n\n.column.-scrollable {\n top: var(--navbar-height);\n position: sticky;\n}\n\n#main-scroller {\n grid-area: content;\n position: relative;\n}\n\n#notifs-column {\n grid-area: notifs;\n}\n\n.app-bg-wrapper {\n position: fixed;\n height: 100%;\n top: var(--navbar-height);\n z-index: -1000;\n left: 0;\n right: -20px;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-position: 50%;\n}\n\n.underlay {\n grid-column-start: 1;\n grid-column-end: span 3;\n grid-row-start: 1;\n grid-row-end: 1;\n pointer-events: none;\n background-color: rgba(0, 0, 0, 0.15);\n background-color: var(--underlay, rgba(0, 0, 0, 0.15));\n z-index: -1000;\n}\n\n.app-layout {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n --status-margin: 0.75em;\n --effectiveSidebarColumnWidth: minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)));\n --effectiveNotifsColumnWidth: minmax(var(--miniColumn), var(--notifsColumnWidth, var(--miniColumn)));\n --effectiveContentColumnWidth: minmax(var(--miniColumn), var(--contentColumnWidth, var(--maxiColumn)));\n\n position: relative;\n display: grid;\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth);\n grid-template-areas: \"sidebar content\";\n grid-template-rows: 1fr;\n box-sizing: border-box;\n margin: 0 auto;\n align-content: flex-start;\n flex-wrap: wrap;\n justify-content: center;\n min-height: 100vh;\n overflow-x: clip;\n\n .column {\n --___columnMargin: var(--columnGap);\n\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n grid-row-start: 1;\n grid-row-end: 1;\n margin: 0 calc(var(--___columnMargin) / 2);\n padding: calc(var(--___columnMargin)) 0;\n row-gap: var(--___columnMargin);\n align-content: start;\n\n &:not(.-scrollable) {\n margin-top: var(--navbar-height);\n }\n\n &:hover {\n z-index: 2;\n }\n\n &.-full-height {\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n\n &.-scrollable {\n --___paddingIncrease: calc(var(--columnGap) / 2);\n\n position: sticky;\n top: var(--navbar-height);\n max-height: calc(100vh - var(--navbar-height));\n overflow-y: auto;\n overflow-x: hidden;\n margin-left: calc(var(--___paddingIncrease) * -1);\n padding-left: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n // On browsers that don't support hiding scrollbars we enforce \"show scrolbars\" mode\n // might implement old style of hiding scrollbars later if there's demand\n @supports (scrollbar-width: none) or (-webkit-text-fill-color: initial) {\n &:not(.-show-scrollbar) {\n scrollbar-width: none;\n margin-right: calc(var(--___paddingIncrease) * -1);\n padding-right: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n &::-webkit-scrollbar {\n display: block;\n width: 0;\n }\n }\n }\n\n .panel-heading.-sticky {\n top: calc(var(--columnGap) / -1);\n }\n }\n }\n\n &.-has-new-post-button {\n .column {\n padding-bottom: 10rem;\n }\n }\n\n &.-no-sticky-headers {\n .column {\n .panel-heading.-sticky {\n position: relative;\n top: 0;\n }\n }\n }\n\n .column-inner {\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n row-gap: 1em;\n align-content: start;\n }\n\n &.-reverse:not(.-wide):not(.-mobile) {\n grid-template-columns:\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"content sidebar\";\n }\n\n &.-wide {\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveNotifsColumnWidth);\n grid-template-areas: \"sidebar content notifs\";\n\n &.-reverse {\n grid-template-columns:\n var(--effectiveNotifsColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"notifs content sidebar\";\n }\n }\n\n &.-mobile {\n grid-template-columns: 100vw;\n grid-template-areas: \"content\";\n padding: 0;\n\n .column {\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n margin-top: var(--navbar-height);\n margin-bottom: 0;\n }\n\n .panel-heading,\n .panel-heading::after,\n .panel-heading::before,\n .panel,\n .panel::after {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n #sidebar,\n #notifs-column {\n display: none;\n }\n }\n\n &.-normal {\n #notifs-column {\n display: none;\n }\n }\n}\n\n.text-center {\n text-align: center;\n}\n\n.button-default {\n user-select: none;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n border: none;\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n cursor: pointer;\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n font-size: 1em;\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n\n &.-sublime {\n background: transparent;\n }\n\n i[class*=icon-],\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &::-moz-focus-inner {\n border: none;\n }\n\n &:hover {\n box-shadow: 0 0 4px rgba(255, 255, 255, 0.3);\n box-shadow: var(--buttonHoverShadow);\n }\n\n &:active {\n box-shadow: 0 0 4px 0 rgba(255, 255, 255, 0.3), 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset;\n box-shadow: var(--buttonPressedShadow);\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnPressed, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnDisabled, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggled, $fallback--fg);\n box-shadow: 0 0 4px 0 rgba(255, 255, 255, 0.3), 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset;\n box-shadow: var(--buttonPressedShadow);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n\n &.danger {\n // TODO: add better color variable\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n }\n}\n\n.button-unstyled {\n background: none;\n border: none;\n outline: none;\n display: inline;\n text-align: initial;\n font-size: 100%;\n font-family: inherit;\n padding: 0;\n line-height: unset;\n cursor: pointer;\n box-sizing: content-box;\n color: inherit;\n\n &.-link {\n color: $fallback--link;\n color: var(--link, $fallback--link);\n }\n\n &.-fullwidth {\n width: 100%;\n }\n\n &.-hover-highlight {\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n\ninput,\ntextarea,\n.input {\n &.unstyled {\n border-radius: 0;\n background: none;\n box-shadow: none;\n height: unset;\n }\n\n --_padding: 0.5em;\n\n border: none;\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2) inset, 0 -1px 0 0 rgba(255, 255, 255, 0.2) inset, 0 0 2px 0 rgba(0, 0, 0, 1) inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n margin: 0;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n line-height: 2;\n hyphens: none;\n padding: 0 var(--_padding);\n\n &:disabled,\n &[disabled=disabled],\n &.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &[type=range] {\n background: none;\n border: none;\n margin: 0;\n box-shadow: none;\n flex: 1;\n }\n\n &[type=radio] {\n display: none;\n\n &:checked + label::before {\n box-shadow: 0 0 2px black inset, 0 0 0 4px $fallback--fg inset;\n box-shadow: var(--inputShadow), 0 0 0 4px var(--fg, $fallback--fg) inset;\n background-color: var(--accent, $fallback--link);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-block;\n content: '';\n transition: box-shadow 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 100%; // Radio buttons should always be circle\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &[type=checkbox] {\n display: none;\n\n &:checked + label::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-block;\n content: '✓';\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: $fallback--checkboxRadius;\n border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &.resize-height {\n resize: vertical;\n }\n}\n\n// Textareas should have stock line-height + vertical padding instead of huge line-height\ntextarea {\n padding: var(--_padding);\n line-height: var(--post-line-height);\n}\n\noption {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n}\n\n.hide-number-spinner {\n -moz-appearance: textfield;\n\n &[type=number]::-webkit-inner-spin-button,\n &[type=number]::-webkit-outer-spin-button {\n opacity: 0;\n display: none;\n }\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-group {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n\n button {\n position: relative;\n flex: 1 1 auto;\n\n &:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n\n@import './panel.scss';\n\n.fa {\n color: grey;\n}\n\n.mobile-shown {\n display: none;\n}\n\n.badge {\n box-sizing: border-box;\n display: inline-block;\n border-radius: 99px;\n max-width: 10em;\n min-width: 1.7em;\n height: 1.3em;\n padding: 0.15em 0.15em;\n vertical-align: middle;\n font-weight: normal;\n font-style: normal;\n font-size: 0.9em;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.badge-notification {\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n color: white;\n color: var(--badgeNotificationText, white);\n }\n}\n\n.alert {\n margin: 0 0.35em;\n padding: 0 0.25em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n &.error {\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n color: $fallback--text;\n color: var(--alertErrorText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n }\n }\n\n &.warning {\n background-color: $fallback--alertWarning;\n background-color: var(--alertWarning, $fallback--alertWarning);\n color: $fallback--text;\n color: var(--alertWarningText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertWarningPanelText, $fallback--text);\n }\n }\n\n &.success {\n background-color: var(--alertSuccess, $fallback--alertWarning);\n color: var(--alertSuccessText, $fallback--text);\n\n .panel-heading & {\n color: var(--alertSuccessPanelText, $fallback--text);\n }\n }\n}\n\n.faint {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n}\n\n.faint-link {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.visibility-notice {\n padding: 0.5em;\n border: 1px solid $fallback--faint;\n border: 1px solid var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n}\n\n.notice-dismissible {\n padding-right: 4rem;\n position: relative;\n\n .dismiss {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.5em;\n color: inherit;\n }\n}\n\n.fa-scale-110 {\n &.svg-inline--fa,\n &.iconLetter {\n font-size: 1.1em;\n }\n}\n\n.fa-old-padding {\n &.iconLetter,\n &.svg-inline--fa, &-layer {\n padding: 0 0.3em;\n }\n}\n\n.veryfaint {\n opacity: 0.25;\n}\n\n.login-hint {\n text-align: center;\n\n @media all and (min-width: 801px) {\n display: none;\n }\n\n a {\n display: inline-block;\n padding: 1em 0;\n width: 100%;\n }\n}\n\n.btn.button-default {\n min-height: 2em;\n}\n\n.new-status-notification {\n position: relative;\n font-size: 1.1em;\n z-index: 1;\n flex: 1;\n}\n\n@media all and (max-width: 800px) {\n .mobile-hidden {\n display: none;\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(359deg);\n }\n}\n\n@keyframes shakeError {\n 0% {\n transform: translateX(0);\n }\n\n 15% {\n transform: translateX(0.375rem);\n }\n\n 30% {\n transform: translateX(-0.375rem);\n }\n\n 45% {\n transform: translateX(0.375rem);\n }\n\n 60% {\n transform: translateX(-0.375rem);\n }\n\n 75% {\n transform: translateX(0.375rem);\n }\n\n 90% {\n transform: translateX(-0.375rem);\n }\n\n 100% {\n transform: translateX(0);\n }\n}\n\n// Vue transitions\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.3s;\n}\n\n.fade-enter-from,\n.fade-leave-active {\n opacity: 0;\n}\n",".panel {\n position: relative;\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after,\n & {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n}\n\n.panel-body {\n padding: var(--panel-body-padding, 0);\n\n &:empty::before {\n content: \"¯\\\\_(ツ)_/¯\"; // Could use words but it'd require translations\n display: block;\n margin: 1em;\n text-align: center;\n }\n\n > p {\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n }\n}\n\n.panel-heading,\n.panel-footer {\n --panel-heading-height-padding: 0.6em;\n --__panel-heading-gap: 0.5em;\n --__panel-heading-height: 3.2em;\n --__panel-heading-height-inner: calc(var(--__panel-heading-height) - 2 * var(--panel-heading-height-padding, 0));\n\n position: relative;\n box-sizing: border-box;\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: minmax(50%, 1fr);\n grid-auto-columns: auto;\n grid-column-gap: var(--__panel-heading-gap);\n flex: none;\n background-size: cover;\n padding: var(--panel-heading-height-padding);\n height: var(--__panel-heading-height);\n line-height: var(--__panel-heading-height-inner);\n z-index: 4;\n\n &.-flexible-height {\n --__panel-heading-height: auto;\n\n &::after,\n &::before {\n display: none;\n }\n }\n\n &.-stub {\n &,\n &::after {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n &.-sticky {\n position: sticky;\n top: var(--navbar-height);\n }\n\n &::after,\n &::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n pointer-events: none;\n }\n\n .title {\n font-size: 1.3em;\n }\n\n .alert {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n }\n\n &:not(.-flexible-height) {\n > .button-default,\n > .alert {\n height: var(--__panel-heading-height-inner);\n min-height: 0;\n box-sizing: border-box;\n margin: 0;\n min-width: 1px;\n padding-top: 0;\n padding-bottom: 0;\n align-self: stretch;\n }\n }\n}\n\n// TODO Should refactor panels into separate component and utilize slots\n\n.panel-heading {\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n border-width: 0 0 1px 0;\n align-items: start;\n // panel theme\n color: var(--panelText);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after {\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n z-index: -2;\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n box-shadow: var(--panelHeaderShadow);\n }\n\n a,\n .-link {\n color: $fallback--link;\n color: var(--panelLink, $fallback--link);\n }\n\n .button-unstyled:hover,\n a:hover {\n i[class*=icon-],\n .svg-inline--fa,\n .iconLetter {\n color: var(--panelText);\n }\n }\n\n .faint {\n background-color: transparent;\n color: $fallback--faint;\n color: var(--panelFaint, $fallback--faint);\n }\n\n .faint-link {\n color: $fallback--faint;\n color: var(--faintLink, $fallback--faint);\n }\n\n &:not(.-flexible-height) {\n > .button-default {\n flex-shrink: 0;\n\n &,\n i[class*=icon-] {\n color: $fallback--text;\n color: var(--btnPanelText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedPanel, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedPanelText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledPanelText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledPanelText, $fallback--text);\n }\n }\n }\n\n .rightside-button {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n height: var(--__panel-heading-height);\n margin: calc(-1 * var(--panel-heading-height-padding)) 0;\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n > button {\n box-sizing: border-box;\n padding: calc(1 * var(--panel-heading-height-padding)) 0;\n height: 100%;\n width: 100%;\n text-align: center;\n\n svg {\n font-size: 1.2em;\n }\n }\n }\n\n .rightside-icon {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n svg {\n font-size: 1.2em;\n }\n }\n}\n\n.panel-footer {\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n align-items: center;\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n}\n","\n@import '../../_variables.scss';\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n","\n@import '../../_variables.scss';\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n &, &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &:last-child .conversation-status,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left-width: 4px;\n border-left-style: solid;\n border-left-color: $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n","\n@import '../../_variables.scss';\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n\n}\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text); --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n}\n\n","@import '../../_variables.scss';\n\n.Timeline {\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: var(--badgeNeutral);\n }\n\n .alert-badge {\n font-size: 0.75em;\n line-height: 1;\n text-align: right;\n border-radius: var(--tooltipRadius);\n position: absolute;\n left: calc(50% - 0.5em);\n top: calc(50% - 0.4em);\n padding: 0.2em;\n margin-left: 0.7em;\n margin-top: -1em;\n background-color: var(--badgeNeutral);\n color: var(--badgeNeutralText);\n }\n\n .loadmore-button {\n position: relative;\n }\n\n &.-blocked {\n cursor: progress;\n }\n\n .conversation-heading {\n top: calc(var(--__panel-heading-height) * var(--currentPanelStack, 2));\n z-index: 2;\n }\n\n &.-nonpanel {\n .timeline-heading {\n text-align: center;\n line-height: 2.75em;\n padding: 0 0.5em;\n }\n\n .timeline-heading {\n .button-default, .alert {\n line-height: 2em;\n width: 100%;\n }\n }\n }\n}\n","@import '../../_variables.scss';\n\n.tab-switcher {\n display: flex;\n\n .tab-icon {\n margin: 0.2em auto;\n display: block;\n }\n\n &.top-tabs {\n flex-direction: column;\n\n > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n flex-direction: row;\n flex: 0 0 auto;\n\n &::after, &::before {\n content: '';\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n .tab-wrapper {\n height: 2em;\n\n &:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n }\n .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: 6px - 99px;\n }\n }\n .contents.scrollable-tabs {\n flex-basis: 0;\n }\n }\n\n &.side-tabs {\n flex-direction: row;\n\n @media all and (max-width: 800px) {\n overflow-x: auto;\n }\n\n > .contents {\n flex: 1 1 auto;\n }\n\n > .tabs {\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n flex-direction: column;\n\n &::after, &::before {\n flex-shrink: 0;\n flex-basis: .5em;\n content: '';\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::after {\n flex-grow: 1;\n }\n\n &::before {\n flex-grow: 0;\n }\n\n .tab-wrapper {\n min-width: 10em;\n display: flex;\n flex-direction: column;\n\n @media all and (max-width: 800px) {\n min-width: 4em;\n }\n\n &:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::before {\n flex: 0 0 6px;\n content: '';\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &:last-child .tab {\n margin-bottom: 0;\n }\n }\n\n .tab {\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n\n @media all and (max-width: 800px) {\n padding-left: .25em;\n padding-right: calc(.25em + 200px);\n margin-right: calc(.25em - 200px);\n margin-left: .25em;\n .text {\n display: none\n }\n }\n }\n }\n }\n\n .contents {\n flex: 1 0 auto;\n min-height: 0px;\n\n .hidden {\n display: none;\n }\n .full-height:not(.hidden) {\n height: 100%;\n display: flex;\n flex-direction: column;\n > *:not(.mobile-label) {\n flex: 1;\n }\n }\n\n &.scrollable-tabs {\n overflow-y: auto;\n }\n }\n\n .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n\n &:not(.active) {\n z-index: 4;\n\n &:hover {\n z-index: 6;\n }\n }\n\n &.active {\n background: transparent;\n z-index: 5;\n color: $fallback--text;\n color: var(--tabActiveText, $fallback--text);\n }\n\n img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n }\n }\n\n .tabs {\n display: flex;\n position: relative;\n box-sizing: border-box;\n\n &::after, &::before {\n display: block;\n flex: 1 1 auto;\n }\n }\n\n .tab-wrapper {\n position: relative;\n display: flex;\n flex: 0 0 auto;\n\n &:not(.active) {\n &::after {\n content: '';\n position: absolute;\n z-index: 7;\n }\n }\n }\n\n .mobile-label {\n padding-left: .3em;\n padding-bottom: .25em;\n margin-top: .5em;\n margin-left: .2em;\n margin-bottom: .25em;\n border-bottom: 1px solid var(--border, $fallback--border);\n\n @media all and (min-width: 800px) {\n display: none;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n",".chat-list-item {\n display: flex;\n flex-direction: row;\n padding: 0.75em;\n height: 5em;\n overflow: hidden;\n box-sizing: border-box;\n cursor: pointer;\n\n :focus {\n outline: none;\n }\n\n &:hover {\n background-color: var(--selectedPost, $fallback--lightBg);\n box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.1);\n }\n\n .chat-list-item-left {\n margin-right: 1em;\n }\n\n .chat-list-item-center {\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n word-wrap: break-word;\n }\n\n .heading {\n width: 100%;\n display: inline-flex;\n justify-content: space-between;\n line-height: 1em;\n }\n\n .heading-right {\n white-space: nowrap;\n }\n\n .name-and-account-name {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n flex-shrink: 1;\n line-height: var(--post-line-height);\n }\n\n .chat-preview {\n display: inline-flex;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: 0.35em 0;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n width: 100%;\n }\n\n a {\n color: var(--faintLink, $fallback--link);\n text-decoration: none;\n pointer-events: none;\n }\n\n &:hover .animated.avatar {\n canvas {\n display: none;\n }\n img {\n visibility: visible;\n }\n }\n\n .Avatar {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .chat-preview-body {\n --emoji-size: 1.4em;\n }\n\n .time-wrapper {\n line-height: var(--post-line-height);\n }\n\n .chat-preview-body {\n padding-right: 1em;\n }\n}\n","\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n",".chat-new {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .member-list {\n padding-bottom: 0.7rem;\n }\n\n .basic-user-card:hover {\n cursor: pointer;\n background-color: var(--selectedPost, $fallback--lightBg);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n}\n","\n@import '../../_variables.scss';\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n","@import '../../_variables.scss';\n\n.chat-message-wrapper {\n\n &.hovered-message-chain {\n .animated.Avatar {\n canvas {\n display: none;\n }\n img {\n visibility: visible;\n }\n }\n }\n\n .chat-message-menu {\n transition: opacity 0.1s;\n opacity: 0;\n position: absolute;\n top: -0.8em;\n\n button {\n padding-top: 0.2em;\n padding-bottom: 0.2em;\n }\n }\n\n .menu-icon {\n cursor: pointer;\n\n &:hover, .extra-button-popover.open & {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover {\n width: 12em;\n }\n\n .chat-message {\n display: flex;\n padding-bottom: 0.5em;\n\n .status-body:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n }\n\n .avatar-wrapper {\n margin-right: 0.72em;\n width: 32px;\n }\n\n .link-preview, .attachments {\n margin-bottom: 1em;\n }\n\n .chat-message-inner {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 80%;\n min-width: 10em;\n width: 100%;\n\n &.with-media {\n width: 100%;\n\n .status {\n width: 100%;\n }\n }\n }\n\n .status {\n border-radius: $fallback--chatMessageRadius;\n border-radius: var(--chatMessageRadius, $fallback--chatMessageRadius);\n display: flex;\n padding: 0.75em;\n }\n\n .created-at {\n position: relative;\n float: right;\n font-size: 0.8em;\n margin: -1em 0 -0.5em 0;\n font-style: italic;\n opacity: 0.8;\n }\n\n .without-attachment {\n .message-content {\n // TODO figure out how to do it properly\n .RichContent::after {\n margin-right: 5.4em;\n content: \" \";\n display: inline-block;\n }\n }\n }\n\n .pending {\n .status-content.media-body, .created-at {\n color: var(--faint);\n }\n }\n\n .error {\n .status-content.media-body, .created-at {\n color: $fallback--cRed;\n color: var(--badgeNotification, $fallback--cRed);\n }\n }\n\n .incoming {\n a {\n color: var(--chatMessageIncomingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageIncomingText, $fallback--text);\n background-color: var(--chatMessageIncomingBg, $fallback--bg);\n border: 1px solid var(--chatMessageIncomingBorder, --border);\n }\n\n .created-at {\n a {\n color: var(--chatMessageIncomingText, $fallback--text);\n }\n }\n\n .chat-message-menu {\n left: 0.4rem;\n }\n }\n\n .outgoing {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-content: end;\n justify-content: flex-end;\n\n a {\n color: var(--chatMessageOutgoingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageOutgoingText, $fallback--text);\n background-color: var(--chatMessageOutgoingBg, $fallback--lightBg);\n border: 1px solid var(--chatMessageOutgoingBorder, --lightBg);\n }\n\n .chat-message-inner {\n align-items: flex-end;\n }\n\n .chat-message-menu {\n right: 0.4rem;\n }\n }\n\n .visible {\n opacity: 1;\n }\n\n}\n\n.chat-message-date-separator {\n text-align: center;\n margin: 1.4em 0;\n font-size: 0.9em;\n user-select: none;\n color: $fallback--text;\n color: var(--faintedText, $fallback--text);\n}\n",".chat-view {\n display: flex;\n height: 100%;\n\n .chat-view-inner {\n height: auto;\n width: 100%;\n overflow: visible;\n display: flex;\n }\n\n .chat-view-body {\n box-sizing: border-box;\n background-color: var(--chatBg, $fallback--bg);\n display: flex;\n flex-direction: column;\n width: 100%;\n overflow: visible;\n min-height: calc(100vh - var(--navbar-height));\n margin: 0 0 0 0;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n\n &::after {\n border-radius: 0;\n }\n }\n\n .message-list {\n padding: 0 0.8em;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: end;\n }\n\n .footer {\n position: sticky;\n bottom: 0;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n z-index: 1;\n }\n\n .chat-view-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .jump-to-bottom-button {\n width: 2.5em;\n height: 2.5em;\n border-radius: 100%;\n position: absolute;\n right: 1.3em;\n top: -3.2em;\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.3);\n z-index: 10;\n transition: 0.35s all;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n opacity: 0;\n visibility: hidden;\n cursor: pointer;\n\n &.visible {\n opacity: 1;\n visibility: visible;\n }\n\n i {\n font-size: 1em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .unread-message-count {\n font-size: 0.8em;\n left: 50%;\n margin-top: -1rem;\n padding: 0.1em;\n border-radius: 50px;\n position: absolute;\n }\n\n .chat-loading-error {\n width: 100%;\n display: flex;\n align-items: flex-end;\n height: 100%;\n\n .error {\n width: 100%;\n }\n }\n }\n}\n","\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n flex-wrap: wrap;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.with-load-more {\n &-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: $fallback--border;\n border-top-color: var(--border, $fallback--border);\n\n .error {\n font-size: 1rem;\n }\n\n a {\n cursor: pointer;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name, .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n }\n\n","\n@import '../../_variables.scss';\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: .6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height:16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n","\n@import '../../_variables.scss';\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n","\n.follow-request-card-content-container {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n","\n.tos-content {\n margin: 1em\n}\n","\n\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n",".mrf-section {\n margin: 1em;\n\n table {\n width:100%;\n text-align: left;\n padding-left:10px;\n padding-bottom:20px;\n\n th, td {\n width: 180px;\n max-width: 360px;\n overflow: hidden;\n vertical-align: text-top;\n }\n\n th+th, td+td {\n width: auto;\n }\n }\n}\n","\n@import '../../_variables.scss';\n\n.list-card {\n display: flex;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n\n.list-name {\n flex-grow: 1;\n}\n","\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n","\n@import 'src/_variables.scss';\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n","\n@import '../../_variables.scss';\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n","\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n","\n@import \"../../variables\";\n\n.announcement {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading, .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading, .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/1264.1e16af28a0b44d4d17d0.js b/priv/static/static/js/1264.1e16af28a0b44d4d17d0.js
deleted file mode 100644
index 009294aea..000000000
--- a/priv/static/static/js/1264.1e16af28a0b44d4d17d0.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[1264],{71264:(e,t,n)=>{n.r(t),n.d(t,{default:()=>wi});var l=n(66252),a=["label"],o=["label"],s=["label"],r=["label"],i=["label"],u=["label"],c=["label"],d=["label"],p=["label"],m=n(79354),h=n(3577),f=["label"],g={class:"setting-item"},b={class:"setting-item"},w={class:"setting-item"},_={class:"setting-item"},k={class:"setting-item"},v={class:"setting-item"},y={class:"setting-item"},$=(0,l._)("th",null,null,-1),C={class:"actions"},V=["href"],T={key:1},x={key:0,class:"alert error"},L=["title"],U={key:1},O={key:2},W=n(4942),S={class:"importer"},z={key:2},P={key:3},D=n(9382),I=n(84131);D.vI.add(I.IJ7,I.NBC);const j={props:{submitHandler:{type:Function,required:!0},submitButtonLabel:{type:String},successMessage:{type:String},errorMessage:{type:String}},data:function(){return{file:null,error:!1,success:!1,submitting:!1}},methods:{change:function(){this.file=this.$refs.input.files[0]},submit:function(){var e=this;this.dismiss(),this.submitting=!0,this.submitHandler(this.file).then((function(){e.success=!0})).catch((function(){e.error=!0})).finally((function(){e.submitting=!1}))},dismiss:function(){this.success=!1,this.error=!1}}};var B=n(83744);const A=(0,B.Z)(j,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",S,[(0,l._)("form",null,[(0,l._)("input",{ref:"input",type:"file",onChange:t[0]||(t[0]=function(){return e.change&&e.change.apply(e,arguments)})},null,544)]),e.submitting?((0,l.wg)(),(0,l.j4)(r,{key:0,class:"importer-uploading",spin:"",icon:"circle-notch"})):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.submit&&e.submit.apply(e,arguments)})},(0,h.zw)(e.submitButtonLabel||e.$t("importer.submit")),1)),e.success?((0,l.wg)(),(0,l.iD)("div",z,[(0,l._)("button",{class:"button-unstyled",onClick:t[2]||(t[2]=function(){return e.dismiss&&e.dismiss.apply(e,arguments)})},[(0,l.Wm)(r,{icon:"times"})]),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l._)("span",null,(0,h.zw)(e.successMessage||e.$t("importer.success")),1)])):e.error?((0,l.wg)(),(0,l.iD)("div",P,[(0,l._)("button",{class:"button-unstyled",onClick:t[3]||(t[3]=function(){return e.dismiss&&e.dismiss.apply(e,arguments)})},[(0,l.Wm)(r,{icon:"times"})]),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l._)("span",null,(0,h.zw)(e.errorMessage||e.$t("importer.error")),1)])):(0,l.kq)("",!0)])}]]);var E={class:"exporter"},q={key:0};D.vI.add(I.IJ7);const F={props:{getContent:{type:Function,required:!0},filename:{type:String,default:"export.csv"},exportButtonLabel:{type:String},processingMessage:{type:String}},data:function(){return{processing:!1}},methods:{process:function(){var e=this;this.processing=!0,this.getContent().then((function(t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download",e.filename),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n),setTimeout((function(){e.processing=!1}),2e3)}))}}},Z=(0,B.Z)(F,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",E,[e.processing?((0,l.wg)(),(0,l.iD)("div",q,[(0,l.Wm)(r,{icon:"circle-notch",size:"lg",spin:""}),(0,l._)("span",null,(0,h.zw)(e.processingMessage||e.$t("exporter.processing")),1)])):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.process&&e.process.apply(e,arguments)})},(0,h.zw)(e.exportButtonLabel||e.$t("exporter.export")),1))])}]]);var M=n(40151),R=n(989);function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const H={data:function(){return{activeTab:"profile",newDomainToMute:"",listBackupsError:!1,addBackupError:!1,addedBackup:!1,backups:[]}},created:function(){this.$store.dispatch("fetchTokens"),this.fetchBackups()},components:{Importer:A,Exporter:Z,Checkbox:M.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},(0,R.rn)({backendInteractor:function(e){return e.api.backendInteractor},user:function(e){return e.users.currentUser}})),methods:{getFollowsContent:function(){return this.backendInteractor.exportFriends({id:this.user.id}).then(this.generateExportableUsersContent)},getBlocksContent:function(){return this.backendInteractor.fetchBlocks().then(this.generateExportableUsersContent)},getMutesContent:function(){return this.backendInteractor.fetchMutes().then(this.generateExportableUsersContent)},importFollows:function(e){return this.backendInteractor.importFollows({file:e}).then((function(e){if(!e)throw new Error("failed")}))},importBlocks:function(e){return this.backendInteractor.importBlocks({file:e}).then((function(e){if(!e)throw new Error("failed")}))},importMutes:function(e){return this.backendInteractor.importMutes({file:e}).then((function(e){if(!e)throw new Error("failed")}))},generateExportableUsersContent:function(e){return e.map((function(e){return e&&e.is_local?e.screen_name+"@"+location.hostname:e.screen_name})).join("\n")},addBackup:function(){var e=this;this.$store.state.api.backendInteractor.addBackup().then((function(t){e.addedBackup=!0,e.addBackupError=!1})).catch((function(t){e.addedBackup=!1,e.addBackupError=t})).then((function(){return e.fetchBackups()}))},fetchBackups:function(){var e=this;this.$store.state.api.backendInteractor.listBackups().then((function(t){e.backups=t,e.listBackupsError=!1})).catch((function(t){e.listBackupsError=t.error}))}}},Y=(0,B.Z)(H,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Importer"),i=(0,l.up)("Exporter"),u=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.data_import_export_tab")},[(0,l._)("div",g,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.follow_import")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.import_followers_from_a_csv_file")),1),(0,l.Wm)(r,{"submit-handler":e.importFollows,"success-message":e.$t("settings.follows_imported"),"error-message":e.$t("settings.follow_import_error")},null,8,["submit-handler","success-message","error-message"])]),(0,l._)("div",b,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.follow_export")),1),(0,l.Wm)(i,{"get-content":e.getFollowsContent,filename:"friends.csv","export-button-label":e.$t("settings.follow_export_button")},null,8,["get-content","export-button-label"])]),(0,l._)("div",w,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.block_import")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.import_blocks_from_a_csv_file")),1),(0,l.Wm)(r,{"submit-handler":e.importBlocks,"success-message":e.$t("settings.blocks_imported"),"error-message":e.$t("settings.block_import_error")},null,8,["submit-handler","success-message","error-message"])]),(0,l._)("div",_,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.block_export")),1),(0,l.Wm)(i,{"get-content":e.getBlocksContent,filename:"blocks.csv","export-button-label":e.$t("settings.block_export_button")},null,8,["get-content","export-button-label"])]),(0,l._)("div",k,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.mute_import")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.import_mutes_from_a_csv_file")),1),(0,l.Wm)(r,{"submit-handler":e.importMutes,"success-message":e.$t("settings.mutes_imported"),"error-message":e.$t("settings.mute_import_error")},null,8,["submit-handler","success-message","error-message"])]),(0,l._)("div",v,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.mute_export")),1),(0,l.Wm)(i,{"get-content":e.getMutesContent,filename:"mutes.csv","export-button-label":e.$t("settings.mute_export_button")},null,8,["get-content","export-button-label"])]),(0,l._)("div",y,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.account_backup")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.account_backup_description")),1),(0,l._)("table",null,[(0,l._)("thead",null,[(0,l._)("tr",null,[(0,l._)("th",null,(0,h.zw)(e.$t("settings.account_backup_table_head")),1),$])]),(0,l._)("tbody",null,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.backups,(function(t){return(0,l.wg)(),(0,l.iD)("tr",{key:t.id},[(0,l._)("td",null,(0,h.zw)(t.inserted_at),1),(0,l._)("td",C,[t.processed?((0,l.wg)(),(0,l.iD)("a",{key:0,target:"_blank",href:t.url},(0,h.zw)(e.$t("settings.download_backup")),9,V)):((0,l.wg)(),(0,l.iD)("span",T,(0,h.zw)(e.$t("settings.backup_not_ready")),1))])])})),128))])]),e.listBackupsError?((0,l.wg)(),(0,l.iD)("div",x,[(0,l.Uk)((0,h.zw)(e.$t("settings.list_backups_error",{error:e.error}))+" ",1),(0,l._)("button",{title:e.$t("settings.hide_list_backups_error_action"),onClick:t[0]||(t[0]=function(t){return e.listBackupsError=!1})},[(0,l.Wm)(u,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,L)])):(0,l.kq)("",!0),(0,l._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.addBackup&&e.addBackup.apply(e,arguments)})},(0,h.zw)(e.$t("settings.add_backup")),1),e.addedBackup?((0,l.wg)(),(0,l.iD)("p",U,(0,h.zw)(e.$t("settings.added_backup")),1)):(0,l.kq)("",!0),!1!==e.addBackupError?((0,l.wg)(),(0,l.iD)("p",O,(0,h.zw)(e.$t("settings.add_backup_error",{error:e.addBackupError})),1)):(0,l.kq)("",!0)])],8,f)}]]);var K=["label"],G={class:"usersearch-wrapper"},J={class:"bulk-actions"},Q=["label"],X=["label"],ee={class:"usersearch-wrapper"},te={class:"bulk-actions"},ne=["label"],le={class:"domain-mute-form"},ae={class:"bulk-actions"},oe=n(27361),se=n.n(oe),re=n(35161),ie=n.n(re),ue=n(43063),ce=n.n(ue),de=n(49963),pe={class:"autosuggest"},me=["placeholder"],he={key:0,class:"autosuggest-results"};const fe={props:{query:{type:Function,required:!0},filter:{type:Function},placeholder:{type:String,default:"Search..."}},data:function(){return{term:"",timeout:null,results:[],resultsVisible:!1}},computed:{filtered:function(){return this.filter?this.filter(this.results):this.results}},watch:{term:function(e){this.fetchResults(e)}},methods:{fetchResults:function(e){var t=this;clearTimeout(this.timeout),this.timeout=setTimeout((function(){t.results=[],e&&t.query(e).then((function(e){t.results=e}))}),500)},onInputClick:function(){this.resultsVisible=!0},onClickOutside:function(){this.resultsVisible=!1}}},ge=(0,B.Z)(fe,[["render",function(e,t,n,a,o,s){var r=(0,l.Q2)("click-outside");return(0,l.wy)(((0,l.wg)(),(0,l.iD)("div",pe,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.term=t}),placeholder:e.placeholder,class:"autosuggest-input",onClick:t[1]||(t[1]=function(){return e.onInputClick&&e.onInputClick.apply(e,arguments)})},null,8,me),[[de.nr,e.term]]),e.resultsVisible&&e.filtered.length>0?((0,l.wg)(),(0,l.iD)("div",he,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.filtered,(function(t){return(0,l.WI)(e.$slots,"default",{item:t})})),256))])):(0,l.kq)("",!0)])),[[r,e.onClickOutside]])}]]);var be={class:"block-card-content-container"},we=["disabled"],_e=["disabled"],ke=n(85267);const ve={props:["userId"],data:function(){return{progress:!1}},computed:{user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},blocked:function(){return this.relationship.blocking}},components:{BasicUserCard:ke.Z},methods:{unblockUser:function(){var e=this;this.progress=!0,this.$store.dispatch("unblockUser",this.user.id).then((function(){e.progress=!1}))},blockUser:function(){var e=this;this.progress=!0,this.$store.dispatch("blockUser",this.user.id).then((function(){e.progress=!1}))}}},ye=(0,B.Z)(ve,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("basic-user-card");return(0,l.wg)(),(0,l.j4)(r,{user:e.user},{default:(0,l.w5)((function(){return[(0,l._)("div",be,[e.blocked?((0,l.wg)(),(0,l.iD)("button",{key:0,class:"btn button-default",disabled:e.progress,onClick:t[0]||(t[0]=function(){return e.unblockUser&&e.unblockUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,h.zw)(e.$t("user_card.unblock_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,h.zw)(e.$t("user_card.unblock")),1)],64))],8,we)):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",disabled:e.progress,onClick:t[1]||(t[1]=function(){return e.blockUser&&e.blockUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,h.zw)(e.$t("user_card.block_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,h.zw)(e.$t("user_card.block")),1)],64))],8,_e))])]})),_:1},8,["user"])}]]);var $e={class:"mute-card-content-container"},Ce=["disabled"],Ve=["disabled"];const Te={props:["userId"],data:function(){return{progress:!1}},computed:{user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},muted:function(){return this.relationship.muting}},components:{BasicUserCard:ke.Z},methods:{unmuteUser:function(){var e=this;this.progress=!0,this.$store.dispatch("unmuteUser",this.userId).then((function(){e.progress=!1}))},muteUser:function(){var e=this;this.progress=!0,this.$store.dispatch("muteUser",this.userId).then((function(){e.progress=!1}))}}},xe=(0,B.Z)(Te,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("basic-user-card");return(0,l.wg)(),(0,l.j4)(r,{user:e.user},{default:(0,l.w5)((function(){return[(0,l._)("div",$e,[e.muted?((0,l.wg)(),(0,l.iD)("button",{key:0,class:"btn button-default",disabled:e.progress,onClick:t[0]||(t[0]=function(){return e.unmuteUser&&e.unmuteUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,h.zw)(e.$t("user_card.unmute_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,h.zw)(e.$t("user_card.unmute")),1)],64))],8,Ce)):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",disabled:e.progress,onClick:t[1]||(t[1]=function(){return e.muteUser&&e.muteUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,h.zw)(e.$t("user_card.mute_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,h.zw)(e.$t("user_card.mute")),1)],64))],8,Ve))])]})),_:1},8,["user"])}]]);var Le={class:"domain-mute-card"},Ue={class:"domain-mute-card-domain"},Oe=n(99507);const We={props:["domain"],components:{ProgressButton:Oe.Z},computed:{user:function(){return this.$store.state.users.currentUser},muted:function(){return this.user.domainMutes.includes(this.domain)}},methods:{unmuteDomain:function(){return this.$store.dispatch("unmuteDomain",this.domain)},muteDomain:function(){return this.$store.dispatch("muteDomain",this.domain)}}},Se=(0,B.Z)(We,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("ProgressButton");return(0,l.wg)(),(0,l.iD)("div",Le,[(0,l._)("div",Ue,(0,h.zw)(e.domain),1),e.muted?((0,l.wg)(),(0,l.j4)(r,{key:0,click:e.unmuteDomain,class:"btn button-default"},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("domain_mute_card.unmute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("domain_mute_card.unmute"))+" ",1)]})),_:1},8,["click"])):((0,l.wg)(),(0,l.j4)(r,{key:1,click:e.muteDomain,class:"btn button-default"},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("domain_mute_card.mute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("domain_mute_card.mute"))+" ",1)]})),_:1},8,["click"]))])}]]);var ze={class:"selectable-list"},Pe={key:0,class:"selectable-list-header"},De={class:"selectable-list-checkbox-wrapper"},Ie={class:"selectable-list-header-actions"},je={class:"selectable-list-checkbox-wrapper"};const Be={components:{List:n(83293).Z,Checkbox:M.Z},props:{items:{type:Array,default:function(){return[]}},getKey:{type:Function,default:function(e){return e.id}}},data:function(){return{selected:[]}},computed:{allKeys:function(){return this.items.map(this.getKey)},filteredSelected:function(){var e=this;return this.allKeys.filter((function(t){return-1!==e.selected.indexOf(t)}))},allSelected:function(){return this.filteredSelected.length===this.items.length},noneSelected:function(){return 0===this.filteredSelected.length},someSelected:function(){return!this.allSelected&&!this.noneSelected}},methods:{isSelected:function(e){return-1!==this.filteredSelected.indexOf(this.getKey(e))},toggle:function(e,t){var n=this.getKey(t);e!==this.isSelected(n)&&(e?this.selected.push(n):this.selected.splice(this.selected.indexOf(n),1))},toggleAll:function(e){this.selected=e?this.allKeys.slice(0):[]}}},Ae=(0,B.Z)(Be,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Checkbox"),i=(0,l.up)("List");return(0,l.wg)(),(0,l.iD)("div",ze,[e.items.length>0?((0,l.wg)(),(0,l.iD)("div",Pe,[(0,l._)("div",De,[(0,l.Wm)(r,{"model-value":e.allSelected,indeterminate:e.someSelected,"onUpdate:modelValue":e.toggleAll},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("selectable_list.select_all")),1)]})),_:1},8,["model-value","indeterminate","onUpdate:modelValue"])]),(0,l._)("div",Ie,[(0,l.WI)(e.$slots,"header",{selected:e.filteredSelected})])])):(0,l.kq)("",!0),(0,l.Wm)(i,{items:e.items,"get-key":e.getKey},{item:(0,l.w5)((function(t){var n=t.item;return[(0,l._)("div",{class:(0,h.C_)(["selectable-list-item-inner",{"selectable-list-item-selected-inner":e.isSelected(n)}])},[(0,l._)("div",je,[(0,l.Wm)(r,{"model-value":e.isSelected(n),"onUpdate:modelValue":function(t){return e.toggle(t,n)}},null,8,["model-value","onUpdate:modelValue"])]),(0,l.WI)(e.$slots,"item",{item:n})],2)]})),empty:(0,l.w5)((function(){return[(0,l.WI)(e.$slots,"empty")]})),_:3},8,["items","get-key"])])}]]);var Ee=n(93433),qe=n(41609),Fe=n.n(qe),Ze=n(13562),Me=n(57810);function Re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Re(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Re(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}D.vI.add(I.IJ7);const He=function(e){var t=e.fetch,n=e.select,a=e.childPropName,o=void 0===a?"content":a,s=e.additionalPropNames,r=void 0===s?[]:s;return function(e){var a=Object.keys((0,Ze.g)(e)).filter((function(e){return e!==o})).concat(r);return{props:[].concat((0,Ee.Z)(a),["refresh"]),data:function(){return{loading:!1,error:!1}},computed:{fetchedData:function(){return n(this.$props,this.$store)}},created:function(){(this.refresh||Fe()(this.fetchedData))&&this.fetchData()},methods:{fetchData:function(){var e=this;this.loading||(this.loading=!0,this.error=!1,t(this.$props,this.$store).then((function(){e.loading=!1})).catch((function(){e.error=!0,e.loading=!1})))}},render:function(){if(this.error||this.loading)return(0,l.Wm)("div",{class:"with-subscription-loading"},[this.error?(0,l.Wm)("a",{onClick:this.fetchData,class:"alert error"},[this.$t("general.generic_error")]):(0,l.Wm)(Me.GN,{spin:!0,icon:"circle-notch"},null)]);var t,n=Ne(Ne({},this.$props),{},(0,W.Z)({},o,this.fetchedData)),a=this.$slots;return(0,l.Wm)("div",{class:"with-subscription"},[(0,l.Wm)(e,n,(t=a,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!(0,l.lA)(t)?a:{default:function(){return[a]}}))])}}}};var Ye=He({fetch:function(e,t){return t.dispatch("fetchBlocks")},select:function(e,t){return se()(t.state.users.currentUser,"blockIds",[])},childPropName:"items"})(Ae),Ke=He({fetch:function(e,t){return t.dispatch("fetchMutes")},select:function(e,t){return se()(t.state.users.currentUser,"muteIds",[])},childPropName:"items"})(Ae),Ge=He({fetch:function(e,t){return t.dispatch("fetchDomainMutes")},select:function(e,t){return se()(t.state.users.currentUser,"domainMutes",[])},childPropName:"items"})(Ae);const Je={data:function(){return{activeTab:"profile"}},created:function(){this.$store.dispatch("fetchTokens"),this.$store.dispatch("getKnownDomains")},components:{TabSwitcher:m.Z,BlockList:Ye,MuteList:Ke,DomainMuteList:Ge,BlockCard:ye,MuteCard:xe,DomainMuteCard:Se,ProgressButton:Oe.Z,Autosuggest:ge,Checkbox:M.Z},computed:{knownDomains:function(){return this.$store.state.instance.knownDomains},user:function(){return this.$store.state.users.currentUser}},methods:{importFollows:function(e){return this.$store.state.api.backendInteractor.importFollows({file:e}).then((function(e){if(!e)throw new Error("failed")}))},importBlocks:function(e){return this.$store.state.api.backendInteractor.importBlocks({file:e}).then((function(e){if(!e)throw new Error("failed")}))},generateExportableUsersContent:function(e){return e.map((function(e){return e&&e.is_local?e.screen_name+"@"+location.hostname:e.screen_name})).join("\n")},activateTab:function(e){this.activeTab=e},filterUnblockedUsers:function(e){var t=this;return ce()(e,(function(e){return t.$store.getters.relationship(t.userId).blocking||e===t.user.id}))},filterUnMutedUsers:function(e){var t=this;return ce()(e,(function(e){return t.$store.getters.relationship(t.userId).muting||e===t.user.id}))},queryUserIds:function(e){return this.$store.dispatch("searchUsers",{query:e}).then((function(e){return ie()(e,"id")}))},blockUsers:function(e){return this.$store.dispatch("blockUsers",e)},unblockUsers:function(e){return this.$store.dispatch("unblockUsers",e)},muteUsers:function(e){return this.$store.dispatch("muteUsers",e)},unmuteUsers:function(e){return this.$store.dispatch("unmuteUsers",e)},filterUnMutedDomains:function(e){var t=this;return e.filter((function(e){return!t.user.domainMutes.includes(e)}))},queryKnownDomains:function(e){var t=this;return new Promise((function(n,l){n(t.knownDomains.filter((function(t){return t.toLowerCase().includes(e)})))}))},unmuteDomains:function(e){return this.$store.dispatch("unmuteDomains",e)}}},Qe=(0,B.Z)(Je,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("BlockCard"),i=(0,l.up)("Autosuggest"),u=(0,l.up)("ProgressButton"),c=(0,l.up)("BlockList"),d=(0,l.up)("MuteCard"),p=(0,l.up)("MuteList"),m=(0,l.up)("DomainMuteCard"),f=(0,l.up)("DomainMuteList"),g=(0,l.up)("tab-switcher");return(0,l.wg)(),(0,l.j4)(g,{"scrollable-tabs":!0,class:"mutes-and-blocks-tab"},{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.blocks_tab")},[(0,l._)("div",G,[(0,l.Wm)(i,{filter:e.filterUnblockedUsers,query:e.queryUserIds,placeholder:e.$t("settings.search_user_to_block")},{default:(0,l.w5)((function(e){return[(0,l.Wm)(r,{"user-id":e.item},null,8,["user-id"])]})),_:1},8,["filter","query","placeholder"])]),(0,l.Wm)(c,{refresh:!0,"get-key":function(e){return e}},{header:(0,l.w5)((function(t){var n=t.selected;return[(0,l._)("div",J,[n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:0,class:"btn button-default bulk-action-button",click:function(){return e.blockUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.block_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.block"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0),n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"btn button-default",click:function(){return e.unblockUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.unblock_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.unblock"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0)])]})),item:(0,l.w5)((function(e){var t=e.item;return[(0,l.Wm)(r,{"user-id":t},null,8,["user-id"])]})),empty:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.no_blocks")),1)]})),_:1},8,["get-key"])],8,K),(0,l._)("div",{label:e.$t("settings.mutes_tab")},[(0,l.Wm)(g,null,{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.user_mutes")},[(0,l._)("div",ee,[(0,l.Wm)(i,{filter:e.filterUnMutedUsers,query:e.queryUserIds,placeholder:e.$t("settings.search_user_to_mute")},{default:(0,l.w5)((function(e){return[(0,l.Wm)(d,{"user-id":e.item},null,8,["user-id"])]})),_:1},8,["filter","query","placeholder"])]),(0,l.Wm)(p,{refresh:!0,"get-key":function(e){return e}},{header:(0,l.w5)((function(t){var n=t.selected;return[(0,l._)("div",te,[n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:0,class:"btn button-default",click:function(){return e.muteUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.mute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.mute"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0),n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"btn button-default",click:function(){return e.unmuteUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.unmute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("user_card.unmute"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0)])]})),item:(0,l.w5)((function(e){var t=e.item;return[(0,l.Wm)(d,{"user-id":t},null,8,["user-id"])]})),empty:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.no_mutes")),1)]})),_:1},8,["get-key"])],8,X),(0,l._)("div",{label:e.$t("settings.domain_mutes")},[(0,l._)("div",le,[(0,l.Wm)(i,{filter:e.filterUnMutedDomains,query:e.queryKnownDomains,placeholder:e.$t("settings.type_domains_to_mute")},{default:(0,l.w5)((function(e){return[(0,l.Wm)(m,{domain:e.item},null,8,["domain"])]})),_:1},8,["filter","query","placeholder"])]),(0,l.Wm)(f,{refresh:!0,"get-key":function(e){return e}},{header:(0,l.w5)((function(t){var n=t.selected;return[(0,l._)("div",ae,[n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:0,class:"btn button-default",click:function(){return e.unmuteDomains(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("domain_mute_card.unmute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("domain_mute_card.unmute"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0)])]})),item:(0,l.w5)((function(e){var t=e.item;return[(0,l.Wm)(m,{domain:t},null,8,["domain"])]})),empty:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.no_mutes")),1)]})),_:1},8,["get-key"])],8,ne)]})),_:1})],8,Q)]})),_:1})}]]);var Xe=["label"],et={class:"setting-item"},tt={class:"setting-list"},nt={class:"select-multiple"},lt={class:"label"},at={class:"option-list"},ot={key:0,class:"setting-item"},st={class:"setting-list"},rt={class:"setting-item"},it={key:0,class:"BooleanSetting"},ut={key:0,class:"label"},ct=n(84506),dt=n(36968),pt=n.n(dt),mt={key:0,class:"ModifiedIndicator"},ht={class:"modified-tooltip"},ft=n(49874);D.vI.add(I.klh);const gt={components:{Popover:ft.default},props:["changed"]},bt=(0,B.Z)(gt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon"),i=(0,l.up)("Popover");return n.changed?((0,l.wg)(),(0,l.iD)("span",mt,[(0,l.Wm)(i,{trigger:"hover"},{trigger:(0,l.w5)((function(){return[(0,l.Uk)("   "),(0,l.Wm)(r,{icon:"wrench","aria-label":e.$t("settings.setting_changed")},null,8,["aria-label"])]})),content:(0,l.w5)((function(){return[(0,l._)("div",ht,(0,h.zw)(e.$t("settings.setting_changed")),1)]})),_:1})])):(0,l.kq)("",!0)}]]);var wt={key:0,class:"ServerSideIndicator"},_t={class:"serverside-tooltip"};D.vI.add(I.xf3);const kt={components:{Popover:ft.default},props:["serverSide"]},vt=(0,B.Z)(kt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon"),i=(0,l.up)("Popover");return n.serverSide?((0,l.wg)(),(0,l.iD)("span",wt,[(0,l.Wm)(i,{trigger:"hover"},{trigger:(0,l.w5)((function(){return[(0,l.Uk)("   "),(0,l.Wm)(r,{icon:"server","aria-label":e.$t("settings.setting_server_side")},null,8,["aria-label"])]})),content:(0,l.w5)((function(){return[(0,l._)("div",_t,(0,h.zw)(e.$t("settings.setting_server_side")),1)]})),_:1})])):(0,l.kq)("",!0)}]]);function yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const $t={components:{Checkbox:M.Z,ModifiedIndicator:bt,ServerSideIndicator:vt},props:["path","disabled","expert"],computed:{pathDefault:function(){var e=this.path.split("."),t=(0,ct.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,Ee.Z)(l)).join(".")},state:function(){var e=se()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return se()(this.$parent,this.pathDefault)},isServerSide:function(){return this.path.startsWith("serverSide_")},isChanged:function(){return!this.path.startsWith("serverSide_")&&this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){var t=this.path.split("."),n=(0,ct.Z)(t),l=n[0],a=n.slice(1);pt()(this.$parent,this.path,e),a.length>0&&pt()(this.$parent,l,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yt(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},se()(this.$parent,l)))},reset:function(){pt()(this.$parent,this.path,this.defaultState)}}},Ct=(0,B.Z)($t,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("ModifiedIndicator"),i=(0,l.up)("ServerSideIndicator"),u=(0,l.up)("Checkbox");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("label",it,[(0,l.Wm)(u,{"model-value":e.state,disabled:e.disabled,"onUpdate:modelValue":e.update},{default:(0,l.w5)((function(){return[e.$slots.default?((0,l.wg)(),(0,l.iD)("span",ut,[(0,l.WI)(e.$slots,"default")])):(0,l.kq)("",!0),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l.Wm)(r,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"]),(0,l.Wm)(i,{"server-side":e.isServerSide},null,8,["server-side"])]})),_:3},8,["model-value","disabled","onUpdate:modelValue"])])):(0,l.kq)("",!0)}]]);var Vt=n(29439),Tt=n(85565),xt=n(65405);function Lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function Ut(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lt(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Ot=function(){return Ut(Ut(Ut(Ut({user:function(){return this.$store.state.users.currentUser}},Object.keys(Tt.W2).map((function(e){return[e+"DefaultValue",function(){return this.$store.getters.defaultConfig[e]}]})).reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return Ut(Ut({},e),{},(0,W.Z)({},l,a))}),{})),Object.keys(Tt.W2).map((function(e){return[e,{get:function(){return this.$store.getters.mergedConfig[e]},set:function(t){this.$store.dispatch("setOption",{name:e,value:t})}}]})).reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return Ut(Ut({},e),{},(0,W.Z)({},l,a))}),{})),Object.keys(xt.W2).map((function(e){return["serverSide_"+e,{get:function(){return this.$store.state.serverSideConfig[e]},set:function(t){this.$store.dispatch("setServerSideOption",{name:e,value:t})}}]})).reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return Ut(Ut({},e),{},(0,W.Z)({},l,a))}),{})),{},{useStreamingApi:{get:function(){return this.$store.getters.mergedConfig.useStreamingApi},set:function(e){var t=this;(e?this.$store.dispatch("enableMastoSockets"):this.$store.dispatch("disableMastoSockets")).then((function(){t.$store.dispatch("setOption",{name:"useStreamingApi",value:e})})).catch((function(e){console.error("Failed starting MastoAPI Streaming socket",e),t.$store.dispatch("disableMastoSockets"),t.$store.dispatch("setOption",{name:"useStreamingApi",value:!1})}))}}})};function Wt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const St={data:function(){return{activeTab:"profile",notificationSettings:this.$store.state.users.currentUser.notification_settings,newDomainToMute:""}},components:{BooleanSetting:Ct},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wt(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({user:function(){return this.$store.state.users.currentUser}},Ot()),methods:{updateNotificationSettings:function(){this.$store.state.api.backendInteractor.updateNotificationSettings({settings:this.notificationSettings})}}},zt=(0,B.Z)(St,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("BooleanSetting");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.notifications")},[(0,l._)("div",et,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.notification_setting_filters")),1),(0,l._)("ul",tt,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"serverSide_blockNotificationsFromStrangers"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_setting_block_from_strangers")),1)]})),_:1})]),(0,l._)("li",nt,[(0,l._)("span",lt,(0,h.zw)(e.$t("settings.notification_visibility")),1),(0,l._)("ul",at,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.likes"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_visibility_likes")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.repeats"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_visibility_repeats")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.follows"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_visibility_follows")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.mentions"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_visibility_mentions")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.moves"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_visibility_moves")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.emojiReactions"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_visibility_emoji_reactions")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.polls"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_visibility_polls")),1)]})),_:1})])])])])]),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("div",ot,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.notification_setting_privacy")),1),(0,l._)("ul",st,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"webPushNotifications",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.enable_web_push_notifications")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"serverSide_webPushHideContents",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.notification_setting_hide_notification_contents")),1)]})),_:1})])])])):(0,l.kq)("",!0),(0,l._)("div",rt,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.notification_mutes")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.notification_blocks")),1)])],8,Xe)}]]);var Pt=["label"],Dt={class:"setting-item"},It={class:"setting-list"},jt={key:0,class:"setting-item"},Bt={class:"setting-list"},At=n(92742),Et=n.n(At),qt=n(63105),Ft=n.n(qt),Zt={key:0,class:"ChoiceSetting"},Mt=["value"],Rt=n(44313);const Nt={components:{Select:Rt.Z,ModifiedIndicator:bt,ServerSideIndicator:vt},props:["path","disabled","options","expert"],computed:{pathDefault:function(){var e=this.path.split("."),t=(0,ct.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,Ee.Z)(l)).join(".")},state:function(){var e=se()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return se()(this.$parent,this.pathDefault)},isServerSide:function(){return this.path.startsWith("serverSide_")},isChanged:function(){return!this.path.startsWith("serverSide_")&&this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){pt()(this.$parent,this.path,e)},reset:function(){pt()(this.$parent,this.path,this.defaultState)}}},Ht=(0,B.Z)(Nt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("ModifiedIndicator"),u=(0,l.up)("ServerSideIndicator");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("label",Zt,[(0,l.WI)(e.$slots,"default"),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l.Wm)(r,{"model-value":e.state,disabled:e.disabled,"onUpdate:modelValue":e.update},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.options,(function(t){return(0,l.wg)(),(0,l.iD)("option",{key:t.key,value:t.value},(0,h.zw)(t.label)+" "+(0,h.zw)(t.value===e.defaultState?e.$t("settings.instance_default_simple"):""),9,Mt)})),128))]})),_:1},8,["model-value","disabled","onUpdate:modelValue"]),(0,l.Wm)(i,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"]),(0,l.Wm)(u,{"server-side":e.isServerSide},null,8,["server-side"])])):(0,l.kq)("",!0)}]]);var Yt={key:0,class:"IntegerSetting"},Kt=["for"],Gt=["id","disabled","min","value"];const Jt={components:{ModifiedIndicator:bt},props:{path:String,disabled:Boolean,min:Number,expert:[Number,String]},computed:{pathDefault:function(){var e=this.path.split("."),t=(0,ct.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,Ee.Z)(l)).join(".")},state:function(){var e=se()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return se()(this.$parent,this.pathDefault)},isChanged:function(){return this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){pt()(this.$parent,this.path,parseInt(e.target.value))},reset:function(){pt()(this.$parent,this.path,this.defaultState)}}},Qt=(0,B.Z)(Jt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("ModifiedIndicator");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("span",Yt,[(0,l._)("label",{for:e.path},[(0,l.WI)(e.$slots,"default")],8,Kt),(0,l._)("input",{id:e.path,class:"number-input",type:"number",step:"1",disabled:e.disabled,min:e.min||0,value:e.state,onChange:t[0]||(t[0]=function(){return e.update&&e.update.apply(e,arguments)})},null,40,Gt),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l.Wm)(r,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"])])):(0,l.kq)("",!0)}]]);function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function en(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xt(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const tn={data:function(){var e=this;return{muteWordsStringLocal:this.$store.getters.mergedConfig.muteWords.join("\n"),replyVisibilityOptions:["all","following","self"].map((function(t){return{key:t,value:t,label:e.$t("settings.reply_visibility_".concat(t))}}))}},components:{BooleanSetting:Ct,ChoiceSetting:Ht,IntegerSetting:Qt},computed:en(en({},Ot()),{},{muteWordsString:{get:function(){return this.muteWordsStringLocal},set:function(e){this.muteWordsStringLocal=e,this.$store.dispatch("setOption",{name:"muteWords",value:Ft()(e.split("\n"),(function(e){return Et()(e).length>0}))})}}}),watch:{replyVisibility:function(){this.$store.dispatch("queueFlushAll")}}},nn=(0,B.Z)(tn,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("BooleanSetting"),i=(0,l.up)("ChoiceSetting"),u=(0,l.up)("IntegerSetting");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.filtering")},[(0,l._)("div",Dt,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.posts")),1),(0,l._)("ul",It,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideFilteredStatuses"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_filtered_statuses")),1)]})),_:1}),(0,l._)("ul",{class:(0,h.C_)(["setting-list suboptions",[{disabled:!e.streaming}]])},[(0,l._)("li",null,[(0,l.Wm)(r,{disabled:e.hideFilteredStatuses,path:"hideWordFilteredPosts"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_wordfiltered_statuses")),1)]})),_:1},8,["disabled"])]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(r,{key:0,disabled:e.hideFilteredStatuses,path:"hideMutedThreads"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_muted_threads")),1)]})),_:1},8,["disabled"])):(0,l.kq)("",!0)]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(r,{key:0,disabled:e.hideFilteredStatuses,path:"hideMutedPosts"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_muted_posts")),1)]})),_:1},8,["disabled"])):(0,l.kq)("",!0)])],2)]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"muteBotStatuses"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.mute_bot_posts")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hidePostStats"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_post_stats")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideBotIndication"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_bot_indication")),1)]})),_:1})]),e.user?((0,l.wg)(),(0,l.j4)(i,{key:0,id:"replyVisibility",path:"replyVisibility",options:e.replyVisibilityOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.replies_in_timeline")),1)]})),_:1},8,["options"])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l._)("h3",null,(0,h.zw)(e.$t("settings.wordfilter")),1),(0,l.wy)((0,l._)("textarea",{id:"muteWords","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.muteWordsString=t}),class:"resize-height"},null,512),[[de.nr,e.muteWordsString]]),(0,l._)("div",null,(0,h.zw)(e.$t("settings.filtering_explanation")),1)]),(0,l._)("h3",null,(0,h.zw)(e.$t("settings.attachments")),1),(0,l._)("li",null,[(0,l.Wm)(u,{path:"maxThumbnails",expert:"1",min:0},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.max_thumbnails")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideAttachments"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_attachments_in_tl")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideAttachmentsInConv"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_attachments_in_convo")),1)]})),_:1})])])]),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("div",jt,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.user_profiles")),1),(0,l._)("ul",Bt,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideUserStats"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_user_stats")),1)]})),_:1})])])])):(0,l.kq)("",!0)],8,Pt)}]]);var ln=["label"],an={class:"setting-item"},on={key:0},sn={class:"setting-item"},rn={key:0},un={key:1},cn={key:2},dn={class:"setting-item"},pn={class:"oauth-tokens"},mn=(0,l._)("th",null,null,-1),hn={class:"actions"},fn=["onClick"],gn={class:"setting-item"},bn=(0,l._)("th",null,null,-1),wn={class:"actions"},_n=["onClick"],kn={key:0,class:"alert error"},vn=(0,l._)("code",{place:"example"}," foo@example.org ",-1),yn={key:1},$n={key:2},Cn={class:"setting-item"},Vn=(0,l._)("code",{place:"example"}," foo@example.org ",-1),Tn={key:0},xn={key:1},Ln={class:"setting-item"},Un={key:0},On={key:1},Wn={key:2},Sn={key:3},zn={key:0,class:"setting-item mfa-settings"},Pn={class:"mfa-heading"},Dn={key:0,class:"setting-item"},In=(0,l._)("br",null,null,-1),jn={key:0},Bn={key:2},An={class:"warning"},En={key:1},qn={key:0},Fn={key:1},Zn={class:"setup-otp"},Mn={class:"qr-code"},Rn={class:"verify"},Nn={class:"confirm-otp-actions"},Hn={key:0,class:"alert error"},Yn=n(15861),Kn=n(64687),Gn=n.n(Kn),Jn={class:"mfa-backup-codes"},Qn={key:0},Xn={key:1},el={class:"alert warning"},tl={class:"backup-codes"};const nl={props:{backupCodes:{type:Object,default:function(){return{inProgress:!1,codes:[]}}}},data:function(){return{}},computed:{inProgress:function(){return this.backupCodes.inProgress},ready:function(){return this.backupCodes.codes.length>0},displayTitle:function(){return this.inProgress||this.ready}}},ll=(0,B.Z)(nl,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",Jn,[e.displayTitle?((0,l.wg)(),(0,l.iD)("h4",Qn,(0,h.zw)(e.$t("settings.mfa.recovery_codes")),1)):(0,l.kq)("",!0),e.inProgress?((0,l.wg)(),(0,l.iD)("i",Xn,(0,h.zw)(e.$t("settings.mfa.waiting_a_recovery_codes")),1)):(0,l.kq)("",!0),e.ready?((0,l.wg)(),(0,l.iD)(l.HY,{key:2},[(0,l._)("p",el,(0,h.zw)(e.$t("settings.mfa.recovery_codes_warning")),1),(0,l._)("ul",tl,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.backupCodes.codes,(function(e){return(0,l.wg)(),(0,l.iD)("li",{key:e},(0,h.zw)(e),1)})),128))])],64)):(0,l.kq)("",!0)])}]]);var al={class:"method-item"},ol=["disabled"],sl={key:1,class:"alert error"},rl=["disabled"],il=["disabled"];const ul={props:["disabled"],data:function(){return{}},methods:{confirm:function(){this.$emit("confirm")},cancel:function(){this.$emit("cancel")}}},cl=(0,B.Z)(ul,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",null,[(0,l.WI)(e.$slots,"default"),(0,l._)("button",{class:"btn button-default",disabled:e.disabled,onClick:t[0]||(t[0]=function(){return e.confirm&&e.confirm.apply(e,arguments)})},(0,h.zw)(e.$t("general.confirm")),9,rl),(0,l._)("button",{class:"btn button-default",disabled:e.disabled,onClick:t[1]||(t[1]=function(){return e.cancel&&e.cancel.apply(e,arguments)})},(0,h.zw)(e.$t("general.cancel")),9,il)])}]]);function dl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const pl={props:["settings"],data:function(){return{error:!1,currentPassword:"",deactivate:!1,inProgress:!1}},components:{confirm:cl},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dl(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({isActivated:function(){return this.settings.totp}},(0,R.rn)({backendInteractor:function(e){return e.api.backendInteractor}})),methods:{doActivate:function(){this.$emit("activate")},cancelDeactivate:function(){this.deactivate=!1},doDeactivate:function(){this.error=null,this.deactivate=!0},confirmDeactivate:function(){var e=this;this.error=null,this.inProgress=!0,this.backendInteractor.mfaDisableOTP({password:this.currentPassword}).then((function(t){e.inProgress=!1,t.error?e.error=t.error:(e.deactivate=!1,e.$emit("deactivate"))}))}}};function ml(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const hl={data:function(){return{settings:{available:!1,enabled:!1,totp:!1},setupState:{state:"",setupOTPState:""},backupCodes:{getNewCodes:!1,inProgress:!1,codes:[]},otpSettings:{provisioning_uri:"",key:""},currentPassword:null,otpConfirmToken:null,error:null,readyInit:!1}},components:{"recovery-codes":ll,"totp-item":(0,B.Z)(pl,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("confirm");return(0,l.wg)(),(0,l.iD)("div",null,[(0,l._)("div",al,[(0,l._)("strong",null,(0,h.zw)(e.$t("settings.mfa.otp")),1),e.isActivated?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.doActivate&&e.doActivate.apply(e,arguments)})},(0,h.zw)(e.$t("general.enable")),1)),e.isActivated?((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",disabled:e.deactivate,onClick:t[1]||(t[1]=function(){return e.doDeactivate&&e.doDeactivate.apply(e,arguments)})},(0,h.zw)(e.$t("general.disable")),9,ol)):(0,l.kq)("",!0)]),e.deactivate?((0,l.wg)(),(0,l.j4)(r,{key:0,disabled:e.inProgress,onConfirm:e.confirmDeactivate,onCancel:e.cancelDeactivate},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.enter_current_password_to_confirm"))+": ",1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.currentPassword=t}),type:"password"},null,512),[[de.nr,e.currentPassword]])]})),_:1},8,["disabled","onConfirm","onCancel"])):(0,l.kq)("",!0),e.error?((0,l.wg)(),(0,l.iD)("div",sl,(0,h.zw)(e.error),1)):(0,l.kq)("",!0)])}]]),qrcode:n(99990).Z,confirm:cl},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ml(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ml(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({canSetupOTP:function(){return(this.setupInProgress&&this.backupCodesPrepared||this.settings.enabled)&&!this.settings.totp&&!this.setupOTPInProgress},setupInProgress:function(){return""!==this.setupState.state&&"complete"!==this.setupState.state},setupOTPInProgress:function(){return"setupOTP"===this.setupState.state&&!this.completedOTP},prepareOTP:function(){return"prepare"===this.setupState.setupOTPState},confirmOTP:function(){return"confirm"===this.setupState.setupOTPState},completedOTP:function(){return"completed"===this.setupState.setupOTPState},backupCodesPrepared:function(){return!this.backupCodes.inProgress&&this.backupCodes.codes.length>0},confirmNewBackupCodes:function(){return this.backupCodes.getNewCodes}},(0,R.rn)({backendInteractor:function(e){return e.api.backendInteractor}})),methods:{activateOTP:function(){this.settings.enabled||(this.setupState.state="getBackupcodes",this.fetchBackupCodes())},fetchBackupCodes:function(){var e=this;return this.backupCodes.inProgress=!0,this.backupCodes.codes=[],this.backendInteractor.generateMfaBackupCodes().then((function(t){e.backupCodes.codes=t.codes,e.backupCodes.inProgress=!1}))},getBackupCodes:function(){this.backupCodes.getNewCodes=!0},confirmBackupCodes:function(){var e=this;this.fetchBackupCodes().then((function(t){e.backupCodes.getNewCodes=!1}))},cancelBackupCodes:function(){this.backupCodes.getNewCodes=!1},setupOTP:function(){var e=this;this.setupState.state="setupOTP",this.setupState.setupOTPState="prepare",this.backendInteractor.mfaSetupOTP().then((function(t){e.otpSettings=t,e.setupState.setupOTPState="confirm"}))},doConfirmOTP:function(){var e=this;this.error=null,this.backendInteractor.mfaConfirmOTP({token:this.otpConfirmToken,password:this.currentPassword}).then((function(t){t.error?e.error=t.error:e.completeSetup()}))},completeSetup:function(){this.setupState.setupOTPState="complete",this.setupState.state="complete",this.currentPassword=null,this.error=null,this.fetchSettings()},cancelSetup:function(){this.setupState.setupOTPState="",this.setupState.state="",this.currentPassword=null,this.error=null},fetchSettings:function(){var e=this;return(0,Yn.Z)(Gn().mark((function t(){var n;return Gn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.backendInteractor.settingsMFA();case 2:if(!(n=t.sent).error){t.next=5;break}return t.abrupt("return");case 5:return e.settings=n.settings,e.settings.available=!0,t.abrupt("return",n);case 8:case"end":return t.stop()}}),t)})))()}},mounted:function(){var e=this;this.fetchSettings().then((function(){e.readyInit=!0}))}},fl=(0,B.Z)(hl,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("totp-item"),i=(0,l.up)("recovery-codes"),u=(0,l.up)("confirm"),c=(0,l.up)("qrcode");return e.readyInit&&e.settings.available?((0,l.wg)(),(0,l.iD)("div",zn,[(0,l._)("div",Pn,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.mfa.title")),1)]),(0,l._)("div",null,[e.setupInProgress?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("div",Dn,[(0,l._)("h3",null,(0,h.zw)(e.$t("settings.mfa.authentication_methods")),1),(0,l.Wm)(r,{settings:e.settings,onDeactivate:e.fetchSettings,onActivate:e.activateOTP},null,8,["settings","onDeactivate","onActivate"]),In,e.settings.enabled?((0,l.wg)(),(0,l.iD)("div",jn,[e.confirmNewBackupCodes?(0,l.kq)("",!0):((0,l.wg)(),(0,l.j4)(i,{key:0,"backup-codes":e.backupCodes},null,8,["backup-codes"])),e.confirmNewBackupCodes?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.getBackupCodes&&e.getBackupCodes.apply(e,arguments)})},(0,h.zw)(e.$t("settings.mfa.generate_new_recovery_codes")),1)),e.confirmNewBackupCodes?((0,l.wg)(),(0,l.iD)("div",Bn,[(0,l.Wm)(u,{disabled:e.backupCodes.inProgress,onConfirm:e.confirmBackupCodes,onCancel:e.cancelBackupCodes},{default:(0,l.w5)((function(){return[(0,l._)("p",An,(0,h.zw)(e.$t("settings.mfa.warning_of_generate_new_codes")),1)]})),_:1},8,["disabled","onConfirm","onCancel"])])):(0,l.kq)("",!0)])):(0,l.kq)("",!0)])),e.setupInProgress?((0,l.wg)(),(0,l.iD)("div",En,[(0,l._)("h3",null,(0,h.zw)(e.$t("settings.mfa.setup_otp")),1),e.setupOTPInProgress?(0,l.kq)("",!0):((0,l.wg)(),(0,l.j4)(i,{key:0,"backup-codes":e.backupCodes},null,8,["backup-codes"])),e.canSetupOTP?((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.cancelSetup&&e.cancelSetup.apply(e,arguments)})},(0,h.zw)(e.$t("general.cancel")),1)):(0,l.kq)("",!0),e.canSetupOTP?((0,l.wg)(),(0,l.iD)("button",{key:2,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.setupOTP&&e.setupOTP.apply(e,arguments)})},(0,h.zw)(e.$t("settings.mfa.setup_otp")),1)):(0,l.kq)("",!0),e.setupOTPInProgress?((0,l.wg)(),(0,l.iD)(l.HY,{key:3},[e.prepareOTP?((0,l.wg)(),(0,l.iD)("i",qn,(0,h.zw)(e.$t("settings.mfa.wait_pre_setup_otp")),1)):(0,l.kq)("",!0),e.confirmOTP?((0,l.wg)(),(0,l.iD)("div",Fn,[(0,l._)("div",Zn,[(0,l._)("div",Mn,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.mfa.scan.title")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.mfa.scan.desc")),1),(0,l.Wm)(c,{value:e.otpSettings.provisioning_uri,options:{width:200}},null,8,["value"]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.mfa.scan.secret_code"))+": "+(0,h.zw)(e.otpSettings.key),1)]),(0,l._)("div",Rn,[(0,l._)("h4",null,(0,h.zw)(e.$t("general.verify")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.mfa.verify.desc")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.otpConfirmToken=t}),type:"text"},null,512),[[de.nr,e.otpConfirmToken]]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.enter_current_password_to_confirm"))+":",1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.currentPassword=t}),type:"password"},null,512),[[de.nr,e.currentPassword]]),(0,l._)("div",Nn,[(0,l._)("button",{class:"btn button-default",onClick:t[5]||(t[5]=function(){return e.doConfirmOTP&&e.doConfirmOTP.apply(e,arguments)})},(0,h.zw)(e.$t("settings.mfa.confirm_and_enable")),1),(0,l._)("button",{class:"btn button-default",onClick:t[6]||(t[6]=function(){return e.cancelSetup&&e.cancelSetup.apply(e,arguments)})},(0,h.zw)(e.$t("general.cancel")),1)]),e.error?((0,l.wg)(),(0,l.iD)("div",Hn,(0,h.zw)(e.error),1)):(0,l.kq)("",!0)])])])):(0,l.kq)("",!0)],64)):(0,l.kq)("",!0)])):(0,l.kq)("",!0)])])):(0,l.kq)("",!0)}]]);var gl=n(39776);const bl={data:function(){return{newEmail:"",changeEmailError:!1,changeEmailPassword:"",changedEmail:!1,deletingAccount:!1,deleteAccountConfirmPasswordInput:"",deleteAccountError:!1,changePasswordInputs:["","",""],changedPassword:!1,changePasswordError:!1,moveAccountTarget:"",moveAccountPassword:"",movedAccount:!1,moveAccountError:!1,aliases:[],listAliasesError:!1,addAliasTarget:"",addedAlias:!1,addAliasError:!1}},created:function(){this.$store.dispatch("fetchTokens"),this.fetchAliases()},components:{ProgressButton:Oe.Z,Mfa:fl,Checkbox:M.Z},computed:{user:function(){return this.$store.state.users.currentUser},pleromaBackend:function(){return this.$store.state.instance.pleromaBackend},oauthTokens:function(){var e=this;return this.$store.state.oauthTokens.tokens.map((function(t){return{id:t.id,appName:t.app_name,validUntil:new Date(t.valid_until).toLocaleDateString(gl.Z.internalToBrowserLocale(e.$i18n.locale))}}))}},methods:{confirmDelete:function(){this.deletingAccount=!0},deleteAccount:function(){var e=this;this.$store.state.api.backendInteractor.deleteAccount({password:this.deleteAccountConfirmPasswordInput}).then((function(t){"success"===t.status?(e.$store.dispatch("logout"),e.$router.push({name:"root"})):e.deleteAccountError=t.error}))},changePassword:function(){var e=this,t={password:this.changePasswordInputs[0],newPassword:this.changePasswordInputs[1],newPasswordConfirmation:this.changePasswordInputs[2]};this.$store.state.api.backendInteractor.changePassword(t).then((function(t){"success"===t.status?(e.changedPassword=!0,e.changePasswordError=!1,e.logout()):(e.changedPassword=!1,e.changePasswordError=t.error)}))},changeEmail:function(){var e=this,t={email:this.newEmail,password:this.changeEmailPassword};this.$store.state.api.backendInteractor.changeEmail(t).then((function(t){"success"===t.status?(e.changedEmail=!0,e.changeEmailError=!1):(e.changedEmail=!1,e.changeEmailError=t.error)}))},moveAccount:function(){var e=this,t={targetAccount:this.moveAccountTarget,password:this.moveAccountPassword};this.$store.state.api.backendInteractor.moveAccount(t).then((function(t){"success"===t.status?(e.movedAccount=!0,e.moveAccountError=!1):(e.movedAccount=!1,e.moveAccountError=t.error)}))},removeAlias:function(e){var t=this;this.$store.state.api.backendInteractor.deleteAlias({alias:e}).then((function(){return t.fetchAliases()}))},addAlias:function(){var e=this;this.$store.state.api.backendInteractor.addAlias({alias:this.addAliasTarget}).then((function(t){e.addedAlias=!0,e.addAliasError=!1,e.addAliasTarget=""})).catch((function(t){e.addedAlias=!1,e.addAliasError=t})).then((function(){return e.fetchAliases()}))},fetchAliases:function(){var e=this;this.$store.state.api.backendInteractor.listAliases().then((function(t){e.aliases=t.aliases,e.listAliasesError=!1})).catch((function(t){e.listAliasesError=t.error}))},logout:function(){this.$store.dispatch("logout"),this.$router.replace("/")},revokeToken:function(e){window.confirm("".concat(this.$i18n.t("settings.revoke_token"),"?"))&&this.$store.dispatch("revokeToken",e)}}},wl=(0,B.Z)(bl,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("mfa"),i=(0,l.up)("FAIcon"),u=(0,l.up)("i18n");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.security_tab")},[(0,l._)("div",an,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.change_email")),1),(0,l._)("div",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.new_email")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.newEmail=t}),type:"email",autocomplete:"email"},null,512),[[de.nr,e.newEmail]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.current_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.changeEmailPassword=t}),type:"password",autocomplete:"current-password"},null,512),[[de.nr,e.changeEmailPassword]])]),(0,l._)("button",{class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.changeEmail&&e.changeEmail.apply(e,arguments)})},(0,h.zw)(e.$t("settings.save")),1),e.changedEmail?((0,l.wg)(),(0,l.iD)("p",on,(0,h.zw)(e.$t("settings.changed_email")),1)):(0,l.kq)("",!0),!1!==e.changeEmailError?((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l._)("p",null,(0,h.zw)(e.$t("settings.change_email_error")),1),(0,l._)("p",null,(0,h.zw)(e.changeEmailError),1)],64)):(0,l.kq)("",!0)]),(0,l._)("div",sn,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.change_password")),1),(0,l._)("div",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.current_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.changePasswordInputs[0]=t}),type:"password"},null,512),[[de.nr,e.changePasswordInputs[0]]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.new_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.changePasswordInputs[1]=t}),type:"password"},null,512),[[de.nr,e.changePasswordInputs[1]]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.confirm_new_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.changePasswordInputs[2]=t}),type:"password"},null,512),[[de.nr,e.changePasswordInputs[2]]])]),(0,l._)("button",{class:"btn button-default",onClick:t[6]||(t[6]=function(){return e.changePassword&&e.changePassword.apply(e,arguments)})},(0,h.zw)(e.$t("settings.save")),1),e.changedPassword?((0,l.wg)(),(0,l.iD)("p",rn,(0,h.zw)(e.$t("settings.changed_password")),1)):!1!==e.changePasswordError?((0,l.wg)(),(0,l.iD)("p",un,(0,h.zw)(e.$t("settings.change_password_error")),1)):(0,l.kq)("",!0),e.changePasswordError?((0,l.wg)(),(0,l.iD)("p",cn,(0,h.zw)(e.changePasswordError),1)):(0,l.kq)("",!0)]),(0,l._)("div",dn,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.oauth_tokens")),1),(0,l._)("table",pn,[(0,l._)("thead",null,[(0,l._)("tr",null,[(0,l._)("th",null,(0,h.zw)(e.$t("settings.app_name")),1),(0,l._)("th",null,(0,h.zw)(e.$t("settings.valid_until")),1),mn])]),(0,l._)("tbody",null,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.oauthTokens,(function(t){return(0,l.wg)(),(0,l.iD)("tr",{key:t.id},[(0,l._)("td",null,(0,h.zw)(t.appName),1),(0,l._)("td",null,(0,h.zw)(t.validUntil),1),(0,l._)("td",hn,[(0,l._)("button",{class:"btn button-default",onClick:function(n){return e.revokeToken(t.id)}},(0,h.zw)(e.$t("settings.revoke_token")),9,fn)])])})),128))])])]),(0,l.Wm)(r),(0,l._)("div",gn,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.account_alias")),1),(0,l._)("table",null,[(0,l._)("thead",null,[(0,l._)("tr",null,[(0,l._)("th",null,(0,h.zw)(e.$t("settings.account_alias_table_head")),1),bn])]),(0,l._)("tbody",null,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.aliases,(function(t){return(0,l.wg)(),(0,l.iD)("tr",{key:t},[(0,l._)("td",null,(0,h.zw)(t),1),(0,l._)("td",wn,[(0,l._)("button",{class:"btn button-default",onClick:function(n){return e.removeAlias(t)}},(0,h.zw)(e.$t("settings.remove_alias")),9,_n)])])})),128))])]),e.listAliasesError?((0,l.wg)(),(0,l.iD)("div",kn,[(0,l.Uk)((0,h.zw)(e.$t("settings.list_aliases_error",{error:e.error}))+" ",1),(0,l.Wm)(i,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("settings.hide_list_aliases_error_action"),onClick:t[7]||(t[7]=function(t){return e.listAliasesError=!1})},null,8,["title"])])):(0,l.kq)("",!0),(0,l._)("div",null,[(0,l.Wm)(u,{path:"settings.new_alias_target",tag:"p"},{default:(0,l.w5)((function(){return[vn]})),_:1}),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.addAliasTarget=t})},null,512),[[de.nr,e.addAliasTarget]])]),(0,l._)("button",{class:"btn button-default",onClick:t[9]||(t[9]=function(){return e.addAlias&&e.addAlias.apply(e,arguments)})},(0,h.zw)(e.$t("settings.save")),1),e.addedAlias?((0,l.wg)(),(0,l.iD)("p",yn,(0,h.zw)(e.$t("settings.added_alias")),1)):(0,l.kq)("",!0),!1!==e.addAliasError?((0,l.wg)(),(0,l.iD)("p",$n,(0,h.zw)(e.$t("settings.add_alias_error",{error:e.addAliasError})),1)):(0,l.kq)("",!0)]),(0,l._)("div",Cn,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.move_account")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.move_account_notes")),1),(0,l._)("div",null,[(0,l.Wm)(u,{path:"settings.move_account_target",tag:"p"},{default:(0,l.w5)((function(){return[Vn]})),_:1}),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[10]||(t[10]=function(t){return e.moveAccountTarget=t})},null,512),[[de.nr,e.moveAccountTarget]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.current_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[11]||(t[11]=function(t){return e.moveAccountPassword=t}),type:"password",autocomplete:"current-password"},null,512),[[de.nr,e.moveAccountPassword]])]),(0,l._)("button",{class:"btn button-default",onClick:t[12]||(t[12]=function(){return e.moveAccount&&e.moveAccount.apply(e,arguments)})},(0,h.zw)(e.$t("settings.save")),1),e.movedAccount?((0,l.wg)(),(0,l.iD)("p",Tn,(0,h.zw)(e.$t("settings.moved_account")),1)):(0,l.kq)("",!0),!1!==e.moveAccountError?((0,l.wg)(),(0,l.iD)("p",xn,(0,h.zw)(e.$t("settings.move_account_error",{error:e.moveAccountError})),1)):(0,l.kq)("",!0)]),(0,l._)("div",Ln,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.delete_account")),1),e.deletingAccount?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("p",Un,(0,h.zw)(e.$t("settings.delete_account_description")),1)),e.deletingAccount?((0,l.wg)(),(0,l.iD)("div",On,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.delete_account_instructions")),1),(0,l._)("p",null,(0,h.zw)(e.$t("login.password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[13]||(t[13]=function(t){return e.deleteAccountConfirmPasswordInput=t}),type:"password"},null,512),[[de.nr,e.deleteAccountConfirmPasswordInput]]),(0,l._)("button",{class:"btn button-default",onClick:t[14]||(t[14]=function(){return e.deleteAccount&&e.deleteAccount.apply(e,arguments)})},(0,h.zw)(e.$t("settings.delete_account")),1)])):(0,l.kq)("",!0),!1!==e.deleteAccountError?((0,l.wg)(),(0,l.iD)("p",Wn,(0,h.zw)(e.$t("settings.delete_account_error")),1)):(0,l.kq)("",!0),e.deleteAccountError?((0,l.wg)(),(0,l.iD)("p",Sn,(0,h.zw)(e.deleteAccountError),1)):(0,l.kq)("",!0),e.deletingAccount?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:4,class:"btn button-default",onClick:t[15]||(t[15]=function(){return e.confirmDelete&&e.confirmDelete.apply(e,arguments)})},(0,h.zw)(e.$t("settings.delete_account")),1))])],8,ln)}]]);var _l={class:"profile-tab"},kl={class:"setting-item"},vl={key:0},yl={key:1},$l=["onUpdate:modelValue","placeholder"],Cl=["onUpdate:modelValue","placeholder"],Vl=["onClick"],Tl=["disabled"],xl={class:"setting-item"},Ll={class:"visibility-notice"},Ul={class:"current-avatar-container"},Ol=["src"],Wl=["title"],Sl={class:"setting-item"},zl={class:"banner-background-preview"},Pl=["src"],Dl=["title"],Il=["src"],jl={class:"setting-item"},Bl={class:"banner-background-preview"},Al=["src"],El=["title"],ql=["src"],Fl={class:"setting-item"},Zl={class:"setting-list"},Ml=n(27955),Rl=n.n(Ml),Nl=n(82492),Hl=n.n(Nl),Yl={class:"image-cropper"},Kl={key:0},Gl={class:"image-cropper-image-container"},Jl=["src"],Ql={class:"image-cropper-buttons-wrapper"},Xl=["disabled","textContent"],ea=["disabled","textContent"],ta=["disabled","textContent"],na=["accept"],la=n(71002),aa=n(33129),oa=n.n(aa);D.vI.add(I.IJ7);const sa={props:{trigger:{type:[String,window.Element],required:!0},submitHandler:{type:Function,required:!0},cropperOptions:{type:Object,default:function(){return{aspectRatio:1,autoCropArea:1,viewMode:1,movable:!1,zoomable:!1,guides:!1}}},mimes:{type:String,default:"image/png, image/gif, image/jpeg, image/bmp, image/x-icon"},saveButtonLabel:{type:String},saveWithoutCroppingButtonlabel:{type:String},cancelButtonLabel:{type:String}},data:function(){return{cropper:void 0,dataUrl:void 0,filename:void 0,submitting:!1}},computed:{saveText:function(){return this.saveButtonLabel||this.$t("image_cropper.save")},saveWithoutCroppingText:function(){return this.saveWithoutCroppingButtonlabel||this.$t("image_cropper.save_without_cropping")},cancelText:function(){return this.cancelButtonLabel||this.$t("image_cropper.cancel")}},methods:{destroy:function(){this.cropper&&this.cropper.destroy(),this.$refs.input.value="",this.dataUrl=void 0,this.$emit("close")},submit:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.submitting=!0,this.submitHandler(t&&this.cropper,this.file).then((function(){return e.destroy()})).finally((function(){e.submitting=!1}))},pickImage:function(){this.$refs.input.click()},createCropper:function(){this.cropper=new(oa())(this.$refs.img,this.cropperOptions)},getTriggerDOM:function(){return"object"===(0,la.Z)(this.trigger)?this.trigger:document.querySelector(this.trigger)},readFile:function(){var e=this,t=this.$refs.input;if(null!=t.files&&null!=t.files[0]){this.file=t.files[0];var n=new window.FileReader;n.onload=function(t){e.dataUrl=t.target.result,e.$emit("open")},n.readAsDataURL(this.file),this.$emit("changed",this.file,n)}}},mounted:function(){var e=this.getTriggerDOM();e?e.addEventListener("click",this.pickImage):this.$emit("error","No image make trigger found.","user"),this.$refs.input.addEventListener("change",this.readFile)},beforeUnmount:function(){var e=this.getTriggerDOM();e&&e.removeEventListener("click",this.pickImage),this.$refs.input.removeEventListener("change",this.readFile)}},ra=(0,B.Z)(sa,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",Yl,[e.dataUrl?((0,l.wg)(),(0,l.iD)("div",Kl,[(0,l._)("div",Gl,[(0,l._)("img",{ref:"img",src:e.dataUrl,alt:"",onLoad:t[0]||(t[0]=(0,de.iM)((function(){return e.createCropper&&e.createCropper.apply(e,arguments)}),["stop"]))},null,40,Jl)]),(0,l._)("div",Ql,[(0,l._)("button",{class:"button-default btn",type:"button",disabled:e.submitting,onClick:t[1]||(t[1]=function(t){return e.submit()}),textContent:(0,h.zw)(e.saveText)},null,8,Xl),(0,l._)("button",{class:"button-default btn",type:"button",disabled:e.submitting,onClick:t[2]||(t[2]=function(){return e.destroy&&e.destroy.apply(e,arguments)}),textContent:(0,h.zw)(e.cancelText)},null,8,ea),(0,l._)("button",{class:"button-default btn",type:"button",disabled:e.submitting,onClick:t[3]||(t[3]=function(t){return e.submit(!1)}),textContent:(0,h.zw)(e.saveWithoutCroppingText)},null,8,ta),e.submitting?((0,l.wg)(),(0,l.j4)(r,{key:0,spin:"",icon:"circle-notch"})):(0,l.kq)("",!0)])])):(0,l.kq)("",!0),(0,l._)("input",{ref:"input",type:"file",class:"image-cropper-img-input",accept:e.mimes},null,8,na)])}]]);var ia=n(4078),ua=n(65079),ca=n(38658),da=n(19003),pa=n(80034);function ma(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function ha(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ma(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ma(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}D.vI.add(I.NBC,I.r8p,I.IJ7);var fa={data:function(){return{newName:this.$store.state.users.currentUser.name_unescaped,newBio:Rl()(this.$store.state.users.currentUser.description),newLocked:this.$store.state.users.currentUser.locked,newFields:this.$store.state.users.currentUser.fields.map((function(e){return{name:e.name,value:e.value}})),showRole:this.$store.state.users.currentUser.show_role,role:this.$store.state.users.currentUser.role,bot:this.$store.state.users.currentUser.bot,pickAvatarBtnVisible:!0,bannerUploading:!1,backgroundUploading:!1,banner:null,bannerPreview:null,background:null,backgroundPreview:null,emailLanguage:this.$store.state.users.currentUser.language||""}},components:{ScopeSelector:ia.Z,ImageCropper:ra,EmojiInput:ca.Z,Autosuggest:ge,ProgressButton:Oe.Z,Checkbox:M.Z,BooleanSetting:Ct,InterfaceLanguageSwitcher:pa.Z},computed:ha(ha({user:function(){return this.$store.state.users.currentUser}},Ot()),{},{emojiUserSuggestor:function(){return(0,da.ZP)({emoji:[].concat((0,Ee.Z)(this.$store.getters.standardEmojiList),(0,Ee.Z)(this.$store.state.instance.customEmoji)),store:this.$store})},emojiSuggestor:function(){return(0,da.ZP)({emoji:[].concat((0,Ee.Z)(this.$store.getters.standardEmojiList),(0,Ee.Z)(this.$store.state.instance.customEmoji))})},userSuggestor:function(){return(0,da.ZP)({store:this.$store})},fieldsLimits:function(){return this.$store.state.instance.fieldsLimits},maxFields:function(){return this.fieldsLimits?this.fieldsLimits.maxFields:0},defaultAvatar:function(){return this.$store.state.instance.server+this.$store.state.instance.defaultAvatar},defaultBanner:function(){return this.$store.state.instance.server+this.$store.state.instance.defaultBanner},isDefaultAvatar:function(){var e=this.$store.state.instance.defaultAvatar;return!this.$store.state.users.currentUser.profile_image_url||this.$store.state.users.currentUser.profile_image_url.includes(e)},isDefaultBanner:function(){var e=this.$store.state.instance.defaultBanner;return!this.$store.state.users.currentUser.cover_photo||this.$store.state.users.currentUser.cover_photo.includes(e)},isDefaultBackground:function(){return!this.$store.state.users.currentUser.background_image},avatarImgSrc:function(){return this.$store.state.users.currentUser.profile_image_url_original||this.defaultAvatar},bannerImgSrc:function(){return this.$store.state.users.currentUser.cover_photo||this.defaultBanner}}),methods:{updateProfile:function(){var e=this,t={note:this.newBio,locked:this.newLocked,display_name:this.newName,fields_attributes:this.newFields.filter((function(e){return null!=e})),bot:this.bot,show_role:this.showRole};this.emailLanguage&&(t.language=gl.Z.internalToBackendLocale(this.emailLanguage)),this.$store.state.api.backendInteractor.updateProfile({params:t}).then((function(t){e.newFields.splice(t.fields.length),Hl()(e.newFields,t.fields),e.$store.commit("addNewUsers",[t]),e.$store.commit("setCurrentUser",t)}))},changeVis:function(e){this.newDefaultScope=e},addField:function(){return this.newFields.length<this.maxFields&&(this.newFields.push({name:"",value:""}),!0)},deleteField:function(e,t){this.$delete(this.newFields,e)},uploadFile:function(e,t){var n=this,l=t.target.files[0];if(l)if(l.size>this.$store.state.instance[e+"limit"]){var a=ua.Z.fileSizeFormat(l.size),o=ua.Z.fileSizeFormat(this.$store.state.instance[e+"limit"]);this.$store.dispatch("pushGlobalNotice",{messageKey:"upload.error.message",messageArgs:[this.$t("upload.error.file_too_big",{filesize:a.num,filesizeunit:a.unit,allowedsize:o.num,allowedsizeunit:o.unit})],level:"error"})}else{var s=new FileReader;s.onload=function(t){var a=t.target.result;n[e+"Preview"]=a,n[e]=l},s.readAsDataURL(l)}},resetAvatar:function(){window.confirm(this.$t("settings.reset_avatar_confirm"))&&this.submitAvatar(void 0,"")},resetBanner:function(){window.confirm(this.$t("settings.reset_banner_confirm"))&&this.submitBanner("")},resetBackground:function(){window.confirm(this.$t("settings.reset_background_confirm"))&&this.submitBackground("")},submitAvatar:function(e,t){var n=this;return new Promise((function(l,a){function o(e,t){n.$store.state.api.backendInteractor.updateProfileImages({avatar:e,avatarName:t}).then((function(e){n.$store.commit("addNewUsers",[e]),n.$store.commit("setCurrentUser",e),l()})).catch((function(e){n.displayUploadError(e),a(e)}))}e?e.getCroppedCanvas().toBlob((function(e){return o(e,t.name)}),t.type):o(t,t.name)}))},submitBanner:function(e){var t=this;(this.bannerPreview||""===e)&&(this.bannerUploading=!0,this.$store.state.api.backendInteractor.updateProfileImages({banner:e}).then((function(e){t.$store.commit("addNewUsers",[e]),t.$store.commit("setCurrentUser",e),t.bannerPreview=null})).catch(this.displayUploadError).finally((function(){t.bannerUploading=!1})))},submitBackground:function(e){var t=this;(this.backgroundPreview||""===e)&&(this.backgroundUploading=!0,this.$store.state.api.backendInteractor.updateProfileImages({background:e}).then((function(e){t.$store.commit("addNewUsers",[e]),t.$store.commit("setCurrentUser",e),t.backgroundPreview=null})).catch(this.displayUploadError).finally((function(){t.backgroundUploading=!1})))},displayUploadError:function(e){this.$store.dispatch("pushGlobalNotice",{messageKey:"upload.error.message",messageArgs:[e.message],level:"error"})}}};const ga=fa,ba=(0,B.Z)(ga,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("EmojiInput"),i=(0,l.up)("Checkbox"),u=(0,l.up)("FAIcon"),c=(0,l.up)("interface-language-switcher"),d=(0,l.up)("image-cropper"),p=(0,l.up)("BooleanSetting");return(0,l.wg)(),(0,l.iD)("div",_l,[(0,l._)("div",kl,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.name_bio")),1),(0,l._)("p",null,(0,h.zw)(e.$t("settings.name")),1),(0,l.Wm)(r,{modelValue:e.newName,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.newName=t}),"enable-emoji-picker":"",suggest:e.emojiSuggestor},{default:(0,l.w5)((function(){return[(0,l.wy)((0,l._)("input",{id:"username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.newName=t}),class:"name-changer"},null,512),[[de.nr,e.newName]])]})),_:1},8,["modelValue","suggest"]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.bio")),1),(0,l.Wm)(r,{modelValue:e.newBio,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.newBio=t}),"enable-emoji-picker":"",suggest:e.emojiUserSuggestor},{default:(0,l.w5)((function(){return[(0,l.wy)((0,l._)("textarea",{"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.newBio=t}),class:"bio resize-height"},null,512),[[de.nr,e.newBio]])]})),_:1},8,["modelValue","suggest"]),"admin"===e.role||"moderator"===e.role?((0,l.wg)(),(0,l.iD)("p",vl,[(0,l.Wm)(i,{modelValue:e.showRole,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.showRole=t})},{default:(0,l.w5)((function(){return["admin"===e.role?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,h.zw)(e.$t("settings.show_admin_badge")),1)],64)):(0,l.kq)("",!0),"moderator"===e.role?((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,h.zw)(e.$t("settings.show_moderator_badge")),1)],64)):(0,l.kq)("",!0)]})),_:1},8,["modelValue"])])):(0,l.kq)("",!0),e.maxFields>0?((0,l.wg)(),(0,l.iD)("div",yl,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.profile_fields.label")),1),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.newFields,(function(t,n){return(0,l.wg)(),(0,l.iD)("div",{key:n,class:"profile-fields"},[(0,l.Wm)(r,{modelValue:e.newFields[n].name,"onUpdate:modelValue":function(t){return e.newFields[n].name=t},"enable-emoji-picker":"","hide-emoji-button":"",suggest:e.userSuggestor},{default:(0,l.w5)((function(){return[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":function(t){return e.newFields[n].name=t},placeholder:e.$t("settings.profile_fields.name")},null,8,$l),[[de.nr,e.newFields[n].name]])]})),_:2},1032,["modelValue","onUpdate:modelValue","suggest"]),(0,l.Wm)(r,{modelValue:e.newFields[n].value,"onUpdate:modelValue":function(t){return e.newFields[n].value=t},"enable-emoji-picker":"","hide-emoji-button":"",suggest:e.userSuggestor},{default:(0,l.w5)((function(){return[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":function(t){return e.newFields[n].value=t},placeholder:e.$t("settings.profile_fields.value")},null,8,Cl),[[de.nr,e.newFields[n].value]])]})),_:2},1032,["modelValue","onUpdate:modelValue","suggest"]),(0,l._)("button",{class:"delete-field button-unstyled -hover-highlight",onClick:function(t){return e.deleteField(n)}},[e.newFields.length>1?((0,l.wg)(),(0,l.j4)(u,{key:0,icon:"times"})):(0,l.kq)("",!0)],8,Vl)])})),128)),e.newFields.length<e.maxFields?((0,l.wg)(),(0,l.iD)("button",{key:0,class:"add-field faint button-unstyled -hover-highlight",onClick:t[5]||(t[5]=function(){return e.addField&&e.addField.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"plus"}),(0,l.Uk)(" "+(0,h.zw)(e.$t("settings.profile_fields.add_field")),1)])):(0,l.kq)("",!0)])):(0,l.kq)("",!0),(0,l._)("p",null,[(0,l.Wm)(i,{modelValue:e.bot,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.bot=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.bot")),1)]})),_:1},8,["modelValue"])]),(0,l._)("p",null,[(0,l.Wm)(c,{"prompt-text":e.$t("settings.email_language"),language:e.emailLanguage,"set-language":function(t){return e.emailLanguage=t}},null,8,["prompt-text","language","set-language"])]),(0,l._)("button",{disabled:e.newName&&0===e.newName.length,class:"btn button-default",onClick:t[7]||(t[7]=function(){return e.updateProfile&&e.updateProfile.apply(e,arguments)})},(0,h.zw)(e.$t("settings.save")),9,Tl)]),(0,l._)("div",xl,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.avatar")),1),(0,l._)("p",Ll,(0,h.zw)(e.$t("settings.avatar_size_instruction")),1),(0,l._)("div",Ul,[(0,l._)("img",{src:e.user.profile_image_url_original,class:"current-avatar"},null,8,Ol),!e.isDefaultAvatar&&e.pickAvatarBtnVisible?((0,l.wg)(),(0,l.iD)("button",{key:0,title:e.$t("settings.reset_avatar"),class:"button-unstyled reset-button",onClick:t[8]||(t[8]=function(){return e.resetAvatar&&e.resetAvatar.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"times",type:"button"})],8,Wl)):(0,l.kq)("",!0)]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.set_new_avatar")),1),(0,l.wy)((0,l._)("button",{id:"pick-avatar",class:"button-default btn",type:"button"},(0,h.zw)(e.$t("settings.upload_a_photo")),513),[[de.F8,e.pickAvatarBtnVisible]]),(0,l.Wm)(d,{trigger:"#pick-avatar","submit-handler":e.submitAvatar,onOpen:t[9]||(t[9]=function(t){return e.pickAvatarBtnVisible=!1}),onClose:t[10]||(t[10]=function(t){return e.pickAvatarBtnVisible=!0})},null,8,["submit-handler"])]),(0,l._)("div",Sl,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.profile_banner")),1),(0,l._)("div",zl,[(0,l._)("img",{src:e.user.cover_photo},null,8,Pl),e.isDefaultBanner?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"button-unstyled reset-button",title:e.$t("settings.reset_profile_banner"),onClick:t[11]||(t[11]=function(){return e.resetBanner&&e.resetBanner.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"times",type:"button"})],8,Dl))]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.set_new_profile_banner")),1),e.bannerPreview?((0,l.wg)(),(0,l.iD)("img",{key:0,class:"banner-background-preview",src:e.bannerPreview},null,8,Il)):(0,l.kq)("",!0),(0,l._)("div",null,[(0,l._)("input",{type:"file",onChange:t[12]||(t[12]=function(t){return e.uploadFile("banner",t)})},null,32)]),e.bannerUploading?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"uploading",spin:"",icon:"circle-notch"})):e.bannerPreview?((0,l.wg)(),(0,l.iD)("button",{key:2,class:"btn button-default",onClick:t[13]||(t[13]=function(t){return e.submitBanner(e.banner)})},(0,h.zw)(e.$t("settings.save")),1)):(0,l.kq)("",!0)]),(0,l._)("div",jl,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.profile_background")),1),(0,l._)("div",Bl,[(0,l._)("img",{src:e.user.background_image},null,8,Al),e.isDefaultBackground?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"button-unstyled reset-button",title:e.$t("settings.reset_profile_background"),onClick:t[14]||(t[14]=function(){return e.resetBackground&&e.resetBackground.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"times",type:"button"})],8,El))]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.set_new_profile_background")),1),e.backgroundPreview?((0,l.wg)(),(0,l.iD)("img",{key:0,class:"banner-background-preview",src:e.backgroundPreview},null,8,ql)):(0,l.kq)("",!0),(0,l._)("div",null,[(0,l._)("input",{type:"file",onChange:t[15]||(t[15]=function(t){return e.uploadFile("background",t)})},null,32)]),e.backgroundUploading?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"uploading",spin:"",icon:"circle-notch"})):e.backgroundPreview?((0,l.wg)(),(0,l.iD)("button",{key:2,class:"btn button-default",onClick:t[16]||(t[16]=function(t){return e.submitBackground(e.background)})},(0,h.zw)(e.$t("settings.save")),1)):(0,l.kq)("",!0)]),(0,l._)("div",Fl,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.account_privacy")),1),(0,l._)("ul",Zl,[(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_locked"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.lock_account_description")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_discoverable"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.discoverable")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_allowFollowingMove"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.allow_following_move")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFavorites"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_favorites_description")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollowers"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_followers_description")),1)]})),_:1}),(0,l._)("ul",{class:(0,h.C_)(["setting-list suboptions",[{disabled:!e.serverSide_hideFollowers}]])},[(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollowersCount",disabled:!e.serverSide_hideFollowers},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_followers_count_description")),1)]})),_:1},8,["disabled"])])],2)]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollows"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_follows_description")),1)]})),_:1}),(0,l._)("ul",{class:(0,h.C_)(["setting-list suboptions",[{disabled:!e.serverSide_hideFollows}]])},[(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollowsCount",disabled:!e.serverSide_hideFollows},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_follows_count_description")),1)]})),_:1},8,["disabled"])])],2)])])])])}]]);var wa=["label"],_a={class:"setting-item"},ka={class:"setting-list"},va={key:0},ya={key:1},$a={key:2},Ca={key:3},Va={class:"column-settings"},Ta={class:"setting-item"},xa={class:"setting-list"},La={key:0,class:"setting-list suboptions"},Ua={class:"setting-list suboptions"},Oa={key:0,class:"unavailable"},Wa={key:1},Sa={key:2},za={key:3},Pa={key:0,class:"setting-item"},Da={class:"setting-list"},Ia={for:"default-vis"},ja={key:0},Ba={key:0,class:"SizeSetting"},Aa=["for"],Ea=["id","disabled","min","value"],qa=["value"],Fa=["cm","mm","in","px","pt","pc","em","ex","ch","rem","vw","vh","vmin","vmax","%"],Za=["px","rem","vw"];const Ma={components:{ModifiedIndicator:bt,Select:Rt.Z},props:{path:String,disabled:Boolean,min:Number,units:{type:[String],default:function(){return Fa}},expert:[Number,String]},computed:{pathDefault:function(){var e=this.path.split("."),t=(0,ct.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,Ee.Z)(l)).join(".")},stateUnit:function(){return(this.state||"").replace(/\d+/,"")},stateValue:function(){return(this.state||"").replace(/\D+/,"")},state:function(){var e=se()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return se()(this.$parent,this.pathDefault)},isChanged:function(){return this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){pt()(this.$parent,this.path,e)},reset:function(){pt()(this.$parent,this.path,this.defaultState)},updateValue:function(e){pt()(this.$parent,this.path,parseInt(e.target.value)+this.stateUnit)},updateUnit:function(e){pt()(this.$parent,this.path,this.stateValue+e.target.value)}}},Ra=(0,B.Z)(Ma,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("ModifiedIndicator");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("span",Ba,[(0,l._)("label",{for:e.path,class:"size-label"},[(0,l.WI)(e.$slots,"default")],8,Aa),(0,l._)("input",{id:e.path,class:"number-input",type:"number",step:"1",disabled:e.disabled,min:e.min||0,value:e.stateValue,onChange:t[0]||(t[0]=function(){return e.updateValue&&e.updateValue.apply(e,arguments)})},null,40,Ea),(0,l.Wm)(r,{id:e.path,"model-value":e.stateUnit,disabled:e.disabled,class:"css-unit-input",onChange:e.updateUnit},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.units,(function(e){return(0,l.wg)(),(0,l.iD)("option",{key:e,value:e},(0,h.zw)(e),9,qa)})),128))]})),_:1},8,["id","model-value","disabled","onChange"]),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l.Wm)(i,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"])])):(0,l.kq)("",!0)}]]);function Na(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}D.vI.add(I.g4A);const Ha={data:function(){var e=this;return{subjectLineOptions:["email","noop","masto"].map((function(t){return{key:t,value:t,label:e.$t("settings.subject_line_".concat("masto"===t?"mastodon":t))}})),conversationDisplayOptions:["tree","linear"].map((function(t){return{key:t,value:t,label:e.$t("settings.conversation_display_".concat(t))}})),conversationOtherRepliesButtonOptions:["below","inside"].map((function(t){return{key:t,value:t,label:e.$t("settings.conversation_other_replies_button_".concat(t))}})),mentionLinkDisplayOptions:["short","full_for_remote","full"].map((function(t){return{key:t,value:t,label:e.$t("settings.mention_link_display_".concat(t))}})),thirdColumnModeOptions:["none","notifications","postform"].map((function(t){return{key:t,value:t,label:e.$t("settings.third_column_mode_".concat(t))}})),userPopoverAvatarActionOptions:["close","zoom","open"].map((function(t){return{key:t,value:t,label:e.$t("settings.user_popover_avatar_action_".concat(t))}})),loopSilentAvailable:Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype,"mozHasAudio")||Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"webkitAudioDecodedByteCount")||Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"audioTracks")}},components:{BooleanSetting:Ct,ChoiceSetting:Ht,IntegerSetting:Qt,SizeSetting:Ra,InterfaceLanguageSwitcher:pa.Z,ScopeSelector:ia.Z,ServerSideIndicator:vt},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Na(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Na(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({horizontalUnits:function(){return Za},postFormats:function(){return this.$store.state.instance.postFormats||[]},postContentOptions:function(){var e=this;return this.postFormats.map((function(t){return{key:t,value:t,label:e.$t('post_status.content_type["'.concat(t,'"]'))}}))},columns:function(){var e=this.$store.getters.mergedConfig.thirdColumnMode,t="none"===e?[]:["notifs"];return this.$store.getters.mergedConfig.sidebarRight||"postform"===e?[].concat(t,["content","sidebar"]):["sidebar","content"].concat(t)},instanceSpecificPanelPresent:function(){return this.$store.state.instance.showInstanceSpecificPanel},instanceWallpaperUsed:function(){return this.$store.state.instance.background&&!this.$store.state.users.currentUser.background_image},instanceShoutboxPresent:function(){return this.$store.state.instance.shoutAvailable},language:{get:function(){return this.$store.getters.mergedConfig.interfaceLanguage},set:function(e){this.$store.dispatch("setOption",{name:"interfaceLanguage",value:e})}}},Ot()),methods:{changeDefaultScope:function(e){this.$store.dispatch("setServerSideOption",{name:"defaultScope",value:e})}}},Ya=(0,B.Z)(Ha,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("interface-language-switcher"),i=(0,l.up)("BooleanSetting"),u=(0,l.up)("ChoiceSetting"),c=(0,l.up)("SizeSetting"),d=(0,l.up)("IntegerSetting"),p=(0,l.up)("FAIcon"),m=(0,l.up)("ServerSideIndicator"),f=(0,l.up)("ScopeSelector");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.general")},[(0,l._)("div",_a,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.interface")),1),(0,l._)("ul",ka,[(0,l._)("li",null,[(0,l.Wm)(r,{"prompt-text":e.$t("settings.interfaceLanguage"),language:e.language,"set-language":function(t){return e.language=t}},null,8,["prompt-text","language","set-language"])]),e.instanceSpecificPanelPresent?((0,l.wg)(),(0,l.iD)("li",va,[(0,l.Wm)(i,{path:"hideISP"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_isp")),1)]})),_:1})])):(0,l.kq)("",!0),e.instanceWallpaperUsed?((0,l.wg)(),(0,l.iD)("li",ya,[(0,l.Wm)(i,{path:"hideInstanceWallpaper"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_wallpaper")),1)]})),_:1})])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"stopGifs"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.stop_gifs")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"streaming"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.streaming")),1)]})),_:1}),(0,l._)("ul",{class:(0,h.C_)(["setting-list suboptions",[{disabled:!e.streaming}]])},[(0,l._)("li",null,[(0,l.Wm)(i,{path:"pauseOnUnfocused",disabled:!e.streaming},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.pause_on_unfocused")),1)]})),_:1},8,["disabled"])])],2)]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useStreamingApi",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.useStreamingApi")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"virtualScrolling",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.virtual_scrolling")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(u,{id:"userPopoverAvatarAction",path:"userPopoverAvatarAction",options:e.userPopoverAvatarActionOptions,expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.user_popover_avatar_action")),1)]})),_:1},8,["options"])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"userPopoverOverlay",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.user_popover_avatar_overlay")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"alwaysShowNewPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.always_show_post_button")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"autohideFloatingPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.autohide_floating_post_button")),1)]})),_:1})]),e.instanceShoutboxPresent?((0,l.wg)(),(0,l.iD)("li",$a,[(0,l.Wm)(i,{path:"hideShoutbox",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.hide_shoutbox")),1)]})),_:1})])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l._)("h3",null,(0,h.zw)(e.$t("settings.columns")),1)]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"disableStickyHeaders"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.disable_sticky_headers")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"showScrollbars"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.show_scrollbars")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"sidebarRight"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.right_sidebar")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"navbarColumnStretch"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.navbar_column_stretch")),1)]})),_:1})]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(u,{key:0,id:"thirdColumnMode",path:"thirdColumnMode",options:e.thirdColumnModeOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.third_column_mode")),1)]})),_:1},8,["options"])):(0,l.kq)("",!0)]),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("li",Ca,[(0,l.Uk)((0,h.zw)(e.$t("settings.column_sizes"))+" ",1),(0,l._)("div",Va,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.columns,(function(t){return(0,l.wg)(),(0,l.j4)(c,{key:t,path:t+"ColumnWidth",units:e.horizontalUnits,expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.column_sizes_"+t)),1)]})),_:2},1032,["path","units"])})),128))])])):(0,l.kq)("",!0)])]),(0,l._)("div",Ta,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.post_look_feel")),1),(0,l._)("ul",xa,[(0,l._)("li",null,[(0,l.Wm)(u,{id:"conversationDisplay",path:"conversationDisplay",options:e.conversationDisplayOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.conversation_display")),1)]})),_:1},8,["options"])]),"linear"!==e.conversationDisplay?((0,l.wg)(),(0,l.iD)("ul",La,[(0,l._)("li",null,[(0,l.Wm)(i,{path:"conversationTreeAdvanced"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.tree_advanced")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"conversationTreeFadeAncestors",expert:1},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.tree_fade_ancestors")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(d,{path:"maxDepthInThread",min:3,expert:1},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.max_depth_in_thread")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(u,{id:"conversationOtherRepliesButton",path:"conversationOtherRepliesButton",options:e.conversationOtherRepliesButtonOptions,expert:1},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.conversation_other_replies_button")),1)]})),_:1},8,["options"])])])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"collapseMessageWithSubject"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.collapse_subject")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"emojiReactionsOnTimeline",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.emoji_reactions_on_timeline")),1)]})),_:1})]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(i,{key:0,path:"serverSide_stripRichContent",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.no_rich_text_description")),1)]})),_:1})):(0,l.kq)("",!0)]),(0,l._)("h3",null,(0,h.zw)(e.$t("settings.attachments")),1),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useContainFit",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.use_contain_fit")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"hideNsfw"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.nsfw_clickthrough")),1)]})),_:1})]),(0,l._)("ul",Ua,[(0,l._)("li",null,[(0,l.Wm)(i,{path:"preloadImage",expert:"1",disabled:!e.hideNsfw},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.preload_images")),1)]})),_:1},8,["disabled"])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useOneClickNsfw",expert:"1",disabled:!e.hideNsfw},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.use_one_click_nsfw")),1)]})),_:1},8,["disabled"])])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"loopVideo",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.loop_video")),1)]})),_:1}),(0,l._)("ul",{class:(0,h.C_)(["setting-list suboptions",[{disabled:!e.streaming}]])},[(0,l._)("li",null,[(0,l.Wm)(i,{path:"loopVideoSilentOnly",expert:"1",disabled:!e.loopVideo||!e.loopSilentAvailable},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.loop_video_silent_only")),1)]})),_:1},8,["disabled"]),e.loopSilentAvailable?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("div",Oa,[(0,l.Wm)(p,{icon:"globe"}),(0,l.Uk)("! "+(0,h.zw)(e.$t("settings.limited_availability")),1)]))])],2)]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"playVideosInModal",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.play_videos_in_modal")),1)]})),_:1})]),(0,l._)("h3",null,(0,h.zw)(e.$t("settings.mention_links")),1),(0,l._)("li",null,[(0,l.Wm)(u,{id:"mentionLinkDisplay",path:"mentionLinkDisplay",options:e.mentionLinkDisplayOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.mention_link_display")),1)]})),_:1},8,["options"])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"mentionLinkShowTooltip",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.mention_link_use_tooltip")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useAtIcon",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.use_at_icon")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"mentionLinkShowAvatar"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.mention_link_show_avatar")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"mentionLinkFadeDomain",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.mention_link_fade_domain")),1)]})),_:1})]),e.user?((0,l.wg)(),(0,l.iD)("li",Wa,[(0,l.Wm)(i,{path:"mentionLinkBoldenYou",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.mention_link_bolden_you")),1)]})),_:1})])):(0,l.kq)("",!0),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("h3",Sa,(0,h.zw)(e.$t("settings.fun")),1)):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"greentext",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.greentext")),1)]})),_:1})]),e.user?((0,l.wg)(),(0,l.iD)("li",za,[(0,l.Wm)(i,{path:"mentionLinkShowYous",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.show_yous")),1)]})),_:1})])):(0,l.kq)("",!0)])]),e.user?((0,l.wg)(),(0,l.iD)("div",Pa,[(0,l._)("h2",null,(0,h.zw)(e.$t("settings.composing")),1),(0,l._)("ul",Da,[(0,l._)("li",null,[(0,l._)("label",Ia,[(0,l.Uk)((0,h.zw)(e.$t("settings.default_vis"))+" ",1),(0,l.Wm)(m,{"server-side":!0}),(0,l.Wm)(f,{class:"scope-selector","show-all":!0,"user-default":e.serverSide_defaultScope,"initial-scope":e.serverSide_defaultScope,"on-scope-change":e.changeDefaultScope},null,8,["user-default","initial-scope","on-scope-change"])])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"sensitiveByDefault"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.sensitive_by_default")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"scopeCopy",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.scope_copy")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"alwaysShowSubjectInput",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.subject_input_always_show")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(u,{id:"subjectLineBehavior",path:"subjectLineBehavior",options:e.subjectLineOptions,expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.subject_line_behavior")),1)]})),_:1},8,["options"])]),e.postFormats.length>0?((0,l.wg)(),(0,l.iD)("li",ja,[(0,l.Wm)(u,{id:"postContentType",path:"postContentType",options:e.postContentOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.post_status_content_type")),1)]})),_:1},8,["options"])])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"minimalScopesMode",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.minimal_scopes_mode")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"alwaysShowNewPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.always_show_post_button")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"autohideFloatingPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.autohide_floating_post_button")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"padEmoji",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.pad_emoji")),1)]})),_:1})])])])):(0,l.kq)("",!0)],8,wa)}]]);var Ka=["label"],Ga={class:"setting-item"},Ja={class:"setting-list"},Qa={class:"option-list"},Xa=["href"],eo={class:"option-list"},to=["href"];const no={data:function(){var e=this.$store.state.instance;return{backendVersion:e.backendVersion,frontendVersion:e.frontendVersion}},computed:{frontendVersionLink:function(){return"https://git.pleroma.social/pleroma/pleroma-fe/commit/"+this.frontendVersion},backendVersionLink:function(){return"https://git.pleroma.social/pleroma/pleroma/commit/"+((e=this.backendVersion.match(/-g(\w+)/i))?e[1]:"");var e}}},lo=(0,B.Z)(no,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.version.title")},[(0,l._)("div",Ga,[(0,l._)("ul",Ja,[(0,l._)("li",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.version.backend_version")),1),(0,l._)("ul",Qa,[(0,l._)("li",null,[(0,l._)("a",{href:e.backendVersionLink,target:"_blank"},(0,h.zw)(e.backendVersion),9,Xa)])])]),(0,l._)("li",null,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.version.frontend_version")),1),(0,l._)("ul",eo,[(0,l._)("li",null,[(0,l._)("a",{href:e.frontendVersionLink,target:"_blank"},(0,h.zw)(e.frontendVersion),9,to)])])])])])],8,Ka)}]]);var ao={class:"theme-tab"},oo={class:"presets-container"},so={class:"save-load"},ro={key:0,class:"theme-warning"},io={class:"alert warning"},uo={class:"buttons"},co={class:"top"},po={class:"presets"},mo={for:"preset-switcher",class:"select"},ho=["value"],fo={class:"export-import"},go={class:"save-load-options"},bo={class:"keep-option"},wo={class:"keep-option"},_o={class:"keep-option"},ko={class:"keep-option"},vo={class:"keep-option"},yo=["label"],$o={class:"tab-header"},Co={class:"tab-header-buttons"},Vo={class:"color-item"},To={class:"color-item"},xo={class:"color-item"},Lo={class:"color-item"},Uo=["label"],Oo={class:"tab-header"},Wo={class:"color-item"},So={class:"color-item"},zo={class:"color-item"},Po={class:"color-item"},Do={class:"color-item"},Io={class:"color-item"},jo={class:"color-item"},Bo={class:"color-item"},Ao={class:"color-item"},Eo={class:"color-item"},qo={class:"color-item"},Fo={class:"color-item"},Zo={class:"color-item"},Mo={class:"color-item"},Ro={class:"color-item"},No={class:"color-item"},Ho={class:"color-item"},Yo={class:"color-item"},Ko=["label"],Go={class:"tab-header"},Jo=["label"],Qo={class:"tab-header shadow-selector"},Xo={class:"select-container"},es=["value"],ts={class:"override"},ns={for:"override",class:"label"},ls=(0,l._)("label",{class:"checkbox-label",for:"override"},null,-1),as={key:0},os=(0,l._)("code",null,"filter: drop-shadow()",-1),ss=(0,l._)("code",null,"drop-shadow",-1),rs=(0,l._)("code",null,"spread-radius",-1),is=(0,l._)("code",null,"inset",-1),us=(0,l._)("code",null,"box-shadow",-1),cs=["label"],ds={class:"tab-header"},ps={class:"apply-container"},ms=["disabled"],hs=n(21865),fs=n(77394),gs=n(25771),bs=n(44551),ws=n(40454),_s=["for"],ks={class:"input color-input-field"},vs=["id","value","disabled"],ys=["id","value","disabled"],$s={key:1,class:"transparentIndicator"};const Cs={components:{Checkbox:M.Z},props:{name:{required:!0,type:String},label:{required:!0,type:String},modelValue:{required:!1,type:String,default:void 0},fallback:{required:!1,type:String,default:void 0},disabled:{required:!1,type:Boolean,default:!1},showOptionalTickbox:{required:!1,type:Boolean,default:!0}},emits:["update:modelValue"],computed:{present:function(){return void 0!==this.modelValue},validColor:function(){return(0,hs.wK)(this.modelValue||this.fallback)},transparentColor:function(){return"transparent"===this.modelValue},computedColor:function(){return this.modelValue&&this.modelValue.startsWith("--")}}},Vs=(0,B.Z)(Cs,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Checkbox");return(0,l.wg)(),(0,l.iD)("div",{class:(0,h.C_)(["color-input style-control",{disabled:!s.present||n.disabled}])},[(0,l._)("label",{for:n.name,class:"label"},(0,h.zw)(n.label),9,_s),void 0!==n.fallback&&n.showOptionalTickbox?((0,l.wg)(),(0,l.j4)(r,{key:0,"model-value":s.present,disabled:n.disabled,class:"opt","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.$emit("update:modelValue",void 0===n.modelValue?n.fallback:void 0)})},null,8,["model-value","disabled"])):(0,l.kq)("",!0),(0,l._)("div",ks,[(0,l._)("input",{id:n.name+"-t",class:"textColor unstyled",type:"text",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,onInput:t[1]||(t[1]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,vs),s.validColor?((0,l.wg)(),(0,l.iD)("input",{key:0,id:n.name,class:"nativeColor unstyled",type:"color",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,onInput:t[2]||(t[2]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,ys)):(0,l.kq)("",!0),s.transparentColor?((0,l.wg)(),(0,l.iD)("div",$s)):(0,l.kq)("",!0),s.computedColor?((0,l.wg)(),(0,l.iD)("div",{key:2,class:"computedIndicator",style:(0,h.j5)({backgroundColor:n.fallback})},null,4)):(0,l.kq)("",!0)])],2)}]]);var Ts=["for"],xs=["id","checked"],Ls=["for"],Us=["id","value","disabled","max","min","step"],Os=["id","value","disabled","max","min","step"];const Ws={props:["name","modelValue","fallback","disabled","label","max","min","step","hardMin","hardMax"],emits:["update:modelValue"],computed:{present:function(){return void 0!==this.modelValue}}},Ss=(0,B.Z)(Ws,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",{class:(0,h.C_)(["range-control style-control",{disabled:!s.present||n.disabled}])},[(0,l._)("label",{for:n.name,class:"label"},(0,h.zw)(n.label),9,Ts),void 0!==n.fallback?((0,l.wg)(),(0,l.iD)("input",{key:0,id:n.name+"-o",class:"opt",type:"checkbox",checked:s.present,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",s.present?void 0:n.fallback)})},null,40,xs)):(0,l.kq)("",!0),void 0!==n.fallback?((0,l.wg)(),(0,l.iD)("label",{key:1,class:"opt-l",for:n.name+"-o"},null,8,Ls)):(0,l.kq)("",!0),(0,l._)("input",{id:n.name,class:"input-number",type:"range",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,max:n.max||n.hardMax||100,min:n.min||n.hardMin||0,step:n.step||1,onInput:t[1]||(t[1]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,Us),(0,l._)("input",{id:n.name,class:"input-number",type:"number",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,max:n.hardMax,min:n.hardMin,step:n.step||1,onInput:t[2]||(t[2]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,Os)],2)}]]);var zs=["for"],Ps=["id","value","disabled"];const Ds={components:{Checkbox:M.Z},props:["name","modelValue","fallback","disabled"],emits:["update:modelValue"],computed:{present:function(){return void 0!==this.modelValue}}},Is=(0,B.Z)(Ds,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Checkbox");return(0,l.wg)(),(0,l.iD)("div",{class:(0,h.C_)(["opacity-control style-control",{disabled:!s.present||n.disabled}])},[(0,l._)("label",{for:n.name,class:"label"},(0,h.zw)(e.$t("settings.style.common.opacity")),9,zs),void 0!==n.fallback?((0,l.wg)(),(0,l.j4)(r,{key:0,"model-value":s.present,disabled:n.disabled,class:"opt","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.$emit("update:modelValue",s.present?void 0:n.fallback)})},null,8,["model-value","disabled"])):(0,l.kq)("",!0),(0,l._)("input",{id:n.name,class:"input-number",type:"number",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,max:"1",min:"0",step:".05",onInput:t[1]||(t[1]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,Ps)],2)}]]);var js={class:"shadow-preview-container"},Bs=["disabled"],As=["disabled"],Es={class:"wrap"},qs=["disabled"],Fs={class:"preview-window"},Zs=["disabled"],Ms=["disabled"],Rs={class:"wrap"},Ns=["disabled"],Hs={class:"shadow-tweak"},Ys=["disabled"],Ks=["value"],Gs=["disabled"],Js=["disabled"],Qs=["disabled"],Xs=["disabled"],er=["disabled"],tr={for:"inset",class:"label"},nr=["disabled"],lr=(0,l._)("label",{class:"checkbox-label",for:"inset"},null,-1),ar=["disabled"],or={for:"spread",class:"label"},sr=["disabled"],rr=["disabled"],ir=["disabled"],ur={for:"spread",class:"label"},cr=["disabled"],dr=["disabled"],pr=(0,l._)("code",null,"--variable,mod",-1);function mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function hr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mr(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}D.vI.add(I.ptq,I.mTx,I.NBC,I.r8p);var fr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return hr({x:0,y:0,blur:0,spread:0,inset:!1,color:"#000000",alpha:1},e)};const gr={props:["modelValue","fallback","ready"],emits:["update:modelValue"],data:function(){return{selectedId:0,cValue:(this.modelValue||this.fallback||[]).map(fr)}},components:{ColorInput:Vs,OpacityInput:Is,Select:Rt.Z},methods:{add:function(){this.cValue.push(fr(this.selected)),this.selectedId=this.cValue.length-1},del:function(){this.cValue.splice(this.selectedId,1),this.selectedId=0===this.cValue.length?void 0:Math.max(this.selectedId-1,0)},moveUp:function(){var e=this.cValue.splice(this.selectedId,1)[0];this.cValue.splice(this.selectedId-1,0,e),this.selectedId-=1},moveDn:function(){var e=this.cValue.splice(this.selectedId,1)[0];this.cValue.splice(this.selectedId+1,0,e),this.selectedId+=1}},beforeUpdate:function(){this.cValue=this.modelValue||this.fallback},computed:{anyShadows:function(){return this.cValue.length>0},anyShadowsFallback:function(){return this.fallback.length>0},selected:function(){return this.ready&&this.anyShadows?this.cValue[this.selectedId]:fr({})},currentFallback:function(){return this.ready&&this.anyShadowsFallback?this.fallback[this.selectedId]:fr({})},moveUpValid:function(){return this.ready&&this.selectedId>0},moveDnValid:function(){return this.ready&&this.selectedId<this.cValue.length-1},present:function(){return this.ready&&void 0!==this.cValue[this.selectedId]&&!this.usingFallback},usingFallback:function(){return void 0===this.modelValue},rgb:function(){return(0,hs.wK)(this.selected.color)},style:function(){return this.ready?{boxShadow:(0,fs.Ot)(this.fallback)}:{}}}},br=(0,B.Z)(gr,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("FAIcon"),u=(0,l.up)("ColorInput"),c=(0,l.up)("OpacityInput"),d=(0,l.up)("i18n-t");return(0,l.wg)(),(0,l.iD)("div",{class:(0,h.C_)(["shadow-control",{disabled:!e.present}])},[(0,l._)("div",js,[(0,l._)("div",{disabled:!e.present,class:"y-shift-control"},[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.selected.y=t}),disabled:!e.present,class:"input-number",type:"number"},null,8,As),[[de.nr,e.selected.y]]),(0,l._)("div",Es,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.selected.y=t}),disabled:!e.present,class:"input-range",type:"range",max:"20",min:"-20"},null,8,qs),[[de.nr,e.selected.y]])])],8,Bs),(0,l._)("div",Fs,[(0,l._)("div",{class:"preview-block",style:(0,h.j5)(e.style)},null,4)]),(0,l._)("div",{disabled:!e.present,class:"x-shift-control"},[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.selected.x=t}),disabled:!e.present,class:"input-number",type:"number"},null,8,Ms),[[de.nr,e.selected.x]]),(0,l._)("div",Rs,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.selected.x=t}),disabled:!e.present,class:"input-range",type:"range",max:"20",min:"-20"},null,8,Ns),[[de.nr,e.selected.x]])])],8,Zs)]),(0,l._)("div",Hs,[(0,l._)("div",{disabled:e.usingFallback,class:"id-control style-control"},[(0,l.Wm)(r,{id:"shadow-switcher",modelValue:e.selectedId,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.selectedId=t}),class:"shadow-switcher",disabled:!e.ready||e.usingFallback},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.cValue,(function(t,n){return(0,l.wg)(),(0,l.iD)("option",{key:n,value:n},(0,h.zw)(e.$t("settings.style.shadows.shadow_id",{value:n})),9,Ks)})),128))]})),_:1},8,["modelValue","disabled"]),(0,l._)("button",{class:"btn button-default",disabled:!e.ready||!e.present,onClick:t[5]||(t[5]=function(){return e.del&&e.del.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"times"})],8,Gs),(0,l._)("button",{class:"btn button-default",disabled:!e.moveUpValid,onClick:t[6]||(t[6]=function(){return e.moveUp&&e.moveUp.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"chevron-up"})],8,Js),(0,l._)("button",{class:"btn button-default",disabled:!e.moveDnValid,onClick:t[7]||(t[7]=function(){return e.moveDn&&e.moveDn.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"chevron-down"})],8,Qs),(0,l._)("button",{class:"btn button-default",disabled:e.usingFallback,onClick:t[8]||(t[8]=function(){return e.add&&e.add.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"plus"})],8,Xs)],8,Ys),(0,l._)("div",{disabled:!e.present,class:"inset-control style-control"},[(0,l._)("label",tr,(0,h.zw)(e.$t("settings.style.shadows.inset")),1),(0,l.wy)((0,l._)("input",{id:"inset","onUpdate:modelValue":t[9]||(t[9]=function(t){return e.selected.inset=t}),disabled:!e.present,name:"inset",class:"input-inset",type:"checkbox"},null,8,nr),[[de.e8,e.selected.inset]]),lr],8,er),(0,l._)("div",{disabled:!e.present,class:"blur-control style-control"},[(0,l._)("label",or,(0,h.zw)(e.$t("settings.style.shadows.blur")),1),(0,l.wy)((0,l._)("input",{id:"blur","onUpdate:modelValue":t[10]||(t[10]=function(t){return e.selected.blur=t}),disabled:!e.present,name:"blur",class:"input-range",type:"range",max:"20",min:"0"},null,8,sr),[[de.nr,e.selected.blur]]),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[11]||(t[11]=function(t){return e.selected.blur=t}),disabled:!e.present,class:"input-number",type:"number",min:"0"},null,8,rr),[[de.nr,e.selected.blur]])],8,ar),(0,l._)("div",{disabled:!e.present,class:"spread-control style-control"},[(0,l._)("label",ur,(0,h.zw)(e.$t("settings.style.shadows.spread")),1),(0,l.wy)((0,l._)("input",{id:"spread","onUpdate:modelValue":t[12]||(t[12]=function(t){return e.selected.spread=t}),disabled:!e.present,name:"spread",class:"input-range",type:"range",max:"20",min:"-20"},null,8,cr),[[de.nr,e.selected.spread]]),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[13]||(t[13]=function(t){return e.selected.spread=t}),disabled:!e.present,class:"input-number",type:"number"},null,8,dr),[[de.nr,e.selected.spread]])],8,ir),(0,l.Wm)(u,{modelValue:e.selected.color,"onUpdate:modelValue":t[14]||(t[14]=function(t){return e.selected.color=t}),disabled:!e.present,label:e.$t("settings.style.common.color"),fallback:e.currentFallback.color,"show-optional-tickbox":!1,name:"shadow"},null,8,["modelValue","disabled","label","fallback"]),(0,l.Wm)(c,{modelValue:e.selected.alpha,"onUpdate:modelValue":t[15]||(t[15]=function(t){return e.selected.alpha=t}),disabled:!e.present},null,8,["modelValue","disabled"]),(0,l.Wm)(d,{scope:"global",keypath:"settings.style.shadows.hintV3",tag:"p"},{default:(0,l.w5)((function(){return[pr]})),_:1})])],2)}]]);var wr=["for"],_r=["id","checked"],kr=["for"],vr=["value"],yr=["id"];const $r={components:{Select:Rt.Z},props:["name","label","modelValue","fallback","options","no-inherit"],emits:["update:modelValue"],data:function(){return{lValue:this.modelValue,availableOptions:[this.noInherit?"":"inherit","custom"].concat((0,Ee.Z)(this.options||[]),["serif","monospace","sans-serif"]).filter((function(e){return e}))}},beforeUpdate:function(){this.lValue=this.modelValue},computed:{present:function(){return void 0!==this.lValue},dValue:function(){return this.lValue||this.fallback||{}},family:{get:function(){return this.dValue.family},set:function(e){pt()(this.lValue,"family",e),this.$emit("update:modelValue",this.lValue)}},isCustom:function(){return"custom"===this.preset},preset:{get:function(){return"serif"===this.family||"sans-serif"===this.family||"monospace"===this.family||"inherit"===this.family?this.family:"custom"},set:function(e){this.family="custom"===e?"":e}}}},Cr=(0,B.Z)($r,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select");return(0,l.wg)(),(0,l.iD)("div",{class:(0,h.C_)(["font-control style-control",{custom:e.isCustom}])},[(0,l._)("label",{for:"custom"===e.preset?e.name:e.name+"-font-switcher",class:"label"},(0,h.zw)(e.label),9,wr),void 0!==e.fallback?((0,l.wg)(),(0,l.iD)("input",{key:0,id:e.name+"-o",class:"opt exlcude-disabled",type:"checkbox",checked:e.present,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",void 0===e.modelValue?e.fallback:void 0)})},null,40,_r)):(0,l.kq)("",!0),void 0!==e.fallback?((0,l.wg)(),(0,l.iD)("label",{key:1,class:"opt-l",for:e.name+"-o"},null,8,kr)):(0,l.kq)("",!0),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l.Wm)(r,{id:e.name+"-font-switcher",modelValue:e.preset,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.preset=t}),disabled:!e.present,class:"font-switcher"},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.availableOptions,(function(t){return(0,l.wg)(),(0,l.iD)("option",{key:t,value:t},(0,h.zw)("custom"===t?e.$t("settings.style.fonts.custom"):t),9,vr)})),128))]})),_:1},8,["id","modelValue","disabled"]),e.isCustom?(0,l.wy)(((0,l.wg)(),(0,l.iD)("input",{key:2,id:e.name,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.family=t}),class:"custom-font",type:"text"},null,8,yr)),[[de.nr,e.family]]):(0,l.kq)("",!0)],2)}]]);var Vr={key:0,class:"contrast-ratio"},Tr=["title"],xr={key:0},Lr={key:1},Ur={key:2},Or=["title"],Wr={key:0},Sr={key:1},zr={key:2};D.vI.add(I.OwZ,I.eHv,I.u8Q);const Pr={props:{large:{required:!1,type:Boolean,default:!1},contrast:{required:!1,type:Object,default:function(){return{}}}},computed:{hint:function(){var e=this.contrast.aaa?"aaa":this.contrast.aa?"aa":"bad",t=this.$t("settings.style.common.contrast.level.".concat(e)),n=this.$t("settings.style.common.contrast.context.text"),l=this.contrast.text;return this.$t("settings.style.common.contrast.hint",{level:t,context:n,ratio:l})},hint_18pt:function(){var e=this.contrast.laaa?"aaa":this.contrast.laa?"aa":"bad",t=this.$t("settings.style.common.contrast.level.".concat(e)),n=this.$t("settings.style.common.contrast.context.18pt"),l=this.contrast.text;return this.$t("settings.style.common.contrast.hint",{level:t,context:n,ratio:l})}}},Dr=(0,B.Z)(Pr,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return n.contrast?((0,l.wg)(),(0,l.iD)("span",Vr,[(0,l._)("span",{title:s.hint,class:"rating"},[n.contrast.aaa?((0,l.wg)(),(0,l.iD)("span",xr,[(0,l.Wm)(r,{icon:"thumbs-up"})])):(0,l.kq)("",!0),!n.contrast.aaa&&n.contrast.aa?((0,l.wg)(),(0,l.iD)("span",Lr,[(0,l.Wm)(r,{icon:"adjust"})])):(0,l.kq)("",!0),n.contrast.aaa||n.contrast.aa?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("span",Ur,[(0,l.Wm)(r,{icon:"exclamation-triangle"})]))],8,Tr),n.contrast&&n.large?((0,l.wg)(),(0,l.iD)("span",{key:0,class:"rating",title:s.hint_18pt},[n.contrast.laaa?((0,l.wg)(),(0,l.iD)("span",Wr,[(0,l.Wm)(r,{icon:"thumbs-up"})])):(0,l.kq)("",!0),!n.contrast.laaa&&n.contrast.laa?((0,l.wg)(),(0,l.iD)("span",Sr,[(0,l.Wm)(r,{icon:"adjust"})])):(0,l.kq)("",!0),n.contrast.laaa||n.contrast.laa?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("span",zr,[(0,l.Wm)(r,{icon:"exclamation-triangle"})]))],8,Or)):(0,l.kq)("",!0)])):(0,l.kq)("",!0)}]]);var Ir={class:"preview-container"},jr=(0,l._)("div",{class:"underlay underlay-preview"},null,-1),Br={class:"panel dummy"},Ar={class:"panel-heading"},Er={class:"title"},qr=(0,l._)("span",{class:"badge badge-notification"}," 99 ",-1),Fr={class:"faint"},Zr={class:"alert error"},Mr={class:"btn button-default"},Rr={class:"panel-body theme-preview-content"},Nr={class:"post"},Hr=(0,l._)("div",{class:"avatar still-image"}," ( ͡° ͜ʖ ͡°) ",-1),Yr={class:"content"},Kr={style:{"font-family":"var(--postCodeFont)"}},Gr={style:{color:"var(--link)"}},Jr={class:"icons"},Qr={class:"after-post"},Xr=(0,l._)("div",{class:"avatar-alt"}," :^) ",-1),ei={class:"content"},ti={style:{color:"var(--faintLink)"}},ni=(0,l._)("div",{class:"separator"},null,-1),li={class:"alert error"},ai=["value"],oi={class:"actions"},si={class:"checkbox"},ri=(0,l._)("input",{id:"preview_checkbox",checked:"very yes",type:"checkbox"},null,-1),ii={for:"preview_checkbox"},ui={class:"btn button-default"};D.vI.add(I.NBC,I.Tab,I.x5v,I.Lh7);const ci={},di=(0,B.Z)(ci,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("i18n-t"),i=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",Ir,[jr,(0,l._)("div",Br,[(0,l._)("div",Ar,[(0,l._)("div",Er,[(0,l.Uk)((0,h.zw)(e.$t("settings.style.preview.header"))+" ",1),qr]),(0,l._)("span",Fr,(0,h.zw)(e.$t("settings.style.preview.header_faint")),1),(0,l._)("span",Zr,(0,h.zw)(e.$t("settings.style.preview.error")),1),(0,l._)("button",Mr,(0,h.zw)(e.$t("settings.style.preview.button")),1)]),(0,l._)("div",Rr,[(0,l._)("div",Nr,[Hr,(0,l._)("div",Yr,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.preview.content")),1),(0,l.Wm)(r,{scope:"global",keypath:"settings.style.preview.text"},{default:(0,l.w5)((function(){return[(0,l._)("code",Kr,(0,h.zw)(e.$t("settings.style.preview.mono")),1),(0,l._)("a",Gr,(0,h.zw)(e.$t("settings.style.preview.link")),1)]})),_:1}),(0,l._)("div",Jr,[(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cBlue)"},class:"fa-scale-110 fa-old-padding",icon:"reply"}),(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cGreen)"},class:"fa-scale-110 fa-old-padding",icon:"retweet"}),(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cOrange)"},class:"fa-scale-110 fa-old-padding",icon:"star"}),(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cRed)"},class:"fa-scale-110 fa-old-padding",icon:"times"})])])]),(0,l._)("div",Qr,[Xr,(0,l._)("div",ei,[(0,l.Wm)(r,{keypath:"settings.style.preview.fine_print",tag:"span",class:"faint",scope:"global"},{default:(0,l.w5)((function(){return[(0,l._)("a",ti,(0,h.zw)(e.$t("settings.style.preview.faint_link")),1)]})),_:1})])]),ni,(0,l._)("span",li,(0,h.zw)(e.$t("settings.style.preview.error")),1),(0,l._)("input",{value:e.$t("settings.style.preview.input"),type:"text"},null,8,ai),(0,l._)("div",oi,[(0,l._)("span",si,[ri,(0,l._)("label",ii,(0,h.zw)(e.$t("settings.style.preview.checkbox")),1)]),(0,l._)("button",ui,(0,h.zw)(e.$t("settings.style.preview.button")),1)])])])])}]]);function pi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function mi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pi(Object(n),!0).forEach((function(t){(0,W.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var hi=["bg","fg","text","link","cRed","cGreen","cBlue","cOrange"].map((function(e){return e+"ColorLocal"}));const fi={data:function(){var e=this;return mi(mi(mi({themeImporter:(0,gs.i)({validator:this.importValidator,onImport:this.onImport,onImportFailure:this.onImportFailure}),themeExporter:(0,gs.M)({filename:"pleroma_theme",getExportedObject:function(){return e.exportedTheme}}),availableStyles:[],selected:"",selectedTheme:this.$store.getters.mergedConfig.theme,themeWarning:void 0,tempImportFile:void 0,engineVersion:0,previewShadows:{},previewColors:{},previewRadii:{},previewFonts:{},shadowsInvalid:!0,colorsInvalid:!0,radiiInvalid:!0,keepColor:!1,keepShadows:!1,keepOpacity:!1,keepRoundness:!1,keepFonts:!1},Object.keys(bs.em).map((function(e){return[e,""]})).reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return mi(mi({},e),{},(0,W.Z)({},l+"ColorLocal",a))}),{})),Object.keys(ws.AQ).map((function(e){return[e,""]})).reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return mi(mi({},e),{},(0,W.Z)({},l+"OpacityLocal",a))}),{})),{},{shadowSelected:void 0,shadowsLocal:{},fontsLocal:{},btnRadiusLocal:"",inputRadiusLocal:"",checkboxRadiusLocal:"",panelRadiusLocal:"",avatarRadiusLocal:"",avatarAltRadiusLocal:"",attachmentRadiusLocal:"",tooltipRadiusLocal:"",chatMessageRadiusLocal:""})},created:function(){var e=this;(0,fs.RC)().then((function(e){return Promise.all(Object.entries(e).map((function(e){var t=(0,Vt.Z)(e,2),n=t[0];return t[1].then((function(e){return[n,e]}))})))})).then((function(e){return e.reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return a?mi(mi({},e),{},(0,W.Z)({},l,a)):e}),{})})).then((function(t){e.availableStyles=t}))},mounted:function(){this.loadThemeFromLocalStorage(),void 0===this.shadowSelected&&(this.shadowSelected=this.shadowsAvailable[0])},computed:{themeWarningHelp:function(){if(this.themeWarning){var e=this.$t,t="settings.style.switcher.help.",n=this.themeWarning,l=n.origin,a=n.themeEngineVersion,o=n.type,s=n.noActionsPossible;if("file"===l){if(2===a&&"wrong_version"===o)return e(t+"v2_imported");if(a>ws.we)return e(t+"future_version_imported")+" "+e(s?t+"snapshot_missing":t+"snapshot_present");if(a<ws.we)return e(t+"future_version_imported")+" "+e(s?t+"snapshot_missing":t+"snapshot_present")}else if("localStorage"===l){if("snapshot_source_mismatch"===o)return e(t+"snapshot_source_mismatch");if(2===a)return e(t+"upgraded_from_v2");if(a>ws.we)return e(t+"fe_downgraded")+" "+e(s?t+"migration_snapshot_ok":t+"migration_snapshot_gone");if(a<ws.we)return e(t+"fe_upgraded")+" "+e(s?t+"migration_snapshot_ok":t+"migration_snapshot_gone")}}},selectedVersion:function(){return Array.isArray(this.selectedTheme)?1:2},currentColors:function(){var e=this;return Object.keys(bs.em).map((function(t){return[t,e[t+"ColorLocal"]]})).reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return mi(mi({},e),{},(0,W.Z)({},l,a))}),{})},currentOpacity:function(){var e=this;return Object.keys(ws.AQ).map((function(t){return[t,e[t+"OpacityLocal"]]})).reduce((function(e,t){var n=(0,Vt.Z)(t,2),l=n[0],a=n[1];return mi(mi({},e),{},(0,W.Z)({},l,a))}),{})},currentRadii:function(){return{btn:this.btnRadiusLocal,input:this.inputRadiusLocal,checkbox:this.checkboxRadiusLocal,panel:this.panelRadiusLocal,avatar:this.avatarRadiusLocal,avatarAlt:this.avatarAltRadiusLocal,tooltip:this.tooltipRadiusLocal,attachment:this.attachmentRadiusLocal,chatMessage:this.chatMessageRadiusLocal}},preview:function(){return(0,fs.gm)(this.previewColors,this.previewRadii,this.previewShadows,this.previewFonts)},previewTheme:function(){return this.preview.theme.colors?this.preview.theme:{colors:{},opacity:{},radii:{},shadows:{},fonts:{}}},previewContrast:function(){try{if(!this.previewTheme.colors.bg)return{};var e=this.previewTheme.colors,t=this.previewTheme.opacity;if(!e.bg)return{};var n=Object.entries(e).reduce((function(e,t){var n,l=(0,Vt.Z)(t,2),a=l[0],o=l[1];return mi(mi({},e),{},(0,W.Z)({},a,(n=o).startsWith("--")||"transparent"===n?n:(0,hs.wK)(n)))}),{}),l=Object.entries(bs.em).reduce((function(e,l){var a=(0,Vt.Z)(l,2),o=a[0],s=a[1],r="text"===o||"link"===o;if(!(r||"object"===(0,la.Z)(s)&&null!==s&&s.textColor))return e;var i=r?{layer:"bg"}:s,u=i.layer,c=i.variant,d=c||u,p=(0,ws.AV)(d),m=[o].concat((0,Ee.Z)("bg"===d?["cRed","cGreen","cBlue","cOrange"]:[])),h=(0,ws.xb)(u,c||u,p,n,t);return h.flat().some((function(e){return null==e}))?e:mi(mi({},e),m.reduce((function(e,t){var l=r?"bg"+t[0].toUpperCase()+t.slice(1):t;return mi(mi({},e),{},(0,W.Z)({},l,(0,hs.aj)(n[t],h,n[t])))}),{}))}),{});return Object.entries(l).reduce((function(e,t){var n,l=(0,Vt.Z)(t,2),a=l[0],o=l[1];return e[a]={text:(n=o).toPrecision(3)+":1",aa:n>=4.5,aaa:n>=7,laa:n>=3,laaa:n>=4.5},e}),{})}catch(e){return console.warn("Failure computing contrasts",e),{}}},previewRules:function(){return this.preview.rules?[].concat((0,Ee.Z)(Object.values(this.preview.rules)),["color: var(--text)","font-family: var(--interfaceFont, sans-serif)"]).join(";"):""},shadowsAvailable:function(){return Object.keys(fs.vp).sort()},currentShadowOverriden:{get:function(){return!!this.currentShadow},set:function(e){e?this.shadowsLocal[this.shadowSelected]=this.currentShadowFallback.map((function(e){return Object.assign({},e)})):delete this.shadowsLocal[this.shadowSelected]}},currentShadowFallback:function(){return(this.previewTheme.shadows||{})[this.shadowSelected]},currentShadow:{get:function(){return this.shadowsLocal[this.shadowSelected]},set:function(e){this.shadowsLocal[this.shadowSelected]=e}},themeValid:function(){return!this.shadowsInvalid&&!this.colorsInvalid&&!this.radiiInvalid},exportedTheme:function(){var e=!(this.keepFonts||this.keepShadows||this.keepOpacity||this.keepRoundness||this.keepColor),t={themeEngineVersion:ws.we};return(this.keepFonts||e)&&(t.fonts=this.fontsLocal),(this.keepShadows||e)&&(t.shadows=this.shadowsLocal),(this.keepOpacity||e)&&(t.opacity=this.currentOpacity),(this.keepColor||e)&&(t.colors=this.currentColors),(this.keepRoundness||e)&&(t.radii=this.currentRadii),{_pleroma_theme_version:2,theme:mi({themeEngineVersion:ws.we},this.previewTheme),source:t}},isActive:function(){var e=this.$parent;return!!e&&e.isActive("theme")}},components:{ColorInput:Vs,OpacityInput:Is,RangeInput:Ss,ContrastRatio:Dr,ShadowControl:br,FontControl:Cr,TabSwitcher:m.Z,Preview:di,Checkbox:M.Z,Select:Rt.Z},methods:{loadTheme:function(e,t){var n=e.theme,l=e.source,a=e._pleroma_theme_version,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.dismissWarning(),!l&&!n)throw new Error("Can't load theme: empty");var s="localStorage"!==t||n.colors?a:"l1",r=(n||{}).themeEngineVersion,i=(l||{}).themeEngineVersion||2,u=i===ws.we,c=void 0!==n&&void 0!==l&&i!==r,d=l&&o||!n;u&&!c||d||"l1"===s||"defaults"===t||(c&&"localStorage"===t?this.themeWarning={origin:t,themeEngineVersion:i,type:"snapshot_source_mismatch"}:n?u||(this.themeWarning={origin:t,noActionsPossible:!l,themeEngineVersion:i,type:"wrong_version"}):this.themeWarning={origin:t,noActionsPossible:!0,themeEngineVersion:i,type:"no_snapshot_old_version"}),this.normalizeLocalState(n,s,l,d)},forceLoadLocalStorage:function(){this.loadThemeFromLocalStorage(!0)},dismissWarning:function(){this.themeWarning=void 0,this.tempImportFile=void 0},forceLoad:function(){switch(this.themeWarning.origin){case"localStorage":this.loadThemeFromLocalStorage(!0);break;case"file":this.onImport(this.tempImportFile,!0)}this.dismissWarning()},forceSnapshot:function(){switch(this.themeWarning.origin){case"localStorage":this.loadThemeFromLocalStorage(!1,!0);break;case"file":console.error("Forcing snapshot from file is not supported yet")}this.dismissWarning()},loadThemeFromLocalStorage:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.$store.getters.mergedConfig,l=n.customTheme,a=n.customThemeSource;l||a?this.loadTheme({theme:l,source:t?l:a},"localStorage",e):this.loadTheme(this.$store.state.instance.themeData,"defaults",e)},setCustomTheme:function(){this.$store.dispatch("setOption",{name:"customTheme",value:mi({themeEngineVersion:ws.we},this.previewTheme)}),this.$store.dispatch("setOption",{name:"customThemeSource",value:{themeEngineVersion:ws.we,shadows:this.shadowsLocal,fonts:this.fontsLocal,opacity:this.currentOpacity,colors:this.currentColors,radii:this.currentRadii}})},updatePreviewColorsAndShadows:function(){this.previewColors=(0,fs.LP)({opacity:this.currentOpacity,colors:this.currentColors}),this.previewShadows=(0,fs.H2)({shadows:this.shadowsLocal,opacity:this.previewTheme.opacity,themeEngineVersion:this.engineVersion},this.previewColors.theme.colors,this.previewColors.mod)},importTheme:function(){this.themeImporter.importData()},exportTheme:function(){this.themeExporter.exportData()},onImport:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.tempImportFile=e,this.loadTheme(e,"file",t)},onImportFailure:function(e){this.$store.dispatch("pushGlobalNotice",{messageKey:"settings.invalid_theme_imported",level:"error"})},importValidator:function(e){var t=e._pleroma_theme_version;return t>=1||t<=2},clearAll:function(){this.loadThemeFromLocalStorage()},clearV1:function(){var e=this;Object.keys(this.$data).filter((function(e){return e.endsWith("ColorLocal")||e.endsWith("OpacityLocal")})).filter((function(e){return!hi.includes(e)})).forEach((function(t){e.$data[t]=void 0}))},clearRoundness:function(){var e=this;Object.keys(this.$data).filter((function(e){return e.endsWith("RadiusLocal")})).forEach((function(t){e.$data[t]=void 0}))},clearOpacity:function(){var e=this;Object.keys(this.$data).filter((function(e){return e.endsWith("OpacityLocal")})).forEach((function(t){e.$data[t]=void 0}))},clearShadows:function(){this.shadowsLocal={}},clearFonts:function(){this.fontsLocal={}},normalizeLocalState:function(e){var t,n=this,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];void 0===a||!o&&a.themeEngineVersion!==ws.we?t=e:(t=a,l=a.themeEngineVersion);var s=t.radii||t,r=t.opacity,i=t.shadows||{},u=t.fonts||{},c=t.themeEngineVersion?t.colors||t:(0,fs.dE)(t.colors||t);if(0===l&&(t.version&&(l=t.version),void 0===c.text&&void 0!==c.fg&&(l=1),void 0!==c.text&&void 0!==c.fg&&(l=2)),this.engineVersion=l,1===l&&(this.fgColorLocal=(0,hs.CO)(c.btn),this.textColorLocal=(0,hs.CO)(c.fg)),!this.keepColor){this.clearV1();var d=new Set(1!==l?Object.keys(bs.em):[]);1!==l&&"l1"!==l||d.add("bg").add("link").add("cRed").add("cBlue").add("cGreen").add("cOrange"),d.forEach((function(e){var t=c[e],l=(0,hs.CO)(c[e]);n[e+"ColorLocal"]="#aN"===l?t:l}))}r&&!this.keepOpacity&&(this.clearOpacity(),Object.entries(r).forEach((function(e){var t=(0,Vt.Z)(e,2),l=t[0],a=t[1];null==a||Number.isNaN(a)||(n[l+"OpacityLocal"]=a)}))),this.keepRoundness||(this.clearRoundness(),Object.entries(s).forEach((function(e){var t=(0,Vt.Z)(e,2),l=t[0],a=t[1],o=l.endsWith("Radius")?l.split("Radius")[0]:l;n[o+"RadiusLocal"]=a}))),this.keepShadows||(this.clearShadows(),this.shadowsLocal=2===l?(0,fs.l9)(i,this.previewTheme.opacity):i,this.shadowSelected=this.shadowsAvailable[0]),this.keepFonts||(this.clearFonts(),this.fontsLocal=u)}},watch:{currentRadii:function(){try{this.previewRadii=(0,fs.lD)({radii:this.currentRadii}),this.radiiInvalid=!1}catch(e){this.radiiInvalid=!0,console.warn(e)}},shadowsLocal:{handler:function(){if(1!==Object.getOwnPropertyNames(this.previewColors).length)try{this.updatePreviewColorsAndShadows(),this.shadowsInvalid=!1}catch(e){this.shadowsInvalid=!0,console.warn(e)}},deep:!0},fontsLocal:{handler:function(){try{this.previewFonts=(0,fs.m)({fonts:this.fontsLocal}),this.fontsInvalid=!1}catch(e){this.fontsInvalid=!0,console.warn(e)}},deep:!0},currentColors:function(){try{this.updatePreviewColorsAndShadows(),this.colorsInvalid=!1,this.shadowsInvalid=!1}catch(e){this.colorsInvalid=!0,this.shadowsInvalid=!0,console.warn(e)}},currentOpacity:function(){try{this.updatePreviewColorsAndShadows()}catch(e){console.warn(e)}},selected:function(){var e=this;this.selectedTheme=Object.entries(this.availableStyles).find((function(t){var n=(0,Vt.Z)(t,2),l=(n[0],n[1]);return Array.isArray(l)?(console.log(l[0]===e.selected,e.selected),l[0]===e.selected):l.name===e.selected}))[1]},selectedTheme:function(){this.dismissWarning(),1===this.selectedVersion?(this.keepRoundness||this.clearRoundness(),this.keepShadows||this.clearShadows(),this.keepOpacity||this.clearOpacity(),this.keepColor||(this.clearV1(),this.bgColorLocal=this.selectedTheme[1],this.fgColorLocal=this.selectedTheme[2],this.textColorLocal=this.selectedTheme[3],this.linkColorLocal=this.selectedTheme[4],this.cRedColorLocal=this.selectedTheme[5],this.cGreenColorLocal=this.selectedTheme[6],this.cBlueColorLocal=this.selectedTheme[7],this.cOrangeColorLocal=this.selectedTheme[8])):this.selectedVersion>=2&&this.normalizeLocalState(this.selectedTheme.theme,2,this.selectedTheme.source)}}},gi=(0,B.Z)(fi,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("Checkbox"),u=(0,l.up)("preview"),c=(0,l.up)("ColorInput"),d=(0,l.up)("OpacityInput"),p=(0,l.up)("ContrastRatio"),m=(0,l.up)("RangeInput"),f=(0,l.up)("ShadowControl"),g=(0,l.up)("i18n-t"),b=(0,l.up)("FontControl"),w=(0,l.up)("tab-switcher");return(0,l.wg)(),(0,l.iD)("div",ao,[(0,l._)("div",oo,[(0,l._)("div",so,[e.themeWarning?((0,l.wg)(),(0,l.iD)("div",ro,[(0,l._)("div",io,(0,h.zw)(e.themeWarningHelp),1),(0,l._)("div",uo,["snapshot_source_mismatch"===e.themeWarning.type?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.forceLoad&&e.forceLoad.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.use_source")),1),(0,l._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.forceSnapshot&&e.forceSnapshot.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.use_snapshot")),1)],64)):e.themeWarning.noActionsPossible?((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.dismissWarning&&e.dismissWarning.apply(e,arguments)})},(0,h.zw)(e.$t("general.dismiss")),1)):((0,l.wg)(),(0,l.iD)(l.HY,{key:2},[(0,l._)("button",{class:"btn button-default",onClick:t[3]||(t[3]=function(){return e.forceLoad&&e.forceLoad.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.load_theme")),1),(0,l._)("button",{class:"btn button-default",onClick:t[4]||(t[4]=function(){return e.dismissWarning&&e.dismissWarning.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.keep_as_is")),1)],64))])])):(0,l.kq)("",!0),(0,l._)("div",co,[(0,l._)("div",po,[(0,l.Uk)((0,h.zw)(e.$t("settings.presets"))+" ",1),(0,l._)("label",mo,[(0,l.Wm)(r,{id:"preset-switcher",modelValue:e.selected,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.selected=t}),class:"preset-switcher"},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.availableStyles,(function(e){return(0,l.wg)(),(0,l.iD)("option",{key:e.name,value:e.name||e[0],style:(0,h.j5)({backgroundColor:e[1]||(e.theme||e.source).colors.bg,color:e[3]||(e.theme||e.source).colors.text})},(0,h.zw)(e[0]||e.name),13,ho)})),128))]})),_:1},8,["modelValue"])])]),(0,l._)("div",fo,[(0,l._)("button",{class:"btn button-default",onClick:t[6]||(t[6]=function(){return e.importTheme&&e.importTheme.apply(e,arguments)})},(0,h.zw)(e.$t("settings.import_theme")),1),(0,l._)("button",{class:"btn button-default",onClick:t[7]||(t[7]=function(){return e.exportTheme&&e.exportTheme.apply(e,arguments)})},(0,h.zw)(e.$t("settings.export_theme")),1)])])]),(0,l._)("div",go,[(0,l._)("span",bo,[(0,l.Wm)(i,{modelValue:e.keepColor,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.keepColor=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.style.switcher.keep_color")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",wo,[(0,l.Wm)(i,{modelValue:e.keepShadows,"onUpdate:modelValue":t[9]||(t[9]=function(t){return e.keepShadows=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.style.switcher.keep_shadows")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",_o,[(0,l.Wm)(i,{modelValue:e.keepOpacity,"onUpdate:modelValue":t[10]||(t[10]=function(t){return e.keepOpacity=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.style.switcher.keep_opacity")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",ko,[(0,l.Wm)(i,{modelValue:e.keepRoundness,"onUpdate:modelValue":t[11]||(t[11]=function(t){return e.keepRoundness=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.style.switcher.keep_roundness")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",vo,[(0,l.Wm)(i,{modelValue:e.keepFonts,"onUpdate:modelValue":t[12]||(t[12]=function(t){return e.keepFonts=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,h.zw)(e.$t("settings.style.switcher.keep_fonts")),1)]})),_:1},8,["modelValue"])]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.style.switcher.save_load_hint")),1)])]),(0,l.Wm)(u,{style:(0,h.j5)(e.previewRules)},null,8,["style"]),((0,l.wg)(),(0,l.j4)(l.Ob,null,[(0,l.Wm)(w,{key:"style-tweak"},{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.style.common_colors._tab_label"),class:"color-container"},[(0,l._)("div",$o,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.theme_help")),1),(0,l._)("div",Co,[(0,l._)("button",{class:"btn button-default",onClick:t[13]||(t[13]=function(){return e.clearOpacity&&e.clearOpacity.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.clear_opacity")),1),(0,l._)("button",{class:"btn button-default",onClick:t[14]||(t[14]=function(){return e.clearV1&&e.clearV1.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.clear_all")),1)])]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.theme_help_v2_1")),1),(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.common_colors.main")),1),(0,l._)("div",Vo,[(0,l.Wm)(c,{modelValue:e.bgColorLocal,"onUpdate:modelValue":t[15]||(t[15]=function(t){return e.bgColorLocal=t}),name:"bgColor",label:e.$t("settings.background")},null,8,["modelValue","label"]),(0,l.Wm)(d,{modelValue:e.bgOpacityLocal,"onUpdate:modelValue":t[16]||(t[16]=function(t){return e.bgOpacityLocal=t}),name:"bgOpacity",fallback:e.previewTheme.opacity.bg},null,8,["modelValue","fallback"]),(0,l.Wm)(c,{modelValue:e.textColorLocal,"onUpdate:modelValue":t[17]||(t[17]=function(t){return e.textColorLocal=t}),name:"textColor",label:e.$t("settings.text")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.accentColorLocal,"onUpdate:modelValue":t[18]||(t[18]=function(t){return e.accentColorLocal=t}),name:"accentColor",fallback:e.previewTheme.colors.link,label:e.$t("settings.accent"),"show-optional-tickbox":void 0!==e.linkColorLocal},null,8,["modelValue","fallback","label","show-optional-tickbox"]),(0,l.Wm)(c,{modelValue:e.linkColorLocal,"onUpdate:modelValue":t[19]||(t[19]=function(t){return e.linkColorLocal=t}),name:"linkColor",fallback:e.previewTheme.colors.accent,label:e.$t("settings.links"),"show-optional-tickbox":void 0!==e.accentColorLocal},null,8,["modelValue","fallback","label","show-optional-tickbox"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgLink},null,8,["contrast"])]),(0,l._)("div",To,[(0,l.Wm)(c,{modelValue:e.fgColorLocal,"onUpdate:modelValue":t[20]||(t[20]=function(t){return e.fgColorLocal=t}),name:"fgColor",label:e.$t("settings.foreground")},null,8,["modelValue","label"]),(0,l.Wm)(c,{modelValue:e.fgTextColorLocal,"onUpdate:modelValue":t[21]||(t[21]=function(t){return e.fgTextColorLocal=t}),name:"fgTextColor",label:e.$t("settings.text"),fallback:e.previewTheme.colors.fgText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.fgLinkColorLocal,"onUpdate:modelValue":t[22]||(t[22]=function(t){return e.fgLinkColorLocal=t}),name:"fgLinkColor",label:e.$t("settings.links"),fallback:e.previewTheme.colors.fgLink},null,8,["modelValue","label","fallback"]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.style.common_colors.foreground_hint")),1)]),(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.common_colors.rgbo")),1),(0,l._)("div",xo,[(0,l.Wm)(c,{modelValue:e.cRedColorLocal,"onUpdate:modelValue":t[23]||(t[23]=function(t){return e.cRedColorLocal=t}),name:"cRedColor",label:e.$t("settings.cRed")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCRed},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.cBlueColorLocal,"onUpdate:modelValue":t[24]||(t[24]=function(t){return e.cBlueColorLocal=t}),name:"cBlueColor",label:e.$t("settings.cBlue")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCBlue},null,8,["contrast"])]),(0,l._)("div",Lo,[(0,l.Wm)(c,{modelValue:e.cGreenColorLocal,"onUpdate:modelValue":t[25]||(t[25]=function(t){return e.cGreenColorLocal=t}),name:"cGreenColor",label:e.$t("settings.cGreen")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCGreen},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.cOrangeColorLocal,"onUpdate:modelValue":t[26]||(t[26]=function(t){return e.cOrangeColorLocal=t}),name:"cOrangeColor",label:e.$t("settings.cOrange")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCOrange},null,8,["contrast"])]),(0,l._)("p",null,(0,h.zw)(e.$t("settings.theme_help_v2_2")),1)],8,yo),(0,l._)("div",{label:e.$t("settings.style.advanced_colors._tab_label"),class:"color-container"},[(0,l._)("div",Oo,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.theme_help")),1),(0,l._)("button",{class:"btn button-default",onClick:t[27]||(t[27]=function(){return e.clearOpacity&&e.clearOpacity.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.clear_opacity")),1),(0,l._)("button",{class:"btn button-default",onClick:t[28]||(t[28]=function(){return e.clearV1&&e.clearV1.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l._)("div",Wo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.post")),1),(0,l.Wm)(c,{modelValue:e.postLinkColorLocal,"onUpdate:modelValue":t[29]||(t[29]=function(t){return e.postLinkColorLocal=t}),name:"postLinkColor",fallback:e.previewTheme.colors.accent,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.postLink},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.postGreentextColorLocal,"onUpdate:modelValue":t[30]||(t[30]=function(t){return e.postGreentextColorLocal=t}),name:"postGreentextColor",fallback:e.previewTheme.colors.cGreen,label:e.$t("settings.greentext")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.postGreentext},null,8,["contrast"]),(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.alert")),1),(0,l.Wm)(c,{modelValue:e.alertErrorColorLocal,"onUpdate:modelValue":t[31]||(t[31]=function(t){return e.alertErrorColorLocal=t}),name:"alertError",label:e.$t("settings.style.advanced_colors.alert_error"),fallback:e.previewTheme.colors.alertError},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.alertErrorTextColorLocal,"onUpdate:modelValue":t[32]||(t[32]=function(t){return e.alertErrorTextColorLocal=t}),name:"alertErrorText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.alertErrorText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.alertErrorText,large:""},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.alertWarningColorLocal,"onUpdate:modelValue":t[33]||(t[33]=function(t){return e.alertWarningColorLocal=t}),name:"alertWarning",label:e.$t("settings.style.advanced_colors.alert_warning"),fallback:e.previewTheme.colors.alertWarning},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.alertWarningTextColorLocal,"onUpdate:modelValue":t[34]||(t[34]=function(t){return e.alertWarningTextColorLocal=t}),name:"alertWarningText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.alertWarningText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.alertWarningText,large:""},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.alertNeutralColorLocal,"onUpdate:modelValue":t[35]||(t[35]=function(t){return e.alertNeutralColorLocal=t}),name:"alertNeutral",label:e.$t("settings.style.advanced_colors.alert_neutral"),fallback:e.previewTheme.colors.alertNeutral},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.alertNeutralTextColorLocal,"onUpdate:modelValue":t[36]||(t[36]=function(t){return e.alertNeutralTextColorLocal=t}),name:"alertNeutralText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.alertNeutralText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.alertNeutralText,large:""},null,8,["contrast"]),(0,l.Wm)(d,{modelValue:e.alertOpacityLocal,"onUpdate:modelValue":t[37]||(t[37]=function(t){return e.alertOpacityLocal=t}),name:"alertOpacity",fallback:e.previewTheme.opacity.alert},null,8,["modelValue","fallback"])]),(0,l._)("div",So,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.badge")),1),(0,l.Wm)(c,{modelValue:e.badgeNotificationColorLocal,"onUpdate:modelValue":t[38]||(t[38]=function(t){return e.badgeNotificationColorLocal=t}),name:"badgeNotification",label:e.$t("settings.style.advanced_colors.badge_notification"),fallback:e.previewTheme.colors.badgeNotification},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.badgeNotificationTextColorLocal,"onUpdate:modelValue":t[39]||(t[39]=function(t){return e.badgeNotificationTextColorLocal=t}),name:"badgeNotificationText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.badgeNotificationText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.badgeNotificationText,large:""},null,8,["contrast"])]),(0,l._)("div",zo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.panel_header")),1),(0,l.Wm)(c,{modelValue:e.panelColorLocal,"onUpdate:modelValue":t[40]||(t[40]=function(t){return e.panelColorLocal=t}),name:"panelColor",fallback:e.previewTheme.colors.panel,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.panelOpacityLocal,"onUpdate:modelValue":t[41]||(t[41]=function(t){return e.panelOpacityLocal=t}),name:"panelOpacity",fallback:e.previewTheme.opacity.panel,disabled:"transparent"===e.panelColorLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.panelTextColorLocal,"onUpdate:modelValue":t[42]||(t[42]=function(t){return e.panelTextColorLocal=t}),name:"panelTextColor",fallback:e.previewTheme.colors.panelText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.panelText,large:""},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.panelLinkColorLocal,"onUpdate:modelValue":t[43]||(t[43]=function(t){return e.panelLinkColorLocal=t}),name:"panelLinkColor",fallback:e.previewTheme.colors.panelLink,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.panelLink,large:""},null,8,["contrast"])]),(0,l._)("div",Po,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.top_bar")),1),(0,l.Wm)(c,{modelValue:e.topBarColorLocal,"onUpdate:modelValue":t[44]||(t[44]=function(t){return e.topBarColorLocal=t}),name:"topBarColor",fallback:e.previewTheme.colors.topBar,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.topBarTextColorLocal,"onUpdate:modelValue":t[45]||(t[45]=function(t){return e.topBarTextColorLocal=t}),name:"topBarTextColor",fallback:e.previewTheme.colors.topBarText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.topBarText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.topBarLinkColorLocal,"onUpdate:modelValue":t[46]||(t[46]=function(t){return e.topBarLinkColorLocal=t}),name:"topBarLinkColor",fallback:e.previewTheme.colors.topBarLink,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.topBarLink},null,8,["contrast"])]),(0,l._)("div",Do,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.inputs")),1),(0,l.Wm)(c,{modelValue:e.inputColorLocal,"onUpdate:modelValue":t[47]||(t[47]=function(t){return e.inputColorLocal=t}),name:"inputColor",fallback:e.previewTheme.colors.input,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.inputOpacityLocal,"onUpdate:modelValue":t[48]||(t[48]=function(t){return e.inputOpacityLocal=t}),name:"inputOpacity",fallback:e.previewTheme.opacity.input,disabled:"transparent"===e.inputColorLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.inputTextColorLocal,"onUpdate:modelValue":t[49]||(t[49]=function(t){return e.inputTextColorLocal=t}),name:"inputTextColor",fallback:e.previewTheme.colors.inputText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.inputText},null,8,["contrast"])]),(0,l._)("div",Io,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.buttons")),1),(0,l.Wm)(c,{modelValue:e.btnColorLocal,"onUpdate:modelValue":t[50]||(t[50]=function(t){return e.btnColorLocal=t}),name:"btnColor",fallback:e.previewTheme.colors.btn,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.btnOpacityLocal,"onUpdate:modelValue":t[51]||(t[51]=function(t){return e.btnOpacityLocal=t}),name:"btnOpacity",fallback:e.previewTheme.opacity.btn,disabled:"transparent"===e.btnColorLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.btnTextColorLocal,"onUpdate:modelValue":t[52]||(t[52]=function(t){return e.btnTextColorLocal=t}),name:"btnTextColor",fallback:e.previewTheme.colors.btnText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnPanelTextColorLocal,"onUpdate:modelValue":t[53]||(t[53]=function(t){return e.btnPanelTextColorLocal=t}),name:"btnPanelTextColor",fallback:e.previewTheme.colors.btnPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPanelText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnTopBarTextColorLocal,"onUpdate:modelValue":t[54]||(t[54]=function(t){return e.btnTopBarTextColorLocal=t}),name:"btnTopBarTextColor",fallback:e.previewTheme.colors.btnTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnTopBarText},null,8,["contrast"]),(0,l._)("h5",null,(0,h.zw)(e.$t("settings.style.advanced_colors.pressed")),1),(0,l.Wm)(c,{modelValue:e.btnPressedColorLocal,"onUpdate:modelValue":t[55]||(t[55]=function(t){return e.btnPressedColorLocal=t}),name:"btnPressedColor",fallback:e.previewTheme.colors.btnPressed,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnPressedTextColorLocal,"onUpdate:modelValue":t[56]||(t[56]=function(t){return e.btnPressedTextColorLocal=t}),name:"btnPressedTextColor",fallback:e.previewTheme.colors.btnPressedText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPressedText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnPressedPanelTextColorLocal,"onUpdate:modelValue":t[57]||(t[57]=function(t){return e.btnPressedPanelTextColorLocal=t}),name:"btnPressedPanelTextColor",fallback:e.previewTheme.colors.btnPressedPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPressedPanelText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnPressedTopBarTextColorLocal,"onUpdate:modelValue":t[58]||(t[58]=function(t){return e.btnPressedTopBarTextColorLocal=t}),name:"btnPressedTopBarTextColor",fallback:e.previewTheme.colors.btnPressedTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPressedTopBarText},null,8,["contrast"]),(0,l._)("h5",null,(0,h.zw)(e.$t("settings.style.advanced_colors.disabled")),1),(0,l.Wm)(c,{modelValue:e.btnDisabledColorLocal,"onUpdate:modelValue":t[59]||(t[59]=function(t){return e.btnDisabledColorLocal=t}),name:"btnDisabledColor",fallback:e.previewTheme.colors.btnDisabled,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnDisabledTextColorLocal,"onUpdate:modelValue":t[60]||(t[60]=function(t){return e.btnDisabledTextColorLocal=t}),name:"btnDisabledTextColor",fallback:e.previewTheme.colors.btnDisabledText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnDisabledPanelTextColorLocal,"onUpdate:modelValue":t[61]||(t[61]=function(t){return e.btnDisabledPanelTextColorLocal=t}),name:"btnDisabledPanelTextColor",fallback:e.previewTheme.colors.btnDisabledPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnDisabledTopBarTextColorLocal,"onUpdate:modelValue":t[62]||(t[62]=function(t){return e.btnDisabledTopBarTextColorLocal=t}),name:"btnDisabledTopBarTextColor",fallback:e.previewTheme.colors.btnDisabledTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l._)("h5",null,(0,h.zw)(e.$t("settings.style.advanced_colors.toggled")),1),(0,l.Wm)(c,{modelValue:e.btnToggledColorLocal,"onUpdate:modelValue":t[63]||(t[63]=function(t){return e.btnToggledColorLocal=t}),name:"btnToggledColor",fallback:e.previewTheme.colors.btnToggled,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnToggledTextColorLocal,"onUpdate:modelValue":t[64]||(t[64]=function(t){return e.btnToggledTextColorLocal=t}),name:"btnToggledTextColor",fallback:e.previewTheme.colors.btnToggledText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnToggledText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnToggledPanelTextColorLocal,"onUpdate:modelValue":t[65]||(t[65]=function(t){return e.btnToggledPanelTextColorLocal=t}),name:"btnToggledPanelTextColor",fallback:e.previewTheme.colors.btnToggledPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnToggledPanelText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnToggledTopBarTextColorLocal,"onUpdate:modelValue":t[66]||(t[66]=function(t){return e.btnToggledTopBarTextColorLocal=t}),name:"btnToggledTopBarTextColor",fallback:e.previewTheme.colors.btnToggledTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnToggledTopBarText},null,8,["contrast"])]),(0,l._)("div",jo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.tabs")),1),(0,l.Wm)(c,{modelValue:e.tabColorLocal,"onUpdate:modelValue":t[67]||(t[67]=function(t){return e.tabColorLocal=t}),name:"tabColor",fallback:e.previewTheme.colors.tab,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.tabTextColorLocal,"onUpdate:modelValue":t[68]||(t[68]=function(t){return e.tabTextColorLocal=t}),name:"tabTextColor",fallback:e.previewTheme.colors.tabText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.tabText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.tabActiveTextColorLocal,"onUpdate:modelValue":t[69]||(t[69]=function(t){return e.tabActiveTextColorLocal=t}),name:"tabActiveTextColor",fallback:e.previewTheme.colors.tabActiveText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.tabActiveText},null,8,["contrast"])]),(0,l._)("div",Bo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.borders")),1),(0,l.Wm)(c,{modelValue:e.borderColorLocal,"onUpdate:modelValue":t[70]||(t[70]=function(t){return e.borderColorLocal=t}),name:"borderColor",fallback:e.previewTheme.colors.border,label:e.$t("settings.style.common.color")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.borderOpacityLocal,"onUpdate:modelValue":t[71]||(t[71]=function(t){return e.borderOpacityLocal=t}),name:"borderOpacity",fallback:e.previewTheme.opacity.border,disabled:"transparent"===e.borderColorLocal},null,8,["modelValue","fallback","disabled"])]),(0,l._)("div",Ao,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.faint_text")),1),(0,l.Wm)(c,{modelValue:e.faintColorLocal,"onUpdate:modelValue":t[72]||(t[72]=function(t){return e.faintColorLocal=t}),name:"faintColor",fallback:e.previewTheme.colors.faint,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.faintLinkColorLocal,"onUpdate:modelValue":t[73]||(t[73]=function(t){return e.faintLinkColorLocal=t}),name:"faintLinkColor",fallback:e.previewTheme.colors.faintLink,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.panelFaintColorLocal,"onUpdate:modelValue":t[74]||(t[74]=function(t){return e.panelFaintColorLocal=t}),name:"panelFaintColor",fallback:e.previewTheme.colors.panelFaint,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.faintOpacityLocal,"onUpdate:modelValue":t[75]||(t[75]=function(t){return e.faintOpacityLocal=t}),name:"faintOpacity",fallback:e.previewTheme.opacity.faint},null,8,["modelValue","fallback"])]),(0,l._)("div",Eo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.underlay")),1),(0,l.Wm)(c,{modelValue:e.underlayColorLocal,"onUpdate:modelValue":t[76]||(t[76]=function(t){return e.underlayColorLocal=t}),name:"underlay",label:e.$t("settings.style.advanced_colors.underlay"),fallback:e.previewTheme.colors.underlay},null,8,["modelValue","label","fallback"]),(0,l.Wm)(d,{modelValue:e.underlayOpacityLocal,"onUpdate:modelValue":t[77]||(t[77]=function(t){return e.underlayOpacityLocal=t}),name:"underlayOpacity",fallback:e.previewTheme.opacity.underlay,disabled:"transparent"===e.underlayOpacityLocal},null,8,["modelValue","fallback","disabled"])]),(0,l._)("div",qo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.wallpaper")),1),(0,l.Wm)(c,{modelValue:e.wallpaperColorLocal,"onUpdate:modelValue":t[78]||(t[78]=function(t){return e.wallpaperColorLocal=t}),name:"wallpaper",label:e.$t("settings.style.advanced_colors.wallpaper"),fallback:e.previewTheme.colors.wallpaper},null,8,["modelValue","label","fallback"])]),(0,l._)("div",Fo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.poll")),1),(0,l.Wm)(c,{modelValue:e.pollColorLocal,"onUpdate:modelValue":t[79]||(t[79]=function(t){return e.pollColorLocal=t}),name:"poll",label:e.$t("settings.background"),fallback:e.previewTheme.colors.poll},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.pollTextColorLocal,"onUpdate:modelValue":t[80]||(t[80]=function(t){return e.pollTextColorLocal=t}),name:"pollText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.pollText},null,8,["modelValue","label","fallback"])]),(0,l._)("div",Zo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.icons")),1),(0,l.Wm)(c,{modelValue:e.iconColorLocal,"onUpdate:modelValue":t[81]||(t[81]=function(t){return e.iconColorLocal=t}),name:"icon",label:e.$t("settings.style.advanced_colors.icons"),fallback:e.previewTheme.colors.icon},null,8,["modelValue","label","fallback"])]),(0,l._)("div",Mo,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.highlight")),1),(0,l.Wm)(c,{modelValue:e.highlightColorLocal,"onUpdate:modelValue":t[82]||(t[82]=function(t){return e.highlightColorLocal=t}),name:"highlight",label:e.$t("settings.background"),fallback:e.previewTheme.colors.highlight},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.highlightTextColorLocal,"onUpdate:modelValue":t[83]||(t[83]=function(t){return e.highlightTextColorLocal=t}),name:"highlightText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.highlightText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.highlightText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.highlightLinkColorLocal,"onUpdate:modelValue":t[84]||(t[84]=function(t){return e.highlightLinkColorLocal=t}),name:"highlightLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.highlightLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.highlightLink},null,8,["contrast"])]),(0,l._)("div",Ro,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.popover")),1),(0,l.Wm)(c,{modelValue:e.popoverColorLocal,"onUpdate:modelValue":t[85]||(t[85]=function(t){return e.popoverColorLocal=t}),name:"popover",label:e.$t("settings.background"),fallback:e.previewTheme.colors.popover},null,8,["modelValue","label","fallback"]),(0,l.Wm)(d,{modelValue:e.popoverOpacityLocal,"onUpdate:modelValue":t[86]||(t[86]=function(t){return e.popoverOpacityLocal=t}),name:"popoverOpacity",fallback:e.previewTheme.opacity.popover,disabled:"transparent"===e.popoverOpacityLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.popoverTextColorLocal,"onUpdate:modelValue":t[87]||(t[87]=function(t){return e.popoverTextColorLocal=t}),name:"popoverText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.popoverText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.popoverText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.popoverLinkColorLocal,"onUpdate:modelValue":t[88]||(t[88]=function(t){return e.popoverLinkColorLocal=t}),name:"popoverLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.popoverLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.popoverLink},null,8,["contrast"])]),(0,l._)("div",No,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.selectedPost")),1),(0,l.Wm)(c,{modelValue:e.selectedPostColorLocal,"onUpdate:modelValue":t[89]||(t[89]=function(t){return e.selectedPostColorLocal=t}),name:"selectedPost",label:e.$t("settings.background"),fallback:e.previewTheme.colors.selectedPost},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.selectedPostTextColorLocal,"onUpdate:modelValue":t[90]||(t[90]=function(t){return e.selectedPostTextColorLocal=t}),name:"selectedPostText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.selectedPostText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedPostText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.selectedPostLinkColorLocal,"onUpdate:modelValue":t[91]||(t[91]=function(t){return e.selectedPostLinkColorLocal=t}),name:"selectedPostLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.selectedPostLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedPostLink},null,8,["contrast"])]),(0,l._)("div",Ho,[(0,l._)("h4",null,(0,h.zw)(e.$t("settings.style.advanced_colors.selectedMenu")),1),(0,l.Wm)(c,{modelValue:e.selectedMenuColorLocal,"onUpdate:modelValue":t[92]||(t[92]=function(t){return e.selectedMenuColorLocal=t}),name:"selectedMenu",label:e.$t("settings.background"),fallback:e.previewTheme.colors.selectedMenu},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.selectedMenuTextColorLocal,"onUpdate:modelValue":t[93]||(t[93]=function(t){return e.selectedMenuTextColorLocal=t}),name:"selectedMenuText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.selectedMenuText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedMenuText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.selectedMenuLinkColorLocal,"onUpdate:modelValue":t[94]||(t[94]=function(t){return e.selectedMenuLinkColorLocal=t}),name:"selectedMenuLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.selectedMenuLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedMenuLink},null,8,["contrast"])]),(0,l._)("div",Yo,[(0,l._)("h4",null,(0,h.zw)(e.$t("chats.chats")),1),(0,l.Wm)(c,{modelValue:e.chatBgColorLocal,"onUpdate:modelValue":t[95]||(t[95]=function(t){return e.chatBgColorLocal=t}),name:"chatBgColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l._)("h5",null,(0,h.zw)(e.$t("settings.style.advanced_colors.chat.incoming")),1),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingBgColorLocal,"onUpdate:modelValue":t[96]||(t[96]=function(t){return e.chatMessageIncomingBgColorLocal=t}),name:"chatMessageIncomingBgColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingTextColorLocal,"onUpdate:modelValue":t[97]||(t[97]=function(t){return e.chatMessageIncomingTextColorLocal=t}),name:"chatMessageIncomingTextColor",fallback:e.previewTheme.colors.text,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingLinkColorLocal,"onUpdate:modelValue":t[98]||(t[98]=function(t){return e.chatMessageIncomingLinkColorLocal=t}),name:"chatMessageIncomingLinkColor",fallback:e.previewTheme.colors.link,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingBorderColorLocal,"onUpdate:modelValue":t[99]||(t[99]=function(t){return e.chatMessageIncomingBorderColorLocal=t}),name:"chatMessageIncomingBorderLinkColor",fallback:e.previewTheme.colors.fg,label:e.$t("settings.style.advanced_colors.chat.border")},null,8,["modelValue","fallback","label"]),(0,l._)("h5",null,(0,h.zw)(e.$t("settings.style.advanced_colors.chat.outgoing")),1),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingBgColorLocal,"onUpdate:modelValue":t[100]||(t[100]=function(t){return e.chatMessageOutgoingBgColorLocal=t}),name:"chatMessageOutgoingBgColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingTextColorLocal,"onUpdate:modelValue":t[101]||(t[101]=function(t){return e.chatMessageOutgoingTextColorLocal=t}),name:"chatMessageOutgoingTextColor",fallback:e.previewTheme.colors.text,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingLinkColorLocal,"onUpdate:modelValue":t[102]||(t[102]=function(t){return e.chatMessageOutgoingLinkColorLocal=t}),name:"chatMessageOutgoingLinkColor",fallback:e.previewTheme.colors.link,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingBorderColorLocal,"onUpdate:modelValue":t[103]||(t[103]=function(t){return e.chatMessageOutgoingBorderColorLocal=t}),name:"chatMessageOutgoingBorderLinkColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.style.advanced_colors.chat.border")},null,8,["modelValue","fallback","label"])])],8,Uo),(0,l._)("div",{label:e.$t("settings.style.radii._tab_label"),class:"radius-container"},[(0,l._)("div",Go,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.radii_help")),1),(0,l._)("button",{class:"btn button-default",onClick:t[104]||(t[104]=function(){return e.clearRoundness&&e.clearRoundness.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l.Wm)(m,{modelValue:e.btnRadiusLocal,"onUpdate:modelValue":t[105]||(t[105]=function(t){return e.btnRadiusLocal=t}),name:"btnRadius",label:e.$t("settings.btnRadius"),fallback:e.previewTheme.radii.btn,max:"16","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.inputRadiusLocal,"onUpdate:modelValue":t[106]||(t[106]=function(t){return e.inputRadiusLocal=t}),name:"inputRadius",label:e.$t("settings.inputRadius"),fallback:e.previewTheme.radii.input,max:"9","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.checkboxRadiusLocal,"onUpdate:modelValue":t[107]||(t[107]=function(t){return e.checkboxRadiusLocal=t}),name:"checkboxRadius",label:e.$t("settings.checkboxRadius"),fallback:e.previewTheme.radii.checkbox,max:"16","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.panelRadiusLocal,"onUpdate:modelValue":t[108]||(t[108]=function(t){return e.panelRadiusLocal=t}),name:"panelRadius",label:e.$t("settings.panelRadius"),fallback:e.previewTheme.radii.panel,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.avatarRadiusLocal,"onUpdate:modelValue":t[109]||(t[109]=function(t){return e.avatarRadiusLocal=t}),name:"avatarRadius",label:e.$t("settings.avatarRadius"),fallback:e.previewTheme.radii.avatar,max:"28","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.avatarAltRadiusLocal,"onUpdate:modelValue":t[110]||(t[110]=function(t){return e.avatarAltRadiusLocal=t}),name:"avatarAltRadius",label:e.$t("settings.avatarAltRadius"),fallback:e.previewTheme.radii.avatarAlt,max:"28","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.attachmentRadiusLocal,"onUpdate:modelValue":t[111]||(t[111]=function(t){return e.attachmentRadiusLocal=t}),name:"attachmentRadius",label:e.$t("settings.attachmentRadius"),fallback:e.previewTheme.radii.attachment,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.tooltipRadiusLocal,"onUpdate:modelValue":t[112]||(t[112]=function(t){return e.tooltipRadiusLocal=t}),name:"tooltipRadius",label:e.$t("settings.tooltipRadius"),fallback:e.previewTheme.radii.tooltip,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.chatMessageRadiusLocal,"onUpdate:modelValue":t[113]||(t[113]=function(t){return e.chatMessageRadiusLocal=t}),name:"chatMessageRadius",label:e.$t("settings.chatMessageRadius"),fallback:e.previewTheme.radii.chatMessage||2,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"])],8,Ko),(0,l._)("div",{label:e.$t("settings.style.shadows._tab_label"),class:"shadow-container"},[(0,l._)("div",Qo,[(0,l._)("div",Xo,[(0,l.Uk)((0,h.zw)(e.$t("settings.style.shadows.component"))+" "+(0,h.zw)(" ")+" ",1),(0,l.Wm)(r,{id:"shadow-switcher",modelValue:e.shadowSelected,"onUpdate:modelValue":t[114]||(t[114]=function(t){return e.shadowSelected=t}),class:"shadow-switcher"},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.shadowsAvailable,(function(t){return(0,l.wg)(),(0,l.iD)("option",{key:t,value:t},(0,h.zw)(e.$t("settings.style.shadows.components."+t)),9,es)})),128))]})),_:1},8,["modelValue"])]),(0,l._)("div",ts,[(0,l._)("label",ns,(0,h.zw)(e.$t("settings.style.shadows.override")),1),(0,l.Uk)(" "+(0,h.zw)(" ")+" "),(0,l.wy)((0,l._)("input",{id:"override","onUpdate:modelValue":t[115]||(t[115]=function(t){return e.currentShadowOverriden=t}),name:"override",class:"input-override",type:"checkbox"},null,512),[[de.e8,e.currentShadowOverriden]]),ls]),(0,l._)("button",{class:"btn button-default",onClick:t[116]||(t[116]=function(){return e.clearShadows&&e.clearShadows.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l.Wm)(f,{modelValue:e.currentShadow,"onUpdate:modelValue":t[117]||(t[117]=function(t){return e.currentShadow=t}),ready:!!e.currentShadowFallback,fallback:e.currentShadowFallback},null,8,["modelValue","ready","fallback"]),"avatar"===e.shadowSelected||"avatarStatus"===e.shadowSelected?((0,l.wg)(),(0,l.iD)("div",as,[(0,l.Wm)(g,{scope:"global",keypath:"settings.style.shadows.filter_hint.always_drop_shadow",tag:"p"},{default:(0,l.w5)((function(){return[os]})),_:1}),(0,l._)("p",null,(0,h.zw)(e.$t("settings.style.shadows.filter_hint.avatar_inset")),1),(0,l.Wm)(g,{scope:"global",keypath:"settings.style.shadows.filter_hint.drop_shadow_syntax",tag:"p"},{default:(0,l.w5)((function(){return[ss,rs,is]})),_:1}),(0,l.Wm)(g,{scope:"global",keypath:"settings.style.shadows.filter_hint.inset_classic",tag:"p"},{default:(0,l.w5)((function(){return[us]})),_:1}),(0,l._)("p",null,(0,h.zw)(e.$t("settings.style.shadows.filter_hint.spread_zero")),1)])):(0,l.kq)("",!0)],8,Jo),(0,l._)("div",{label:e.$t("settings.style.fonts._tab_label"),class:"fonts-container"},[(0,l._)("div",ds,[(0,l._)("p",null,(0,h.zw)(e.$t("settings.style.fonts.help")),1),(0,l._)("button",{class:"btn button-default",onClick:t[118]||(t[118]=function(){return e.clearFonts&&e.clearFonts.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l.Wm)(b,{modelValue:e.fontsLocal.interface,"onUpdate:modelValue":t[119]||(t[119]=function(t){return e.fontsLocal.interface=t}),name:"ui",label:e.$t("settings.style.fonts.components.interface"),fallback:e.previewTheme.fonts.interface,"no-inherit":"1"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(b,{modelValue:e.fontsLocal.input,"onUpdate:modelValue":t[120]||(t[120]=function(t){return e.fontsLocal.input=t}),name:"input",label:e.$t("settings.style.fonts.components.input"),fallback:e.previewTheme.fonts.input},null,8,["modelValue","label","fallback"]),(0,l.Wm)(b,{modelValue:e.fontsLocal.post,"onUpdate:modelValue":t[121]||(t[121]=function(t){return e.fontsLocal.post=t}),name:"post",label:e.$t("settings.style.fonts.components.post"),fallback:e.previewTheme.fonts.post},null,8,["modelValue","label","fallback"]),(0,l.Wm)(b,{modelValue:e.fontsLocal.postCode,"onUpdate:modelValue":t[122]||(t[122]=function(t){return e.fontsLocal.postCode=t}),name:"postCode",label:e.$t("settings.style.fonts.components.postCode"),fallback:e.previewTheme.fonts.postCode},null,8,["modelValue","label","fallback"])],8,cs)]})),_:1})],1024)),e.isActive?((0,l.wg)(),(0,l.j4)(l.lR,{key:0,to:"#unscrolled-content"},[(0,l._)("div",ps,[(0,l._)("button",{class:"btn button-default submit",disabled:!e.themeValid,onClick:t[123]||(t[123]=function(){return e.setCustomTheme&&e.setCustomTheme.apply(e,arguments)})},(0,h.zw)(e.$t("general.apply")),9,ms),(0,l._)("button",{class:"btn button-default",onClick:t[124]||(t[124]=function(){return e.clearAll&&e.clearAll.apply(e,arguments)})},(0,h.zw)(e.$t("settings.style.switcher.reset")),1)])])):(0,l.kq)("",!0)])}]]);D.vI.add(I.klh,I.ILF,I.G_j,I.XsY,I.qmU,I.q7m,I.Aq,I.YHc);const bi={components:{TabSwitcher:m.Z,DataImportExportTab:Y,MutesAndBlocksTab:Qe,NotificationsTab:zt,FilteringTab:nn,SecurityTab:wl,ProfileTab:ba,GeneralTab:Ya,VersionTab:lo,ThemeTab:gi},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},open:function(){return"hidden"!==this.$store.state.interface.settingsModalState},bodyLock:function(){return"visible"===this.$store.state.interface.settingsModalState}},methods:{onOpen:function(){var e=this.$store.state.interface.settingsModalTargetTab;if(e){var t=this.$refs.tabSwitcher.$slots.default().findIndex((function(t){return t.props&&t.props["data-tab-name"]===e}));t>=0&&this.$refs.tabSwitcher.setTab(t)}this.$store.dispatch("clearSettingsModalTargetTab")}},mounted:function(){this.onOpen()},watch:{open:function(e){e&&this.onOpen()}}},wi=(0,B.Z)(bi,[["render",function(e,t,n,m,h,f){var g=(0,l.up)("GeneralTab"),b=(0,l.up)("ProfileTab"),w=(0,l.up)("SecurityTab"),_=(0,l.up)("FilteringTab"),k=(0,l.up)("ThemeTab"),v=(0,l.up)("NotificationsTab"),y=(0,l.up)("DataImportExportTab"),$=(0,l.up)("MutesAndBlocksTab"),C=(0,l.up)("VersionTab"),V=(0,l.up)("tab-switcher");return(0,l.wg)(),(0,l.j4)(V,{ref:"tabSwitcher",class:"settings_tab-switcher","side-tab-bar":!0,"scrollable-tabs":!0,"body-scroll-lock":e.bodyLock},{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.general"),icon:"wrench","data-tab-name":"general"},[(0,l.Wm)(g)],8,a),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:0,label:e.$t("settings.profile_tab"),icon:"user","data-tab-name":"profile"},[(0,l.Wm)(b)],8,o)):(0,l.kq)("",!0),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:1,label:e.$t("settings.security_tab"),icon:"lock","data-tab-name":"security"},[(0,l.Wm)(w)],8,s)):(0,l.kq)("",!0),(0,l._)("div",{label:e.$t("settings.filtering"),icon:"filter","data-tab-name":"filtering"},[(0,l.Wm)(_)],8,r),(0,l._)("div",{label:e.$t("settings.theme"),icon:"paint-brush","data-tab-name":"theme"},[(0,l.Wm)(k)],8,i),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:2,label:e.$t("settings.notifications"),icon:"bell","data-tab-name":"notifications"},[(0,l.Wm)(v)],8,u)):(0,l.kq)("",!0),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:3,label:e.$t("settings.data_import_export_tab"),icon:"download","data-tab-name":"dataImportExport"},[(0,l.Wm)(y)],8,c)):(0,l.kq)("",!0),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:4,label:e.$t("settings.mutes_and_blocks"),fullHeight:!0,icon:"eye-slash","data-tab-name":"mutesAndBlocks"},[(0,l.Wm)($)],8,d)):(0,l.kq)("",!0),(0,l._)("div",{label:e.$t("settings.version.title"),icon:"info","data-tab-name":"version"},[(0,l.Wm)(C)],8,p)]})),_:1},8,["body-scroll-lock"])}]])}}]);
-//# sourceMappingURL=1264.1e16af28a0b44d4d17d0.js.map \ No newline at end of file
diff --git a/priv/static/static/js/1264.1e16af28a0b44d4d17d0.js.map b/priv/static/static/js/1264.1e16af28a0b44d4d17d0.js.map
deleted file mode 100644
index 800de87a7..000000000
--- a/priv/static/static/js/1264.1e16af28a0b44d4d17d0.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1264.1e16af28a0b44d4d17d0.js","mappings":"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","sources":["webpack://pleroma_fe/./src/components/settings_modal/tabs/data_import_export_tab.vue","webpack://pleroma_fe/./src/components/importer/importer.vue","webpack://pleroma_fe/./src/components/importer/importer.js","webpack://pleroma_fe/./src/components/importer/importer.vue?a48c","webpack://pleroma_fe/./src/components/exporter/exporter.vue","webpack://pleroma_fe/./src/components/exporter/exporter.js","webpack://pleroma_fe/./src/components/exporter/exporter.vue?49d4","webpack://pleroma_fe/./src/components/settings_modal/tabs/data_import_export_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/data_import_export_tab.vue?3b3e","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.js","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue?ed00","webpack://pleroma_fe/./src/components/block_card/block_card.vue","webpack://pleroma_fe/./src/components/block_card/block_card.js","webpack://pleroma_fe/./src/components/block_card/block_card.vue?98f0","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue","webpack://pleroma_fe/./src/components/mute_card/mute_card.js","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue?716e","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.js","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue?06f5","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.js","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue?5249","webpack://pleroma_fe/./src/hocs/with_subscription/with_subscription.jsx","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.vue?8a44","webpack://pleroma_fe/./src/components/settings_modal/tabs/notifications_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/boolean_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue?d3ff","webpack://pleroma_fe/./src/components/settings_modal/helpers/server_side_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/server_side_indicator.vue?7a7f","webpack://pleroma_fe/./src/components/settings_modal/helpers/boolean_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/boolean_setting.vue?ef04","webpack://pleroma_fe/./src/components/settings_modal/helpers/shared_computed_object.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/notifications_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/notifications_tab.vue?6ae7","webpack://pleroma_fe/./src/components/settings_modal/tabs/filtering_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/choice_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/choice_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/choice_setting.vue?672b","webpack://pleroma_fe/./src/components/settings_modal/helpers/integer_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/integer_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/integer_setting.vue?de6c","webpack://pleroma_fe/./src/components/settings_modal/tabs/filtering_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/filtering_tab.vue?d491","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/security_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue?d03b","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_totp.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/confirm.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/confirm.vue?c451","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/confirm.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_totp.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_totp.vue?33f3","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue?eb32","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/security_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/security_tab.vue?9c71","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.vue","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.js","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue?4bc2","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.vue?f69a","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue?9e8f","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue?ba77","webpack://pleroma_fe/./src/components/settings_modal/tabs/version_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/version_tab.js","webpack://pleroma_fe/./src/services/version/version.service.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/version_tab.vue?9b58","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.vue","webpack://pleroma_fe/./src/components/color_input/color_input.vue","webpack://pleroma_fe/./src/components/color_input/color_input.vue?ea8c","webpack://pleroma_fe/./src/components/range_input/range_input.vue","webpack://pleroma_fe/./src/components/range_input/range_input.vue?9fff","webpack://pleroma_fe/./src/components/opacity_input/opacity_input.vue","webpack://pleroma_fe/./src/components/opacity_input/opacity_input.vue?ed56","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.js","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue?fe66","webpack://pleroma_fe/./src/components/font_control/font_control.js","webpack://pleroma_fe/./src/components/font_control/font_control.vue?d3f8","webpack://pleroma_fe/./src/components/font_control/font_control.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue?2ae9","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue?771c","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.vue?bfa7","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.vue?6fc2","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.vue"],"sourcesContent":["<template>\n <div\n :label=\"$t('settings.data_import_export_tab')\"\n >\n <div class=\"setting-item\">\n <h2>{{ $t('settings.follow_import') }}</h2>\n <p>{{ $t('settings.import_followers_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importFollows\"\n :success-message=\"$t('settings.follows_imported')\"\n :error-message=\"$t('settings.follow_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.follow_export') }}</h2>\n <Exporter\n :get-content=\"getFollowsContent\"\n filename=\"friends.csv\"\n :export-button-label=\"$t('settings.follow_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.block_import') }}</h2>\n <p>{{ $t('settings.import_blocks_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importBlocks\"\n :success-message=\"$t('settings.blocks_imported')\"\n :error-message=\"$t('settings.block_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.block_export') }}</h2>\n <Exporter\n :get-content=\"getBlocksContent\"\n filename=\"blocks.csv\"\n :export-button-label=\"$t('settings.block_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.mute_import') }}</h2>\n <p>{{ $t('settings.import_mutes_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importMutes\"\n :success-message=\"$t('settings.mutes_imported')\"\n :error-message=\"$t('settings.mute_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.mute_export') }}</h2>\n <Exporter\n :get-content=\"getMutesContent\"\n filename=\"mutes.csv\"\n :export-button-label=\"$t('settings.mute_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.account_backup') }}</h2>\n <p>{{ $t('settings.account_backup_description') }}</p>\n <table>\n <thead>\n <tr>\n <th>{{ $t('settings.account_backup_table_head') }}</th>\n <th />\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"backup in backups\"\n :key=\"backup.id\"\n >\n <td>{{ backup.inserted_at }}</td>\n <td class=\"actions\">\n <a\n v-if=\"backup.processed\"\n target=\"_blank\"\n :href=\"backup.url\"\n >\n {{ $t('settings.download_backup') }}\n </a>\n <span\n v-else\n >\n {{ $t('settings.backup_not_ready') }}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n <div\n v-if=\"listBackupsError\"\n class=\"alert error\"\n >\n {{ $t('settings.list_backups_error', { error }) }}\n <button\n :title=\"$t('settings.hide_list_backups_error_action')\"\n @click=\"listBackupsError = false\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <button\n class=\"btn button-default\"\n @click=\"addBackup\"\n >\n {{ $t('settings.add_backup') }}\n </button>\n <p v-if=\"addedBackup\">\n {{ $t('settings.added_backup') }}\n </p>\n <template v-if=\"addBackupError !== false\">\n <p>{{ $t('settings.add_backup_error', { error: addBackupError }) }}</p>\n </template>\n </div>\n </div>\n</template>\n\n<script src=\"./data_import_export_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <div class=\"importer\">\n <form>\n <input\n ref=\"input\"\n type=\"file\"\n @change=\"change\"\n >\n </form>\n <FAIcon\n v-if=\"submitting\"\n class=\"importer-uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else\n class=\"btn button-default\"\n @click=\"submit\"\n >\n {{ submitButtonLabel || $t('importer.submit') }}\n </button>\n <div v-if=\"success\">\n <button\n class=\"button-unstyled\"\n @click=\"dismiss\"\n >\n <FAIcon\n icon=\"times\"\n />\n </button>\n {{ ' ' }}\n <span>{{ successMessage || $t('importer.success') }}</span>\n </div>\n <div v-else-if=\"error\">\n <button\n class=\"button-unstyled\"\n @click=\"dismiss\"\n >\n <FAIcon\n icon=\"times\"\n />\n </button>\n {{ ' ' }}\n <span>{{ errorMessage || $t('importer.error') }}</span>\n </div>\n </div>\n</template>\n\n<script src=\"./importer.js\"></script>\n\n<style lang=\"scss\">\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faTimes\n)\n\nconst Importer = {\n props: {\n submitHandler: {\n type: Function,\n required: true\n },\n submitButtonLabel: { type: String },\n successMessage: { type: String },\n errorMessage: { type: String }\n },\n data () {\n return {\n file: null,\n error: false,\n success: false,\n submitting: false\n }\n },\n methods: {\n change () {\n this.file = this.$refs.input.files[0]\n },\n submit () {\n this.dismiss()\n this.submitting = true\n this.submitHandler(this.file)\n .then(() => { this.success = true })\n .catch(() => { this.error = true })\n .finally(() => { this.submitting = false })\n },\n dismiss () {\n this.success = false\n this.error = false\n }\n }\n}\n\nexport default Importer\n","import { render } from \"./importer.vue?vue&type=template&id=24f20fa0\"\nimport script from \"./importer.js?vue&type=script&lang=js\"\nexport * from \"./importer.js?vue&type=script&lang=js\"\n\nimport \"./importer.vue?vue&type=style&index=0&id=24f20fa0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"exporter\">\n <div v-if=\"processing\">\n <FAIcon\n icon=\"circle-notch\"\n size=\"lg\"\n spin\n />\n\n <span>{{ processingMessage || $t('exporter.processing') }}</span>\n </div>\n <button\n v-else\n class=\"btn button-default\"\n @click=\"process\"\n >\n {{ exportButtonLabel || $t('exporter.export') }}\n </button>\n </div>\n</template>\n\n<script src=\"./exporter.js\"></script>\n\n<style lang=\"scss\">\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst Exporter = {\n props: {\n getContent: {\n type: Function,\n required: true\n },\n filename: {\n type: String,\n default: 'export.csv'\n },\n exportButtonLabel: { type: String },\n processingMessage: { type: String }\n },\n data () {\n return {\n processing: false\n }\n },\n methods: {\n process () {\n this.processing = true\n this.getContent()\n .then((content) => {\n const fileToDownload = document.createElement('a')\n fileToDownload.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content))\n fileToDownload.setAttribute('download', this.filename)\n fileToDownload.style.display = 'none'\n document.body.appendChild(fileToDownload)\n fileToDownload.click()\n document.body.removeChild(fileToDownload)\n // Add delay before hiding processing state since browser takes some time to handle file download\n setTimeout(() => { this.processing = false }, 2000)\n })\n }\n }\n}\n\nexport default Exporter\n","import { render } from \"./exporter.vue?vue&type=template&id=6357fe6a\"\nimport script from \"./exporter.js?vue&type=script&lang=js\"\nexport * from \"./exporter.js?vue&type=script&lang=js\"\n\nimport \"./exporter.vue?vue&type=style&index=0&id=6357fe6a&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Importer from 'src/components/importer/importer.vue'\nimport Exporter from 'src/components/exporter/exporter.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport { mapState } from 'vuex'\n\nconst DataImportExportTab = {\n data () {\n return {\n activeTab: 'profile',\n newDomainToMute: '',\n listBackupsError: false,\n addBackupError: false,\n addedBackup: false,\n backups: []\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n this.fetchBackups()\n },\n components: {\n Importer,\n Exporter,\n Checkbox\n },\n computed: {\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor,\n user: (state) => state.users.currentUser\n })\n },\n methods: {\n getFollowsContent () {\n return this.backendInteractor.exportFriends({ id: this.user.id })\n .then(this.generateExportableUsersContent)\n },\n getBlocksContent () {\n return this.backendInteractor.fetchBlocks()\n .then(this.generateExportableUsersContent)\n },\n getMutesContent () {\n return this.backendInteractor.fetchMutes()\n .then(this.generateExportableUsersContent)\n },\n importFollows (file) {\n return this.backendInteractor.importFollows({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importBlocks (file) {\n return this.backendInteractor.importBlocks({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importMutes (file) {\n return this.backendInteractor.importMutes({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n generateExportableUsersContent (users) {\n // Get addresses\n return users.map((user) => {\n // check is it's a local user\n if (user && user.is_local) {\n // append the instance address\n // eslint-disable-next-line no-undef\n return user.screen_name + '@' + location.hostname\n }\n return user.screen_name\n }).join('\\n')\n },\n addBackup () {\n this.$store.state.api.backendInteractor.addBackup()\n .then((res) => {\n this.addedBackup = true\n this.addBackupError = false\n })\n .catch((error) => {\n this.addedBackup = false\n this.addBackupError = error\n })\n .then(() => this.fetchBackups())\n },\n fetchBackups () {\n this.$store.state.api.backendInteractor.listBackups()\n .then((res) => {\n this.backups = res\n this.listBackupsError = false\n })\n .catch((error) => {\n this.listBackupsError = error.error\n })\n }\n }\n}\n\nexport default DataImportExportTab\n","import { render } from \"./data_import_export_tab.vue?vue&type=template&id=999997e6\"\nimport script from \"./data_import_export_tab.js?vue&type=script&lang=js\"\nexport * from \"./data_import_export_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <tab-switcher\n :scrollable-tabs=\"true\"\n class=\"mutes-and-blocks-tab\"\n >\n <div :label=\"$t('settings.blocks_tab')\">\n <div class=\"usersearch-wrapper\">\n <Autosuggest\n :filter=\"filterUnblockedUsers\"\n :query=\"queryUserIds\"\n :placeholder=\"$t('settings.search_user_to_block')\"\n >\n <template #default=\"row\">\n <BlockCard\n :user-id=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <BlockList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template #header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default bulk-action-button\"\n :click=\"() => blockUsers(selected)\"\n >\n {{ $t('user_card.block') }}\n <template #progress>\n {{ $t('user_card.block_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unblockUsers(selected)\"\n >\n {{ $t('user_card.unblock') }}\n <template #progress>\n {{ $t('user_card.unblock_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template #item=\"{item}\">\n <BlockCard :user-id=\"item\" />\n </template>\n <template #empty>\n {{ $t('settings.no_blocks') }}\n </template>\n </BlockList>\n </div>\n\n <div :label=\"$t('settings.mutes_tab')\">\n <tab-switcher>\n <div :label=\"$t('settings.user_mutes')\">\n <div class=\"usersearch-wrapper\">\n <Autosuggest\n :filter=\"filterUnMutedUsers\"\n :query=\"queryUserIds\"\n :placeholder=\"$t('settings.search_user_to_mute')\"\n >\n <template #default=\"row\">\n <MuteCard\n :user-id=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <MuteList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template #header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => muteUsers(selected)\"\n >\n {{ $t('user_card.mute') }}\n <template #progress>\n {{ $t('user_card.mute_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unmuteUsers(selected)\"\n >\n {{ $t('user_card.unmute') }}\n <template #progress>\n {{ $t('user_card.unmute_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template #item=\"{item}\">\n <MuteCard :user-id=\"item\" />\n </template>\n <template #empty>\n {{ $t('settings.no_mutes') }}\n </template>\n </MuteList>\n </div>\n\n <div :label=\"$t('settings.domain_mutes')\">\n <div class=\"domain-mute-form\">\n <Autosuggest\n :filter=\"filterUnMutedDomains\"\n :query=\"queryKnownDomains\"\n :placeholder=\"$t('settings.type_domains_to_mute')\"\n >\n <template #default=\"row\">\n <DomainMuteCard\n :domain=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <DomainMuteList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template #header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unmuteDomains(selected)\"\n >\n {{ $t('domain_mute_card.unmute') }}\n <template #progress>\n {{ $t('domain_mute_card.unmute_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template #item=\"{item}\">\n <DomainMuteCard :domain=\"item\" />\n </template>\n <template #empty>\n {{ $t('settings.no_mutes') }}\n </template>\n </DomainMuteList>\n </div>\n </tab-switcher>\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./mutes_and_blocks_tab.js\"></script>\n<style lang=\"scss\" src=\"./mutes_and_blocks_tab.scss\"></style>\n","<template>\n <div\n v-click-outside=\"onClickOutside\"\n class=\"autosuggest\"\n >\n <input\n v-model=\"term\"\n :placeholder=\"placeholder\"\n class=\"autosuggest-input\"\n @click=\"onInputClick\"\n >\n <div\n v-if=\"resultsVisible && filtered.length > 0\"\n class=\"autosuggest-results\"\n >\n <slot\n v-for=\"item in filtered\"\n :item=\"item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./autosuggest.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-style: solid;\n border-width: 1px;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n</style>\n","const debounceMilliseconds = 500\n\nexport default {\n props: {\n query: { // function to query results and return a promise\n type: Function,\n required: true\n },\n filter: { // function to filter results in real time\n type: Function\n },\n placeholder: {\n type: String,\n default: 'Search...'\n }\n },\n data () {\n return {\n term: '',\n timeout: null,\n results: [],\n resultsVisible: false\n }\n },\n computed: {\n filtered () {\n return this.filter ? this.filter(this.results) : this.results\n }\n },\n watch: {\n term (val) {\n this.fetchResults(val)\n }\n },\n methods: {\n fetchResults (term) {\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => {\n this.results = []\n if (term) {\n this.query(term).then((results) => { this.results = results })\n }\n }, debounceMilliseconds)\n },\n onInputClick () {\n this.resultsVisible = true\n },\n onClickOutside () {\n this.resultsVisible = false\n }\n }\n}\n","import { render } from \"./autosuggest.vue?vue&type=template&id=105e6799\"\nimport script from \"./autosuggest.js?vue&type=script&lang=js\"\nexport * from \"./autosuggest.js?vue&type=script&lang=js\"\n\nimport \"./autosuggest.vue?vue&type=style&index=0&id=105e6799&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <basic-user-card :user=\"user\">\n <div class=\"block-card-content-container\">\n <button\n v-if=\"blocked\"\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"unblockUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.unblock_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.unblock') }}\n </template>\n </button>\n <button\n v-else\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"blockUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.block_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.block') }}\n </template>\n </button>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./block_card.js\"></script>\n\n<style lang=\"scss\">\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst BlockCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n blocked () {\n return this.relationship.blocking\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unblockUser () {\n this.progress = true\n this.$store.dispatch('unblockUser', this.user.id).then(() => {\n this.progress = false\n })\n },\n blockUser () {\n this.progress = true\n this.$store.dispatch('blockUser', this.user.id).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default BlockCard\n","import { render } from \"./block_card.vue?vue&type=template&id=0f5ac826\"\nimport script from \"./block_card.js?vue&type=script&lang=js\"\nexport * from \"./block_card.js?vue&type=script&lang=js\"\n\nimport \"./block_card.vue?vue&type=style&index=0&id=0f5ac826&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <basic-user-card :user=\"user\">\n <div class=\"mute-card-content-container\">\n <button\n v-if=\"muted\"\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"unmuteUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.unmute_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.unmute') }}\n </template>\n </button>\n <button\n v-else\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"muteUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.mute_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.mute') }}\n </template>\n </button>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./mute_card.js\"></script>\n\n<style lang=\"scss\">\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst MuteCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n muted () {\n return this.relationship.muting\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unmuteUser () {\n this.progress = true\n this.$store.dispatch('unmuteUser', this.userId).then(() => {\n this.progress = false\n })\n },\n muteUser () {\n this.progress = true\n this.$store.dispatch('muteUser', this.userId).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default MuteCard\n","import { render } from \"./mute_card.vue?vue&type=template&id=5e3199a7\"\nimport script from \"./mute_card.js?vue&type=script&lang=js\"\nexport * from \"./mute_card.js?vue&type=script&lang=js\"\n\nimport \"./mute_card.vue?vue&type=style&index=0&id=5e3199a7&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"domain-mute-card\">\n <div class=\"domain-mute-card-domain\">\n {{ domain }}\n </div>\n <ProgressButton\n v-if=\"muted\"\n :click=\"unmuteDomain\"\n class=\"btn button-default\"\n >\n {{ $t('domain_mute_card.unmute') }}\n <template #progress>\n {{ $t('domain_mute_card.unmute_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-else\n :click=\"muteDomain\"\n class=\"btn button-default\"\n >\n {{ $t('domain_mute_card.mute') }}\n <template #progress>\n {{ $t('domain_mute_card.mute_progress') }}\n </template>\n </ProgressButton>\n </div>\n</template>\n\n<script src=\"./domain_mute_card.js\"></script>\n\n<style lang=\"scss\">\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n</style>\n","import ProgressButton from '../progress_button/progress_button.vue'\n\nconst DomainMuteCard = {\n props: ['domain'],\n components: {\n ProgressButton\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n muted () {\n return this.user.domainMutes.includes(this.domain)\n }\n },\n methods: {\n unmuteDomain () {\n return this.$store.dispatch('unmuteDomain', this.domain)\n },\n muteDomain () {\n return this.$store.dispatch('muteDomain', this.domain)\n }\n }\n}\n\nexport default DomainMuteCard\n","import { render } from \"./domain_mute_card.vue?vue&type=template&id=2e9027a8\"\nimport script from \"./domain_mute_card.js?vue&type=script&lang=js\"\nexport * from \"./domain_mute_card.js?vue&type=script&lang=js\"\n\nimport \"./domain_mute_card.vue?vue&type=style&index=0&id=2e9027a8&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"selectable-list\">\n <div\n v-if=\"items.length > 0\"\n class=\"selectable-list-header\"\n >\n <div class=\"selectable-list-checkbox-wrapper\">\n <Checkbox\n :model-value=\"allSelected\"\n :indeterminate=\"someSelected\"\n @update:model-value=\"toggleAll\"\n >\n {{ $t('selectable_list.select_all') }}\n </Checkbox>\n </div>\n <div class=\"selectable-list-header-actions\">\n <slot\n name=\"header\"\n :selected=\"filteredSelected\"\n />\n </div>\n </div>\n <List\n :items=\"items\"\n :get-key=\"getKey\"\n >\n <template #item=\"{item}\">\n <div\n class=\"selectable-list-item-inner\"\n :class=\"{ 'selectable-list-item-selected-inner': isSelected(item) }\"\n >\n <div class=\"selectable-list-checkbox-wrapper\">\n <Checkbox\n :model-value=\"isSelected(item)\"\n @update:model-value=\"checked => toggle(checked, item)\"\n />\n </div>\n <slot\n name=\"item\"\n :item=\"item\"\n />\n </div>\n </template>\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </List>\n </div>\n</template>\n\n<script src=\"./selectable_list.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.selectable-list {\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-item-selected-inner {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: var(--selectedMenuText, $fallback--text);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: 0.6em 0;\n border-bottom: 2px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding: 0 10px;\n flex: none;\n }\n}\n</style>\n","import List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nconst SelectableList = {\n components: {\n List,\n Checkbox\n },\n props: {\n items: {\n type: Array,\n default: () => []\n },\n getKey: {\n type: Function,\n default: item => item.id\n }\n },\n data () {\n return {\n selected: []\n }\n },\n computed: {\n allKeys () {\n return this.items.map(this.getKey)\n },\n filteredSelected () {\n return this.allKeys.filter(key => this.selected.indexOf(key) !== -1)\n },\n allSelected () {\n return this.filteredSelected.length === this.items.length\n },\n noneSelected () {\n return this.filteredSelected.length === 0\n },\n someSelected () {\n return !this.allSelected && !this.noneSelected\n }\n },\n methods: {\n isSelected (item) {\n return this.filteredSelected.indexOf(this.getKey(item)) !== -1\n },\n toggle (checked, item) {\n const key = this.getKey(item)\n const oldChecked = this.isSelected(key)\n if (checked !== oldChecked) {\n if (checked) {\n this.selected.push(key)\n } else {\n this.selected.splice(this.selected.indexOf(key), 1)\n }\n }\n },\n toggleAll (value) {\n if (value) {\n this.selected = this.allKeys.slice(0)\n } else {\n this.selected = []\n }\n }\n }\n}\n\nexport default SelectableList\n","import { render } from \"./selectable_list.vue?vue&type=template&id=009904ca\"\nimport script from \"./selectable_list.js?vue&type=script&lang=js\"\nexport * from \"./selectable_list.js?vue&type=script&lang=js\"\n\nimport \"./selectable_list.vue?vue&type=style&index=0&id=009904ca&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// eslint-disable-next-line no-unused\nimport { h } from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_subscription.scss'\n\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst withSubscription = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n childPropName = 'content', // name of the prop to be passed into the wrapped component\n additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n const originalProps = Object.keys(getComponentProps(WrappedComponent))\n const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n return {\n props: [\n ...props,\n 'refresh' // boolean saying to force-fetch data whenever created\n ],\n data () {\n return {\n loading: false,\n error: false\n }\n },\n computed: {\n fetchedData () {\n return select(this.$props, this.$store)\n }\n },\n created () {\n if (this.refresh || isEmpty(this.fetchedData)) {\n this.fetchData()\n }\n },\n methods: {\n fetchData () {\n if (!this.loading) {\n this.loading = true\n this.error = false\n fetch(this.$props, this.$store)\n .then(() => {\n this.loading = false\n })\n .catch(() => {\n this.error = true\n this.loading = false\n })\n }\n }\n },\n render () {\n if (!this.error && !this.loading) {\n const props = {\n ...this.$props,\n [childPropName]: this.fetchedData\n }\n const children = this.$slots\n return (\n <div class=\"with-subscription\">\n <WrappedComponent {...props}>\n {children}\n </WrappedComponent>\n </div>\n )\n } else {\n return (\n <div class=\"with-subscription-loading\">\n {this.error\n ? <a onClick={this.fetchData} class=\"alert error\">{this.$t('general.generic_error')}</a>\n : <FAIcon spin icon=\"circle-notch\"/>\n }\n </div>\n )\n }\n }\n }\n}\n\nexport default withSubscription\n","import get from 'lodash/get'\nimport map from 'lodash/map'\nimport reject from 'lodash/reject'\nimport Autosuggest from 'src/components/autosuggest/autosuggest.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport BlockCard from 'src/components/block_card/block_card.vue'\nimport MuteCard from 'src/components/mute_card/mute_card.vue'\nimport DomainMuteCard from 'src/components/domain_mute_card/domain_mute_card.vue'\nimport SelectableList from 'src/components/selectable_list/selectable_list.vue'\nimport ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport withSubscription from 'src/components/../hocs/with_subscription/with_subscription'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\n\nconst BlockList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchBlocks'),\n select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst MuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst DomainMuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchDomainMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'domainMutes', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst MutesAndBlocks = {\n data () {\n return {\n activeTab: 'profile'\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n this.$store.dispatch('getKnownDomains')\n },\n components: {\n TabSwitcher,\n BlockList,\n MuteList,\n DomainMuteList,\n BlockCard,\n MuteCard,\n DomainMuteCard,\n ProgressButton,\n Autosuggest,\n Checkbox\n },\n computed: {\n knownDomains () {\n return this.$store.state.instance.knownDomains\n },\n user () {\n return this.$store.state.users.currentUser\n }\n },\n methods: {\n importFollows (file) {\n return this.$store.state.api.backendInteractor.importFollows({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importBlocks (file) {\n return this.$store.state.api.backendInteractor.importBlocks({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n generateExportableUsersContent (users) {\n // Get addresses\n return users.map((user) => {\n // check is it's a local user\n if (user && user.is_local) {\n // append the instance address\n // eslint-disable-next-line no-undef\n return user.screen_name + '@' + location.hostname\n }\n return user.screen_name\n }).join('\\n')\n },\n activateTab (tabName) {\n this.activeTab = tabName\n },\n filterUnblockedUsers (userIds) {\n return reject(userIds, (userId) => {\n const relationship = this.$store.getters.relationship(this.userId)\n return relationship.blocking || userId === this.user.id\n })\n },\n filterUnMutedUsers (userIds) {\n return reject(userIds, (userId) => {\n const relationship = this.$store.getters.relationship(this.userId)\n return relationship.muting || userId === this.user.id\n })\n },\n queryUserIds (query) {\n return this.$store.dispatch('searchUsers', { query })\n .then((users) => map(users, 'id'))\n },\n blockUsers (ids) {\n return this.$store.dispatch('blockUsers', ids)\n },\n unblockUsers (ids) {\n return this.$store.dispatch('unblockUsers', ids)\n },\n muteUsers (ids) {\n return this.$store.dispatch('muteUsers', ids)\n },\n unmuteUsers (ids) {\n return this.$store.dispatch('unmuteUsers', ids)\n },\n filterUnMutedDomains (urls) {\n return urls.filter(url => !this.user.domainMutes.includes(url))\n },\n queryKnownDomains (query) {\n return new Promise((resolve, reject) => {\n resolve(this.knownDomains.filter(url => url.toLowerCase().includes(query)))\n })\n },\n unmuteDomains (domains) {\n return this.$store.dispatch('unmuteDomains', domains)\n }\n }\n}\n\nexport default MutesAndBlocks\n","import { render } from \"./mutes_and_blocks_tab.vue?vue&type=template&id=41edf664\"\nimport script from \"./mutes_and_blocks_tab.js?vue&type=script&lang=js\"\nexport * from \"./mutes_and_blocks_tab.js?vue&type=script&lang=js\"\n\nimport \"./mutes_and_blocks_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.notifications')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.notification_setting_filters') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"serverSide_blockNotificationsFromStrangers\">\n {{ $t('settings.notification_setting_block_from_strangers') }}\n </BooleanSetting>\n </li>\n <li class=\"select-multiple\">\n <span class=\"label\">{{ $t('settings.notification_visibility') }}</span>\n <ul class=\"option-list\">\n <li>\n <BooleanSetting path=\"notificationVisibility.likes\">\n {{ $t('settings.notification_visibility_likes') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.repeats\">\n {{ $t('settings.notification_visibility_repeats') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.follows\">\n {{ $t('settings.notification_visibility_follows') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.mentions\">\n {{ $t('settings.notification_visibility_mentions') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.moves\">\n {{ $t('settings.notification_visibility_moves') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.emojiReactions\">\n {{ $t('settings.notification_visibility_emoji_reactions') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.polls\">\n {{ $t('settings.notification_visibility_polls') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n\n <div\n v-if=\"expertLevel > 0\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.notification_setting_privacy') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\"webPushNotifications\"\n expert=\"1\"\n >\n {{ $t('settings.enable_web_push_notifications') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"serverSide_webPushHideContents\"\n expert=\"1\"\n >\n {{ $t('settings.notification_setting_hide_notification_contents') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <p>{{ $t('settings.notification_mutes') }}</p>\n <p>{{ $t('settings.notification_blocks') }}</p>\n </div>\n </div>\n</template>\n\n<script src=\"./notifications_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"BooleanSetting\"\n >\n <Checkbox\n :model-value=\"state\"\n :disabled=\"disabled\"\n @update:modelValue=\"update\"\n >\n <span\n v-if=\"!!$slots.default\"\n class=\"label\"\n >\n <slot />\n </span>\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ServerSideIndicator :server-side=\"isServerSide\" />\n </Checkbox>\n </label>\n</template>\n\n<script src=\"./boolean_setting.js\"></script>\n","<template>\n <span\n v-if=\"changed\"\n class=\"ModifiedIndicator\"\n >\n <Popover\n trigger=\"hover\"\n >\n <template #trigger>\n &nbsp;\n <FAIcon\n icon=\"wrench\"\n :aria-label=\"$t('settings.setting_changed')\"\n />\n </template>\n <template #content>\n <div class=\"modified-tooltip\">\n {{ $t('settings.setting_changed') }}\n </div>\n </template>\n </Popover>\n </span>\n</template>\n\n<script>\nimport Popover from 'src/components/popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench\n)\n\nexport default {\n components: { Popover },\n props: ['changed']\n}\n</script>\n\n<style lang=\"scss\">\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n</style>\n","import { render } from \"./modified_indicator.vue?vue&type=template&id=c8f8dada\"\nimport script from \"./modified_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./modified_indicator.vue?vue&type=script&lang=js\"\n\nimport \"./modified_indicator.vue?vue&type=style&index=0&id=c8f8dada&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"serverSide\"\n class=\"ServerSideIndicator\"\n >\n <Popover\n trigger=\"hover\"\n >\n <template #trigger>\n &nbsp;\n <FAIcon\n icon=\"server\"\n :aria-label=\"$t('settings.setting_server_side')\"\n />\n </template>\n <template #content>\n <div class=\"serverside-tooltip\">\n {{ $t('settings.setting_server_side') }}\n </div>\n </template>\n </Popover>\n </span>\n</template>\n\n<script>\nimport Popover from 'src/components/popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faServer } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faServer\n)\n\nexport default {\n components: { Popover },\n props: ['serverSide']\n}\n</script>\n\n<style lang=\"scss\">\n.ServerSideIndicator {\n display: inline-block;\n position: relative;\n}\n\n.serverside-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n</style>\n","import { render } from \"./server_side_indicator.vue?vue&type=template&id=0363e54b\"\nimport script from \"./server_side_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./server_side_indicator.vue?vue&type=script&lang=js\"\n\nimport \"./server_side_indicator.vue?vue&type=style&index=0&id=0363e54b&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { get, set } from 'lodash'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport ServerSideIndicator from './server_side_indicator.vue'\nexport default {\n components: {\n Checkbox,\n ModifiedIndicator,\n ServerSideIndicator\n },\n props: [\n 'path',\n 'disabled',\n 'expert'\n ],\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isServerSide () {\n return this.path.startsWith('serverSide_')\n },\n isChanged () {\n return !this.path.startsWith('serverSide_') && this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n const [firstSegment, ...rest] = this.path.split('.')\n set(this.$parent, this.path, e)\n // Updating nested properties does not trigger update on its parent.\n // probably still not as reliable, but works for depth=1 at least\n if (rest.length > 0) {\n set(this.$parent, firstSegment, { ...get(this.$parent, firstSegment) })\n }\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n }\n }\n}\n","import { render } from \"./boolean_setting.vue?vue&type=template&id=2b40af98\"\nimport script from \"./boolean_setting.js?vue&type=script&lang=js\"\nexport * from \"./boolean_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defaultState as configDefaultState } from 'src/modules/config.js'\nimport { defaultState as serverSideConfigDefaultState } from 'src/modules/serverSideConfig.js'\n\nconst SharedComputedObject = () => ({\n user () {\n return this.$store.state.users.currentUser\n },\n // Getting values for default properties\n ...Object.keys(configDefaultState)\n .map(key => [\n key + 'DefaultValue',\n function () {\n return this.$store.getters.defaultConfig[key]\n }\n ])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Generating computed values for vuex properties\n ...Object.keys(configDefaultState)\n .map(key => [key, {\n get () { return this.$store.getters.mergedConfig[key] },\n set (value) {\n this.$store.dispatch('setOption', { name: key, value })\n }\n }])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n ...Object.keys(serverSideConfigDefaultState)\n .map(key => ['serverSide_' + key, {\n get () { return this.$store.state.serverSideConfig[key] },\n set (value) {\n this.$store.dispatch('setServerSideOption', { name: key, value })\n }\n }])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Special cases (need to transform values or perform actions first)\n useStreamingApi: {\n get () { return this.$store.getters.mergedConfig.useStreamingApi },\n set (value) {\n const promise = value\n ? this.$store.dispatch('enableMastoSockets')\n : this.$store.dispatch('disableMastoSockets')\n\n promise.then(() => {\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value })\n }).catch((e) => {\n console.error('Failed starting MastoAPI Streaming socket', e)\n this.$store.dispatch('disableMastoSockets')\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value: false })\n })\n }\n }\n})\n\nexport default SharedComputedObject\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\n\nconst NotificationsTab = {\n data () {\n return {\n activeTab: 'profile',\n notificationSettings: this.$store.state.users.currentUser.notification_settings,\n newDomainToMute: ''\n }\n },\n components: {\n BooleanSetting\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n ...SharedComputedObject()\n },\n methods: {\n updateNotificationSettings () {\n this.$store.state.api.backendInteractor\n .updateNotificationSettings({ settings: this.notificationSettings })\n }\n }\n}\n\nexport default NotificationsTab\n","import { render } from \"./notifications_tab.vue?vue&type=template&id=e4b944ee\"\nimport script from \"./notifications_tab.js?vue&type=script&lang=js\"\nexport * from \"./notifications_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.filtering')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.posts') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"hideFilteredStatuses\">\n {{ $t('settings.hide_filtered_statuses') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n :disabled=\"hideFilteredStatuses\"\n path=\"hideWordFilteredPosts\"\n >\n {{ $t('settings.hide_wordfiltered_statuses') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n :disabled=\"hideFilteredStatuses\"\n path=\"hideMutedThreads\"\n >\n {{ $t('settings.hide_muted_threads') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n :disabled=\"hideFilteredStatuses\"\n path=\"hideMutedPosts\"\n >\n {{ $t('settings.hide_muted_posts') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\"muteBotStatuses\">\n {{ $t('settings.mute_bot_posts') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hidePostStats\">\n {{ $t('settings.hide_post_stats') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideBotIndication\">\n {{ $t('settings.hide_bot_indication') }}\n </BooleanSetting>\n </li>\n <ChoiceSetting\n v-if=\"user\"\n id=\"replyVisibility\"\n path=\"replyVisibility\"\n :options=\"replyVisibilityOptions\"\n >\n {{ $t('settings.replies_in_timeline') }}\n </ChoiceSetting>\n <li>\n <h3>{{ $t('settings.wordfilter') }}</h3>\n <textarea\n id=\"muteWords\"\n v-model=\"muteWordsString\"\n class=\"resize-height\"\n />\n <div>{{ $t('settings.filtering_explanation') }}</div>\n </li>\n <h3>{{ $t('settings.attachments') }}</h3>\n <li>\n <IntegerSetting\n path=\"maxThumbnails\"\n expert=\"1\"\n :min=\"0\"\n >\n {{ $t('settings.max_thumbnails') }}\n </IntegerSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideAttachments\">\n {{ $t('settings.hide_attachments_in_tl') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideAttachmentsInConv\">\n {{ $t('settings.hide_attachments_in_convo') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n <div\n v-if=\"expertLevel > 0\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.user_profiles') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"hideUserStats\">\n {{ $t('settings.hide_user_stats') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n </div>\n</template>\n<script src=\"./filtering_tab.js\"></script>\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"ChoiceSetting\"\n >\n <slot />\n {{ ' ' }}\n <Select\n :model-value=\"state\"\n :disabled=\"disabled\"\n @update:modelValue=\"update\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.key\"\n :value=\"option.value\"\n >\n {{ option.label }}\n {{ option.value === defaultState ? $t('settings.instance_default_simple') : '' }}\n </option>\n </Select>\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ServerSideIndicator :server-side=\"isServerSide\" />\n </label>\n</template>\n\n<script src=\"./choice_setting.js\"></script>\n\n<style lang=\"scss\">\n.ChoiceSetting {\n}\n</style>\n","import { get, set } from 'lodash'\nimport Select from 'src/components/select/select.vue'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport ServerSideIndicator from './server_side_indicator.vue'\nexport default {\n components: {\n Select,\n ModifiedIndicator,\n ServerSideIndicator\n },\n props: [\n 'path',\n 'disabled',\n 'options',\n 'expert'\n ],\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isServerSide () {\n return this.path.startsWith('serverSide_')\n },\n isChanged () {\n return !this.path.startsWith('serverSide_') && this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, e)\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n }\n }\n}\n","import { render } from \"./choice_setting.vue?vue&type=template&id=4406d20e\"\nimport script from \"./choice_setting.js?vue&type=script&lang=js\"\nexport * from \"./choice_setting.js?vue&type=script&lang=js\"\n\nimport \"./choice_setting.vue?vue&type=style&index=0&id=4406d20e&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"IntegerSetting\"\n >\n <label :for=\"path\">\n <slot />\n </label>\n <input\n :id=\"path\"\n class=\"number-input\"\n type=\"number\"\n step=\"1\"\n :disabled=\"disabled\"\n :min=\"min || 0\"\n :value=\"state\"\n @change=\"update\"\n >\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n </span>\n</template>\n\n<script src=\"./integer_setting.js\"></script>\n","import { get, set } from 'lodash'\nimport ModifiedIndicator from './modified_indicator.vue'\nexport default {\n components: {\n ModifiedIndicator\n },\n props: {\n path: String,\n disabled: Boolean,\n min: Number,\n expert: [Number, String]\n },\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isChanged () {\n return this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, parseInt(e.target.value))\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n }\n }\n}\n","import { render } from \"./integer_setting.vue?vue&type=template&id=0490fdac\"\nimport script from \"./integer_setting.js?vue&type=script&lang=js\"\nexport * from \"./integer_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { filter, trim } from 'lodash'\nimport BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\n\nconst FilteringTab = {\n data () {\n return {\n muteWordsStringLocal: this.$store.getters.mergedConfig.muteWords.join('\\n'),\n replyVisibilityOptions: ['all', 'following', 'self'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.reply_visibility_${mode}`)\n }))\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting\n },\n computed: {\n ...SharedComputedObject(),\n muteWordsString: {\n get () {\n return this.muteWordsStringLocal\n },\n set (value) {\n this.muteWordsStringLocal = value\n this.$store.dispatch('setOption', {\n name: 'muteWords',\n value: filter(value.split('\\n'), (word) => trim(word).length > 0)\n })\n }\n }\n },\n // Updating nested properties\n watch: {\n replyVisibility () {\n this.$store.dispatch('queueFlushAll')\n }\n }\n}\n\nexport default FilteringTab\n","import { render } from \"./filtering_tab.vue?vue&type=template&id=19e8a013\"\nimport script from \"./filtering_tab.js?vue&type=script&lang=js\"\nexport * from \"./filtering_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.security_tab')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.change_email') }}</h2>\n <div>\n <p>{{ $t('settings.new_email') }}</p>\n <input\n v-model=\"newEmail\"\n type=\"email\"\n autocomplete=\"email\"\n >\n </div>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"changeEmailPassword\"\n type=\"password\"\n autocomplete=\"current-password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"changeEmail\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"changedEmail\">\n {{ $t('settings.changed_email') }}\n </p>\n <template v-if=\"changeEmailError !== false\">\n <p>{{ $t('settings.change_email_error') }}</p>\n <p>{{ changeEmailError }}</p>\n </template>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.change_password') }}</h2>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"changePasswordInputs[0]\"\n type=\"password\"\n >\n </div>\n <div>\n <p>{{ $t('settings.new_password') }}</p>\n <input\n v-model=\"changePasswordInputs[1]\"\n type=\"password\"\n >\n </div>\n <div>\n <p>{{ $t('settings.confirm_new_password') }}</p>\n <input\n v-model=\"changePasswordInputs[2]\"\n type=\"password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"changePassword\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"changedPassword\">\n {{ $t('settings.changed_password') }}\n </p>\n <p v-else-if=\"changePasswordError !== false\">\n {{ $t('settings.change_password_error') }}\n </p>\n <p v-if=\"changePasswordError\">\n {{ changePasswordError }}\n </p>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.oauth_tokens') }}</h2>\n <table class=\"oauth-tokens\">\n <thead>\n <tr>\n <th>{{ $t('settings.app_name') }}</th>\n <th>{{ $t('settings.valid_until') }}</th>\n <th />\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"oauthToken in oauthTokens\"\n :key=\"oauthToken.id\"\n >\n <td>{{ oauthToken.appName }}</td>\n <td>{{ oauthToken.validUntil }}</td>\n <td class=\"actions\">\n <button\n class=\"btn button-default\"\n @click=\"revokeToken(oauthToken.id)\"\n >\n {{ $t('settings.revoke_token') }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <mfa />\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.account_alias') }}</h2>\n <table>\n <thead>\n <tr>\n <th>{{ $t('settings.account_alias_table_head') }}</th>\n <th />\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"alias in aliases\"\n :key=\"alias\"\n >\n <td>{{ alias }}</td>\n <td class=\"actions\">\n <button\n class=\"btn button-default\"\n @click=\"removeAlias(alias)\"\n >\n {{ $t('settings.remove_alias') }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <div\n v-if=\"listAliasesError\"\n class=\"alert error\"\n >\n {{ $t('settings.list_aliases_error', { error }) }}\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('settings.hide_list_aliases_error_action')\"\n @click=\"listAliasesError = false\"\n />\n </div>\n <div>\n <i18n\n path=\"settings.new_alias_target\"\n tag=\"p\"\n >\n <code\n place=\"example\"\n >\n foo@example.org\n </code>\n </i18n>\n <input\n v-model=\"addAliasTarget\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"addAlias\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"addedAlias\">\n {{ $t('settings.added_alias') }}\n </p>\n <template v-if=\"addAliasError !== false\">\n <p>{{ $t('settings.add_alias_error', { error: addAliasError }) }}</p>\n </template>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.move_account') }}</h2>\n <p>{{ $t('settings.move_account_notes') }}</p>\n <div>\n <i18n\n path=\"settings.move_account_target\"\n tag=\"p\"\n >\n <code\n place=\"example\"\n >\n foo@example.org\n </code>\n </i18n>\n <input\n v-model=\"moveAccountTarget\"\n >\n </div>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"moveAccountPassword\"\n type=\"password\"\n autocomplete=\"current-password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"moveAccount\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"movedAccount\">\n {{ $t('settings.moved_account') }}\n </p>\n <template v-if=\"moveAccountError !== false\">\n <p>{{ $t('settings.move_account_error', { error: moveAccountError }) }}</p>\n </template>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.delete_account') }}</h2>\n <p v-if=\"!deletingAccount\">\n {{ $t('settings.delete_account_description') }}\n </p>\n <div v-if=\"deletingAccount\">\n <p>{{ $t('settings.delete_account_instructions') }}</p>\n <p>{{ $t('login.password') }}</p>\n <input\n v-model=\"deleteAccountConfirmPasswordInput\"\n type=\"password\"\n >\n <button\n class=\"btn button-default\"\n @click=\"deleteAccount\"\n >\n {{ $t('settings.delete_account') }}\n </button>\n </div>\n <p v-if=\"deleteAccountError !== false\">\n {{ $t('settings.delete_account_error') }}\n </p>\n <p v-if=\"deleteAccountError\">\n {{ deleteAccountError }}\n </p>\n <button\n v-if=\"!deletingAccount\"\n class=\"btn button-default\"\n @click=\"confirmDelete\"\n >\n {{ $t('settings.delete_account') }}\n </button>\n </div>\n </div>\n</template>\n\n<script src=\"./security_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <div\n v-if=\"readyInit && settings.available\"\n class=\"setting-item mfa-settings\"\n >\n <div class=\"mfa-heading\">\n <h2>{{ $t('settings.mfa.title') }}</h2>\n </div>\n\n <div>\n <div\n v-if=\"!setupInProgress\"\n class=\"setting-item\"\n >\n <!-- Enabled methods -->\n <h3>{{ $t('settings.mfa.authentication_methods') }}</h3>\n <totp-item\n :settings=\"settings\"\n @deactivate=\"fetchSettings\"\n @activate=\"activateOTP\"\n />\n <br>\n\n <div v-if=\"settings.enabled\">\n <!-- backup codes block-->\n <recovery-codes\n v-if=\"!confirmNewBackupCodes\"\n :backup-codes=\"backupCodes\"\n />\n <button\n v-if=\"!confirmNewBackupCodes\"\n class=\"btn button-default\"\n @click=\"getBackupCodes\"\n >\n {{ $t('settings.mfa.generate_new_recovery_codes') }}\n </button>\n\n <div v-if=\"confirmNewBackupCodes\">\n <confirm\n :disabled=\"backupCodes.inProgress\"\n @confirm=\"confirmBackupCodes\"\n @cancel=\"cancelBackupCodes\"\n >\n <p class=\"warning\">\n {{ $t('settings.mfa.warning_of_generate_new_codes') }}\n </p>\n </confirm>\n </div>\n </div>\n </div>\n\n <div v-if=\"setupInProgress\">\n <!-- setup block-->\n\n <h3>{{ $t('settings.mfa.setup_otp') }}</h3>\n\n <recovery-codes\n v-if=\"!setupOTPInProgress\"\n :backup-codes=\"backupCodes\"\n />\n\n <button\n v-if=\"canSetupOTP\"\n class=\"btn button-default\"\n @click=\"cancelSetup\"\n >\n {{ $t('general.cancel') }}\n </button>\n\n <button\n v-if=\"canSetupOTP\"\n class=\"btn button-default\"\n @click=\"setupOTP\"\n >\n {{ $t('settings.mfa.setup_otp') }}\n </button>\n\n <template v-if=\"setupOTPInProgress\">\n <i v-if=\"prepareOTP\">{{ $t('settings.mfa.wait_pre_setup_otp') }}</i>\n\n <div v-if=\"confirmOTP\">\n <div class=\"setup-otp\">\n <div class=\"qr-code\">\n <h4>{{ $t('settings.mfa.scan.title') }}</h4>\n <p>{{ $t('settings.mfa.scan.desc') }}</p>\n <qrcode\n :value=\"otpSettings.provisioning_uri\"\n :options=\"{ width: 200 }\"\n />\n <p>\n {{ $t('settings.mfa.scan.secret_code') }}:\n {{ otpSettings.key }}\n </p>\n </div>\n\n <div class=\"verify\">\n <h4>{{ $t('general.verify') }}</h4>\n <p>{{ $t('settings.mfa.verify.desc') }}</p>\n <input\n v-model=\"otpConfirmToken\"\n type=\"text\"\n >\n\n <p>{{ $t('settings.enter_current_password_to_confirm') }}:</p>\n <input\n v-model=\"currentPassword\"\n type=\"password\"\n >\n <div class=\"confirm-otp-actions\">\n <button\n class=\"btn button-default\"\n @click=\"doConfirmOTP\"\n >\n {{ $t('settings.mfa.confirm_and_enable') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"cancelSetup\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n </div>\n </div>\n </div>\n </div>\n </template>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./mfa.js\"></script>\n<style lang=\"scss\">\n@import '../../../../_variables.scss';\n.mfa-settings {\n .mfa-heading, .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0 0; }\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n\n }\n }\n}\n</style>\n","<template>\n <div class=\"mfa-backup-codes\">\n <h4 v-if=\"displayTitle\">\n {{ $t('settings.mfa.recovery_codes') }}\n </h4>\n <i v-if=\"inProgress\">{{ $t('settings.mfa.waiting_a_recovery_codes') }}</i>\n <template v-if=\"ready\">\n <p class=\"alert warning\">\n {{ $t('settings.mfa.recovery_codes_warning') }}\n </p>\n <ul class=\"backup-codes\">\n <li\n v-for=\"code in backupCodes.codes\"\n :key=\"code\"\n >\n {{ code }}\n </li>\n </ul>\n </template>\n </div>\n</template>\n<script src=\"./mfa_backup_codes.js\"></script>\n<style lang=\"scss\">\n@import '../../../../_variables.scss';\n\n.mfa-backup-codes {\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n .backup-codes {\n font-family: var(--postCodeFont, monospace);\n }\n}\n</style>\n","export default {\n props: {\n backupCodes: {\n type: Object,\n default: () => ({\n inProgress: false,\n codes: []\n })\n }\n },\n data: () => ({}),\n computed: {\n inProgress () { return this.backupCodes.inProgress },\n ready () { return this.backupCodes.codes.length > 0 },\n displayTitle () { return this.inProgress || this.ready }\n }\n}\n","import { render } from \"./mfa_backup_codes.vue?vue&type=template&id=1284fe74\"\nimport script from \"./mfa_backup_codes.js?vue&type=script&lang=js\"\nexport * from \"./mfa_backup_codes.js?vue&type=script&lang=js\"\n\nimport \"./mfa_backup_codes.vue?vue&type=style&index=0&id=1284fe74&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <div class=\"method-item\">\n <strong>{{ $t('settings.mfa.otp') }}</strong>\n <button\n v-if=\"!isActivated\"\n class=\"btn button-default\"\n @click=\"doActivate\"\n >\n {{ $t('general.enable') }}\n </button>\n\n <button\n v-if=\"isActivated\"\n class=\"btn button-default\"\n :disabled=\"deactivate\"\n @click=\"doDeactivate\"\n >\n {{ $t('general.disable') }}\n </button>\n </div>\n\n <confirm\n v-if=\"deactivate\"\n :disabled=\"inProgress\"\n @confirm=\"confirmDeactivate\"\n @cancel=\"cancelDeactivate\"\n >\n {{ $t('settings.enter_current_password_to_confirm') }}:\n <input\n v-model=\"currentPassword\"\n type=\"password\"\n >\n </confirm>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n </div>\n </div>\n</template>\n<script src=\"./mfa_totp.js\"></script>\n","const Confirm = {\n props: ['disabled'],\n data: () => ({}),\n methods: {\n confirm () { this.$emit('confirm') },\n cancel () { this.$emit('cancel') }\n }\n}\nexport default Confirm\n","import { render } from \"./confirm.vue?vue&type=template&id=232a09eb\"\nimport script from \"./confirm.js?vue&type=script&lang=js\"\nexport * from \"./confirm.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <slot />\n <button\n class=\"btn button-default\"\n :disabled=\"disabled\"\n @click=\"confirm\"\n >\n {{ $t('general.confirm') }}\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"disabled\"\n @click=\"cancel\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n</template>\n\n<script src=\"./confirm.js\">\n</script>\n","import Confirm from './confirm.vue'\nimport { mapState } from 'vuex'\n\nexport default {\n props: ['settings'],\n data: () => ({\n error: false,\n currentPassword: '',\n deactivate: false,\n inProgress: false // progress peform request to disable otp method\n }),\n components: {\n confirm: Confirm\n },\n computed: {\n isActivated () {\n return this.settings.totp\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n methods: {\n doActivate () {\n this.$emit('activate')\n },\n cancelDeactivate () { this.deactivate = false },\n doDeactivate () {\n this.error = null\n this.deactivate = true\n },\n confirmDeactivate () { // confirm deactivate TOTP method\n this.error = null\n this.inProgress = true\n this.backendInteractor.mfaDisableOTP({\n password: this.currentPassword\n })\n .then((res) => {\n this.inProgress = false\n if (res.error) {\n this.error = res.error\n return\n }\n this.deactivate = false\n this.$emit('deactivate')\n })\n }\n }\n}\n","import RecoveryCodes from './mfa_backup_codes.vue'\nimport TOTP from './mfa_totp.vue'\nimport Confirm from './confirm.vue'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport { mapState } from 'vuex'\n\nconst Mfa = {\n data: () => ({\n settings: { // current settings of MFA\n available: false,\n enabled: false,\n totp: false\n },\n setupState: { // setup mfa\n state: '', // state of setup. '' -> 'getBackupCodes' -> 'setupOTP' -> 'complete'\n setupOTPState: '' // state of setup otp. '' -> 'prepare' -> 'confirm' -> 'complete'\n },\n backupCodes: {\n getNewCodes: false,\n inProgress: false, // progress of fetch codes\n codes: []\n },\n otpSettings: { // pre-setup setting of OTP. secret key, qrcode url.\n provisioning_uri: '',\n key: ''\n },\n currentPassword: null,\n otpConfirmToken: null,\n error: null,\n readyInit: false\n }),\n components: {\n 'recovery-codes': RecoveryCodes,\n 'totp-item': TOTP,\n qrcode: VueQrcode,\n confirm: Confirm\n },\n computed: {\n canSetupOTP () {\n return (\n (this.setupInProgress && this.backupCodesPrepared) ||\n this.settings.enabled\n ) && !this.settings.totp && !this.setupOTPInProgress\n },\n setupInProgress () {\n return this.setupState.state !== '' && this.setupState.state !== 'complete'\n },\n setupOTPInProgress () {\n return this.setupState.state === 'setupOTP' && !this.completedOTP\n },\n prepareOTP () {\n return this.setupState.setupOTPState === 'prepare'\n },\n confirmOTP () {\n return this.setupState.setupOTPState === 'confirm'\n },\n completedOTP () {\n return this.setupState.setupOTPState === 'completed'\n },\n backupCodesPrepared () {\n return !this.backupCodes.inProgress && this.backupCodes.codes.length > 0\n },\n confirmNewBackupCodes () {\n return this.backupCodes.getNewCodes\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n\n methods: {\n activateOTP () {\n if (!this.settings.enabled) {\n this.setupState.state = 'getBackupcodes'\n this.fetchBackupCodes()\n }\n },\n fetchBackupCodes () {\n this.backupCodes.inProgress = true\n this.backupCodes.codes = []\n\n return this.backendInteractor.generateMfaBackupCodes()\n .then((res) => {\n this.backupCodes.codes = res.codes\n this.backupCodes.inProgress = false\n })\n },\n getBackupCodes () { // get a new backup codes\n this.backupCodes.getNewCodes = true\n },\n confirmBackupCodes () { // confirm getting new backup codes\n this.fetchBackupCodes().then((res) => {\n this.backupCodes.getNewCodes = false\n })\n },\n cancelBackupCodes () { // cancel confirm form of new backup codes\n this.backupCodes.getNewCodes = false\n },\n\n // Setup OTP\n setupOTP () { // prepare setup OTP\n this.setupState.state = 'setupOTP'\n this.setupState.setupOTPState = 'prepare'\n this.backendInteractor.mfaSetupOTP()\n .then((res) => {\n this.otpSettings = res\n this.setupState.setupOTPState = 'confirm'\n })\n },\n doConfirmOTP () { // handler confirm enable OTP\n this.error = null\n this.backendInteractor.mfaConfirmOTP({\n token: this.otpConfirmToken,\n password: this.currentPassword\n })\n .then((res) => {\n if (res.error) {\n this.error = res.error\n return\n }\n this.completeSetup()\n })\n },\n\n completeSetup () {\n this.setupState.setupOTPState = 'complete'\n this.setupState.state = 'complete'\n this.currentPassword = null\n this.error = null\n this.fetchSettings()\n },\n cancelSetup () { // cancel setup\n this.setupState.setupOTPState = ''\n this.setupState.state = ''\n this.currentPassword = null\n this.error = null\n },\n // end Setup OTP\n\n // fetch settings from server\n async fetchSettings () {\n const result = await this.backendInteractor.settingsMFA()\n if (result.error) return\n this.settings = result.settings\n this.settings.available = true\n return result\n }\n },\n mounted () {\n this.fetchSettings().then(() => {\n this.readyInit = true\n })\n }\n}\nexport default Mfa\n","import { render } from \"./mfa_totp.vue?vue&type=template&id=5466d3a1\"\nimport script from \"./mfa_totp.js?vue&type=script&lang=js\"\nexport * from \"./mfa_totp.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./mfa.vue?vue&type=template&id=c62074fa\"\nimport script from \"./mfa.js?vue&type=script&lang=js\"\nexport * from \"./mfa.js?vue&type=script&lang=js\"\n\nimport \"./mfa.vue?vue&type=style&index=0&id=c62074fa&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport Mfa from './mfa.vue'\nimport localeService from 'src/services/locale/locale.service.js'\n\nconst SecurityTab = {\n data () {\n return {\n newEmail: '',\n changeEmailError: false,\n changeEmailPassword: '',\n changedEmail: false,\n deletingAccount: false,\n deleteAccountConfirmPasswordInput: '',\n deleteAccountError: false,\n changePasswordInputs: ['', '', ''],\n changedPassword: false,\n changePasswordError: false,\n moveAccountTarget: '',\n moveAccountPassword: '',\n movedAccount: false,\n moveAccountError: false,\n aliases: [],\n listAliasesError: false,\n addAliasTarget: '',\n addedAlias: false,\n addAliasError: false\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n this.fetchAliases()\n },\n components: {\n ProgressButton,\n Mfa,\n Checkbox\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n pleromaBackend () {\n return this.$store.state.instance.pleromaBackend\n },\n oauthTokens () {\n return this.$store.state.oauthTokens.tokens.map(oauthToken => {\n return {\n id: oauthToken.id,\n appName: oauthToken.app_name,\n validUntil: new Date(oauthToken.valid_until).toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale))\n }\n })\n }\n },\n methods: {\n confirmDelete () {\n this.deletingAccount = true\n },\n deleteAccount () {\n this.$store.state.api.backendInteractor.deleteAccount({ password: this.deleteAccountConfirmPasswordInput })\n .then((res) => {\n if (res.status === 'success') {\n this.$store.dispatch('logout')\n this.$router.push({ name: 'root' })\n } else {\n this.deleteAccountError = res.error\n }\n })\n },\n changePassword () {\n const params = {\n password: this.changePasswordInputs[0],\n newPassword: this.changePasswordInputs[1],\n newPasswordConfirmation: this.changePasswordInputs[2]\n }\n this.$store.state.api.backendInteractor.changePassword(params)\n .then((res) => {\n if (res.status === 'success') {\n this.changedPassword = true\n this.changePasswordError = false\n this.logout()\n } else {\n this.changedPassword = false\n this.changePasswordError = res.error\n }\n })\n },\n changeEmail () {\n const params = {\n email: this.newEmail,\n password: this.changeEmailPassword\n }\n this.$store.state.api.backendInteractor.changeEmail(params)\n .then((res) => {\n if (res.status === 'success') {\n this.changedEmail = true\n this.changeEmailError = false\n } else {\n this.changedEmail = false\n this.changeEmailError = res.error\n }\n })\n },\n moveAccount () {\n const params = {\n targetAccount: this.moveAccountTarget,\n password: this.moveAccountPassword\n }\n this.$store.state.api.backendInteractor.moveAccount(params)\n .then((res) => {\n if (res.status === 'success') {\n this.movedAccount = true\n this.moveAccountError = false\n } else {\n this.movedAccount = false\n this.moveAccountError = res.error\n }\n })\n },\n removeAlias (alias) {\n this.$store.state.api.backendInteractor.deleteAlias({ alias })\n .then(() => this.fetchAliases())\n },\n addAlias () {\n this.$store.state.api.backendInteractor.addAlias({ alias: this.addAliasTarget })\n .then((res) => {\n this.addedAlias = true\n this.addAliasError = false\n this.addAliasTarget = ''\n })\n .catch((error) => {\n this.addedAlias = false\n this.addAliasError = error\n })\n .then(() => this.fetchAliases())\n },\n fetchAliases () {\n this.$store.state.api.backendInteractor.listAliases()\n .then((res) => {\n this.aliases = res.aliases\n this.listAliasesError = false\n })\n .catch((error) => {\n this.listAliasesError = error.error\n })\n },\n logout () {\n this.$store.dispatch('logout')\n this.$router.replace('/')\n },\n revokeToken (id) {\n if (window.confirm(`${this.$i18n.t('settings.revoke_token')}?`)) {\n this.$store.dispatch('revokeToken', id)\n }\n }\n }\n}\n\nexport default SecurityTab\n","import { render } from \"./security_tab.vue?vue&type=template&id=c8181b06\"\nimport script from \"./security_tab.js?vue&type=script&lang=js\"\nexport * from \"./security_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"profile-tab\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.name_bio') }}</h2>\n <p>{{ $t('settings.name') }}</p>\n <EmojiInput\n v-model=\"newName\"\n enable-emoji-picker\n :suggest=\"emojiSuggestor\"\n >\n <input\n id=\"username\"\n v-model=\"newName\"\n class=\"name-changer\"\n >\n </EmojiInput>\n <p>{{ $t('settings.bio') }}</p>\n <EmojiInput\n v-model=\"newBio\"\n enable-emoji-picker\n :suggest=\"emojiUserSuggestor\"\n >\n <textarea\n v-model=\"newBio\"\n class=\"bio resize-height\"\n />\n </EmojiInput>\n <p v-if=\"role === 'admin' || role === 'moderator'\">\n <Checkbox v-model=\"showRole\">\n <template v-if=\"role === 'admin'\">\n {{ $t('settings.show_admin_badge') }}\n </template>\n <template v-if=\"role === 'moderator'\">\n {{ $t('settings.show_moderator_badge') }}\n </template>\n </Checkbox>\n </p>\n <div v-if=\"maxFields > 0\">\n <p>{{ $t('settings.profile_fields.label') }}</p>\n <div\n v-for=\"(_, i) in newFields\"\n :key=\"i\"\n class=\"profile-fields\"\n >\n <EmojiInput\n v-model=\"newFields[i].name\"\n enable-emoji-picker\n hide-emoji-button\n :suggest=\"userSuggestor\"\n >\n <input\n v-model=\"newFields[i].name\"\n :placeholder=\"$t('settings.profile_fields.name')\"\n >\n </EmojiInput>\n <EmojiInput\n v-model=\"newFields[i].value\"\n enable-emoji-picker\n hide-emoji-button\n :suggest=\"userSuggestor\"\n >\n <input\n v-model=\"newFields[i].value\"\n :placeholder=\"$t('settings.profile_fields.value')\"\n >\n </EmojiInput>\n <button\n class=\"delete-field button-unstyled -hover-highlight\"\n @click=\"deleteField(i)\"\n >\n <!-- TODO something is wrong with v-show here -->\n <FAIcon\n v-if=\"newFields.length > 1\"\n icon=\"times\"\n />\n </button>\n </div>\n <button\n v-if=\"newFields.length < maxFields\"\n class=\"add-field faint button-unstyled -hover-highlight\"\n @click=\"addField\"\n >\n <FAIcon icon=\"plus\" />\n {{ $t(\"settings.profile_fields.add_field\") }}\n </button>\n </div>\n <p>\n <Checkbox v-model=\"bot\">\n {{ $t('settings.bot') }}\n </Checkbox>\n </p>\n <p>\n <interface-language-switcher\n :prompt-text=\"$t('settings.email_language')\"\n :language=\"emailLanguage\"\n :set-language=\"val => emailLanguage = val\"\n />\n </p>\n <button\n :disabled=\"newName && newName.length === 0\"\n class=\"btn button-default\"\n @click=\"updateProfile\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.avatar') }}</h2>\n <p class=\"visibility-notice\">\n {{ $t('settings.avatar_size_instruction') }}\n </p>\n <div class=\"current-avatar-container\">\n <img\n :src=\"user.profile_image_url_original\"\n class=\"current-avatar\"\n >\n <button\n v-if=\"!isDefaultAvatar && pickAvatarBtnVisible\"\n :title=\"$t('settings.reset_avatar')\"\n class=\"button-unstyled reset-button\"\n @click=\"resetAvatar\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_avatar') }}</p>\n <button\n v-show=\"pickAvatarBtnVisible\"\n id=\"pick-avatar\"\n class=\"button-default btn\"\n type=\"button\"\n >\n {{ $t('settings.upload_a_photo') }}\n </button>\n <image-cropper\n trigger=\"#pick-avatar\"\n :submit-handler=\"submitAvatar\"\n @open=\"pickAvatarBtnVisible=false\"\n @close=\"pickAvatarBtnVisible=true\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.profile_banner') }}</h2>\n <div class=\"banner-background-preview\">\n <img :src=\"user.cover_photo\">\n <button\n v-if=\"!isDefaultBanner\"\n class=\"button-unstyled reset-button\"\n :title=\"$t('settings.reset_profile_banner')\"\n @click=\"resetBanner\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_profile_banner') }}</p>\n <img\n v-if=\"bannerPreview\"\n class=\"banner-background-preview\"\n :src=\"bannerPreview\"\n >\n <div>\n <input\n type=\"file\"\n @change=\"uploadFile('banner', $event)\"\n >\n </div>\n <FAIcon\n v-if=\"bannerUploading\"\n class=\"uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else-if=\"bannerPreview\"\n class=\"btn button-default\"\n @click=\"submitBanner(banner)\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.profile_background') }}</h2>\n <div class=\"banner-background-preview\">\n <img :src=\"user.background_image\">\n <button\n v-if=\"!isDefaultBackground\"\n class=\"button-unstyled reset-button\"\n :title=\"$t('settings.reset_profile_background')\"\n @click=\"resetBackground\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_profile_background') }}</p>\n <img\n v-if=\"backgroundPreview\"\n class=\"banner-background-preview\"\n :src=\"backgroundPreview\"\n >\n <div>\n <input\n type=\"file\"\n @change=\"uploadFile('background', $event)\"\n >\n </div>\n <FAIcon\n v-if=\"backgroundUploading\"\n class=\"uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else-if=\"backgroundPreview\"\n class=\"btn button-default\"\n @click=\"submitBackground(background)\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.account_privacy') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"serverSide_locked\">\n {{ $t('settings.lock_account_description') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_discoverable\">\n {{ $t('settings.discoverable') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_allowFollowingMove\">\n {{ $t('settings.allow_following_move') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFavorites\">\n {{ $t('settings.hide_favorites_description') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFollowers\">\n {{ $t('settings.hide_followers_description') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !serverSide_hideFollowers}]\"\n >\n <li>\n <BooleanSetting\n path=\"serverSide_hideFollowersCount\"\n :disabled=\"!serverSide_hideFollowers\"\n >\n {{ $t('settings.hide_followers_count_description') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFollows\">\n {{ $t('settings.hide_follows_description') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !serverSide_hideFollows}]\"\n >\n <li>\n <BooleanSetting\n path=\"serverSide_hideFollowsCount\"\n :disabled=\"!serverSide_hideFollows\"\n >\n {{ $t('settings.hide_follows_count_description') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./profile_tab.js\"></script>\n<style lang=\"scss\" src=\"./profile_tab.scss\"></style>\n","<template>\n <div class=\"image-cropper\">\n <div v-if=\"dataUrl\">\n <div class=\"image-cropper-image-container\">\n <img\n ref=\"img\"\n :src=\"dataUrl\"\n alt=\"\"\n @load.stop=\"createCropper\"\n >\n </div>\n <div class=\"image-cropper-buttons-wrapper\">\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"submit()\"\n v-text=\"saveText\"\n />\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"destroy\"\n v-text=\"cancelText\"\n />\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"submit(false)\"\n v-text=\"saveWithoutCroppingText\"\n />\n <FAIcon\n v-if=\"submitting\"\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n <input\n ref=\"input\"\n type=\"file\"\n class=\"image-cropper-img-input\"\n :accept=\"mimes\"\n >\n </div>\n</template>\n\n<script src=\"./image_cropper.js\"></script>\n\n<style lang=\"scss\">\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n</style>\n","import Cropper from 'cropperjs'\nimport 'cropperjs/dist/cropper.css'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst ImageCropper = {\n props: {\n trigger: {\n type: [String, window.Element],\n required: true\n },\n submitHandler: {\n type: Function,\n required: true\n },\n cropperOptions: {\n type: Object,\n default () {\n return {\n aspectRatio: 1,\n autoCropArea: 1,\n viewMode: 1,\n movable: false,\n zoomable: false,\n guides: false\n }\n }\n },\n mimes: {\n type: String,\n default: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'\n },\n saveButtonLabel: {\n type: String\n },\n saveWithoutCroppingButtonlabel: {\n type: String\n },\n cancelButtonLabel: {\n type: String\n }\n },\n data () {\n return {\n cropper: undefined,\n dataUrl: undefined,\n filename: undefined,\n submitting: false\n }\n },\n computed: {\n saveText () {\n return this.saveButtonLabel || this.$t('image_cropper.save')\n },\n saveWithoutCroppingText () {\n return this.saveWithoutCroppingButtonlabel || this.$t('image_cropper.save_without_cropping')\n },\n cancelText () {\n return this.cancelButtonLabel || this.$t('image_cropper.cancel')\n }\n },\n methods: {\n destroy () {\n if (this.cropper) {\n this.cropper.destroy()\n }\n this.$refs.input.value = ''\n this.dataUrl = undefined\n this.$emit('close')\n },\n submit (cropping = true) {\n this.submitting = true\n this.submitHandler(cropping && this.cropper, this.file)\n .then(() => this.destroy())\n .finally(() => {\n this.submitting = false\n })\n },\n pickImage () {\n this.$refs.input.click()\n },\n createCropper () {\n this.cropper = new Cropper(this.$refs.img, this.cropperOptions)\n },\n getTriggerDOM () {\n return typeof this.trigger === 'object' ? this.trigger : document.querySelector(this.trigger)\n },\n readFile () {\n const fileInput = this.$refs.input\n if (fileInput.files != null && fileInput.files[0] != null) {\n this.file = fileInput.files[0]\n const reader = new window.FileReader()\n reader.onload = (e) => {\n this.dataUrl = e.target.result\n this.$emit('open')\n }\n reader.readAsDataURL(this.file)\n this.$emit('changed', this.file, reader)\n }\n }\n },\n mounted () {\n // listen for click event on trigger\n const trigger = this.getTriggerDOM()\n if (!trigger) {\n this.$emit('error', 'No image make trigger found.', 'user')\n } else {\n trigger.addEventListener('click', this.pickImage)\n }\n // listen for input file changes\n const fileInput = this.$refs.input\n fileInput.addEventListener('change', this.readFile)\n },\n beforeUnmount: function () {\n // remove the event listeners\n const trigger = this.getTriggerDOM()\n if (trigger) {\n trigger.removeEventListener('click', this.pickImage)\n }\n const fileInput = this.$refs.input\n fileInput.removeEventListener('change', this.readFile)\n }\n}\n\nexport default ImageCropper\n","import { render } from \"./image_cropper.vue?vue&type=template&id=0bac39f0\"\nimport script from \"./image_cropper.js?vue&type=script&lang=js\"\nexport * from \"./image_cropper.js?vue&type=script&lang=js\"\n\nimport \"./image_cropper.vue?vue&type=style&index=0&id=0bac39f0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import unescape from 'lodash/unescape'\nimport merge from 'lodash/merge'\nimport ImageCropper from 'src/components/image_cropper/image_cropper.vue'\nimport ScopeSelector from 'src/components/scope_selector/scope_selector.vue'\nimport fileSizeFormatService from 'src/components/../services/file_size_format/file_size_format.js'\nimport ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport EmojiInput from 'src/components/emoji_input/emoji_input.vue'\nimport suggestor from 'src/components/emoji_input/suggestor.js'\nimport Autosuggest from 'src/components/autosuggest/autosuggest.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'\nimport BooleanSetting from '../helpers/boolean_setting.vue'\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport localeService from 'src/services/locale/locale.service.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faPlus,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus,\n faCircleNotch\n)\n\nconst ProfileTab = {\n data () {\n return {\n newName: this.$store.state.users.currentUser.name_unescaped,\n newBio: unescape(this.$store.state.users.currentUser.description),\n newLocked: this.$store.state.users.currentUser.locked,\n newFields: this.$store.state.users.currentUser.fields.map(field => ({ name: field.name, value: field.value })),\n showRole: this.$store.state.users.currentUser.show_role,\n role: this.$store.state.users.currentUser.role,\n bot: this.$store.state.users.currentUser.bot,\n pickAvatarBtnVisible: true,\n bannerUploading: false,\n backgroundUploading: false,\n banner: null,\n bannerPreview: null,\n background: null,\n backgroundPreview: null,\n emailLanguage: this.$store.state.users.currentUser.language || ''\n }\n },\n components: {\n ScopeSelector,\n ImageCropper,\n EmojiInput,\n Autosuggest,\n ProgressButton,\n Checkbox,\n BooleanSetting,\n InterfaceLanguageSwitcher\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n ...SharedComputedObject(),\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ]\n })\n },\n userSuggestor () {\n return suggestor({ store: this.$store })\n },\n fieldsLimits () {\n return this.$store.state.instance.fieldsLimits\n },\n maxFields () {\n return this.fieldsLimits ? this.fieldsLimits.maxFields : 0\n },\n defaultAvatar () {\n return this.$store.state.instance.server + this.$store.state.instance.defaultAvatar\n },\n defaultBanner () {\n return this.$store.state.instance.server + this.$store.state.instance.defaultBanner\n },\n isDefaultAvatar () {\n const baseAvatar = this.$store.state.instance.defaultAvatar\n return !(this.$store.state.users.currentUser.profile_image_url) ||\n this.$store.state.users.currentUser.profile_image_url.includes(baseAvatar)\n },\n isDefaultBanner () {\n const baseBanner = this.$store.state.instance.defaultBanner\n return !(this.$store.state.users.currentUser.cover_photo) ||\n this.$store.state.users.currentUser.cover_photo.includes(baseBanner)\n },\n isDefaultBackground () {\n return !(this.$store.state.users.currentUser.background_image)\n },\n avatarImgSrc () {\n const src = this.$store.state.users.currentUser.profile_image_url_original\n return (!src) ? this.defaultAvatar : src\n },\n bannerImgSrc () {\n const src = this.$store.state.users.currentUser.cover_photo\n return (!src) ? this.defaultBanner : src\n }\n },\n methods: {\n updateProfile () {\n const params = {\n note: this.newBio,\n locked: this.newLocked,\n // Backend notation.\n /* eslint-disable camelcase */\n display_name: this.newName,\n fields_attributes: this.newFields.filter(el => el != null),\n bot: this.bot,\n show_role: this.showRole\n /* eslint-enable camelcase */\n }\n\n if (this.emailLanguage) {\n params.language = localeService.internalToBackendLocale(this.emailLanguage)\n }\n\n this.$store.state.api.backendInteractor\n .updateProfile({ params })\n .then((user) => {\n this.newFields.splice(user.fields.length)\n merge(this.newFields, user.fields)\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n })\n },\n changeVis (visibility) {\n this.newDefaultScope = visibility\n },\n addField () {\n if (this.newFields.length < this.maxFields) {\n this.newFields.push({ name: '', value: '' })\n return true\n }\n return false\n },\n deleteField (index, event) {\n this.$delete(this.newFields, index)\n },\n uploadFile (slot, e) {\n const file = e.target.files[0]\n if (!file) { return }\n if (file.size > this.$store.state.instance[slot + 'limit']) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(this.$store.state.instance[slot + 'limit'])\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'upload.error.message',\n messageArgs: [\n this.$t('upload.error.file_too_big', {\n filesize: filesize.num,\n filesizeunit: filesize.unit,\n allowedsize: allowedsize.num,\n allowedsizeunit: allowedsize.unit\n })\n ],\n level: 'error'\n })\n return\n }\n // eslint-disable-next-line no-undef\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n const img = target.result\n this[slot + 'Preview'] = img\n this[slot] = file\n }\n reader.readAsDataURL(file)\n },\n resetAvatar () {\n const confirmed = window.confirm(this.$t('settings.reset_avatar_confirm'))\n if (confirmed) {\n this.submitAvatar(undefined, '')\n }\n },\n resetBanner () {\n const confirmed = window.confirm(this.$t('settings.reset_banner_confirm'))\n if (confirmed) {\n this.submitBanner('')\n }\n },\n resetBackground () {\n const confirmed = window.confirm(this.$t('settings.reset_background_confirm'))\n if (confirmed) {\n this.submitBackground('')\n }\n },\n submitAvatar (cropper, file) {\n const that = this\n return new Promise((resolve, reject) => {\n function updateAvatar (avatar, avatarName) {\n that.$store.state.api.backendInteractor.updateProfileImages({ avatar, avatarName })\n .then((user) => {\n that.$store.commit('addNewUsers', [user])\n that.$store.commit('setCurrentUser', user)\n resolve()\n })\n .catch((error) => {\n that.displayUploadError(error)\n reject(error)\n })\n }\n\n if (cropper) {\n cropper.getCroppedCanvas().toBlob((data) => updateAvatar(data, file.name), file.type)\n } else {\n updateAvatar(file, file.name)\n }\n })\n },\n submitBanner (banner) {\n if (!this.bannerPreview && banner !== '') { return }\n\n this.bannerUploading = true\n this.$store.state.api.backendInteractor.updateProfileImages({ banner })\n .then((user) => {\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n this.bannerPreview = null\n })\n .catch(this.displayUploadError)\n .finally(() => { this.bannerUploading = false })\n },\n submitBackground (background) {\n if (!this.backgroundPreview && background !== '') { return }\n\n this.backgroundUploading = true\n this.$store.state.api.backendInteractor.updateProfileImages({ background })\n .then((data) => {\n this.$store.commit('addNewUsers', [data])\n this.$store.commit('setCurrentUser', data)\n this.backgroundPreview = null\n })\n .catch(this.displayUploadError)\n .finally(() => { this.backgroundUploading = false })\n },\n displayUploadError (error) {\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'upload.error.message',\n messageArgs: [error.message],\n level: 'error'\n })\n }\n }\n}\n\nexport default ProfileTab\n","import { render } from \"./profile_tab.vue?vue&type=template&id=7c06e199\"\nimport script from \"./profile_tab.js?vue&type=script&lang=js\"\nexport * from \"./profile_tab.js?vue&type=script&lang=js\"\n\nimport \"./profile_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.general')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.interface') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <interface-language-switcher\n :prompt-text=\"$t('settings.interfaceLanguage')\"\n :language=\"language\"\n :set-language=\"val => language = val\"\n />\n </li>\n <li v-if=\"instanceSpecificPanelPresent\">\n <BooleanSetting path=\"hideISP\">\n {{ $t('settings.hide_isp') }}\n </BooleanSetting>\n </li>\n <li v-if=\"instanceWallpaperUsed\">\n <BooleanSetting path=\"hideInstanceWallpaper\">\n {{ $t('settings.hide_wallpaper') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"stopGifs\">\n {{ $t('settings.stop_gifs') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"streaming\">\n {{ $t('settings.streaming') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n path=\"pauseOnUnfocused\"\n :disabled=\"!streaming\"\n >\n {{ $t('settings.pause_on_unfocused') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting\n path=\"useStreamingApi\"\n expert=\"1\"\n >\n {{ $t('settings.useStreamingApi') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"virtualScrolling\"\n expert=\"1\"\n >\n {{ $t('settings.virtual_scrolling') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"userPopoverAvatarAction\"\n path=\"userPopoverAvatarAction\"\n :options=\"userPopoverAvatarActionOptions\"\n expert=\"1\"\n >\n {{ $t('settings.user_popover_avatar_action') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"userPopoverOverlay\"\n expert=\"1\"\n >\n {{ $t('settings.user_popover_avatar_overlay') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowNewPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.always_show_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"autohideFloatingPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.autohide_floating_post_button') }}\n </BooleanSetting>\n </li>\n <li v-if=\"instanceShoutboxPresent\">\n <BooleanSetting\n path=\"hideShoutbox\"\n expert=\"1\"\n >\n {{ $t('settings.hide_shoutbox') }}\n </BooleanSetting>\n </li>\n <li>\n <h3>{{ $t('settings.columns') }}</h3>\n </li>\n <li>\n <BooleanSetting path=\"disableStickyHeaders\">\n {{ $t('settings.disable_sticky_headers') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"showScrollbars\">\n {{ $t('settings.show_scrollbars') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"sidebarRight\">\n {{ $t('settings.right_sidebar') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"navbarColumnStretch\">\n {{ $t('settings.navbar_column_stretch') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n v-if=\"user\"\n id=\"thirdColumnMode\"\n path=\"thirdColumnMode\"\n :options=\"thirdColumnModeOptions\"\n >\n {{ $t('settings.third_column_mode') }}\n </ChoiceSetting>\n </li>\n <li v-if=\"expertLevel > 0\">\n {{ $t('settings.column_sizes') }}\n <div class=\"column-settings\">\n <SizeSetting\n v-for=\"column in columns\"\n :key=\"column\"\n :path=\"column + 'ColumnWidth'\"\n :units=\"horizontalUnits\"\n expert=\"1\"\n >\n {{ $t('settings.column_sizes_' + column) }}\n </SizeSetting>\n </div>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.post_look_feel') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <ChoiceSetting\n id=\"conversationDisplay\"\n path=\"conversationDisplay\"\n :options=\"conversationDisplayOptions\"\n >\n {{ $t('settings.conversation_display') }}\n </ChoiceSetting>\n </li>\n <ul\n v-if=\"conversationDisplay !== 'linear'\"\n class=\"setting-list suboptions\"\n >\n <li>\n <BooleanSetting path=\"conversationTreeAdvanced\">\n {{ $t('settings.tree_advanced') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"conversationTreeFadeAncestors\"\n :expert=\"1\"\n >\n {{ $t('settings.tree_fade_ancestors') }}\n </BooleanSetting>\n </li>\n <li>\n <IntegerSetting\n path=\"maxDepthInThread\"\n :min=\"3\"\n :expert=\"1\"\n >\n {{ $t('settings.max_depth_in_thread') }}\n </IntegerSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"conversationOtherRepliesButton\"\n path=\"conversationOtherRepliesButton\"\n :options=\"conversationOtherRepliesButtonOptions\"\n :expert=\"1\"\n >\n {{ $t('settings.conversation_other_replies_button') }}\n </ChoiceSetting>\n </li>\n </ul>\n <li>\n <BooleanSetting path=\"collapseMessageWithSubject\">\n {{ $t('settings.collapse_subject') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"emojiReactionsOnTimeline\"\n expert=\"1\"\n >\n {{ $t('settings.emoji_reactions_on_timeline') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n path=\"serverSide_stripRichContent\"\n expert=\"1\"\n >\n {{ $t('settings.no_rich_text_description') }}\n </BooleanSetting>\n </li>\n <h3>{{ $t('settings.attachments') }}</h3>\n <li>\n <BooleanSetting\n path=\"useContainFit\"\n expert=\"1\"\n >\n {{ $t('settings.use_contain_fit') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideNsfw\">\n {{ $t('settings.nsfw_clickthrough') }}\n </BooleanSetting>\n </li>\n <ul class=\"setting-list suboptions\">\n <li>\n <BooleanSetting\n path=\"preloadImage\"\n expert=\"1\"\n :disabled=\"!hideNsfw\"\n >\n {{ $t('settings.preload_images') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"useOneClickNsfw\"\n expert=\"1\"\n :disabled=\"!hideNsfw\"\n >\n {{ $t('settings.use_one_click_nsfw') }}\n </BooleanSetting>\n </li>\n </ul>\n <li>\n <BooleanSetting\n path=\"loopVideo\"\n expert=\"1\"\n >\n {{ $t('settings.loop_video') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n path=\"loopVideoSilentOnly\"\n expert=\"1\"\n :disabled=\"!loopVideo || !loopSilentAvailable\"\n >\n {{ $t('settings.loop_video_silent_only') }}\n </BooleanSetting>\n <div\n v-if=\"!loopSilentAvailable\"\n class=\"unavailable\"\n >\n <FAIcon icon=\"globe\" />! {{ $t('settings.limited_availability') }}\n </div>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting\n path=\"playVideosInModal\"\n expert=\"1\"\n >\n {{ $t('settings.play_videos_in_modal') }}\n </BooleanSetting>\n </li>\n <h3>{{ $t('settings.mention_links') }}</h3>\n <li>\n <ChoiceSetting\n id=\"mentionLinkDisplay\"\n path=\"mentionLinkDisplay\"\n :options=\"mentionLinkDisplayOptions\"\n >\n {{ $t('settings.mention_link_display') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"mentionLinkShowTooltip\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_use_tooltip') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"useAtIcon\"\n expert=\"1\"\n >\n {{ $t('settings.use_at_icon') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"mentionLinkShowAvatar\">\n {{ $t('settings.mention_link_show_avatar') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"mentionLinkFadeDomain\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_fade_domain') }}\n </BooleanSetting>\n </li>\n <li v-if=\"user\">\n <BooleanSetting\n path=\"mentionLinkBoldenYou\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_bolden_you') }}\n </BooleanSetting>\n </li>\n <h3 v-if=\"expertLevel > 0\">\n {{ $t('settings.fun') }}\n </h3>\n <li>\n <BooleanSetting\n path=\"greentext\"\n expert=\"1\"\n >\n {{ $t('settings.greentext') }}\n </BooleanSetting>\n </li>\n <li v-if=\"user\">\n <BooleanSetting\n path=\"mentionLinkShowYous\"\n expert=\"1\"\n >\n {{ $t('settings.show_yous') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n\n <div\n v-if=\"user\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.composing') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <label for=\"default-vis\">\n {{ $t('settings.default_vis') }} <ServerSideIndicator :server-side=\"true\" />\n <ScopeSelector\n class=\"scope-selector\"\n :show-all=\"true\"\n :user-default=\"serverSide_defaultScope\"\n :initial-scope=\"serverSide_defaultScope\"\n :on-scope-change=\"changeDefaultScope\"\n />\n </label>\n </li>\n <li>\n <!-- <BooleanSetting path=\"serverSide_defaultNSFW\"> -->\n <BooleanSetting path=\"sensitiveByDefault\">\n {{ $t('settings.sensitive_by_default') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"scopeCopy\"\n expert=\"1\"\n >\n {{ $t('settings.scope_copy') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowSubjectInput\"\n expert=\"1\"\n >\n {{ $t('settings.subject_input_always_show') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"subjectLineBehavior\"\n path=\"subjectLineBehavior\"\n :options=\"subjectLineOptions\"\n expert=\"1\"\n >\n {{ $t('settings.subject_line_behavior') }}\n </ChoiceSetting>\n </li>\n <li v-if=\"postFormats.length > 0\">\n <ChoiceSetting\n id=\"postContentType\"\n path=\"postContentType\"\n :options=\"postContentOptions\"\n >\n {{ $t('settings.post_status_content_type') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"minimalScopesMode\"\n expert=\"1\"\n >\n {{ $t('settings.minimal_scopes_mode') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowNewPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.always_show_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"autohideFloatingPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.autohide_floating_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"padEmoji\"\n expert=\"1\"\n >\n {{ $t('settings.pad_emoji') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./general_tab.js\"></script>\n\n<style lang=\"scss\">\n.column-settings {\n display: flex;\n justify-content: space-evenly;\n flex-wrap: wrap;\n}\n.column-settings .size-label {\n display: block;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n</style>\n","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"SizeSetting\"\n >\n <label\n :for=\"path\"\n class=\"size-label\"\n >\n <slot />\n </label>\n <input\n :id=\"path\"\n class=\"number-input\"\n type=\"number\"\n step=\"1\"\n :disabled=\"disabled\"\n :min=\"min || 0\"\n :value=\"stateValue\"\n @change=\"updateValue\"\n >\n <Select\n :id=\"path\"\n :model-value=\"stateUnit\"\n :disabled=\"disabled\"\n class=\"css-unit-input\"\n @change=\"updateUnit\"\n >\n <option\n v-for=\"option in units\"\n :key=\"option\"\n :value=\"option\"\n >\n {{ option }}\n </option>\n </Select>\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n </span>\n</template>\n\n<script src=\"./size_setting.js\"></script>\n\n<style lang=\"scss\">\n.css-unit-input, .css-unit-input select {\n margin-left: 0.5em;\n width: 4em !important;\n max-width: 4em !important;\n min-width: 4em !important;\n}\n</style>\n","import { get, set } from 'lodash'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport Select from 'src/components/select/select.vue'\n\nexport const allCssUnits = ['cm', 'mm', 'in', 'px', 'pt', 'pc', 'em', 'ex', 'ch', 'rem', 'vw', 'vh', 'vmin', 'vmax', '%']\nexport const defaultHorizontalUnits = ['px', 'rem', 'vw']\nexport const defaultVerticalUnits = ['px', 'rem', 'vh']\n\nexport default {\n components: {\n ModifiedIndicator,\n Select\n },\n props: {\n path: String,\n disabled: Boolean,\n min: Number,\n units: {\n type: [String],\n default: () => allCssUnits\n },\n expert: [Number, String]\n },\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n stateUnit () {\n return (this.state || '').replace(/\\d+/, '')\n },\n stateValue () {\n return (this.state || '').replace(/\\D+/, '')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isChanged () {\n return this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, e)\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n },\n updateValue (e) {\n set(this.$parent, this.path, parseInt(e.target.value) + this.stateUnit)\n },\n updateUnit (e) {\n set(this.$parent, this.path, this.stateValue + e.target.value)\n }\n }\n}\n","import { render } from \"./size_setting.vue?vue&type=template&id=7aeb8eb2\"\nimport script from \"./size_setting.js?vue&type=script&lang=js\"\nexport * from \"./size_setting.js?vue&type=script&lang=js\"\n\nimport \"./size_setting.vue?vue&type=style&index=0&id=7aeb8eb2&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport ScopeSelector from 'src/components/scope_selector/scope_selector.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport SizeSetting, { defaultHorizontalUnits } from '../helpers/size_setting.vue'\nimport InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport ServerSideIndicator from '../helpers/server_side_indicator.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst GeneralTab = {\n data () {\n return {\n subjectLineOptions: ['email', 'noop', 'masto'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.subject_line_${mode === 'masto' ? 'mastodon' : mode}`)\n })),\n conversationDisplayOptions: ['tree', 'linear'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.conversation_display_${mode}`)\n })),\n conversationOtherRepliesButtonOptions: ['below', 'inside'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.conversation_other_replies_button_${mode}`)\n })),\n mentionLinkDisplayOptions: ['short', 'full_for_remote', 'full'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.mention_link_display_${mode}`)\n })),\n thirdColumnModeOptions: ['none', 'notifications', 'postform'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.third_column_mode_${mode}`)\n })),\n userPopoverAvatarActionOptions: ['close', 'zoom', 'open'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.user_popover_avatar_action_${mode}`)\n })),\n loopSilentAvailable:\n // Firefox\n Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') ||\n // Chrome-likes\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'webkitAudioDecodedByteCount') ||\n // Future spec, still not supported in Nightly 63 as of 08/2018\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'audioTracks')\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n SizeSetting,\n InterfaceLanguageSwitcher,\n ScopeSelector,\n ServerSideIndicator\n },\n computed: {\n horizontalUnits () {\n return defaultHorizontalUnits\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n postContentOptions () {\n return this.postFormats.map(format => ({\n key: format,\n value: format,\n label: this.$t(`post_status.content_type[\"${format}\"]`)\n }))\n },\n columns () {\n const mode = this.$store.getters.mergedConfig.thirdColumnMode\n\n const notif = mode === 'none' ? [] : ['notifs']\n\n if (this.$store.getters.mergedConfig.sidebarRight || mode === 'postform') {\n return [...notif, 'content', 'sidebar']\n } else {\n return ['sidebar', 'content', ...notif]\n }\n },\n instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel },\n instanceWallpaperUsed () {\n return this.$store.state.instance.background &&\n !this.$store.state.users.currentUser.background_image\n },\n instanceShoutboxPresent () { return this.$store.state.instance.shoutAvailable },\n language: {\n get: function () { return this.$store.getters.mergedConfig.interfaceLanguage },\n set: function (val) {\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n }\n },\n ...SharedComputedObject()\n },\n methods: {\n changeDefaultScope (value) {\n this.$store.dispatch('setServerSideOption', { name: 'defaultScope', value })\n }\n }\n}\n\nexport default GeneralTab\n","import { render } from \"./general_tab.vue?vue&type=template&id=05aa0b11\"\nimport script from \"./general_tab.js?vue&type=script&lang=js\"\nexport * from \"./general_tab.js?vue&type=script&lang=js\"\n\nimport \"./general_tab.vue?vue&type=style&index=0&id=05aa0b11&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.version.title')\">\n <div class=\"setting-item\">\n <ul class=\"setting-list\">\n <li>\n <p>{{ $t('settings.version.backend_version') }}</p>\n <ul class=\"option-list\">\n <li>\n <a\n :href=\"backendVersionLink\"\n target=\"_blank\"\n >{{ backendVersion }}</a>\n </li>\n </ul>\n </li>\n <li>\n <p>{{ $t('settings.version.frontend_version') }}</p>\n <ul class=\"option-list\">\n <li>\n <a\n :href=\"frontendVersionLink\"\n target=\"_blank\"\n >{{ frontendVersion }}</a>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n<script src=\"./version_tab.js\" />\n","import { extractCommit } from 'src/services/version/version.service'\n\nconst pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/'\nconst pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/'\n\nconst VersionTab = {\n data () {\n const instance = this.$store.state.instance\n return {\n backendVersion: instance.backendVersion,\n frontendVersion: instance.frontendVersion\n }\n },\n computed: {\n frontendVersionLink () {\n return pleromaFeCommitUrl + this.frontendVersion\n },\n backendVersionLink () {\n return pleromaBeCommitUrl + extractCommit(this.backendVersion)\n }\n }\n}\n\nexport default VersionTab\n","\nexport const extractCommit = versionString => {\n const regex = /-g(\\w+)/i\n const matches = versionString.match(regex)\n return matches ? matches[1] : ''\n}\n","import { render } from \"./version_tab.vue?vue&type=template&id=1295897c\"\nimport script from \"./version_tab.js?vue&type=script&lang=js\"\nexport * from \"./version_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"theme-tab\">\n <div class=\"presets-container\">\n <div class=\"save-load\">\n <div\n v-if=\"themeWarning\"\n class=\"theme-warning\"\n >\n <div class=\"alert warning\">\n {{ themeWarningHelp }}\n </div>\n <div class=\"buttons\">\n <template v-if=\"themeWarning.type === 'snapshot_source_mismatch'\">\n <button\n class=\"btn button-default\"\n @click=\"forceLoad\"\n >\n {{ $t('settings.style.switcher.use_source') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"forceSnapshot\"\n >\n {{ $t('settings.style.switcher.use_snapshot') }}\n </button>\n </template>\n <template v-else-if=\"themeWarning.noActionsPossible\">\n <button\n class=\"btn button-default\"\n @click=\"dismissWarning\"\n >\n {{ $t('general.dismiss') }}\n </button>\n </template>\n <template v-else>\n <button\n class=\"btn button-default\"\n @click=\"forceLoad\"\n >\n {{ $t('settings.style.switcher.load_theme') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"dismissWarning\"\n >\n {{ $t('settings.style.switcher.keep_as_is') }}\n </button>\n </template>\n </div>\n </div>\n <div class=\"top\">\n <div class=\"presets\">\n {{ $t('settings.presets') }}\n <label\n for=\"preset-switcher\"\n class=\"select\"\n >\n <Select\n id=\"preset-switcher\"\n v-model=\"selected\"\n class=\"preset-switcher\"\n >\n <option\n v-for=\"style in availableStyles\"\n :key=\"style.name\"\n :value=\"style.name || style[0]\"\n :style=\"{\n backgroundColor: style[1] || (style.theme || style.source).colors.bg,\n color: style[3] || (style.theme || style.source).colors.text\n }\"\n >\n {{ style[0] || style.name }}\n </option>\n </Select>\n </label>\n </div>\n <div class=\"export-import\">\n <button\n class=\"btn button-default\"\n @click=\"importTheme\"\n >\n {{ $t(&quot;settings.import_theme&quot;) }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"exportTheme\"\n >\n {{ $t(&quot;settings.export_theme&quot;) }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"save-load-options\">\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepColor\">\n {{ $t('settings.style.switcher.keep_color') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepShadows\">\n {{ $t('settings.style.switcher.keep_shadows') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepOpacity\">\n {{ $t('settings.style.switcher.keep_opacity') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepRoundness\">\n {{ $t('settings.style.switcher.keep_roundness') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepFonts\">\n {{ $t('settings.style.switcher.keep_fonts') }}\n </Checkbox>\n </span>\n <p>{{ $t('settings.style.switcher.save_load_hint') }}</p>\n </div>\n </div>\n\n <preview :style=\"previewRules\" />\n\n <keep-alive>\n <tab-switcher key=\"style-tweak\">\n <div\n :label=\"$t('settings.style.common_colors._tab_label')\"\n class=\"color-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.theme_help') }}</p>\n <div class=\"tab-header-buttons\">\n <button\n class=\"btn button-default\"\n @click=\"clearOpacity\"\n >\n {{ $t('settings.style.switcher.clear_opacity') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearV1\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n </div>\n <p>{{ $t('settings.theme_help_v2_1') }}</p>\n <h4>{{ $t('settings.style.common_colors.main') }}</h4>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"bgColorLocal\"\n name=\"bgColor\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"bgOpacityLocal\"\n name=\"bgOpacity\"\n :fallback=\"previewTheme.opacity.bg\"\n />\n <ColorInput\n v-model=\"textColorLocal\"\n name=\"textColor\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgText\" />\n <ColorInput\n v-model=\"accentColorLocal\"\n name=\"accentColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.accent')\"\n :show-optional-tickbox=\"typeof linkColorLocal !== 'undefined'\"\n />\n <ColorInput\n v-model=\"linkColorLocal\"\n name=\"linkColor\"\n :fallback=\"previewTheme.colors.accent\"\n :label=\"$t('settings.links')\"\n :show-optional-tickbox=\"typeof accentColorLocal !== 'undefined'\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgLink\" />\n </div>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"fgColorLocal\"\n name=\"fgColor\"\n :label=\"$t('settings.foreground')\"\n />\n <ColorInput\n v-model=\"fgTextColorLocal\"\n name=\"fgTextColor\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.fgText\"\n />\n <ColorInput\n v-model=\"fgLinkColorLocal\"\n name=\"fgLinkColor\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.fgLink\"\n />\n <p>{{ $t('settings.style.common_colors.foreground_hint') }}</p>\n </div>\n <h4>{{ $t('settings.style.common_colors.rgbo') }}</h4>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"cRedColorLocal\"\n name=\"cRedColor\"\n :label=\"$t('settings.cRed')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCRed\" />\n <ColorInput\n v-model=\"cBlueColorLocal\"\n name=\"cBlueColor\"\n :label=\"$t('settings.cBlue')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCBlue\" />\n </div>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"cGreenColorLocal\"\n name=\"cGreenColor\"\n :label=\"$t('settings.cGreen')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCGreen\" />\n <ColorInput\n v-model=\"cOrangeColorLocal\"\n name=\"cOrangeColor\"\n :label=\"$t('settings.cOrange')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCOrange\" />\n </div>\n <p>{{ $t('settings.theme_help_v2_2') }}</p>\n </div>\n\n <div\n :label=\"$t('settings.style.advanced_colors._tab_label')\"\n class=\"color-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.theme_help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearOpacity\"\n >\n {{ $t('settings.style.switcher.clear_opacity') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearV1\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.post') }}</h4>\n <ColorInput\n v-model=\"postLinkColorLocal\"\n name=\"postLinkColor\"\n :fallback=\"previewTheme.colors.accent\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio :contrast=\"previewContrast.postLink\" />\n <ColorInput\n v-model=\"postGreentextColorLocal\"\n name=\"postGreentextColor\"\n :fallback=\"previewTheme.colors.cGreen\"\n :label=\"$t('settings.greentext')\"\n />\n <ContrastRatio :contrast=\"previewContrast.postGreentext\" />\n <h4>{{ $t('settings.style.advanced_colors.alert') }}</h4>\n <ColorInput\n v-model=\"alertErrorColorLocal\"\n name=\"alertError\"\n :label=\"$t('settings.style.advanced_colors.alert_error')\"\n :fallback=\"previewTheme.colors.alertError\"\n />\n <ColorInput\n v-model=\"alertErrorTextColorLocal\"\n name=\"alertErrorText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertErrorText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertErrorText\"\n large\n />\n <ColorInput\n v-model=\"alertWarningColorLocal\"\n name=\"alertWarning\"\n :label=\"$t('settings.style.advanced_colors.alert_warning')\"\n :fallback=\"previewTheme.colors.alertWarning\"\n />\n <ColorInput\n v-model=\"alertWarningTextColorLocal\"\n name=\"alertWarningText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertWarningText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertWarningText\"\n large\n />\n <ColorInput\n v-model=\"alertNeutralColorLocal\"\n name=\"alertNeutral\"\n :label=\"$t('settings.style.advanced_colors.alert_neutral')\"\n :fallback=\"previewTheme.colors.alertNeutral\"\n />\n <ColorInput\n v-model=\"alertNeutralTextColorLocal\"\n name=\"alertNeutralText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertNeutralText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertNeutralText\"\n large\n />\n <OpacityInput\n v-model=\"alertOpacityLocal\"\n name=\"alertOpacity\"\n :fallback=\"previewTheme.opacity.alert\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.badge') }}</h4>\n <ColorInput\n v-model=\"badgeNotificationColorLocal\"\n name=\"badgeNotification\"\n :label=\"$t('settings.style.advanced_colors.badge_notification')\"\n :fallback=\"previewTheme.colors.badgeNotification\"\n />\n <ColorInput\n v-model=\"badgeNotificationTextColorLocal\"\n name=\"badgeNotificationText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.badgeNotificationText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.badgeNotificationText\"\n large\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.panel_header') }}</h4>\n <ColorInput\n v-model=\"panelColorLocal\"\n name=\"panelColor\"\n :fallback=\"previewTheme.colors.panel\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"panelOpacityLocal\"\n name=\"panelOpacity\"\n :fallback=\"previewTheme.opacity.panel\"\n :disabled=\"panelColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"panelTextColorLocal\"\n name=\"panelTextColor\"\n :fallback=\"previewTheme.colors.panelText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.panelText\"\n large\n />\n <ColorInput\n v-model=\"panelLinkColorLocal\"\n name=\"panelLinkColor\"\n :fallback=\"previewTheme.colors.panelLink\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.panelLink\"\n large\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.top_bar') }}</h4>\n <ColorInput\n v-model=\"topBarColorLocal\"\n name=\"topBarColor\"\n :fallback=\"previewTheme.colors.topBar\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"topBarTextColorLocal\"\n name=\"topBarTextColor\"\n :fallback=\"previewTheme.colors.topBarText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.topBarText\" />\n <ColorInput\n v-model=\"topBarLinkColorLocal\"\n name=\"topBarLinkColor\"\n :fallback=\"previewTheme.colors.topBarLink\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio :contrast=\"previewContrast.topBarLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.inputs') }}</h4>\n <ColorInput\n v-model=\"inputColorLocal\"\n name=\"inputColor\"\n :fallback=\"previewTheme.colors.input\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"inputOpacityLocal\"\n name=\"inputOpacity\"\n :fallback=\"previewTheme.opacity.input\"\n :disabled=\"inputColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"inputTextColorLocal\"\n name=\"inputTextColor\"\n :fallback=\"previewTheme.colors.inputText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.inputText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.buttons') }}</h4>\n <ColorInput\n v-model=\"btnColorLocal\"\n name=\"btnColor\"\n :fallback=\"previewTheme.colors.btn\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"btnOpacityLocal\"\n name=\"btnOpacity\"\n :fallback=\"previewTheme.opacity.btn\"\n :disabled=\"btnColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"btnTextColorLocal\"\n name=\"btnTextColor\"\n :fallback=\"previewTheme.colors.btnText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnText\" />\n <ColorInput\n v-model=\"btnPanelTextColorLocal\"\n name=\"btnPanelTextColor\"\n :fallback=\"previewTheme.colors.btnPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPanelText\" />\n <ColorInput\n v-model=\"btnTopBarTextColorLocal\"\n name=\"btnTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnTopBarText\" />\n <h5>{{ $t('settings.style.advanced_colors.pressed') }}</h5>\n <ColorInput\n v-model=\"btnPressedColorLocal\"\n name=\"btnPressedColor\"\n :fallback=\"previewTheme.colors.btnPressed\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnPressedTextColorLocal\"\n name=\"btnPressedTextColor\"\n :fallback=\"previewTheme.colors.btnPressedText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedText\" />\n <ColorInput\n v-model=\"btnPressedPanelTextColorLocal\"\n name=\"btnPressedPanelTextColor\"\n :fallback=\"previewTheme.colors.btnPressedPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedPanelText\" />\n <ColorInput\n v-model=\"btnPressedTopBarTextColorLocal\"\n name=\"btnPressedTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnPressedTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedTopBarText\" />\n <h5>{{ $t('settings.style.advanced_colors.disabled') }}</h5>\n <ColorInput\n v-model=\"btnDisabledColorLocal\"\n name=\"btnDisabledColor\"\n :fallback=\"previewTheme.colors.btnDisabled\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnDisabledTextColorLocal\"\n name=\"btnDisabledTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledText\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"btnDisabledPanelTextColorLocal\"\n name=\"btnDisabledPanelTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ColorInput\n v-model=\"btnDisabledTopBarTextColorLocal\"\n name=\"btnDisabledTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.toggled') }}</h5>\n <ColorInput\n v-model=\"btnToggledColorLocal\"\n name=\"btnToggledColor\"\n :fallback=\"previewTheme.colors.btnToggled\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnToggledTextColorLocal\"\n name=\"btnToggledTextColor\"\n :fallback=\"previewTheme.colors.btnToggledText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledText\" />\n <ColorInput\n v-model=\"btnToggledPanelTextColorLocal\"\n name=\"btnToggledPanelTextColor\"\n :fallback=\"previewTheme.colors.btnToggledPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledPanelText\" />\n <ColorInput\n v-model=\"btnToggledTopBarTextColorLocal\"\n name=\"btnToggledTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnToggledTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledTopBarText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.tabs') }}</h4>\n <ColorInput\n v-model=\"tabColorLocal\"\n name=\"tabColor\"\n :fallback=\"previewTheme.colors.tab\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"tabTextColorLocal\"\n name=\"tabTextColor\"\n :fallback=\"previewTheme.colors.tabText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.tabText\" />\n <ColorInput\n v-model=\"tabActiveTextColorLocal\"\n name=\"tabActiveTextColor\"\n :fallback=\"previewTheme.colors.tabActiveText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.tabActiveText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.borders') }}</h4>\n <ColorInput\n v-model=\"borderColorLocal\"\n name=\"borderColor\"\n :fallback=\"previewTheme.colors.border\"\n :label=\"$t('settings.style.common.color')\"\n />\n <OpacityInput\n v-model=\"borderOpacityLocal\"\n name=\"borderOpacity\"\n :fallback=\"previewTheme.opacity.border\"\n :disabled=\"borderColorLocal === 'transparent'\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.faint_text') }}</h4>\n <ColorInput\n v-model=\"faintColorLocal\"\n name=\"faintColor\"\n :fallback=\"previewTheme.colors.faint\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"faintLinkColorLocal\"\n name=\"faintLinkColor\"\n :fallback=\"previewTheme.colors.faintLink\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"panelFaintColorLocal\"\n name=\"panelFaintColor\"\n :fallback=\"previewTheme.colors.panelFaint\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <OpacityInput\n v-model=\"faintOpacityLocal\"\n name=\"faintOpacity\"\n :fallback=\"previewTheme.opacity.faint\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.underlay') }}</h4>\n <ColorInput\n v-model=\"underlayColorLocal\"\n name=\"underlay\"\n :label=\"$t('settings.style.advanced_colors.underlay')\"\n :fallback=\"previewTheme.colors.underlay\"\n />\n <OpacityInput\n v-model=\"underlayOpacityLocal\"\n name=\"underlayOpacity\"\n :fallback=\"previewTheme.opacity.underlay\"\n :disabled=\"underlayOpacityLocal === 'transparent'\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.wallpaper') }}</h4>\n <ColorInput\n v-model=\"wallpaperColorLocal\"\n name=\"wallpaper\"\n :label=\"$t('settings.style.advanced_colors.wallpaper')\"\n :fallback=\"previewTheme.colors.wallpaper\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.poll') }}</h4>\n <ColorInput\n v-model=\"pollColorLocal\"\n name=\"poll\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.poll\"\n />\n <ColorInput\n v-model=\"pollTextColorLocal\"\n name=\"pollText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.pollText\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.icons') }}</h4>\n <ColorInput\n v-model=\"iconColorLocal\"\n name=\"icon\"\n :label=\"$t('settings.style.advanced_colors.icons')\"\n :fallback=\"previewTheme.colors.icon\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.highlight') }}</h4>\n <ColorInput\n v-model=\"highlightColorLocal\"\n name=\"highlight\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.highlight\"\n />\n <ColorInput\n v-model=\"highlightTextColorLocal\"\n name=\"highlightText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.highlightText\"\n />\n <ContrastRatio :contrast=\"previewContrast.highlightText\" />\n <ColorInput\n v-model=\"highlightLinkColorLocal\"\n name=\"highlightLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.highlightLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.highlightLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.popover') }}</h4>\n <ColorInput\n v-model=\"popoverColorLocal\"\n name=\"popover\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.popover\"\n />\n <OpacityInput\n v-model=\"popoverOpacityLocal\"\n name=\"popoverOpacity\"\n :fallback=\"previewTheme.opacity.popover\"\n :disabled=\"popoverOpacityLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"popoverTextColorLocal\"\n name=\"popoverText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.popoverText\"\n />\n <ContrastRatio :contrast=\"previewContrast.popoverText\" />\n <ColorInput\n v-model=\"popoverLinkColorLocal\"\n name=\"popoverLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.popoverLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.popoverLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.selectedPost') }}</h4>\n <ColorInput\n v-model=\"selectedPostColorLocal\"\n name=\"selectedPost\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.selectedPost\"\n />\n <ColorInput\n v-model=\"selectedPostTextColorLocal\"\n name=\"selectedPostText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.selectedPostText\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedPostText\" />\n <ColorInput\n v-model=\"selectedPostLinkColorLocal\"\n name=\"selectedPostLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.selectedPostLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedPostLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.selectedMenu') }}</h4>\n <ColorInput\n v-model=\"selectedMenuColorLocal\"\n name=\"selectedMenu\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.selectedMenu\"\n />\n <ColorInput\n v-model=\"selectedMenuTextColorLocal\"\n name=\"selectedMenuText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.selectedMenuText\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedMenuText\" />\n <ColorInput\n v-model=\"selectedMenuLinkColorLocal\"\n name=\"selectedMenuLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.selectedMenuLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedMenuLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('chats.chats') }}</h4>\n <ColorInput\n v-model=\"chatBgColorLocal\"\n name=\"chatBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.chat.incoming') }}</h5>\n <ColorInput\n v-model=\"chatMessageIncomingBgColorLocal\"\n name=\"chatMessageIncomingBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingTextColorLocal\"\n name=\"chatMessageIncomingTextColor\"\n :fallback=\"previewTheme.colors.text\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingLinkColorLocal\"\n name=\"chatMessageIncomingLinkColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingBorderColorLocal\"\n name=\"chatMessageIncomingBorderLinkColor\"\n :fallback=\"previewTheme.colors.fg\"\n :label=\"$t('settings.style.advanced_colors.chat.border')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.chat.outgoing') }}</h5>\n <ColorInput\n v-model=\"chatMessageOutgoingBgColorLocal\"\n name=\"chatMessageOutgoingBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingTextColorLocal\"\n name=\"chatMessageOutgoingTextColor\"\n :fallback=\"previewTheme.colors.text\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingLinkColorLocal\"\n name=\"chatMessageOutgoingLinkColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingBorderColorLocal\"\n name=\"chatMessageOutgoingBorderLinkColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.style.advanced_colors.chat.border')\"\n />\n </div>\n </div>\n\n <div\n :label=\"$t('settings.style.radii._tab_label')\"\n class=\"radius-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.radii_help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearRoundness\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <RangeInput\n v-model=\"btnRadiusLocal\"\n name=\"btnRadius\"\n :label=\"$t('settings.btnRadius')\"\n :fallback=\"previewTheme.radii.btn\"\n max=\"16\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"inputRadiusLocal\"\n name=\"inputRadius\"\n :label=\"$t('settings.inputRadius')\"\n :fallback=\"previewTheme.radii.input\"\n max=\"9\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"checkboxRadiusLocal\"\n name=\"checkboxRadius\"\n :label=\"$t('settings.checkboxRadius')\"\n :fallback=\"previewTheme.radii.checkbox\"\n max=\"16\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"panelRadiusLocal\"\n name=\"panelRadius\"\n :label=\"$t('settings.panelRadius')\"\n :fallback=\"previewTheme.radii.panel\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"avatarRadiusLocal\"\n name=\"avatarRadius\"\n :label=\"$t('settings.avatarRadius')\"\n :fallback=\"previewTheme.radii.avatar\"\n max=\"28\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"avatarAltRadiusLocal\"\n name=\"avatarAltRadius\"\n :label=\"$t('settings.avatarAltRadius')\"\n :fallback=\"previewTheme.radii.avatarAlt\"\n max=\"28\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"attachmentRadiusLocal\"\n name=\"attachmentRadius\"\n :label=\"$t('settings.attachmentRadius')\"\n :fallback=\"previewTheme.radii.attachment\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"tooltipRadiusLocal\"\n name=\"tooltipRadius\"\n :label=\"$t('settings.tooltipRadius')\"\n :fallback=\"previewTheme.radii.tooltip\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"chatMessageRadiusLocal\"\n name=\"chatMessageRadius\"\n :label=\"$t('settings.chatMessageRadius')\"\n :fallback=\"previewTheme.radii.chatMessage || 2\"\n max=\"50\"\n hard-min=\"0\"\n />\n </div>\n\n <div\n :label=\"$t('settings.style.shadows._tab_label')\"\n class=\"shadow-container\"\n >\n <div class=\"tab-header shadow-selector\">\n <div class=\"select-container\">\n {{ $t('settings.style.shadows.component') }}\n {{ ' ' }}\n <Select\n id=\"shadow-switcher\"\n v-model=\"shadowSelected\"\n class=\"shadow-switcher\"\n >\n <option\n v-for=\"shadow in shadowsAvailable\"\n :key=\"shadow\"\n :value=\"shadow\"\n >\n {{ $t('settings.style.shadows.components.' + shadow) }}\n </option>\n </Select>\n </div>\n <div class=\"override\">\n <label\n for=\"override\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.override') }}\n </label>\n {{ ' ' }}\n <input\n id=\"override\"\n v-model=\"currentShadowOverriden\"\n name=\"override\"\n class=\"input-override\"\n type=\"checkbox\"\n >\n <label\n class=\"checkbox-label\"\n for=\"override\"\n />\n </div>\n <button\n class=\"btn button-default\"\n @click=\"clearShadows\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <ShadowControl\n v-model=\"currentShadow\"\n :ready=\"!!currentShadowFallback\"\n :fallback=\"currentShadowFallback\"\n />\n <div v-if=\"shadowSelected === 'avatar' || shadowSelected === 'avatarStatus'\">\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.always_drop_shadow\"\n tag=\"p\"\n >\n <code>filter: drop-shadow()</code>\n </i18n-t>\n <p>{{ $t('settings.style.shadows.filter_hint.avatar_inset') }}</p>\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.drop_shadow_syntax\"\n tag=\"p\"\n >\n <code>drop-shadow</code>\n <code>spread-radius</code>\n <code>inset</code>\n </i18n-t>\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.inset_classic\"\n tag=\"p\"\n >\n <code>box-shadow</code>\n </i18n-t>\n <p>{{ $t('settings.style.shadows.filter_hint.spread_zero') }}</p>\n </div>\n </div>\n\n <div\n :label=\"$t('settings.style.fonts._tab_label')\"\n class=\"fonts-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.style.fonts.help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearFonts\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <FontControl\n v-model=\"fontsLocal.interface\"\n name=\"ui\"\n :label=\"$t('settings.style.fonts.components.interface')\"\n :fallback=\"previewTheme.fonts.interface\"\n no-inherit=\"1\"\n />\n <FontControl\n v-model=\"fontsLocal.input\"\n name=\"input\"\n :label=\"$t('settings.style.fonts.components.input')\"\n :fallback=\"previewTheme.fonts.input\"\n />\n <FontControl\n v-model=\"fontsLocal.post\"\n name=\"post\"\n :label=\"$t('settings.style.fonts.components.post')\"\n :fallback=\"previewTheme.fonts.post\"\n />\n <FontControl\n v-model=\"fontsLocal.postCode\"\n name=\"postCode\"\n :label=\"$t('settings.style.fonts.components.postCode')\"\n :fallback=\"previewTheme.fonts.postCode\"\n />\n </div>\n </tab-switcher>\n </keep-alive>\n\n <teleport\n v-if=\"isActive\"\n to=\"#unscrolled-content\"\n >\n <div class=\"apply-container\">\n <button\n class=\"btn button-default submit\"\n :disabled=\"!themeValid\"\n @click=\"setCustomTheme\"\n >\n {{ $t('general.apply') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearAll\"\n >\n {{ $t('settings.style.switcher.reset') }}\n </button>\n </div>\n </teleport>\n </div>\n</template>\n\n<script src=\"./theme_tab.js\"></script>\n\n<style src=\"./theme_tab.scss\" lang=\"scss\"></style>\n","<template>\n <div\n class=\"color-input style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined' && showOptionalTickbox\"\n :model-value=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @update:modelValue=\"$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)\"\n />\n <div class=\"input color-input-field\">\n <input\n :id=\"name + '-t'\"\n class=\"textColor unstyled\"\n type=\"text\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <input\n v-if=\"validColor\"\n :id=\"name\"\n class=\"nativeColor unstyled\"\n type=\"color\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <div\n v-if=\"transparentColor\"\n class=\"transparentIndicator\"\n />\n <div\n v-if=\"computedColor\"\n class=\"computedIndicator\"\n :style=\"{backgroundColor: fallback}\"\n />\n </div>\n </div>\n</template>\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nexport default {\n components: {\n Checkbox\n },\n props: {\n // Name of color, used for identifying\n name: {\n required: true,\n type: String\n },\n // Readable label\n label: {\n required: true,\n type: String\n },\n // Color value, should be required but vue cannot tell the difference\n // between \"property missing\" and \"property set to undefined\"\n modelValue: {\n required: false,\n type: String,\n default: undefined\n },\n // Color fallback to use when value is not defeind\n fallback: {\n required: false,\n type: String,\n default: undefined\n },\n // Disable the control\n disabled: {\n required: false,\n type: Boolean,\n default: false\n },\n // Show \"optional\" tickbox, for when value might become mandatory\n showOptionalTickbox: {\n required: false,\n type: Boolean,\n default: true\n }\n },\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n },\n validColor () {\n return hex2rgb(this.modelValue || this.fallback)\n },\n transparentColor () {\n return this.modelValue === 'transparent'\n },\n computedColor () {\n return this.modelValue && this.modelValue.startsWith('--')\n }\n }\n}\n</script>\n<style lang=\"scss\" src=\"./color_input.scss\"></style>\n\n<style lang=\"scss\">\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n</style>\n","import { render } from \"./color_input.vue?vue&type=template&id=a9be5fb8\"\nimport script from \"./color_input.vue?vue&type=script&lang=js\"\nexport * from \"./color_input.vue?vue&type=script&lang=js\"\n\nimport \"./color_input.scss?vue&type=style&index=0&lang=scss\"\nimport \"./color_input.vue?vue&type=style&index=1&id=a9be5fb8&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"range-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <input\n v-if=\"typeof fallback !== 'undefined'\"\n :id=\"name + '-o'\"\n class=\"opt\"\n type=\"checkbox\"\n :checked=\"present\"\n @change=\"$emit('update:modelValue', !present ? fallback : undefined)\"\n >\n <label\n v-if=\"typeof fallback !== 'undefined'\"\n class=\"opt-l\"\n :for=\"name + '-o'\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"range\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"max || hardMax || 100\"\n :min=\"min || hardMin || 0\"\n :step=\"step || 1\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"hardMax\"\n :min=\"hardMin\"\n :step=\"step || 1\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nexport default {\n props: [\n 'name', 'modelValue', 'fallback', 'disabled', 'label', 'max', 'min', 'step', 'hardMin', 'hardMax'\n ],\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n }\n }\n}\n</script>\n","import { render } from \"./range_input.vue?vue&type=template&id=7ecff9e8\"\nimport script from \"./range_input.vue?vue&type=script&lang=js\"\nexport * from \"./range_input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"opacity-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ $t('settings.style.common.opacity') }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined'\"\n :model-value=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @update:modelValue=\"$emit('update:modelValue', !present ? fallback : undefined)\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n max=\"1\"\n min=\"0\"\n step=\".05\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nexport default {\n components: {\n Checkbox\n },\n props: [\n 'name', 'modelValue', 'fallback', 'disabled'\n ],\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n }\n }\n}\n</script>\n","import { render } from \"./opacity_input.vue?vue&type=template&id=69949f84\"\nimport script from \"./opacity_input.vue?vue&type=script&lang=js\"\nexport * from \"./opacity_input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"shadow-control\"\n :class=\"{ disabled: !present }\"\n >\n <div class=\"shadow-preview-container\">\n <div\n :disabled=\"!present\"\n class=\"y-shift-control\"\n >\n <input\n v-model=\"selected.y\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n <div class=\"wrap\">\n <input\n v-model=\"selected.y\"\n :disabled=\"!present\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n </div>\n </div>\n <div class=\"preview-window\">\n <div\n class=\"preview-block\"\n :style=\"style\"\n />\n </div>\n <div\n :disabled=\"!present\"\n class=\"x-shift-control\"\n >\n <input\n v-model=\"selected.x\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n <div class=\"wrap\">\n <input\n v-model=\"selected.x\"\n :disabled=\"!present\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n </div>\n </div>\n </div>\n\n <div class=\"shadow-tweak\">\n <div\n :disabled=\"usingFallback\"\n class=\"id-control style-control\"\n >\n <Select\n id=\"shadow-switcher\"\n v-model=\"selectedId\"\n class=\"shadow-switcher\"\n :disabled=\"!ready || usingFallback\"\n >\n <option\n v-for=\"(shadow, index) in cValue\"\n :key=\"index\"\n :value=\"index\"\n >\n {{ $t('settings.style.shadows.shadow_id', { value: index }) }}\n </option>\n </Select>\n <button\n class=\"btn button-default\"\n :disabled=\"!ready || !present\"\n @click=\"del\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"!moveUpValid\"\n @click=\"moveUp\"\n >\n <FAIcon\n fixed-width\n icon=\"chevron-up\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"!moveDnValid\"\n @click=\"moveDn\"\n >\n <FAIcon\n fixed-width\n icon=\"chevron-down\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"usingFallback\"\n @click=\"add\"\n >\n <FAIcon\n fixed-width\n icon=\"plus\"\n />\n </button>\n </div>\n <div\n :disabled=\"!present\"\n class=\"inset-control style-control\"\n >\n <label\n for=\"inset\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.inset') }}\n </label>\n <input\n id=\"inset\"\n v-model=\"selected.inset\"\n :disabled=\"!present\"\n name=\"inset\"\n class=\"input-inset\"\n type=\"checkbox\"\n >\n <label\n class=\"checkbox-label\"\n for=\"inset\"\n />\n </div>\n <div\n :disabled=\"!present\"\n class=\"blur-control style-control\"\n >\n <label\n for=\"spread\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.blur') }}\n </label>\n <input\n id=\"blur\"\n v-model=\"selected.blur\"\n :disabled=\"!present\"\n name=\"blur\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"0\"\n >\n <input\n v-model=\"selected.blur\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n min=\"0\"\n >\n </div>\n <div\n :disabled=\"!present\"\n class=\"spread-control style-control\"\n >\n <label\n for=\"spread\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.spread') }}\n </label>\n <input\n id=\"spread\"\n v-model=\"selected.spread\"\n :disabled=\"!present\"\n name=\"spread\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n <input\n v-model=\"selected.spread\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n </div>\n <ColorInput\n v-model=\"selected.color\"\n :disabled=\"!present\"\n :label=\"$t('settings.style.common.color')\"\n :fallback=\"currentFallback.color\"\n :show-optional-tickbox=\"false\"\n name=\"shadow\"\n />\n <OpacityInput\n v-model=\"selected.alpha\"\n :disabled=\"!present\"\n />\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.hintV3\"\n tag=\"p\"\n >\n <code>--variable,mod</code>\n </i18n-t>\n </div>\n </div>\n</template>\n\n<script src=\"./shadow_control.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n $side: 15em;\n\n input[type=number] {\n width: 5em;\n min-width: 2em;\n }\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=disabled] *{\n opacity: .5\n }\n\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=range] {\n margin: 0;\n width: $side;\n height: 2em;\n }\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n .wrap {\n width: 2em;\n height: $side;\n }\n input[type=range] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n .preview-window {\n flex: 1;\n background-color: #999999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666666 25%, transparent 25%),\n linear-gradient(-45deg, #666666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666666 75%),\n linear-gradient(-45deg, transparent 75%, #666666 75%);\n background-size: 20px 20px;\n background-position:0 0, 0 10px, 10px -10px, -10px 0;\n\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .preview-block {\n width: 33%;\n height: 33%;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher, .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 .4em;\n margin: 0 .1em;\n }\n }\n }\n}\n</style>\n","import ColorInput from '../color_input/color_input.vue'\nimport OpacityInput from '../opacity_input/opacity_input.vue'\nimport Select from '../select/select.vue'\nimport { getCssShadow } from '../../services/style_setter/style_setter.js'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faChevronDown,\n faChevronUp,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown,\n faChevronUp,\n faTimes,\n faPlus\n)\n\nconst toModel = (object = {}) => ({\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n inset: false,\n color: '#000000',\n alpha: 1,\n ...object\n})\n\nexport default {\n // 'modelValue' and 'Fallback' can be undefined, but if they are\n // initially vue won't detect it when they become something else\n // therefore i'm using \"ready\" which should be passed as true when\n // data becomes available\n props: [\n 'modelValue', 'fallback', 'ready'\n ],\n emits: ['update:modelValue'],\n data () {\n return {\n selectedId: 0,\n // TODO there are some bugs regarding display of array (it's not getting updated when deleting for some reason)\n cValue: (this.modelValue || this.fallback || []).map(toModel)\n }\n },\n components: {\n ColorInput,\n OpacityInput,\n Select\n },\n methods: {\n add () {\n this.cValue.push(toModel(this.selected))\n this.selectedId = this.cValue.length - 1\n },\n del () {\n this.cValue.splice(this.selectedId, 1)\n this.selectedId = this.cValue.length === 0 ? undefined : Math.max(this.selectedId - 1, 0)\n },\n moveUp () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId - 1, 0, movable)\n this.selectedId -= 1\n },\n moveDn () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId + 1, 0, movable)\n this.selectedId += 1\n }\n },\n beforeUpdate () {\n this.cValue = this.modelValue || this.fallback\n },\n computed: {\n anyShadows () {\n return this.cValue.length > 0\n },\n anyShadowsFallback () {\n return this.fallback.length > 0\n },\n selected () {\n if (this.ready && this.anyShadows) {\n return this.cValue[this.selectedId]\n } else {\n return toModel({})\n }\n },\n currentFallback () {\n if (this.ready && this.anyShadowsFallback) {\n return this.fallback[this.selectedId]\n } else {\n return toModel({})\n }\n },\n moveUpValid () {\n return this.ready && this.selectedId > 0\n },\n moveDnValid () {\n return this.ready && this.selectedId < this.cValue.length - 1\n },\n present () {\n return this.ready &&\n typeof this.cValue[this.selectedId] !== 'undefined' &&\n !this.usingFallback\n },\n usingFallback () {\n return typeof this.modelValue === 'undefined'\n },\n rgb () {\n return hex2rgb(this.selected.color)\n },\n style () {\n return this.ready\n ? {\n boxShadow: getCssShadow(this.fallback)\n }\n : {}\n }\n }\n}\n","import { render } from \"./shadow_control.vue?vue&type=template&id=4bd09751\"\nimport script from \"./shadow_control.js?vue&type=script&lang=js\"\nexport * from \"./shadow_control.js?vue&type=script&lang=js\"\n\nimport \"./shadow_control.vue?vue&type=style&index=0&id=4bd09751&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { set } from 'lodash'\nimport Select from '../select/select.vue'\n\nexport default {\n components: {\n Select\n },\n props: [\n 'name', 'label', 'modelValue', 'fallback', 'options', 'no-inherit'\n ],\n emits: ['update:modelValue'],\n data () {\n return {\n lValue: this.modelValue,\n availableOptions: [\n this.noInherit ? '' : 'inherit',\n 'custom',\n ...(this.options || []),\n 'serif',\n 'monospace',\n 'sans-serif'\n ].filter(_ => _)\n }\n },\n beforeUpdate () {\n this.lValue = this.modelValue\n },\n computed: {\n present () {\n return typeof this.lValue !== 'undefined'\n },\n dValue () {\n return this.lValue || this.fallback || {}\n },\n family: {\n get () {\n return this.dValue.family\n },\n set (v) {\n set(this.lValue, 'family', v)\n this.$emit('update:modelValue', this.lValue)\n }\n },\n isCustom () {\n return this.preset === 'custom'\n },\n preset: {\n get () {\n if (this.family === 'serif' ||\n this.family === 'sans-serif' ||\n this.family === 'monospace' ||\n this.family === 'inherit') {\n return this.family\n } else {\n return 'custom'\n }\n },\n set (v) {\n this.family = v === 'custom' ? '' : v\n }\n }\n }\n}\n","import { render } from \"./font_control.vue?vue&type=template&id=738c7153\"\nimport script from \"./font_control.js?vue&type=script&lang=js\"\nexport * from \"./font_control.js?vue&type=script&lang=js\"\n\nimport \"./font_control.vue?vue&type=style&index=0&id=738c7153&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"font-control style-control\"\n :class=\"{ custom: isCustom }\"\n >\n <label\n :for=\"preset === 'custom' ? name : name + '-font-switcher'\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <input\n v-if=\"typeof fallback !== 'undefined'\"\n :id=\"name + '-o'\"\n class=\"opt exlcude-disabled\"\n type=\"checkbox\"\n :checked=\"present\"\n @change=\"$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)\"\n >\n <label\n v-if=\"typeof fallback !== 'undefined'\"\n class=\"opt-l\"\n :for=\"name + '-o'\"\n />\n {{ ' ' }}\n <Select\n :id=\"name + '-font-switcher'\"\n v-model=\"preset\"\n :disabled=\"!present\"\n class=\"font-switcher\"\n >\n <option\n v-for=\"option in availableOptions\"\n :key=\"option\"\n :value=\"option\"\n >\n {{ option === 'custom' ? $t('settings.style.fonts.custom') : option }}\n </option>\n </Select>\n <input\n v-if=\"isCustom\"\n :id=\"name\"\n v-model=\"family\"\n class=\"custom-font\"\n type=\"text\"\n >\n </div>\n</template>\n\n<script src=\"./font_control.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.font-control {\n input.custom-font {\n min-width: 10em;\n }\n &.custom {\n /* TODO Should make proper joiners... */\n .font-switcher {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .custom-font {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n</style>\n","<template>\n <span\n v-if=\"contrast\"\n class=\"contrast-ratio\"\n >\n <span\n :title=\"hint\"\n class=\"rating\"\n >\n <span v-if=\"contrast.aaa\">\n <FAIcon icon=\"thumbs-up\" />\n </span>\n <span v-if=\"!contrast.aaa && contrast.aa\">\n <FAIcon icon=\"adjust\" />\n </span>\n <span v-if=\"!contrast.aaa && !contrast.aa\">\n <FAIcon icon=\"exclamation-triangle\" />\n </span>\n </span>\n <span\n v-if=\"contrast && large\"\n class=\"rating\"\n :title=\"hint_18pt\"\n >\n <span v-if=\"contrast.laaa\">\n <FAIcon icon=\"thumbs-up\" />\n </span>\n <span v-if=\"!contrast.laaa && contrast.laa\">\n <FAIcon icon=\"adjust\" />\n </span>\n <span v-if=\"!contrast.laaa && !contrast.laa\">\n <FAIcon icon=\"exclamation-triangle\" />\n </span>\n </span>\n </span>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAdjust,\n faExclamationTriangle,\n faThumbsUp\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAdjust,\n faExclamationTriangle,\n faThumbsUp\n)\n\nexport default {\n props: {\n large: {\n required: false,\n type: Boolean,\n default: false\n },\n // TODO: Make theme switcher compute theme initially so that contrast\n // component won't be called without contrast data\n contrast: {\n required: false,\n type: Object,\n default: () => ({})\n }\n },\n computed: {\n hint () {\n const levelVal = this.contrast.aaa ? 'aaa' : (this.contrast.aa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.text')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n },\n hint_18pt () {\n const levelVal = this.contrast.laaa ? 'aaa' : (this.contrast.laa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.18pt')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n</style>\n","import { render } from \"./contrast_ratio.vue?vue&type=template&id=6d90b7c4\"\nimport script from \"./contrast_ratio.vue?vue&type=script&lang=js\"\nexport * from \"./contrast_ratio.vue?vue&type=script&lang=js\"\n\nimport \"./contrast_ratio.vue?vue&type=style&index=0&id=6d90b7c4&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"preview-container\">\n <div class=\"underlay underlay-preview\" />\n <div class=\"panel dummy\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('settings.style.preview.header') }}\n <span class=\"badge badge-notification\">\n 99\n </span>\n </div>\n <span class=\"faint\">\n {{ $t('settings.style.preview.header_faint') }}\n </span>\n <span class=\"alert error\">\n {{ $t('settings.style.preview.error') }}\n </span>\n <button class=\"btn button-default\">\n {{ $t('settings.style.preview.button') }}\n </button>\n </div>\n <div class=\"panel-body theme-preview-content\">\n <div class=\"post\">\n <div class=\"avatar still-image\">\n ( ͡° ͜ʖ ͡°)\n </div>\n <div class=\"content\">\n <h4>\n {{ $t('settings.style.preview.content') }}\n </h4>\n\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.preview.text\"\n >\n <code style=\"font-family: var(--postCodeFont)\">\n {{ $t('settings.style.preview.mono') }}\n </code>\n <a style=\"color: var(--link)\">\n {{ $t('settings.style.preview.link') }}\n </a>\n </i18n-t>\n\n <div class=\"icons\">\n <FAIcon\n fixed-width\n style=\"color: var(--cBlue)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"reply\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cGreen)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"retweet\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cOrange)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"star\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cRed)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </div>\n </div>\n </div>\n\n <div class=\"after-post\">\n <div class=\"avatar-alt\">\n :^)\n </div>\n <div class=\"content\">\n <i18n-t\n keypath=\"settings.style.preview.fine_print\"\n tag=\"span\"\n class=\"faint\"\n scope=\"global\"\n >\n <a style=\"color: var(--faintLink)\">\n {{ $t('settings.style.preview.faint_link') }}\n </a>\n </i18n-t>\n </div>\n </div>\n <div class=\"separator\" />\n\n <span class=\"alert error\">\n {{ $t('settings.style.preview.error') }}\n </span>\n <input\n :value=\"$t('settings.style.preview.input')\"\n type=\"text\"\n >\n\n <div class=\"actions\">\n <span class=\"checkbox\">\n <input\n id=\"preview_checkbox\"\n checked=\"very yes\"\n type=\"checkbox\"\n >\n <label for=\"preview_checkbox\">{{ $t('settings.style.preview.checkbox') }}</label>\n </span>\n <button class=\"btn button-default\">\n {{ $t('settings.style.preview.button') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faStar,\n faRetweet,\n faReply\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faStar,\n faRetweet,\n faReply\n)\n\nexport default {}\n</script>\n\n<style lang=\"scss\">\n.preview-container {\n position: relative;\n}\n.underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n}\n</style>\n","import { render } from \"./preview.vue?vue&type=template&id=d053f612\"\nimport script from \"./preview.vue?vue&type=script&lang=js\"\nexport * from \"./preview.vue?vue&type=script&lang=js\"\n\nimport \"./preview.vue?vue&type=style&index=0&id=d053f612&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\n rgb2hex,\n hex2rgb,\n getContrastRatioLayers\n} from 'src/services/color_convert/color_convert.js'\nimport {\n DEFAULT_SHADOWS,\n generateColors,\n generateShadows,\n generateRadii,\n generateFonts,\n composePreset,\n getThemes,\n shadows2to3,\n colors2to3\n} from 'src/services/style_setter/style_setter.js'\nimport {\n newImporter,\n newExporter\n} from 'src/services/export_import/export_import.js'\nimport {\n SLOT_INHERITANCE\n} from 'src/services/theme_data/pleromafe.js'\nimport {\n CURRENT_VERSION,\n OPACITIES,\n getLayers,\n getOpacitySlot\n} from 'src/services/theme_data/theme_data.service.js'\nimport ColorInput from 'src/components/color_input/color_input.vue'\nimport RangeInput from 'src/components/range_input/range_input.vue'\nimport OpacityInput from 'src/components/opacity_input/opacity_input.vue'\nimport ShadowControl from 'src/components/shadow_control/shadow_control.vue'\nimport FontControl from 'src/components/font_control/font_control.vue'\nimport ContrastRatio from 'src/components/contrast_ratio/contrast_ratio.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport Select from 'src/components/select/select.vue'\n\nimport Preview from './preview.vue'\n\n// List of color values used in v1\nconst v1OnlyNames = [\n 'bg',\n 'fg',\n 'text',\n 'link',\n 'cRed',\n 'cGreen',\n 'cBlue',\n 'cOrange'\n].map(_ => _ + 'ColorLocal')\n\nconst colorConvert = (color) => {\n if (color.startsWith('--') || color === 'transparent') {\n return color\n } else {\n return hex2rgb(color)\n }\n}\n\nexport default {\n data () {\n return {\n themeImporter: newImporter({\n validator: this.importValidator,\n onImport: this.onImport,\n onImportFailure: this.onImportFailure\n }),\n themeExporter: newExporter({\n filename: 'pleroma_theme',\n getExportedObject: () => this.exportedTheme\n }),\n availableStyles: [],\n selected: '',\n selectedTheme: this.$store.getters.mergedConfig.theme,\n themeWarning: undefined,\n tempImportFile: undefined,\n engineVersion: 0,\n\n previewShadows: {},\n previewColors: {},\n previewRadii: {},\n previewFonts: {},\n\n shadowsInvalid: true,\n colorsInvalid: true,\n radiiInvalid: true,\n\n keepColor: false,\n keepShadows: false,\n keepOpacity: false,\n keepRoundness: false,\n keepFonts: false,\n\n ...Object.keys(SLOT_INHERITANCE)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [key + 'ColorLocal']: val }), {}),\n\n ...Object.keys(OPACITIES)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [key + 'OpacityLocal']: val }), {}),\n\n shadowSelected: undefined,\n shadowsLocal: {},\n fontsLocal: {},\n\n btnRadiusLocal: '',\n inputRadiusLocal: '',\n checkboxRadiusLocal: '',\n panelRadiusLocal: '',\n avatarRadiusLocal: '',\n avatarAltRadiusLocal: '',\n attachmentRadiusLocal: '',\n tooltipRadiusLocal: '',\n chatMessageRadiusLocal: ''\n }\n },\n created () {\n const self = this\n\n getThemes()\n .then((promises) => {\n return Promise.all(\n Object.entries(promises)\n .map(([k, v]) => v.then(res => [k, res]))\n )\n })\n .then(themes => themes.reduce((acc, [k, v]) => {\n if (v) {\n return {\n ...acc,\n [k]: v\n }\n } else {\n return acc\n }\n }, {}))\n .then((themesComplete) => {\n self.availableStyles = themesComplete\n })\n },\n mounted () {\n this.loadThemeFromLocalStorage()\n if (typeof this.shadowSelected === 'undefined') {\n this.shadowSelected = this.shadowsAvailable[0]\n }\n },\n computed: {\n themeWarningHelp () {\n if (!this.themeWarning) return\n const t = this.$t\n const pre = 'settings.style.switcher.help.'\n const {\n origin,\n themeEngineVersion,\n type,\n noActionsPossible\n } = this.themeWarning\n if (origin === 'file') {\n // Loaded v2 theme from file\n if (themeEngineVersion === 2 && type === 'wrong_version') {\n return t(pre + 'v2_imported')\n }\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n } else if (origin === 'localStorage') {\n if (type === 'snapshot_source_mismatch') {\n return t(pre + 'snapshot_source_mismatch')\n }\n // FE upgraded from v2\n if (themeEngineVersion === 2) {\n return t(pre + 'upgraded_from_v2')\n }\n // Admin downgraded FE\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'fe_downgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n // Admin upgraded FE\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'fe_upgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n }\n },\n selectedVersion () {\n return Array.isArray(this.selectedTheme) ? 1 : 2\n },\n currentColors () {\n return Object.keys(SLOT_INHERITANCE)\n .map(key => [key, this[key + 'ColorLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {})\n },\n currentOpacity () {\n return Object.keys(OPACITIES)\n .map(key => [key, this[key + 'OpacityLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {})\n },\n currentRadii () {\n return {\n btn: this.btnRadiusLocal,\n input: this.inputRadiusLocal,\n checkbox: this.checkboxRadiusLocal,\n panel: this.panelRadiusLocal,\n avatar: this.avatarRadiusLocal,\n avatarAlt: this.avatarAltRadiusLocal,\n tooltip: this.tooltipRadiusLocal,\n attachment: this.attachmentRadiusLocal,\n chatMessage: this.chatMessageRadiusLocal\n }\n },\n preview () {\n return composePreset(this.previewColors, this.previewRadii, this.previewShadows, this.previewFonts)\n },\n previewTheme () {\n if (!this.preview.theme.colors) return { colors: {}, opacity: {}, radii: {}, shadows: {}, fonts: {} }\n return this.preview.theme\n },\n // This needs optimization maybe\n previewContrast () {\n try {\n if (!this.previewTheme.colors.bg) return {}\n const colors = this.previewTheme.colors\n const opacity = this.previewTheme.opacity\n if (!colors.bg) return {}\n const hints = (ratio) => ({\n text: ratio.toPrecision(3) + ':1',\n // AA level, AAA level\n aa: ratio >= 4.5,\n aaa: ratio >= 7,\n // same but for 18pt+ texts\n laa: ratio >= 3,\n laaa: ratio >= 4.5\n })\n const colorsConverted = Object.entries(colors).reduce((acc, [key, value]) => ({ ...acc, [key]: colorConvert(value) }), {})\n\n const ratios = Object.entries(SLOT_INHERITANCE).reduce((acc, [key, value]) => {\n const slotIsBaseText = key === 'text' || key === 'link'\n const slotIsText = slotIsBaseText || (\n typeof value === 'object' && value !== null && value.textColor\n )\n if (!slotIsText) return acc\n const { layer, variant } = slotIsBaseText ? { layer: 'bg' } : value\n const background = variant || layer\n const opacitySlot = getOpacitySlot(background)\n const textColors = [\n key,\n ...(background === 'bg' ? ['cRed', 'cGreen', 'cBlue', 'cOrange'] : [])\n ]\n\n const layers = getLayers(\n layer,\n variant || layer,\n opacitySlot,\n colorsConverted,\n opacity\n )\n\n // Temporary patch for null-y value errors\n if (layers.flat().some(v => v == null)) return acc\n\n return {\n ...acc,\n ...textColors.reduce((acc, textColorKey) => {\n const newKey = slotIsBaseText\n ? 'bg' + textColorKey[0].toUpperCase() + textColorKey.slice(1)\n : textColorKey\n return {\n ...acc,\n [newKey]: getContrastRatioLayers(\n colorsConverted[textColorKey],\n layers,\n colorsConverted[textColorKey]\n )\n }\n }, {})\n }\n }, {})\n\n return Object.entries(ratios).reduce((acc, [k, v]) => { acc[k] = hints(v); return acc }, {})\n } catch (e) {\n console.warn('Failure computing contrasts', e)\n return {}\n }\n },\n previewRules () {\n if (!this.preview.rules) return ''\n return [\n ...Object.values(this.preview.rules),\n 'color: var(--text)',\n 'font-family: var(--interfaceFont, sans-serif)'\n ].join(';')\n },\n shadowsAvailable () {\n return Object.keys(DEFAULT_SHADOWS).sort()\n },\n currentShadowOverriden: {\n get () {\n return !!this.currentShadow\n },\n set (val) {\n if (val) {\n this.shadowsLocal[this.shadowSelected] = this.currentShadowFallback.map(_ => Object.assign({}, _))\n } else {\n delete this.shadowsLocal[this.shadowSelected]\n }\n }\n },\n currentShadowFallback () {\n return (this.previewTheme.shadows || {})[this.shadowSelected]\n },\n currentShadow: {\n get () {\n return this.shadowsLocal[this.shadowSelected]\n },\n set (v) {\n this.shadowsLocal[this.shadowSelected] = v\n }\n },\n themeValid () {\n return !this.shadowsInvalid && !this.colorsInvalid && !this.radiiInvalid\n },\n exportedTheme () {\n const saveEverything = (\n !this.keepFonts &&\n !this.keepShadows &&\n !this.keepOpacity &&\n !this.keepRoundness &&\n !this.keepColor\n )\n\n const source = {\n themeEngineVersion: CURRENT_VERSION\n }\n\n if (this.keepFonts || saveEverything) {\n source.fonts = this.fontsLocal\n }\n if (this.keepShadows || saveEverything) {\n source.shadows = this.shadowsLocal\n }\n if (this.keepOpacity || saveEverything) {\n source.opacity = this.currentOpacity\n }\n if (this.keepColor || saveEverything) {\n source.colors = this.currentColors\n }\n if (this.keepRoundness || saveEverything) {\n source.radii = this.currentRadii\n }\n\n const theme = {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n\n return {\n // To separate from other random JSON files and possible future source formats\n _pleroma_theme_version: 2, theme, source\n }\n },\n isActive () {\n const tabSwitcher = this.$parent\n return tabSwitcher ? tabSwitcher.isActive('theme') : false\n }\n },\n components: {\n ColorInput,\n OpacityInput,\n RangeInput,\n ContrastRatio,\n ShadowControl,\n FontControl,\n TabSwitcher,\n Preview,\n Checkbox,\n Select\n },\n methods: {\n loadTheme (\n {\n theme,\n source,\n _pleroma_theme_version: fileVersion\n },\n origin,\n forceUseSource = false\n ) {\n this.dismissWarning()\n if (!source && !theme) {\n throw new Error('Can\\'t load theme: empty')\n }\n const version = (origin === 'localStorage' && !theme.colors)\n ? 'l1'\n : fileVersion\n const snapshotEngineVersion = (theme || {}).themeEngineVersion\n const themeEngineVersion = (source || {}).themeEngineVersion || 2\n const versionsMatch = themeEngineVersion === CURRENT_VERSION\n const sourceSnapshotMismatch = (\n theme !== undefined &&\n source !== undefined &&\n themeEngineVersion !== snapshotEngineVersion\n )\n // Force loading of source if user requested it or if snapshot\n // is unavailable\n const forcedSourceLoad = (source && forceUseSource) || !theme\n if (!(versionsMatch && !sourceSnapshotMismatch) &&\n !forcedSourceLoad &&\n version !== 'l1' &&\n origin !== 'defaults'\n ) {\n if (sourceSnapshotMismatch && origin === 'localStorage') {\n this.themeWarning = {\n origin,\n themeEngineVersion,\n type: 'snapshot_source_mismatch'\n }\n } else if (!theme) {\n this.themeWarning = {\n origin,\n noActionsPossible: true,\n themeEngineVersion,\n type: 'no_snapshot_old_version'\n }\n } else if (!versionsMatch) {\n this.themeWarning = {\n origin,\n noActionsPossible: !source,\n themeEngineVersion,\n type: 'wrong_version'\n }\n }\n }\n this.normalizeLocalState(theme, version, source, forcedSourceLoad)\n },\n forceLoadLocalStorage () {\n this.loadThemeFromLocalStorage(true)\n },\n dismissWarning () {\n this.themeWarning = undefined\n this.tempImportFile = undefined\n },\n forceLoad () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(true)\n break\n case 'file':\n this.onImport(this.tempImportFile, true)\n break\n }\n this.dismissWarning()\n },\n forceSnapshot () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(false, true)\n break\n case 'file':\n console.error('Forcing snapshot from file is not supported yet')\n break\n }\n this.dismissWarning()\n },\n loadThemeFromLocalStorage (confirmLoadSource = false, forceSnapshot = false) {\n const {\n customTheme: theme,\n customThemeSource: source\n } = this.$store.getters.mergedConfig\n if (!theme && !source) {\n // Anon user or never touched themes\n this.loadTheme(\n this.$store.state.instance.themeData,\n 'defaults',\n confirmLoadSource\n )\n } else {\n this.loadTheme(\n {\n theme,\n source: forceSnapshot ? theme : source\n },\n 'localStorage',\n confirmLoadSource\n )\n }\n },\n setCustomTheme () {\n this.$store.dispatch('setOption', {\n name: 'customTheme',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n })\n this.$store.dispatch('setOption', {\n name: 'customThemeSource',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n shadows: this.shadowsLocal,\n fonts: this.fontsLocal,\n opacity: this.currentOpacity,\n colors: this.currentColors,\n radii: this.currentRadii\n }\n })\n },\n updatePreviewColorsAndShadows () {\n this.previewColors = generateColors({\n opacity: this.currentOpacity,\n colors: this.currentColors\n })\n this.previewShadows = generateShadows(\n { shadows: this.shadowsLocal, opacity: this.previewTheme.opacity, themeEngineVersion: this.engineVersion },\n this.previewColors.theme.colors,\n this.previewColors.mod\n )\n },\n importTheme () { this.themeImporter.importData() },\n exportTheme () { this.themeExporter.exportData() },\n onImport (parsed, forceSource = false) {\n this.tempImportFile = parsed\n this.loadTheme(parsed, 'file', forceSource)\n },\n onImportFailure (result) {\n this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_theme_imported', level: 'error' })\n },\n importValidator (parsed) {\n const version = parsed._pleroma_theme_version\n return version >= 1 || version <= 2\n },\n clearAll () {\n this.loadThemeFromLocalStorage()\n },\n\n // Clears all the extra stuff when loading V1 theme\n clearV1 () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('ColorLocal') || _.endsWith('OpacityLocal'))\n .filter(_ => !v1OnlyNames.includes(_))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearRoundness () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('RadiusLocal'))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearOpacity () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('OpacityLocal'))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearShadows () {\n this.shadowsLocal = {}\n },\n\n clearFonts () {\n this.fontsLocal = {}\n },\n\n /**\n * This applies stored theme data onto form. Supports three versions of data:\n * v3 (version >= 3) - newest version of themes which supports snapshots for better compatiblity\n * v2 (version = 2) - newer version of themes.\n * v1 (version = 1) - older version of themes (import from file)\n * v1l (version = l1) - older version of theme (load from local storage)\n * v1 and v1l differ because of way themes were stored/exported.\n * @param {Object} theme - theme data (snapshot)\n * @param {Number} version - version of data. 0 means try to guess based on data. \"l1\" means v1, locastorage type\n * @param {Object} source - theme source - this will be used if compatible\n * @param {Boolean} source - by default source won't be used if version doesn't match since it might render differently\n * this allows importing source anyway\n */\n normalizeLocalState (theme, version = 0, source, forceSource = false) {\n let input\n if (typeof source !== 'undefined') {\n if (forceSource || source.themeEngineVersion === CURRENT_VERSION) {\n input = source\n version = source.themeEngineVersion\n } else {\n input = theme\n }\n } else {\n input = theme\n }\n\n const radii = input.radii || input\n const opacity = input.opacity\n const shadows = input.shadows || {}\n const fonts = input.fonts || {}\n const colors = !input.themeEngineVersion\n ? colors2to3(input.colors || input)\n : input.colors || input\n\n if (version === 0) {\n if (input.version) version = input.version\n // Old v1 naming: fg is text, btn is foreground\n if (typeof colors.text === 'undefined' && typeof colors.fg !== 'undefined') {\n version = 1\n }\n // New v2 naming: text is text, fg is foreground\n if (typeof colors.text !== 'undefined' && typeof colors.fg !== 'undefined') {\n version = 2\n }\n }\n\n this.engineVersion = version\n\n // Stuff that differs between V1 and V2\n if (version === 1) {\n this.fgColorLocal = rgb2hex(colors.btn)\n this.textColorLocal = rgb2hex(colors.fg)\n }\n\n if (!this.keepColor) {\n this.clearV1()\n const keys = new Set(version !== 1 ? Object.keys(SLOT_INHERITANCE) : [])\n if (version === 1 || version === 'l1') {\n keys\n .add('bg')\n .add('link')\n .add('cRed')\n .add('cBlue')\n .add('cGreen')\n .add('cOrange')\n }\n\n keys.forEach(key => {\n const color = colors[key]\n const hex = rgb2hex(colors[key])\n this[key + 'ColorLocal'] = hex === '#aN' ? color : hex\n })\n }\n\n if (opacity && !this.keepOpacity) {\n this.clearOpacity()\n Object.entries(opacity).forEach(([k, v]) => {\n if (typeof v === 'undefined' || v === null || Number.isNaN(v)) return\n this[k + 'OpacityLocal'] = v\n })\n }\n\n if (!this.keepRoundness) {\n this.clearRoundness()\n Object.entries(radii).forEach(([k, v]) => {\n // 'Radius' is kept mostly for v1->v2 localstorage transition\n const key = k.endsWith('Radius') ? k.split('Radius')[0] : k\n this[key + 'RadiusLocal'] = v\n })\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n if (version === 2) {\n this.shadowsLocal = shadows2to3(shadows, this.previewTheme.opacity)\n } else {\n this.shadowsLocal = shadows\n }\n this.shadowSelected = this.shadowsAvailable[0]\n }\n\n if (!this.keepFonts) {\n this.clearFonts()\n this.fontsLocal = fonts\n }\n }\n },\n watch: {\n currentRadii () {\n try {\n this.previewRadii = generateRadii({ radii: this.currentRadii })\n this.radiiInvalid = false\n } catch (e) {\n this.radiiInvalid = true\n console.warn(e)\n }\n },\n shadowsLocal: {\n handler () {\n if (Object.getOwnPropertyNames(this.previewColors).length === 1) return\n try {\n this.updatePreviewColorsAndShadows()\n this.shadowsInvalid = false\n } catch (e) {\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n fontsLocal: {\n handler () {\n try {\n this.previewFonts = generateFonts({ fonts: this.fontsLocal })\n this.fontsInvalid = false\n } catch (e) {\n this.fontsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n currentColors () {\n try {\n this.updatePreviewColorsAndShadows()\n this.colorsInvalid = false\n this.shadowsInvalid = false\n } catch (e) {\n this.colorsInvalid = true\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n currentOpacity () {\n try {\n this.updatePreviewColorsAndShadows()\n } catch (e) {\n console.warn(e)\n }\n },\n selected () {\n this.selectedTheme = Object.entries(this.availableStyles).find(([k, s]) => {\n if (Array.isArray(s)) {\n console.log(s[0] === this.selected, this.selected)\n return s[0] === this.selected\n } else {\n return s.name === this.selected\n }\n })[1]\n },\n selectedTheme () {\n this.dismissWarning()\n if (this.selectedVersion === 1) {\n if (!this.keepRoundness) {\n this.clearRoundness()\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n }\n\n if (!this.keepOpacity) {\n this.clearOpacity()\n }\n\n if (!this.keepColor) {\n this.clearV1()\n\n this.bgColorLocal = this.selectedTheme[1]\n this.fgColorLocal = this.selectedTheme[2]\n this.textColorLocal = this.selectedTheme[3]\n this.linkColorLocal = this.selectedTheme[4]\n this.cRedColorLocal = this.selectedTheme[5]\n this.cGreenColorLocal = this.selectedTheme[6]\n this.cBlueColorLocal = this.selectedTheme[7]\n this.cOrangeColorLocal = this.selectedTheme[8]\n }\n } else if (this.selectedVersion >= 2) {\n this.normalizeLocalState(this.selectedTheme.theme, 2, this.selectedTheme.source)\n }\n }\n }\n}\n","import { render } from \"./theme_tab.vue?vue&type=template&id=1128449a\"\nimport script from \"./theme_tab.js?vue&type=script&lang=js\"\nexport * from \"./theme_tab.js?vue&type=script&lang=js\"\n\nimport \"./theme_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nimport DataImportExportTab from './tabs/data_import_export_tab.vue'\nimport MutesAndBlocksTab from './tabs/mutes_and_blocks_tab.vue'\nimport NotificationsTab from './tabs/notifications_tab.vue'\nimport FilteringTab from './tabs/filtering_tab.vue'\nimport SecurityTab from './tabs/security_tab/security_tab.vue'\nimport ProfileTab from './tabs/profile_tab.vue'\nimport GeneralTab from './tabs/general_tab.vue'\nimport VersionTab from './tabs/version_tab.vue'\nimport ThemeTab from './tabs/theme_tab/theme_tab.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faWrench,\n faUser,\n faFilter,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench,\n faUser,\n faFilter,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n)\n\nconst SettingsModalContent = {\n components: {\n TabSwitcher,\n\n DataImportExportTab,\n MutesAndBlocksTab,\n NotificationsTab,\n FilteringTab,\n SecurityTab,\n ProfileTab,\n GeneralTab,\n VersionTab,\n ThemeTab\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n open () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n bodyLock () {\n return this.$store.state.interface.settingsModalState === 'visible'\n }\n },\n methods: {\n onOpen () {\n const targetTab = this.$store.state.interface.settingsModalTargetTab\n // We're being told to open in specific tab\n if (targetTab) {\n const tabIndex = this.$refs.tabSwitcher.$slots.default().findIndex(elm => {\n return elm.props && elm.props['data-tab-name'] === targetTab\n })\n if (tabIndex >= 0) {\n this.$refs.tabSwitcher.setTab(tabIndex)\n }\n }\n // Clear the state of target tab, so that next time settings is opened\n // it doesn't force it.\n this.$store.dispatch('clearSettingsModalTargetTab')\n }\n },\n mounted () {\n this.onOpen()\n },\n watch: {\n open: function (value) {\n if (value) this.onOpen()\n }\n }\n}\n\nexport default SettingsModalContent\n","import { render } from \"./settings_modal_content.vue?vue&type=template&id=6191ca84\"\nimport script from \"./settings_modal_content.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal_content.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal_content.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <tab-switcher\n ref=\"tabSwitcher\"\n class=\"settings_tab-switcher\"\n :side-tab-bar=\"true\"\n :scrollable-tabs=\"true\"\n :body-scroll-lock=\"bodyLock\"\n >\n <div\n :label=\"$t('settings.general')\"\n icon=\"wrench\"\n data-tab-name=\"general\"\n >\n <GeneralTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.profile_tab')\"\n icon=\"user\"\n data-tab-name=\"profile\"\n >\n <ProfileTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.security_tab')\"\n icon=\"lock\"\n data-tab-name=\"security\"\n >\n <SecurityTab />\n </div>\n <div\n :label=\"$t('settings.filtering')\"\n icon=\"filter\"\n data-tab-name=\"filtering\"\n >\n <FilteringTab />\n </div>\n <div\n :label=\"$t('settings.theme')\"\n icon=\"paint-brush\"\n data-tab-name=\"theme\"\n >\n <ThemeTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.notifications')\"\n icon=\"bell\"\n data-tab-name=\"notifications\"\n >\n <NotificationsTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.data_import_export_tab')\"\n icon=\"download\"\n data-tab-name=\"dataImportExport\"\n >\n <DataImportExportTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.mutes_and_blocks')\"\n :fullHeight=\"true\"\n icon=\"eye-slash\"\n data-tab-name=\"mutesAndBlocks\"\n >\n <MutesAndBlocksTab />\n </div>\n <div\n :label=\"$t('settings.version.title')\"\n icon=\"info\"\n data-tab-name=\"version\"\n >\n <VersionTab />\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./settings_modal_content.js\"></script>\n\n<style src=\"./settings_modal_content.scss\" lang=\"scss\"></style>\n"],"names":["class","_createElementVNode","library","faCircleNotch","faTimes","props","submitHandler","type","Function","required","submitButtonLabel","String","successMessage","errorMessage","data","file","error","success","submitting","methods","change","this","$refs","input","files","submit","dismiss","then","_createElementBlock","_hoisted_1","ref","onChange","_ctx","_createBlock","_component_FAIcon","spin","icon","onClick","_createVNode","getContent","filename","default","exportButtonLabel","processingMessage","processing","process","content","fileToDownload","document","createElement","setAttribute","encodeURIComponent","style","display","body","appendChild","click","removeChild","setTimeout","size","activeTab","newDomainToMute","listBackupsError","addBackupError","addedBackup","backups","created","$store","dispatch","fetchBackups","components","Importer","Exporter","Checkbox","computed","mapState","backendInteractor","state","api","user","users","currentUser","getFollowsContent","exportFriends","id","generateExportableUsersContent","getBlocksContent","fetchBlocks","getMutesContent","fetchMutes","importFollows","status","Error","importBlocks","importMutes","map","is_local","screen_name","location","hostname","join","addBackup","res","listBackups","label","_hoisted_2","_component_Importer","_hoisted_3","_component_Exporter","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_Fragment","backup","key","inserted_at","_hoisted_10","processed","target","href","url","_hoisted_13","title","query","filter","placeholder","term","timeout","results","resultsVisible","filtered","watch","val","fetchResults","clearTimeout","onInputClick","onClickOutside","length","item","_renderSlot","progress","getters","findUser","userId","relationship","blocked","blocking","BasicUserCard","unblockUser","blockUser","_component_basic_user_card","disabled","muted","muting","unmuteUser","muteUser","ProgressButton","domainMutes","includes","domain","unmuteDomain","muteDomain","_component_ProgressButton","List","items","Array","getKey","selected","allKeys","filteredSelected","indexOf","allSelected","noneSelected","someSelected","isSelected","toggle","checked","push","splice","toggleAll","value","slice","_component_Checkbox","indeterminate","_component_List","_normalizeClass","empty","fetch","select","childPropName","additionalPropNames","WrappedComponent","Object","keys","getComponentProps","v","concat","loading","fetchedData","$props","refresh","isEmpty","fetchData","render","$t","children","$slots","BlockList","withSubscription","get","SelectableList","MuteList","DomainMuteList","TabSwitcher","BlockCard","MuteCard","DomainMuteCard","Autosuggest","knownDomains","instance","activateTab","tabName","filterUnblockedUsers","userIds","reject","filterUnMutedUsers","queryUserIds","blockUsers","ids","unblockUsers","muteUsers","unmuteUsers","filterUnMutedDomains","urls","queryKnownDomains","Promise","resolve","toLowerCase","unmuteDomains","domains","_component_tab_switcher","_component_Autosuggest","_withCtx","row","_component_BlockCard","_component_BlockList","i","header","_component_MuteCard","_component_MuteList","_component_DomainMuteCard","_component_DomainMuteList","faWrench","Popover","_component_Popover","trigger","faServer","ModifiedIndicator","ServerSideIndicator","pathDefault","path","split","firstSegment","rest","$parent","undefined","defaultState","isServerSide","startsWith","isChanged","matchesExpertLevel","expert","expertLevel","update","e","reset","_component_ModifiedIndicator","changed","onclick","_component_ServerSideIndicator","configDefaultState","defaultConfig","reduce","acc","mergedConfig","set","name","serverSideConfigDefaultState","serverSideConfig","useStreamingApi","console","notificationSettings","notification_settings","BooleanSetting","SharedComputedObject","updateNotificationSettings","settings","_component_BooleanSetting","Select","_component_Select","option","Boolean","min","Number","parseInt","for","step","muteWordsStringLocal","muteWords","replyVisibilityOptions","mode","ChoiceSetting","IntegerSetting","muteWordsString","word","replyVisibility","_component_ChoiceSetting","options","_component_IntegerSetting","place","backupCodes","inProgress","codes","ready","displayTitle","code","confirm","$emit","cancel","currentPassword","deactivate","Confirm","isActivated","totp","doActivate","cancelDeactivate","doDeactivate","confirmDeactivate","mfaDisableOTP","password","available","enabled","setupState","setupOTPState","getNewCodes","otpSettings","provisioning_uri","otpConfirmToken","readyInit","RecoveryCodes","_component_confirm","onConfirm","onCancel","qrcode","VueQrcode","canSetupOTP","setupInProgress","backupCodesPrepared","setupOTPInProgress","completedOTP","prepareOTP","confirmOTP","confirmNewBackupCodes","activateOTP","fetchBackupCodes","generateMfaBackupCodes","getBackupCodes","confirmBackupCodes","cancelBackupCodes","setupOTP","mfaSetupOTP","doConfirmOTP","mfaConfirmOTP","token","completeSetup","fetchSettings","cancelSetup","settingsMFA","result","mounted","_component_totp_item","onDeactivate","onActivate","_component_recovery_codes","_hoisted_11","_hoisted_12","_component_qrcode","width","_hoisted_14","_hoisted_15","newEmail","changeEmailError","changeEmailPassword","changedEmail","deletingAccount","deleteAccountConfirmPasswordInput","deleteAccountError","changePasswordInputs","changedPassword","changePasswordError","moveAccountTarget","moveAccountPassword","movedAccount","moveAccountError","aliases","listAliasesError","addAliasTarget","addedAlias","addAliasError","fetchAliases","Mfa","pleromaBackend","oauthTokens","tokens","oauthToken","appName","app_name","validUntil","Date","valid_until","toLocaleDateString","localeService","$i18n","locale","confirmDelete","deleteAccount","$router","changePassword","params","newPassword","newPasswordConfirmation","logout","changeEmail","email","moveAccount","targetAccount","removeAlias","alias","deleteAlias","addAlias","listAliases","replace","revokeToken","window","t","autocomplete","_component_mfa","_hoisted_17","_component_i18n","tag","_hoisted_18","_hoisted_21","_hoisted_22","_hoisted_25","Element","cropperOptions","aspectRatio","autoCropArea","viewMode","movable","zoomable","guides","mimes","saveButtonLabel","saveWithoutCroppingButtonlabel","cancelButtonLabel","cropper","dataUrl","saveText","saveWithoutCroppingText","cancelText","destroy","cropping","pickImage","createCropper","Cropper","img","getTriggerDOM","querySelector","readFile","fileInput","reader","FileReader","onload","readAsDataURL","addEventListener","beforeUnmount","removeEventListener","src","alt","onLoad","_toDisplayString","accept","faPlus","ProfileTab","newName","name_unescaped","newBio","unescape","description","newLocked","locked","newFields","fields","field","showRole","show_role","role","bot","pickAvatarBtnVisible","bannerUploading","backgroundUploading","banner","bannerPreview","background","backgroundPreview","emailLanguage","language","ScopeSelector","ImageCropper","EmojiInput","InterfaceLanguageSwitcher","emojiUserSuggestor","suggestor","emoji","standardEmojiList","customEmoji","store","emojiSuggestor","userSuggestor","fieldsLimits","maxFields","defaultAvatar","server","defaultBanner","isDefaultAvatar","baseAvatar","profile_image_url","isDefaultBanner","baseBanner","cover_photo","isDefaultBackground","background_image","avatarImgSrc","profile_image_url_original","bannerImgSrc","updateProfile","note","display_name","fields_attributes","el","merge","commit","changeVis","visibility","newDefaultScope","addField","deleteField","index","event","$delete","uploadFile","slot","filesize","fileSizeFormatService","allowedsize","messageKey","messageArgs","num","filesizeunit","unit","allowedsizeunit","level","resetAvatar","submitAvatar","resetBanner","submitBanner","resetBackground","submitBackground","that","updateAvatar","avatar","avatarName","updateProfileImages","displayUploadError","getCroppedCanvas","toBlob","message","_component_EmojiInput","suggest","_","_component_interface_language_switcher","_component_image_cropper","onOpen","onClose","$event","_hoisted_19","_hoisted_20","_hoisted_24","allCssUnits","defaultHorizontalUnits","units","stateUnit","stateValue","updateValue","updateUnit","faGlobe","subjectLineOptions","conversationDisplayOptions","conversationOtherRepliesButtonOptions","mentionLinkDisplayOptions","thirdColumnModeOptions","userPopoverAvatarActionOptions","loopSilentAvailable","getOwnPropertyDescriptor","HTMLVideoElement","prototype","HTMLMediaElement","SizeSetting","horizontalUnits","postFormats","postContentOptions","format","columns","thirdColumnMode","notif","sidebarRight","instanceSpecificPanelPresent","showInstanceSpecificPanel","instanceWallpaperUsed","instanceShoutboxPresent","shoutAvailable","interfaceLanguage","changeDefaultScope","column","_component_SizeSetting","_component_ScopeSelector","backendVersion","frontendVersion","frontendVersionLink","backendVersionLink","matches","match","modelValue","fallback","showOptionalTickbox","emits","present","validColor","hex2rgb","transparentColor","computedColor","$options","onInput","backgroundColor","max","faChevronDown","faChevronUp","toModel","object","x","y","blur","spread","inset","color","alpha","selectedId","cValue","ColorInput","OpacityInput","add","del","Math","moveUp","moveDn","beforeUpdate","anyShadows","anyShadowsFallback","currentFallback","moveUpValid","moveDnValid","usingFallback","rgb","boxShadow","getCssShadow","shadow","_hoisted_23","_hoisted_27","_component_ColorInput","_component_OpacityInput","_component_i18n_t","scope","keypath","_hoisted_30","lValue","availableOptions","noInherit","dValue","family","isCustom","preset","custom","faAdjust","faExclamationTriangle","faThumbsUp","large","contrast","hint","levelVal","aaa","aa","context","ratio","text","hint_18pt","laaa","laa","faStar","faRetweet","faReply","_hoisted_16","_hoisted_26","_hoisted_28","v1OnlyNames","themeImporter","newImporter","validator","importValidator","onImport","onImportFailure","themeExporter","newExporter","getExportedObject","exportedTheme","availableStyles","selectedTheme","theme","themeWarning","tempImportFile","engineVersion","previewShadows","previewColors","previewRadii","previewFonts","shadowsInvalid","colorsInvalid","radiiInvalid","keepColor","keepShadows","keepOpacity","keepRoundness","keepFonts","SLOT_INHERITANCE","OPACITIES","shadowSelected","shadowsLocal","fontsLocal","btnRadiusLocal","inputRadiusLocal","checkboxRadiusLocal","panelRadiusLocal","avatarRadiusLocal","avatarAltRadiusLocal","attachmentRadiusLocal","tooltipRadiusLocal","chatMessageRadiusLocal","self","getThemes","promises","all","entries","k","themes","themesComplete","loadThemeFromLocalStorage","shadowsAvailable","themeWarningHelp","pre","origin","themeEngineVersion","noActionsPossible","CURRENT_VERSION","selectedVersion","isArray","currentColors","currentOpacity","currentRadii","btn","checkbox","panel","avatarAlt","tooltip","attachment","chatMessage","preview","composePreset","previewTheme","colors","opacity","radii","shadows","fonts","previewContrast","bg","colorsConverted","ratios","slotIsBaseText","textColor","layer","variant","opacitySlot","getOpacitySlot","textColors","layers","getLayers","flat","some","textColorKey","newKey","toUpperCase","getContrastRatioLayers","toPrecision","warn","previewRules","rules","values","DEFAULT_SHADOWS","sort","currentShadowOverriden","currentShadow","currentShadowFallback","assign","themeValid","saveEverything","source","_pleroma_theme_version","isActive","tabSwitcher","RangeInput","ContrastRatio","ShadowControl","FontControl","Preview","loadTheme","fileVersion","forceUseSource","dismissWarning","version","snapshotEngineVersion","versionsMatch","sourceSnapshotMismatch","forcedSourceLoad","normalizeLocalState","forceLoadLocalStorage","forceLoad","forceSnapshot","confirmLoadSource","customTheme","customThemeSource","themeData","setCustomTheme","updatePreviewColorsAndShadows","generateColors","generateShadows","mod","importTheme","importData","exportTheme","exportData","parsed","forceSource","clearAll","clearV1","$data","endsWith","forEach","clearRoundness","clearOpacity","clearShadows","clearFonts","colors2to3","fg","fgColorLocal","rgb2hex","textColorLocal","Set","hex","isNaN","shadows2to3","generateRadii","handler","getOwnPropertyNames","deep","generateFonts","fontsInvalid","find","s","log","bgColorLocal","linkColorLocal","cRedColorLocal","cGreenColorLocal","cBlueColorLocal","cOrangeColorLocal","_component_preview","_KeepAlive","_component_ContrastRatio","bgText","link","accent","bgLink","fgText","fgLink","bgCRed","bgCBlue","bgCGreen","bgCOrange","postLink","cGreen","postGreentext","alertError","alertErrorText","alertWarning","alertWarningText","alertNeutral","alertNeutralText","alert","badgeNotification","badgeNotificationText","_hoisted_29","panelText","panelLink","topBar","topBarText","topBarLink","_hoisted_31","inputText","_hoisted_32","btnText","btnPanelText","btnTopBarText","btnPressed","btnPressedText","btnPressedPanelText","btnPressedTopBarText","btnDisabled","btnDisabledText","btnDisabledPanelText","btnDisabledTopBarText","btnToggled","btnToggledText","btnToggledPanelText","btnToggledTopBarText","_hoisted_33","tab","tabText","tabActiveText","_hoisted_34","border","_hoisted_35","faint","faintLink","panelFaint","_hoisted_36","underlay","_hoisted_37","wallpaper","_hoisted_38","poll","pollText","_hoisted_39","_hoisted_40","highlight","highlightText","highlightLink","_hoisted_41","popover","popoverText","popoverLink","_hoisted_42","selectedPost","selectedPostText","selectedPostLink","_hoisted_43","selectedMenu","selectedMenuText","selectedMenuLink","_hoisted_44","_hoisted_46","_component_RangeInput","_hoisted_48","_hoisted_49","_hoisted_51","_hoisted_52","_hoisted_53","_component_ShadowControl","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_61","_component_FontControl","post","postCode","_Teleport","to","_hoisted_62","faUser","faFilter","faPaintBrush","faBell","faDownload","faEyeSlash","faInfo","DataImportExportTab","MutesAndBlocksTab","NotificationsTab","FilteringTab","SecurityTab","GeneralTab","VersionTab","ThemeTab","isLoggedIn","open","settingsModalState","bodyLock","targetTab","settingsModalTargetTab","tabIndex","findIndex","elm","setTab","_component_GeneralTab","_component_ProfileTab","_component_SecurityTab","_component_FilteringTab","_component_ThemeTab","_component_NotificationsTab","_component_DataImportExportTab","fullHeight","_component_MutesAndBlocksTab","_component_VersionTab"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/1325.d1e5fcff4166acac7f06.js b/priv/static/static/js/1325.d1e5fcff4166acac7f06.js
deleted file mode 100644
index e3b9a8656..000000000
--- a/priv/static/static/js/1325.d1e5fcff4166acac7f06.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[1325],{25771:(e,t,r)=>{"use strict";r.d(t,{M:()=>i,i:()=>a});var n=r(57458),o=r.n(n),i=function(e){var t=e.filename,r=void 0===t?"data":t,n=e.getExportedObject;return{exportData:function(){var e=o().encode(JSON.stringify(n(),null,2)),t=document.createElement("a");t.setAttribute("download","".concat(r,".json")),t.setAttribute("href","data:application/json;base64,"+window.btoa(e)),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}}},a=function(e){var t=e.onImport,r=e.onImportFailure,n=e.validator,o=void 0===n?function(){return!0}:n;return{importData:function(){var e=document.createElement("input");e.setAttribute("type","file"),e.setAttribute("accept",".json"),e.addEventListener("change",(function(e){if(e.target.files[0]){var n=new FileReader;n.onload=function(e){var n=e.target;try{var i=JSON.parse(n.result),a=o(i);!0===a?t(i):r({validationResult:a})}catch(e){r({error:e})}},n.readAsText(e.target.files[0])}})),document.body.appendChild(e),e.click(),document.body.removeChild(e)}}}},57458:(e,t)=>{!function(e){var t,r,n,o=String.fromCharCode;function i(e){for(var t,r,n=[],o=0,i=e.length;o<i;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<i?56320==(64512&(r=e.charCodeAt(o++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),o--):n.push(t);return n}function a(e){if(e>=55296&&e<=57343)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function s(e,t){return o(e>>t&63|128)}function c(e){if(0==(4294967168&e))return o(e);var t="";return 0==(4294965248&e)?t=o(e>>6&31|192):0==(4294901760&e)?(a(e),t=o(e>>12&15|224),t+=s(e,6)):0==(4292870144&e)&&(t=o(e>>18&7|240),t+=s(e,12),t+=s(e,6)),t+o(63&e|128)}function l(){if(n>=r)throw Error("Invalid byte index");var e=255&t[n];if(n++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function u(){var e,o;if(n>r)throw Error("Invalid byte index");if(n==r)return!1;if(e=255&t[n],n++,0==(128&e))return e;if(192==(224&e)){if((o=(31&e)<<6|l())>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&e)){if((o=(15&e)<<12|l()<<6|l())>=2048)return a(o),o;throw Error("Invalid continuation byte")}if(240==(248&e)&&(o=(7&e)<<18|l()<<12|l()<<6|l())>=65536&&o<=1114111)return o;throw Error("Invalid UTF-8 detected")}e.version="3.0.0",e.encode=function(e){for(var t=i(e),r=t.length,n=-1,o="";++n<r;)o+=c(t[n]);return o},e.decode=function(e){t=i(e),r=t.length,n=0;for(var a,s=[];!1!==(a=u());)s.push(a);return function(e){for(var t,r=e.length,n=-1,i="";++n<r;)(t=e[n])>65535&&(i+=o((t-=65536)>>>10&1023|55296),t=56320|1023&t),i+=o(t);return i}(s)}}(t)},51325:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>L});var n=r(66252),o=r(3577),i=r(49963),a={class:"settings-modal-panel panel"},s={class:"panel-heading"},c={class:"title"},l=["title"],u=["title"],d={class:"panel-body"},p={class:"panel-footer settings-footer"},f=["title"],m={class:"dropdown-menu"},g=["onClick"],v=["onClick"],h=["onClick"],b=(0,n._)("span",{id:"unscrolled-content",class:"extra-content"},null,-1),_=r(4942),w=r(29439),y=r(50361),k=r.n(y),O=r(58312),x=r(96786),j={class:"async-component-error"};const C={emits:["resetAsyncComponent"],methods:{retry:function(){this.$emit("resetAsyncComponent")}}};var S=r(83744);const $=(0,S.Z)(C,[["render",function(e,t,r,i,a,s){return(0,n.wg)(),(0,n.iD)("div",j,[(0,n._)("div",null,[(0,n._)("h4",null,(0,o.zw)(e.$t("general.generic_error")),1),(0,n._)("p",null,(0,o.zw)(e.$t("general.error_retry")),1),(0,n._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return s.retry&&s.retry.apply(s,arguments)})},(0,o.zw)(e.$t("general.retry")),1)])])}]]);var M=r(2262);function E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var P=r(49874),I=r(40151),A=r(9382),D=r(25771),z=r(84131),N=r(5737);function W(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function T(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?W(Object(r),!0).forEach((function(t){(0,_.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):W(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}A.vI.add(z.NBC,N.IQi,z.Y9i,z.kwI,z.ptq);const Z={data:function(){var e=this;return{dataImporter:(0,D.i)({validator:this.importValidator,onImport:this.onImport,onImportFailure:this.onImportFailure}),dataThemeExporter:(0,D.M)({filename:"pleromafe_settings.full",getExportedObject:function(){return e.generateExport(!0)}}),dataExporter:(0,D.M)({filename:"pleromafe_settings",getExportedObject:function(){return e.generateExport()}})}},components:{Modal:O.Z,Popover:P.default,Checkbox:I.Z,SettingsModalContent:(F=function(){return Promise.all([r.e(2677),r.e(1264)]).then(r.bind(r,71264))},U={loadingComponent:x.Z,errorComponent:$,delay:0},K=function(){return function(){return(0,n.RC)(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?E(Object(r),!0).forEach((function(t){(0,_.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({loader:F},U))}},R=(0,M.Um)({c:K()}),{render:function(){return(0,n.h)(R.c(),{onResetAsyncComponent:function(){R.c=K()}})}})},methods:{closeModal:function(){this.$store.dispatch("closeSettingsModal")},peekModal:function(){this.$store.dispatch("togglePeekSettingsModal")},importValidator:function(e){if(!Array.isArray(e._pleroma_settings_version))return{messageKey:"settings.file_import_export.invalid_file"};var t=(0,w.Z)(e._pleroma_settings_version,2),r=t[0],n=t[1];return r>1?{messageKey:"settings.file_export_import.errors.file_too_new",messageArgs:{fileMajor:r,feMajor:1}}:r<1?{messageKey:"settings.file_export_import.errors.file_too_old",messageArgs:{fileMajor:r,feMajor:1}}:(n>0&&this.$store.dispatch("pushGlobalNotice",{level:"warning",messageKey:"settings.file_export_import.errors.file_slightly_new"}),!0)},onImportFailure:function(e){e.error?this.$store.dispatch("pushGlobalNotice",{messageKey:"settings.invalid_settings_imported",level:"error"}):this.$store.dispatch("pushGlobalNotice",T(T({},e.validationResult),{},{level:"error"}))},onImport:function(e){e&&this.$store.dispatch("loadSettings",e)},restore:function(){this.dataImporter.importData()},backup:function(){this.dataExporter.exportData()},backupWithTheme:function(){this.dataThemeExporter.exportData()},generateExport:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.$store.state.config,r=t;if(!e){var n=new Set(["customTheme","customThemeSource","colors"]);r=Object.fromEntries(Object.entries(r).filter((function(e){var t=(0,w.Z)(e,1)[0];return!n.has(t)})))}var o=k()(r);return o._pleroma_settings_version=[1,0],o}},computed:{currentSaveStateNotice:function(){return this.$store.state.interface.settings.currentSaveStateNotice},modalActivated:function(){return"hidden"!==this.$store.state.interface.settingsModalState},modalOpenedOnce:function(){return this.$store.state.interface.settingsModalLoaded},modalPeeked:function(){return"minimized"===this.$store.state.interface.settingsModalState},expertLevel:{get:function(){return this.$store.state.config.expertLevel>0},set:function(e){console.log(e),this.$store.dispatch("setOption",{name:"expertLevel",value:e?1:0})}}}},L=(0,S.Z)(Z,[["render",function(e,t,r,_,w,y){var k=(0,n.up)("FAIcon"),O=(0,n.up)("SettingsModalContent"),x=(0,n.up)("Popover"),j=(0,n.up)("Checkbox"),C=(0,n.up)("Modal");return(0,n.wg)(),(0,n.j4)(C,{"is-open":e.modalActivated,class:(0,o.C_)(["settings-modal",{peek:e.modalPeeked}]),"no-background":e.modalPeeked},{default:(0,n.w5)((function(){return[(0,n._)("div",a,[(0,n._)("div",s,[(0,n._)("span",c,(0,o.zw)(e.$t("settings.settings")),1),(0,n.Wm)(i.uT,{name:"fade"},{default:(0,n.w5)((function(){return[e.currentSaveStateNotice?((0,n.wg)(),(0,n.iD)("div",{key:0,class:(0,o.C_)(["alert",{transparent:!e.currentSaveStateNotice.error,error:e.currentSaveStateNotice.error}]),onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["prevent"]))},(0,o.zw)(e.currentSaveStateNotice.error?e.$t("settings.saving_err"):e.$t("settings.saving_ok")),3)):(0,n.kq)("",!0)]})),_:1}),(0,n._)("button",{class:"btn button-default",title:e.$t("general.peek"),onClick:t[1]||(t[1]=function(){return e.peekModal&&e.peekModal.apply(e,arguments)})},[(0,n.Wm)(k,{icon:["far","window-minimize"],"fixed-width":""})],8,l),(0,n._)("button",{class:"btn button-default",title:e.$t("general.close"),onClick:t[2]||(t[2]=function(){return e.closeModal&&e.closeModal.apply(e,arguments)})},[(0,n.Wm)(k,{icon:"times","fixed-width":""})],8,u)]),(0,n._)("div",d,[e.modalOpenedOnce?((0,n.wg)(),(0,n.j4)(O,{key:0})):(0,n.kq)("",!0)]),(0,n._)("div",p,[(0,n.Wm)(x,{class:"export",trigger:"click",placement:"top",offset:{y:5,x:5},"bound-to":{x:"container"},"remove-padding":""},{trigger:(0,n.w5)((function(){return[(0,n._)("button",{class:"btn button-default",title:e.$t("general.close")},[(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.backup_restore")),1),(0,n.Uk)(" "+(0,o.zw)(" ")+" "),(0,n.Wm)(k,{icon:"chevron-down"})],8,f)]})),content:(0,n.w5)((function(r){var a=r.close;return[(0,n._)("div",m,[(0,n._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[3]||(t[3]=(0,i.iM)((function(){return e.backup&&e.backup.apply(e,arguments)}),["prevent"])),a]},[(0,n.Wm)(k,{icon:"file-download","fixed-width":""}),(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.backup_settings")),1)],8,g),(0,n._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[4]||(t[4]=(0,i.iM)((function(){return e.backupWithTheme&&e.backupWithTheme.apply(e,arguments)}),["prevent"])),a]},[(0,n.Wm)(k,{icon:"file-download","fixed-width":""}),(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.backup_settings_theme")),1)],8,v),(0,n._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[5]||(t[5]=(0,i.iM)((function(){return e.restore&&e.restore.apply(e,arguments)}),["prevent"])),a]},[(0,n.Wm)(k,{icon:"file-upload","fixed-width":""}),(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.restore_settings")),1)],8,h)])]})),_:1}),(0,n.Wm)(j,{"model-value":!!e.expertLevel,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.expertLevel=Number(t)})},{default:(0,n.w5)((function(){return[(0,n.Uk)((0,o.zw)(e.$t("settings.expert_mode")),1)]})),_:1},8,["model-value"]),b])])]})),_:1},8,["is-open","class","no-background"])}]]);var F,U,K,R}}]);
-//# sourceMappingURL=1325.d1e5fcff4166acac7f06.js.map \ No newline at end of file
diff --git a/priv/static/static/js/159.3a9274574f1e33801c4a.js b/priv/static/static/js/159.3a9274574f1e33801c4a.js
new file mode 100644
index 000000000..dfbc0f60c
--- /dev/null
+++ b/priv/static/static/js/159.3a9274574f1e33801c4a.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[159],{30159:(t,e,n)=>{n.r(e),n.d(e,{default:()=>p});var i=n(66252),a=n(49963),c={class:"sticker-picker"},r=["image-tooltip","image"],o=["onClick"],s=["src"],l=n(7257);const u={components:{TabSwitcher:n(79354).Z},data:function(){return{meta:{stickers:[]},path:""}},computed:{pack:function(){return this.$store.state.instance.stickers||[]}},methods:{clear:function(){this.meta={stickers:[]}},pick:function(t,e){var n=this,i=this.$store;fetch(t).then((function(t){t.blob().then((function(t){var a=new File([t],e,{mimetype:"image/png"}),c=new FormData;c.append("file",a),l.Z.uploadMedia({store:i,formData:c}).then((function(t){n.$emit("uploaded",t),n.clear()}),(function(t){console.warn("Can't attach sticker"),console.warn(t),n.$emit("upload-failed","default")}))}))}))}}},p=(0,n(83744).Z)(u,[["render",function(t,e,n,l,u,p){var f=(0,i.up)("tab-switcher");return(0,i.wg)(),(0,i.iD)("div",c,[(0,i.Wm)(f,{class:"tab-switcher","render-only-focused":!0,"scrollable-tabs":""},{default:(0,i.w5)((function(){return[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(t.pack,(function(e){return(0,i.wg)(),(0,i.iD)("div",{key:e.path,"image-tooltip":e.meta.title,image:e.path+e.meta.tabIcon,class:"sticker-picker-content"},[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.meta.stickers,(function(n){return(0,i.wg)(),(0,i.iD)("div",{key:n,class:"sticker",onClick:(0,a.iM)((function(i){return t.pick(e.path+n,e.meta.title)}),["stop","prevent"])},[(0,i._)("img",{src:e.path+n},null,8,s)],8,o)})),128))],8,r)})),128))]})),_:1})])}]])}}]);
+//# sourceMappingURL=159.3a9274574f1e33801c4a.js.map \ No newline at end of file
diff --git a/priv/static/static/js/159.3a9274574f1e33801c4a.js.map b/priv/static/static/js/159.3a9274574f1e33801c4a.js.map
new file mode 100644
index 000000000..78285051b
--- /dev/null
+++ b/priv/static/static/js/159.3a9274574f1e33801c4a.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/159.3a9274574f1e33801c4a.js","mappings":"mKAEIA,MAAM,kB,8DCiDV,QA/CsB,CACpBC,WAAY,CACVC,Y,SAAAA,GAEFC,KAAI,WACF,MAAO,CACLC,KAAM,CACJC,SAAU,IAEZC,KAAM,GAEV,EACAC,SAAU,CACRC,KAAI,WACF,OAAOC,KAAKC,OAAOC,MAAMC,SAASP,UAAY,EAChD,GAEFQ,QAAS,CACPC,MAAK,WACHL,KAAKL,KAAO,CACVC,SAAU,GAEd,EACAU,KAAI,SAAEC,EAASC,GAAM,WACbC,EAAQT,KAAKC,OAEnBS,MAAMH,GACHI,MAAK,SAACC,GACLA,EAAIC,OAAOF,MAAK,SAACE,GACf,IAAMC,EAAO,IAAIC,KAAK,CAACF,GAAOL,EAAM,CAAEQ,SAAU,cAC1CC,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQL,GACxBM,EAAAA,EAAAA,YAAgC,CAAEX,MAAAA,EAAOQ,SAAAA,IACtCN,MAAK,SAACU,GACL,EAAKC,MAAM,WAAYD,GACvB,EAAKhB,OACP,IAAG,SAACkB,GACFC,QAAQC,KAAK,wBACbD,QAAQC,KAAKF,GACb,EAAKD,MAAM,gBAAiB,UAC9B,GACJ,GACF,GACJ,ICtCJ,GAFiC,E,SAAA,GAAgB,EAAQ,CAAC,CAAC,S,uEFNzDI,EAAAA,EAAAA,IA2BM,MA3BNC,EA2BM,EAxBJC,EAAAA,EAAAA,IAuBeC,EAAAA,CAtBbtC,MAAM,eACL,uBAAqB,EACtB,sB,mBAGE,iBAA2B,gBAD7BmC,EAAAA,EAAAA,IAiBMI,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IAhBkBC,EAAAA,MAAI,SAAnBC,G,kBADTN,EAAAA,EAAAA,IAiBM,OAfHO,IAAKD,EAAYnC,KACjB,gBAAemC,EAAYrC,KAAKuC,MAChCC,MAAOH,EAAYnC,KAAOmC,EAAYrC,KAAKyC,QAC5C7C,MAAM,0B,gBAENmC,EAAAA,EAAAA,IASMI,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IARcE,EAAYrC,KAAKC,UAAQ,SAApCW,G,kBADTmB,EAAAA,EAAAA,IASM,OAPHO,IAAK1B,EACNhB,MAAM,UACL8C,SAAK,4BAAeN,EAAAA,KAAKC,EAAYnC,KAAOU,EAASyB,EAAYrC,KAAKuC,MAAK,wB,EAE5EI,EAAAA,EAAAA,GAEC,OADEC,IAAKP,EAAYnC,KAAOU,G","sources":["webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue","webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.js","webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue?a437"],"sourcesContent":["<template>\n <div\n class=\"sticker-picker\"\n >\n <tab-switcher\n class=\"tab-switcher\"\n :render-only-focused=\"true\"\n scrollable-tabs\n >\n <div\n v-for=\"stickerpack in pack\"\n :key=\"stickerpack.path\"\n :image-tooltip=\"stickerpack.meta.title\"\n :image=\"stickerpack.path + stickerpack.meta.tabIcon\"\n class=\"sticker-picker-content\"\n >\n <div\n v-for=\"sticker in stickerpack.meta.stickers\"\n :key=\"sticker\"\n class=\"sticker\"\n @click.stop.prevent=\"pick(stickerpack.path + sticker, stickerpack.meta.title)\"\n >\n <img\n :src=\"stickerpack.path + sticker\"\n >\n </div>\n </div>\n </tab-switcher>\n </div>\n</template>\n\n<script src=\"./sticker_picker.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.sticker-picker {\n width: 100%;\n\n .contents {\n min-height: 250px;\n\n .sticker-picker-content {\n display: flex;\n flex-wrap: wrap;\n padding: 0 4px;\n\n .sticker {\n display: flex;\n flex: 1 1 auto;\n margin: 4px;\n width: 56px;\n height: 56px;\n\n img {\n height: 100%;\n\n &:hover {\n filter: drop-shadow(0 0 5px var(--accent, $fallback--link));\n }\n }\n }\n }\n }\n}\n\n</style>\n","/* eslint-env browser */\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport TabSwitcher from '../tab_switcher/tab_switcher.jsx'\n\nconst StickerPicker = {\n components: {\n TabSwitcher\n },\n data () {\n return {\n meta: {\n stickers: []\n },\n path: ''\n }\n },\n computed: {\n pack () {\n return this.$store.state.instance.stickers || []\n }\n },\n methods: {\n clear () {\n this.meta = {\n stickers: []\n }\n },\n pick (sticker, name) {\n const store = this.$store\n // TODO remove this workaround by finding a way to bypass reuploads\n fetch(sticker)\n .then((res) => {\n res.blob().then((blob) => {\n const file = new File([blob], name, { mimetype: 'image/png' })\n const formData = new FormData()\n formData.append('file', file)\n statusPosterService.uploadMedia({ store, formData })\n .then((fileData) => {\n this.$emit('uploaded', fileData)\n this.clear()\n }, (error) => {\n console.warn(\"Can't attach sticker\")\n console.warn(error)\n this.$emit('upload-failed', 'default')\n })\n })\n })\n }\n }\n}\n\nexport default StickerPicker\n","import { render } from \"./sticker_picker.vue?vue&type=template&id=9bba01dc\"\nimport script from \"./sticker_picker.js?vue&type=script&lang=js\"\nexport * from \"./sticker_picker.js?vue&type=script&lang=js\"\n\nimport \"./sticker_picker.vue?vue&type=style&index=0&id=9bba01dc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","components","TabSwitcher","data","meta","stickers","path","computed","pack","this","$store","state","instance","methods","clear","pick","sticker","name","store","fetch","then","res","blob","file","File","mimetype","formData","FormData","append","statusPosterService","fileData","$emit","error","console","warn","_createElementBlock","_hoisted_1","_createVNode","_component_tab_switcher","_Fragment","_ctx","stickerpack","key","title","image","tabIcon","onClick","_createElementVNode","src"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/2677.45ff400a54f2f4c858f2.js b/priv/static/static/js/2677.45ff400a54f2f4c858f2.js
deleted file mode 100644
index e4434874c..000000000
--- a/priv/static/static/js/2677.45ff400a54f2f4c858f2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! For license information please see 2677.45ff400a54f2f4c858f2.js.LICENSE.txt */
-(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[2677],{99990:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var n=i(66252),r=i(92592);const a="ready";var o=(0,n.aZ)({name:"VueQrcode",props:{value:{type:String,default:void 0},options:{type:Object,default:void 0},tag:{type:String,default:"canvas"}},emits:[a],watch:{$props:{deep:!0,immediate:!0,handler(){this.$el&&this.generate()}}},mounted(){this.generate()},methods:{generate(){const t=this.options||{},e=String(this.value),i=()=>{this.$emit(a,this.$el)};switch(this.tag){case"canvas":(0,r.rT)(this.$el,e,t,(t=>{if(t)throw t;i()}));break;case"img":(0,r.hz)(e,t,((t,e)=>{if(t)throw t;this.$el.src=e,this.$el.onload=i}));break;case"svg":(0,r.toString)(e,t,((t,e)=>{if(t)throw t;const n=document.createElement("div");n.innerHTML=e;const r=n.querySelector("svg");if(r){const{attributes:t,childNodes:e}=r;Object.keys(t).forEach((e=>{const i=t[Number(e)];this.$el.setAttribute(i.name,i.value)})),Object.keys(e).forEach((t=>{const i=e[Number(t)];this.$el.appendChild(i.cloneNode(!0))})),i()}}))}}},render(){return(0,n.h)(this.tag,this.$slots.default)}})},33129:function(t){t.exports=function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function e(e){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?t(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t){return function(t){if(Array.isArray(t))return s(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return s(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?s(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var h="undefined"!=typeof window&&void 0!==window.document,c=h?window:{},l=!(!h||!c.document.documentElement)&&"ontouchstart"in c.document.documentElement,d=!!h&&"PointerEvent"in c,u="cropper",p="all",g="crop",f="move",m="zoom",v="e",w="w",y="s",b="n",x="ne",M="nw",C="se",E="sw",B="".concat(u,"-crop"),T="".concat(u,"-disabled"),D="".concat(u,"-hidden"),A="".concat(u,"-hide"),N="".concat(u,"-invisible"),k="".concat(u,"-modal"),R="".concat(u,"-move"),I="".concat(u,"Action"),L="".concat(u,"Preview"),P="crop",S="move",O="none",H="crop",z="cropend",Y="cropmove",U="cropstart",W="dblclick",j=d?"pointerdown":l?"touchstart":"mousedown",X=d?"pointermove":l?"touchmove":"mousemove",F=d?"pointerup pointercancel":l?"touchend touchcancel":"mouseup",K="ready",q="resize",$="wheel",_="zoom",J="image/jpeg",Q=/^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/,V=/^data:/,Z=/^data:image\/jpeg;base64,/,G=/^img|canvas$/i,tt={viewMode:0,dragMode:P,initialAspectRatio:NaN,aspectRatio:NaN,data:null,preview:"",responsive:!0,restore:!0,checkCrossOrigin:!0,checkOrientation:!0,modal:!0,guides:!0,center:!0,highlight:!0,background:!0,autoCrop:!0,autoCropArea:.8,movable:!0,rotatable:!0,scalable:!0,zoomable:!0,zoomOnTouch:!0,zoomOnWheel:!0,wheelZoomRatio:.1,cropBoxMovable:!0,cropBoxResizable:!0,toggleDragModeOnDblclick:!0,minCanvasWidth:0,minCanvasHeight:0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:200,minContainerHeight:100,ready:null,cropstart:null,cropmove:null,cropend:null,crop:null,zoom:null},et=Number.isNaN||c.isNaN;function it(t){return"number"==typeof t&&!et(t)}var nt=function(t){return t>0&&t<1/0};function rt(t){return void 0===t}function at(t){return"object"===i(t)&&null!==t}var ot=Object.prototype.hasOwnProperty;function st(t){if(!at(t))return!1;try{var e=t.constructor,i=e.prototype;return e&&i&&ot.call(i,"isPrototypeOf")}catch(t){return!1}}function ht(t){return"function"==typeof t}var ct=Array.prototype.slice;function lt(t){return Array.from?Array.from(t):ct.call(t)}function dt(t,e){return t&&ht(e)&&(Array.isArray(t)||it(t.length)?lt(t).forEach((function(i,n){e.call(t,i,n,t)})):at(t)&&Object.keys(t).forEach((function(i){e.call(t,t[i],i,t)}))),t}var ut=Object.assign||function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];return at(t)&&i.length>0&&i.forEach((function(e){at(e)&&Object.keys(e).forEach((function(i){t[i]=e[i]}))})),t},pt=/\.\d*(?:0|9){12}\d*$/;function gt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e11;return pt.test(t)?Math.round(t*e)/e:t}var ft=/^width|height|left|top|marginLeft|marginTop$/;function mt(t,e){var i=t.style;dt(e,(function(t,e){ft.test(e)&&it(t)&&(t="".concat(t,"px")),i[e]=t}))}function vt(t,e){if(e)if(it(t.length))dt(t,(function(t){vt(t,e)}));else if(t.classList)t.classList.add(e);else{var i=t.className.trim();i?i.indexOf(e)<0&&(t.className="".concat(i," ").concat(e)):t.className=e}}function wt(t,e){e&&(it(t.length)?dt(t,(function(t){wt(t,e)})):t.classList?t.classList.remove(e):t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,"")))}function yt(t,e,i){e&&(it(t.length)?dt(t,(function(t){yt(t,e,i)})):i?vt(t,e):wt(t,e))}var bt=/([a-z\d])([A-Z])/g;function xt(t){return t.replace(bt,"$1-$2").toLowerCase()}function Mt(t,e){return at(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(xt(e)))}function Ct(t,e,i){at(i)?t[e]=i:t.dataset?t.dataset[e]=i:t.setAttribute("data-".concat(xt(e)),i)}var Et=/\s\s*/,Bt=function(){var t=!1;if(h){var e=!1,i=function(){},n=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(t){e=t}});c.addEventListener("test",i,n),c.removeEventListener("test",i,n)}return t}();function Tt(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=i;e.trim().split(Et).forEach((function(e){if(!Bt){var a=t.listeners;a&&a[e]&&a[e][i]&&(r=a[e][i],delete a[e][i],0===Object.keys(a[e]).length&&delete a[e],0===Object.keys(a).length&&delete t.listeners)}t.removeEventListener(e,r,n)}))}function Dt(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=i;e.trim().split(Et).forEach((function(e){if(n.once&&!Bt){var a=t.listeners,o=void 0===a?{}:a;r=function(){delete o[e][i],t.removeEventListener(e,r,n);for(var a=arguments.length,s=new Array(a),h=0;h<a;h++)s[h]=arguments[h];i.apply(t,s)},o[e]||(o[e]={}),o[e][i]&&t.removeEventListener(e,o[e][i],n),o[e][i]=r,t.listeners=o}t.addEventListener(e,r,n)}))}function At(t,e,i){var n;return ht(Event)&&ht(CustomEvent)?n=new CustomEvent(e,{detail:i,bubbles:!0,cancelable:!0}):(n=document.createEvent("CustomEvent")).initCustomEvent(e,!0,!0,i),t.dispatchEvent(n)}function Nt(t){var e=t.getBoundingClientRect();return{left:e.left+(window.pageXOffset-document.documentElement.clientLeft),top:e.top+(window.pageYOffset-document.documentElement.clientTop)}}var kt=c.location,Rt=/^(\w+:)\/\/([^:/?#]*):?(\d*)/i;function It(t){var e=t.match(Rt);return null!==e&&(e[1]!==kt.protocol||e[2]!==kt.hostname||e[3]!==kt.port)}function Lt(t){var e="timestamp=".concat((new Date).getTime());return t+(-1===t.indexOf("?")?"?":"&")+e}function Pt(t){var e=t.rotate,i=t.scaleX,n=t.scaleY,r=t.translateX,a=t.translateY,o=[];it(r)&&0!==r&&o.push("translateX(".concat(r,"px)")),it(a)&&0!==a&&o.push("translateY(".concat(a,"px)")),it(e)&&0!==e&&o.push("rotate(".concat(e,"deg)")),it(i)&&1!==i&&o.push("scaleX(".concat(i,")")),it(n)&&1!==n&&o.push("scaleY(".concat(n,")"));var s=o.length?o.join(" "):"none";return{WebkitTransform:s,msTransform:s,transform:s}}function St(t,i){var n=t.pageX,r=t.pageY,a={endX:n,endY:r};return i?a:e({startX:n,startY:r},a)}function Ot(t){var e=t.aspectRatio,i=t.height,n=t.width,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"contain",a=nt(n),o=nt(i);if(a&&o){var s=i*e;"contain"===r&&s>n||"cover"===r&&s<n?i=n/e:n=i*e}else a?i=n/e:o&&(n=i*e);return{width:n,height:i}}function Ht(t,e,i,n){var r=e.aspectRatio,a=e.naturalWidth,s=e.naturalHeight,h=e.rotate,c=void 0===h?0:h,l=e.scaleX,d=void 0===l?1:l,u=e.scaleY,p=void 0===u?1:u,g=i.aspectRatio,f=i.naturalWidth,m=i.naturalHeight,v=n.fillColor,w=void 0===v?"transparent":v,y=n.imageSmoothingEnabled,b=void 0===y||y,x=n.imageSmoothingQuality,M=void 0===x?"low":x,C=n.maxWidth,E=void 0===C?1/0:C,B=n.maxHeight,T=void 0===B?1/0:B,D=n.minWidth,A=void 0===D?0:D,N=n.minHeight,k=void 0===N?0:N,R=document.createElement("canvas"),I=R.getContext("2d"),L=Ot({aspectRatio:g,width:E,height:T}),P=Ot({aspectRatio:g,width:A,height:k},"cover"),S=Math.min(L.width,Math.max(P.width,f)),O=Math.min(L.height,Math.max(P.height,m)),H=Ot({aspectRatio:r,width:E,height:T}),z=Ot({aspectRatio:r,width:A,height:k},"cover"),Y=Math.min(H.width,Math.max(z.width,a)),U=Math.min(H.height,Math.max(z.height,s)),W=[-Y/2,-U/2,Y,U];return R.width=gt(S),R.height=gt(O),I.fillStyle=w,I.fillRect(0,0,S,O),I.save(),I.translate(S/2,O/2),I.rotate(c*Math.PI/180),I.scale(d,p),I.imageSmoothingEnabled=b,I.imageSmoothingQuality=M,I.drawImage.apply(I,[t].concat(o(W.map((function(t){return Math.floor(gt(t))}))))),I.restore(),R}var zt=String.fromCharCode;var Yt=/^data:.*,/;function Ut(t){var e,i=new DataView(t);try{var n,r,a;if(255===i.getUint8(0)&&216===i.getUint8(1))for(var o=i.byteLength,s=2;s+1<o;){if(255===i.getUint8(s)&&225===i.getUint8(s+1)){r=s;break}s+=1}if(r){var h=r+10;if("Exif"===function(t,e,i){var n="";i+=e;for(var r=e;r<i;r+=1)n+=zt(t.getUint8(r));return n}(i,r+4,4)){var c=i.getUint16(h);if(((n=18761===c)||19789===c)&&42===i.getUint16(h+2,n)){var l=i.getUint32(h+4,n);l>=8&&(a=h+l)}}}if(a){var d,u,p=i.getUint16(a,n);for(u=0;u<p;u+=1)if(d=a+12*u+2,274===i.getUint16(d,n)){d+=8,e=i.getUint16(d,n),i.setUint16(d,1,n);break}}}catch(t){e=1}return e}var Wt={render:function(){this.initContainer(),this.initCanvas(),this.initCropBox(),this.renderCanvas(),this.cropped&&this.renderCropBox()},initContainer:function(){var t=this.element,e=this.options,i=this.container,n=this.cropper,r=Number(e.minContainerWidth),a=Number(e.minContainerHeight);vt(n,D),wt(t,D);var o={width:Math.max(i.offsetWidth,r>=0?r:200),height:Math.max(i.offsetHeight,a>=0?a:100)};this.containerData=o,mt(n,{width:o.width,height:o.height}),vt(t,D),wt(n,D)},initCanvas:function(){var t=this.containerData,e=this.imageData,i=this.options.viewMode,n=Math.abs(e.rotate)%180==90,r=n?e.naturalHeight:e.naturalWidth,a=n?e.naturalWidth:e.naturalHeight,o=r/a,s=t.width,h=t.height;t.height*o>t.width?3===i?s=t.height*o:h=t.width/o:3===i?h=t.width/o:s=t.height*o;var c={aspectRatio:o,naturalWidth:r,naturalHeight:a,width:s,height:h};this.canvasData=c,this.limited=1===i||2===i,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=ut({},c)},limitCanvas:function(t,e){var i=this.options,n=this.containerData,r=this.canvasData,a=this.cropBoxData,o=i.viewMode,s=r.aspectRatio,h=this.cropped&&a;if(t){var c=Number(i.minCanvasWidth)||0,l=Number(i.minCanvasHeight)||0;o>1?(c=Math.max(c,n.width),l=Math.max(l,n.height),3===o&&(l*s>c?c=l*s:l=c/s)):o>0&&(c?c=Math.max(c,h?a.width:0):l?l=Math.max(l,h?a.height:0):h&&(c=a.width,(l=a.height)*s>c?c=l*s:l=c/s));var d=Ot({aspectRatio:s,width:c,height:l});c=d.width,l=d.height,r.minWidth=c,r.minHeight=l,r.maxWidth=1/0,r.maxHeight=1/0}if(e)if(o>(h?0:1)){var u=n.width-r.width,p=n.height-r.height;r.minLeft=Math.min(0,u),r.minTop=Math.min(0,p),r.maxLeft=Math.max(0,u),r.maxTop=Math.max(0,p),h&&this.limited&&(r.minLeft=Math.min(a.left,a.left+(a.width-r.width)),r.minTop=Math.min(a.top,a.top+(a.height-r.height)),r.maxLeft=a.left,r.maxTop=a.top,2===o&&(r.width>=n.width&&(r.minLeft=Math.min(0,u),r.maxLeft=Math.max(0,u)),r.height>=n.height&&(r.minTop=Math.min(0,p),r.maxTop=Math.max(0,p))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=n.width,r.maxTop=n.height},renderCanvas:function(t,e){var i=this.canvasData,n=this.imageData;if(e){var r=function(t){var e=t.width,i=t.height,n=t.degree;if(90==(n=Math.abs(n)%180))return{width:i,height:e};var r=n%90*Math.PI/180,a=Math.sin(r),o=Math.cos(r),s=e*o+i*a,h=e*a+i*o;return n>90?{width:h,height:s}:{width:s,height:h}}({width:n.naturalWidth*Math.abs(n.scaleX||1),height:n.naturalHeight*Math.abs(n.scaleY||1),degree:n.rotate||0}),a=r.width,o=r.height,s=i.width*(a/i.naturalWidth),h=i.height*(o/i.naturalHeight);i.left-=(s-i.width)/2,i.top-=(h-i.height)/2,i.width=s,i.height=h,i.aspectRatio=a/o,i.naturalWidth=a,i.naturalHeight=o,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.width<i.minWidth)&&(i.left=i.oldLeft),(i.height>i.maxHeight||i.height<i.minHeight)&&(i.top=i.oldTop),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),this.limitCanvas(!1,!0),i.left=Math.min(Math.max(i.left,i.minLeft),i.maxLeft),i.top=Math.min(Math.max(i.top,i.minTop),i.maxTop),i.oldLeft=i.left,i.oldTop=i.top,mt(this.canvas,ut({width:i.width,height:i.height},Pt({translateX:i.left,translateY:i.top}))),this.renderImage(t),this.cropped&&this.limited&&this.limitCropBox(!0,!0)},renderImage:function(t){var e=this.canvasData,i=this.imageData,n=i.naturalWidth*(e.width/e.naturalWidth),r=i.naturalHeight*(e.height/e.naturalHeight);ut(i,{width:n,height:r,left:(e.width-n)/2,top:(e.height-r)/2}),mt(this.image,ut({width:i.width,height:i.height},Pt(ut({translateX:i.left,translateY:i.top},i)))),t&&this.output()},initCropBox:function(){var t=this.options,e=this.canvasData,i=t.aspectRatio||t.initialAspectRatio,n=Number(t.autoCropArea)||.8,r={width:e.width,height:e.height};i&&(e.height*i>e.width?r.height=r.width/i:r.width=r.height*i),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*n),r.height=Math.max(r.minHeight,r.height*n),r.left=e.left+(e.width-r.width)/2,r.top=e.top+(e.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=ut({},r)},limitCropBox:function(t,e){var i=this.options,n=this.containerData,r=this.canvasData,a=this.cropBoxData,o=this.limited,s=i.aspectRatio;if(t){var h=Number(i.minCropBoxWidth)||0,c=Number(i.minCropBoxHeight)||0,l=o?Math.min(n.width,r.width,r.width+r.left,n.width-r.left):n.width,d=o?Math.min(n.height,r.height,r.height+r.top,n.height-r.top):n.height;h=Math.min(h,n.width),c=Math.min(c,n.height),s&&(h&&c?c*s>h?c=h/s:h=c*s:h?c=h/s:c&&(h=c*s),d*s>l?d=l/s:l=d*s),a.minWidth=Math.min(h,l),a.minHeight=Math.min(c,d),a.maxWidth=l,a.maxHeight=d}e&&(o?(a.minLeft=Math.max(0,r.left),a.minTop=Math.max(0,r.top),a.maxLeft=Math.min(n.width,r.left+r.width)-a.width,a.maxTop=Math.min(n.height,r.top+r.height)-a.height):(a.minLeft=0,a.minTop=0,a.maxLeft=n.width-a.width,a.maxTop=n.height-a.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.width<i.minWidth)&&(i.left=i.oldLeft),(i.height>i.maxHeight||i.height<i.minHeight)&&(i.top=i.oldTop),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),this.limitCropBox(!1,!0),i.left=Math.min(Math.max(i.left,i.minLeft),i.maxLeft),i.top=Math.min(Math.max(i.top,i.minTop),i.maxTop),i.oldLeft=i.left,i.oldTop=i.top,t.movable&&t.cropBoxMovable&&Ct(this.face,I,i.width>=e.width&&i.height>=e.height?f:p),mt(this.cropBox,ut({width:i.width,height:i.height},Pt({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),At(this.element,H,this.getData())}},jt={initPreview:function(){var t=this.element,e=this.crossOrigin,i=this.options.preview,n=e?this.crossOriginUrl:this.url,r=t.alt||"The image to preview",a=document.createElement("img");if(e&&(a.crossOrigin=e),a.src=n,a.alt=r,this.viewBox.appendChild(a),this.viewBoxImage=a,i){var o=i;"string"==typeof i?o=t.ownerDocument.querySelectorAll(i):i.querySelector&&(o=[i]),this.previews=o,dt(o,(function(t){var i=document.createElement("img");Ct(t,L,{width:t.offsetWidth,height:t.offsetHeight,html:t.innerHTML}),e&&(i.crossOrigin=e),i.src=n,i.alt=r,i.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',t.innerHTML="",t.appendChild(i)}))}},resetPreview:function(){dt(this.previews,(function(t){var e=Mt(t,L);mt(t,{width:e.width,height:e.height}),t.innerHTML=e.html,function(t,e){if(at(t[e]))try{delete t[e]}catch(i){t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch(i){t.dataset[e]=void 0}else t.removeAttribute("data-".concat(xt(e)))}(t,L)}))},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,n=i.width,r=i.height,a=t.width,o=t.height,s=i.left-e.left-t.left,h=i.top-e.top-t.top;this.cropped&&!this.disabled&&(mt(this.viewBoxImage,ut({width:a,height:o},Pt(ut({translateX:-s,translateY:-h},t)))),dt(this.previews,(function(e){var i=Mt(e,L),c=i.width,l=i.height,d=c,u=l,p=1;n&&(u=r*(p=c/n)),r&&u>l&&(d=n*(p=l/r),u=l),mt(e,{width:d,height:u}),mt(e.getElementsByTagName("img")[0],ut({width:a*p,height:o*p},Pt(ut({translateX:-s*p,translateY:-h*p},t))))})))}},Xt={bind:function(){var t=this.element,e=this.options,i=this.cropper;ht(e.cropstart)&&Dt(t,U,e.cropstart),ht(e.cropmove)&&Dt(t,Y,e.cropmove),ht(e.cropend)&&Dt(t,z,e.cropend),ht(e.crop)&&Dt(t,H,e.crop),ht(e.zoom)&&Dt(t,_,e.zoom),Dt(i,j,this.onCropStart=this.cropStart.bind(this)),e.zoomable&&e.zoomOnWheel&&Dt(i,$,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&Dt(i,W,this.onDblclick=this.dblclick.bind(this)),Dt(t.ownerDocument,X,this.onCropMove=this.cropMove.bind(this)),Dt(t.ownerDocument,F,this.onCropEnd=this.cropEnd.bind(this)),e.responsive&&Dt(window,q,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;ht(e.cropstart)&&Tt(t,U,e.cropstart),ht(e.cropmove)&&Tt(t,Y,e.cropmove),ht(e.cropend)&&Tt(t,z,e.cropend),ht(e.crop)&&Tt(t,H,e.crop),ht(e.zoom)&&Tt(t,_,e.zoom),Tt(i,j,this.onCropStart),e.zoomable&&e.zoomOnWheel&&Tt(i,$,this.onWheel,{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&Tt(i,W,this.onDblclick),Tt(t.ownerDocument,X,this.onCropMove),Tt(t.ownerDocument,F,this.onCropEnd),e.responsive&&Tt(window,q,this.onResize)}},Ft={resize:function(){if(!this.disabled){var t,e,i=this.options,n=this.container,r=this.containerData,a=n.offsetWidth/r.width,o=n.offsetHeight/r.height,s=Math.abs(a-1)>Math.abs(o-1)?a:o;1!==s&&(i.restore&&(t=this.getCanvasData(),e=this.getCropBoxData()),this.render(),i.restore&&(this.setCanvasData(dt(t,(function(e,i){t[i]=e*s}))),this.setCropBoxData(dt(e,(function(t,i){e[i]=t*s})))))}},dblclick:function(){var t,e;this.disabled||this.options.dragMode===O||this.setDragMode((t=this.dragBox,e=B,(t.classList?t.classList.contains(e):t.className.indexOf(e)>-1)?S:P))},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,n=1;this.disabled||(t.preventDefault(),this.wheeling||(this.wheeling=!0,setTimeout((function(){e.wheeling=!1}),50),t.deltaY?n=t.deltaY>0?1:-1:t.wheelDelta?n=-t.wheelDelta/120:t.detail&&(n=t.detail>0?1:-1),this.zoom(-n*i,t)))},cropStart:function(t){var e=t.buttons,i=t.button;if(!(this.disabled||("mousedown"===t.type||"pointerdown"===t.type&&"mouse"===t.pointerType)&&(it(e)&&1!==e||it(i)&&0!==i||t.ctrlKey))){var n,r=this.options,a=this.pointers;t.changedTouches?dt(t.changedTouches,(function(t){a[t.identifier]=St(t)})):a[t.pointerId||0]=St(t),n=Object.keys(a).length>1&&r.zoomable&&r.zoomOnTouch?m:Mt(t.target,I),Q.test(n)&&!1!==At(this.element,U,{originalEvent:t,action:n})&&(t.preventDefault(),this.action=n,this.cropping=!1,n===g&&(this.cropping=!0,vt(this.dragBox,k)))}},cropMove:function(t){var e=this.action;if(!this.disabled&&e){var i=this.pointers;t.preventDefault(),!1!==At(this.element,Y,{originalEvent:t,action:e})&&(t.changedTouches?dt(t.changedTouches,(function(t){ut(i[t.identifier]||{},St(t,!0))})):ut(i[t.pointerId||0]||{},St(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?dt(t.changedTouches,(function(t){delete i[t.identifier]})):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,yt(this.dragBox,k,this.cropped&&this.options.modal)),At(this.element,z,{originalEvent:t,action:e}))}}},Kt={change:function(t){var i,n=this.options,r=this.canvasData,a=this.containerData,o=this.cropBoxData,s=this.pointers,h=this.action,c=n.aspectRatio,l=o.left,d=o.top,u=o.width,B=o.height,T=l+u,A=d+B,N=0,k=0,R=a.width,I=a.height,L=!0;!c&&t.shiftKey&&(c=u&&B?u/B:1),this.limited&&(N=o.minLeft,k=o.minTop,R=N+Math.min(a.width,r.width,r.left+r.width),I=k+Math.min(a.height,r.height,r.top+r.height));var P=s[Object.keys(s)[0]],S={x:P.endX-P.startX,y:P.endY-P.startY},O=function(t){switch(t){case v:T+S.x>R&&(S.x=R-T);break;case w:l+S.x<N&&(S.x=N-l);break;case b:d+S.y<k&&(S.y=k-d);break;case y:A+S.y>I&&(S.y=I-A)}};switch(h){case p:l+=S.x,d+=S.y;break;case v:if(S.x>=0&&(T>=R||c&&(d<=k||A>=I))){L=!1;break}O(v),(u+=S.x)<0&&(h=w,l-=u=-u),c&&(B=u/c,d+=(o.height-B)/2);break;case b:if(S.y<=0&&(d<=k||c&&(l<=N||T>=R))){L=!1;break}O(b),B-=S.y,d+=S.y,B<0&&(h=y,d-=B=-B),c&&(u=B*c,l+=(o.width-u)/2);break;case w:if(S.x<=0&&(l<=N||c&&(d<=k||A>=I))){L=!1;break}O(w),u-=S.x,l+=S.x,u<0&&(h=v,l-=u=-u),c&&(B=u/c,d+=(o.height-B)/2);break;case y:if(S.y>=0&&(A>=I||c&&(l<=N||T>=R))){L=!1;break}O(y),(B+=S.y)<0&&(h=b,d-=B=-B),c&&(u=B*c,l+=(o.width-u)/2);break;case x:if(c){if(S.y<=0&&(d<=k||T>=R)){L=!1;break}O(b),B-=S.y,d+=S.y,u=B*c}else O(b),O(v),S.x>=0?T<R?u+=S.x:S.y<=0&&d<=k&&(L=!1):u+=S.x,S.y<=0?d>k&&(B-=S.y,d+=S.y):(B-=S.y,d+=S.y);u<0&&B<0?(h=E,d-=B=-B,l-=u=-u):u<0?(h=M,l-=u=-u):B<0&&(h=C,d-=B=-B);break;case M:if(c){if(S.y<=0&&(d<=k||l<=N)){L=!1;break}O(b),B-=S.y,d+=S.y,u=B*c,l+=o.width-u}else O(b),O(w),S.x<=0?l>N?(u-=S.x,l+=S.x):S.y<=0&&d<=k&&(L=!1):(u-=S.x,l+=S.x),S.y<=0?d>k&&(B-=S.y,d+=S.y):(B-=S.y,d+=S.y);u<0&&B<0?(h=C,d-=B=-B,l-=u=-u):u<0?(h=x,l-=u=-u):B<0&&(h=E,d-=B=-B);break;case E:if(c){if(S.x<=0&&(l<=N||A>=I)){L=!1;break}O(w),u-=S.x,l+=S.x,B=u/c}else O(y),O(w),S.x<=0?l>N?(u-=S.x,l+=S.x):S.y>=0&&A>=I&&(L=!1):(u-=S.x,l+=S.x),S.y>=0?A<I&&(B+=S.y):B+=S.y;u<0&&B<0?(h=x,d-=B=-B,l-=u=-u):u<0?(h=C,l-=u=-u):B<0&&(h=M,d-=B=-B);break;case C:if(c){if(S.x>=0&&(T>=R||A>=I)){L=!1;break}O(v),B=(u+=S.x)/c}else O(y),O(v),S.x>=0?T<R?u+=S.x:S.y>=0&&A>=I&&(L=!1):u+=S.x,S.y>=0?A<I&&(B+=S.y):B+=S.y;u<0&&B<0?(h=M,d-=B=-B,l-=u=-u):u<0?(h=E,l-=u=-u):B<0&&(h=x,d-=B=-B);break;case f:this.move(S.x,S.y),L=!1;break;case m:this.zoom(function(t){var i=e({},t),n=0;return dt(t,(function(t,e){delete i[e],dt(i,(function(e){var i=Math.abs(t.startX-e.startX),r=Math.abs(t.startY-e.startY),a=Math.abs(t.endX-e.endX),o=Math.abs(t.endY-e.endY),s=Math.sqrt(i*i+r*r),h=(Math.sqrt(a*a+o*o)-s)/s;Math.abs(h)>Math.abs(n)&&(n=h)}))})),n}(s),t),L=!1;break;case g:if(!S.x||!S.y){L=!1;break}i=Nt(this.cropper),l=P.startX-i.left,d=P.startY-i.top,u=o.minWidth,B=o.minHeight,S.x>0?h=S.y>0?C:x:S.x<0&&(l-=u,h=S.y>0?E:M),S.y<0&&(d-=B),this.cropped||(wt(this.cropBox,D),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}L&&(o.width=u,o.height=B,o.left=l,o.top=d,this.action=h,this.renderCropBox()),dt(s,(function(t){t.startX=t.endX,t.startY=t.endY}))}},qt={crop:function(){return!this.ready||this.cropped||this.disabled||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&vt(this.dragBox,k),wt(this.cropBox,D),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ut({},this.initialImageData),this.canvasData=ut({},this.initialCanvasData),this.cropBoxData=ut({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ut(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),wt(this.dragBox,k),vt(this.cropBox,D)),this},replace:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,dt(this.previews,(function(e){e.getElementsByTagName("img")[0].src=t})))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,wt(this.cropper,T)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,vt(this.cropper,T)),this},destroy:function(){var t=this.element;return t.cropper?(t.cropper=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,n=i.left,r=i.top;return this.moveTo(rt(t)?t:n+Number(t),rt(e)?e:r+Number(e))},moveTo:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,n=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.movable&&(it(t)&&(i.left=t,n=!0),it(e)&&(i.top=e,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,e){var i=this.canvasData;return t=(t=Number(t))<0?1/(1-t):1+t,this.zoomTo(i.width*t/i.naturalWidth,null,e)},zoomTo:function(t,e,i){var n=this.options,r=this.canvasData,a=r.width,o=r.height,s=r.naturalWidth,h=r.naturalHeight;if((t=Number(t))>=0&&this.ready&&!this.disabled&&n.zoomable){var c=s*t,l=h*t;if(!1===At(this.element,_,{ratio:t,oldRatio:a/s,originalEvent:i}))return this;if(i){var d=this.pointers,u=Nt(this.cropper),p=d&&Object.keys(d).length?function(t){var e=0,i=0,n=0;return dt(t,(function(t){var r=t.startX,a=t.startY;e+=r,i+=a,n+=1})),{pageX:e/=n,pageY:i/=n}}(d):{pageX:i.pageX,pageY:i.pageY};r.left-=(c-a)*((p.pageX-u.left-r.left)/a),r.top-=(l-o)*((p.pageY-u.top-r.top)/o)}else st(e)&&it(e.x)&&it(e.y)?(r.left-=(c-a)*((e.x-r.left)/a),r.top-=(l-o)*((e.y-r.top)/o)):(r.left-=(c-a)/2,r.top-=(l-o)/2);r.width=c,r.height=l,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return it(t=Number(t))&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var e=this.imageData.scaleY;return this.scale(t,it(e)?e:1)},scaleY:function(t){var e=this.imageData.scaleX;return this.scale(it(e)?e:1,t)},scale:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.imageData,n=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.scalable&&(it(t)&&(i.scaleX=t,n=!0),it(e)&&(i.scaleY=e,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.options,n=this.imageData,r=this.canvasData,a=this.cropBoxData;if(this.ready&&this.cropped){t={x:a.left-r.left,y:a.top-r.top,width:a.width,height:a.height};var o=n.width/n.naturalWidth;if(dt(t,(function(e,i){t[i]=e/o})),e){var s=Math.round(t.y+t.height),h=Math.round(t.x+t.width);t.x=Math.round(t.x),t.y=Math.round(t.y),t.width=h-t.x,t.height=s-t.y}}else t={x:0,y:0,width:0,height:0};return i.rotatable&&(t.rotate=n.rotate||0),i.scalable&&(t.scaleX=n.scaleX||1,t.scaleY=n.scaleY||1),t},setData:function(t){var e=this.options,i=this.imageData,n=this.canvasData,r={};if(this.ready&&!this.disabled&&st(t)){var a=!1;e.rotatable&&it(t.rotate)&&t.rotate!==i.rotate&&(i.rotate=t.rotate,a=!0),e.scalable&&(it(t.scaleX)&&t.scaleX!==i.scaleX&&(i.scaleX=t.scaleX,a=!0),it(t.scaleY)&&t.scaleY!==i.scaleY&&(i.scaleY=t.scaleY,a=!0)),a&&this.renderCanvas(!0,!0);var o=i.width/i.naturalWidth;it(t.x)&&(r.left=t.x*o+n.left),it(t.y)&&(r.top=t.y*o+n.top),it(t.width)&&(r.width=t.width*o),it(t.height)&&(r.height=t.height*o),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?ut({},this.containerData):{}},getImageData:function(){return this.sized?ut({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&dt(["left","top","width","height","naturalWidth","naturalHeight"],(function(i){e[i]=t[i]})),e},setCanvasData:function(t){var e=this.canvasData,i=e.aspectRatio;return this.ready&&!this.disabled&&st(t)&&(it(t.left)&&(e.left=t.left),it(t.top)&&(e.top=t.top),it(t.width)?(e.width=t.width,e.height=t.width/i):it(t.height)&&(e.height=t.height,e.width=t.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var t,e=this.cropBoxData;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(t){var e,i,n=this.cropBoxData,r=this.options.aspectRatio;return this.ready&&this.cropped&&!this.disabled&&st(t)&&(it(t.left)&&(n.left=t.left),it(t.top)&&(n.top=t.top),it(t.width)&&t.width!==n.width&&(e=!0,n.width=t.width),it(t.height)&&t.height!==n.height&&(i=!0,n.height=t.height),r&&(e?n.height=n.width/r:i&&(n.width=n.height*r)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var e=this.canvasData,i=Ht(this.image,this.imageData,e,t);if(!this.cropped)return i;var n=this.getData(),r=n.x,a=n.y,s=n.width,h=n.height,c=i.width/Math.floor(e.naturalWidth);1!==c&&(r*=c,a*=c,s*=c,h*=c);var l=s/h,d=Ot({aspectRatio:l,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),u=Ot({aspectRatio:l,width:t.minWidth||0,height:t.minHeight||0},"cover"),p=Ot({aspectRatio:l,width:t.width||(1!==c?i.width:s),height:t.height||(1!==c?i.height:h)}),g=p.width,f=p.height;g=Math.min(d.width,Math.max(u.width,g)),f=Math.min(d.height,Math.max(u.height,f));var m=document.createElement("canvas"),v=m.getContext("2d");m.width=gt(g),m.height=gt(f),v.fillStyle=t.fillColor||"transparent",v.fillRect(0,0,g,f);var w=t.imageSmoothingEnabled,y=void 0===w||w,b=t.imageSmoothingQuality;v.imageSmoothingEnabled=y,b&&(v.imageSmoothingQuality=b);var x,M,C,E,B,T,D=i.width,A=i.height,N=r,k=a;N<=-s||N>D?(N=0,x=0,C=0,B=0):N<=0?(C=-N,N=0,B=x=Math.min(D,s+N)):N<=D&&(C=0,B=x=Math.min(s,D-N)),x<=0||k<=-h||k>A?(k=0,M=0,E=0,T=0):k<=0?(E=-k,k=0,T=M=Math.min(A,h+k)):k<=A&&(E=0,T=M=Math.min(h,A-k));var R=[N,k,x,M];if(B>0&&T>0){var I=g/s;R.push(C*I,E*I,B*I,T*I)}return v.drawImage.apply(v,[i].concat(o(R.map((function(t){return Math.floor(gt(t))}))))),m},setAspectRatio:function(t){var e=this.options;return this.disabled||rt(t)||(e.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var e=this.options,i=this.dragBox,n=this.face;if(this.ready&&!this.disabled){var r=t===P,a=e.movable&&t===S;t=r||a?t:O,e.dragMode=t,Ct(i,I,t),yt(i,B,r),yt(i,R,a),e.cropBoxMovable||(Ct(n,I,t),yt(n,B,r),yt(n,R,a))}return this}},$t=c.Cropper,_t=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n(this,t),!e||!G.test(e.tagName))throw new Error("The first argument is required and must be an <img> or <canvas> element.");this.element=e,this.options=ut({},tt,st(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return e=t,a=[{key:"noConflict",value:function(){return window.Cropper=$t,t}},{key:"setDefaults",value:function(t){ut(tt,st(t)&&t)}}],(i=[{key:"init",value:function(){var t,e=this.element,i=e.tagName.toLowerCase();if(!e.cropper){if(e.cropper=this,"img"===i){if(this.isImg=!0,t=e.getAttribute("src")||"",this.originalUrl=t,!t)return;t=e.src}else"canvas"===i&&window.HTMLCanvasElement&&(t=e.toDataURL());this.load(t)}}},{key:"load",value:function(t){var e,i,n,r,a=this;if(t){this.url=t,this.imageData={};var o=this.element,s=this.options;if(s.rotatable||s.scalable||(s.checkOrientation=!1),s.checkOrientation&&window.ArrayBuffer)if(V.test(t))Z.test(t)?this.read((e=t.replace(Yt,""),i=atob(e),n=new ArrayBuffer(i.length),dt(r=new Uint8Array(n),(function(t,e){r[e]=i.charCodeAt(e)})),n)):this.clone();else{var h=new XMLHttpRequest,c=this.clone.bind(this);this.reloading=!0,this.xhr=h,h.onabort=c,h.onerror=c,h.ontimeout=c,h.onprogress=function(){h.getResponseHeader("content-type")!==J&&h.abort()},h.onload=function(){a.read(h.response)},h.onloadend=function(){a.reloading=!1,a.xhr=null},s.checkCrossOrigin&&It(t)&&o.crossOrigin&&(t=Lt(t)),h.open("GET",t,!0),h.responseType="arraybuffer",h.withCredentials="use-credentials"===o.crossOrigin,h.send()}else this.clone()}}},{key:"read",value:function(t){var e=this.options,i=this.imageData,n=Ut(t),r=0,a=1,o=1;if(n>1){this.url=function(t,e){for(var i=[],n=new Uint8Array(t);n.length>0;)i.push(zt.apply(null,lt(n.subarray(0,8192)))),n=n.subarray(8192);return"data:".concat(e,";base64,").concat(btoa(i.join("")))}(t,J);var s=function(t){var e=0,i=1,n=1;switch(t){case 2:i=-1;break;case 3:e=-180;break;case 4:n=-1;break;case 5:e=90,n=-1;break;case 6:e=90;break;case 7:e=90,i=-1;break;case 8:e=-90}return{rotate:e,scaleX:i,scaleY:n}}(n);r=s.rotate,a=s.scaleX,o=s.scaleY}e.rotatable&&(i.rotate=r),e.scalable&&(i.scaleX=a,i.scaleY=o),this.clone()}},{key:"clone",value:function(){var t=this.element,e=this.url,i=t.crossOrigin,n=e;this.options.checkCrossOrigin&&It(e)&&(i||(i="anonymous"),n=Lt(e)),this.crossOrigin=i,this.crossOriginUrl=n;var r=document.createElement("img");i&&(r.crossOrigin=i),r.src=n||e,r.alt=t.alt||"The image to crop",this.image=r,r.onload=this.start.bind(this),r.onerror=this.stop.bind(this),vt(r,A),t.parentNode.insertBefore(r,t.nextSibling)}},{key:"start",value:function(){var t=this,e=this.image;e.onload=null,e.onerror=null,this.sizing=!0;var i=c.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(c.navigator.userAgent),n=function(e,i){ut(t.imageData,{naturalWidth:e,naturalHeight:i,aspectRatio:e/i}),t.initialImageData=ut({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(!e.naturalWidth||i){var r=document.createElement("img"),a=document.body||document.documentElement;this.sizingImage=r,r.onload=function(){n(r.width,r.height),i||a.removeChild(r)},r.src=e.src,i||(r.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",a.appendChild(r))}else n(e.naturalWidth,e.naturalHeight)}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(this.sized&&!this.ready){var t=this.element,e=this.options,i=this.image,n=t.parentNode,r=document.createElement("div");r.innerHTML='<div class="cropper-container" touch-action="none"><div class="cropper-wrap-box"><div class="cropper-canvas"></div></div><div class="cropper-drag-box"></div><div class="cropper-crop-box"><span class="cropper-view-box"></span><span class="cropper-dashed dashed-h"></span><span class="cropper-dashed dashed-v"></span><span class="cropper-center"></span><span class="cropper-face"></span><span class="cropper-line line-e" data-cropper-action="e"></span><span class="cropper-line line-n" data-cropper-action="n"></span><span class="cropper-line line-w" data-cropper-action="w"></span><span class="cropper-line line-s" data-cropper-action="s"></span><span class="cropper-point point-e" data-cropper-action="e"></span><span class="cropper-point point-n" data-cropper-action="n"></span><span class="cropper-point point-w" data-cropper-action="w"></span><span class="cropper-point point-s" data-cropper-action="s"></span><span class="cropper-point point-ne" data-cropper-action="ne"></span><span class="cropper-point point-nw" data-cropper-action="nw"></span><span class="cropper-point point-sw" data-cropper-action="sw"></span><span class="cropper-point point-se" data-cropper-action="se"></span></div></div>';var a=r.querySelector(".".concat(u,"-container")),o=a.querySelector(".".concat(u,"-canvas")),s=a.querySelector(".".concat(u,"-drag-box")),h=a.querySelector(".".concat(u,"-crop-box")),c=h.querySelector(".".concat(u,"-face"));this.container=n,this.cropper=a,this.canvas=o,this.dragBox=s,this.cropBox=h,this.viewBox=a.querySelector(".".concat(u,"-view-box")),this.face=c,o.appendChild(i),vt(t,D),n.insertBefore(a,t.nextSibling),this.isImg||wt(i,A),this.initPreview(),this.bind(),e.initialAspectRatio=Math.max(0,e.initialAspectRatio)||NaN,e.aspectRatio=Math.max(0,e.aspectRatio)||NaN,e.viewMode=Math.max(0,Math.min(3,Math.round(e.viewMode)))||0,vt(h,D),e.guides||vt(h.getElementsByClassName("".concat(u,"-dashed")),D),e.center||vt(h.getElementsByClassName("".concat(u,"-center")),D),e.background&&vt(a,"".concat(u,"-bg")),e.highlight||vt(c,N),e.cropBoxMovable&&(vt(c,R),Ct(c,I,p)),e.cropBoxResizable||(vt(h.getElementsByClassName("".concat(u,"-line")),D),vt(h.getElementsByClassName("".concat(u,"-point")),D)),this.render(),this.ready=!0,this.setDragMode(e.dragMode),e.autoCrop&&this.crop(),this.setData(e.data),ht(e.ready)&&Dt(t,K,e.ready,{once:!0}),At(t,K)}}},{key:"unbuild",value:function(){this.ready&&(this.ready=!1,this.unbind(),this.resetPreview(),this.cropper.parentNode.removeChild(this.cropper),wt(this.element,D))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}])&&r(e.prototype,i),a&&r(e,a),t;var e,i,a}();return ut(_t.prototype,Wt,jt,Xt,Ft,Kt,qt),_t}()},65987:t=>{"use strict";var e={single_source_shortest_paths:function(t,i,n){var r={},a={};a[i]=0;var o,s,h,c,l,d,u,p=e.PriorityQueue.make();for(p.push(i,0);!p.empty();)for(h in s=(o=p.pop()).value,c=o.cost,l=t[s]||{})l.hasOwnProperty(h)&&(d=c+l[h],u=a[h],(void 0===a[h]||u>d)&&(a[h]=d,p.push(h,d),r[h]=s));if(void 0!==n&&void 0===a[n]){var g=["Could not find a path from ",i," to ",n,"."].join("");throw new Error(g)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var i=[],n=e;n;)i.push(n),t[n],n=t[n];return i.reverse(),i},find_path:function(t,i,n){var r=e.single_source_shortest_paths(t,i,n);return e.extract_shortest_path_from_predecessor_list(r,n)},PriorityQueue:{make:function(t){var i,n=e.PriorityQueue,r={};for(i in t=t||{},n)n.hasOwnProperty(i)&&(r[i]=n[i]);return r.queue=[],r.sorter=t.sorter||n.default_sorter,r},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var i={value:t,cost:e};this.queue.push(i),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};t.exports=e},62378:t=>{"use strict";t.exports=function(t){for(var e=[],i=t.length,n=0;n<i;n++){var r=t.charCodeAt(n);if(r>=55296&&r<=56319&&i>n+1){var a=t.charCodeAt(n+1);a>=56320&&a<=57343&&(r=1024*(r-55296)+a-56320+65536,n+=1)}r<128?e.push(r):r<2048?(e.push(r>>6|192),e.push(63&r|128)):r<55296||r>=57344&&r<65536?(e.push(r>>12|224),e.push(r>>6&63|128),e.push(63&r|128)):r>=65536&&r<=1114111?(e.push(r>>18|240),e.push(r>>12&63|128),e.push(r>>6&63|128),e.push(63&r|128)):e.push(239,191,189)}return new Uint8Array(e).buffer}},92592:(t,e,i)=>{const n=i(47138),r=i(95115),a=i(6907),o=i(93776);function s(t,e,i,a,o){const s=[].slice.call(arguments,1),h=s.length,c="function"==typeof s[h-1];if(!c&&!n())throw new Error("Callback required as last argument");if(!c){if(h<1)throw new Error("Too few arguments provided");return 1===h?(i=e,e=a=void 0):2!==h||e.getContext||(a=i,i=e,e=void 0),new Promise((function(n,o){try{const o=r.create(i,a);n(t(o,e,a))}catch(t){o(t)}}))}if(h<2)throw new Error("Too few arguments provided");2===h?(o=i,i=e,e=a=void 0):3===h&&(e.getContext&&void 0===o?(o=a,a=void 0):(o=a,a=i,i=e,e=void 0));try{const n=r.create(i,a);o(null,t(n,e,a))}catch(t){o(t)}}r.create,e.rT=s.bind(null,a.render),e.hz=s.bind(null,a.renderToDataURL),e.toString=s.bind(null,(function(t,e,i){return o.render(t,i)}))},47138:t=>{t.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},21845:(t,e,i)=>{const n=i(10242).getSymbolSize;e.getRowColCoords=function(t){if(1===t)return[];const e=Math.floor(t/7)+2,i=n(t),r=145===i?26:2*Math.ceil((i-13)/(2*e-2)),a=[i-7];for(let t=1;t<e-1;t++)a[t]=a[t-1]-r;return a.push(6),a.reverse()},e.getPositions=function(t){const i=[],n=e.getRowColCoords(t),r=n.length;for(let t=0;t<r;t++)for(let e=0;e<r;e++)0===t&&0===e||0===t&&e===r-1||t===r-1&&0===e||i.push([n[t],n[e]]);return i}},8260:(t,e,i)=>{const n=i(76910),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function a(t){this.mode=n.ALPHANUMERIC,this.data=t}a.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let i=45*r.indexOf(this.data[e]);i+=r.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},t.exports=a},97245:t=>{function e(){this.buffer=[],this.length=0}e.prototype={get:function(t){const e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(let i=0;i<e;i++)this.putBit(1==(t>>>e-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},t.exports=e},73280:t=>{function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}e.prototype.set=function(t,e,i,n){const r=t*this.size+e;this.data[r]=i,n&&(this.reservedBit[r]=!0)},e.prototype.get=function(t,e){return this.data[t*this.size+e]},e.prototype.xor=function(t,e,i){this.data[t*this.size+e]^=i},e.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},t.exports=e},43424:(t,e,i)=>{const n=i(62378),r=i(76910);function a(t){this.mode=r.BYTE,this.data=new Uint8Array(n(t))}a.getBitsLength=function(t){return 8*t},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){for(let e=0,i=this.data.length;e<i;e++)t.put(this.data[e],8)},t.exports=a},26245:(t,e,i)=>{const n=i(64908),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],a=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}},e.getTotalCodewordsCount=function(t,e){switch(e){case n.L:return a[4*(t-1)+0];case n.M:return a[4*(t-1)+1];case n.Q:return a[4*(t-1)+2];case n.H:return a[4*(t-1)+3];default:return}}},64908:(t,e)=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},e.from=function(t,i){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(t){return i}}},76526:(t,e,i)=>{const n=i(10242).getSymbolSize;e.getPositions=function(t){const e=n(t);return[[0,0],[e-7,0],[0,e-7]]}},61642:(t,e,i)=>{const n=i(10242),r=n.getBCHDigit(1335);e.getEncodedBits=function(t,e){const i=t.bit<<3|e;let a=i<<10;for(;n.getBCHDigit(a)-r>=0;)a^=1335<<n.getBCHDigit(a)-r;return 21522^(i<<10|a)}},69729:(t,e)=>{const i=new Uint8Array(512),n=new Uint8Array(256);!function(){let t=1;for(let e=0;e<255;e++)i[e]=t,n[t]=e,t<<=1,256&t&&(t^=285);for(let t=255;t<512;t++)i[t]=i[t-255]}(),e.log=function(t){if(t<1)throw new Error("log("+t+")");return n[t]},e.exp=function(t){return i[t]},e.mul=function(t,e){return 0===t||0===e?0:i[n[t]+n[e]]}},35442:(t,e,i)=>{const n=i(76910),r=i(10242);function a(t){this.mode=n.KANJI,this.data=t}a.getBitsLength=function(t){return 13*t},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){let e;for(e=0;e<this.data.length;e++){let i=r.toSJIS(this.data[e]);if(i>=33088&&i<=40956)i-=33088;else{if(!(i>=57408&&i<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");i-=49472}i=192*(i>>>8&255)+(255&i),t.put(i,13)}},t.exports=a},27126:(t,e)=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function i(t,i,n){switch(t){case e.Patterns.PATTERN000:return(i+n)%2==0;case e.Patterns.PATTERN001:return i%2==0;case e.Patterns.PATTERN010:return n%3==0;case e.Patterns.PATTERN011:return(i+n)%3==0;case e.Patterns.PATTERN100:return(Math.floor(i/2)+Math.floor(n/3))%2==0;case e.Patterns.PATTERN101:return i*n%2+i*n%3==0;case e.Patterns.PATTERN110:return(i*n%2+i*n%3)%2==0;case e.Patterns.PATTERN111:return(i*n%3+(i+n)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}e.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(t){const e=t.size;let i=0,n=0,r=0,a=null,o=null;for(let s=0;s<e;s++){n=r=0,a=o=null;for(let h=0;h<e;h++){let e=t.get(s,h);e===a?n++:(n>=5&&(i+=n-5+3),a=e,n=1),e=t.get(h,s),e===o?r++:(r>=5&&(i+=r-5+3),o=e,r=1)}n>=5&&(i+=n-5+3),r>=5&&(i+=r-5+3)}return i},e.getPenaltyN2=function(t){const e=t.size;let i=0;for(let n=0;n<e-1;n++)for(let r=0;r<e-1;r++){const e=t.get(n,r)+t.get(n,r+1)+t.get(n+1,r)+t.get(n+1,r+1);4!==e&&0!==e||i++}return 3*i},e.getPenaltyN3=function(t){const e=t.size;let i=0,n=0,r=0;for(let a=0;a<e;a++){n=r=0;for(let o=0;o<e;o++)n=n<<1&2047|t.get(a,o),o>=10&&(1488===n||93===n)&&i++,r=r<<1&2047|t.get(o,a),o>=10&&(1488===r||93===r)&&i++}return 40*i},e.getPenaltyN4=function(t){let e=0;const i=t.data.length;for(let n=0;n<i;n++)e+=t.data[n];return 10*Math.abs(Math.ceil(100*e/i/5)-10)},e.applyMask=function(t,e){const n=e.size;for(let r=0;r<n;r++)for(let a=0;a<n;a++)e.isReserved(a,r)||e.xor(a,r,i(t,a,r))},e.getBestMask=function(t,i){const n=Object.keys(e.Patterns).length;let r=0,a=1/0;for(let o=0;o<n;o++){i(o),e.applyMask(o,t);const n=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),n<a&&(a=n,r=o)}return r}},76910:(t,e,i)=>{const n=i(43114),r=i(7007);e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!n.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},e.getBestModeForData=function(t){return r.testNumeric(t)?e.NUMERIC:r.testAlphanumeric(t)?e.ALPHANUMERIC:r.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},e.isValid=function(t){return t&&t.bit&&t.ccBits},e.from=function(t,i){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(t){return i}}},41085:(t,e,i)=>{const n=i(76910);function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){let e,i,n;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),n=parseInt(i,10),t.put(n,10);const r=this.data.length-e;r>0&&(i=this.data.substr(e),n=parseInt(i,10),t.put(n,3*r+1))},t.exports=r},26143:(t,e,i)=>{const n=i(69729);e.mul=function(t,e){const i=new Uint8Array(t.length+e.length-1);for(let r=0;r<t.length;r++)for(let a=0;a<e.length;a++)i[r+a]^=n.mul(t[r],e[a]);return i},e.mod=function(t,e){let i=new Uint8Array(t);for(;i.length-e.length>=0;){const t=i[0];for(let r=0;r<e.length;r++)i[r]^=n.mul(e[r],t);let r=0;for(;r<i.length&&0===i[r];)r++;i=i.slice(r)}return i},e.generateECPolynomial=function(t){let i=new Uint8Array([1]);for(let r=0;r<t;r++)i=e.mul(i,new Uint8Array([1,n.exp(r)]));return i}},95115:(t,e,i)=>{const n=i(10242),r=i(64908),a=i(97245),o=i(73280),s=i(21845),h=i(76526),c=i(27126),l=i(26245),d=i(52882),u=i(23103),p=i(61642),g=i(76910),f=i(16130);function m(t,e,i){const n=t.size,r=p.getEncodedBits(e,i);let a,o;for(a=0;a<15;a++)o=1==(r>>a&1),a<6?t.set(a,8,o,!0):a<8?t.set(a+1,8,o,!0):t.set(n-15+a,8,o,!0),a<8?t.set(8,n-a-1,o,!0):a<9?t.set(8,15-a-1+1,o,!0):t.set(8,15-a-1,o,!0);t.set(n-8,8,1,!0)}function v(t,e,i,r){let p;if(Array.isArray(t))p=f.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");{let n=e;if(!n){const e=f.rawSplit(t);n=u.getBestVersionForData(e,i)}p=f.fromString(t,n||40)}}const v=u.getBestVersionForData(p,i);if(!v)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e<v)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+v+".\n")}else e=v;const w=function(t,e,i){const r=new a;i.forEach((function(e){r.put(e.mode.bit,4),r.put(e.getLength(),g.getCharCountIndicator(e.mode,t)),e.write(r)}));const o=8*(n.getSymbolTotalCodewords(t)-l.getTotalCodewordsCount(t,e));for(r.getLengthInBits()+4<=o&&r.put(0,4);r.getLengthInBits()%8!=0;)r.putBit(0);const s=(o-r.getLengthInBits())/8;for(let t=0;t<s;t++)r.put(t%2?17:236,8);return function(t,e,i){const r=n.getSymbolTotalCodewords(e),a=r-l.getTotalCodewordsCount(e,i),o=l.getBlocksCount(e,i),s=o-r%o,h=Math.floor(r/o),c=Math.floor(a/o),u=c+1,p=h-c,g=new d(p);let f=0;const m=new Array(o),v=new Array(o);let w=0;const y=new Uint8Array(t.buffer);for(let t=0;t<o;t++){const e=t<s?c:u;m[t]=y.slice(f,f+e),v[t]=g.encode(m[t]),f+=e,w=Math.max(w,e)}const b=new Uint8Array(r);let x,M,C=0;for(x=0;x<w;x++)for(M=0;M<o;M++)x<m[M].length&&(b[C++]=m[M][x]);for(x=0;x<p;x++)for(M=0;M<o;M++)b[C++]=v[M][x];return b}(r,t,e)}(e,i,p),y=n.getSymbolSize(e),b=new o(y);return function(t,e){const i=t.size,n=h.getPositions(e);for(let e=0;e<n.length;e++){const r=n[e][0],a=n[e][1];for(let e=-1;e<=7;e++)if(!(r+e<=-1||i<=r+e))for(let n=-1;n<=7;n++)a+n<=-1||i<=a+n||(e>=0&&e<=6&&(0===n||6===n)||n>=0&&n<=6&&(0===e||6===e)||e>=2&&e<=4&&n>=2&&n<=4?t.set(r+e,a+n,!0,!0):t.set(r+e,a+n,!1,!0))}}(b,e),function(t){const e=t.size;for(let i=8;i<e-8;i++){const e=i%2==0;t.set(i,6,e,!0),t.set(6,i,e,!0)}}(b),function(t,e){const i=s.getPositions(e);for(let e=0;e<i.length;e++){const n=i[e][0],r=i[e][1];for(let e=-2;e<=2;e++)for(let i=-2;i<=2;i++)-2===e||2===e||-2===i||2===i||0===e&&0===i?t.set(n+e,r+i,!0,!0):t.set(n+e,r+i,!1,!0)}}(b,e),m(b,i,0),e>=7&&function(t,e){const i=t.size,n=u.getEncodedBits(e);let r,a,o;for(let e=0;e<18;e++)r=Math.floor(e/3),a=e%3+i-8-3,o=1==(n>>e&1),t.set(r,a,o,!0),t.set(a,r,o,!0)}(b,e),function(t,e){const i=t.size;let n=-1,r=i-1,a=7,o=0;for(let s=i-1;s>0;s-=2)for(6===s&&s--;;){for(let i=0;i<2;i++)if(!t.isReserved(r,s-i)){let n=!1;o<e.length&&(n=1==(e[o]>>>a&1)),t.set(r,s-i,n),a--,-1===a&&(o++,a=7)}if(r+=n,r<0||i<=r){r-=n,n=-n;break}}}(b,w),isNaN(r)&&(r=c.getBestMask(b,m.bind(null,b,i))),c.applyMask(r,b),m(b,i,r),{modules:b,version:e,errorCorrectionLevel:i,maskPattern:r,segments:p}}e.create=function(t,e){if(void 0===t||""===t)throw new Error("No input text");let i,a,o=r.M;return void 0!==e&&(o=r.from(e.errorCorrectionLevel,r.M),i=u.from(e.version),a=c.from(e.maskPattern),e.toSJISFunc&&n.setToSJISFunction(e.toSJISFunc)),v(t,i,o,a)}},52882:(t,e,i)=>{const n=i(26143);function r(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(t){this.degree=t,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");const e=new Uint8Array(t.length+this.degree);e.set(t);const i=n.mod(e,this.genPoly),r=this.degree-i.length;if(r>0){const t=new Uint8Array(this.degree);return t.set(i,r),t}return i},t.exports=r},7007:(t,e)=>{let i="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";i=i.replace(/u/g,"\\u");const n="(?:(?![A-Z0-9 $%*+\\-./:]|"+i+")(?:.|[\r\n]))+";e.KANJI=new RegExp(i,"g"),e.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),e.BYTE=new RegExp(n,"g"),e.NUMERIC=new RegExp("[0-9]+","g"),e.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const r=new RegExp("^"+i+"$"),a=new RegExp("^[0-9]+$"),o=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");e.testKanji=function(t){return r.test(t)},e.testNumeric=function(t){return a.test(t)},e.testAlphanumeric=function(t){return o.test(t)}},16130:(t,e,i)=>{const n=i(76910),r=i(41085),a=i(8260),o=i(43424),s=i(35442),h=i(7007),c=i(10242),l=i(65987);function d(t){return unescape(encodeURIComponent(t)).length}function u(t,e,i){const n=[];let r;for(;null!==(r=t.exec(i));)n.push({data:r[0],index:r.index,mode:e,length:r[0].length});return n}function p(t){const e=u(h.NUMERIC,n.NUMERIC,t),i=u(h.ALPHANUMERIC,n.ALPHANUMERIC,t);let r,a;return c.isKanjiModeEnabled()?(r=u(h.BYTE,n.BYTE,t),a=u(h.KANJI,n.KANJI,t)):(r=u(h.BYTE_KANJI,n.BYTE,t),a=[]),e.concat(i,r,a).sort((function(t,e){return t.index-e.index})).map((function(t){return{data:t.data,mode:t.mode,length:t.length}}))}function g(t,e){switch(e){case n.NUMERIC:return r.getBitsLength(t);case n.ALPHANUMERIC:return a.getBitsLength(t);case n.KANJI:return s.getBitsLength(t);case n.BYTE:return o.getBitsLength(t)}}function f(t,e){let i;const h=n.getBestModeForData(t);if(i=n.from(e,h),i!==n.BYTE&&i.bit<h.bit)throw new Error('"'+t+'" cannot be encoded with mode '+n.toString(i)+".\n Suggested mode is: "+n.toString(h));switch(i!==n.KANJI||c.isKanjiModeEnabled()||(i=n.BYTE),i){case n.NUMERIC:return new r(t);case n.ALPHANUMERIC:return new a(t);case n.KANJI:return new s(t);case n.BYTE:return new o(t)}}e.fromArray=function(t){return t.reduce((function(t,e){return"string"==typeof e?t.push(f(e,null)):e.data&&t.push(f(e.data,e.mode)),t}),[])},e.fromString=function(t,i){const r=function(t){const e=[];for(let i=0;i<t.length;i++){const r=t[i];switch(r.mode){case n.NUMERIC:e.push([r,{data:r.data,mode:n.ALPHANUMERIC,length:r.length},{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.ALPHANUMERIC:e.push([r,{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.KANJI:e.push([r,{data:r.data,mode:n.BYTE,length:d(r.data)}]);break;case n.BYTE:e.push([{data:r.data,mode:n.BYTE,length:d(r.data)}])}}return e}(p(t,c.isKanjiModeEnabled())),a=function(t,e){const i={},r={start:{}};let a=["start"];for(let o=0;o<t.length;o++){const s=t[o],h=[];for(let t=0;t<s.length;t++){const c=s[t],l=""+o+t;h.push(l),i[l]={node:c,lastCount:0},r[l]={};for(let t=0;t<a.length;t++){const o=a[t];i[o]&&i[o].node.mode===c.mode?(r[o][l]=g(i[o].lastCount+c.length,c.mode)-g(i[o].lastCount,c.mode),i[o].lastCount+=c.length):(i[o]&&(i[o].lastCount=c.length),r[o][l]=g(c.length,c.mode)+4+n.getCharCountIndicator(c.mode,e))}}a=h}for(let t=0;t<a.length;t++)r[a[t]].end=0;return{map:r,table:i}}(r,i),o=l.find_path(a.map,"start","end"),s=[];for(let t=1;t<o.length-1;t++)s.push(a.table[o[t]].node);return e.fromArray(s.reduce((function(t,e){const i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)}),[]))},e.rawSplit=function(t){return e.fromArray(p(t,c.isKanjiModeEnabled()))}},10242:(t,e)=>{let i;const n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},e.getSymbolTotalCodewords=function(t){return n[t]},e.getBCHDigit=function(t){let e=0;for(;0!==t;)e++,t>>>=1;return e},e.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');i=t},e.isKanjiModeEnabled=function(){return void 0!==i},e.toSJIS=function(t){return i(t)}},43114:(t,e)=>{e.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},23103:(t,e,i)=>{const n=i(10242),r=i(26245),a=i(64908),o=i(76910),s=i(43114),h=n.getBCHDigit(7973);function c(t,e){return o.getCharCountIndicator(t,e)+4}function l(t,e){let i=0;return t.forEach((function(t){const n=c(t.mode,e);i+=n+t.getBitsLength()})),i}e.from=function(t,e){return s.isValid(t)?parseInt(t,10):e},e.getCapacity=function(t,e,i){if(!s.isValid(t))throw new Error("Invalid QR Code version");void 0===i&&(i=o.BYTE);const a=8*(n.getSymbolTotalCodewords(t)-r.getTotalCodewordsCount(t,e));if(i===o.MIXED)return a;const h=a-c(i,t);switch(i){case o.NUMERIC:return Math.floor(h/10*3);case o.ALPHANUMERIC:return Math.floor(h/11*2);case o.KANJI:return Math.floor(h/13);case o.BYTE:default:return Math.floor(h/8)}},e.getBestVersionForData=function(t,i){let n;const r=a.from(i,a.M);if(Array.isArray(t)){if(t.length>1)return function(t,i){for(let n=1;n<=40;n++)if(l(t,n)<=e.getCapacity(n,i,o.MIXED))return n}(t,r);if(0===t.length)return 1;n=t[0]}else n=t;return function(t,i,n){for(let r=1;r<=40;r++)if(i<=e.getCapacity(r,n,t))return r}(n.mode,n.getLength(),r)},e.getEncodedBits=function(t){if(!s.isValid(t)||t<7)throw new Error("Invalid QR Code version");let e=t<<12;for(;n.getBCHDigit(e)-h>=0;)e^=7973<<n.getBCHDigit(e)-h;return t<<12|e}},6907:(t,e,i)=>{const n=i(89653);e.render=function(t,e,i){let r=i,a=e;void 0!==r||e&&e.getContext||(r=e,e=void 0),e||(a=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),r=n.getOptions(r);const o=n.getImageWidth(t.modules.size,r),s=a.getContext("2d"),h=s.createImageData(o,o);return n.qrToImageData(h.data,t,r),function(t,e,i){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=i,e.width=i,e.style.height=i+"px",e.style.width=i+"px"}(s,a,o),s.putImageData(h,0,0),a},e.renderToDataURL=function(t,i,n){let r=n;void 0!==r||i&&i.getContext||(r=i,i=void 0),r||(r={});const a=e.render(t,i,r),o=r.type||"image/png",s=r.rendererOpts||{};return a.toDataURL(o,s.quality)}},93776:(t,e,i)=>{const n=i(89653);function r(t,e){const i=t.a/255,n=e+'="'+t.hex+'"';return i<1?n+" "+e+'-opacity="'+i.toFixed(2).slice(1)+'"':n}function a(t,e,i){let n=t+e;return void 0!==i&&(n+=" "+i),n}e.render=function(t,e,i){const o=n.getOptions(e),s=t.modules.size,h=t.modules.data,c=s+2*o.margin,l=o.color.light.a?"<path "+r(o.color.light,"fill")+' d="M0 0h'+c+"v"+c+'H0z"/>':"",d="<path "+r(o.color.dark,"stroke")+' d="'+function(t,e,i){let n="",r=0,o=!1,s=0;for(let h=0;h<t.length;h++){const c=Math.floor(h%e),l=Math.floor(h/e);c||o||(o=!0),t[h]?(s++,h>0&&c>0&&t[h-1]||(n+=o?a("M",c+i,.5+l+i):a("m",r,0),r=0,o=!1),c+1<e&&t[h+1]||(n+=a("h",s),s=0)):r++}return n}(h,s,o.margin)+'"/>',u='viewBox="0 0 '+c+" "+c+'"',p='<svg xmlns="http://www.w3.org/2000/svg" '+(o.width?'width="'+o.width+'" height="'+o.width+'" ':"")+u+' shape-rendering="crispEdges">'+l+d+"</svg>\n";return"function"==typeof i&&i(null,p),p}},89653:(t,e)=>{function i(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");let e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map((function(t){return[t,t]})))),6===e.length&&e.push("F","F");const i=parseInt(e.join(""),16);return{r:i>>24&255,g:i>>16&255,b:i>>8&255,a:255&i,hex:"#"+e.slice(0,6).join("")}}e.getOptions=function(t){t||(t={}),t.color||(t.color={});const e=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,n=t.width&&t.width>=21?t.width:void 0,r=t.scale||4;return{width:n,scale:n?4:r,margin:e,color:{dark:i(t.color.dark||"#000000ff"),light:i(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},e.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},e.getImageWidth=function(t,i){const n=e.getScale(t,i);return Math.floor((t+2*i.margin)*n)},e.qrToImageData=function(t,i,n){const r=i.modules.size,a=i.modules.data,o=e.getScale(r,n),s=Math.floor((r+2*n.margin)*o),h=n.margin*o,c=[n.color.light,n.color.dark];for(let e=0;e<s;e++)for(let i=0;i<s;i++){let l=4*(e*s+i),d=n.color.light;e>=h&&i>=h&&e<s-h&&i<s-h&&(d=c[a[Math.floor((e-h)/o)*r+Math.floor((i-h)/o)]?1:0]),t[l++]=d.r,t[l++]=d.g,t[l++]=d.b,t[l]=d.a}}},84506:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var n=i(83878),r=i(59199),a=i(40181),o=i(25267);function s(t){return(0,n.Z)(t)||(0,r.Z)(t)||(0,a.Z)(t)||(0,o.Z)()}}}]);
-//# sourceMappingURL=2677.45ff400a54f2f4c858f2.js.map \ No newline at end of file
diff --git a/priv/static/static/js/2677.45ff400a54f2f4c858f2.js.map b/priv/static/static/js/2677.45ff400a54f2f4c858f2.js.map
deleted file mode 100644
index a56f5cc2e..000000000
--- a/priv/static/static/js/2677.45ff400a54f2f4c858f2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/2677.45ff400a54f2f4c858f2.js","mappings":"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","sources":["webpack://pleroma_fe/./node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.esm.js","webpack://pleroma_fe/./node_modules/cropperjs/dist/cropper.js","webpack://pleroma_fe/./node_modules/dijkstrajs/dijkstra.js","webpack://pleroma_fe/./node_modules/encode-utf8/index.js","webpack://pleroma_fe/./node_modules/qrcode/lib/browser.js","webpack://pleroma_fe/./node_modules/qrcode/lib/can-promise.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/alignment-pattern.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/bit-buffer.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/bit-matrix.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/byte-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/error-correction-code.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/error-correction-level.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/finder-pattern.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/format-info.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/galois-field.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/kanji-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/mask-pattern.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/mode.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/numeric-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/polynomial.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/qrcode.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/regex.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/segments.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/utils.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/version-check.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/version.js","webpack://pleroma_fe/./node_modules/qrcode/lib/renderer/canvas.js","webpack://pleroma_fe/./node_modules/qrcode/lib/renderer/svg-tag.js","webpack://pleroma_fe/./node_modules/qrcode/lib/renderer/utils.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toArray.js"],"sourcesContent":["/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */\nimport { defineComponent, h } from 'vue';\nimport { toString, toDataURL, toCanvas } from 'qrcode';\n\nconst EVENT_READY = 'ready';\r\nvar index = defineComponent({\r\n name: 'VueQrcode',\r\n props: {\r\n /**\r\n * The value of the QR code.\r\n */\r\n value: {\r\n type: String,\r\n default: undefined,\r\n },\r\n /**\r\n * The options for the QR code generator.\r\n * {@link https://github.com/soldair/node-qrcode#qr-code-options}\r\n */\r\n options: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * The tag name of the component's root element.\r\n */\r\n tag: {\r\n type: String,\r\n default: 'canvas',\r\n },\r\n },\r\n emits: [EVENT_READY],\r\n watch: {\r\n $props: {\r\n deep: true,\r\n immediate: true,\r\n /**\r\n * Update the QR code when props changed.\r\n */\r\n handler() {\r\n if (this.$el) {\r\n this.generate();\r\n }\r\n },\r\n },\r\n },\r\n mounted() {\r\n this.generate();\r\n },\r\n methods: {\r\n /**\r\n * Generate QR code.\r\n */\r\n generate() {\r\n const options = this.options || {};\r\n const value = String(this.value);\r\n const done = () => {\r\n this.$emit(EVENT_READY, this.$el);\r\n };\r\n switch (this.tag) {\r\n case 'canvas':\r\n toCanvas(this.$el, value, options, (error) => {\r\n if (error) {\r\n throw error;\r\n }\r\n done();\r\n });\r\n break;\r\n case 'img':\r\n toDataURL(value, options, (error, url) => {\r\n if (error) {\r\n throw error;\r\n }\r\n this.$el.src = url;\r\n this.$el.onload = done;\r\n });\r\n break;\r\n case 'svg':\r\n toString(value, options, (error, string) => {\r\n if (error) {\r\n throw error;\r\n }\r\n const div = document.createElement('div');\r\n div.innerHTML = string;\r\n const svg = div.querySelector('svg');\r\n if (svg) {\r\n const { attributes, childNodes } = svg;\r\n Object.keys(attributes).forEach((key) => {\r\n const attribute = attributes[Number(key)];\r\n this.$el.setAttribute(attribute.name, attribute.value);\r\n });\r\n Object.keys(childNodes).forEach((key) => {\r\n const childNode = childNodes[Number(key)];\r\n this.$el.appendChild(childNode.cloneNode(true));\r\n });\r\n done();\r\n }\r\n });\r\n break;\r\n }\r\n },\r\n },\r\n render() {\r\n return h(this.tag, this.$slots.default);\r\n },\r\n});\n\nexport { index as default };\n","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:17.411Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cropper = factory());\n}(this, (function () { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'cropper'; // Actions\n\n var ACTION_ALL = 'all';\n var ACTION_CROP = 'crop';\n var ACTION_MOVE = 'move';\n var ACTION_ZOOM = 'zoom';\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw'; // Classes\n\n var CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\n var CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\n var CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\"); // Data keys\n\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n var DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\"); // Drag modes\n\n var DRAG_MODE_CROP = 'crop';\n var DRAG_MODE_MOVE = 'move';\n var DRAG_MODE_NONE = 'none'; // Events\n\n var EVENT_CROP = 'crop';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_READY = 'ready';\n var EVENT_RESIZE = 'resize';\n var EVENT_WHEEL = 'wheel';\n var EVENT_ZOOM = 'zoom'; // Mime types\n\n var MIME_TYPE_JPEG = 'image/jpeg'; // RegExps\n\n var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\n var REGEXP_TAG_NAME = /^img|canvas$/i; // Misc\n // Inspired by the default width and height of a canvas element.\n\n var MIN_CONTAINER_WIDTH = 200;\n var MIN_CONTAINER_HEIGHT = 100;\n\n var DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n };\n\n var TEMPLATE = '<div class=\"cropper-container\" touch-action=\"none\">' + '<div class=\"cropper-wrap-box\">' + '<div class=\"cropper-canvas\"></div>' + '</div>' + '<div class=\"cropper-drag-box\"></div>' + '<div class=\"cropper-crop-box\">' + '<span class=\"cropper-view-box\"></span>' + '<span class=\"cropper-dashed dashed-h\"></span>' + '<span class=\"cropper-dashed dashed-v\"></span>' + '<span class=\"cropper-center\"></span>' + '<span class=\"cropper-face\"></span>' + '<span class=\"cropper-line line-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-line line-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-line line-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-line line-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-point point-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-point point-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-point point-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-ne\" data-cropper-action=\"ne\"></span>' + '<span class=\"cropper-point point-nw\" data-cropper-action=\"nw\"></span>' + '<span class=\"cropper-point point-sw\" data-cropper-action=\"sw\"></span>' + '<span class=\"cropper-point point-se\" data-cropper-action=\"se\"></span>' + '</div>' + '</div>';\n\n /**\n * Check if the given value is not a number.\n */\n\n var isNaN = Number.isNaN || WINDOW.isNaN;\n /**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n\n function isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n }\n /**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n /**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n /**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n\n function isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n }\n /**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n\n function isFunction(value) {\n return typeof value === 'function';\n }\n var slice = Array.prototype.slice;\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n /**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n\n function forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length)\n /* array-like */\n ) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n\n return data;\n }\n /**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\n\n var assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n\n return target;\n };\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n var REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n /**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n\n function setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n\n style[property] = value;\n });\n }\n /**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n\n function hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n /**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n\n function addClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n\n var className = element.className.trim();\n\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n }\n /**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n\n function removeClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n /**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n\n function toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n } // IE10-11 doesn't support the second parameter of `classList.toggle`\n\n\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n var REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n /**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n\n function toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n }\n /**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n\n function getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n\n if (element.dataset) {\n return element.dataset[name];\n }\n\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n }\n /**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n\n function setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n }\n /**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\n\n function removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n }\n var REGEXP_SPACES = /\\s\\s*/;\n\n var onceSupported = function () {\n var supported = false;\n\n if (IS_BROWSER) {\n var once = false;\n\n var listener = function listener() {};\n\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n\n return supported;\n }();\n /**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n\n function removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n\n element.removeEventListener(event, handler, options);\n });\n }\n /**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n function addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n listener.apply(element, args);\n };\n\n if (!listeners[event]) {\n listeners[event] = {};\n }\n\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n\n element.addEventListener(event, _handler, options);\n });\n }\n /**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n\n function dispatchEvent(element, type, data) {\n var event; // Event and CustomEvent on IE9-11 are global objects, not constructors\n\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n\n return element.dispatchEvent(event);\n }\n /**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n\n function getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n }\n var location = WINDOW.location;\n var REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n /**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\n\n function isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n }\n /**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\n\n function addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n }\n /**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n\n function getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n } // Rotate should come first before scale to match orientation transform\n\n\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n /**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n\n function getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n }\n /**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n\n function getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n }\n /**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n /**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n\n function getAdjustedSizes(_ref4) // or 'cover'\n {\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n\n return {\n width: width,\n height: height\n };\n }\n /**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\n\n function getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n }\n /**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\n\n function getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n }\n var fromCharCode = String.fromCharCode;\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n\n return str;\n }\n var REGEXP_DATA_URL_HEAD = /^data:.*,/;\n /**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\n\n function dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n }\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = []; // Chunk Typed Array for better performance (#435)\n\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation; // Ignores range error when the image does not have correct Exif information\n\n try {\n var littleEndian;\n var app1Start;\n var ifdStart; // Only handle JPEG image (start by 0xFFD8)\n\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n\n offset += 1;\n }\n }\n\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D\n /* bigEndian */\n ) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n\n var _offset;\n\n var i;\n\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n\n if (dataView.getUint16(_offset, littleEndian) === 0x0112\n /* Orientation */\n ) {\n // 8 is the offset of the current tag's value\n _offset += 8; // Get the original orientation value\n\n orientation = dataView.getUint16(_offset, littleEndian); // Override the orientation with its default value\n\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n\n return orientation;\n }\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n // Rotate left 180°\n\n case 3:\n rotate = -180;\n break;\n // Flip vertical\n\n case 4:\n scaleY = -1;\n break;\n // Flip vertical and rotate right 90°\n\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n // Rotate right 90°\n\n case 6:\n rotate = 90;\n break;\n // Flip horizontal and rotate right 90°\n\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n // Rotate left 90°\n\n case 8:\n rotate = -90;\n break;\n }\n\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n var render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true); // Initialize auto crop area\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); // The width/height of auto crop area must large than \"minWidth/Height\"\n\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height; // The min/maxCropBoxWidth/Height must be less than container's width/height\n\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n } // The minWidth/Height must be less than maxWidth/Height\n\n\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n };\n\n var preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n\n if (!preview) {\n return;\n }\n\n var previews = preview;\n\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img'); // Save the original size for recover\n\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.src = url;\n img.alt = alt;\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n\n if (!this.cropped || this.disabled) {\n return;\n }\n\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n };\n\n var events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n };\n\n var handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY; // Resize when width changed or height changed\n\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n\n this.render();\n\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n\n if (this.disabled) {\n return;\n }\n\n event.preventDefault(); // Limit wheel speed to prevent zoom too fast (#21)\n\n if (this.wheeling) {\n return;\n }\n\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n\n if (this.disabled // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && ( // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu\n || event.ctrlKey)) {\n return;\n }\n\n var options = this.options,\n pointers = this.pointers;\n var action;\n\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n } // This line is required for preventing page zooming in iOS browsers\n\n\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n\n if (this.disabled || !action) {\n return;\n }\n\n var pointers = this.pointers;\n event.preventDefault();\n\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n\n var action = this.action,\n pointers = this.pointers;\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n\n if (!action) {\n return;\n }\n\n event.preventDefault();\n\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n };\n\n var change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset; // Locking aspect ratio in \"free mode\" by holding shift key\n\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n\n break;\n\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n\n break;\n\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n\n break;\n }\n };\n\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n // Resize crop box\n\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_SOUTH);\n height += range.y;\n\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n // Move canvas\n\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n // Zoom canvas\n\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n // Create crop box\n\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n\n if (range.y < 0) {\n top -= height;\n } // Show the crop box if is hidden\n\n\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n\n break;\n }\n\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n } // Override\n\n\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n };\n\n var methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true); // Render canvas after crop box rendered\n\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n\n return this;\n },\n\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n\n if (!element[NAMESPACE]) {\n return this;\n }\n\n element[NAMESPACE] = undefined;\n\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n\n this.uncreate();\n return this;\n },\n\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n\n if (changed) {\n this.renderCanvas(true);\n }\n }\n\n return this;\n },\n\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n }; // Zoom from the triggering point of the event\n\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n\n return this;\n },\n\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n\n return this;\n },\n\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n\n return data;\n },\n\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n\n var ratio = imageData.width / imageData.naturalWidth;\n\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n\n this.setCropBoxData(cropBoxData);\n }\n\n return this;\n },\n\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n\n return data;\n },\n\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n\n return data || {};\n },\n\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.renderCropBox();\n }\n\n return this;\n },\n\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options); // Returns the source canvas if it is not cropped.\n\n if (!this.cropped) {\n return source;\n }\n\n var _this$getData = this.getData(),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n } // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n\n\n var sourceWidth = source.width;\n var sourceHeight = source.height; // Source canvas parameters\n\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight; // Destination canvas parameters\n\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n\n var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid \"IndexSizeError\"\n\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n } // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n\n\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n\n if (this.ready) {\n this.initCropBox();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n\n return this;\n },\n\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n\n return this;\n }\n };\n\n var AnotherCropper = WINDOW.Cropper;\n\n var Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Cropper);\n\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an <img> or <canvas> element.');\n }\n\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n\n _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n\n if (element[NAMESPACE]) {\n return;\n }\n\n element[NAMESPACE] = this;\n\n if (tagName === 'img') {\n this.isImg = true; // e.g.: \"img/picture.jpg\"\n\n url = element.getAttribute('src') || '';\n this.originalUrl = url; // Stop when it's a blank image\n\n if (!url) {\n return;\n } // e.g.: \"https://example.com/img/picture.jpg\"\n\n\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n\n if (!url) {\n return;\n }\n\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n } // Only IE10+ supports Typed Arrays\n\n\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n } // Detect the mime type of the image directly if it is a Data URL\n\n\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n\n return;\n } // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n\n\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr; // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n }; // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n\n\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n } // The third parameter is required for avoiding side-effect (#682)\n\n\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData; // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n\n var _parseOrientation = parseOrientation(orientation);\n\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n } // Bust cache when there is not a \"crossOrigin\" property (#519)\n\n\n crossOriginUrl = addTimestamp(url);\n }\n\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true; // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n\n _this2.build();\n }; // Most modern browsers (excepts iOS WebKit)\n\n\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n\n sizingImage.src = image.src; // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n\n var element = this.element,\n options = this.options,\n image = this.image; // Create cropper elements\n\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image); // Hide the original image\n\n addClass(element, CLASS_HIDDEN); // Inserts the cropper after to the current image\n\n container.insertBefore(cropper, element.nextSibling); // Show the image if is hidden\n\n if (!this.isImg) {\n removeClass(image, CLASS_HIDE);\n }\n\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n\n if (options.autoCrop) {\n this.crop();\n }\n\n this.setData(options.data);\n\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n\n this.ready = false;\n this.unbind();\n this.resetPreview();\n this.cropper.parentNode.removeChild(this.cropper);\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n\n return Cropper;\n }();\n\n assign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\n return Cropper;\n\n})));\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin <self@wyattbaldwin.com>\n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(data))\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>'\n\n const path =\n '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>'\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}"],"names":["EVENT_READY","index","name","props","value","type","String","default","undefined","options","Object","tag","emits","watch","$props","deep","immediate","handler","this","$el","generate","mounted","methods","done","$emit","error","url","src","onload","toString","string","div","document","createElement","innerHTML","svg","querySelector","attributes","childNodes","keys","forEach","key","attribute","Number","setAttribute","childNode","appendChild","cloneNode","render","h","$slots","module","exports","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","o","minLen","n","call","slice","test","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","IS_BROWSER","window","WINDOW","IS_TOUCH_DEVICE","documentElement","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_EAST","ACTION_WEST","ACTION_SOUTH","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","concat","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","DRAG_MODE_CROP","DRAG_MODE_MOVE","DRAG_MODE_NONE","EVENT_CROP","EVENT_CROP_END","EVENT_CROP_MOVE","EVENT_CROP_START","EVENT_DBLCLICK","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_RESIZE","EVENT_WHEEL","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","DEFAULTS","viewMode","dragMode","initialAspectRatio","NaN","aspectRatio","data","preview","responsive","restore","checkCrossOrigin","checkOrientation","modal","guides","center","highlight","background","autoCrop","autoCropArea","movable","rotatable","scalable","zoomable","zoomOnTouch","zoomOnWheel","wheelZoomRatio","cropBoxMovable","cropBoxResizable","toggleDragModeOnDblclick","minCanvasWidth","minCanvasHeight","minCropBoxWidth","minCropBoxHeight","minContainerWidth","minContainerHeight","ready","cropstart","cropmove","cropend","crop","zoom","isNaN","isNumber","isPositiveNumber","Infinity","isUndefined","isObject","hasOwnProperty","isPlainObject","_constructor","isFunction","toArray","callback","assign","_len","args","_key","arg","REGEXP_DECIMALS","normalizeDecimalNumber","times","Math","round","REGEXP_SUFFIX","setStyle","element","styles","style","property","addClass","elem","classList","add","className","trim","indexOf","removeClass","remove","replace","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","toLowerCase","getData","dataset","getAttribute","setData","REGEXP_SPACES","onceSupported","supported","once","listener","get","set","addEventListener","removeEventListener","removeListener","split","event","listeners","addListener","_handler","_element$listeners","_len2","_key2","dispatchEvent","Event","CustomEvent","detail","bubbles","cancelable","createEvent","initCustomEvent","getOffset","box","getBoundingClientRect","left","pageXOffset","clientLeft","top","pageYOffset","clientTop","location","REGEXP_ORIGINS","isCrossOriginURL","parts","match","protocol","hostname","port","addTimestamp","timestamp","Date","getTime","getTransforms","_ref","rotate","scaleX","scaleY","translateX","translateY","values","transform","join","WebkitTransform","msTransform","getPointer","_ref2","endOnly","pageX","pageY","end","endX","endY","startX","startY","getAdjustedSizes","_ref4","height","width","isValidWidth","isValidHeight","adjustedWidth","getSourceCanvas","image","_ref6","_ref7","_ref8","imageAspectRatio","imageNaturalWidth","naturalWidth","imageNaturalHeight","naturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","_ref8$fillColor","fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","maxWidth","_ref8$maxHeight","maxHeight","_ref8$minWidth","minWidth","_ref8$minHeight","minHeight","canvas","context","getContext","maxSizes","minSizes","min","max","destMaxSizes","destMinSizes","destWidth","destHeight","params","fillStyle","fillRect","save","translate","PI","scale","drawImage","map","param","floor","fromCharCode","REGEXP_DATA_URL_HEAD","resetAndGetOrientation","arrayBuffer","orientation","dataView","DataView","littleEndian","app1Start","ifdStart","getUint8","byteLength","offset","tiffOffset","start","str","getStringFromCharCode","endianness","getUint16","firstIFDOffset","getUint32","_offset","_length","setUint16","initContainer","initCanvas","initCropBox","renderCanvas","cropped","renderCropBox","container","cropper","containerData","offsetWidth","offsetHeight","imageData","rotated","abs","canvasWidth","canvasHeight","canvasData","limited","limitCanvas","oldLeft","oldTop","initialCanvasData","sizeLimited","positionLimited","cropBoxData","_getAdjustedSizes","newCanvasLeft","newCanvasTop","minLeft","minTop","maxLeft","maxTop","changed","transformed","_getRotatedSizes","_ref5","degree","arc","sinArc","sin","cosArc","cos","newWidth","newHeight","getRotatedSizes","renderImage","limitCropBox","output","initialCropBoxData","maxCropBoxWidth","maxCropBoxHeight","face","cropBox","disabled","initPreview","crossOrigin","crossOriginUrl","alt","viewBox","viewBoxImage","previews","ownerDocument","querySelectorAll","el","img","html","cssText","resetPreview","removeAttribute","removeData","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","ratio","getElementsByTagName","events","bind","onCropStart","cropStart","onWheel","wheel","passive","capture","onDblclick","dblclick","onCropMove","cropMove","onCropEnd","cropEnd","onResize","resize","unbind","handlers","ratioX","ratioY","getCanvasData","getCropBoxData","setCanvasData","setCropBoxData","setDragMode","dragBox","contains","_this","delta","preventDefault","wheeling","setTimeout","deltaY","wheelDelta","buttons","button","pointerType","ctrlKey","action","pointers","changedTouches","touch","identifier","pointerId","originalEvent","cropping","change","right","bottom","renderable","shiftKey","pointer","range","x","y","check","side","move","pointers2","maxRatio","pointer2","x1","y1","x2","y2","z1","sqrt","getMaxZoomRatio","p","reset","initialImageData","clear","hasSameSize","isImg","replaced","uncreate","load","enable","disable","destroy","originalUrl","offsetX","offsetY","_this$canvasData","moveTo","_originalEvent","zoomTo","pivot","oldRatio","count","_ref3","getPointersCenter","rotateTo","_scaleX","_scaleY","rounded","getContainerData","getImageData","sized","widthChanged","heightChanged","getCroppedCanvas","HTMLCanvasElement","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","sourceWidth","sourceHeight","srcX","srcY","setAspectRatio","mode","croppable","AnotherCropper","Cropper","tagName","Error","reloading","sizing","init","staticProps","protoProps","toDataURL","base64","binary","uint8","ArrayBuffer","read","atob","Uint8Array","charCodeAt","clone","xhr","XMLHttpRequest","onabort","onerror","ontimeout","onprogress","getResponseHeader","abort","response","onloadend","open","responseType","withCredentials","send","mimeType","chunks","subarray","btoa","arrayBufferToDataURL","_parseOrientation","parseOrientation","stop","parentNode","insertBefore","nextSibling","_this2","isIOSWebKit","navigator","userAgent","build","sizingImage","body","removeChild","template","getElementsByClassName","unbuild","factory","dijkstra","single_source_shortest_paths","graph","s","d","predecessors","costs","closest","u","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","empty","pop","cost","msg","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","opts","T","t","queue","sorter","default_sorter","a","b","item","sort","shift","input","result","size","point","second","buffer","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderFunc","text","cb","argsNum","isLastArgCb","Promise","resolve","reject","create","e","renderToDataURL","_","then","getSymbolSize","getRowColCoords","version","posCount","intervals","ceil","positions","getPositions","coords","pos","posLength","j","Mode","ALPHA_NUM_CHARS","AlphanumericData","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","put","BitBuffer","bufIndex","num","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","col","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","EXP_TABLE","LOG_TABLE","log","exp","mul","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","getMaskAt","maskPattern","parseInt","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","VersionCheck","Regex","NUMERIC","id","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","substr","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","generateECPolynomial","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","bits","createSymbol","segments","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","r","createCodewords","createData","moduleCount","modules","c","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","remainder","buff","kanji","byte","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","exec","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","s1","s2","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","array","reduce","acc","seg","segs","buildNodes","table","prevNodeIds","nodeGroup","currentNodeIds","node","lastCount","prevNodeId","buildGraph","path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","f","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","getCanvasElement","getOptions","getImageWidth","ctx","createImageData","qrToImageData","clearRect","clearCanvas","putImageData","rendererOpts","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","svgTag","hex2rgba","hexCode","hexValue","g","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","_toArray"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/2724.e4840c73281069ba54ab.js b/priv/static/static/js/2724.e4840c73281069ba54ab.js
new file mode 100644
index 000000000..32482d437
--- /dev/null
+++ b/priv/static/static/js/2724.e4840c73281069ba54ab.js
@@ -0,0 +1,3 @@
+/*! For license information please see 2724.e4840c73281069ba54ab.js.LICENSE.txt */
+(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[2724],{9382:(e,t,n)=>{"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){s=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw o}}return a}}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Qc:()=>vn,fL:()=>bn,qv:()=>gn,vI:()=>mn,vc:()=>dn});var h=function(){},p={},d={},m=null,v={mark:h,measure:h};try{"undefined"!=typeof window&&(p=window),"undefined"!=typeof document&&(d=document),"undefined"!=typeof MutationObserver&&(m=MutationObserver),"undefined"!=typeof performance&&(v=performance)}catch(e){}var g,b,y,_,w,x=(p.navigator||{}).userAgent,k=void 0===x?"":x,S=p,C=d,E=m,O=v,N=(S.document,!!C.documentElement&&!!C.head&&"function"==typeof C.addEventListener&&"function"==typeof C.createElement),j=~k.indexOf("MSIE")||~k.indexOf("Trident/"),L="svg-inline--fa",A="data-fa-i2svg",M="data-fa-pseudo-element",I="data-prefix",z="data-icon",T="fontawesome-i2svg",R=["HTML","HEAD","STYLE","SCRIPT"],$=function(){try{return!0}catch(e){return!1}}(),P="classic",F="sharp",H=[P,F];function D(e){return new Proxy(e,{get:function(e,t){return t in e?e[t]:e.classic}})}var V=D((s(g={},P,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit"}),s(g,F,{fa:"solid",fass:"solid","fa-solid":"solid"}),g)),U=D((s(b={},P,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),s(b,F,{solid:"fass"}),b)),W=D((s(y={},P,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),s(y,F,{fass:"fa-solid"}),y)),B=D((s(_={},P,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),s(_,F,{"fa-solid":"fass"}),_)),Y=/fa(s|r|l|t|d|b|k|ss)?[\-\ ]/,q="fa-layers-text",G=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,Z=D((s(w={},P,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),s(w,F,{900:"fass"}),w)),X=[1,2,3,4,5,6,7,8,9,10],J=X.concat([11,12,13,14,15,16,17,18,19,20]),K=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],Q="duotone-group",ee="primary",te="secondary",ne=new Set;Object.keys(U.classic).map(ne.add.bind(ne)),Object.keys(U.sharp).map(ne.add.bind(ne));var re=[].concat(H,l(ne),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",Q,"swap-opacity",ee,te]).concat(X.map((function(e){return"".concat(e,"x")}))).concat(J.map((function(e){return"w-".concat(e)}))),oe=S.FontAwesomeConfig||{};C&&"function"==typeof C.querySelector&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach((function(e){var t=c(e,2),n=t[0],r=t[1],o=function(e){return""===e||"false"!==e&&("true"===e||e)}(function(e){var t=C.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}(n));null!=o&&(oe[r]=o)}));var ae={styleDefault:"solid",familyDefault:"classic",cssPrefix:"fa",replacementClass:L,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};oe.familyPrefix&&(oe.cssPrefix=oe.familyPrefix);var ie=o(o({},ae),oe);ie.autoReplaceSvg||(ie.observeMutations=!1);var se={};Object.keys(ae).forEach((function(e){Object.defineProperty(se,e,{enumerable:!0,set:function(t){ie[e]=t,ce.forEach((function(e){return e(se)}))},get:function(){return ie[e]}})})),Object.defineProperty(se,"familyPrefix",{enumerable:!0,set:function(e){ie.cssPrefix=e,ce.forEach((function(e){return e(se)}))},get:function(){return ie.cssPrefix}}),S.FontAwesomeConfig=se;var ce=[],le=16,ue={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function fe(){for(var e=12,t="";e-- >0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function he(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function pe(e){return e.classList?he(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function de(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function me(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")}),"")}function ve(e){return e.size!==ue.size||e.x!==ue.x||e.y!==ue.y||e.rotate!==ue.rotate||e.flipX||e.flipY}function ge(){var e="fa",t=L,n=se.cssPrefix,r=se.replacementClass,o=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if(n!==e||r!==t){var a=new RegExp("\\.".concat(e,"\\-"),"g"),i=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");o=o.replace(a,".".concat(n,"-")).replace(i,"--".concat(n,"-")).replace(s,".".concat(r))}return o}var be=!1;function ye(){se.autoAddCss&&!be&&(function(e){if(e&&N){var t=C.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=C.head.childNodes,r=null,o=n.length-1;o>-1;o--){var a=n[o],i=(a.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(r=a)}C.head.insertBefore(t,r)}}(ge()),be=!0)}var _e={mixout:function(){return{dom:{css:ge,insertCss:ye}}},hooks:function(){return{beforeDOMElementCreation:function(){ye()},beforeI2svg:function(){ye()}}}},we=S||{};we.___FONT_AWESOME___||(we.___FONT_AWESOME___={}),we.___FONT_AWESOME___.styles||(we.___FONT_AWESOME___.styles={}),we.___FONT_AWESOME___.hooks||(we.___FONT_AWESOME___.hooks={}),we.___FONT_AWESOME___.shims||(we.___FONT_AWESOME___.shims=[]);var xe=we.___FONT_AWESOME___,ke=[],Se=!1;function Ce(e){N&&(Se?setTimeout(e,0):ke.push(e))}function Ee(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,o=e.children,a=void 0===o?[]:o;return"string"==typeof e?de(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(de(e[n]),'" ')}),"").trim()}(r),">").concat(a.map(Ee).join(""),"</").concat(t,">")}function Oe(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}N&&((Se=(C.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(C.readyState))||C.addEventListener("DOMContentLoaded",(function e(){C.removeEventListener("DOMContentLoaded",e),Se=1,ke.map((function(e){return e()}))})));var Ne=function(e,t,n,r){var o,a,i,s=Object.keys(e),c=s.length,l=void 0!==r?function(e,t){return function(n,r,o,a){return e.call(t,n,r,o,a)}}(t,r):t;for(void 0===n?(o=1,i=e[s[0]]):(o=0,i=n);o<c;o++)i=l(i,e[a=s[o]],a,e);return i};function je(e){var t=function(e){for(var t=[],n=0,r=e.length;n<r;){var o=e.charCodeAt(n++);if(o>=55296&&o<=56319&&n<r){var a=e.charCodeAt(n++);56320==(64512&a)?t.push(((1023&o)<<10)+(1023&a)+65536):(t.push(o),n--)}else t.push(o)}return t}(e);return 1===t.length?t[0].toString(16):null}function Le(e){return Object.keys(e).reduce((function(t,n){var r=e[n];return r.icon?t[r.iconName]=r.icon:t[n]=r,t}),{})}function Ae(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,a=void 0!==r&&r,i=Le(t);"function"!=typeof xe.hooks.addPack||a?xe.styles[e]=o(o({},xe.styles[e]||{}),i):xe.hooks.addPack(e,Le(t)),"fas"===e&&Ae("fa",t)}var Me,Ie,ze,Te=xe.styles,Re=xe.shims,$e=(s(Me={},P,Object.values(W.classic)),s(Me,F,Object.values(W.sharp)),Me),Pe=null,Fe={},He={},De={},Ve={},Ue={},We=(s(Ie={},P,Object.keys(V.classic)),s(Ie,F,Object.keys(V.sharp)),Ie);function Be(e,t){var n,r=t.split("-"),o=r[0],a=r.slice(1).join("-");return o!==e||""===a||(n=a,~re.indexOf(n))?null:a}var Ye,qe=function(){var e=function(e){return Ne(Te,(function(t,n,r){return t[r]=Ne(n,e,{}),t}),{})};Fe=e((function(e,t,n){return t[3]&&(e[t[3]]=n),t[2]&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=n})),e})),He=e((function(e,t,n){return e[n]=n,t[2]&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=n})),e})),Ue=e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in Te||se.autoFetchSvg,n=Ne(Re,(function(e,n){var r=n[0],o=n[1],a=n[2];return"far"!==o||t||(o="fas"),"string"==typeof r&&(e.names[r]={prefix:o,iconName:a}),"number"==typeof r&&(e.unicodes[r.toString(16)]={prefix:o,iconName:a}),e}),{names:{},unicodes:{}});De=n.names,Ve=n.unicodes,Pe=Ke(se.styleDefault,{family:se.familyDefault})};function Ge(e,t){return(Fe[e]||{})[t]}function Ze(e,t){return(Ue[e]||{})[t]}function Xe(e){return De[e]||{prefix:null,iconName:null}}function Je(){return Pe}function Ke(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.family,r=void 0===n?P:n,o=V[r][e],a=U[r][e]||U[r][o],i=e in xe.styles?e:null;return a||i||null}Ye=function(e){Pe=Ke(e.styleDefault,{family:se.familyDefault})},ce.push(Ye),qe();var Qe=(s(ze={},P,Object.keys(W.classic)),s(ze,F,Object.keys(W.sharp)),ze);function et(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.skipLookups,o=void 0!==r&&r,a=(s(t={},P,"".concat(se.cssPrefix,"-").concat(P)),s(t,F,"".concat(se.cssPrefix,"-").concat(F)),t),i=null,c=P;(e.includes(a.classic)||e.some((function(e){return Qe.classic.includes(e)})))&&(c=P),(e.includes(a.sharp)||e.some((function(e){return Qe.sharp.includes(e)})))&&(c=F);var l=e.reduce((function(e,t){var n=Be(se.cssPrefix,t);if(Te[t]?(t=$e[c].includes(t)?B[c][t]:t,i=t,e.prefix=t):We[c].indexOf(t)>-1?(i=t,e.prefix=Ke(t,{family:c})):n?e.iconName=n:t!==se.replacementClass&&t!==a.classic&&t!==a.sharp&&e.rest.push(t),!o&&e.prefix&&e.iconName){var r="fa"===i?Xe(e.iconName):{},s=Ze(e.prefix,e.iconName);r.prefix&&(i=null),e.iconName=r.iconName||s||e.iconName,e.prefix=r.prefix||e.prefix,"far"!==e.prefix||Te.far||!Te.fas||se.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return(e.includes("fa-brands")||e.includes("fab"))&&(l.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(l.prefix="fad"),l.prefix||c!==F||!Te.fass&&!se.autoFetchSvg||(l.prefix="fass",l.iconName=Ze(l.prefix,l.iconName)||l.iconName),"fa"!==l.prefix&&"fa"!==i||(l.prefix=Je()||"fas"),l}var tt=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n;return t=e,n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=n.reduce(this._pullDefinitions,{});Object.keys(a).forEach((function(t){e.definitions[t]=o(o({},e.definitions[t]||{}),a[t]),Ae(t,a[t]);var n=W.classic[t];n&&Ae(n,a[t]),qe()}))}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(e,t){var n=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(n).map((function(t){var r=n[t],o=r.prefix,a=r.iconName,i=r.icon,s=i[2];e[o]||(e[o]={}),s.length>0&&s.forEach((function(t){"string"==typeof t&&(e[o][t]=i)})),e[o][a]=i})),e}}],n&&i(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}(),nt=[],rt={},ot={},at=Object.keys(ot);function it(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];var a=rt[e]||[];return a.forEach((function(e){t=e.apply(null,[t].concat(r))})),t}function st(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=rt[e]||[];o.forEach((function(e){e.apply(null,n)}))}function ct(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return ot[e]?ot[e].apply(null,t):void 0}function lt(e){"fa"===e.prefix&&(e.prefix="fas");var t=e.iconName,n=e.prefix||Je();if(t)return t=Ze(n,t)||t,Oe(ut.definitions,n,t)||Oe(xe.styles,n,t)}var ut=new tt,ft={i2svg:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return N?(st("beforeI2svg",e),ct("pseudoElements2svg",e),ct("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===se.autoReplaceSvg&&(se.autoReplaceSvg=!0),se.observeMutations=!0,Ce((function(){pt({autoReplaceSvgRoot:t}),st("watch",e)}))}},ht={noAuto:function(){se.autoReplaceSvg=!1,se.observeMutations=!1,st("noAuto")},config:se,dom:ft,parse:{icon:function(e){if(null===e)return null;if("object"===a(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Ze(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=Ke(e[0]);return{prefix:n,iconName:Ze(n,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(se.cssPrefix,"-"))>-1||e.match(Y))){var r=et(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||Je(),iconName:Ze(r.prefix,r.iconName)||r.iconName}}if("string"==typeof e){var o=Je();return{prefix:o,iconName:Ze(o,e)||e}}}},library:ut,findIconDefinition:lt,toHtml:Ee},pt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,n=void 0===t?C:t;(Object.keys(xe.styles).length>0||se.autoFetchSvg)&&N&&se.autoReplaceSvg&&ht.dom.i2svg({node:n})};function dt(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return Ee(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(N){var t=C.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function mt(e){var t=e.icons,n=t.main,r=t.mask,a=e.prefix,i=e.iconName,s=e.transform,c=e.symbol,l=e.title,u=e.maskId,f=e.titleId,h=e.extra,p=e.watchable,d=void 0!==p&&p,m=r.found?r:n,v=m.width,g=m.height,b="fak"===a,y=[se.replacementClass,i?"".concat(se.cssPrefix,"-").concat(i):""].filter((function(e){return-1===h.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(h.classes).join(" "),_={children:[],attributes:o(o({},h.attributes),{},{"data-prefix":a,"data-icon":i,class:y,role:h.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(v," ").concat(g)})},w=b&&!~h.classes.indexOf("fa-fw")?{width:"".concat(v/g*16*.0625,"em")}:{};d&&(_.attributes[A]=""),l&&(_.children.push({tag:"title",attributes:{id:_.attributes["aria-labelledby"]||"title-".concat(f||fe())},children:[l]}),delete _.attributes.title);var x=o(o({},_),{},{prefix:a,iconName:i,main:n,mask:r,maskId:u,transform:s,symbol:c,styles:o(o({},w),h.styles)}),k=r.found&&n.found?ct("generateAbstractMask",x)||{children:[],attributes:{}}:ct("generateAbstractIcon",x)||{children:[],attributes:{}},S=k.children,C=k.attributes;return x.children=S,x.attributes=C,c?function(e){var t=e.prefix,n=e.iconName,r=e.children,a=e.attributes,i=e.symbol,s=!0===i?"".concat(t,"-").concat(se.cssPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:o(o({},a),{},{id:s}),children:r}]}]}(x):function(e){var t=e.children,n=e.main,r=e.mask,a=e.attributes,i=e.styles,s=e.transform;if(ve(s)&&n.found&&!r.found){var c={x:n.width/n.height/2,y:.5};a.style=me(o(o({},i),{},{"transform-origin":"".concat(c.x+s.x/16,"em ").concat(c.y+s.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}(x)}function vt(e){var t=e.content,n=e.width,r=e.height,a=e.transform,i=e.title,s=e.extra,c=e.watchable,l=void 0!==c&&c,u=o(o(o({},s.attributes),i?{title:i}:{}),{},{class:s.classes.join(" ")});l&&(u[A]="");var f=o({},s.styles);ve(a)&&(f.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?16:n,o=e.height,a=void 0===o?16:o,i=e.startCentered,s=void 0!==i&&i,c="";return c+=s&&j?"translate(".concat(t.x/le-r/2,"em, ").concat(t.y/le-a/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/le,"em), calc(-50% + ").concat(t.y/le,"em)) "):"translate(".concat(t.x/le,"em, ").concat(t.y/le,"em) "),(c+="scale(".concat(t.size/le*(t.flipX?-1:1),", ").concat(t.size/le*(t.flipY?-1:1),") "))+"rotate(".concat(t.rotate,"deg) ")}({transform:a,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var h=me(f);h.length>0&&(u.style=h);var p=[];return p.push({tag:"span",attributes:u,children:[t]}),i&&p.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),p}function gt(e){var t=e.content,n=e.title,r=e.extra,a=o(o(o({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),i=me(r.styles);i.length>0&&(a.style=i);var s=[];return s.push({tag:"span",attributes:a,children:[t]}),n&&s.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),s}var bt=xe.styles;function yt(e){var t=e[0],n=e[1],r=c(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(se.cssPrefix,"-").concat(Q)},children:[{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(te),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(ee),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var _t={found:!1,width:512,height:512};function wt(e,t){var n=t;return"fa"===t&&null!==se.styleDefault&&(t=Je()),new Promise((function(r,a){if(ct("missingIconAbstract"),"fa"===n){var i=Xe(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&bt[t]&&bt[t][e])return r(yt(bt[t][e]));!function(e,t){$||se.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(o(o({},_t),{},{icon:se.showMissingIcons&&e&&ct("missingIconAbstract")||{}}))}))}var xt=function(){},kt=se.measurePerformance&&O&&O.mark&&O.measure?O:{mark:xt,measure:xt},St='FA "6.2.1"',Ct=function(e){return kt.mark("".concat(St," ").concat(e," begins")),function(){return function(e){kt.mark("".concat(St," ").concat(e," ends")),kt.measure("".concat(St," ").concat(e),"".concat(St," ").concat(e," begins"),"".concat(St," ").concat(e," ends"))}(e)}},Et=function(){};function Ot(e){return"string"==typeof(e.getAttribute?e.getAttribute(A):null)}function Nt(e){return C.createElementNS("http://www.w3.org/2000/svg",e)}function jt(e){return C.createElement(e)}function Lt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.ceFn,r=void 0===n?"svg"===e.tag?Nt:jt:n;if("string"==typeof e)return C.createTextNode(e);var o=r(e.tag);Object.keys(e.attributes||[]).forEach((function(t){o.setAttribute(t,e.attributes[t])}));var a=e.children||[];return a.forEach((function(e){o.appendChild(Lt(e,{ceFn:r}))})),o}var At={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(Lt(e),t)})),null===t.getAttribute(A)&&se.keepOriginalSource){var n=C.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~pe(t).indexOf(se.replacementClass))return At.replace(e);var r=new RegExp("".concat(se.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var o=n[0].attributes.class.split(" ").reduce((function(e,t){return t===se.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});n[0].attributes.class=o.toSvg.join(" "),0===o.toNode.length?t.removeAttribute("class"):t.setAttribute("class",o.toNode.join(" "))}var a=n.map((function(e){return Ee(e)})).join("\n");t.setAttribute(A,""),t.innerHTML=a}};function Mt(e){e()}function It(e,t){var n="function"==typeof t?t:Et;if(0===e.length)n();else{var r=Mt;"async"===se.mutateApproach&&(r=S.requestAnimationFrame||Mt),r((function(){var t=!0===se.autoReplaceSvg?At.replace:At[se.autoReplaceSvg]||At.replace,r=Ct("mutate");e.map(t),r(),n()}))}}var zt=!1;function Tt(){zt=!0}function Rt(){zt=!1}var $t=null;function Pt(e){if(E&&se.observeMutations){var t=e.treeCallback,n=void 0===t?Et:t,r=e.nodeCallback,o=void 0===r?Et:r,a=e.pseudoElementsCallback,i=void 0===a?Et:a,s=e.observeMutationsRoot,c=void 0===s?C:s;$t=new E((function(e){if(!zt){var t=Je();he(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!Ot(e.addedNodes[0])&&(se.searchPseudoElements&&i(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&se.searchPseudoElements&&i(e.target.parentNode),"attributes"===e.type&&Ot(e.target)&&~K.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(I):null,n=e.getAttribute?e.getAttribute(z):null;return t&&n}(e.target)){var r=et(pe(e.target)),a=r.prefix,s=r.iconName;e.target.setAttribute(I,a||t),s&&e.target.setAttribute(z,s)}else(c=e.target)&&c.classList&&c.classList.contains&&c.classList.contains(se.replacementClass)&&o(e.target);var c}))}})),N&&$t.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Ft(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce((function(e,t){var n=t.split(":"),r=n[0],o=n.slice(1);return r&&o.length>0&&(e[r]=o.join(":").trim()),e}),{})),n}function Ht(e){var t,n,r=e.getAttribute("data-prefix"),o=e.getAttribute("data-icon"),a=void 0!==e.innerText?e.innerText.trim():"",i=et(pe(e));return i.prefix||(i.prefix=Je()),r&&o&&(i.prefix=r,i.iconName=o),i.iconName&&i.prefix||(i.prefix&&a.length>0&&(i.iconName=(t=i.prefix,n=e.innerText,(He[t]||{})[n]||Ge(i.prefix,je(e.innerText)))),!i.iconName&&se.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function Dt(e){var t=he(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return se.autoA11y&&(n?t["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(r||fe()):(t["aria-hidden"]="true",t.focusable="false")),t}function Vt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=Ht(e),r=n.iconName,a=n.prefix,i=n.rest,s=Dt(e),c=it("parseNodeAttributes",{},e),l=t.styleParser?Ft(e):[];return o({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:a,transform:ue,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:l,attributes:s}},c)}var Ut=xe.styles;function Wt(e){var t="nest"===se.autoReplaceSvg?Vt(e,{styleParser:!1}):Vt(e);return~t.extra.classes.indexOf(q)?ct("generateLayersText",e,t):ct("generateSvgReplacementMutation",e,t)}var Bt=new Set;function Yt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!N)return Promise.resolve();var n=C.documentElement.classList,r=function(e){return n.add("".concat(T,"-").concat(e))},o=function(e){return n.remove("".concat(T,"-").concat(e))},a=se.autoFetchSvg?Bt:H.map((function(e){return"fa-".concat(e)})).concat(Object.keys(Ut));a.includes("fa")||a.push("fa");var i=[".".concat(q,":not([").concat(A,"])")].concat(a.map((function(e){return".".concat(e,":not([").concat(A,"])")}))).join(", ");if(0===i.length)return Promise.resolve();var s=[];try{s=he(e.querySelectorAll(i))}catch(e){}if(!(s.length>0))return Promise.resolve();r("pending"),o("complete");var c=Ct("onTree"),l=s.reduce((function(e,t){try{var n=Wt(t);n&&e.push(n)}catch(e){$||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,n){Promise.all(l).then((function(n){It(n,(function(){r("active"),r("complete"),o("pending"),"function"==typeof t&&t(),c(),e()}))})).catch((function(e){c(),n(e)}))}))}function qt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;Wt(e).then((function(e){e&&It([e],t)}))}H.map((function(e){Bt.add("fa-".concat(e))})),Object.keys(V.classic).map(Bt.add.bind(Bt)),Object.keys(V.sharp).map(Bt.add.bind(Bt)),Bt=l(Bt);var Gt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ue:n,a=t.symbol,i=void 0!==a&&a,s=t.mask,c=void 0===s?null:s,l=t.maskId,u=void 0===l?null:l,f=t.title,h=void 0===f?null:f,p=t.titleId,d=void 0===p?null:p,m=t.classes,v=void 0===m?[]:m,g=t.attributes,b=void 0===g?{}:g,y=t.styles,_=void 0===y?{}:y;if(e){var w=e.prefix,x=e.iconName,k=e.icon;return dt(o({type:"icon"},e),(function(){return st("beforeDOMElementCreation",{iconDefinition:e,params:t}),se.autoA11y&&(h?b["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(d||fe()):(b["aria-hidden"]="true",b.focusable="false")),mt({icons:{main:yt(k),mask:c?yt(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:w,iconName:x,transform:o(o({},ue),r),symbol:i,title:h,maskId:u,titleId:d,extra:{attributes:b,styles:_,classes:v}})}))}},Zt={mixout:function(){return{icon:(e=Gt,function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:lt(t||{}),a=n.mask;return a&&(a=(a||{}).icon?a:lt(a||{})),e(r,o(o({},n),{},{mask:a}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=Yt,e.nodeCallback=qt,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?C:t,r=e.callback;return Yt(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.title,o=t.titleId,a=t.prefix,i=t.transform,s=t.symbol,l=t.mask,u=t.maskId,f=t.extra;return new Promise((function(t,h){Promise.all([wt(n,a),l.iconName?wt(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(l){var h=c(l,2),p=h[0],d=h[1];t([e,mt({icons:{main:p,mask:d},prefix:a,iconName:n,transform:i,symbol:s,maskId:u,title:r,titleId:o,extra:f,watchable:!0})])})).catch(h)}))},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,o=e.main,a=e.transform,i=me(e.styles);return i.length>0&&(r.style=i),ve(a)&&(t=ct("generateAbstractTransformGrouping",{main:o,transform:a,containerWidth:o.width,iconWidth:o.width})),n.push(t||o.icon),{children:n,attributes:r}}}},Xt={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return dt({type:"layer"},(function(){st("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e((function(e){Array.isArray(e)?e.map((function(e){n=n.concat(e.abstract)})):n=n.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(se.cssPrefix,"-layers")].concat(l(r)).join(" ")},children:n}]}))}}}},Jt={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,o=t.classes,a=void 0===o?[]:o,i=t.attributes,s=void 0===i?{}:i,c=t.styles,u=void 0===c?{}:c;return dt({type:"counter",content:e},(function(){return st("beforeDOMElementCreation",{content:e,params:t}),gt({content:e.toString(),title:r,extra:{attributes:s,styles:u,classes:["".concat(se.cssPrefix,"-layers-counter")].concat(l(a))}})}))}}}},Kt={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ue:n,a=t.title,i=void 0===a?null:a,s=t.classes,c=void 0===s?[]:s,u=t.attributes,f=void 0===u?{}:u,h=t.styles,p=void 0===h?{}:h;return dt({type:"text",content:e},(function(){return st("beforeDOMElementCreation",{content:e,params:t}),vt({content:e,transform:o(o({},ue),r),title:i,extra:{attributes:f,styles:p,classes:["".concat(se.cssPrefix,"-layers-text")].concat(l(c))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.title,r=t.transform,o=t.extra,a=null,i=null;if(j){var s=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();a=c.width/s,i=c.height/s}return se.autoA11y&&!n&&(o.attributes["aria-hidden"]="true"),Promise.resolve([e,vt({content:e.innerHTML,width:a,height:i,transform:r,title:n,extra:o,watchable:!0})])}}},Qt=new RegExp('"',"ug"),en=[1105920,1112319];function tn(e,t){var n="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(r,a){if(null!==e.getAttribute(n))return r();var i,s,c,l=he(e.children).filter((function(e){return e.getAttribute(M)===t}))[0],u=S.getComputedStyle(e,t),f=u.getPropertyValue("font-family").match(G),h=u.getPropertyValue("font-weight"),p=u.getPropertyValue("content");if(l&&!f)return e.removeChild(l),r();if(f&&"none"!==p&&""!==p){var d=u.getPropertyValue("content"),m=~["Sharp"].indexOf(f[2])?F:P,v=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(f[2])?U[m][f[2].toLowerCase()]:Z[m][h],g=function(e){var t,n,r,o,a=e.replace(Qt,""),i=(0,r=(t=a).length,(o=t.charCodeAt(0))>=55296&&o<=56319&&r>1&&(n=t.charCodeAt(1))>=56320&&n<=57343?1024*(o-55296)+n-56320+65536:o),s=i>=en[0]&&i<=en[1],c=2===a.length&&a[0]===a[1];return{value:je(c?a[0]:a),isSecondary:s||c}}(d),b=g.value,y=g.isSecondary,_=f[0].startsWith("FontAwesome"),w=Ge(v,b),x=w;if(_){var k=(s=Ve[i=b],c=Ge("fas",i),s||(c?{prefix:"fas",iconName:c}:null)||{prefix:null,iconName:null});k.iconName&&k.prefix&&(w=k.iconName,v=k.prefix)}if(!w||y||l&&l.getAttribute(I)===v&&l.getAttribute(z)===x)r();else{e.setAttribute(n,x),l&&e.removeChild(l);var E={iconName:null,title:null,titleId:null,prefix:null,transform:ue,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},O=E.extra;O.attributes[M]=t,wt(w,v).then((function(a){var i=mt(o(o({},E),{},{icons:{main:a,mask:{prefix:null,iconName:null,rest:[]}},prefix:v,iconName:x,extra:O,watchable:!0})),s=C.createElement("svg");"::before"===t?e.insertBefore(s,e.firstChild):e.appendChild(s),s.outerHTML=i.map((function(e){return Ee(e)})).join("\n"),e.removeAttribute(n),r()})).catch(a)}}else r()}))}function nn(e){return Promise.all([tn(e,"::before"),tn(e,"::after")])}function rn(e){return!(e.parentNode===document.head||~R.indexOf(e.tagName.toUpperCase())||e.getAttribute(M)||e.parentNode&&"svg"===e.parentNode.tagName)}function on(e){if(N)return new Promise((function(t,n){var r=he(e.querySelectorAll("*")).filter(rn).map(nn),o=Ct("searchPseudoElements");Tt(),Promise.all(r).then((function(){o(),Rt(),t()})).catch((function(){o(),Rt(),n()}))}))}var an=!1,sn=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],o=n.slice(1).join("-");if(r&&"h"===o)return e.flipX=!0,e;if(r&&"v"===o)return e.flipY=!0,e;if(o=parseFloat(o),isNaN(o))return e;switch(r){case"grow":e.size=e.size+o;break;case"shrink":e.size=e.size-o;break;case"left":e.x=e.x-o;break;case"right":e.x=e.x+o;break;case"up":e.y=e.y-o;break;case"down":e.y=e.y+o;break;case"rotate":e.rotate=e.rotate+o}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},cn={mixout:function(){return{parse:{transform:function(e){return sn(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=sn(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,a=e.iconWidth,i={transform:"translate(".concat(r/2," 256)")},s="translate(".concat(32*n.x,", ").concat(32*n.y,") "),c="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),l="rotate(".concat(n.rotate," 0 0)"),u={outer:i,inner:{transform:"".concat(s," ").concat(c," ").concat(l)},path:{transform:"translate(".concat(a/2*-1," -256)")}};return{tag:"g",attributes:o({},u.outer),children:[{tag:"g",attributes:o({},u.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:o(o({},t.icon.attributes),u.path)}]}]}}}},ln={x:0,y:0,width:"100%",height:"100%"};function un(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var fn,hn={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?et(n.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return r.prefix||(r.prefix=Je()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,a=e.main,i=e.mask,s=e.maskId,c=e.transform,l=a.width,u=a.icon,f=i.width,h=i.icon,p=function(e){var t=e.transform,n=e.iconWidth,r={transform:"translate(".concat(e.containerWidth/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),a="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),i="rotate(".concat(t.rotate," 0 0)");return{outer:r,inner:{transform:"".concat(o," ").concat(a," ").concat(i)},path:{transform:"translate(".concat(n/2*-1," -256)")}}}({transform:c,containerWidth:f,iconWidth:l}),d={tag:"rect",attributes:o(o({},ln),{},{fill:"white"})},m=u.children?{children:u.children.map(un)}:{},v={tag:"g",attributes:o({},p.inner),children:[un(o({tag:u.tag,attributes:o(o({},u.attributes),p.path)},m))]},g={tag:"g",attributes:o({},p.outer),children:[v]},b="mask-".concat(s||fe()),y="clip-".concat(s||fe()),_={tag:"mask",attributes:o(o({},ln),{},{id:b,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[d,g]},w={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=h,"g"===t.tag?t.children:[t])},_]};return n.push(w,{tag:"rect",attributes:o({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(b,")")},ln)}),{children:n,attributes:r}}}},pn={provides:function(e){var t=!1;S.matchMedia&&(t=S.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:o(o({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=o(o({},r),{},{attributeName:"opacity"}),i={tag:"circle",attributes:o(o({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:o(o({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:o(o({},a),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:o(o({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:o(o({},a),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:o(o({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:o(o({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}};fn={mixoutsTo:ht}.mixoutsTo,nt=[_e,Zt,Xt,Jt,Kt,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=on,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?C:t;se.searchPseudoElements&&on(n)}}},{mixout:function(){return{dom:{unwatch:function(){Tt(),an=!0}}}},hooks:function(){return{bootstrap:function(){Pt(it("mutationObserverCallbacks",{}))},noAuto:function(){$t&&$t.disconnect()},watch:function(e){var t=e.observeMutationsRoot;an?Rt():Pt(it("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},cn,hn,pn,{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}],rt={},Object.keys(ot).forEach((function(e){-1===at.indexOf(e)&&delete ot[e]})),nt.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(fn[e]=t[e]),"object"===a(t[e])&&Object.keys(t[e]).forEach((function(n){fn[e]||(fn[e]={}),fn[e][n]=t[e][n]}))})),e.hooks){var n=e.hooks();Object.keys(n).forEach((function(e){rt[e]||(rt[e]=[]),rt[e].push(n[e])}))}e.provides&&e.provides(ot)}));var dn=ht.config,mn=ht.library,vn=ht.parse,gn=ht.icon,bn=ht.text},5737:(e,t,n)=>{"use strict";n.d(t,{IQi:()=>s,RKn:()=>r,RrC:()=>o,Tab:()=>i,xVw:()=>a});var r={prefix:"far",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"]},o={prefix:"far",iconName:"flag",icon:[448,512,[127988,61725],"f024","M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24V64 350.5 400v88c0 13.3 10.7 24 24 24s24-10.7 24-24V388l80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52V24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8V334.7l-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5v-237z"]},a={prefix:"far",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M336 0h-288C21.49 0 0 21.49 0 48v431.9c0 24.7 26.79 40.08 48.12 27.64L192 423.6l143.9 83.93C357.2 519.1 384 504.6 384 479.9V48C384 21.49 362.5 0 336 0zM336 452L192 368l-144 84V54C48 50.63 50.63 48 53.1 48h276C333.4 48 336 50.63 336 54V452z"]},i={prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"]},s={prefix:"far",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M0 456C0 442.7 10.75 432 24 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H24C10.75 480 0 469.3 0 456z"]}},84131:(e,t,n)=>{"use strict";n.d(t,{$Wj:()=>z,A35:()=>Se,Acd:()=>j,Aq:()=>C,Bg$:()=>ie,CPW:()=>R,E1P:()=>de,EQ8:()=>ze,EfQ:()=>k,Elv:()=>B,FKd:()=>Re,FPD:()=>_e,FU$:()=>K,FVb:()=>S,Fwd:()=>Te,GTN:()=>m,G_j:()=>D,HLz:()=>he,I7k:()=>o,IA$:()=>H,IBq:()=>r,IJ7:()=>h,ILF:()=>N,IwR:()=>G,IyC:()=>Ue,J9Y:()=>ae,Kl4:()=>ee,L4e:()=>Ve,LEp:()=>$e,Lh7:()=>d,Mdf:()=>q,Mm7:()=>W,N7g:()=>He,NBC:()=>ke,OwZ:()=>we,RKn:()=>c,RP7:()=>Ne,RrC:()=>b,S3c:()=>Fe,Sbq:()=>l,TTL:()=>Ie,Tab:()=>M,UJf:()=>u,UXu:()=>Le,V9$:()=>i,VE0:()=>je,VmB:()=>$,X8G:()=>g,Xcf:()=>x,Xig:()=>Me,Xjp:()=>X,XsY:()=>_,Y9i:()=>T,YHc:()=>a,Zrf:()=>y,_1N:()=>U,_tD:()=>Ce,aC2:()=>pe,aQp:()=>F,b7W:()=>te,byT:()=>w,cLY:()=>P,cNd:()=>le,cf$:()=>se,ctA:()=>Oe,dT$:()=>V,eHv:()=>Pe,g4A:()=>L,gMD:()=>fe,gPx:()=>A,gmr:()=>be,iV1:()=>re,jLD:()=>s,k0d:()=>Z,kQp:()=>p,klh:()=>Y,kwI:()=>ce,lCn:()=>ne,lXL:()=>f,mTx:()=>E,nNP:()=>me,ptq:()=>ye,q7m:()=>oe,qO$:()=>Ae,qmU:()=>ue,r8p:()=>xe,sqG:()=>Q,u8Q:()=>De,wn1:()=>ge,x5v:()=>Ee,xVw:()=>O,xf3:()=>I,xiG:()=>v,xiy:()=>J,yGG:()=>ve});var r={prefix:"fas",iconName:"at",icon:[512,512,[61946],"40","M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z"]},o={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]},a={prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M144 80c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z"]},i={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M473 7c-9.4-9.4-24.6-9.4-33.9 0l-87 87L313 55c-6.9-6.9-17.2-8.9-26.2-5.2S272 62.3 272 72V216c0 13.3 10.7 24 24 24H440c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-39-39 87-87c9.4-9.4 9.4-24.6 0-33.9L473 7zM216 272H72c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39L7 439c-9.4 9.4-9.4 24.6 0 33.9l32 32c9.4 9.4 24.6 9.4 33.9 0l87-87 39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V296c0-13.3-10.7-24-24-24z"]},s={prefix:"fas",iconName:"right-from-bracket",icon:[512,512,["sign-out-alt"],"f2f5","M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96C43 32 0 75 0 128V384c0 53 43 96 96 96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32h64zM504.5 273.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32H320v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z"]},c={prefix:"fas",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},l={prefix:"fas",iconName:"angles-down",icon:[448,512,["angle-double-down"],"f103","M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"]},u={prefix:"fas",iconName:"pencil",icon:[512,512,[9999,61504,"pencil-alt"],"f303","M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"]},f={prefix:"fas",iconName:"comments",icon:[640,512,[128490,61670],"f086","M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z"]},h={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},p={prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z"]},d={prefix:"fas",iconName:"reply",icon:[512,512,[61714,"mail-reply"],"f3e5","M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"]},m={prefix:"fas",iconName:"compass",icon:[512,512,[129517],"f14e","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z"]},v={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},g={prefix:"fas",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"]},b={prefix:"fas",iconName:"flag",icon:[448,512,[127988,61725],"f024","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V64 368 480c0 17.7 14.3 32 32 32s32-14.3 32-32V352l64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48V32z"]},y={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"]},_={prefix:"fas",iconName:"paintbrush",icon:[576,512,[128396,"paint-brush"],"f1fc","M371.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L600.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S549.7-4.4 531.1 9.6L294.4 187.2c-24 18-38.2 46.1-38.4 76.1L371.3 367.1zm-19.6 25.4l-116-104.4C175.9 290.3 128 339.6 128 400c0 3.9 .2 7.8 .6 11.6c1.8 17.5-10.2 36.4-27.8 36.4H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H240c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"]},w={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"]},x={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.8 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z"]},k={prefix:"fas",iconName:"share-nodes",icon:[448,512,["share-alt"],"f1e0","M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z"]},S={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M144 160c-44.2 0-80-35.8-80-80S99.8 0 144 0s80 35.8 80 80s-35.8 80-80 80zm368 0c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM416 224c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z"]},C={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z"]},E={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]},O={prefix:"fas",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"]},N={prefix:"fas",iconName:"user",icon:[448,512,[128100,62144],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z"]},j={prefix:"fas",iconName:"bullhorn",icon:[512,512,[128226,128363],"f0a1","M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z"]},L={prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 21 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z"]},A={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z"]},M={prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},I={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM344 152c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm96-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zM344 408c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm104-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z"]},z={prefix:"fas",iconName:"right-to-bracket",icon:[512,512,["sign-in-alt"],"f2f6","M352 96h64c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c53 0 96-43 96-96V128c0-53-43-96-96-96H352c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-7.5 177.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H160v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z"]},T={prefix:"fas",iconName:"file-arrow-up",icon:[384,512,["file-upload"],"f574","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z"]},R={prefix:"fas",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},$={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z"]},P={prefix:"fas",iconName:"angles-right",icon:[512,512,[187,"angle-double-right"],"f101","M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},F={prefix:"fas",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]},H={prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z"]},D={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]},V={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},U={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z"]},W={prefix:"fas",iconName:"square-poll-horizontal",icon:[448,512,["poll-h"],"f682","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z"]},B={prefix:"fas",iconName:"basketball",icon:[512,512,[127936,"basketball-ball"],"f434","M86.6 64C119 35.5 158.6 15 202.3 5.6C206 19.1 208 33.3 208 48c0 38.4-13.5 73.7-36.1 101.3L86.6 64zM64 86.6l85.2 85.2C121.7 194.5 86.4 208 48 208c-14.7 0-28.9-2-42.4-5.7C15 158.6 35.5 119 64 86.6zM256 0c64.9 0 124.2 24.2 169.4 64L256 233.4 194.6 172C222.9 138.5 240 95.3 240 48c0-16.2-2-32-5.8-47.1C241.4 .3 248.7 0 256 0zM48 240c47.3 0 90.5-17.1 124-45.4L233.4 256 64 425.4C24.2 380.2 0 320.9 0 256c0-7.3 .3-14.6 .9-21.8C16 238 31.8 240 48 240zm463.1 37.8C496 274 480.2 272 464 272c-47.3 0-90.5 17.1-124 45.4L278.6 256 448 86.6c39.8 45.1 64 104.4 64 169.4c0 7.3-.3 14.6-.9 21.8zm-4.7 31.9C497 353.4 476.5 393 448 425.4l-85.2-85.2C390.3 317.5 425.6 304 464 304c14.7 0 28.9 2 42.4 5.7zM340.1 362.7L425.4 448C393 476.5 353.4 497 309.7 506.4C306 492.9 304 478.7 304 464c0-38.4 13.5-73.7 36.1-101.3zM317.4 340C289.1 373.5 272 416.7 272 464c0 16.2 2 32 5.8 47.1c-7.2 .6-14.5 .9-21.8 .9c-64.9 0-124.2-24.2-169.4-64L256 278.6 317.4 340z"]},Y={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z"]},q={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM432 256c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM288 192c0 35.3-28.7 64-64 64c-11.5 0-22.3-3-31.6-8.4c-.2 2.8-.4 5.5-.4 8.4c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6z"]},G={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]},Z={prefix:"fas",iconName:"bus",icon:[512,512,[128653],"f207","M256 0C390.4 0 480 35.2 480 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C32 35.2 121.6 0 256 0zM96 160v96c0 17.7 14.3 32 32 32H240V128H128c-17.7 0-32 14.3-32 32zM272 288H384c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H272V288zM112 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 80c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16z"]},X={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},J={prefix:"fas",iconName:"cake-candles",icon:[448,512,[127874,"birthday-cake","cake"],"f1fd","M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z"]},K={prefix:"fas",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"]},Q={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"]},ee={prefix:"fas",iconName:"minus",icon:[448,512,[8211,8722,10134,"subtract"],"f068","M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"]},te={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z"]},ne={prefix:"fas",iconName:"folder-tree",icon:[576,512,[],"f802","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z"]},re={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zm0-160c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zM120 96c0 30.9-25.1 56-56 56S8 126.9 8 96S33.1 40 64 40s56 25.1 56 56z"]},oe={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zM432 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z"]},ae={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},ie={prefix:"fas",iconName:"stop",icon:[384,512,[9209],"f04d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},se={prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z"]},ce={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},le={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm160 0c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm104 56c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z"]},ue={prefix:"fas",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},fe={prefix:"fas",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z"]},he={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z"]},pe={prefix:"fas",iconName:"bars-staggered",icon:[512,512,["reorder","stream"],"f550","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},de={prefix:"fas",iconName:"ice-cream",icon:[384,512,[127848],"f810","M335.1 160c.6-5.3 .9-10.6 .9-16C336 64.5 271.5 0 192 0S48 64.5 48 144c0 5.4 .3 10.7 .9 16H48c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H336c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM64 288L168.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L320 288H64z"]},me={prefix:"fas",iconName:"link",icon:[640,512,[128279,"chain"],"f0c1","M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"]},ve={prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z"]},ge={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z"]},be={prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},ye={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]},_e={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"]},we={prefix:"fas",iconName:"circle-half-stroke",icon:[512,512,[9680,"adjust"],"f042","M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z"]},xe={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"]},ke={prefix:"fas",iconName:"xmark",icon:[320,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"]},Se={prefix:"fas",iconName:"chevron-left",icon:[384,512,[9001],"f053","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 278.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]},Ce={prefix:"fas",iconName:"chevron-right",icon:[384,512,[9002],"f054","M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},Ee={prefix:"fas",iconName:"retweet",icon:[576,512,[],"f079","M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z"]},Oe={prefix:"fas",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"]},Ne={prefix:"fas",iconName:"thumbtack",icon:[384,512,[128204,128392,"thumb-tack"],"f08d","M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z"]},je={prefix:"fas",iconName:"robot",icon:[640,512,[129302],"f544","M320 0c17.7 0 32 14.3 32 32V96H480c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm152 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z"]},Le={prefix:"fas",iconName:"angles-left",icon:[512,512,[171,"angle-double-left"],"f100","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"]},Ae={prefix:"fas",iconName:"clock-rotate-left",icon:[512,512,["history"],"f1da","M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z"]},Me={prefix:"fas",iconName:"music",icon:[512,512,[127925],"f001","M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z"]},Ie={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM184 496H40c-13.3 0-24-10.7-24-24V328c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]},ze={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Te={prefix:"fas",iconName:"rss",icon:[448,512,["feed"],"f09e","M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM128 416c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Re={prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},$e={prefix:"fas",iconName:"check",icon:[512,512,[10003,10004],"f00c","M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},Pe={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z"]},Fe={prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},He={prefix:"fas",iconName:"magnifying-glass-plus",icon:[512,512,["search-plus"],"f00e","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z"]},De={prefix:"fas",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"]},Ve={prefix:"fas",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H288V368c0-26.5 21.5-48 48-48H448V96c0-35.3-28.7-64-64-64H64zM448 352H402.7 336c-8.8 0-16 7.2-16 16v66.7V480l32-32 64-64 32-32z"]},Ue={prefix:"fas",iconName:"video",icon:[576,512,["video-camera"],"f03d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]}},57810:(e,t,n)=>{"use strict";n.d(t,{GN:()=>k,NH:()=>S});var r=n(9382),o=n(66252);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var h,p="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{},d={exports:{}};h=d,function(e){var t=function(e,n,r){if(!s(n)||l(n)||u(n)||f(n)||i(n))return n;var o,a=0,h=0;if(c(n))for(o=[],h=n.length;a<h;a++)o.push(t(e,n[a],r));else for(var p in o={},n)Object.prototype.hasOwnProperty.call(n,p)&&(o[e(p,r)]=t(e,n[p],r));return o},n=function(e){return p(e)?e:(e=e.replace(/[\-_\s]+(.)?/g,(function(e,t){return t?t.toUpperCase():""}))).substr(0,1).toLowerCase()+e.substr(1)},r=function(e){var t=n(e);return t.substr(0,1).toUpperCase()+t.substr(1)},o=function(e,t){return function(e,t){var n=(t=t||{}).separator||"_",r=t.split||/(?=[A-Z])/;return e.split(r).join(n)}(e,t).toLowerCase()},a=Object.prototype.toString,i=function(e){return"function"==typeof e},s=function(e){return e===Object(e)},c=function(e){return"[object Array]"==a.call(e)},l=function(e){return"[object Date]"==a.call(e)},u=function(e){return"[object RegExp]"==a.call(e)},f=function(e){return"[object Boolean]"==a.call(e)},p=function(e){return(e-=0)==e},d=function(e,t){var n=t&&"process"in t?t.process:t;return"function"!=typeof n?e:function(t,r){return n(t,e,r)}},m={camelize:n,decamelize:o,pascalize:r,depascalize:o,camelizeKeys:function(e,r){return t(d(n,r),e)},decamelizeKeys:function(e,n){return t(d(o,n),e,n)},pascalizeKeys:function(e,n){return t(d(r,n),e)},depascalizeKeys:function(){return this.decamelizeKeys.apply(this,arguments)}};h.exports?h.exports=m:e.humps=m}(p);var m=d.exports,v=["class","style"];function g(e){return e.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,t){var n=t.indexOf(":"),r=m.camelize(t.slice(0,n)),o=t.slice(n+1).trim();return e[r]=o,e}),{})}function b(e){return e.split(/\s+/).reduce((function(e,t){return e[t]=!0,e}),{})}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof e)return e;var r=(e.children||[]).map((function(e){return y(e)})),a=Object.keys(e.attributes||{}).reduce((function(t,n){var r=e.attributes[n];switch(n){case"class":t.class=b(r);break;case"style":t.style=g(r);break;default:t.attrs[n]=r}return t}),{attrs:{},class:{},style:{}});n.class;var s=n.style,c=void 0===s?{}:s,u=l(n,v);return(0,o.h)(e.tag,i(i(i({},t),{},{class:a.class,style:i(i({},a.style),c)},a.attrs),u),r)}var _=!1;try{_=!0}catch(e){}function w(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?c({},e,t):{}}function x(e){return e&&"object"===s(e)&&e.prefix&&e.iconName&&e.icon?e:r.Qc.icon?r.Qc.icon(e):null===e?null:"object"===s(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}var k=(0,o.aZ)({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(e){return[!0,!1,"horizontal","vertical","both"].indexOf(e)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(e){return["right","left"].indexOf(e)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(e){return[90,180,270].indexOf(Number.parseInt(e,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(e){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(e)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1}},setup:function(e,t){var n=t.attrs,a=(0,o.Fl)((function(){return x(e.icon)})),s=(0,o.Fl)((function(){return w("classes",function(e){var t,n=(c(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip":!0===e.flip,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},"fa-".concat(e.size),null!==e.size),c(t,"fa-rotate-".concat(e.rotation),null!==e.rotation),c(t,"fa-pull-".concat(e.pull),null!==e.pull),c(t,"fa-swap-opacity",e.swapOpacity),c(t,"fa-bounce",e.bounce),c(t,"fa-shake",e.shake),c(t,"fa-beat",e.beat),c(t,"fa-fade",e.fade),c(t,"fa-beat-fade",e.beatFade),c(t,"fa-flash",e.flash),c(t,"fa-spin-pulse",e.spinPulse),c(t,"fa-spin-reverse",e.spinReverse),t);return Object.keys(n).map((function(e){return n[e]?e:null})).filter((function(e){return e}))}(e))})),l=(0,o.Fl)((function(){return w("transform","string"==typeof e.transform?r.Qc.transform(e.transform):e.transform)})),u=(0,o.Fl)((function(){return w("mask",x(e.mask))})),f=(0,o.Fl)((function(){return(0,r.qv)(a.value,i(i(i(i({},s.value),l.value),u.value),{},{symbol:e.symbol,title:e.title}))}));(0,o.YP)(f,(function(e){if(!e)return function(){var e;!_&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find one or more icon(s)",a.value,u.value)}),{immediate:!0});var h=(0,o.Fl)((function(){return f.value?y(f.value.abstract[0],{},n):null}));return function(){return h.value}}}),S=(0,o.aZ)({name:"FontAwesomeLayers",props:{fixedWidth:{type:Boolean,default:!1}},setup:function(e,t){var n=t.slots,a=r.vc.familyPrefix,i=(0,o.Fl)((function(){return["".concat(a,"-layers")].concat(u(e.fixedWidth?["".concat(a,"-fw")]:[]))}));return function(){return(0,o.h)("div",{class:i.value},n.default?n.default():[])}}});(0,o.aZ)({name:"FontAwesomeLayersText",props:{value:{type:[String,Number],default:""},transform:{type:[String,Object],default:null},counter:{type:Boolean,default:!1},position:{type:String,default:null,validator:function(e){return["bottom-left","bottom-right","top-left","top-right"].indexOf(e)>-1}}},setup:function(e,t){var n=t.attrs,a=r.vc.familyPrefix,s=(0,o.Fl)((function(){return w("classes",[].concat(u(e.counter?["".concat(a,"-layers-counter")]:[]),u(e.position?["".concat(a,"-layers-").concat(e.position)]:[])))})),c=(0,o.Fl)((function(){return w("transform","string"==typeof e.transform?r.Qc.transform(e.transform):e.transform)})),l=(0,o.Fl)((function(){var t=(0,r.fL)(e.value.toString(),i(i({},c.value),s.value)).abstract;return e.counter&&(t[0].attributes.class=t[0].attributes.class.replace("fa-layers-text","")),t[0]})),f=(0,o.Fl)((function(){return y(l.value,{},n)}));return function(){return f.value}}})},782:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});class r{constructor(e){this.id=-1,this.nativePointer=e,this.pageX=e.pageX,this.pageY=e.pageY,this.clientX=e.clientX,this.clientY=e.clientY,self.Touch&&e instanceof Touch?this.id=e.identifier:o(e)&&(this.id=e.pointerId)}getCoalesced(){return"getCoalescedEvents"in this.nativePointer?this.nativePointer.getCoalescedEvents().map((e=>new r(e))):[this]}}const o=e=>self.PointerEvent&&e instanceof PointerEvent,a=()=>{};!function(e,t){void 0===t&&(t={});var n=t.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("pinch-zoom {\n display: block;\n overflow: hidden;\n touch-action: none;\n --scale: 1;\n --x: 0;\n --y: 0;\n}\n\npinch-zoom > * {\n transform: translate(var(--x), var(--y)) scale(var(--scale));\n transform-origin: 0 0;\n will-change: transform;\n}\n");const i="min-scale",s="allow-pan-min-scale",c="reset-to-min-scale-limit",l="reach-min-scale-strategy",u="stop-propagate-handled";function f(e,t){return t?Math.sqrt((t.clientX-e.clientX)**2+(t.clientY-e.clientY)**2):0}function h(e,t){return t?{clientX:(e.clientX+t.clientX)/2,clientY:(e.clientY+t.clientY)/2}:e}function p(e,t){return"number"==typeof e?e:e.trimRight().endsWith("%")?t*parseFloat(e)/100:parseFloat(e)}let d;function m(){return d||(d=document.createElementNS("http://www.w3.org/2000/svg","svg"))}function v(){return m().createSVGMatrix()}function g(){return m().createSVGPoint()}const b=.01,y=(e,t)=>Math.round(100*e)-Math.round(100*t);class _ extends HTMLElement{constructor(){super(),this._transform=v(),new MutationObserver((()=>this._stageElChange())).observe(this,{childList:!0});const e=new class{constructor(e,{start:t=(()=>!0),move:n=a,end:i=a,rawUpdates:s=!1}={}){this._element=e,this.startPointers=[],this.currentPointers=[],this._pointerStart=e=>{0===e.button&&this._triggerPointerStart(new r(e),e)&&(o(e)?((e.target&&"setPointerCapture"in e.target?e.target:this._element).setPointerCapture(e.pointerId),this._element.addEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.addEventListener("pointerup",this._pointerEnd),this._element.addEventListener("pointercancel",this._pointerEnd)):(window.addEventListener("mousemove",this._move),window.addEventListener("mouseup",this._pointerEnd)))},this._touchStart=e=>{for(const t of Array.from(e.changedTouches))this._triggerPointerStart(new r(t),e)},this._move=e=>{const t=this.currentPointers.slice(),n="changedTouches"in e?Array.from(e.changedTouches).map((e=>new r(e))):[new r(e)],o=[];for(const e of n){const t=this.currentPointers.findIndex((t=>t.id===e.id));-1!==t&&(o.push(e),this.currentPointers[t]=e)}0!==o.length&&this._moveCallback(t,o,e)},this._triggerPointerEnd=(e,t)=>{const n=this.currentPointers.findIndex((t=>t.id===e.id));if(-1===n)return!1;this.currentPointers.splice(n,1),this.startPointers.splice(n,1);const r="touchcancel"===t.type||"pointercancel"===t.type;return this._endCallback(e,t,r),!0},this._pointerEnd=e=>{if(this._triggerPointerEnd(new r(e),e))if(o(e)){if(this.currentPointers.length)return;this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd)}else window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)},this._touchEnd=e=>{for(const t of Array.from(e.changedTouches))this._triggerPointerEnd(new r(t),e)},this._startCallback=t,this._moveCallback=n,this._endCallback=i,this._rawUpdates=s&&"onpointerrawupdate"in window,self.PointerEvent?this._element.addEventListener("pointerdown",this._pointerStart):(this._element.addEventListener("mousedown",this._pointerStart),this._element.addEventListener("touchstart",this._touchStart),this._element.addEventListener("touchmove",this._move),this._element.addEventListener("touchend",this._touchEnd),this._element.addEventListener("touchcancel",this._touchEnd))}stop(){this._element.removeEventListener("pointerdown",this._pointerStart),this._element.removeEventListener("mousedown",this._pointerStart),this._element.removeEventListener("touchstart",this._touchStart),this._element.removeEventListener("touchmove",this._move),this._element.removeEventListener("touchend",this._touchEnd),this._element.removeEventListener("touchcancel",this._touchEnd),this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd),window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)}_triggerPointerStart(e,t){return!!this._startCallback(e,t)&&(this.currentPointers.push(e),this.startPointers.push(e),!0)}}(this,{start:(t,n)=>{if(2===e.currentPointers.length||!this._positioningEl)return!1;const r=e.currentPointers.length+1===1;return!(r&&!this._allowPan())&&(this._maybeStopPropagate(n),r||this._maybeEmitCancel([t,...e.currentPointers])),n.preventDefault(),!0},move:(t,n,r)=>{this._onPointerMove(t,e.currentPointers,r)},end:(t,n)=>{this._onPointerEnd(t,e.currentPointers,n)}});this.addEventListener("wheel",(e=>this._onWheel(e))),this.addEventListener("click",(t=>this._onClick(t,e)))}static get observedAttributes(){return[i]}attributeChangedCallback(e,t,n){e===i&&this.scale<this.minScale&&this.setTransform({scale:this.minScale})}get minScale(){const e=this.getAttribute(i);if(!e)return b;const t=parseFloat(e);return Number.isFinite(t)?Math.max(b,t):b}set minScale(e){this.setAttribute(i,String(e))}get reachMinScaleStrategy(){return this.getAttribute(l)||"none"}set reachMinScaleStrategy(e){this.setAttribute(l,e)}get allowPanMinScale(){const e=this.getAttribute(s);if(!e)return-1;const t=parseFloat(e);return Number.isFinite(t)?Math.max(-1,t):-1}set allowPanMinScale(e){this.setAttribute(s,String(e))}get resetToMinScaleLimit(){const e=this.getAttribute(c);if(!e)return-1;const t=parseFloat(e);return Number.isFinite(t)?Math.max(-1,t):-1}set resetToMinScaleLimit(e){this.setAttribute(c,String(e))}get stopPropagateHandled(){return this.hasAttribute(u)}set stopPropagateHandled(e){e?this.setAttribute(u,""):this.removeAttribute(u)}connectedCallback(){this._stageElChange()}get x(){return this._transform.e}get y(){return this._transform.f}get scale(){return this._transform.a}scaleTo(e,t={}){let{originX:n=0,originY:r=0}=t;const{relativeTo:o="content",allowChangeEvent:a=!1}=t,i="content"===o?this._positioningEl:this;if(!i||!this._positioningEl)return void this.setTransform({scale:e,allowChangeEvent:a});const s=i.getBoundingClientRect();if(n=p(n,s.width),r=p(r,s.height),"content"===o)n+=this.x,r+=this.y;else{const e=this._positioningEl.getBoundingClientRect();n-=e.left,r-=e.top}this._applyChange({allowChangeEvent:a,originX:n,originY:r,scaleDiff:e/this.scale})}setTransform(e={}){const{scale:t=this.scale,allowChangeEvent:n=!1}=e;let{x:r=this.x,y:o=this.y}=e;if(!this._positioningEl)return void this._updateTransform(t,r,o,n);const a=this.getBoundingClientRect(),i=this._positioningEl.getBoundingClientRect();if(!a.width||!a.height)return void this._updateTransform(t,r,o,n);let s=g();s.x=i.left-a.left,s.y=i.top-a.top;let c=g();c.x=i.width+s.x,c.y=i.height+s.y;const l=v().translate(r,o).scale(t).multiply(this._transform.inverse());s=s.matrixTransform(l),c=c.matrixTransform(l),s.x>a.width?r+=a.width-s.x:c.x<0&&(r+=-c.x),s.y>a.height?o+=a.height-s.y:c.y<0&&(o+=-c.y),this._updateTransform(t,r,o,n)}_updateTransform(e,t,n,r){if(e<this.minScale&&(e=this.minScale),(e!==this.scale||t!==this.x||n!==this.y)&&(this._transform.e=t,this._transform.f=n,this._transform.d=this._transform.a=e,this.style.setProperty("--x",this.x+"px"),this.style.setProperty("--y",this.y+"px"),this.style.setProperty("--scale",this.scale+""),r)){const e=new Event("change",{bubbles:!0});this.dispatchEvent(e)}}_stageElChange(){this._positioningEl=void 0,0!==this.children.length&&(this._positioningEl=this.children[0],this.children.length>1&&console.warn("<pinch-zoom> must not have more than one child."),this.setTransform({allowChangeEvent:!0}))}_onWheel(e){if(!this._positioningEl)return;e.preventDefault();const t=this._positioningEl.getBoundingClientRect();let{deltaY:n}=e;const{ctrlKey:r,deltaMode:o}=e;1===o&&(n*=15);const a=1-n/(r?100:300),i=a<1;this._applyChange({scaleDiff:a,originX:e.clientX-t.left,originY:e.clientY-t.top,allowChangeEvent:!0}),i&&this._maybeResetScale()}_onPointerMove(e,t,n){if(!this._positioningEl)return;if(e.length<2&&!this._allowPan())return;const r=this._positioningEl.getBoundingClientRect(),o=h(e[0],e[1]),a=h(t[0],t[1]),i=o.clientX-r.left,s=o.clientY-r.top,c=f(e[0],e[1]),l=f(t[0],t[1]),u=c?l/c:1;this._applyChange({originX:i,originY:s,scaleDiff:u,panX:a.clientX-o.clientX,panY:a.clientY-o.clientY,allowChangeEvent:!0}),this._maybeStopPropagate(n)}_maybeResetScale(){y(this.scale,this.resetToMinScaleLimit)<=0&&this._resetToMinScale()}_onPointerEnd(e,t,n){if(!this._positioningEl)return;const r=1+t.length,o=1==r;r>=2&&this._maybeResetScale(),o&&!this._allowPan()||this._maybeStopPropagate(n)}_resetToMinScale(){"reset"===this.reachMinScaleStrategy?this.setTransform({scale:this.minScale,x:0,y:0}):this.setTransform({scale:this.minScale})}_applyChange(e={}){const{panX:t=0,panY:n=0,originX:r=0,originY:o=0,scaleDiff:a=1,allowChangeEvent:i=!1}=e,s=v().translate(t,n).translate(r,o).translate(this.x,this.y).scale(a).translate(-r,-o).scale(this.scale);this.setTransform({allowChangeEvent:i,scale:s.a,x:s.e,y:s.f})}_maybeStopPropagate(e){this.stopPropagateHandled&&e.stopPropagation()}_allowPan(){return this.allowPanMinScale>0&&y(this.scale,this.allowPanMinScale)>0}_maybeEmitCancel(e){this.stopPropagateHandled&&e.forEach((e=>{var t;this.parentElement&&"function"==typeof this.parentElement.dispatchEvent&&this.parentElement.dispatchEvent((t=e,new PointerEvent("pointercancel",{pointerId:t.id,clientX:t.clientX,clientY:t.clientY})))}))}_onClick(e,t){0===e.button&&(0!==t.currentPointers.length||this._allowPan())&&this._maybeStopPropagate(e)}}customElements.define("pinch-zoom",_);const w=_},2262:(e,t,n)=>{"use strict";n.d(t,{$y:()=>ge,B:()=>i,Bj:()=>a,Fl:()=>Re,IU:()=>_e,Jd:()=>_,PG:()=>ve,SU:()=>Ae,Um:()=>pe,WL:()=>Ie,X$:()=>S,X3:()=>ye,XI:()=>Ne,Xl:()=>we,dq:()=>Ee,iH:()=>Oe,j:()=>x,lk:()=>w,qj:()=>he,qq:()=>v,yT:()=>be});var r=n(3577);let o;class a{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=o,!e&&o&&(this.index=(o.scopes||(o.scopes=[])).push(this)-1)}run(e){if(this.active){const t=o;try{return o=this,e()}finally{o=t}}}on(){o=this}off(){o=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this.active=!1}}}function i(e){return new a(e)}const s=e=>{const t=new Set(e);return t.w=0,t.n=0,t},c=e=>(e.w&p)>0,l=e=>(e.n&p)>0,u=new WeakMap;let f,h=0,p=1;const d=Symbol(""),m=Symbol("");class v{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t=o){t&&t.active&&t.effects.push(e)}(this,n)}run(){if(!this.active)return this.fn();let e=f,t=b;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=f,f=this,b=!0,p=1<<++h,h<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=p})(this):g(this),this.fn()}finally{h<=30&&(e=>{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r<t.length;r++){const o=t[r];c(o)&&!l(o)?o.delete(e):t[n++]=o,o.w&=~p,o.n&=~p}t.length=n}})(this),p=1<<--h,f=this.parent,b=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){f===this?this.deferStop=!0:this.active&&(g(this),this.onStop&&this.onStop(),this.active=!1)}}function g(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let b=!0;const y=[];function _(){y.push(b),b=!1}function w(){const e=y.pop();b=void 0===e||e}function x(e,t,n){if(b&&f){let t=u.get(e);t||u.set(e,t=new Map);let r=t.get(n);r||t.set(n,r=s()),k(r)}}function k(e,t){let n=!1;h<=30?l(e)||(e.n|=p,n=!c(e)):n=!e.has(f),n&&(e.add(f),f.deps.push(e))}function S(e,t,n,o,a,i){const c=u.get(e);if(!c)return;let l=[];if("clear"===t)l=[...c.values()];else if("length"===n&&(0,r.kJ)(e)){const e=(0,r.He)(o);c.forEach(((t,n)=>{("length"===n||n>=e)&&l.push(t)}))}else switch(void 0!==n&&l.push(c.get(n)),t){case"add":(0,r.kJ)(e)?(0,r.S0)(n)&&l.push(c.get("length")):(l.push(c.get(d)),(0,r._N)(e)&&l.push(c.get(m)));break;case"delete":(0,r.kJ)(e)||(l.push(c.get(d)),(0,r._N)(e)&&l.push(c.get(m)));break;case"set":(0,r._N)(e)&&l.push(c.get(d))}if(1===l.length)l[0]&&C(l[0]);else{const e=[];for(const t of l)t&&e.push(...t);C(s(e))}}function C(e,t){const n=(0,r.kJ)(e)?e:[...e];for(const e of n)e.computed&&E(e);for(const e of n)e.computed||E(e)}function E(e,t){(e!==f||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const O=(0,r.fY)("__proto__,__v_isRef,__isVue"),N=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(r.yk)),j=z(),L=z(!1,!0),A=z(!0),M=I();function I(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=_e(this);for(let e=0,t=this.length;e<t;e++)x(n,0,e+"");const r=n[t](...e);return-1===r||!1===r?n[t](...e.map(_e)):r}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){_();const n=_e(this)[t].apply(this,e);return w(),n}})),e}function z(e=!1,t=!1){return function(n,o,a){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_isShallow"===o)return t;if("__v_raw"===o&&a===(e?t?fe:ue:t?le:ce).get(n))return n;const i=(0,r.kJ)(n);if(!e&&i&&(0,r.RI)(M,o))return Reflect.get(M,o,a);const s=Reflect.get(n,o,a);return((0,r.yk)(o)?N.has(o):O(o))?s:(e||x(n,0,o),t?s:Ee(s)?i&&(0,r.S0)(o)?s:s.value:(0,r.Kn)(s)?e?de(s):he(s):s)}}const T=$(),R=$(!0);function $(e=!1){return function(t,n,o,a){let i=t[n];if(ge(i)&&Ee(i)&&!Ee(o))return!1;if(!e&&(be(o)||ge(o)||(i=_e(i),o=_e(o)),!(0,r.kJ)(t)&&Ee(i)&&!Ee(o)))return i.value=o,!0;const s=(0,r.kJ)(t)&&(0,r.S0)(n)?Number(n)<t.length:(0,r.RI)(t,n),c=Reflect.set(t,n,o,a);return t===_e(a)&&(s?(0,r.aU)(o,i)&&S(t,"set",n,o):S(t,"add",n,o)),c}}const P={get:j,set:T,deleteProperty:function(e,t){const n=(0,r.RI)(e,t),o=(e[t],Reflect.deleteProperty(e,t));return o&&n&&S(e,"delete",t,void 0),o},has:function(e,t){const n=Reflect.has(e,t);return(0,r.yk)(t)&&N.has(t)||x(e,0,t),n},ownKeys:function(e){return x(e,0,(0,r.kJ)(e)?"length":d),Reflect.ownKeys(e)}},F={get:A,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},H=(0,r.l7)({},P,{get:L,set:R}),D=e=>e,V=e=>Reflect.getPrototypeOf(e);function U(e,t,n=!1,r=!1){const o=_e(e=e.__v_raw),a=_e(t);n||(t!==a&&x(o,0,t),x(o,0,a));const{has:i}=V(o),s=r?D:n?ke:xe;return i.call(o,t)?s(e.get(t)):i.call(o,a)?s(e.get(a)):void(e!==o&&e.get(t))}function W(e,t=!1){const n=this.__v_raw,r=_e(n),o=_e(e);return t||(e!==o&&x(r,0,e),x(r,0,o)),e===o?n.has(e):n.has(e)||n.has(o)}function B(e,t=!1){return e=e.__v_raw,!t&&x(_e(e),0,d),Reflect.get(e,"size",e)}function Y(e){e=_e(e);const t=_e(this);return V(t).has.call(t,e)||(t.add(e),S(t,"add",e,e)),this}function q(e,t){t=_e(t);const n=_e(this),{has:o,get:a}=V(n);let i=o.call(n,e);i||(e=_e(e),i=o.call(n,e));const s=a.call(n,e);return n.set(e,t),i?(0,r.aU)(t,s)&&S(n,"set",e,t):S(n,"add",e,t),this}function G(e){const t=_e(this),{has:n,get:r}=V(t);let o=n.call(t,e);o||(e=_e(e),o=n.call(t,e)),r&&r.call(t,e);const a=t.delete(e);return o&&S(t,"delete",e,void 0),a}function Z(){const e=_e(this),t=0!==e.size,n=e.clear();return t&&S(e,"clear",void 0,void 0),n}function X(e,t){return function(n,r){const o=this,a=o.__v_raw,i=_e(a),s=t?D:e?ke:xe;return!e&&x(i,0,d),a.forEach(((e,t)=>n.call(r,s(e),s(t),o)))}}function J(e,t,n){return function(...o){const a=this.__v_raw,i=_e(a),s=(0,r._N)(i),c="entries"===e||e===Symbol.iterator&&s,l="keys"===e&&s,u=a[e](...o),f=n?D:t?ke:xe;return!t&&x(i,0,l?m:d),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[f(e[0]),f(e[1])]:f(e),done:t}},[Symbol.iterator](){return this}}}}function K(e){return function(...t){return"delete"!==e&&this}}function Q(){const e={get(e){return U(this,e)},get size(){return B(this)},has:W,add:Y,set:q,delete:G,clear:Z,forEach:X(!1,!1)},t={get(e){return U(this,e,!1,!0)},get size(){return B(this)},has:W,add:Y,set:q,delete:G,clear:Z,forEach:X(!1,!0)},n={get(e){return U(this,e,!0)},get size(){return B(this,!0)},has(e){return W.call(this,e,!0)},add:K("add"),set:K("set"),delete:K("delete"),clear:K("clear"),forEach:X(!0,!1)},r={get(e){return U(this,e,!0,!0)},get size(){return B(this,!0)},has(e){return W.call(this,e,!0)},add:K("add"),set:K("set"),delete:K("delete"),clear:K("clear"),forEach:X(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((o=>{e[o]=J(o,!1,!1),n[o]=J(o,!0,!1),t[o]=J(o,!1,!0),r[o]=J(o,!0,!0)})),[e,n,t,r]}const[ee,te,ne,re]=Q();function oe(e,t){const n=t?e?re:ne:e?te:ee;return(t,o,a)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get((0,r.RI)(n,o)&&o in t?n:t,o,a)}const ae={get:oe(!1,!1)},ie={get:oe(!1,!0)},se={get:oe(!0,!1)},ce=new WeakMap,le=new WeakMap,ue=new WeakMap,fe=new WeakMap;function he(e){return ge(e)?e:me(e,!1,P,ae,ce)}function pe(e){return me(e,!1,H,ie,le)}function de(e){return me(e,!0,F,se,ue)}function me(e,t,n,o,a){if(!(0,r.Kn)(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const i=a.get(e);if(i)return i;const s=(c=e).__v_skip||!Object.isExtensible(c)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((0,r.W7)(c));var c;if(0===s)return e;const l=new Proxy(e,2===s?o:n);return a.set(e,l),l}function ve(e){return ge(e)?ve(e.__v_raw):!(!e||!e.__v_isReactive)}function ge(e){return!(!e||!e.__v_isReadonly)}function be(e){return!(!e||!e.__v_isShallow)}function ye(e){return ve(e)||ge(e)}function _e(e){const t=e&&e.__v_raw;return t?_e(t):e}function we(e){return(0,r.Nj)(e,"__v_skip",!0),e}const xe=e=>(0,r.Kn)(e)?he(e):e,ke=e=>(0,r.Kn)(e)?de(e):e;function Se(e){b&&f&&k((e=_e(e)).dep||(e.dep=s()))}function Ce(e,t){(e=_e(e)).dep&&C(e.dep)}function Ee(e){return!(!e||!0!==e.__v_isRef)}function Oe(e){return je(e,!1)}function Ne(e){return je(e,!0)}function je(e,t){return Ee(e)?e:new Le(e,t)}class Le{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:_e(e),this._value=t?e:xe(e)}get value(){return Se(this),this._value}set value(e){const t=this.__v_isShallow||be(e)||ge(e);e=t?e:_e(e),(0,r.aU)(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:xe(e),Ce(this))}}function Ae(e){return Ee(e)?e.value:e}const Me={get:(e,t,n)=>Ae(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ee(o)&&!Ee(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Ie(e){return ve(e)?e:new Proxy(e,Me)}var ze;class Te{constructor(e,t,n,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[ze]=!1,this._dirty=!0,this.effect=new v(e,(()=>{this._dirty||(this._dirty=!0,Ce(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=n}get value(){const e=_e(this);return Se(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Re(e,t,n=!1){let o,a;const i=(0,r.mf)(e);return i?(o=e,a=r.dG):(o=e.get,a=e.set),new Te(o,a,i||!a,n)}ze="__v_isReadonly"},66252:(e,t,n)=>{"use strict";n.d(t,{$d:()=>i,Ah:()=>ke,Cn:()=>M,F4:()=>Yt,FN:()=>on,Fl:()=>dn,HX:()=>I,HY:()=>Ot,JJ:()=>H,Jd:()=>xe,Ko:()=>$e,LL:()=>Ie,Ob:()=>ce,P$:()=>X,Q2:()=>ze,Q6:()=>ne,RC:()=>ae,U2:()=>K,Uk:()=>Gt,Us:()=>bt,WI:()=>Pe,Wm:()=>Bt,Y3:()=>g,Y8:()=>G,YP:()=>U,_:()=>Wt,aZ:()=>re,bv:()=>ye,dD:()=>A,dG:()=>Qt,f3:()=>D,h:()=>mn,iD:()=>$t,ic:()=>we,j4:()=>Pt,kq:()=>Zt,lA:()=>Ft,lR:()=>Ct,mx:()=>He,nK:()=>te,up:()=>Ae,w5:()=>z,wF:()=>be,wg:()=>It,wy:()=>Ne,xv:()=>Nt});var r=n(2262),o=n(3577);function a(e,t,n,r){let o;try{o=r?e(...r):e()}catch(e){s(e,t,n)}return o}function i(e,t,n,r){if((0,o.mf)(e)){const i=a(e,t,n,r);return i&&(0,o.tI)(i)&&i.catch((e=>{s(e,t,n)})),i}const c=[];for(let o=0;o<e.length;o++)c.push(i(e[o],t,n,r));return c}function s(e,t,n,r=!0){if(t&&t.vnode,t){let r=t.parent;const o=t.proxy,i=n;for(;r;){const t=r.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,o,i))return;r=r.parent}const s=t.appContext.config.errorHandler;if(s)return void a(s,null,10,[e,o,i])}!function(e,t,n,r=!0){console.error(e)}(e,0,0,r)}let c=!1,l=!1;const u=[];let f=0;const h=[];let p=null,d=0;const m=Promise.resolve();let v=null;function g(e){const t=v||m;return e?t.then(this?e.bind(this):e):t}function b(e){u.length&&u.includes(e,c&&e.allowRecurse?f+1:f)||(null==e.id?u.push(e):u.splice(function(e){let t=f+1,n=u.length;for(;t<n;){const r=t+n>>>1;x(u[r])<e?t=r+1:n=r}return t}(e.id),0,e),y())}function y(){c||l||(l=!0,v=m.then(S))}function _(e,t=(c?f+1:0)){for(;t<u.length;t++){const e=u[t];e&&e.pre&&(u.splice(t,1),t--,e())}}function w(e){if(h.length){const e=[...new Set(h)];if(h.length=0,p)return void p.push(...e);for(p=e,p.sort(((e,t)=>x(e)-x(t))),d=0;d<p.length;d++)p[d]();p=null,d=0}}const x=e=>null==e.id?1/0:e.id,k=(e,t)=>{const n=x(e)-x(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function S(e){l=!1,c=!0,u.sort(k),o.dG;try{for(f=0;f<u.length;f++){const e=u[f];e&&!1!==e.active&&a(e,null,14)}}finally{f=0,u.length=0,w(),c=!1,v=null,(u.length||h.length)&&S(e)}}function C(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||o.kT;let a=n;const s=t.startsWith("update:"),c=s&&t.slice(7);if(c&&c in r){const e=`${"modelValue"===c?"model":c}Modifiers`,{number:t,trim:i}=r[e]||o.kT;i&&(a=n.map((e=>(0,o.HD)(e)?e.trim():e))),t&&(a=n.map(o.He))}let l,u=r[l=(0,o.hR)(t)]||r[l=(0,o.hR)((0,o._A)(t))];!u&&s&&(u=r[l=(0,o.hR)((0,o.rs)(t))]),u&&i(u,e,6,a);const f=r[l+"Once"];if(f){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,i(f,e,6,a)}}function E(e,t,n=!1){const r=t.emitsCache,a=r.get(e);if(void 0!==a)return a;const i=e.emits;let s={},c=!1;if(!(0,o.mf)(e)){const r=e=>{const n=E(e,t,!0);n&&(c=!0,(0,o.l7)(s,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return i||c?((0,o.kJ)(i)?i.forEach((e=>s[e]=null)):(0,o.l7)(s,i),(0,o.Kn)(e)&&r.set(e,s),s):((0,o.Kn)(e)&&r.set(e,null),null)}function O(e,t){return!(!e||!(0,o.F7)(t))&&(t=t.slice(2).replace(/Once$/,""),(0,o.RI)(e,t[0].toLowerCase()+t.slice(1))||(0,o.RI)(e,(0,o.rs)(t))||(0,o.RI)(e,t))}new Set,new Map;let N=null,j=null;function L(e){const t=N;return N=e,j=e&&e.type.__scopeId||null,t}function A(e){j=e}function M(){j=null}const I=e=>z;function z(e,t=N,n){if(!t)return e;if(e._n)return e;const r=(...n)=>{r._d&&Tt(-1);const o=L(t);let a;try{a=e(...n)}finally{L(o),r._d&&Tt(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function T(e){const{type:t,vnode:n,proxy:r,withProxy:a,props:i,propsOptions:[c],slots:l,attrs:u,emit:f,render:h,renderCache:p,data:d,setupState:m,ctx:v,inheritAttrs:g}=e;let b,y;const _=L(e);try{if(4&n.shapeFlag){const e=a||r;b=Xt(h.call(e,e,p,i,m,d,v)),y=u}else{const e=t;b=Xt(e.length>1?e(i,{attrs:u,slots:l,emit:f}):e(i,null)),y=t.props?u:R(u)}}catch(t){At.length=0,s(t,e,1),b=Bt(jt)}let w=b;if(y&&!1!==g){const e=Object.keys(y),{shapeFlag:t}=w;e.length&&7&t&&(c&&e.some(o.tR)&&(y=$(y,c)),w=qt(w,y))}return n.dirs&&(w=qt(w),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&(w.transition=n.transition),b=w,L(_),b}const R=e=>{let t;for(const n in e)("class"===n||"style"===n||(0,o.F7)(n))&&((t||(t={}))[n]=e[n]);return t},$=(e,t)=>{const n={};for(const r in e)(0,o.tR)(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function P(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let o=0;o<r.length;o++){const a=r[o];if(t[a]!==e[a]&&!O(n,a))return!0}return!1}const F=e=>e.__isSuspense;function H(e,t){if(rn){let n=rn.provides;const r=rn.parent&&rn.parent.provides;r===n&&(n=rn.provides=Object.create(r)),n[e]=t}}function D(e,t,n=!1){const r=rn||N;if(r){const a=null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(a&&e in a)return a[e];if(arguments.length>1)return n&&(0,o.mf)(t)?t.call(r.proxy):t}}const V={};function U(e,t,n){return W(e,t,n)}function W(e,t,{immediate:n,deep:s,flush:c,onTrack:l,onTrigger:u}=o.kT){const f=rn;let h,p,d=!1,m=!1;if((0,r.dq)(e)?(h=()=>e.value,d=(0,r.yT)(e)):(0,r.PG)(e)?(h=()=>e,s=!0):(0,o.kJ)(e)?(m=!0,d=e.some((e=>(0,r.PG)(e)||(0,r.yT)(e))),h=()=>e.map((e=>(0,r.dq)(e)?e.value:(0,r.PG)(e)?q(e):(0,o.mf)(e)?a(e,f,2):void 0))):h=(0,o.mf)(e)?t?()=>a(e,f,2):()=>{if(!f||!f.isUnmounted)return p&&p(),i(e,f,3,[g])}:o.dG,t&&s){const e=h;h=()=>q(e())}let v,g=e=>{p=x.onStop=()=>{a(e,f,4)}};if(ln){if(g=o.dG,t?n&&i(t,f,3,[h(),m?[]:void 0,g]):h(),"sync"!==c)return o.dG;{const e=gn();v=e.__watcherHandles||(e.__watcherHandles=[])}}let y=m?new Array(e.length).fill(V):V;const _=()=>{if(x.active)if(t){const e=x.run();(s||d||(m?e.some(((e,t)=>(0,o.aU)(e,y[t]))):(0,o.aU)(e,y)))&&(p&&p(),i(t,f,3,[e,y===V?void 0:m&&y[0]===V?[]:y,g]),y=e)}else x.run()};let w;_.allowRecurse=!!t,"sync"===c?w=_:"post"===c?w=()=>gt(_,f&&f.suspense):(_.pre=!0,f&&(_.id=f.uid),w=()=>b(_));const x=new r.qq(h,w);t?n?_():y=x.run():"post"===c?gt(x.run.bind(x),f&&f.suspense):x.run();const k=()=>{x.stop(),f&&f.scope&&(0,o.Od)(f.scope.effects,x)};return v&&v.push(k),k}function B(e,t,n){const r=this.proxy,a=(0,o.HD)(e)?e.includes(".")?Y(r,e):()=>r[e]:e.bind(r,r);let i;(0,o.mf)(t)?i=t:(i=t.handler,n=t);const s=rn;an(this);const c=W(a,i.bind(r),n);return s?an(s):sn(),c}function Y(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function q(e,t){if(!(0,o.Kn)(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),(0,r.dq)(e))q(e.value,t);else if((0,o.kJ)(e))for(let n=0;n<e.length;n++)q(e[n],t);else if((0,o.DM)(e)||(0,o._N)(e))e.forEach((e=>{q(e,t)}));else if((0,o.PO)(e))for(const n in e)q(e[n],t);return e}function G(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return ye((()=>{e.isMounted=!0})),xe((()=>{e.isUnmounting=!0})),e}const Z=[Function,Array],X={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Z,onEnter:Z,onAfterEnter:Z,onEnterCancelled:Z,onBeforeLeave:Z,onLeave:Z,onAfterLeave:Z,onLeaveCancelled:Z,onBeforeAppear:Z,onAppear:Z,onAfterAppear:Z,onAppearCancelled:Z},setup(e,{slots:t}){const n=on(),o=G();let a;return()=>{const i=t.default&&ne(t.default(),!0);if(!i||!i.length)return;let s=i[0];if(i.length>1){let e=!1;for(const t of i)if(t.type!==jt){s=t,e=!0;break}}const c=(0,r.IU)(e),{mode:l}=c;if(o.isLeaving)return Q(s);const u=ee(s);if(!u)return Q(s);const f=K(u,c,o,n);te(u,f);const h=n.subTree,p=h&&ee(h);let d=!1;const{getTransitionKey:m}=u.type;if(m){const e=m();void 0===a?a=e:e!==a&&(a=e,d=!0)}if(p&&p.type!==jt&&(!Ht(u,p)||d)){const e=K(p,c,o,n);if(te(p,e),"out-in"===l)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,!1!==n.update.active&&n.update()},Q(s);"in-out"===l&&u.type!==jt&&(e.delayLeave=(e,t,n)=>{J(o,p)[String(p.key)]=p,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=n})}return s}}};function J(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function K(e,t,n,r){const{appear:a,mode:s,persisted:c=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:f,onEnterCancelled:h,onBeforeLeave:p,onLeave:d,onAfterLeave:m,onLeaveCancelled:v,onBeforeAppear:g,onAppear:b,onAfterAppear:y,onAppearCancelled:_}=t,w=String(e.key),x=J(n,e),k=(e,t)=>{e&&i(e,r,9,t)},S=(e,t)=>{const n=t[1];k(e,t),(0,o.kJ)(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},C={mode:s,persisted:c,beforeEnter(t){let r=l;if(!n.isMounted){if(!a)return;r=g||l}t._leaveCb&&t._leaveCb(!0);const o=x[w];o&&Ht(e,o)&&o.el._leaveCb&&o.el._leaveCb(),k(r,[t])},enter(e){let t=u,r=f,o=h;if(!n.isMounted){if(!a)return;t=b||u,r=y||f,o=_||h}let i=!1;const s=e._enterCb=t=>{i||(i=!0,k(t?o:r,[e]),C.delayedLeave&&C.delayedLeave(),e._enterCb=void 0)};t?S(t,[e,s]):s()},leave(t,r){const o=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return r();k(p,[t]);let a=!1;const i=t._leaveCb=n=>{a||(a=!0,r(),k(n?v:m,[t]),t._leaveCb=void 0,x[o]===e&&delete x[o])};x[o]=e,d?S(d,[t,i]):i()},clone:e=>K(e,t,n,r)};return C}function Q(e){if(se(e))return(e=qt(e)).children=null,e}function ee(e){return se(e)?e.children?e.children[0]:void 0:e}function te(e,t){6&e.shapeFlag&&e.component?te(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ne(e,t=!1,n){let r=[],o=0;for(let a=0;a<e.length;a++){let i=e[a];const s=null==n?i.key:String(n)+String(null!=i.key?i.key:a);i.type===Ot?(128&i.patchFlag&&o++,r=r.concat(ne(i.children,t,s))):(t||i.type!==jt)&&r.push(null!=s?qt(i,{key:s}):i)}if(o>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function re(e){return(0,o.mf)(e)?{setup:e,name:e.name}:e}const oe=e=>!!e.type.__asyncLoader;function ae(e){(0,o.mf)(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:a,delay:i=200,timeout:c,suspensible:l=!0,onError:u}=e;let f,h=null,p=0;const d=()=>{let e;return h||(e=h=t().catch((e=>{if(e=e instanceof Error?e:new Error(String(e)),u)return new Promise(((t,n)=>{u(e,(()=>t((p++,h=null,d()))),(()=>n(e)),p+1)}));throw e})).then((t=>e!==h&&h?h:(t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),f=t,t))))};return re({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return f},setup(){const e=rn;if(f)return()=>ie(f,e);const t=t=>{h=null,s(t,e,13,!a)};if(l&&e.suspense||ln)return d().then((t=>()=>ie(t,e))).catch((e=>(t(e),()=>a?Bt(a,{error:e}):null)));const o=(0,r.iH)(!1),u=(0,r.iH)(),p=(0,r.iH)(!!i);return i&&setTimeout((()=>{p.value=!1}),i),null!=c&&setTimeout((()=>{if(!o.value&&!u.value){const e=new Error(`Async component timed out after ${c}ms.`);t(e),u.value=e}}),c),d().then((()=>{o.value=!0,e.parent&&se(e.parent.vnode)&&b(e.parent.update)})).catch((e=>{t(e),u.value=e})),()=>o.value&&f?ie(f,e):u.value&&a?Bt(a,{error:u.value}):n&&!p.value?Bt(n):void 0}})}function ie(e,t){const{ref:n,props:r,children:o,ce:a}=t.vnode,i=Bt(e,r,o);return i.ref=n,i.ce=a,delete t.vnode.ce,i}const se=e=>e.type.__isKeepAlive,ce={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=on(),r=n.ctx;if(!r.renderer)return()=>{const e=t.default&&t.default();return e&&1===e.length?e[0]:e};const a=new Map,i=new Set;let s=null;const c=n.suspense,{renderer:{p:l,m:u,um:f,o:{createElement:h}}}=r,p=h("div");function d(e){de(e),f(e,n,c,!0)}function m(e){a.forEach(((t,n)=>{const r=pn(t.type);!r||e&&e(r)||v(n)}))}function v(e){const t=a.get(e);s&&t.type===s.type?s&&de(s):d(t),a.delete(e),i.delete(e)}r.activate=(e,t,n,r,a)=>{const i=e.component;u(e,t,n,0,c),l(i.vnode,e,t,n,i,c,r,e.slotScopeIds,a),gt((()=>{i.isDeactivated=!1,i.a&&(0,o.ir)(i.a);const t=e.props&&e.props.onVnodeMounted;t&&en(t,i.parent,e)}),c)},r.deactivate=e=>{const t=e.component;u(e,p,null,1,c),gt((()=>{t.da&&(0,o.ir)(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&en(n,t.parent,e),t.isDeactivated=!0}),c)},U((()=>[e.include,e.exclude]),(([e,t])=>{e&&m((t=>le(e,t))),t&&m((e=>!le(t,e)))}),{flush:"post",deep:!0});let g=null;const b=()=>{null!=g&&a.set(g,me(n.subTree))};return ye(b),we(b),xe((()=>{a.forEach((e=>{const{subTree:t,suspense:r}=n,o=me(t);if(e.type!==o.type)d(e);else{de(o);const e=o.component.da;e&&gt(e,r)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!Ft(r)||!(4&r.shapeFlag||128&r.shapeFlag))return s=null,r;let o=me(r);const c=o.type,l=pn(oe(o)?o.type.__asyncResolved||{}:c),{include:u,exclude:f,max:h}=e;if(u&&(!l||!le(u,l))||f&&l&&le(f,l))return s=o,r;const p=null==o.key?c:o.key,d=a.get(p);return o.el&&(o=qt(o),128&r.shapeFlag&&(r.ssContent=o)),g=p,d?(o.el=d.el,o.component=d.component,o.transition&&te(o,o.transition),o.shapeFlag|=512,i.delete(p),i.add(p)):(i.add(p),h&&i.size>parseInt(h,10)&&v(i.values().next().value)),o.shapeFlag|=256,s=o,F(r.type)?r:o}}};function le(e,t){return(0,o.kJ)(e)?e.some((e=>le(e,t))):(0,o.HD)(e)?e.split(",").includes(t):!!e.test&&e.test(t)}function ue(e,t){he(e,"a",t)}function fe(e,t){he(e,"da",t)}function he(e,t,n=rn){const r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(ve(t,r,n),n){let e=n.parent;for(;e&&e.parent;)se(e.parent.vnode)&&pe(r,t,n,e),e=e.parent}}function pe(e,t,n,r){const a=ve(t,e,r,!0);ke((()=>{(0,o.Od)(r[t],a)}),n)}function de(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function me(e){return 128&e.shapeFlag?e.ssContent:e}function ve(e,t,n=rn,o=!1){if(n){const a=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;(0,r.Jd)(),an(n);const a=i(t,n,e,o);return sn(),(0,r.lk)(),a});return o?a.unshift(s):a.push(s),s}}const ge=e=>(t,n=rn)=>(!ln||"sp"===e)&&ve(e,((...e)=>t(...e)),n),be=ge("bm"),ye=ge("m"),_e=ge("bu"),we=ge("u"),xe=ge("bum"),ke=ge("um"),Se=ge("sp"),Ce=ge("rtg"),Ee=ge("rtc");function Oe(e,t=rn){ve("ec",e,t)}function Ne(e,t){const n=N;if(null===n)return e;const r=hn(n)||n.proxy,a=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[n,i,s,c=o.kT]=t[e];n&&((0,o.mf)(n)&&(n={mounted:n,updated:n}),n.deep&&q(i),a.push({dir:n,instance:r,value:i,oldValue:void 0,arg:s,modifiers:c}))}return e}function je(e,t,n,o){const a=e.dirs,s=t&&t.dirs;for(let c=0;c<a.length;c++){const l=a[c];s&&(l.oldValue=s[c].value);let u=l.dir[o];u&&((0,r.Jd)(),i(u,n,8,[e.el,l,e,t]),(0,r.lk)())}}const Le="components";function Ae(e,t){return Te(Le,e,!0,t)||e}const Me=Symbol();function Ie(e){return(0,o.HD)(e)?Te(Le,e,!1)||e:e||Me}function ze(e){return Te("directives",e)}function Te(e,t,n=!0,r=!1){const a=N||rn;if(a){const n=a.type;if(e===Le){const e=pn(n,!1);if(e&&(e===t||e===(0,o._A)(t)||e===(0,o.kC)((0,o._A)(t))))return n}const i=Re(a[e]||n[e],t)||Re(a.appContext[e],t);return!i&&r?n:i}}function Re(e,t){return e&&(e[t]||e[(0,o._A)(t)]||e[(0,o.kC)((0,o._A)(t))])}function $e(e,t,n,r){let a;const i=n&&n[r];if((0,o.kJ)(e)||(0,o.HD)(e)){a=new Array(e.length);for(let n=0,r=e.length;n<r;n++)a[n]=t(e[n],n,void 0,i&&i[n])}else if("number"==typeof e){a=new Array(e);for(let n=0;n<e;n++)a[n]=t(n+1,n,void 0,i&&i[n])}else if((0,o.Kn)(e))if(e[Symbol.iterator])a=Array.from(e,((e,n)=>t(e,n,void 0,i&&i[n])));else{const n=Object.keys(e);a=new Array(n.length);for(let r=0,o=n.length;r<o;r++){const o=n[r];a[r]=t(e[o],o,r,i&&i[r])}}else a=[];return n&&(n[r]=a),a}function Pe(e,t,n={},r,o){if(N.isCE||N.parent&&oe(N.parent)&&N.parent.isCE)return"default"!==t&&(n.name=t),Bt("slot",n,r&&r());let a=e[t];a&&a._c&&(a._d=!1),It();const i=a&&Fe(a(n)),s=Pt(Ot,{key:n.key||i&&i.key||`_${t}`},i||(r?r():[]),i&&1===e._?64:-2);return!o&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),a&&a._c&&(a._d=!0),s}function Fe(e){return e.some((e=>!Ft(e)||e.type!==jt&&!(e.type===Ot&&!Fe(e.children))))?e:null}function He(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:(0,o.hR)(r)]=e[r];return n}const De=e=>e?cn(e)?hn(e)||e.proxy:De(e.parent):null,Ve=(0,o.l7)(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>De(e.parent),$root:e=>De(e.root),$emit:e=>e.emit,$options:e=>Ge(e),$forceUpdate:e=>e.f||(e.f=()=>b(e.update)),$nextTick:e=>e.n||(e.n=g.bind(e.proxy)),$watch:e=>B.bind(e)}),Ue=(e,t)=>e!==o.kT&&!e.__isScriptSetup&&(0,o.RI)(e,t),We={get({_:e},t){const{ctx:n,setupState:a,data:i,props:s,accessCache:c,type:l,appContext:u}=e;let f;if("$"!==t[0]){const r=c[t];if(void 0!==r)switch(r){case 1:return a[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(Ue(a,t))return c[t]=1,a[t];if(i!==o.kT&&(0,o.RI)(i,t))return c[t]=2,i[t];if((f=e.propsOptions[0])&&(0,o.RI)(f,t))return c[t]=3,s[t];if(n!==o.kT&&(0,o.RI)(n,t))return c[t]=4,n[t];Be&&(c[t]=0)}}const h=Ve[t];let p,d;return h?("$attrs"===t&&(0,r.j)(e,"get",t),h(e)):(p=l.__cssModules)&&(p=p[t])?p:n!==o.kT&&(0,o.RI)(n,t)?(c[t]=4,n[t]):(d=u.config.globalProperties,(0,o.RI)(d,t)?d[t]:void 0)},set({_:e},t,n){const{data:r,setupState:a,ctx:i}=e;return Ue(a,t)?(a[t]=n,!0):r!==o.kT&&(0,o.RI)(r,t)?(r[t]=n,!0):!((0,o.RI)(e.props,t)||"$"===t[0]&&t.slice(1)in e||(i[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:a,propsOptions:i}},s){let c;return!!n[s]||e!==o.kT&&(0,o.RI)(e,s)||Ue(t,s)||(c=i[0])&&(0,o.RI)(c,s)||(0,o.RI)(r,s)||(0,o.RI)(Ve,s)||(0,o.RI)(a.config.globalProperties,s)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:(0,o.RI)(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Be=!0;function Ye(e,t,n){i((0,o.kJ)(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function qe(e,t,n,r){const a=r.includes(".")?Y(n,r):()=>n[r];if((0,o.HD)(e)){const n=t[e];(0,o.mf)(n)&&U(a,n)}else if((0,o.mf)(e))U(a,e.bind(n));else if((0,o.Kn)(e))if((0,o.kJ)(e))e.forEach((e=>qe(e,t,n,r)));else{const r=(0,o.mf)(e.handler)?e.handler.bind(n):t[e.handler];(0,o.mf)(r)&&U(a,r,e)}}function Ge(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:a,optionsCache:i,config:{optionMergeStrategies:s}}=e.appContext,c=i.get(t);let l;return c?l=c:a.length||n||r?(l={},a.length&&a.forEach((e=>Ze(l,e,s,!0))),Ze(l,t,s)):l=t,(0,o.Kn)(t)&&i.set(t,l),l}function Ze(e,t,n,r=!1){const{mixins:o,extends:a}=t;a&&Ze(e,a,n,!0),o&&o.forEach((t=>Ze(e,t,n,!0)));for(const o in t)if(r&&"expose"===o);else{const r=Xe[o]||n&&n[o];e[o]=r?r(e[o],t[o]):t[o]}return e}const Xe={data:Je,props:et,emits:et,methods:et,computed:et,beforeCreate:Qe,created:Qe,beforeMount:Qe,mounted:Qe,beforeUpdate:Qe,updated:Qe,beforeDestroy:Qe,beforeUnmount:Qe,destroyed:Qe,unmounted:Qe,activated:Qe,deactivated:Qe,errorCaptured:Qe,serverPrefetch:Qe,components:et,directives:et,watch:function(e,t){if(!e)return t;if(!t)return e;const n=(0,o.l7)(Object.create(null),e);for(const r in t)n[r]=Qe(e[r],t[r]);return n},provide:Je,inject:function(e,t){return et(Ke(e),Ke(t))}};function Je(e,t){return t?e?function(){return(0,o.l7)((0,o.mf)(e)?e.call(this,this):e,(0,o.mf)(t)?t.call(this,this):t)}:t:e}function Ke(e){if((0,o.kJ)(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Qe(e,t){return e?[...new Set([].concat(e,t))]:t}function et(e,t){return e?(0,o.l7)((0,o.l7)(Object.create(null),e),t):t}function tt(e,t,n,a){const[i,s]=e.propsOptions;let c,l=!1;if(t)for(let r in t){if((0,o.Gg)(r))continue;const u=t[r];let f;i&&(0,o.RI)(i,f=(0,o._A)(r))?s&&s.includes(f)?(c||(c={}))[f]=u:n[f]=u:O(e.emitsOptions,r)||r in a&&u===a[r]||(a[r]=u,l=!0)}if(s){const t=(0,r.IU)(n),a=c||o.kT;for(let r=0;r<s.length;r++){const c=s[r];n[c]=nt(i,t,c,a[c],e,!(0,o.RI)(a,c))}}return l}function nt(e,t,n,r,a,i){const s=e[n];if(null!=s){const e=(0,o.RI)(s,"default");if(e&&void 0===r){const e=s.default;if(s.type!==Function&&(0,o.mf)(e)){const{propsDefaults:o}=a;n in o?r=o[n]:(an(a),r=o[n]=e.call(null,t),sn())}else r=e}s[0]&&(i&&!e?r=!1:!s[1]||""!==r&&r!==(0,o.rs)(n)||(r=!0))}return r}function rt(e,t,n=!1){const r=t.propsCache,a=r.get(e);if(a)return a;const i=e.props,s={},c=[];let l=!1;if(!(0,o.mf)(e)){const r=e=>{l=!0;const[n,r]=rt(e,t,!0);(0,o.l7)(s,n),r&&c.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!i&&!l)return(0,o.Kn)(e)&&r.set(e,o.Z6),o.Z6;if((0,o.kJ)(i))for(let e=0;e<i.length;e++){const t=(0,o._A)(i[e]);ot(t)&&(s[t]=o.kT)}else if(i)for(const e in i){const t=(0,o._A)(e);if(ot(t)){const n=i[e],r=s[t]=(0,o.kJ)(n)||(0,o.mf)(n)?{type:n}:Object.assign({},n);if(r){const e=st(Boolean,r.type),n=st(String,r.type);r[0]=e>-1,r[1]=n<0||e<n,(e>-1||(0,o.RI)(r,"default"))&&c.push(t)}}}const u=[s,c];return(0,o.Kn)(e)&&r.set(e,u),u}function ot(e){return"$"!==e[0]}function at(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function it(e,t){return at(e)===at(t)}function st(e,t){return(0,o.kJ)(t)?t.findIndex((t=>it(t,e))):(0,o.mf)(t)&&it(t,e)?0:-1}const ct=e=>"_"===e[0]||"$stable"===e,lt=e=>(0,o.kJ)(e)?e.map(Xt):[Xt(e)],ut=(e,t,n)=>{if(t._n)return t;const r=z(((...e)=>lt(t(...e))),n);return r._c=!1,r},ft=(e,t,n)=>{const r=e._ctx;for(const n in e){if(ct(n))continue;const a=e[n];if((0,o.mf)(a))t[n]=ut(0,a,r);else if(null!=a){const e=lt(a);t[n]=()=>e}}},ht=(e,t)=>{const n=lt(t);e.slots.default=()=>n};function pt(){return{app:null,config:{isNativeTag:o.NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let dt=0;function mt(e,t){return function(n,r=null){(0,o.mf)(n)||(n=Object.assign({},n)),null==r||(0,o.Kn)(r)||(r=null);const a=pt(),i=new Set;let s=!1;const c=a.app={_uid:dt++,_component:n,_props:r,_container:null,_context:a,_instance:null,version:bn,get config(){return a.config},set config(e){},use:(e,...t)=>(i.has(e)||(e&&(0,o.mf)(e.install)?(i.add(e),e.install(c,...t)):(0,o.mf)(e)&&(i.add(e),e(c,...t))),c),mixin:e=>(a.mixins.includes(e)||a.mixins.push(e),c),component:(e,t)=>t?(a.components[e]=t,c):a.components[e],directive:(e,t)=>t?(a.directives[e]=t,c):a.directives[e],mount(o,i,l){if(!s){const u=Bt(n,r);return u.appContext=a,i&&t?t(u,o):e(u,o,l),s=!0,c._container=o,o.__vue_app__=c,hn(u.component)||u.component.proxy}},unmount(){s&&(e(null,c._container),delete c._container.__vue_app__)},provide:(e,t)=>(a.provides[e]=t,c)};return c}}function vt(e,t,n,i,s=!1){if((0,o.kJ)(e))return void e.forEach(((e,r)=>vt(e,t&&((0,o.kJ)(t)?t[r]:t),n,i,s)));if(oe(i)&&!s)return;const c=4&i.shapeFlag?hn(i.component)||i.component.proxy:i.el,l=s?null:c,{i:u,r:f}=e,h=t&&t.r,p=u.refs===o.kT?u.refs={}:u.refs,d=u.setupState;if(null!=h&&h!==f&&((0,o.HD)(h)?(p[h]=null,(0,o.RI)(d,h)&&(d[h]=null)):(0,r.dq)(h)&&(h.value=null)),(0,o.mf)(f))a(f,u,12,[l,p]);else{const t=(0,o.HD)(f),a=(0,r.dq)(f);if(t||a){const r=()=>{if(e.f){const n=t?(0,o.RI)(d,f)?d[f]:p[f]:f.value;s?(0,o.kJ)(n)&&(0,o.Od)(n,c):(0,o.kJ)(n)?n.includes(c)||n.push(c):t?(p[f]=[c],(0,o.RI)(d,f)&&(d[f]=p[f])):(f.value=[c],e.k&&(p[e.k]=f.value))}else t?(p[f]=l,(0,o.RI)(d,f)&&(d[f]=l)):a&&(f.value=l,e.k&&(p[e.k]=l))};l?(r.id=-1,gt(r,n)):r()}}}const gt=function(e,t){var n;t&&t.pendingBranch?(0,o.kJ)(e)?t.effects.push(...e):t.effects.push(e):(n=e,(0,o.kJ)(n)?h.push(...n):p&&p.includes(n,n.allowRecurse?d+1:d)||h.push(n),y())};function bt(e){return function(e,t){(0,o.E9)().__VUE__=!0;const{insert:n,remove:i,patchProp:c,createElement:l,createText:h,createComment:p,setText:d,setElementText:m,parentNode:v,nextSibling:g,setScopeId:y=o.dG,insertStaticContent:x}=e,k=(e,t,n,r=null,o=null,a=null,i=!1,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Ht(e,t)&&(r=te(e),X(e,o,a,!0),e=null),-2===t.patchFlag&&(c=!1,t.dynamicChildren=null);const{type:l,ref:u,shapeFlag:f}=t;switch(l){case Nt:S(e,t,n,r);break;case jt:N(e,t,n,r);break;case Lt:null==e&&j(t,n,r,i);break;case Ot:H(e,t,n,r,o,a,i,s,c);break;default:1&f?A(e,t,n,r,o,a,i,s,c):6&f?D(e,t,n,r,o,a,i,s,c):(64&f||128&f)&&l.process(e,t,n,r,o,a,i,s,c,re)}null!=u&&o&&vt(u,e&&e.ref,a,t||e,!t)},S=(e,t,r,o)=>{if(null==e)n(t.el=h(t.children),r,o);else{const n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},N=(e,t,r,o)=>{null==e?n(t.el=p(t.children||""),r,o):t.el=e.el},j=(e,t,n,r)=>{[e.el,e.anchor]=x(e.children,t,n,r,e.el,e.anchor)},L=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),i(e),e=n;i(t)},A=(e,t,n,r,o,a,i,s,c)=>{i=i||"svg"===t.type,null==e?M(t,n,r,o,a,i,s,c):R(e,t,o,a,i,s,c)},M=(e,t,r,a,i,s,u,f)=>{let h,p;const{type:d,props:v,shapeFlag:g,transition:b,dirs:y}=e;if(h=e.el=l(e.type,s,v&&v.is,v),8&g?m(h,e.children):16&g&&z(e.children,h,null,a,i,s&&"foreignObject"!==d,u,f),y&&je(e,null,a,"created"),v){for(const t in v)"value"===t||(0,o.Gg)(t)||c(h,t,null,v[t],s,e.children,a,i,ee);"value"in v&&c(h,"value",null,v.value),(p=v.onVnodeBeforeMount)&&en(p,a,e)}I(h,e,e.scopeId,u,a),y&&je(e,null,a,"beforeMount");const _=(!i||i&&!i.pendingBranch)&&b&&!b.persisted;_&&b.beforeEnter(h),n(h,t,r),((p=v&&v.onVnodeMounted)||_||y)&&gt((()=>{p&&en(p,a,e),_&&b.enter(h),y&&je(e,null,a,"mounted")}),i)},I=(e,t,n,r,o)=>{if(n&&y(e,n),r)for(let t=0;t<r.length;t++)y(e,r[t]);if(o&&t===o.subTree){const t=o.vnode;I(e,t,t.scopeId,t.slotScopeIds,o.parent)}},z=(e,t,n,r,o,a,i,s,c=0)=>{for(let l=c;l<e.length;l++){const c=e[l]=s?Jt(e[l]):Xt(e[l]);k(null,c,t,n,r,o,a,i,s)}},R=(e,t,n,r,a,i,s)=>{const l=t.el=e.el;let{patchFlag:u,dynamicChildren:f,dirs:h}=t;u|=16&e.patchFlag;const p=e.props||o.kT,d=t.props||o.kT;let v;n&&yt(n,!1),(v=d.onVnodeBeforeUpdate)&&en(v,n,t,e),h&&je(t,e,n,"beforeUpdate"),n&&yt(n,!0);const g=a&&"foreignObject"!==t.type;if(f?$(e.dynamicChildren,f,l,n,r,g,i):s||Y(e,t,l,null,n,r,g,i,!1),u>0){if(16&u)F(l,t,p,d,n,r,a);else if(2&u&&p.class!==d.class&&c(l,"class",null,d.class,a),4&u&&c(l,"style",p.style,d.style,a),8&u){const o=t.dynamicProps;for(let t=0;t<o.length;t++){const i=o[t],s=p[i],u=d[i];u===s&&"value"!==i||c(l,i,s,u,a,e.children,n,r,ee)}}1&u&&e.children!==t.children&&m(l,t.children)}else s||null!=f||F(l,t,p,d,n,r,a);((v=d.onVnodeUpdated)||h)&&gt((()=>{v&&en(v,n,t,e),h&&je(t,e,n,"updated")}),r)},$=(e,t,n,r,o,a,i)=>{for(let s=0;s<t.length;s++){const c=e[s],l=t[s],u=c.el&&(c.type===Ot||!Ht(c,l)||70&c.shapeFlag)?v(c.el):n;k(c,l,u,null,r,o,a,i,!0)}},F=(e,t,n,r,a,i,s)=>{if(n!==r){if(n!==o.kT)for(const l in n)(0,o.Gg)(l)||l in r||c(e,l,n[l],null,s,t.children,a,i,ee);for(const l in r){if((0,o.Gg)(l))continue;const u=r[l],f=n[l];u!==f&&"value"!==l&&c(e,l,f,u,s,t.children,a,i,ee)}"value"in r&&c(e,"value",n.value,r.value)}},H=(e,t,r,o,a,i,s,c,l)=>{const u=t.el=e?e.el:h(""),f=t.anchor=e?e.anchor:h("");let{patchFlag:p,dynamicChildren:d,slotScopeIds:m}=t;m&&(c=c?c.concat(m):m),null==e?(n(u,r,o),n(f,r,o),z(t.children,r,f,a,i,s,c,l)):p>0&&64&p&&d&&e.dynamicChildren?($(e.dynamicChildren,d,r,a,i,s,c),(null!=t.key||a&&t===a.subTree)&&_t(e,t,!0)):Y(e,t,r,f,a,i,s,c,l)},D=(e,t,n,r,o,a,i,s,c)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?o.ctx.activate(t,n,r,i,c):V(t,n,r,o,a,i,c):U(e,t,c)},V=(e,t,n,i,c,l,u)=>{const f=e.component=function(e,t,n){const a=e.type,i=(t?t.appContext:e.appContext)||tn,s={uid:nn++,vnode:e,type:a,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,scope:new r.Bj(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:rt(a,i),emitsOptions:E(a,i),emit:null,emitted:null,propsDefaults:o.kT,inheritAttrs:a.inheritAttrs,ctx:o.kT,data:o.kT,props:o.kT,attrs:o.kT,slots:o.kT,refs:o.kT,setupState:o.kT,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=C.bind(null,s),e.ce&&e.ce(s),s}(e,i,c);if(se(e)&&(f.ctx.renderer=re),function(e,t=!1){ln=t;const{props:n,children:i}=e.vnode,c=cn(e);!function(e,t,n,a=!1){const i={},s={};(0,o.Nj)(s,Dt,1),e.propsDefaults=Object.create(null),tt(e,t,i,s);for(const t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=a?i:(0,r.Um)(i):e.type.props?e.props=i:e.props=s,e.attrs=s}(e,n,c,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=(0,r.IU)(t),(0,o.Nj)(t,"_",n)):ft(t,e.slots={})}else e.slots={},t&&ht(e,t);(0,o.Nj)(e.slots,Dt,1)})(e,i);const l=c?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=(0,r.Xl)(new Proxy(e.ctx,We));const{setup:i}=n;if(i){const n=e.setupContext=i.length>1?function(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=function(e){return new Proxy(e.attrs,{get:(t,n)=>((0,r.j)(e,"get","$attrs"),t[n])})}(e))},slots:e.slots,emit:e.emit,expose:t}}(e):null;an(e),(0,r.Jd)();const c=a(i,e,0,[e.props,n]);if((0,r.lk)(),sn(),(0,o.tI)(c)){if(c.then(sn,sn),t)return c.then((n=>{un(e,n,t)})).catch((t=>{s(t,e,0)}));e.asyncDep=c}else un(e,c,t)}else fn(e,t)}(e,t):void 0;ln=!1}(f),f.asyncDep){if(c&&c.registerDep(f,W),!e.el){const e=f.subTree=Bt(jt);N(null,e,t,n)}}else W(f,e,t,n,c,l,u)},U=(e,t,n)=>{const r=t.component=e.component;if(function(e,t,n){const{props:r,children:o,component:a}=e,{props:i,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&c>=0))return!(!o&&!s||s&&s.$stable)||r!==i&&(r?!i||P(r,i,l):!!i);if(1024&c)return!0;if(16&c)return r?P(r,i,l):!!i;if(8&c){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(i[n]!==r[n]&&!O(l,n))return!0}}return!1}(e,t,n)){if(r.asyncDep&&!r.asyncResolved)return void B(r,t,n);r.next=t,function(e){const t=u.indexOf(e);t>f&&u.splice(t,1)}(r.update),r.update()}else t.el=e.el,r.vnode=t},W=(e,t,n,a,i,s,c)=>{const l=e.effect=new r.qq((()=>{if(e.isMounted){let t,{next:n,bu:r,u:a,parent:l,vnode:u}=e,f=n;yt(e,!1),n?(n.el=u.el,B(e,n,c)):n=u,r&&(0,o.ir)(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&en(t,l,n,u),yt(e,!0);const h=T(e),p=e.subTree;e.subTree=h,k(p,h,v(p.el),te(p),e,i,s),n.el=h.el,null===f&&function({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}(e,h.el),a&&gt(a,i),(t=n.props&&n.props.onVnodeUpdated)&&gt((()=>en(t,l,n,u)),i)}else{let r;const{el:c,props:l}=t,{bm:u,m:f,parent:h}=e,p=oe(t);if(yt(e,!1),u&&(0,o.ir)(u),!p&&(r=l&&l.onVnodeBeforeMount)&&en(r,h,t),yt(e,!0),c&&ie){const n=()=>{e.subTree=T(e),ie(c,e.subTree,e,i,null)};p?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{const r=e.subTree=T(e);k(null,r,n,a,e,i,s),t.el=r.el}if(f&&gt(f,i),!p&&(r=l&&l.onVnodeMounted)){const e=t;gt((()=>en(r,h,e)),i)}(256&t.shapeFlag||h&&oe(h.vnode)&&256&h.vnode.shapeFlag)&&e.a&&gt(e.a,i),e.isMounted=!0,t=n=a=null}}),(()=>b(u)),e.scope),u=e.update=()=>l.run();u.id=e.uid,yt(e,!0),u()},B=(e,t,n)=>{t.component=e;const a=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,a){const{props:i,attrs:s,vnode:{patchFlag:c}}=e,l=(0,r.IU)(i),[u]=e.propsOptions;let f=!1;if(!(a||c>0)||16&c){let r;tt(e,t,i,s)&&(f=!0);for(const a in l)t&&((0,o.RI)(t,a)||(r=(0,o.rs)(a))!==a&&(0,o.RI)(t,r))||(u?!n||void 0===n[a]&&void 0===n[r]||(i[a]=nt(u,l,a,void 0,e,!0)):delete i[a]);if(s!==l)for(const e in s)t&&(0,o.RI)(t,e)||(delete s[e],f=!0)}else if(8&c){const n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let a=n[r];if(O(e.emitsOptions,a))continue;const c=t[a];if(u)if((0,o.RI)(s,a))c!==s[a]&&(s[a]=c,f=!0);else{const t=(0,o._A)(a);i[t]=nt(u,l,t,c,e,!1)}else c!==s[a]&&(s[a]=c,f=!0)}}f&&(0,r.X$)(e,"set","$attrs")}(e,t.props,a,n),((e,t,n)=>{const{vnode:r,slots:a}=e;let i=!0,s=o.kT;if(32&r.shapeFlag){const e=t._;e?n&&1===e?i=!1:((0,o.l7)(a,t),n||1!==e||delete a._):(i=!t.$stable,ft(t,a)),s=t}else t&&(ht(e,t),s={default:1});if(i)for(const e in a)ct(e)||e in s||delete a[e]})(e,t.children,n),(0,r.Jd)(),_(),(0,r.lk)()},Y=(e,t,n,r,o,a,i,s,c=!1)=>{const l=e&&e.children,u=e?e.shapeFlag:0,f=t.children,{patchFlag:h,shapeFlag:p}=t;if(h>0){if(128&h)return void G(l,f,n,r,o,a,i,s,c);if(256&h)return void q(l,f,n,r,o,a,i,s,c)}8&p?(16&u&&ee(l,o,a),f!==l&&m(n,f)):16&u?16&p?G(l,f,n,r,o,a,i,s,c):ee(l,o,a,!0):(8&u&&m(n,""),16&p&&z(f,n,r,o,a,i,s,c))},q=(e,t,n,r,a,i,s,c,l)=>{e=e||o.Z6,t=t||o.Z6;const u=e.length,f=t.length,h=Math.min(u,f);let p;for(p=0;p<h;p++){const r=t[p]=l?Jt(t[p]):Xt(t[p]);k(e[p],r,n,null,a,i,s,c,l)}u>f?ee(e,a,i,!0,!1,h):z(t,n,r,a,i,s,c,l,h)},G=(e,t,n,r,a,i,s,c,l)=>{let u=0;const f=t.length;let h=e.length-1,p=f-1;for(;u<=h&&u<=p;){const r=e[u],o=t[u]=l?Jt(t[u]):Xt(t[u]);if(!Ht(r,o))break;k(r,o,n,null,a,i,s,c,l),u++}for(;u<=h&&u<=p;){const r=e[h],o=t[p]=l?Jt(t[p]):Xt(t[p]);if(!Ht(r,o))break;k(r,o,n,null,a,i,s,c,l),h--,p--}if(u>h){if(u<=p){const e=p+1,o=e<f?t[e].el:r;for(;u<=p;)k(null,t[u]=l?Jt(t[u]):Xt(t[u]),n,o,a,i,s,c,l),u++}}else if(u>p)for(;u<=h;)X(e[u],a,i,!0),u++;else{const d=u,m=u,v=new Map;for(u=m;u<=p;u++){const e=t[u]=l?Jt(t[u]):Xt(t[u]);null!=e.key&&v.set(e.key,u)}let g,b=0;const y=p-m+1;let _=!1,w=0;const x=new Array(y);for(u=0;u<y;u++)x[u]=0;for(u=d;u<=h;u++){const r=e[u];if(b>=y){X(r,a,i,!0);continue}let o;if(null!=r.key)o=v.get(r.key);else for(g=m;g<=p;g++)if(0===x[g-m]&&Ht(r,t[g])){o=g;break}void 0===o?X(r,a,i,!0):(x[o-m]=u+1,o>=w?w=o:_=!0,k(r,t[o],n,null,a,i,s,c,l),b++)}const S=_?function(e){const t=e.slice(),n=[0];let r,o,a,i,s;const c=e.length;for(r=0;r<c;r++){const c=e[r];if(0!==c){if(o=n[n.length-1],e[o]<c){t[r]=o,n.push(r);continue}for(a=0,i=n.length-1;a<i;)s=a+i>>1,e[n[s]]<c?a=s+1:i=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,i=n[a-1];a-- >0;)n[a]=i,i=t[i];return n}(x):o.Z6;for(g=S.length-1,u=y-1;u>=0;u--){const e=m+u,o=t[e],h=e+1<f?t[e+1].el:r;0===x[u]?k(null,o,n,h,a,i,s,c,l):_&&(g<0||u!==S[g]?Z(o,n,h,2):g--)}}},Z=(e,t,r,o,a=null)=>{const{el:i,type:s,transition:c,children:l,shapeFlag:u}=e;if(6&u)Z(e.component.subTree,t,r,o);else if(128&u)e.suspense.move(t,r,o);else if(64&u)s.move(e,t,r,re);else if(s!==Ot)if(s!==Lt)if(2!==o&&1&u&&c)if(0===o)c.beforeEnter(i),n(i,t,r),gt((()=>c.enter(i)),a);else{const{leave:e,delayLeave:o,afterLeave:a}=c,s=()=>n(i,t,r),l=()=>{e(i,(()=>{s(),a&&a()}))};o?o(i,s,l):l()}else n(i,t,r);else(({el:e,anchor:t},r,o)=>{let a;for(;e&&e!==t;)a=g(e),n(e,r,o),e=a;n(t,r,o)})(e,t,r);else{n(i,t,r);for(let e=0;e<l.length;e++)Z(l[e],t,r,o);n(e.anchor,t,r)}},X=(e,t,n,r=!1,o=!1)=>{const{type:a,props:i,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:f,dirs:h}=e;if(null!=s&&vt(s,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const p=1&u&&h,d=!oe(e);let m;if(d&&(m=i&&i.onVnodeBeforeUnmount)&&en(m,t,e),6&u)Q(e.component,n,r);else{if(128&u)return void e.suspense.unmount(n,r);p&&je(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,o,re,r):l&&(a!==Ot||f>0&&64&f)?ee(l,t,n,!1,!0):(a===Ot&&384&f||!o&&16&u)&&ee(c,t,n),r&&J(e)}(d&&(m=i&&i.onVnodeUnmounted)||p)&&gt((()=>{m&&en(m,t,e),p&&je(e,null,t,"unmounted")}),n)},J=e=>{const{type:t,el:n,anchor:r,transition:o}=e;if(t===Ot)return void K(n,r);if(t===Lt)return void L(e);const a=()=>{i(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&e.shapeFlag&&o&&!o.persisted){const{leave:t,delayLeave:r}=o,i=()=>t(n,a);r?r(e.el,a,i):i()}else a()},K=(e,t)=>{let n;for(;e!==t;)n=g(e),i(e),e=n;i(t)},Q=(e,t,n)=>{const{bum:r,scope:a,update:i,subTree:s,um:c}=e;r&&(0,o.ir)(r),a.stop(),i&&(i.active=!1,X(s,e,t,n)),c&&gt(c,t),gt((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},ee=(e,t,n,r=!1,o=!1,a=0)=>{for(let i=a;i<e.length;i++)X(e[i],t,n,r,o)},te=e=>6&e.shapeFlag?te(e.component.subTree):128&e.shapeFlag?e.suspense.next():g(e.anchor||e.el),ne=(e,t,n)=>{null==e?t._vnode&&X(t._vnode,null,null,!0):k(t._vnode||null,e,t,null,null,null,n),_(),w(),t._vnode=e},re={p:k,um:X,m:Z,r:J,mt:V,mc:z,pc:Y,pbc:$,n:te,o:e};let ae,ie;return t&&([ae,ie]=t(re)),{render:ne,hydrate:ae,createApp:mt(ne,ae)}}(e)}function yt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function _t(e,t,n=!1){const r=e.children,a=t.children;if((0,o.kJ)(r)&&(0,o.kJ)(a))for(let e=0;e<r.length;e++){const t=r[e];let o=a[e];1&o.shapeFlag&&!o.dynamicChildren&&((o.patchFlag<=0||32===o.patchFlag)&&(o=a[e]=Jt(a[e]),o.el=t.el),n||_t(t,o)),o.type===Nt&&(o.el=t.el)}}const wt=e=>e&&(e.disabled||""===e.disabled),xt=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,kt=(e,t)=>{const n=e&&e.to;if((0,o.HD)(n)){if(t){return t(n)}return null}return n};function St(e,t,n,{o:{insert:r},m:o},a=2){0===a&&r(e.targetAnchor,t,n);const{el:i,anchor:s,shapeFlag:c,children:l,props:u}=e,f=2===a;if(f&&r(i,t,n),(!f||wt(u))&&16&c)for(let e=0;e<l.length;e++)o(l[e],t,n,2);f&&r(s,t,n)}const Ct={__isTeleport:!0,process(e,t,n,r,o,a,i,s,c,l){const{mc:u,pc:f,pbc:h,o:{insert:p,querySelector:d,createText:m,createComment:v}}=l,g=wt(t.props);let{shapeFlag:b,children:y,dynamicChildren:_}=t;if(null==e){const e=t.el=m(""),l=t.anchor=m("");p(e,n,r),p(l,n,r);const f=t.target=kt(t.props,d),h=t.targetAnchor=m("");f&&(p(h,f),i=i||xt(f));const v=(e,t)=>{16&b&&u(y,e,t,o,a,i,s,c)};g?v(n,l):f&&v(f,h)}else{t.el=e.el;const r=t.anchor=e.anchor,u=t.target=e.target,p=t.targetAnchor=e.targetAnchor,m=wt(e.props),v=m?n:u,b=m?r:p;if(i=i||xt(u),_?(h(e.dynamicChildren,_,v,o,a,i,s),_t(e,t,!0)):c||f(e,t,v,b,o,a,i,s,!1),g)m||St(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=kt(t.props,d);e&&St(t,e,null,l,0)}else m&&St(t,u,p,l,1)}Et(t)},remove(e,t,n,r,{um:o,o:{remove:a}},i){const{shapeFlag:s,children:c,anchor:l,targetAnchor:u,target:f,props:h}=e;if(f&&a(u),(i||!wt(h))&&(a(l),16&s))for(let e=0;e<c.length;e++){const r=c[e];o(r,t,n,!0,!!r.dynamicChildren)}},move:St,hydrate:function(e,t,n,r,o,a,{o:{nextSibling:i,parentNode:s,querySelector:c}},l){const u=t.target=kt(t.props,c);if(u){const c=u._lpa||u.firstChild;if(16&t.shapeFlag)if(wt(t.props))t.anchor=l(i(e),t,s(e),n,r,o,a),t.targetAnchor=c;else{t.anchor=i(e);let s=c;for(;s;)if(s=i(s),s&&8===s.nodeType&&"teleport anchor"===s.data){t.targetAnchor=s,u._lpa=t.targetAnchor&&i(t.targetAnchor);break}l(c,t,u,n,r,o,a)}Et(t)}return t.anchor&&i(t.anchor)}};function Et(e){const t=e.ctx;if(t&&t.ut){let n=e.children[0].el;for(;n!==e.targetAnchor;)1===n.nodeType&&n.setAttribute("data-v-owner",t.uid),n=n.nextSibling;t.ut()}}const Ot=Symbol(void 0),Nt=Symbol(void 0),jt=Symbol(void 0),Lt=Symbol(void 0),At=[];let Mt=null;function It(e=!1){At.push(Mt=e?null:[])}let zt=1;function Tt(e){zt+=e}function Rt(e){return e.dynamicChildren=zt>0?Mt||o.Z6:null,At.pop(),Mt=At[At.length-1]||null,zt>0&&Mt&&Mt.push(e),e}function $t(e,t,n,r,o,a){return Rt(Wt(e,t,n,r,o,a,!0))}function Pt(e,t,n,r,o){return Rt(Bt(e,t,n,r,o,!0))}function Ft(e){return!!e&&!0===e.__v_isVNode}function Ht(e,t){return e.type===t.type&&e.key===t.key}const Dt="__vInternal",Vt=({key:e})=>null!=e?e:null,Ut=({ref:e,ref_key:t,ref_for:n})=>null!=e?(0,o.HD)(e)||(0,r.dq)(e)||(0,o.mf)(e)?{i:N,r:e,k:t,f:!!n}:e:null;function Wt(e,t=null,n=null,r=0,a=null,i=(e===Ot?0:1),s=!1,c=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Vt(t),ref:t&&Ut(t),scopeId:j,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:N};return c?(Kt(l,n),128&i&&e.normalize(l)):n&&(l.shapeFlag|=(0,o.HD)(n)?8:16),zt>0&&!s&&Mt&&(l.patchFlag>0||6&i)&&32!==l.patchFlag&&Mt.push(l),l}const Bt=function(e,t=null,n=null,a=0,i=null,s=!1){if(e&&e!==Me||(e=jt),Ft(e)){const r=qt(e,t,!0);return n&&Kt(r,n),zt>0&&!s&&Mt&&(6&r.shapeFlag?Mt[Mt.indexOf(e)]=r:Mt.push(r)),r.patchFlag|=-2,r}if(c=e,(0,o.mf)(c)&&"__vccOpts"in c&&(e=e.__vccOpts),t){t=Yt(t);let{class:e,style:n}=t;e&&!(0,o.HD)(e)&&(t.class=(0,o.C_)(e)),(0,o.Kn)(n)&&((0,r.X3)(n)&&!(0,o.kJ)(n)&&(n=(0,o.l7)({},n)),t.style=(0,o.j5)(n))}var c;return Wt(e,t,n,a,i,(0,o.HD)(e)?1:F(e)?128:(e=>e.__isTeleport)(e)?64:(0,o.Kn)(e)?4:(0,o.mf)(e)?2:0,s,!0)};function Yt(e){return e?(0,r.X3)(e)||Dt in e?(0,o.l7)({},e):e:null}function qt(e,t,n=!1){const{props:r,ref:a,patchFlag:i,children:s}=e,c=t?Qt(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Vt(c),ref:t&&t.ref?n&&a?(0,o.kJ)(a)?a.concat(Ut(t)):[a,Ut(t)]:Ut(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ot?-1===i?16:16|i:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&qt(e.ssContent),ssFallback:e.ssFallback&&qt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function Gt(e=" ",t=0){return Bt(Nt,null,e,t)}function Zt(e="",t=!1){return t?(It(),Pt(jt,null,e)):Bt(jt,null,e)}function Xt(e){return null==e||"boolean"==typeof e?Bt(jt):(0,o.kJ)(e)?Bt(Ot,null,e.slice()):"object"==typeof e?Jt(e):Bt(Nt,null,String(e))}function Jt(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:qt(e)}function Kt(e,t){let n=0;const{shapeFlag:r}=e;if(null==t)t=null;else if((0,o.kJ)(t))n=16;else if("object"==typeof t){if(65&r){const n=t.default;return void(n&&(n._c&&(n._d=!1),Kt(e,n()),n._c&&(n._d=!0)))}{n=32;const r=t._;r||Dt in t?3===r&&N&&(1===N.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=N}}else(0,o.mf)(t)?(t={default:t,_ctx:N},n=32):(t=String(t),64&r?(n=16,t=[Gt(t)]):n=8);e.children=t,e.shapeFlag|=n}function Qt(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const e in r)if("class"===e)t.class!==r.class&&(t.class=(0,o.C_)([t.class,r.class]));else if("style"===e)t.style=(0,o.j5)([t.style,r.style]);else if((0,o.F7)(e)){const n=t[e],a=r[e];!a||n===a||(0,o.kJ)(n)&&n.includes(a)||(t[e]=n?[].concat(n,a):a)}else""!==e&&(t[e]=r[e])}return t}function en(e,t,n,r=null){i(e,t,7,[n,r])}const tn=pt();let nn=0;let rn=null;const on=()=>rn||N,an=e=>{rn=e,e.scope.on()},sn=()=>{rn&&rn.scope.off(),rn=null};function cn(e){return 4&e.vnode.shapeFlag}let ln=!1;function un(e,t,n){(0,o.mf)(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:(0,o.Kn)(t)&&(e.setupState=(0,r.WL)(t)),fn(e,n)}function fn(e,t,n){const a=e.type;e.render||(e.render=a.render||o.dG),an(e),(0,r.Jd)(),function(e){const t=Ge(e),n=e.proxy,a=e.ctx;Be=!1,t.beforeCreate&&Ye(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:c,watch:l,provide:u,inject:f,created:h,beforeMount:p,mounted:d,beforeUpdate:m,updated:v,activated:g,deactivated:b,beforeDestroy:y,beforeUnmount:_,destroyed:w,unmounted:x,render:k,renderTracked:S,renderTriggered:C,errorCaptured:E,serverPrefetch:O,expose:N,inheritAttrs:j,components:L,directives:A,filters:M}=t;if(f&&function(e,t,n=o.dG,a=!1){(0,o.kJ)(e)&&(e=Ke(e));for(const n in e){const i=e[n];let s;s=(0,o.Kn)(i)?"default"in i?D(i.from||n,i.default,!0):D(i.from||n):D(i),(0,r.dq)(s)&&a?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e}):t[n]=s}}(f,a,null,e.appContext.config.unwrapInjectedRef),c)for(const e in c){const t=c[e];(0,o.mf)(t)&&(a[e]=t.bind(n))}if(i){const t=i.call(n,n);(0,o.Kn)(t)&&(e.data=(0,r.qj)(t))}if(Be=!0,s)for(const e in s){const t=s[e],r=(0,o.mf)(t)?t.bind(n,n):(0,o.mf)(t.get)?t.get.bind(n,n):o.dG,i=!(0,o.mf)(t)&&(0,o.mf)(t.set)?t.set.bind(n):o.dG,c=dn({get:r,set:i});Object.defineProperty(a,e,{enumerable:!0,configurable:!0,get:()=>c.value,set:e=>c.value=e})}if(l)for(const e in l)qe(l[e],a,n,e);if(u){const e=(0,o.mf)(u)?u.call(n):u;Reflect.ownKeys(e).forEach((t=>{H(t,e[t])}))}function I(e,t){(0,o.kJ)(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(h&&Ye(h,e,"c"),I(be,p),I(ye,d),I(_e,m),I(we,v),I(ue,g),I(fe,b),I(Oe,E),I(Ee,S),I(Ce,C),I(xe,_),I(ke,x),I(Se,O),(0,o.kJ)(N))if(N.length){const t=e.exposed||(e.exposed={});N.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});k&&e.render===o.dG&&(e.render=k),null!=j&&(e.inheritAttrs=j),L&&(e.components=L),A&&(e.directives=A)}(e),(0,r.lk)(),sn()}function hn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy((0,r.WL)((0,r.Xl)(e.exposed)),{get:(t,n)=>n in t?t[n]:n in Ve?Ve[n](e):void 0,has:(e,t)=>t in e||t in Ve}))}function pn(e,t=!0){return(0,o.mf)(e)?e.displayName||e.name:e.name||t&&e.__name}const dn=(e,t)=>(0,r.Fl)(e,t,ln);function mn(e,t,n){const r=arguments.length;return 2===r?(0,o.Kn)(t)&&!(0,o.kJ)(t)?Ft(t)?Bt(e,null,[t]):Bt(e,t):Bt(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&Ft(n)&&(n=[n]),Bt(e,t,n))}const vn=Symbol(""),gn=()=>D(vn),bn="3.2.45"},49963:(e,t,n)=>{"use strict";n.d(t,{D2:()=>Z,F8:()=>X,YZ:()=>U,e8:()=>R,iM:()=>q,nr:()=>T,ri:()=>ee,uT:()=>_});var r=n(3577),o=n(66252);n(2262);const a="undefined"!=typeof document?document:null,i=a&&a.createElement("template"),s={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?a.createElementNS("http://www.w3.org/2000/svg",e):a.createElement(e,n?{is:n}:void 0);return"select"===e&&r&&null!=r.multiple&&o.setAttribute("multiple",r.multiple),o},createText:e=>a.createTextNode(e),createComment:e=>a.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>a.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,a){const s=n?n.previousSibling:t.lastChild;if(o&&(o===a||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),o!==a&&(o=o.nextSibling););else{i.innerHTML=r?`<svg>${e}</svg>`:e;const o=i.content;if(r){const e=o.firstChild;for(;e.firstChild;)o.appendChild(e.firstChild);o.removeChild(e)}t.insertBefore(o,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},c=/\s*!important$/;function l(e,t,n){if((0,r.kJ)(n))n.forEach((n=>l(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=f[t];if(n)return n;let o=(0,r._A)(t);if("filter"!==o&&o in e)return f[t]=o;o=(0,r.kC)(o);for(let n=0;n<u.length;n++){const r=u[n]+o;if(r in e)return f[t]=r}return t}(e,t);c.test(n)?e.setProperty((0,r.rs)(o),n.replace(c,""),"important"):e[o]=n}}const u=["Webkit","Moz","ms"],f={},h="http://www.w3.org/1999/xlink";function p(e,t,n,r){e.addEventListener(t,n,r)}const d=/(?:Once|Passive|Capture)$/;let m=0;const v=Promise.resolve(),g=/^on[a-z]/;"undefined"!=typeof HTMLElement&&HTMLElement;const b="transition",y="animation",_=(e,{slots:t})=>(0,o.h)(o.P$,function(e){const t={};for(const n in e)n in w||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:o,duration:a,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:l=i,appearActiveClass:u=s,appearToClass:f=c,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,m=function(e){if(null==e)return null;if((0,r.Kn)(e))return[S(e.enter),S(e.leave)];{const t=S(e);return[t,t]}}(a),v=m&&m[0],g=m&&m[1],{onBeforeEnter:b,onEnter:y,onEnterCancelled:_,onLeave:N,onLeaveCancelled:L,onBeforeAppear:A=b,onAppear:M=y,onAppearCancelled:I=_}=t,z=(e,t,n)=>{E(e,t?f:c),E(e,t?u:s),n&&n()},T=(e,t)=>{e._isLeaving=!1,E(e,h),E(e,d),E(e,p),t&&t()},R=e=>(t,n)=>{const r=e?M:y,a=()=>z(t,e,n);x(r,[t,a]),O((()=>{E(t,e?l:i),C(t,e?f:c),k(r)||j(t,o,v,a)}))};return(0,r.l7)(t,{onBeforeEnter(e){x(b,[e]),C(e,i),C(e,s)},onBeforeAppear(e){x(A,[e]),C(e,l),C(e,u)},onEnter:R(!1),onAppear:R(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>T(e,t);C(e,h),document.body.offsetHeight,C(e,p),O((()=>{e._isLeaving&&(E(e,h),C(e,d),k(N)||j(e,o,g,n))})),x(N,[e,n])},onEnterCancelled(e){z(e,!1),x(_,[e])},onAppearCancelled(e){z(e,!0),x(I,[e])},onLeaveCancelled(e){T(e),x(L,[e])}})}(e),t);_.displayName="Transition";const w={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},x=(_.props=(0,r.l7)({},o.P$.props,w),(e,t=[])=>{(0,r.kJ)(e)?e.forEach((e=>e(...t))):e&&e(...t)}),k=e=>!!e&&((0,r.kJ)(e)?e.some((e=>e.length>1)):e.length>1);function S(e){return(0,r.He)(e)}function C(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function E(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function O(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let N=0;function j(e,t,n,r){const o=e._endId=++N,a=()=>{o===e._endId&&r()};if(n)return setTimeout(a,n);const{type:i,timeout:s,propCount:c}=function(e,t){const n=window.getComputedStyle(e),r=e=>(n[e]||"").split(", "),o=r("transitionDelay"),a=r("transitionDuration"),i=L(o,a),s=r("animationDelay"),c=r("animationDuration"),l=L(s,c);let u=null,f=0,h=0;return t===b?i>0&&(u=b,f=i,h=a.length):t===y?l>0&&(u=y,f=l,h=c.length):(f=Math.max(i,l),u=f>0?i>l?b:y:null,h=u?u===b?a.length:c.length:0),{type:u,timeout:f,propCount:h,hasTransform:u===b&&/\b(transform|all)(,|$)/.test(r("transitionProperty").toString())}}(e,t);if(!i)return r();const l=i+"end";let u=0;const f=()=>{e.removeEventListener(l,h),a()},h=t=>{t.target===e&&++u>=c&&f()};setTimeout((()=>{u<c&&f()}),s+1),e.addEventListener(l,h)}function L(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map(((t,n)=>A(t)+A(e[n]))))}function A(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}new WeakMap,new WeakMap;const M=e=>{const t=e.props["onUpdate:modelValue"]||!1;return(0,r.kJ)(t)?e=>(0,r.ir)(t,e):t};function I(e){e.target.composing=!0}function z(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const T={created(e,{modifiers:{lazy:t,trim:n,number:o}},a){e._assign=M(a);const i=o||a.props&&"number"===a.props.type;p(e,t?"change":"input",(t=>{if(t.target.composing)return;let o=e.value;n&&(o=o.trim()),i&&(o=(0,r.He)(o)),e._assign(o)})),n&&p(e,"change",(()=>{e.value=e.value.trim()})),t||(p(e,"compositionstart",I),p(e,"compositionend",z),p(e,"change",z))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:a}},i){if(e._assign=M(i),e.composing)return;if(document.activeElement===e&&"range"!==e.type){if(n)return;if(o&&e.value.trim()===t)return;if((a||"number"===e.type)&&(0,r.He)(e.value)===t)return}const s=null==t?"":t;e.value!==s&&(e.value=s)}},R={deep:!0,created(e,t,n){e._assign=M(n),p(e,"change",(()=>{const t=e._modelValue,n=D(e),o=e.checked,a=e._assign;if((0,r.kJ)(t)){const e=(0,r.hq)(t,n),i=-1!==e;if(o&&!i)a(t.concat(n));else if(!o&&i){const n=[...t];n.splice(e,1),a(n)}}else if((0,r.DM)(t)){const e=new Set(t);o?e.add(n):e.delete(n),a(e)}else a(V(e,o))}))},mounted:$,beforeUpdate(e,t,n){e._assign=M(n),$(e,t,n)}};function $(e,{value:t,oldValue:n},o){e._modelValue=t,(0,r.kJ)(t)?e.checked=(0,r.hq)(t,o.props.value)>-1:(0,r.DM)(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=(0,r.WV)(t,V(e,!0)))}const P={created(e,{value:t},n){e.checked=(0,r.WV)(t,n.props.value),e._assign=M(n),p(e,"change",(()=>{e._assign(D(e))}))},beforeUpdate(e,{value:t,oldValue:n},o){e._assign=M(o),t!==n&&(e.checked=(0,r.WV)(t,o.props.value))}},F={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const a=(0,r.DM)(t);p(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?(0,r.He)(D(e)):D(e)));e._assign(e.multiple?a?new Set(t):t:t[0])})),e._assign=M(o)},mounted(e,{value:t}){H(e,t)},beforeUpdate(e,t,n){e._assign=M(n)},updated(e,{value:t}){H(e,t)}};function H(e,t){const n=e.multiple;if(!n||(0,r.kJ)(t)||(0,r.DM)(t)){for(let o=0,a=e.options.length;o<a;o++){const a=e.options[o],i=D(a);if(n)(0,r.kJ)(t)?a.selected=(0,r.hq)(t,i)>-1:a.selected=t.has(i);else if((0,r.WV)(D(a),t))return void(e.selectedIndex!==o&&(e.selectedIndex=o))}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function D(e){return"_value"in e?e._value:e.value}function V(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const U={created(e,t,n){W(e,t,n,null,"created")},mounted(e,t,n){W(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){W(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){W(e,t,n,r,"updated")}};function W(e,t,n,r,o){const a=function(e,t){switch(e){case"SELECT":return F;case"TEXTAREA":return T;default:switch(t){case"checkbox":return R;case"radio":return P;default:return T}}}(e.tagName,n.props&&n.props.type)[o];a&&a(e,t,n,r)}const B=["ctrl","shift","alt","meta"],Y={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>B.some((n=>e[`${n}Key`]&&!t.includes(n)))},q=(e,t)=>(n,...r)=>{for(let e=0;e<t.length;e++){const r=Y[t[e]];if(r&&r(n,t))return}return e(n,...r)},G={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Z=(e,t)=>n=>{if(!("key"in n))return;const o=(0,r.rs)(n.key);return t.some((e=>e===o||G[e]===o))?e(n):void 0},X={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):J(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),J(e,!0),r.enter(e)):r.leave(e,(()=>{J(e,!1)})):J(e,t))},beforeUnmount(e,{value:t}){J(e,t)}};function J(e,t){e.style.display=t?e._vod:"none"}const K=(0,r.l7)({patchProp:(e,t,n,a,i=!1,s,c,u,f)=>{"class"===t?function(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,a,i):"style"===t?function(e,t,n){const o=e.style,a=(0,r.HD)(n);if(n&&!a){for(const e in n)l(o,e,n[e]);if(t&&!(0,r.HD)(t))for(const e in t)null==n[e]&&l(o,e,"")}else{const r=o.display;a?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=r)}}(e,n,a):(0,r.F7)(t)?(0,r.tR)(t)||function(e,t,n,a,i=null){const s=e._vei||(e._vei={}),c=s[t];if(a&&c)c.value=a;else{const[n,l]=function(e){let t;if(d.test(e)){let n;for(t={};n=e.match(d);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):(0,r.rs)(e.slice(2)),t]}(t);if(a){const c=s[t]=function(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();(0,o.$d)(function(e,t){if((0,r.kJ)(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=m||(v.then((()=>m=0)),m=Date.now()),n}(a,i);p(e,n,c,l)}else c&&(function(e,t,n,r){e.removeEventListener(t,n,r)}(e,n,c,l),s[t]=void 0)}}(e,t,0,a,c):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){return o?"innerHTML"===t||"textContent"===t||!!(t in e&&g.test(t)&&(0,r.mf)(n)):"spellcheck"!==t&&"draggable"!==t&&"translate"!==t&&("form"!==t&&(("list"!==t||"INPUT"!==e.tagName)&&(("type"!==t||"TEXTAREA"!==e.tagName)&&((!g.test(t)||!(0,r.HD)(n))&&t in e))))}(e,t,a,i))?function(e,t,n,o,a,i,s){if("innerHTML"===t||"textContent"===t)return o&&s(o,a,i),void(e[t]=null==n?"":n);if("value"===t&&"PROGRESS"!==e.tagName&&!e.tagName.includes("-")){e._value=n;const r=null==n?"":n;return e.value===r&&"OPTION"!==e.tagName||(e.value=r),void(null==n&&e.removeAttribute(t))}let c=!1;if(""===n||null==n){const o=typeof e[t];"boolean"===o?n=(0,r.yA)(n):null==n&&"string"===o?(n="",c=!0):"number"===o&&(n=0,c=!0)}try{e[t]=n}catch(e){}c&&e.removeAttribute(t)}(e,t,a,s,c,u,f):("true-value"===t?e._trueValue=a:"false-value"===t&&(e._falseValue=a),function(e,t,n,o,a){if(o&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(h,t.slice(6,t.length)):e.setAttributeNS(h,t,n);else{const o=(0,r.Pq)(t);null==n||o&&!(0,r.yA)(n)?e.removeAttribute(t):e.setAttribute(t,o?"":n)}}(e,t,a,i))}},s);let Q;const ee=(...e)=>{const t=(Q||(Q=(0,o.Us)(K))).createApp(...e),{mount:n}=t;return t.mount=e=>{const o=function(e){if((0,r.HD)(e))return document.querySelector(e);return e}(e);if(!o)return;const a=t._component;(0,r.mf)(a)||a.render||a.template||(a.template=o.innerHTML),o.innerHTML="";const i=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),i},t}},3577:(e,t,n)=>{"use strict";function r(e,t){const n=Object.create(null),r=e.split(",");for(let e=0;e<r.length;e++)n[r[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}n.d(t,{C_:()=>u,DM:()=>A,E9:()=>ne,F7:()=>k,Gg:()=>U,HD:()=>z,He:()=>ee,Kn:()=>R,NO:()=>w,Nj:()=>Q,Od:()=>E,PO:()=>D,Pq:()=>h,RI:()=>N,S0:()=>V,W7:()=>H,WV:()=>d,Z6:()=>y,_A:()=>Y,_N:()=>L,aU:()=>J,dG:()=>_,e1:()=>o,fY:()=>r,hR:()=>X,hq:()=>m,ir:()=>K,j5:()=>a,kC:()=>Z,kJ:()=>j,kT:()=>b,l7:()=>C,mf:()=>I,rs:()=>G,tI:()=>$,tR:()=>S,vs:()=>f,yA:()=>p,yk:()=>T,zw:()=>v});const o=r("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt");function a(e){if(j(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],o=z(r)?l(r):a(r);if(o)for(const e in o)t[e]=o[e]}return t}return z(e)||R(e)?e:void 0}const i=/;(?![^(]*\))/g,s=/:([^]+)/,c=/\/\*.*?\*\//gs;function l(e){const t={};return e.replace(c,"").split(i).forEach((e=>{if(e){const n=e.split(s);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function u(e){let t="";if(z(e))t=e;else if(j(e))for(let n=0;n<e.length;n++){const r=u(e[n]);r&&(t+=r+" ")}else if(R(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function f(e){if(!e)return null;let{class:t,style:n}=e;return t&&!z(t)&&(e.class=u(t)),n&&(e.style=a(n)),e}const h=r("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function p(e){return!!e||""===e}function d(e,t){if(e===t)return!0;let n=M(e),r=M(t);if(n||r)return!(!n||!r)&&e.getTime()===t.getTime();if(n=T(e),r=T(t),n||r)return e===t;if(n=j(e),r=j(t),n||r)return!(!n||!r)&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=d(e[r],t[r]);return n}(e,t);if(n=R(e),r=R(t),n||r){if(!n||!r)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e){const r=e.hasOwnProperty(n),o=t.hasOwnProperty(n);if(r&&!o||!r&&o||!d(e[n],t[n]))return!1}}return String(e)===String(t)}function m(e,t){return e.findIndex((e=>d(e,t)))}const v=e=>z(e)?e:null==e?"":j(e)||R(e)&&(e.toString===P||!I(e.toString))?JSON.stringify(e,g,2):String(e),g=(e,t)=>t&&t.__v_isRef?g(e,t.value):L(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:A(t)?{[`Set(${t.size})`]:[...t.values()]}:!R(t)||j(t)||D(t)?t:String(t),b={},y=[],_=()=>{},w=()=>!1,x=/^on[^a-z]/,k=e=>x.test(e),S=e=>e.startsWith("onUpdate:"),C=Object.assign,E=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},O=Object.prototype.hasOwnProperty,N=(e,t)=>O.call(e,t),j=Array.isArray,L=e=>"[object Map]"===F(e),A=e=>"[object Set]"===F(e),M=e=>"[object Date]"===F(e),I=e=>"function"==typeof e,z=e=>"string"==typeof e,T=e=>"symbol"==typeof e,R=e=>null!==e&&"object"==typeof e,$=e=>R(e)&&I(e.then)&&I(e.catch),P=Object.prototype.toString,F=e=>P.call(e),H=e=>F(e).slice(8,-1),D=e=>"[object Object]"===F(e),V=e=>z(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,U=r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),W=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-(\w)/g,Y=W((e=>e.replace(B,((e,t)=>t?t.toUpperCase():"")))),q=/\B([A-Z])/g,G=W((e=>e.replace(q,"-$1").toLowerCase())),Z=W((e=>e.charAt(0).toUpperCase()+e.slice(1))),X=W((e=>e?`on${Z(e)}`:"")),J=(e,t)=>!Object.is(e,t),K=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},Q=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},ee=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let te;const ne=()=>te||(te="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{})},54028:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>k});var r=n(2262),o=n(66252);function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(((n,o)=>(t.includes(o)||(n[o]=(0,r.SU)(e[o])),n)),{})}function i(e){return"function"==typeof e}function s(e){return(0,r.PG)(e)||(0,r.$y)(e)}function c(e,t,n){let r=e;const o=t.split(".");for(let e=0;e<o.length;e++){if(!r[o[e]])return n;r=r[o[e]]}return r}function l(e,t,n){return(0,o.Fl)((()=>e.some((e=>c(t,e,{[n]:!1})[n]))))}function u(e,t,n){return(0,o.Fl)((()=>e.reduce(((e,r)=>{const o=c(t,r,{[n]:!1})[n]||[];return e.concat(o)}),[])))}function f(e,t,n,o){return e.call(o,(0,r.SU)(t),(0,r.SU)(n),o)}function h(e){return void 0!==e.$valid?!e.$valid:!e}function p(){}function d(e,t,n){if(n)return t?t(e()):e();try{var r=Promise.resolve(e());return t?r.then(t):r}catch(e){return Promise.reject(e)}}function m(e){const t=(n=function(){return D(),e=function(){return d(o.Y3,(function(){return new Promise((e=>{if(!H.value)return e(!$.value);const t=(0,o.YP)(H,(()=>{e(!$.value),t()}))}))}))},(t=function(){if(N.$rewardEarly)return W(),d(o.Y3,p,undefined)}())&&t.then?t.then(e):e();var e,t},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];try{return Promise.resolve(n.apply(this,e))}catch(e){return Promise.reject(e)}});var n;let{validations:s,state:c,key:v,parentKey:g,childResults:b,resultsCache:y,globalConfig:_={},instance:w,externalResults:x}=e;const k=g?`${g}.${v}`:v,{rules:S,nestedValidators:C,config:E,validationGroups:O}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,r.SU)(e),n=Object.keys(t),o={},a={},s={};let c=null;return n.forEach((e=>{const n=t[e];switch(!0){case i(n.$validator):o[e]=n;break;case i(n):o[e]={$validator:n};break;case"$validationGroups"===e:c=n;break;case e.startsWith("$"):s[e]=n;break;default:a[e]=n}})),{rules:o,nestedValidators:a,config:s,validationGroups:c}}(s),N=Object.assign({},_,E),j=v?(0,o.Fl)((()=>{const e=(0,r.SU)(c);return e?(0,r.SU)(e[v]):void 0})):c,L=Object.assign({},(0,r.SU)(x)||{}),A=(0,o.Fl)((()=>{const e=(0,r.SU)(x);return v?e?(0,r.SU)(e[v]):void 0:e})),M=function(e,t,n,s,c,l,u,p,d){const m=Object.keys(e),v=s.get(c,e),g=(0,r.iH)(!1),b=(0,r.iH)(!1),y=(0,r.iH)(0);if(v){if(!v.$partial)return v;v.$unwatch(),g.value=v.$dirty.value}const _={$dirty:g,$path:c,$touch:()=>{g.value||(g.value=!0)},$reset:()=>{g.value&&(g.value=!1)},$commit:()=>{}};return m.length?(m.forEach((s=>{_[s]=function(e,t,n,s,c,l,u,p,d,m,v){const g=(0,r.iH)(!1),b=e.$params||{},y=(0,r.iH)(null);let _,w;e.$async?({$invalid:_,$unwatch:w}=function(e,t,n,a,i,s,c){let{$lazy:l,$rewardEarly:u}=i,p=arguments.length>7&&void 0!==arguments[7]?arguments[7]:[],d=arguments.length>8?arguments[8]:void 0,m=arguments.length>9?arguments[9]:void 0,v=arguments.length>10?arguments[10]:void 0;const g=(0,r.iH)(!!a.value),b=(0,r.iH)(0);n.value=!1;const y=(0,o.YP)([t,a].concat(p,v),(()=>{if(l&&!a.value||u&&!m.value&&!n.value)return;let r;try{r=f(e,t,d,c)}catch(e){r=Promise.reject(e)}b.value++,n.value=!!b.value,g.value=!1,Promise.resolve(r).then((e=>{b.value--,n.value=!!b.value,s.value=e,g.value=h(e)})).catch((e=>{b.value--,n.value=!!b.value,s.value=e,g.value=!0}))}),{immediate:!0,deep:"object"==typeof t});return{$invalid:g,$unwatch:y}}(e.$validator,t,g,n,s,y,c,e.$watchTargets,d,m,v)):({$invalid:_,$unwatch:w}=function(e,t,n,r,a,i,s,c){let{$lazy:l,$rewardEarly:u}=r;return{$unwatch:()=>({}),$invalid:(0,o.Fl)((()=>{if(l&&!n.value||u&&!c.value)return!1;let r=!0;try{const n=f(e,t,s,i);a.value=n,r=h(n)}catch(e){a.value=e}return r}))}}(e.$validator,t,n,s,y,c,d,m));const x=e.$message;return{$message:i(x)?(0,o.Fl)((()=>x(a({$pending:g,$invalid:_,$params:a(b),$model:t,$response:y,$validator:l,$propertyPath:p,$property:u})))):x||"",$params:b,$pending:g,$invalid:_,$response:y,$unwatch:w}}(e[s],t,_.$dirty,l,u,s,n,c,d,b,y)})),_.$externalResults=(0,o.Fl)((()=>p.value?[].concat(p.value).map(((e,t)=>({$propertyPath:c,$property:n,$validator:"$externalResults",$uid:`${c}-externalResult-${t}`,$message:e,$params:{},$response:null,$pending:!1}))):[])),_.$invalid=(0,o.Fl)((()=>{const e=m.some((e=>(0,r.SU)(_[e].$invalid)));return b.value=e,!!_.$externalResults.value.length||e})),_.$pending=(0,o.Fl)((()=>m.some((e=>(0,r.SU)(_[e].$pending))))),_.$error=(0,o.Fl)((()=>!!_.$dirty.value&&(_.$pending.value||_.$invalid.value))),_.$silentErrors=(0,o.Fl)((()=>m.filter((e=>(0,r.SU)(_[e].$invalid))).map((e=>{const t=_[e];return(0,r.qj)({$propertyPath:c,$property:n,$validator:e,$uid:`${c}-${e}`,$message:t.$message,$params:t.$params,$response:t.$response,$pending:t.$pending})})).concat(_.$externalResults.value))),_.$errors=(0,o.Fl)((()=>_.$dirty.value?_.$silentErrors.value:[])),_.$unwatch=()=>m.forEach((e=>{_[e].$unwatch()})),_.$commit=()=>{b.value=!0,y.value=Date.now()},s.set(c,e,_),_):(v&&s.set(c,e,_),_)}(S,j,v,y,k,N,w,A,c),I=function(e,t,n,r,o,a,i){const s=Object.keys(e);return s.length?s.reduce(((s,c)=>(s[c]=m({validations:e[c],state:t,key:c,parentKey:n,resultsCache:r,globalConfig:o,instance:a,externalResults:i}),s)),{}):{}}(C,j,k,y,N,w,A),z={};O&&Object.entries(O).forEach((e=>{let[t,n]=e;z[t]={$invalid:l(n,I,"$invalid"),$error:l(n,I,"$error"),$pending:l(n,I,"$pending"),$errors:u(n,I,"$errors"),$silentErrors:u(n,I,"$silentErrors")}}));const{$dirty:T,$errors:R,$invalid:$,$anyDirty:P,$error:F,$pending:H,$touch:D,$reset:V,$silentErrors:U,$commit:W}=function(e,t,n){const a=(0,o.Fl)((()=>[t,n].filter((e=>e)).reduce(((e,t)=>e.concat(Object.values((0,r.SU)(t)))),[]))),i=(0,o.Fl)({get:()=>e.$dirty.value||!!a.value.length&&a.value.every((e=>e.$dirty)),set(t){e.$dirty.value=t}}),s=(0,o.Fl)((()=>{const t=(0,r.SU)(e.$silentErrors)||[],n=a.value.filter((e=>((0,r.SU)(e).$silentErrors||[]).length)).reduce(((e,t)=>e.concat(...t.$silentErrors)),[]);return t.concat(n)})),c=(0,o.Fl)((()=>{const t=(0,r.SU)(e.$errors)||[],n=a.value.filter((e=>((0,r.SU)(e).$errors||[]).length)).reduce(((e,t)=>e.concat(...t.$errors)),[]);return t.concat(n)})),l=(0,o.Fl)((()=>a.value.some((e=>e.$invalid))||(0,r.SU)(e.$invalid)||!1)),u=(0,o.Fl)((()=>a.value.some((e=>(0,r.SU)(e.$pending)))||(0,r.SU)(e.$pending)||!1)),f=(0,o.Fl)((()=>a.value.some((e=>e.$dirty))||a.value.some((e=>e.$anyDirty))||i.value)),h=(0,o.Fl)((()=>!!i.value&&(u.value||l.value))),p=()=>{e.$touch(),a.value.forEach((e=>{e.$touch()}))};return a.value.length&&a.value.every((e=>e.$dirty))&&p(),{$dirty:i,$errors:c,$invalid:l,$anyDirty:f,$error:h,$pending:u,$touch:p,$reset:()=>{e.$reset(),a.value.forEach((e=>{e.$reset()}))},$silentErrors:s,$commit:()=>{e.$commit(),a.value.forEach((e=>{e.$commit()}))}}}(M,I,b),B=v?(0,o.Fl)({get:()=>(0,r.SU)(j),set:e=>{T.value=!0;const t=(0,r.SU)(c),n=(0,r.SU)(x);n&&(n[v]=L[v]),(0,r.dq)(t[v])?t[v].value=e:t[v]=e}}):null;return v&&N.$autoDirty&&(0,o.YP)(j,(()=>{T.value||D();const e=(0,r.SU)(x);e&&(e[v]=L[v])}),{flush:"sync"}),(0,r.qj)(Object.assign({},M,{$model:B,$dirty:T,$error:F,$errors:R,$invalid:$,$anyDirty:P,$pending:H,$touch:D,$reset:V,$path:k||"__root",$silentErrors:U,$validate:t,$commit:W},b&&{$getResultsForChild:function(e){return(b.value||{})[e]},$clearExternalResults:function(){(0,r.dq)(x)?x.value=L:0===Object.keys(L).length?Object.keys(x).forEach((e=>{delete x[e]})):Object.assign(x,L)},$validationGroups:z},I))}class v{constructor(){this.storage=new Map}set(e,t,n){this.storage.set(e,{rules:t,result:n})}checkRulesValidity(e,t,n){const o=Object.keys(n),a=Object.keys(t);return a.length===o.length&&(!!a.every((e=>o.includes(e)))&&a.every((e=>!t[e].$params||Object.keys(t[e].$params).every((o=>(0,r.SU)(n[e].$params[o])===(0,r.SU)(t[e].$params[o]))))))}get(e,t){const n=this.storage.get(e);if(!n)return;const{rules:r,result:o}=n,a=this.checkRulesValidity(e,t,r),i=o.$unwatch?o.$unwatch:()=>({});return a?o:{$dirty:o.$dirty,$partial:!0,$unwatch:i}}}const g={COLLECT_ALL:!0,COLLECT_NONE:!1},b=Symbol("vuelidate#injectChildResults"),y=Symbol("vuelidate#removeChildResults");function _(e){let{$scope:t,instance:n}=e;const a={},i=(0,r.iH)([]),s=(0,o.Fl)((()=>i.value.reduce(((e,t)=>(e[t]=(0,r.SU)(a[t]),e)),{})));n.__vuelidateInjectInstances=[].concat(n.__vuelidateInjectInstances||[],(function(e,n){let{$registerAs:r,$scope:o,$stopPropagation:s}=n;s||t===g.COLLECT_NONE||o===g.COLLECT_NONE||t!==g.COLLECT_ALL&&t!==o||(a[r]=e,i.value.push(r))})),n.__vuelidateRemoveInstances=[].concat(n.__vuelidateRemoveInstances||[],(function(e){i.value=i.value.filter((t=>t!==e)),delete a[e]}));const c=(0,o.f3)(b,[]);(0,o.JJ)(b,n.__vuelidateInjectInstances);const l=(0,o.f3)(y,[]);return(0,o.JJ)(y,n.__vuelidateRemoveInstances),{childResults:s,sendValidationResultsToParent:c,removeValidationResultsFromParent:l}}function w(e){return new Proxy(e,{get:(e,t)=>"object"==typeof e[t]?w(e[t]):(0,o.Fl)((()=>e[t]))})}let x=0;function k(e,t){var n;let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};1===arguments.length&&(a=e,e=void 0,t=void 0);let{$registerAs:c,$scope:l=g.COLLECT_ALL,$stopPropagation:u,$externalResults:f,currentVueInstance:h}=a;const p=h||(null===(n=(0,o.FN)())||void 0===n?void 0:n.proxy),d=p?p.$options:{};c||(x+=1,c=`_vuelidate_${x}`);const b=(0,r.iH)({}),y=new v,{childResults:k,sendValidationResultsToParent:S,removeValidationResultsFromParent:C}=p?_({$scope:l,instance:p}):{childResults:(0,r.iH)({})};if(!e&&d.validations){const e=d.validations;t=(0,r.iH)({}),(0,o.wF)((()=>{t.value=p,(0,o.YP)((()=>i(e)?e.call(t.value,new w(t.value)):e),(e=>{b.value=m({validations:e,state:t,childResults:k,resultsCache:y,globalConfig:a,instance:p,externalResults:f||p.vuelidateExternalResults})}),{immediate:!0})})),a=d.validationsConfig||a}else{const n=(0,r.dq)(e)||s(e)?e:(0,r.qj)(e||{});(0,o.YP)(n,(e=>{b.value=m({validations:e,state:t,childResults:k,resultsCache:y,globalConfig:a,instance:null!=p?p:{},externalResults:f})}),{immediate:!0})}return p&&(S.forEach((e=>e(b,{$registerAs:c,$scope:l,$stopPropagation:u}))),(0,o.Jd)((()=>C.forEach((e=>e(c)))))),(0,o.Fl)((()=>Object.assign({},(0,r.SU)(b.value),k.value)))}},35332:(e,t,n)=>{"use strict";n.d(t,{C1:()=>i,CF:()=>c,sH:()=>u});var r=n(2262);const o=e=>{if(e=(0,r.SU)(e),Array.isArray(e))return!!e.length;if(null==e)return!1;if(!1===e)return!0;if(e instanceof Date)return!isNaN(e.getTime());if("object"==typeof e){for(let t in e)return!0;return!1}return!!String(e).length};function a(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>(e=(0,r.SU)(e),!o(e)||t.every((t=>t.test(e))))}r.SU,a(/^[a-zA-Z]*$/),a(/^[a-zA-Z0-9]*$/),a(/^\d*(\.\d+)?$/),a(/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i);var i={$validator:function(e){return"string"==typeof e&&(e=e.trim()),o(e)},$message:"Value is required",$params:{type:"required"}};const s=(e,t)=>!e||o("string"==typeof t?t.trim():t);function c(e){return{$validator:(t=e,function(e,n){if("function"!=typeof t)return s((0,r.SU)(t),e);const o=t.call(this,e,n);return s(o,e)}),$message:"The value is required",$params:{type:"requiredIf",prop:e}};var t}function l(e){return t=>(0,r.SU)(t)===(0,r.SU)(e)}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"other";return{$validator:l(e),$message:e=>`The value must be equal to the ${t} value`,$params:{equalTo:e,otherName:t,type:"sameAs"}}}a(/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i),a(/(^[0-9]*$)|(^-[0-9]+$)/),a(/^[-]?\d*(\.\d+)?$/)},58509:(e,t,n)=>{"use strict";n.d(t,{Qp:()=>p,tG:()=>d});var r=!1;if("undefined"!=typeof window){var o={get passive(){r=!0}};window.addEventListener("testPassive",null,o),window.removeEventListener("testPassive",null,o)}var a="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||"MacIntel"===window.navigator.platform&&window.navigator.maxTouchPoints>1),i=[],s=!1,c=-1,l=void 0,u=void 0,f=function(e){return i.some((function(t){return!(!t.options.allowTouchMove||!t.options.allowTouchMove(e))}))},h=function(e){var t=e||window.event;return!!f(t.target)||t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)},p=function(e,t){if(e){if(!i.some((function(t){return t.targetElement===e}))){var n={targetElement:e,options:t||{}};i=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(i),[n]),a?(e.ontouchstart=function(e){1===e.targetTouches.length&&(c=e.targetTouches[0].clientY)},e.ontouchmove=function(t){1===t.targetTouches.length&&function(e,t){var n=e.targetTouches[0].clientY-c;!f(e.target)&&(t&&0===t.scrollTop&&n>0||function(e){return!!e&&e.scrollHeight-e.scrollTop<=e.clientHeight}(t)&&n<0?h(e):e.stopPropagation())}(t,e)},s||(document.addEventListener("touchmove",h,r?{passive:!1}:void 0),s=!0)):function(e){if(void 0===u){var t=!!e&&!0===e.reserveScrollBarGap,n=window.innerWidth-document.documentElement.clientWidth;t&&n>0&&(u=document.body.style.paddingRight,document.body.style.paddingRight=n+"px")}void 0===l&&(l=document.body.style.overflow,document.body.style.overflow="hidden")}(t)}}else console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.")},d=function(e){e?(i=i.filter((function(t){return t.targetElement!==e})),a?(e.ontouchstart=null,e.ontouchmove=null,s&&0===i.length&&(document.removeEventListener("touchmove",h,r?{passive:!1}:void 0),s=!1)):i.length||(void 0!==u&&(document.body.style.paddingRight=u,u=void 0),void 0!==l&&(document.body.style.overflow=l,l=void 0))):console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.")}},97332:(e,t)=>{"use strict";function n(e){return l[e]}function r(e){return u[e]}function o(e){return e*(Math.PI/180)}function a(e,t){return e<t[0]?e=t[0]:e>t[1]&&(e=t[1]),e}function i(e){if(Math.cbrt)return Math.cbrt(e);var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}function s(e,t,n){if(void 0===t)throw new Error("No value provided");var r=n||function(e){var t=d.find((function(t){return p[t](e)}));if(!t)throw new Error("No type found for color "+e);return t}(t);if(r===e)return t;if(B[r][e])return q(r,e,t);var o=Y[r],a="string"==typeof o?o:o[e]||o.default;return s(e,q(r,a,t),a)}function c(e){var t={};return G.forEach((function(n){Object.defineProperty(t,n,{get:function(){return Z(n,e)},enumerable:!0})})),t}var l={A:{X:1.0985*100,Y:100,Z:35.585},B:{X:99.072,Y:100,Z:85.223},C:{X:98.074,Y:100,Z:118.232},D50:{X:96.422,Y:100,Z:82.521},D55:{X:95.682,Y:100,Z:92.149},D65:{X:95.047,Y:100,Z:108.883},D75:{X:94.972,Y:100,Z:122.638},E:{X:100,Y:100,Z:100},F2:{X:.99186*100,Y:100,Z:67.393},F7:{X:95.041,Y:100,Z:108.747},F11:{X:1.00962*100,Y:100,Z:64.35}},u={BRADFORD:[[.8951,.2664,-.1614],[-.7502,1.7135,.0367],[.0389,-.0685,1.0296]],INVERSE_BRADFORD:[[.9869929,-.1470543,.1599627],[.4323053,.5183603,.0492912],[-.0085287,.0400428,.9684867]],SRGB_XYZ:[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],INVERSE_SRGB_XYZ:[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]]},f=function(e,t){var n=new Set(Object.keys(e));return t.every((function(e){return n.has(e)}))},h=function(e,t){return"string"==typeof e&&e.slice(0,t.length)===t},p={hex:function(e){return h(e,"#")},rgb:function(e){return f(e,["r","g","b"])},cssrgb:function(e){return h(e,"rgb(")},hsl:function(e){return f(e,["h","s","l"])},csshsl:function(e){return h(e,"hsl(")},hsv:function(e){return f(e,["h","s","v"])},cmyk:function(e){return f(e,["c","m","y","k"])},yiq:function(e){return f(e,["y","i","q"])},XYZ:function(e){return f(e,["X","Y","Z"])},xyY:function(e){return f(e,["x","y","Y"])},lms:function(e){return f(e,["rho","gamma","beta"])},cielab:function(e){return f(e,["L","a","b"])},cieluv:function(e){return f(e,["L","u","v"])},cielch:function(e){return f(e,["L","C","h"])},hsluv:function(e){return f(e,["hu","s","l"])}},d=Object.keys(p),m=.008856,v=903.3,g=n("D65"),b=function(e){return Math.pow(e,3)>m?Math.pow(e,3):(116*e-16)/v},y={XYZ:function(e){var t=(e.L+16)/116,n=e.a/500+t,r=t-e.b/200,o=b(n),a=b(r),i=e.L>v*m?Math.pow(t,3):e.L/v;return{X:o*g.X,Y:i*g.Y,Z:a*g.Z}}},_={cieluv:function(e){var t=o(e.h),n=e.C*Math.cos(t),r=e.C*Math.sin(t);return{L:e.L,u:n,v:r}},hsluv:function(e){if(e.L>99.9999999)return{hu:e.h,s:0,l:100};if(e.L<1e-8)return{hu:e.h,s:0,l:0};for(var t=(e.L+16)/1560896,n=t>.008856?t:e.L/903.3,a=r("INVERSE_SRGB_XYZ"),i=[],s=0;s<3;s++)for(var c=a[s][0],l=a[s][1],u=a[s][2],f=0;f<2;f++){var h=(284517*c-94839*u)*n,p=(838422*u+769860*l+731718*c)*e.L*n-769860*f*e.L,d=(632260*u-126452*l)*n+126452*f;i.push({m:h/d,b:p/d})}var m=Number.MAX_VALUE,v=o(e.h);i.forEach((function(e){var t=e.b/(Math.sin(v)-e.m*Math.cos(v));t>=0&&(m=Math.min(m,t))}));var g=m;return{hu:e.h,s:e.C/g*100,l:e.L}}},w={XYZ:function(e){var t=n("D65"),r=function(e){return 4*e.X/(e.X+15*e.Y+3*e.Z)}(t),o=function(e){return 9*e.Y/(e.X+15*e.Y+3*e.Z)}(t),a=1/3*(52*e.L/(e.u+13*e.L*r)-1),i=e.L>903.3*.008856?Math.pow((e.L+16)/116,3):e.L/903.3,s=-5*i,c=(i*(39*e.L/(e.v+13*e.L*o)-5)-s)/(a- -1/3);return{X:100*c,Y:100*i,Z:100*(c*a+s)}},cielch:function(e){var t=Math.sqrt(Math.pow(e.u,2)+Math.pow(e.v,2)),n=Math.atan2(e.v,e.u);return n<0&&(n+=2*Math.PI),n=function(e){return e*(180/Math.PI)}(n),{L:e.L,C:t,h:n}}},x=function(e){return{r:255*(1-e.c)*(1-e.k),g:255*(1-e.m)*(1-e.k),b:255*(1-e.y)*(1-e.k)}},k={rgb:x,cssrgb:function(e){var t=x(e),n=t.r,r=t.g,o=t.b;return"rgb("+Math.round(n)+","+Math.round(r)+","+Math.round(o)+")"}},S={hsl:function(e){var t=e.replace(/(hsl\(|\)|%|[\s]*)/g,"").split(",").map((function(e){return parseInt(e,10)}));return{h:t[0],s:t[1],l:t[2]}}},C={rgb:function(e){var t=e.replace(/((rgb\(|\))|[\s]*)/g,"").split(",").map((function(e){return parseInt(e,10)}));return{r:t[0],g:t[1],b:t[2]}}},E={rgb:function(e){var t=e.replace("#","").match(/.{2}/g).map((function(e){return parseInt(e,16)}));return{r:t[0],g:t[1],b:t[2]}}},O={rgb:function(e){if(0===e.s){var t=e.l/100*255;return{r:t,g:t,b:t}}var n,r,o;n=e.l>=50?e.l/100+e.s/100-e.l/100*(e.s/100):e.l/100*(1+e.s/100),r=e.l/100*2-n;var a,i,s,c=(.333+(o=e.h/360))%1,l=o,u=function(e,t){return(e%t+t)%t}(o-.333,1);return(a=6*c<1?r+6*(n-r)*c:2*c<1?n:3*c<2?r+6*(.666-c)*(n-r):r)<0&&(a=0),(i=6*l<1?r+6*(n-r)*l:2*l<1?n:3*l<2?r+6*(.666-l)*(n-r):r)<0&&(i=0),(s=6*u<1?r+6*(n-r)*u:2*u<1?n:3*u<2?r+6*(.666-u)*(n-r):r)<0&&(s=0),{r:255*a,g:255*i,b:255*s}},csshsl:function(e){return"hsl("+Math.round(e.h)+","+Math.round(e.s)+"%,"+Math.round(e.l)+"%)"},hsv:function(e){var t=Object.assign({},e,{s:e.s/100,l:e.l/100}),n=t.s*(t.l<.5?t.l:1-t.l);return{h:t.h,s:2*n/(t.l+n)*100,v:100*(t.l+n)}}},N={cielch:function(e){if(e.L>99.9999999)return{L:100,C:0,h:e.hu};if(e.L<1e-8)return{L:0,C:0,h:e.hu};for(var t=(e.l+16)/1560896,n=t>.008856?t:e.l/903.3,a=r("INVERSE_SRGB_XYZ"),i=[],s=0;s<3;s++)for(var c=a[s][0],l=a[s][1],u=a[s][2],f=0;f<2;f++){var h=(284517*c-94839*u)*n,p=(838422*u+769860*l+731718*c)*e.l*n-769860*f*e.l,d=(632260*u-126452*l)*n+126452*f;i.push({m:h/d,b:p/d})}var m=Number.MAX_VALUE,v=o(e.hu);i.forEach((function(e){var t=e.b/(Math.sin(v)-e.m*Math.cos(v));t>=0&&(m=Math.min(m,t))}));var g=m;return{L:e.l,C:g/100*e.s,h:e.hu}}},j={hsl:function(e){var t=Object.assign({},e,{h:e.h/360,s:e.s/100,v:e.v/100});return{h:360*t.h,s:100*((2-t.s)*t.v<1?t.s*t.v/((2-t.s)*t.v):t.s*t.v/(2-(2-t.s)*t.v)),l:(2-t.s)*t.v/2*100}}},L={XYZ:function(e){var t=[e.rho,e.gamma,e.beta],n=r("INVERSE_BRADFORD").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)}));return{X:100*n[0],Y:100*n[1],Z:100*n[2]}}},A=function(e){return a(e,[0,255])},M=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=.008856,z=n("D65"),T={rgb:function(e){var t=[e.X,e.Y,e.Z].map((function(e){return e/100})),n=r("INVERSE_SRGB_XYZ").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)})).map((function(e){return e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055})).map((function(e){return 255*e})),o=M(n,3);return function(e){return{r:A(e.r),g:A(e.g),b:A(e.b)}}({r:o[0],g:o[1],b:o[2]})},lms:function(e){var t=[e.X,e.Y,e.Z].map((function(e){return e/100})),n=r("BRADFORD").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)}));return{rho:n[0],gamma:n[1],beta:n[2]}},cielab:function(e){var t=e.X/z.X,n=e.Y/z.Y,r=e.Z/z.Z,o=function(e){return e>I?i(e):(903.3*e+16)/116},a=o(t),s=o(n);return{L:116*s-16,a:500*(a-s),b:200*(s-o(r))}},cieluv:function(e){var t=e.Y/z.Y,n=t>I?116*i(t)-16:903.3*t,r=function(e){return 4*e.X/(e.X+15*e.Y+3*e.Z)},o=function(e){return 9*e.Y/(e.X+15*e.Y+3*e.Z)};return{L:n,u:13*n*(r(e)-r(z)),v:13*n*(o(e)-o(z))}},xyY:function(e){return{x:e.X/(e.X+e.Y+e.Z),y:e.Y/(e.X+e.Y+e.Z),Y:e.Y}}},R=T.lms,$=T.cielab,P=T.cieluv,F=T.xyY,H=function(e){var t,n,r=e.r/255,o=e.g/255,a=e.b/255,i=[r,o,a].sort(),s=(i[0]+i[2])/2*100;return i[0]===i[2]?(t=0,n=0):(t=s>=50?(i[2]-i[0])/(2-i[2]-i[0])*100:(i[2]-i[0])/(i[2]+i[0])*100,(n=i[2]===r?(o-a)/(i[2]-i[0])*60:i[2]===o?60*(2+(a-r)/(i[2]-i[0])):60*(4+(r-o)/(i[2]-i[0])))<0?n+=360:n>360&&(n%=360)),{h:n,s:t,l:s}},D=function(e){var t=[e.r,e.g,e.b].map((function(e){return e/255})).map((function(e){return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)})),n=r("SRGB_XYZ").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)})).map((function(e){return 100*e})),o=M(n,3);return{X:o[0],Y:o[1],Z:o[2]}},V={hex:function(e){var t=Math.round(e.r).toString(16);1===t.length&&(t="0"+t);var n=Math.round(e.g).toString(16);1===n.length&&(n="0"+n);var r=Math.round(e.b).toString(16);return 1===r.length&&(r="0"+r),"#"+t+n+r},cssrgb:function(e){return"rgb("+Math.round(e.r)+","+Math.round(e.g)+","+Math.round(e.b)+")"},hsl:H,csshsl:function(e){var t=H(e),n=t.h,r=t.s,o=t.l;return"hsl("+Math.round(n)+","+Math.round(r)+"%,"+Math.round(o)+"%)"},cmyk:function(e){var t=e.r/255,n=e.g/255,r=e.b/255,o=1-Math.max(t,n,r);return 1!==o?{c:(1-t-o)/(1-o),m:(1-n-o)/(1-o),y:(1-r-o)/(1-o),k:o}:{c:0,m:0,y:0,k:o}},yiq:function(e){var t=e.r/255*.299+e.g/255*.587+e.b/255*.114,n=e.r/255*.596+e.g/255*-.274+e.b/255*-.322,r=e.r/255*.211+e.g/255*-.523+e.b/255*.312;return{y:t,i:n=a(n,[-.5957,.5957]),q:r=a(r,[-.5226,.5226])}},XYZ:D,lms:function(e){return R(D(e))},cielab:function(e){return $(D(e))},cieluv:function(e){return P(D(e))},xyY:function(e){return F(D(e))}},U=function(e){return a(e,[0,255])},W={rgb:function(e){var t=a(e.i,[-.5957,.5957]),n=a(e.q,[-.5226,.5226]);return{r:255*U(e.y+.956*t+.621*n),g:255*U(e.y+-.272*t+-.647*n),b:255*U(e.y+-1.106*t+-1.703*n)}}},B=Object.freeze({cielab:y,cielch:_,cieluv:w,cmyk:k,csshsl:S,cssrgb:C,hex:E,hsl:O,hsluv:N,hsv:j,lms:L,rgb:V,xyY:{XYZ:function(e){var t=e.x,n=e.y,r=e.Y;return{X:r/n*t,Y:r,Z:r/n*(1-t-n)}}},XYZ:T,yiq:W}),Y={rgb:{default:"XYZ",csshsl:"hsl",hsv:"hsl"},hex:"rgb",hsl:"rgb",hsv:"hsl",csshsl:"hsl",cssrgb:"rgb",cmyk:"rgb",XYZ:{default:"rgb",cielch:"cieluv",hsluv:"cieluv"},xyY:"XYZ",lms:"XYZ",cieluv:{default:"XYZ",hsluv:"cielch"},cielch:"cieluv",cielab:"XYZ",yiq:"rgb",hsluv:"cielch"},q=function(e,t,n){return B[e][t](n)},G=Object.keys(p),Z=function(e,t){return Array.isArray(t)?t.map((function(t){return s(e,t)})):s(e,t)};t.Xu=function(e,t){var n=s("hsl",t);return n.l+=e,n.l<0?n.l=0:n.l>100&&(n.l=100),c(n)},t.wo=function(e){var t=s("rgb",e);return c(t=(299*t.r+587*t.g+114*t.b)/1e3>=128?{r:0,g:0,b:0}:{r:255,g:255,b:255})},t.OQ=c,t.Xp=function(e){var t=s("hsl",e);return t.l=100-t.l,c(t)}},20425:function(e){var t,n,r,o,a,i,s,c;e.exports=(t="__v-click-outside",n="undefined"!=typeof window,r="undefined"!=typeof navigator,o=n&&("ontouchstart"in window||r&&navigator.msMaxTouchPoints>0)?["touchstart"]:["click"],a=function(e){var t=e.event,n=e.handler;(0,e.middleware)(t)&&n(t)},i=function(e,n){var r=function(e){var t="function"==typeof e;if(!t&&"object"!=typeof e)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:t?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||o,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe),capture:Boolean(e.capture)}}(n.value),i=r.handler,s=r.middleware,c=r.detectIframe,l=r.capture;if(r.isActive){if(e[t]=r.events.map((function(t){return{event:t,srcTarget:document.documentElement,handler:function(t){return function(e){var t=e.el,n=e.event,r=e.handler,o=e.middleware,i=n.path||n.composedPath&&n.composedPath();(i?i.indexOf(t)<0:!t.contains(n.target))&&a({event:n,handler:r,middleware:o})}({el:e,event:t,handler:i,middleware:s})},capture:l}})),c){var u={event:"blur",srcTarget:window,handler:function(t){return function(e){var t=e.el,n=e.event,r=e.handler,o=e.middleware;setTimeout((function(){var e=document.activeElement;e&&"IFRAME"===e.tagName&&!t.contains(e)&&a({event:n,handler:r,middleware:o})}),0)}({el:e,event:t,handler:i,middleware:s})},capture:l};e[t]=[].concat(e[t],[u])}e[t].forEach((function(n){var r=n.event,o=n.srcTarget,a=n.handler;return setTimeout((function(){e[t]&&o.addEventListener(r,a,l)}),0)}))}},s=function(e){(e[t]||[]).forEach((function(e){return e.srcTarget.removeEventListener(e.event,e.handler,e.capture)})),delete e[t]},c=n?{beforeMount:i,updated:function(e,t){var n=t.value,r=t.oldValue;JSON.stringify(n)!==JSON.stringify(r)&&(s(e),i(e,{value:n}))},unmounted:s}:{},{install:function(e){e.directive("click-outside",c)},directive:c})},67810:()=>{!function(){if("undefined"!=typeof window)try{var e=new window.CustomEvent("test",{cancelable:!0});if(e.preventDefault(),!0!==e.defaultPrevented)throw new Error("Could not prevent default")}catch(e){var t=function(e,t){var n,r;return(t=t||{}).bubbles=!!t.bubbles,t.cancelable=!!t.cancelable,(n=document.createEvent("CustomEvent")).initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r=n.preventDefault,n.preventDefault=function(){r.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(e){this.defaultPrevented=!0}},n};t.prototype=window.Event.prototype,window.CustomEvent=t}}()},95573:e=>{"use strict";var t=/["'&<>]/;e.exports=function(e){var n,r=""+e,o=t.exec(r);if(!o)return r;var a="",i=0,s=0;for(i=o.index;i<r.length;i++){switch(r.charCodeAt(i)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 39:n="&#39;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}s!==i&&(a+=r.substring(s,i)),s=i+1,a+=n}return s!==i?a+r.substring(s,i):a}},2900:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r={aa:{name:"Afar",nativeName:"Afaraf"},ab:{name:"Abkhaz",nativeName:"аҧсуа бызшәа"},ae:{name:"Avestan",nativeName:"avesta"},af:{name:"Afrikaans",nativeName:"Afrikaans"},ak:{name:"Akan",nativeName:"Akan"},am:{name:"Amharic",nativeName:"አማርኛ"},an:{name:"Aragonese",nativeName:"aragonés"},ar:{name:"Arabic",nativeName:"اَلْعَرَبِيَّةُ"},as:{name:"Assamese",nativeName:"অসমীয়া"},av:{name:"Avaric",nativeName:"авар мацӀ"},ay:{name:"Aymara",nativeName:"aymar aru"},az:{name:"Azerbaijani",nativeName:"azərbaycan dili"},ba:{name:"Bashkir",nativeName:"башҡорт теле"},be:{name:"Belarusian",nativeName:"беларуская мова"},bg:{name:"Bulgarian",nativeName:"български език"},bi:{name:"Bislama",nativeName:"Bislama"},bm:{name:"Bambara",nativeName:"bamanankan"},bn:{name:"Bengali",nativeName:"বাংলা"},bo:{name:"Tibetan",nativeName:"བོད་ཡིག"},br:{name:"Breton",nativeName:"brezhoneg"},bs:{name:"Bosnian",nativeName:"bosanski jezik"},ca:{name:"Catalan",nativeName:"Català"},ce:{name:"Chechen",nativeName:"нохчийн мотт"},ch:{name:"Chamorro",nativeName:"Chamoru"},co:{name:"Corsican",nativeName:"corsu"},cr:{name:"Cree",nativeName:"ᓀᐦᐃᔭᐍᐏᐣ"},cs:{name:"Czech",nativeName:"čeština"},cu:{name:"Old Church Slavonic",nativeName:"ѩзыкъ словѣньскъ"},cv:{name:"Chuvash",nativeName:"чӑваш чӗлхи"},cy:{name:"Welsh",nativeName:"Cymraeg"},da:{name:"Danish",nativeName:"dansk"},de:{name:"German",nativeName:"Deutsch"},dv:{name:"Divehi",nativeName:"ދިވެހި"},dz:{name:"Dzongkha",nativeName:"རྫོང་ཁ"},ee:{name:"Ewe",nativeName:"Eʋegbe"},el:{name:"Greek",nativeName:"Ελληνικά"},en:{name:"English",nativeName:"English"},eo:{name:"Esperanto",nativeName:"Esperanto"},es:{name:"Spanish",nativeName:"Español"},et:{name:"Estonian",nativeName:"eesti"},eu:{name:"Basque",nativeName:"euskara"},fa:{name:"Persian",nativeName:"فارسی"},ff:{name:"Fula",nativeName:"Fulfulde"},fi:{name:"Finnish",nativeName:"suomi"},fj:{name:"Fijian",nativeName:"vosa Vakaviti"},fo:{name:"Faroese",nativeName:"føroyskt"},fr:{name:"French",nativeName:"Français"},fy:{name:"Western Frisian",nativeName:"Frysk"},ga:{name:"Irish",nativeName:"Gaeilge"},gd:{name:"Scottish Gaelic",nativeName:"Gàidhlig"},gl:{name:"Galician",nativeName:"galego"},gn:{name:"Guaraní",nativeName:"Avañe'ẽ"},gu:{name:"Gujarati",nativeName:"ગુજરાતી"},gv:{name:"Manx",nativeName:"Gaelg"},ha:{name:"Hausa",nativeName:"هَوُسَ"},he:{name:"Hebrew",nativeName:"עברית"},hi:{name:"Hindi",nativeName:"हिन्दी"},ho:{name:"Hiri Motu",nativeName:"Hiri Motu"},hr:{name:"Croatian",nativeName:"Hrvatski"},ht:{name:"Haitian",nativeName:"Kreyòl ayisyen"},hu:{name:"Hungarian",nativeName:"magyar"},hy:{name:"Armenian",nativeName:"Հայերեն"},hz:{name:"Herero",nativeName:"Otjiherero"},ia:{name:"Interlingua",nativeName:"Interlingua"},id:{name:"Indonesian",nativeName:"Bahasa Indonesia"},ie:{name:"Interlingue",nativeName:"Interlingue"},ig:{name:"Igbo",nativeName:"Asụsụ Igbo"},ii:{name:"Nuosu",nativeName:"ꆈꌠ꒿ Nuosuhxop"},ik:{name:"Inupiaq",nativeName:"Iñupiaq"},io:{name:"Ido",nativeName:"Ido"},is:{name:"Icelandic",nativeName:"Íslenska"},it:{name:"Italian",nativeName:"Italiano"},iu:{name:"Inuktitut",nativeName:"ᐃᓄᒃᑎᑐᑦ"},ja:{name:"Japanese",nativeName:"日本語"},jv:{name:"Javanese",nativeName:"basa Jawa"},ka:{name:"Georgian",nativeName:"ქართული"},kg:{name:"Kongo",nativeName:"Kikongo"},ki:{name:"Kikuyu",nativeName:"Gĩkũyũ"},kj:{name:"Kwanyama",nativeName:"Kuanyama"},kk:{name:"Kazakh",nativeName:"қазақ тілі"},kl:{name:"Kalaallisut",nativeName:"kalaallisut"},km:{name:"Khmer",nativeName:"ខេមរភាសា"},kn:{name:"Kannada",nativeName:"ಕನ್ನಡ"},ko:{name:"Korean",nativeName:"한국어"},kr:{name:"Kanuri",nativeName:"Kanuri"},ks:{name:"Kashmiri",nativeName:"कश्मीरी"},ku:{name:"Kurdish",nativeName:"Kurdî"},kv:{name:"Komi",nativeName:"коми кыв"},kw:{name:"Cornish",nativeName:"Kernewek"},ky:{name:"Kyrgyz",nativeName:"Кыргызча"},la:{name:"Latin",nativeName:"latine"},lb:{name:"Luxembourgish",nativeName:"Lëtzebuergesch"},lg:{name:"Ganda",nativeName:"Luganda"},li:{name:"Limburgish",nativeName:"Limburgs"},ln:{name:"Lingala",nativeName:"Lingála"},lo:{name:"Lao",nativeName:"ພາສາລາວ"},lt:{name:"Lithuanian",nativeName:"lietuvių kalba"},lu:{name:"Luba-Katanga",nativeName:"Kiluba"},lv:{name:"Latvian",nativeName:"latviešu valoda"},mg:{name:"Malagasy",nativeName:"fiteny malagasy"},mh:{name:"Marshallese",nativeName:"Kajin M̧ajeļ"},mi:{name:"Māori",nativeName:"te reo Māori"},mk:{name:"Macedonian",nativeName:"македонски јазик"},ml:{name:"Malayalam",nativeName:"മലയാളം"},mn:{name:"Mongolian",nativeName:"Монгол хэл"},mr:{name:"Marathi",nativeName:"मराठी"},ms:{name:"Malay",nativeName:"Bahasa Melayu"},mt:{name:"Maltese",nativeName:"Malti"},my:{name:"Burmese",nativeName:"ဗမာစာ"},na:{name:"Nauru",nativeName:"Dorerin Naoero"},nb:{name:"Norwegian Bokmål",nativeName:"Norsk bokmål"},nd:{name:"Northern Ndebele",nativeName:"isiNdebele"},ne:{name:"Nepali",nativeName:"नेपाली"},ng:{name:"Ndonga",nativeName:"Owambo"},nl:{name:"Dutch",nativeName:"Nederlands"},nn:{name:"Norwegian Nynorsk",nativeName:"Norsk nynorsk"},no:{name:"Norwegian",nativeName:"Norsk"},nr:{name:"Southern Ndebele",nativeName:"isiNdebele"},nv:{name:"Navajo",nativeName:"Diné bizaad"},ny:{name:"Chichewa",nativeName:"chiCheŵa"},oc:{name:"Occitan",nativeName:"occitan"},oj:{name:"Ojibwe",nativeName:"ᐊᓂᔑᓈᐯᒧᐎᓐ"},om:{name:"Oromo",nativeName:"Afaan Oromoo"},or:{name:"Oriya",nativeName:"ଓଡ଼ିଆ"},os:{name:"Ossetian",nativeName:"ирон æвзаг"},pa:{name:"Panjabi",nativeName:"ਪੰਜਾਬੀ"},pi:{name:"Pāli",nativeName:"पाऴि"},pl:{name:"Polish",nativeName:"Polski"},ps:{name:"Pashto",nativeName:"پښتو"},pt:{name:"Portuguese",nativeName:"Português"},qu:{name:"Quechua",nativeName:"Runa Simi"},rm:{name:"Romansh",nativeName:"rumantsch grischun"},rn:{name:"Kirundi",nativeName:"Ikirundi"},ro:{name:"Romanian",nativeName:"Română"},ru:{name:"Russian",nativeName:"Русский"},rw:{name:"Kinyarwanda",nativeName:"Ikinyarwanda"},sa:{name:"Sanskrit",nativeName:"संस्कृतम्"},sc:{name:"Sardinian",nativeName:"sardu"},sd:{name:"Sindhi",nativeName:"सिन्धी"},se:{name:"Northern Sami",nativeName:"Davvisámegiella"},sg:{name:"Sango",nativeName:"yângâ tî sängö"},si:{name:"Sinhala",nativeName:"සිංහල"},sk:{name:"Slovak",nativeName:"slovenčina"},sl:{name:"Slovenian",nativeName:"slovenščina"},sm:{name:"Samoan",nativeName:"gagana fa'a Samoa"},sn:{name:"Shona",nativeName:"chiShona"},so:{name:"Somali",nativeName:"Soomaaliga"},sq:{name:"Albanian",nativeName:"Shqip"},sr:{name:"Serbian",nativeName:"српски језик"},ss:{name:"Swati",nativeName:"SiSwati"},st:{name:"Southern Sotho",nativeName:"Sesotho"},su:{name:"Sundanese",nativeName:"Basa Sunda"},sv:{name:"Swedish",nativeName:"Svenska"},sw:{name:"Swahili",nativeName:"Kiswahili"},ta:{name:"Tamil",nativeName:"தமிழ்"},te:{name:"Telugu",nativeName:"తెలుగు"},tg:{name:"Tajik",nativeName:"тоҷикӣ"},th:{name:"Thai",nativeName:"ไทย"},ti:{name:"Tigrinya",nativeName:"ትግርኛ"},tk:{name:"Turkmen",nativeName:"Türkmençe"},tl:{name:"Tagalog",nativeName:"Wikang Tagalog"},tn:{name:"Tswana",nativeName:"Setswana"},to:{name:"Tonga",nativeName:"faka Tonga"},tr:{name:"Turkish",nativeName:"Türkçe"},ts:{name:"Tsonga",nativeName:"Xitsonga"},tt:{name:"Tatar",nativeName:"татар теле"},tw:{name:"Twi",nativeName:"Twi"},ty:{name:"Tahitian",nativeName:"Reo Tahiti"},ug:{name:"Uyghur",nativeName:"ئۇيغۇرچە‎"},uk:{name:"Ukrainian",nativeName:"Українська"},ur:{name:"Urdu",nativeName:"اردو"},uz:{name:"Uzbek",nativeName:"Ўзбек"},ve:{name:"Venda",nativeName:"Tshivenḓa"},vi:{name:"Vietnamese",nativeName:"Tiếng Việt"},vo:{name:"Volapük",nativeName:"Volapük"},wa:{name:"Walloon",nativeName:"walon"},wo:{name:"Wolof",nativeName:"Wollof"},xh:{name:"Xhosa",nativeName:"isiXhosa"},yi:{name:"Yiddish",nativeName:"ייִדיש"},yo:{name:"Yoruba",nativeName:"Yorùbá"},za:{name:"Zhuang",nativeName:"Saɯ cueŋƅ"},zh:{name:"Chinese",nativeName:"中文"},zu:{name:"Zulu",nativeName:"isiZulu"}};class o{static getLanguages(e=[]){return e.map((e=>({code:e,name:o.getName(e),nativeName:o.getNativeName(e)})))}static getName(e){return o.validate(e)?r[e].name:""}static getAllNames(){return Object.values(r).map((e=>e.name))}static getNativeName(e){return o.validate(e)?r[e].nativeName:""}static getAllNativeNames(){return Object.values(r).map((e=>e.nativeName))}static getCode(e){return Object.keys(r).find((t=>{const n=r[t];return n.name.toLowerCase()===e.toLowerCase()||n.nativeName.toLowerCase()===e.toLowerCase()}))||""}static getAllCodes(){return Object.keys(r)}static validate(e){return r.hasOwnProperty(e)}}},6258:(e,t,n)=>{"use strict";function r(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}n.d(t,{Z:()=>o});const o=function e(t,n){function o(e,o,a){if("undefined"!=typeof document){"number"==typeof(a=r({},n,a)).expires&&(a.expires=new Date(Date.now()+864e5*a.expires)),a.expires&&(a.expires=a.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var s in a)a[s]&&(i+="; "+s,!0!==a[s]&&(i+="="+a[s].split(";")[0]));return document.cookie=e+"="+t.write(o,e)+i}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],r={},o=0;o<n.length;o++){var a=n[o].split("="),i=a.slice(1).join("=");try{var s=decodeURIComponent(a[0]);if(r[s]=t.read(i,s),e===s)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){o(e,"",r({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,r({},this.attributes,t))},withConverter:function(t){return e(r({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})},69483:function(e,t){!function(n){"object"==typeof t&&void 0!==e?e.exports=n():"function"==typeof define&&define.amd?define([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=n()}((function(){return function e(t,n,r){function o(i,s){if(!n[i]){if(!t[i]){var c="function"==typeof require&&require;if(!s&&c)return c(i,!0);if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[i]={exports:{}};t[i][0].call(u.exports,(function(e){return o(t[i][1][e]||e)}),u,u.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){(function(e){"use strict";var n,r,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var a=0,i=new o(u),s=e.document.createTextNode("");i.observe(s,{characterData:!0}),n=function(){s.data=a=++a%2}}else if(e.setImmediate||void 0===e.MessageChannel)n="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var c=new e.MessageChannel;c.port1.onmessage=u,n=function(){c.port2.postMessage(0)}}var l=[];function u(){var e,t;r=!0;for(var n=l.length;n;){for(t=l,l=[],e=-1;++e<n;)t[e]();n=l.length}r=!1}t.exports=function(e){1!==l.push(e)||r||n()}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e(1);function o(){}var a={},i=["REJECTED"],s=["FULFILLED"],c=["PENDING"];function l(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,e!==o&&p(this,e)}function u(e,t,n){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function f(e,t,n){r((function(){var r;try{r=t(n)}catch(t){return a.reject(e,t)}r===e?a.reject(e,new TypeError("Cannot resolve promise with itself")):a.resolve(e,r)}))}function h(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function p(e,t){var n=!1;function r(t){n||(n=!0,a.reject(e,t))}function o(t){n||(n=!0,a.resolve(e,t))}var i=d((function(){t(o,r)}));"error"===i.status&&r(i.value)}function d(e,t){var n={};try{n.value=e(t),n.status="success"}catch(e){n.status="error",n.value=e}return n}t.exports=l,l.prototype.catch=function(e){return this.then(null,e)},l.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===i)return this;var n=new this.constructor(o);return this.state!==c?f(n,this.state===s?e:t,this.outcome):this.queue.push(new u(n,e,t)),n},u.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){a.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},a.resolve=function(e,t){var n=d(h,t);if("error"===n.status)return a.reject(e,n.value);var r=n.value;if(r)p(e,r);else{e.state=s,e.outcome=t;for(var o=-1,i=e.queue.length;++o<i;)e.queue[o].callFulfilled(t)}return e},a.reject=function(e,t){e.state=i,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e},l.resolve=function(e){return e instanceof this?e:a.resolve(new this(o),e)},l.reject=function(e){var t=new this(o);return a.reject(t,e)},l.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var i=new Array(n),s=0,c=-1,l=new this(o);++c<n;)u(e[c],c);return l;function u(e,o){t.resolve(e).then((function(e){i[o]=e,++s!==n||r||(r=!0,a.resolve(l,i))}),(function(e){r||(r=!0,a.reject(l,e))}))}},l.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,n=!1;if(!t)return this.resolve([]);for(var r,i=-1,s=new this(o);++i<t;)r=e[i],this.resolve(r).then((function(e){n||(n=!0,a.resolve(s,e))}),(function(e){n||(n=!0,a.reject(s,e))}));return s}},{1:1}],3:[function(e,t,n){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function a(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(o){if("TypeError"!==o.name)throw o;for(var n=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r<e.length;r+=1)n.append(e[r]);return n.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var i=Promise;function s(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function c(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}function l(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function u(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",h=void 0,p={},d=Object.prototype.toString,m="readonly",v="readwrite";function g(e){var t=p[e.name],n={};n.promise=new i((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function b(e){var t=p[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function y(e,t){var n=p[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function _(e,t){return new i((function(n,r){if(p[e.name]=p[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);g(e),e.db.close()}var a=[e.name];t&&a.push(e.version);var i=o.open.apply(o,a);t&&(i.onupgradeneeded=function(t){var n=i.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(f)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),i.onerror=function(e){e.preventDefault(),r(i.error)},i.onsuccess=function(){var t=i.result;t.onversionchange=function(e){e.target.close()},n(t),b(e)}}))}function w(e){return _(e,!1)}function x(e){return _(e,!0)}function k(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,o=e.version>e.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function S(e){return a([function(e){for(var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),o=0;o<t;o++)r[o]=e.charCodeAt(o);return n}(atob(e.data))],{type:e.type})}function C(e){return e&&e.__local_forage_encoded_blob}function E(e){var t=this,n=t._initReady().then((function(){var e=p[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return c(n,e,e),n}function O(e,t,n,r){void 0===r&&(r=1);try{var o=e.db.transaction(e.storeName,t);n(null,o)}catch(o){if(r>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return i.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return function(e){g(e);for(var t=p[e.name],n=t.forages,r=0;r<n.length;r++){var o=n[r];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,w(e).then((function(t){return e.db=t,k(e)?x(e):t})).then((function(r){e.db=t.db=r;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=r})).catch((function(t){throw y(e,t),t}))}(e).then((function(){O(e,t,n,r-1)}))})).catch(n);n(o)}}var N={_driver:"asyncStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var o=p[n.name];o||(o={forages:[],db:null,dbReady:null,deferredOperations:[]},p[n.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=E);var a=[];function s(){return i.resolve()}for(var c=0;c<o.forages.length;c++){var l=o.forages[c];l!==t&&a.push(l._initReady().catch(s))}var u=o.forages.slice(0);return i.all(a).then((function(){return n.db=o.db,w(n)})).then((function(e){return n.db=e,k(n,t._defaultConfig.version)?x(n):e})).then((function(e){n.db=o.db=e,t._dbInfo=n;for(var r=0;r<u.length;r++){var a=u[r];a!==t&&(a._dbInfo.db=n.db,a._dbInfo.version=n.version)}}))},_support:function(){try{if(!o||!o.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=new i((function(t,r){n.ready().then((function(){O(n._dbInfo,m,(function(o,a){if(o)return r(o);try{var i=a.objectStore(n._dbInfo.storeName).openCursor(),s=1;i.onsuccess=function(){var n=i.result;if(n){var r=n.value;C(r)&&(r=S(r));var o=e(r,n.key,s++);void 0!==o?t(o):n.continue()}else t()},i.onerror=function(){r(i.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){O(n._dbInfo,m,(function(o,a){if(o)return r(o);try{var i=a.objectStore(n._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),C(e)&&(e=S(e)),t(e)},i.onerror=function(){r(i.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=l(e);var o=new i((function(n,o){var s;r.ready().then((function(){return s=r._dbInfo,"[object Blob]"===d.call(t)?function(e){return"boolean"==typeof h?i.resolve(h):function(e){return new i((function(t){var n=e.transaction(f,v),r=a([""]);n.objectStore(f).put(r,"key"),n.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},n.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),n=navigator.userAgent.match(/Edge\//);t(n||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return h=e}))}(s.db).then((function(e){return e?t:(n=t,new i((function(e,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:r,type:n.type})},r.readAsBinaryString(n)})));var n})):t})).then((function(t){O(r._dbInfo,v,(function(a,i){if(a)return o(a);try{var s=i.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var c=s.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),n(t)},i.onabort=i.onerror=function(){var e=c.error?c.error:c.transaction.error;o(e)}}catch(e){o(e)}}))})).catch(o)}));return s(o,n),o},removeItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){O(n._dbInfo,v,(function(o,a){if(o)return r(o);try{var i=a.objectStore(n._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){r(i.error)},a.onabort=function(){var e=i.error?i.error:i.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){O(t._dbInfo,v,(function(r,o){if(r)return n(r);try{var a=o.objectStore(t._dbInfo.storeName).clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=a.error?a.error:a.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){O(t._dbInfo,m,(function(r,o){if(r)return n(r);try{var a=o.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new i((function(t,r){e<0?t(null):n.ready().then((function(){O(n._dbInfo,m,(function(o,a){if(o)return r(o);try{var i=a.objectStore(n._dbInfo.storeName),s=!1,c=i.openKeyCursor();c.onsuccess=function(){var n=c.result;n?0===e||s?t(n.key):(s=!0,n.advance(e)):t(null)},c.onerror=function(){r(c.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){O(t._dbInfo,m,(function(r,o){if(r)return n(r);try{var a=o.objectStore(t._dbInfo.storeName).openKeyCursor(),i=[];a.onsuccess=function(){var t=a.result;t?(i.push(t.key),t.continue()):e(i)},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=u.apply(this,arguments);var n=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,a=this;if(e.name){var c=e.name===n.name&&a._dbInfo.db,l=c?i.resolve(a._dbInfo.db):w(e).then((function(t){var n=p[e.name],r=n.forages;n.db=t;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=t;return t}));r=e.storeName?l.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;g(e);var r=p[e.name],a=r.forages;t.close();for(var s=0;s<a.length;s++){var c=a[s];c._dbInfo.db=null,c._dbInfo.version=n}var l=new i((function(t,r){var a=o.open(e.name,n);a.onerror=function(e){a.result.close(),r(e)},a.onupgradeneeded=function(){a.result.deleteObjectStore(e.storeName)},a.onsuccess=function(){var e=a.result;e.close(),t(e)}}));return l.then((function(e){r.db=e;for(var t=0;t<a.length;t++){var n=a[t];n._dbInfo.db=e,b(n._dbInfo)}})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}})):l.then((function(t){g(e);var n=p[e.name],r=n.forages;t.close();for(var a=0;a<r.length;a++)r[a]._dbInfo.db=null;var s=new i((function(t,n){var r=o.deleteDatabase(e.name);r.onerror=function(){var e=r.result;e&&e.close(),n(r.error)},r.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},r.onsuccess=function(){var e=r.result;e&&e.close(),t(e)}}));return s.then((function(e){n.db=e;for(var t=0;t<r.length;t++)b(r[t]._dbInfo)})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}))}else r=i.reject("Invalid arguments");return s(r,t),r}},j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",L=/^~~local_forage_type~([^~]+)~/,A="__lfsc__:",M=A.length,I="arbf",z="blob",T="si08",R="ui08",$="uic8",P="si16",F="si32",H="ur16",D="ui32",V="fl32",U="fl64",W=M+I.length,B=Object.prototype.toString;function Y(e){var t,n,r,o,a,i=.75*e.length,s=e.length,c=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);var l=new ArrayBuffer(i),u=new Uint8Array(l);for(t=0;t<s;t+=4)n=j.indexOf(e[t]),r=j.indexOf(e[t+1]),o=j.indexOf(e[t+2]),a=j.indexOf(e[t+3]),u[c++]=n<<2|r>>4,u[c++]=(15&r)<<4|o>>2,u[c++]=(3&o)<<6|63&a;return l}function q(e){var t,n=new Uint8Array(e),r="";for(t=0;t<n.length;t+=3)r+=j[n[t]>>2],r+=j[(3&n[t])<<4|n[t+1]>>4],r+=j[(15&n[t+1])<<2|n[t+2]>>6],r+=j[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var G={serialize:function(e,t){var n="";if(e&&(n=B.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===B.call(e.buffer))){var r,o=A;e instanceof ArrayBuffer?(r=e,o+=I):(r=e.buffer,"[object Int8Array]"===n?o+=T:"[object Uint8Array]"===n?o+=R:"[object Uint8ClampedArray]"===n?o+=$:"[object Int16Array]"===n?o+=P:"[object Uint16Array]"===n?o+=H:"[object Int32Array]"===n?o+=F:"[object Uint32Array]"===n?o+=D:"[object Float32Array]"===n?o+=V:"[object Float64Array]"===n?o+=U:t(new Error("Failed to get type for BinaryArray"))),t(o+q(r))}else if("[object Blob]"===n){var a=new FileReader;a.onload=function(){var n="~~local_forage_type~"+e.type+"~"+q(this.result);t("__lfsc__:blob"+n)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}},deserialize:function(e){if(e.substring(0,M)!==A)return JSON.parse(e);var t,n=e.substring(W),r=e.substring(M,W);if(r===z&&L.test(n)){var o=n.match(L);t=o[1],n=n.substring(o[0].length)}var i=Y(n);switch(r){case I:return i;case z:return a([i],{type:t});case T:return new Int8Array(i);case R:return new Uint8Array(i);case $:return new Uint8ClampedArray(i);case P:return new Int16Array(i);case H:return new Uint16Array(i);case F:return new Int32Array(i);case D:return new Uint32Array(i);case V:return new Float32Array(i);case U:return new Float64Array(i);default:throw new Error("Unkown type: "+r)}},stringToBuffer:Y,bufferToString:q};function Z(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function X(e,t,n,r,o,a){e.executeSql(n,r,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?a(e,i):Z(e,t,(function(){e.executeSql(n,r,o,a)}),a)}),a):a(e,i)}),a)}function J(e,t,n,r){var o=this;e=l(e);var a=new i((function(a,i){o.ready().then((function(){void 0===t&&(t=null);var s=t,c=o._dbInfo;c.serializer.serialize(t,(function(t,l){l?i(l):c.db.transaction((function(n){X(n,c,"INSERT OR REPLACE INTO "+c.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){a(s)}),(function(e,t){i(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(r>0)return void a(J.apply(o,[e,s,n,r-1]));i(t)}}))}))})).catch(i)}));return s(a,n),a}function K(e){return new i((function(t,n){e.transaction((function(r){r.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var o=[],a=0;a<r.rows.length;a++)o.push(r.rows.item(a).name);t({db:e,storeNames:o})}),(function(e,t){n(t)}))}),(function(e){n(e)}))}))}var Q={_driver:"webSQLStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new i((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(o){Z(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=G,o},_support:"function"==typeof openDatabase,iterate:function(e,t){var n=this,r=new i((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){X(n,o,"SELECT * FROM "+o.storeName,[],(function(n,r){for(var a=r.rows,i=a.length,s=0;s<i;s++){var c=a.item(s),l=c.value;if(l&&(l=o.serializer.deserialize(l)),void 0!==(l=e(l,c.key,s+1)))return void t(l)}t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){X(n,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){return J.apply(this,[e,t,n,1])},removeItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){X(n,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){X(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){X(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new i((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){X(n,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){X(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],o=0;o<n.rows.length;o++)r.push(n.rows.item(o).key);e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=u.apply(this,arguments);var n=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,o=this;return s(r=e.name?new i((function(t){var r;r=e.name===n.name?o._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:r,storeNames:[e.storeName]}):t(K(r))})).then((function(e){return new i((function(t,n){e.db.transaction((function(r){function o(e){return new i((function(t,n){r.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){n(t)}))}))}for(var a=[],s=0,c=e.storeNames.length;s<c;s++)a.push(o(e.storeNames[s]));i.all(a).then((function(){t()})).catch((function(e){n(e)}))}),(function(e){n(e)}))}))})):i.reject("Invalid arguments"),t),r}};function ee(e,t){var n=e.name+"/";return e.storeName!==t.storeName&&(n+=e.storeName+"/"),n}var te={_driver:"localStorageWrapper",_initStorage:function(e){var t={};if(e)for(var n in e)t[n]=e[n];return t.keyPrefix=ee(e,this._defaultConfig),!function(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}()||localStorage.length>0?(this._dbInfo=t,t.serializer=G,i.resolve()):i.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,o=r.length,a=localStorage.length,i=1,s=0;s<a;s++){var c=localStorage.key(s);if(0===c.indexOf(r)){var l=localStorage.getItem(c);if(l&&(l=t.serializer.deserialize(l)),void 0!==(l=e(l,c.substring(o),i++)))return l}}}));return s(r,t),r},getItem:function(e,t){var n=this;e=l(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=l(e);var o=r.ready().then((function(){void 0===t&&(t=null);var n=t;return new i((function(o,a){var i=r._dbInfo;i.serializer.serialize(t,(function(t,r){if(r)a(r);else try{localStorage.setItem(i.keyPrefix+e,t),o(n)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||a(e),a(e)}}))}))}));return s(o,n),o},removeItem:function(e,t){var n=this;e=l(e);var r=n.ready().then((function(){var t=n._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return s(r,t),r},clear:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return s(n,e),n},length:function(e){var t=this.keys().then((function(e){return e.length}));return s(t,e),t},key:function(e,t){var n=this,r=n.ready().then((function(){var t,r=n._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(r.keyPrefix.length)),t}));return s(r,t),r},keys:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo,n=localStorage.length,r=[],o=0;o<n;o++){var a=localStorage.key(o);0===a.indexOf(e.keyPrefix)&&r.push(a.substring(e.keyPrefix.length))}return r}));return s(n,e),n},dropInstance:function(e,t){if(t=u.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var n=this.config();e.name=e.name||n.name,e.storeName=e.storeName||n.storeName}var r,o=this;return s(r=e.name?new i((function(t){e.storeName?t(ee(e,o._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):i.reject("Invalid arguments"),t),r}},ne=function(e,t){for(var n,r,o=e.length,a=0;a<o;){if((n=e[a])===(r=t)||"number"==typeof n&&"number"==typeof r&&isNaN(n)&&isNaN(r))return!0;a++}return!1},re=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},oe={},ae={},ie={INDEXEDDB:N,WEBSQL:Q,LOCALSTORAGE:te},se=[ie.INDEXEDDB._driver,ie.WEBSQL._driver,ie.LOCALSTORAGE._driver],ce=["dropInstance"],le=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(ce),ue={description:"",driver:se.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function fe(e,t){e[t]=function(){var n=arguments;return e.ready().then((function(){return e[t].apply(e,n)}))}}function he(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var n in t)t.hasOwnProperty(n)&&(re(t[n])?arguments[0][n]=t[n].slice():arguments[0][n]=t[n])}return arguments[0]}var pe=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ie)if(ie.hasOwnProperty(n)){var r=ie[n],o=r._driver;this[n]=o,oe[o]||this.defineDriver(r)}this._defaultConfig=he({},ue),this._config=he({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":r(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,n){var r=new i((function(t,n){try{var r=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void n(o);for(var a=le.concat("_initStorage"),c=0,l=a.length;c<l;c++){var u=a[c];if((!ne(ce,u)||e[u])&&"function"!=typeof e[u])return void n(o)}!function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),n=i.reject(t);return s(n,arguments[arguments.length-1]),n}},n=0,r=ce.length;n<r;n++){var o=ce[n];e[o]||(e[o]=t(o))}}();var f=function(n){oe[r]&&console.info("Redefining LocalForage driver: "+r),oe[r]=e,ae[r]=n,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(f,n):f(!!e._support):f(!0)}catch(e){n(e)}}));return c(r,t,n),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,n){var r=oe[e]?i.resolve(oe[e]):i.reject(new Error("Driver not found."));return c(r,t,n),r},e.prototype.getSerializer=function(e){var t=i.resolve(G);return c(t,e),t},e.prototype.ready=function(e){var t=this,n=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return c(n,e,e),n},e.prototype.setDriver=function(e,t,n){var r=this;re(e)||(e=[e]);var o=this._getSupportedDrivers(e);function a(){r._config.driver=r.driver()}function s(e){return r._extend(e),a(),r._ready=r._initStorage(r._config),r._ready}var l=null!==this._driverSet?this._driverSet.catch((function(){return i.resolve()})):i.resolve();return this._driverSet=l.then((function(){var e=o[0];return r._dbInfo=null,r._ready=null,r.getDriver(e).then((function(e){r._driver=e._driver,a(),r._wrapLibraryMethodsWithReady(),r._initDriver=function(e){return function(){var t=0;return function n(){for(;t<e.length;){var o=e[t];return t++,r._dbInfo=null,r._ready=null,r.getDriver(o).then(s).catch(n)}a();var c=new Error("No available storage method found.");return r._driverSet=i.reject(c),r._driverSet}()}}(o)}))})).catch((function(){a();var e=new Error("No available storage method found.");return r._driverSet=i.reject(e),r._driverSet})),c(this._driverSet,t,n),this._driverSet},e.prototype.supports=function(e){return!!ae[e]},e.prototype._extend=function(e){he(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var o=e[n];this.supports(o)&&t.push(o)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=le.length;e<t;e++)fe(this,le[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),de=new pe;t.exports=de},{3:3}]},{},[4])(4)}))},72378:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",o=9007199254740991,a="[object Arguments]",i="[object Function]",s="[object Object]",c=/^\[object .+?Constructor\]$/,l=/^(?:0|[1-9]\d*)$/,u={};u["[object Float32Array]"]=u["[object Float64Array]"]=u["[object Int8Array]"]=u["[object Int16Array]"]=u["[object Int32Array]"]=u["[object Uint8Array]"]=u["[object Uint8ClampedArray]"]=u["[object Uint16Array]"]=u["[object Uint32Array]"]=!0,u[a]=u["[object Array]"]=u["[object ArrayBuffer]"]=u["[object Boolean]"]=u["[object DataView]"]=u["[object Date]"]=u["[object Error]"]=u[i]=u["[object Map]"]=u["[object Number]"]=u[s]=u["[object RegExp]"]=u["[object Set]"]=u["[object String]"]=u["[object WeakMap]"]=!1;var f="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,h="object"==typeof self&&self&&self.Object===Object&&self,p=f||h||Function("return this")(),d=t&&!t.nodeType&&t,m=d&&e&&!e.nodeType&&e,v=m&&m.exports===d,g=v&&f.process,b=function(){try{return m&&m.require&&m.require("util").types||g&&g.binding&&g.binding("util")}catch(e){}}(),y=b&&b.isTypedArray;function _(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var w,x,k,S=Array.prototype,C=Function.prototype,E=Object.prototype,O=p["__core-js_shared__"],N=C.toString,j=E.hasOwnProperty,L=(w=/[^.]+$/.exec(O&&O.keys&&O.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"",A=E.toString,M=N.call(Object),I=RegExp("^"+N.call(j).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),z=v?p.Buffer:void 0,T=p.Symbol,R=p.Uint8Array,$=(z&&z.allocUnsafe,x=Object.getPrototypeOf,k=Object,function(e){return x(k(e))}),P=Object.create,F=E.propertyIsEnumerable,H=S.splice,D=T?T.toStringTag:void 0,V=function(){try{var e=ce(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),U=z?z.isBuffer:void 0,W=Math.max,B=Date.now,Y=ce(p,"Map"),q=ce(Object,"create"),G=function(){function e(){}return function(t){if(!_e(t))return{};if(P)return P(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Z(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function X(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function J(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function K(e){var t=this.__data__=new X(e);this.size=t.size}function Q(e,t,n){(void 0!==n&&!pe(e[t],n)||void 0===n&&!(t in e))&&ne(e,t,n)}function ee(e,t,n){var r=e[t];j.call(e,t)&&pe(r,n)&&(void 0!==n||t in e)||ne(e,t,n)}function te(e,t){for(var n=e.length;n--;)if(pe(e[n][0],t))return n;return-1}function ne(e,t,n){"__proto__"==t&&V?V(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}Z.prototype.clear=function(){this.__data__=q?q(null):{},this.size=0},Z.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Z.prototype.get=function(e){var t=this.__data__;if(q){var n=t[e];return n===r?void 0:n}return j.call(t,e)?t[e]:void 0},Z.prototype.has=function(e){var t=this.__data__;return q?void 0!==t[e]:j.call(t,e)},Z.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=q&&void 0===t?r:t,this},X.prototype.clear=function(){this.__data__=[],this.size=0},X.prototype.delete=function(e){var t=this.__data__,n=te(t,e);return!(n<0||(n==t.length-1?t.pop():H.call(t,n,1),--this.size,0))},X.prototype.get=function(e){var t=this.__data__,n=te(t,e);return n<0?void 0:t[n][1]},X.prototype.has=function(e){return te(this.__data__,e)>-1},X.prototype.set=function(e,t){var n=this.__data__,r=te(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},J.prototype.clear=function(){this.size=0,this.__data__={hash:new Z,map:new(Y||X),string:new Z}},J.prototype.delete=function(e){var t=se(this,e).delete(e);return this.size-=t?1:0,t},J.prototype.get=function(e){return se(this,e).get(e)},J.prototype.has=function(e){return se(this,e).has(e)},J.prototype.set=function(e,t){var n=se(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},K.prototype.clear=function(){this.__data__=new X,this.size=0},K.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},K.prototype.get=function(e){return this.__data__.get(e)},K.prototype.has=function(e){return this.__data__.has(e)},K.prototype.set=function(e,t){var n=this.__data__;if(n instanceof X){var r=n.__data__;if(!Y||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new J(r)}return n.set(e,t),this.size=n.size,this};function re(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":D&&D in Object(e)?function(e){var t=j.call(e,D),n=e[D];try{e[D]=void 0;var r=!0}catch(e){}var o=A.call(e);return r&&(t?e[D]=n:delete e[D]),o}(e):function(e){return A.call(e)}(e)}function oe(e){return we(e)&&re(e)==a}function ae(e,t,n,r,o){e!==t&&function(e,t,n){for(var r=-1,o=Object(e),a=n(e),i=a.length;i--;){var s=a[++r];if(!1===t(o[s],s,o))break}}(t,(function(a,i){if(o||(o=new K),_e(a))!function(e,t,n,r,o,a,i){var c=fe(e,n),l=fe(t,n),u=i.get(l);if(u)Q(e,n,u);else{var f,h,p,d,m,v=a?a(c,l,n+"",e,t,i):void 0,g=void 0===v;if(g){var b=me(l),y=!b&&ge(l),_=!b&&!y&&xe(l);v=l,b||y||_?me(c)?v=c:we(m=c)&&ve(m)?v=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(c):y?(g=!1,v=function(e,t){return e.slice()}(l)):_?(g=!1,d=new(p=(f=l).buffer).constructor(p.byteLength),new R(d).set(new R(p)),h=d,v=new f.constructor(h,f.byteOffset,f.length)):v=[]:function(e){if(!we(e)||re(e)!=s)return!1;var t=$(e);if(null===t)return!0;var n=j.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&N.call(n)==M}(l)||de(l)?(v=c,de(c)?v=function(e){return function(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var s=t[a],c=void 0;void 0===c&&(c=e[s]),o?ne(n,s,c):ee(n,s,c)}return n}(e,ke(e))}(c):_e(c)&&!be(c)||(v=function(e){return"function"!=typeof e.constructor||ue(e)?{}:G($(e))}(l))):g=!1}g&&(i.set(l,v),o(v,l,r,a,i),i.delete(l)),Q(e,n,v)}}(e,t,i,n,ae,r,o);else{var c=r?r(fe(e,i),a,i+"",e,t,o):void 0;void 0===c&&(c=a),Q(e,i,c)}}),ke)}var ie=V?function(e,t){return V(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:Ee;function se(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function ce(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!_e(e)||function(e){return!!L&&L in e}(e))&&(be(e)?I:c).test(function(e){if(null!=e){try{return N.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}(n)?n:void 0}function le(e,t){var n=typeof e;return!!(t=null==t?o:t)&&("number"==n||"symbol"!=n&&l.test(e))&&e>-1&&e%1==0&&e<t}function ue(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||E)}function fe(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var he=function(e){var t=0,n=0;return function(){var r=B(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(ie);function pe(e,t){return e===t||e!=e&&t!=t}var de=oe(function(){return arguments}())?oe:function(e){return we(e)&&j.call(e,"callee")&&!F.call(e,"callee")},me=Array.isArray;function ve(e){return null!=e&&ye(e.length)&&!be(e)}var ge=U||function(){return!1};function be(e){if(!_e(e))return!1;var t=re(e);return t==i||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function ye(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function _e(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function we(e){return null!=e&&"object"==typeof e}var xe=y?function(e){return function(t){return e(t)}}(y):function(e){return we(e)&&ye(e.length)&&!!u[re(e)]};function ke(e){return ve(e)?function(e,t){var n=me(e),r=!n&&de(e),o=!n&&!r&&ge(e),a=!n&&!r&&!o&&xe(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=s.length;for(var l in e)!t&&!j.call(e,l)||i&&("length"==l||o&&("offset"==l||"parent"==l)||a&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||le(l,c))||s.push(l);return s}(e,!0):function(e){if(!_e(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=ue(e),n=[];for(var r in e)("constructor"!=r||!t&&j.call(e,r))&&n.push(r);return n}(e)}var Se,Ce=(Se=function(e,t,n){ae(e,t,n)},function(e,t){return he(function(e,t,n){return t=W(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=W(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=n(i),_(e,this,s)}}(e,t,Ee),e+"")}((function(e,t){var n=-1,r=t.length,o=r>1?t[r-1]:void 0,a=r>2?t[2]:void 0;for(o=Se.length>3&&"function"==typeof o?(r--,o):void 0,a&&function(e,t,n){if(!_e(n))return!1;var r=typeof t;return!!("number"==r?ve(n)&&le(t,n.length):"string"==r&&t in n)&&pe(n[t],e)}(t[0],t[1],a)&&(o=r<3?void 0:o,r=1),e=Object(e);++n<r;){var i=t[n];i&&Se(e,i,n)}return e})));function Ee(e){return e}e.exports=Ce},18552:(e,t,n)=>{var r=n(10852)(n(55639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(51789),o=n(80401),a=n(57667),i=n(21327),s=n(81866);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=i,c.prototype.set=s,e.exports=c},38407:(e,t,n)=>{var r=n(27040),o=n(14125),a=n(82117),i=n(67518),s=n(54705);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=i,c.prototype.set=s,e.exports=c},57071:(e,t,n)=>{var r=n(10852)(n(55639),"Map");e.exports=r},83369:(e,t,n)=>{var r=n(24785),o=n(11285),a=n(96e3),i=n(49916),s=n(95265);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=i,c.prototype.set=s,e.exports=c},53818:(e,t,n)=>{var r=n(10852)(n(55639),"Promise");e.exports=r},58525:(e,t,n)=>{var r=n(10852)(n(55639),"Set");e.exports=r},88668:(e,t,n)=>{var r=n(83369),o=n(90619),a=n(72385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=o,i.prototype.has=a,e.exports=i},46384:(e,t,n)=>{var r=n(38407),o=n(37465),a=n(63779),i=n(67599),s=n(44758),c=n(34309);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=a,l.prototype.get=i,l.prototype.has=s,l.prototype.set=c,e.exports=l},62705:(e,t,n)=>{var r=n(55639).Symbol;e.exports=r},11149:(e,t,n)=>{var r=n(55639).Uint8Array;e.exports=r},70577:(e,t,n)=>{var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},44174:e=>{e.exports=function(e,t,n,r){for(var o=-1,a=null==e?0:e.length;++o<a;){var i=e[o];t(r,i,n(i),e)}return r}},77412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}},47443:(e,t,n)=>{var r=n(42118);e.exports=function(e,t){return!(null==e||!e.length)&&r(e,t,0)>-1}},1196:e=>{e.exports=function(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}},14636:(e,t,n)=>{var r=n(22545),o=n(35694),a=n(1469),i=n(44144),s=n(65776),c=n(36719),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=a(e),u=!n&&o(e),f=!n&&!u&&i(e),h=!n&&!u&&!f&&c(e),p=n||u||f||h,d=p?r(e.length,String):[],m=d.length;for(var v in e)!t&&!l.call(e,v)||p&&("length"==v||f&&("offset"==v||"parent"==v)||h&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,m))||d.push(v);return d}},29932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},62488:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},62663:e=>{e.exports=function(e,t,n,r){var o=-1,a=null==e?0:e.length;for(r&&a&&(n=e[++o]);++o<a;)n=t(n,e[o],o,e);return n}},70151:(e,t,n)=>{var r=n(278),o=n(73480);e.exports=function(e){return o(r(e))}},82908:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},44286:e=>{e.exports=function(e){return e.split("")}},49029:e=>{var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(t)||[]}},86556:(e,t,n)=>{var r=n(89465),o=n(77813);e.exports=function(e,t,n){(void 0!==n&&!o(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},34865:(e,t,n)=>{var r=n(89465),o=n(77813),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];a.call(e,t)&&o(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:(e,t,n)=>{var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},81119:(e,t,n)=>{var r=n(89881);e.exports=function(e,t,n,o){return r(e,(function(e,r,a){t(o,e,n(e),a)})),o}},44037:(e,t,n)=>{var r=n(98363),o=n(3674);e.exports=function(e,t){return e&&r(t,o(t),e)}},63886:(e,t,n)=>{var r=n(98363),o=n(81704);e.exports=function(e,t){return e&&r(t,o(t),e)}},89465:(e,t,n)=>{var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},29750:e=>{e.exports=function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}},85990:(e,t,n)=>{var r=n(46384),o=n(77412),a=n(34865),i=n(44037),s=n(63886),c=n(64626),l=n(278),u=n(18805),f=n(1911),h=n(58234),p=n(46904),d=n(64160),m=n(43824),v=n(29148),g=n(38517),b=n(1469),y=n(44144),_=n(56688),w=n(13218),x=n(72928),k=n(3674),S=n(81704),C="[object Arguments]",E="[object Function]",O="[object Object]",N={};N[C]=N["[object Array]"]=N["[object ArrayBuffer]"]=N["[object DataView]"]=N["[object Boolean]"]=N["[object Date]"]=N["[object Float32Array]"]=N["[object Float64Array]"]=N["[object Int8Array]"]=N["[object Int16Array]"]=N["[object Int32Array]"]=N["[object Map]"]=N["[object Number]"]=N[O]=N["[object RegExp]"]=N["[object Set]"]=N["[object String]"]=N["[object Symbol]"]=N["[object Uint8Array]"]=N["[object Uint8ClampedArray]"]=N["[object Uint16Array]"]=N["[object Uint32Array]"]=!0,N["[object Error]"]=N[E]=N["[object WeakMap]"]=!1,e.exports=function e(t,n,j,L,A,M){var I,z=1&n,T=2&n,R=4&n;if(j&&(I=A?j(t,L,A,M):j(t)),void 0!==I)return I;if(!w(t))return t;var $=b(t);if($){if(I=m(t),!z)return l(t,I)}else{var P=d(t),F=P==E||"[object GeneratorFunction]"==P;if(y(t))return c(t,z);if(P==O||P==C||F&&!A){if(I=T||F?{}:g(t),!z)return T?f(t,s(I,t)):u(t,i(I,t))}else{if(!N[P])return A?t:{};I=v(t,P,z)}}M||(M=new r);var H=M.get(t);if(H)return H;M.set(t,I),x(t)?t.forEach((function(r){I.add(e(r,n,j,r,t,M))})):_(t)&&t.forEach((function(r,o){I.set(o,e(r,n,j,o,t,M))}));var D=$?void 0:(R?T?p:h:T?S:k)(t);return o(D||t,(function(r,o){D&&(r=t[o=r]),a(I,o,e(r,n,j,o,t,M))})),I}},3118:(e,t,n)=>{var r=n(13218),o=Object.create,a=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=a},89881:(e,t,n)=>{var r=n(47816),o=n(99291)(r);e.exports=o},56029:(e,t,n)=>{var r=n(33448);e.exports=function(e,t,n){for(var o=-1,a=e.length;++o<a;){var i=e[o],s=t(i);if(null!=s&&(void 0===c?s==s&&!r(s):n(s,c)))var c=s,l=i}return l}},80760:(e,t,n)=>{var r=n(89881);e.exports=function(e,t){var n=[];return r(e,(function(e,r,o){t(e,r,o)&&n.push(e)})),n}},41848:e=>{e.exports=function(e,t,n,r){for(var o=e.length,a=n+(r?1:-1);r?a--:++a<o;)if(t(e[a],a,e))return a;return-1}},21078:(e,t,n)=>{var r=n(62488),o=n(37285);e.exports=function e(t,n,a,i,s){var c=-1,l=t.length;for(a||(a=o),s||(s=[]);++c<l;){var u=t[c];n>0&&a(u)?n>1?e(u,n-1,a,i,s):r(s,u):i||(s[s.length]=u)}return s}},28483:(e,t,n)=>{var r=n(25063)();e.exports=r},47816:(e,t,n)=>{var r=n(28483),o=n(3674);e.exports=function(e,t){return e&&r(e,t,o)}},97786:(e,t,n)=>{var r=n(71811),o=n(40327);e.exports=function(e,t){for(var n=0,a=(t=r(t,e)).length;null!=e&&n<a;)e=e[o(t[n++])];return n&&n==a?e:void 0}},68866:(e,t,n)=>{var r=n(62488),o=n(1469);e.exports=function(e,t,n){var a=t(e);return o(e)?a:r(a,n(e))}},44239:(e,t,n)=>{var r=n(62705),o=n(89607),a=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},53325:e=>{e.exports=function(e,t){return e>t}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},42118:(e,t,n)=>{var r=n(41848),o=n(62722),a=n(42351);e.exports=function(e,t,n){return t==t?a(e,t,n):r(e,o,n)}},9454:(e,t,n)=>{var r=n(44239),o=n(37005);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},90939:(e,t,n)=>{var r=n(2492),o=n(37005);e.exports=function e(t,n,a,i,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,a,i,e,s))}},2492:(e,t,n)=>{var r=n(46384),o=n(67114),a=n(18351),i=n(16096),s=n(64160),c=n(1469),l=n(44144),u=n(36719),f="[object Arguments]",h="[object Array]",p="[object Object]",d=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,v,g){var b=c(e),y=c(t),_=b?h:s(e),w=y?h:s(t),x=(_=_==f?p:_)==p,k=(w=w==f?p:w)==p,S=_==w;if(S&&l(e)){if(!l(t))return!1;b=!0,x=!1}if(S&&!x)return g||(g=new r),b||u(e)?o(e,t,n,m,v,g):a(e,t,_,n,m,v,g);if(!(1&n)){var C=x&&d.call(e,"__wrapped__"),E=k&&d.call(t,"__wrapped__");if(C||E){var O=C?e.value():e,N=E?t.value():t;return g||(g=new r),v(O,N,n,m,g)}}return!!S&&(g||(g=new r),i(e,t,n,m,v,g))}},25588:(e,t,n)=>{var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(46384),o=n(90939);e.exports=function(e,t,n,a){var i=n.length,s=i,c=!a;if(null==e)return!s;for(e=Object(e);i--;){var l=n[i];if(c&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<s;){var u=(l=n[i])[0],f=e[u],h=l[1];if(c&&l[2]){if(void 0===f&&!(u in e))return!1}else{var p=new r;if(a)var d=a(f,h,u,e,t,p);if(!(void 0===d?o(h,f,3,a,p):d))return!1}}return!0}},62722:e=>{e.exports=function(e){return e!=e}},28458:(e,t,n)=>{var r=n(23560),o=n(15346),a=n(13218),i=n(80346),s=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,u=c.toString,f=l.hasOwnProperty,h=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(r(e)?h:s).test(i(e))}},29221:(e,t,n)=>{var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Set]"==r(e)}},38749:(e,t,n)=>{var r=n(44239),o=n(41780),a=n(37005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[r(e)]}},67206:(e,t,n)=>{var r=n(91573),o=n(16432),a=n(6557),i=n(1469),s=n(39601);e.exports=function(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?i(e)?o(e[0],e[1]):r(e):s(e)}},280:(e,t,n)=>{var r=n(25726),o=n(86916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))a.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:(e,t,n)=>{var r=n(13218),o=n(25726),a=n(33498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=o(e),n=[];for(var s in e)("constructor"!=s||!t&&i.call(e,s))&&n.push(s);return n}},70433:e=>{e.exports=function(e,t){return e<t}},69199:(e,t,n)=>{var r=n(89881),o=n(98612);e.exports=function(e,t){var n=-1,a=o(e)?Array(e.length):[];return r(e,(function(e,r,o){a[++n]=t(e,r,o)})),a}},91573:(e,t,n)=>{var r=n(2958),o=n(1499),a=n(42634);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},16432:(e,t,n)=>{var r=n(90939),o=n(27361),a=n(79095),i=n(15403),s=n(89162),c=n(42634),l=n(40327);e.exports=function(e,t){return i(e)&&s(t)?c(l(e),t):function(n){var i=o(n,e);return void 0===i&&i===t?a(n,e):r(t,i,3)}}},42980:(e,t,n)=>{var r=n(46384),o=n(86556),a=n(28483),i=n(59783),s=n(13218),c=n(81704),l=n(36390);e.exports=function e(t,n,u,f,h){t!==n&&a(n,(function(a,c){if(h||(h=new r),s(a))i(t,n,c,u,e,f,h);else{var p=f?f(l(t,c),a,c+"",t,n,h):void 0;void 0===p&&(p=a),o(t,c,p)}}),c)}},59783:(e,t,n)=>{var r=n(86556),o=n(64626),a=n(77133),i=n(278),s=n(38517),c=n(35694),l=n(1469),u=n(29246),f=n(44144),h=n(23560),p=n(13218),d=n(68630),m=n(36719),v=n(36390),g=n(59881);e.exports=function(e,t,n,b,y,_,w){var x=v(e,n),k=v(t,n),S=w.get(k);if(S)r(e,n,S);else{var C=_?_(x,k,n+"",e,t,w):void 0,E=void 0===C;if(E){var O=l(k),N=!O&&f(k),j=!O&&!N&&m(k);C=k,O||N||j?l(x)?C=x:u(x)?C=i(x):N?(E=!1,C=o(k,!0)):j?(E=!1,C=a(k,!0)):C=[]:d(k)||c(k)?(C=x,c(x)?C=g(x):p(x)&&!h(x)||(C=s(k))):E=!1}E&&(w.set(k,C),y(C,k,b,_,w),w.delete(k)),r(e,n,C)}}},82689:(e,t,n)=>{var r=n(29932),o=n(97786),a=n(67206),i=n(69199),s=n(71131),c=n(7518),l=n(85022),u=n(6557),f=n(1469);e.exports=function(e,t,n){t=t.length?r(t,(function(e){return f(e)?function(t){return o(t,1===e.length?e[0]:e)}:e})):[u];var h=-1;t=r(t,c(a));var p=i(e,(function(e,n,o){return{criteria:r(t,(function(t){return t(e)})),index:++h,value:e}}));return s(p,(function(e,t){return l(e,t,n)}))}},63012:(e,t,n)=>{var r=n(97786),o=n(10611),a=n(71811);e.exports=function(e,t,n){for(var i=-1,s=t.length,c={};++i<s;){var l=t[i],u=r(e,l);n(u,l)&&o(c,a(l,e),u)}return c}},40371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},79152:(e,t,n)=>{var r=n(97786);e.exports=function(e){return function(t){return r(t,e)}}},18674:e=>{e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},15742:(e,t,n)=>{var r=n(57406),o=n(65776),a=Array.prototype.splice;e.exports=function(e,t){for(var n=e?t.length:0,i=n-1;n--;){var s=t[n];if(n==i||s!==c){var c=s;o(s)?a.call(e,s,1):r(e,s)}}return e}},69877:e=>{var t=Math.floor,n=Math.random;e.exports=function(e,r){return e+t(n()*(r-e+1))}},10107:e=>{e.exports=function(e,t,n,r,o){return o(e,(function(e,o,a){n=r?(r=!1,e):t(n,e,o,a)})),n}},5976:(e,t,n)=>{var r=n(6557),o=n(45357),a=n(30061);e.exports=function(e,t){return a(o(e,t,r),e+"")}},10611:(e,t,n)=>{var r=n(34865),o=n(71811),a=n(65776),i=n(13218),s=n(40327);e.exports=function(e,t,n,c){if(!i(e))return e;for(var l=-1,u=(t=o(t,e)).length,f=u-1,h=e;null!=h&&++l<u;){var p=s(t[l]),d=n;if("__proto__"===p||"constructor"===p||"prototype"===p)return e;if(l!=f){var m=h[p];void 0===(d=c?c(m,p,h):void 0)&&(d=i(m)?m:a(t[l+1])?[]:{})}r(h,p,d),h=h[p]}return e}},56560:(e,t,n)=>{var r=n(75703),o=n(38777),a=n(6557),i=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:a;e.exports=i},25127:(e,t,n)=>{var r=n(73480),o=n(52628);e.exports=function(e){return r(o(e))}},14259:e=>{e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r<o;)a[r]=e[r+t];return a}},71131:e=>{e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},67762:e=>{e.exports=function(e,t){for(var n,r=-1,o=e.length;++r<o;){var a=t(e[r]);void 0!==a&&(n=void 0===n?a:n+a)}return n}},22545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:(e,t,n)=>{var r=n(62705),o=n(29932),a=n(1469),i=n(33448),s=r?r.prototype:void 0,c=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(a(t))return o(t,e)+"";if(i(t))return c?c.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},27561:(e,t,n)=>{var r=n(67990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},45652:(e,t,n)=>{var r=n(88668),o=n(47443),a=n(1196),i=n(74757),s=n(23593),c=n(21814);e.exports=function(e,t,n){var l=-1,u=o,f=e.length,h=!0,p=[],d=p;if(n)h=!1,u=a;else if(f>=200){var m=t?null:s(e);if(m)return c(m);h=!1,u=i,d=new r}else d=t?[]:p;e:for(;++l<f;){var v=e[l],g=t?t(v):v;if(v=n||0!==v?v:0,h&&g==g){for(var b=d.length;b--;)if(d[b]===g)continue e;t&&d.push(g),p.push(v)}else u(d,g,n)||(d!==p&&d.push(g),p.push(v))}return p}},57406:(e,t,n)=>{var r=n(71811),o=n(10928),a=n(40292),i=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=a(e,t))||delete e[i(o(t))]}},47415:(e,t,n)=>{var r=n(29932);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},74757:e=>{e.exports=function(e,t){return e.has(t)}},54290:(e,t,n)=>{var r=n(6557);e.exports=function(e){return"function"==typeof e?e:r}},71811:(e,t,n)=>{var r=n(1469),o=n(15403),a=n(55514),i=n(79833);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:a(i(e))}},40180:(e,t,n)=>{var r=n(14259);e.exports=function(e,t,n){var o=e.length;return n=void 0===n?o:n,!t&&n>=o?e:r(e,t,n)}},5512:(e,t,n)=>{var r=n(42118);e.exports=function(e,t){for(var n=e.length;n--&&r(t,e[n],0)>-1;);return n}},89817:(e,t,n)=>{var r=n(42118);e.exports=function(e,t){for(var n=-1,o=e.length;++n<o&&r(t,e[n],0)>-1;);return n}},74318:(e,t,n)=>{var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:(e,t,n)=>{e=n.nmd(e);var r=n(55639),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o?r.Buffer:void 0,s=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},57157:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:(e,t,n)=>{var r=n(62705),o=r?r.prototype:void 0,a=o?o.valueOf:void 0;e.exports=function(e){return a?Object(a.call(e)):{}}},77133:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},26393:(e,t,n)=>{var r=n(33448);e.exports=function(e,t){if(e!==t){var n=void 0!==e,o=null===e,a=e==e,i=r(e),s=void 0!==t,c=null===t,l=t==t,u=r(t);if(!c&&!u&&!i&&e>t||i&&s&&l&&!c&&!u||o&&s&&l||!n&&l||!a)return 1;if(!o&&!i&&!u&&e<t||u&&n&&a&&!o&&!i||c&&n&&a||!s&&a||!l)return-1}return 0}},85022:(e,t,n)=>{var r=n(26393);e.exports=function(e,t,n){for(var o=-1,a=e.criteria,i=t.criteria,s=a.length,c=n.length;++o<s;){var l=r(a[o],i[o]);if(l)return o>=c?l:l*("desc"==n[o]?-1:1)}return e.index-t.index}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:(e,t,n)=>{var r=n(34865),o=n(89465);e.exports=function(e,t,n,a){var i=!n;n||(n={});for(var s=-1,c=t.length;++s<c;){var l=t[s],u=a?a(n[l],e[l],l,n,e):void 0;void 0===u&&(u=e[l]),i?o(n,l,u):r(n,l,u)}return n}},18805:(e,t,n)=>{var r=n(98363),o=n(99551);e.exports=function(e,t){return r(e,o(e),t)}},1911:(e,t,n)=>{var r=n(98363),o=n(51442);e.exports=function(e,t){return r(e,o(e),t)}},14429:(e,t,n)=>{var r=n(55639)["__core-js_shared__"];e.exports=r},55189:(e,t,n)=>{var r=n(44174),o=n(81119),a=n(67206),i=n(1469);e.exports=function(e,t){return function(n,s){var c=i(n)?r:o,l=t?t():{};return c(n,e,a(s,2),l)}}},21463:(e,t,n)=>{var r=n(5976),o=n(16612);e.exports=function(e){return r((function(t,n){var r=-1,a=n.length,i=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(i=e.length>3&&"function"==typeof i?(a--,i):void 0,s&&o(n[0],n[1],s)&&(i=a<3?void 0:i,a=1),t=Object(t);++r<a;){var c=n[r];c&&e(t,c,r,i)}return t}))}},99291:(e,t,n)=>{var r=n(98612);e.exports=function(e,t){return function(n,o){if(null==n)return n;if(!r(n))return e(n,o);for(var a=n.length,i=t?a:-1,s=Object(n);(t?i--:++i<a)&&!1!==o(s[i],i,s););return n}}},25063:e=>{e.exports=function(e){return function(t,n,r){for(var o=-1,a=Object(t),i=r(t),s=i.length;s--;){var c=i[e?s:++o];if(!1===n(a[c],c,a))break}return t}}},98805:(e,t,n)=>{var r=n(40180),o=n(62689),a=n(83140),i=n(79833);e.exports=function(e){return function(t){t=i(t);var n=o(t)?a(t):void 0,s=n?n[0]:t.charAt(0),c=n?r(n,1).join(""):t.slice(1);return s[e]()+c}}},35393:(e,t,n)=>{var r=n(62663),o=n(53816),a=n(58748),i=RegExp("['’]","g");e.exports=function(e){return function(t){return r(a(o(t).replace(i,"")),e,"")}}},67740:(e,t,n)=>{var r=n(67206),o=n(98612),a=n(3674);e.exports=function(e){return function(t,n,i){var s=Object(t);if(!o(t)){var c=r(n,3);t=a(t),n=function(e){return c(s[e],e,s)}}var l=e(t,n,i);return l>-1?s[c?t[l]:l]:void 0}}},23593:(e,t,n)=>{var r=n(58525),o=n(50308),a=n(21814),i=r&&1/a(new r([,-0]))[1]==1/0?function(e){return new r(e)}:o;e.exports=i},69389:(e,t,n)=>{var r=n(18674)({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"});e.exports=r},38777:(e,t,n)=>{var r=n(10852),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},67114:(e,t,n)=>{var r=n(88668),o=n(82908),a=n(74757);e.exports=function(e,t,n,i,s,c){var l=1&n,u=e.length,f=t.length;if(u!=f&&!(l&&f>u))return!1;var h=c.get(e),p=c.get(t);if(h&&p)return h==t&&p==e;var d=-1,m=!0,v=2&n?new r:void 0;for(c.set(e,t),c.set(t,e);++d<u;){var g=e[d],b=t[d];if(i)var y=l?i(b,g,d,t,e,c):i(g,b,d,e,t,c);if(void 0!==y){if(y)continue;m=!1;break}if(v){if(!o(t,(function(e,t){if(!a(v,t)&&(g===e||s(g,e,n,i,c)))return v.push(t)}))){m=!1;break}}else if(g!==b&&!s(g,b,n,i,c)){m=!1;break}}return c.delete(e),c.delete(t),m}},18351:(e,t,n)=>{var r=n(62705),o=n(11149),a=n(77813),i=n(67114),s=n(68776),c=n(21814),l=r?r.prototype:void 0,u=l?l.valueOf:void 0;e.exports=function(e,t,n,r,l,f,h){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var p=s;case"[object Set]":var d=1&r;if(p||(p=c),e.size!=t.size&&!d)return!1;var m=h.get(e);if(m)return m==t;r|=2,h.set(e,t);var v=i(p(e),p(t),r,l,f,h);return h.delete(e),v;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},16096:(e,t,n)=>{var r=n(58234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,i,s){var c=1&n,l=r(e),u=l.length;if(u!=r(t).length&&!c)return!1;for(var f=u;f--;){var h=l[f];if(!(c?h in t:o.call(t,h)))return!1}var p=s.get(e),d=s.get(t);if(p&&d)return p==t&&d==e;var m=!0;s.set(e,t),s.set(t,e);for(var v=c;++f<u;){var g=e[h=l[f]],b=t[h];if(a)var y=c?a(b,g,h,t,e,s):a(g,b,h,e,t,s);if(!(void 0===y?g===b||i(g,b,n,a,s):y)){m=!1;break}v||(v="constructor"==h)}if(m&&!v){var _=e.constructor,w=t.constructor;_==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w||(m=!1)}return s.delete(e),s.delete(t),m}},31957:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:(e,t,n)=>{var r=n(68866),o=n(99551),a=n(3674);e.exports=function(e){return r(e,a,o)}},46904:(e,t,n)=>{var r=n(68866),o=n(51442),a=n(81704);e.exports=function(e){return r(e,a,o)}},45050:(e,t,n)=>{var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(89162),o=n(3674);e.exports=function(e){for(var t=o(e),n=t.length;n--;){var a=t[n],i=e[a];t[n]=[a,i,r(i)]}return t}},10852:(e,t,n)=>{var r=n(28458),o=n(47801);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},85924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:(e,t,n)=>{var r=n(62705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=a.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=i.call(e);return r&&(t?e[s]=n:delete e[s]),o}},99551:(e,t,n)=>{var r=n(34963),o=n(70479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=s},51442:(e,t,n)=>{var r=n(62488),o=n(85924),a=n(99551),i=n(70479),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,a(e)),e=o(e);return t}:i;e.exports=s},64160:(e,t,n)=>{var r=n(18552),o=n(57071),a=n(53818),i=n(58525),s=n(70577),c=n(44239),l=n(80346),u="[object Map]",f="[object Promise]",h="[object Set]",p="[object WeakMap]",d="[object DataView]",m=l(r),v=l(o),g=l(a),b=l(i),y=l(s),_=c;(r&&_(new r(new ArrayBuffer(1)))!=d||o&&_(new o)!=u||a&&_(a.resolve())!=f||i&&_(new i)!=h||s&&_(new s)!=p)&&(_=function(e){var t=c(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case m:return d;case v:return u;case g:return f;case b:return h;case y:return p}return t}),e.exports=_},47801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(71811),o=n(35694),a=n(1469),i=n(65776),s=n(41780),c=n(40327);e.exports=function(e,t,n){for(var l=-1,u=(t=r(t,e)).length,f=!1;++l<u;){var h=c(t[l]);if(!(f=null!=e&&n(e,h)))break;e=e[h]}return f||++l!=u?f:!!(u=null==e?0:e.length)&&s(u)&&i(h,u)&&(a(e)||o(e))}},62689:e=>{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},93157:e=>{var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},51789:(e,t,n)=>{var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:(e,t,n)=>{var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},21327:(e,t,n)=>{var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},81866:(e,t,n)=>{var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:(e,t,n)=>{var r=n(74318),o=n(57157),a=n(93147),i=n(40419),s=n(77133);e.exports=function(e,t,n){var c=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new c(+e);case"[object DataView]":return o(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":case"[object Set]":return new c;case"[object Number]":case"[object String]":return new c(e);case"[object RegExp]":return a(e);case"[object Symbol]":return i(e)}}},38517:(e,t,n)=>{var r=n(3118),o=n(85924),a=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||a(e)?{}:r(o(e))}},37285:(e,t,n)=>{var r=n(62705),o=n(35694),a=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return a(e)||o(e)||!!(i&&e&&e[i])}},65776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},16612:(e,t,n)=>{var r=n(77813),o=n(98612),a=n(65776),i=n(13218);e.exports=function(e,t,n){if(!i(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&a(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},15403:(e,t,n)=>{var r=n(1469),o=n(33448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||i.test(e)||!a.test(e)||null!=t&&e in Object(t)}},37019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15346:(e,t,n)=>{var r,o=n(14429),a=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!a&&a in e}},25726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},89162:(e,t,n)=>{var r=n(13218);e.exports=function(e){return e==e&&!r(e)}},27040:e=>{e.exports=function(){this.__data__=[],this.size=0}},14125:(e,t,n)=>{var r=n(18470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():o.call(t,n,1),--this.size,0))}},82117:(e,t,n)=>{var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:(e,t,n)=>{var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},54705:(e,t,n)=>{var r=n(18470);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},24785:(e,t,n)=>{var r=n(1989),o=n(38407),a=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||o),string:new r}}},11285:(e,t,n)=>{var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:(e,t,n)=>{var r=n(45050);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},68776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},42634:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},24523:(e,t,n)=>{var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},94536:(e,t,n)=>{var r=n(10852)(Object,"create");e.exports=r},86916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},33498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:(e,t,n)=>{e=n.nmd(e);var r=n(31957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&r.process,s=function(){try{return a&&a.require&&a.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=s},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},45357:(e,t,n)=>{var r=n(96874),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,s=o(a.length-t,0),c=Array(s);++i<s;)c[i]=a[t+i];i=-1;for(var l=Array(t+1);++i<t;)l[i]=a[i];return l[t]=n(c),r(e,this,l)}}},40292:(e,t,n)=>{var r=n(97786),o=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},55639:(e,t,n)=>{var r=n(31957),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},36390:e=>{e.exports=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}},90619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:e=>{e.exports=function(e){return this.__data__.has(e)}},21814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},30061:(e,t,n)=>{var r=n(56560),o=n(21275)(r);e.exports=o},21275:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),a=16-(o-r);if(r=o,a>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},73480:(e,t,n)=>{var r=n(69877);e.exports=function(e,t){var n=-1,o=e.length,a=o-1;for(t=void 0===t?o:t;++n<t;){var i=r(n,a),s=e[i];e[i]=e[n],e[n]=s}return e.length=t,e}},37465:(e,t,n)=>{var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:e=>{e.exports=function(e){return this.__data__.get(e)}},44758:e=>{e.exports=function(e){return this.__data__.has(e)}},34309:(e,t,n)=>{var r=n(38407),o=n(57071),a=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(i)}return n.set(e,t),this.size=n.size,this}},42351:e=>{e.exports=function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}},83140:(e,t,n)=>{var r=n(44286),o=n(62689),a=n(676);e.exports=function(e){return o(e)?a(e):r(e)}},55514:(e,t,n)=>{var r=n(24523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(a,"$1"):n||e)})),t}));e.exports=i},40327:(e,t,n)=>{var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},80346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},67990:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},83729:(e,t,n)=>{var r=n(18674)({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});e.exports=r},676:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",o="(?:\\ud83c[\\udde6-\\uddff]){2}",a="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",s="[\\ufe0e\\ufe0f]?",c=s+i+"(?:\\u200d(?:"+[r,o,a].join("|")+")"+s+i+")*",l="(?:"+[r+t+"?",t,o,a,"[\\ud800-\\udfff]"].join("|")+")",u=RegExp(n+"(?="+n+")|"+l+c,"g");e.exports=function(e){return e.match(u)||[]}},2757:e=>{var t="a-z\\xdf-\\xf6\\xf8-\\xff",n="A-Z\\xc0-\\xd6\\xd8-\\xde",r="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",o="["+r+"]",a="\\d+",i="["+t+"]",s="[^\\ud800-\\udfff"+r+a+"\\u2700-\\u27bf"+t+n+"]",c="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="["+n+"]",f="(?:"+i+"|"+s+")",h="(?:"+u+"|"+s+")",p="(?:['’](?:d|ll|m|re|s|t|ve))?",d="(?:['’](?:D|LL|M|RE|S|T|VE))?",m="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",v="[\\ufe0e\\ufe0f]?",g=v+m+"(?:\\u200d(?:"+["[^\\ud800-\\udfff]",c,l].join("|")+")"+v+m+")*",b="(?:"+["[\\u2700-\\u27bf]",c,l].join("|")+")"+g,y=RegExp([u+"?"+i+"+"+p+"(?="+[o,u,"$"].join("|")+")",h+"+"+d+"(?="+[o,u+f,"$"].join("|")+")",u+"?"+f+"+"+p,u+"+"+d,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",a,b].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},68929:(e,t,n)=>{var r=n(48403),o=n(35393)((function(e,t,n){return t=t.toLowerCase(),e+(n?r(t):t)}));e.exports=o},48403:(e,t,n)=>{var r=n(79833),o=n(11700);e.exports=function(e){return o(r(e).toLowerCase())}},8400:(e,t,n)=>{var r=n(14259),o=n(16612),a=n(40554),i=Math.ceil,s=Math.max;e.exports=function(e,t,n){t=(n?o(e,t,n):void 0===t)?1:s(a(t),0);var c=null==e?0:e.length;if(!c||t<1)return[];for(var l=0,u=0,f=Array(i(c/t));l<c;)f[u++]=r(e,l,l+=t);return f}},74691:(e,t,n)=>{var r=n(29750),o=n(14841);e.exports=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=o(n))==n?n:0),void 0!==t&&(t=(t=o(t))==t?t:0),r(o(e),t,n)}},66678:(e,t,n)=>{var r=n(85990);e.exports=function(e){return r(e,4)}},50361:(e,t,n)=>{var r=n(85990);e.exports=function(e){return r(e,5)}},39693:e=>{e.exports=function(e){for(var t=-1,n=null==e?0:e.length,r=0,o=[];++t<n;){var a=e[t];a&&(o[r++]=a)}return o}},57043:(e,t,n)=>{var r=n(62488),o=n(21078),a=n(278),i=n(1469);e.exports=function(){var e=arguments.length;if(!e)return[];for(var t=Array(e-1),n=arguments[0],s=e;s--;)t[s-1]=arguments[s];return r(i(n)?a(n):[n],o(t,1))}},75703:e=>{e.exports=function(e){return function(){return e}}},23279:(e,t,n)=>{var r=n(13218),o=n(7771),a=n(14841),i=Math.max,s=Math.min;e.exports=function(e,t,n){var c,l,u,f,h,p,d=0,m=!1,v=!1,g=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function b(t){var n=c,r=l;return c=l=void 0,d=t,f=e.apply(r,n)}function y(e){return d=e,h=setTimeout(w,t),m?b(e):f}function _(e){var n=e-p;return void 0===p||n>=t||n<0||v&&e-d>=u}function w(){var e=o();if(_(e))return x(e);h=setTimeout(w,function(e){var n=t-(e-p);return v?s(n,u-(e-d)):n}(e))}function x(e){return h=void 0,g&&c?b(e):(c=l=void 0,f)}function k(){var e=o(),n=_(e);if(c=arguments,l=this,p=e,n){if(void 0===h)return y(p);if(v)return clearTimeout(h),h=setTimeout(w,t),b(p)}return void 0===h&&(h=setTimeout(w,t)),f}return t=a(t)||0,r(n)&&(m=!!n.leading,u=(v="maxWait"in n)?i(a(n.maxWait)||0,t):u,g="trailing"in n?!!n.trailing:g),k.cancel=function(){void 0!==h&&clearTimeout(h),d=0,c=p=l=h=void 0},k.flush=function(){return void 0===h?f:x(o())},k}},53816:(e,t,n)=>{var r=n(69389),o=n(79833),a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,i=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=o(e))&&e.replace(a,r).replace(i,"")}},66073:(e,t,n)=>{e.exports=n(84486)},77813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},63105:(e,t,n)=>{var r=n(34963),o=n(80760),a=n(67206),i=n(1469);e.exports=function(e,t){return(i(e)?r:o)(e,a(t,3))}},13311:(e,t,n)=>{var r=n(67740)(n(30998));e.exports=r},30998:(e,t,n)=>{var r=n(41848),o=n(67206),a=n(40554),i=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var c=null==n?0:a(n);return c<0&&(c=i(s+c,0)),r(e,o(t,3),c)}},7436:(e,t,n)=>{var r=n(41848),o=n(67206),a=n(40554),i=Math.max,s=Math.min;e.exports=function(e,t,n){var c=null==e?0:e.length;if(!c)return-1;var l=c-1;return void 0!==n&&(l=a(n),l=n<0?i(c+l,0):s(l,c-1)),r(e,o(t,3),l,!0)}},8804:(e,t,n)=>{e.exports=n(91175)},85564:(e,t,n)=>{var r=n(21078);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},42348:(e,t,n)=>{var r=n(21078);e.exports=function(e){return null!=e&&e.length?r(e,1/0):[]}},84486:(e,t,n)=>{var r=n(77412),o=n(89881),a=n(54290),i=n(1469);e.exports=function(e,t){return(i(e)?r:o)(e,a(t))}},27361:(e,t,n)=>{var r=n(97786);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},7739:(e,t,n)=>{var r=n(89465),o=n(55189),a=Object.prototype.hasOwnProperty,i=o((function(e,t,n){a.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=i},79095:(e,t,n)=>{var r=n(13),o=n(222);e.exports=function(e,t){return null!=e&&o(e,t,r)}},91175:e=>{e.exports=function(e){return e&&e.length?e[0]:void 0}},6557:e=>{e.exports=function(e){return e}},64721:(e,t,n)=>{var r=n(42118),o=n(98612),a=n(47037),i=n(40554),s=n(52628),c=Math.max;e.exports=function(e,t,n,l){e=o(e)?e:s(e),n=n&&!l?i(n):0;var u=e.length;return n<0&&(n=c(u+n,0)),a(e)?n<=u&&e.indexOf(t,n)>-1:!!u&&r(e,t,n)>-1}},35694:(e,t,n)=>{var r=n(9454),o=n(37005),a=Object.prototype,i=a.hasOwnProperty,s=a.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(e){return o(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=c},1469:e=>{var t=Array.isArray;e.exports=t},98612:(e,t,n)=>{var r=n(23560),o=n(41780);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},29246:(e,t,n)=>{var r=n(98612),o=n(37005);e.exports=function(e){return o(e)&&r(e)}},44144:(e,t,n)=>{e=n.nmd(e);var r=n(55639),o=n(95062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,s=i&&i.exports===a?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||o;e.exports=c},41609:(e,t,n)=>{var r=n(280),o=n(64160),a=n(35694),i=n(1469),s=n(98612),c=n(44144),l=n(25726),u=n(36719),f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(i(e)||"string"==typeof e||"function"==typeof e.splice||c(e)||u(e)||a(e)))return!e.length;var t=o(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(l(e))return!r(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},18446:(e,t,n)=>{var r=n(90939);e.exports=function(e,t){return r(e,t)}},23560:(e,t,n)=>{var r=n(44239),o=n(13218);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:(e,t,n)=>{var r=n(25588),o=n(7518),a=n(31167),i=a&&a.isMap,s=i?o(i):r;e.exports=s},13218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},68630:(e,t,n)=>{var r=n(44239),o=n(85924),a=n(37005),i=Function.prototype,s=Object.prototype,c=i.toString,l=s.hasOwnProperty,u=c.call(Object);e.exports=function(e){if(!a(e)||"[object Object]"!=r(e))return!1;var t=o(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==u}},72928:(e,t,n)=>{var r=n(29221),o=n(7518),a=n(31167),i=a&&a.isSet,s=i?o(i):r;e.exports=s},47037:(e,t,n)=>{var r=n(44239),o=n(1469),a=n(37005);e.exports=function(e){return"string"==typeof e||!o(e)&&a(e)&&"[object String]"==r(e)}},33448:(e,t,n)=>{var r=n(44239),o=n(37005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},36719:(e,t,n)=>{var r=n(38749),o=n(7518),a=n(31167),i=a&&a.isTypedArray,s=i?o(i):r;e.exports=s},21804:(e,t,n)=>{var r=n(35393)((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}));e.exports=r},24350:(e,t,n)=>{var r=n(89465),o=n(55189)((function(e,t,n){r(e,n,t)}));e.exports=o},3674:(e,t,n)=>{var r=n(14636),o=n(280),a=n(98612);e.exports=function(e){return a(e)?r(e):o(e)}},81704:(e,t,n)=>{var r=n(14636),o=n(10313),a=n(98612);e.exports=function(e){return a(e)?r(e,!0):o(e)}},10928:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},35161:(e,t,n)=>{var r=n(29932),o=n(67206),a=n(69199),i=n(1469);e.exports=function(e,t){return(i(e)?r:a)(e,o(t,3))}},84753:(e,t,n)=>{var r=n(56029),o=n(53325),a=n(67206);e.exports=function(e,t){return e&&e.length?r(e,a(t,2),o):void 0}},88306:(e,t,n)=>{var r=n(83369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},82492:(e,t,n)=>{var r=n(42980),o=n(21463)((function(e,t,n){r(e,t,n)}));e.exports=o},30236:(e,t,n)=>{var r=n(42980),o=n(21463)((function(e,t,n,o){r(e,t,n,o)}));e.exports=o},22762:(e,t,n)=>{var r=n(56029),o=n(67206),a=n(70433);e.exports=function(e,t){return e&&e.length?r(e,o(t,2),a):void 0}},94885:e=>{e.exports=function(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}},50308:e=>{e.exports=function(){}},7771:(e,t,n)=>{var r=n(55639);e.exports=function(){return r.Date.now()}},14176:(e,t,n)=>{var r=n(67206),o=n(94885),a=n(35937);e.exports=function(e,t){return a(e,o(r(t)))}},75472:(e,t,n)=>{var r=n(82689),o=n(1469);e.exports=function(e,t,n,a){return null==e?[]:(o(t)||(t=null==t?[]:[t]),o(n=a?void 0:n)||(n=null==n?[]:[n]),r(e,t,n))}},35937:(e,t,n)=>{var r=n(29932),o=n(67206),a=n(63012),i=n(46904);e.exports=function(e,t){if(null==e)return{};var n=r(i(e),(function(e){return[e]}));return t=o(t),a(e,n,(function(e,n){return t(e,n[0])}))}},39601:(e,t,n)=>{var r=n(40371),o=n(79152),a=n(15403),i=n(40327);e.exports=function(e){return a(e)?r(i(e)):o(e)}},54061:(e,t,n)=>{var r=n(62663),o=n(89881),a=n(67206),i=n(10107),s=n(1469);e.exports=function(e,t,n){var c=s(e)?r:i,l=arguments.length<3;return c(e,a(t,4),n,l,o)}},43063:(e,t,n)=>{var r=n(34963),o=n(80760),a=n(67206),i=n(1469),s=n(94885);e.exports=function(e,t){return(i(e)?r:o)(e,s(a(t,3)))}},82729:(e,t,n)=>{var r=n(67206),o=n(15742);e.exports=function(e,t){var n=[];if(!e||!e.length)return n;var a=-1,i=[],s=e.length;for(t=r(t,3);++a<s;){var c=e[a];t(c,a,e)&&(n.push(c),i.push(a))}return o(e,i),n}},36968:(e,t,n)=>{var r=n(10611);e.exports=function(e,t,n){return null==e?e:r(e,t,n)}},69983:(e,t,n)=>{var r=n(70151),o=n(25127),a=n(1469);e.exports=function(e){return(a(e)?r:o)(e)}},12571:(e,t,n)=>{var r=n(14259),o=n(16612),a=n(40554);e.exports=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&o(e,t,n)?(t=0,n=i):(t=null==t?0:a(t),n=void 0===n?i:a(n)),r(e,t,n)):[]}},89734:(e,t,n)=>{var r=n(21078),o=n(82689),a=n(5976),i=n(16612),s=a((function(e,t){if(null==e)return[];var n=t.length;return n>1&&i(e,t[0],t[1])?t=[]:n>2&&i(t[0],t[1],t[2])&&(t=[t[0]]),o(e,r(t,1),[])}));e.exports=s},70479:e=>{e.exports=function(){return[]}},95062:e=>{e.exports=function(){return!1}},73303:(e,t,n)=>{var r=n(67206),o=n(67762);e.exports=function(e,t){return e&&e.length?o(e,r(t,2)):0}},69572:(e,t,n)=>{var r=n(14259),o=n(40554);e.exports=function(e,t,n){return e&&e.length?(t=n||void 0===t?1:o(t),r(e,0,t<0?0:t)):[]}},69579:(e,t,n)=>{var r=n(14259),o=n(40554);e.exports=function(e,t,n){var a=null==e?0:e.length;return a?(t=n||void 0===t?1:o(t),r(e,(t=a-t)<0?0:t,a)):[]}},23493:(e,t,n)=>{var r=n(23279),o=n(13218);e.exports=function(e,t,n){var a=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return o(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),r(e,t,{leading:a,maxWait:t,trailing:i})}},18601:(e,t,n)=>{var r=n(14841);e.exports=function(e){return e?Infinity===(e=r(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},40554:(e,t,n)=>{var r=n(18601);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},14841:(e,t,n)=>{var r=n(27561),o=n(13218),a=n(33448),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=s.test(e);return n||c.test(e)?l(e.slice(2),n?2:8):i.test(e)?NaN:+e}},59881:(e,t,n)=>{var r=n(98363),o=n(81704);e.exports=function(e){return r(e,o(e))}},79833:(e,t,n)=>{var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},92742:(e,t,n)=>{var r=n(80531),o=n(27561),a=n(40180),i=n(5512),s=n(89817),c=n(83140),l=n(79833);e.exports=function(e,t,n){if((e=l(e))&&(n||void 0===t))return o(e);if(!e||!(t=r(t)))return e;var u=c(e),f=c(t),h=s(u,f),p=i(u,f)+1;return a(u,h,p).join("")}},27955:(e,t,n)=>{var r=n(79833),o=n(83729),a=/&(?:amp|lt|gt|quot|#39);/g,i=RegExp(a.source);e.exports=function(e){return(e=r(e))&&i.test(e)?e.replace(a,o):e}},44908:(e,t,n)=>{var r=n(45652);e.exports=function(e){return e&&e.length?r(e):[]}},45578:(e,t,n)=>{var r=n(67206),o=n(45652);e.exports=function(e,t){return e&&e.length?o(e,r(t,2)):[]}},87185:(e,t,n)=>{var r=n(45652);e.exports=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?r(e,void 0,t):[]}},73955:(e,t,n)=>{var r=n(79833),o=0;e.exports=function(e){var t=++o;return r(e)+t}},11700:(e,t,n)=>{var r=n(98805)("toUpperCase");e.exports=r},52628:(e,t,n)=>{var r=n(47415),o=n(3674);e.exports=function(e){return null==e?[]:r(e,o(e))}},58748:(e,t,n)=>{var r=n(49029),o=n(93157),a=n(79833),i=n(2757);e.exports=function(e,t,n){return e=a(e),void 0===(t=n?void 0:t)?o(e)?i(e):r(e):e.match(t)||[]}},28490:(e,t,n)=>{"use strict";var r=n(17673),o=n(8575),a=n(47529);const i=parseInt({NODE_ENV:"production"}.PARSE_LINK_HEADER_MAXLEN)||2e3,s=null!={NODE_ENV:"production"}.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED;function c(e){return e&&e.rel}function l(e,t){return t.rel.split(/\s+/).forEach((function(n){e[n]=a(t,{rel:n})})),e}function u(e,t){var n=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return n&&(e[n[1]]=n[2]),e}function f(e){try{var t=e.match(/<?([^>]*)>(.*)/),n=t[1],i=t[2].split(";"),s=o.parse(n),c=r.parse(s.query);i.shift();var l=i.reduce(u,{});return(l=a(c,l)).url=n,l}catch(e){return null}}e.exports=function(e){return function(e){if(!e)return!1;if(e.length>i){if(s)throw new Error("Input string too long, it should be under "+i+" characters.");return!1}return!0}(e)?e.split(/,\s*</).map(f).filter(c).reduce(l,{}):null}},90837:(e,t,n)=>{"use strict";n.d(t,{sk:()=>w});var r=e=>"function"==typeof e?e:function(){return e},o="undefined"!=typeof self?self:null,a="undefined"!=typeof window?window:null,i=o||a||void 0,s="closed",c="errored",l="joined",u="joining",f="leaving",h="phx_close",p="phx_error",d="phx_reply",m="phx_leave",v=class{constructor(e,t,n,r){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=r,this.timeoutTimer=null,this.recHooks=[],this.sent=!1}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(e,t){return this.hasReceived(e)&&t(this.receivedResp.response),this.recHooks.push({status:e,callback:t}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}matchReceive({status:e,response:t,_ref:n}){this.recHooks.filter((t=>t.status===e)).forEach((e=>e.callback(t)))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,(e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)})),this.timeoutTimer=setTimeout((()=>{this.trigger("timeout",{})}),this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,t){this.channel.trigger(this.refEvent,{status:e,response:t})}},g=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=null,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout((()=>{this.tries=this.tries+1,this.callback()}),this.timerCalc(this.tries+1))}},b=class{static request(e,t,n,r,o,a,s){if(i.XDomainRequest){let n=new i.XDomainRequest;this.xdomainRequest(n,e,t,r,o,a,s)}else{let c=new i.XMLHttpRequest;this.xhrRequest(c,e,t,n,r,o,a,s)}}static xdomainRequest(e,t,n,r,o,a,i){e.timeout=o,e.open(t,n),e.onload=()=>{let t=this.parseJSON(e.responseText);i&&i(t)},a&&(e.ontimeout=a),e.onprogress=()=>{},e.send(r)}static xhrRequest(e,t,n,r,o,a,i,s){e.open(t,n,!0),e.timeout=a,e.setRequestHeader("Content-Type",r),e.onerror=()=>{s&&s(null)},e.onreadystatechange=()=>{if(4===e.readyState&&s){let t=this.parseJSON(e.responseText);s(t)}},i&&(e.ontimeout=i),e.send(o)}static parseJSON(e){if(!e||""===e)return null;try{return JSON.parse(e)}catch(t){return console&&console.log("failed to parse JSON response",e),null}}static serialize(e,t){let n=[];for(var r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let o=t?`${t}[${r}]`:r,a=e[r];"object"==typeof a?n.push(this.serialize(a,o)):n.push(encodeURIComponent(o)+"="+encodeURIComponent(a))}return n.join("&")}static appendParams(e,t){if(0===Object.keys(t).length)return e;let n=e.match(/\?/)?"&":"?";return`${e}${n}${this.serialize(t)}`}},y=class{constructor(e){this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=0,this.poll()}normalizeEndpoint(e){return e.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/websocket"),"$1/longpoll")}endpointURL(){return b.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(){this.close(),this.readyState=0}ontimeout(){this.onerror("timeout"),this.closeAndRetry()}poll(){1!==this.readyState&&0!==this.readyState||b.request("GET",this.endpointURL(),"application/json",null,this.timeout,this.ontimeout.bind(this),(e=>{if(e){var{status:t,token:n,messages:r}=e;this.token=n}else t=0;switch(t){case 200:r.forEach((e=>{setTimeout((()=>{this.onmessage({data:e})}),0)})),this.poll();break;case 204:this.poll();break;case 410:this.readyState=1,this.onopen(),this.poll();break;case 403:this.onerror(),this.close();break;case 0:case 500:this.onerror(),this.closeAndRetry();break;default:throw new Error(`unhandled poll status ${t}`)}}))}send(e){b.request("POST",this.endpointURL(),"application/json",e,this.timeout,this.onerror.bind(this,"timeout"),(e=>{e&&200===e.status||(this.onerror(e&&e.status),this.closeAndRetry())}))}close(e,t){this.readyState=3,this.onclose()}},_={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,t){if(e.payload.constructor===ArrayBuffer)return t(this.binaryEncode(e));{let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}},decode(e,t){if(e.constructor===ArrayBuffer)return t(this.binaryDecode(e));{let[n,r,o,a,i]=JSON.parse(e);return t({join_ref:n,ref:r,topic:o,event:a,payload:i})}},binaryEncode(e){let{join_ref:t,ref:n,event:r,topic:o,payload:a}=e,i=this.META_LENGTH+t.length+n.length+o.length+r.length,s=new ArrayBuffer(this.HEADER_LENGTH+i),c=new DataView(s),l=0;c.setUint8(l++,this.KINDS.push),c.setUint8(l++,t.length),c.setUint8(l++,n.length),c.setUint8(l++,o.length),c.setUint8(l++,r.length),Array.from(t,(e=>c.setUint8(l++,e.charCodeAt(0)))),Array.from(n,(e=>c.setUint8(l++,e.charCodeAt(0)))),Array.from(o,(e=>c.setUint8(l++,e.charCodeAt(0)))),Array.from(r,(e=>c.setUint8(l++,e.charCodeAt(0))));var u=new Uint8Array(s.byteLength+a.byteLength);return u.set(new Uint8Array(s),0),u.set(new Uint8Array(a),s.byteLength),u.buffer},binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,r);case this.KINDS.reply:return this.decodeReply(e,t,r);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,r)}},decodePush(e,t,n){let r=t.getUint8(1),o=t.getUint8(2),a=t.getUint8(3),i=this.HEADER_LENGTH+this.META_LENGTH-1,s=n.decode(e.slice(i,i+r));i+=r;let c=n.decode(e.slice(i,i+o));i+=o;let l=n.decode(e.slice(i,i+a));return i+=a,{join_ref:s,ref:null,topic:c,event:l,payload:e.slice(i,e.byteLength)}},decodeReply(e,t,n){let r=t.getUint8(1),o=t.getUint8(2),a=t.getUint8(3),i=t.getUint8(4),s=this.HEADER_LENGTH+this.META_LENGTH,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+o));s+=o;let u=n.decode(e.slice(s,s+a));s+=a;let f=n.decode(e.slice(s,s+i));s+=i;let h=e.slice(s,e.byteLength);return{join_ref:c,ref:l,topic:u,event:d,payload:{status:f,response:h}}},decodeBroadcast(e,t,n){let r=t.getUint8(1),o=t.getUint8(2),a=this.HEADER_LENGTH+2,i=n.decode(e.slice(a,a+r));a+=r;let s=n.decode(e.slice(a,a+o));return a+=o,{join_ref:null,ref:null,topic:i,event:s,payload:e.slice(a,e.byteLength)}}},w=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.timeout=t.timeout||1e4,this.transport=t.transport||i.WebSocket||y,this.establishedConnections=0,this.defaultEncoder=_.encode.bind(_),this.defaultDecoder=_.decode.bind(_),this.closeWasClean=!1,this.binaryType=t.binaryType||"arraybuffer",this.connectClock=1,this.transport!==y?(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let n=null;a&&a.addEventListener&&(a.addEventListener("pagehide",(e=>{this.conn&&(this.disconnect(),n=this.connectClock)})),a.addEventListener("pageshow",(e=>{n===this.connectClock&&(n=null,this.connect())}))),this.heartbeatIntervalMs=t.heartbeatIntervalMs||3e4,this.rejoinAfterMs=e=>t.rejoinAfterMs?t.rejoinAfterMs(e):[1e3,2e3,5e3][e-1]||1e4,this.reconnectAfterMs=e=>t.reconnectAfterMs?t.reconnectAfterMs(e):[10,50,100,150,200,250,500,1e3,2e3][e-1]||5e3,this.logger=t.logger||null,this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=r(t.params||{}),this.endPoint=`${e}/websocket`,this.vsn=t.vsn||"2.0.0",this.heartbeatTimer=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new g((()=>{this.teardown((()=>this.connect()))}),this.reconnectAfterMs)}replaceTransport(e){this.disconnect(),this.transport=e}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let e=b.appendParams(b.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return"/"!==e.charAt(0)?e:"/"===e.charAt(1)?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`}disconnect(e,t,n){this.connectClock++,this.closeWasClean=!0,this.reconnectTimer.reset(),this.teardown(e,t,n)}connect(e){this.connectClock++,e&&(console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=r(e)),this.conn||(this.closeWasClean=!1,this.conn=new this.transport(this.endPointURL()),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=e=>this.onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this.onConnClose(e))}log(e,t,n){this.logger(e,t,n)}hasLogger(){return null!==this.logger}onOpen(e){let t=this.makeRef();return this.stateChangeCallbacks.open.push([t,e]),t}onClose(e){let t=this.makeRef();return this.stateChangeCallbacks.close.push([t,e]),t}onError(e){let t=this.makeRef();return this.stateChangeCallbacks.error.push([t,e]),t}onMessage(e){let t=this.makeRef();return this.stateChangeCallbacks.message.push([t,e]),t}onConnOpen(){this.hasLogger()&&this.log("transport",`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.resetHeartbeat(),this.stateChangeCallbacks.open.forEach((([,e])=>e()))}heartbeatTimeout(){this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null,this.hasLogger()&&this.log("transport","heartbeat timeout. Attempting to re-establish connection"),this.abnormalClose("heartbeat timeout"))}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,clearTimeout(this.heartbeatTimer),setTimeout((()=>this.sendHeartbeat()),this.heartbeatIntervalMs))}teardown(e,t,n){if(!this.conn)return e&&e();this.waitForBufferDone((()=>{this.conn&&(t?this.conn.close(t,n||""):this.conn.close()),this.waitForSocketClosed((()=>{this.conn&&(this.conn.onclose=function(){},this.conn=null),e&&e()}))}))}waitForBufferDone(e,t=1){5!==t&&this.conn&&this.conn.bufferedAmount?setTimeout((()=>{this.waitForBufferDone(e,t+1)}),150*t):e()}waitForSocketClosed(e,t=1){5!==t&&this.conn&&3!==this.conn.readyState?setTimeout((()=>{this.waitForSocketClosed(e,t+1)}),150*t):e()}onConnClose(e){this.hasLogger()&&this.log("transport","close",e),this.triggerChanError(),clearTimeout(this.heartbeatTimer),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach((([,t])=>t(e)))}onConnError(e){this.hasLogger()&&this.log("transport",e);let t=this.transport,n=this.establishedConnections;this.stateChangeCallbacks.error.forEach((([,r])=>{r(e,t,n)})),(t===this.transport||n>0)&&this.triggerChanError()}triggerChanError(){this.channels.forEach((e=>{e.isErrored()||e.isLeaving()||e.isClosed()||e.trigger(p)}))}connectionState(){switch(this.conn&&this.conn.readyState){case 0:return"connecting";case 1:return"open";case 2:return"closing";default:return"closed"}}isConnected(){return"open"===this.connectionState()}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter((t=>t.joinRef()!==e.joinRef()))}off(e){for(let t in this.stateChangeCallbacks)this.stateChangeCallbacks[t]=this.stateChangeCallbacks[t].filter((([t])=>-1===e.indexOf(t)))}channel(e,t={}){let n=new class{constructor(e,t,n){this.state=s,this.topic=e,this.params=r(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new v(this,"phx_join",this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new g((()=>{this.socket.isConnected()&&this.rejoin()}),this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError((()=>this.rejoinTimer.reset()))),this.stateChangeRefs.push(this.socket.onOpen((()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()}))),this.joinPush.receive("ok",(()=>{this.state=l,this.rejoinTimer.reset(),this.pushBuffer.forEach((e=>e.send())),this.pushBuffer=[]})),this.joinPush.receive("error",(()=>{this.state=c,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()})),this.onClose((()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=s,this.socket.remove(this)})),this.onError((e=>{this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,e),this.isJoining()&&this.joinPush.reset(),this.state=c,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()})),this.joinPush.receive("timeout",(()=>{this.socket.hasLogger()&&this.socket.log("channel",`timeout ${this.topic} (${this.joinRef()})`,this.joinPush.timeout),new v(this,m,r({}),this.timeout).send(),this.state=c,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()})),this.on(d,((e,t)=>{this.trigger(this.replyEventName(t),e)}))}join(e=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}onClose(e){this.on(h,e)}onError(e){return this.on(p,(t=>e(t)))}on(e,t){let n=this.bindingRef++;return this.bindings.push({event:e,ref:n,callback:t}),n}off(e,t){this.bindings=this.bindings.filter((n=>!(n.event===e&&(void 0===t||t===n.ref))))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,n=this.timeout){if(t=t||{},!this.joinedOnce)throw new Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let r=new v(this,e,(function(){return t}),n);return this.canPush()?r.send():(r.startTimeout(),this.pushBuffer.push(r)),r}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=f;let t=()=>{this.socket.hasLogger()&&this.socket.log("channel",`leave ${this.topic}`),this.trigger(h,"leave")},n=new v(this,m,r({}),e);return n.receive("ok",(()=>t())).receive("timeout",(()=>t())),n.send(),this.canPush()||n.trigger("ok",{}),n}onMessage(e,t,n){return t}isMember(e,t,n,r){return!(this.topic!==e||r&&r!==this.joinRef()&&(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:e,event:t,payload:n,joinRef:r}),1))}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=u,this.joinPush.resend(e))}trigger(e,t,n,r){let o=this.onMessage(e,t,n,r);if(t&&!o)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let a=this.bindings.filter((t=>t.event===e));for(let e=0;e<a.length;e++)a[e].callback(o,n,r||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===s}isErrored(){return this.state===c}isJoined(){return this.state===l}isJoining(){return this.state===u}isLeaving(){return this.state===f}}(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:r,ref:o,join_ref:a}=e;this.log("push",`${t} ${n} (${a}, ${o})`,r)}this.isConnected()?this.encode(e,(e=>this.conn.send(e))):this.sendBuffer.push((()=>this.encode(e,(e=>this.conn.send(e)))))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){this.pendingHeartbeatRef&&!this.isConnected()||(this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.heartbeatTimer=setTimeout((()=>this.heartbeatTimeout()),this.heartbeatIntervalMs))}abnormalClose(e){this.closeWasClean=!1,this.isConnected()&&this.conn.close(1e3,e)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach((e=>e())),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,(e=>{let{topic:t,event:n,payload:r,ref:o,join_ref:a}=e;o&&o===this.pendingHeartbeatRef&&(clearTimeout(this.heartbeatTimer),this.pendingHeartbeatRef=null,setTimeout((()=>this.sendHeartbeat()),this.heartbeatIntervalMs)),this.hasLogger()&&this.log("receive",`${r.status||""} ${t} ${n} ${o&&"("+o+")"||""}`,r);for(let e=0;e<this.channels.length;e++){const i=this.channels[e];i.isMember(t,n,r,a)&&i.trigger(n,r,o,a)}for(let t=0;t<this.stateChangeCallbacks.message.length;t++){let[,n]=this.stateChangeCallbacks.message[t];n(e)}}))}leaveOpenTopic(e){let t=this.channels.find((t=>t.topic===e&&(t.isJoined()||t.isJoining())));t&&(this.hasLogger()&&this.log("transport",`leaving duplicate topic "${e}"`),t.leave())}}},35748:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>b});const r=2147483647,o=36,a=/^xn--/,i=/[^\0-\x7F]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,c={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,u=String.fromCharCode;function f(e){throw new RangeError(c[e])}function h(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const o=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+o}function p(e){const t=[];let n=0;const r=e.length;for(;n<r;){const o=e.charCodeAt(n++);if(o>=55296&&o<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&o)<<10)+(1023&r)+65536):(t.push(o),n--)}else t.push(o)}return t}const d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},m=function(e,t,n){let r=0;for(e=n?l(e/700):e>>1,e+=l(e/t);e>455;r+=o)e=l(e/35);return l(r+36*e/(e+38))},v=function(e){const t=[],n=e.length;let a=0,i=128,s=72,c=e.lastIndexOf("-");c<0&&(c=0);for(let n=0;n<c;++n)e.charCodeAt(n)>=128&&f("not-basic"),t.push(e.charCodeAt(n));for(let h=c>0?c+1:0;h<n;){const c=a;for(let t=1,i=o;;i+=o){h>=n&&f("invalid-input");const c=(u=e.charCodeAt(h++))>=48&&u<58?u-48+26:u>=65&&u<91?u-65:u>=97&&u<123?u-97:o;c>=o&&f("invalid-input"),c>l((r-a)/t)&&f("overflow"),a+=c*t;const p=i<=s?1:i>=s+26?26:i-s;if(c<p)break;const d=o-p;t>l(r/d)&&f("overflow"),t*=d}const p=t.length+1;s=m(a-c,p,0==c),l(a/p)>r-i&&f("overflow"),i+=l(a/p),a%=p,t.splice(a++,0,i)}var u;return String.fromCodePoint(...t)},g=function(e){const t=[],n=(e=p(e)).length;let a=128,i=0,s=72;for(const n of e)n<128&&t.push(u(n));const c=t.length;let h=c;for(c&&t.push("-");h<n;){let n=r;for(const t of e)t>=a&&t<n&&(n=t);const p=h+1;n-a>l((r-i)/p)&&f("overflow"),i+=(n-a)*p,a=n;for(const n of e)if(n<a&&++i>r&&f("overflow"),n===a){let e=i;for(let n=o;;n+=o){const r=n<=s?1:n>=s+26?26:n-s;if(e<r)break;const a=e-r,i=o-r;t.push(u(d(r+a%i,0))),e=l(a/i)}t.push(u(d(e,0))),s=m(i,p,h===c),i=0,++h}++i,++a}return t.join("")},b={version:"2.1.0",ucs2:{decode:p,encode:e=>String.fromCodePoint(...e)},decode:v,encode:g,toASCII:function(e){return h(e,(function(e){return i.test(e)?"xn--"+g(e):e}))},toUnicode:function(e){return h(e,(function(e){return a.test(e)?v(e.slice(4).toLowerCase()):e}))}}},3689:(e,t,n)=>{"use strict";n.r(t),n.d(t,{decode:()=>g,default:()=>w,encode:()=>b,toASCII:()=>_,toUnicode:()=>y,ucs2decode:()=>p,ucs2encode:()=>d});const r=2147483647,o=36,a=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,c={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,u=String.fromCharCode;function f(e){throw new RangeError(c[e])}function h(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const o=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+o}function p(e){const t=[];let n=0;const r=e.length;for(;n<r;){const o=e.charCodeAt(n++);if(o>=55296&&o<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&o)<<10)+(1023&r)+65536):(t.push(o),n--)}else t.push(o)}return t}const d=e=>String.fromCodePoint(...e),m=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},v=function(e,t,n){let r=0;for(e=n?l(e/700):e>>1,e+=l(e/t);e>455;r+=o)e=l(e/35);return l(r+36*e/(e+38))},g=function(e){const t=[],n=e.length;let a=0,i=128,s=72,c=e.lastIndexOf("-");c<0&&(c=0);for(let n=0;n<c;++n)e.charCodeAt(n)>=128&&f("not-basic"),t.push(e.charCodeAt(n));for(let h=c>0?c+1:0;h<n;){let c=a;for(let t=1,i=o;;i+=o){h>=n&&f("invalid-input");const c=(u=e.charCodeAt(h++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:o;(c>=o||c>l((r-a)/t))&&f("overflow"),a+=c*t;const p=i<=s?1:i>=s+26?26:i-s;if(c<p)break;const d=o-p;t>l(r/d)&&f("overflow"),t*=d}const p=t.length+1;s=v(a-c,p,0==c),l(a/p)>r-i&&f("overflow"),i+=l(a/p),a%=p,t.splice(a++,0,i)}var u;return String.fromCodePoint(...t)},b=function(e){const t=[];let n=(e=p(e)).length,a=128,i=0,s=72;for(const n of e)n<128&&t.push(u(n));let c=t.length,h=c;for(c&&t.push("-");h<n;){let n=r;for(const t of e)t>=a&&t<n&&(n=t);const p=h+1;n-a>l((r-i)/p)&&f("overflow"),i+=(n-a)*p,a=n;for(const n of e)if(n<a&&++i>r&&f("overflow"),n==a){let e=i;for(let n=o;;n+=o){const r=n<=s?1:n>=s+26?26:n-s;if(e<r)break;const a=e-r,i=o-r;t.push(u(m(r+a%i,0))),e=l(a/i)}t.push(u(m(e,0))),s=v(i,p,h==c),i=0,++h}++i,++a}return t.join("")},y=function(e){return h(e,(function(e){return a.test(e)?g(e.slice(4).toLowerCase()):e}))},_=function(e){return h(e,(function(e){return i.test(e)?"xn--"+b(e):e}))},w={version:"2.1.0",ucs2:{decode:p,encode:d},decode:g,encode:b,toASCII:_,toUnicode:y}},62587:e=>{"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,o){n=n||"&",r=r||"=";var a={};if("string"!=typeof e||0===e.length)return a;var i=/\+/g;e=e.split(n);var s=1e3;o&&"number"==typeof o.maxKeys&&(s=o.maxKeys);var c=e.length;s>0&&c>s&&(c=s);for(var l=0;l<c;++l){var u,f,h,p,d=e[l].replace(i,"%20"),m=d.indexOf(r);m>=0?(u=d.substr(0,m),f=d.substr(m+1)):(u=d,f=""),h=decodeURIComponent(u),p=decodeURIComponent(f),t(a,h)?Array.isArray(a[h])?a[h].push(p):a[h]=[a[h],p]:a[h]=p}return a}},12361:e=>{"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,o){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(o){var a=encodeURIComponent(t(o))+r;return Array.isArray(e[o])?e[o].map((function(e){return a+encodeURIComponent(t(e))})).join(n):a+encodeURIComponent(t(e[o]))})).join(n):o?encodeURIComponent(t(o))+r+encodeURIComponent(t(e)):""}},17673:(e,t,n)=>{"use strict";t.decode=t.parse=n(62587),t.encode=t.stringify=n(12361)},56012:(e,t)=>{var n="/sw-pleroma.js";Object.defineProperty(t,"__esModule",{value:!0}),t.default={register:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!!navigator.serviceWorker&&navigator.serviceWorker.register(n,e)}},e.exports=t.default},8575:(e,t,n)=>{"use strict";var r=n(3689),o=n(62502);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){return o.isString(e)&&(e=y(e)),e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),f=["%","/","?",";","#"].concat(u),h=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(17673);function y(e,t,n){if(e&&o.isObject(e)&&e instanceof a)return e;var r=new a;return r.parse(e,t,n),r}a.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var y=e=l.join(s);if(y=y.trim(),!n&&1===e.split("#").length){var _=c.exec(y);if(_)return this.path=y,this.href=y,this.pathname=_[1],_[2]?(this.search=_[2],this.query=t?b.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=i.exec(y);if(w){var x=(w=w[0]).toLowerCase();this.protocol=x,y=y.substr(w.length)}if(n||w||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var k="//"===y.substr(0,2);!k||w&&v[w]||(y=y.substr(2),this.slashes=!0)}if(!v[w]&&(k||w&&!g[w])){for(var S,C,E=-1,O=0;O<h.length;O++)-1!==(N=y.indexOf(h[O]))&&(-1===E||N<E)&&(E=N);for(-1!==(C=-1===E?y.lastIndexOf("@"):y.lastIndexOf("@",E))&&(S=y.slice(0,C),y=y.slice(C+1),this.auth=decodeURIComponent(S)),E=-1,O=0;O<f.length;O++){var N;-1!==(N=y.indexOf(f[O]))&&(-1===E||N<E)&&(E=N)}-1===E&&(E=y.length),this.host=y.slice(0,E),y=y.slice(E),this.parseHost(),this.hostname=this.hostname||"";var j="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!j)for(var L=this.hostname.split(/\./),A=(O=0,L.length);O<A;O++){var M=L[O];if(M&&!M.match(p)){for(var I="",z=0,T=M.length;z<T;z++)M.charCodeAt(z)>127?I+="x":I+=M[z];if(!I.match(p)){var R=L.slice(0,O),$=L.slice(O+1),P=M.match(d);P&&(R.push(P[1]),$.unshift(P[2])),$.length&&(y="/"+$.join(".")+y),this.hostname=R.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=r.toASCII(this.hostname));var F=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+F,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!m[x])for(O=0,A=u.length;O<A;O++){var D=u[O];if(-1!==y.indexOf(D)){var V=encodeURIComponent(D);V===D&&(V=escape(D)),y=y.split(D).join(V)}}var U=y.indexOf("#");-1!==U&&(this.hash=y.substr(U),y=y.slice(0,U));var W=y.indexOf("?");if(-1!==W?(this.search=y.substr(W),this.query=y.substr(W+1),t&&(this.query=b.parse(this.query)),y=y.slice(0,W)):t&&(this.search="",this.query={}),y&&(this.pathname=y),g[x]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){F=this.pathname||"";var B=this.search||"";this.path=F+B}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",a=!1,i="";this.host?a=e+this.host:this.hostname&&(a=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(a+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(i=b.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==a?(a="//"+(a||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):a||(a=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+a+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+r},a.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(o.isString(e)){var t=new a;t.parse(e,!1,!0),e=t}for(var n=new a,r=Object.keys(this),i=0;i<r.length;i++){var s=r[i];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var c=Object.keys(e),l=0;l<c.length;l++){var u=c[l];"protocol"!==u&&(n[u]=e[u])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var f=Object.keys(e),h=0;h<f.length;h++){var p=f[h];n[p]=e[p]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||v[e.protocol])n.pathname=e.pathname;else{for(var d=(e.pathname||"").split("/");d.length&&!(e.host=d.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==d[0]&&d.unshift(""),d.length<2&&d.unshift(""),n.pathname=d.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var m=n.pathname||"",b=n.search||"";n.path=m+b}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var y=n.pathname&&"/"===n.pathname.charAt(0),_=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=_||y||n.host&&e.pathname,x=w,k=n.pathname&&n.pathname.split("/")||[],S=(d=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(S&&(n.hostname="",n.port=null,n.host&&(""===k[0]?k[0]=n.host:k.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),w=w&&(""===d[0]||""===k[0])),_)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,k=d;else if(d.length)k||(k=[]),k.pop(),k=k.concat(d),n.search=e.search,n.query=e.query;else if(!o.isNullOrUndefined(e.search))return S&&(n.hostname=n.host=k.shift(),(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift())),n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!k.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=k.slice(-1)[0],E=(n.host||e.host||k.length>1)&&("."===C||".."===C)||""===C,O=0,N=k.length;N>=0;N--)"."===(C=k[N])?k.splice(N,1):".."===C?(k.splice(N,1),O++):O&&(k.splice(N,1),O--);if(!w&&!x)for(;O--;O)k.unshift("..");!w||""===k[0]||k[0]&&"/"===k[0].charAt(0)||k.unshift(""),E&&"/"!==k.join("/").substr(-1)&&k.push("");var j,L=""===k[0]||k[0]&&"/"===k[0].charAt(0);return S&&(n.hostname=n.host=L?"":k.length?k.shift():"",(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift())),(w=w||n.host&&k.length)&&!L&&k.unshift(""),k.length?n.pathname=k.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},62502:e=>{"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},90308:(e,t,n)=>{"use strict";n.d(t,{o:()=>et});const r="undefined"!=typeof window,o="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,a=e=>o?Symbol(e):e,i=e=>"number"==typeof e&&isFinite(e),s=e=>"[object RegExp]"===x(e),c=e=>k(e)&&0===Object.keys(e).length;function l(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const u=Object.assign;let f;const h=()=>f||(f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{});function p(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const d=Object.prototype.hasOwnProperty;function m(e,t){return d.call(e,t)}const v=Array.isArray,g=e=>"function"==typeof e,b=e=>"string"==typeof e,y=e=>"boolean"==typeof e,_=e=>null!==e&&"object"==typeof e,w=Object.prototype.toString,x=e=>w.call(e),k=e=>"[object Object]"===x(e);function S(e,t,n={}){const{domain:r,messages:o,args:a}=n,i=new SyntaxError(String(e));return i.code=e,t&&(i.location=t),i.domain=r,i}String.fromCharCode(8232),String.fromCharCode(8233);const C=[];C[0]={w:[0],i:[3,0],"[":[4],o:[7]},C[1]={w:[1],".":[2],"[":[4],o:[7]},C[2]={w:[2],i:[3,0],0:[3,0]},C[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},C[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},C[5]={"'":[4,0],o:8,l:[5,0]},C[6]={'"':[4,0],o:8,l:[6,0]};const E=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function O(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}const N=new Map;function j(e,t){return _(e)?e[t]:null}const L=e=>e,A=e=>"",M=e=>0===e.length?"":e.join(""),I=e=>null==e?"":v(e)||k(e)&&e.toString===w?JSON.stringify(e,null,2):String(e);function z(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}let T=null;const R=$("function:translate");function $(e){return t=>T&&T.emit(e,t)}function P(e,t,n){return[...new Set([n,...v(t)?t:_(t)?Object.keys(t):b(t)?[t]:[n]])]}function F(e,t,n){const r=b(n)?n:U,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let a=o.__localeChainCache.get(r);if(!a){a=[];let e=[n];for(;v(e);)e=H(a,e,t);const i=v(t)||!k(t)?t:t.default?t.default:null;e=b(i)?[i]:i,v(e)&&H(a,e,!1),o.__localeChainCache.set(r,a)}return a}function H(e,t,n){let r=!0;for(let o=0;o<t.length&&y(r);o++){const a=t[o];b(a)&&(r=D(e,t[o],n))}return r}function D(e,t,n){let r;const o=t.split("-");do{r=V(e,o.join("-"),n),o.splice(-1,1)}while(o.length&&!0===r);return r}function V(e,t,n){let r=!1;if(!e.includes(t)&&(r=!0,t)){r="!"!==t[t.length-1];const o=t.replace(/!/g,"");e.push(o),(v(n)||k(n))&&n[o]&&(r=n[o])}return r}const U="en-US",W=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;let B,Y,q=null;const G=e=>{q=e};let Z=null;const X=e=>{Z=e};let J=0;function K(e,t,n,r,o){const{missing:a,onWarn:i}=e;if(null!==a){const r=a(e,n,t,o);return b(r)?r:t}return t}function Q(e,t,n){e.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}Object.create(null);let ee=15;const te=()=>++ee,ne={INVALID_ARGUMENT:ee,INVALID_DATE_ARGUMENT:te(),INVALID_ISO_DATE_ARGUMENT:te(),__EXTEND_POINT__:te()};function re(e){return S(e,null,void 0)}const oe=()=>"",ae=e=>g(e);function ie(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:o,messageCompiler:a,fallbackLocale:s,messages:c}=e,[l,f]=le(...t),h=(y(f.missingWarn)?f.missingWarn:e.missingWarn,y(f.fallbackWarn)?f.fallbackWarn:e.fallbackWarn,y(f.escapeParameter)?f.escapeParameter:e.escapeParameter),d=!!f.resolvedMessage,m=b(f.default)||y(f.default)?y(f.default)?a?l:()=>l:f.default:n?a?l:()=>l:"",w=n||""!==m,x=b(f.locale)?f.locale:e.locale;h&&function(e){v(e.list)?e.list=e.list.map((e=>b(e)?p(e):e)):_(e.named)&&Object.keys(e.named).forEach((t=>{b(e.named[t])&&(e.named[t]=p(e.named[t]))}))}(f);let[S,C,E]=d?[l,x,c[x]||{}]:se(e,l,x,s),O=S,N=l;if(d||b(O)||ae(O)||w&&(O=m,N=O),!(d||(b(O)||ae(O))&&b(C)))return o?-1:l;let j=!1;const T=ae(O)?O:ce(e,l,C,O,N,(()=>{j=!0}));if(j)return O;const $=function(e,t,n,r){const{modifiers:o,pluralRules:a,messageResolver:s,fallbackLocale:c,fallbackWarn:l,missingWarn:u,fallbackContext:f}=e,h={locale:t,modifiers:o,pluralRules:a,messages:r=>{let o=s(n,r);if(null==o&&f){const[,,e]=se(f,r,t,c);o=s(e,r)}if(b(o)){let n=!1;const a=ce(e,r,t,o,r,(()=>{n=!0}));return n?oe:a}return ae(o)?o:oe}};return e.processor&&(h.processor=e.processor),r.list&&(h.list=r.list),r.named&&(h.named=r.named),i(r.plural)&&(h.pluralIndex=r.plural),h}(e,C,E,f),P=function(e,t,n){return t(n)}(0,T,function(e={}){const t=e.locale,n=function(e){const t=i(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(i(e.named.count)||i(e.named.n))?i(e.named.count)?e.named.count:i(e.named.n)?e.named.n:t:t}(e),r=_(e.pluralRules)&&b(t)&&g(e.pluralRules[t])?e.pluralRules[t]:z,o=_(e.pluralRules)&&b(t)&&g(e.pluralRules[t])?z:void 0,a=e.list||[],s=e.named||{};function c(t){return(g(e.messages)?e.messages(t):!!_(e.messages)&&e.messages[t])||(e.parent?e.parent.message(t):A)}i(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(n,s);const l=k(e.processor)&&g(e.processor.normalize)?e.processor.normalize:M,u=k(e.processor)&&g(e.processor.interpolate)?e.processor.interpolate:I,f={list:e=>a[e],named:e=>s[e],plural:e=>e[r(n,e.length,o)],linked:(t,...n)=>{const[r,o]=n;let a="text",i="";1===n.length?_(r)?(i=r.modifier||i,a=r.type||a):b(r)&&(i=r||i):2===n.length&&(b(r)&&(i=r||i),b(o)&&(a=o||a));let s=c(t)(f);return"vnode"===a&&v(s)&&i&&(s=s[0]),i?(l=i,e.modifiers?e.modifiers[l]:L)(s,a):s;var l},message:c,type:k(e.processor)&&b(e.processor.type)?e.processor.type:"text",interpolate:u,normalize:l};return f}($)),F=r?r(P,l):P;if(__INTLIFY_PROD_DEVTOOLS__){const t={timestamp:Date.now(),key:b(l)?l:ae(O)?O.key:"",locale:C||(ae(O)?O.locale:""),format:b(O)?O:ae(O)?O.source:"",message:F};t.meta=u({},e.__meta,q||{}),R(t)}return F}function se(e,t,n,r,o,a){const{messages:i,onWarn:s,messageResolver:c,localeFallbacker:l}=e,u=l(e,r,n);let f,h={},p=null,d=n,m=null;for(let n=0;n<u.length&&(f=m=u[n],h=i[f]||{},null===(p=c(h,t))&&(p=h[t]),!b(p)&&!g(p));n++){const n=K(e,t,f,0,"translate");n!==t&&(p=n),d=m}return[p,f,h]}function ce(e,t,n,r,o,a){const{messageCompiler:i,warnHtmlMessage:s}=e;if(ae(r)){const e=r;return e.locale=e.locale||n,e.key=e.key||t,e}if(null==i){const e=()=>r;return e.locale=n,e.key=t,e}const c=i(r,function(e,t,n,r,o,a){return{warnHtmlMessage:o,onError:e=>{throw a&&a(e),e},onCacheKey:e=>((e,t,n)=>{return r={l:e,k:t,s:n},JSON.stringify(r).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027");var r})(t,n,e)}}(0,n,o,0,s,a));return c.locale=n,c.key=t,c.source=r,c}function le(...e){const[t,n,r]=e,o={};if(!b(t)&&!i(t)&&!ae(t))throw re(ne.INVALID_ARGUMENT);const a=i(t)?String(t):(ae(t),t);return i(n)?o.plural=n:b(n)?o.default=n:k(n)&&!c(n)?o.named=n:v(n)&&(o.list=n),i(r)?o.plural=r:b(r)?o.default=r:k(r)&&u(o,r),[a,o]}const ue="undefined"!=typeof Intl;function fe(e,...t){const{datetimeFormats:n,unresolving:r,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__datetimeFormatters:s}=e,[l,f,h,p]=pe(...t),d=(y(h.missingWarn)?h.missingWarn:e.missingWarn,y(h.fallbackWarn)?h.fallbackWarn:e.fallbackWarn,!!h.part),m=b(h.locale)?h.locale:e.locale,v=i(e,o,m);if(!b(l)||""===l)return new Intl.DateTimeFormat(m,p).format(f);let g,_={},w=null,x=m,S=null;for(let t=0;t<v.length&&(g=S=v[t],_=n[g]||{},w=_[l],!k(w));t++)K(e,l,g,0,"datetime format"),x=S;if(!k(w)||!b(g))return r?-1:l;let C=`${g}__${l}`;c(p)||(C=`${C}__${JSON.stringify(p)}`);let E=s.get(C);return E||(E=new Intl.DateTimeFormat(g,u({},w,p)),s.set(C,E)),d?E.formatToParts(f):E.format(f)}ue&&Intl.DateTimeFormat,ue&&Intl.NumberFormat;const he=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function pe(...e){const[t,n,r,o]=e,a={};let s,c={};if(b(t)){const e=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!e)throw re(ne.INVALID_ISO_DATE_ARGUMENT);const n=e[3]?e[3].trim().startsWith("T")?`${e[1].trim()}${e[3].trim()}`:`${e[1].trim()}T${e[3].trim()}`:e[1].trim();s=new Date(n);try{s.toISOString()}catch(e){throw re(ne.INVALID_ISO_DATE_ARGUMENT)}}else if("[object Date]"===x(t)){if(isNaN(t.getTime()))throw re(ne.INVALID_DATE_ARGUMENT);s=t}else{if(!i(t))throw re(ne.INVALID_ARGUMENT);s=t}return b(n)?a.key=n:k(n)&&Object.keys(n).forEach((e=>{he.includes(e)?c[e]=n[e]:a[e]=n[e]})),b(r)?a.locale=r:k(r)&&(c=r),k(o)&&(c=o),[a.key||"",s,a,c]}function de(e,t,n){const r=e;for(const e in n){const n=`${t}__${e}`;r.__datetimeFormatters.has(n)&&r.__datetimeFormatters.delete(n)}}function me(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__numberFormatters:s}=e,[l,f,h,p]=ge(...t),d=(y(h.missingWarn)?h.missingWarn:e.missingWarn,y(h.fallbackWarn)?h.fallbackWarn:e.fallbackWarn,!!h.part),m=b(h.locale)?h.locale:e.locale,v=i(e,o,m);if(!b(l)||""===l)return new Intl.NumberFormat(m,p).format(f);let g,_={},w=null,x=m,S=null;for(let t=0;t<v.length&&(g=S=v[t],_=n[g]||{},w=_[l],!k(w));t++)K(e,l,g,0,"number format"),x=S;if(!k(w)||!b(g))return r?-1:l;let C=`${g}__${l}`;c(p)||(C=`${C}__${JSON.stringify(p)}`);let E=s.get(C);return E||(E=new Intl.NumberFormat(g,u({},w,p)),s.set(C,E)),d?E.formatToParts(f):E.format(f)}const ve=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function ge(...e){const[t,n,r,o]=e,a={};let s={};if(!i(t))throw re(ne.INVALID_ARGUMENT);const c=t;return b(n)?a.key=n:k(n)&&Object.keys(n).forEach((e=>{ve.includes(e)?s[e]=n[e]:a[e]=n[e]})),b(r)?a.locale=r:k(r)&&(s=r),k(o)&&(s=o),[a.key||"",c,a,s]}function be(e,t,n){const r=e;for(const e in n){const n=`${t}__${e}`;r.__numberFormatters.has(n)&&r.__numberFormatters.delete(n)}}"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(h().__INTLIFY_PROD_DEVTOOLS__=!1);var ye=n(66252),_e=n(2262);let we=7;const xe=()=>++we;xe(),xe(),xe(),xe(),xe(),xe();let ke=15;const Se=()=>++ke,Ce={UNEXPECTED_RETURN_TYPE:ke,INVALID_ARGUMENT:Se(),MUST_BE_CALL_SETUP_TOP:Se(),NOT_INSLALLED:Se(),NOT_AVAILABLE_IN_LEGACY_MODE:Se(),REQUIRED_VALUE:Se(),INVALID_VALUE:Se(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Se(),NOT_INSLALLED_WITH_PROVIDE:Se(),UNEXPECTED_ERROR:Se(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Se(),BRIDGE_SUPPORT_VUE_2_ONLY:Se(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Se(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Se(),__EXTEND_POINT__:Se()};function Ee(e,...t){return S(e,null,void 0)}const Oe=a("__transrateVNode"),Ne=a("__datetimeParts"),je=a("__numberParts"),Le=a("__setPluralRules");a("__intlifyMeta");const Ae=a("__injectWithOption");function Me(e){if(!_(e))return e;for(const t in e)if(m(e,t))if(t.includes(".")){const n=t.split("."),r=n.length-1;let o=e;for(let e=0;e<r;e++)n[e]in o||(o[n[e]]={}),o=o[n[e]];o[n[r]]=e[t],delete e[t],_(o[n[r]])&&Me(o[n[r]])}else _(e[t])&&Me(e[t]);return e}function Ie(e,t){const{messages:n,__i18n:r,messageResolver:o,flatJson:a}=t,i=k(n)?n:v(r)?{}:{[e]:{}};if(v(r)&&r.forEach((e=>{if("locale"in e&&"resource"in e){const{locale:t,resource:n}=e;t?(i[t]=i[t]||{},Te(n,i[t])):Te(n,i)}else b(e)&&Te(JSON.parse(e),i)})),null==o&&a)for(const e in i)m(i,e)&&Me(i[e]);return i}const ze=e=>!_(e)||v(e);function Te(e,t){if(ze(e)||ze(t))throw Ee(Ce.INVALID_VALUE);for(const n in e)m(e,n)&&(ze(e[n])||ze(t[n])?t[n]=e[n]:Te(e[n],t[n]))}function Re(e){return e.type}function $e(e,t,n){let r=_(t.messages)?t.messages:{};"__i18nGlobal"in n&&(r=Ie(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const o=Object.keys(r);if(o.length&&o.forEach((t=>{e.mergeLocaleMessage(t,r[t])})),_(t.datetimeFormats)){const n=Object.keys(t.datetimeFormats);n.length&&n.forEach((n=>{e.mergeDateTimeFormat(n,t.datetimeFormats[n])}))}if(_(t.numberFormats)){const n=Object.keys(t.numberFormats);n.length&&n.forEach((n=>{e.mergeNumberFormat(n,t.numberFormats[n])}))}}function Pe(e){return(0,ye.Wm)(ye.xv,null,e,0)}const Fe="__INTLIFY_META__";let He=0;function De(e){return(t,n,r,o)=>e(n,r,(0,ye.FN)()||void 0,o)}function Ve(e={},t){const{__root:n}=e,o=void 0===n;let a=!y(e.inheritLocale)||e.inheritLocale;const c=(0,_e.iH)(n&&a?n.locale.value:b(e.locale)?e.locale:U),f=(0,_e.iH)(n&&a?n.fallbackLocale.value:b(e.fallbackLocale)||v(e.fallbackLocale)||k(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:c.value),h=(0,_e.iH)(Ie(c.value,e)),p=(0,_e.iH)(k(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),d=(0,_e.iH)(k(e.numberFormats)?e.numberFormats:{[c.value]:{}});let m=n?n.missingWarn:!y(e.missingWarn)&&!s(e.missingWarn)||e.missingWarn,w=n?n.fallbackWarn:!y(e.fallbackWarn)&&!s(e.fallbackWarn)||e.fallbackWarn,x=n?n.fallbackRoot:!y(e.fallbackRoot)||e.fallbackRoot,S=!!e.fallbackFormat,C=g(e.missing)?e.missing:null,E=g(e.missing)?De(e.missing):null,O=g(e.postTranslation)?e.postTranslation:null,N=n?n.warnHtmlMessage:!y(e.warnHtmlMessage)||e.warnHtmlMessage,L=!!e.escapeParameter;const A=n?n.modifiers:k(e.modifiers)?e.modifiers:{};let M,I=e.pluralRules||n&&n.pluralRules;M=(()=>{o&&X(null);const t={version:"9.2.2",locale:c.value,fallbackLocale:f.value,messages:h.value,modifiers:A,pluralRules:I,missing:null===E?void 0:E,missingWarn:m,fallbackWarn:w,fallbackFormat:S,unresolving:!0,postTranslation:null===O?void 0:O,warnHtmlMessage:N,escapeParameter:L,messageResolver:e.messageResolver,__meta:{framework:"vue"}};t.datetimeFormats=p.value,t.numberFormats=d.value,t.__datetimeFormatters=k(M)?M.__datetimeFormatters:void 0,t.__numberFormatters=k(M)?M.__numberFormatters:void 0;const n=function(e={}){const t=b(e.version)?e.version:"9.2.2",n=b(e.locale)?e.locale:U,r=v(e.fallbackLocale)||k(e.fallbackLocale)||b(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:n,o=k(e.messages)?e.messages:{[n]:{}},a=k(e.datetimeFormats)?e.datetimeFormats:{[n]:{}},i=k(e.numberFormats)?e.numberFormats:{[n]:{}},c=u({},e.modifiers||{},{upper:(e,t)=>"text"===t&&b(e)?e.toUpperCase():"vnode"===t&&_(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>"text"===t&&b(e)?e.toLowerCase():"vnode"===t&&_(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>"text"===t&&b(e)?W(e):"vnode"===t&&_(e)&&"__v_isVNode"in e?W(e.children):e}),f=e.pluralRules||{},h=g(e.missing)?e.missing:null,p=!y(e.missingWarn)&&!s(e.missingWarn)||e.missingWarn,d=!y(e.fallbackWarn)&&!s(e.fallbackWarn)||e.fallbackWarn,m=!!e.fallbackFormat,w=!!e.unresolving,x=g(e.postTranslation)?e.postTranslation:null,S=k(e.processor)?e.processor:null,C=!y(e.warnHtmlMessage)||e.warnHtmlMessage,E=!!e.escapeParameter,O=g(e.messageCompiler)?e.messageCompiler:void 0,N=g(e.messageResolver)?e.messageResolver:B||j,L=g(e.localeFallbacker)?e.localeFallbacker:Y||P,A=_(e.fallbackContext)?e.fallbackContext:void 0,M=g(e.onWarn)?e.onWarn:l,I=e,z=_(I.__datetimeFormatters)?I.__datetimeFormatters:new Map,R=_(I.__numberFormatters)?I.__numberFormatters:new Map,$=_(I.__meta)?I.__meta:{};J++;const F={version:t,cid:J,locale:n,fallbackLocale:r,messages:o,modifiers:c,pluralRules:f,missing:h,missingWarn:p,fallbackWarn:d,fallbackFormat:m,unresolving:w,postTranslation:x,processor:S,warnHtmlMessage:C,escapeParameter:E,messageCompiler:O,messageResolver:N,localeFallbacker:L,fallbackContext:A,onWarn:M,__meta:$};return F.datetimeFormats=a,F.numberFormats=i,F.__datetimeFormatters=z,F.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&function(e,t,n){T&&T.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}(F,t,$),F}(t);return o&&X(n),n})(),Q(M,c.value,f.value);const z=(0,ye.Fl)({get:()=>c.value,set:e=>{c.value=e,M.locale=c.value}}),R=(0,ye.Fl)({get:()=>f.value,set:e=>{f.value=e,M.fallbackLocale=f.value,Q(M,c.value,e)}}),$=(0,ye.Fl)((()=>h.value)),H=(0,ye.Fl)((()=>p.value)),D=(0,ye.Fl)((()=>d.value)),V=(e,t,r,a,s,l)=>{let u;if(c.value,f.value,h.value,p.value,d.value,__INTLIFY_PROD_DEVTOOLS__)try{G((()=>{const e=(0,ye.FN)();let t=null;return e&&(t=Re(e)[Fe])?{[Fe]:t}:null})()),o||(M.fallbackContext=n?Z:void 0),u=e(M)}finally{G(null),o||(M.fallbackContext=void 0)}else u=e(M);if(i(u)&&-1===u){const[e,r]=t();return n&&x?a(n):s(e)}if(l(u))return u;throw Ee(Ce.UNEXPECTED_RETURN_TYPE)};function q(...e){return V((t=>Reflect.apply(ie,null,[t,...e])),(()=>le(...e)),0,(t=>Reflect.apply(t.t,t,[...e])),(e=>e),(e=>b(e)))}const K={normalize:function(e){return e.map((e=>b(e)||i(e)||y(e)?Pe(String(e)):e))},interpolate:e=>e,type:"vnode"};function ee(e){return h.value[e]||{}}He++,n&&r&&((0,ye.YP)(n.locale,(e=>{a&&(c.value=e,M.locale=e,Q(M,c.value,f.value))})),(0,ye.YP)(n.fallbackLocale,(e=>{a&&(f.value=e,M.fallbackLocale=e,Q(M,c.value,f.value))})));const te={id:He,locale:z,fallbackLocale:R,get inheritLocale(){return a},set inheritLocale(e){a=e,e&&n&&(c.value=n.locale.value,f.value=n.fallbackLocale.value,Q(M,c.value,f.value))},get availableLocales(){return Object.keys(h.value).sort()},messages:$,get modifiers(){return A},get pluralRules(){return I||{}},get isGlobal(){return o},get missingWarn(){return m},set missingWarn(e){m=e,M.missingWarn=m},get fallbackWarn(){return w},set fallbackWarn(e){w=e,M.fallbackWarn=w},get fallbackRoot(){return x},set fallbackRoot(e){x=e},get fallbackFormat(){return S},set fallbackFormat(e){S=e,M.fallbackFormat=S},get warnHtmlMessage(){return N},set warnHtmlMessage(e){N=e,M.warnHtmlMessage=e},get escapeParameter(){return L},set escapeParameter(e){L=e,M.escapeParameter=e},t:q,getLocaleMessage:ee,setLocaleMessage:function(e,t){h.value[e]=t,M.messages=h.value},mergeLocaleMessage:function(e,t){h.value[e]=h.value[e]||{},Te(t,h.value[e]),M.messages=h.value},getPostTranslationHandler:function(){return g(O)?O:null},setPostTranslationHandler:function(e){O=e,M.postTranslation=e},getMissingHandler:function(){return C},setMissingHandler:function(e){null!==e&&(E=De(e)),C=e,M.missing=E},[Le]:function(e){I=e,M.pluralRules=I}};return te.datetimeFormats=H,te.numberFormats=D,te.rt=function(...e){const[t,n,r]=e;if(r&&!_(r))throw Ee(Ce.INVALID_ARGUMENT);return q(t,n,u({resolvedMessage:!0},r||{}))},te.te=function(e,t){const n=ee(b(t)?t:c.value);return null!==M.messageResolver(n,e)},te.tm=function(e){const t=function(e){let t=null;const n=F(M,f.value,c.value);for(let r=0;r<n.length;r++){const o=h.value[n[r]]||{},a=M.messageResolver(o,e);if(null!=a){t=a;break}}return t}(e);return null!=t?t:n&&n.tm(e)||{}},te.d=function(...e){return V((t=>Reflect.apply(fe,null,[t,...e])),(()=>pe(...e)),0,(t=>Reflect.apply(t.d,t,[...e])),(()=>""),(e=>b(e)))},te.n=function(...e){return V((t=>Reflect.apply(me,null,[t,...e])),(()=>ge(...e)),0,(t=>Reflect.apply(t.n,t,[...e])),(()=>""),(e=>b(e)))},te.getDateTimeFormat=function(e){return p.value[e]||{}},te.setDateTimeFormat=function(e,t){p.value[e]=t,M.datetimeFormats=p.value,de(M,e,t)},te.mergeDateTimeFormat=function(e,t){p.value[e]=u(p.value[e]||{},t),M.datetimeFormats=p.value,de(M,e,t)},te.getNumberFormat=function(e){return d.value[e]||{}},te.setNumberFormat=function(e,t){d.value[e]=t,M.numberFormats=d.value,be(M,e,t)},te.mergeNumberFormat=function(e,t){d.value[e]=u(d.value[e]||{},t),M.numberFormats=d.value,be(M,e,t)},te[Ae]=e.__injectWithOption,te[Oe]=function(...e){return V((t=>{let n;const r=t;try{r.processor=K,n=Reflect.apply(ie,null,[r,...e])}finally{r.processor=null}return n}),(()=>le(...e)),0,(t=>t[Oe](...e)),(e=>[Pe(e)]),(e=>v(e)))},te[Ne]=function(...e){return V((t=>Reflect.apply(fe,null,[t,...e])),(()=>pe(...e)),0,(t=>t[Ne](...e)),(()=>[]),(e=>b(e)||v(e)))},te[je]=function(...e){return V((t=>Reflect.apply(me,null,[t,...e])),(()=>ge(...e)),0,(t=>t[je](...e)),(()=>[]),(e=>b(e)||v(e)))},te}function Ue(e={},t){{const t=Ve(function(e){const t=b(e.locale)?e.locale:U,n=b(e.fallbackLocale)||v(e.fallbackLocale)||k(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,r=g(e.missing)?e.missing:void 0,o=!y(e.silentTranslationWarn)&&!s(e.silentTranslationWarn)||!e.silentTranslationWarn,a=!y(e.silentFallbackWarn)&&!s(e.silentFallbackWarn)||!e.silentFallbackWarn,i=!y(e.fallbackRoot)||e.fallbackRoot,c=!!e.formatFallbackMessages,l=k(e.modifiers)?e.modifiers:{},f=e.pluralizationRules,h=g(e.postTranslation)?e.postTranslation:void 0,p=!b(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,d=!!e.escapeParameterHtml,m=!y(e.sync)||e.sync;let _=e.messages;if(k(e.sharedMessages)){const t=e.sharedMessages;_=Object.keys(t).reduce(((e,n)=>{const r=e[n]||(e[n]={});return u(r,t[n]),e}),_||{})}const{__i18n:w,__root:x,__injectWithOption:S}=e,C=e.datetimeFormats,E=e.numberFormats;return{locale:t,fallbackLocale:n,messages:_,flatJson:e.flatJson,datetimeFormats:C,numberFormats:E,missing:r,missingWarn:o,fallbackWarn:a,fallbackRoot:i,fallbackFormat:c,modifiers:l,pluralRules:f,postTranslation:h,warnHtmlMessage:p,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:m,__i18n:w,__root:x,__injectWithOption:S}}(e)),n={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return y(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=y(e)?!e:e},get silentFallbackWarn(){return y(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=y(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[n,r,o]=e,a={};let i=null,s=null;if(!b(n))throw Ee(Ce.INVALID_ARGUMENT);const c=n;return b(r)?a.locale=r:v(r)?i=r:k(r)&&(s=r),v(o)?i=o:k(o)&&(s=o),Reflect.apply(t.t,t,[c,i||s||{},a])},rt:(...e)=>Reflect.apply(t.rt,t,[...e]),tc(...e){const[n,r,o]=e,a={plural:1};let s=null,c=null;if(!b(n))throw Ee(Ce.INVALID_ARGUMENT);const l=n;return b(r)?a.locale=r:i(r)?a.plural=r:v(r)?s=r:k(r)&&(c=r),b(o)?a.locale=o:v(o)?s=o:k(o)&&(c=o),Reflect.apply(t.t,t,[l,s||c||{},a])},te:(e,n)=>t.te(e,n),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,n){t.setLocaleMessage(e,n)},mergeLocaleMessage(e,n){t.mergeLocaleMessage(e,n)},d:(...e)=>Reflect.apply(t.d,t,[...e]),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,n){t.setDateTimeFormat(e,n)},mergeDateTimeFormat(e,n){t.mergeDateTimeFormat(e,n)},n:(...e)=>Reflect.apply(t.n,t,[...e]),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,n){t.setNumberFormat(e,n)},mergeNumberFormat(e,n){t.mergeNumberFormat(e,n)},getChoiceIndex:(e,t)=>-1,__onComponentInstanceCreated(t){const{componentInstanceCreatedListener:r}=e;r&&r(t,n)}};return n}}const We={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}};function Be(e){return ye.HY}const Ye={name:"i18n-t",props:u({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>i(e)||!isNaN(e)}},We),setup(e,t){const{slots:n,attrs:r}=t,o=e.i18n||tt({useScope:e.scope,__useComponent:!0});return()=>{const a=Object.keys(n).filter((e=>"_"!==e)),i={};e.locale&&(i.locale=e.locale),void 0!==e.plural&&(i.plural=b(e.plural)?+e.plural:e.plural);const s=function({slots:e},t){return 1===t.length&&"default"===t[0]?(e.default?e.default():[]).reduce(((e,t)=>[...e,...v(t.children)?t.children:[t]]),[]):t.reduce(((t,n)=>{const r=e[n];return r&&(t[n]=r()),t}),{})}(t,a),c=o[Oe](e.keypath,s,i),l=u({},r),f=b(e.tag)||_(e.tag)?e.tag:Be();return(0,ye.h)(f,l,c)}}};function qe(e,t,n,r){const{slots:o,attrs:a}=t;return()=>{const t={part:!0};let i={};e.locale&&(t.locale=e.locale),b(e.format)?t.key=e.format:_(e.format)&&(b(e.format.key)&&(t.key=e.format.key),i=Object.keys(e.format).reduce(((t,r)=>n.includes(r)?u({},t,{[r]:e.format[r]}):t),{}));const s=r(e.value,t,i);let c=[t.key];v(s)?c=s.map(((e,t)=>{const n=o[e.type],r=n?n({[e.type]:e.value,index:t,parts:s}):[e.value];var a;return v(a=r)&&!b(a[0])&&(r[0].key=`${e.type}-${t}`),r})):b(s)&&(c=[s]);const l=u({},a),f=b(e.tag)||_(e.tag)?e.tag:Be();return(0,ye.h)(f,l,c)}}const Ge={name:"i18n-n",props:u({value:{type:Number,required:!0},format:{type:[String,Object]}},We),setup(e,t){const n=e.i18n||tt({useScope:"parent",__useComponent:!0});return qe(e,t,ve,((...e)=>n[je](...e)))}},Ze={name:"i18n-d",props:u({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},We),setup(e,t){const n=e.i18n||tt({useScope:"parent",__useComponent:!0});return qe(e,t,he,((...e)=>n[Ne](...e)))}};function Xe(e){if(b(e))return{path:e};if(k(e)){if(!("path"in e))throw Ee(Ce.REQUIRED_VALUE);return e}throw Ee(Ce.INVALID_VALUE)}function Je(e){const{path:t,locale:n,args:r,choice:o,plural:a}=e,s={},c=r||{};return b(n)&&(s.locale=n),i(o)&&(s.plural=o),i(a)&&(s.plural=a),[t,c,s]}function Ke(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Le](t.pluralizationRules||e.pluralizationRules);const n=Ie(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach((t=>e.mergeLocaleMessage(t,n[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((n=>e.mergeNumberFormat(n,t.numberFormats[n]))),e}const Qe=a("global-vue-i18n");function et(e={},t){const n=__VUE_I18N_LEGACY_API__&&y(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=!y(e.globalInjection)||e.globalInjection,i=!__VUE_I18N_LEGACY_API__||!n||!!e.allowComposition,s=new Map,[c,l]=function(e,t,n){const r=(0,_e.B)();{const n=__VUE_I18N_LEGACY_API__&&t?r.run((()=>Ue(e))):r.run((()=>Ve(e)));if(null==n)throw Ee(Ce.UNEXPECTED_ERROR);return[r,n]}}(e,n),u=a("");{const e={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return i},async install(t,...a){t.__VUE_I18N_SYMBOL__=u,t.provide(t.__VUE_I18N_SYMBOL__,e),!n&&o&&function(e,t){const n=Object.create(null);nt.forEach((e=>{const r=Object.getOwnPropertyDescriptor(t,e);if(!r)throw Ee(Ce.UNEXPECTED_ERROR);const o=(0,_e.dq)(r.value)?{get:()=>r.value.value,set(e){r.value.value=e}}:{get:()=>r.get&&r.get()};Object.defineProperty(n,e,o)})),e.config.globalProperties.$i18n=n,rt.forEach((n=>{const r=Object.getOwnPropertyDescriptor(t,n);if(!r||!r.value)throw Ee(Ce.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${n}`,r)}))}(t,e.global),__VUE_I18N_FULL_INSTALL__&&function(e,t,...n){const o=k(n[0])?n[0]:{},a=!!o.useI18nComponentName;(!y(o.globalInstall)||o.globalInstall)&&(e.component(a?"i18n":Ye.name,Ye),e.component(Ge.name,Ge),e.component(Ze.name,Ze)),e.directive("t",function(e){const t=t=>{const{instance:n,modifiers:r,value:o}=t;if(!n||!n.$)throw Ee(Ce.UNEXPECTED_ERROR);const a=function(e,t){const n=e;if("composition"===e.mode)return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return null!=r?r.__composer:e.global.__composer}}(e,n.$),i=Xe(o);return[Reflect.apply(a.t,a,[...Je(i)]),a]};return{created:(n,o)=>{const[a,i]=t(o);r&&e.global===i&&(n.__i18nWatcher=(0,ye.YP)(i.locale,(()=>{o.instance&&o.instance.$forceUpdate()}))),n.__composer=i,n.textContent=a},unmounted:e=>{r&&e.__i18nWatcher&&(e.__i18nWatcher(),e.__i18nWatcher=void 0,delete e.__i18nWatcher),e.__composer&&(e.__composer=void 0,delete e.__composer)},beforeUpdate:(e,{value:t})=>{if(e.__composer){const n=e.__composer,r=Xe(t);e.textContent=Reflect.apply(n.t,n,[...Je(r)])}},getSSRProps:e=>{const[n]=t(e);return{textContent:n}}}}(t))}(t,e,...a),__VUE_I18N_LEGACY_API__&&n&&t.mixin(function(e,t,n){return{beforeCreate(){const r=(0,ye.FN)();if(!r)throw Ee(Ce.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const n=o.i18n;o.__i18n&&(n.__i18n=o.__i18n),n.__root=t,this===this.$root?this.$i18n=Ke(e,n):(n.__injectWithOption=!0,this.$i18n=Ue(n))}else o.__i18n?this===this.$root?this.$i18n=Ke(e,o):this.$i18n=Ue({__i18n:o.__i18n,__injectWithOption:!0,__root:t}):this.$i18n=e;o.__i18nGlobal&&$e(t,o,o),e.__onComponentInstanceCreated(this.$i18n),n.__setInstance(r,this.$i18n),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e)},mounted(){},unmounted(){const e=(0,ye.FN)();if(!e)throw Ee(Ce.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__deleteInstance(e),delete this.$i18n}}}(l,l.__composer,e));const i=t.unmount;t.unmount=()=>{e.dispose(),i()}},get global(){return l},dispose(){c.stop()},__instances:s,__getInstance:function(e){return s.get(e)||null},__setInstance:function(e,t){s.set(e,t)},__deleteInstance:function(e){s.delete(e)}};return e}}function tt(e={}){const t=(0,ye.FN)();if(null==t)throw Ee(Ce.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&null!=t.appContext.app&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Ee(Ce.NOT_INSLALLED);const n=function(e){{const t=(0,ye.f3)(e.isCE?Qe:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Ee(e.isCE?Ce.NOT_INSLALLED_WITH_PROVIDE:Ce.UNEXPECTED_ERROR);return t}}(t),r=function(e){return"composition"===e.mode?e.global:e.global.__composer}(n),o=Re(t),a=function(e,t){return c(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}(e,o);if(__VUE_I18N_LEGACY_API__&&"legacy"===n.mode&&!e.__useComponent){if(!n.allowComposition)throw Ee(Ce.NOT_AVAILABLE_IN_LEGACY_MODE);return function(e,t,n,r={}){const o="local"===t,a=(0,_e.XI)(null);if(o&&e.proxy&&!e.proxy.$options.i18n&&!e.proxy.$options.__i18n)throw Ee(Ce.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=!y(r.inheritLocale)||r.inheritLocale,c=(0,_e.iH)(o&&i?n.locale.value:b(r.locale)?r.locale:U),l=(0,_e.iH)(o&&i?n.fallbackLocale.value:b(r.fallbackLocale)||v(r.fallbackLocale)||k(r.fallbackLocale)||!1===r.fallbackLocale?r.fallbackLocale:c.value),u=(0,_e.iH)(Ie(c.value,r)),f=(0,_e.iH)(k(r.datetimeFormats)?r.datetimeFormats:{[c.value]:{}}),h=(0,_e.iH)(k(r.numberFormats)?r.numberFormats:{[c.value]:{}}),p=o?n.missingWarn:!y(r.missingWarn)&&!s(r.missingWarn)||r.missingWarn,d=o?n.fallbackWarn:!y(r.fallbackWarn)&&!s(r.fallbackWarn)||r.fallbackWarn,m=o?n.fallbackRoot:!y(r.fallbackRoot)||r.fallbackRoot,_=!!r.fallbackFormat,w=g(r.missing)?r.missing:null,x=g(r.postTranslation)?r.postTranslation:null,S=o?n.warnHtmlMessage:!y(r.warnHtmlMessage)||r.warnHtmlMessage,C=!!r.escapeParameter,E=o?n.modifiers:k(r.modifiers)?r.modifiers:{},O=r.pluralRules||o&&n.pluralRules;function N(e){return c.value,l.value,u.value,f.value,h.value,e()}const j={get id(){return a.value?a.value.id:-1},locale:(0,ye.Fl)({get:()=>a.value?a.value.locale.value:c.value,set:e=>{a.value&&(a.value.locale.value=e),c.value=e}}),fallbackLocale:(0,ye.Fl)({get:()=>a.value?a.value.fallbackLocale.value:l.value,set:e=>{a.value&&(a.value.fallbackLocale.value=e),l.value=e}}),messages:(0,ye.Fl)((()=>a.value?a.value.messages.value:u.value)),datetimeFormats:(0,ye.Fl)((()=>f.value)),numberFormats:(0,ye.Fl)((()=>h.value)),get inheritLocale(){return a.value?a.value.inheritLocale:i},set inheritLocale(e){a.value&&(a.value.inheritLocale=e)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(u.value)},get modifiers(){return a.value?a.value.modifiers:E},get pluralRules(){return a.value?a.value.pluralRules:O},get isGlobal(){return!!a.value&&a.value.isGlobal},get missingWarn(){return a.value?a.value.missingWarn:p},set missingWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackWarn(){return a.value?a.value.fallbackWarn:d},set fallbackWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackRoot(){return a.value?a.value.fallbackRoot:m},set fallbackRoot(e){a.value&&(a.value.fallbackRoot=e)},get fallbackFormat(){return a.value?a.value.fallbackFormat:_},set fallbackFormat(e){a.value&&(a.value.fallbackFormat=e)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:S},set warnHtmlMessage(e){a.value&&(a.value.warnHtmlMessage=e)},get escapeParameter(){return a.value?a.value.escapeParameter:C},set escapeParameter(e){a.value&&(a.value.escapeParameter=e)},t:function(...e){return a.value?N((()=>Reflect.apply(a.value.t,null,[...e]))):N((()=>""))},getPostTranslationHandler:function(){return a.value?a.value.getPostTranslationHandler():x},setPostTranslationHandler:function(e){a.value&&a.value.setPostTranslationHandler(e)},getMissingHandler:function(){return a.value?a.value.getMissingHandler():w},setMissingHandler:function(e){a.value&&a.value.setMissingHandler(e)},rt:function(...e){return a.value?Reflect.apply(a.value.rt,null,[...e]):""},d:function(...e){return a.value?N((()=>Reflect.apply(a.value.d,null,[...e]))):N((()=>""))},n:function(...e){return a.value?N((()=>Reflect.apply(a.value.n,null,[...e]))):N((()=>""))},tm:function(e){return a.value?a.value.tm(e):{}},te:function(e,t){return!!a.value&&a.value.te(e,t)},getLocaleMessage:function(e){return a.value?a.value.getLocaleMessage(e):{}},setLocaleMessage:function(e,t){a.value&&(a.value.setLocaleMessage(e,t),u.value[e]=t)},mergeLocaleMessage:function(e,t){a.value&&a.value.mergeLocaleMessage(e,t)},getDateTimeFormat:function(e){return a.value?a.value.getDateTimeFormat(e):{}},setDateTimeFormat:function(e,t){a.value&&(a.value.setDateTimeFormat(e,t),f.value[e]=t)},mergeDateTimeFormat:function(e,t){a.value&&a.value.mergeDateTimeFormat(e,t)},getNumberFormat:function(e){return a.value?a.value.getNumberFormat(e):{}},setNumberFormat:function(e,t){a.value&&(a.value.setNumberFormat(e,t),h.value[e]=t)},mergeNumberFormat:function(e,t){a.value&&a.value.mergeNumberFormat(e,t)}};return(0,ye.wF)((()=>{if(null==e.proxy||null==e.proxy.$i18n)throw Ee(Ce.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const n=a.value=e.proxy.$i18n.__composer;"global"===t?(c.value=n.locale.value,l.value=n.fallbackLocale.value,u.value=n.messages.value,f.value=n.datetimeFormats.value,h.value=n.numberFormats.value):o&&function(e){e.locale.value=c.value,e.fallbackLocale.value=l.value,Object.keys(u.value).forEach((t=>{e.mergeLocaleMessage(t,u.value[t])})),Object.keys(f.value).forEach((t=>{e.mergeDateTimeFormat(t,f.value[t])})),Object.keys(h.value).forEach((t=>{e.mergeNumberFormat(t,h.value[t])})),e.escapeParameter=C,e.fallbackFormat=_,e.fallbackRoot=m,e.fallbackWarn=d,e.missingWarn=p,e.warnHtmlMessage=S}(n)})),j}(t,a,r,e)}if("global"===a)return $e(r,e,o),r;if("parent"===a){let o=function(e,t,n=!1){let r=null;const o=t.root;let a=t.parent;for(;null!=a;){const t=e;if("composition"===e.mode)r=t.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const e=t.__getInstance(a);null!=e&&(r=e.__composer,n&&r&&!r[Ae]&&(r=null))}if(null!=r)break;if(o===a)break;a=a.parent}return r}(n,t,e.__useComponent);return null==o&&(o=r),o}const i=n;let l=i.__getInstance(t);if(null==l){const n=u({},e);"__i18n"in o&&(n.__i18n=o.__i18n),r&&(n.__root=r),l=Ve(n),function(e,t,n){(0,ye.bv)((()=>{}),t),(0,ye.Ah)((()=>{e.__deleteInstance(t)}),t)}(i,t),i.__setInstance(t,l)}return l}const nt=["locale","fallbackLocale","availableLocales"],rt=["t","rt","d","n","tm"];var ot;if(B=function(e,t){if(!_(e))return null;let n=N.get(t);if(n||(n=function(e){const t=[];let n,r,o,a,i,s,c,l=-1,u=0,f=0;const h=[];function p(){const t=e[l+1];if(5===u&&"'"===t||6===u&&'"'===t)return l++,o="\\"+t,h[0](),!0}for(h[0]=()=>{void 0===r?r=o:r+=o},h[1]=()=>{void 0!==r&&(t.push(r),r=void 0)},h[2]=()=>{h[0](),f++},h[3]=()=>{if(f>0)f--,u=4,h[0]();else{if(f=0,void 0===r)return!1;if(r=function(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(n=t,E.test(n)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var n}(r),!1===r)return!1;h[1]()}};null!==u;)if(l++,n=e[l],"\\"!==n||!p()){if(a=O(n),c=C[u],i=c[a]||c.l||8,8===i)return;if(u=i[0],void 0!==i[1]&&(s=h[i[1]],s&&(o=n,!1===s())))return;if(7===u)return t}}(t),n&&N.set(t,n)),!n)return null;const r=n.length;let o=e,a=0;for(;a<r;){const e=o[n[a]];if(void 0===e)return null;o=e,a++}return o},Y=F,function(){let e=!1;"boolean"!=typeof __VUE_I18N_FULL_INSTALL__&&(e=!0,h().__VUE_I18N_FULL_INSTALL__=!0),"boolean"!=typeof __VUE_I18N_LEGACY_API__&&(e=!0,h().__VUE_I18N_LEGACY_API__=!0),"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(h().__INTLIFY_PROD_DEVTOOLS__=!1)}(),__INTLIFY_PROD_DEVTOOLS__){const e=h();e.__INTLIFY__=!0,ot=e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__,T=ot}},83744:(e,t)=>{"use strict";t.Z=(e,t)=>{const n=e.__vccOpts||e;for(const[e,r]of t)n[e]=r;return n}},28339:(e,t,n)=>{"use strict";n.d(t,{PO:()=>O,p7:()=>Le});var r=n(66252),o=n(2262);const a="undefined"!=typeof window;const i=Object.assign;function s(e,t){const n={};for(const r in t){const o=t[r];n[r]=l(o)?o.map(e):e(o)}return n}const c=()=>{},l=Array.isArray,u=/\/$/;function f(e,t,n="/"){let r,o={},a="",i="";const s=t.indexOf("#");let c=t.indexOf("?");return s<c&&s>=0&&(c=-1),c>-1&&(r=t.slice(0,c),a=t.slice(c+1,s>-1?s:t.length),o=e(a)),s>-1&&(r=r||t.slice(0,s),i=t.slice(s,t.length)),r=function(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let o,a,i=n.length-1;for(o=0;o<r.length;o++)if(a=r[o],"."!==a){if(".."!==a)break;i>1&&i--}return n.slice(0,i).join("/")+"/"+r.slice(o-(o===r.length?1:0)).join("/")}(null!=r?r:t,n),{fullPath:r+(a&&"?")+a+i,path:r,query:o,hash:i}}function h(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function p(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function d(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!m(e[n],t[n]))return!1;return!0}function m(e,t){return l(e)?v(e,t):l(t)?v(t,e):e===t}function v(e,t){return l(t)?e.length===t.length&&e.every(((e,n)=>e===t[n])):1===e.length&&e[0]===t}var g,b;!function(e){e.pop="pop",e.push="push"}(g||(g={})),function(e){e.back="back",e.forward="forward",e.unknown=""}(b||(b={}));const y=/^[^#]+#/;function _(e,t){return e.replace(y,"#")+t}const w=()=>({left:window.pageXOffset,top:window.pageYOffset});function x(e,t){return(history.state?history.state.position-t:-1)+e}const k=new Map;let S=()=>location.protocol+"//"+location.host;function C(e,t){const{pathname:n,search:r,hash:o}=t,a=e.indexOf("#");if(a>-1){let t=o.includes(e.slice(a))?e.slice(a).length:1,n=o.slice(t);return"/"!==n[0]&&(n="/"+n),h(n,"")}return h(n,e)+r+o}function E(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?w():null}}function O(e){const t=function(e){const{history:t,location:n}=window,r={value:C(e,n)},o={value:t.state};function a(r,a,i){const s=e.indexOf("#"),c=s>-1?(n.host&&document.querySelector("base")?e:e.slice(s))+r:S()+e+r;try{t[i?"replaceState":"pushState"](a,"",c),o.value=a}catch(e){console.error(e),n[i?"replace":"assign"](c)}}return o.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:r,state:o,push:function(e,n){const s=i({},o.value,t.state,{forward:e,scroll:w()});a(s.current,s,!0),a(e,i({},E(r.value,e,null),{position:s.position+1},n),!1),r.value=e},replace:function(e,n){a(e,i({},t.state,E(o.value.back,e,o.value.forward,!0),n,{position:o.value.position}),!0),r.value=e}}}(e=function(e){if(!e)if(a){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),e.replace(u,"")}(e)),n=function(e,t,n,r){let o=[],a=[],s=null;const c=({state:a})=>{const i=C(e,location),c=n.value,l=t.value;let u=0;if(a){if(n.value=i,t.value=a,s&&s===c)return void(s=null);u=l?a.position-l.position:0}else r(i);o.forEach((e=>{e(n.value,c,{delta:u,type:g.pop,direction:u?u>0?b.forward:b.back:b.unknown})}))};function l(){const{history:e}=window;e.state&&e.replaceState(i({},e.state,{scroll:w()}),"")}return window.addEventListener("popstate",c),window.addEventListener("beforeunload",l),{pauseListeners:function(){s=n.value},listen:function(e){o.push(e);const t=()=>{const t=o.indexOf(e);t>-1&&o.splice(t,1)};return a.push(t),t},destroy:function(){for(const e of a)e();a=[],window.removeEventListener("popstate",c),window.removeEventListener("beforeunload",l)}}}(e,t.state,t.location,t.replace),r=i({location:"",base:e,go:function(e,t=!0){t||n.pauseListeners(),history.go(e)},createHref:_.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function N(e){return"string"==typeof e||"symbol"==typeof e}const j={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},L=Symbol("");var A;function M(e,t){return i(new Error,{type:e,[L]:!0},t)}function I(e,t){return e instanceof Error&&L in e&&(null==t||!!(e.type&t))}!function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"}(A||(A={}));const z="[^/]+?",T={sensitive:!1,strict:!1,start:!0,end:!0},R=/[.+*?^${}()[\]/\\]/g;function $(e,t){let n=0;for(;n<e.length&&n<t.length;){const r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?1===e.length&&80===e[0]?-1:1:e.length>t.length?1===t.length&&80===t[0]?1:-1:0}function P(e,t){let n=0;const r=e.score,o=t.score;for(;n<r.length&&n<o.length;){const e=$(r[n],o[n]);if(e)return e;n++}if(1===Math.abs(o.length-r.length)){if(F(r))return 1;if(F(o))return-1}return o.length-r.length}function F(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const H={type:0,value:""},D=/[a-zA-Z0-9_]/;function V(e,t,n){const r=function(e,t){const n=i({},T,t),r=[];let o=n.start?"^":"";const a=[];for(const t of e){const e=t.length?[]:[90];n.strict&&!t.length&&(o+="/");for(let r=0;r<t.length;r++){const i=t[r];let s=40+(n.sensitive?.25:0);if(0===i.type)r||(o+="/"),o+=i.value.replace(R,"\\$&"),s+=40;else if(1===i.type){const{value:e,repeatable:n,optional:c,regexp:l}=i;a.push({name:e,repeatable:n,optional:c});const u=l||z;if(u!==z){s+=10;try{new RegExp(`(${u})`)}catch(t){throw new Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let f=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(f=c&&t.length<2?`(?:/${f})`:"/"+f),c&&(f+="?"),o+=f,s+=20,c&&(s+=-8),n&&(s+=-20),".*"===u&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){const e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(o+="/?"),n.end?o+="$":n.strict&&(o+="(?:/|$)");const s=new RegExp(o,n.sensitive?"":"i");return{re:s,score:r,keys:a,parse:function(e){const t=e.match(s),n={};if(!t)return null;for(let e=1;e<t.length;e++){const r=t[e]||"",o=a[e-1];n[o.name]=r&&o.repeatable?r.split("/"):r}return n},stringify:function(t){let n="",r=!1;for(const o of e){r&&n.endsWith("/")||(n+="/"),r=!1;for(const e of o)if(0===e.type)n+=e.value;else if(1===e.type){const{value:a,repeatable:i,optional:s}=e,c=a in t?t[a]:"";if(l(c)&&!i)throw new Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);const u=l(c)?c.join("/"):c;if(!u){if(!s)throw new Error(`Missing required param "${a}"`);o.length<2&&(n.endsWith("/")?n=n.slice(0,-1):r=!0)}n+=u}}return n||"/"}}}(function(e){if(!e)return[[]];if("/"===e)return[[H]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(e){throw new Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n;const o=[];let a;function i(){a&&o.push(a),a=[]}let s,c=0,l="",u="";function f(){l&&(0===n?a.push({type:0,value:l}):1===n||2===n||3===n?(a.length>1&&("*"===s||"+"===s)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:"*"===s||"+"===s,optional:"*"===s||"?"===s})):t("Invalid state to consume buffer"),l="")}function h(){l+=s}for(;c<e.length;)if(s=e[c++],"\\"!==s||2===n)switch(n){case 0:"/"===s?(l&&f(),i()):":"===s?(f(),n=1):h();break;case 4:h(),n=r;break;case 1:"("===s?n=2:D.test(s)?h():(f(),n=0,"*"!==s&&"?"!==s&&"+"!==s&&c--);break;case 2:")"===s?"\\"==u[u.length-1]?u=u.slice(0,-1)+s:n=3:u+=s;break;case 3:f(),n=0,"*"!==s&&"?"!==s&&"+"!==s&&c--,u="";break;default:t("Unknown state")}else r=n,n=4;return 2===n&&t(`Unfinished custom RegExp for param "${l}"`),f(),i(),o}(e.path),n),o=i(r,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function U(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function W(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]="boolean"==typeof n?n:n[r];return t}function B(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Y(e){return e.reduce(((e,t)=>i(e,t.meta)),{})}function q(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function G(e,t){return t.children.some((t=>t===e||G(e,t)))}const Z=/#/g,X=/&/g,J=/\//g,K=/=/g,Q=/\?/g,ee=/\+/g,te=/%5B/g,ne=/%5D/g,re=/%5E/g,oe=/%60/g,ae=/%7B/g,ie=/%7C/g,se=/%7D/g,ce=/%20/g;function le(e){return encodeURI(""+e).replace(ie,"|").replace(te,"[").replace(ne,"]")}function ue(e){return le(e).replace(ee,"%2B").replace(ce,"+").replace(Z,"%23").replace(X,"%26").replace(oe,"`").replace(ae,"{").replace(se,"}").replace(re,"^")}function fe(e){return null==e?"":function(e){return le(e).replace(Z,"%23").replace(Q,"%3F")}(e).replace(J,"%2F")}function he(e){try{return decodeURIComponent(""+e)}catch(e){}return""+e}function pe(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let e=0;e<n.length;++e){const r=n[e].replace(ee," "),o=r.indexOf("="),a=he(o<0?r:r.slice(0,o)),i=o<0?null:he(r.slice(o+1));if(a in t){let e=t[a];l(e)||(e=t[a]=[e]),e.push(i)}else t[a]=i}return t}function de(e){let t="";for(let n in e){const r=e[n];(n=ue(n).replace(K,"%3D"),null!=r)?(l(r)?r.map((e=>e&&ue(e))):[r&&ue(r)]).forEach((e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))})):void 0!==r&&(t+=(t.length?"&":"")+n)}return t}function me(e){const t={};for(const n in e){const r=e[n];void 0!==r&&(t[n]=l(r)?r.map((e=>null==e?null:""+e)):null==r?r:""+r)}return t}const ve=Symbol(""),ge=Symbol(""),be=Symbol(""),ye=Symbol(""),_e=Symbol("");function we(){let e=[];return{add:function(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}},list:()=>e,reset:function(){e=[]}}}function xe(e,t,n,r,o){const a=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise(((i,s)=>{const c=e=>{var c;!1===e?s(M(4,{from:n,to:t})):e instanceof Error?s(e):"string"==typeof(c=e)||c&&"object"==typeof c?s(M(2,{from:t,to:e})):(a&&r.enterCallbacks[o]===a&&"function"==typeof e&&a.push(e),i())},l=e.call(r&&r.instances[o],t,n,c);let u=Promise.resolve(l);e.length<3&&(u=u.then(c)),u.catch((e=>s(e)))}))}function ke(e,t,n,r){const o=[];for(const i of e)for(const e in i.components){let s=i.components[e];if("beforeRouteEnter"===t||i.instances[e])if("object"==typeof(a=s)||"displayName"in a||"props"in a||"__vccOpts"in a){const a=(s.__vccOpts||s)[t];a&&o.push(xe(a,n,r,i,e))}else{let a=s();o.push((()=>a.then((o=>{if(!o)return Promise.reject(new Error(`Couldn't resolve component "${e}" at "${i.path}"`));const a=(s=o).__esModule||"Module"===s[Symbol.toStringTag]?o.default:o;var s;i.components[e]=a;const c=(a.__vccOpts||a)[t];return c&&xe(c,n,r,i,e)()}))))}}var a;return o}function Se(e){const t=(0,r.f3)(be),n=(0,r.f3)(ye),a=(0,r.Fl)((()=>t.resolve((0,o.SU)(e.to)))),i=(0,r.Fl)((()=>{const{matched:e}=a.value,{length:t}=e,r=e[t-1],o=n.matched;if(!r||!o.length)return-1;const i=o.findIndex(p.bind(null,r));if(i>-1)return i;const s=Ee(e[t-2]);return t>1&&Ee(r)===s&&o[o.length-1].path!==s?o.findIndex(p.bind(null,e[t-2])):i})),s=(0,r.Fl)((()=>i.value>-1&&function(e,t){for(const n in t){const r=t[n],o=e[n];if("string"==typeof r){if(r!==o)return!1}else if(!l(o)||o.length!==r.length||r.some(((e,t)=>e!==o[t])))return!1}return!0}(n.params,a.value.params))),u=(0,r.Fl)((()=>i.value>-1&&i.value===n.matched.length-1&&d(n.params,a.value.params)));return{route:a,href:(0,r.Fl)((()=>a.value.href)),isActive:s,isExactActive:u,navigate:function(n={}){return function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}(n)?t[(0,o.SU)(e.replace)?"replace":"push"]((0,o.SU)(e.to)).catch(c):Promise.resolve()}}}const Ce=(0,r.aZ)({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Se,setup(e,{slots:t}){const n=(0,o.qj)(Se(e)),{options:a}=(0,r.f3)(be),i=(0,r.Fl)((()=>({[Oe(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[Oe(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive})));return()=>{const o=t.default&&t.default(n);return e.custom?o:(0,r.h)("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},o)}}});function Ee(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Oe=(e,t,n)=>null!=e?e:null!=t?t:n;function Ne(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const je=(0,r.aZ)({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=(0,r.f3)(_e),s=(0,r.Fl)((()=>e.route||a.value)),c=(0,r.f3)(ge,0),l=(0,r.Fl)((()=>{let e=(0,o.SU)(c);const{matched:t}=s.value;let n;for(;(n=t[e])&&!n.components;)e++;return e})),u=(0,r.Fl)((()=>s.value.matched[l.value]));(0,r.JJ)(ge,(0,r.Fl)((()=>l.value+1))),(0,r.JJ)(ve,u),(0,r.JJ)(_e,s);const f=(0,o.iH)();return(0,r.YP)((()=>[f.value,u.value,e.name]),(([e,t,n],[r,o,a])=>{t&&(t.instances[n]=e,o&&o!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=o.leaveGuards),t.updateGuards.size||(t.updateGuards=o.updateGuards))),!e||!t||o&&p(t,o)&&r||(t.enterCallbacks[n]||[]).forEach((t=>t(e)))}),{flush:"post"}),()=>{const o=s.value,a=e.name,c=u.value,l=c&&c.components[a];if(!l)return Ne(n.default,{Component:l,route:o});const h=c.props[a],p=h?!0===h?o.params:"function"==typeof h?h(o):h:null,d=(0,r.h)(l,i({},p,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(c.instances[a]=null)},ref:f}));return Ne(n.default,{Component:d,route:o})||d}}});function Le(e){const t=function(e,t){const n=[],r=new Map;function o(e,n,r){const l=!r,u=function(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:W(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}(e);u.aliasOf=r&&r.record;const f=q(t,e),h=[u];if("alias"in e){const t="string"==typeof e.alias?[e.alias]:e.alias;for(const e of t)h.push(i({},u,{components:r?r.record.components:u.components,path:e,aliasOf:r?r.record:u}))}let p,d;for(const t of h){const{path:i}=t;if(n&&"/"!==i[0]){const e=n.record.path,r="/"===e[e.length-1]?"":"/";t.path=n.record.path+(i&&r+i)}if(p=V(t,n,f),r?r.alias.push(p):(d=d||p,d!==p&&d.alias.push(p),l&&e.name&&!B(p)&&a(e.name)),u.children){const e=u.children;for(let t=0;t<e.length;t++)o(e[t],p,r&&r.children[t])}r=r||p,(p.record.components&&Object.keys(p.record.components).length||p.record.name||p.record.redirect)&&s(p)}return d?()=>{a(d)}:c}function a(e){if(N(e)){const t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(a),t.alias.forEach(a))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(a),e.alias.forEach(a))}}function s(e){let t=0;for(;t<n.length&&P(e,n[t])>=0&&(e.record.path!==n[t].record.path||!G(e,n[t]));)t++;n.splice(t,0,e),e.record.name&&!B(e)&&r.set(e.record.name,e)}return t=q({strict:!1,end:!0,sensitive:!1},t),e.forEach((e=>o(e))),{addRoute:o,resolve:function(e,t){let o,a,s,c={};if("name"in e&&e.name){if(o=r.get(e.name),!o)throw M(1,{location:e});s=o.record.name,c=i(U(t.params,o.keys.filter((e=>!e.optional)).map((e=>e.name))),e.params&&U(e.params,o.keys.map((e=>e.name)))),a=o.stringify(c)}else if("path"in e)a=e.path,o=n.find((e=>e.re.test(a))),o&&(c=o.parse(a),s=o.record.name);else{if(o=t.name?r.get(t.name):n.find((e=>e.re.test(t.path))),!o)throw M(1,{location:e,currentLocation:t});s=o.record.name,c=i({},t.params,e.params),a=o.stringify(c)}const l=[];let u=o;for(;u;)l.unshift(u.record),u=u.parent;return{name:s,path:a,params:c,matched:l,meta:Y(l)}},removeRoute:a,getRoutes:function(){return n},getRecordMatcher:function(e){return r.get(e)}}}(e.routes,e),n=e.parseQuery||pe,u=e.stringifyQuery||de,h=e.history,m=we(),v=we(),b=we(),y=(0,o.XI)(j);let _=j;a&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const S=s.bind(null,(e=>""+e)),C=s.bind(null,fe),E=s.bind(null,he);function O(e,r){if(r=i({},r||y.value),"string"==typeof e){const o=f(n,e,r.path),a=t.resolve({path:o.path},r),s=h.createHref(o.fullPath);return i(o,a,{params:E(a.params),hash:he(o.hash),redirectedFrom:void 0,href:s})}let o;if("path"in e)o=i({},e,{path:f(n,e.path,r.path).path});else{const t=i({},e.params);for(const e in t)null==t[e]&&delete t[e];o=i({},e,{params:C(e.params)}),r.params=C(r.params)}const a=t.resolve(o,r),s=e.hash||"";a.params=S(E(a.params));const c=function(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}(u,i({},e,{hash:(l=s,le(l).replace(ae,"{").replace(se,"}").replace(re,"^")),path:a.path}));var l;const p=h.createHref(c);return i({fullPath:c,hash:s,query:u===de?me(e.query):e.query||{}},a,{redirectedFrom:void 0,href:p})}function L(e){return"string"==typeof e?f(n,e,y.value.path):i({},e)}function A(e,t){if(_!==e)return M(8,{from:t,to:e})}function z(e){return R(e)}function T(e){const t=e.matched[e.matched.length-1];if(t&&t.redirect){const{redirect:n}=t;let r="function"==typeof n?n(e):n;return"string"==typeof r&&(r=r.includes("?")||r.includes("#")?r=L(r):{path:r},r.params={}),i({query:e.query,hash:e.hash,params:"path"in r?{}:e.params},r)}}function R(e,t){const n=_=O(e),r=y.value,o=e.state,a=e.force,s=!0===e.replace,c=T(n);if(c)return R(i(L(c),{state:"object"==typeof c?i({},o,c.state):o,force:a,replace:s}),t||n);const l=n;let f;return l.redirectedFrom=t,!a&&function(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&p(t.matched[r],n.matched[o])&&d(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}(u,r,n)&&(f=M(16,{to:l,from:r}),te(r,r,!0,!1)),(f?Promise.resolve(f):F(l,r)).catch((e=>I(e)?I(e,2)?e:ee(e):Q(e,l,r))).then((e=>{if(e){if(I(e,2))return R(i({replace:s},L(e.to),{state:"object"==typeof e.to?i({},o,e.to.state):o,force:a}),t||l)}else e=D(l,r,!0,s,o);return H(l,r,e),e}))}function $(e,t){const n=A(e,t);return n?Promise.reject(n):Promise.resolve()}function F(e,t){let n;const[r,o,a]=function(e,t){const n=[],r=[],o=[],a=Math.max(t.matched.length,e.matched.length);for(let i=0;i<a;i++){const a=t.matched[i];a&&(e.matched.find((e=>p(e,a)))?r.push(a):n.push(a));const s=e.matched[i];s&&(t.matched.find((e=>p(e,s)))||o.push(s))}return[n,r,o]}(e,t);n=ke(r.reverse(),"beforeRouteLeave",e,t);for(const o of r)o.leaveGuards.forEach((r=>{n.push(xe(r,e,t))}));const i=$.bind(null,e,t);return n.push(i),Ae(n).then((()=>{n=[];for(const r of m.list())n.push(xe(r,e,t));return n.push(i),Ae(n)})).then((()=>{n=ke(o,"beforeRouteUpdate",e,t);for(const r of o)r.updateGuards.forEach((r=>{n.push(xe(r,e,t))}));return n.push(i),Ae(n)})).then((()=>{n=[];for(const r of e.matched)if(r.beforeEnter&&!t.matched.includes(r))if(l(r.beforeEnter))for(const o of r.beforeEnter)n.push(xe(o,e,t));else n.push(xe(r.beforeEnter,e,t));return n.push(i),Ae(n)})).then((()=>(e.matched.forEach((e=>e.enterCallbacks={})),n=ke(a,"beforeRouteEnter",e,t),n.push(i),Ae(n)))).then((()=>{n=[];for(const r of v.list())n.push(xe(r,e,t));return n.push(i),Ae(n)})).catch((e=>I(e,8)?e:Promise.reject(e)))}function H(e,t,n){for(const r of b.list())r(e,t,n)}function D(e,t,n,r,o){const s=A(e,t);if(s)return s;const c=t===j,l=a?history.state:{};n&&(r||c?h.replace(e.fullPath,i({scroll:c&&l&&l.scroll},o)):h.push(e.fullPath,o)),y.value=e,te(e,t,n,c),ee()}let Z;let X,J=we(),K=we();function Q(e,t,n){ee(e);const r=K.list();return r.length?r.forEach((r=>r(e,t,n))):console.error(e),Promise.reject(e)}function ee(e){return X||(X=!e,Z||(Z=h.listen(((e,t,n)=>{if(!ce.listening)return;const r=O(e),o=T(r);if(o)return void R(i(o,{replace:!0}),r).catch(c);_=r;const s=y.value;var l,u;a&&(l=x(s.fullPath,n.delta),u=w(),k.set(l,u)),F(r,s).catch((e=>I(e,12)?e:I(e,2)?(R(e.to,r).then((e=>{I(e,20)&&!n.delta&&n.type===g.pop&&h.go(-1,!1)})).catch(c),Promise.reject()):(n.delta&&h.go(-n.delta,!1),Q(e,r,s)))).then((e=>{(e=e||D(r,s,!1))&&(n.delta&&!I(e,8)?h.go(-n.delta,!1):n.type===g.pop&&I(e,20)&&h.go(-1,!1)),H(r,s,e)})).catch(c)}))),J.list().forEach((([t,n])=>e?n(e):t())),J.reset()),e}function te(t,n,o,i){const{scrollBehavior:s}=e;if(!a||!s)return Promise.resolve();const c=!o&&function(e){const t=k.get(e);return k.delete(e),t}(x(t.fullPath,0))||(i||!o)&&history.state&&history.state.scroll||null;return(0,r.Y3)().then((()=>s(t,n,c))).then((e=>e&&function(e){let t;if("el"in e){const n=e.el,r="string"==typeof n&&n.startsWith("#"),o="string"==typeof n?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=function(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.pageXOffset,null!=t.top?t.top:window.pageYOffset)}(e))).catch((e=>Q(e,t,n)))}const ne=e=>h.go(e);let oe;const ie=new Set,ce={currentRoute:y,listening:!0,addRoute:function(e,n){let r,o;return N(e)?(r=t.getRecordMatcher(e),o=n):o=e,t.addRoute(o,r)},removeRoute:function(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)},hasRoute:function(e){return!!t.getRecordMatcher(e)},getRoutes:function(){return t.getRoutes().map((e=>e.record))},resolve:O,options:e,push:z,replace:function(e){return z(i(L(e),{replace:!0}))},go:ne,back:()=>ne(-1),forward:()=>ne(1),beforeEach:m.add,beforeResolve:v.add,afterEach:b.add,onError:K.add,isReady:function(){return X&&y.value!==j?Promise.resolve():new Promise(((e,t)=>{J.add([e,t])}))},install(e){e.component("RouterLink",Ce),e.component("RouterView",je),e.config.globalProperties.$router=this,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>(0,o.SU)(y)}),a&&!oe&&y.value===j&&(oe=!0,z(h.location).catch((e=>{})));const t={};for(const e in j)t[e]=(0,r.Fl)((()=>y.value[e]));e.provide(be,this),e.provide(ye,(0,o.qj)(t)),e.provide(_e,y);const n=e.unmount;ie.add(e),e.unmount=function(){ie.delete(e),ie.size<1&&(_=j,Z&&Z(),Z=null,y.value=j,oe=!1,X=!1),n()}}};return ce}function Ae(e){return e.reduce(((e,t)=>e.then((()=>t()))),Promise.resolve())}},42570:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>P});var r=n(2262),o=n(66252),a=n(3577);let i;function s(){s.init||(s.init=!0,i=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var r=e.indexOf("Edge/");return r>0?parseInt(e.substring(r+5,e.indexOf(".",r)),10):-1}())}var c={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){s(),(0,o.Y3)((()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()}));const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",i&&this.$el.appendChild(e),e.data="about:blank",i||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!i&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const l=(0,o.HX)("data-v-b329ee4c");(0,o.dD)("data-v-b329ee4c");const u={class:"resize-observer",tabindex:"-1"};(0,o.Cn)();const f=l(((e,t,n,r,a,i)=>((0,o.wg)(),(0,o.j4)("div",u))));function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e,t){if(e===t)return!0;if("object"===h(e)){for(var n in e)if(!v(e[n],t[n]))return!1;return!0}return!1}c.render=f,c.__scopeId="data-v-b329ee4c",c.__file="src/components/ResizeObserver.vue";var g=function(){function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.el=t,this.observer=null,this.frozen=!1,this.createObserver(n,r)}var t,n;return t=e,n=[{key:"createObserver",value:function(e,t){var n=this;if(this.observer&&this.destroyObserver(),!this.frozen){var r;if(this.options="function"==typeof(r=e)?{callback:r}:r,this.callback=function(e,t){n.options.callback(e,t),e&&n.options.once&&(n.frozen=!0,n.destroyObserver())},this.callback&&this.options.throttle){var a=(this.options.throttleOptions||{}).leading;this.callback=function(e,t){var n,r,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=function(i){for(var s=arguments.length,c=new Array(s>1?s-1:0),l=1;l<s;l++)c[l-1]=arguments[l];if(o=c,!n||i!==r){var u=a.leading;"function"==typeof u&&(u=u(i,r)),n&&i===r||!u||e.apply(void 0,[i].concat(d(o))),r=i,clearTimeout(n),n=setTimeout((function(){e.apply(void 0,[i].concat(d(o))),n=0}),t)}};return i._clear=function(){clearTimeout(n),n=null},i}(this.callback,this.options.throttle,{leading:function(e){return"both"===a||"visible"===a&&e||"hidden"===a&&!e}})}this.oldResult=void 0,this.observer=new IntersectionObserver((function(e){var t=e[0];if(e.length>1){var r=e.find((function(e){return e.isIntersecting}));r&&(t=r)}if(n.callback){var o=t.isIntersecting&&t.intersectionRatio>=n.threshold;if(o===n.oldResult)return;n.oldResult=o,n.callback(o,t)}}),this.options.intersection),(0,o.Y3)((function(){n.observer&&n.observer.observe(n.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&"number"==typeof this.options.intersection.threshold?this.options.intersection.threshold:0}}],n&&p(t.prototype,n),e}();function b(e,t,n){var r=t.value;if(r)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var o=new g(e,r,n);e._vue_visibilityState=o}}function y(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var _={beforeMount:b,updated:function(e,t,n){var r=t.value;if(!v(r,t.oldValue)){var o=e._vue_visibilityState;r?o?o.createObserver(r,n):b(e,{value:r},n):y(e)}},unmounted:y},w={itemsLimit:1e3},x=/(auto|scroll)/;function k(e,t){return null===e.parentNode?t:k(e.parentNode,t.concat([e]))}var S=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},C=function(e){return x.test(function(e){return S(e,"overflow")+S(e,"overflow-y")+S(e,"overflow-x")}(e))};function E(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var t=k(e.parentNode,[]),n=0;n<t.length;n+=1)if(C(t[n]))return t[n];return document.scrollingElement||document.documentElement}}function O(e){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O(e)}var N={items:{type:Array,required:!0},keyField:{type:String,default:"id"},direction:{type:String,default:"vertical",validator:function(e){return["vertical","horizontal"].includes(e)}},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"}};function j(){return this.items.length&&"object"!==O(this.items[0])}var L=!1;if("undefined"!=typeof window){L=!1;try{var A=Object.defineProperty({},"passive",{get:function(){L=!0}});window.addEventListener("test",null,A)}catch(e){}}let M=0;var I={name:"RecycleScroller",components:{ResizeObserver:c},directives:{ObserveVisibility:_},props:{...N,itemSize:{type:Number,default:null},gridItems:{type:Number,default:void 0},itemSecondarySize:{type:Number,default:void 0},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:"size"},typeField:{type:String,default:"type"},buffer:{type:Number,default:200},pageMode:{type:Boolean,default:!1},prerender:{type:Number,default:0},emitUpdate:{type:Boolean,default:!1},updateInterval:{type:Number,default:0},skipHover:{type:Boolean,default:!1},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"},listClass:{type:[String,Object,Array],default:""},itemClass:{type:[String,Object,Array],default:""}},emits:["resize","visible","hidden","update","scroll-start","scroll-end"],data:()=>({pool:[],totalSize:0,ready:!1,hoverKey:null}),computed:{sizes(){if(null===this.itemSize){const e={"-1":{accumulator:0}},t=this.items,n=this.sizeField,r=this.minItemSize;let o,a=1e4,i=0;for(let s=0,c=t.length;s<c;s++)o=t[s][n]||r,o<a&&(a=o),i+=o,e[s]={accumulator:i,size:o};return this.$_computedMinItemSize=a,e}return[]},simpleArray:j,itemIndexByKey(){const{keyField:e,items:t}=this,n={};for(let r=0,o=t.length;r<o;r++)n[t[r][e]]=r;return n}},watch:{items(){this.updateVisibleItems(!0)},pageMode(){this.applyPageMode(),this.updateVisibleItems(!1)},sizes:{handler(){this.updateVisibleItems(!1)},deep:!0},gridItems(){this.updateVisibleItems(!0)},itemSecondarySize(){this.updateVisibleItems(!0)}},created(){this.$_startIndex=0,this.$_endIndex=0,this.$_views=new Map,this.$_unusedViews=new Map,this.$_scrollDirty=!1,this.$_lastUpdateScrollPosition=0,this.prerender&&(this.$_prerender=!0,this.updateVisibleItems(!1)),this.gridItems&&!this.itemSize&&console.error("[vue-recycle-scroller] You must provide an itemSize when using gridItems")},mounted(){this.applyPageMode(),this.$nextTick((()=>{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0}))},activated(){const e=this.$_lastUpdateScrollPosition;"number"==typeof e&&this.$nextTick((()=>{this.scrollToPosition(e)}))},beforeUnmount(){this.removeListeners()},methods:{addView(e,t,n,o,a){const i=(0,r.Xl)({id:M++,index:t,used:!0,key:o,type:a}),s=(0,r.Um)({item:n,position:0,nr:i});return e.push(s),s},unuseView(e,t=!1){const n=this.$_unusedViews,r=e.nr.type;let o=n.get(r);o||(o=[],n.set(r,o)),o.push(e),t||(e.nr.used=!1,e.position=-9999)},handleResize(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll(e){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;const e=()=>requestAnimationFrame((()=>{this.$_scrollDirty=!1;const{continuous:e}=this.updateVisibleItems(!1,!0);e||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))}));e(),this.updateInterval&&(this.$_updateTimeout=setTimeout((()=>{this.$_updateTimeout=0,this.$_scrollDirty&&e()}),this.updateInterval))}},handleVisibilityChange(e,t){this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((()=>{this.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems(e,t=!1){const n=this.itemSize,r=this.gridItems||1,o=this.itemSecondarySize||n,a=this.$_computedMinItemSize,i=this.typeField,s=this.simpleArray?null:this.keyField,c=this.items,l=c.length,u=this.sizes,f=this.$_views,h=this.$_unusedViews,p=this.pool,d=this.itemIndexByKey;let m,v,g,b,y,_;if(l)if(this.$_prerender)m=b=0,v=y=Math.min(this.prerender,c.length),g=null;else{const e=this.getScroll();if(t){let t=e.start-this.$_lastUpdateScrollPosition;if(t<0&&(t=-t),null===n&&t<a||t<n)return{continuous:!0}}this.$_lastUpdateScrollPosition=e.start;const o=this.buffer;e.start-=o,e.end+=o;let i=0;if(this.$refs.before&&(i=this.$refs.before.scrollHeight,e.start-=i),this.$refs.after){const t=this.$refs.after.scrollHeight;e.end+=t}if(null===n){let t,n,r=0,o=l-1,a=~~(l/2);do{n=a,t=u[a].accumulator,t<e.start?r=a:a<l-1&&u[a+1].accumulator>e.start&&(o=a),a=~~((r+o)/2)}while(a!==n);for(a<0&&(a=0),m=a,g=u[l-1].accumulator,v=a;v<l&&u[v].accumulator<e.end;v++);for(-1===v?v=c.length-1:(v++,v>l&&(v=l)),b=m;b<l&&i+u[b].accumulator<e.start;b++);for(y=b;y<l&&i+u[y].accumulator<e.end;y++);}else m=~~(e.start/n*r),m-=m%r,v=Math.ceil(e.end/n*r),b=Math.max(0,Math.floor((e.start-i)/n*r)),y=Math.floor((e.end-i)/n*r),m<0&&(m=0),v>l&&(v=l),b<0&&(b=0),y>l&&(y=l),g=Math.ceil(l/r)*n}else m=v=b=y=g=0;v-m>w.itemsLimit&&this.itemsLimitError(),this.totalSize=g;const x=m<=this.$_endIndex&&v>=this.$_startIndex;if(x)for(let t=0,n=p.length;t<n;t++)_=p[t],_.nr.used&&(e&&(_.nr.index=d[_.item[s]]),(null==_.nr.index||_.nr.index<m||_.nr.index>=v)&&this.unuseView(_));const k=x?null:new Map;let S,C,E;for(let e=m;e<v;e++){S=c[e];const t=s?S[s]:S;if(null==t)throw new Error(`Key is ${t} on item (keyField is '${s}')`);if(_=f.get(t),!n&&!u[e].size){_&&this.unuseView(_);continue}C=S[i];let a=h.get(C),l=!1;if(_){if(!_.nr.used&&(_.nr.used=!0,l=!0,a)){const e=a.indexOf(_);-1!==e&&a.splice(e,1)}}else x?_=a&&a.length?a.pop():this.addView(p,e,S,t,C):(E=k.get(C)||0,(!a||E>=a.length)&&(_=this.addView(p,e,S,t,C),this.unuseView(_,!0),a=h.get(C)),_=a[E],k.set(C,E+1)),f.delete(_.nr.key),_.nr.used=!0,_.nr.index=e,_.nr.key=t,_.nr.type=C,f.set(t,_),l=!0;_.item=S,l&&(e===c.length-1&&this.$emit("scroll-end"),0===e&&this.$emit("scroll-start")),null===n?(_.position=u[e-1].accumulator,_.offset=0):(_.position=Math.floor(e/r)*n,_.offset=e%r*o)}return this.$_startIndex=m,this.$_endIndex=v,this.emitUpdate&&this.$emit("update",m,v,b,y),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:x}},getListenerTarget(){let e=E(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll(){const{$el:e,direction:t}=this,n="vertical"===t;let r;if(this.pageMode){const t=e.getBoundingClientRect(),o=n?t.height:t.width;let a=-(n?t.top:t.left),i=n?window.innerHeight:window.innerWidth;a<0&&(i+=a,a=0),a+i>o&&(i=o-a),r={start:a,end:a+i}}else r=n?{start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{start:e.scrollLeft,end:e.scrollLeft+e.clientWidth};return r},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!L&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem(e){let t;const n=this.gridItems||1;t=null===this.itemSize?e>0?this.sizes[e-1].accumulator:0:Math.floor(e/n)*this.itemSize,this.scrollToPosition(t)},scrollToPosition(e){const t="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let n,r,o;if(this.pageMode){const a=E(this.$el),i="HTML"===a.tagName?0:a[t.scroll],s=a.getBoundingClientRect(),c=this.$el.getBoundingClientRect()[t.start]-s[t.start];n=a,r=t.scroll,o=e+i+c}else n=this.$el,r=t.scroll,o=e;n[r]=o},itemsLimitError(){throw setTimeout((()=>{console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",this.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")},sortViews(){this.pool.sort(((e,t)=>e.nr.index-t.nr.index))}}};const z={key:0,ref:"before",class:"vue-recycle-scroller__slot"},T={key:1,ref:"after",class:"vue-recycle-scroller__slot"};I.render=function(e,t,n,r,i,s){const c=(0,o.up)("ResizeObserver"),l=(0,o.Q2)("observe-visibility");return(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",{class:(0,a.C_)(["vue-recycle-scroller",{ready:i.ready,"page-mode":n.pageMode,[`direction-${e.direction}`]:!0}]),onScrollPassive:t[0]||(t[0]=(...e)=>s.handleScroll&&s.handleScroll(...e))},[e.$slots.before?((0,o.wg)(),(0,o.iD)("div",z,[(0,o.WI)(e.$slots,"before")],512)):(0,o.kq)("v-if",!0),((0,o.wg)(),(0,o.j4)((0,o.LL)(n.listTag),{ref:"wrapper",style:(0,a.j5)({["vertical"===e.direction?"minHeight":"minWidth"]:i.totalSize+"px"}),class:(0,a.C_)(["vue-recycle-scroller__item-wrapper",n.listClass])},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(i.pool,(t=>((0,o.wg)(),(0,o.j4)((0,o.LL)(n.itemTag),(0,o.dG)({key:t.nr.id,style:i.ready?{transform:`translate${"vertical"===e.direction?"Y":"X"}(${t.position}px) translate${"vertical"===e.direction?"X":"Y"}(${t.offset}px)`,width:n.gridItems?`${"vertical"===e.direction&&n.itemSecondarySize||n.itemSize}px`:void 0,height:n.gridItems?`${"horizontal"===e.direction&&n.itemSecondarySize||n.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[n.itemClass,{hover:!n.skipHover&&i.hoverKey===t.nr.key}]]},(0,o.mx)(n.skipHover?{}:{mouseenter:()=>{i.hoverKey=t.nr.key},mouseleave:()=>{i.hoverKey=null}})),{default:(0,o.w5)((()=>[(0,o.WI)(e.$slots,"default",{item:t.item,index:t.nr.index,active:t.nr.used})])),_:2},1040,["style","class"])))),128)),(0,o.WI)(e.$slots,"empty")])),_:3},8,["style","class"])),e.$slots.after?((0,o.wg)(),(0,o.iD)("div",T,[(0,o.WI)(e.$slots,"after")],512)):(0,o.kq)("v-if",!0),(0,o.Wm)(c,{onNotify:s.handleResize},null,8,["onNotify"])],34)),[[l,s.handleVisibilityChange]])},I.__file="src/components/RecycleScroller.vue";var R={name:"DynamicScroller",components:{RecycleScroller:I},provide(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((e=>{requestAnimationFrame((()=>{if(Array.isArray(e))for(const t of e)if(t.target&&t.target.$_vs_onResize){const e=t.borderBoxSize[0];t.target.$_vs_onResize(t.target.$_vs_id,e.inlineSize,e.blockSize)}}))}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},inheritAttrs:!1,props:{...N,minItemSize:{type:[Number,String],required:!0}},emits:["resize","visible"],data(){return{vscrollData:{active:!0,sizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:j,itemsWithSize(){const e=[],{items:t,keyField:n,simpleArray:r}=this,o=this.vscrollData.sizes,a=t.length;for(let i=0;i<a;i++){const a=t[i],s=r?i:a[n];let c=o[s];void 0!==c||this.$_undefinedMap[s]||(c=0),e.push({item:a,id:s,size:c})}return e}},watch:{items(){this.forceUpdate()},simpleArray:{handler(e){this.vscrollData.simpleArray=e},immediate:!0},direction(e){this.forceUpdate(!0)},itemsWithSize(e,t){const n=this.$el.scrollTop;let r=0,o=0;const a=Math.min(e.length,t.length);for(let i=0;i<a&&!(r>=n);i++)r+=t[i].size||this.minItemSize,o+=e[i].size||this.minItemSize;const i=o-r;0!==i&&(this.$el.scrollTop+=i)}},beforeCreate(){var e;this.$_updates=[],this.$_undefinedSizes=0,this.$_undefinedMap={},this.$_events={all:e=e||new Map,on:function(t,n){var r=e.get(t);r&&r.push(n)||e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&r.splice(r.indexOf(n)>>>0,1)},emit:function(t,n){(e.get(t)||[]).slice().map((function(e){e(n)})),(e.get("*")||[]).slice().map((function(e){e(t,n)}))}}},activated(){this.vscrollData.active=!0},deactivated(){this.vscrollData.active=!1},unmounted(){this.$_events.all.clear()},methods:{onScrollerResize(){this.$refs.scroller&&this.forceUpdate(),this.$emit("resize")},onScrollerVisible(){this.$_events.emit("vscroll:update",{force:!1}),this.$emit("visible")},forceUpdate(e=!1){(e||this.simpleArray)&&(this.vscrollData.sizes={}),this.$_events.emit("vscroll:update",{force:!0})},scrollToItem(e){const t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize(e,t){const n=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[n]||0},scrollToBottom(){if(this.$_scrollingToBottom)return;this.$_scrollingToBottom=!0;const e=this.$el;this.$nextTick((()=>{e.scrollTop=e.scrollHeight+5e3;const t=()=>{e.scrollTop=e.scrollHeight+5e3,requestAnimationFrame((()=>{e.scrollTop=e.scrollHeight+5e3,0===this.$_undefinedSizes?this.$_scrollingToBottom=!1:requestAnimationFrame(t)}))};requestAnimationFrame(t)}))}},render:function(e,t,n,r,i,s){const c=(0,o.up)("RecycleScroller");return(0,o.wg)(),(0,o.j4)(c,(0,o.dG)({ref:"scroller",items:s.itemsWithSize,"min-item-size":n.minItemSize,direction:e.direction,"key-field":"id","list-tag":e.listTag,"item-tag":e.itemTag},e.$attrs,{onResize:s.onScrollerResize,onVisible:s.onScrollerVisible}),{default:(0,o.w5)((({item:t,index:n,active:r})=>[(0,o.WI)(e.$slots,"default",(0,a.vs)((0,o.F4)({item:t.item,index:n,active:r,itemWithSize:t})))])),before:(0,o.w5)((()=>[(0,o.WI)(e.$slots,"before")])),after:(0,o.w5)((()=>[(0,o.WI)(e.$slots,"after")])),empty:(0,o.w5)((()=>[(0,o.WI)(e.$slots,"empty")])),_:3},16,["items","min-item-size","direction","list-tag","item-tag","onResize","onVisible"])},__file:"src/components/DynamicScroller.vue"},$={name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},emits:["resize"],computed:{id(){if(this.vscrollData.simpleArray)return this.index;if(this.vscrollData.keyField in this.item)return this.item[this.vscrollData.keyField];throw new Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`)},size(){return this.vscrollData.sizes[this.id]||0},finalActive(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id(e,t){if(this.$el.$_vs_id=this.id,this.size||this.onDataUpdate(),this.$_sizeObserved){const n=this.vscrollData.sizes[t],r=this.vscrollData.sizes[e];null!=n&&n!==r&&this.applySize(n)}},finalActive(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created(){if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){for(const e in this.sizeDependencies)this.$watch((()=>this.sizeDependencies[e]),this.onDataUpdate);this.vscrollParent.$_events.on("vscroll:update",this.onVscrollUpdate)}},mounted(){this.finalActive&&(this.updateSize(),this.observeSize())},beforeUnmount(){this.vscrollParent.$_events.off("vscroll:update",this.onVscrollUpdate),this.unobserveSize()},methods:{updateSize(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData(){this.watchData&&!this.vscrollResizeObserver?this.$_watchData=this.$watch("item",(()=>{this.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate({force:e}){!this.finalActive&&e&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!e&&this.size||this.updateSize()},onDataUpdate(){this.updateSize()},computeSize(e){this.$nextTick((()=>{if(this.id===e){const e=this.$el.offsetWidth,t=this.$el.offsetHeight;this.applyWidthHeight(e,t)}this.$_pendingSizeUpdate=null}))},applyWidthHeight(e,t){const n=~~("vertical"===this.vscrollParent.direction?t:e);n&&this.size!==n&&this.applySize(n)},applySize(e){this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.vscrollData.sizes[this.id]=e,this.emitResize&&this.$emit("resize",this.id)},observeSize(){this.vscrollResizeObserver&&(this.$_sizeObserved||(this.vscrollResizeObserver.observe(this.$el),this.$el.$_vs_id=this.id,this.$el.$_vs_onResize=this.onResize,this.$_sizeObserved=!0))},unobserveSize(){this.vscrollResizeObserver&&this.$_sizeObserved&&(this.vscrollResizeObserver.unobserve(this.$el),this.$el.$_vs_onResize=void 0,this.$_sizeObserved=!1)},onResize(e,t,n){this.id===e&&this.applyWidthHeight(t,n)}},render(){return(0,o.h)(this.tag,this.$slots.default())},__file:"src/components/DynamicScrollerItem.vue"},P={version:"2.0.0-beta.7",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(w[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),I),e.component("".concat(t,"RecycleScroller"),I),e.component("".concat(t,"dynamic-scroller"),R),e.component("".concat(t,"DynamicScroller"),R),e.component("".concat(t,"dynamic-scroller-item"),$),e.component("".concat(t,"DynamicScrollerItem"),$)}(e,n.componentsPrefix)}}},989:(e,t,n)=>{"use strict";n.d(t,{MT:()=>z,nv:()=>H,Se:()=>F,OI:()=>P,rn:()=>$});var r=n(66252),o=n(2262);function a(){return"undefined"!=typeof navigator&&"undefined"!=typeof window?window:void 0!==n.g?n.g:{}}const i="function"==typeof Proxy;let s,c;class l{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const r={};if(e.settings)for(const t in e.settings){const n=e.settings[t];r[t]=n.defaultValue}const o=`__vue-devtools-plugin-settings__${e.id}`;let a=Object.assign({},r);try{const e=localStorage.getItem(o),t=JSON.parse(e);Object.assign(a,t)}catch(e){}this.fallbacks={getSettings:()=>a,setSettings(e){try{localStorage.setItem(o,JSON.stringify(e))}catch(e){}a=e},now:()=>{return void 0!==s||("undefined"!=typeof window&&window.performance?(s=!0,c=window.performance):void 0!==n.g&&(null===(e=n.g.perf_hooks)||void 0===e?void 0:e.performance)?(s=!0,c=n.g.perf_hooks.performance):s=!1),s?c.now():Date.now();var e}},t&&t.on("plugin:settings:set",((e,t)=>{e===this.plugin.id&&this.fallbacks.setSettings(t)})),this.proxiedOn=new Proxy({},{get:(e,t)=>this.target?this.target.on[t]:(...e)=>{this.onQueue.push({method:t,args:e})}}),this.proxiedTarget=new Proxy({},{get:(e,t)=>this.target?this.target[t]:"on"===t?this.proxiedOn:Object.keys(this.fallbacks).includes(t)?(...e)=>(this.targetQueue.push({method:t,args:e,resolve:()=>{}}),this.fallbacks[t](...e)):(...e)=>new Promise((n=>{this.targetQueue.push({method:t,args:e,resolve:n})}))})}async setRealTarget(e){this.target=e;for(const e of this.onQueue)this.target.on[e.method](...e.args);for(const e of this.targetQueue)e.resolve(await this.target[e.method](...e.args))}}function u(e,t){Object.keys(e).forEach((function(n){return t(e[n],n)}))}function f(e){return null!==e&&"object"==typeof e}function h(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function p(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;m(e,n,[],e._modules.root,!0),d(e,n,t)}function d(e,t,n){var a=e._state,i=e._scope;e.getters={},e._makeLocalGettersCache=Object.create(null);var s=e._wrappedGetters,c={},l={},f=(0,o.B)(!0);f.run((function(){u(s,(function(t,n){c[n]=function(e,t){return function(){return e(t)}}(t,e),l[n]=(0,r.Fl)((function(){return c[n]()})),Object.defineProperty(e.getters,n,{get:function(){return l[n].value},enumerable:!0})}))})),e._state=(0,o.qj)({data:t}),e._scope=f,e.strict&&function(e){(0,r.YP)((function(){return e._state.data}),(function(){}),{deep:!0,flush:"sync"})}(e),a&&n&&e._withCommit((function(){a.data=null})),i&&i.stop()}function m(e,t,n,r,o){var a=!n.length,i=e._modules.getNamespace(n);if(r.namespaced&&(e._modulesNamespaceMap[i],e._modulesNamespaceMap[i]=r),!a&&!o){var s=g(t,n.slice(0,-1)),c=n[n.length-1];e._withCommit((function(){s[c]=r.state}))}var l=r.context=function(e,t,n){var r=""===t,o={dispatch:r?e.dispatch:function(n,r,o){var a=b(n,r,o),i=a.payload,s=a.options,c=a.type;return s&&s.root||(c=t+c),e.dispatch(c,i)},commit:r?e.commit:function(n,r,o){var a=b(n,r,o),i=a.payload,s=a.options,c=a.type;s&&s.root||(c=t+c),e.commit(c,i,s)}};return Object.defineProperties(o,{getters:{get:r?function(){return e.getters}:function(){return v(e,t)}},state:{get:function(){return g(e.state,n)}}}),o}(e,i,n);r.forEachMutation((function(t,n){!function(e,t,n,r){(e._mutations[t]||(e._mutations[t]=[])).push((function(t){n.call(e,r.state,t)}))}(e,i+n,t,l)})),r.forEachAction((function(t,n){var r=t.root?n:i+n,o=t.handler||t;!function(e,t,n,r){(e._actions[t]||(e._actions[t]=[])).push((function(t){var o,a=n.call(e,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:e.getters,rootState:e.state},t);return(o=a)&&"function"==typeof o.then||(a=Promise.resolve(a)),e._devtoolHook?a.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):a}))}(e,r,o,l)})),r.forEachGetter((function(t,n){!function(e,t,n,r){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return n(r.state,r.getters,e.state,e.getters)})}(e,i+n,t,l)})),r.forEachChild((function(r,a){m(e,t,n.concat(a),r,o)}))}function v(e,t){if(!e._makeLocalGettersCache[t]){var n={},r=t.length;Object.keys(e.getters).forEach((function(o){if(o.slice(0,r)===t){var a=o.slice(r);Object.defineProperty(n,a,{get:function(){return e.getters[o]},enumerable:!0})}})),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}function g(e,t){return t.reduce((function(e,t){return e[t]}),e)}function b(e,t,n){return f(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}var y="vuex:mutations",_="vuex:actions",w="vuex",x=0;function k(e,t){!function(e,t){const n=e,r=a(),o=a().__VUE_DEVTOOLS_GLOBAL_HOOK__,s=i&&n.enableEarlyProxy;if(!o||!r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__&&s){const e=s?new l(n,o):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:e}),e&&t(e.proxiedTarget)}else o.emit("devtools-plugin:setup",e,t)}({id:"org.vuejs.vuex",app:e,label:"Vuex",homepage:"https://next.vuex.vuejs.org/",logo:"https://vuejs.org/images/icons/favicon-96x96.png",packageName:"vuex",componentStateTypes:["vuex bindings"]},(function(n){n.addTimelineLayer({id:y,label:"Vuex Mutations",color:S}),n.addTimelineLayer({id:_,label:"Vuex Actions",color:S}),n.addInspector({id:w,label:"Vuex",icon:"storage",treeFilterPlaceholder:"Filter stores..."}),n.on.getInspectorTree((function(n){if(n.app===e&&n.inspectorId===w)if(n.filter){var r=[];N(r,t._modules.root,n.filter,""),n.rootNodes=r}else n.rootNodes=[O(t._modules.root,"")]})),n.on.getInspectorState((function(n){if(n.app===e&&n.inspectorId===w){var r=n.nodeId;v(t,r),n.state=function(e,t,n){t="root"===n?t:t[n];var r=Object.keys(t),o={state:Object.keys(e.state).map((function(t){return{key:t,editable:!0,value:e.state[t]}}))};if(r.length){var a=function(e){var t={};return Object.keys(e).forEach((function(n){var r=n.split("/");if(r.length>1){var o=t,a=r.pop();r.forEach((function(e){o[e]||(o[e]={_custom:{value:{},display:e,tooltip:"Module",abstract:!0}}),o=o[e]._custom.value})),o[a]=j((function(){return e[n]}))}else t[n]=j((function(){return e[n]}))})),t}(t);o.getters=Object.keys(a).map((function(e){return{key:e.endsWith("/")?E(e):e,editable:!1,value:j((function(){return a[e]}))}}))}return o}((o=t._modules,(i=(a=r).split("/").filter((function(e){return e}))).reduce((function(e,t,n){var r=e[t];if(!r)throw new Error('Missing module "'+t+'" for path "'+a+'".');return n===i.length-1?r:r._children}),"root"===a?o:o.root._children)),"root"===r?t.getters:t._makeLocalGettersCache,r)}var o,a,i})),n.on.editInspectorState((function(n){if(n.app===e&&n.inspectorId===w){var r=n.nodeId,o=n.path;"root"!==r&&(o=r.split("/").filter(Boolean).concat(o)),t._withCommit((function(){n.set(t._state.data,o,n.state.value)}))}})),t.subscribe((function(e,t){var r={};e.payload&&(r.payload=e.payload),r.state=t,n.notifyComponentUpdate(),n.sendInspectorTree(w),n.sendInspectorState(w),n.addTimelineEvent({layerId:y,event:{time:Date.now(),title:e.type,data:r}})})),t.subscribeAction({before:function(e,t){var r={};e.payload&&(r.payload=e.payload),e._id=x++,e._time=Date.now(),r.state=t,n.addTimelineEvent({layerId:_,event:{time:e._time,title:e.type,groupId:e._id,subtitle:"start",data:r}})},after:function(e,t){var r={},o=Date.now()-e._time;r.duration={_custom:{type:"duration",display:o+"ms",tooltip:"Action duration",value:o}},e.payload&&(r.payload=e.payload),r.state=t,n.addTimelineEvent({layerId:_,event:{time:Date.now(),title:e.type,groupId:e._id,subtitle:"end",data:r}})}})}))}var S=8702998,C={label:"namespaced",textColor:16777215,backgroundColor:6710886};function E(e){return e&&"root"!==e?e.split("/").slice(-2,-1)[0]:"Root"}function O(e,t){return{id:t||"root",label:E(t),tags:e.namespaced?[C]:[],children:Object.keys(e._children).map((function(n){return O(e._children[n],t+n+"/")}))}}function N(e,t,n,r){r.includes(n)&&e.push({id:r||"root",label:r.endsWith("/")?r.slice(0,r.length-1):r||"Root",tags:t.namespaced?[C]:[]}),Object.keys(t._children).forEach((function(o){N(e,t._children[o],n,r+o+"/")}))}function j(e){try{return e()}catch(e){return e}}var L=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=("function"==typeof n?n():n)||{}},A={namespaced:{configurable:!0}};A.namespaced.get=function(){return!!this._rawModule.namespaced},L.prototype.addChild=function(e,t){this._children[e]=t},L.prototype.removeChild=function(e){delete this._children[e]},L.prototype.getChild=function(e){return this._children[e]},L.prototype.hasChild=function(e){return e in this._children},L.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},L.prototype.forEachChild=function(e){u(this._children,e)},L.prototype.forEachGetter=function(e){this._rawModule.getters&&u(this._rawModule.getters,e)},L.prototype.forEachAction=function(e){this._rawModule.actions&&u(this._rawModule.actions,e)},L.prototype.forEachMutation=function(e){this._rawModule.mutations&&u(this._rawModule.mutations,e)},Object.defineProperties(L.prototype,A);var M=function(e){this.register([],e,!1)};function I(e,t,n){if(t.update(n),n.modules)for(var r in n.modules){if(!t.getChild(r))return;I(e.concat(r),t.getChild(r),n.modules[r])}}function z(e){return new T(e)}M.prototype.get=function(e){return e.reduce((function(e,t){return e.getChild(t)}),this.root)},M.prototype.getNamespace=function(e){var t=this.root;return e.reduce((function(e,n){return e+((t=t.getChild(n)).namespaced?n+"/":"")}),"")},M.prototype.update=function(e){I([],this.root,e)},M.prototype.register=function(e,t,n){var r=this;void 0===n&&(n=!0);var o=new L(t,n);0===e.length?this.root=o:this.get(e.slice(0,-1)).addChild(e[e.length-1],o),t.modules&&u(t.modules,(function(t,o){r.register(e.concat(o),t,n)}))},M.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1],r=t.getChild(n);r&&r.runtime&&t.removeChild(n)},M.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1];return!!t&&t.hasChild(n)};var T=function(e){var t=this;void 0===e&&(e={});var n=e.plugins;void 0===n&&(n=[]);var r=e.strict;void 0===r&&(r=!1);var o=e.devtools;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new M(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null),this._scope=null,this._devtools=o;var a=this,i=this.dispatch,s=this.commit;this.dispatch=function(e,t){return i.call(a,e,t)},this.commit=function(e,t,n){return s.call(a,e,t,n)},this.strict=r;var c=this._modules.root.state;m(this,c,[],this._modules.root),d(this,c),n.forEach((function(e){return e(t)}))},R={state:{configurable:!0}};T.prototype.install=function(e,t){e.provide(t||"store",this),e.config.globalProperties.$store=this,void 0!==this._devtools&&this._devtools&&k(e,this)},R.state.get=function(){return this._state.data},R.state.set=function(e){},T.prototype.commit=function(e,t,n){var r=this,o=b(e,t,n),a=o.type,i=o.payload,s=(o.options,{type:a,payload:i}),c=this._mutations[a];c&&(this._withCommit((function(){c.forEach((function(e){e(i)}))})),this._subscribers.slice().forEach((function(e){return e(s,r.state)})))},T.prototype.dispatch=function(e,t){var n=this,r=b(e,t),o=r.type,a=r.payload,i={type:o,payload:a},s=this._actions[o];if(s){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(i,n.state)}))}catch(e){}var c=s.length>1?Promise.all(s.map((function(e){return e(a)}))):s[0](a);return new Promise((function(e,t){c.then((function(t){try{n._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(i,n.state)}))}catch(e){}e(t)}),(function(e){try{n._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(i,n.state,e)}))}catch(e){}t(e)}))}))}},T.prototype.subscribe=function(e,t){return h(e,this._subscribers,t)},T.prototype.subscribeAction=function(e,t){return h("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},T.prototype.watch=function(e,t,n){var o=this;return(0,r.YP)((function(){return e(o.state,o.getters)}),t,Object.assign({},n))},T.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._state.data=e}))},T.prototype.registerModule=function(e,t,n){void 0===n&&(n={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),m(this,this.state,e,this._modules.get(e),n.preserveState),d(this,this.state)},T.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){delete g(t.state,e.slice(0,-1))[e[e.length-1]]})),p(this)},T.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},T.prototype.hotUpdate=function(e){this._modules.update(e),p(this,!0)},T.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(T.prototype,R);var $=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;n[r]=function(){var t=this.$store.state,n=this.$store.getters;if(e){var r=U(this.$store,0,e);if(!r)return;t=r.context.state,n=r.context.getters}return"function"==typeof o?o.call(this,t,n):t[o]},n[r].vuex=!0})),n})),P=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;n[r]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var r=this.$store.commit;if(e){var a=U(this.$store,0,e);if(!a)return;r=a.context.commit}return"function"==typeof o?o.apply(this,[r].concat(t)):r.apply(this.$store,[o].concat(t))}})),n})),F=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;o=e+o,n[r]=function(){if(!e||U(this.$store,0,e))return this.$store.getters[o]},n[r].vuex=!0})),n})),H=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,o=t.val;n[r]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var r=this.$store.dispatch;if(e){var a=U(this.$store,0,e);if(!a)return;r=a.context.dispatch}return"function"==typeof o?o.apply(this,[r].concat(t)):r.apply(this.$store,[o].concat(t))}})),n}));function D(e){return function(e){return Array.isArray(e)||f(e)}(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function V(e){return function(t,n){return"string"!=typeof t?(n=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,n)}}function U(e,t,n){return e._modulesNamespaceMap[n]}},47529:e=>{e.exports=function(){for(var e={},n=0;n<arguments.length;n++){var r=arguments[n];for(var o in r)t.call(r,o)&&(e[o]=r[o])}return e};var t=Object.prototype.hasOwnProperty},17061:(e,t,n)=>{var r=n(18698).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},s="function"==typeof Symbol?Symbol:{},c=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function f(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,n){return e[t]=n}}function h(e,t,n,r){var o=t&&t.prototype instanceof m?t:m,a=Object.create(o.prototype),s=new N(r||[]);return i(a,"_invoke",{value:S(e,n,s)}),a}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var d={};function m(){}function v(){}function g(){}var b={};f(b,c,(function(){return this}));var y=Object.getPrototypeOf,_=y&&y(y(j([])));_&&_!==n&&a.call(_,c)&&(b=_);var w=g.prototype=m.prototype=Object.create(b);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(o,i,s,c){var l=p(e[o],e,i);if("throw"!==l.type){var u=l.arg,f=u.value;return f&&"object"==r(f)&&a.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,s,c)}),(function(e){n("throw",e,s,c)})):t.resolve(f).then((function(e){u.value=e,s(u)}),(function(e){return n("throw",e,s,c)}))}c(l.arg)}var o;i(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(a,a):a()}})}function S(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var s=C(i,n);if(s){if(s===d)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=p(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function C(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var o=p(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,d;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function N(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function j(e){if(e){var t=e[c];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(a.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return r.next=r}}return{next:L}}function L(){return{value:void 0,done:!0}}return v.prototype=g,i(w,"constructor",{value:g,configurable:!0}),i(g,"constructor",{value:v,configurable:!0}),v.displayName=f(g,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,f(e,u,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},x(k.prototype),f(k.prototype,l,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,o,a){void 0===a&&(a=Promise);var i=new k(h(e,n,r,o),a);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(w),f(w,u,"Generator"),f(w,c,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=j,N.prototype={constructor:N,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!e)for(var t in this)"t"===t.charAt(0)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var s=a.call(o,"catchLoc"),c=a.call(o,"finallyLoc");if(s&&c){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:j(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},18698:e=>{function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},64687:(e,t,n)=>{var r=n(17061)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},30907:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:()=>r})},83878:(e,t,n)=>{"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:()=>r})},97326:(e,t,n)=>{"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:()=>r})},15861:(e,t,n)=>{"use strict";function r(e,t,n,r,o,a,i){try{var s=e[a](i),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function s(e){r(i,o,a,s,c,"next",e)}function c(e){r(i,o,a,s,c,"throw",e)}s(void 0)}))}}n.d(t,{Z:()=>o})},15671:(e,t,n)=>{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:()=>r})},43144:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(49142);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(0,r.Z)(o.key),o)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}},4942:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(49142);function o(e,t,n){return(t=(0,r.Z)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},61120:(e,t,n)=>{"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:()=>r})},60136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(89611);function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,r.Z)(e,t)}},59199:(e,t,n)=>{"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:()=>r})},25267:(e,t,n)=>{"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:()=>r})},36459:(e,t,n)=>{"use strict";function r(e){if(null==e)throw new TypeError("Cannot destructure "+e)}n.d(t,{Z:()=>r})},44925:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.d(t,{Z:()=>r})},82963:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(71002),o=n(97326);function a(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,o.Z)(e)}},89611:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:()=>r})},29439:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(83878),o=n(40181),a=n(25267);function i(e,t){return(0,r.Z)(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return s}}(e,t)||(0,o.Z)(e,t)||(0,a.Z)()}},84506:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(83878),o=n(59199),a=n(40181),i=n(25267);function s(e){return(0,r.Z)(e)||(0,o.Z)(e)||(0,a.Z)(e)||(0,i.Z)()}},93433:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(30907),o=n(59199),a=n(40181);function i(e){return function(e){if(Array.isArray(e))return(0,r.Z)(e)}(e)||(0,o.Z)(e)||(0,a.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},49142:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(71002);function o(e){var t=function(e,t){if("object"!==(0,r.Z)(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t);if("object"!==(0,r.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"===(0,r.Z)(t)?t:String(t)}},71002:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:()=>r})},40181:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(30907);function o(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},72407:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(61120),o=n(89611);function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function i(e,t,n){return i=a()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&(0,o.Z)(a,n.prototype),a},i.apply(null,arguments)}function s(e){var t="function"==typeof Map?new Map:void 0;return s=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,a)}function a(){return i(e,arguments,(0,r.Z)(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),(0,o.Z)(a,e)},s(e)}},73152:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r={};try{r.EventTarget=(new EventTarget).constructor}catch(e){!function(e,t){var n=e.create,o=e.defineProperty,a=i.prototype;function i(){t.set(this,n(null))}function s(e,t,n){o(e,t,{configurable:!0,writable:!0,value:n})}function c(e){var t=e.options;return t&&t.once&&e.target.removeEventListener(this.type,e.listener),"function"==typeof e.listener?e.listener.call(e.target,this):e.listener.handleEvent(this),this._stopImmediatePropagationFlag}s(a,"addEventListener",(function(e,n,r){for(var o=t.get(this),a=o[e]||(o[e]=[]),i=0,s=a.length;i<s;i++)if(a[i].listener===n)return;a.push({target:this,listener:n,options:r})})),s(a,"dispatchEvent",(function(e){var n=t.get(this)[e.type];return n&&(s(e,"target",this),s(e,"currentTarget",this),n.slice(0).some(c,e),delete e.currentTarget,delete e.target),!0})),s(a,"removeEventListener",(function(e,n){for(var r=t.get(this),o=r[e]||(r[e]=[]),a=0,i=o.length;a<i;a++)if(o[a].listener===n)return void o.splice(a,1)})),r.EventTarget=i}(Object,new WeakMap)}const o=r.EventTarget}}]);
+//# sourceMappingURL=2724.e4840c73281069ba54ab.js.map \ No newline at end of file
diff --git a/priv/static/static/js/9169.335214f6ab57538eae0b.js.LICENSE.txt b/priv/static/static/js/2724.e4840c73281069ba54ab.js.LICENSE.txt
index b7325e5fc..30288d49d 100644
--- a/priv/static/static/js/9169.335214f6ab57538eae0b.js.LICENSE.txt
+++ b/priv/static/static/js/2724.e4840c73281069ba54ab.js.LICENSE.txt
@@ -33,12 +33,6 @@
/*! (c) Andrea Giammarchi - ISC */
-/*! https://mths.be/punycode v1.3.2 by @mathias */
-
/*! js-cookie v3.0.1 | MIT */
-/*! lozad.js - v1.16.0 - 2020-09-06
-* https://github.com/ApoorvSaxena/lozad.js
-* Copyright (c) 2020 Apoorv Saxena; Licensed MIT */
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
diff --git a/priv/static/static/js/2724.e4840c73281069ba54ab.js.map b/priv/static/static/js/2724.e4840c73281069ba54ab.js.map
new file mode 100644
index 000000000..19607859b
--- /dev/null
+++ b/priv/static/static/js/2724.e4840c73281069ba54ab.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/2724.e4840c73281069ba54ab.js","mappings":"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","sources":["webpack://pleroma_fe/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://pleroma_fe/./node_modules/@fortawesome/free-regular-svg-icons/index.mjs","webpack://pleroma_fe/./node_modules/@fortawesome/free-solid-svg-icons/index.mjs","webpack://pleroma_fe/./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack://pleroma_fe/./node_modules/pointer-tracker/dist/PointerTracker.mjs","webpack://pleroma_fe/./node_modules/@kazvmoe-infra/pinch-zoom-element/dist/pinch-zoom.es.js","webpack://pleroma_fe/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vuelidate/core/dist/index.esm.js","webpack://pleroma_fe/./node_modules/@vuelidate/validators/dist/index.esm.js","webpack://pleroma_fe/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://pleroma_fe/./node_modules/chromatism/dist/chromatism.cjs.js","webpack://pleroma_fe/./node_modules/click-outside-vue3/dist/v-click-outside.umd.js","webpack://pleroma_fe/./node_modules/custom-event-polyfill/polyfill.js","webpack://pleroma_fe/./node_modules/escape-html/index.js","webpack://pleroma_fe/./node_modules/iso-639-1/src/data.js","webpack://pleroma_fe/./node_modules/iso-639-1/src/index.js","webpack://pleroma_fe/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://pleroma_fe/./node_modules/localforage/dist/localforage.js","webpack://pleroma_fe/./node_modules/lodash.merge/index.js","webpack://pleroma_fe/./node_modules/lodash/_DataView.js","webpack://pleroma_fe/./node_modules/lodash/_Hash.js","webpack://pleroma_fe/./node_modules/lodash/_ListCache.js","webpack://pleroma_fe/./node_modules/lodash/_Map.js","webpack://pleroma_fe/./node_modules/lodash/_MapCache.js","webpack://pleroma_fe/./node_modules/lodash/_Promise.js","webpack://pleroma_fe/./node_modules/lodash/_Set.js","webpack://pleroma_fe/./node_modules/lodash/_SetCache.js","webpack://pleroma_fe/./node_modules/lodash/_Stack.js","webpack://pleroma_fe/./node_modules/lodash/_Symbol.js","webpack://pleroma_fe/./node_modules/lodash/_Uint8Array.js","webpack://pleroma_fe/./node_modules/lodash/_WeakMap.js","webpack://pleroma_fe/./node_modules/lodash/_apply.js","webpack://pleroma_fe/./node_modules/lodash/_arrayAggregator.js","webpack://pleroma_fe/./node_modules/lodash/_arrayEach.js","webpack://pleroma_fe/./node_modules/lodash/_arrayFilter.js","webpack://pleroma_fe/./node_modules/lodash/_arrayIncludes.js","webpack://pleroma_fe/./node_modules/lodash/_arrayIncludesWith.js","webpack://pleroma_fe/./node_modules/lodash/_arrayLikeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_arrayMap.js","webpack://pleroma_fe/./node_modules/lodash/_arrayPush.js","webpack://pleroma_fe/./node_modules/lodash/_arrayReduce.js","webpack://pleroma_fe/./node_modules/lodash/_arrayShuffle.js","webpack://pleroma_fe/./node_modules/lodash/_arraySome.js","webpack://pleroma_fe/./node_modules/lodash/_asciiToArray.js","webpack://pleroma_fe/./node_modules/lodash/_asciiWords.js","webpack://pleroma_fe/./node_modules/lodash/_assignMergeValue.js","webpack://pleroma_fe/./node_modules/lodash/_assignValue.js","webpack://pleroma_fe/./node_modules/lodash/_assocIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseAggregator.js","webpack://pleroma_fe/./node_modules/lodash/_baseAssign.js","webpack://pleroma_fe/./node_modules/lodash/_baseAssignIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseAssignValue.js","webpack://pleroma_fe/./node_modules/lodash/_baseClamp.js","webpack://pleroma_fe/./node_modules/lodash/_baseClone.js","webpack://pleroma_fe/./node_modules/lodash/_baseCreate.js","webpack://pleroma_fe/./node_modules/lodash/_baseEach.js","webpack://pleroma_fe/./node_modules/lodash/_baseExtremum.js","webpack://pleroma_fe/./node_modules/lodash/_baseFilter.js","webpack://pleroma_fe/./node_modules/lodash/_baseFindIndex.js","webpack://pleroma_fe/./node_modules/lodash/_baseFlatten.js","webpack://pleroma_fe/./node_modules/lodash/_baseFor.js","webpack://pleroma_fe/./node_modules/lodash/_baseForOwn.js","webpack://pleroma_fe/./node_modules/lodash/_baseGet.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetTag.js","webpack://pleroma_fe/./node_modules/lodash/_baseGt.js","webpack://pleroma_fe/./node_modules/lodash/_baseHasIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsArguments.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqual.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqualDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsMap.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsMatch.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNaN.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNative.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsSet.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/_baseIteratee.js","webpack://pleroma_fe/./node_modules/lodash/_baseKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseKeysIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseLt.js","webpack://pleroma_fe/./node_modules/lodash/_baseMap.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatches.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatchesProperty.js","webpack://pleroma_fe/./node_modules/lodash/_baseMerge.js","webpack://pleroma_fe/./node_modules/lodash/_baseMergeDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseOrderBy.js","webpack://pleroma_fe/./node_modules/lodash/_basePickBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseProperty.js","webpack://pleroma_fe/./node_modules/lodash/_basePropertyDeep.js","webpack://pleroma_fe/./node_modules/lodash/_basePropertyOf.js","webpack://pleroma_fe/./node_modules/lodash/_basePullAt.js","webpack://pleroma_fe/./node_modules/lodash/_baseRandom.js","webpack://pleroma_fe/./node_modules/lodash/_baseReduce.js","webpack://pleroma_fe/./node_modules/lodash/_baseRest.js","webpack://pleroma_fe/./node_modules/lodash/_baseSet.js","webpack://pleroma_fe/./node_modules/lodash/_baseSetToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseShuffle.js","webpack://pleroma_fe/./node_modules/lodash/_baseSlice.js","webpack://pleroma_fe/./node_modules/lodash/_baseSortBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseSum.js","webpack://pleroma_fe/./node_modules/lodash/_baseTimes.js","webpack://pleroma_fe/./node_modules/lodash/_baseToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseTrim.js","webpack://pleroma_fe/./node_modules/lodash/_baseUnary.js","webpack://pleroma_fe/./node_modules/lodash/_baseUniq.js","webpack://pleroma_fe/./node_modules/lodash/_baseUnset.js","webpack://pleroma_fe/./node_modules/lodash/_baseValues.js","webpack://pleroma_fe/./node_modules/lodash/_cacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_castFunction.js","webpack://pleroma_fe/./node_modules/lodash/_castPath.js","webpack://pleroma_fe/./node_modules/lodash/_castSlice.js","webpack://pleroma_fe/./node_modules/lodash/_charsEndIndex.js","webpack://pleroma_fe/./node_modules/lodash/_charsStartIndex.js","webpack://pleroma_fe/./node_modules/lodash/_cloneArrayBuffer.js","webpack://pleroma_fe/./node_modules/lodash/_cloneBuffer.js","webpack://pleroma_fe/./node_modules/lodash/_cloneDataView.js","webpack://pleroma_fe/./node_modules/lodash/_cloneRegExp.js","webpack://pleroma_fe/./node_modules/lodash/_cloneSymbol.js","webpack://pleroma_fe/./node_modules/lodash/_cloneTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/_compareAscending.js","webpack://pleroma_fe/./node_modules/lodash/_compareMultiple.js","webpack://pleroma_fe/./node_modules/lodash/_copyArray.js","webpack://pleroma_fe/./node_modules/lodash/_copyObject.js","webpack://pleroma_fe/./node_modules/lodash/_copySymbols.js","webpack://pleroma_fe/./node_modules/lodash/_copySymbolsIn.js","webpack://pleroma_fe/./node_modules/lodash/_coreJsData.js","webpack://pleroma_fe/./node_modules/lodash/_createAggregator.js","webpack://pleroma_fe/./node_modules/lodash/_createAssigner.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseEach.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseFor.js","webpack://pleroma_fe/./node_modules/lodash/_createCaseFirst.js","webpack://pleroma_fe/./node_modules/lodash/_createCompounder.js","webpack://pleroma_fe/./node_modules/lodash/_createFind.js","webpack://pleroma_fe/./node_modules/lodash/_createSet.js","webpack://pleroma_fe/./node_modules/lodash/_deburrLetter.js","webpack://pleroma_fe/./node_modules/lodash/_defineProperty.js","webpack://pleroma_fe/./node_modules/lodash/_equalArrays.js","webpack://pleroma_fe/./node_modules/lodash/_equalByTag.js","webpack://pleroma_fe/./node_modules/lodash/_equalObjects.js","webpack://pleroma_fe/./node_modules/lodash/_freeGlobal.js","webpack://pleroma_fe/./node_modules/lodash/_getAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_getAllKeysIn.js","webpack://pleroma_fe/./node_modules/lodash/_getMapData.js","webpack://pleroma_fe/./node_modules/lodash/_getMatchData.js","webpack://pleroma_fe/./node_modules/lodash/_getNative.js","webpack://pleroma_fe/./node_modules/lodash/_getPrototype.js","webpack://pleroma_fe/./node_modules/lodash/_getRawTag.js","webpack://pleroma_fe/./node_modules/lodash/_getSymbols.js","webpack://pleroma_fe/./node_modules/lodash/_getSymbolsIn.js","webpack://pleroma_fe/./node_modules/lodash/_getTag.js","webpack://pleroma_fe/./node_modules/lodash/_getValue.js","webpack://pleroma_fe/./node_modules/lodash/_hasPath.js","webpack://pleroma_fe/./node_modules/lodash/_hasUnicode.js","webpack://pleroma_fe/./node_modules/lodash/_hasUnicodeWord.js","webpack://pleroma_fe/./node_modules/lodash/_hashClear.js","webpack://pleroma_fe/./node_modules/lodash/_hashDelete.js","webpack://pleroma_fe/./node_modules/lodash/_hashGet.js","webpack://pleroma_fe/./node_modules/lodash/_hashHas.js","webpack://pleroma_fe/./node_modules/lodash/_hashSet.js","webpack://pleroma_fe/./node_modules/lodash/_initCloneArray.js","webpack://pleroma_fe/./node_modules/lodash/_initCloneByTag.js","webpack://pleroma_fe/./node_modules/lodash/_initCloneObject.js","webpack://pleroma_fe/./node_modules/lodash/_isFlattenable.js","webpack://pleroma_fe/./node_modules/lodash/_isIndex.js","webpack://pleroma_fe/./node_modules/lodash/_isIterateeCall.js","webpack://pleroma_fe/./node_modules/lodash/_isKey.js","webpack://pleroma_fe/./node_modules/lodash/_isKeyable.js","webpack://pleroma_fe/./node_modules/lodash/_isMasked.js","webpack://pleroma_fe/./node_modules/lodash/_isPrototype.js","webpack://pleroma_fe/./node_modules/lodash/_isStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapToArray.js","webpack://pleroma_fe/./node_modules/lodash/_matchesStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_memoizeCapped.js","webpack://pleroma_fe/./node_modules/lodash/_nativeCreate.js","webpack://pleroma_fe/./node_modules/lodash/_nativeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_nativeKeysIn.js","webpack://pleroma_fe/./node_modules/lodash/_nodeUtil.js","webpack://pleroma_fe/./node_modules/lodash/_objectToString.js","webpack://pleroma_fe/./node_modules/lodash/_overArg.js","webpack://pleroma_fe/./node_modules/lodash/_overRest.js","webpack://pleroma_fe/./node_modules/lodash/_parent.js","webpack://pleroma_fe/./node_modules/lodash/_root.js","webpack://pleroma_fe/./node_modules/lodash/_safeGet.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheAdd.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_setToArray.js","webpack://pleroma_fe/./node_modules/lodash/_setToString.js","webpack://pleroma_fe/./node_modules/lodash/_shortOut.js","webpack://pleroma_fe/./node_modules/lodash/_shuffleSelf.js","webpack://pleroma_fe/./node_modules/lodash/_stackClear.js","webpack://pleroma_fe/./node_modules/lodash/_stackDelete.js","webpack://pleroma_fe/./node_modules/lodash/_stackGet.js","webpack://pleroma_fe/./node_modules/lodash/_stackHas.js","webpack://pleroma_fe/./node_modules/lodash/_stackSet.js","webpack://pleroma_fe/./node_modules/lodash/_strictIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_stringToArray.js","webpack://pleroma_fe/./node_modules/lodash/_stringToPath.js","webpack://pleroma_fe/./node_modules/lodash/_toKey.js","webpack://pleroma_fe/./node_modules/lodash/_toSource.js","webpack://pleroma_fe/./node_modules/lodash/_trimmedEndIndex.js","webpack://pleroma_fe/./node_modules/lodash/_unescapeHtmlChar.js","webpack://pleroma_fe/./node_modules/lodash/_unicodeToArray.js","webpack://pleroma_fe/./node_modules/lodash/_unicodeWords.js","webpack://pleroma_fe/./node_modules/lodash/camelCase.js","webpack://pleroma_fe/./node_modules/lodash/capitalize.js","webpack://pleroma_fe/./node_modules/lodash/chunk.js","webpack://pleroma_fe/./node_modules/lodash/clamp.js","webpack://pleroma_fe/./node_modules/lodash/clone.js","webpack://pleroma_fe/./node_modules/lodash/cloneDeep.js","webpack://pleroma_fe/./node_modules/lodash/compact.js","webpack://pleroma_fe/./node_modules/lodash/concat.js","webpack://pleroma_fe/./node_modules/lodash/constant.js","webpack://pleroma_fe/./node_modules/lodash/debounce.js","webpack://pleroma_fe/./node_modules/lodash/deburr.js","webpack://pleroma_fe/./node_modules/lodash/each.js","webpack://pleroma_fe/./node_modules/lodash/eq.js","webpack://pleroma_fe/./node_modules/lodash/filter.js","webpack://pleroma_fe/./node_modules/lodash/find.js","webpack://pleroma_fe/./node_modules/lodash/findIndex.js","webpack://pleroma_fe/./node_modules/lodash/findLastIndex.js","webpack://pleroma_fe/./node_modules/lodash/first.js","webpack://pleroma_fe/./node_modules/lodash/flatten.js","webpack://pleroma_fe/./node_modules/lodash/flattenDeep.js","webpack://pleroma_fe/./node_modules/lodash/forEach.js","webpack://pleroma_fe/./node_modules/lodash/get.js","webpack://pleroma_fe/./node_modules/lodash/groupBy.js","webpack://pleroma_fe/./node_modules/lodash/hasIn.js","webpack://pleroma_fe/./node_modules/lodash/head.js","webpack://pleroma_fe/./node_modules/lodash/identity.js","webpack://pleroma_fe/./node_modules/lodash/includes.js","webpack://pleroma_fe/./node_modules/lodash/isArguments.js","webpack://pleroma_fe/./node_modules/lodash/isArray.js","webpack://pleroma_fe/./node_modules/lodash/isArrayLike.js","webpack://pleroma_fe/./node_modules/lodash/isArrayLikeObject.js","webpack://pleroma_fe/./node_modules/lodash/isBuffer.js","webpack://pleroma_fe/./node_modules/lodash/isEmpty.js","webpack://pleroma_fe/./node_modules/lodash/isEqual.js","webpack://pleroma_fe/./node_modules/lodash/isFunction.js","webpack://pleroma_fe/./node_modules/lodash/isLength.js","webpack://pleroma_fe/./node_modules/lodash/isMap.js","webpack://pleroma_fe/./node_modules/lodash/isObject.js","webpack://pleroma_fe/./node_modules/lodash/isObjectLike.js","webpack://pleroma_fe/./node_modules/lodash/isPlainObject.js","webpack://pleroma_fe/./node_modules/lodash/isSet.js","webpack://pleroma_fe/./node_modules/lodash/isString.js","webpack://pleroma_fe/./node_modules/lodash/isSymbol.js","webpack://pleroma_fe/./node_modules/lodash/isTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/kebabCase.js","webpack://pleroma_fe/./node_modules/lodash/keyBy.js","webpack://pleroma_fe/./node_modules/lodash/keys.js","webpack://pleroma_fe/./node_modules/lodash/keysIn.js","webpack://pleroma_fe/./node_modules/lodash/last.js","webpack://pleroma_fe/./node_modules/lodash/map.js","webpack://pleroma_fe/./node_modules/lodash/maxBy.js","webpack://pleroma_fe/./node_modules/lodash/memoize.js","webpack://pleroma_fe/./node_modules/lodash/merge.js","webpack://pleroma_fe/./node_modules/lodash/mergeWith.js","webpack://pleroma_fe/./node_modules/lodash/minBy.js","webpack://pleroma_fe/./node_modules/lodash/negate.js","webpack://pleroma_fe/./node_modules/lodash/noop.js","webpack://pleroma_fe/./node_modules/lodash/now.js","webpack://pleroma_fe/./node_modules/lodash/omitBy.js","webpack://pleroma_fe/./node_modules/lodash/orderBy.js","webpack://pleroma_fe/./node_modules/lodash/pickBy.js","webpack://pleroma_fe/./node_modules/lodash/property.js","webpack://pleroma_fe/./node_modules/lodash/reduce.js","webpack://pleroma_fe/./node_modules/lodash/reject.js","webpack://pleroma_fe/./node_modules/lodash/remove.js","webpack://pleroma_fe/./node_modules/lodash/set.js","webpack://pleroma_fe/./node_modules/lodash/shuffle.js","webpack://pleroma_fe/./node_modules/lodash/slice.js","webpack://pleroma_fe/./node_modules/lodash/sortBy.js","webpack://pleroma_fe/./node_modules/lodash/stubArray.js","webpack://pleroma_fe/./node_modules/lodash/stubFalse.js","webpack://pleroma_fe/./node_modules/lodash/sumBy.js","webpack://pleroma_fe/./node_modules/lodash/take.js","webpack://pleroma_fe/./node_modules/lodash/takeRight.js","webpack://pleroma_fe/./node_modules/lodash/throttle.js","webpack://pleroma_fe/./node_modules/lodash/toFinite.js","webpack://pleroma_fe/./node_modules/lodash/toInteger.js","webpack://pleroma_fe/./node_modules/lodash/toNumber.js","webpack://pleroma_fe/./node_modules/lodash/toPlainObject.js","webpack://pleroma_fe/./node_modules/lodash/toString.js","webpack://pleroma_fe/./node_modules/lodash/trim.js","webpack://pleroma_fe/./node_modules/lodash/unescape.js","webpack://pleroma_fe/./node_modules/lodash/uniq.js","webpack://pleroma_fe/./node_modules/lodash/uniqBy.js","webpack://pleroma_fe/./node_modules/lodash/uniqWith.js","webpack://pleroma_fe/./node_modules/lodash/uniqueId.js","webpack://pleroma_fe/./node_modules/lodash/upperFirst.js","webpack://pleroma_fe/./node_modules/lodash/values.js","webpack://pleroma_fe/./node_modules/lodash/words.js","webpack://pleroma_fe/./node_modules/parse-link-header/index.js","webpack://pleroma_fe/./node_modules/phoenix/priv/static/phoenix.esm.js","webpack://pleroma_fe/./node_modules/punycode.js/punycode.es6.js","webpack://pleroma_fe/./node_modules/punycode/punycode.es6.js","webpack://pleroma_fe/./node_modules/querystring/decode.js","webpack://pleroma_fe/./node_modules/querystring/encode.js","webpack://pleroma_fe/./node_modules/querystring/index.js","webpack://pleroma_fe/./node_modules/serviceworker-webpack5-plugin/lib/runtime.js","webpack://pleroma_fe/./node_modules/url/url.js","webpack://pleroma_fe/./node_modules/url/util.js","webpack://pleroma_fe/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://pleroma_fe/./node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","webpack://pleroma_fe/./node_modules/vue-loader/dist/exportHelper.js","webpack://pleroma_fe/./node_modules/vue-router/dist/vue-router.mjs","webpack://pleroma_fe/./node_modules/vue-resize/dist/vue-resize.esm.js","webpack://pleroma_fe/./node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","webpack://pleroma_fe/./node_modules/vue-virtual-scroller/dist/vue-virtual-scroller.esm.js","webpack://pleroma_fe/./node_modules/mitt/dist/mitt.es.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://pleroma_fe/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://pleroma_fe/./node_modules/xtend/immutable.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/regenerator/index.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://pleroma_fe/./node_modules/@ungap/event-target/esm/index.js"],"sourcesContent":["function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n 'solid': 'fass'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n 'fass': 'fa-solid'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i; // TODO: this needs to support fass\n// TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n '900': 'fass'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.2.1\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","var prefix = \"far\";\nvar faTrashCan = {\n prefix: 'far',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M160 400C160 408.8 152.8 416 144 416C135.2 416 128 408.8 128 400V192C128 183.2 135.2 176 144 176C152.8 176 160 183.2 160 192V400zM240 400C240 408.8 232.8 416 224 416C215.2 416 208 408.8 208 400V192C208 183.2 215.2 176 224 176C232.8 176 240 183.2 240 192V400zM320 400C320 408.8 312.8 416 304 416C295.2 416 288 408.8 288 400V192C288 183.2 295.2 176 304 176C312.8 176 320 183.2 320 192V400zM317.5 24.94L354.2 80H424C437.3 80 448 90.75 448 104C448 117.3 437.3 128 424 128H416V432C416 476.2 380.2 512 336 512H112C67.82 512 32 476.2 32 432V128H24C10.75 128 0 117.3 0 104C0 90.75 10.75 80 24 80H93.82L130.5 24.94C140.9 9.357 158.4 0 177.1 0H270.9C289.6 0 307.1 9.358 317.5 24.94H317.5zM151.5 80H296.5L277.5 51.56C276 49.34 273.5 48 270.9 48H177.1C174.5 48 171.1 49.34 170.5 51.56L151.5 80zM80 432C80 449.7 94.33 464 112 464H336C353.7 464 368 449.7 368 432V128H80V432z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faMessage = {\n prefix: 'far',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M447.1 0h-384c-35.25 0-64 28.75-64 63.1v287.1c0 35.25 28.75 63.1 64 63.1h96v83.98c0 9.836 11.02 15.55 19.12 9.7l124.9-93.68h144c35.25 0 64-28.75 64-63.1V63.1C511.1 28.75 483.2 0 447.1 0zM464 352c0 8.75-7.25 16-16 16h-160l-80 60v-60H64c-8.75 0-16-7.25-16-16V64c0-8.75 7.25-16 16-16h384c8.75 0 16 7.25 16 16V352z\"]\n};\nvar faCommentAlt = faMessage;\nvar faFileLines = {\n prefix: 'far',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM96 280C96 293.3 106.8 304 120 304h144C277.3 304 288 293.3 288 280S277.3 256 264 256h-144C106.8 256 96 266.8 96 280zM264 352h-144C106.8 352 96 362.8 96 376s10.75 24 24 24h144c13.25 0 24-10.75 24-24S277.3 352 264 352z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faCalendarDays = {\n prefix: 'far',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 248H128V192H48V248zM48 296V360H128V296H48zM176 296V360H272V296H176zM320 296V360H400V296H320zM400 192H320V248H400V192zM400 408H320V464H384C392.8 464 400 456.8 400 448V408zM272 408H176V464H272V408zM128 408H48V448C48 456.8 55.16 464 64 464H128V408zM272 192H176V248H272V192z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M320 408c0-6.428-.8457-12.66-2.434-18.6C338.2 376.7 352 353.9 352 328c0-6.428-.8457-12.66-2.434-18.6C370.2 296.7 384 273.9 384 248c0-2.705-.1484-5.373-.4414-8H440C479.7 240 512 207.7 512 168S479.7 96 440 96H243.7C227.5 76.51 203.2 64 176 64H126.1C94.02 64 64.47 81.1 49 108.6L17.65 164.5C6.104 185.1 0 208.4 0 231.8v107.9C0 417.1 64.6 480 144 480h104C287.7 480 320 447.7 320 408zM280 304c13.23 0 24 10.78 24 24S293.2 352 280 352H232.1C218.9 352 208 341.2 208 328S218.8 304 232 304H280zM312 224c13.23 0 24 10.78 24 24S325.2 272 312 272h-48c-3.029 0-5.875-.7012-8.545-1.73C260.7 259.9 264 248.4 264 236V224H312zM440 144c13.23 0 24 10.78 24 24S453.2 192 440 192h-176V152c0-2.686-.5566-5.217-.793-7.84C263.5 144.2 263.7 144 264 144H440zM48 339.7V231.8c0-15.25 3.984-30.41 11.52-43.88l31.34-55.78C97.84 119.7 111.4 112 126.1 112H176c22.06 0 40 17.94 40 40v84c0 15.44-12.56 28-28 28S160 251.4 160 236V184C160 170.8 149.3 160 136 160S112 170.8 112 184v52c0 33.23 21.58 61.25 51.36 71.54C161.3 314 160 320.9 160 328c0 5.041 1.166 9.836 2.178 14.66C137.4 354 120 378.1 120 408c0 7.684 1.557 14.94 3.836 21.87C80.56 420.9 48 383.9 48 339.7zM192 432c-13.23 0-24-10.78-24-24S178.8 384 192 384h56c13.23 0 24 10.78 24 24s-10.77 24-24 24H192z\"]\n};\nvar faFaceSmileBeam = {\n prefix: 'far',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFaceGrinStars = {\n prefix: 'far',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M199.8 167.3L237.9 172.3C240.1 172.7 243.5 174.8 244.5 177.8C245.4 180.7 244.6 183.9 242.4 186L214.5 212.5L221.5 250.3C222 253.4 220.8 256.4 218.3 258.2C215.8 260.1 212.5 260.3 209.8 258.8L175.1 240.5L142.2 258.8C139.5 260.3 136.2 260.1 133.7 258.2C131.2 256.4 129.1 253.4 130.5 250.3L137.5 212.5L109.6 186C107.4 183.9 106.6 180.7 107.5 177.8C108.5 174.8 111 172.7 114.1 172.3L152.2 167.3L168.8 132.6C170.1 129.8 172.9 128 175.1 128C179.1 128 181.9 129.8 183.2 132.6L199.8 167.3zM359.8 167.3L397.9 172.3C400.1 172.7 403.5 174.8 404.5 177.8C405.4 180.7 404.6 183.9 402.4 186L374.5 212.5L381.5 250.3C382 253.4 380.8 256.4 378.3 258.2C375.8 260.1 372.5 260.3 369.8 258.8L336 240.5L302.2 258.8C299.5 260.3 296.2 260.1 293.7 258.2C291.2 256.4 289.1 253.4 290.5 250.3L297.5 212.5L269.6 186C267.4 183.9 266.6 180.7 267.5 177.8C268.5 174.8 271 172.7 274.1 172.3L312.2 167.3L328.8 132.6C330.1 129.8 332.9 128 336 128C339.1 128 341.9 129.8 343.2 132.6L359.8 167.3zM349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M272 288h-64C163.8 288 128 323.8 128 368C128 376.8 135.2 384 144 384h192c8.836 0 16-7.164 16-16C352 323.8 316.2 288 272 288zM240 256c35.35 0 64-28.65 64-64s-28.65-64-64-64c-35.34 0-64 28.65-64 64S204.7 256 240 256zM496 320H480v96h16c8.836 0 16-7.164 16-16v-64C512 327.2 504.8 320 496 320zM496 64H480v96h16C504.8 160 512 152.8 512 144v-64C512 71.16 504.8 64 496 64zM496 192H480v96h16C504.8 288 512 280.8 512 272v-64C512 199.2 504.8 192 496 192zM384 0H96C60.65 0 32 28.65 32 64v384c0 35.35 28.65 64 64 64h288c35.35 0 64-28.65 64-64V64C448 28.65 419.3 0 384 0zM400 448c0 8.836-7.164 16-16 16H96c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h288c8.836 0 16 7.162 16 16V448z\"]\n};\nvar faContactBook = faAddressBook;\nvar faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 0C322.9 0 416 78.8 416 176C416 273.2 322.9 352 208 352C189.3 352 171.2 349.7 153.9 345.8C123.3 364.8 79.13 384 24.95 384C14.97 384 5.93 378.1 2.018 368.9C-1.896 359.7-.0074 349.1 6.739 341.9C7.26 341.5 29.38 317.4 45.73 285.9C17.18 255.8 0 217.6 0 176C0 78.8 93.13 0 208 0zM164.6 298.1C179.2 302.3 193.8 304 208 304C296.2 304 368 246.6 368 176C368 105.4 296.2 48 208 48C119.8 48 48 105.4 48 176C48 211.2 65.71 237.2 80.57 252.9L104.1 277.8L88.31 308.1C84.74 314.1 80.73 321.9 76.55 328.5C94.26 323.4 111.7 315.5 128.7 304.1L145.4 294.6L164.6 298.1zM441.6 128.2C552 132.4 640 209.5 640 304C640 345.6 622.8 383.8 594.3 413.9C610.6 445.4 632.7 469.5 633.3 469.9C640 477.1 641.9 487.7 637.1 496.9C634.1 506.1 625 512 615 512C560.9 512 516.7 492.8 486.1 473.8C468.8 477.7 450.7 480 432 480C350 480 279.1 439.8 245.2 381.5C262.5 379.2 279.1 375.3 294.9 369.9C322.9 407.1 373.9 432 432 432C446.2 432 460.8 430.3 475.4 426.1L494.6 422.6L511.3 432.1C528.3 443.5 545.7 451.4 563.5 456.5C559.3 449.9 555.3 442.1 551.7 436.1L535.9 405.8L559.4 380.9C574.3 365.3 592 339.2 592 304C592 237.7 528.7 183.1 447.1 176.6L448 176C448 159.5 445.8 143.5 441.6 128.2H441.6z\"]\n};\nvar faPaste = {\n prefix: 'far',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M80 96v16c0 17.7 14.3 32 32 32h60.8c16.6-28.7 47.6-48 83.2-48h62c-7.1-27.6-32.2-48-62-48H215.4C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48H64C28.7 48 0 76.7 0 112V384c0 35.3 28.7 64 64 64h96V400H64c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H80zm64-40a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM256 464c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H384v48c0 17.7 14.3 32 32 32h48V448c0 8.8-7.2 16-16 16H256zm192 48c35.3 0 64-28.7 64-64V227.9c0-12.7-5.1-24.9-14.1-33.9l-51.9-51.9c-9-9-21.2-14.1-33.9-14.1H256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448z\"]\n};\nvar faFileClipboard = faPaste;\nvar faFaceGrinTongueSquint = {\n prefix: 'far',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1V157.1zM378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V392.7C135.1 375.1 116.9 351.3 105.2 323.5C100.2 311.7 112.2 301 124.5 304.8C164.1 316.9 208.9 323.8 256.3 323.8C303.7 323.8 348.4 316.9 388.1 304.8C400.4 301 412.4 311.7 407.4 323.5C395.6 351.5 376.3 375.5 352 393.1V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 255.1C464 141.1 370.9 47.1 256 47.1L256 48zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faFaceFlushed = {\n prefix: 'far',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M320 336C333.3 336 344 346.7 344 360C344 373.3 333.3 384 320 384H192C178.7 384 168 373.3 168 360C168 346.7 178.7 336 192 336H320zM136.4 224C136.4 210.7 147.1 200 160.4 200C173.6 200 184.4 210.7 184.4 224C184.4 237.3 173.6 248 160.4 248C147.1 248 136.4 237.3 136.4 224zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 197.5 186.5 176 160 176C133.5 176 112 197.5 112 224C112 250.5 133.5 272 160 272zM376.4 224C376.4 237.3 365.6 248 352.4 248C339.1 248 328.4 237.3 328.4 224C328.4 210.7 339.1 200 352.4 200C365.6 200 376.4 210.7 376.4 224zM432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224zM352 176C325.5 176 304 197.5 304 224C304 250.5 325.5 272 352 272C378.5 272 400 250.5 400 224C400 197.5 378.5 176 352 176zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faSquareCaretRight = {\n prefix: 'far',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M200.3 142.4C193.3 135.9 183.1 134.2 174.4 138C165.7 141.8 160 150.5 160 159.1v192C160 361.5 165.7 370.2 174.4 374c8.719 3.812 18.91 2.094 25.91-4.375l104-96C309.2 269.1 312 262.7 312 256s-2.812-13.09-7.719-17.62L200.3 142.4zM384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faSquareMinus = {\n prefix: 'far',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M312 232C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H312zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M306.7 325.1L162.4 380.6C142.1 388.1 123.9 369 131.4 349.6L186.9 205.3C190.1 196.8 196.8 190.1 205.3 186.9L349.6 131.4C369 123.9 388.1 142.1 380.6 162.4L325.1 306.7C321.9 315.2 315.2 321.9 306.7 325.1V325.1zM255.1 224C238.3 224 223.1 238.3 223.1 256C223.1 273.7 238.3 288 255.1 288C273.7 288 288 273.7 288 256C288 238.3 273.7 224 255.1 224V224zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'far',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M320 192H128C118.5 192 109.8 197.7 105.1 206.4C102.2 215.1 103.9 225.3 110.4 232.3l96 104C210.9 341.2 217.3 344 224 344s13.09-2.812 17.62-7.719l96-104c6.469-7 8.188-17.19 4.375-25.91C338.2 197.7 329.5 192 320 192zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faFaceKissBeam = {\n prefix: 'far',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M304.7 297.7C308.9 302.8 312 309.1 312 316C312 322.9 308.9 329.2 304.7 334.3C300.4 339.5 294.5 344 287.9 347.7C285.2 349.3 282.3 350.7 279.2 352C282.3 353.3 285.2 354.7 287.9 356.3C294.5 359.1 300.4 364.5 304.7 369.7C308.9 374.8 312 381.1 312 388C312 394.9 308.9 401.2 304.7 406.3C300.4 411.5 294.5 416 287.9 419.7C274.7 427.1 257.4 432 240 432C236.4 432 233.2 429.5 232.3 426C231.3 422.5 232.9 418.8 236.1 417L236.1 417L236.3 416.9C236.5 416.8 236.8 416.6 237.2 416.3C238 415.9 239.2 415.1 240.6 414.2C243.4 412.4 247.2 409.7 250.8 406.6C254.6 403.5 258 400 260.5 396.6C262.1 393 264 390.2 264 388C264 385.8 262.1 382.1 260.5 379.4C258 375.1 254.6 372.5 250.8 369.4C247.2 366.3 243.4 363.6 240.6 361.8C239.2 360.9 238 360.1 237.2 359.7C236.8 359.4 236.5 359.2 236.3 359.1L236.1 358.1L236.1 358.1C233.6 357.6 232 354.9 232 352C232 349.1 233.6 346.4 236.1 345L236.1 345L236.3 344.9C236.5 344.8 236.8 344.6 237.2 344.3C238 343.9 239.2 343.1 240.6 342.2C243.4 340.4 247.2 337.7 250.8 334.6C254.6 331.5 258 328.1 260.5 324.6C262.1 321 264 318.2 264 316C264 313.8 262.1 310.1 260.5 307.4C258 303.1 254.6 300.5 250.8 297.4C247.2 294.3 243.4 291.6 240.6 289.8C239.2 288.9 238 288.1 237.2 287.7C236.8 287.4 236.5 287.2 236.3 287.1L236.1 286.1L236.1 286.1C232.9 285.2 231.3 281.5 232.3 277.1C233.2 274.5 236.4 272 240 272C257.4 272 274.7 276.9 287.9 284.3C294.5 287.1 300.4 292.5 304.7 297.7L304.7 297.7zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM192 0C90.02 .3203 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.8 289.2 .0039 192 0zM288.4 260.1c-15.66 17.85-35.04 46.3-49.05 75.89h-94.61c-14.01-29.59-33.39-58.04-49.04-75.88C75.24 236.8 64 206.1 64 175.1C64 113.3 112.1 48.25 191.1 48C262.6 48 320 105.4 320 175.1C320 206.1 308.8 236.8 288.4 260.1zM176 80C131.9 80 96 115.9 96 160c0 8.844 7.156 16 16 16S128 168.8 128 160c0-26.47 21.53-48 48-48c8.844 0 16-7.148 16-15.99S184.8 80 176 80z\"]\n};\nvar faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24V64 350.5 400v88c0 13.3 10.7 24 24 24s24-10.7 24-24V388l80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52V24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8V334.7l-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5v-237z\"]\n};\nvar faSquareCheck = {\n prefix: 'far',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M211.8 339.8C200.9 350.7 183.1 350.7 172.2 339.8L108.2 275.8C97.27 264.9 97.27 247.1 108.2 236.2C119.1 225.3 136.9 225.3 147.8 236.2L192 280.4L300.2 172.2C311.1 161.3 328.9 161.3 339.8 172.2C350.7 183.1 350.7 200.9 339.8 211.8L211.8 339.8zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faCircleDot = {\n prefix: 'far',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M160 256C160 202.1 202.1 160 256 160C309 160 352 202.1 352 256C352 309 309 352 256 352C202.1 352 160 309 160 256zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faFaceDizzy = {\n prefix: 'far',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM103 135C112.4 125.7 127.6 125.7 136.1 135L160 158.1L183 135C192.4 125.7 207.6 125.7 216.1 135C226.3 144.4 226.3 159.6 216.1 168.1L193.9 192L216.1 215C226.3 224.4 226.3 239.6 216.1 248.1C207.6 258.3 192.4 258.3 183 248.1L160 225.9L136.1 248.1C127.6 258.3 112.4 258.3 103 248.1C93.66 239.6 93.66 224.4 103 215L126.1 192L103 168.1C93.66 159.6 93.66 144.4 103 135V135zM295 135C304.4 125.7 319.6 125.7 328.1 135L352 158.1L375 135C384.4 125.7 399.6 125.7 408.1 135C418.3 144.4 418.3 159.6 408.1 168.1L385.9 192L408.1 215C418.3 224.4 418.3 239.6 408.1 248.1C399.6 258.3 384.4 258.3 375 248.1L352 225.9L328.1 248.1C319.6 258.3 304.4 258.3 295 248.1C285.7 239.6 285.7 224.4 295 215L318.1 192L295 168.1C285.7 159.6 285.7 144.4 295 135V135zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M177.1 228.6L207.9 320h96.5l29.62-91.38L256 172.1L177.1 228.6zM255.1 0C114.6 0 .0001 114.6 .0001 256S114.6 512 256 512s255.1-114.6 255.1-255.1S397.4 0 255.1 0zM435.2 361.1l-103.9-1.578l-30.67 99.52C286.2 462.2 271.3 464 256 464s-30.19-1.773-44.56-4.93L180.8 359.6L76.83 361.1c-14.93-25.35-24.79-54.01-27.8-84.72L134.3 216.4L100.7 118.1c19.85-22.34 44.32-40.45 72.04-52.62L256 128l83.29-62.47c27.72 12.17 52.19 30.27 72.04 52.62L377.7 216.4l85.23 59.97C459.1 307.1 450.1 335.8 435.2 361.1z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faPenToSquare = {\n prefix: 'far',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M373.1 24.97C401.2-3.147 446.8-3.147 474.9 24.97L487 37.09C515.1 65.21 515.1 110.8 487 138.9L289.8 336.2C281.1 344.8 270.4 351.1 258.6 354.5L158.6 383.1C150.2 385.5 141.2 383.1 135 376.1C128.9 370.8 126.5 361.8 128.9 353.4L157.5 253.4C160.9 241.6 167.2 230.9 175.8 222.2L373.1 24.97zM440.1 58.91C431.6 49.54 416.4 49.54 407 58.91L377.9 88L424 134.1L453.1 104.1C462.5 95.6 462.5 80.4 453.1 71.03L440.1 58.91zM203.7 266.6L186.9 325.1L245.4 308.3C249.4 307.2 252.9 305.1 255.8 302.2L390.1 168L344 121.9L209.8 256.2C206.9 259.1 204.8 262.6 203.7 266.6zM200 64C213.3 64 224 74.75 224 88C224 101.3 213.3 112 200 112H88C65.91 112 48 129.9 48 152V424C48 446.1 65.91 464 88 464H360C382.1 464 400 446.1 400 424V312C400 298.7 410.7 288 424 288C437.3 288 448 298.7 448 312V424C448 472.6 408.6 512 360 512H88C39.4 512 0 472.6 0 424V152C0 103.4 39.4 64 88 64H200z\"]\n};\nvar faEdit = faPenToSquare;\nvar faHourglassHalf = {\n prefix: 'far',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.75 10.75 0 24 0H360C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24V24zM99.78 384H284.2C281 379.6 277.4 375.4 273.5 371.5L192 289.9L110.5 371.5C106.6 375.4 102.1 379.6 99.78 384H99.78zM284.2 128C296.1 110.4 304 89.03 304 66.98V48H80V66.98C80 89.03 87 110.4 99.78 128H284.2z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM189.8 123.5L235.8 159.5C258.3 139.9 287.8 128 320 128C390.7 128 448 185.3 448 256C448 277.2 442.9 297.1 433.8 314.7L487.6 356.9C521.1 322.8 545.9 283.1 558.6 256C544.1 225.1 518.4 183.5 479.9 147.7C438.8 109.6 385.2 79.1 320 79.1C269.5 79.1 225.1 97.73 189.8 123.5L189.8 123.5zM394.9 284.2C398.2 275.4 400 265.9 400 255.1C400 211.8 364.2 175.1 320 175.1C319.3 175.1 318.7 176 317.1 176C319.3 181.1 320 186.5 320 191.1C320 202.2 317.6 211.8 313.4 220.3L394.9 284.2zM404.3 414.5L446.2 447.5C409.9 467.1 367.8 480 320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L120.8 191.2C102.1 214.5 89.76 237.6 81.45 255.1C95.02 286 121.6 328.5 160.1 364.3C201.2 402.4 254.8 432 320 432C350.7 432 378.8 425.4 404.3 414.5H404.3zM192 255.1C192 253.1 192.1 250.3 192.3 247.5L248.4 291.7C258.9 312.8 278.5 328.6 302 333.1L358.2 378.2C346.1 381.1 333.3 384 319.1 384C249.3 384 191.1 326.7 191.1 255.1H192z\"]\n};\nvar faHand = {\n prefix: 'far',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M408 80c-3.994 0-7.91 .3262-11.73 .9551c-9.586-28.51-36.57-49.11-68.27-49.11c-6.457 0-12.72 .8555-18.68 2.457C296.6 13.73 273.9 0 248 0C222.1 0 199.3 13.79 186.6 34.44C180.7 32.85 174.5 32 168.1 32C128.4 32 96.01 64.3 96.01 104v121.6C90.77 224.6 85.41 224 80.01 224c-.0026 0 .0026 0 0 0C36.43 224 0 259.2 0 304.1c0 20.29 7.558 39.52 21.46 54.45l81.25 87.24C141.9 487.9 197.4 512 254.9 512h33.08C393.9 512 480 425.9 480 320V152C480 112.3 447.7 80 408 80zM432 320c0 79.41-64.59 144-143.1 144H254.9c-44.41 0-86.83-18.46-117.1-50.96l-79.76-85.63c-6.202-6.659-9.406-15.4-9.406-23.1c0-22.16 18.53-31.4 31.35-31.4c8.56 0 17.1 3.416 23.42 10.18l26.72 28.69C131.8 312.7 133.9 313.4 135.9 313.4c4.106 0 8.064-3.172 8.064-8.016V104c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152C192 264.8 199.2 272 208 272s15.1-7.163 15.1-15.1L224 72c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v184C272 264.8 279.2 272 288 272s15.99-7.164 15.99-15.1l.0077-152.2c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152.2C352 264.8 359.2 272 368 272s15.1-7.163 15.1-15.1V152c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24V320z\"]\n};\nvar faHandPaper = faHand;\nvar faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M234.9 48.02c10.43 0 20.72 5.834 24.13 19.17l47.33 184.1c2.142 8.456 9.174 12.62 16.21 12.62c7.326 0 14.66-4.505 16.51-13.37l31.72-155.1c2.921-14.09 13.76-20.57 24.67-20.57c13.01 0 26.14 9.19 26.14 25.62c0 2.19-.2333 4.508-.7313 6.951l-28.48 139.2c-.2389 1.156-.3514 2.265-.3514 3.323c0 8.644 7.504 13.9 14.86 13.9c5.869 0 11.65-3.341 13.46-10.98l24.73-104.2c.2347-.9802 4.12-19.76 24.28-19.76c13.21 0 26.64 9.4 26.64 24.79c0 2.168-.2665 4.455-.8378 6.852l-48.06 204.7c-13.59 57.85-65.15 98.74-124.5 98.74l-48.79-.0234c-40.7-.0196-79.86-15.58-109.5-43.51l-75.93-71.55c-5.938-5.584-8.419-11.1-8.419-18.2c0-13.88 12.45-26.69 26.38-26.69c5.756 0 11.76 2.182 17.26 7.376l51.08 48.14c1.682 1.569 3.599 2.249 5.448 2.249c4.192 0 8.04-3.49 8.04-8.001c0-23.76-3.372-47.39-10.12-70.28L142 161.1C141.2 159.1 140.8 156.3 140.8 153.7c0-15.23 13.48-24.82 26.75-24.82c10.11 0 20.1 5.559 23.94 18.42l31.22 105.8c2.231 7.546 8.029 10.8 13.9 10.8c7.752 0 15.64-5.659 15.64-14.57c0-1.339-.1783-2.752-.562-4.23L209.3 80.06C208.7 77.45 208.3 74.97 208.3 72.62C208.3 57.33 221.7 48.02 234.9 48.02zM234.9 0C201.5 0 160.4 25.24 160.4 72.72c0 2.807 .1579 5.632 .4761 8.463C129.9 83.9 92.84 108.9 92.84 153.8c0 7.175 1.038 14.47 3.148 21.68l24.33 81.94C115.8 256.5 111.1 256 106.4 256C65.74 256 32 290.6 32 330.8c0 19.59 8.162 38.58 23.6 53.1l75.89 71.51c38.68 36.45 89.23 56.53 142.3 56.56L322.6 512c82.1 0 152.5-55.83 171.3-135.8l48.06-204.7C543.3 165.7 544 159.7 544 153.9c0-54.55-49.55-72.95-74.59-72.95c-.7689 0-1.534 .0117-2.297 .0352c-10.49-39.43-46.46-54.11-71.62-54.11c-34.1 0-64.45 24.19-71.63 58.83L319.2 108.5l-13.7-53.29C297.1 22.22 268.7 0 234.9 0z\"]\n};\nvar faFaceKiss = {\n prefix: 'far',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M304.7 281.7C308.9 286.8 312 293.1 312 300C312 306.9 308.9 313.2 304.7 318.3C300.4 323.5 294.5 328 287.9 331.7C285.2 333.3 282.3 334.7 279.2 336C282.3 337.3 285.2 338.7 287.9 340.3C294.5 343.1 300.4 348.5 304.7 353.7C308.9 358.8 312 365.1 312 372C312 378.9 308.9 385.2 304.7 390.3C300.4 395.5 294.5 400 287.9 403.7C274.7 411.1 257.4 416 240 416C236.4 416 233.2 413.5 232.3 410C231.3 406.5 232.9 402.8 236.1 401L236.1 401L236.3 400.9C236.5 400.8 236.8 400.6 237.2 400.3C238 399.9 239.2 399.1 240.6 398.2C243.4 396.4 247.2 393.7 250.8 390.6C254.6 387.5 258 384 260.5 380.6C262.1 377 264 374.2 264 372C264 369.8 262.1 366.1 260.5 363.4C258 359.1 254.6 356.5 250.8 353.4C247.2 350.3 243.4 347.6 240.6 345.8C239.2 344.9 238 344.1 237.2 343.7L236.5 343.2L236.3 343.1L236.1 342.1L236.1 342.1C233.6 341.6 232 338.9 232 336C232 333.1 233.6 330.4 236.1 329L236.1 329L236.3 328.9C236.5 328.8 236.8 328.6 237.2 328.3C238 327.9 239.2 327.1 240.6 326.2C243.4 324.4 247.2 321.7 250.8 318.6C254.6 315.5 258 312.1 260.5 308.6C262.1 305 264 302.2 264 300C264 297.8 262.1 294.1 260.5 291.4C258 287.1 254.6 284.5 250.8 281.4C247.2 278.3 243.4 275.6 240.6 273.8C239.2 272.9 238 272.1 237.2 271.7C236.8 271.4 236.5 271.2 236.3 271.1L236.1 270.1L236.1 270.1C232.9 269.2 231.3 265.5 232.3 261.1C233.2 258.5 236.4 256 240 256C257.4 256 274.7 260.9 287.9 268.3C294.5 271.1 300.4 276.5 304.7 281.7V281.7zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faKiss = faFaceKiss;\nvar faFaceGrinTongue = {\n prefix: 'far',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 255.1 48H256zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faChessBishop = {\n prefix: 'far',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M296 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512h272C309.3 512 320 501.3 320 488S309.3 464 296 464zM0 304c0 51.63 30.12 85.25 64 96v32h48v-67.13l-33.5-10.63C63.75 349.5 48 333.9 48 304c0-84.1 93.2-206.5 112.6-206.5c19.63 0 60.01 67.18 70.28 85.8l-66.13 66.13c-3.125 3.125-4.688 7.219-4.688 11.31S161.6 268.9 164.8 272L176 283.2c3.125 3.125 7.219 4.688 11.31 4.688s8.188-1.562 11.31-4.688L253 229C264.4 256.8 272 283.5 272 304c0 29.88-15.75 45.5-30.5 50.25L208 364.9V432H256v-32c33.88-10.75 64-44.38 64-96c0-73.38-67.75-197.2-120.6-241.5C213.4 59.12 224 47 224 32c0-17.62-14.38-32-32-32H128C110.4 0 96 14.38 96 32c0 15 10.62 27.12 24.62 30.5C67.75 106.8 0 230.6 0 304z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'far',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faFaceGrinWide = {\n prefix: 'far',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM224 192C224 227.3 209.7 256 192 256C174.3 256 160 227.3 160 192C160 156.7 174.3 128 192 128C209.7 128 224 156.7 224 192zM288 192C288 156.7 302.3 128 320 128C337.7 128 352 156.7 352 192C352 227.3 337.7 256 320 256C302.3 256 288 227.3 288 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faFaceFrownOpen = {\n prefix: 'far',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M179.3 369.3C166.1 374.5 153.1 365.1 158.4 352.9C175.1 314.7 214.3 287.8 259.9 287.8C305.6 287.8 344.8 314.7 361.4 352.1C366.7 365.2 352.9 374.5 340.6 369.3C316.2 359 288.8 353.2 259.9 353.2C231 353.2 203.7 358.1 179.3 369.3L179.3 369.3zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [448, 512, [9757], \"f0a6\", \"M376 192c-6.428 0-12.66 .8457-18.6 2.434C344.7 173.8 321.9 160 296 160c-6.428 0-12.66 .8457-18.6 2.434C264.7 141.8 241.9 128 216 128C213.3 128 210.6 128.1 208 128.4V72C208 32.3 175.7 0 136 0S64 32.3 64 72v196.3C44.51 284.5 32 308.8 32 336v49.88c0 32.1 17.1 61.65 44.63 77.12l55.83 31.35C153.1 505.9 176.4 512 199.8 512h107.9C385.1 512 448 447.4 448 368V264C448 224.3 415.7 192 376 192zM272 232c0-13.23 10.78-24 24-24S320 218.8 320 232v47.91C320 293.1 309.2 304 296 304S272 293.2 272 280V232zM192 200C192 186.8 202.8 176 216 176s24 10.77 24 24v48c0 3.029-.7012 5.875-1.73 8.545C227.9 251.3 216.4 248 204 248H192V200zM112 72c0-13.23 10.78-24 24-24S160 58.77 160 72v176H120c-2.686 0-5.217 .5566-7.84 .793C112.2 248.5 112 248.3 112 248V72zM307.7 464H199.8c-15.25 0-30.41-3.984-43.88-11.52l-55.78-31.34C87.72 414.2 80 400.6 80 385.9V336c0-22.06 17.94-40 40-40h84c15.44 0 28 12.56 28 28S219.4 352 204 352H152C138.8 352 128 362.8 128 376s10.75 24 24 24h52c33.23 0 61.25-21.58 71.54-51.36C282 350.7 288.9 352 296 352c5.041 0 9.836-1.166 14.66-2.178C322 374.6 346.1 392 376 392c7.684 0 14.94-1.557 21.87-3.836C388.9 431.4 351.9 464 307.7 464zM400 320c0 13.23-10.78 24-24 24S352 333.2 352 320V264c0-13.23 10.78-24 24-24s24 10.77 24 24V320z\"]\n};\nvar faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M336 0h-288C21.49 0 0 21.49 0 48v431.9c0 24.7 26.79 40.08 48.12 27.64L192 423.6l143.9 83.93C357.2 519.1 384 504.6 384 479.9V48C384 21.49 362.5 0 336 0zM336 452L192 368l-144 84V54C48 50.63 50.63 48 53.1 48h276C333.4 48 336 50.63 336 54V452z\"]\n};\nvar faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [448, 512, [], \"f0a7\", \"M448 248V144C448 64.6 385.1 0 307.7 0H199.8C176.4 0 153.1 6.104 132.5 17.65L76.63 49C49.1 64.47 32 94.02 32 126.1V176c0 27.23 12.51 51.53 32 67.69V440C64 479.7 96.3 512 136 512s72-32.3 72-72v-56.44C210.6 383.9 213.3 384 216 384c25.95 0 48.73-13.79 61.4-34.43C283.3 351.2 289.6 352 296 352c25.95 0 48.73-13.79 61.4-34.43C363.3 319.2 369.6 320 376 320C415.7 320 448 287.7 448 248zM272 232c0-13.23 10.78-24 24-24S320 218.9 320 232.1V280c0 13.23-10.78 24-24 24S272 293.2 272 280V232zM192 264h12c12.39 0 23.93-3.264 34.27-8.545C239.3 258.1 240 260.1 240 264v48c0 13.23-10.78 24-24 24S192 325.2 192 312V264zM112 264c0-.2813 .1504-.5137 .1602-.793C114.8 263.4 117.3 264 120 264H160v176c0 13.23-10.78 24-24 24S112 453.2 112 440V264zM397.9 123.8C390.9 121.6 383.7 120 376 120c-29.04 0-53.96 17.37-65.34 42.18C305.8 161.2 301 160 296 160c-7.139 0-13.96 1.273-20.46 3.355C265.2 133.6 237.2 112 204 112H152C138.8 112 128 122.8 128 136S138.8 160 152 160h52c15.44 0 28 12.56 28 28S219.4 216 204 216H120C97.94 216 80 198.1 80 176V126.1c0-14.77 7.719-28.28 20.16-35.27l55.78-31.34C169.4 51.98 184.6 48 199.8 48h107.9C351.9 48 388.9 80.56 397.9 123.8zM400 248c0 13.23-10.78 24-24 24S352 261.2 352 248V192c0-13.23 10.78-24 24-24S400 178.8 400 192V248z\"]\n};\nvar faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M447.1 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H63.1c-35.35 0-64 28.66-64 64v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C511.1 124.7 483.3 96 447.1 96zM463.1 416c0 8.824-7.178 16-16 16h-384c-8.822 0-16-7.176-16-16V96c0-8.824 7.178-16 16-16h117.5c4.273 0 8.293 1.664 11.31 4.688L255.1 144h192c8.822 0 16 7.176 16 16V416z\"]\n};\nvar faFolderBlank = faFolder;\nvar faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M272 304h-96C78.8 304 0 382.8 0 480c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32C448 382.8 369.2 304 272 304zM48.99 464C56.89 400.9 110.8 352 176 352h96c65.16 0 119.1 48.95 127 112H48.99zM224 256c70.69 0 128-57.31 128-128c0-70.69-57.31-128-128-128S96 57.31 96 128C96 198.7 153.3 256 224 256zM224 48c44.11 0 80 35.89 80 80c0 44.11-35.89 80-80 80S144 172.1 144 128C144 83.89 179.9 48 224 48z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'far',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416zM273.6 138c-8.719-3.812-18.91-2.094-25.91 4.375l-104 96C138.8 242.9 136 249.3 136 256s2.812 13.09 7.719 17.62l104 96c7 6.469 17.19 8.188 25.91 4.375C282.3 370.2 288 361.5 288 352V160C288 150.5 282.3 141.8 273.6 138z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z\"]\n};\nvar faChessKnight = {\n prefix: 'far',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M44 320.6l14.5 6.5c-17.01 20.24-26.44 45.91-26.44 72.35C32.06 399.7 32.12 432 32.12 432h48v-32c0-24.75 14-47.5 36.13-58.63l38.13-23.37c13.25-6.625 21.75-20.25 21.75-35.13v-58.75l-15.37 9C155.6 235.8 151.9 240.4 150.5 245.9L143 271c-2.25 7.625-8 13.88-15.38 16.75L117.1 292C114 293.3 110.7 293.9 107.4 293.9c-3.626 0-7.263-.7514-10.66-2.254L63.5 276.9C54.12 272.6 48 263.2 48 252.9V140.5c0-5.125 2.125-10.12 5.75-13.88l7.375-7.375L49.5 96C48.5 94.12 48 92 48 89.88C48 84.38 52.38 80 57.88 80h105c86.75 0 156.1 70.38 156.1 157.1V432h48.06l-.0625-194.9C367.9 124 276 32 162.9 32H57.88C25.88 32 0 57.88 0 89.88c0 8.5 1.75 16.88 5.125 24.62C1.75 122.8 0 131.6 0 140.5v112.4C0 282.2 17.25 308.8 44 320.6zM80.12 164c0 11 8.875 20 20 20c11 0 20-9 20-20s-9-20-20-20C89 144 80.12 153 80.12 164zM360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'far',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM223.4 178.6C234.1 184.3 234.1 199.7 223.4 205.4L133.5 253.3C125.6 257.6 116 251.8 116 242.9C116 240.1 116.1 237.4 118.8 235.2L154.8 192L118.8 148.8C116.1 146.6 116 143.9 116 141.1C116 132.2 125.6 126.4 133.5 130.7L223.4 178.6zM393.2 148.8L357.2 192L393.2 235.2C395 237.4 396 240.1 396 242.9C396 251.8 386.4 257.6 378.5 253.3L288.6 205.4C277.9 199.7 277.9 184.3 288.6 178.6L378.5 130.7C386.4 126.4 396 132.2 396 141.1C396 143.9 395 146.6 393.2 148.8V148.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faFaceLaugh = {\n prefix: 'far',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM304.4 192C304.4 174.3 318.7 160 336.4 160C354 160 368.4 174.3 368.4 192C368.4 209.7 354 224 336.4 224C318.7 224 304.4 209.7 304.4 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M572.6 270.3l-96 192C471.2 473.2 460.1 480 447.1 480H64c-35.35 0-64-28.66-64-64V96c0-35.34 28.65-64 64-64h117.5c16.97 0 33.25 6.742 45.26 18.75L275.9 96H416c35.35 0 64 28.66 64 64v32h-48V160c0-8.824-7.178-16-16-16H256L192.8 84.69C189.8 81.66 185.8 80 181.5 80H64C55.18 80 48 87.18 48 96v288l71.16-142.3C124.6 230.8 135.7 224 147.8 224h396.2C567.7 224 583.2 249 572.6 270.3z\"]\n};\nvar faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faChessQueen = {\n prefix: 'far',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 112c30.88 0 56-25.12 56-56S286.9 0 256 0S199.1 25.12 199.1 56S225.1 112 256 112zM511.1 197.4c0-5.178-2.509-10.2-7.096-13.26L476.4 168.2c-2.5-1.75-5.497-2.62-8.497-2.62c-5.501 .125-10.63 2.87-13.75 7.245c-9.001 12-23.16 19.13-38.16 19.13c-3.125 0-6.089-.2528-9.089-.8778c-23.13-4.25-38.88-26.25-38.88-49.75C367.1 134 361.1 128 354.6 128h-38.75c-6.001 0-11.63 4-12.88 9.875C298.2 160.1 278.7 176 255.1 176c-22.75 0-42.25-15.88-47-38.12C207.7 132 202.2 128 196.1 128h-38.75C149.1 128 143.1 134 143.1 141.4c0 18.49-13.66 50.62-47.95 50.62c-15.13 0-29.3-7.118-38.3-19.24C54.6 168.4 49.66 165.7 44.15 165.6c-3 0-5.931 .8951-8.432 2.645l-28.63 16C2.509 187.2 0 192.3 0 197.4c0 2.438 .5583 4.901 1.72 7.185L109.9 432h53.13L69.85 236.4C78.35 238.8 87.11 240 95.98 240c2.432 0 56.83 1.503 84.76-52.5C198.1 210.5 226.6 224 255.9 224c29.38 0 57.01-13.38 75.26-36.25C336.1 197.6 360.6 240 416 240c8.751 0 17.5-1.125 26-3.5L349 432h53.13l108.1-227.4C511.4 202.3 511.1 199.8 511.1 197.4zM424 464H87.98c-13.26 0-24 10.75-24 23.1S74.72 512 87.98 512h336c13.26 0 24-10.75 24-23.1S437.3 464 424 464z\"]\n};\nvar faHandBackFist = {\n prefix: 'far',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M377.1 68.05C364.4 50.65 343.7 40 321.2 40h-13.53c-3.518 0-7.039 .2754-10.53 .8184C284.8 31.33 269.6 26 253.5 26H240c-3.977 0-7.904 .3691-11.75 1.084C216.7 10.71 197.6 0 176 0H160C124.7 0 96 28.65 96 64v49.71L63.04 143.3C43.3 160 32 184.6 32 210.9v78.97c0 32.1 17.11 61.65 44.65 77.12L112 386.9v101.1C112 501.3 122.7 512 135.1 512S160 501.3 160 488v-129.9c-1.316-.6543-2.775-.9199-4.062-1.639l-55.78-31.34C87.72 318.2 80 304.6 80 289.9V210.9c0-12.31 5.281-23.77 14.5-31.39L112 163.8V208C112 216.8 119.2 224 128 224s16-7.156 16-16V64c0-8.828 7.188-16 16-16h16C184.8 48 192 55.17 192 64v16c0 9.578 7.942 16.04 16.15 16.04c6.432 0 12.31-4.018 14.73-10.17C223.3 84.84 228.3 74 240 74h13.53c20.97 0 17.92 19.58 34.27 19.58c8.177 0 9.9-5.584 19.88-5.584h13.53c25.54 0 18.27 28.23 38.66 28.23c.1562 0 .3125-.002 .4668-.0078L375.4 116C388.1 116 400 127.7 400 142V272c0 36.15-19.54 67.32-48 83.69v132.3C352 501.3 362.7 512 375.1 512S400 501.3 400 488v-108.1C430.1 352.8 448 313.6 448 272V142C448 102.1 416.8 69.44 377.1 68.05z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faSquareCaretUp = {\n prefix: 'far',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M241.6 175.7C237.1 170.8 230.7 168 224 168S210.9 170.8 206.4 175.7l-96 104c-6.469 7-8.188 17.19-4.375 25.91C109.8 314.3 118.5 320 127.1 320h192c9.531 0 18.16-5.656 22-14.38c3.813-8.719 2.094-18.91-4.375-25.91L241.6 175.7zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M24 32C37.25 32 48 42.75 48 56V408C48 421.3 58.75 432 72 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H72C32.24 480 0 447.8 0 408V56C0 42.75 10.75 32 24 32zM128 136C128 122.7 138.7 112 152 112H360C373.3 112 384 122.7 384 136C384 149.3 373.3 160 360 160H152C138.7 160 128 149.3 128 136zM296 208C309.3 208 320 218.7 320 232C320 245.3 309.3 256 296 256H152C138.7 256 128 245.3 128 232C128 218.7 138.7 208 152 208H296zM424 304C437.3 304 448 314.7 448 328C448 341.3 437.3 352 424 352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H424z\"]\n};\nvar faBarChart = faChartBar;\nvar faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 48H208C190.3 48 176 62.33 176 80V96H128V80C128 35.82 163.8 0 208 0H432C476.2 0 512 35.82 512 80V304C512 348.2 476.2 384 432 384H416V336H432C449.7 336 464 321.7 464 304V80C464 62.33 449.7 48 432 48zM320 128C355.3 128 384 156.7 384 192V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V192C0 156.7 28.65 128 64 128H320zM64 464H320C328.8 464 336 456.8 336 448V256H48V448C48 456.8 55.16 464 64 464z\"]\n};\nvar faSquarePlus = {\n prefix: 'far',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M200 344V280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H200V168C200 154.7 210.7 144 224 144C237.3 144 248 154.7 248 168V232H312C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H248V344C248 357.3 237.3 368 224 368C210.7 368 200 357.3 200 344zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M152 120c-26.51 0-48 21.49-48 48s21.49 48 48 48s48-21.49 48-48S178.5 120 152 120zM447.1 32h-384C28.65 32-.0091 60.65-.0091 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96C511.1 60.65 483.3 32 447.1 32zM463.1 409.3l-136.8-185.9C323.8 218.8 318.1 216 312 216c-6.113 0-11.82 2.768-15.21 7.379l-106.6 144.1l-37.09-46.1c-3.441-4.279-8.934-6.809-14.77-6.809c-5.842 0-11.33 2.529-14.78 6.809l-75.52 93.81c0-.0293 0 .0293 0 0L47.99 96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V409.3z\"]\n};\nvar faFolderClosed = {\n prefix: 'far',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C512 124.7 483.3 96 448 96zM64 80h117.5c4.273 0 8.293 1.664 11.31 4.688L256 144h192c8.822 0 16 7.176 16 16v32h-416V96C48 87.18 55.18 80 64 80zM448 432H64c-8.822 0-16-7.176-16-16V240h416V416C464 424.8 456.8 432 448 432z\"]\n};\nvar faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M439.9 144.6c15.34-26.38 8.372-62.41-16.96-87.62c-25.21-25.32-61.22-32.26-87.61-16.95c-9.044 5.218-27.15 3.702-48.08 1.968c-50.78-4.327-127.4-10.73-207.6 69.56C-.6501 191.9 5.801 268.5 10.07 319.3c1.749 20.96 3.28 39.07-1.984 48.08c-15.35 26.4-8.357 62.45 16.92 87.57c16.26 16.37 37.05 25.09 56.83 25.09c10.89 0 21.46-2.64 30.83-8.092c9.013-5.249 27.12-3.718 48.08-1.968c50.69 4.233 127.4 10.7 207.6-69.56c80.27-80.28 73.82-156.9 69.56-207.7C436.2 171.8 434.7 153.7 439.9 144.6zM398.4 120.5c-12.87 22.09-10.67 48.41-8.326 76.25c4.155 49.3 8.841 105.2-55.67 169.7c-64.53 64.49-120.5 59.78-169.7 55.68c-27.85-2.328-54.12-4.53-76.26 8.311c-6.139 3.64-19.17 1.031-29.58-9.451c-10.39-10.33-12.95-23.35-9.372-29.49c12.87-22.09 10.67-48.41 8.326-76.25C53.72 265.1 49.04 210.1 113.5 145.5c48.27-48.27 91.71-57.8 131.2-57.8c13.28 0 26.12 1.078 38.52 2.125c27.9 2.359 54.17 4.561 76.26-8.311c6.123-3.577 19.18-1.031 29.49 9.357C399.4 101.2 402 114.4 398.4 120.5zM239.5 124.1c2.156 8.561-3.062 17.25-11.62 19.43C183.6 154.7 122.7 215.6 111.6 259.9C109.7 267.1 103.2 271.1 96.05 271.1c-1.281 0-2.593-.1562-3.905-.4687C83.58 269.3 78.4 260.6 80.52 252.1C94.67 195.8 163.8 126.7 220.1 112.5C228.8 110.4 237.3 115.5 239.5 124.1z\"]\n};\nvar faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M506.1 127.1c-17.97-20.17-61.46-61.65-122.7-71.1c-22.5-3.354-45.39 3.606-63.41 18.21C302 60.47 279.1 53.42 256.5 56.86C176.8 69.17 126.7 136.2 124.6 139.1c-7.844 10.69-5.531 25.72 5.125 33.57c4.281 3.157 9.281 4.657 14.19 4.657c7.406 0 14.69-3.375 19.38-9.782c.4062-.5626 40.19-53.91 100.5-63.23c7.457-.9611 14.98 .67 21.56 4.483L227.2 168.2C214.8 180.5 207.1 196.1 207.1 214.5c0 17.5 6.812 33.94 19.16 46.29C239.5 273.2 255.9 279.1 273.4 279.1s33.94-6.813 46.31-19.19l11.35-11.35l124.2 100.9c2.312 1.875 2.656 5.251 .5 7.97l-27.69 35.75c-1.844 2.25-5.25 2.594-7.156 1.063l-22.22-18.69l-26.19 27.75c-2.344 2.875-5.344 3.563-6.906 3.719c-1.656 .1562-4.562 .125-6.812-1.719l-32.41-27.66L310.7 392.3l-2.812 2.938c-5.844 7.157-14.09 11.66-23.28 12.6c-9.469 .8126-18.25-1.75-24.5-6.782L170.3 319.8H96V128.3L0 128.3v255.6l64 .0404c11.74 0 21.57-6.706 27.14-16.14h60.64l77.06 69.66C243.7 449.6 261.9 456 280.8 456c2.875 0 5.781-.125 8.656-.4376c13.62-1.406 26.41-6.063 37.47-13.5l.9062 .8126c12.03 9.876 27.28 14.41 42.69 12.78c13.19-1.375 25.28-7.032 33.91-15.35c21.09 8.188 46.09 2.344 61.25-16.47l27.69-35.75c18.47-22.82 14.97-56.48-7.844-75.01l-120.3-97.76l8.381-8.382c9.375-9.376 9.375-24.57 0-33.94c-9.375-9.376-24.56-9.376-33.94 0L285.8 226.8C279.2 233.5 267.7 233.5 261.1 226.8c-3.312-3.282-5.125-7.657-5.125-12.31c0-4.688 1.812-9.064 5.281-12.53l85.91-87.64c7.812-7.845 18.53-11.75 28.94-10.03c59.75 9.22 100.2 62.73 100.6 63.29c3.088 4.155 7.264 6.946 11.84 8.376H544v175.1c0 17.67 14.33 32.05 31.1 32.05L640 384V128.1L506.1 127.1zM48 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99S64 327.2 64 336.1C64 344.8 56.75 352 48 352zM592 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99s16 7.117 16 15.99C608 344.8 600.8 352 592 352z\"]\n};\nvar faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M168.5 72L256 165l87.5-93h-175zM383.9 99.1L311.5 176h129L383.9 99.1zm50 124.9H256 78.1L256 420.3 433.9 224zM71.5 176h129L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.6 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"]\n};\nvar faCirclePlay = {\n prefix: 'far',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M188.3 147.1C195.8 142.8 205.1 142.1 212.5 147.5L356.5 235.5C363.6 239.9 368 247.6 368 256C368 264.4 363.6 272.1 356.5 276.5L212.5 364.5C205.1 369 195.8 369.2 188.3 364.9C180.7 360.7 176 352.7 176 344V167.1C176 159.3 180.7 151.3 188.3 147.1V147.1zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faCircleCheck = {\n prefix: 'far',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M243.8 339.8C232.9 350.7 215.1 350.7 204.2 339.8L140.2 275.8C129.3 264.9 129.3 247.1 140.2 236.2C151.1 225.3 168.9 225.3 179.8 236.2L224 280.4L332.2 172.2C343.1 161.3 360.9 161.3 371.8 172.2C382.7 183.1 382.7 200.9 371.8 211.8L243.8 339.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faCircleStop = {\n prefix: 'far',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M328 160h-144C170.8 160 160 170.8 160 184v144C160 341.2 170.8 352 184 352h144c13.2 0 24-10.8 24-24v-144C352 170.8 341.2 160 328 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M320 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h256c35.35 0 64-28.65 64-64V64C384 28.65 355.3 0 320 0zM336 448c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h64V64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V48h64c8.836 0 16 7.162 16 16V448zM192 288c35.35 0 64-28.65 64-64s-28.65-64-64-64C156.7 160 128 188.7 128 224S156.7 288 192 288zM224 320H160c-44.18 0-80 35.82-80 80C80 408.8 87.16 416 96 416h192c8.836 0 16-7.164 16-16C304 355.8 268.2 320 224 320z\"]\n};\nvar faFaceLaughBeam = {\n prefix: 'far',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM352 208c0-44.13-35.88-80-80-80L184 128c-13.25 0-24 10.75-24 24v208c0 13.25 10.75 24 24 24s24-10.75 24-24v-72h59.79l38.46 82.19C310.3 378.9 319 384 328 384c3.438 0 6.875-.7187 10.19-2.25c12-5.625 17.16-19.91 11.56-31.94l-34.87-74.5C337.1 261.1 352 236.3 352 208zM272 240h-64v-64h64c17.66 0 32 14.34 32 32S289.7 240 272 240z\"]\n};\nvar faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M208 256c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 227.3 172.7 256 208 256zM464 232h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 232 464 232zM240 288h-64C131.8 288 96 323.8 96 368C96 376.8 103.2 384 112 384h192c8.836 0 16-7.164 16-16C320 323.8 284.2 288 240 288zM464 152h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 152 464 152zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faFaceTired = {\n prefix: 'far',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M176.5 320.3C196.1 302.1 223.8 288 256 288C288.2 288 315.9 302.1 335.5 320.3C354.5 338.1 368 362 368 384C368 389.4 365.3 394.4 360.8 397.4C356.2 400.3 350.5 400.8 345.6 398.7L328.4 391.1C305.6 381.2 280.9 376 256 376C231.1 376 206.4 381.2 183.6 391.1L166.4 398.7C161.5 400.8 155.8 400.3 151.2 397.4C146.7 394.4 144 389.4 144 384C144 362 157.5 338.1 176.5 320.3zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faTired = faFaceTired;\nvar faFontAwesome = {\n prefix: 'far',\n iconName: 'font-awesome',\n icon: [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.09 22.54-82.34 32-119.5 32c-62.82 0-86.6-32-149.3-32c-21.69 0-38.48 3.791-53.74 8.766C110.1 397.5 96 386.1 96 371.7v-.7461c0-9.275 5.734-17.6 14.42-20.86C129.1 342.8 150.2 336 179.2 336c62.73 0 86.51 32 149.3 32c25.5 0 42.85-4.604 71.47-14.7v-240C379.2 120.6 357.7 128 328.5 128c-.0039 0 .0039 0 0 0c-62.81 0-86.61-32-149.3-32C122.1 96 98.8 122.1 48 126.1V456C48 469.3 37.25 480 24 480S0 469.3 0 456V56C0 42.74 10.75 32 24 32S48 42.74 48 56v22.99C98.8 74.14 122.1 48 179.2 48c62.77 0 86.45 32 149.3 32C366.1 80 386.8 69.85 448 48z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faFaceSmileWink = {\n prefix: 'far',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM214.6 248C211.3 238.4 202.2 232 192 232s-19.25 6.406-22.62 16L144.7 318.1l-25.89-77.66C114.6 227.8 101 221.2 88.41 225.2C75.83 229.4 69.05 243 73.23 255.6l48 144C124.5 409.3 133.5 415.9 143.8 416c10.17 0 19.45-6.406 22.83-16L192 328.1L217.4 400C220.8 409.6 229.8 416 240 416c10.27-.0938 19.53-6.688 22.77-16.41l48-144c4.188-12.59-2.594-26.16-15.17-30.38c-12.61-4.125-26.2 2.594-30.36 15.19l-25.89 77.66L214.6 248z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM200 224H128C119.2 224 112 231.2 112 240v168c0 13.25 10.75 24 24 24S160 421.3 160 408v-32h44c44.21 0 79.73-37.95 75.69-82.98C276.1 253.2 240 224 200 224zM204 328H160V272h44c15.44 0 28 12.56 28 28S219.4 328 204 328z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M493.6 163c-24.88-19.62-45.5-35.37-164.3-121.6C312.7 29.21 279.7 0 256.4 0H255.6C232.3 0 199.3 29.21 182.6 41.38C63.88 127.6 43.25 143.4 18.38 163C6.75 172 0 186 0 200.8v247.2C0 483.3 28.65 512 64 512h384c35.35 0 64-28.67 64-64.01V200.8C512 186 505.3 172 493.6 163zM464 448c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V276.7l136.1 113.4C204.3 406.8 229.8 416 256 416s51.75-9.211 71.97-26.01L464 276.7V448zM464 214.2l-166.8 138.1c-23.19 19.28-59.34 19.27-82.47 .0156L48 214.2l.1055-13.48c23.24-18.33 42.25-32.97 162.9-120.6c3.082-2.254 6.674-5.027 10.63-8.094C229.4 65.99 246.7 52.59 256 48.62c9.312 3.973 26.62 17.37 34.41 23.41c3.959 3.066 7.553 5.84 10.76 8.186C421.6 167.7 440.7 182.4 464 200.8V214.2z\"]\n};\nvar faFileZipper = {\n prefix: 'far',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h48V64h64V48.13h48.01L224 128c0 17.67 14.33 32 32 32h79.1V448zM176 96h-64v32h64V96zM176 160h-64v32h64V160zM176 224h-64l-30.56 116.5C73.51 379.5 103.7 416 144.3 416c40.26 0 70.45-36.3 62.68-75.15L176 224zM160 368H128c-8.836 0-16-7.164-16-16s7.164-16 16-16h32c8.836 0 16 7.164 16 16S168.8 368 160 368z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM384 80H64C55.16 80 48 87.16 48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80z\"]\n};\nvar faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [512, 512, [10052, 10054], \"f2dc\", \"M484.4 294.4c1.715 6.402 .6758 12.89-2.395 18.21s-8.172 9.463-14.57 11.18l-31.46 8.43l32.96 19.03C480.4 357.8 484.4 372.5 477.8 384s-21.38 15.41-32.86 8.783l-32.96-19.03l8.43 31.46c3.432 12.81-4.162 25.96-16.97 29.39s-25.96-4.162-29.39-16.97l-20.85-77.82L280 297.6v84.49l56.97 56.97c9.375 9.375 9.375 24.56 0 33.94C332.3 477.7 326.1 480 320 480s-12.28-2.344-16.97-7.031L280 449.9V488c0 13.25-10.75 24-24 24s-24-10.75-24-24v-38.06l-23.03 23.03c-9.375 9.375-24.56 9.375-33.94 0s-9.375-24.56 0-33.94L232 382.1V297.6l-73.17 42.25l-20.85 77.82c-3.432 12.81-16.58 20.4-29.39 16.97s-20.4-16.58-16.97-29.39l8.43-31.46l-32.96 19.03C55.61 399.4 40.85 395.5 34.22 384s-2.615-26.16 8.859-32.79l32.96-19.03l-31.46-8.43c-12.81-3.432-20.4-16.58-16.97-29.39s16.58-20.4 29.39-16.97l77.82 20.85L208 255.1L134.8 213.8L57.01 234.6C44.2 238 31.05 230.4 27.62 217.6s4.162-25.96 16.97-29.39l31.46-8.432L43.08 160.8C31.61 154.2 27.6 139.5 34.22 128s21.38-15.41 32.86-8.785l32.96 19.03L91.62 106.8C88.18 93.98 95.78 80.83 108.6 77.39s25.96 4.162 29.39 16.97l20.85 77.82L232 214.4V129.9L175 72.97c-9.375-9.375-9.375-24.56 0-33.94s24.56-9.375 33.94 0L232 62.06V24C232 10.75 242.8 0 256 0s24 10.75 24 24v38.06l23.03-23.03c9.375-9.375 24.56-9.375 33.94 0s9.375 24.56 0 33.94L280 129.9v84.49l73.17-42.25l20.85-77.82c3.432-12.81 16.58-20.4 29.39-16.97c6.402 1.715 11.5 5.861 14.57 11.18s4.109 11.81 2.395 18.21l-8.43 31.46l32.96-19.03C456.4 112.6 471.2 116.5 477.8 128s2.615 26.16-8.859 32.78l-32.96 19.03l31.46 8.432c12.81 3.432 20.4 16.58 16.97 29.39s-16.58 20.4-29.39 16.97l-77.82-20.85L304 255.1l73.17 42.25l77.82-20.85C467.8 273.1 480.1 281.6 484.4 294.4z\"]\n};\nvar faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M456 32h-304C121.1 32 96 57.13 96 88v320c0 13.22-10.77 24-24 24S48 421.2 48 408V112c0-13.25-10.75-24-24-24S0 98.75 0 112v296C0 447.7 32.3 480 72 480h352c48.53 0 88-39.47 88-88v-304C512 57.13 486.9 32 456 32zM464 392c0 22.06-17.94 40-40 40H139.9C142.5 424.5 144 416.4 144 408v-320c0-4.406 3.594-8 8-8h304c4.406 0 8 3.594 8 8V392zM264 272h-64C186.8 272 176 282.8 176 296S186.8 320 200 320h64C277.3 320 288 309.3 288 296S277.3 272 264 272zM408 272h-64C330.8 272 320 282.8 320 296S330.8 320 344 320h64c13.25 0 24-10.75 24-24S421.3 272 408 272zM264 352h-64c-13.25 0-24 10.75-24 24s10.75 24 24 24h64c13.25 0 24-10.75 24-24S277.3 352 264 352zM408 352h-64C330.8 352 320 362.8 320 376s10.75 24 24 24h64c13.25 0 24-10.75 24-24S421.3 352 408 352zM400 112h-192c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64C432 126.3 417.7 112 400 112z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'far',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M345.3 472.1C347.3 479.7 350.9 486.4 355.7 491.8C325.1 504.8 291.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 285.3 507.1 313.4 498 339.7C486.9 334.1 474.5 333.1 461.8 334.6C459.7 329.4 457 324.6 453.9 320.1C460.5 299.9 464 278.4 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C285.4 464 313.5 457.9 338.9 446.8L345.3 472.1zM288.7 334.3C284.4 339.5 278.5 344 271.9 347.7C269.2 349.3 266.3 350.7 263.2 352C266.3 353.3 269.2 354.7 271.9 356.3C278.5 359.1 284.4 364.5 288.7 369.7C292.9 374.8 296 381.1 296 388C296 394.9 292.9 401.2 288.7 406.3C284.4 411.5 278.5 416 271.9 419.7C258.7 427.1 241.4 432 224 432C220.4 432 217.2 429.5 216.3 426C215.3 422.5 216.9 418.8 220.1 417L220.1 417L220.3 416.9C220.5 416.8 220.8 416.6 221.2 416.3C222 415.9 223.2 415.1 224.6 414.2C227.4 412.4 231.2 409.7 234.8 406.6C238.6 403.5 242 400 244.5 396.6C246.1 393 248 390.2 248 388C248 385.8 246.1 382.1 244.5 379.4C242 375.1 238.6 372.5 234.8 369.4C231.2 366.3 227.4 363.6 224.6 361.8C223.2 360.9 222 360.1 221.2 359.7C220.8 359.4 220.5 359.2 220.3 359.1L220.1 358.1L220.1 358.1C217.6 357.6 216 354.9 216 352C216 349.1 217.6 346.4 220.1 345L220.1 345L220.3 344.9C220.5 344.8 220.8 344.6 221.2 344.3C222 343.9 223.2 343.1 224.6 342.2C227.4 340.4 231.2 337.7 234.8 334.6C238.6 331.5 242 328.1 244.5 324.6C246.1 321 248 318.2 248 316C248 313.8 246.1 310.1 244.5 307.4C242 303.1 238.6 300.5 234.8 297.4C231.2 294.3 227.4 291.6 224.6 289.8C223.2 288.9 222 288.1 221.2 287.7C220.8 287.4 220.5 287.2 220.3 287.1L220.1 286.1L220.1 286.1C216.9 285.2 215.3 281.5 216.3 277.1C217.2 274.5 220.4 272 224 272C241.4 272 258.7 276.9 271.9 284.3C278.5 287.1 284.4 292.5 288.7 297.7C292.9 302.8 296 309.1 296 316C296 322.9 292.9 329.2 288.7 334.3V334.3zM144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220zM439.4 373.3L459.5 367.6C481.7 361.4 504.6 375.2 510.6 398.4C516.5 421.7 503.3 445.6 481.1 451.8L396.1 475.6C387.5 478 378.6 472.9 376.3 464.2L353.4 374.9C347.5 351.6 360.7 327.7 382.9 321.5C405.2 315.3 428 329.1 433.1 352.3L439.4 373.3z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faStarHalfStroke = {\n prefix: 'far',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8zM287.1 384.7C291.9 384.7 295.7 385.6 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.1 79.09L287.1 384.7z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM229.1 233.3L192 280.9L154.9 233.3C146.8 222.8 131.8 220.9 121.3 229.1C110.8 237.2 108.9 252.3 117.1 262.8L161.6 320l-44.53 57.25c-8.156 10.47-6.25 25.56 4.188 33.69C125.7 414.3 130.8 416 135.1 416c7.156 0 14.25-3.188 18.97-9.25L192 359.1l37.06 47.65C233.8 412.8 240.9 416 248 416c5.125 0 10.31-1.656 14.72-5.062c10.44-8.125 12.34-23.22 4.188-33.69L222.4 320l44.53-57.25c8.156-10.47 6.25-25.56-4.188-33.69C252.2 220.9 237.2 222.8 229.1 233.3z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'far',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M64 0C90.86 0 113.9 16.55 123.3 40H324.7C334.1 16.55 357.1 0 384 0C419.3 0 448 28.65 448 64C448 90.86 431.5 113.9 408 123.3V228.7C431.5 238.1 448 261.1 448 288C448 323.3 419.3 352 384 352C357.1 352 334.1 335.5 324.7 312H123.3C113.9 335.5 90.86 352 64 352C28.65 352 0 323.3 0 288C0 261.1 16.55 238.1 40 228.7V123.3C16.55 113.9 0 90.86 0 64C0 28.65 28.65 0 64 0V0zM64 80C72.84 80 80 72.84 80 64C80 56.1 74.28 49.54 66.75 48.24C65.86 48.08 64.94 48 64 48C55.16 48 48 55.16 48 64C48 64.07 48 64.14 48 64.21C48.01 65.07 48.09 65.92 48.24 66.75C49.54 74.28 56.1 80 64 80zM384 48C383.1 48 382.1 48.08 381.2 48.24C373.7 49.54 368 56.1 368 64C368 72.84 375.2 80 384 80C391.9 80 398.5 74.28 399.8 66.75C399.9 65.86 400 64.94 400 64C400 55.16 392.8 48 384 48V48zM324.7 88H123.3C116.9 104 104 116.9 88 123.3V228.7C104 235.1 116.9 247.1 123.3 264H324.7C331.1 247.1 343.1 235.1 360 228.7V123.3C343.1 116.9 331.1 104 324.7 88zM400 288C400 287.1 399.9 286.1 399.8 285.2C398.5 277.7 391.9 272 384 272C375.2 272 368 279.2 368 288C368 295.9 373.7 302.5 381.2 303.8C382.1 303.9 383.1 304 384 304C392.8 304 400 296.8 400 288zM64 272C56.1 272 49.54 277.7 48.24 285.2C48.08 286.1 48 287.1 48 288C48 296.8 55.16 304 64 304L64.22 303.1C65.08 303.1 65.93 303.9 66.75 303.8C74.28 302.5 80 295.9 80 288C80 279.2 72.84 272 64 272zM471.3 248C465.8 235.9 457.8 225.2 448 216.4V200H516.7C526.1 176.5 549.1 160 576 160C611.3 160 640 188.7 640 224C640 250.9 623.5 273.9 600 283.3V388.7C623.5 398.1 640 421.1 640 448C640 483.3 611.3 512 576 512C549.1 512 526.1 495.5 516.7 472H315.3C305.9 495.5 282.9 512 256 512C220.7 512 192 483.3 192 448C192 421.1 208.5 398.1 232 388.7V352H280V388.7C296 395.1 308.9 407.1 315.3 424H516.7C523.1 407.1 535.1 395.1 552 388.7V283.3C535.1 276.9 523.1 264 516.7 248H471.3zM592 224C592 215.2 584.8 208 576 208C575.1 208 574.1 208.1 573.2 208.2C565.7 209.5 560 216.1 560 224C560 232.8 567.2 240 576 240C583.9 240 590.5 234.3 591.8 226.8C591.9 225.9 592 224.9 592 224zM240 448C240 456.8 247.2 464 256 464C256.9 464 257.9 463.9 258.8 463.8C266.3 462.5 272 455.9 272 448C272 439.2 264.8 432 256 432C248.1 432 241.5 437.7 240.2 445.2C240.1 446.1 240 447.1 240 448zM573.2 463.8C574.1 463.9 575.1 464 576 464C584.8 464 592 456.8 592 448C592 447.1 591.9 446.2 591.8 445.3L591.8 445.2C590.5 437.7 583.9 432 576 432C567.2 432 560 439.2 560 448C560 455.9 565.7 462.5 573.2 463.8V463.8z\"]\n};\nvar faCircleRight = {\n prefix: 'far',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M280.2 150.2C273.1 143.8 262.1 142.2 254.3 146.1S239.1 158.5 239.1 167.1l.002 56L152 224C138.8 224 128 234.8 128 248v16C128 277.3 138.8 288 152 288L240 287.1v56c0 9.531 5.656 18.16 14.38 22c8.75 3.812 18.91 2.094 25.91-4.375l96-88.75C381.2 268.3 384 261.9 384 255.2c-.3125-7.781-2.875-13.25-7.844-17.75L280.2 150.2zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faFaceRollingEyes = {\n prefix: 'far',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M168 376C168 362.7 178.7 352 192 352H320C333.3 352 344 362.7 344 376C344 389.3 333.3 400 320 400H192C178.7 400 168 389.3 168 376zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 209.7 201.7 196.8 191.8 188C191.9 189.3 192 190.6 192 192C192 209.7 177.7 224 160 224C142.3 224 128 209.7 128 192C128 190.6 128.1 189.3 128.2 188C118.3 196.8 112 209.7 112 224C112 250.5 133.5 272 160 272V272zM272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224zM352 272C378.5 272 400 250.5 400 224C400 209.7 393.7 196.8 383.8 188C383.9 189.3 384 190.6 384 192C384 209.7 369.7 224 352 224C334.3 224 320 209.7 320 192C320 190.6 320.1 189.3 320.2 188C310.3 196.8 304 209.7 304 224C304 250.5 325.5 272 352 272zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM48 115.8C38.18 106.1 32 94.22 32 80C32 53.49 53.49 32 80 32C94.22 32 106.1 38.18 115.8 48H460.2C469 38.18 481.8 32 496 32C522.5 32 544 53.49 544 80C544 94.22 537.8 106.1 528 115.8V396.2C537.8 405 544 417.8 544 432C544 458.5 522.5 480 496 480C481.8 480 469 473.8 460.2 464H115.8C106.1 473.8 94.22 480 80 480C53.49 480 32 458.5 32 432C32 417.8 38.18 405 48 396.2V115.8zM96 125.3V386.7C109.6 391.6 120.4 402.4 125.3 416H450.7C455.6 402.4 466.4 391.6 480 386.7V125.3C466.4 120.4 455.6 109.6 450.7 96H125.3C120.4 109.6 109.6 120.4 96 125.3z\"]\n};\nvar faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M244 84L255.1 96L267.1 84.02C300.6 51.37 347 36.51 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 0 232.4 0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.1C164.1 36.51 211.4 51.37 244 84C243.1 84 244 84.01 244 84L244 84zM255.1 163.9L210.1 117.1C188.4 96.28 157.6 86.4 127.3 91.44C81.55 99.07 48 138.7 48 185.1V190.9C48 219.1 59.71 246.1 80.34 265.3L256 429.3L431.7 265.3C452.3 246.1 464 219.1 464 190.9V185.1C464 138.7 430.4 99.07 384.7 91.44C354.4 86.4 323.6 96.28 301.9 117.1L255.1 163.9z\"]\n};\nvar faFaceSurprise = {\n prefix: 'far',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faCirclePause = {\n prefix: 'far',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M200 160C186.8 160 176 170.8 176 184v144C176 341.3 186.8 352 200 352S224 341.3 224 328v-144C224 170.8 213.3 160 200 160zM312 160C298.8 160 288 170.8 288 184v144c0 13.25 10.75 24 24 24s24-10.75 24-24v-144C336 170.8 325.3 160 312 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faCircleUp = {\n prefix: 'far',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M272.9 135.7C268.3 130.8 261.9 128 255.2 128C247.5 128.3 241.1 130.9 237.5 135.8l-87.25 96C143.8 238.9 142.2 249 146.1 257.7C149.9 266.4 158.5 272 167.1 272h56L224 360c0 13.25 10.75 24 24 24h16c13.25 0 23.1-10.75 23.1-24L287.1 272h56c9.531 0 18.16-5.656 22-14.38c3.811-8.75 2.092-18.91-4.377-25.91L272.9 135.7zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM171.5 259.5L136 296H92C85.38 296 80 301.4 80 308v56C80 370.7 85.38 376 92 376H136l35.5 36.5C179.1 420 192 414.8 192 404v-136C192 257.3 179.1 251.9 171.5 259.5zM235.1 260.7c-6.25 6.25-6.25 16.38 0 22.62C235.3 283.5 256 305.1 256 336c0 30.94-20.77 52.53-20.91 52.69c-6.25 6.25-6.25 16.38 0 22.62C238.2 414.4 242.3 416 246.4 416s8.188-1.562 11.31-4.688C258.1 410.1 288 380.5 288 336s-29.05-74.06-30.28-75.31C251.5 254.4 241.3 254.4 235.1 260.7z\"]\n};\nvar faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM215.3 292c-4.68 0-9.051 2.34-11.65 6.234L164 357.8l-11.68-17.53C149.7 336.3 145.3 334 140.7 334c-4.682 0-9.053 2.34-11.65 6.234l-46.67 70c-2.865 4.297-3.131 9.82-.6953 14.37C84.09 429.2 88.84 432 93.1 432h196c5.163 0 9.907-2.844 12.34-7.395c2.436-4.551 2.17-10.07-.6953-14.37l-74.67-112C224.4 294.3 220 292 215.3 292zM128 288c17.67 0 32-14.33 32-32S145.7 224 128 224S96 238.3 96 256S110.3 288 128 288z\"]\n};\nvar faCircleQuestion = {\n prefix: 'far',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 336c-18 0-32 14-32 32s13.1 32 32 32c17.1 0 32-14 32-32S273.1 336 256 336zM289.1 128h-51.1C199 128 168 159 168 198c0 13 11 24 24 24s24-11 24-24C216 186 225.1 176 237.1 176h51.1C301.1 176 312 186 312 198c0 8-4 14.1-11 18.1L244 251C236 256 232 264 232 272V288c0 13 11 24 24 24S280 301 280 288V286l45.1-28c21-13 34-36 34-60C360 159 329 128 289.1 128z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faFaceMehBlank = {\n prefix: 'far',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M160 256C160 185.3 217.3 128 288 128C358.7 128 416 185.3 416 256C416 326.7 358.7 384 288 384C217.3 384 160 326.7 160 256zM288 336C332.2 336 368 300.2 368 256C368 211.8 332.2 176 288 176C287.3 176 286.7 176 285.1 176C287.3 181.1 288 186.5 288 192C288 227.3 259.3 256 224 256C218.5 256 213.1 255.3 208 253.1C208 254.7 208 255.3 208 255.1C208 300.2 243.8 336 288 336L288 336zM95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6V112.6zM288 80C222.8 80 169.2 109.6 128.1 147.7C89.6 183.5 63.02 225.1 49.44 256C63.02 286 89.6 328.5 128.1 364.3C169.2 402.4 222.8 432 288 432C353.2 432 406.8 402.4 447.9 364.3C486.4 328.5 512.1 286 526.6 256C512.1 225.1 486.4 183.5 447.9 147.7C406.8 109.6 353.2 80 288 80V80z\"]\n};\nvar faFaceSadCry = {\n prefix: 'far',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.1 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM297.9 230.6C289.9 223 289.5 210.4 297 202.3C311.6 186.8 332.3 180 351.6 180C370.1 180 391.7 186.8 406.2 202.3C413.8 210.4 413.4 223 405.3 230.6C397.2 238.1 384.6 237.7 377 229.7C371.6 223.8 362.3 220 351.6 220C340.1 220 331.7 223.8 326.2 229.7C318.7 237.7 306 238.1 297.9 230.6zM208 320C208 293.5 229.5 272 256 272C282.5 272 304 293.5 304 320V352C304 378.5 282.5 400 256 400C229.5 400 208 378.5 208 352V320zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM400 406.1C439.4 368.2 464 314.1 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 314.1 72.55 368.2 112 406.1V288C112 274.7 122.7 264 136 264C149.3 264 160 274.7 160 288V440.6C188.7 455.5 221.4 464 256 464C290.6 464 323.3 455.5 352 440.6V288C352 274.7 362.7 264 376 264C389.3 264 400 274.7 400 288V406.1z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M162.1 257.8c-7.812-7.812-20.47-7.812-28.28 0l-48 48c-7.812 7.812-7.812 20.5 0 28.31l48 48C137.8 386.1 142.9 388 148 388s10.23-1.938 14.14-5.844c7.812-7.812 7.812-20.5 0-28.31L128.3 320l33.86-33.84C169.1 278.3 169.1 265.7 162.1 257.8zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM221.9 257.8c-7.812 7.812-7.812 20.5 0 28.31L255.7 320l-33.86 33.84c-7.812 7.812-7.812 20.5 0 28.31C225.8 386.1 230.9 388 236 388s10.23-1.938 14.14-5.844l48-48c7.812-7.812 7.812-20.5 0-28.31l-48-48C242.3 250 229.7 250 221.9 257.8z\"]\n};\nvar faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M7.724 65.49C13.36 55.11 21.79 46.47 32 40.56C39.63 36.15 48.25 33.26 57.46 32.33C59.61 32.11 61.79 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 93.79 .112 91.61 .3306 89.46C1.204 80.85 3.784 72.75 7.724 65.49V65.49zM48 416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V224H48V416z\"]\n};\nvar faFaceFrown = {\n prefix: 'far',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M143.9 398.6C131.4 394.1 124.9 380.3 129.4 367.9C146.9 319.4 198.9 288 256 288C313.1 288 365.1 319.4 382.6 367.9C387.1 380.3 380.6 394.1 368.1 398.6C355.7 403.1 341.9 396.6 337.4 384.1C328.2 358.5 297.2 336 256 336C214.8 336 183.8 358.5 174.6 384.1C170.1 396.6 156.3 403.1 143.9 398.6V398.6zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faFrown = faFaceFrown;\nvar faFloppyDisk = {\n prefix: 'far',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M224 256c-35.2 0-64 28.8-64 64c0 35.2 28.8 64 64 64c35.2 0 64-28.8 64-64C288 284.8 259.2 256 224 256zM433.1 129.1l-83.9-83.9C341.1 37.06 328.8 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 151.2 442.9 138.9 433.1 129.1zM128 80h144V160H128V80zM400 416c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V96c0-8.838 7.164-16 16-16h16v104c0 13.25 10.75 24 24 24h192C309.3 208 320 197.3 320 184V83.88l78.25 78.25C399.4 163.2 400 164.8 400 166.3V416z\"]\n};\nvar faSave = faFloppyDisk;\nvar faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M144 208C126.3 208 112 222.2 112 239.1C112 257.7 126.3 272 144 272s31.1-14.25 31.1-32S161.8 208 144 208zM256 207.1c-17.75 0-31.1 14.25-31.1 32s14.25 31.1 31.1 31.1s31.1-14.25 31.1-31.1S273.8 207.1 256 207.1zM368 208c-17.75 0-31.1 14.25-31.1 32s14.25 32 31.1 32c17.75 0 31.99-14.25 31.99-32C400 222.2 385.8 208 368 208zM256 31.1c-141.4 0-255.1 93.12-255.1 208c0 47.62 19.91 91.25 52.91 126.3c-14.87 39.5-45.87 72.88-46.37 73.25c-6.624 7-8.373 17.25-4.624 26C5.818 474.2 14.38 480 24 480c61.49 0 109.1-25.75 139.1-46.25c28.87 9 60.16 14.25 92.9 14.25c141.4 0 255.1-93.13 255.1-207.1S397.4 31.1 256 31.1zM256 400c-26.75 0-53.12-4.125-78.36-12.12l-22.75-7.125L135.4 394.5c-14.25 10.12-33.87 21.38-57.49 29c7.374-12.12 14.37-25.75 19.87-40.25l10.62-28l-20.62-21.87C69.81 314.1 48.06 282.2 48.06 240c0-88.25 93.24-160 207.1-160s207.1 71.75 207.1 160S370.8 400 256 400z\"]\n};\nvar faCommenting = faCommentDots;\nvar faFaceGrinSquint = {\n prefix: 'far',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M208 288C199.2 288 192 295.2 192 304v96C192 408.8 199.2 416 208 416s16-7.164 16-16v-96C224 295.2 216.8 288 208 288zM272 288C263.2 288 256 295.2 256 304v96c0 8.836 7.162 16 15.1 16S288 408.8 288 400l-.0013-96C287.1 295.2 280.8 288 272 288zM376.9 201.2c-13.74-17.12-34.8-27.45-56.92-27.45h-13.72c-3.713 0-7.412 .291-11.07 .8652C282.7 165.1 267.4 160 251.4 160h-11.44V72c0-39.7-32.31-72-72.01-72c-39.7 0-71.98 32.3-71.98 72v168.5C84.85 235.1 75.19 235.4 69.83 235.4c-44.35 0-69.83 37.23-69.83 69.85c0 14.99 4.821 29.51 13.99 41.69l78.14 104.2C120.7 489.3 166.2 512 213.7 512h109.7c6.309 0 12.83-.957 18.14-2.645c28.59-5.447 53.87-19.41 73.17-40.44C436.1 446.3 448 416.2 448 384.2V274.3C448 234.6 416.3 202.3 376.9 201.2zM400 384.2c0 19.62-7.219 38.06-20.44 52.06c-12.53 13.66-29.03 22.67-49.69 26.56C327.4 463.6 325.3 464 323.4 464H213.7c-32.56 0-63.65-15.55-83.18-41.59L52.36 318.2C49.52 314.4 48.02 309.8 48.02 305.2c0-16.32 14.5-21.75 21.72-21.75c4.454 0 12.01 1.55 17.34 8.703l28.12 37.5c3.093 4.105 7.865 6.419 12.8 6.419c11.94 0 16.01-10.7 16.01-16.01V72c0-13.23 10.78-24 23.1-24c13.22 0 24 10.77 24 24v130.7c0 6.938 5.451 16.01 16.03 16.01C219.5 218.7 220.1 208 237.7 208h13.72c21.5 0 18.56 19.21 34.7 19.21c8.063 0 9.805-5.487 20.15-5.487h13.72c26.96 0 17.37 27.43 40.77 27.43l14.07-.0037c13.88 0 25.16 11.28 25.16 25.14V384.2zM336 288C327.2 288 320 295.2 320 304v96c0 8.836 7.164 16 16 16s16-7.164 16-16v-96C352 295.2 344.8 288 336 288z\"]\n};\nvar faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M270.1 480h97.92C447.4 480 512 417.1 512 339.7V231.8c0-23.45-6.106-46.73-17.66-67.33l-31.35-55.85C447.5 81.1 417.1 64 385.9 64h-46.97c-26.63 0-51.56 11.63-68.4 31.93l-15.46 18.71L127.3 68.44C119 65.46 110.5 64.05 102.1 64.05c-30.02 0-58.37 18.06-69.41 47.09C15.06 156.8 46.19 194 76.75 204.9l2.146 .7637L68.79 206.4C30.21 209 0 241.2 0 279.3c0 39.7 33.27 72.09 73.92 72.09c1.745 0 3.501-.0605 5.268-.1833l88.79-6.135v8.141c0 22.11 10.55 43.11 28.05 56.74C197.4 448.8 230.2 480 270.1 480zM269.1 432c-14.34 0-26-11.03-26-24.62c0 0 .0403-14.31 .0403-14.71c0-6.894-4.102-14.2-10.67-16.39c-10.39-3.5-17.38-12.78-17.38-23.06v-13.53c0-16.98 13.7-16.4 13.7-29.89c0-9.083-7.392-15.96-15.96-15.96c-.3646 0-.7311 .0125-1.099 .0377c0 0-138.1 9.505-138.7 9.505c-14.32 0-25.93-11.04-25.93-24.49c0-13.28 10.7-23.74 24.1-24.64l163.2-11.28c2.674-.1882 14.92-2.907 14.92-16.18c0-6.675-4.284-12.58-10.65-14.85L92.84 159.7C85.39 156.1 75.97 149.4 75.97 136.7c0-11.14 9.249-24.66 25.97-24.66c3.043 0 6.141 .5115 9.166 1.59l234.1 85.03c1.801 .6581 3.644 .9701 5.456 .9701c8.96 0 16-7.376 16-15.1c0-6.514-4.068-12.69-10.59-15.04l-64.81-23.47l15.34-18.56C315.2 117.3 326.6 112 338.9 112h46.97c14.77 0 28.28 7.719 35.27 20.16L452.5 188c7.531 13.41 11.52 28.56 11.52 43.81v107.9c0 50.91-43.06 92.31-96 92.31H269.1z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'far',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M519.4 334.4C522.7 342.5 527.8 352.1 535.9 361.1C539.9 365 544.1 368.4 548.6 371.4C506.4 454.8 419.9 512 319.1 512C220.1 512 133.6 454.8 91.4 371.4C95.87 368.4 100.1 365 104.1 361.1C112.2 352.1 117.3 342.5 120.6 334.4C121.8 331.5 122.9 328.6 123.9 325.5C152.5 406.2 229.5 464 319.1 464C410.5 464 487.5 406.2 516.1 325.5C517.1 328.6 518.2 331.5 519.4 334.4V334.4zM319.1 47.1C218.6 47.1 134.2 120.5 115.7 216.5C109.1 213.4 101.4 212.2 93.4 213.3C86.59 214.3 77.18 215.7 66.84 217.7C85.31 94.5 191.6 0 319.1 0C448.4 0 554.7 94.5 573.2 217.7C562.8 215.7 553.4 214.3 546.6 213.3C538.6 212.2 530.9 213.4 524.2 216.5C505.8 120.5 421.4 48 319.1 48V47.1zM78.5 341.1C59.98 356.7 32.01 355.5 14.27 337.7C-4.442 319-4.825 288.9 13.55 270.6C22.19 261.9 43.69 255.4 64.05 250.1C77.02 248.2 89.53 246.2 97.94 245C103.3 244.2 107.8 248.7 106.1 254.1C103.9 275.6 95.58 324.3 81.43 338.4C80.49 339.4 79.51 340.3 78.5 341.1V341.1zM561.5 341.1C560.7 340.5 559.1 339.8 559.2 339.1C559 338.9 558.8 338.7 558.6 338.4C544.4 324.3 536.1 275.6 533 254.1C532.2 248.7 536.7 244.2 542.1 245C543.1 245.2 544.2 245.3 545.4 245.5C553.6 246.7 564.6 248.5 575.1 250.1C596.3 255.4 617.8 261.9 626.4 270.6C644.8 288.9 644.4 319 625.7 337.7C607.1 355.5 580 356.7 561.5 341.1L561.5 341.1zM319.9 399.1C269.6 399.1 225.5 374.6 200.9 336.5C190.5 320.4 207.7 303.1 226.3 308.4C255.3 315.1 286.8 318.8 319.9 318.8C353 318.8 384.6 315.1 413.5 308.4C432.2 303.1 449.4 320.4 438.1 336.5C414.4 374.6 370.3 399.1 319.9 399.1zM281.6 228.8L281.4 228.5C281.2 228.3 281 228 280.7 227.6C280 226.8 279.1 225.7 277.9 224.3C275.4 221.4 271.9 217.7 267.7 213.1C258.9 206.2 248.8 200 239.1 200C231.2 200 221.1 206.2 212.3 213.1C208.1 217.7 204.6 221.4 202.1 224.3C200.9 225.7 199.1 226.8 199.3 227.6C198.1 228 198.8 228.3 198.6 228.5L198.4 228.8L198.4 228.8C196.3 231.6 192.7 232.7 189.5 231.6C186.2 230.5 183.1 227.4 183.1 224C183.1 206.1 190.7 188.4 200.6 175.2C210.4 162.2 224.5 152 239.1 152C255.5 152 269.6 162.2 279.4 175.2C289.3 188.4 295.1 206.1 295.1 224C295.1 227.4 293.8 230.5 290.5 231.6C287.3 232.7 283.7 231.6 281.6 228.8L281.6 228.8zM441.6 228.8L441.6 228.8L441.4 228.5C441.2 228.3 441 228 440.7 227.6C440 226.8 439.1 225.7 437.9 224.3C435.4 221.4 431.9 217.7 427.7 213.1C418.9 206.2 408.8 200 400 200C391.2 200 381.1 206.2 372.3 213.1C368.1 217.7 364.6 221.4 362.1 224.3C360.9 225.7 359.1 226.8 359.3 227.6C358.1 228 358.8 228.3 358.6 228.5L358.4 228.8L358.4 228.8C356.3 231.6 352.7 232.7 349.5 231.6C346.2 230.5 344 227.4 344 223.1C344 206.1 350.7 188.4 360.6 175.2C370.4 162.2 384.5 151.1 400 151.1C415.5 151.1 429.6 162.2 439.4 175.2C449.3 188.4 456 206.1 456 223.1C456 227.4 453.8 230.5 450.5 231.6C447.3 232.7 443.7 231.6 441.6 228.8V228.8z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faCalendarXmark = {\n prefix: 'far',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M257.9 328L304.1 375C314.3 384.4 314.3 399.6 304.1 408.1C295.6 418.3 280.4 418.3 271 408.1L224 361.9L176.1 408.1C167.6 418.3 152.4 418.3 143 408.1C133.7 399.6 133.7 384.4 143 375L190.1 328L143 280.1C133.7 271.6 133.7 256.4 143 247C152.4 237.7 167.6 237.7 176.1 247L224 294.1L271 247C280.4 237.7 295.6 237.7 304.1 247C314.3 256.4 314.3 271.6 304.1 280.1L257.9 328zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM240 288c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-16.52l43.84 30.2C292.3 403.5 304 397.6 304 387.4V284.6c0-10.16-11.64-16.16-20.16-10.32L240 304.5V288z\"]\n};\nvar faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M320 464C328.8 464 336 456.8 336 448V416H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V416H48V448C48 456.8 55.16 464 64 464H320zM256 160C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V192H0V64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V192H336V160H256zM88 224C118.9 224 144 249.1 144 280C144 310.9 118.9 336 88 336H80V368C80 376.8 72.84 384 64 384C55.16 384 48 376.8 48 368V240C48 231.2 55.16 224 64 224H88zM112 280C112 266.7 101.3 256 88 256H80V304H88C101.3 304 112 293.3 112 280zM160 240C160 231.2 167.2 224 176 224H200C226.5 224 248 245.5 248 272V336C248 362.5 226.5 384 200 384H176C167.2 384 160 376.8 160 368V240zM192 352H200C208.8 352 216 344.8 216 336V272C216 263.2 208.8 256 200 256H192V352zM336 224C344.8 224 352 231.2 352 240C352 248.8 344.8 256 336 256H304V288H336C344.8 288 352 295.2 352 304C352 312.8 344.8 320 336 320H304V368C304 376.8 296.8 384 288 384C279.2 384 272 376.8 272 368V240C272 231.2 279.2 224 288 224H336z\"]\n};\nvar faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M256 32C114.6 32 .0272 125.1 .0272 240c0 47.63 19.91 91.25 52.91 126.2c-14.88 39.5-45.87 72.88-46.37 73.25c-6.625 7-8.375 17.25-4.625 26C5.818 474.2 14.38 480 24 480c61.5 0 109.1-25.75 139.1-46.25C191.1 442.8 223.3 448 256 448c141.4 0 255.1-93.13 255.1-208S397.4 32 256 32zM256.1 400c-26.75 0-53.12-4.125-78.38-12.12l-22.75-7.125l-19.5 13.75c-14.25 10.12-33.88 21.38-57.5 29c7.375-12.12 14.37-25.75 19.88-40.25l10.62-28l-20.62-21.87C69.82 314.1 48.07 282.2 48.07 240c0-88.25 93.25-160 208-160s208 71.75 208 160S370.8 400 256.1 400z\"]\n};\nvar faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"]\n};\nvar faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M360 0C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24C0 10.75 10.75 0 24 0L360 0zM192 289.9L110.5 371.5C90.96 390.1 80 417.4 80 445V464H304V445C304 417.4 293 390.1 273.5 371.5L192 289.9zM192 222.1L273.5 140.5C293 121 304 94.56 304 66.98V47.1H80V66.98C80 94.56 90.96 121 110.5 140.5L192 222.1z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M216.1 408.1C207.6 418.3 192.4 418.3 183 408.1L119 344.1C109.7 335.6 109.7 320.4 119 311C128.4 301.7 143.6 301.7 152.1 311L200 358.1L295 263C304.4 253.7 319.6 253.7 328.1 263C338.3 272.4 338.3 287.6 328.1 296.1L216.1 408.1zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"]\n};\nvar faHardDrive = {\n prefix: 'far',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M304 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C328 354.7 317.3 344 304 344zM448 32h-384c-35.35 0-64 28.65-64 64v320c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V96C512 60.65 483.3 32 448 32zM464 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h384C456.8 304 464 311.2 464 320V416zM464 258.3C458.9 256.9 453.6 256 448 256H64C58.44 256 53.14 256.9 48 258.3V96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V258.3zM400 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C424 354.7 413.3 344 400 344z\"]\n};\nvar faHdd = faHardDrive;\nvar faFaceGrinSquintTears = {\n prefix: 'far',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.18C446-5.046 477.5-4.646 497.1 14.92C516.6 34.49 517 65.95 497.8 85.18C483 99.97 432.2 108.8 409.6 111.9C403.1 112.8 399.2 108 400.1 102.4C403.3 79.94 412 28.97 426.8 14.18H426.8zM74.98 74.98C158.2-8.253 284.5-22.19 382.2 33.17C380.6 37.96 379.3 42.81 378.1 47.52C375 59.67 372.6 72.08 370.8 82.52C290.1 28.93 180.1 37.74 108.9 108.9C37.75 180.1 28.94 290 82.49 370.8C72.01 372.6 59.6 374.1 47.46 378.1C42.76 379.3 37.93 380.6 33.15 382.1C-22.19 284.5-8.245 158.2 74.98 74.98V74.98zM478.8 129.9C534.2 227.5 520.2 353.8 437 437C353.8 520.3 227.5 534.2 129.8 478.8C131.3 474 132.7 469.2 133.9 464.5C136.1 452.3 139.4 439.9 141.2 429.5C221.9 483.1 331.9 474.3 403.1 403.1C474.3 331.9 483.1 221.1 429.5 141.2C439.1 139.4 452.4 137 464.5 133.9C469.2 132.7 474.1 131.4 478.8 129.9L478.8 129.9zM359.2 226.9C369.3 210.6 393 210 397 228.8C406.6 273.1 393.4 322.3 357.8 357.9C322.2 393.5 273 406.7 228.6 397.1C209.9 393.1 210.5 369.4 226.8 359.3C252 343.6 276.1 323.9 300.4 300.5C323.8 277.1 343.5 252.1 359.2 226.9L359.2 226.9zM189.5 235.7C201.1 232.1 211.1 242.1 208.5 254.6L178.8 352.1C176.2 360.7 165.4 363.4 159 357C157.1 355 155.8 352.5 155.6 349.7L150.5 293.6L94.43 288.5C91.66 288.3 89.07 287.1 87.1 285.1C80.76 278.7 83.46 267.9 92.05 265.3L189.5 235.7zM288.5 94.43L293.6 150.5L349.7 155.6C352.5 155.8 355 157.1 357 159C363.4 165.4 360.7 176.2 352.1 178.8L254.6 208.5C242.1 211.1 232.1 201.1 235.7 189.5L265.3 92.05C267.9 83.46 278.7 80.76 285.1 87.1C287.1 89.07 288.3 91.66 288.5 94.43V94.43zM14.18 426.8C28.97 412 79.85 403.2 102.4 400.1C108 399.2 112.8 403.1 111.9 409.6C108.7 432.1 99.97 483 85.18 497.8C65.95 517 34.5 516.6 14.93 497.1C-4.645 477.5-5.046 446 14.18 426.8H14.18z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faRectangleList = {\n prefix: 'far',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M128 192C110.3 192 96 177.7 96 160C96 142.3 110.3 128 128 128C145.7 128 160 142.3 160 160C160 177.7 145.7 192 128 192zM200 160C200 146.7 210.7 136 224 136H448C461.3 136 472 146.7 472 160C472 173.3 461.3 184 448 184H224C210.7 184 200 173.3 200 160zM200 256C200 242.7 210.7 232 224 232H448C461.3 232 472 242.7 472 256C472 269.3 461.3 280 448 280H224C210.7 280 200 269.3 200 256zM200 352C200 338.7 210.7 328 224 328H448C461.3 328 472 338.7 472 352C472 365.3 461.3 376 448 376H224C210.7 376 200 365.3 200 352zM128 224C145.7 224 160 238.3 160 256C160 273.7 145.7 288 128 288C110.3 288 96 273.7 96 256C96 238.3 110.3 224 128 224zM128 384C110.3 384 96 369.7 96 352C96 334.3 110.3 320 128 320C145.7 320 160 334.3 160 352C160 369.7 145.7 384 128 384zM0 96C0 60.65 28.65 32 64 32H512C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V96C528 87.16 520.8 80 512 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faListAlt = faRectangleList;\nvar faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M224 232C237.3 232 248 242.7 248 256V304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H248V400C248 413.3 237.3 424 224 424C210.7 424 200 413.3 200 400V352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H200V256C200 242.7 210.7 232 224 232zM152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z\"]\n};\nvar faCircleLeft = {\n prefix: 'far',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M360 224L272 224v-56c0-9.531-5.656-18.16-14.38-22C248.9 142.2 238.7 143.9 231.7 150.4l-96 88.75C130.8 243.7 128 250.1 128 256.8c.3125 7.781 2.875 13.25 7.844 17.75l96 87.25c7.031 6.406 17.19 8.031 25.88 4.188s14.28-12.44 14.28-21.94l-.002-56L360 288C373.3 288 384 277.3 384 264v-16C384 234.8 373.3 224 360 224zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faMoneyBill1 = {\n prefix: 'far',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M400 256C400 317.9 349.9 368 288 368C226.1 368 176 317.9 176 256C176 194.1 226.1 144 288 144C349.9 144 400 194.1 400 256zM272 224V288H264C255.2 288 248 295.2 248 304C248 312.8 255.2 320 264 320H312C320.8 320 328 312.8 328 304C328 295.2 320.8 288 312 288H304V208C304 199.2 296.8 192 288 192H272C263.2 192 256 199.2 256 208C256 216.8 263.2 224 272 224zM0 128C0 92.65 28.65 64 64 64H512C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128zM48 176V336C83.35 336 112 364.7 112 400H464C464 364.7 492.7 336 528 336V176C492.7 176 464 147.3 464 112H112C112 147.3 83.35 176 48 176z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M232 120C232 106.7 242.7 96 256 96C269.3 96 280 106.7 280 120V243.2L365.3 300C376.3 307.4 379.3 322.3 371.1 333.3C364.6 344.3 349.7 347.3 338.7 339.1L242.7 275.1C236 271.5 232 264 232 255.1L232 120zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256z\"]\n};\nvar faClockFour = faClock;\nvar faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M512 64H64C28.65 64 0 92.65 0 128v256c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V128C576 92.65 547.3 64 512 64zM528 384c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V128c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V384zM140 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 157.3 146.7 152 140 152zM196 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 194.7 189.3 200 196 200zM276 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 194.7 269.3 200 276 200zM356 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 194.7 349.3 200 356 200zM460 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 157.3 466.7 152 460 152zM140 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 237.3 146.7 232 140 232zM196 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 274.7 189.3 280 196 280zM276 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 274.7 269.3 280 276 280zM356 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 274.7 349.3 280 356 280zM460 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 237.3 466.7 232 460 232zM400 320h-224C167.1 320 160 327.1 160 336V352c0 8.875 7.125 16 16 16h224c8.875 0 16-7.125 16-16v-16C416 327.1 408.9 320 400 320z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416zM236.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C116.5 206.2 106.5 230.4 106.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C159.5 280.9 154.5 268.8 154.5 256s5-24.88 14.06-33.94C187.3 203.3 217.8 203.3 236.5 222.1zM428.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C308.5 206.2 298.5 230.4 298.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C351.5 280.9 346.5 268.8 346.5 256s5-24.88 14.06-33.94C379.3 203.3 409.8 203.3 428.5 222.1z\"]\n};\nvar faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M512 32H160c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64H512c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 320c0 8.822-7.178 16-16 16h-16l-109.3-160.9C383.7 170.7 378.7 168 373.3 168c-5.352 0-10.35 2.672-13.31 7.125l-62.74 94.11L274.9 238.6C271.9 234.4 267.1 232 262 232c-5.109 0-9.914 2.441-12.93 6.574L176 336H160c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16H512c8.822 0 16 7.178 16 16V320zM224 112c-17.67 0-32 14.33-32 32s14.33 32 32 32c17.68 0 32-14.33 32-32S241.7 112 224 112zM456 480H120C53.83 480 0 426.2 0 360v-240C0 106.8 10.75 96 24 96S48 106.8 48 120v240c0 39.7 32.3 72 72 72h336c13.25 0 24 10.75 24 24S469.3 480 456 480z\"]\n};\nvar faFaceGrin = {\n prefix: 'far',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFaceMeh = {\n prefix: 'far',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM328 328C341.3 328 352 338.7 352 352C352 365.3 341.3 376 328 376H184C170.7 376 160 365.3 160 352C160 338.7 170.7 328 184 328H328zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faMeh = faFaceMeh;\nvar faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M368 344h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 344 368 344zM208 320c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 291.3 172.7 320 208 320zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16h-192c0-44.18-35.82-80-80-80h-64C131.8 352 96 387.8 96 432H64c-8.822 0-16-7.178-16-16V160h480V416zM368 264h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 264 368 264z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M505.2 324.8l-47.73-68.78l47.75-68.81c7.359-10.62 8.797-24.12 3.844-36.06c-4.969-11.94-15.52-20.44-28.22-22.72l-82.39-14.88l-14.89-82.41c-2.281-12.72-10.76-23.25-22.69-28.22c-11.97-4.936-25.42-3.498-36.12 3.844L256 54.49L187.2 6.709C176.5-.6016 163.1-2.039 151.1 2.896c-11.92 4.971-20.4 15.5-22.7 28.19l-14.89 82.44L31.15 128.4C18.42 130.7 7.854 139.2 2.9 151.2C-2.051 163.1-.5996 176.6 6.775 187.2l47.73 68.78l-47.75 68.81c-7.359 10.62-8.795 24.12-3.844 36.06c4.969 11.94 15.52 20.44 28.22 22.72l82.39 14.88l14.89 82.41c2.297 12.72 10.78 23.25 22.7 28.22c11.95 4.906 25.44 3.531 36.09-3.844L256 457.5l68.83 47.78C331.3 509.7 338.8 512 346.3 512c4.906 0 9.859-.9687 14.56-2.906c11.92-4.969 20.4-15.5 22.7-28.19l14.89-82.44l82.37-14.88c12.73-2.281 23.3-10.78 28.25-22.75C514.1 348.9 512.6 335.4 505.2 324.8zM456.8 339.2l-99.61 18l-18 99.63L256 399.1L172.8 456.8l-18-99.63l-99.61-18L112.9 255.1L55.23 172.8l99.61-18l18-99.63L256 112.9l83.15-57.75l18.02 99.66l99.61 18L399.1 255.1L456.8 339.2zM256 143.1c-61.85 0-111.1 50.14-111.1 111.1c0 61.85 50.15 111.1 111.1 111.1s111.1-50.14 111.1-111.1C367.1 194.1 317.8 143.1 256 143.1zM256 319.1c-35.28 0-63.99-28.71-63.99-63.99S220.7 192 256 192s63.99 28.71 63.99 63.1S291.3 319.1 256 319.1z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'far',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM281.9 214.6C273.9 207 273.5 194.4 281 186.3C295.6 170.8 316.3 164 335.6 164C354.1 164 375.7 170.8 390.2 186.3C397.8 194.4 397.4 207 389.3 214.6C381.2 222.1 368.6 221.7 361 213.7C355.6 207.8 346.3 204 335.6 204C324.1 204 315.7 207.8 310.2 213.7C302.7 221.7 290 222.1 281.9 214.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faCircleDown = {\n prefix: 'far',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M344 240h-56L287.1 152c0-13.25-10.75-24-24-24h-16C234.7 128 223.1 138.8 223.1 152L224 240h-56c-9.531 0-18.16 5.656-22 14.38C142.2 263.1 143.9 273.3 150.4 280.3l88.75 96C243.7 381.2 250.1 384 256.8 384c7.781-.3125 13.25-2.875 17.75-7.844l87.25-96c6.406-7.031 8.031-17.19 4.188-25.88S353.5 240 344 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M128 288V64.03c0-17.67-14.33-31.1-32-31.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64C113.7 320 128 305.7 128 288zM481.5 229.1c1.234-5.092 1.875-10.32 1.875-15.64c0-22.7-11.44-43.13-29.28-55.28c.4219-3.015 .6406-6.076 .6406-9.122c0-22.32-11.06-42.6-28.83-54.83c-2.438-34.71-31.47-62.2-66.8-62.2h-52.53c-35.94 0-71.55 11.87-100.3 33.41L169.6 92.93c-6.285 4.71-9.596 11.85-9.596 19.13c0 12.76 10.29 24.04 24.03 24.04c5.013 0 10.07-1.565 14.38-4.811l36.66-27.51c20.48-15.34 45.88-23.81 71.5-23.81h52.53c10.45 0 18.97 8.497 18.97 18.95c0 3.5-1.11 4.94-1.11 9.456c0 26.97 29.77 17.91 29.77 40.64c0 9.254-6.392 10.96-6.392 22.25c0 13.97 10.85 21.95 19.58 23.59c8.953 1.671 15.45 9.481 15.45 18.56c0 13.04-11.39 13.37-11.39 28.91c0 12.54 9.702 23.08 22.36 23.94C456.2 266.1 464 275.2 464 284.1c0 10.43-8.516 18.93-18.97 18.93H307.4c-12.44 0-24 10.02-24 23.1c0 4.038 1.02 8.078 3.066 11.72C304.4 371.7 312 403.8 312 411.2c0 8.044-5.984 20.79-22.06 20.79c-12.53 0-14.27-.9059-24.94-28.07c-24.75-62.91-61.74-99.9-80.98-99.9c-13.8 0-24.02 11.27-24.02 23.99c0 7.041 3.083 14.02 9.016 18.76C238.1 402 211.4 480 289.9 480C333.8 480 360 445 360 411.2c0-12.7-5.328-35.21-14.83-59.33h99.86C481.1 351.9 512 321.9 512 284.1C512 261.8 499.9 241 481.5 229.1z\"]\n};\nvar faChessPawn = {\n prefix: 'far',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M296 463.1H23.1c-13.25 0-23.1 10.75-23.1 24s10.75 24 23.1 24h272c13.25 0 23.1-10.75 23.1-23.1S309.3 463.1 296 463.1zM55.1 287.1L80 287.1v29.5c0 40.25-3.5 81.25-23.38 114.5h53.5C125.1 394.1 128 354.6 128 317.5v-29.5h64v29.5c0 37.13 2.875 77.5 17.88 114.5h53.5C243.5 398.7 240 357.7 240 317.5V287.1l24-.0001C277.3 287.1 288 277.3 288 263.1c0-13.25-10.75-24-23.1-24H241c23.75-21.88 38.1-53.12 38.1-87.1c0-9.393-1.106-19.05-3.451-28.86C272.3 105.4 244.9 32 159.1 32C93.75 32 40 85.75 40 151.1c0 34.88 15.12 66.12 39 88H55.1C42.75 239.1 32 250.7 32 263.1C32 277.3 42.75 287.1 55.1 287.1zM160 79.1c39.75 0 72 32.25 72 72S199.8 223.1 160 223.1S88 191.7 88 151.1S120.2 79.1 160 79.1z\"]\n};\nvar faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M168 336C181.3 336 192 346.7 192 360C192 373.3 181.3 384 168 384H120C106.7 384 96 373.3 96 360C96 346.7 106.7 336 120 336H168zM360 336C373.3 336 384 346.7 384 360C384 373.3 373.3 384 360 384H248C234.7 384 224 373.3 224 360C224 346.7 234.7 336 248 336H360zM512 32C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H512zM512 80H64C55.16 80 48 87.16 48 96V128H528V96C528 87.16 520.8 80 512 80zM528 224H48V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V224z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M256 32V49.88C328.5 61.39 384 124.2 384 200V233.4C384 278.8 399.5 322.9 427.8 358.4L442.7 377C448.5 384.2 449.6 394.1 445.6 402.4C441.6 410.7 433.2 416 424 416H24C14.77 416 6.365 410.7 2.369 402.4C-1.628 394.1-.504 384.2 5.26 377L20.17 358.4C48.54 322.9 64 278.8 64 233.4V200C64 124.2 119.5 61.39 192 49.88V32C192 14.33 206.3 0 224 0C241.7 0 256 14.33 256 32V32zM216 96C158.6 96 112 142.6 112 200V233.4C112 281.3 98.12 328 72.31 368H375.7C349.9 328 336 281.3 336 233.4V200C336 142.6 289.4 96 232 96H216zM288 448C288 464.1 281.3 481.3 269.3 493.3C257.3 505.3 240.1 512 224 512C207 512 190.7 505.3 178.7 493.3C166.7 481.3 160 464.1 160 448H288z\"]\n};\nvar faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z\"]\n};\nvar faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M296 96C296 87.16 303.2 80 312 80H328C336.8 80 344 87.16 344 96V120H368C376.8 120 384 127.2 384 136V152C384 160.8 376.8 168 368 168H344V192C344 200.8 336.8 208 328 208H312C303.2 208 296 200.8 296 192V168H272C263.2 168 256 160.8 256 152V136C256 127.2 263.2 120 272 120H296V96zM408 0C447.8 0 480 32.24 480 72V80H568C607.8 80 640 112.2 640 152V440C640 479.8 607.8 512 568 512H71.98C32.19 512 0 479.8 0 440V152C0 112.2 32.24 80 72 80H160V72C160 32.24 192.2 0 232 0L408 0zM480 128V464H568C581.3 464 592 453.3 592 440V336H536C522.7 336 512 325.3 512 312C512 298.7 522.7 288 536 288H592V240H536C522.7 240 512 229.3 512 216C512 202.7 522.7 192 536 192H592V152C592 138.7 581.3 128 568 128H480zM48 152V192H104C117.3 192 128 202.7 128 216C128 229.3 117.3 240 104 240H48V288H104C117.3 288 128 298.7 128 312C128 325.3 117.3 336 104 336H48V440C48 453.3 58.74 464 71.98 464H160V128H72C58.75 128 48 138.7 48 152V152zM208 464H272V400C272 373.5 293.5 352 320 352C346.5 352 368 373.5 368 400V464H432V72C432 58.75 421.3 48 408 48H232C218.7 48 208 58.75 208 72V464z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faChessRook = {\n prefix: 'far',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464zM345.1 32h-308C17 32 0 49 0 70v139.4C0 218.8 4 227.5 11 233.6L48 265.8c0 8.885 .0504 17.64 .0504 26.46c0 39.32-1.001 79.96-11.93 139.8h49C94.95 374.3 96.11 333.3 96.11 285.5C96.11 270.7 96 255.1 96 238.2L48 196.5V80h64V128H160V80h64V128h48V80h64v116.5L288 238.2c0 16.77-.1124 32.25-.1124 47.1c0 47.79 1.164 89.15 10.99 146.7h49c-10.92-59.83-11.93-100.6-11.93-139.9C335.9 283.3 336 274.6 336 265.8l37-32.13C380 227.5 384 218.8 384 209.4V70C384 49 367 32 345.1 32zM192 224C174.4 224 160 238.4 160 256v64h64V256C224 238.4 209.6 224 192 224z\"]\n};\nvar faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M293.3 .6123C304.2 3.118 311.9 12.82 311.9 24V408.7C311.9 417.5 307.1 425.7 299.2 429.8L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.1 115.1 483.9L142.2 328.4L31.11 218.3C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C271.2 3.46 282.4-1.893 293.3 .6127L293.3 .6123zM263.9 128.4L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L263.9 394.3L263.9 128.4z\"]\n};\nvar faChessKing = {\n prefix: 'far',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M391.9 464H55.95c-13.25 0-23.1 10.75-23.1 23.1S42.7 512 55.95 512h335.1c13.25 0 23.1-10.75 23.1-23.1S405.2 464 391.9 464zM448 216c0-11.82-3.783-23.51-11.08-33.17c-10.3-14.39-27-22.88-44.73-22.88L247.9 160V104h31.1c13.2 0 24.06-10.8 24.06-24S293.1 56 279.9 56h-31.1V23.1C247.9 10.8 237.2 0 223.1 0S199.9 10.8 199.9 23.1V56H167.9c-13.2 0-23.97 10.8-23.97 24S154.7 104 167.9 104h31.1V160H55.95C24.72 160 0 185.3 0 215.9C0 221.6 .8893 227.4 2.704 233L68.45 432h50.5L48.33 218.4C48.09 217.6 47.98 216.9 47.98 216.1C47.98 212.3 50.93 208 55.95 208h335.9c6.076 0 8.115 5.494 8.115 8.113c0 .6341-.078 1.269-.2405 1.887L328.8 432h50.62l65.1-199.2C447.2 227.3 448 221.7 448 216z\"]\n};\nvar faCircleUser = {\n prefix: 'far',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M256 112c-48.6 0-88 39.4-88 88C168 248.6 207.4 288 256 288s88-39.4 88-88C344 151.4 304.6 112 256 112zM256 240c-22.06 0-40-17.95-40-40C216 177.9 233.9 160 256 160s40 17.94 40 40C296 222.1 278.1 240 256 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-46.73 0-89.76-15.68-124.5-41.79C148.8 389 182.4 368 220.2 368h71.69c37.75 0 71.31 21.01 88.68 54.21C345.8 448.3 302.7 464 256 464zM416.2 388.5C389.2 346.3 343.2 320 291.8 320H220.2c-51.36 0-97.35 26.25-124.4 68.48C65.96 352.5 48 306.3 48 256c0-114.7 93.31-208 208-208s208 93.31 208 208C464 306.3 446 352.5 416.2 388.5z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [512, 512, [], \"f0c5\", \"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z\"]\n};\nvar faShareFromSquare = {\n prefix: 'far',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M400 255.4V240 208c0-8.8-7.2-16-16-16H352 336 289.5c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112h48 16 32c8.8 0 16-7.2 16-16V80 64.6L506 160 400 255.4zM336 240h16v48c0 17.7 14.3 32 32 32h3.7c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7V80H336 304 288c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4h2.5c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5l0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5H304h32zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM255.1 176C255.1 176 255.1 176 255.1 176c21.06 0 40.92 8.312 55.83 23.38c9.375 9.344 24.53 9.5 33.97 .1562c9.406-9.344 9.469-24.53 .1562-33.97c-24-24.22-55.95-37.56-89.95-37.56c0 0 .0313 0 0 0c-33.97 0-65.95 13.34-89.95 37.56c-49.44 49.88-49.44 131 0 180.9c24 24.22 55.98 37.56 89.95 37.56c.0313 0 0 0 0 0c34 0 65.95-13.34 89.95-37.56c9.312-9.438 9.25-24.62-.1562-33.97c-9.438-9.312-24.59-9.219-33.97 .1562c-14.91 15.06-34.77 23.38-55.83 23.38c0 0 .0313 0 0 0c-21.09 0-40.95-8.312-55.89-23.38c-30.94-31.22-30.94-82.03 0-113.3C214.2 184.3 234 176 255.1 176z\"]\n};\nvar faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M565.6 36.24C572.1 40.72 576 48.11 576 56V392C576 401.1 569.8 410.9 560.5 414.4L392.5 478.4C387.4 480.4 381.7 480.5 376.4 478.8L192.5 417.5L32.54 478.4C25.17 481.2 16.88 480.2 10.38 475.8C3.882 471.3 0 463.9 0 456V120C0 110 6.15 101.1 15.46 97.57L183.5 33.57C188.6 31.6 194.3 31.48 199.6 33.23L383.5 94.52L543.5 33.57C550.8 30.76 559.1 31.76 565.6 36.24H565.6zM48 421.2L168 375.5V90.83L48 136.5V421.2zM360 137.3L216 89.3V374.7L360 422.7V137.3zM408 421.2L528 375.5V90.83L408 136.5V421.2z\"]\n};\nvar faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M183.6 118.6C206.5 82.58 244.1 56.84 288 49.88V32C288 14.33 302.3 .0003 320 .0003C337.7 .0003 352 14.33 352 32V49.88C424.5 61.39 480 124.2 480 200V233.4C480 278.8 495.5 322.9 523.8 358.4L538.7 377C543.1 383.5 545.4 392.2 542.6 400L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L183.6 118.6zM221.7 148.4L450.7 327.1C438.4 298.2 432 266.1 432 233.4V200C432 142.6 385.4 96 328 96H312C273.3 96 239.6 117.1 221.7 148.4V148.4zM160 233.4V222.1L206.7 258.9C202.7 297.7 189.5 335.2 168.3 368H345.2L406.2 416H120C110.8 416 102.4 410.7 98.37 402.4C94.37 394.1 95.5 384.2 101.3 377L116.2 358.4C144.5 322.9 160 278.8 160 233.4V233.4zM384 448C384 464.1 377.3 481.3 365.3 493.3C353.3 505.3 336.1 512 320 512C303 512 286.7 505.3 274.7 493.3C262.7 481.3 256 464.1 256 448H384z\"]\n};\nvar faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M512 331.8V424c0 13.25-10.75 24-24 24c-13.25 0-24-10.75-24-24v-92.17c0-10.09-3.031-19.8-8.766-28.08l-118.6-170.5C327.4 119.1 312.2 112 295.1 112H53.32c-2.5 0-5.25 2.453-5.313 4.172c-.2969 9.5 3.156 18.47 9.75 25.28C64.36 148.3 73.2 152 82.67 152h161.8c17.09 0 33.4 8.281 43.4 22.14c9.984 13.88 12.73 31.83 7.328 48.05l-9.781 29.34C278.2 273.3 257.8 288 234.9 288H138.7C129.2 288 120.4 291.8 113.8 298.5c-6.594 6.812-10.05 15.78-9.75 25.28C104.1 325.5 106.8 328 109.3 328h156.6c5.188 0 10.14 1.688 14.3 4.797l78.22 58.67c6.031 4.531 9.594 11.66 9.594 19.2L367.1 424c0 13.25-10.75 24-24 24s-24-10.75-24-24v-1.328L257.8 376H109.3c-28.48 0-52.39-22.72-53.28-50.64c-.7187-22.61 7.531-43.98 23.23-60.2C94.1 248.9 116.1 240 138.7 240h96.19c2.297 0 4.328-1.469 5.063-3.656l9.781-29.33c.7031-2.141-.0156-3.797-.7344-4.797C248.2 201.2 246.9 200 244.6 200H82.67c-22.58 0-43.67-8.938-59.39-25.16C7.575 158.6-.6755 137.3 .0433 114.6C.9339 86.72 24.84 64 53.32 64h242.7c31.94 0 61.86 15.67 80.05 41.92l118.6 170.5C506 292.8 512 311.9 512 331.8z\"]\n};\nvar faFaceSmile = {\n prefix: 'far',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSmile = faFaceSmile;\nvar faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M412 160c-8.326 0-16.3 1.51-23.68 4.27C375.1 151.8 358.9 144 340 144c-11.64 0-22.44 3.223-32.03 8.418l11.12-68.95c.6228-3.874 .9243-7.725 .9243-11.53c0-36.08-28.91-71.95-72.09-71.95c-34.68 0-65.31 25.16-71.03 60.54L173.4 82.22L168.9 72.77c-12.4-25.75-38.07-40.78-64.89-40.78c-40.8 0-72.01 33.28-72.01 72.07c0 10.48 2.296 21.11 7.144 31.18L89.05 238.9C64.64 250.4 48 275.7 48 303.1v80c0 22.06 10.4 43.32 27.83 56.86l45.95 35.74c29.35 22.83 65.98 35.41 103.2 35.41l78.81 .0352C400.9 512 480 432.1 480 335.8v-107.5C480 189.6 447.9 160 412 160zM320 212.3C320 201.1 328.1 192 340 192c11.02 0 20 9.078 20 20.25v55.5C360 278.9 351 288 340 288C328.1 288 320 278.9 320 267.8V212.3zM247.9 47.98c12.05 0 24.13 9.511 24.13 23.98c0 1.277-.1022 2.57-.3134 3.871L248.4 220.5C240.7 217.6 232.4 215.1 223.9 215.1c0 0 .002 0 0 0c-4.475 0-8.967 .4199-13.38 1.254l-10.55 1.627l24.32-150.7C226.2 56.42 236.4 47.98 247.9 47.98zM79.1 104c0-13.27 10.79-24.04 24.02-24.04c8.937 0 17.5 5.023 21.61 13.61l61.29 127.3L137.3 228.5L82.38 114.4C80.76 111.1 79.1 107.5 79.1 104zM303.8 464l-78.81-.0352c-26.56 0-52.72-8.984-73.69-25.3l-45.97-35.75C99.47 398.4 96 391.3 96 383.1v-80c0-11.23 7.969-21.11 17.59-23.22l105.3-16.23C220.6 264.2 222.3 263.1 223.9 263.1c11.91 0 24.09 9.521 24.09 24.06c0 11.04-7.513 20.95-17.17 23.09L172.8 319c-12.03 1.633-20.78 11.92-20.78 23.75c0 20.21 18.82 24.08 23.7 24.08c2.645 0 64.61-8.619 65.54-8.826c23.55-5.227 41.51-22.23 49.73-43.64C303.3 327.5 320.6 336 340 336c8.326 0 16.31-1.51 23.69-4.27C376 344.2 393.1 352 412 352c.1992 0 10.08-.4453 18.65-2.92C423.9 413.5 369.9 464 303.8 464zM432 283.8C432 294.9 423 304 412 304c-11.02 0-20-9.078-20-20.25v-55.5C392 217.1 400.1 208 412 208c11.02 0 20 9.078 20 20.25V283.8z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'far',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM238.9 177.1L221.4 243C219.1 251.6 210.4 256.6 201.8 254.3L136.7 236.9C118.9 232.1 108.4 213.8 113.1 196.1C117.9 178.3 136.2 167.7 153.1 172.5L170.1 176.8L174.4 160.7C179.2 142.9 197.5 132.4 215.3 137.1C233.1 141.9 243.6 160.2 238.9 177.1H238.9zM341.9 176.8L358 172.5C375.8 167.7 394.1 178.3 398.9 196.1C403.6 213.8 393.1 232.1 375.3 236.9L310.2 254.3C301.6 256.6 292.9 251.6 290.6 243L273.1 177.1C268.4 160.2 278.9 141.9 296.7 137.1C314.5 132.4 332.8 142.9 337.6 160.7L341.9 176.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M88 104C88 95.16 95.16 88 104 88H152C160.8 88 168 95.16 168 104V152C168 160.8 160.8 168 152 168H104C95.16 168 88 160.8 88 152V104zM280 88C288.8 88 296 95.16 296 104V152C296 160.8 288.8 168 280 168H232C223.2 168 216 160.8 216 152V104C216 95.16 223.2 88 232 88H280zM88 232C88 223.2 95.16 216 104 216H152C160.8 216 168 223.2 168 232V280C168 288.8 160.8 296 152 296H104C95.16 296 88 288.8 88 280V232zM280 216C288.8 216 296 223.2 296 232V280C296 288.8 288.8 296 280 296H232C223.2 296 216 288.8 216 280V232C216 223.2 223.2 216 232 216H280zM0 64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM48 64V448C48 456.8 55.16 464 64 464H144V400C144 373.5 165.5 352 192 352C218.5 352 240 373.5 240 400V464H320C328.8 464 336 456.8 336 448V64C336 55.16 328.8 48 320 48H64C55.16 48 48 55.16 48 64z\"]\n};\nvar faFaceGrinBeamSweat = {\n prefix: 'far',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M464 128C437.5 128 416 107 416 81.01C416 76.01 417.8 69.74 420.6 62.87C420.9 62.17 421.2 61.46 421.6 60.74C430.5 40.51 448.1 15.86 457.6 3.281C460.8-1.094 467.2-1.094 470.4 3.281C483.4 20.65 512 61.02 512 81.01C512 102.7 497.1 120.8 476.8 126.3C472.7 127.4 468.4 128 464 128L464 128zM391.1 50.53C387.8 58.57 384 69.57 384 81.01C384 84.1 384.3 88.91 384.9 92.72C349.4 64.71 304.7 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 219.7 454.7 185.5 438.3 155.8C446.4 158.5 455.1 160 464 160C473.6 160 482.8 158.3 491.4 155.2C504.7 186.2 512 220.2 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 .0002 256 .0002C307.4 .0002 355.3 15.15 395.4 41.23C393.9 44.32 392.4 47.43 391.1 50.53V50.53zM255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.9 255.9 318.9C289 318.9 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1zM217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 119.1 227.4 119.1 224C119.1 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 175.1 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 231.1 206.1 231.1 224C231.1 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8L217.6 228.8zM377.6 228.8L377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8V228.8z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [512, 512, [127769, 9214], \"f186\", \"M421.6 379.9c-.6641 0-1.35 .0625-2.049 .1953c-11.24 2.143-22.37 3.17-33.32 3.17c-94.81 0-174.1-77.14-174.1-175.5c0-63.19 33.79-121.3 88.73-152.6c8.467-4.812 6.339-17.66-3.279-19.44c-11.2-2.078-29.53-3.746-40.9-3.746C132.3 31.1 32 132.2 32 256c0 123.6 100.1 224 223.8 224c69.04 0 132.1-31.45 173.8-82.93C435.3 389.1 429.1 379.9 421.6 379.9zM255.8 432C158.9 432 80 353 80 256c0-76.32 48.77-141.4 116.7-165.8C175.2 125 163.2 165.6 163.2 207.8c0 99.44 65.13 183.9 154.9 212.8C298.5 428.1 277.4 432 255.8 432z\"]\n};\nvar faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z\"]\n};\nvar faFaceGrinTongueWink = {\n prefix: 'far',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.9 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM312.4 208C312.4 194.7 323.1 184 336.4 184C349.6 184 360.4 194.7 360.4 208C360.4 221.3 349.6 232 336.4 232C323.1 232 312.4 221.3 312.4 208zM256 208C256 163.8 291.8 128 336 128C380.2 128 416 163.8 416 208C416 252.2 380.2 288 336 288C291.8 288 256 252.2 256 208zM336 256C362.5 256 384 234.5 384 208C384 181.5 362.5 160 336 160C309.5 160 288 181.5 288 208C288 234.5 309.5 256 336 256zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4H348.3zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M64 464H288C296.8 464 304 456.8 304 448V384H352V448C352 483.3 323.3 512 288 512H64C28.65 512 0 483.3 0 448V224C0 188.7 28.65 160 64 160H128V208H64C55.16 208 48 215.2 48 224V448C48 456.8 55.16 464 64 464zM160 64C160 28.65 188.7 0 224 0H448C483.3 0 512 28.65 512 64V288C512 323.3 483.3 352 448 352H224C188.7 352 160 323.3 160 288V64zM224 304H448C456.8 304 464 296.8 464 288V64C464 55.16 456.8 48 448 48H224C215.2 48 208 55.16 208 64V288C208 296.8 215.2 304 224 304z\"]\n};\nvar faFaceAngry = {\n prefix: 'far',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M328.4 393.5C318.7 402.6 303.5 402.1 294.5 392.4C287.1 384.5 274.4 376 256 376C237.6 376 224.9 384.5 217.5 392.4C208.5 402.1 193.3 402.6 183.6 393.5C173.9 384.5 173.4 369.3 182.5 359.6C196.7 344.3 221.4 328 256 328C290.6 328 315.3 344.3 329.5 359.6C338.6 369.3 338.1 384.5 328.4 393.5zM144.4 240C144.4 231.2 147.9 223.2 153.7 217.4L122.9 207.2C114.6 204.4 110 195.3 112.8 186.9C115.6 178.6 124.7 174 133.1 176.8L229.1 208.8C237.4 211.6 241.1 220.7 239.2 229.1C236.4 237.4 227.3 241.1 218.9 239.2L208.1 235.6C208.3 237 208.4 238.5 208.4 240C208.4 257.7 194 272 176.4 272C158.7 272 144.4 257.7 144.4 240V240zM368.4 240C368.4 257.7 354 272 336.4 272C318.7 272 304.4 257.7 304.4 240C304.4 238.4 304.5 236.8 304.7 235.3L293.1 239.2C284.7 241.1 275.6 237.4 272.8 229.1C270 220.7 274.6 211.6 282.9 208.8L378.9 176.8C387.3 174 396.4 178.6 399.2 186.9C401.1 195.3 397.4 204.4 389.1 207.2L358.9 217.2C364.7 223 368.4 231.1 368.4 240H368.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faAngry = faFaceAngry;\nvar faRectangleXmark = {\n prefix: 'far',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM0 96C0 60.65 28.65 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V96C464 87.16 456.8 80 448 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376V479.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"]\n};\nvar faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M464.1 431C474.3 440.4 474.3 455.6 464.1 464.1C455.6 474.3 440.4 474.3 431 464.1L419.3 453.2C374.9 489.9 318.1 512 256 512C193.9 512 137.1 489.9 92.74 453.2L80.97 464.1C71.6 474.3 56.4 474.3 47.03 464.1C37.66 455.6 37.66 440.4 47.03 431L58.8 419.3C22.08 374.9 0 318.1 0 256C0 193.9 22.08 137.1 58.8 92.74L47.03 80.97C37.66 71.6 37.66 56.4 47.03 47.03C56.4 37.66 71.6 37.66 80.97 47.03L92.74 58.8C137.1 22.08 193.9 0 256 0C318.1 0 374.9 22.08 419.3 58.8L431 47.03C440.4 37.66 455.6 37.66 464.1 47.03C474.3 56.4 474.3 71.6 464.1 80.97L453.2 92.74C489.9 137.1 512 193.9 512 256C512 318.1 489.9 374.9 453.2 419.3L464.1 431zM304.8 338.7C290.5 347.2 273.8 352 256 352C238.2 352 221.5 347.2 207.2 338.7L126.9 419.1C162.3 447.2 207.2 464 256 464C304.8 464 349.7 447.2 385.1 419.1L304.8 338.7zM464 256C464 207.2 447.2 162.3 419.1 126.9L338.7 207.2C347.2 221.5 352 238.2 352 256C352 273.8 347.2 290.5 338.7 304.8L419.1 385.1C447.2 349.7 464 304.8 464 256V256zM256 48C207.2 48 162.3 64.8 126.9 92.93L207.2 173.3C221.5 164.8 238.2 160 256 160C273.8 160 290.5 164.8 304.8 173.3L385.1 92.93C349.7 64.8 304.8 48 256 48V48zM173.3 304.8C164.8 290.5 160 273.8 160 256C160 238.2 164.8 221.5 173.3 207.2L92.93 126.9C64.8 162.3 48 207.2 48 256C48 304.8 64.8 349.7 92.93 385.1L173.3 304.8zM256 208C229.5 208 208 229.5 208 256C208 282.5 229.5 304 256 304C282.5 304 304 282.5 304 256C304 229.5 282.5 208 256 208z\"]\n};\nvar faFaceGrimace = {\n prefix: 'far',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M344 288C374.9 288 400 313.1 400 344C400 374.9 374.9 400 344 400H168C137.1 400 112 374.9 112 344C112 313.1 137.1 288 168 288H344zM168 320C154.7 320 144 330.7 144 344C144 357.3 154.7 368 168 368H176V320H168zM208 368H240V320H208V368zM304 320H272V368H304V320zM336 368H344C357.3 368 368 357.3 368 344C368 330.7 357.3 320 344 320H336V368zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M152 352C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H152zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"]\n};\nvar faCircleXmark = {\n prefix: 'far',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M96 191.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64c17.67 0 32-14.33 32-31.1V223.1C128 206.3 113.7 191.1 96 191.1zM512 227c0-36.89-30.05-66.92-66.97-66.92h-99.86C354.7 135.1 360 113.5 360 100.8c0-33.8-26.2-68.78-70.06-68.78c-46.61 0-59.36 32.44-69.61 58.5c-31.66 80.5-60.33 66.39-60.33 93.47c0 12.84 10.36 23.99 24.02 23.99c5.256 0 10.55-1.721 14.97-5.26c76.76-61.37 57.97-122.7 90.95-122.7c16.08 0 22.06 12.75 22.06 20.79c0 7.404-7.594 39.55-25.55 71.59c-2.046 3.646-3.066 7.686-3.066 11.72c0 13.92 11.43 23.1 24 23.1h137.6C455.5 208.1 464 216.6 464 227c0 9.809-7.766 18.03-17.67 18.71c-12.66 .8593-22.36 11.4-22.36 23.94c0 15.47 11.39 15.95 11.39 28.91c0 25.37-35.03 12.34-35.03 42.15c0 11.22 6.392 13.03 6.392 22.25c0 22.66-29.77 13.76-29.77 40.64c0 4.515 1.11 5.961 1.11 9.456c0 10.45-8.516 18.95-18.97 18.95h-52.53c-25.62 0-51.02-8.466-71.5-23.81l-36.66-27.51c-4.315-3.245-9.37-4.811-14.38-4.811c-13.85 0-24.03 11.38-24.03 24.04c0 7.287 3.312 14.42 9.596 19.13l36.67 27.52C235 468.1 270.6 480 306.6 480h52.53c35.33 0 64.36-27.49 66.8-62.2c17.77-12.23 28.83-32.51 28.83-54.83c0-3.046-.2187-6.107-.6406-9.122c17.84-12.15 29.28-32.58 29.28-55.28c0-5.311-.6406-10.54-1.875-15.64C499.9 270.1 512 250.2 512 227z\"]\n};\nvar faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M0 456C0 442.7 10.75 432 24 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H24C10.75 480 0 469.3 0 456z\"]\n};\nvar faSquareFull = {\n prefix: 'far',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M512 0V512H0V0H512zM464 48H48V464H464V48z\"]\n};\nvar faNoteSticky = {\n prefix: 'far',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H288V352c0-17.7 14.3-32 32-32h80V96c0-8.8-7.2-16-16-16H64zM288 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V320v5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7H288z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faFaceSadTear = {\n prefix: 'far',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M169.6 291.3C172.8 286.9 179.2 286.9 182.4 291.3C195.6 308.6 223.1 349 223.1 369C223.1 395 202.5 416 175.1 416C149.5 416 127.1 395 127.1 369C127.1 349 156.6 308.6 169.6 291.3H169.6zM368 346.8C377.9 355.6 378.7 370.8 369.9 380.7C361 390.6 345.9 391.4 335.1 382.6C314.7 363.5 286.7 352 256 352C242.7 352 232 341.3 232 328C232 314.7 242.7 304 256 304C299 304 338.3 320.2 368 346.8L368 346.8zM335.6 176C353.3 176 367.6 190.3 367.6 208C367.6 225.7 353.3 240 335.6 240C317.1 240 303.6 225.7 303.6 208C303.6 190.3 317.1 176 335.6 176zM175.6 240C157.1 240 143.6 225.7 143.6 208C143.6 190.3 157.1 176 175.6 176C193.3 176 207.6 190.3 207.6 208C207.6 225.7 193.3 240 175.6 240zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM175.9 448C200.5 458.3 227.6 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 308.7 67.59 356.8 99.88 393.4C110.4 425.4 140.9 447.9 175.9 448V448z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M264 480h104c79.4 0 144-62.95 144-140.3V231.8c0-23.44-6.104-46.73-17.65-67.35L462.1 108.6C447.5 81.1 417.1 64 385.9 64H336c-27.23 0-51.53 12.51-67.69 32H72C32.3 96 0 128.3 0 168S32.3 240 72 240h56.44C128.1 242.6 128 245.3 128 248c0 25.95 13.79 48.73 34.43 61.4C160.8 315.3 160 321.6 160 328c0 25.95 13.79 48.73 34.43 61.4C192.8 395.3 192 401.6 192 408C192 447.7 224.3 480 264 480zM280 304c13.23 0 24 10.78 24 24S293.1 352 279.9 352H232c-13.23 0-24-10.78-24-24S218.8 304 232 304H280zM248 224v12c0 12.39 3.264 23.93 8.545 34.27C253.9 271.3 251 272 248 272h-48C186.8 272 176 261.2 176 248S186.8 224 200 224H248zM248 144c.2813 0 .5137 .1504 .793 .1602C248.6 146.8 248 149.3 248 152V192h-176C58.77 192 48 181.2 48 168S58.77 144 72 144H248zM388.2 429.9C390.4 422.9 392 415.7 392 408c0-29.04-17.37-53.96-42.18-65.34C350.8 337.8 352 333 352 328c0-7.139-1.273-13.96-3.355-20.46C378.4 297.2 400 269.2 400 236V184C400 170.8 389.3 160 376 160S352 170.8 352 184v52c0 15.44-12.56 28-28 28S296 251.4 296 236V152c0-22.06 17.94-40 40-40h49.88c14.77 0 28.28 7.719 35.27 20.16l31.34 55.78C460 201.4 464 216.6 464 231.8v107.9C464 383.9 431.4 420.9 388.2 429.9zM264 432c-13.23 0-24-10.78-24-24S250.8 384 264 384H320c13.23 0 24 10.78 24 24S333.2 432 320 432H264z\"]\n};\nvar icons = {\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faHandPointRight: faHandPointRight,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faComments: faComments,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faCompass: faCompass,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faLightbulb: faLightbulb,\n faFlag: faFlag,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faEyeSlash: faEyeSlash,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faHandSpock: faHandSpock,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faChessBishop: faChessBishop,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faHandPointUp: faHandPointUp,\n faBookmark: faBookmark,\n faHandPointDown: faHandPointDown,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faUser: faUser,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faStar: faStar,\n faChessKnight: faChessKnight,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faFolderOpen: faFolderOpen,\n faClipboard: faClipboard,\n faChessQueen: faChessQueen,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faWindowRestore: faWindowRestore,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faImage: faImage,\n faFolderClosed: faFolderClosed,\n faLemon: faLemon,\n faHandshake: faHandshake,\n faGem: faGem,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faIdBadge: faIdBadge,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faRegistered: faRegistered,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFileWord: faFileWord,\n faFilePowerpoint: faFilePowerpoint,\n faEnvelopeOpen: faEnvelopeOpen,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faSquare: faSquare,\n faSnowflake: faSnowflake,\n faNewspaper: faNewspaper,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faFileExcel: faFileExcel,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faObjectUngroup: faObjectUngroup,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faObjectGroup: faObjectGroup,\n faHeart: faHeart,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faCircle: faCircle,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faFileAudio: faFileAudio,\n faFileImage: faFileImage,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faEye: faEye,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faFileCode: faFileCode,\n faWindowMaximize: faWindowMaximize,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faHandPointer: faHandPointer,\n faHandScissors: faHandScissors,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faFileVideo: faFileVideo,\n faFilePdf: faFilePdf,\n faComment: faComment,\n faEnvelope: faEnvelope,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faCalendarCheck: faCalendarCheck,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faCalendarPlus: faCalendarPlus,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faClock: faClock,\n faClockFour: faClockFour,\n faKeyboard: faKeyboard,\n faClosedCaptioning: faClosedCaptioning,\n faImages: faImages,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faSun: faSun,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faThumbsDown: faThumbsDown,\n faChessPawn: faChessPawn,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faBell: faBell,\n faFile: faFile,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faChessRook: faChessRook,\n faStarHalf: faStarHalf,\n faChessKing: faChessKing,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faCopy: faCopy,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faCopyright: faCopyright,\n faMap: faMap,\n faBellSlash: faBellSlash,\n faHandLizard: faHandLizard,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faHandPeace: faHandPeace,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faBuilding: faBuilding,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faMoon: faMoon,\n faCalendar: faCalendar,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faClone: faClone,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faPaperPlane: faPaperPlane,\n faLifeRing: faLifeRing,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faCalendarMinus: faCalendarMinus,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faThumbsUp: faThumbsUp,\n faWindowMinimize: faWindowMinimize,\n faSquareFull: faSquareFull,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faHandPointLeft: faHandPointLeft\n};\n\nexport { icons as far, prefix, faTrashCan, faTrashAlt, faMessage, faCommentAlt, faFileLines, faFileAlt, faFileText, faCalendarDays, faCalendarAlt, faHandPointRight, faFaceSmileBeam, faSmileBeam, faFaceGrinStars, faGrinStars, faAddressBook, faContactBook, faComments, faPaste, faFileClipboard, faFaceGrinTongueSquint, faGrinTongueSquint, faFaceFlushed, faFlushed, faSquareCaretRight, faCaretSquareRight, faSquareMinus, faMinusSquare, faCompass, faSquareCaretDown, faCaretSquareDown, faFaceKissBeam, faKissBeam, faLightbulb, faFlag, faSquareCheck, faCheckSquare, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faFutbol, faFutbolBall, faSoccerBall, faPenToSquare, faEdit, faHourglassHalf, faHourglass2, faEyeSlash, faHand, faHandPaper, faHandSpock, faFaceKiss, faKiss, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faFaceGrinWide, faGrinAlt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faBookmark, faHandPointDown, faFolder, faFolderBlank, faUser, faSquareCaretLeft, faCaretSquareLeft, faStar, faChessKnight, faFaceLaughSquint, faLaughSquint, faFaceLaugh, faLaugh, faFolderOpen, faClipboard, faChessQueen, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faChartBar, faBarChart, faWindowRestore, faSquarePlus, faPlusSquare, faImage, faFolderClosed, faLemon, faHandshake, faGem, faCirclePlay, faPlayCircle, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faIdBadge, faFaceLaughBeam, faLaughBeam, faRegistered, faAddressCard, faContactCard, faVcard, faFaceTired, faTired, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faEnvelopeOpen, faFileZipper, faFileArchive, faSquare, faSnowflake, faNewspaper, faFaceKissWinkHeart, faKissWinkHeart, faStarHalfStroke, faStarHalfAlt, faFileExcel, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faCircleRight, faArrowAltCircleRight, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faHeart, faFaceSurprise, faSurprise, faCirclePause, faPauseCircle, faCircle, faCircleUp, faArrowAltCircleUp, faFileAudio, faFileImage, faCircleQuestion, faQuestionCircle, faFaceMehBlank, faMehBlank, faEye, faFaceSadCry, faSadCry, faFileCode, faWindowMaximize, faFaceFrown, faFrown, faFloppyDisk, faSave, faCommentDots, faCommenting, faFaceGrinSquint, faGrinSquint, faHandPointer, faHandScissors, faFaceGrinTears, faGrinTears, faCalendarXmark, faCalendarTimes, faFileVideo, faFilePdf, faComment, faEnvelope, faHourglass, faHourglassEmpty, faCalendarCheck, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faRectangleList, faListAlt, faCalendarPlus, faCircleLeft, faArrowAltCircleLeft, faMoneyBill1, faMoneyBillAlt, faClock, faClockFour, faKeyboard, faClosedCaptioning, faImages, faFaceGrin, faGrin, faFaceMeh, faMeh, faIdCard, faDriversLicense, faSun, faFaceLaughWink, faLaughWink, faCircleDown, faArrowAltCircleDown, faThumbsDown, faChessPawn, faCreditCard, faCreditCardAlt, faBell, faFile, faHospital, faHospitalAlt, faHospitalWide, faChessRook, faStarHalf, faChessKing, faCircleUser, faUserCircle, faCopy, faShareFromSquare, faShareSquare, faCopyright, faMap, faBellSlash, faHandLizard, faFaceSmile, faSmile, faHandPeace, faFaceGrinHearts, faGrinHearts, faBuilding, faFaceGrinBeamSweat, faGrinBeamSweat, faMoon, faCalendar, faFaceGrinTongueWink, faGrinTongueWink, faClone, faFaceAngry, faAngry, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faPaperPlane, faLifeRing, faFaceGrimace, faGrimace, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faThumbsUp, faWindowMinimize, faSquareFull, faNoteSticky, faStickyNote, faFaceSadTear, faSadTear, faHandPointLeft };\n","var prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [320, 512, [], \"32\", \"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [448, 512, [], \"33\", \"M64 64c0-17.7 14.3-32 32-32H336c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L226.3 208H248c75.1 0 136 60.9 136 136s-60.9 136-136 136H169.4c-42.4 0-81.2-24-100.2-61.9l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H248c39.8 0 72-32.2 72-72s-32.2-72-72-72H144c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L253.7 96H96C78.3 96 64 81.7 64 64z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [320, 512, [], \"36\", \"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM64 320c0-53 43-96 96-96s96 43 96 96s-43 96-96 96s-96-43-96-96z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [320, 512, [], \"39\", \"M64 192c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"]\n};\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [640, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM384 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H160 32zm470.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [640, 512, [\"user-times\"], \"f235\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faCommentAlt = faMessage;\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M144 80c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M473 7c-9.4-9.4-24.6-9.4-33.9 0l-87 87L313 55c-6.9-6.9-17.2-8.9-26.2-5.2S272 62.3 272 72V216c0 13.3 10.7 24 24 24H440c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-39-39 87-87c9.4-9.4 9.4-24.6 0-33.9L473 7zM216 272H72c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39L7 439c-9.4 9.4-9.4 24.6 0 33.9l32 32c9.4 9.4 24.6 9.4 33.9 0l87-87 39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V296c0-13.3-10.7-24-24-24z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [576, 512, [], \"e4e9\", \"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z\"]\n};\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z\"]\n};\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [384, 512, [], \"e4d9\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [640, 512, [], \"e4d1\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM492.7 300.7c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [640, 512, [], \"e4c2\", \"M64 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C46.3 32 32 46.3 32 64s14.3 32 32 32zM41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 237.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L448 237.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [\"sort-desc\"], \"f0dd\", \"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"]\n};\nvar faSortDesc = faSortDown;\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [576, 512, [], \"f52b\", \"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480v32h32 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z\"]\n};\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96C43 32 0 75 0 128V384c0 53 43 96 96 96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32h64zM504.5 273.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32H320v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [9883], \"f5d2\", \"M258.9 412.3c-16.7 33.8-31 35.7-34.9 35.7s-18.1-1.9-34.9-35.7c11.4-3.9 23.1-8.4 34.9-13.5c11.8 5.1 23.4 9.7 34.9 13.5zM252.8 312c-9.7 5.8-19.3 11.2-28.8 16c-9.4-4.8-19-10.2-28.8-16c-12.1-7.3-23.6-14.8-34.2-22.4c-.7-10.8-1-22-1-33.6s.4-22.7 1-33.6c10.6-7.6 22.1-15.1 34.2-22.4c9.7-5.8 19.3-11.2 28.8-16c9.4 4.8 19 10.2 28.8 16c12.1 7.3 23.6 14.8 34.2 22.4c.7 10.8 1 22 1 33.6s-.4 22.7-1 33.6c-10.6 7.6-22.1 15.1-34.2 22.4zm184.8 72c20.7-37.1 9.4-82.8-23.6-128c33-45.2 44.3-90.9 23.6-128c-20.2-36.3-62.5-49.3-115.2-43.2C300.4 32.7 266.8 0 224 0s-76.4 32.7-98.4 84.8c-52.7-6.1-95 6.8-115.2 43.2C-10.3 165.1 1 210.8 34 256C1 301.2-10.3 346.9 10.4 384c20.2 36.3 62.5 49.3 115.2 43.2c22 52.1 55.7 84.8 98.4 84.8s76.4-32.7 98.4-84.8c52.7 6.1 95-6.8 115.2-43.2zm-67.8-79.2c18.9 30.2 14.2 44 11.9 48.1c-1.6 2.9-8.4 13-40.2 11.7c2.8-13.1 5-26.9 6.7-41.2c7.6-6.1 14.8-12.3 21.6-18.6zm11.9-145.7c2.3 4.2 7 17.9-11.9 48.1c-6.8-6.3-14-12.5-21.6-18.6c-1.7-14.3-3.9-28-6.7-41.2c31.8-1.4 38.6 8.7 40.2 11.7zM224 64c3.9 0 18.1 1.9 34.9 35.7c-11.4 3.9-23.1 8.4-34.9 13.5c-11.8-5.1-23.4-9.7-34.9-13.5C205.9 65.9 220.1 64 224 64zM106.5 147.5c-2.8 13.1-5 26.9-6.7 41.2c-7.6 6.1-14.8 12.3-21.6 18.6C59.4 177 64 163.3 66.3 159.1c1.6-2.9 8.4-13 40.2-11.7zM66.3 352.9c-2.3-4.2-7-17.9 11.9-48.1c6.8 6.3 14 12.5 21.6 18.6c1.7 14.2 3.9 28 6.7 41.2c-31.8 1.4-38.6-8.7-40.2-11.7zM224 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM416 32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [576, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M532.3 7.3C539.7 13.3 544 22.4 544 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L384 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM106.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L245.3 304H272c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48h26.7zM224 408c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM510.7 278.3L472.3 368H528c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L423.7 400H368c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L51.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [640, 512, [\"microphone-alt-slash\"], \"f539\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [640, 512, [], \"e4c9\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [448, 512, [], \"e06a\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256C48 141.1 141.1 48 256 48c69.3 0 130.6 33.8 168.5 86c7.8 10.7 22.8 13.1 33.5 5.3s13.1-22.8 5.3-33.5C416.8 41.7 341.3 0 256 0C114.6 0 0 114.6 0 256v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8c0-18.1-1.9-35.8-5.5-52.9zM222.1 128.2c10.8-2.9 22.1-4.4 33.9-4.4c73 0 132.2 59.2 132.2 132.2c0 31.1-1.9 62.4-3.9 86c-1 11.8-2 21.6-2.7 28.4c-.4 3.4-.7 6.1-.9 7.9l-.2 2-.1 .5 0 .1 0 0 0 0c-1.6 13.2 7.7 25.1 20.8 26.8s25.1-7.7 26.8-20.8l-23.8-3c23.8 3 23.8 3 23.8 3l0 0 0 0 0 0 0-.2 .1-.6 .3-2.2c.2-1.9 .5-4.8 .9-8.3c.8-7.2 1.8-17.4 2.8-29.6c2-24.4 4.1-57.1 4.1-90c0-99.5-80.7-180.2-180.2-180.2c-15.9 0-31.4 2.1-46.2 6c-12.8 3.4-20.5 16.5-17.1 29.3s16.5 20.5 29.3 17.1zm-74.5 52.1c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9C87.9 182 75.8 217.6 75.8 256c0 30.1-3.8 58.6-7.6 79.7c-1.9 10.5-3.8 19.1-5.2 24.9c-.7 2.9-1.3 5.2-1.7 6.7c-.2 .7-.3 1.3-.4 1.6l-.1 .4 0 .1 0 0c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L83.8 376c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 0-.2 .2-.6c.1-.5 .3-1.2 .6-2.1c.5-1.8 1.2-4.4 1.9-7.7c1.6-6.6 3.7-16.1 5.8-27.6c4.2-22.9 8.4-54.4 8.4-88.3c0-28.2 8.8-54.3 23.8-75.7zM256 200c30.9 0 56 25.1 56 56c0 47.1-2.7 86.3-5.5 113.6c-1.4 13.7-2.7 24.3-3.7 31.6c-.5 3.6-.9 6.3-1.2 8.1c-.1 .9-.2 1.6-.3 2l-.1 .5 0 .1 0 0 0 0 0 0c-2.3 13.1 6.5 25.5 19.5 27.8s25.5-6.4 27.8-19.5L324.8 416c23.6 4.1 23.6 4.1 23.6 4.1l0 0 0 0 0-.1 0-.2 .1-.7c.1-.6 .2-1.4 .4-2.4c.3-2.1 .8-5.1 1.3-9c1.1-7.8 2.5-19.1 4-33.4c2.9-28.7 5.7-69.5 5.7-118.4c0-57.4-46.6-104-104-104s-104 46.6-104 104c0 46.7-3.9 83.4-7.7 108.4c-1.9 12.5-3.8 21.9-5.2 28.2c-.7 3.1-1.3 5.5-1.6 6.9c-.2 .7-.3 1.3-.4 1.6l-.1 .3c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L160 408c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 .1-.2 .2-.7c.1-.5 .3-1.3 .6-2.3c.5-2 1.2-4.8 2-8.4c1.6-7.2 3.7-17.8 5.8-31.3c3-19.2 5.9-44.6 7.3-75.3c.6-12.6 .9-26 .9-40.3c0-30.9 25.1-56 56-56zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 45.4-2.6 83.4-6.3 114.5L202 478.3l0 0c-5.3 12.1 .1 26.2 12.2 31.6c12.1 5.4 26.3-.1 31.7-12.2L224 488c21.9 9.7 21.9 9.7 21.9 9.7l0 0 0 0 0-.1 .1-.3 .4-.9c.3-.8 .7-1.8 1.2-3.1c1-2.7 2.4-6.5 4-11.5c3.3-10.1 7.5-24.9 11.7-44.7C271.8 397.3 280 337.6 280 256zM225.7 370.5s0 0 0 0L256 232 225.7 370.5zm0 0c-2.7 22.5-5.9 41.3-9.2 56.6c-3.8 18.2-7.6 31.3-10.3 39.8c-1.4 4.2-2.5 7.3-3.2 9.2c-.4 .9-.6 1.6-.8 2l-.1 .4 23.6-107.9z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm64-64c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h48c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32H160C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64v88c0 22.1-17.9 40-40 40s-40-17.9-40-40V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v56c0 39.8 32.2 72 72 72z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-48 0c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [320, 512, [\"step-forward\"], \"f051\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z\"]\n};\nvar faStepForward = faForwardStep;\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1V345.8c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.4-23.7-122.5-13.4L64 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V400 334 64 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9v65.5L64 252.6V318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3V238.7l38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9v66.7l-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8v71.4c21.8 1.9 43.3 6.7 64 14.4V244.2l22.7 6.7c13.5 4 27.3 6.4 41.3 7.4V194c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12v-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8v72.4c-13-.4-26 .8-38.7 3.6L128 173.2V98L64 114v73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2V251.9l-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5v77.4zm64-149.4V115.4c-20.9 6.1-42.4 9.1-64 9.1V194c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"]\n};\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faFootballBall = faFootball;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [448, 512, [\"angle-double-down\"], \"f103\", \"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [640, 512, [], \"e594\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [640, 512, [], \"e537\", \"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 240c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zM144 336c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm392-40c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [640, 512, [], \"e534\", \"M360 72c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM144 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [512, 512, [\"beer\"], \"f0fc\", \"M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [512, 512, [], \"e477\", \"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [384, 512, [\"long-arrow-up\"], \"f176\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [320, 512, [129485, \"male\"], \"f183\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z\"]\n};\nvar faMale = faPerson;\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 224H96c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H80c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8H96c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H80c-22.1 0-40-17.9-40-40V264c0-22.1 17.9-40 40-40zm72 46.4c0-25.6 20.8-46.4 46.4-46.4H216c8.8 0 16 7.2 16 16s-7.2 16-16 16H198.4c-7.9 0-14.4 6.4-14.4 14.4c0 5.2 2.8 9.9 7.2 12.5l25.4 14.5c14.4 8.3 23.4 23.6 23.4 40.3c0 25.6-20.8 46.4-46.4 46.4H168c-8.8 0-16-7.2-16-16s7.2-16 16-16h25.6c7.9 0 14.4-6.4 14.4-14.4c0-5.2-2.8-9.9-7.2-12.5l-25.4-14.5C160.9 302.4 152 287 152 270.4zM280 240v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V240c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 400c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM384 376c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm0 32c70.7 0 128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM403 336.5c5.1-11.8-6.9-22.4-19.2-18.7C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [512, 512, [], \"f55c\", \"M192 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H334.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H192V208.5zM320 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L398.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C406 314.1 416 347.9 416 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H108.1c-17.3 0-34.2-7.1-43.8-21.5C43.9 460.1 32 423.4 32 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h16H304h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [576, 512, [], \"e4af\", \"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z\"]\n};\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M96 0C78.3 0 64 14.3 64 32V224h96V192c0-35.3 28.7-64 64-64H448V32c0-17.7-14.3-32-32-32H96zM224 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H544c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H224zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM32 256c-17.7 0-32 14.3-32 32v13L155.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L320 301V288c0-17.7-14.3-32-32-32H32zm288 84.8L184 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L0 340.8V480c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V340.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"]\n};\nvar faContactBook = faAddressBook;\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPencilAlt = faPencil;\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [9194], \"f04a\", \"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V256H416c-17.7 0-32-14.3-32-32V128H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm256 88v96h96l-96-96z\"]\n};\nvar faFileClipboard = faPaste;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80c0-13.3-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24s24-10.7 24-24zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm328 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16z\"]\n};\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [640, 512, [\"truck-loading\"], \"f4de\", \"M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [512, 512, [], \"e597\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-24c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm88 32c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 396 61.3 324.1 142.7 307.6l68.5 91.4c6.4 8.5 19.2 8.5 25.6 0l68.5-91.4C386.7 324.1 448 396 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [640, 512, [], \"e539\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [640, 512, [\"torah\"], \"f6a0\", \"M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z\"]\n};\nvar faTorah = faScrollTorah;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [640, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M633.3 12.4c10.8 14 8.3 34.1-5.6 44.9l-144 112-72 56L403 232l28.3 36.3c3.7 4.8 4.4 11.2 1.8 16.7s-8.1 9-14.1 9.1l-48 .9L292.3 194.2l12.5-46.3c1.6-5.9 6.3-10.3 12.3-11.5s12 1.1 15.8 5.8l30.8 39.4 8.7-6.8 72-56 144-112c13.9-10.9 34.1-8.3 44.9 5.6zM269.1 476.3c-55.5 43.4-215 34.2-252.3 31.4c-5.1-.4-9.7-2.9-12.8-7s-4.5-9.1-3.6-14.1c.5-3.2 1.3-7.2 2.2-12.1c3-16.5 10.8-31.6 21.9-44.1l73.5-82.5c3.1-3.5 3.2-8.6 .4-12.3s-7.9-4.7-12-2.6L47.3 353.5c-6.3 3.3-13.4-2.7-11-9.4c14.3-39.9 32.7-76.9 55.5-94.7c57.7-45.1 175.3-35.5 175.3-35.5l78.8 100.9s-19.1 116.4-76.8 161.5zM496 512c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faArchive = faBoxArchive;\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [576, 512, [], \"e545\", \"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [576, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM352 320c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zm93.7-171.1c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM320 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM512 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM480 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.3-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 64H64V384H384V64z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72zm264-72c0-39.8-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72s72-32.2 72-72zm-240 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm192 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [576, 512, [], \"f80d\", \"M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [640, 512, [], \"e57f\", \"M520.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L521.5 72 118.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [\"legal\"], \"f0e3\", \"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"]\n};\nvar faLegal = faGavel;\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [640, 512, [\"people-arrows-left-right\"], \"e068\", \"M192 64c0 35.3-28.7 64-64 64s-64-28.7-64-64S92.7 0 128 0s64 28.7 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM576 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l24 0H376c0 13.3 10.7 24 24 24s24-10.7 24-24H400l24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 320c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM160 112c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM112 448c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCut = faScissors;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 224c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm32-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z\"]\n};\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [576, 512, [], \"e584\", \"M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [640, 512, [\"digital-tachograph\"], \"f566\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [448, 512, [], \"e139\", \"M173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2C205.1 38.5 189.5 32 173.3 32z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"]\n};\nvar faMailReply = faReply;\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [576, 512, [9770], \"f699\", \"M32 256C32 114.6 146.6 0 288 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C352.6 505.7 321 512 288 512C146.6 512 32 397.4 32 256zM407.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L293 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM453.5 163.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 56.7 24.2 76.9C640 437.9 568.7 512 480 512c-89.7 0-160-74.2-160-161.9c0-26.4 12.7-58.6 32.4-90.6c20-32.4 48.1-66.1 81.4-95.8c5.6-5 14.2-5 19.8 0zM530 433c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15z\"]\n};\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [128641], \"f533\", \"M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 304c-10.1 0-19.6-4.7-25.6-12.8L192 256 47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [640, 512, [], \"e533\", \"M184 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zM568 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm8 157.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V176c0-8.8-7.2-16-16-16H160z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [127902], \"f008\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [640, 512, [], \"f547\", \"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"]\n};\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zm32 224c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [576, 512, [\"sign-out\"], \"f08b\", \"M534.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L434.7 224 224 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-53 0-96 43-96 96l0 256c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [448, 512, [\"unlock-alt\"], \"f13e\", \"M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [576, 512, [], \"f740\", \"M128 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C96.7 126.1 96 119.1 96 112C96 50.1 146.1 0 208 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H128zm-14.5 33.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM345.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"]\n};\nvar faHeadphonesSimple = {\n prefix: 'fas',\n iconName: 'headphones-simple',\n icon: [512, 512, [\"headphones-alt\"], \"f58f\", \"M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faHeadphonesAlt = faHeadphonesSimple;\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [576, 512, [], \"f0e8\", \"M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [512, 512, [\"donate\"], \"f4b9\", \"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V304c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V112c0-11.1-9-20.1-20.1-20.1zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [576, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [640, 512, [], \"e4f1\", \"M293.5 3.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C480 280 408.7 352 320 352c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM370 273c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM192 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V64 368 480c0 17.7 14.3 32 32 32s32-14.3 32-32V352l64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48V32z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zM64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104-17.9L82.9 161.3C70.7 185.6 64 212.2 64 240z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M137.9 3c-4.5-3.2-10.3-3.9-15.4-1.8s-8.8 6.7-9.7 12.2L98.7 98.7 13.4 112.8c-5.5 .9-10.1 4.6-12.2 9.7S-.2 133.4 3 137.9l50.3 70.3L3 278.5c-3.2 4.5-3.9 10.3-1.8 15.4s6.7 8.8 12.2 9.7l85.3 14.1L112.8 403c.9 5.5 4.6 10.1 9.7 12.2s10.9 1.4 15.4-1.8l55.2-39.5c-19.9-21.9-32.3-50.8-33.1-82.6c-17.6-10.2-32.2-26.1-40.6-46.3c-20.3-49 3-105.1 52-125.4c29.4-12.2 61.4-8.7 86.7 6.7c13.1-21.8 32.5-39.4 55.8-50.3L303.6 13.4c-.9-5.5-4.6-10.1-9.7-12.2S282.9-.2 278.5 3L208.2 53.3 137.9 3zM291.4 415.9c-2.5 .6-5.1 .6-7.6-.1c1.4 0 2.8 .1 4.2 .1h3.5zm-46.3-260c-17.3-12.2-40.4-15.6-61.5-6.9c-32.7 13.5-48.2 51-34.6 83.6c3.6 8.7 8.9 16.1 15.3 22.2c10.6-39.7 39.9-71.8 77.8-86.4c.8-4.3 1.8-8.4 3-12.5zM277.4 420c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm74.5-116.1c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C433.3 114.6 402.8 96 368 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H559.9c44.2 0 80-35.8 80-80z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [512, 512, [\"wheat-alt\"], \"e2cd\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320 80c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm44.7 84.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [384, 512, [10033, 61545], \"2a\", \"M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [384, 512, [], \"e221\", \"M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M50.8 452.1L19.2 477.4c-2.1 1.7-4.7 2.6-7.4 2.6C5.3 480 0 474.7 0 468.2V192C0 86 86 0 192 0S384 86 384 192V468.2c0 6.5-5.3 11.8-11.8 11.8c-2.7 0-5.3-.9-7.4-2.6l-31.6-25.3c-3.3-2.7-7.5-4.1-11.8-4.1c-5.9 0-11.5 2.8-15 7.5l-37.6 50.1c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4l-38.4-51.2c-3-4-7.8-6.4-12.8-6.4s-9.8 2.4-12.8 6.4l-38.4 51.2c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L77.6 455.5c-3.6-4.7-9.1-7.5-15-7.5c-4.3 0-8.4 1.5-11.7 4.1zM160 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"]\n};\nvar faListSquares = faList;\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20h44v44c0 11 9 20 20 20s20-9 20-20V180h44c11 0 20-9 20-20s-9-20-20-20H356V96c0-11-9-20-20-20s-20 9-20 20v44H272c-11 0-20 9-20 20z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 248c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm-24 56c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z\"]\n};\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-160c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-96c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [576, 512, [9978], \"f6bb\", \"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M371.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L600.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S549.7-4.4 531.1 9.6L294.4 187.2c-24 18-38.2 46.1-38.4 76.1L371.3 367.1zm-19.6 25.4l-116-104.4C175.9 290.3 128 339.6 128 400c0 3.9 .2 7.8 .6 11.6c1.8 17.5-10.2 36.4-27.8 36.4H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H240c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [128274], \"f023\", \"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [512, 512, [\"hot-tub\"], \"f593\", \"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128c35.3 0 64-28.7 64-64S99.3 0 64 0S0 28.7 0 64s28.7 64 64 64z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [576, 512, [\"map-marked\"], \"f59f\", \"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [576, 512, [], \"e50e\", \"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"]\n};\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [640, 512, [], \"e4cc\", \"M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84.1 96c0-11.1-9-20.1-20.1-20.1s-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4.1c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0 0 0c-2.2-.8-4.3-1.5-6.3-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V416c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V224z\"]\n};\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.8 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z\"]\n};\nvar faEdit = faPenToSquare;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zm-2.9 207c-6.6 18.6-24.4 32-45.3 32s-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16zM160 432c-20.9 0-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16c-6.6 18.6-24.4 32-45.3 32z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [448, 512, [\"share-alt\"], \"f1e0\", \"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9H112z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M168 32c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32h8c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32h-8c0 17.7-14.3 32-32 32H200c-17.7 0-32-14.3-32-32h-8c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32l8 0zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 96c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm200-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [576, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M304 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM248 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M144 160c-44.2 0-80-35.8-80-80S99.8 0 144 0s80 35.8 80 80s-35.8 80-80 80zm368 0c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM416 224c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z\"]\n};\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z\"]\n};\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z\"]\n};\nvar faHandPaper = faHand;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [128329], \"f679\", \"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5 0-.1c-2.6-7.8-10.7-12.3-18.7-10.5C4.4 354.2-.9 361.8 .1 370L16 368C.1 370 .1 370 .1 370l0 0 0 0 0 .1 .1 .4c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.3 0 0c0 0 0 0 0 0c-1.9-7.3-8.6-12.4-16.2-12.1c-7.6 .3-13.9 5.9-15.1 13.4L336 368c-15.8-2.6-15.8-2.6-15.8-2.6l0 0 0 0 0 .1-.1 .3c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4zM280.9 66.7c-6-4-14-3.5-19.5 1.3s-7 12.7-3.7 19.2L272 80c-14.3 7.2-14.3 7.2-14.3 7.2l0 0 0 0 0 .1 .1 .2 .4 .7c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .2-.2 .1-.1 0 0 0 0c0 0 0 0-22.6-22.6l22.6 22.6c12.5-12.5 12.5-32.8 0-45.3c-12.4-12.4-32.6-12.5-45.1-.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2 0 0 0 0 0 0z\"]\n};\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96h38.4C407.9 0 448 40.1 448 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H320c-53 0-96-43-96-96zm144-8c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [128268], \"f1e6\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [512, 512, [], \"f077\", \"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiss = faFaceKiss;\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [640, 512, [], \"e4cb\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-16c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V416H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64-64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM352 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm64 120c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [640, 512, [], \"e51b\", \"M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z\"]\n};\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"]\n};\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [384, 512, [129463], \"f5c9\", \"M154.1 52.1C137.3 39.1 116.7 32 95.5 32C42.7 32 0 74.7 0 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2L80.4 460.2c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C160.2 323.7 175 312 192 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [448, 512, [118], \"56\", \"M51.7 34.5c16.3-6.8 35 .9 41.8 17.2L224 364.8 354.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7l-160-384c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faBangladeshiTakaSign = {\n prefix: 'fas',\n iconName: 'bangladeshi-taka-sign',\n icon: [384, 512, [], \"e2e6\", \"M36 32.2C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8V160H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V384c0 53 43 96 96 96h32c106 0 192-86 192-192V256c0-53-43-96-96-96H272c-17.7 0-32 14.3-32 32s14.3 32 32 32h16c17.7 0 32 14.3 32 32v32c0 70.7-57.3 128-128 128H160c-17.7 0-32-14.3-32-32V224h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V128.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [384, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M222.6 43.2l-.2 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.3 319.8c22.3-2.1 39.7-20.8 39.7-43.7c0-10-3.4-19.6-9.6-27.4l-42-52.6c-8.3-10.3-12.8-23-15-36.1C398.2 69.3 319.2 0 224 0H201.7C157 0 115.7 14.5 82.2 39.2L38.8 5.1zM0 201.7c0 44.8 18.3 91.5 46.5 127.7C56.9 342.8 64 358.8 64 375.8V480c0 17.7 14.3 32 32 32H256c17.7 0 32-14.3 32-32h64c32.8 0 59.9-24.7 63.6-56.6l-9.4-7.4H352c-17.7 0-32-14.3-32-32c0-10.5 5.1-19.9 12.9-25.7L20.8 112.4C7.5 139.3 0 169.6 0 201.7zM632 288c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm-88 72c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64 48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [640, 512, [128657, \"ambulance\"], \"f0f9\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM112 144c0-8.8 7.2-16 16-16h48V80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240v48c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V192H128c-8.8 0-16-7.2-16-16V144z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [576, 512, [9731, 9924], \"f7d0\", \"M373.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L440 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C428.7 296.9 448 338.2 448 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H213.3c-13.9 0-27.7-4.2-37.5-13.9C146.3 469 128 428.7 128 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3l-73.6-31.5-56-24c-12.2-5.2-17.8-19.3-12.6-31.5s19.3-17.8 31.5-12.6L88 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L184.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C196 127.2 192 112.1 192 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM256 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm48 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm-16 80c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm16 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM320 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [127979], \"f549\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM256 416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H256V416zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [320, 512, [8250], \"f105\", \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 96c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [512, 512, [113], \"51\", \"M96 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C403.9 325.8 416 292.3 416 256c0-88.4-71.6-160-160-160S96 167.6 96 256zM376.9 444.6C342 467 300.5 480 256 480C132.3 480 32 379.7 32 256S132.3 32 256 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32c0 123.7-100.3 224-224 224S0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V200c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM256 288c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [\"poo-bolt\"], \"f75a\", \"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 44.3-35.8 80.1-80 80.1c-1.4 0-2.8 .2-4 .5H128c-35.3 0-64 28.7-64 64c0 12.4 3.5 24 9.7 33.8C31.6 234.3 0 271.5 0 316c0 49.1 38.5 89.2 86.9 91.9c-1.8-2.9-3.4-6.1-4.5-9.4c-6-17.5-.5-36.9 13.6-48.5L238.2 233.6c15.6-12.8 37.9-12.7 53.5 .1s20.3 35.1 11.3 53.4l-26 53.2h16.3c18.1 0 34.3 11.7 40.3 29.2c4.5 13.1 2.6 27.3-4.6 38.4h27c50.8 0 92-41.2 92-92c0-44.5-31.6-81.7-73.7-90.2c6.1-9.8 9.7-21.4 9.7-33.8c0-35.3-28.7-64-64-64h-5.7c3.7-10.2 5.7-21.1 5.7-32.6c0-48.7-36.1-88.9-83.1-95.2zm34.2 259.2c-6-4.6-14.3-4.4-20.1 .4l-133.4 112c-5.2 4.3-7 11.4-4.7 17.7s8.3 10.5 15 10.5h54.7l-42.5 89.1c-3.2 6.8-1.3 14.9 4.7 19.5s14.3 4.4 20.1-.4l133.4-112c5.1-4.3 7-11.4 4.7-17.7s-8.3-10.5-15-10.5H233.3l42.5-89.1c3.2-6.8 1.3-14.9-4.7-19.5z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-186 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [576, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [576, 512, [127958], \"f5ca\", \"M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192s192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 64c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm32-144c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M64 0C28.7 0 0 28.7 0 64V288H112c6.1 0 11.6 3.4 14.3 8.8L144 332.2l49.7-99.4c2.7-5.4 8.2-8.8 14.3-8.8s11.6 3.4 14.3 8.8L249.9 288H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8L208 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L102.1 320H0V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [512, 512, [], \"f7b9\", \"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 304c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [448, 512, [], \"e473\", \"M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [512, 512, [9894], \"f229\", \"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM320 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm-16 80c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM400 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"]\n};\nvar faPenAlt = faPenClip;\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [640, 512, [], \"e4ca\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z\"]\n};\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [640, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zm40-176c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 21 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [128333], \"f69b\", \"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [320, 512, [], \"e548\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm8 256V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [640, 512, [], \"e563\", \"M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [448, 512, [], \"f124\", \"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 384c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [576, 512, [], \"f53a\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z\"]\n};\nvar faAreaChart = faChartArea;\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z\"]\n};\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [576, 512, [], \"e540\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faCancel = faBan;\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [512, 512, [], \"e0d8\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM384 256c0 8.8-7.2 16-16 16H291.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L307 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L185 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C193.4 172.7 224 160 256 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM128 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L205 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L327 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C318.6 403.3 288 416 256 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z\"]\n};\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [512, 512, [\"air-freshener\"], \"f5d0\", \"M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"]\n};\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M176 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S64 114.1 64 176s50.1 112 112 112zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"]\n};\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [320, 512, [\"mouse-pointer\"], \"f245\", \"M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32H24C10.7 32 0 42.7 0 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79L81 335 41 295c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312V456c0 13.3 10.7 24 24 24H168c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H424c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H280c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512c70.7 0 128-57.3 128-128s-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M336 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM141.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L153.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L254 299l30.9-82.4 5.1 12.3C305 264.7 339.9 288 378.7 288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H378.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L73.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM107.2 352H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L173 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L107.2 352z\"]\n};\nvar faRunning = faPersonRunning;\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [320, 512, [], \"e527\", \"M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [128375], \"f717\", \"M190.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L113.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4-80.4-26.8c-2.4-.8-4.3-2.7-5.1-5.1L78.8 128.4C74.6 115.8 61 109 48.4 113.2S29 131 33.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L148.1 256 87.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L33.2 368.4C29 381 35.8 394.6 48.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8-57.4 57.4c-15.6 15.6-20.6 39-12.7 59.7l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L192 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L462.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L427.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L430.4 15.4C425.6 3 411.8-3.2 399.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L368 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C226.6 100.7 208 128.2 208 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352H96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H256h64H448h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1V320v32H256V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8V96 32zm64 448v32H256V480h64v32H448V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H448 320 256 128 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z\"]\n};\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v16H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H112c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v32H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H152c-8.9 0-17 4.9-21.2 12.7s-3.7 17.3 1.2 24.6l32 48C168.5 412 176 416 184 416H328c8 0 15.5-4 20-10.7l32-48c4.9-7.4 5.4-16.8 1.2-24.6S368.9 320 360 320H272V288h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V224H400c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V160h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 384c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm112-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [640, 512, [], \"f891\", \"M144 0c-12.9 0-24.6 7.8-29.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L98.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C168.6 7.8 156.9 0 144 0zm18.7 160H125.3L144 115.2 162.7 160zM288 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H320c-17.7 0-32 14.3-32 32zm96 64H352V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H352V160zM598.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L384 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z\"]\n};\nvar faMouse = faComputerMouse;\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [640, 512, [\"store-alt-slash\"], \"e070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM344 152c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm96-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zM344 408c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm104-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [640, 512, [], \"e4a9\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M192 352V48c0-26.5 21.5-48 48-48H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H192zm16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [512, 512, [], \"e53a\", \"M256 160c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM468.8 382.8L405.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L59.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2l67.1-100.6c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM352 332c0-24.3-19.7-44-44-44s-44 19.7-44 44s19.7 44 44 44s44-19.7 44-44z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M352 96h64c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c53 0 96-43 96-96V128c0-53-43-96-96-96H352c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-7.5 177.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H160v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192c0-70.7-57.3-128-128-128S96 121.3 96 192s57.3 128 128 128s128-57.3 128-128zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [640, 512, [\"people-carry\"], \"f4ce\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM144 241.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm77.9 252.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 64c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M288 96c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm58.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [512, 512, [\"weight\"], \"f496\", \"M384 176c0 70.7-57.3 128-128 128s-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128zm7.8-112C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"]\n};\nvar faWeight = faWeightScale;\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [640, 512, [128101, \"user-friends\"], \"f500\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [576, 512, [\"sort-alpha-up\"], \"f15e\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M32 391.6V416H352V224c0-106-86-192-192-192H12.9C5.8 32 0 37.8 0 44.9c0 2 .5 4 1.4 5.8L16 80 9.4 86.6c-6 6-9.4 14.1-9.4 22.6V242.3c0 13.1 8 24.9 20.1 29.7l46.5 18.6c8.5 3.4 18 3 26.2-1.1l6.6-3.3c8-4 14-11.2 16.5-19.8l8.3-28.9c2.5-8.6 8.4-15.8 16.5-19.8L160 208v40.4c0 24.2-13.7 46.4-35.4 57.2L67.4 334.3C45.7 345.2 32 367.3 32 391.6zM72 148c0 11-9 20-20 20s-20-9-20-20s9-20 20-20s20 9 20 20zM352 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [576, 512, [], \"f193\", \"M224 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM152.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C75.1 225.1 32 283.5 32 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C272 440 234.8 464 192 464c-61.9 0-112-50.1-112-112c0-47.9 30.1-88.8 72.5-104.8zM291.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L434 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H314.2l-9.6-48H368c17.7 0 32-14.3 32-32s-14.3-32-32-32H291.8z\"]\n};\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V177.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zM384 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [320, 512, [128694, \"walking\"], \"f554\", \"M256 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"]\n};\nvar faWalking = faPersonWalking;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zM176 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faProcedures = faBedPulse;\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [640, 512, [\"space-shuttle\"], \"f197\", \"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [127961], \"f64f\", \"M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [127798], \"f816\", \"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [128275], \"f09c\", \"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.1 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3L365.5 384H160z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [320, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M320 128V49.1L186.6 .3c-11.4-4.2-24 .9-29.5 11.7L71.8 181.1c-30.8 61-8 133.8 48.1 167.4l-28 77.4L32.1 403.9C19.7 399.4 6 405.8 1.4 418.3s1.9 26.3 14.3 30.8l164.6 60.3c12.4 4.5 26.1-1.9 30.6-14.4s-1.9-26.3-14.3-30.8l-59.9-21.9 28-77.3c68.1 11.6 135.7-32.8 150.1-103.6l5.1-24.8 5.1 24.8c14.5 70.8 82 115.2 150.1 103.6l28 77.3-59.9 21.9c-12.4 4.5-18.8 18.3-14.3 30.8s18.2 18.9 30.6 14.4l164.6-60.3c12.4-4.5 18.8-18.3 14.3-30.8s-18.2-18.9-30.6-14.4l-59.9 21.9-28-77.4c56.1-33.6 78.8-106.4 48.1-167.4L482.9 12C477.4 1.1 464.7-3.9 453.4 .3L320 49.1V128h0zm-35.7 44.4L153.9 124.6l36.3-71.9L300.6 93.1l-16.2 79.3zm71.3 0L339.4 93.1 449.8 52.7l36.3 71.9L355.7 172.4z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z\"]\n};\nvar faBathtub = faBath;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"]\n};\nvar faUserEdit = faUserPen;\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M256 496c132.5 0 240-107.5 240-240S388.5 16 256 16S16 123.5 16 256s107.5 240 240 240zM235.3 76.7L256 97.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L278.6 120 324 165.4 357.4 132l-16.7-16.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L380 109.4l8.7-8.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-8.7 8.7 16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L380 154.6 346.6 188 392 233.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L414.6 256l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L392 278.6 346.6 324 380 357.4l16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L402.6 380l8.7 8.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-8.7-8.7-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L357.4 380 324 346.6 278.6 392l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L256 414.6l-20.7 20.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L233.4 392 188 346.6 154.6 380l16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L132 402.6l-8.7 8.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l8.7-8.7L92.7 363.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L132 357.4 165.4 324 120 278.6 99.3 299.3c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L97.4 256 76.7 235.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L120 233.4 165.4 188 132 154.6l-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L109.4 132l-8.7-8.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l8.7 8.7 16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L154.6 132 188 165.4 233.4 120 212.7 99.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zM210.6 188L256 233.4 301.4 188 256 142.6 210.6 188zm68 68L324 301.4 369.4 256 324 210.6 278.6 256zM256 278.6L210.6 324 256 369.4 301.4 324 256 278.6zM233.4 256L188 210.6 142.6 256 188 301.4 233.4 256z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [384, 512, [], \"e4d7\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"]\n};\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-96 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [576, 512, [\"map-marked-alt\"], \"f5a0\", \"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [9749], \"f7b6\", \"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M312 56c0-30.9-25.1-56-56-56s-56 25.1-56 56s25.1 56 56 56s56-25.1 56-56zM64 480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM34 169.4L9.2 185.8C3.5 189.7 0 196.2 0 203.1c0 3.2 .7 6.4 2.2 9.3L104 416H408L509.8 212.4c1.4-2.9 2.2-6.1 2.2-9.3c0-6.9-3.5-13.4-9.2-17.3L478 169.4c-8.2-5.4-19-4.4-26 2.6c-12.9 12.9-30.9 21.9-48 15.5c-17.9-6.7-28.1-20.1-32.8-35.8C367.5 139 357.3 128 344 128H328c-13.3 0-23.9 11.2-29.6 23.2C292.6 163.4 280.6 176 256 176s-36.6-12.6-42.4-24.8c-5.7-12-16.3-23.2-29.6-23.2H168c-13.3 0-23.5 11-27.3 23.7c-4.7 15.6-14.9 29.1-32.8 35.8c-17 6.4-35.1-2.7-48-15.5c-6.9-6.9-17.8-8-25.9-2.6z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [640, 512, [], \"e4d2\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M208 368c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [576, 512, [], \"e4e4\", \"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 160c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM128 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM357.1 157.5c-.3 .7-.7 1.5-1.1 2.2l-17.8 30.9c-11-12.6-27.4-19.8-44.4-19.1l20.7-35.8c6.6-11.5 21.3-15.4 32.8-8.8c10.8 6.2 14.9 19.5 9.9 30.6zm-173.6 47C112.3 227.2 64 293.3 64 368c0 1.5 0 3 .1 4.5C24.3 346.9 0 302.8 0 255.1V131.5c0-13.3 10.7-24 24-24s24 10.7 24 24l0 81.7L164.2 12c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-64 110.9c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9l80-138.6c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-80 138.6c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9L275 76c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-44 76.2-89.1 28.3zM448 483.5c0 12.4-9.4 22.6-21.5 23.9c-.8 .1-1.6 .1-2.5 .1H223.3 216c-22.1 0-42.9-6-60.7-16.5c3-8.5 4.7-17.6 4.7-27c0-38.7-27.5-71-64-78.4c0-.6 0-1.1 0-1.7c0-1.2-.1-2.5-.1-3.7c0-68 44-128.3 108.9-148.9l83.9-26.7c12.6-4 26.1 3 30.1 15.6s-3 26.1-15.6 30.1l-53.8 17.1H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8h96c13.3 0 24 10.7 24 24z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [128646], \"f238\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 384c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [640, 512, [\"low-vision\"], \"f2a8\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 112c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [576, 512, [], \"e445\", \"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [9961], \"f6a1\", \"M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V0L440.6 23.8C424.3 29.2 407.2 32 390 32H122c-17.2 0-34.3-2.8-50.6-8.2L0 0V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z\"]\n};\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM592 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [129691], \"f54a\", \"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [576, 512, [], \"e515\", \"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z\"]\n};\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [576, 512, [], \"e4b5\", \"M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [512, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z\"]\n};\nvar faColumns = faTableColumns;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M0 224.2c0-22.2 3.2-43.6 9.2-63.9l227 165.1C228.5 337.8 224 352.4 224 368V512H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm258.6 77.9L21 129.3C56.7 53 134.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 4.1-.6 8.1-1.6 11.9H304c-16.9 0-32.5 5.2-45.4 14.1zM352 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM256 512V368c0-26.5 21.5-48 48-48H512l-16 48H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.3l-10.7 32H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H464l-1.4 4.2c-8.7 26.1-33.2 43.8-60.7 43.8H256z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM96 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.6 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [640, 512, [\"dolly-box\"], \"f472\", \"M32 32C32 14.3 46.3 0 64 0h72.9c27.5 0 52 17.6 60.7 43.8L289.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L384 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L136.9 64H64C46.3 64 32 49.7 32 32zM276.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L343 79.4l19.8 60.9 60.9-19.8L403.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L366.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L276.8 134.5z\"]\n};\nvar faDollyBox = faDolly;\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [128684], \"f48d\", \"M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z\"]\n};\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm216 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm-56-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM200 424c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [512, 512, [187, \"angle-double-right\"], \"f101\", \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"]\n};\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"]\n};\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26H388.7c14.2 0 25.4 12.3 21.7 26C392 382 329.8 432 256 432s-136-50-154.4-118zm116-101.2l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.5 169.9c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v44.5c0 17.4-4.7 34.5-13.7 49.4L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1C136.1 390 144 361.5 144 332.5V288H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM256 144c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM240 248c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 39.5-161.2c77.2 12 136.3 78.8 136.3 159.4c0 17-13.8 30.7-30.7 30.7H265.1 182.9 30.7C13.8 512 0 498.2 0 481.3c0-80.6 59.1-147.4 136.3-159.4l39.5 161.2 33.4-123.9z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [384, 512, [\"long-arrow-down\"], \"f175\", \"M224 402.7V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V402.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [640, 512, [], \"e57e\", \"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h76.8L384 320V448z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.3-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [448, 512, [\"skating\"], \"f7c5\", \"M448 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM408.8 335.4c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM344 304c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [\"arrow-right-to-file\"], \"f56f\", \"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm208-16c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [320, 512, [9208], \"f04c\", \"M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [640, 512, [], \"e507\", \"M471.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C433.2 261.3 448 236.4 448 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C248.3 46.6 229.9 32 208 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L471.7 401.9zM512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM100.3 87C75.1 61.8 32 79.7 32 115.3V432c0 44.2 35.8 80 80 80H428.7c35.6 0 53.5-43.1 28.3-68.3L100.3 87z\"]\n};\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [128163], \"f1e2\", \"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zm396.3 211c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3L435.1 416H588.9L514.2 273.3zM512 224c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 498.6 562.2 512 512 512s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 251c8.7-16.6 25.9-27 44.7-27zM128 144c-.9 0-1.7 .5-2.2 1.3L51.1 288H204.9L130.2 145.3c-.4-.8-1.3-1.3-2.2-1.3zm44.7-21l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 370.6 178.2 384 128 384s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 123C92 106.4 109.2 96 128 96s36 10.4 44.7 27z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"]\n};\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faTired = faFaceTired;\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [640, 512, [], \"e1f3\", \"M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM448 208c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"]\n};\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [640, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [512, 512, [], \"e4c0\", \"M329.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L370.7 160H160c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C32 153.3 89.3 96 160 96H370.7L329.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 416H128c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H274.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"]\n};\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [576, 512, [], \"e4ea\", \"M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [640, 512, [], \"e4b9\", \"M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM184 296c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm312 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 64c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 78.3 364 32 448 32h32c17.7 0 32 14.3 32 32zM0 128c0-17.7 14.3-32 32-32H64c123.7 0 224 100.3 224 224v32 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C100.3 352 0 251.7 0 128z\"]\n};\nvar faSprout = faSeedling;\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [640, 512, [], \"e4c7\", \"M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [640, 512, [\"remove-format\"], \"f87d\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l16-64c2.4-9.6 .2-19.7-5.8-27.5S553.9 32 544 32H376.1h-.3H192c-14.7 0-27.5 10-31 24.2l-9.3 37.3L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12.1 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z\"]\n};\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [512, 512, [\"arrows-h\"], \"f07e\", \"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M384 480c0 11.7 3.1 22.6 8.6 32H384c-17.7 0-32-14.3-32-32V383.7c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32V480c0 17.7-14.3 32-32 32H96.1c-17.7 0-32-14.3-32-32V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [640, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm-8 256v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUserLargeSlash = {\n prefix: 'fas',\n iconName: 'user-large-slash',\n icon: [640, 512, [\"user-alt-slash\"], \"f4fa\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H528L284.3 320z\"]\n};\nvar faUserAltSlash = faUserLargeSlash;\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"]\n};\nvar faHandshakeSimpleSlash = {\n prefix: 'fas',\n iconName: 'handshake-simple-slash',\n icon: [640, 512, [\"handshake-alt-slash\"], \"e05f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSimpleSlash;\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [640, 512, [], \"e525\", \"M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V448c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H176c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM272 224c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [576, 512, [], \"f5fd\", \"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z\"]\n};\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [576, 512, [\"house-damage\"], \"f6f1\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [9962], \"f51d\", \"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [640, 512, [], \"f653\", \"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480c61.4 0 101.6 24 126.2 50c12 12.6 19.9 25.2 24.9 34.9c2.5 4.8 4.3 9 5.5 12.1c.6 1.5 1.1 2.8 1.4 3.8c.2 .5 .3 .9 .4 1.3l.1 .5 .1 .2 0 .1 0 0c0 0 0 0-30.2 9.1l30.2-9.1c5.1 16.9-4.5 34.8-21.5 39.8c-16.8 5-34.5-4.4-39.7-21.1l0 0c-.1-.2-.2-.6-.5-1.2c-.5-1.3-1.4-3.4-2.8-6.1c-2.8-5.4-7.4-12.8-14.4-20.1c-4.2-4.4-9.4-9-15.8-13.2V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zm129.4-70.8c0 0 0 0 30.6-9.2l-30.6 9.2 0 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M508.7 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM34.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L264.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L321.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L44.9 301.3c-11.8-6.1-16.3-20.6-10.2-32.4zM150.9 65.6L169 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L183.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [640, 512, [], \"e567\", \"M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [448, 512, [97], \"41\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM296 320H152l72-172.8L296 320z\"]\n};\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H448V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H352c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M32 32H64h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 320 288 64C0 46.3 14.3 32 32 32zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.7 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H424c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm0 184c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16zM160 400c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [576, 512, [\"ad\"], \"f641\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256c-13.3 0-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"]\n};\nvar faAd = faRectangleAd;\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [640, 512, [], \"e520\", \"M344 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H463.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L247.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L380 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L515.6 400H528c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C608 143 497 32 360 32H344zm50.5 168l17.1 40H365l29.5-40zm-87.7 38.1l-1.4 1.9H257.1l32.7-41.5 16.9 39.5zM120.8 240C89.4 240 64 265.4 64 296.8c0 15.5 6.3 30 16.9 40.4L158.7 240H120.8zM528 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [\"unsorted\"], \"f0dc\", \"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"]\n};\nvar faUnsorted = faSort;\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M528 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [576, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164.1 160v6.3c6.6 1.2 16.6 3.2 21 4.4c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-3.8-1-17.4-3.7-21.7-4.3c-12.2-1.9-22.2-.3-28.6 2.6c-6.3 2.9-7.9 6.2-8.2 8.1c-.6 3.4 0 4.7 .1 5c.3 .5 1 1.8 3.6 3.5c6.1 4.2 15.7 7.2 29.9 11.4l.8 .2c12.1 3.7 28.3 8.5 40.4 17.4c6.7 4.9 13 11.4 16.9 20.5c4 9.1 4.8 19.1 3 29.4c-3.3 19-15.9 32-31.6 38.7c-4.9 2.1-10 3.6-15.4 4.6V352c0 11.1-9 20.1-20.1 20.1s-20.1-9-20.1-20.1v-6.4c-9.5-2.2-21.9-6.4-29.8-9.1c-1.7-.6-3.2-1.1-4.4-1.5c-10.5-3.5-16.1-14.8-12.7-25.3s14.8-16.1 25.3-12.7c2 .7 4.1 1.4 6.4 2.1l0 0 0 0c9.5 3.2 20.2 6.9 26.2 7.9c12.8 2 22.7 .7 28.8-1.9c5.5-2.3 7.4-5.3 8-8.8c.7-4 .1-5.9-.2-6.7c-.4-.9-1.3-2.2-3.7-4c-5.9-4.3-15.3-7.5-29.3-11.7l-2.2-.7c-11.7-3.5-27-8.1-38.6-16c-6.6-4.5-13.2-10.7-17.3-19.5c-4.2-9-5.2-18.8-3.4-29c3.2-18.3 16.2-30.9 31.1-37.7c5-2.3 10.3-4 15.9-5.1v-6c0-11.1 9-20.1 20.1-20.1s20.1 9 20.1 20.1z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [448, 512, [], \"f5cb\", \"M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm194.8-6.4c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M96 96c-17.7 0-32 14.3-32 32s-14.3 32-32 32s-32-14.3-32-32C0 75 43 32 96 32h97c70.1 0 127 56.9 127 127c0 52.4-32.2 99.4-81 118.4l-63 24.5 0 18.1c0 17.7-14.3 32-32 32s-32-14.3-32-32V301.9c0-26.4 16.2-50.1 40.8-59.6l63-24.5C240 208.3 256 185 256 159c0-34.8-28.2-63-63-63H96zm48 384c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [576, 512, [], \"e065\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 288c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [576, 512, [], \"f53c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [512, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [640, 512, [], \"e4d3\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [448, 512, [], \"e4e6\", \"M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm64 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z\"]\n};\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [128739], \"f018\", \"M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm352-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCab = faTaxi;\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [576, 512, [], \"e541\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z\"]\n};\nvar faPieChart = faChartPie;\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"]\n};\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM448 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zm-166.2-89l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [128331], \"f66b\", \"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [640, 512, [129531], \"f71e\", \"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm80-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [8594], \"f061\", \"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-216c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm72 24c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [576, 512, [], \"e542\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [576, 512, [], \"e57b\", \"M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [512, 512, [\"tools\"], \"f7d9\", \"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM104 432c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [576, 512, [], \"e55b\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"]\n};\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59.1 146.7-136.1 158.2c0 .6 .1 1.2 .1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l-24 0-24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2 .1-1.8C155.1 370.7 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM256 488h24c0 13.3-10.7 24-24 24s-24-10.7-24-24h24zm96-264c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [\"home-user\"], \"e1b0\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.6-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zm128.4-78.9c-2.8-2.5-6.3-3.7-9.8-3.8c-3.6 0-7.2 1.2-10 3.7c-33.2 29.7-61.4 63.4-81.4 95.8c-19.7 31.9-32.4 66.2-32.4 92.6C320 407.9 390.3 480 480 480c88.7 0 160-72 160-159.8c0-20.2-9.6-50.9-24.2-79c-14.8-28.5-35.7-58.5-60.4-81.1c-5.6-5.1-14.4-5.2-20 0c-9.6 8.8-18.6 19.6-26.5 29.5c-17.3-20.7-35.8-39.9-55.5-57.7zM530 401c-15 10-31 15-49 15c-45 0-81-29-81-78c0-24 15-45 45-82c4 5 62 79 62 79l36-42c3 4 5 8 7 12c18 33 10 75-20 96z\"]\n};\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [576, 512, [], \"e3b1\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z\"]\n};\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [576, 512, [\"cocktail\"], \"f561\", \"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM256 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [256, 512, [], \"e4c5\", \"M88 0h80c13.3 0 24 10.7 24 24V64H64V24C64 10.7 74.7 0 88 0zM0 151.7c0-15.6 9-29.8 23.2-36.5l24.4-11.4c11-5.1 23-7.8 35.1-7.8h90.6c12.1 0 24.1 2.7 35.1 7.8l24.4 11.4c14.2 6.6 23.2 20.8 23.2 36.5c0 14.4-7.5 27-18.9 34.1c11.5 8.8 18.9 22.6 18.9 38.2c0 16.7-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48c0-16.7 8.5-31.4 21.5-40C8.5 415.4 0 400.7 0 384s8.5-31.4 21.5-40C8.5 335.4 0 320.7 0 304s8.5-31.4 21.5-40C8.5 255.4 0 240.7 0 224c0-15.6 7.4-29.4 18.9-38.2C7.5 178.7 0 166.1 0 151.7zM64 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6L66.5 148.4zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 208c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm256 32c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H32zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M96 0C80.7 0 67.6 10.8 64.6 25.7l-64 320c-1.9 9.4 .6 19.1 6.6 26.6S22.4 384 32 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H608c9.6 0 18.7-4.3 24.7-11.7s8.5-17.2 6.6-26.6l-64-320C572.4 10.8 559.3 0 544 0H96zm5.4 168L122.2 64h90.4L202.3 168H101.4zm-9.6 48H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104H235.3l10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l20.8 104zm-149.1 0h-139L260.9 64H379.1l10.4 104z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z\"]\n};\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 192c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zM400 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288 144C288 64.5 223.5 0 144 0S0 64.5 0 144s64.5 144 144 144s144-64.5 144-144zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [576, 512, [9842, 9850, 9851], \"f1b8\", \"M206.7 45.1C224.2 17 255 0 288 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L315 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM461.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L352 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L68 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L214 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3-51.5 82.4c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0c-53.1 0-96.1-43.2-95.8-96.4c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320h73.8c34.2 0 93.7-28 93.7-64c0-35-59.5-64-93.7-64l-116.6 0L297.2 16.1C291.5 6.2 280.9 0 269.4 0H213.2c-10.6 0-18.3 10.2-15.4 20.4l40.3 140.9L38.8 5.1zm2.7 123.6C36 130.6 32 135.9 32 142c0 1.3 .2 2.6 .5 3.9L64 256 32.5 366.1c-.4 1.3-.5 2.6-.5 3.9c0 7.8 6.3 14 14 14H88c5 0 9.8-2.4 12.8-6.4L144 320H246.9l-49 171.6c-2.9 10.2 4.8 20.4 15.4 20.4l56.2 0c11.5 0 22.1-6.2 27.8-16.1l65.3-114.3L41.5 128.7z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M86.6 64C119 35.5 158.6 15 202.3 5.6C206 19.1 208 33.3 208 48c0 38.4-13.5 73.7-36.1 101.3L86.6 64zM64 86.6l85.2 85.2C121.7 194.5 86.4 208 48 208c-14.7 0-28.9-2-42.4-5.7C15 158.6 35.5 119 64 86.6zM256 0c64.9 0 124.2 24.2 169.4 64L256 233.4 194.6 172C222.9 138.5 240 95.3 240 48c0-16.2-2-32-5.8-47.1C241.4 .3 248.7 0 256 0zM48 240c47.3 0 90.5-17.1 124-45.4L233.4 256 64 425.4C24.2 380.2 0 320.9 0 256c0-7.3 .3-14.6 .9-21.8C16 238 31.8 240 48 240zm463.1 37.8C496 274 480.2 272 464 272c-47.3 0-90.5 17.1-124 45.4L278.6 256 448 86.6c39.8 45.1 64 104.4 64 169.4c0 7.3-.3 14.6-.9 21.8zm-4.7 31.9C497 353.4 476.5 393 448 425.4l-85.2-85.2C390.3 317.5 425.6 304 464 304c14.7 0 28.9 2 42.4 5.7zM340.1 362.7L425.4 448C393 476.5 353.4 497 309.7 506.4C306 492.9 304 478.7 304 464c0-38.4 13.5-73.7 36.1-101.3zM317.4 340C289.1 373.5 272 416.7 272 464c0 16.2 2 32 5.8 47.1c-7.2 .6-14.5 .9-21.8 .9c-64.9 0-124.2-24.2-169.4-64L256 278.6 317.4 340z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H144c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM304 64H80V384H304V64z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 336c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm240 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zM272 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z\"]\n};\nvar faHamburger = faBurger;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [128295], \"f0ad\", \"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [640, 512, [], \"e4d0\", \"M196.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L160 71.7 133.9 14.1C128.4 2 114.1-3.3 102.1 2.1S84.7 21.9 90.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8s-21.4 15.2-18.8 28.2l8 40C42.7 175.9 52.6 184 64 184H96v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C114.7 274.6 135.8 288 160 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L224 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L236.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM528 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L464.8 250c-12.3 1-24.2 5.6-34.1 13.3L416 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L391 322.7 353.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L535.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L598.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s25-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.4-13.4-6.6-28-4.4-43.2c8.5-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"]\n};\nvar faRupee = faRupeeSign;\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM128 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm88 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"]\n};\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [128747], \"f5b0\", \"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM413.6 421.9L128 196.9V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM80 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"]\n};\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [576, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z\"]\n};\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [512, 512, [], \"e2b7\", \"M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [128008], \"f6be\", \"M288 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L248 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1C10.5 157.6-1.9 141.6 .2 124s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C325.3 164 320 146.6 320 128v0V32 12 10.7C320 4.8 324.7 .1 330.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L352 21.3l27.2 36.3L384 64h64l4.8-6.4L480 21.3 492.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C507.3 .1 512 4.8 512 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM400 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 256s96-96 96-160c0-53-43-96-96-96s-96 43-96 96c0 29.4 20.2 65.5 42.1 96H320c-53 0-96 43-96 96s43 96 96 96h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H188.6c-6.2 9.6-12.6 18.8-19 27.2c-10.7 14.2-21.3 26.9-30 36.8H416c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h96zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM149.9 448c21.9-30.5 42.1-66.6 42.1-96c0-53-43-96-96-96s-96 43-96 96c0 64 96 160 96 160s3.5-3.5 9.2-9.6c.4-.4 .7-.8 1.1-1.2c3.3-3.5 7.1-7.8 11.4-12.8c.2-.2 .4-.4 .6-.6c9.4-10.8 20.7-24.6 31.6-39.8zM96 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [640, 512, [], \"e209\", \"M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM160 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm208 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [576, 512, [], \"f62f\", \"M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [512, 512, [], \"f02c\", \"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM88.1 128l5.3-64H226.6l5.3 64H88.1z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z\"]\n};\nvar faFastForward = faForwardFast;\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM208.4 208c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm128 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M314.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c9.7 8.9 12.9 22.9 8.1 35.2S557.2 256 544 256H512V368c0 26.5-21.5 48-48 48H278.1C259.6 350.8 216.8 295.9 160 261.7V256h-9.9c-16.5-9-34-16.2-52.3-21.6c-4.1-12-.8-25.3 8.5-34l208-192zM304 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H304zM24 256c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM0 376c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [512, 512, [\"tasks-alt\"], \"f828\", \"M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [640, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M41.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 41.4 86.6zM288 416H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm64-96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM432 256c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM288 192c0 35.3-28.7 64-64 64c-11.5 0-22.3-3-31.6-8.4c-.2 2.8-.4 5.5-.4 8.4c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [576, 512, [], \"f29e\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z\"]\n};\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"]\n};\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [512, 512, [], \"e586\", \"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [576, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M544 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM416 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM320 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM160 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM64 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [128653], \"f207\", \"M256 0C390.4 0 480 35.2 480 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C32 35.2 121.6 0 256 0zM96 160v96c0 17.7 14.3 32 32 32H240V128H128c-17.7 0-32 14.3-32 32zM272 288H384c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H272V288zM112 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 80c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [576, 512, [63499, \"home-lg\"], \"e3af\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faFrown = faFaceFrown;\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [640, 512, [\"store-alt\"], \"f54f\", \"M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z\"]\n};\nvar faStoreAlt = faShop;\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSave = faFloppyDisk;\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zm-396.3 211c.4-.8 1.3-1.3 2.2-1.3s1.7 .5 2.2 1.3L204.9 416H51.1l74.7-142.7zM128 224c-18.8 0-36 10.4-44.7 27L5.5 399.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C45.1 498.6 77.8 512 128 512s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L172.7 251c-8.7-16.6-25.9-27-44.7-27zm384-80c.9 0 1.7 .5 2.2 1.3L588.9 288H435.1l74.7-142.7c.4-.8 1.3-1.3 2.2-1.3zm-44.7-21L389.5 271.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C429.1 370.6 461.8 384 512 384s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L556.7 123C548 106.4 530.8 96 512 96s-36 10.4-44.7 27z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [\"sort-asc\"], \"f0de\", \"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faSortAsc = faSortUp;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCommenting = faCommentDots;\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [576, 512, [], \"e05a\", \"M455.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L228 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L135 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L247 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L403 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L471 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zm-331 332.7l0 0L176 368l-51.9-4.7zM240 320c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v32 64c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM336 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"]\n};\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [512, 512, [\"location\"], \"f601\", \"M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128zm128 80c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM288 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zm80 176c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"]\n};\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64c0-35.3-28.7-64-64-64S96 28.7 96 64s28.7 64 64 64s64-28.7 64-64zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z\"]\n};\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [640, 512, [], \"e591\", \"M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM211.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zM563.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM321.6 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.4 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M0 224.2C0 100.6 100.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM240 80c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C161.5 168.1 145 208 112 208c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C184.1 302.5 224 319 224 352c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C318.5 279.9 335 240 368 240c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C295.9 145.5 256 129 256 96c0-8.8-7.2-16-16-16zM216 224c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm72 32c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5c0-26.5-21.5-48-48.1-48s-48.1 21.5-48.1 48s21.5 48 48.1 48s48.1-21.5 48.1-48z\"]\n};\nvar faUserCog = faUserGear;\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [576, 512, [\"sort-numeric-up\"], \"f163\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 64c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H384c-17.7 0-32-14.3-32-32zm93.7 300.9c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [576, 512, [128682], \"f52a\", \"M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z\"]\n};\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [576, 512, [], \"e4ce\", \"M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80c0-26.5-21.5-48-48-48S16 53.5 16 80s21.5 48 48 48s48-21.5 48-48zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H224 32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M304 64c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"]\n};\nvar faDigging = faPersonDigging;\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm0 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [576, 512, [], \"f1b3\", \"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M272 96c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 320c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [127911], \"f025\", \"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"]\n};\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [576, 512, [], \"e1a8\", \"M368 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM167 119c9.4-9.4 24.6-9.4 33.9 0L324.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L39 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L87 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM465.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM456.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [576, 512, [], \"e543\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [512, 512, [128207], \"f545\", \"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M216.3 2c4.8-2.6 10.5-2.6 15.3 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L216.3 2zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L8.3 414C3.2 411.2 0 405.9 0 400V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V400c0 5.9-3.2 11.2-8.3 14l-176 96c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM120 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM560 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [640, 512, [], \"e595\", \"M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80-32c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"]\n};\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [512, 512, [\"external-link-alt\"], \"f35d\", \"M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [512, 512, [\"th\"], \"f00a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z\"]\n};\nvar faTh = faTableCells;\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 224H88c30.9 0 56 25.1 56 56s-25.1 56-56 56H80v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V320 240c0-8.8 7.2-16 16-16zm24 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H80v48h8zm72-64c0-8.8 7.2-16 16-16h24c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H176c-8.8 0-16-7.2-16-16V240zm32 112h8c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16h-8v96zm96-128h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V304 240c0-8.8 7.2-16 16-16z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z\"]\n};\nvar faBible = faBookBible;\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160s160-71.6 160-160s-71.6-160-160-160zM0 256C0 132.3 100.3 32 224 32s224 100.3 224 224s-100.3 224-224 224S0 379.7 0 256z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.7 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 160c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm144-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [320, 512, [\"female\"], \"f182\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faFemale = faPersonDress;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [512, 512, [\"th-large\"], \"f009\", \"M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [512, 512, [\"volume-control-phone\"], \"f2a0\", \"M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M463.2 71.3c-2.4-12.8-9.8-24.1-20.7-31.3s-24.2-9.7-36.9-6.8l-216 48c-19.8 4.4-34.7 20.8-37.2 40.9l-8.8 70.6c5.3-.4 10.8-.7 16.5-.7c82.9 0 141.9 55.3 197.5 107.5l0 0c3.1 3 6.3 5.9 9.4 8.8C427.1 364.5 486.9 416 576 416c0 0 64 0 64-48c0-96-112-128-144-128h-1.6L463.2 71.3zM576 448c-102.9 0-171.1-60.5-230.9-116.3l-6.5-6C279.9 270.8 229.9 224 160 224c-57.8 0-97.4 28.6-123.1 63.5C10.7 323 0 363.8 0 384c0 35.3 28.7 64 64 64H576z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M224 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [8356], \"f195\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V192H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v32H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H78c-2.2 10.5-6.1 20.6-11.7 29.9L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [448, 512, [127991], \"f02b\", \"M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [448, 512, [\"angle-double-up\"], \"f102\", \"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [512, 512, [128206], \"f0c6\", \"M396.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"]\n};\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [127895], \"f4d6\", \"M224 96c39.5 0 66.8 12.2 81.9 21.5L245.6 184l79.3 87.4 36.3-40c14.7-16.2 22.8-37.3 22.8-59.1v-27c0-15.6-4.1-30.8-12-44.3L337.7 42C326.4 22.7 307 6.8 282.1 3.5C267.8 1.6 248.4 0 224 0s-43.8 1.6-58 3.5C141 6.8 121.7 22.7 110.4 42L76 101c-7.8 13.4-12 28.7-12 44.3v27c0 21.9 8.1 42.9 22.8 59.1l57.9 63.8L224 382.6 334.2 504.1c6.4 7 16.3 9.7 25.4 6.6l72-24c7.7-2.6 13.6-8.8 15.6-16.7s0-16.2-5.4-22.2L303.3 295.2 224 207.8l-81.9-90.3C157.3 108.2 184.5 96 224 96zM202.4 406.5L123.2 319 6.3 447.9c-5.4 6-7.5 14.4-5.4 22.2s7.9 14.1 15.6 16.7l72 24c9 3 19 .4 25.4-6.6l88.6-97.7z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [129729], \"f604\", \"M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [576, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 320c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V352H384c-17.7 0-32-14.3-32-32zm93.7-171.1c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [448, 512, [], \"e1d3\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V213.6L55.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L96 280.1V448c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L160 195.3V64z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm96 64c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-448c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM224 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-320c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 32C14.3 32 0 46.3 0 64S14.3 96 32 96s32-14.3 32-32s-14.3-32-32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM224 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM416 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM208 384c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256 32c12.5 0 24.1 6.4 30.7 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5 208 288l48-64h65z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm416 0c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 384c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faCameraAlt = faCamera;\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm88 32c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128s-57.3 128-128 128zm0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm16 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [512, 512, [], \"e4dd\", \"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 392c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm280-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [576, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M352 64c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM445.7 364.9c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 96c0 35.3-28.7 64-64 64S0 131.3 0 96S28.7 32 64 32s64 28.7 64 64zm96 176c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM80 416c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM224 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM480 96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM576 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM416 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [128666, 9951], \"f0d1\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M272 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z\"]\n};\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [576, 512, [], \"e57d\", \"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H416L288 288V512H32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M374.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 86.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [576, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm128-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faHdd = faHardDrive;\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-18.5 5-38.8 8.3-50.9 10c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.2-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M112 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32V224v64V416c0 17.7-14.3 32-32 32H144c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32h48V96zm416 0v32h48c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H528v32c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z\"]\n};\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32-128c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z\"]\n};\nvar faListAlt = faRectangleList;\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [576, 512, [], \"e57c\", \"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm320 0c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192zM224 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H144c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [128748], \"f5af\", \"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160-80c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [448, 512, [\"subway\"], \"f239\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM128 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm224 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSubway = faTrainSubway;\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM400 256c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [512, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M177.5 98c-8.8-3.8-19-2-26 4.6l-144 136C2.7 243.1 0 249.4 0 256s2.7 12.9 7.5 17.4l144 136c7 6.6 17.2 8.4 26 4.6s14.5-12.5 14.5-22l0-88 288 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-288 0 0-88c0-9.6-5.7-18.2-14.5-22z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [129516], \"f471\", \"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM107.5 224H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7L144.7 210c-9.5 8.5-22.2 14-37.2 14z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faSubtract = faMinus;\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H59.4C48.7 96 40 104.7 40 115.4c0 3 .7 5.9 2 8.7c6 12.4 23.8 50.8 32.8 83.9H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h7.7C78 302.9 69.4 352.7 63.1 384H192.9c-6.4-31.3-14.9-81.1-16.6-128H184c13.3 0 24-10.7 24-24s-10.7-24-24-24h-2.8c9-33.2 26.8-71.5 32.8-83.9c1.3-2.7 2-5.6 2-8.7c0-10.7-8.7-19.4-19.4-19.4H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM25.2 451.4l-8.8 4.4C6.3 460.8 0 471.1 0 482.3C0 498.7 13.3 512 29.7 512H226.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H56.4C42.9 416 32 426.9 32 440.4c0 4.6-2.6 8.9-6.8 10.9zm279.2 4.4c-10.1 5-16.4 15.3-16.4 26.5c0 16.4 13.3 29.7 29.7 29.7H482.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H344.4c-13.5 0-24.4 10.9-24.4 24.4c0 4.6-2.6 8.9-6.8 10.9l-8.8 4.4zM304 259.9c0 7.8 2.8 15.3 8 21.1l18.9 21.4c5.4 6.1 8.2 14 8 22.1L337 384H462.5l-2.7-58.7c-.4-8.5 2.6-16.9 8.4-23.1l19.3-21c5.4-5.9 8.5-13.6 8.5-21.7V200c0-4.4-3.6-8-8-8H464c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H376c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v59.9zM392 336c-4.4 0-8-3.6-8-8V304c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 4.4-3.6 8-8 8H392z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [512, 512, [\"long-arrow-left\"], \"f177\", \"M109.3 288L480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [576, 512, [], \"e55c\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M320 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"]\n};\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faCog = faGear;\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [640, 512, [\"tint-slash\"], \"f5c7\", \"M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.1 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0h-1.8c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [128332], \"f678\", \"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [640, 512, [], \"e52b\", \"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [512, 512, [], \"e54b\", \"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [576, 512, [128722, \"shopping-cart\"], \"f07a\", \"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [576, 512, [], \"e55f\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M40 352c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zm192 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 320l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40zM232 192c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 160l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40L40 32C17.9 32 0 49.9 0 72l0 48c0 22.1 17.9 40 40 40zM232 32c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z\"]\n};\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M289 24.2C292.5 10 305.3 0 320 0H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H345L239 487.8c-3.2 13-14.2 22.6-27.6 24s-26.1-5.5-32.1-17.5L76.2 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c12.1 0 23.2 6.8 28.6 17.7l73.3 146.6L289 24.2zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [320, 512, [\"step-backward\"], \"f048\", \"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [640, 512, [], \"f432\", \"M550.3 0c-10.9 0-21.4 3.4-30.2 9.8L279.7 184.6c-13.9 10.1-26.8 21.4-38.7 33.8L138.7 325.3c-9.2 9.6-19.3 18.4-30.1 26.3L79.3 372.9c1.3 1.5 2.6 3 3.9 4.7l48 64c1.6 2.2 3.1 4.4 4.4 6.6l27.3-19.9c11.6-8.4 24-15.8 37-21.8l135.3-63.1c16.7-7.8 32.7-17.2 47.6-28.1L619 143.6c13.2-9.6 21-24.9 21-41.2c0-11-3.6-21.8-10.2-30.6L609.6 44.8 591.4 20.6C581.7 7.6 566.5 0 550.3 0zM496 512c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM57.6 396.8c-10.6-14.1-30.7-17-44.8-6.4s-17 30.7-6.4 44.8l48 64c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-48-64z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [384, 512, [115], \"53\", \"M131.1 105.4c-20.1 8.6-30.8 21.8-33.9 39.4c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3c-16.8-5.6-25.8-23.7-20.3-40.5s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5-31.5-5.5c7.3-42.5 35.3-71.7 71.8-87.3c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.1 22.7c-11.2-3-48.2-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [640, 512, [], \"e29c\", \"M128 120c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32 49.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM536 96c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM320 440c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [576, 512, [\"clinic-medical\"], \"f7f2\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V152c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h32l-18.8 75.1c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [576, 512, [\"battery-3\"], \"f242\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm208 32V320H96V192H288z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [576, 512, [9772], \"f66d\", \"M277.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C376.9 97.4 400 134 400 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L304 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L433.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L304 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C229.8 463.3 219.9 472 208 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L144 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C58.4 324.5 32 277.1 32 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29c4.8-3.2 8.9-5.7 11.8-7.3c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C137.2 119 128 149.5 128 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L272 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C199.1 254.6 176 218 176 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM252.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C259 210.2 264 190.9 264 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C317 141.8 312 161.1 312 176s5 34.2 11.8 53.1z\"]\n};\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M0 416c0-17.7 14.3-32 32-32l54.7 0c12.3-28.3 40.5-48 73.3-48s61 19.7 73.3 48L480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-246.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 448c-17.7 0-32-14.3-32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-32-80c32.8 0 61 19.7 73.3 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-54.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l246.7 0c12.3-28.3 40.5-48 73.3-48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm73.3 0L480 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-214.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 128C14.3 128 0 113.7 0 96S14.3 64 32 64l86.7 0C131 35.7 159.2 16 192 16s61 19.7 73.3 48z\"]\n};\nvar faSlidersH = faSliders;\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M320 144c0 79.5-64.5 144-144 144S32 223.5 32 144S96.5 0 176 0s144 64.5 144 144zM176 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM144 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM224 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 360c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zm0-160c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zM120 96c0 30.9-25.1 56-56 56S8 126.9 8 96S33.1 40 64 40s56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128v80c26.5 0 48 21.5 48 48s-21.5 48-48 48v80c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V304c-26.5 0-48-21.5-48-48s21.5-48 48-48V128c0-35.3-28.7-64-64-64H64zm64 96l0 192H448V160H128zm-32 0c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [512, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 88L32 208c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l288 0 0 88c0 9.6 5.7 18.2 14.5 22z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1v36.1l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9v32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3v33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.4-23.7-122.5-13.4L64 400v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V416 345.5 312.8 249.5 216.8 153.5 120.8 64 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [640, 512, [], \"e51d\", \"M192 0H48C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H162.7c6.6-18.6 24.4-32 45.3-32V272c0-44.2 35.8-80 80-80h32V128H224c-17.7 0-32-14.3-32-32V0zm96 224c-26.5 0-48 21.5-48 48v16 96 32H208c-8.8 0-16 7.2-16 16v16c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V432c0-8.8-7.2-16-16-16H592V288c0-35.3-28.7-64-64-64H320 304 288zm32 64H528V416H304V288h16zM224 0V96h96L224 0z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M472.7 188.8c-8.5 13.8-26.8 19.6-42.7 13.6L356 174.2c-14-5.3-22.5-18.5-21-32.4l4.6-42.6c-54.1-17.4-113.2-17.4-167.3 0l4.6 42.6c1.5 13.9-7 27.1-21 32.4L82 202.4c-15.9 6.1-34.2 .3-42.7-13.6L4.5 132.5c-7.7-12.4-5.4-28 5.5-38.1c135.9-125.8 356.1-125.8 492 0c10.9 10.1 13.2 25.7 5.5 38.1l-34.8 56.4zM32 272c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V272zm0 192c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V464zM96 352h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H384c-8.8 0-16-7.2-16-16V368zM336 256h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V272zm16 176h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V464c0-8.8 7.2-16 16-16zM128 464c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V464z\"]\n};\nvar faTeletype = faTty;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [512, 512, [], \"e476\", \"M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z\"]\n};\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [576, 512, [], \"e54e\", \"M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM320 80c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [384, 512, [\"hiking\"], \"f6ec\", \"M288 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM243.3 230.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z\"]\n};\nvar faHiking = faPersonHiking;\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S80 114.1 80 176s50.1 112 112 112zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM256 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zM64 224c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM160 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zM288 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM256 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V448c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 50.5 8.4 38.5 21.1 33.9z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-64-8c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z\"]\n};\nvar faTram = faCableCar;\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z\"]\n};\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [640, 512, [], \"e4d4\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [576, 512, [128674], \"f21a\", \"M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [640, 512, [], \"e4b8\", \"M576 416L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L512 274.7 512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L192 274.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L86.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zM432 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrin = faFaceGrin;\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [576, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [9193], \"f04e\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMeh = faFaceMeh;\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z\"]\n};\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 128c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"]\n};\nvar faBookDead = faBookSkull;\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM352 208c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [512, 512, [\"dedent\"], \"f03b\", \"M32 64c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 96 32 81.7 32 64zM224 192c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm32 96H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32zM32 448c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L32.2 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [576, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H32zM160 224H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [448, 512, [8644, \"exchange\"], \"f0ec\", \"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [448, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"]\n};\nvar faCutlery = faUtensils;\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zM128 368c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zm288 0c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192h88l0 288c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32l0-288h88c9.6 0 18.2-5.7 22-14.5z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [384, 512, [9209], \"f04d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32.4 49.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM392 272c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm-96 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [576, 512, [], \"e52d\", \"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"]\n};\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 224c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zm-96 32c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm96-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z\"]\n};\nvar faZap = faBolt;\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [448, 512, [], \"e4f4\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm41 156.5L98.4 64H349.6L343 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L105 156.5z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [576, 512, [], \"e2c5\", \"M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 80c-88.4 0-160-71.6-160-160s71.6-160 160-160s160 71.6 160 160s-71.6 160-160 160zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [448, 512, [9794], \"f222\", \"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [320, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M58.6 46.2C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM352 256c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zm32 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M0 464V316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5C361.6 7.9 384 23.8 384 46.4c0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H48c-26.5 0-48-21.5-48-48zM328 224c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H352V352c0 53-43 96-96 96s-96-43-96-96V128H48z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64V304v48 80c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L320 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4V64c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [512, 512, [], \"e4c1\", \"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM512 384c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 64c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64S28.7 64 64 64z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [62774], \"3c\", \"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [448, 512, [8964], \"f107\", \"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h64H384h64c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM384 512c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V480c0 17.7-14.3 32-32 32zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm200-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M0 201.7C0 90.3 90.3 0 201.7 0H224c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H416v32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 35.3-28.7 64-64 64H288c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V375.8c0-17-7.1-33-17.5-46.4C18.3 293.2 0 246.5 0 201.7zM336 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm272 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40 24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm-64 48c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm128 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM608 504c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40-72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-25.3-19.5-46-44.3-47.9c7.7-8.5 12.3-19.8 12.3-32.1c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 320H96c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64V288c0 17.7 14.3 32 32 32z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [512, 512, [\"long-arrow-right\"], \"f178\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M120 256c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm160 0c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm104 56c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M264 136c0 37.1-19.4 69.6-48.6 88H224c17.7 0 32 14.3 32 32s-14.3 32-32 32c0 96 24 128 24 128H72s24-32 24-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h8.5C75.4 205.6 56 173.1 56 136C56 78.6 102.6 32 160 32s104 46.6 104 104zM32 448H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [576, 512, [\"first-aid\"], \"f479\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 256c-70.7 0-128-57.3-128-128S249.3 0 320 0s128 57.3 128 128s-57.3 128-128 128zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faAutomobile = faCar;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M352 96c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM240 248V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [640, 512, [], \"e52f\", \"M560 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [640, 512, [], \"e4ba\", \"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M64.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L217.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L63.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM32 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L56.2 158C45.6 151.6 32 159.3 32 171.7zM326.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L338.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM512 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L302.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM249.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM57.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L46.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L418.9 238.1c-6.5-10-21.4-9.6-27.3 .8L306.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H199.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM190.4 176H353.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"]\n};\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [640, 512, [], \"e58c\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"]\n};\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [512, 512, [\"temperature-up\"], \"e040\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM448 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [127941], \"f5a2\", \"M16 0H144c5.3 0 10.3 2.7 13.3 7.1l81.1 121.6c-49.5 4.1-94 25.6-127.6 58.3L2.7 24.9C-.6 20-.9 13.7 1.9 8.5S10.1 0 16 0zM509.3 24.9L401.2 187.1c-33.5-32.7-78.1-54.2-127.6-58.3L354.7 7.1c3-4.5 8-7.1 13.3-7.1H496c5.9 0 11.3 3.2 14.1 8.5s2.5 11.5-.8 16.4zM432 336c0 97.2-78.8 176-176 176s-176-78.8-176-176s78.8-176 176-176s176 78.8 176 176zM264.4 241.1c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zM176 288c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-32c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [576, 512, [], \"e560\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [640, 512, [\"hands-helping\"], \"f4c4\", \"M543.9 251.4c0-1.1 .1-2.2 .1-3.4c0-48.6-39.4-88-88-88l-40 0H320l-16 0 0 0v16 72c0 22.1-17.9 40-40 40s-40-17.9-40-40V128h.4c4-36 34.5-64 71.6-64H408c2.8 0 5.6 .2 8.3 .5l40.1-40.1c21.9-21.9 57.3-21.9 79.2 0l78.1 78.1c21.9 21.9 21.9 57.3 0 79.2l-69.7 69.7zM192 128V248c0 39.8 32.2 72 72 72s72-32.2 72-72V192h80l40 0c30.9 0 56 25.1 56 56c0 27.2-19.4 49.9-45.2 55c8.2 8.6 13.2 20.2 13.2 33c0 26.5-21.5 48-48 48h-2.7c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48H224c-.9 0-1.8 0-2.7-.1l-37.7 37.7c-21.9 21.9-57.3 21.9-79.2 0L26.3 407.6c-21.9-21.9-21.9-57.3 0-79.2L96 258.7V224c0-53 43-96 96-96z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [62769], \"3e\", \"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [576, 512, [127946, \"swimmer\"], \"f5c4\", \"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM32 160c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"]\n};\nvar faTint = faDroplet;\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M480 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [576, 512, [\"battery-0\"], \"f244\", \"M80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zM64 176c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z\"]\n};\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [320, 512, [], \"e447\", \"M96.9 96c2.1-11.6 8.7-19.8 21.1-25.4c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8c-34.7-5.7-69.4-3.6-98 9.3c-29.8 13.5-52.2 38.6-58 74.1c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C54.3 194.2 38.5 215.1 33.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"]\n};\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M0 204.2V48c0-8.8 7.2-16 16-16H72c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h80c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h56c8.8 0 16 7.2 16 16V204.2c0 12.1-6.8 23.2-17.7 28.6l-28.6 14.3c-10.8 5.4-17.7 16.5-17.5 28.6C322.2 360.7 336 416 336 416H48s13.8-55.3 15.8-140.2c.3-12.1-6.6-23.2-17.5-28.6L17.7 232.8C6.8 227.4 0 216.3 0 204.2zM176 320h32c8.8 0 16-7.2 16-16V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [512, 512, [\"blind\"], \"f29d\", \"M176 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [576, 512, [129345], \"f569\", \"M533.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L402.2 104.5C367.8 98.7 329 96 288 96C146.6 96 32 128 32 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM339.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C490.4 181.8 496 197.4 496 208c0 .8-2.7 17.2-46 35.9C411.1 260.7 354 272 288 272s-123.1-11.3-162-28.1C82.7 225.2 80 208.8 80 208c0-10.6 5.6-26.2 44.4-41.3C162.6 151.9 219.8 144 288 144c18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16C336 64.5 271.5 0 192 0S48 64.5 48 144c0 5.4 .3 10.7 .9 16H48c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H336c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM64 288L168.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L320 288H64z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 448c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-96-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [576, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [640, 512, [128279, \"chain\"], \"f0c1\", \"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"]\n};\nvar faChain = faLink;\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM192 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [384, 512, [9654], \"f04b\", \"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z\"]\n};\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z\"]\n};\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H293c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219v-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 512c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [576, 512, [\"diagnoses\"], \"f470\", \"M288 176c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM272 280c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm56 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM96 240c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm368 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H69.5c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H199.7c-11.5 0-21.4-8.2-23.6-19.5L170.7 288H459.2c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32H360V134.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V32H120.1C111 12.8 91.6 0 69.5 0H24zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [576, 512, [128221, \"file-edit\"], \"f31c\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V285.7l-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faFileEdit = faFilePen;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.2 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [576, 512, [], \"e53f\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [512, 512, [], \"f078\", \"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [576, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm368 32V320H96V192H448z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [512, 512, [128369, 9760], \"f714\", \"M400 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H208c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C112 57.3 176.5 0 256 0s144 57.3 144 128zM200 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm144-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM35.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L256 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L327.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L256 419.8 78.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L184.4 384 49.7 316.6c-15.8-7.9-22.2-27.1-14.3-42.9z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432c0 13.3 10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M64 144c26.5 0 48-21.5 48-48s-21.5-48-48-48S16 69.5 16 96s21.5 48 48 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48-208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faListDots = faListUl;\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96H592c26.5 0 48 21.5 48 48V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48H166.3L302.2 5.4zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M318 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26S14.4 320 24 320h88l0-288c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32l0 288h88c9.6 0 18.2 5.7 22 14.5z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [640, 512, [], \"e561\", \"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H416c10.3 0 19.9 4.9 26 13.3s7.7 19.1 4.4 28.8L375.1 416H72.9L1.6 202.1C-1.6 192.4 0 181.6 6 173.3s15.7-13.3 26-13.3H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM32 480c0-17.7 14.3-32 32-32H83.6 364.4 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128 64c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM216 192c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [576, 512, [\"tasks\"], \"f0ae\", \"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faTasks = faListCheck;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 272c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zM268.3 308.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4s-16.6 20.4-29.4 17zM545 358.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M241.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H504c13.3 0 24 10.7 24 24s-10.7 24-24 24H475.8c-10.8 0-21.4-2-31.5-5.8L92.1 371.3c-11.5-4.4-22-11.2-30.8-20L39 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L224 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM171 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.4-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L171 350.1zM464 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm368-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1z\"]\n};\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M256 448C150 448 64 362 64 256S150 64 256 64s192 86 192 192s-86 192-192 192zm0 64c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [576, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [512, 512, [], \"f0c5\", \"M224 0c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224zM64 160c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64H64V224h64V160H64z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [448, 512, [\"grip-horizontal\"], \"f58d\", \"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V136zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z\"]\n};\nvar faGripHorizontal = faGrip;\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M352 224H305.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144h80V34.7C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2H384c-17.7 0-32-14.3-32-32V224zM80 96c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H400c8.8 0 16-7.2 16-16V384c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V112C0 67.8 35.8 32 80 32h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H80z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faChildCombatant = {\n prefix: 'fas',\n iconName: 'child-combatant',\n icon: [576, 512, [\"child-rifle\"], \"e4e0\", \"M176 128c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z\"]\n};\nvar faChildRifle = faChildCombatant;\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"]\n};\nvar faAdd = faPlus;\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [640, 512, [], \"e4e5\", \"M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 224c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [320, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 256c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm-26.7 32h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [384, 512, [], \"e222\", \"M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [448, 512, [], \"f77c\", \"M296 88c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"]\n};\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [640, 512, [], \"e592\", \"M211.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM321.6 192c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [128668], \"f722\", \"M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256c-44.2 0-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80s-35.8-80-80-80zM528 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [640, 512, [], \"e4b0\", \"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [448, 512, [], \"e51e\", \"M222.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM384 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [576, 512, [], \"f62e\", \"M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [576, 512, [], \"f54e\", \"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [576, 512, [], \"e55e\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-87.5-68.6c.5-1.7 .7-3.5 .7-5.4c0-27.6-11-54.1-30.5-73.7L512 320c-20.5-20.5-32-48.3-32-77.3V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM160 242.7c0 29-11.5 56.8-32 77.3l-1.5 1.5C107 341 96 367.5 96 395.2c0 11.5 9.3 20.8 20.8 20.8H406.2L160 222.1v20.7zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M288 0H400c8.8 0 16 7.2 16 16V64c0 8.8-7.2 16-16 16H320V95.5L410.3 160H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [576, 512, [], \"f575\", \"M118.6 9.4C106.1-3.1 85.9-3.1 73.4 9.4s-12.5 32.8 0 45.3L154.7 136 62.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L180.1 481.4c37.5 37.5 98.3 37.5 135.8 0L506.3 290.9c28.1-28.1 28.1-73.7 0-101.8L354.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L200 90.7 118.6 9.4zM200 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L245.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L461.1 234.3c3.1 3.1 3.1 8.2 0 11.3L418.7 288H99.5c1.4-5.4 4.2-10.4 8.4-14.6L200 181.3z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [448, 512, [8963], \"f106\", \"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [384, 512, [9001], \"f053\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 278.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-3.1 11c-7.4-.3-14.9 .4-22.4 2.1c-9 2.1-17.8 4.4-26.2 7l-4.4-10.3c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l3.6 8.5c-16.5 7.1-31.5 15.1-45.2 23.9L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l5.8 8.7c-13.5 11.2-25.3 23.1-35.5 35.3l-10.1-8.1c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L66 155c-1.6 2.4-3.1 4.8-4.5 7.3c-7.1 11.8-12.8 23.2-17.4 34l-7.4-3c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l8.7 3.5c-.2 .8-.4 1.6-.7 2.3c-2.6 9.4-4.2 17.4-5.3 23.5c-.5 3.1-.9 5.7-1.2 7.7c-.1 1-.2 2-.3 2.7l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.4 2.8l0 0-29.4-2.7c-.3 3.8-.4 7.5-.3 11.2l-11 3.1C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l10.3-2.9c8 15.5 20.7 28.3 36.4 36.4L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l3.1-11c17.8 .8 34.7-4.1 48.8-13.2l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c6.8-10.6 11.3-22.9 12.7-36.2l.1-.6c.2-1.3 .7-3.8 1.7-7.4l.2-.6 9.4 4c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.5-3.6c7.5-11.1 18.7-23.7 36.5-34.5l1.6 5.6c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-3-10.6c5.2-1.7 10.7-3.2 16.6-4.6c9.7-2.2 18.5-6 26.4-11.1l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c9.1-14.3 14-31.2 13.2-48.8l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-10.3 2.9c-8.1-15.9-21-28.5-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3zM106.2 275.8l-37.1-3.4 0 0 37.1 3.4zM128 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm96-112c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm98.7 345c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l3.1-11c7.4 .3 14.9-.4 22.4-2.1c9-2.1 17.8-4.4 26.2-7l4.4 10.3c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-3.6-8.5c16.5-7.1 31.5-15.1 45.2-23.9L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-5.8-8.7c13.5-11.2 25.3-23.1 35.5-35.3l10.1 8.1c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574 357c1.6-2.4 3.1-4.8 4.5-7.3c7.1-11.8 12.8-23.2 17.4-34l7.4 3c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-8.7-3.5c.2-.8 .4-1.6 .7-2.3c2.6-9.4 4.2-17.4 5.3-23.5c.5-3.1 .9-5.7 1.2-7.7c.1-1 .2-2 .3-2.7l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.4-2.8l0 0 29.4 2.7c.3-3.8 .4-7.5 .3-11.2l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-10.3 2.9c-8-15.5-20.7-28.3-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.2 12.4l-3.1 11c-17.8-.8-34.7 4.1-48.8 13.2l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-6.8 10.6-11.3 22.9-12.7 36.2l-.1 .6c-.2 1.3-.7 3.8-1.7 7.4l-.2 .6-9.4-4c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.5 3.6c-7.5 11.1-18.7 23.7-36.5 34.5l-1.6-5.6c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l3 10.6c-5.2 1.7-10.7 3.2-16.6 4.6c-9.7 2.2-18.5 6-26.4 11.1l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-9.1 14.2-14 31.2-13.2 48.8l-11 3.1c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l10.3-2.9c8.1 15.9 21 28.5 36.4 36.4l-3 10.3zM570.9 239.5l0 0-37.1-3.4 37.1 3.4zM384 384c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faNotdef = {\n prefix: 'fas',\n iconName: 'notdef',\n icon: [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7V390.3zM102.5 448H281.5L192 313.7 102.5 448zm128-192L320 390.3V121.7L230.5 256zM281.5 64H102.5L192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M238.5 53.1C251 39.6 268.6 32 287 32c28.9 0 54.5 18.7 63.2 46.3L366 128.6c7.3 23 25.2 41 48.2 48.3l62.2 19.9c21.2 6.8 35.6 26.5 35.6 48.7c0 17.5-8.9 33.7-23.6 43.1l-85.9 54.8c-10.6 6.8-16.6 18.8-15.7 31.3l2.5 33.9c2.8 38.5-27.7 71.4-66.4 71.4c-13.6 0-26.9-4.2-38.1-12l-48.2-33.6c-14.8-10.3-32.3-15.8-50.3-15.8H170.2c-4.9 0-9.9 .4-14.8 1.2L83.9 432.1c-21.3 3.6-42.8-5.7-54.6-23.9c-11.8-18.1-11.8-41.4 0-59.4L56.5 307c4.9-7.5 7.5-16.3 7.5-25.3c0-9.9-3.2-19.5-9-27.4L11.3 194.6C-6.5 170.3-.7 136.2 24.2 119.2c9.7-6.6 21.2-9.8 32.9-9.1l80.6 4.6c26.1 1.5 51.5-8.7 69.4-27.9l31.5-33.8zM160 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM288 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 368c-61.9 0-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112s-50.1 112-112 112zm0 64c97.2 0 176-78.8 176-176s-78.8-176-176-176S16 158.8 16 256s78.8 176 176 176z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [384, 512, [9002], \"f054\", \"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [448, 512, [], \"e06b\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM32 128V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [576, 512, [\"battery-2\"], \"f243\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm112 32V320H96V192h96z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 400c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 512c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm336-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 320c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48zm-48-80c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zM160 64c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM224 240c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm256 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [384, 512, [62101, 62785, \"percentage\"], \"25\", \"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128c0-35.3-28.7-64-64-64S0 92.7 0 128s28.7 64 64 64s64-28.7 64-64zM384 384c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faPercentage = faPercent;\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM240 400c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM80 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [448, 512, [], \"e4f5\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm51 297.5L98.4 64H349.6L333 297.5 320 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM288 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C193.7 125.9 160 172 160 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [576, 512, [], \"e163\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSmile = faFaceSmile;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [127942], \"f091\", \"M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [448, 512, [128720, \"pray\"], \"f683\", \"M352 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [128296], \"f6e3\", \"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M320 0c17.7 0 32 14.3 32 32V96H480c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm152 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.7 8.4 166.9 8 160 8s-13.7 .4-20.4 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM208 176c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 400c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCogs = faGears;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [576, 512, [], \"e4b7\", \"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM448 208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm128 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM272 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM144 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM576 336c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-48-80c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M287.6 .1c-19.7 0-38.3 9.1-50.4 24.6L205.9 64.9c-17.9 23-46 35.6-75.1 33.7L59.1 94c-13.5-.9-26.9 3.2-37.7 11.6C-1.3 123.2-6.7 155.2 8.8 179.4l44.5 69.2c7.1 11 10.8 23.8 10.8 36.8c0 11.9-3.1 23.5-9 33.8L27.4 367.7c-10 17.5-10 39.1 0 56.6c12.1 21.2 36.4 32.3 60.4 27.7l67-13c5.5-1.1 11.2-1.6 16.8-1.6H180c20.9 0 41 7.4 56.9 20.9l45 38.2c11.8 10 26.9 15.6 42.4 15.6c37.8 0 67.7-31.9 65.4-69.6l-3.1-50.6c-1-16.8 6.6-32.9 20.1-42.8l82.5-60.2c14.2-10.4 22.7-27 22.7-44.6c0-23.2-14.5-43.9-36.3-51.8l-58.2-21.2c-24.4-8.9-42.9-29.1-49.7-54.2L349.3 47.4C341.8 19.5 316.5 .1 287.6 .1z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [512, 512, [9895, \"transgender-alt\"], \"f225\", \"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224c0 61.9 50.1 112 112 112s112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112z\"]\n};\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [640, 512, [], \"e547\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80c0-26.5-21.5-48-48-48S0 53.5 0 80s21.5 48 48 48s48-21.5 48-48zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"]\n};\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v80c-26.5 0-48 21.5-48 48s21.5 48 48 48v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V304c26.5 0 48-21.5 48-48s-21.5-48-48-48V128z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z\"]\n};\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [512, 512, [171, \"angle-double-left\"], \"f100\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M48 32C21.5 32 0 53.5 0 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm80 64v64H64V96h64zM48 288c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48zm80 64v64H64V352h64zM256 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H304c-26.5 0-48 21.5-48 48zm64 16h64v64H320V96zm32 352v32h32V448H352zm96 0H416v32h32V448zM416 288v32H352V288H256v96 96h64V384h32v32h96V352 320 288H416z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [512, 512, [\"history\"], \"f1da\", \"M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [640, 512, [\"arrow-right-from-file\"], \"f56e\", \"M32 64C32 28.7 60.7 0 96 0H256V128c0 17.7 14.3 32 32 32H416V288H248c-13.3 0-24 10.7-24 24s10.7 24 24 24H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM416 336V288H526.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H416zm0-208H288V0L416 128z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [576, 512, [], \"e3b2\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zm-52.3-49.3c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [576, 512, [], \"e00d\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [640, 512, [], \"e580\", \"M152.1 41.8c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120 488 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L118.5 72l33.5-30.2zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [640, 512, [], \"e582\", \"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H224V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [129365], \"f787\", \"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"]\n};\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm32-352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", \"M320 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M448 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm64 0c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [640, 512, [128692, \"biking\"], \"f84a\", \"M400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM200 384c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128s128-57.3 128-128zm328 0c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [129529], \"f51a\", \"M627.6 57.3c14-10.9 16.5-31 5.6-44.9s-31-16.5-44.9-5.6l-144 112-72 56-8.7 6.8-30.8-39.4c-3.7-4.8-9.8-7-15.8-5.8s-10.7 5.7-12.3 11.5l-12.5 46.3L371.1 295l48-.9c6.1-.1 11.5-3.7 14.1-9.1s1.9-11.9-1.8-16.7L403 231.9l8.6-6.7 72-56 144-112zM16.7 507.7c37.4 2.8 196.8 12 252.3-31.4c57.7-45.1 76.8-161.5 76.8-161.5L267.1 213.9s-117.6-9.6-175.3 35.5C69 267.1 50.5 304.1 36.3 344c-2.4 6.7 4.7 12.8 11 9.4L86.2 333c4.1-2.2 9.2-1.1 12 2.6s2.7 8.8-.4 12.3L24.4 430.4C13.2 442.9 5.5 458.1 2.4 474.5c-.9 4.8-1.6 8.9-2.2 12.1c-.9 5 .5 10.1 3.6 14.1s7.7 6.6 12.8 7z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [62098], \"23\", \"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z\"]\n};\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM184 496H40c-13.3 0-24-10.7-24-24V328c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm88 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM480 144c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM512 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [640, 512, [], \"e538\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 160c44.2 0 80 35.8 80 80s-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80zM263.8 320c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [576, 512, [], \"e554\", \"M432 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"]\n};\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [256, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [640, 512, [], \"f73c\", \"M513.2 0C449 0 395.5 46.5 385.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM399.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C273.3 114.6 242.8 96 208 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H399.9zM117.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"]\n};\nvar faHaykal = faBahai;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z\"]\n};\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 232c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [576, 512, [], \"e55d\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [640, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M0 448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H224c-53 0-96-43-96-96V160H64c-35.3 0-64 28.7-64 64V448zm224-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"]\n};\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"]\n};\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [576, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z\"]\n};\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"]\n};\nvar faQuran = faBookQuran;\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.3 382.1c-5.4 12.3 8.7 21.6 21.1 16.4c22.4-9.5 47.4-14.8 73.7-14.8s51.3 5.3 73.7 14.8c12.4 5.2 26.5-4.1 21.1-16.4c-16-36.6-52.4-62.1-94.8-62.1s-78.8 25.6-94.8 62.1zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM128 416c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zM125.8 177.3L51.1 320H204.9L130.2 177.3c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3zM128 128c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 402.6 178.2 416 128 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 155c8.7-16.6 25.9-27 44.7-27zm384 48c-.9 0-1.7 .5-2.2 1.3L435.1 320H588.9L514.2 177.3c-.4-.8-1.3-1.3-2.2-1.3zm-44.7-21c8.7-16.6 25.9-27 44.7-27s36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 402.6 562.2 416 512 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 155z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm32-32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.2c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V169.7L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 49.9 9.2 37.5 22.7 33.4z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [512, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z\"]\n};\nvar faThList = faTableList;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM202.9 176.8c6.5-2.2 13.7 .1 17.9 5.6L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2zm173.1 38c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.2-.4-23.7-4.4-32.6-7.4l0 0 0 0c-1.4-.5-2.7-.9-4-1.4c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.7 .6 3.3 1.1 4.9 1.6l0 0 0 0c9.1 3.1 15.6 5.3 22.6 5.5c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4c-7.2-2.2-16.7-5-24.3-9.6c-9-5.4-17.7-14.7-17.7-29.4c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c10 .2 19.7 2.3 27.9 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-7.3-1.9-14.1-3.3-20.1-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9zm-272 0c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.3-.4-24.2-4.5-33.2-7.6l0 0 0 0c-1.3-.4-2.5-.8-3.6-1.2c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.4 .5 2.7 .9 4 1.4l0 0 0 0 0 0c9.5 3.2 16.5 5.6 23.7 5.8c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4 0 0c-7.2-2.2-16.7-5-24.3-9.6C80.8 239 72.1 229.7 72 215c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c9.5 .1 22.2 2.1 31.1 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-6.6-1.8-16.8-3.3-23.3-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9z\"]\n};\nvar faSms = faCommentSms;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [10003, 10004], \"f00c\", \"M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [576, 512, [\"battery-4\"], \"f241\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm272 32V320H96V192H352z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [320, 512, [8249], \"f104\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [512, 512, [], \"e47a\", \"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [640, 512, [], \"e58b\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z\"]\n};\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32V144H128V32c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H32V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 128c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM256 192c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm72 80c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [640, 512, [], \"e569\", \"M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z\"]\n};\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.6-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [640, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [128214, 128366], \"f518\", \"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C87.5 32 35.1 48.6 9 59.9c-5.6 2.4-9 8-9 14V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V73.9c0-6.1-3.4-11.6-9-14C540.9 48.6 488.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z\"]\n};\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.3-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.7-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-10-20.7-26.1-38-46.4-49.2c17 27.1 11 62.8-14 82.6c14.1 14.6 19.1 35.9 13.1 55.2c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-6-19.4-1-40.5 13.1-55.2c-25-19.9-31-55.5-14-82.6c-20.1 11.2-36.4 28.5-46.4 49.2l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [640, 512, [], \"e4f8\", \"M304 32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM192 112c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-32 16c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zM368 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"arrow-turn-right\", \"mail-forward\"], \"f064\", \"M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"]\n};\nvar faArrowTurnRight = faShare;\nvar faMailForward = faShare;\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [256, 512, [], \"e4c4\", \"M64 0C50.7 0 40 10.7 40 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C21.7 174.1 0 212.5 0 256V448c0 35.3 28.7 64 64 64H192c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H72l0 0 0 0L64 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C153.9 288.9 176 320.2 176 337c0 24.9-21.5 45-48 45z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z\"]\n};\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [576, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm91 .5c33.7-43.3 53.8-97.8 53.8-157s-20.1-113.6-53.8-157l12.4-12.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L413 53.8C369.6 20.1 315.2 0 256 0S142.4 20.1 99 53.8L86.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L53.8 99C20.1 142.4 0 196.8 0 256s20.1 113.6 53.8 157L41.4 425.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L99 458.2c43.3 33.7 97.8 53.8 157 53.8s113.6-20.1 157-53.8l12.4 12.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L458.2 413zm-45.7-45.7l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M154.9 162c.3 .7 .7 1.5 1.1 2.2l17.8 30.9c11.1-12.6 27.4-19.8 44.4-19.1l-20.7-35.8c-6.6-11.5-21.3-15.4-32.8-8.8c-10.8 6.2-14.9 19.5-9.9 30.6zm173.6 47C399.7 231.7 448 297.8 448 372.5c0 1.5 0 3-.1 4.5c39.7-25.6 64.1-69.7 64.1-117.4V136c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 81.7L347.8 16.5C341.2 5 326.5 1.1 315.1 7.7s-15.4 21.3-8.8 32.8l64 110.9c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9l-80-138.6C269.8 9.3 255.1 5.4 243.6 12s-15.4 21.3-8.8 32.8l80 138.6c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9L237 80.5c-6.6-11.5-21.3-15.4-32.8-8.8s-15.4 21.3-8.8 32.8l44 76.2L328.5 209zM64 488c0 12.4 9.4 22.6 21.5 23.9c.8 .1 1.6 .1 2.5 .1H288.7 296c66.3 0 120-53.7 120-120c0-1.2 0-2.4-.1-3.6c0-1.2 .1-2.5 .1-3.7c0-68-44-128.2-108.9-148.9l-83.9-26.7c-12.6-4-26.1 3-30.1 15.6s3 26.1 15.6 30.1L262.6 272H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H88c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [576, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [320, 512, [\"arrows-v\"], \"f07d\", \"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zm40.4-192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M416 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M178.3 506.3L40.3 368.3C35 363 32 355.8 32 348.3C32 332.7 44.7 320 60.3 320H144V112c0-8.8-7.2-16-16-16H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0h96c61.9 0 112 50.1 112 112V320h83.7c15.6 0 28.3 12.7 28.3 28.3c0 7.5-3 14.7-8.3 20L205.7 506.3C202 510 197.1 512 192 512s-10-2-13.7-5.7z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [640, 512, [], \"e552\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [127922], \"f522\", \"M252.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-184 184c-15.6 15.6-15.6 40.9 0 56.6l184 184c15.6 15.6 40.9 15.6 56.6 0l184-184c15.6-15.6 15.6-40.9 0-56.6l-184-184zM248 224c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM96 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm128 80c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm128-80c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM224 72c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm96 392c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H472.5c13.4 26.9 8.8 60.5-13.6 82.9L320 413.8V464zm160-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM240 144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [640, 512, [129657, \"band-aid\"], \"f462\", \"M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM296 208c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-72 72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBandAid = faBandage;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H312z\"]\n};\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H208V448h96v64H480c17.7 0 32-14.3 32-32s-14.3-32-32-32V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V112zM368 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM96 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V208zm144-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V208zm-3 152.2c3.3 12.8-7.8 23.8-21 23.8H184c-13.3 0-24.3-10.9-21-23.8c10.6-41.5 48.2-72.2 93-72.2s82.5 30.7 93 72.2z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM144.5 348.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM496 288c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM272 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 48c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM352 448c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-80-16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faAllergies = faHandDots;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [640, 512, [\"coffee\"], \"f0f4\", \"M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M192 64L160 0H128L96 64 64 0H48C21.5 0 0 21.5 0 48V256H384V48c0-26.5-21.5-48-48-48H224L192 64zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm192 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"]\n};\nvar faUserLarge = {\n prefix: 'fas',\n iconName: 'user-large',\n icon: [512, 512, [\"user-alt\"], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0S112 64.5 112 144s64.5 144 144 144zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z\"]\n};\nvar faUserAlt = faUserLarge;\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [448, 512, [128650], \"e5b4\", \"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.7 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [128137], \"f48e\", \"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M122.4 1.2C127.6-.9 133.4-.2 137.9 3l70.3 50.3L278.5 3c4.5-3.2 10.3-3.9 15.4-1.8s8.8 6.7 9.7 12.2l14.1 85.3L403 112.8c5.4 .9 10.1 4.6 12.2 9.7s1.4 10.9-1.8 15.4l-38.8 54.3c-2.2-.1-4.3-.2-6.5-.2c-23.2 0-45 6.2-63.8 17c.1-12.5-2.2-25.3-7.3-37.6c-20.3-49-76.4-72.2-125.4-52s-72.2 76.4-52 125.4c18.3 44.3 66 67.5 111.1 56.6c-36.3 18.2-62.8 53.3-69.1 94.9l-23.6 16.9c-4.5 3.2-10.3 3.9-15.4 1.8s-8.8-6.7-9.7-12.2L98.7 317.7 13.4 303.6c-5.5-.9-10.1-4.6-12.2-9.7S-.2 282.9 3 278.5l50.3-70.3L3 137.9c-3.2-4.5-3.9-10.3-1.8-15.4s6.7-8.8 12.2-9.7L98.7 98.7l14.1-85.3c.9-5.5 4.6-10.1 9.7-12.2zM149 232.7c-13.5-32.7 2-70.1 34.6-83.6s70.1 2 83.6 34.6s-2 70.1-34.6 83.6s-70.1-2-83.6-34.6zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 0H512V512H0V0z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z\"]\n};\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H288V368c0-26.5 21.5-48 48-48H448V96c0-35.3-28.7-64-64-64H64zM448 352H402.7 336c-8.8 0-16 7.2-16 16v66.7V480l32-32 64-64 32-32z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [640, 512, [], \"e490\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96zM160.3 256H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7V479.2z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [576, 512, [], \"e4b6\", \"M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [576, 512, [129460], \"f5d7\", \"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM303.6 208c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm-128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [576, 512, [], \"e581\", \"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM64 480c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [448, 512, [], \"e4bb\", \"M224 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H416c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C331.4 52.6 280.1 32 224 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM100.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C20.6 148.6 0 199.9 0 256c0 10.9 .8 21.5 2.3 32H67.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM445.7 224H380.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H416c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C427.4 363.4 448 312.1 448 256c0-10.9-.8-21.5-2.3-32zM224 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H32c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C116.6 459.4 167.9 480 224 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zm-16-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M128 32c17.7 0 32 14.3 32 32V99.3L279.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C410.5 399.8 326.1 480 223.8 480H128c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 117.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c10.6 1.6 42.1 6.7 55.1 10c17.1 4.3 27.5 21.7 23.2 38.9s-21.7 27.5-38.9 23.2c-9.3-2.4-37.6-7-48.9-8.7c-32.1-4.8-59.6-2.4-78.5 4.9c-18.3 7-25.9 16.9-27.9 28c-1.9 10.7-.5 16.8 1.3 20.6c1.9 4 5.6 8.5 12.9 13.4c16.2 10.8 41.1 17.9 73.3 26.7l2.8 .8c28.4 7.7 63.2 17.2 89 34.3c14.1 9.4 27.3 22.1 35.5 39.7c8.3 17.8 10.1 37.8 6.3 59.1c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.2-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.4 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.7 .5-16.8-1.3-20.6c-1.9-4-5.6-8.5-12.9-13.4c-16.2-10.8-41.1-17.9-73.3-26.7l-2.8-.8c-28.4-7.7-63.2-17.2-89-34.3c-14.1-9.4-27.3-22.1-35.5-39.7c-8.3-17.8-10.1-37.8-6.3-59.1C25 114.1 53 89.3 86 76.7c13-5 27.2-8.2 42-10V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M144 160c44.2 0 80-35.8 80-80s-35.8-80-80-80S64 35.8 64 80s35.8 80 80 80zm368 0c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM552 384c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [576, 512, [], \"e54a\", \"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8.1-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zm128-96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [640, 512, [], \"f0e9\", \"M320 0c17.7 0 32 14.3 32 32V49.7C483.8 63.4 589.7 161 605.9 285.9c2 15.6-17.3 24.4-27.8 12.7C564.1 283 536.8 272 512 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C391 299.5 358.7 272 320 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C199 299.5 166.7 272 128 272c-24.8 0-52.1 11-66.1 26.7c-10.5 11.7-29.8 2.9-27.8-12.7C50.3 161 156.2 63.4 288 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [512, 512, [], \"e589\", \"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32H160c123.7 0 224 100.3 224 224s-100.3 224-224 224H32c-17.7 0-32-14.3-32-32V64zM64 96V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160H64z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [640, 512, [127917, \"theater-masks\"], \"f630\", \"M399.3 509.7c-58.2-8.8-108.2-72.8-137.6-119.7c-20-31.9-25.1-70.3-19.6-107.7L266.3 118c1.4-9.8 5.1-19.2 12.9-25.2c20.2-15.6 72.4-41.5 185.1-24.5s155.2 57.4 170 78.3c5.7 8 6.5 18.1 5.1 27.9L615.2 338.8c-5.5 37.3-21.5 72.6-49.8 97.2c-41.7 36.1-108 82.5-166.1 73.7zm17.1-277.7c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8c4.4 3.1 10.8 2 11.8-3.3zm112.6 22.2c4.4 3.1 10.8 2 11.8-3.3c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8zm-11.5 85.2c-28.8 12.8-61.4 17.8-94.9 12.8s-63.2-19.5-87-40.3c-6.3-5.5-16.2-1.7-15.2 6.7c5.9 48.5 43 89.1 93 96.7s97.2-20.2 116.8-64.9c3.4-7.7-5-14.3-12.6-10.9zM240.7 446.9c-58.2 8.8-124.5-37.5-166.1-73.7c-28.3-24.5-44.3-59.8-49.8-97.2L.6 111.8C-.8 102 0 91.9 5.7 83.9C20.5 63 63 22.7 175.7 5.6s164.9 8.9 185.1 24.5c.9 .7 1.7 1.4 2.4 2.1c-52.8 4.8-85.1 21-103.6 35.3c-17 13.1-23 32-25 45.9L215.3 244.7c-2.6 .1-5.2 .4-7.9 .8c-35.2 5.3-61.8 32.7-68.2 66.3c-1.6 8.2 8.3 12.2 14.8 7c15.6-12.4 34.1-21.3 54.7-25.4c-3 38.4 4 78.7 25.9 113.6c6.9 11 15 23.1 24.2 35.4c-5.9 2.1-11.9 3.6-18 4.5zM174.1 157c-1-5.3-7.4-6.4-11.8-3.3c-7.7 5.5-16.8 9.3-26.8 10.8s-19.8 .6-28.7-2.4c-5.1-1.7-10.9 1.3-10.3 6.7c.1 .5 .1 1.1 .2 1.6c3.2 21.8 23.2 36.8 44.7 33.5s36.3-23.5 33.1-45.3c-.1-.5-.2-1.1-.3-1.6z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0V96L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm-64-64c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H224zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32H352c88.4 0 160-71.6 160-160V226.3c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64v88c0 22.1 17.9 40 40 40s40-17.9 40-40V160c0-8.8 7.2-16 16-16s16 7.2 16 16v56c0 39.8-32.2 72-72 72z\"]\n};\nvar faHandshakeSimple = {\n prefix: 'fas',\n iconName: 'handshake-simple',\n icon: [640, 512, [129309, \"handshake-alt\"], \"f4c6\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"]\n};\nvar faHandshakeAlt = faHandshakeSimple;\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [640, 512, [\"fighter-jet\"], \"f0fb\", \"M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"]\n};\nvar faVideoCamera = faVideo;\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [127891, \"mortar-board\"], \"f19d\", \"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [576, 512, [], \"e53e\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M178.3 5.7L40.3 143.7C35 149 32 156.2 32 163.7C32 179.3 44.7 192 60.3 192H144V400c0 8.8-7.2 16-16 16H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96c61.9 0 112-50.1 112-112V192h83.7c15.6 0 28.3-12.7 28.3-28.3c0-7.5-3-14.7-8.3-20L205.7 5.7C202 2 197.1 0 192 0s-10 2-13.7 5.7z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faFillDrip: faFillDrip,\n faArrowsToCircle: faArrowsToCircle,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faAt: faAt,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTextHeight: faTextHeight,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faStethoscope: faStethoscope,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faInfo: faInfo,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faExplosion: faExplosion,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faWaveSquare: faWaveSquare,\n faRing: faRing,\n faBuildingUn: faBuildingUn,\n faDiceThree: faDiceThree,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faArrowsUpToLine: faArrowsUpToLine,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faDoorOpen: faDoorOpen,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faAtom: faAtom,\n faSoap: faSoap,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faPumpMedical: faPumpMedical,\n faFingerprint: faFingerprint,\n faHandPointRight: faHandPointRight,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFlagCheckered: faFlagCheckered,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faCrop: faCrop,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faUsersRectangle: faUsersRectangle,\n faPeopleRoof: faPeopleRoof,\n faPeopleLine: faPeopleLine,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faDiagramPredecessor: faDiagramPredecessor,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faPerson: faPerson,\n faMale: faMale,\n faLaptop: faLaptop,\n faFileCsv: faFileCsv,\n faMenorah: faMenorah,\n faTruckPlane: faTruckPlane,\n faRecordVinyl: faRecordVinyl,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faBong: faBong,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faJarWheat: faJarWheat,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faFileCircleExclamation: faFileCircleExclamation,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faPager: faPager,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faStrikethrough: faStrikethrough,\n faK: faK,\n faLandmarkFlag: faLandmarkFlag,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faBackward: faBackward,\n faCaretRight: faCaretRight,\n faComments: faComments,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faCodePullRequest: faCodePullRequest,\n faClipboardList: faClipboardList,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faUserCheck: faUserCheck,\n faVialVirus: faVialVirus,\n faSheetPlastic: faSheetPlastic,\n faBlog: faBlog,\n faUserNinja: faUserNinja,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faToggleOff: faToggleOff,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faPersonDrowning: faPersonDrowning,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faSprayCan: faSprayCan,\n faTruckMonster: faTruckMonster,\n faW: faW,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faRainbow: faRainbow,\n faCircleNotch: faCircleNotch,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faPaw: faPaw,\n faCloud: faCloud,\n faTrowelBricks: faTrowelBricks,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faHospitalUser: faHospitalUser,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faGavel: faGavel,\n faLegal: faLegal,\n faBinoculars: faBinoculars,\n faMicrophoneSlash: faMicrophoneSlash,\n faBoxTissue: faBoxTissue,\n faMotorcycle: faMotorcycle,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faScissors: faScissors,\n faCut: faCut,\n faSunPlantWilt: faSunPlantWilt,\n faToiletsPortable: faToiletsPortable,\n faHockeyPuck: faHockeyPuck,\n faTable: faTable,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faUsersSlash: faUsersSlash,\n faClover: faClover,\n faReply: faReply,\n faMailReply: faMailReply,\n faStarAndCrescent: faStarAndCrescent,\n faHouseFire: faHouseFire,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faHelicopter: faHelicopter,\n faCompass: faCompass,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faFileCircleQuestion: faFileCircleQuestion,\n faLaptopCode: faLaptopCode,\n faSwatchbook: faSwatchbook,\n faPrescriptionBottle: faPrescriptionBottle,\n faBars: faBars,\n faNavicon: faNavicon,\n faPeopleGroup: faPeopleGroup,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faFilm: faFilm,\n faRulerHorizontal: faRulerHorizontal,\n faPeopleRobbery: faPeopleRobbery,\n faLightbulb: faLightbulb,\n faCaretLeft: faCaretLeft,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faHeadphonesSimple: faHeadphonesSimple,\n faHeadphonesAlt: faHeadphonesAlt,\n faSitemap: faSitemap,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faMemory: faMemory,\n faRoadSpikes: faRoadSpikes,\n faFireBurner: faFireBurner,\n faFlag: faFlag,\n faHanukiah: faHanukiah,\n faFeather: faFeather,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCommentSlash: faCommentSlash,\n faCloudSunRain: faCloudSunRain,\n faCompress: faCompress,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faAnkh: faAnkh,\n faHandsHoldingChild: faHandsHoldingChild,\n faAsterisk: faAsterisk,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faPesetaSign: faPesetaSign,\n faHeading: faHeading,\n faHeader: faHeader,\n faGhost: faGhost,\n faList: faList,\n faListSquares: faListSquares,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faCartPlus: faCartPlus,\n faGamepad: faGamepad,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faEgg: faEgg,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faCampground: faCampground,\n faFolderPlus: faFolderPlus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faLock: faLock,\n faGasPump: faGasPump,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faHouseFloodWater: faHouseFloodWater,\n faTree: faTree,\n faBridgeLock: faBridgeLock,\n faSackDollar: faSackDollar,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faCarSide: faCarSide,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faHeartCircleMinus: faHeartCircleMinus,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faMicroscope: faMicroscope,\n faSink: faSink,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faMitten: faMitten,\n faPersonRays: faPersonRays,\n faUsers: faUsers,\n faEyeSlash: faEyeSlash,\n faFlaskVial: faFlaskVial,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faOm: faOm,\n faWorm: faWorm,\n faHouseCircleXmark: faHouseCircleXmark,\n faPlug: faPlug,\n faChevronUp: faChevronUp,\n faHandSpock: faHandSpock,\n faStopwatch: faStopwatch,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faChessBishop: faChessBishop,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faRoadCircleCheck: faRoadCircleCheck,\n faDiceFive: faDiceFive,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faLandMineOn: faLandMineOn,\n faICursor: faICursor,\n faStamp: faStamp,\n faStairs: faStairs,\n faI: faI,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faPills: faPills,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faTooth: faTooth,\n faV: faV,\n faBangladeshiTakaSign: faBangladeshiTakaSign,\n faBicycle: faBicycle,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faSnowman: faSnowman,\n faMortarPestle: faMortarPestle,\n faRoadBarrier: faRoadBarrier,\n faSchool: faSchool,\n faIgloo: faIgloo,\n faJoint: faJoint,\n faAngleRight: faAngleRight,\n faHorse: faHorse,\n faQ: faQ,\n faG: faG,\n faNotesMedical: faNotesMedical,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faDongSign: faDongSign,\n faCapsules: faCapsules,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faHandPointUp: faHandPointUp,\n faMoneyBill: faMoneyBill,\n faBookmark: faBookmark,\n faAlignJustify: faAlignJustify,\n faUmbrellaBeach: faUmbrellaBeach,\n faHelmetUn: faHelmetUn,\n faBullseye: faBullseye,\n faBacon: faBacon,\n faHandPointDown: faHandPointDown,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faRadiation: faRadiation,\n faChartSimple: faChartSimple,\n faMarsStroke: faMarsStroke,\n faVial: faVial,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faE: faE,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faUser: faUser,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faDumpster: faDumpster,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faBuildingUser: faBuildingUser,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faHighlighter: faHighlighter,\n faKey: faKey,\n faBullhorn: faBullhorn,\n faGlobe: faGlobe,\n faSynagogue: faSynagogue,\n faPersonHalfDress: faPersonHalfDress,\n faRoadBridge: faRoadBridge,\n faLocationArrow: faLocationArrow,\n faC: faC,\n faTabletButton: faTabletButton,\n faBuildingLock: faBuildingLock,\n faPizzaSlice: faPizzaSlice,\n faMoneyBillWave: faMoneyBillWave,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faHouseFlag: faHouseFlag,\n faPersonCircleMinus: faPersonCircleMinus,\n faBan: faBan,\n faCancel: faCancel,\n faCameraRotate: faCameraRotate,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faStar: faStar,\n faRepeat: faRepeat,\n faCross: faCross,\n faBox: faBox,\n faVenusMars: faVenusMars,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faChargingStation: faChargingStation,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faMobileRetro: faMobileRetro,\n faGripLinesVertical: faGripLinesVertical,\n faSpider: faSpider,\n faHandsBound: faHandsBound,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faXRay: faXRay,\n faSpellCheck: faSpellCheck,\n faSlash: faSlash,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faServer: faServer,\n faVirusCovidSlash: faVirusCovidSlash,\n faShopLock: faShopLock,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faBlenderPhone: faBlenderPhone,\n faBuildingWheat: faBuildingWheat,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faVenus: faVenus,\n faPassport: faPassport,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faTemperatureHigh: faTemperatureHigh,\n faMicrochip: faMicrochip,\n faCrown: faCrown,\n faWeightHanging: faWeightHanging,\n faXmarksLines: faXmarksLines,\n faFilePrescription: faFilePrescription,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faChessKnight: faChessKnight,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faWheelchair: faWheelchair,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faToggleOn: faToggleOn,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faL: faL,\n faFire: faFire,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faFolderOpen: faFolderOpen,\n faHeartCirclePlus: faHeartCirclePlus,\n faCodeFork: faCodeFork,\n faCity: faCity,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faPepperHot: faPepperHot,\n faUnlock: faUnlock,\n faColonSign: faColonSign,\n faHeadset: faHeadset,\n faStoreSlash: faStoreSlash,\n faRoadCircleXmark: faRoadCircleXmark,\n faUserMinus: faUserMinus,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faClipboard: faClipboard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faBath: faBath,\n faBathtub: faBathtub,\n faUnderline: faUnderline,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faSignature: faSignature,\n faStroopwafel: faStroopwafel,\n faBold: faBold,\n faAnchorLock: faAnchorLock,\n faBuildingNgo: faBuildingNgo,\n faManatSign: faManatSign,\n faNotEqual: faNotEqual,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faJedi: faJedi,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faMugHot: faMugHot,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faGift: faGift,\n faDiceTwo: faDiceTwo,\n faChessQueen: faChessQueen,\n faGlasses: faGlasses,\n faChessBoard: faChessBoard,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faPersonChalkboard: faPersonChalkboard,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faCloudShowersWater: faCloudShowersWater,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faLessThanEqual: faLessThanEqual,\n faTrain: faTrain,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCrow: faCrow,\n faSailboat: faSailboat,\n faWindowRestore: faWindowRestore,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faToriiGate: faToriiGate,\n faFrog: faFrog,\n faBucket: faBucket,\n faImage: faImage,\n faMicrophone: faMicrophone,\n faCow: faCow,\n faCaretUp: faCaretUp,\n faScrewdriver: faScrewdriver,\n faFolderClosed: faFolderClosed,\n faHouseTsunami: faHouseTsunami,\n faSquareNfi: faSquareNfi,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faLemon: faLemon,\n faHeadSideMask: faHeadSideMask,\n faHandshake: faHandshake,\n faGem: faGem,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faSmoking: faSmoking,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faMonument: faMonument,\n faSnowplow: faSnowplow,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faCannabis: faCannabis,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faTablets: faTablets,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faChair: faChair,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faPlateWheat: faPlateWheat,\n faIcicles: faIcicles,\n faPersonShelter: faPersonShelter,\n faNeuter: faNeuter,\n faIdBadge: faIdBadge,\n faMarker: faMarker,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faHelicopterSymbol: faHelicopterSymbol,\n faUniversalAccess: faUniversalAccess,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faLariSign: faLariSign,\n faVolcano: faVolcano,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faViruses: faViruses,\n faSquarePersonConfined: faSquarePersonConfined,\n faUserTie: faUserTie,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faCertificate: faCertificate,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faSuitcase: faSuitcase,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCameraRetro: faCameraRetro,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faBoxOpen: faBoxOpen,\n faScroll: faScroll,\n faSpa: faSpa,\n faLocationPinLock: faLocationPinLock,\n faPause: faPause,\n faHillAvalanche: faHillAvalanche,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBomb: faBomb,\n faRegistered: faRegistered,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faSubscript: faSubscript,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faBurst: faBurst,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faMoneyBills: faMoneyBills,\n faSmog: faSmog,\n faCrutch: faCrutch,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faPalette: faPalette,\n faArrowsTurnRight: faArrowsTurnRight,\n faVest: faVest,\n faFerry: faFerry,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faBoxesPacking: faBoxesPacking,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faBowlFood: faBowlFood,\n faCandyCane: faCandyCane,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFileWord: faFileWord,\n faFilePowerpoint: faFilePowerpoint,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faHouseLock: faHouseLock,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faChildren: faChildren,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUserLargeSlash: faUserLargeSlash,\n faUserAltSlash: faUserAltSlash,\n faEnvelopeOpen: faEnvelopeOpen,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faMattressPillow: faMattressPillow,\n faGuaraniSign: faGuaraniSign,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faFireExtinguisher: faFireExtinguisher,\n faCruzeiroSign: faCruzeiroSign,\n faGreaterThanEqual: faGreaterThanEqual,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faVirus: faVirus,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faLayerGroup: faLayerGroup,\n faArrowsToDot: faArrowsToDot,\n faArchway: faArchway,\n faHeartCircleCheck: faHeartCircleCheck,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faSquare: faSquare,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faCouch: faCouch,\n faCediSign: faCediSign,\n faItalic: faItalic,\n faChurch: faChurch,\n faCommentsDollar: faCommentsDollar,\n faDemocrat: faDemocrat,\n faZ: faZ,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faRoadLock: faRoadLock,\n faA: faA,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faP: faP,\n faSnowflake: faSnowflake,\n faNewspaper: faNewspaper,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faFilterCircleXmark: faFilterCircleXmark,\n faLocust: faLocust,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faPersonDressBurst: faPersonDressBurst,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faVectorSquare: faVectorSquare,\n faBreadSlice: faBreadSlice,\n faLanguage: faLanguage,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFilter: faFilter,\n faQuestion: faQuestion,\n faFileSignature: faFileSignature,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faHouseChimneyUser: faHouseChimneyUser,\n faHandHoldingHeart: faHandHoldingHeart,\n faPuzzlePiece: faPuzzlePiece,\n faMoneyCheck: faMoneyCheck,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faCode: faCode,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faCubesStacked: faCubesStacked,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faVirusCovid: faVirusCovid,\n faAustralSign: faAustralSign,\n faF: faF,\n faLeaf: faLeaf,\n faRoad: faRoad,\n faTaxi: faTaxi,\n faCab: faCab,\n faPersonCirclePlus: faPersonCirclePlus,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faBoltLightning: faBoltLightning,\n faSackXmark: faSackXmark,\n faFileExcel: faFileExcel,\n faFileContract: faFileContract,\n faFishFins: faFishFins,\n faBuildingFlag: faBuildingFlag,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faObjectUngroup: faObjectUngroup,\n faPoop: faPoop,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faKaaba: faKaaba,\n faToiletPaper: faToiletPaper,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faEject: faEject,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faObjectGroup: faObjectGroup,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faMaskVentilator: faMaskVentilator,\n faArrowRight: faArrowRight,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faCashRegister: faCashRegister,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faH: faH,\n faTarp: faTarp,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faArrowsToEye: faArrowsToEye,\n faPlugCircleBolt: faPlugCircleBolt,\n faHeart: faHeart,\n faMarsAndVenus: faMarsAndVenus,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faDumpsterFire: faDumpsterFire,\n faHouseCrack: faHouseCrack,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faBottleWater: faBottleWater,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faToiletPaperSlash: faToiletPaperSlash,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faKitchenSet: faKitchenSet,\n faR: faR,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faCube: faCube,\n faBitcoinSign: faBitcoinSign,\n faShieldDog: faShieldDog,\n faSolarPanel: faSolarPanel,\n faLockOpen: faLockOpen,\n faElevator: faElevator,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faCircle: faCircle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faRecycle: faRecycle,\n faUserAstronaut: faUserAstronaut,\n faPlaneSlash: faPlaneSlash,\n faTrademark: faTrademark,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faSatelliteDish: faSatelliteDish,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faUsersRays: faUsersRays,\n faWallet: faWallet,\n faClipboardCheck: faClipboardCheck,\n faFileAudio: faFileAudio,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faWrench: faWrench,\n faBugs: faBugs,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faFileImage: faFileImage,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faPlaneDeparture: faPlaneDeparture,\n faHandshakeSlash: faHandshakeSlash,\n faBookBookmark: faBookBookmark,\n faCodeBranch: faCodeBranch,\n faHatCowboy: faHatCowboy,\n faBridge: faBridge,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faTruckFront: faTruckFront,\n faCat: faCat,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faTruckField: faTruckField,\n faRoute: faRoute,\n faClipboardQuestion: faClipboardQuestion,\n faPanorama: faPanorama,\n faCommentMedical: faCommentMedical,\n faTeethOpen: faTeethOpen,\n faFileCircleMinus: faFileCircleMinus,\n faTags: faTags,\n faWineGlass: faWineGlass,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHouseSignal: faHouseSignal,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faFaucetDrip: faFaucetDrip,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTerminal: faTerminal,\n faMobileButton: faMobileButton,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faTape: faTape,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faEye: faEye,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faAudioDescription: faAudioDescription,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faFileShield: faFileShield,\n faUserSlash: faUserSlash,\n faPen: faPen,\n faTowerObservation: faTowerObservation,\n faFileCode: faFileCode,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faBus: faBus,\n faHeartCircleXmark: faHeartCircleXmark,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faWindowMaximize: faWindowMaximize,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faPrescription: faPrescription,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faVihara: faVihara,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faPlantWilt: faPlantWilt,\n faDiamond: faDiamond,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faBacterium: faBacterium,\n faHandPointer: faHandPointer,\n faDrumSteelpan: faDrumSteelpan,\n faHandScissors: faHandScissors,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faBiohazard: faBiohazard,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faMarsDouble: faMarsDouble,\n faChildDress: faChildDress,\n faUsersBetweenLines: faUsersBetweenLines,\n faLungsVirus: faLungsVirus,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPhone: faPhone,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faChildReaching: faChildReaching,\n faHeadSideVirus: faHeadSideVirus,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faDoorClosed: faDoorClosed,\n faShieldVirus: faShieldVirus,\n faDiceSix: faDiceSix,\n faMosquitoNet: faMosquitoNet,\n faBridgeWater: faBridgeWater,\n faPersonBooth: faPersonBooth,\n faTextWidth: faTextWidth,\n faHatWizard: faHatWizard,\n faPenFancy: faPenFancy,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faTrash: faTrash,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faBookMedical: faBookMedical,\n faPoo: faPoo,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faCubes: faCubes,\n faDivide: faDivide,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHeadphones: faHeadphones,\n faHandsHolding: faHandsHolding,\n faHandsClapping: faHandsClapping,\n faRepublican: faRepublican,\n faArrowLeft: faArrowLeft,\n faPersonCircleXmark: faPersonCircleXmark,\n faRuler: faRuler,\n faAlignLeft: faAlignLeft,\n faDiceD6: faDiceD6,\n faRestroom: faRestroom,\n faJ: faJ,\n faUsersViewfinder: faUsersViewfinder,\n faFileVideo: faFileVideo,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faFilePdf: faFilePdf,\n faBookBible: faBookBible,\n faBible: faBible,\n faO: faO,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faUserSecret: faUserSecret,\n faOtter: faOtter,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faCommentDollar: faCommentDollar,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faHatCowboySide: faHatCowboySide,\n faClipboardUser: faClipboardUser,\n faChild: faChild,\n faLiraSign: faLiraSign,\n faSatellite: faSatellite,\n faPlaneLock: faPlaneLock,\n faTag: faTag,\n faComment: faComment,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faEnvelope: faEnvelope,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faPaperclip: faPaperclip,\n faArrowRightToCity: faArrowRightToCity,\n faRibbon: faRibbon,\n faLungs: faLungs,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faLitecoinSign: faLitecoinSign,\n faBorderNone: faBorderNone,\n faCircleNodes: faCircleNodes,\n faParachuteBox: faParachuteBox,\n faIndent: faIndent,\n faTruckFieldUn: faTruckFieldUn,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faMountain: faMountain,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faCloudMeatball: faCloudMeatball,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faSquareVirus: faSquareVirus,\n faMeteor: faMeteor,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWater: faWater,\n faCalendarCheck: faCalendarCheck,\n faBraille: faBraille,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faLandmark: faLandmark,\n faTruck: faTruck,\n faCrosshairs: faCrosshairs,\n faPersonCane: faPersonCane,\n faTent: faTent,\n faVestPatches: faVestPatches,\n faCheckDouble: faCheckDouble,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBillWheat: faMoneyBillWheat,\n faCookie: faCookie,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faDumbbell: faDumbbell,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faTarpDroplet: faTarpDroplet,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faCalendarPlus: faCalendarPlus,\n faPlaneArrival: faPlaneArrival,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faChartGantt: faChartGantt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faDna: faDna,\n faVirusSlash: faVirusSlash,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faChess: faChess,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faPlugCircleCheck: faPlugCircleCheck,\n faStreetView: faStreetView,\n faFrancSign: faFrancSign,\n faVolumeOff: faVolumeOff,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faGear: faGear,\n faCog: faCog,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faMosque: faMosque,\n faMosquito: faMosquito,\n faStarOfDavid: faStarOfDavid,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faVials: faVials,\n faPlugCirclePlus: faPlugCirclePlus,\n faPlaceOfWorship: faPlaceOfWorship,\n faGripVertical: faGripVertical,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faU: faU,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faClock: faClock,\n faClockFour: faClockFour,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faPallet: faPallet,\n faFaucet: faFaucet,\n faBaseballBatBall: faBaseballBatBall,\n faS: faS,\n faTimeline: faTimeline,\n faKeyboard: faKeyboard,\n faCaretDown: faCaretDown,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faPlaneUp: faPlaneUp,\n faPiggyBank: faPiggyBank,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faMountainCity: faMountainCity,\n faCoins: faCoins,\n faKhanda: faKhanda,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faFolderTree: faFolderTree,\n faNetworkWired: faNetworkWired,\n faMapPin: faMapPin,\n faHamsa: faHamsa,\n faCentSign: faCentSign,\n faFlask: faFlask,\n faPersonPregnant: faPersonPregnant,\n faWandSparkles: faWandSparkles,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faTicket: faTicket,\n faPowerOff: faPowerOff,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faFlagUsa: faFlagUsa,\n faLaptopFile: faLaptopFile,\n faTty: faTty,\n faTeletype: faTeletype,\n faDiagramNext: faDiagramNext,\n faPersonRifle: faPersonRifle,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faClosedCaptioning: faClosedCaptioning,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faVenusDouble: faVenusDouble,\n faImages: faImages,\n faCalculator: faCalculator,\n faPeoplePulling: faPeoplePulling,\n faN: faN,\n faCableCar: faCableCar,\n faTram: faTram,\n faCloudRain: faCloudRain,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faShip: faShip,\n faArrowsDownToLine: faArrowsDownToLine,\n faDownload: faDownload,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faFileCircleCheck: faFileCircleCheck,\n faForward: faForward,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faAlignCenter: faAlignCenter,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faCalendarWeek: faCalendarWeek,\n faLaptopMedical: faLaptopMedical,\n faB: faB,\n faFileMedical: faFileMedical,\n faDiceOne: faDiceOne,\n faKiwiBird: faKiwiBird,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faMillSign: faMillSign,\n faBowlRice: faBowlRice,\n faSkull: faSkull,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faTruckPickup: faTruckPickup,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faStop: faStop,\n faCodeMerge: faCodeMerge,\n faUpload: faUpload,\n faHurricane: faHurricane,\n faMound: faMound,\n faToiletPortable: faToiletPortable,\n faCompactDisc: faCompactDisc,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faCaravan: faCaravan,\n faShieldCat: faShieldCat,\n faBolt: faBolt,\n faZap: faZap,\n faGlassWater: faGlassWater,\n faOilWell: faOilWell,\n faVault: faVault,\n faMars: faMars,\n faToilet: faToilet,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faSun: faSun,\n faGuitar: faGuitar,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faHorseHead: faHorseHead,\n faBoreHole: faBoreHole,\n faIndustry: faIndustry,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faFlorinSign: faFlorinSign,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faLessThan: faLessThan,\n faAngleDown: faAngleDown,\n faCarTunnel: faCarTunnel,\n faHeadSideCough: faHeadSideCough,\n faGripLines: faGripLines,\n faThumbsDown: faThumbsDown,\n faUserLock: faUserLock,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faChessPawn: faChessPawn,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faPersonThroughWindow: faPersonThroughWindow,\n faToolbox: faToolbox,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faBug: faBug,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faHandHoldingHand: faHandHoldingHand,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faMountainSun: faMountainSun,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faDiceD20: faDiceD20,\n faTruckDroplet: faTruckDroplet,\n faFileCircleXmark: faFileCircleXmark,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faMedal: faMedal,\n faBed: faBed,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faPodcast: faPodcast,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faBell: faBell,\n faSuperscript: faSuperscript,\n faPlugCircleXmark: faPlugCircleXmark,\n faStarOfLife: faStarOfLife,\n faPhoneSlash: faPhoneSlash,\n faPaintRoller: faPaintRoller,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faFile: faFile,\n faGreaterThan: faGreaterThan,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faArrowDown: faArrowDown,\n faDroplet: faDroplet,\n faTint: faTint,\n faEraser: faEraser,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faPersonBurst: faPersonBurst,\n faDove: faDove,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faSocks: faSocks,\n faInbox: faInbox,\n faSection: faSection,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faWineBottle: faWineBottle,\n faChessRook: faChessRook,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faDharmachakra: faDharmachakra,\n faHotdog: faHotdog,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faDrum: faDrum,\n faIceCream: faIceCream,\n faHeartCircleBolt: faHeartCircleBolt,\n faFax: faFax,\n faParagraph: faParagraph,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faStarHalf: faStarHalf,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faLink: faLink,\n faChain: faChain,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faTreeCity: faTreeCity,\n faPlay: faPlay,\n faFont: faFont,\n faRupiahSign: faRupiahSign,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faNairaSign: faNairaSign,\n faCartArrowDown: faCartArrowDown,\n faWalkieTalkie: faWalkieTalkie,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faReceipt: faReceipt,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faSuitcaseRolling: faSuitcaseRolling,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faChevronDown: faChevronDown,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faSkullCrossbones: faSkullCrossbones,\n faCodeCompare: faCodeCompare,\n faListUl: faListUl,\n faListDots: faListDots,\n faSchoolLock: faSchoolLock,\n faTowerCell: faTowerCell,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faRankingStar: faRankingStar,\n faChessKing: faChessKing,\n faPersonHarassing: faPersonHarassing,\n faBrazilianRealSign: faBrazilianRealSign,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faArrowUp: faArrowUp,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faShrimp: faShrimp,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faJugDetergent: faJugDetergent,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faUserShield: faUserShield,\n faWind: faWind,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faY: faY,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faFish: faFish,\n faUserGraduate: faUserGraduate,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faClapperboard: faClapperboard,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faJetFighterUp: faJetFighterUp,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faCopy: faCopy,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faHandSparkles: faHandSparkles,\n faGrip: faGrip,\n faGripHorizontal: faGripHorizontal,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faChildCombatant: faChildCombatant,\n faChildRifle: faChildRifle,\n faGun: faGun,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faPlus: faPlus,\n faAdd: faAdd,\n faExpand: faExpand,\n faComputer: faComputer,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faPesoSign: faPesoSign,\n faBuildingShield: faBuildingShield,\n faBaby: faBaby,\n faUsersLine: faUsersLine,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faTractor: faTractor,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faArrowDownUpLock: faArrowDownUpLock,\n faLinesLeaning: faLinesLeaning,\n faRulerCombined: faRulerCombined,\n faCopyright: faCopyright,\n faEquals: faEquals,\n faBlender: faBlender,\n faTeeth: faTeeth,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faMap: faMap,\n faRocket: faRocket,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faFolderMinus: faFolderMinus,\n faStore: faStore,\n faArrowTrendUp: faArrowTrendUp,\n faPlugCircleMinus: faPlugCircleMinus,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faBezierCurve: faBezierCurve,\n faBellSlash: faBellSlash,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faSchoolFlag: faSchoolFlag,\n faFill: faFill,\n faAngleUp: faAngleUp,\n faDrumstickBite: faDrumstickBite,\n faHollyBerry: faHollyBerry,\n faChevronLeft: faChevronLeft,\n faBacteria: faBacteria,\n faHandLizard: faHandLizard,\n faNotdef: faNotdef,\n faDisease: faDisease,\n faBriefcaseMedical: faBriefcaseMedical,\n faGenderless: faGenderless,\n faChevronRight: faChevronRight,\n faRetweet: faRetweet,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faPumpSoap: faPumpSoap,\n faVideoSlash: faVideoSlash,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faRadio: faRadio,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faTrafficLight: faTrafficLight,\n faThermometer: faThermometer,\n faVrCardboard: faVrCardboard,\n faHandMiddleFinger: faHandMiddleFinger,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faTruckMoving: faTruckMoving,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faDisplay: faDisplay,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faTrophy: faTrophy,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faHammer: faHammer,\n faHandPeace: faHandPeace,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSpinner: faSpinner,\n faRobot: faRobot,\n faPeace: faPeace,\n faGears: faGears,\n faCogs: faCogs,\n faWarehouse: faWarehouse,\n faArrowUpRightDots: faArrowUpRightDots,\n faSplotch: faSplotch,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faDiceFour: faDiceFour,\n faSimCard: faSimCard,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faMercury: faMercury,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faPersonFallingBurst: faPersonFallingBurst,\n faAward: faAward,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faBuilding: faBuilding,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faQrcode: faQrcode,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faHouseMedical: faHouseMedical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faPenNib: faPenNib,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTents: faTents,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faDog: faDog,\n faCarrot: faCarrot,\n faMoon: faMoon,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faCheese: faCheese,\n faYinYang: faYinYang,\n faMusic: faMusic,\n faCodeCommit: faCodeCommit,\n faTemperatureLow: faTemperatureLow,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBroom: faBroom,\n faShieldHeart: faShieldHeart,\n faGopuram: faGopuram,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHashtag: faHashtag,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faOilCan: faOilCan,\n faT: faT,\n faHippo: faHippo,\n faChartColumn: faChartColumn,\n faInfinity: faInfinity,\n faVialCircleCheck: faVialCircleCheck,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faVoicemail: faVoicemail,\n faFan: faFan,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faCloudMoonRain: faCloudMoonRain,\n faCalendar: faCalendar,\n faTrailer: faTrailer,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faSdCard: faSdCard,\n faDragon: faDragon,\n faShoePrints: faShoePrints,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faHandHolding: faHandHolding,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faClone: faClone,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faTornado: faTornado,\n faFileCirclePlus: faFileCirclePlus,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faAnchor: faAnchor,\n faBorderAll: faBorderAll,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faCookieBite: faCookieBite,\n faArrowTrendDown: faArrowTrendDown,\n faRss: faRss,\n faFeed: faFeed,\n faDrawPolygon: faDrawPolygon,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faShower: faShower,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faM: faM,\n faTableList: faTableList,\n faThList: faThList,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faBook: faBook,\n faUserPlus: faUserPlus,\n faCheck: faCheck,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faHouseCircleCheck: faHouseCircleCheck,\n faAngleLeft: faAngleLeft,\n faDiagramSuccessor: faDiagramSuccessor,\n faTruckArrowRight: faTruckArrowRight,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCloudMoon: faCloudMoon,\n faBriefcase: faBriefcase,\n faPersonFalling: faPersonFalling,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faUserTag: faUserTag,\n faRug: faRug,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faBahtSign: faBahtSign,\n faBookOpen: faBookOpen,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faHandcuffs: faHandcuffs,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faDatabase: faDatabase,\n faShare: faShare,\n faArrowTurnRight: faArrowTurnRight,\n faMailForward: faMailForward,\n faBottleDroplet: faBottleDroplet,\n faMaskFace: faMaskFace,\n faHillRockslide: faHillRockslide,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPaperPlane: faPaperPlane,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faDungeon: faDungeon,\n faAlignRight: faAlignRight,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLifeRing: faLifeRing,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faCalendarDay: faCalendarDay,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faDice: faDice,\n faBowlingBall: faBowlingBall,\n faBrain: faBrain,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faCalendarMinus: faCalendarMinus,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faGifts: faGifts,\n faHotel: faHotel,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faThumbsUp: faThumbsUp,\n faUserClock: faUserClock,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faFileInvoice: faFileInvoice,\n faWindowMinimize: faWindowMinimize,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faBrush: faBrush,\n faMask: faMask,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faRulerVertical: faRulerVertical,\n faUserLarge: faUserLarge,\n faUserAlt: faUserAlt,\n faTrainTram: faTrainTram,\n faUserNurse: faUserNurse,\n faSyringe: faSyringe,\n faCloudSun: faCloudSun,\n faStopwatch20: faStopwatch20,\n faSquareFull: faSquareFull,\n faMagnet: faMagnet,\n faJar: faJar,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faBugSlash: faBugSlash,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faBone: faBone,\n faUserInjured: faUserInjured,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faPlane: faPlane,\n faTentArrowsDown: faTentArrowsDown,\n faExclamation: faExclamation,\n faArrowsSpin: faArrowsSpin,\n faPrint: faPrint,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faX: faX,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faUmbrella: faUmbrella,\n faTrowel: faTrowel,\n faD: faD,\n faStapler: faStapler,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faKipSign: faKipSign,\n faHandPointLeft: faHandPointLeft,\n faHandshakeSimple: faHandshakeSimple,\n faHandshakeAlt: faHandshakeAlt,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faBarcode: faBarcode,\n faPlusMinus: faPlusMinus,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faHandHoldingMedical: faHandHoldingMedical,\n faPersonCircleCheck: faPersonCircleCheck,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faFillDrip, faArrowsToCircle, faCircleChevronRight, faChevronCircleRight, faAt, faTrashCan, faTrashAlt, faTextHeight, faUserXmark, faUserTimes, faStethoscope, faMessage, faCommentAlt, faInfo, faDownLeftAndUpRightToCenter, faCompressAlt, faExplosion, faFileLines, faFileAlt, faFileText, faWaveSquare, faRing, faBuildingUn, faDiceThree, faCalendarDays, faCalendarAlt, faAnchorCircleCheck, faBuildingCircleArrowRight, faVolleyball, faVolleyballBall, faArrowsUpToLine, faSortDown, faSortDesc, faCircleMinus, faMinusCircle, faDoorOpen, faRightFromBracket, faSignOutAlt, faAtom, faSoap, faIcons, faHeartMusicCameraBolt, faMicrophoneLinesSlash, faMicrophoneAltSlash, faBridgeCircleCheck, faPumpMedical, faFingerprint, faHandPointRight, faMagnifyingGlassLocation, faSearchLocation, faForwardStep, faStepForward, faFaceSmileBeam, faSmileBeam, faFlagCheckered, faFootball, faFootballBall, faSchoolCircleExclamation, faCrop, faAnglesDown, faAngleDoubleDown, faUsersRectangle, faPeopleRoof, faPeopleLine, faBeerMugEmpty, faBeer, faDiagramPredecessor, faArrowUpLong, faLongArrowUp, faFireFlameSimple, faBurn, faPerson, faMale, faLaptop, faFileCsv, faMenorah, faTruckPlane, faRecordVinyl, faFaceGrinStars, faGrinStars, faBong, faSpaghettiMonsterFlying, faPastafarianism, faArrowDownUpAcrossLine, faSpoon, faUtensilSpoon, faJarWheat, faEnvelopesBulk, faMailBulk, faFileCircleExclamation, faCircleH, faHospitalSymbol, faPager, faAddressBook, faContactBook, faStrikethrough, faK, faLandmarkFlag, faPencil, faPencilAlt, faBackward, faCaretRight, faComments, faPaste, faFileClipboard, faCodePullRequest, faClipboardList, faTruckRampBox, faTruckLoading, faUserCheck, faVialVirus, faSheetPlastic, faBlog, faUserNinja, faPersonArrowUpFromLine, faScrollTorah, faTorah, faBroomBall, faQuidditch, faQuidditchBroomBall, faToggleOff, faBoxArchive, faArchive, faPersonDrowning, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faSprayCan, faTruckMonster, faW, faEarthAfrica, faGlobeAfrica, faRainbow, faCircleNotch, faTabletScreenButton, faTabletAlt, faPaw, faCloud, faTrowelBricks, faFaceFlushed, faFlushed, faHospitalUser, faTentArrowLeftRight, faGavel, faLegal, faBinoculars, faMicrophoneSlash, faBoxTissue, faMotorcycle, faBellConcierge, faConciergeBell, faPenRuler, faPencilRuler, faPeopleArrows, faPeopleArrowsLeftRight, faMarsAndVenusBurst, faSquareCaretRight, faCaretSquareRight, faScissors, faCut, faSunPlantWilt, faToiletsPortable, faHockeyPuck, faTable, faMagnifyingGlassArrowRight, faTachographDigital, faDigitalTachograph, faUsersSlash, faClover, faReply, faMailReply, faStarAndCrescent, faHouseFire, faSquareMinus, faMinusSquare, faHelicopter, faCompass, faSquareCaretDown, faCaretSquareDown, faFileCircleQuestion, faLaptopCode, faSwatchbook, faPrescriptionBottle, faBars, faNavicon, faPeopleGroup, faHourglassEnd, faHourglass3, faHeartCrack, faHeartBroken, faSquareUpRight, faExternalLinkSquareAlt, faFaceKissBeam, faKissBeam, faFilm, faRulerHorizontal, faPeopleRobbery, faLightbulb, faCaretLeft, faCircleExclamation, faExclamationCircle, faSchoolCircleXmark, faArrowRightFromBracket, faSignOut, faCircleChevronDown, faChevronCircleDown, faUnlockKeyhole, faUnlockAlt, faCloudShowersHeavy, faHeadphonesSimple, faHeadphonesAlt, faSitemap, faCircleDollarToSlot, faDonate, faMemory, faRoadSpikes, faFireBurner, faFlag, faHanukiah, faFeather, faVolumeLow, faVolumeDown, faCommentSlash, faCloudSunRain, faCompress, faWheatAwn, faWheatAlt, faAnkh, faHandsHoldingChild, faAsterisk, faSquareCheck, faCheckSquare, faPesetaSign, faHeading, faHeader, faGhost, faList, faListSquares, faSquarePhoneFlip, faPhoneSquareAlt, faCartPlus, faGamepad, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faEgg, faHouseMedicalCircleXmark, faCampground, faFolderPlus, faFutbol, faFutbolBall, faSoccerBall, faPaintbrush, faPaintBrush, faLock, faGasPump, faHotTubPerson, faHotTub, faMapLocation, faMapMarked, faHouseFloodWater, faTree, faBridgeLock, faSackDollar, faPenToSquare, faEdit, faCarSide, faShareNodes, faShareAlt, faHeartCircleMinus, faHourglassHalf, faHourglass2, faMicroscope, faSink, faBagShopping, faShoppingBag, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faMitten, faPersonRays, faUsers, faEyeSlash, faFlaskVial, faHand, faHandPaper, faOm, faWorm, faHouseCircleXmark, faPlug, faChevronUp, faHandSpock, faStopwatch, faFaceKiss, faKiss, faBridgeCircleXmark, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faRoadCircleCheck, faDiceFive, faSquareRss, faRssSquare, faLandMineOn, faICursor, faStamp, faStairs, faI, faHryvniaSign, faHryvnia, faPills, faFaceGrinWide, faGrinAlt, faTooth, faV, faBangladeshiTakaSign, faBicycle, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faHeadSideCoughSlash, faTruckMedical, faAmbulance, faWheatAwnCircleExclamation, faSnowman, faMortarPestle, faRoadBarrier, faSchool, faIgloo, faJoint, faAngleRight, faHorse, faQ, faG, faNotesMedical, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faDongSign, faCapsules, faPooStorm, faPooBolt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faMoneyBill, faBookmark, faAlignJustify, faUmbrellaBeach, faHelmetUn, faBullseye, faBacon, faHandPointDown, faArrowUpFromBracket, faFolder, faFolderBlank, faFileWaveform, faFileMedicalAlt, faRadiation, faChartSimple, faMarsStroke, faVial, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faWandMagicSparkles, faMagicWandSparkles, faE, faPenClip, faPenAlt, faBridgeCircleExclamation, faUser, faSchoolCircleCheck, faDumpster, faVanShuttle, faShuttleVan, faBuildingUser, faSquareCaretLeft, faCaretSquareLeft, faHighlighter, faKey, faBullhorn, faGlobe, faSynagogue, faPersonHalfDress, faRoadBridge, faLocationArrow, faC, faTabletButton, faBuildingLock, faPizzaSlice, faMoneyBillWave, faChartArea, faAreaChart, faHouseFlag, faPersonCircleMinus, faBan, faCancel, faCameraRotate, faSprayCanSparkles, faAirFreshener, faStar, faRepeat, faCross, faBox, faVenusMars, faArrowPointer, faMousePointer, faMaximize, faExpandArrowsAlt, faChargingStation, faShapes, faTriangleCircleSquare, faShuffle, faRandom, faPersonRunning, faRunning, faMobileRetro, faGripLinesVertical, faSpider, faHandsBound, faFileInvoiceDollar, faPlaneCircleExclamation, faXRay, faSpellCheck, faSlash, faComputerMouse, faMouse, faArrowRightToBracket, faSignIn, faShopSlash, faStoreAltSlash, faServer, faVirusCovidSlash, faShopLock, faHourglassStart, faHourglass1, faBlenderPhone, faBuildingWheat, faPersonBreastfeeding, faRightToBracket, faSignInAlt, faVenus, faPassport, faHeartPulse, faHeartbeat, faPeopleCarryBox, faPeopleCarry, faTemperatureHigh, faMicrochip, faCrown, faWeightHanging, faXmarksLines, faFilePrescription, faWeightScale, faWeight, faUserGroup, faUserFriends, faArrowUpAZ, faSortAlphaUp, faChessKnight, faFaceLaughSquint, faLaughSquint, faWheelchair, faCircleArrowUp, faArrowCircleUp, faToggleOn, faPersonWalking, faWalking, faL, faFire, faBedPulse, faProcedures, faShuttleSpace, faSpaceShuttle, faFaceLaugh, faLaugh, faFolderOpen, faHeartCirclePlus, faCodeFork, faCity, faMicrophoneLines, faMicrophoneAlt, faPepperHot, faUnlock, faColonSign, faHeadset, faStoreSlash, faRoadCircleXmark, faUserMinus, faMarsStrokeUp, faMarsStrokeV, faChampagneGlasses, faGlassCheers, faClipboard, faHouseCircleExclamation, faFileArrowUp, faFileUpload, faWifi, faWifi3, faWifiStrong, faBath, faBathtub, faUnderline, faUserPen, faUserEdit, faSignature, faStroopwafel, faBold, faAnchorLock, faBuildingNgo, faManatSign, faNotEqual, faBorderTopLeft, faBorderStyle, faMapLocationDot, faMapMarkedAlt, faJedi, faSquarePollVertical, faPoll, faMugHot, faCarBattery, faBatteryCar, faGift, faDiceTwo, faChessQueen, faGlasses, faChessBoard, faBuildingCircleCheck, faPersonChalkboard, faMarsStrokeRight, faMarsStrokeH, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faCloudShowersWater, faChartBar, faBarChart, faHandsBubbles, faHandsWash, faLessThanEqual, faTrain, faEyeLowVision, faLowVision, faCrow, faSailboat, faWindowRestore, faSquarePlus, faPlusSquare, faToriiGate, faFrog, faBucket, faImage, faMicrophone, faCow, faCaretUp, faScrewdriver, faFolderClosed, faHouseTsunami, faSquareNfi, faArrowUpFromGroundWater, faMartiniGlass, faGlassMartiniAlt, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faTableColumns, faColumns, faLemon, faHeadSideMask, faHandshake, faGem, faDolly, faDollyBox, faSmoking, faMinimize, faCompressArrowsAlt, faMonument, faSnowplow, faAnglesRight, faAngleDoubleRight, faCannabis, faCirclePlay, faPlayCircle, faTablets, faEthernet, faEuroSign, faEur, faEuro, faChair, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faCompassDrafting, faDraftingCompass, faPlateWheat, faIcicles, faPersonShelter, faNeuter, faIdBadge, faMarker, faFaceLaughBeam, faLaughBeam, faHelicopterSymbol, faUniversalAccess, faCircleChevronUp, faChevronCircleUp, faLariSign, faVolcano, faPersonWalkingDashedLineArrowRight, faSterlingSign, faGbp, faPoundSign, faViruses, faSquarePersonConfined, faUserTie, faArrowDownLong, faLongArrowDown, faTentArrowDownToLine, faCertificate, faReplyAll, faMailReplyAll, faSuitcase, faPersonSkating, faSkating, faFilterCircleDollar, faFunnelDollar, faCameraRetro, faCircleArrowDown, faArrowCircleDown, faFileImport, faArrowRightToFile, faSquareArrowUpRight, faExternalLinkSquare, faBoxOpen, faScroll, faSpa, faLocationPinLock, faPause, faHillAvalanche, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBomb, faRegistered, faAddressCard, faContactCard, faVcard, faScaleUnbalancedFlip, faBalanceScaleRight, faSubscript, faDiamondTurnRight, faDirections, faBurst, faHouseLaptop, faLaptopHouse, faFaceTired, faTired, faMoneyBills, faSmog, faCrutch, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faPalette, faArrowsTurnRight, faVest, faFerry, faArrowsDownToPeople, faSeedling, faSprout, faLeftRight, faArrowsAltH, faBoxesPacking, faCircleArrowLeft, faArrowCircleLeft, faGroupArrowsRotate, faBowlFood, faCandyCane, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCloudBolt, faThunderstorm, faTextSlash, faRemoveFormat, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faArrowsLeftRight, faArrowsH, faHouseLock, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faChildren, faChalkboard, faBlackboard, faUserLargeSlash, faUserAltSlash, faEnvelopeOpen, faHandshakeSimpleSlash, faHandshakeAltSlash, faMattressPillow, faGuaraniSign, faArrowsRotate, faRefresh, faSync, faFireExtinguisher, faCruzeiroSign, faGreaterThanEqual, faShieldHalved, faShieldAlt, faBookAtlas, faAtlas, faVirus, faEnvelopeCircleCheck, faLayerGroup, faArrowsToDot, faArchway, faHeartCircleCheck, faHouseChimneyCrack, faHouseDamage, faFileZipper, faFileArchive, faSquare, faMartiniGlassEmpty, faGlassMartini, faCouch, faCediSign, faItalic, faChurch, faCommentsDollar, faDemocrat, faZ, faPersonSkiing, faSkiing, faRoadLock, faA, faTemperatureArrowDown, faTemperatureDown, faFeatherPointed, faFeatherAlt, faP, faSnowflake, faNewspaper, faRectangleAd, faAd, faCircleArrowRight, faArrowCircleRight, faFilterCircleXmark, faLocust, faSort, faUnsorted, faListOl, faList12, faListNumeric, faPersonDressBurst, faMoneyCheckDollar, faMoneyCheckAlt, faVectorSquare, faBreadSlice, faLanguage, faFaceKissWinkHeart, faKissWinkHeart, faFilter, faQuestion, faFileSignature, faUpDownLeftRight, faArrowsAlt, faHouseChimneyUser, faHandHoldingHeart, faPuzzlePiece, faMoneyCheck, faStarHalfStroke, faStarHalfAlt, faCode, faWhiskeyGlass, faGlassWhiskey, faBuildingCircleExclamation, faMagnifyingGlassChart, faArrowUpRightFromSquare, faExternalLink, faCubesStacked, faWonSign, faKrw, faWon, faVirusCovid, faAustralSign, faF, faLeaf, faRoad, faTaxi, faCab, faPersonCirclePlus, faChartPie, faPieChart, faBoltLightning, faSackXmark, faFileExcel, faFileContract, faFishFins, faBuildingFlag, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faPoop, faLocationPin, faMapMarker, faKaaba, faToiletPaper, faHelmetSafety, faHardHat, faHatHard, faEject, faCircleRight, faArrowAltCircleRight, faPlaneCircleCheck, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faChartLine, faLineChart, faMaskVentilator, faArrowRight, faSignsPost, faMapSigns, faCashRegister, faPersonCircleQuestion, faH, faTarp, faScrewdriverWrench, faTools, faArrowsToEye, faPlugCircleBolt, faHeart, faMarsAndVenus, faHouseUser, faHomeUser, faDumpsterFire, faHouseCrack, faMartiniGlassCitrus, faCocktail, faFaceSurprise, faSurprise, faBottleWater, faCirclePause, faPauseCircle, faToiletPaperSlash, faAppleWhole, faAppleAlt, faKitchenSet, faR, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faCube, faBitcoinSign, faShieldDog, faSolarPanel, faLockOpen, faElevator, faMoneyBillTransfer, faMoneyBillTrendUp, faHouseFloodWaterCircleArrowRight, faSquarePollHorizontal, faPollH, faCircle, faBackwardFast, faFastBackward, faRecycle, faUserAstronaut, faPlaneSlash, faTrademark, faBasketball, faBasketballBall, faSatelliteDish, faCircleUp, faArrowAltCircleUp, faMobileScreenButton, faMobileAlt, faVolumeHigh, faVolumeUp, faUsersRays, faWallet, faClipboardCheck, faFileAudio, faBurger, faHamburger, faWrench, faBugs, faRupeeSign, faRupee, faFileImage, faCircleQuestion, faQuestionCircle, faPlaneDeparture, faHandshakeSlash, faBookBookmark, faCodeBranch, faHatCowboy, faBridge, faPhoneFlip, faPhoneAlt, faTruckFront, faCat, faAnchorCircleExclamation, faTruckField, faRoute, faClipboardQuestion, faPanorama, faCommentMedical, faTeethOpen, faFileCircleMinus, faTags, faWineGlass, faForwardFast, faFastForward, faFaceMehBlank, faMehBlank, faSquareParking, faParking, faHouseSignal, faBarsProgress, faTasksAlt, faFaucetDrip, faCartFlatbed, faDollyFlatbed, faBanSmoking, faSmokingBan, faTerminal, faMobileButton, faHouseMedicalFlag, faBasketShopping, faShoppingBasket, faTape, faBusSimple, faBusAlt, faEye, faFaceSadCry, faSadCry, faAudioDescription, faPersonMilitaryToPerson, faFileShield, faUserSlash, faPen, faTowerObservation, faFileCode, faSignal, faSignal5, faSignalPerfect, faBus, faHeartCircleXmark, faHouseChimney, faHomeLg, faWindowMaximize, faFaceFrown, faFrown, faPrescription, faShop, faStoreAlt, faFloppyDisk, faSave, faVihara, faScaleUnbalanced, faBalanceScaleLeft, faSortUp, faSortAsc, faCommentDots, faCommenting, faPlantWilt, faDiamond, faFaceGrinSquint, faGrinSquint, faHandHoldingDollar, faHandHoldingUsd, faBacterium, faHandPointer, faDrumSteelpan, faHandScissors, faHandsPraying, faPrayingHands, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faBiohazard, faLocationCrosshairs, faLocation, faMarsDouble, faChildDress, faUsersBetweenLines, faLungsVirus, faFaceGrinTears, faGrinTears, faPhone, faCalendarXmark, faCalendarTimes, faChildReaching, faHeadSideVirus, faUserGear, faUserCog, faArrowUp19, faSortNumericUp, faDoorClosed, faShieldVirus, faDiceSix, faMosquitoNet, faBridgeWater, faPersonBooth, faTextWidth, faHatWizard, faPenFancy, faPersonDigging, faDigging, faTrash, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faBookMedical, faPoo, faQuoteRight, faQuoteRightAlt, faShirt, faTShirt, faTshirt, faCubes, faDivide, faTengeSign, faTenge, faHeadphones, faHandsHolding, faHandsClapping, faRepublican, faArrowLeft, faPersonCircleXmark, faRuler, faAlignLeft, faDiceD6, faRestroom, faJ, faUsersViewfinder, faFileVideo, faUpRightFromSquare, faExternalLinkAlt, faTableCells, faTh, faFilePdf, faBookBible, faBible, faO, faSuitcaseMedical, faMedkit, faUserSecret, faOtter, faPersonDress, faFemale, faCommentDollar, faBusinessTime, faBriefcaseClock, faTableCellsLarge, faThLarge, faBookTanakh, faTanakh, faPhoneVolume, faVolumeControlPhone, faHatCowboySide, faClipboardUser, faChild, faLiraSign, faSatellite, faPlaneLock, faTag, faComment, faCakeCandles, faBirthdayCake, faCake, faEnvelope, faAnglesUp, faAngleDoubleUp, faPaperclip, faArrowRightToCity, faRibbon, faLungs, faArrowUp91, faSortNumericUpAlt, faLitecoinSign, faBorderNone, faCircleNodes, faParachuteBox, faIndent, faTruckFieldUn, faHourglass, faHourglassEmpty, faMountain, faUserDoctor, faUserMd, faCircleInfo, faInfoCircle, faCloudMeatball, faCamera, faCameraAlt, faSquareVirus, faMeteor, faCarOn, faSleigh, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandHoldingDroplet, faHandHoldingWater, faWater, faCalendarCheck, faBraille, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faLandmark, faTruck, faCrosshairs, faPersonCane, faTent, faVestPatches, faCheckDouble, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBillWheat, faCookie, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faDumbbell, faRectangleList, faListAlt, faTarpDroplet, faHouseMedicalCircleCheck, faPersonSkiingNordic, faSkiingNordic, faCalendarPlus, faPlaneArrival, faCircleLeft, faArrowAltCircleLeft, faTrainSubway, faSubway, faChartGantt, faIndianRupeeSign, faIndianRupee, faInr, faCropSimple, faCropAlt, faMoneyBill1, faMoneyBillAlt, faLeftLong, faLongArrowAltLeft, faDna, faVirusSlash, faMinus, faSubtract, faChess, faArrowLeftLong, faLongArrowLeft, faPlugCircleCheck, faStreetView, faFrancSign, faVolumeOff, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faGear, faCog, faDropletSlash, faTintSlash, faMosque, faMosquito, faStarOfDavid, faPersonMilitaryRifle, faCartShopping, faShoppingCart, faVials, faPlugCirclePlus, faPlaceOfWorship, faGripVertical, faArrowTurnUp, faLevelUp, faU, faSquareRootVariable, faSquareRootAlt, faClock, faClockFour, faBackwardStep, faStepBackward, faPallet, faFaucet, faBaseballBatBall, faS, faTimeline, faKeyboard, faCaretDown, faHouseChimneyMedical, faClinicMedical, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faMobileScreen, faMobileAndroidAlt, faPlaneUp, faPiggyBank, faBatteryHalf, faBattery3, faMountainCity, faCoins, faKhanda, faSliders, faSlidersH, faFolderTree, faNetworkWired, faMapPin, faHamsa, faCentSign, faFlask, faPersonPregnant, faWandSparkles, faEllipsisVertical, faEllipsisV, faTicket, faPowerOff, faRightLong, faLongArrowAltRight, faFlagUsa, faLaptopFile, faTty, faTeletype, faDiagramNext, faPersonRifle, faHouseMedicalCircleExclamation, faClosedCaptioning, faPersonHiking, faHiking, faVenusDouble, faImages, faCalculator, faPeoplePulling, faN, faCableCar, faTram, faCloudRain, faBuildingCircleXmark, faShip, faArrowsDownToLine, faDownload, faFaceGrin, faGrin, faDeleteLeft, faBackspace, faEyeDropper, faEyeDropperEmpty, faEyedropper, faFileCircleCheck, faForward, faMobile, faMobileAndroid, faMobilePhone, faFaceMeh, faMeh, faAlignCenter, faBookSkull, faBookDead, faIdCard, faDriversLicense, faOutdent, faDedent, faHeartCircleExclamation, faHouse, faHome, faHomeAlt, faHomeLgAlt, faCalendarWeek, faLaptopMedical, faB, faFileMedical, faDiceOne, faKiwiBird, faArrowRightArrowLeft, faExchange, faRotateRight, faRedoAlt, faRotateForward, faUtensils, faCutlery, faArrowUpWideShort, faSortAmountUp, faMillSign, faBowlRice, faSkull, faTowerBroadcast, faBroadcastTower, faTruckPickup, faUpLong, faLongArrowAltUp, faStop, faCodeMerge, faUpload, faHurricane, faMound, faToiletPortable, faCompactDisc, faFileArrowDown, faFileDownload, faCaravan, faShieldCat, faBolt, faZap, faGlassWater, faOilWell, faVault, faMars, faToilet, faPlaneCircleXmark, faYenSign, faCny, faJpy, faRmb, faYen, faRubleSign, faRouble, faRub, faRuble, faSun, faGuitar, faFaceLaughWink, faLaughWink, faHorseHead, faBoreHole, faIndustry, faCircleDown, faArrowAltCircleDown, faArrowsTurnToDots, faFlorinSign, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faLessThan, faAngleDown, faCarTunnel, faHeadSideCough, faGripLines, faThumbsDown, faUserLock, faArrowRightLong, faLongArrowRight, faAnchorCircleXmark, faEllipsis, faEllipsisH, faChessPawn, faKitMedical, faFirstAid, faPersonThroughWindow, faToolbox, faHandsHoldingCircle, faBug, faCreditCard, faCreditCardAlt, faCar, faAutomobile, faHandHoldingHand, faBookOpenReader, faBookReader, faMountainSun, faArrowsLeftRightToLine, faDiceD20, faTruckDroplet, faFileCircleXmark, faTemperatureArrowUp, faTemperatureUp, faMedal, faBed, faSquareH, faHSquare, faPodcast, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faBell, faSuperscript, faPlugCircleXmark, faStarOfLife, faPhoneSlash, faPaintRoller, faHandshakeAngle, faHandsHelping, faLocationDot, faMapMarkerAlt, faFile, faGreaterThan, faPersonSwimming, faSwimmer, faArrowDown, faDroplet, faTint, faEraser, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faPersonBurst, faDove, faBatteryEmpty, faBattery0, faSocks, faInbox, faSection, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faEnvelopeOpenText, faHospital, faHospitalAlt, faHospitalWide, faWineBottle, faChessRook, faBarsStaggered, faReorder, faStream, faDharmachakra, faHotdog, faPersonWalkingWithCane, faBlind, faDrum, faIceCream, faHeartCircleBolt, faFax, faParagraph, faCheckToSlot, faVoteYea, faStarHalf, faBoxesStacked, faBoxes, faBoxesAlt, faLink, faChain, faEarListen, faAssistiveListeningSystems, faTreeCity, faPlay, faFont, faRupiahSign, faMagnifyingGlass, faSearch, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faPersonDotsFromLine, faDiagnoses, faTrashCanArrowUp, faTrashRestoreAlt, faNairaSign, faCartArrowDown, faWalkieTalkie, faFilePen, faFileEdit, faReceipt, faSquarePen, faPenSquare, faPencilSquare, faSuitcaseRolling, faPersonCircleExclamation, faChevronDown, faBatteryFull, faBattery, faBattery5, faSkullCrossbones, faCodeCompare, faListUl, faListDots, faSchoolLock, faTowerCell, faDownLong, faLongArrowAltDown, faRankingStar, faChessKing, faPersonHarassing, faBrazilianRealSign, faLandmarkDome, faLandmarkAlt, faArrowUp, faTv, faTelevision, faTvAlt, faShrimp, faListCheck, faTasks, faJugDetergent, faCircleUser, faUserCircle, faUserShield, faWind, faCarBurst, faCarCrash, faY, faPersonSnowboarding, faSnowboarding, faTruckFast, faShippingFast, faFish, faUserGraduate, faCircleHalfStroke, faAdjust, faClapperboard, faCircleRadiation, faRadiationAlt, faBaseball, faBaseballBall, faJetFighterUp, faDiagramProject, faProjectDiagram, faCopy, faVolumeXmark, faVolumeMute, faVolumeTimes, faHandSparkles, faGrip, faGripHorizontal, faShareFromSquare, faShareSquare, faChildCombatant, faChildRifle, faGun, faSquarePhone, faPhoneSquare, faPlus, faAdd, faExpand, faComputer, faXmark, faClose, faMultiply, faRemove, faTimes, faArrowsUpDownLeftRight, faArrows, faChalkboardUser, faChalkboardTeacher, faPesoSign, faBuildingShield, faBaby, faUsersLine, faQuoteLeft, faQuoteLeftAlt, faTractor, faTrashArrowUp, faTrashRestore, faArrowDownUpLock, faLinesLeaning, faRulerCombined, faCopyright, faEquals, faBlender, faTeeth, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faMap, faRocket, faPhotoFilm, faPhotoVideo, faFolderMinus, faStore, faArrowTrendUp, faPlugCircleMinus, faSignHanging, faSign, faBezierCurve, faBellSlash, faTablet, faTabletAndroid, faSchoolFlag, faFill, faAngleUp, faDrumstickBite, faHollyBerry, faChevronLeft, faBacteria, faHandLizard, faNotdef, faDisease, faBriefcaseMedical, faGenderless, faChevronRight, faRetweet, faCarRear, faCarAlt, faPumpSoap, faVideoSlash, faBatteryQuarter, faBattery2, faRadio, faBabyCarriage, faCarriageBaby, faTrafficLight, faThermometer, faVrCardboard, faHandMiddleFinger, faPercent, faPercentage, faTruckMoving, faGlassWaterDroplet, faDisplay, faFaceSmile, faSmile, faThumbtack, faThumbTack, faTrophy, faPersonPraying, faPray, faHammer, faHandPeace, faRotate, faSyncAlt, faSpinner, faRobot, faPeace, faGears, faCogs, faWarehouse, faArrowUpRightDots, faSplotch, faFaceGrinHearts, faGrinHearts, faDiceFour, faSimCard, faTransgender, faTransgenderAlt, faMercury, faArrowTurnDown, faLevelDown, faPersonFallingBurst, faAward, faTicketSimple, faTicketAlt, faBuilding, faAnglesLeft, faAngleDoubleLeft, faQrcode, faClockRotateLeft, faHistory, faFaceGrinBeamSweat, faGrinBeamSweat, faFileExport, faArrowRightFromFile, faShield, faShieldBlank, faArrowUpShortWide, faSortAmountUpAlt, faHouseMedical, faGolfBallTee, faGolfBall, faCircleChevronLeft, faChevronCircleLeft, faHouseChimneyWindow, faPenNib, faTentArrowTurnLeft, faTents, faWandMagic, faMagic, faDog, faCarrot, faMoon, faWineGlassEmpty, faWineGlassAlt, faCheese, faYinYang, faMusic, faCodeCommit, faTemperatureLow, faPersonBiking, faBiking, faBroom, faShieldHeart, faGopuram, faEarthOceania, faGlobeOceania, faSquareXmark, faTimesSquare, faXmarkSquare, faHashtag, faUpRightAndDownLeftFromCenter, faExpandAlt, faOilCan, faT, faHippo, faChartColumn, faInfinity, faVialCircleCheck, faPersonArrowDownToLine, faVoicemail, faFan, faPersonWalkingLuggage, faUpDown, faArrowsAltV, faCloudMoonRain, faCalendar, faTrailer, faBahai, faHaykal, faSdCard, faDragon, faShoePrints, faCirclePlus, faPlusCircle, faFaceGrinTongueWink, faGrinTongueWink, faHandHolding, faPlugCircleExclamation, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faClone, faPersonWalkingArrowLoopLeft, faArrowUpZA, faSortAlphaUpAlt, faFireFlameCurved, faFireAlt, faTornado, faFileCirclePlus, faBookQuran, faQuran, faAnchor, faBorderAll, faFaceAngry, faAngry, faCookieBite, faArrowTrendDown, faRss, faFeed, faDrawPolygon, faScaleBalanced, faBalanceScale, faGaugeSimpleHigh, faTachometer, faTachometerFast, faShower, faDesktop, faDesktopAlt, faM, faTableList, faThList, faCommentSms, faSms, faBook, faUserPlus, faCheck, faBatteryThreeQuarters, faBattery4, faHouseCircleCheck, faAngleLeft, faDiagramSuccessor, faTruckArrowRight, faArrowsSplitUpAndLeft, faHandFist, faFistRaised, faCloudMoon, faBriefcase, faPersonFalling, faImagePortrait, faPortrait, faUserTag, faRug, faEarthEurope, faGlobeEurope, faCartFlatbedSuitcase, faLuggageCart, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faBahtSign, faBookOpen, faBookJournalWhills, faJournalWhills, faHandcuffs, faTriangleExclamation, faExclamationTriangle, faWarning, faDatabase, faShare, faArrowTurnRight, faMailForward, faBottleDroplet, faMaskFace, faHillRockslide, faRightLeft, faExchangeAlt, faPaperPlane, faRoadCircleExclamation, faDungeon, faAlignRight, faMoneyBill1Wave, faMoneyBillWaveAlt, faLifeRing, faHands, faSignLanguage, faSigning, faCalendarDay, faWaterLadder, faLadderWater, faSwimmingPool, faArrowsUpDown, faArrowsV, faFaceGrimace, faGrimace, faWheelchairMove, faWheelchairAlt, faTurnDown, faLevelDownAlt, faPersonWalkingArrowRight, faSquareEnvelope, faEnvelopeSquare, faDice, faBowlingBall, faBrain, faBandage, faBandAid, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faGifts, faHotel, faEarthAsia, faGlobeAsia, faIdCardClip, faIdCardAlt, faMagnifyingGlassPlus, faSearchPlus, faThumbsUp, faUserClock, faHandDots, faAllergies, faFileInvoice, faWindowMinimize, faMugSaucer, faCoffee, faBrush, faMask, faMagnifyingGlassMinus, faSearchMinus, faRulerVertical, faUserLarge, faUserAlt, faTrainTram, faUserNurse, faSyringe, faCloudSun, faStopwatch20, faSquareFull, faMagnet, faJar, faNoteSticky, faStickyNote, faBugSlash, faArrowUpFromWaterPump, faBone, faUserInjured, faFaceSadTear, faSadTear, faPlane, faTentArrowsDown, faExclamation, faArrowsSpin, faPrint, faTurkishLiraSign, faTry, faTurkishLira, faDollarSign, faDollar, faUsd, faX, faMagnifyingGlassDollar, faSearchDollar, faUsersGear, faUsersCog, faPersonMilitaryPointing, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faUmbrella, faTrowel, faD, faStapler, faMasksTheater, faTheaterMasks, faKipSign, faHandPointLeft, faHandshakeSimple, faHandshakeAlt, faJetFighter, faFighterJet, faSquareShareNodes, faShareAltSquare, faBarcode, faPlusMinus, faVideo, faVideoCamera, faGraduationCap, faMortarBoard, faHandHoldingMedical, faPersonCircleCheck, faTurnUp, faLevelUpAlt };\n","import { parse, icon, config, text } from '@fortawesome/fontawesome-svg-core';\nimport { h, defineComponent, computed, watch } from 'vue';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar humps$1 = {exports: {}};\n\n(function (module) {\n(function(global) {\n\n\t var _processKeys = function(convert, obj, options) {\n\t if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n\t return obj;\n\t }\n\n\t var output,\n\t i = 0,\n\t l = 0;\n\n\t if(_isArray(obj)) {\n\t output = [];\n\t for(l=obj.length; i<l; i++) {\n\t output.push(_processKeys(convert, obj[i], options));\n\t }\n\t }\n\t else {\n\t output = {};\n\t for(var key in obj) {\n\t if(Object.prototype.hasOwnProperty.call(obj, key)) {\n\t output[convert(key, options)] = _processKeys(convert, obj[key], options);\n\t }\n\t }\n\t }\n\t return output;\n\t };\n\n\t // String conversion methods\n\n\t var separateWords = function(string, options) {\n\t options = options || {};\n\t var separator = options.separator || '_';\n\t var split = options.split || /(?=[A-Z])/;\n\n\t return string.split(split).join(separator);\n\t };\n\n\t var camelize = function(string) {\n\t if (_isNumerical(string)) {\n\t return string;\n\t }\n\t string = string.replace(/[\\-_\\s]+(.)?/g, function(match, chr) {\n\t return chr ? chr.toUpperCase() : '';\n\t });\n\t // Ensure 1st char is always lowercase\n\t return string.substr(0, 1).toLowerCase() + string.substr(1);\n\t };\n\n\t var pascalize = function(string) {\n\t var camelized = camelize(string);\n\t // Ensure 1st char is always uppercase\n\t return camelized.substr(0, 1).toUpperCase() + camelized.substr(1);\n\t };\n\n\t var decamelize = function(string, options) {\n\t return separateWords(string, options).toLowerCase();\n\t };\n\n\t // Utilities\n\t // Taken from Underscore.js\n\n\t var toString = Object.prototype.toString;\n\n\t var _isFunction = function(obj) {\n\t return typeof(obj) === 'function';\n\t };\n\t var _isObject = function(obj) {\n\t return obj === Object(obj);\n\t };\n\t var _isArray = function(obj) {\n\t return toString.call(obj) == '[object Array]';\n\t };\n\t var _isDate = function(obj) {\n\t return toString.call(obj) == '[object Date]';\n\t };\n\t var _isRegExp = function(obj) {\n\t return toString.call(obj) == '[object RegExp]';\n\t };\n\t var _isBoolean = function(obj) {\n\t return toString.call(obj) == '[object Boolean]';\n\t };\n\n\t // Performant way to determine if obj coerces to a number\n\t var _isNumerical = function(obj) {\n\t obj = obj - 0;\n\t return obj === obj;\n\t };\n\n\t // Sets up function which handles processing keys\n\t // allowing the convert function to be modified by a callback\n\t var _processor = function(convert, options) {\n\t var callback = options && 'process' in options ? options.process : options;\n\n\t if(typeof(callback) !== 'function') {\n\t return convert;\n\t }\n\n\t return function(string, options) {\n\t return callback(string, convert, options);\n\t }\n\t };\n\n\t var humps = {\n\t camelize: camelize,\n\t decamelize: decamelize,\n\t pascalize: pascalize,\n\t depascalize: decamelize,\n\t camelizeKeys: function(object, options) {\n\t return _processKeys(_processor(camelize, options), object);\n\t },\n\t decamelizeKeys: function(object, options) {\n\t return _processKeys(_processor(decamelize, options), object, options);\n\t },\n\t pascalizeKeys: function(object, options) {\n\t return _processKeys(_processor(pascalize, options), object);\n\t },\n\t depascalizeKeys: function () {\n\t return this.decamelizeKeys.apply(this, arguments);\n\t }\n\t };\n\n\t if (module.exports) {\n\t module.exports = humps;\n\t } else {\n\t global.humps = humps;\n\t }\n\n\t})(commonjsGlobal);\n} (humps$1));\n\nvar humps = humps$1.exports;\n\nvar _excluded = [\"class\", \"style\"];\n\n/**\n * Converts a CSS style into a plain Javascript object.\n * @param {String} style The style to converts into a plain Javascript object.\n * @returns {Object}\n */\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (output, pair) {\n var idx = pair.indexOf(':');\n var prop = humps.camelize(pair.slice(0, idx));\n var value = pair.slice(idx + 1).trim();\n output[prop] = value;\n return output;\n }, {});\n}\n\n/**\n * Converts a CSS class list into a plain Javascript object.\n * @param {Array<String>} classes The class list to convert.\n * @returns {Object}\n */\nfunction classToObject(classes) {\n return classes.split(/\\s+/).reduce(function (output, className) {\n output[className] = true;\n return output;\n }, {});\n}\n\n/**\n * Converts a FontAwesome abstract element of an icon into a Vue VNode.\n * @param {AbstractElement | String} abstractElement The element to convert.\n * @param {Object} props The user-defined props.\n * @param {Object} attrs The user-defined native HTML attributes.\n * @returns {VNode}\n */\nfunction convert(abstractElement) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var attrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // If the abstract element is a string, we'll just return a string render function\n if (typeof abstractElement === 'string') {\n return abstractElement;\n }\n\n // Converting abstract element children into Vue VNodes\n var children = (abstractElement.children || []).map(function (child) {\n return convert(child);\n });\n\n // Converting abstract element attributes into valid Vue format\n var mixins = Object.keys(abstractElement.attributes || {}).reduce(function (mixins, key) {\n var value = abstractElement.attributes[key];\n switch (key) {\n case 'class':\n mixins.class = classToObject(value);\n break;\n case 'style':\n mixins.style = styleToObject(value);\n break;\n default:\n mixins.attrs[key] = value;\n }\n return mixins;\n }, {\n attrs: {},\n class: {},\n style: {}\n });\n\n // Now, we'll return the VNode\n attrs.class;\n var _attrs$style = attrs.style,\n aStyle = _attrs$style === void 0 ? {} : _attrs$style,\n otherAttrs = _objectWithoutProperties(attrs, _excluded);\n return h(abstractElement.tag, _objectSpread2(_objectSpread2(_objectSpread2({}, props), {}, {\n class: mixins.class,\n style: _objectSpread2(_objectSpread2({}, mixins.style), aStyle)\n }, mixins.attrs), otherAttrs), children);\n}\n\nvar PRODUCTION = false;\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction objectWithKey(key, value) {\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\nfunction classList(props) {\n var _classes;\n var classes = (_classes = {\n 'fa-spin': props.spin,\n 'fa-pulse': props.pulse,\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-li': props.listItem,\n 'fa-inverse': props.inverse,\n 'fa-flip': props.flip === true,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(props.size), props.size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(props.rotation), props.rotation !== null), _defineProperty(_classes, \"fa-pull-\".concat(props.pull), props.pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _defineProperty(_classes, 'fa-bounce', props.bounce), _defineProperty(_classes, 'fa-shake', props.shake), _defineProperty(_classes, 'fa-beat', props.beat), _defineProperty(_classes, 'fa-fade', props.fade), _defineProperty(_classes, 'fa-beat-fade', props.beatFade), _defineProperty(_classes, 'fa-flash', props.flash), _defineProperty(_classes, 'fa-spin-pulse', props.spinPulse), _defineProperty(_classes, 'fa-spin-reverse', props.spinReverse), _classes);\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\nfunction normalizeIconArgs(icon) {\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n if (parse.icon) {\n return parse.icon(icon);\n }\n if (icon === null) {\n return null;\n }\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n }\n if (Array.isArray(icon) && icon.length === 2) {\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n }\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\nvar FontAwesomeIcon = defineComponent({\n name: 'FontAwesomeIcon',\n props: {\n border: {\n type: Boolean,\n default: false\n },\n fixedWidth: {\n type: Boolean,\n default: false\n },\n flip: {\n type: [Boolean, String],\n default: false,\n validator: function validator(value) {\n return [true, false, 'horizontal', 'vertical', 'both'].indexOf(value) > -1;\n }\n },\n icon: {\n type: [Object, Array, String],\n required: true\n },\n mask: {\n type: [Object, Array, String],\n default: null\n },\n listItem: {\n type: Boolean,\n default: false\n },\n pull: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['right', 'left'].indexOf(value) > -1;\n }\n },\n pulse: {\n type: Boolean,\n default: false\n },\n rotation: {\n type: [String, Number],\n default: null,\n validator: function validator(value) {\n return [90, 180, 270].indexOf(Number.parseInt(value, 10)) > -1;\n }\n },\n swapOpacity: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x'].indexOf(value) > -1;\n }\n },\n spin: {\n type: Boolean,\n default: false\n },\n transform: {\n type: [String, Object],\n default: null\n },\n symbol: {\n type: [Boolean, String],\n default: false\n },\n title: {\n type: String,\n default: null\n },\n inverse: {\n type: Boolean,\n default: false\n },\n bounce: {\n type: Boolean,\n default: false\n },\n shake: {\n type: Boolean,\n default: false\n },\n beat: {\n type: Boolean,\n default: false\n },\n fade: {\n type: Boolean,\n default: false\n },\n beatFade: {\n type: Boolean,\n default: false\n },\n flash: {\n type: Boolean,\n default: false\n },\n spinPulse: {\n type: Boolean,\n default: false\n },\n spinReverse: {\n type: Boolean,\n default: false\n }\n },\n setup: function setup(props, _ref) {\n var attrs = _ref.attrs;\n var icon$1 = computed(function () {\n return normalizeIconArgs(props.icon);\n });\n var classes = computed(function () {\n return objectWithKey('classes', classList(props));\n });\n var transform = computed(function () {\n return objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n });\n var mask = computed(function () {\n return objectWithKey('mask', normalizeIconArgs(props.mask));\n });\n var renderedIcon = computed(function () {\n return icon(icon$1.value, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes.value), transform.value), mask.value), {}, {\n symbol: props.symbol,\n title: props.title\n }));\n });\n watch(renderedIcon, function (value) {\n if (!value) {\n return log('Could not find one or more icon(s)', icon$1.value, mask.value);\n }\n }, {\n immediate: true\n });\n var vnode = computed(function () {\n return renderedIcon.value ? convert(renderedIcon.value.abstract[0], {}, attrs) : null;\n });\n return function () {\n return vnode.value;\n };\n }\n});\n\nvar FontAwesomeLayers = defineComponent({\n name: 'FontAwesomeLayers',\n props: {\n fixedWidth: {\n type: Boolean,\n default: false\n }\n },\n setup: function setup(props, _ref) {\n var slots = _ref.slots;\n var familyPrefix = config.familyPrefix;\n var className = computed(function () {\n return [\"\".concat(familyPrefix, \"-layers\")].concat(_toConsumableArray(props.fixedWidth ? [\"\".concat(familyPrefix, \"-fw\")] : []));\n });\n return function () {\n return h('div', {\n class: className.value\n }, slots.default ? slots.default() : []);\n };\n }\n});\n\nvar FontAwesomeLayersText = defineComponent({\n name: 'FontAwesomeLayersText',\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n transform: {\n type: [String, Object],\n default: null\n },\n counter: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['bottom-left', 'bottom-right', 'top-left', 'top-right'].indexOf(value) > -1;\n }\n }\n },\n setup: function setup(props, _ref) {\n var attrs = _ref.attrs;\n var familyPrefix = config.familyPrefix;\n var classes = computed(function () {\n return objectWithKey('classes', [].concat(_toConsumableArray(props.counter ? [\"\".concat(familyPrefix, \"-layers-counter\")] : []), _toConsumableArray(props.position ? [\"\".concat(familyPrefix, \"-layers-\").concat(props.position)] : [])));\n });\n var transform = computed(function () {\n return objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n });\n var abstractElement = computed(function () {\n var _text = text(props.value.toString(), _objectSpread2(_objectSpread2({}, transform.value), classes.value)),\n abstract = _text.abstract;\n if (props.counter) {\n abstract[0].attributes.class = abstract[0].attributes.class.replace('fa-layers-text', '');\n }\n return abstract[0];\n });\n var vnode = computed(function () {\n return convert(abstractElement.value, {}, attrs);\n });\n return function () {\n return vnode.value;\n };\n }\n});\n\nexport { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText };\n","class Pointer {\r\n constructor(nativePointer) {\r\n /** Unique ID for this pointer */\r\n this.id = -1;\r\n this.nativePointer = nativePointer;\r\n this.pageX = nativePointer.pageX;\r\n this.pageY = nativePointer.pageY;\r\n this.clientX = nativePointer.clientX;\r\n this.clientY = nativePointer.clientY;\r\n if (self.Touch && nativePointer instanceof Touch) {\r\n this.id = nativePointer.identifier;\r\n }\r\n else if (isPointerEvent(nativePointer)) {\r\n // is PointerEvent\r\n this.id = nativePointer.pointerId;\r\n }\r\n }\r\n /**\r\n * Returns an expanded set of Pointers for high-resolution inputs.\r\n */\r\n getCoalesced() {\r\n if ('getCoalescedEvents' in this.nativePointer) {\r\n return this.nativePointer.getCoalescedEvents().map((p) => new Pointer(p));\r\n }\r\n return [this];\r\n }\r\n}\r\nconst isPointerEvent = (event) => self.PointerEvent && event instanceof PointerEvent;\r\nconst noop = () => { };\r\n/**\r\n * Track pointers across a particular element\r\n */\r\nclass PointerTracker {\r\n /**\r\n * Track pointers across a particular element\r\n *\r\n * @param element Element to monitor.\r\n * @param options\r\n */\r\n constructor(_element, { start = () => true, move = noop, end = noop, rawUpdates = false, } = {}) {\r\n this._element = _element;\r\n /**\r\n * State of the tracked pointers when they were pressed/touched.\r\n */\r\n this.startPointers = [];\r\n /**\r\n * Latest state of the tracked pointers. Contains the same number of pointers, and in the same\r\n * order as this.startPointers.\r\n */\r\n this.currentPointers = [];\r\n /**\r\n * Listener for mouse/pointer starts.\r\n *\r\n * @param event This will only be a MouseEvent if the browser doesn't support pointer events.\r\n */\r\n this._pointerStart = (event) => {\r\n if (event.button !== 0 /* Left */)\r\n return;\r\n if (!this._triggerPointerStart(new Pointer(event), event))\r\n return;\r\n // Add listeners for additional events.\r\n // The listeners may already exist, but no harm in adding them again.\r\n if (isPointerEvent(event)) {\r\n const capturingElement = event.target && 'setPointerCapture' in event.target\r\n ? event.target\r\n : this._element;\r\n capturingElement.setPointerCapture(event.pointerId);\r\n this._element.addEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move);\r\n this._element.addEventListener('pointerup', this._pointerEnd);\r\n this._element.addEventListener('pointercancel', this._pointerEnd);\r\n }\r\n else {\r\n // MouseEvent\r\n window.addEventListener('mousemove', this._move);\r\n window.addEventListener('mouseup', this._pointerEnd);\r\n }\r\n };\r\n /**\r\n * Listener for touchstart.\r\n * Only used if the browser doesn't support pointer events.\r\n */\r\n this._touchStart = (event) => {\r\n for (const touch of Array.from(event.changedTouches)) {\r\n this._triggerPointerStart(new Pointer(touch), event);\r\n }\r\n };\r\n /**\r\n * Listener for pointer/mouse/touch move events.\r\n */\r\n this._move = (event) => {\r\n const previousPointers = this.currentPointers.slice();\r\n const changedPointers = 'changedTouches' in event // Shortcut for 'is touch event'.\r\n ? Array.from(event.changedTouches).map((t) => new Pointer(t))\r\n : [new Pointer(event)];\r\n const trackedChangedPointers = [];\r\n for (const pointer of changedPointers) {\r\n const index = this.currentPointers.findIndex((p) => p.id === pointer.id);\r\n if (index === -1)\r\n continue; // Not a pointer we're tracking\r\n trackedChangedPointers.push(pointer);\r\n this.currentPointers[index] = pointer;\r\n }\r\n if (trackedChangedPointers.length === 0)\r\n return;\r\n this._moveCallback(previousPointers, trackedChangedPointers, event);\r\n };\r\n /**\r\n * Call the end callback for this pointer.\r\n *\r\n * @param pointer Pointer\r\n * @param event Related event\r\n */\r\n this._triggerPointerEnd = (pointer, event) => {\r\n const index = this.currentPointers.findIndex((p) => p.id === pointer.id);\r\n // Not a pointer we're interested in?\r\n if (index === -1)\r\n return false;\r\n this.currentPointers.splice(index, 1);\r\n this.startPointers.splice(index, 1);\r\n const cancelled = event.type === 'touchcancel' || event.type === 'pointercancel';\r\n this._endCallback(pointer, event, cancelled);\r\n return true;\r\n };\r\n /**\r\n * Listener for mouse/pointer ends.\r\n *\r\n * @param event This will only be a MouseEvent if the browser doesn't support pointer events.\r\n */\r\n this._pointerEnd = (event) => {\r\n if (!this._triggerPointerEnd(new Pointer(event), event))\r\n return;\r\n if (isPointerEvent(event)) {\r\n if (this.currentPointers.length)\r\n return;\r\n this._element.removeEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move);\r\n this._element.removeEventListener('pointerup', this._pointerEnd);\r\n this._element.removeEventListener('pointercancel', this._pointerEnd);\r\n }\r\n else {\r\n // MouseEvent\r\n window.removeEventListener('mousemove', this._move);\r\n window.removeEventListener('mouseup', this._pointerEnd);\r\n }\r\n };\r\n /**\r\n * Listener for touchend.\r\n * Only used if the browser doesn't support pointer events.\r\n */\r\n this._touchEnd = (event) => {\r\n for (const touch of Array.from(event.changedTouches)) {\r\n this._triggerPointerEnd(new Pointer(touch), event);\r\n }\r\n };\r\n this._startCallback = start;\r\n this._moveCallback = move;\r\n this._endCallback = end;\r\n this._rawUpdates = rawUpdates && 'onpointerrawupdate' in window;\r\n // Add listeners\r\n if (self.PointerEvent) {\r\n this._element.addEventListener('pointerdown', this._pointerStart);\r\n }\r\n else {\r\n this._element.addEventListener('mousedown', this._pointerStart);\r\n this._element.addEventListener('touchstart', this._touchStart);\r\n this._element.addEventListener('touchmove', this._move);\r\n this._element.addEventListener('touchend', this._touchEnd);\r\n this._element.addEventListener('touchcancel', this._touchEnd);\r\n }\r\n }\r\n /**\r\n * Remove all listeners.\r\n */\r\n stop() {\r\n this._element.removeEventListener('pointerdown', this._pointerStart);\r\n this._element.removeEventListener('mousedown', this._pointerStart);\r\n this._element.removeEventListener('touchstart', this._touchStart);\r\n this._element.removeEventListener('touchmove', this._move);\r\n this._element.removeEventListener('touchend', this._touchEnd);\r\n this._element.removeEventListener('touchcancel', this._touchEnd);\r\n this._element.removeEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move);\r\n this._element.removeEventListener('pointerup', this._pointerEnd);\r\n this._element.removeEventListener('pointercancel', this._pointerEnd);\r\n window.removeEventListener('mousemove', this._move);\r\n window.removeEventListener('mouseup', this._pointerEnd);\r\n }\r\n /**\r\n * Call the start callback for this pointer, and track it if the user wants.\r\n *\r\n * @param pointer Pointer\r\n * @param event Related event\r\n * @returns Whether the pointer is being tracked.\r\n */\r\n _triggerPointerStart(pointer, event) {\r\n if (!this._startCallback(pointer, event))\r\n return false;\r\n this.currentPointers.push(pointer);\r\n this.startPointers.push(pointer);\r\n return true;\r\n }\r\n}\n\nexport default PointerTracker;\n","import PointerTracker from 'pointer-tracker';\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css = \"pinch-zoom {\\n display: block;\\n overflow: hidden;\\n touch-action: none;\\n --scale: 1;\\n --x: 0;\\n --y: 0;\\n}\\n\\npinch-zoom > * {\\n transform: translate(var(--x), var(--y)) scale(var(--scale));\\n transform-origin: 0 0;\\n will-change: transform;\\n}\\n\";\nstyleInject(css);\n\nconst minScaleAttr = 'min-scale';\r\nconst allowPanMinScaleAttr = 'allow-pan-min-scale';\r\nconst resetToMinScaleLimitAttr = 'reset-to-min-scale-limit';\r\nconst reachMinScaleStrategyAttr = 'reach-min-scale-strategy';\r\nconst stopPropagateHandledAttr = 'stop-propagate-handled';\r\nconst reachMinScaleStrategyDefault = 'none';\r\nfunction getDistance(a, b) {\r\n if (!b)\r\n return 0;\r\n return Math.sqrt((b.clientX - a.clientX) ** 2 + (b.clientY - a.clientY) ** 2);\r\n}\r\nfunction getMidpoint(a, b) {\r\n if (!b)\r\n return a;\r\n return {\r\n clientX: (a.clientX + b.clientX) / 2,\r\n clientY: (a.clientY + b.clientY) / 2,\r\n };\r\n}\r\nfunction getAbsoluteValue(value, max) {\r\n if (typeof value === 'number')\r\n return value;\r\n if (value.trimRight().endsWith('%')) {\r\n return max * parseFloat(value) / 100;\r\n }\r\n return parseFloat(value);\r\n}\r\n// I'd rather use DOMMatrix/DOMPoint here, but the browser support isn't good enough.\r\n// Given that, better to use something everything supports.\r\nlet cachedSvg;\r\nfunction getSVG() {\r\n return cachedSvg || (cachedSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'));\r\n}\r\nfunction createMatrix() {\r\n return getSVG().createSVGMatrix();\r\n}\r\nfunction createPoint() {\r\n return getSVG().createSVGPoint();\r\n}\r\nconst MIN_SCALE = 0.01;\r\nconst ALLOW_PAN_MIN_SCALE = -1;\r\nconst RESET_TO_MIN_SCALE_LIMIT = -1;\r\nconst BUTTON_LEFT = 0;\r\nconst roundedCmp = (a, b) => {\r\n return Math.round(a * 100) - Math.round(b * 100);\r\n};\r\nclass PinchZoom extends HTMLElement {\r\n constructor() {\r\n super();\r\n // Current transform.\r\n this._transform = createMatrix();\r\n // Watch for children changes.\r\n // Note this won't fire for initial contents,\r\n // so _stageElChange is also called in connectedCallback.\r\n new MutationObserver(() => this._stageElChange())\r\n .observe(this, { childList: true });\r\n // Watch for pointers\r\n const pointerTracker = new PointerTracker(this, {\r\n start: (pointer, event) => {\r\n // We only want to track 2 pointers at most\r\n if (pointerTracker.currentPointers.length === 2 || !this._positioningEl)\r\n return false;\r\n const isPan = pointerTracker.currentPointers.length + 1 === 1;\r\n const handled = !(isPan && !this._allowPan());\r\n if (handled) {\r\n this._maybeStopPropagate(event);\r\n if (!isPan) { // only cancel if something was propagated\r\n this._maybeEmitCancel([pointer, ...pointerTracker.currentPointers]);\r\n }\r\n }\r\n event.preventDefault();\r\n return true;\r\n },\r\n move: (previousPointers, _, event) => {\r\n this._onPointerMove(previousPointers, pointerTracker.currentPointers, event);\r\n },\r\n end: (pointer, event) => {\r\n this._onPointerEnd(pointer, pointerTracker.currentPointers, event);\r\n },\r\n });\r\n this.addEventListener('wheel', event => this._onWheel(event));\r\n this.addEventListener('click', event => this._onClick(event, pointerTracker));\r\n }\r\n static get observedAttributes() { return [minScaleAttr]; }\r\n attributeChangedCallback(name, oldValue, newValue) {\r\n if (name === minScaleAttr) {\r\n if (this.scale < this.minScale) {\r\n this.setTransform({ scale: this.minScale });\r\n }\r\n }\r\n }\r\n get minScale() {\r\n const attrValue = this.getAttribute(minScaleAttr);\r\n if (!attrValue)\r\n return MIN_SCALE;\r\n const value = parseFloat(attrValue);\r\n if (Number.isFinite(value))\r\n return Math.max(MIN_SCALE, value);\r\n return MIN_SCALE;\r\n }\r\n set minScale(value) {\r\n this.setAttribute(minScaleAttr, String(value));\r\n }\r\n get reachMinScaleStrategy() {\r\n const attrValue = this.getAttribute(reachMinScaleStrategyAttr);\r\n const v = attrValue;\r\n return v || reachMinScaleStrategyDefault;\r\n }\r\n set reachMinScaleStrategy(value) {\r\n this.setAttribute(reachMinScaleStrategyAttr, value);\r\n }\r\n get allowPanMinScale() {\r\n const attrValue = this.getAttribute(allowPanMinScaleAttr);\r\n if (!attrValue)\r\n return ALLOW_PAN_MIN_SCALE;\r\n const value = parseFloat(attrValue);\r\n if (Number.isFinite(value))\r\n return Math.max(ALLOW_PAN_MIN_SCALE, value);\r\n return ALLOW_PAN_MIN_SCALE;\r\n }\r\n set allowPanMinScale(value) {\r\n this.setAttribute(allowPanMinScaleAttr, String(value));\r\n }\r\n get resetToMinScaleLimit() {\r\n const attrValue = this.getAttribute(resetToMinScaleLimitAttr);\r\n if (!attrValue)\r\n return RESET_TO_MIN_SCALE_LIMIT;\r\n const value = parseFloat(attrValue);\r\n if (Number.isFinite(value))\r\n return Math.max(RESET_TO_MIN_SCALE_LIMIT, value);\r\n return RESET_TO_MIN_SCALE_LIMIT;\r\n }\r\n set resetToMinScaleLimit(value) {\r\n this.setAttribute(resetToMinScaleLimitAttr, String(value));\r\n }\r\n get stopPropagateHandled() {\r\n return this.hasAttribute(stopPropagateHandledAttr);\r\n }\r\n set stopPropagateHandled(value) {\r\n if (value) {\r\n this.setAttribute(stopPropagateHandledAttr, '');\r\n }\r\n else {\r\n this.removeAttribute(stopPropagateHandledAttr);\r\n }\r\n }\r\n connectedCallback() {\r\n this._stageElChange();\r\n }\r\n get x() {\r\n return this._transform.e;\r\n }\r\n get y() {\r\n return this._transform.f;\r\n }\r\n get scale() {\r\n return this._transform.a;\r\n }\r\n /**\r\n * Change the scale, adjusting x/y by a given transform origin.\r\n */\r\n scaleTo(scale, opts = {}) {\r\n let { originX = 0, originY = 0, } = opts;\r\n const { relativeTo = 'content', allowChangeEvent = false, } = opts;\r\n const relativeToEl = (relativeTo === 'content' ? this._positioningEl : this);\r\n // No content element? Fall back to just setting scale\r\n if (!relativeToEl || !this._positioningEl) {\r\n this.setTransform({ scale, allowChangeEvent });\r\n return;\r\n }\r\n const rect = relativeToEl.getBoundingClientRect();\r\n originX = getAbsoluteValue(originX, rect.width);\r\n originY = getAbsoluteValue(originY, rect.height);\r\n if (relativeTo === 'content') {\r\n originX += this.x;\r\n originY += this.y;\r\n }\r\n else {\r\n const currentRect = this._positioningEl.getBoundingClientRect();\r\n originX -= currentRect.left;\r\n originY -= currentRect.top;\r\n }\r\n this._applyChange({\r\n allowChangeEvent,\r\n originX,\r\n originY,\r\n scaleDiff: scale / this.scale,\r\n });\r\n }\r\n /**\r\n * Update the stage with a given scale/x/y.\r\n */\r\n setTransform(opts = {}) {\r\n const { scale = this.scale, allowChangeEvent = false, } = opts;\r\n let { x = this.x, y = this.y, } = opts;\r\n // If we don't have an element to position, just set the value as given.\r\n // We'll check bounds later.\r\n if (!this._positioningEl) {\r\n this._updateTransform(scale, x, y, allowChangeEvent);\r\n return;\r\n }\r\n // Get current layout\r\n const thisBounds = this.getBoundingClientRect();\r\n const positioningElBounds = this._positioningEl.getBoundingClientRect();\r\n // Not displayed. May be disconnected or display:none.\r\n // Just take the values, and we'll check bounds later.\r\n if (!thisBounds.width || !thisBounds.height) {\r\n this._updateTransform(scale, x, y, allowChangeEvent);\r\n return;\r\n }\r\n // Create points for _positioningEl.\r\n let topLeft = createPoint();\r\n topLeft.x = positioningElBounds.left - thisBounds.left;\r\n topLeft.y = positioningElBounds.top - thisBounds.top;\r\n let bottomRight = createPoint();\r\n bottomRight.x = positioningElBounds.width + topLeft.x;\r\n bottomRight.y = positioningElBounds.height + topLeft.y;\r\n // Calculate the intended position of _positioningEl.\r\n const matrix = createMatrix()\r\n .translate(x, y)\r\n .scale(scale)\r\n // Undo current transform\r\n .multiply(this._transform.inverse());\r\n topLeft = topLeft.matrixTransform(matrix);\r\n bottomRight = bottomRight.matrixTransform(matrix);\r\n // Ensure _positioningEl can't move beyond out-of-bounds.\r\n // Correct for x\r\n if (topLeft.x > thisBounds.width) {\r\n x += thisBounds.width - topLeft.x;\r\n }\r\n else if (bottomRight.x < 0) {\r\n x += -bottomRight.x;\r\n }\r\n // Correct for y\r\n if (topLeft.y > thisBounds.height) {\r\n y += thisBounds.height - topLeft.y;\r\n }\r\n else if (bottomRight.y < 0) {\r\n y += -bottomRight.y;\r\n }\r\n this._updateTransform(scale, x, y, allowChangeEvent);\r\n }\r\n /**\r\n * Update transform values without checking bounds. This is only called in setTransform.\r\n */\r\n _updateTransform(scale, x, y, allowChangeEvent) {\r\n // Avoid scaling to zero\r\n if (scale < this.minScale) {\r\n scale = this.minScale;\r\n }\r\n // Return if there's no change\r\n if (scale === this.scale &&\r\n x === this.x &&\r\n y === this.y)\r\n return;\r\n this._transform.e = x;\r\n this._transform.f = y;\r\n this._transform.d = this._transform.a = scale;\r\n this.style.setProperty('--x', this.x + 'px');\r\n this.style.setProperty('--y', this.y + 'px');\r\n this.style.setProperty('--scale', this.scale + '');\r\n if (allowChangeEvent) {\r\n const event = new Event('change', { bubbles: true });\r\n this.dispatchEvent(event);\r\n }\r\n }\r\n /**\r\n * Called when the direct children of this element change.\r\n * Until we have have shadow dom support across the board, we\r\n * require a single element to be the child of <pinch-zoom>, and\r\n * that's the element we pan/scale.\r\n */\r\n _stageElChange() {\r\n this._positioningEl = undefined;\r\n if (this.children.length === 0)\r\n return;\r\n this._positioningEl = this.children[0];\r\n if (this.children.length > 1) {\r\n console.warn('<pinch-zoom> must not have more than one child.');\r\n }\r\n // Do a bounds check\r\n this.setTransform({ allowChangeEvent: true });\r\n }\r\n _onWheel(event) {\r\n if (!this._positioningEl)\r\n return;\r\n event.preventDefault();\r\n const currentRect = this._positioningEl.getBoundingClientRect();\r\n let { deltaY } = event;\r\n const { ctrlKey, deltaMode } = event;\r\n if (deltaMode === 1) { // 1 is \"lines\", 0 is \"pixels\"\r\n // Firefox uses \"lines\" for some types of mouse\r\n deltaY *= 15;\r\n }\r\n // ctrlKey is true when pinch-zooming on a trackpad.\r\n const divisor = ctrlKey ? 100 : 300;\r\n const scaleDiff = 1 - deltaY / divisor;\r\n const isZoomOut = scaleDiff < 1;\r\n this._applyChange({\r\n scaleDiff,\r\n originX: event.clientX - currentRect.left,\r\n originY: event.clientY - currentRect.top,\r\n allowChangeEvent: true,\r\n });\r\n if (isZoomOut) {\r\n this._maybeResetScale();\r\n }\r\n }\r\n _onPointerMove(previousPointers, currentPointers, event) {\r\n if (!this._positioningEl)\r\n return;\r\n const isPan = previousPointers.length < 2;\r\n if (isPan && !this._allowPan()) {\r\n return;\r\n }\r\n // Combine next points with previous points\r\n const currentRect = this._positioningEl.getBoundingClientRect();\r\n // For calculating panning movement\r\n const prevMidpoint = getMidpoint(previousPointers[0], previousPointers[1]);\r\n const newMidpoint = getMidpoint(currentPointers[0], currentPointers[1]);\r\n // Midpoint within the element\r\n const originX = prevMidpoint.clientX - currentRect.left;\r\n const originY = prevMidpoint.clientY - currentRect.top;\r\n // Calculate the desired change in scale\r\n const prevDistance = getDistance(previousPointers[0], previousPointers[1]);\r\n const newDistance = getDistance(currentPointers[0], currentPointers[1]);\r\n const scaleDiff = prevDistance ? newDistance / prevDistance : 1;\r\n this._applyChange({\r\n originX, originY, scaleDiff,\r\n panX: newMidpoint.clientX - prevMidpoint.clientX,\r\n panY: newMidpoint.clientY - prevMidpoint.clientY,\r\n allowChangeEvent: true,\r\n });\r\n this._maybeStopPropagate(event);\r\n }\r\n _maybeResetScale() {\r\n if (roundedCmp(this.scale, this.resetToMinScaleLimit) <= 0) {\r\n this._resetToMinScale();\r\n }\r\n }\r\n _onPointerEnd(pointer, currentPointers, event) {\r\n if (!this._positioningEl)\r\n return;\r\n const totalPointers = 1 + currentPointers.length;\r\n const isPinch = totalPointers >= 2;\r\n const isPan = totalPointers == 1;\r\n if (isPinch) {\r\n this._maybeResetScale();\r\n }\r\n if (isPan && !this._allowPan()) {\r\n return;\r\n }\r\n this._maybeStopPropagate(event);\r\n }\r\n _resetToMinScale() {\r\n if (this.reachMinScaleStrategy === 'reset') {\r\n this.setTransform({ scale: this.minScale, x: 0, y: 0 });\r\n }\r\n else {\r\n this.setTransform({ scale: this.minScale });\r\n }\r\n }\r\n /** Transform the view & fire a change event */\r\n _applyChange(opts = {}) {\r\n const { panX = 0, panY = 0, originX = 0, originY = 0, scaleDiff = 1, allowChangeEvent = false, } = opts;\r\n const matrix = createMatrix()\r\n // Translate according to panning.\r\n .translate(panX, panY)\r\n // Scale about the origin.\r\n .translate(originX, originY)\r\n // Apply current translate\r\n .translate(this.x, this.y)\r\n .scale(scaleDiff)\r\n .translate(-originX, -originY)\r\n // Apply current scale.\r\n .scale(this.scale);\r\n // Convert the transform into basic translate & scale.\r\n this.setTransform({\r\n allowChangeEvent,\r\n scale: matrix.a,\r\n x: matrix.e,\r\n y: matrix.f,\r\n });\r\n }\r\n _maybeStopPropagate(event) {\r\n if (this.stopPropagateHandled) {\r\n event.stopPropagation();\r\n }\r\n }\r\n _allowPan() {\r\n return (this.allowPanMinScale > 0\r\n && roundedCmp(this.scale, this.allowPanMinScale) > 0);\r\n }\r\n _maybeEmitCancel(pointers) {\r\n const makeCancelEvent = (pointer) => (new PointerEvent('pointercancel', {\r\n pointerId: pointer.id,\r\n clientX: pointer.clientX,\r\n clientY: pointer.clientY,\r\n }));\r\n if (this.stopPropagateHandled) {\r\n pointers.forEach(p => {\r\n if (this.parentElement && typeof this.parentElement.dispatchEvent === 'function') {\r\n this.parentElement.dispatchEvent(makeCancelEvent(p));\r\n }\r\n });\r\n }\r\n }\r\n _onClick(event, pointerTracker) {\r\n // We never handle non-left-clicks\r\n if (event.button !== BUTTON_LEFT) {\r\n return;\r\n }\r\n const wasPanning = pointerTracker.currentPointers.length === 0;\r\n const handled = !(wasPanning && !this._allowPan());\r\n if (handled) {\r\n this._maybeStopPropagate(event);\r\n }\r\n }\r\n}\n\ncustomElements.define('pinch-zoom', PinchZoom);\n\nexport default PinchZoom;\n","import { extend, isArray, toNumber, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`onScopeDispose() is called when there is no active effect scope` +\n ` to be associated with.`);\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit; // set was tracked\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n }\n else {\n deps[ptr++] = dep;\n }\n // clear bits\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = new WeakMap();\n// The number of effects currently being tracked recursively.\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\n/**\n * The bitwise track markers support at most 30 levels of recursion.\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\n * When recursion depth is greater, fall back to using a full cleanup.\n */\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = undefined;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n }\n else {\n cleanupEffect(this);\n }\n return this.fn();\n }\n finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = undefined;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n // stopped while running itself - defer the cleanup\n if (activeEffect === this) {\n this.deferStop = true;\n }\n else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === undefined ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, (depsMap = new Map()));\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, (dep = createDep()));\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { effect: activeEffect, target, type, key }\n : undefined;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit; // set newly tracked\n shouldTrack = !wasTracked(dep);\n }\n }\n else {\n // Full cleanup mode.\n shouldTrack = !dep.has(activeEffect);\n }\n if (shouldTrack) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n // never been tracked\n return;\n }\n let deps = [];\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\n // collection being cleared\n // trigger all effects for target\n deps = [...depsMap.values()];\n }\n else if (key === 'length' && isArray(target)) {\n const newLength = toNumber(newValue);\n depsMap.forEach((dep, key) => {\n if (key === 'length' || key >= newLength) {\n deps.push(dep);\n }\n });\n }\n else {\n // schedule runs for SET | ADD | DELETE\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n // also run for iteration key on ADD | DELETE | Map.SET\n switch (type) {\n case \"add\" /* TriggerOpTypes.ADD */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n else if (isIntegerKey(key)) {\n // new index added to array -> length changes\n deps.push(depsMap.get('length'));\n }\n break;\n case \"delete\" /* TriggerOpTypes.DELETE */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\" /* TriggerOpTypes.SET */:\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { target, type, key, newValue, oldValue, oldTarget }\n : undefined;\n if (deps.length === 1) {\n if (deps[0]) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(deps[0], eventInfo);\n }\n else {\n triggerEffects(deps[0]);\n }\n }\n }\n else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(createDep(effects), eventInfo);\n }\n else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n // spread into array for stabilization\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\n }\n if (effect.scheduler) {\n effect.scheduler();\n }\n else {\n effect.run();\n }\n }\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n/*#__PURE__*/\nObject.getOwnPropertyNames(Symbol)\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\n // function\n .filter(key => key !== 'arguments' && key !== 'caller')\n .map(key => Symbol[key])\n .filter(isSymbol));\nconst get = /*#__PURE__*/ createGetter();\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\n }\n // we run the method using the original args first (which may be reactive)\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n // if that didn't work, run it again using raw values.\n return arr[key](...args.map(toRaw));\n }\n else {\n return res;\n }\n };\n });\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\n instrumentations[key] = function (...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get(target, key, receiver) {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\n return shallow;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\n receiver ===\n (isReadonly\n ? shallow\n ? shallowReadonlyMap\n : readonlyMap\n : shallow\n ? shallowReactiveMap\n : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\" /* TrackOpTypes.GET */, key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n // ref unwrapping - skip unwrap for Array + integer key.\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n // Convert returned value into a proxy as well. we do the isObject check\n // here to avoid invalid value warning. Also need to lazy access readonly\n // and reactive here to avoid circular dependency.\n return isReadonly ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set = /*#__PURE__*/ createSetter();\nconst shallowSet = /*#__PURE__*/ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key)\n ? Number(key) < target.length\n : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n // don't trigger if target is something up in the prototype chain of original\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get,\n set,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\n// Props handlers are special in the sense that it should not unwrap top-level\n// refs (in order to allow refs to be explicitly passed down), but should\n// retain the reactivity of the normal readonly object.\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n});\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\n // of the value\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\n }\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n }\n else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n }\n else if (target !== rawTarget) {\n // #3602 readonly(reactive(Map))\n // ensure that the nested reactive `Map` can do tracking for itself\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\n }\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\n }\n return key === rawKey\n ? target.has(key)\n : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return Reflect.get(target, 'size', target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : undefined;\n // forward the operation before queueing reactions\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = (process.env.NODE_ENV !== 'production')\n ? isMap(target)\n ? new Map(target)\n : new Set(target)\n : undefined;\n // forward the operation before queueing reactions\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return target.forEach((value, key) => {\n // important: make sure the callback is\n // 1. invoked with the reactive map as `this` and 3rd arg\n // 2. the value received should be a corresponding reactive/readonly.\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function (...args) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\n const isKeyOnly = method === 'keys' && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly &&\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n // return a wrapped iterator which returns observed versions of the\n // values emitted from the real iterator\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done\n ? { value, done }\n : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function (...args) {\n if ((process.env.NODE_ENV !== 'production')) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\n iteratorMethods.forEach(method => {\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow\n ? isReadonly\n ? shallowReadonlyInstrumentations\n : shallowInstrumentations\n : isReadonly\n ? readonlyInstrumentations\n : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target\n ? instrumentations\n : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\n `which can lead to inconsistencies. ` +\n `Avoid differentiating between the raw and reactive versions ` +\n `of an object and only use the reactive version if possible.`);\n }\n}\n\nconst reactiveMap = new WeakMap();\nconst shallowReactiveMap = new WeakMap();\nconst readonlyMap = new WeakMap();\nconst shallowReadonlyMap = new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return 1 /* TargetType.COMMON */;\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n return 2 /* TargetType.COLLECTION */;\n default:\n return 0 /* TargetType.INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\n ? 0 /* TargetType.INVALID */\n : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\n/**\n * Creates a readonly copy of the original object. Note the returned copy is not\n * made reactive, but `readonly` can be called on an already reactive object.\n */\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n // target is already a Proxy, return it.\n // exception: calling readonly() on a reactive object\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\n return target;\n }\n // target already has corresponding Proxy\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n // only specific value types can be observed.\n const targetType = getTargetType(target);\n if (targetType === 0 /* TargetType.INVALID */) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n if ((process.env.NODE_ENV !== 'production')) {\n trackEffects(ref.dep || (ref.dep = createDep()), {\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(ref.dep, {\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value',\n newValue: newVal\n });\n }\n else {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = undefined;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref) {\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs)\n ? objectWithRefs\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = undefined;\n this.__v_isRef = true;\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === undefined ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n}\nfunction toRef(object, key, defaultValue) {\n const val = object[key];\n return isRef(val)\n ? val\n : new ObjectRefImpl(object, key, defaultValue);\n}\n\nvar _a;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = undefined;\n this.__v_isRef = true;\n this[_a] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\n }\n get value() {\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = (process.env.NODE_ENV !== 'production')\n ? () => {\n console.warn('Write operation failed: computed value is readonly');\n }\n : NOOP;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nvar _a$1;\nconst tick = /*#__PURE__*/ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = undefined;\n this._dirty = true;\n this.__v_isRef = true;\n this[_a$1] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n }\n else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n // chained upstream computeds are notified synchronously to ensure\n // value invalidation in case of sync access; normal effects are\n // deferred to be triggered in scheduler.\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(true /* computedTrigger */);\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return (this._value = this.effect.run());\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n return toRaw(this)._get();\n }\n}\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!(process.env.NODE_ENV !== 'production'))\n return;\n // avoid props formatting or warn handler tracking deps that might be mutated\n // during patch, leading to infinite recursion.\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\n msg + args.join(''),\n instance && instance.proxy,\n trace\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\n .join('\\n'),\n trace\n ]);\n }\n else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n /* istanbul ignore if */\n if (trace.length &&\n // avoid spamming console during tests\n !false) {\n warnArgs.push(`\\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n // we can't just use the stack because it will be incomplete during updates\n // that did not start from the root. Re-construct the parent chain using\n // instance parent pointers.\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n }\n else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\n/* istanbul ignore next */\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\n const close = `>` + postfix;\n return vnode.props\n ? [open, ...formatProps(vnode.props), close]\n : [open + close];\n}\n/* istanbul ignore next */\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach(key => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\n/* istanbul ignore next */\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n }\n else if (typeof value === 'number' ||\n typeof value === 'boolean' ||\n value == null) {\n return raw ? value : [`${key}=${value}`];\n }\n else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n }\n else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n }\n else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if ((process.env.NODE_ENV !== 'production')) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n // crash in dev by default so it's more noticeable\n if (throwInDev) {\n throw err;\n }\n else {\n console.error(err);\n }\n }\n else {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if ((process.env.NODE_ENV !== 'production') &&\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = (process.env.NODE_ENV !== 'production')\n ? (job) => checkRecursiveUpdates(seen, job)\n : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n }\n else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`);\n return true;\n }\n else {\n seen.set(fn, count + 1);\n }\n }\n}\n\n/* eslint-disable no-restricted-globals */\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = new Set();\n// Expose the HMR runtime on the global object\n// This makes it entirely tree-shakable without polluting the exports and makes\n// it easier to be used in toolings like vue-loader\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\n// to be set so that its instances can be registered / removed.\nif ((process.env.NODE_ENV !== 'production')) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n // update initial record (for not-yet-rendered component)\n record.initialDef.render = newRender;\n [...record.instances].forEach(instance => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n // this flag forces child components with slot content to update\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n // update initial def (for not-yet-rendered components)\n updateComponentDef(record.initialDef, newComp);\n // create a snapshot which avoids the set being mutated during updates\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n // 1. Update existing comp definition to match new one\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n // 2. mark definition dirty. This forces the renderer to replace the\n // component on patch.\n hmrDirtyComponents.add(oldComp);\n }\n // 3. invalidate options resolution cache\n instance.appContext.optionsCache.delete(instance.type);\n // 4. actually update\n if (instance.ceReload) {\n // custom element\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n }\n else if (instance.parent) {\n // 4. Force the parent instance to re-render. This will cause all updated\n // components to be unmounted and re-mounted. Queue the update so that we\n // don't end up forcing the same parent to re-render multiple times.\n queueJob(instance.parent.update);\n }\n else if (instance.appContext.reload) {\n // root instance mounted via createApp() has a reload method\n instance.appContext.reload();\n }\n else if (typeof window !== 'undefined') {\n // root instance inside tree created via raw render(). Force reload.\n window.location.reload();\n }\n else {\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\n }\n }\n // 5. make sure to cleanup dirty hmr components after update\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== '__file' && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n }\n catch (e) {\n console.error(e);\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\n `Full reload required.`);\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n }\n else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3000);\n }\n else {\n // non-browser env, assume not installed\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = \n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools &&\n typeof devtools.cleanupBuffer === 'function' &&\n // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\n };\n}\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if ((process.env.NODE_ENV !== 'production')) {\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) &&\n !(false )) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\n }\n }\n else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => (isString(a) ? a.trim() : a));\n }\n if (number) {\n args = rawArgs.map(toNumber);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\n `Note that HTML attributes are case-insensitive and you cannot use ` +\n `v-on to listen to camelCase events when using in-DOM templates. ` +\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\n }\n }\n let handlerName;\n let handler = props[(handlerName = toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = toHandlerKey(camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n hasOwn(options, hyphenate(key)) ||\n hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled `<slot>`, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\n/**\n * dev only flag to track whether $attrs was used during render.\n * If $attrs was used during render then the warning for failed attrs\n * fallthrough can be suppressed.\n */\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(render.length > 1\n ? render(props, (process.env.NODE_ENV !== 'production')\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n let setRoot = undefined;\n if ((process.env.NODE_ENV !== 'production') &&\n result.patchFlag > 0 &&\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n // ignore v-model handlers when they fail to fallthrough\n if (!isModelListener(key)) {\n // remove `on`, lowercase first letter to reflect event casing\n // accurately\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n }\n else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(`Extraneous non-props attributes (` +\n `${extraAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes.`);\n }\n if (eventAttrs.length) {\n warn(`Extraneous non-emits event listeners (` +\n `${eventAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes. ` +\n `If the listener is intended to be a component custom event listener only, ` +\n `declare it using the \"emits\" option.`);\n }\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Runtime directive used on component with non-element root node. ` +\n `The directives will not function as intended.`);\n }\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Component inside <Transition> renders non-element root node ` +\n `that cannot be animated.`);\n }\n root.transition = vnode.transition;\n }\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\n setRoot(root);\n }\n else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\n/**\n * dev only\n * In dev mode, template root level comments are rendered, which turns the\n * template into a fragment root, but we need to locate the single element\n * root for attrs and scope id processing.\n */\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, undefined];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n }\n else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\n vnode.type === Comment // potential v-if branch switch\n );\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // Parent component's render function was hot-updated. Since this may have\n // caused the child component's slots content to have changed, we need to\n // force the child to update as well.\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\n hasWarned = true;\n // @ts-ignore `console.info` cannot be null error\n console[console.info ? 'info' : 'log'](`<Suspense> is an experimental feature and its API will likely change.`);\n }\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = toNumber(vnode.props && vnode.props.timeout);\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n if ((process.env.NODE_ENV !== 'production')) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(`suspense.resolve() is called without a pending branch.`);\n }\n if (suspense.isUnmounted) {\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\n }\n }\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(vnode);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\n warn(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`provide() can only be used inside setup().`);\n }\n }\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`injection \"${String(key)}\" not found.`);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\n `supports \\`watch(source, cb, options?) signature.`);\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n if ((process.env.NODE_ENV !== 'production') && !cb) {\n if (immediate !== undefined) {\n warn(`watch() \"immediate\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n if (deep !== undefined) {\n warn(`watch() \"deep\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n }\n const warnInvalidSource = (s) => {\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\n `a reactive object, or an array of these types.`);\n };\n const instance = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n }\n else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\n getter = () => source.map(s => {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\n }\n });\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = NOOP;\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager or sync flush\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n if (flush === 'sync') {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n }\n else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource\n ? new Array(source.length).fill(INITIAL_WATCHER_VALUE)\n : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\n : hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE\n ? undefined\n : (isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE)\n ? []\n : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\n // warn more than one non-comment child\n warn('<transition> can only be used on a single element or component. ' +\n 'Use <transition-group> for lists.');\n break;\n }\n child = c;\n hasFound = true;\n if (!(process.env.NODE_ENV !== 'production'))\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n // check mode\n if ((process.env.NODE_ENV !== 'production') &&\n mode &&\n mode !== 'in-out' &&\n mode !== 'out-in' &&\n mode !== 'default') {\n warn(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of <transition><keep-alive/></transition>, we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n // #6835\n // it also needs to be updated when active is undefined\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of <template v-for>\n const key = parentKey == null\n ? child.key\n : String(parentKey) + String(child.key != null ? child.key : i);\n // handle fragment children case, e.g. v-for\n if (child.type === Fragment) {\n if (child.patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n }\n // comment placeholders should be skipped, e.g. v-if\n else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n // #1126 if a transition children list contains multiple sub fragments, these\n // fragments will be merged into a flat children array. Since each v-for\n // fragment may contain different static bindings inside, we need to de-op\n // these children to force full diffs to ensure correct behavior.\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2 /* PatchFlags.BAIL */;\n }\n }\n return ret;\n}\n\n// implementation, close to no-op\nfunction defineComponent(options) {\n return isFunction(options) ? { setup: options, name: options.name } : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\n suspensible = true, onError: userOnError } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return (pendingRequest ||\n (thisRequest = pendingRequest =\n loader()\n .catch(err => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n }\n else {\n throw err;\n }\n })\n .then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if ((process.env.NODE_ENV !== 'production') && !comp) {\n warn(`Async component loader resolved to undefined. ` +\n `If you are using retry(), make sure to return its return value.`);\n }\n // interop module default\n if (comp &&\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n })));\n };\n return defineComponent({\n name: 'AsyncComponentWrapper',\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n // already resolved\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(err, instance, 13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\n };\n // suspense-controlled or SSR.\n if ((suspensible && instance.suspense) ||\n (isInSSRComponentSetup)) {\n return load()\n .then(comp => {\n return () => createInnerComp(comp, instance);\n })\n .catch(err => {\n onError(err);\n return () => errorComponent\n ? createVNode(errorComponent, {\n error: err\n })\n : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(`Async component timed out after ${timeout}ms.`);\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load()\n .then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n // parent is keep-alive, force update so the loaded component's\n // name is taken into account\n queueJob(instance.parent.update);\n }\n })\n .catch(err => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n }\n else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n }\n else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n // ensure inner component inherits the async wrapper's ref owner\n vnode.ref = ref;\n // pass the custom element callback on to the inner comp\n // and remove it from the async wrapper\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n // KeepAlive communicates with the instantiated renderer via the\n // ctx where the renderer passes in its internals,\n // and the KeepAlive instance exposes activate/deactivate implementations.\n // The whole point of this is to avoid importing KeepAlive directly in the\n // renderer to facilitate tree-shaking.\n const sharedContext = instance.ctx;\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\n // for KeepAlive, we just need to render its children\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = new Map();\n const keys = new Set();\n let current = null;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\n const storageContainer = createElement('div');\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance = vnode.component;\n move(vnode, container, anchor, 0 /* MoveType.ENTER */, parentSuspense);\n // in case props have changed\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\n queuePostRenderEffect(() => {\n instance.isDeactivated = false;\n if (instance.a) {\n invokeArrayFns(instance.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance = vnode.component;\n move(vnode, storageContainer, null, 1 /* MoveType.LEAVE */, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance.da) {\n invokeArrayFns(instance.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n instance.isDeactivated = true;\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n function unmount(vnode) {\n // reset the shapeFlag so it can be properly unmounted\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || cached.type !== current.type) {\n unmount(cached);\n }\n else if (current) {\n // current active instance should no longer be kept-alive.\n // we can't unmount it now but it might be later, so reset its flag now.\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n // prune cache on include/exclude prop change\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\n include && pruneCache(name => matches(include, name));\n exclude && pruneCache(name => !matches(exclude, name));\n }, \n // prune post-render after `current` has been updated\n { flush: 'post', deep: true });\n // cache sub tree after render\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n // fix #1621, the pendingCacheKey could be 0\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach(cached => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type) {\n // current instance will be unmounted as part of keep-alive's unmount\n resetShapeFlag(vnode);\n // but invoke its deactivated hook here\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n }\n else if (!isVNode(rawVNode) ||\n (!(rawVNode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) &&\n !(rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */))) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n // for async components, name check should be based in its loaded\n // inner component if available\n const name = getComponentName(isAsyncWrapper(vnode)\n ? vnode.type.__asyncResolved || {}\n : comp);\n const { include, exclude, max } = props;\n if ((include && (!name || !matches(include, name))) ||\n (exclude && name && matches(exclude, name))) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n // clone vnode if it's reused because we are going to mutate it\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n rawVNode.ssContent = vnode;\n }\n }\n // #1513 it's possible for the returned vnode to be cloned due to attr\n // fallthrough or scopeId, so the vnode here may not be the final vnode\n // that is mounted. Instead of caching it directly, we store the pending\n // key and cache `instance.subTree` (the normalized vnode) in\n // beforeMount/beforeUpdate hooks.\n pendingCacheKey = key;\n if (cachedVNode) {\n // copy over mounted state\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n // recursively update transition hooks on subTree\n setTransitionHooks(vnode, vnode.transition);\n }\n // avoid vnode being mounted as fresh\n vnode.shapeFlag |= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n // make this key the freshest\n keys.delete(key);\n keys.add(key);\n }\n else {\n keys.add(key);\n // prune oldest entry\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n // avoid vnode being unmounted\n vnode.shapeFlag |= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n }\n else if (isString(pattern)) {\n return pattern.split(',').includes(name);\n }\n else if (pattern.test) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\" /* LifecycleHooks.ACTIVATED */, target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\" /* LifecycleHooks.DEACTIVATED */, target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n // cache the deactivate branch check wrapper for injected hooks so the same\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\n // deactivation check\".\n const wrappedHook = hook.__wdc ||\n (hook.__wdc = () => {\n // only fire the hook if the target instance is NOT in a deactivated branch.\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n // In addition to registering it on the target instance, we walk up the parent\n // chain and register it on all ancestor instances that are keep-alive roots.\n // This avoids the need to walk the entire component tree when invoking these\n // hooks, and more importantly, avoids the need to track child components in\n // arrays.\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n // injectHook wraps the original for error handling, so make sure to remove\n // the wrapped version.\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n // bitwise operations to remove keep alive flags\n vnode.shapeFlag &= ~256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n vnode.shapeFlag &= ~512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */ ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n // cache the error handling wrapper for injected hooks so the same hook\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\n // handling\".\n const wrappedHook = hook.__weh ||\n (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n // Set currentInstance during hook invocation.\n // This assumes the hook does not synchronously trigger other hooks, which\n // can only be false when the user does something really funky.\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n }\n else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\n warn(`${apiName} is called when there is no active component instance to be ` +\n `associated with. ` +\n `Lifecycle injection APIs can only be used during execution of setup().` +\n (` If you are using async setup(), make sure to register lifecycle ` +\n `hooks before the first await statement.`\n ));\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* LifecycleHooks.SERVER_PREFETCH */) &&\n injectHook(lifecycle, (...args) => hook(...args), target);\nconst onBeforeMount = createHook(\"bm\" /* LifecycleHooks.BEFORE_MOUNT */);\nconst onMounted = createHook(\"m\" /* LifecycleHooks.MOUNTED */);\nconst onBeforeUpdate = createHook(\"bu\" /* LifecycleHooks.BEFORE_UPDATE */);\nconst onUpdated = createHook(\"u\" /* LifecycleHooks.UPDATED */);\nconst onBeforeUnmount = createHook(\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */);\nconst onUnmounted = createHook(\"um\" /* LifecycleHooks.UNMOUNTED */);\nconst onServerPrefetch = createHook(\"sp\" /* LifecycleHooks.SERVER_PREFETCH */);\nconst onRenderTriggered = createHook(\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */);\nconst onRenderTracked = createHook(\"rtc\" /* LifecycleHooks.RENDER_TRACKED */);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\" /* LifecycleHooks.ERROR_CAPTURED */, hook, target);\n}\n\n/**\nRuntime helper for applying directives to a vnode. Example usage:\n\nconst comp = resolveComponent('comp')\nconst foo = resolveDirective('foo')\nconst bar = resolveDirective('bar')\n\nreturn withDirectives(h(comp), [\n [foo, this.x],\n [bar, this.y]\n])\n*/\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn('Do not use built-in directive ids as custom directive id: ' + name);\n }\n}\n/**\n * Adds directives to a VNode.\n */\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) ||\n internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8 /* ErrorCodes.DIRECTIVE_HOOK */, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst COMPONENTS = 'components';\nconst DIRECTIVES = 'directives';\n/**\n * @private\n */\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\n/**\n * @private\n */\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n }\n else {\n // invalid types will fallthrough to createVNode and raise warning\n return (component || NULL_DYNAMIC_COMPONENT);\n }\n}\n/**\n * @private\n */\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\n// implementation\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n // explicit self name has highest priority\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false /* do not include inferred name to avoid breaking existing code */);\n if (selfName &&\n (selfName === name ||\n selfName === camelize(name) ||\n selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = \n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) ||\n // global registration\n resolve(instance.appContext[type], name);\n if (!res && maybeSelfReference) {\n // fallback to implicit self-reference\n return Component;\n }\n if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {\n const extra = type === COMPONENTS\n ? `\\nIf this is a native custom element, make sure to exclude it from ` +\n `component resolution via compilerOptions.isCustomElement.`\n : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`resolve${capitalize(type.slice(0, -1))} ` +\n `can only be used in render() or setup().`);\n }\n}\nfunction resolve(registry, name) {\n return (registry &&\n (registry[name] ||\n registry[camelize(name)] ||\n registry[capitalize(camelize(name))]));\n}\n\n/**\n * Actual implementation\n */\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = (cache && cache[index]);\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, undefined, cached && cached[i]);\n }\n }\n else if (typeof source === 'number') {\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, undefined, cached && cached[i]);\n }\n }\n else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, undefined, cached && cached[i]));\n }\n else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n }\n else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\n/**\n * Compiler runtime helper for creating dynamic slots object\n * @private\n */\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n // array of dynamic slot generated by <template v-for=\"...\" #[...]>\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n }\n else if (slot) {\n // conditional single slot generated by <template v-if=\"...\" #foo>\n slots[slot.name] = slot.key\n ? (...args) => {\n const res = slot.fn(...args);\n // attach branch key so each conditional branch is considered a\n // different fragment\n if (res)\n res.key = slot.key;\n return res;\n }\n : slot.fn;\n }\n }\n return slots;\n}\n\n/**\n * Compiler runtime helper for rendering `<slot/>`\n * @private\n */\nfunction renderSlot(slots, name, props = {}, \n// this is not a user-facing function, so the fallback is always generated by\n// the compiler and guaranteed to be a function returning an array\nfallback, noSlotted) {\n if (currentRenderingInstance.isCE ||\n (currentRenderingInstance.parent &&\n isAsyncWrapper(currentRenderingInstance.parent) &&\n currentRenderingInstance.parent.isCE)) {\n if (name !== 'default')\n props.name = name;\n return createVNode('slot', props, fallback && fallback());\n }\n let slot = slots[name];\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\n `function. You need to mark this component with $dynamic-slots in the ` +\n `parent template.`);\n slot = () => [];\n }\n // a compiled slot disables block tracking by default to avoid manual\n // invocation interfering with template-based block tracking, but in\n // `renderSlot` we can be sure that it's template-based so we can force\n // enable it.\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, {\n key: props.key ||\n // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n (validSlotContent && validSlotContent.key) ||\n `_${name}`\n }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* SlotFlags.STABLE */\n ? 64 /* PatchFlags.STABLE_FRAGMENT */\n : -2 /* PatchFlags.BAIL */);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + '-s'];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment &&\n !ensureValidVNode(child.children))\n return false;\n return true;\n })\n ? vnodes\n : null;\n}\n\n/**\n * For prefixing keys in v-on=\"obj\" with \"on\"\n * @private\n */\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if ((process.env.NODE_ENV !== 'production') && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key)\n ? `on:${key}`\n : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\n/**\n * #2437 In Vue 3, functional components do not have a public instance proxy but\n * they exist in the internal parent chain. For code that relies on traversing\n * public $parent chains, skip functional ones and go to the parent instead.\n */\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = \n// Move PURE marker to new line to workaround compiler discarding it\n// due to type annotation\n/*#__PURE__*/ extend(Object.create(null), {\n $: i => i,\n $el: i => i.vnode.el,\n $data: i => i.data,\n $props: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.props) : i.props),\n $attrs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.attrs) : i.attrs),\n $slots: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.slots) : i.slots),\n $refs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.refs) : i.refs),\n $parent: i => getPublicInstance(i.parent),\n $root: i => getPublicInstance(i.root),\n $emit: i => i.emit,\n $options: i => (__VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type),\n $forceUpdate: i => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: i => (__VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP)\n});\nconst isReservedPrefix = (key) => key === '_' || key === '$';\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n // for internal formatters to know that this is a Vue instance\n if ((process.env.NODE_ENV !== 'production') && key === '__isVue') {\n return true;\n }\n // data / props / ctx\n // This getter gets called for every property access on the render context\n // during render and is a major hotspot. The most expensive part of this\n // is the multiple hasOwn() calls. It's much faster to do a simple property\n // access on a plain object, so we use an accessCache object (with null\n // prototype) to memoize what access type a key corresponds to.\n let normalizedProps;\n if (key[0] !== '$') {\n const n = accessCache[key];\n if (n !== undefined) {\n switch (n) {\n case 1 /* AccessTypes.SETUP */:\n return setupState[key];\n case 2 /* AccessTypes.DATA */:\n return data[key];\n case 4 /* AccessTypes.CONTEXT */:\n return ctx[key];\n case 3 /* AccessTypes.PROPS */:\n return props[key];\n // default: just fallthrough\n }\n }\n else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* AccessTypes.SETUP */;\n return setupState[key];\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* AccessTypes.DATA */;\n return data[key];\n }\n else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) &&\n hasOwn(normalizedProps, key)) {\n accessCache[key] = 3 /* AccessTypes.PROPS */;\n return props[key];\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* AccessTypes.OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n // public $xxx properties\n if (publicGetter) {\n if (key === '$attrs') {\n track(instance, \"get\" /* TrackOpTypes.GET */, key);\n (process.env.NODE_ENV !== 'production') && markAttrsAccessed();\n }\n return publicGetter(instance);\n }\n else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) &&\n (cssModule = cssModule[key])) {\n return cssModule;\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n // user may set custom properties to `this` that start with `$`\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (\n // global properties\n ((globalProperties = appContext.config.globalProperties),\n hasOwn(globalProperties, key))) {\n {\n return globalProperties[key];\n }\n }\n else if ((process.env.NODE_ENV !== 'production') &&\n currentRenderingInstance &&\n (!isString(key) ||\n // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf('__v') !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(`Property ${JSON.stringify(key)} must be accessed via $data because it starts with a reserved ` +\n `character (\"$\" or \"_\") and is not proxied on the render context.`);\n }\n else if (instance === currentRenderingInstance) {\n warn(`Property ${JSON.stringify(key)} was accessed during render ` +\n `but is not defined on instance.`);\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n }\n else if ((process.env.NODE_ENV !== 'production') &&\n setupState.__isScriptSetup &&\n hasOwn(setupState, key)) {\n warn(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n }\n else if (hasOwn(instance.props, key)) {\n (process.env.NODE_ENV !== 'production') && warn(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === '$' && key.slice(1) in instance) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to mutate public property \"${key}\". ` +\n `Properties starting with $ are reserved and readonly.`);\n return false;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n }\n else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n let normalizedProps;\n return (!!accessCache[key] ||\n (data !== EMPTY_OBJ && hasOwn(data, key)) ||\n hasSetupBinding(setupState, key) ||\n ((normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key)) ||\n hasOwn(ctx, key) ||\n hasOwn(publicPropertiesMap, key) ||\n hasOwn(appContext.config.globalProperties, key));\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n // invalidate key cache of a getter based property #5417\n target._.accessCache[key] = 0;\n }\n else if (hasOwn(descriptor, 'value')) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif ((process.env.NODE_ENV !== 'production') && !false) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn(`Avoid app logic that relies on enumerating keys on a component instance. ` +\n `The keys will be empty in production mode to avoid performance overhead.`);\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /*#__PURE__*/ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n // fast path for unscopables when using `with` block\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== '_' && !isGloballyWhitelisted(key);\n if ((process.env.NODE_ENV !== 'production') && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn(`Property ${JSON.stringify(key)} should not start with _ which is a reserved prefix for Vue internals.`);\n }\n return has;\n }\n});\n// dev only\n// In dev mode, the proxy target exposes the same properties as seen on `this`\n// for easier console inspection. In prod mode it will be an empty object so\n// these properties definitions can be skipped.\nfunction createDevRenderContext(instance) {\n const target = {};\n // expose internal instance for proxy handlers\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n // expose public properties\n Object.keys(publicPropertiesMap).forEach(key => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\n// dev only\nfunction exposePropsOnRenderContext(instance) {\n const { ctx, propsOptions: [propsOptions] } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach(key => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\n// dev only\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach(key => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn(`setup() return property ${JSON.stringify(key)} should not start with \"$\" or \"_\" ` +\n `which are reserved prefixes for Vue internals.`);\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nfunction createDuplicateChecker() {\n const cache = Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n }\n else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n // do not cache property access on public proxy during state initialization\n shouldCacheAccess = false;\n // call beforeCreate first before accessing other options since\n // the hook may mutate resolved options (#2791)\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\" /* LifecycleHooks.BEFORE_CREATE */);\n }\n const { \n // state\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \n // lifecycle\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \n // public API\n expose, inheritAttrs, \n // assets\n components, directives, filters } = options;\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\n if ((process.env.NODE_ENV !== 'production')) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* OptionTypes.PROPS */, key);\n }\n }\n }\n // options initialization order (to be consistent with Vue 2):\n // - props (already done outside of this function)\n // - inject\n // - methods\n // - data (deferred since it relies on `this` access)\n // - computed\n // - watch (deferred since it relies on `this` access)\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n // In dev mode, we use the `createRenderContext` function to define\n // methods to the proxy target, and those are read-only but\n // reconfigurable, so it needs to be redefined here\n if ((process.env.NODE_ENV !== 'production')) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n }\n else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Methods\" /* OptionTypes.METHODS */, key);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\n `Did you reference the function correctly?`);\n }\n }\n }\n if (dataOptions) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\n warn(`The data option must be a function. ` +\n `Plain object usage is no longer supported.`);\n }\n const data = dataOptions.call(publicThis, publicThis);\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\n `intend to perform data fetching before component renders, use ` +\n `async setup() + <Suspense>.`);\n }\n if (!isObject(data)) {\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\n }\n else {\n instance.data = reactive(data);\n if ((process.env.NODE_ENV !== 'production')) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* OptionTypes.DATA */, key);\n // expose data on ctx during dev\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n // state initialization complete at this point - start caching access\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt)\n ? opt.bind(publicThis, publicThis)\n : isFunction(opt.get)\n ? opt.get.bind(publicThis, publicThis)\n : NOOP;\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\n warn(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set)\n ? opt.set.bind(publicThis)\n : (process.env.NODE_ENV !== 'production')\n ? () => {\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\n }\n : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: v => (c.value = v)\n });\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Computed\" /* OptionTypes.COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions)\n ? provideOptions.call(publicThis)\n : provideOptions;\n Reflect.ownKeys(provides).forEach(key => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\" /* LifecycleHooks.CREATED */);\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach(_hook => register(_hook.bind(publicThis)));\n }\n else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach(key => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: val => (publicThis[key] = val)\n });\n });\n }\n else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n // options that are handled when creating the instance but also need to be\n // applied from mixins\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n // asset options.\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if ('default' in opt) {\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\n }\n else {\n injected = inject(opt.from || key);\n }\n }\n else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n // TODO remove the check in 3.3\n if (unwrapRef) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: v => (injected.value = v)\n });\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\n `and no longer needs \\`.value\\` in the next minor release. ` +\n `To opt-in to the new behavior now, ` +\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\n `temporary and will not be needed in the future.)`);\n }\n ctx[key] = injected;\n }\n }\n else {\n ctx[key] = injected;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Inject\" /* OptionTypes.INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(isArray(hook)\n ? hook.map(h => h.bind(instance.proxy))\n : hook.bind(instance.proxy), instance, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes('.')\n ? createPathGetter(publicThis, key)\n : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n }\n else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n }\n else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\n }\n else {\n const handler = isFunction(raw.handler)\n ? raw.handler.bind(publicThis)\n : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch option: \"${key}\"`, raw);\n }\n}\n/**\n * Resolve merged options and cache it on the component.\n * This is done only once per-component since the merging does not involve\n * instances.\n */\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n }\n else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n }\n else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\n }\n for (const key in from) {\n if (asMixin && key === 'expose') {\n (process.env.NODE_ENV !== 'production') &&\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\n `It should only be declared in the base component itself.`);\n }\n else {\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeObjectOptions,\n emits: mergeObjectOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(extend(Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\nisSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance.propsDefaults = Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n // ensure all declared prop keys are present\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = undefined;\n }\n }\n // validation\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n // stateful\n instance.props = isSSR ? props : shallowReactive(props);\n }\n else {\n if (!instance.type.props) {\n // functional w/ optional props, props === attrs\n instance.props = attrs;\n }\n else {\n // functional w/ declared props\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const { props, attrs, vnode: { patchFlag } } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !((process.env.NODE_ENV !== 'production') && isInHmrContext(instance)) &&\n (optimized || patchFlag > 0) &&\n !(patchFlag & 16 /* PatchFlags.FULL_PROPS */)) {\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // Compiler-generated props & no keys change, just set the updated\n // the props.\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n // skip if the prop key is a declared emit event listener\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n // PROPS flag guarantees rawProps to be non-null\n const value = rawProps[key];\n if (options) {\n // attr / props separation was done on init and will be consistent\n // in this code path, so just check if attrs have it.\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\n }\n }\n else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n }\n else {\n // full props update.\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n // in case of dynamic props, check if we need to delete keys from\n // the props object\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps ||\n // for camelCase\n (!hasOwn(rawProps, key) &&\n // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\n if (options) {\n if (rawPrevProps &&\n // for camelCase\n (rawPrevProps[key] !== undefined ||\n // for kebab-case\n rawPrevProps[kebabKey] !== undefined)) {\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\n }\n }\n else {\n delete props[key];\n }\n }\n }\n // in the case of functional component w/o props declaration, props and\n // attrs point to the same object so it should already have been updated.\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps ||\n (!hasOwn(rawProps, key) &&\n (!false ))) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n // trigger updates for $attrs in case it's used in component slots\n if (hasAttrsChanged) {\n trigger(instance, \"set\" /* TriggerOpTypes.SET */, '$attrs');\n }\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n // key, ref are reserved and never passed down\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n // prop option names are camelized during normalization, so to support\n // kebab -> camel conversion here we need to camelize the key.\n let camelKey;\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n }\n else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n }\n else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, 'default');\n // default values\n if (hasDefault && value === undefined) {\n const defaultValue = opt.default;\n if (opt.type !== Function && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n }\n else {\n setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(null, props);\n unsetCurrentInstance();\n }\n }\n else {\n value = defaultValue;\n }\n }\n // boolean casting\n if (opt[0 /* BooleanFlags.shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n }\n else if (opt[1 /* BooleanFlags.shouldCastTrue */] &&\n (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\n warn(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n }\n else if (raw) {\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\n warn(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = (normalized[normalizedKey] =\n isArray(opt) || isFunction(opt) ? { type: opt } : Object.assign({}, opt));\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* BooleanFlags.shouldCast */] = booleanIndex > -1;\n prop[1 /* BooleanFlags.shouldCastTrue */] =\n stringIndex < 0 || booleanIndex < stringIndex;\n // if the prop needs boolean casting or default value\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== '$') {\n return true;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\n// use function string name to check type constructors\n// so that it works across vms / iframes.\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ctor === null ? 'null' : '';\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex(t => isSameType(t, type));\n }\n else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\n/**\n * dev only\n */\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\n }\n}\n/**\n * dev only\n */\nfunction validateProp(name, value, prop, isAbsent) {\n const { type, required, validator } = prop;\n // required!\n if (required && isAbsent) {\n warn('Missing required prop: \"' + name + '\"');\n return;\n }\n // missing but optional\n if (value == null && !prop.required) {\n return;\n }\n // type check\n if (type != null && type !== true) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n // value is valid as long as one of the specified types match\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || '');\n isValid = valid;\n }\n if (!isValid) {\n warn(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n // custom validator\n if (validator && !validator(value)) {\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\n/**\n * dev only\n */\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else if (expectedType === 'null') {\n valid = value === null;\n }\n else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\n/**\n * dev only\n */\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\n/**\n * dev only\n */\nfunction styleValue(value, type) {\n if (type === 'String') {\n return `\"${value}\"`;\n }\n else if (type === 'Number') {\n return `${Number(value)}`;\n }\n else {\n return `${value}`;\n }\n}\n/**\n * dev only\n */\nfunction isExplicable(type) {\n const explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(elem => type.toLowerCase() === elem);\n}\n/**\n * dev only\n */\nfunction isBoolean(...args) {\n return args.some(elem => elem.toLowerCase() === 'boolean');\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\nconst normalizeSlotValue = (value) => isArray(value)\n ? value.map(normalizeVNode)\n : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n // already normalized - #5353\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\n `this will not track dependencies used in the slot. ` +\n `Invoke the slot function inside the render function instead.`);\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n }\n else if (value != null) {\n if ((process.env.NODE_ENV !== 'production') &&\n !(false )) {\n warn(`Non-function value encountered for slot \"${key}\". ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if ((process.env.NODE_ENV !== 'production') &&\n !isKeepAlive(instance.vnode) &&\n !(false )) {\n warn(`Non-function value encountered for default slot. ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n if (instance.vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // users can get the shallow readonly version of the slots object through `this.$slots`,\n // we should avoid the proxy object polluting the slots of the internal instance\n instance.slots = toRaw(children);\n // make compiler marker non-enumerable\n def(children, '_', type);\n }\n else {\n normalizeObjectSlots(children, (instance.slots = {}));\n }\n }\n else {\n instance.slots = {};\n if (children) {\n normalizeVNodeSlots(instance, children);\n }\n }\n def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // compiled slots.\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // Parent was HMR updated so slot content may have changed.\n // force update slots and mark instance for hmr as well\n extend(slots, children);\n }\n else if (optimized && type === 1 /* SlotFlags.STABLE */) {\n // compiled AND stable.\n // no need to update, and skip stale slots removal.\n needDeletionCheck = false;\n }\n else {\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\n // normalization.\n extend(slots, children);\n // #2893\n // when rendering the optimized slots by manually written render function,\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\n // i.e. let the `renderSlot` create the bailed Fragment\n if (!optimized && type === 1 /* SlotFlags.STABLE */) {\n delete slots._;\n }\n }\n }\n else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n }\n else if (children) {\n // non slot object children (direct value) passed to a component\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n // delete stale slots\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n delete slots[key];\n }\n }\n }\n};\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: undefined,\n warnHandler: undefined,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: Object.create(null),\n optionsCache: new WeakMap(),\n propsCache: new WeakMap(),\n emitsCache: new WeakMap()\n };\n}\nlet uid = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = Object.assign({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = new Set();\n let isMounted = false;\n const app = (context.app = {\n _uid: uid++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`app.config cannot be replaced. Modify individual options instead.`);\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\n }\n else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n }\n else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`A plugin must either be a function or an object with an \"install\" ` +\n `function.`);\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixin has already been applied to target app' +\n (mixin.name ? `: ${mixin.name}` : ''));\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixins are only available in builds supporting Options API');\n }\n return app;\n },\n component(name, component) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\n warn(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\n warn(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, isSVG) {\n if (!isMounted) {\n // #5571\n if ((process.env.NODE_ENV !== 'production') && rootContainer.__vue_app__) {\n warn(`There is already an app instance mounted on the host container.\\n` +\n ` If you want to mount another app on the same host container,` +\n ` you need to unmount the previous app by calling \\`app.unmount()\\` first.`);\n }\n const vnode = createVNode(rootComponent, rootProps);\n // store app context on the root VNode.\n // this will be set on the root instance on initial mount.\n vnode.appContext = context;\n // HMR root reload\n if ((process.env.NODE_ENV !== 'production')) {\n context.reload = () => {\n render(cloneVNode(vnode), rootContainer, isSVG);\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n }\n else {\n render(vnode, rootContainer, isSVG);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`App has already been mounted.\\n` +\n `If you want to remount the same app, move your app creation logic ` +\n `into a factory function and create fresh app instances for each ` +\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\n }\n },\n unmount() {\n if (isMounted) {\n render(null, app._container);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\n warn(`App already provides property with key \"${String(key)}\". ` +\n `It will be overwritten with the new value.`);\n }\n context.provides[key] = value;\n return app;\n }\n });\n return app;\n };\n}\n\n/**\n * Function for handling a template ref\n */\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n // when mounting async components, nothing needs to be done,\n // because the template ref is forwarded to inner component\n return;\n }\n const refValue = vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */\n ? getExposeProxy(vnode.component) || vnode.component.proxy\n : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if ((process.env.NODE_ENV !== 'production') && !owner) {\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\n `A vnode with ref must be created inside the render function.`);\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\n const setupState = owner.setupState;\n // dynamic ref changed. unset old ref\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n }\n else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12 /* ErrorCodes.FUNCTION_REF */, [value, refs]);\n }\n else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString\n ? hasOwn(setupState, ref)\n ? setupState[ref]\n : refs[ref]\n : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n }\n else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n }\n else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n }\n else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n }\n else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n }\n else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n }\n else {\n doSet();\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\nconst isComment = (node) => node.nodeType === 8 /* DOMNodeTypes.COMMENT */;\n// Note: hydration is DOM-specific\n// But we have to place it in core due to tight coupling with core - splitting\n// it out creates a ton of unnecessary complexity.\n// Hydration also depends on some renderer internal logic which needs to be\n// passed in via arguments.\nfunction createHydrationFunctions(rendererInternals) {\n const { mt: mountComponent, p: patch, o: { patchProp, createText, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to hydrate existing markup but container is empty. ` +\n `Performing full mount instead.`);\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hasMismatch = false;\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n if (hasMismatch && !false) {\n // this error should show up in production\n console.error(`Hydration completed but contains mismatches.`);\n }\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n const isFragmentStart = isComment(node) && node.data === '[';\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3 /* DOMNodeTypes.TEXT */) {\n // #5728 empty text node inside a slot can cause hydration failure\n // because the server rendered HTML won't contain a text node\n if (vnode.children === '') {\n insert((vnode.el = createText('')), parentNode(node), node);\n nextNode = node;\n }\n else {\n nextNode = onMismatch();\n }\n }\n else {\n if (node.data !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text mismatch:` +\n `\\n- Client: ${JSON.stringify(node.data)}` +\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (domType !== 8 /* DOMNodeTypes.COMMENT */ || isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n // entire template is static but SSRed as a fragment\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 /* DOMNodeTypes.ELEMENT */ || domType === 3 /* DOMNodeTypes.TEXT */) {\n // determine anchor, adopt content\n nextNode = node;\n // if the static vnode has its content stripped during build,\n // adopt it from the server-rendered HTML.\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children +=\n nextNode.nodeType === 1 /* DOMNodeTypes.ELEMENT */\n ? nextNode.outerHTML\n : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n }\n else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n if (domType !== 1 /* DOMNodeTypes.ELEMENT */ ||\n vnode.type.toLowerCase() !==\n node.tagName.toLowerCase()) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n // when setting up the render effect, if the initial vnode already\n // has .el set, the component will perform hydration instead of mount\n // on its sub-tree.\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\n // component may be async, so in the case of fragments we cannot rely\n // on component's rendered output to determine the end of the fragment\n // instead, we do a lookahead to find the end anchor node.\n nextNode = isFragmentStart\n ? locateClosingAsyncAnchor(node)\n : nextSibling(node);\n // #4293 teleport as component root\n if (nextNode &&\n isComment(nextNode) &&\n nextNode.data === 'teleport end') {\n nextNode = nextSibling(nextNode);\n }\n // #3787\n // if component is async, it may get moved / unmounted before its\n // inner component is loaded, so we need to give it a placeholder\n // vnode that matches its adopted DOM.\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode\n ? nextNode.previousSibling\n : container.lastChild;\n }\n else {\n subTree =\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n if (domType !== 8 /* DOMNodeTypes.COMMENT */) {\n nextNode = onMismatch();\n }\n else {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\n }\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\n // #4006 for form elements with non-string v-model value bindings\n // e.g. <option :value=\"obj\">, <input type=\"checkbox\" :true-value=\"1\">\n const forcePatchValue = (type === 'input' && dirs) || type === 'option';\n // skip props & children if this is hoisted static nodes\n // #5405 in dev, always hydrate children for HMR\n if ((process.env.NODE_ENV !== 'production') || forcePatchValue || patchFlag !== -1 /* PatchFlags.HOISTED */) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n if (forcePatchValue ||\n !optimized ||\n patchFlag & (16 /* PatchFlags.FULL_PROPS */ | 32 /* PatchFlags.HYDRATE_EVENTS */)) {\n for (const key in props) {\n if ((forcePatchValue && key.endsWith('value')) ||\n (isOn(key) && !isReservedProp(key))) {\n patchProp(el, key, null, props[key], false, undefined, parentComponent);\n }\n }\n }\n else if (props.onClick) {\n // Fast path for click listeners (which is most often) to avoid\n // iterating through props.\n patchProp(el, 'onClick', null, props.onClick, false, undefined, parentComponent);\n }\n }\n // vnode / directive hooks\n let vnodeHooks;\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n // children\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */ &&\n // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);\n let hasWarned = false;\n while (next) {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\n `server rendered element contains more child nodes than client vdom.`);\n hasWarned = true;\n }\n // The SSRed DOM contains more nodes than it should. Remove them.\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n }\n else if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n if (el.textContent !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\n `- Client: ${el.textContent}\\n` +\n `- Server: ${vnode.children}`);\n el.textContent = vnode.children;\n }\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized\n ? children[i]\n : (children[i] = normalizeVNode(children[i]));\n if (node) {\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n else if (vnode.type === Text && !vnode.children) {\n continue;\n }\n else {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\n `server rendered element contains fewer child nodes than client vdom.`);\n hasWarned = true;\n }\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);\n if (next && isComment(next) && next.data === ']') {\n return nextSibling((vnode.anchor = next));\n }\n else {\n // fragment didn't hydrate successfully, since we didn't get a end anchor\n // back. This should have led to node/children mismatch warnings.\n hasMismatch = true;\n // since the anchor is missing, we need to create one and insert it\n insert((vnode.anchor = createComment(`]`)), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* DOMNodeTypes.TEXT */\n ? `(text)`\n : isComment(node) && node.data === '['\n ? `(start of fragment)`\n : ``);\n vnode.el = null;\n if (isFragment) {\n // remove excessive fragment nodes\n const end = locateClosingAsyncAnchor(node);\n while (true) {\n const next = nextSibling(node);\n if (next && next !== end) {\n remove(next);\n }\n else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n return next;\n };\n const locateClosingAsyncAnchor = (node) => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === '[')\n match++;\n if (node.data === ']') {\n if (match === 0) {\n return nextSibling(node);\n }\n else {\n match--;\n }\n }\n }\n }\n return node;\n };\n return [hydrate, hydrateNode];\n}\n\n/* eslint-disable no-restricted-globals */\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\n\n/**\n * This is only called in esm-bundler builds.\n * It is called when a renderer is created, in `baseCreateRenderer` so that\n * importing runtime-core is side-effects free.\n *\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if ((process.env.NODE_ENV !== 'production') && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(`Feature flag${multi ? `s` : ``} ${needWarn.join(', ')} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, ` +\n `which expects these compile-time feature flags to be globally injected ` +\n `via the bundler config in order to get better tree-shaking in the ` +\n `production bundle.\\n\\n` +\n `For more details, see https://link.vuejs.org/feature-flags.`);\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense\n ;\n/**\n * The createRenderer function accepts two generic arguments:\n * HostNode and HostElement, corresponding to Node and Element types in the\n * host environment. For example, for runtime-dom, HostNode would be the DOM\n * `Node` interface and HostElement would be the DOM `Element` interface.\n *\n * Custom renderers can pass in the platform specific types like this:\n *\n * ``` js\n * const { render, createApp } = createRenderer<Node, Element>({\n * patchProp,\n * ...nodeOps\n * })\n * ```\n */\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\n// Separate API for creating hydration-enabled renderer.\n// Hydration logic is only used when calling this function, making it\n// tree-shakable.\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\n// implementation\nfunction baseCreateRenderer(options, createHydrationFns) {\n // compile-time feature flags check\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options;\n // Note: functions inside this closure should use `const xxx = () => {}`\n // style in order to prevent being inlined by minifiers.\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = (process.env.NODE_ENV !== 'production') && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n // patching & not same type, unmount old tree\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, isSVG);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n patchStaticNode(n1, n2, container, isSVG);\n }\n break;\n case Fragment:\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid VNode type:', type, `(${typeof type})`);\n }\n }\n // set ref\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\n }\n else {\n const el = (n2.el = n1.el);\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\n }\n else {\n // there's no support for dynamic comments\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, isSVG) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n };\n /**\n * Dev / HMR only\n */\n const patchStaticNode = (n1, n2, container, isSVG) => {\n // static nodes are only patched during dev for HMR\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n // remove existing\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\n }\n else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n isSVG = isSVG || n2.type === 'svg';\n if (n1 == null) {\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { type, props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n // mount children first, since some props may rely on child content\n // being already rendered, e.g. `<select value>`\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(el, vnode.children);\n }\n else if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== 'foreignObject', slotScopeIds, optimized);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n for (const key in props) {\n if (key !== 'value' && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n /**\n * Special case for setting value on DOM elements:\n * - it can be order-sensitive (e.g. should be set *after* min/max, #2325, #4024)\n * - it needs to be forced (#1471)\n * #2353 proposes adding another renderer option to configure this, but\n * the properties affects are so finite it is worth special casing it\n * here to reduce the complexity. (Special casing it also should not\n * affect non-DOM renderers)\n */\n if ('value' in props) {\n hostPatchProp(el, 'value', null, props.value);\n }\n if ((vnodeHook = props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n // scopeId\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n Object.defineProperty(el, '__vnode', {\n value: vnode,\n enumerable: false\n });\n Object.defineProperty(el, '__vueParentComponent', {\n value: parentComponent,\n enumerable: false\n });\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n // #1583 For inside suspense + suspense not resolved case, enter hook should call when suspense resolved\n // #1689 For inside suspense + suspense resolved case, just call it\n const needCallTransitionHooks = (!parentSuspense || (parentSuspense && !parentSuspense.pendingBranch)) &&\n transition &&\n !transition.persisted;\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) ||\n needCallTransitionHooks ||\n dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if ((process.env.NODE_ENV !== 'production') &&\n subTree.patchFlag > 0 &&\n subTree.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n subTree =\n filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = (children[i] = optimized\n ? cloneIfMounted(children[i])\n : normalizeVNode(children[i]));\n patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const el = (n2.el = n1.el);\n let { patchFlag, dynamicChildren, dirs } = n2;\n // #1426 take the old vnode's patch flag into account since user may clone a\n // compiler-generated vnode, which de-opts to FULL_PROPS\n patchFlag |= n1.patchFlag & 16 /* PatchFlags.FULL_PROPS */;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n // disable recurse in beforeUpdate hooks\n parentComponent && toggleRecurse(parentComponent, false);\n if ((vnodeHook = newProps.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate');\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // HMR updated, force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n const areChildrenSVG = isSVG && n2.type !== 'foreignObject';\n if (dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n }\n else if (!optimized) {\n // full diff\n patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n }\n if (patchFlag > 0) {\n // the presence of a patchFlag means this element's render code was\n // generated by the compiler and can take the fast path.\n // in this path old node and new node are guaranteed to have the same shape\n // (i.e. at the exact same position in the source template)\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n // element props contain dynamic keys, full diff needed\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n else {\n // class\n // this flag is matched when the element has dynamic class bindings.\n if (patchFlag & 2 /* PatchFlags.CLASS */) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, 'class', null, newProps.class, isSVG);\n }\n }\n // style\n // this flag is matched when the element has dynamic style bindings\n if (patchFlag & 4 /* PatchFlags.STYLE */) {\n hostPatchProp(el, 'style', oldProps.style, newProps.style, isSVG);\n }\n // props\n // This flag is matched when the element has dynamic prop/attr bindings\n // other than class and style. The keys of dynamic prop/attrs are saved for\n // faster iteration.\n // Note dynamic keys like :[foo]=\"bar\" will cause this optimization to\n // bail out and go through a full diff because we need to unset the old key\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // if the flag is present then dynamicProps must be non-null\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n // #1471 force patch value\n if (next !== prev || key === 'value') {\n hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n }\n // text\n // This flag is matched when the element has only dynamic text children.\n if (patchFlag & 1 /* PatchFlags.TEXT */) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n }\n else if (!optimized && dynamicChildren == null) {\n // unoptimized, full diff\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, 'updated');\n }, parentSuspense);\n }\n };\n // The fast path for blocks.\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n // Determine the container (parent element) for the patch.\n const container = \n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el &&\n // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment ||\n // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) ||\n // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 64 /* ShapeFlags.TELEPORT */))\n ? hostParentNode(oldVNode.el)\n : // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer;\n patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n for (const key in newProps) {\n // empty string is not valid prop\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n // defer patching value\n if (next !== prev && key !== 'value') {\n hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if ('value' in newProps) {\n hostPatchProp(el, 'value', oldProps.value, newProps.value);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const fragmentStartAnchor = (n2.el = n1 ? n1.el : hostCreateText(''));\n const fragmentEndAnchor = (n2.anchor = n1 ? n1.anchor : hostCreateText(''));\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if ((process.env.NODE_ENV !== 'production') &&\n // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */)) {\n // HMR updated / Dev root fragment (w/ comments), force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n // check if this is a slot fragment with :slotted scope ids\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n // a fragment can only have array children\n // since they are either generated by the compiler, or implicitly created\n // from arrays.\n mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n if (patchFlag > 0 &&\n patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */ &&\n dynamicChildren &&\n // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n // a stable fragment (template root or <template v-for>) doesn't need to\n // patch children order, but it may contain dynamicChildren.\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null ||\n (parentComponent && n2 === parentComponent.subTree)) {\n traverseStaticChildren(n1, n2, true /* shallow */);\n }\n }\n else {\n // keyed / unkeyed, or manual fragments.\n // for keyed & unkeyed, since they are compiler generated from v-for,\n // each child is guaranteed to be a block so the fragment will never\n // have dynamicChildren.\n patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {\n parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n }\n else {\n mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n }\n }\n else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense));\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n // inject renderer internals for keepAlive\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n // resolve props and slots for setup context\n {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `init`);\n }\n }\n // setup() is async. This component relies on async logic to be resolved\n // before proceeding\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n // Give it a placeholder if this is not hydration\n // TODO handle self-defined fallback\n if (!initialVNode.el) {\n const placeholder = (instance.subTree = createVNode(Comment));\n processCommentNode(null, placeholder, container, anchor);\n }\n return;\n }\n setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = (n2.component = n1.component);\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep &&\n !instance.asyncResolved) {\n // async & still pending - just update props and slots\n // since the component's reactive effect for render isn't set-up yet\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n return;\n }\n else {\n // normal update\n instance.next = n2;\n // in case the child component is also queued, remove it to avoid\n // double updating the same child component in the same flush.\n invalidateJob(instance.update);\n // instance.update is the reactive effect.\n instance.update();\n }\n }\n else {\n // no update needed. just copy over properties\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n // beforeMount hook\n if (bm) {\n invokeArrayFns(bm);\n }\n // onVnodeBeforeMount\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n // vnode has adopted host node - perform hydration instead of mount.\n const hydrateSubTree = () => {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(el, instance.subTree, instance, parentSuspense, null);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n // note: we are moving the render call into an async callback,\n // which means it won't track dependencies - but it's ok because\n // a server-rendered async wrapper is already in resolved state\n // and it will never need to change.\n () => !instance.isUnmounted && hydrateSubTree());\n }\n else {\n hydrateSubTree();\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const subTree = (instance.subTree = renderComponentRoot(instance));\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(null, subTree, container, anchor, instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n // mounted hook\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n // onVnodeMounted\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n }\n // activated hook for keep-alive roots.\n // #1742 activated hook must be accessed after first render\n // since the hook may be injected by a child keep-alive\n if (initialVNode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */ ||\n (parent &&\n isAsyncWrapper(parent.vnode) &&\n parent.vnode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */)) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n // #2458: deference mount-only object parameters to prevent memleaks\n initialVNode = container = anchor = null;\n }\n else {\n // updateComponent\n // This is triggered by mutation of component's own state (next: null)\n // OR parent calling processComponent (next: VNode)\n let { next, bu, u, parent, vnode } = instance;\n let originNext = next;\n let vnodeHook;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(next || instance.vnode);\n }\n // Disallow component effect recursion during pre-lifecycle hooks.\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n else {\n next = vnode;\n }\n // beforeUpdate hook\n if (bu) {\n invokeArrayFns(bu);\n }\n // onVnodeBeforeUpdate\n if ((vnodeHook = next.props && next.props.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n // render\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(prevTree, nextTree, \n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el), \n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree), instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n // self-triggered update. In case of HOC, update parent component\n // vnode el. HOC is indicated by parent instance's subTree pointing\n // to child component's vnode\n updateHOCHostEl(instance, nextTree.el);\n }\n // updated hook\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n // onVnodeUpdated\n if ((vnodeHook = next.props && next.props.onVnodeUpdated)) {\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n }\n };\n // create reactive effect for rendering\n const effect = (instance.effect = new ReactiveEffect(componentUpdateFn, () => queueJob(update), instance.scope // track it in component's effect scope\n ));\n const update = (instance.update = () => effect.run());\n update.id = instance.uid;\n // allowRecurse\n // #1801, #2043 component render effects should allow recursive updates\n toggleRecurse(instance, true);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = instance.rtc\n ? e => invokeArrayFns(instance.rtc, e)\n : void 0;\n effect.onTrigger = instance.rtg\n ? e => invokeArrayFns(instance.rtg, e)\n : void 0;\n update.ownerInstance = instance;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n // props update may have triggered pre-flush watchers.\n // flush them before the render update.\n flushPreFlushCbs();\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n // fast path\n if (patchFlag > 0) {\n if (patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */) {\n // this could be either fully-keyed or mixed (some keyed some not)\n // presence of patchFlag means children are guaranteed to be arrays\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n else if (patchFlag & 256 /* PatchFlags.UNKEYED_FRAGMENT */) {\n // unkeyed\n patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n }\n // children has 3 possibilities: text, array or no children.\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n // text children fast path\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n }\n else {\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // prev children was array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // two arrays, cannot assume anything, do full diff\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n // no new children, just unmount old\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n }\n else {\n // prev children was text OR null\n // new children is array OR null\n if (prevShapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(container, '');\n }\n // mount new if array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n if (oldLength > newLength) {\n // remove old\n unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n }\n else {\n // mount new\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n }\n };\n // can be all-keyed or mixed\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n i++;\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = (c2[e2] = optimized\n ? cloneIfMounted(c2[e2])\n : normalizeVNode(c2[e2]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n e1--;\n e2--;\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(null, (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i])), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n i++;\n }\n }\n }\n // 4. common sequence + unmount\n // (a b) c\n // (a b)\n // i = 2, e1 = 2, e2 = 1\n // a (b c)\n // (b c)\n // i = 0, e1 = 0, e2 = -1\n else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n }\n // 5. unknown sequence\n // [i ... e1 + 1]: a b [c d e] f g\n // [i ... e2 + 1]: a b [e d c h] f g\n // i = 2, e1 = 4, e2 = 5\n else {\n const s1 = i; // prev starting index\n const s2 = i; // next starting index\n // 5.1 build key:index map for newChildren\n const keyToNewIndexMap = new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (nextChild.key != null) {\n if ((process.env.NODE_ENV !== 'production') && keyToNewIndexMap.has(nextChild.key)) {\n warn(`Duplicate keys found during update:`, JSON.stringify(nextChild.key), `Make sure keys are unique.`);\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n // 5.2 loop through old children left to be patched and try to patch\n // matching nodes & remove nodes that are no longer present\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n // used to track whether any node has moved\n let maxNewIndexSoFar = 0;\n // works as Map<newIndex, oldIndex>\n // Note that oldIndex is offset by +1\n // and oldIndex = 0 is a special value indicating the new node has\n // no corresponding old node.\n // used for determining longest stable subsequence\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n // all new children have been patched so this can only be a removal\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n }\n else {\n // key-less node, try to locate a key-less node of the same type\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 &&\n isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === undefined) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n }\n else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n patched++;\n }\n }\n // 5.3 move and mount\n // generate longest stable subsequence only when nodes have moved\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n // looping backwards so that we can use last patched node as anchor\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n // mount new\n patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (moved) {\n // move if:\n // There is no stable subsequence (e.g. a reverse)\n // OR current node is not among the stable sequence\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2 /* MoveType.REORDER */);\n }\n else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n // single nodes\n const needTransition = moveType !== 2 /* MoveType.REORDER */ &&\n shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition;\n if (needTransition) {\n if (moveType === 0 /* MoveType.ENTER */) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n }\n else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove, performLeave);\n }\n else {\n performLeave();\n }\n }\n }\n else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n // unset ref\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 /* ShapeFlags.ELEMENT */ && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n }\n else {\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeUnmount');\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n }\n else if (dynamicChildren &&\n // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment ||\n (patchFlag > 0 && patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */))) {\n // fast path for block nodes: only need to unmount dynamic children.\n unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n }\n else if ((type === Fragment &&\n patchFlag &\n (128 /* PatchFlags.KEYED_FRAGMENT */ | 256 /* PatchFlags.UNKEYED_FRAGMENT */)) ||\n (!optimized && shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */)) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if ((shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeUnmounted)) ||\n shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs &&\n invokeDirectiveHook(vnode, null, parentComponent, 'unmounted');\n }, parentSuspense);\n }\n };\n const remove = vnode => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if ((process.env.NODE_ENV !== 'production') &&\n vnode.patchFlag > 0 &&\n vnode.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */ &&\n transition &&\n !transition.persisted) {\n vnode.children.forEach(child => {\n if (child.type === Comment) {\n hostRemove(child.el);\n }\n else {\n remove(child);\n }\n });\n }\n else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition &&\n !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n }\n else {\n performLeave();\n }\n }\n else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n // For fragments, directly remove all contained DOM nodes.\n // (fragment child nodes cannot have transition)\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, update, subTree, um } = instance;\n // beforeUnmount hook\n if (bum) {\n invokeArrayFns(bum);\n }\n // stop effects in component scope\n scope.stop();\n // update may be null if a component is unmounted before its async\n // setup has resolved.\n if (update) {\n // so that scheduler will no longer invoke it\n update.active = false;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n // unmounted hook\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n // A component with async dep inside a pending suspense is unmounted before\n // its async dep resolves. This should remove the dep from the suspense, and\n // cause the suspense to resolve immediately if that was the last dep.\n if (parentSuspense &&\n parentSuspense.pendingBranch &&\n !parentSuspense.isUnmounted &&\n instance.asyncDep &&\n !instance.asyncResolved &&\n instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = vnode => {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n return vnode.suspense.next();\n }\n return hostNextSibling((vnode.anchor || vnode.el));\n };\n const render = (vnode, container, isSVG) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n }\n else {\n patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n }\n flushPreFlushCbs();\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(internals);\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\n/**\n * #1156\n * When a component is HMR-enabled, we need to make sure that all static nodes\n * inside a block also inherit the DOM element from the previous tree so that\n * HMR updates (which are full updates) can retrieve the element for patching.\n *\n * #2080\n * Inside keyed `template` fragment static children, if a fragment is moved,\n * the children will always be moved. Therefore, in order to ensure correct move\n * position, el should be inherited from previous nodes.\n */\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n // this is only called in the optimized path so array children are\n // guaranteed to be vnodes\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32 /* PatchFlags.HYDRATE_EVENTS */) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n // #6852 also inherit for text nodes\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n // also inherit for comment nodes, but not placeholders (e.g. v-if which\n // would have received .el during block patch)\n if ((process.env.NODE_ENV !== 'production') && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === '');\nconst isTargetSVG = (target) => typeof SVGElement !== 'undefined' && target instanceof SVGElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Current renderer does not support string target for Teleports. ` +\n `(missing querySelector renderer option)`);\n return null;\n }\n else {\n const target = select(targetSelector);\n if (!target) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Failed to locate Teleport target with selector \"${targetSelector}\". ` +\n `Note the target element must exist before the component is mounted - ` +\n `i.e. the target cannot be rendered by the component itself, and ` +\n `ideally should be outside of the entire Vue component tree.`);\n }\n return target;\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !targetSelector && !isTeleportDisabled(props)) {\n warn(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {\n const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n // #3302\n // HMR updated, force full diff\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n // insert anchors in the main view\n const placeholder = (n2.el = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport start')\n : createText(''));\n const mainAnchor = (n2.anchor = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport end')\n : createText(''));\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const target = (n2.target = resolveTarget(n2.props, querySelector));\n const targetAnchor = (n2.targetAnchor = createText(''));\n if (target) {\n insert(targetAnchor, target);\n // #2652 we could be teleporting from a non-SVG tree into an SVG tree\n isSVG = isSVG || isTargetSVG(target);\n }\n else if ((process.env.NODE_ENV !== 'production') && !disabled) {\n warn('Invalid Teleport target on mount:', target, `(${typeof target})`);\n }\n const mount = (container, anchor) => {\n // Teleport *always* has Array children. This is enforced in both the\n // compiler and vnode children normalization.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n }\n else if (target) {\n mount(target, targetAnchor);\n }\n }\n else {\n // update content\n n2.el = n1.el;\n const mainAnchor = (n2.anchor = n1.anchor);\n const target = (n2.target = n1.target);\n const targetAnchor = (n2.targetAnchor = n1.targetAnchor);\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n isSVG = isSVG || isTargetSVG(target);\n if (dynamicChildren) {\n // fast path when the teleport happens to be a block root\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, isSVG, slotScopeIds);\n // even in block tree mode we need to make sure all root-level nodes\n // in the teleport inherit previous DOM references so that they can\n // be moved in future patches.\n traverseStaticChildren(n1, n2, true);\n }\n else if (!optimized) {\n patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, false);\n }\n if (disabled) {\n if (!wasDisabled) {\n // enabled -> disabled\n // move into main container\n moveTeleport(n2, container, mainAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n else {\n // target changed\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = (n2.target = resolveTarget(n2.props, querySelector));\n if (nextTarget) {\n moveTeleport(n2, nextTarget, null, internals, 0 /* TeleportMoveTypes.TARGET_CHANGE */);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid Teleport target on update:', target, `(${typeof target})`);\n }\n }\n else if (wasDisabled) {\n // disabled -> enabled\n // move into teleport target\n moveTeleport(n2, target, targetAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n }\n updateCssVars(n2);\n },\n remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n if (target) {\n hostRemove(targetAnchor);\n }\n // an unmounted teleport should always remove its children if not disabled\n if (doRemove || !isTeleportDisabled(props)) {\n hostRemove(anchor);\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(child, parentComponent, parentSuspense, true, !!child.dynamicChildren);\n }\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* TeleportMoveTypes.REORDER */) {\n // move target anchor if this is a target change.\n if (moveType === 0 /* TeleportMoveTypes.TARGET_CHANGE */) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2 /* TeleportMoveTypes.REORDER */;\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n // if this is a re-order and teleport is enabled (content is in target)\n // do not move children. So the opposite is: only move children if this\n // is not a reorder, or the teleport is disabled\n if (!isReorder || isTeleportDisabled(props)) {\n // Teleport has either Array children or no children.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, parentAnchor, 2 /* MoveType.REORDER */);\n }\n }\n }\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector } }, hydrateChildren) {\n const target = (vnode.target = resolveTarget(vnode.props, querySelector));\n if (target) {\n // if multiple teleports rendered to the same target element, we need to\n // pick up from where the last teleport finished instead of the first node\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);\n vnode.targetAnchor = targetNode;\n }\n else {\n vnode.anchor = nextSibling(node);\n // lookahead until we find the target anchor\n // we cannot rely on return value of hydrateChildren() because there\n // could be nested teleports\n let targetAnchor = targetNode;\n while (targetAnchor) {\n targetAnchor = nextSibling(targetAnchor);\n if (targetAnchor &&\n targetAnchor.nodeType === 8 &&\n targetAnchor.data === 'teleport anchor') {\n vnode.targetAnchor = targetAnchor;\n target._lpa =\n vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n hydrateChildren(targetNode, vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\n// Force-casted public typing for h and TSX props inference\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n // presence of .ut method indicates owner component uses css vars.\n // code path here can assume browser environment.\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.children[0].el;\n while (node !== vnode.targetAnchor) {\n if (node.nodeType === 1)\n node.setAttribute('data-v-owner', ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\n\nconst Fragment = Symbol((process.env.NODE_ENV !== 'production') ? 'Fragment' : undefined);\nconst Text = Symbol((process.env.NODE_ENV !== 'production') ? 'Text' : undefined);\nconst Comment = Symbol((process.env.NODE_ENV !== 'production') ? 'Comment' : undefined);\nconst Static = Symbol((process.env.NODE_ENV !== 'production') ? 'Static' : undefined);\n// Since v-if and v-for are the two possible ways node structure can dynamically\n// change, once we consider v-if branches and each v-for fragment a block, we\n// can divide a template into nested blocks, and within each block the node\n// structure would be stable. This allows us to skip most children diffing\n// and only worry about the dynamic nodes (indicated by patch flags).\nconst blockStack = [];\nlet currentBlock = null;\n/**\n * Open a block.\n * This must be called before `createBlock`. It cannot be part of `createBlock`\n * because the children of the block are evaluated before `createBlock` itself\n * is called. The generated code typically looks like this:\n *\n * ```js\n * function render() {\n * return (openBlock(),createBlock('div', null, [...]))\n * }\n * ```\n * disableTracking is true when creating a v-for fragment block, since a v-for\n * fragment always diffs its children.\n *\n * @private\n */\nfunction openBlock(disableTracking = false) {\n blockStack.push((currentBlock = disableTracking ? null : []));\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\n// Whether we should be tracking dynamic child nodes inside a block.\n// Only tracks when this value is > 0\n// We are not using a simple boolean because this value may need to be\n// incremented/decremented by nested usage of v-once (see below)\nlet isBlockTreeEnabled = 1;\n/**\n * Block tracking sometimes needs to be disabled, for example during the\n * creation of a tree that needs to be cached by v-once. The compiler generates\n * code like this:\n *\n * ``` js\n * _cache[1] || (\n * setBlockTracking(-1),\n * _cache[1] = createVNode(...),\n * setBlockTracking(1),\n * _cache[1]\n * )\n * ```\n *\n * @private\n */\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n // save current block children on the block vnode\n vnode.dynamicChildren =\n isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n // close block\n closeBlock();\n // a block is always going to be patched, so track it as a child of its\n // parent block\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\n/**\n * @private\n */\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true /* isBlock */));\n}\n/**\n * Create a block root vnode. Takes the same exact arguments as `createVNode`.\n * A block root keeps track of dynamic nodes within the block in the\n * `dynamicChildren` array.\n *\n * @private\n */\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */));\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if ((process.env.NODE_ENV !== 'production') &&\n n2.shapeFlag & 6 /* ShapeFlags.COMPONENT */ &&\n hmrDirtyComponents.has(n2.type)) {\n // #7042, ensure the vnode being unmounted during HMR\n // bitwise operations to remove keep alive flags\n n1.shapeFlag &= ~256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n n2.shapeFlag &= ~512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n // HMR only: if the component has been hot-updated, force a reload.\n return false;\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\n/**\n * Internal API for registering an arguments transform for createVNode\n * used for creating stubs in the test-utils\n * It is *internal* but needs to be exposed for test-utils to pick up proper\n * typings\n */\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(...(vnodeArgsTransformer\n ? vnodeArgsTransformer(args, currentRenderingInstance)\n : args));\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n return (ref != null\n ? isString(ref) || isRef(ref) || isFunction(ref)\n ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for }\n : ref\n : null);\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1 /* ShapeFlags.ELEMENT */, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n // normalize suspense children\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.normalize(vnode);\n }\n }\n else if (children) {\n // compiled element vnode - if children is passed, only possible types are\n // string or Array.\n vnode.shapeFlag |= isString(children)\n ? 8 /* ShapeFlags.TEXT_CHILDREN */\n : 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n // validate key\n if ((process.env.NODE_ENV !== 'production') && vnode.key !== vnode.key) {\n warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n // track vnode for block tree\n if (isBlockTreeEnabled > 0 &&\n // avoid a block node from tracking itself\n !isBlockNode &&\n // has current parent block\n currentBlock &&\n // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6 /* ShapeFlags.COMPONENT */) &&\n // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32 /* PatchFlags.HYDRATE_EVENTS */) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = ((process.env.NODE_ENV !== 'production') ? createVNodeWithArgsTransform : _createVNode);\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if ((process.env.NODE_ENV !== 'production') && !type) {\n warn(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n // createVNode receiving an existing vnode. This happens in cases like\n // <component :is=\"vnode\"/>\n // #2078 make sure to merge refs during the clone instead of overwriting it\n const cloned = cloneVNode(type, props, true /* mergeRef: true */);\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n }\n else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2 /* PatchFlags.BAIL */;\n return cloned;\n }\n // class component normalization.\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n // class & style normalization.\n if (props) {\n // for reactive or proxy objects, we need to clone it to enable mutation.\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n // reactive state objects need to be cloned since they are likely to be\n // mutated\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n // encode the vnode type information into a bitmap\n const shapeFlag = isString(type)\n ? 1 /* ShapeFlags.ELEMENT */\n : isSuspense(type)\n ? 128 /* ShapeFlags.SUSPENSE */\n : isTeleport(type)\n ? 64 /* ShapeFlags.TELEPORT */\n : isObject(type)\n ? 4 /* ShapeFlags.STATEFUL_COMPONENT */\n : isFunction(type)\n ? 2 /* ShapeFlags.FUNCTIONAL_COMPONENT */\n : 0;\n if ((process.env.NODE_ENV !== 'production') && shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */ && isProxy(type)) {\n type = toRaw(type);\n warn(`Vue received a Component which was made a reactive object. This can ` +\n `lead to unnecessary performance overhead, and should be avoided by ` +\n `marking the component with \\`markRaw\\` or using \\`shallowRef\\` ` +\n `instead of \\`ref\\`.`, `\\nComponent that was made reactive: `, type);\n }\n return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props\n ? extend({}, props)\n : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n // This is intentionally NOT using spread or extend to avoid the runtime\n // key enumeration cost.\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref\n ? // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref\n ? isArray(ref)\n ? ref.concat(normalizeRef(extraProps))\n : [ref, normalizeRef(extraProps)]\n : normalizeRef(extraProps)\n : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: (process.env.NODE_ENV !== 'production') && patchFlag === -1 /* PatchFlags.HOISTED */ && isArray(children)\n ? children.map(deepCloneVNode)\n : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment\n ? patchFlag === -1 // hoisted node\n ? 16 /* PatchFlags.FULL_PROPS */\n : patchFlag | 16 /* PatchFlags.FULL_PROPS */\n : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx\n };\n return cloned;\n}\n/**\n * Dev only, for HMR of hoisted vnodes reused in v-for\n * https://github.com/vitejs/vite/issues/2022\n */\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\n/**\n * @private\n */\nfunction createTextVNode(text = ' ', flag = 0) {\n return createVNode(Text, null, text, flag);\n}\n/**\n * @private\n */\nfunction createStaticVNode(content, numberOfNodes) {\n // A static vnode can contain multiple stringified elements, and the number\n // of elements is necessary for hydration.\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\n/**\n * @private\n */\nfunction createCommentVNode(text = '', \n// when used as the v-else branch, the comment node must be created as a\n// block to ensure correct updates.\nasBlock = false) {\n return asBlock\n ? (openBlock(), createBlock(Comment, null, text))\n : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === 'boolean') {\n // empty placeholder\n return createVNode(Comment);\n }\n else if (isArray(child)) {\n // fragment\n return createVNode(Fragment, null, \n // #3666, avoid reference pollution when reusing vnode\n child.slice());\n }\n else if (typeof child === 'object') {\n // already vnode, this should be the most common since compiled templates\n // always produce all-vnode children arrays\n return cloneIfMounted(child);\n }\n else {\n // strings and numbers\n return createVNode(Text, null, String(child));\n }\n}\n// optimized normalization for template-compiled render fns\nfunction cloneIfMounted(child) {\n return (child.el === null && child.patchFlag !== -1 /* PatchFlags.HOISTED */) ||\n child.memo\n ? child\n : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n }\n else if (isArray(children)) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n else if (typeof children === 'object') {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 64 /* ShapeFlags.TELEPORT */)) {\n // Normalize slot to plain children for plain element and Teleport\n const slot = children.default;\n if (slot) {\n // _c marker is added by withCtx() indicating this is a compiled slot\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n }\n else {\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n }\n else if (slotFlag === 3 /* SlotFlags.FORWARDED */ && currentRenderingInstance) {\n // a child component receives forwarded slots from the parent.\n // its slot type is determined by its parent's slot type.\n if (currentRenderingInstance.slots._ === 1 /* SlotFlags.STABLE */) {\n children._ = 1 /* SlotFlags.STABLE */;\n }\n else {\n children._ = 2 /* SlotFlags.DYNAMIC */;\n vnode.patchFlag |= 1024 /* PatchFlags.DYNAMIC_SLOTS */;\n }\n }\n }\n }\n else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n }\n else {\n children = String(children);\n // force teleport children to array so it can be moved around\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n children = [createTextVNode(children)];\n }\n else {\n type = 8 /* ShapeFlags.TEXT_CHILDREN */;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === 'class') {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n }\n else if (key === 'style') {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n }\n else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming &&\n existing !== incoming &&\n !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing\n ? [].concat(existing, incoming)\n : incoming;\n }\n }\n else if (key !== '') {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7 /* ErrorCodes.VNODE_HOOK */, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n // inherit parent app context - or - if root, adopt from root vnode\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid$1++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n next: null,\n subTree: null,\n effect: null,\n update: null,\n scope: new EffectScope(true /* detached */),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if ((process.env.NODE_ENV !== 'production')) {\n instance.ctx = createDevRenderContext(instance);\n }\n else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit$1.bind(null, instance);\n // apply custom element special handling\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance) => {\n currentInstance = instance;\n instance.scope.on();\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n currentInstance = null;\n};\nconst isBuiltInTag = /*#__PURE__*/ makeMap('slot,component');\nfunction validateComponentName(name, config) {\n const appIsNativeTag = config.isNativeTag || NO;\n if (isBuiltInTag(name) || appIsNativeTag(name)) {\n warn('Do not use built-in or reserved HTML elements as component id: ' + name);\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isInSSRComponentSetup = isSSR;\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children);\n const setupResult = isStateful\n ? setupStatefulComponent(instance, isSSR)\n : undefined;\n isInSSRComponentSetup = false;\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if ((process.env.NODE_ENV !== 'production')) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn(`\"compilerOptions\" is only supported when using a build of Vue that ` +\n `includes the runtime compiler. Since you are using a runtime-only ` +\n `build, the options should be passed via your build tool config instead.`);\n }\n }\n // 0. create render proxy property access cache\n instance.accessCache = Object.create(null);\n // 1. create public instance / render proxy\n // also mark it raw so it's never observed\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if ((process.env.NODE_ENV !== 'production')) {\n exposePropsOnRenderContext(instance);\n }\n // 2. call setup()\n const { setup } = Component;\n if (setup) {\n const setupContext = (instance.setupContext =\n setup.length > 1 ? createSetupContext(instance) : null);\n setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(setup, instance, 0 /* ErrorCodes.SETUP_FUNCTION */, [(process.env.NODE_ENV !== 'production') ? shallowReadonly(instance.props) : instance.props, setupContext]);\n resetTracking();\n unsetCurrentInstance();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n // return the promise so server-renderer can wait on it\n return setupResult\n .then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n })\n .catch(e => {\n handleError(e, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n });\n }\n else {\n // async setup returned Promise.\n // bail here and wait for re-entry.\n instance.asyncDep = setupResult;\n if ((process.env.NODE_ENV !== 'production') && !instance.suspense) {\n const name = (_a = Component.name) !== null && _a !== void 0 ? _a : 'Anonymous';\n warn(`Component <${name}>: setup function returned a promise, but no ` +\n `<Suspense> boundary was found in the parent component tree. ` +\n `A component with async setup() must be nested in a <Suspense> ` +\n `in order to be rendered.`);\n }\n }\n }\n else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n }\n else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n // setup returned an inline render function\n if (instance.type.__ssrInlineRender) {\n // when the function's name is `ssrRender` (compiled by SFC inline mode),\n // set it as ssrRender instead.\n instance.ssrRender = setupResult;\n }\n else {\n instance.render = setupResult;\n }\n }\n else if (isObject(setupResult)) {\n if ((process.env.NODE_ENV !== 'production') && isVNode(setupResult)) {\n warn(`setup() should not return VNodes directly - ` +\n `return a render function instead.`);\n }\n // setup returned bindings.\n // assuming a render function compiled from template is present.\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if ((process.env.NODE_ENV !== 'production')) {\n exposeSetupStateOnRenderContext(instance);\n }\n }\n else if ((process.env.NODE_ENV !== 'production') && setupResult !== undefined) {\n warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\n/**\n * For runtime-dom to register the compiler.\n * Note the exported method uses any to avoid d.ts relying on the compiler types.\n */\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = i => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\n// dev only\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n // template / render function normalization\n // could be already set when returned from setup()\n if (!instance.render) {\n // only do on-the-fly compile if not in SSR - SSR on-the-fly compilation\n // is done by server-renderer\n if (!isSSR && compile && !Component.render) {\n const template = Component.template ||\n resolveMergedOptions(instance).template;\n if (template) {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(extend({\n isCustomElement,\n delimiters\n }, compilerOptions), componentCompilerOptions);\n Component.render = compile(template, finalCompilerOptions);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = (Component.render || NOOP);\n // for runtime-compiled render functions using `with` blocks, the render\n // proxy used needs a different `has` handler which is more performant and\n // also only allows a whitelist of globals to fallthrough.\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n // support for 2.x options\n if (__VUE_OPTIONS_API__ && !(false )) {\n setCurrentInstance(instance);\n pauseTracking();\n applyOptions(instance);\n resetTracking();\n unsetCurrentInstance();\n }\n // warn missing template/render\n // the runtime compilation of template in SSR is done by server-render\n if ((process.env.NODE_ENV !== 'production') && !Component.render && instance.render === NOOP && !isSSR) {\n /* istanbul ignore if */\n if (!compile && Component.template) {\n warn(`Component provided template option but ` +\n `runtime compilation is not supported in this build of Vue.` +\n (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".`\n ) /* should not happen */);\n }\n else {\n warn(`Component is missing template or render function.`);\n }\n }\n}\nfunction createAttrsProxy(instance) {\n return new Proxy(instance.attrs, (process.env.NODE_ENV !== 'production')\n ? {\n get(target, key) {\n markAttrsAccessed();\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n },\n set() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n }\n }\n : {\n get(target, key) {\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = exposed => {\n if ((process.env.NODE_ENV !== 'production') && instance.exposed) {\n warn(`expose() should be called only once per setup().`);\n }\n instance.exposed = exposed || {};\n };\n let attrs;\n if ((process.env.NODE_ENV !== 'production')) {\n // We use getters in dev in case libs like test-utils overwrite instance\n // properties (overwrites should not be done in prod)\n return Object.freeze({\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n get slots() {\n return shallowReadonly(instance.slots);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n }\n else {\n return {\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return (instance.exposeProxy ||\n (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n })));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component)\n ? Component.displayName || Component.name\n : Component.name || (includeInferred && Component.__name);\n}\n/* istanbul ignore next */\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n // try to infer the name based on reverse resolution\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name =\n inferFromRegistry(instance.components ||\n instance.parent.type.components) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && '__vccOpts' in value;\n}\n\nconst computed = ((getterOrOptions, debugOptions) => {\n // @ts-ignore\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n});\n\n// dev only\nconst warnRuntimeUsage = (method) => warn(`${method}() is a compiler-hint helper that is only usable inside ` +\n `<script setup> of a single file component. Its arguments should be ` +\n `compiled away and passing it at runtime has no effect.`);\n// implementation\nfunction defineProps() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\n// implementation\nfunction defineEmits() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\n/**\n * Vue `<script setup>` compiler macro for declaring a component's exposed\n * instance properties when it is accessed by a parent component via template\n * refs.\n *\n * `<script setup>` components are closed by default - i.e. variables inside\n * the `<script setup>` scope is not exposed to parent unless explicitly exposed\n * via `defineExpose`.\n *\n * This is only usable inside `<script setup>`, is compiled away in the\n * output and should **not** be actually called at runtime.\n */\nfunction defineExpose(exposed) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\n/**\n * Vue `<script setup>` compiler macro for providing props default values when\n * using type-based `defineProps` declaration.\n *\n * Example usage:\n * ```ts\n * withDefaults(defineProps<{\n * size?: number\n * labels?: string[]\n * }>(), {\n * size: 3,\n * labels: () => ['default label']\n * })\n * ```\n *\n * This is only usable inside `<script setup>`, is compiled away in the output\n * and should **not** be actually called at runtime.\n */\nfunction withDefaults(props, defaults) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !i) {\n warn(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\n/**\n * Runtime helper for merging default declarations. Imported by compiled code\n * only.\n * @internal\n */\nfunction mergeDefaults(raw, defaults) {\n const props = isArray(raw)\n ? raw.reduce((normalized, p) => ((normalized[p] = {}), normalized), {})\n : raw;\n for (const key in defaults) {\n const opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n props[key] = { type: opt, default: defaults[key] };\n }\n else {\n opt.default = defaults[key];\n }\n }\n else if (opt === null) {\n props[key] = { default: defaults[key] };\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`props default key \"${key}\" has no corresponding declaration.`);\n }\n }\n return props;\n}\n/**\n * Used to create a proxy for the rest element when destructuring props with\n * defineProps().\n * @internal\n */\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\n/**\n * `<script setup>` helper for persisting the current instance context over\n * async/await flows.\n *\n * `@vue/compiler-sfc` converts the following:\n *\n * ```ts\n * const x = await foo()\n * ```\n *\n * into:\n *\n * ```ts\n * let __temp, __restore\n * const x = (([__temp, __restore] = withAsyncContext(() => foo())),__temp=await __temp,__restore(),__temp)\n * ```\n * @internal\n */\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !ctx) {\n warn(`withAsyncContext called without active current instance. ` +\n `This is likely a bug.`);\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch(e => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\n// Actual implementation\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n // single vnode without props\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n // props without children\n return createVNode(type, propsOrChildren);\n }\n else {\n // omit props\n return createVNode(type, null, propsOrChildren);\n }\n }\n else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n }\n else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nconst ssrContextKey = Symbol((process.env.NODE_ENV !== 'production') ? `ssrContext` : ``);\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Server rendering context not provided. Make sure to only call ` +\n `useSSRContext() conditionally in the server build.`);\n }\n return ctx;\n }\n};\n\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\n\nfunction initCustomFormatter() {\n /* eslint-disable no-restricted-globals */\n if (!(process.env.NODE_ENV !== 'production') || typeof window === 'undefined') {\n return;\n }\n const vueStyle = { style: 'color:#3ba776' };\n const numberStyle = { style: 'color:#0b1bc9' };\n const stringStyle = { style: 'color:#b62e24' };\n const keywordStyle = { style: 'color:#9d288c' };\n // custom formatter for Chrome\n // https://www.mattzeunert.com/2016/02/19/custom-chrome-devtools-object-formatters.html\n const formatter = {\n header(obj) {\n // TODO also format ComponentPublicInstance & ctx.slots/attrs in setup\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return ['div', vueStyle, `VueInstance`];\n }\n else if (isRef(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, genRefFlag(obj)],\n '<',\n formatValue(obj.value),\n `>`\n ];\n }\n else if (isReactive(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReactive' : 'Reactive'],\n '<',\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n }\n else if (isReadonly(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],\n '<',\n formatValue(obj),\n '>'\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n 'div',\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock('props', toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('setup', instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('data', toRaw(instance.data)));\n }\n const computed = extractKeys(instance, 'computed');\n if (computed) {\n blocks.push(createInstanceBlock('computed', computed));\n }\n const injected = extractKeys(instance, 'inject');\n if (injected) {\n blocks.push(createInstanceBlock('injected', injected));\n }\n blocks.push([\n 'div',\n {},\n [\n 'span',\n {\n style: keywordStyle.style + ';opacity:0.66'\n },\n '$ (internal): '\n ],\n ['object', { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return ['span', {}];\n }\n return [\n 'div',\n { style: 'line-height:1.25em;margin-bottom:0.6em' },\n [\n 'div',\n {\n style: 'color:#476582'\n },\n type\n ],\n [\n 'div',\n {\n style: 'padding-left:1.25em'\n },\n ...Object.keys(target).map(key => {\n return [\n 'div',\n {},\n ['span', keywordStyle, key + ': '],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === 'number') {\n return ['span', numberStyle, v];\n }\n else if (typeof v === 'string') {\n return ['span', stringStyle, JSON.stringify(v)];\n }\n else if (typeof v === 'boolean') {\n return ['span', keywordStyle, v];\n }\n else if (isObject(v)) {\n return ['object', { object: asRaw ? toRaw(v) : v }];\n }\n else {\n return ['span', stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if ((isArray(opts) && opts.includes(key)) ||\n (isObject(opts) && key in opts)) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some(m => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n }\n else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n // shallow clone\n ret.memo = memo.slice();\n return (cache[index] = ret);\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n // make sure to let parent block track it when returning cached\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\n// Core API ------------------------------------------------------------------\nconst version = \"3.2.45\";\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode,\n normalizeVNode\n};\n/**\n * SSR utils for \\@vue/server-renderer. Only exposed in ssr-possible builds.\n * @internal\n */\nconst ssrUtils = (_ssrUtils );\n/**\n * @internal only exposed in compat builds\n */\nconst resolveFilter = null;\n/**\n * @internal only exposed in compat builds.\n */\nconst compatUtils = (null);\n\nexport { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","import { warn, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, createVNode, getCurrentInstance, watchPostEffect, onMounted, onUnmounted, Fragment, Static, h, BaseTransition, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, createRenderer, isRuntimeOnly, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { isString, isArray, hyphenate, capitalize, isSpecialBooleanAttr, includeBooleanAttr, isOn, isModelListener, isFunction, camelize as camelize$1, toNumber, extend, EMPTY_OBJ, isObject, invokeArrayFns, looseIndexOf, isSet, looseEqual, isHTMLTag, isSVGTag } from '@vue/shared';\n\nconst svgNS = 'http://www.w3.org/2000/svg';\nconst doc = (typeof document !== 'undefined' ? document : null);\nconst templateContainer = doc && /*#__PURE__*/ doc.createElement('template');\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: child => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, isSVG, is, props) => {\n const el = isSVG\n ? doc.createElementNS(svgNS, tag)\n : doc.createElement(tag, is ? { is } : undefined);\n if (tag === 'select' && props && props.multiple != null) {\n el.setAttribute('multiple', props.multiple);\n }\n return el;\n },\n createText: text => doc.createTextNode(text),\n createComment: text => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: node => node.parentNode,\n nextSibling: node => node.nextSibling,\n querySelector: selector => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, '');\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, isSVG, start, end) {\n // <parent> before | first ... last | anchor </parent>\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n // #5308 can only take cached path if:\n // - has a single root node\n // - nextSibling info is still available\n if (start && (start === end || start.nextSibling)) {\n // cached\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling))\n break;\n }\n }\n else {\n // fresh insert\n templateContainer.innerHTML = isSVG ? `<svg>${content}</svg>` : content;\n const template = templateContainer.content;\n if (isSVG) {\n // remove outer svg wrapper\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\n// compiler should normalize class + :class bindings on the same element\n// into a single binding ['staticClass', dynamic]\nfunction patchClass(el, value, isSVG) {\n // directly setting className should be faster than setAttribute in theory\n // if this is an element during a transition, take the temporary transition\n // classes into account.\n const transitionClasses = el._vtc;\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(' ');\n }\n if (value == null) {\n el.removeAttribute('class');\n }\n else if (isSVG) {\n el.setAttribute('class', value);\n }\n else {\n el.className = value;\n }\n}\n\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n if (next && !isCssString) {\n for (const key in next) {\n setStyle(style, key, next[key]);\n }\n if (prev && !isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, '');\n }\n }\n }\n }\n else {\n const currentDisplay = style.display;\n if (isCssString) {\n if (prev !== next) {\n style.cssText = next;\n }\n }\n else if (prev) {\n el.removeAttribute('style');\n }\n // indicates that the `display` of the element is controlled by `v-show`,\n // so we always keep the current `display` value regardless of the `style`\n // value, thus handing over control to `v-show`.\n if ('_vod' in el) {\n style.display = currentDisplay;\n }\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach(v => setStyle(style, name, v));\n }\n else {\n if (val == null)\n val = '';\n if ((process.env.NODE_ENV !== 'production')) {\n if (semicolonRE.test(val)) {\n warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);\n }\n }\n if (name.startsWith('--')) {\n // custom property definition\n style.setProperty(name, val);\n }\n else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n // !important\n style.setProperty(hyphenate(prefixed), val.replace(importantRE, ''), 'important');\n }\n else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = ['Webkit', 'Moz', 'ms'];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== 'filter' && name in style) {\n return (prefixCache[rawName] = name);\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return (prefixCache[rawName] = prefixed);\n }\n }\n return rawName;\n}\n\nconst xlinkNS = 'http://www.w3.org/1999/xlink';\nfunction patchAttr(el, key, value, isSVG, instance) {\n if (isSVG && key.startsWith('xlink:')) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n }\n else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n }\n else {\n // note we are only checking boolean attributes that don't have a\n // corresponding dom prop of the same name here.\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || (isBoolean && !includeBooleanAttr(value))) {\n el.removeAttribute(key);\n }\n else {\n el.setAttribute(key, isBoolean ? '' : value);\n }\n }\n}\n\n// __UNSAFE__\n// functions. The user is responsible for using them with only trusted content.\nfunction patchDOMProp(el, key, value, \n// the following args are passed only due to potential innerHTML/textContent\n// overriding existing VNodes, in which case the old tree must be properly\n// unmounted.\nprevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === 'innerHTML' || key === 'textContent') {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? '' : value;\n return;\n }\n if (key === 'value' &&\n el.tagName !== 'PROGRESS' &&\n // custom elements may use _value internally\n !el.tagName.includes('-')) {\n // store value as _value as well since\n // non-string values will be stringified.\n el._value = value;\n const newValue = value == null ? '' : value;\n if (el.value !== newValue ||\n // #4956: always set for OPTION elements because its value falls back to\n // textContent if no value attribute is present. And setting .value for\n // OPTION has no side effect\n el.tagName === 'OPTION') {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n return;\n }\n let needRemove = false;\n if (value === '' || value == null) {\n const type = typeof el[key];\n if (type === 'boolean') {\n // e.g. <select multiple> compiles to { multiple: '' }\n value = includeBooleanAttr(value);\n }\n else if (value == null && type === 'string') {\n // e.g. <div :id=\"null\">\n value = '';\n needRemove = true;\n }\n else if (type === 'number') {\n // e.g. <img :width=\"null\">\n value = 0;\n needRemove = true;\n }\n }\n // some properties perform value validation and throw,\n // some properties has getter, no setter, will error in 'use strict'\n // eg. <select :type=\"null\"></select> <select :willValidate=\"null\"></select>\n try {\n el[key] = value;\n }\n catch (e) {\n // do not warn if value is auto-coerced from nullish values\n if ((process.env.NODE_ENV !== 'production') && !needRemove) {\n warn(`Failed setting prop \"${key}\" on <${el.tagName.toLowerCase()}>: ` +\n `value ${value} is invalid.`, e);\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n // vei = vue event invokers\n const invokers = el._vei || (el._vei = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n // patch\n existingInvoker.value = nextValue;\n }\n else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n // add\n const invoker = (invokers[rawName] = createInvoker(nextValue, instance));\n addEventListener(el, name, invoker, options);\n }\n else if (existingInvoker) {\n // remove\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = undefined;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while ((m = name.match(optionsModifierRE))) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === ':' ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\n// To avoid the overhead of repeatedly calling Date.now(), we cache\n// and use the same timestamp for all event listeners attached in the same tick.\nlet cachedNow = 0;\nconst p = /*#__PURE__*/ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => (cachedNow = 0)), (cachedNow = Date.now()));\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n // async edge case vuejs/vue#6566\n // inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // this no longer happens for templates in Vue 3, but could still be\n // theoretically possible for hand-written render functions.\n // the solution: we save the timestamp when a handler is attached,\n // and also attach the timestamp to any event that was handled by vue\n // for the first time (to avoid inconsistent event timestamp implementations\n // or events fired from iframes, e.g. #2513)\n // The handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (!e._vts) {\n e._vts = Date.now();\n }\n else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5 /* ErrorCodes.NATIVE_EVENT_HANDLER */, [e]);\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map(fn => (e) => !e._stopped && fn && fn(e));\n }\n else {\n return value;\n }\n}\n\nconst nativeOnRE = /^on[a-z]/;\nconst patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n if (key === 'class') {\n patchClass(el, nextValue, isSVG);\n }\n else if (key === 'style') {\n patchStyle(el, prevValue, nextValue);\n }\n else if (isOn(key)) {\n // ignore v-model listeners\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n }\n else if (key[0] === '.'\n ? ((key = key.slice(1)), true)\n : key[0] === '^'\n ? ((key = key.slice(1)), false)\n : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);\n }\n else {\n // special case for <input v-model type=\"checkbox\"> with\n // :true-value & :false-value\n // store value as dom properties since non-string values will be\n // stringified.\n if (key === 'true-value') {\n el._trueValue = nextValue;\n }\n else if (key === 'false-value') {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n // most keys must be set as attribute on svg elements to work\n // ...except innerHTML & textContent\n if (key === 'innerHTML' || key === 'textContent') {\n return true;\n }\n // or native onclick with function values\n if (key in el && nativeOnRE.test(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n // these are enumerated attrs, however their corresponding DOM properties\n // are actually booleans - this leads to setting it with a string \"false\"\n // value leading it to be coerced to `true`, so we need to always treat\n // them as attributes.\n // Note that `contentEditable` doesn't have this problem: its DOM\n // property is also enumerated string values.\n if (key === 'spellcheck' || key === 'draggable' || key === 'translate') {\n return false;\n }\n // #1787, #2840 form property on form elements is readonly and must be set as\n // attribute.\n if (key === 'form') {\n return false;\n }\n // #1526 <input list> must be set as attribute\n if (key === 'list' && el.tagName === 'INPUT') {\n return false;\n }\n // #2766 <textarea type> must be set as attribute\n if (key === 'type' && el.tagName === 'TEXTAREA') {\n return false;\n }\n // native onclick with string value, must be set as attribute\n if (nativeOnRE.test(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\n\nfunction defineCustomElement(options, hydrate) {\n const Comp = defineComponent(options);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\nconst defineSSRCustomElement = ((options) => {\n // @ts-ignore\n return defineCustomElement(options, hydrate);\n});\nconst BaseClass = (typeof HTMLElement !== 'undefined' ? HTMLElement : class {\n});\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate) {\n super();\n this._def = _def;\n this._props = _props;\n /**\n * @internal\n */\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n if (this.shadowRoot && hydrate) {\n hydrate(this._createVNode(), this.shadowRoot);\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && this.shadowRoot) {\n warn(`Custom element has pre-rendered declarative shadow root but is not ` +\n `defined as hydratable. Use \\`defineSSRCustomElement\\`.`);\n }\n this.attachShadow({ mode: 'open' });\n if (!this._def.__asyncLoader) {\n // for sync component defs we can immediately resolve props\n this._resolveProps(this._def);\n }\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n if (this._resolved) {\n this._update();\n }\n else {\n this._resolveDef();\n }\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n this._resolved = true;\n // set initial attrs\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n // watch future attr changes\n new MutationObserver(mutations => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n }).observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n const { props, styles } = def;\n // cast Number-type props set before resolve\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || (opt && opt.type === Number)) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = Object.create(null)))[camelize$1(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n // defining getter/setters on prototype\n // for sync defs, this already happened in the constructor\n this._resolveProps(def);\n }\n // apply CSS\n this._applyStyles(styles);\n // initial render\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then(def => resolve(def, true));\n }\n else {\n resolve(this._def);\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n // check if there are props set pre-upgrade or connect\n for (const key of Object.keys(this)) {\n if (key[0] !== '_' && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key], true, false);\n }\n }\n // defining getter/setters on prototype\n for (const key of declaredPropKeys.map(camelize$1)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n const camelKey = camelize$1(key);\n if (this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n // reflect\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), '');\n }\n else if (typeof val === 'string' || typeof val === 'number') {\n this.setAttribute(hyphenate(key), val + '');\n }\n else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = instance => {\n this._instance = instance;\n instance.isCE = true;\n // HMR\n if ((process.env.NODE_ENV !== 'production')) {\n instance.ceReload = newStyles => {\n // always reset styles\n if (this._styles) {\n this._styles.forEach(s => this.shadowRoot.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(new CustomEvent(event, {\n detail: args\n }));\n };\n // intercept emit\n instance.emit = (event, ...args) => {\n // dispatch both the raw and hyphenated versions of an event\n // to match Vue behavior\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n // locate nearest Vue custom element parent for provide/inject\n let parent = this;\n while ((parent =\n parent && (parent.parentNode || parent.host))) {\n if (parent instanceof VueElement) {\n instance.parent = parent._instance;\n instance.provides = parent._instance.provides;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach(css => {\n const s = document.createElement('style');\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n // record for HMR\n if ((process.env.NODE_ENV !== 'production')) {\n (this._styles || (this._styles = [])).push(s);\n }\n });\n }\n }\n}\n\nfunction useCssModule(name = '$style') {\n /* istanbul ignore else */\n {\n const instance = getCurrentInstance();\n if (!instance) {\n (process.env.NODE_ENV !== 'production') && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n (process.env.NODE_ENV !== 'production') && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\n/**\n * Runtime helper for SFC's CSS variable injection feature.\n * @private\n */\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n /* istanbul ignore next */\n if (!instance) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = (instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)).forEach(node => setVarsOnNode(node, vars));\n });\n const setVars = () => {\n const vars = getter(instance.proxy);\n setVarsOnVNode(instance.subTree, vars);\n updateTeleports(vars);\n };\n watchPostEffect(setVars);\n onMounted(() => {\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n // drill down HOCs until it's a non-component vnode\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n }\n else if (vnode.type === Fragment) {\n vnode.children.forEach(c => setVarsOnVNode(c, vars));\n }\n else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor)\n break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n }\n }\n}\n\nconst TRANSITION = 'transition';\nconst ANIMATION = 'animation';\n// DOM Transition is a higher-order-component based on the platform-agnostic\n// base Transition component, with DOM-specific logic.\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = 'Transition';\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = (Transition.props =\n /*#__PURE__*/ extend({}, BaseTransition.props, DOMTransitionPropsValidators));\n/**\n * #3227 Incoming hooks may be merged into arrays when wrapping Transition\n * with custom HOCs.\n */\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach(h => h(...args));\n }\n else if (hook) {\n hook(...args);\n }\n};\n/**\n * Check if a hook expects a callback (2nd arg), which means the user\n * intends to explicitly control the end of the transition.\n */\nconst hasExplicitCallback = (hook) => {\n return hook\n ? isArray(hook)\n ? hook.some(h => h.length > 1)\n : hook.length > 1\n : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const { name = 'v', type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n // force reflow so *-leave-from classes immediately take effect (#2593)\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n // cancelled\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n }\n else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n }\n else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if ((process.env.NODE_ENV !== 'production'))\n validateDuration(res);\n return res;\n}\nfunction validateDuration(val) {\n if (typeof val !== 'number') {\n warn(`<transition> explicit duration is not a valid number - ` +\n `got ${JSON.stringify(val)}.`);\n }\n else if (isNaN(val)) {\n warn(`<transition> explicit duration is NaN - ` +\n 'the duration expression might be incorrect.');\n }\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach(c => c && el.classList.add(c));\n (el._vtc ||\n (el._vtc = new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach(c => c && el.classList.remove(c));\n const { _vtc } = el;\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el._vtc = undefined;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = (el._endId = ++endId);\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + 'end';\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n const getStyleProperties = (key) => (styles[key] || '').split(', ');\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n }\n else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n }\n else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type =\n timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n const hasTransform = type === TRANSITION &&\n /\\b(transform|all)(,|$)/.test(getStyleProperties(`${TRANSITION}Property`).toString());\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer\n// numbers in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down\n// (i.e. acting as a floor function) causing unexpected behaviors\nfunction toMs(s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000;\n}\n// synchronously force layout to put elements into a certain state\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nconst positionMap = new WeakMap();\nconst newPositionMap = new WeakMap();\nconst TransitionGroupImpl = {\n name: 'TransitionGroup',\n props: /*#__PURE__*/ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n // children is guaranteed to exist after initial render\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || 'v'}-move`;\n if (!hasCSSTransform(prevChildren[0].el, instance.vnode.el, moveClass)) {\n return;\n }\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n // force reflow to put everything in position\n forceReflow();\n movedChildren.forEach(c => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = '';\n const cb = (el._moveCb = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener('transitionend', cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n el.addEventListener('transitionend', cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el._moveCb) {\n el._moveCb();\n }\n if (el._enterCb) {\n el._enterCb();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = '0s';\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n const clone = el.cloneNode();\n if (el._vtc) {\n el._vtc.forEach(cls => {\n cls.split(/\\s+/).forEach(c => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach(c => c && clone.classList.add(c));\n clone.style.display = 'none';\n const container = (root.nodeType === 1 ? root : root.parentNode);\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props['onUpdate:modelValue'] ||\n (false );\n return isArray(fn) ? value => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event('input'));\n }\n}\n// We are exporting the v-model runtime directly as vnode hooks so that it can\n// be tree-shaken in case v-model is never used.\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el._assign = getModelAssigner(vnode);\n const castToNumber = number || (vnode.props && vnode.props.type === 'number');\n addEventListener(el, lazy ? 'change' : 'input', e => {\n if (e.target.composing)\n return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = toNumber(domValue);\n }\n el._assign(domValue);\n });\n if (trim) {\n addEventListener(el, 'change', () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, 'compositionstart', onCompositionStart);\n addEventListener(el, 'compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n addEventListener(el, 'change', onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? '' : value;\n },\n beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {\n el._assign = getModelAssigner(vnode);\n // avoid clearing unresolved text. #2302\n if (el.composing)\n return;\n if (document.activeElement === el && el.type !== 'range') {\n if (lazy) {\n return;\n }\n if (trim && el.value.trim() === value) {\n return;\n }\n if ((number || el.type === 'number') && toNumber(el.value) === value) {\n return;\n }\n }\n const newValue = value == null ? '' : value;\n if (el.value !== newValue) {\n el.value = newValue;\n }\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el._assign = getModelAssigner(vnode);\n addEventListener(el, 'change', () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el._assign;\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n }\n else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n }\n else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n }\n else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n }\n else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el._assign = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n if (isArray(value)) {\n el.checked = looseIndexOf(value, vnode.props.value) > -1;\n }\n else if (isSet(value)) {\n el.checked = value.has(vnode.props.value);\n }\n else if (value !== oldValue) {\n el.checked = looseEqual(value, getCheckboxValue(el, true));\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el._assign = getModelAssigner(vnode);\n addEventListener(el, 'change', () => {\n el._assign(getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el._assign = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, 'change', () => {\n const selectedVal = Array.prototype.filter\n .call(el.options, (o) => o.selected)\n .map((o) => number ? toNumber(getValue(o)) : getValue(o));\n el._assign(el.multiple\n ? isSetModel\n ? new Set(selectedVal)\n : selectedVal\n : selectedVal[0]);\n });\n el._assign = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value }) {\n setSelected(el, value);\n },\n beforeUpdate(el, _binding, vnode) {\n el._assign = getModelAssigner(vnode);\n },\n updated(el, { value }) {\n setSelected(el, value);\n }\n};\nfunction setSelected(el, value) {\n const isMultiple = el.multiple;\n if (isMultiple && !isArray(value) && !isSet(value)) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`<select multiple v-model> expects an Array or Set value for its binding, ` +\n `but got ${Object.prototype.toString.call(value).slice(8, -1)}.`);\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArray(value)) {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n else {\n option.selected = value.has(optionValue);\n }\n }\n else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i)\n el.selectedIndex = i;\n return;\n }\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\n// retrieve raw value set via :value bindings\nfunction getValue(el) {\n return '_value' in el ? el._value : el.value;\n}\n// retrieve raw value for true-value and false-value set via :true-value or :false-value bindings\nfunction getCheckboxValue(el, checked) {\n const key = checked ? '_trueValue' : '_falseValue';\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, 'created');\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, 'mounted');\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, 'beforeUpdate');\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, 'updated');\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case 'SELECT':\n return vModelSelect;\n case 'TEXTAREA':\n return vModelText;\n default:\n switch (type) {\n case 'checkbox':\n return vModelCheckbox;\n case 'radio':\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(el.tagName, vnode.props && vnode.props.type);\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\n// SSR vnode transforms, only used when user includes client-oriented render\n// function in SSR\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n }\n else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n }\n else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== 'string') {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(), vnode.props && vnode.props.type);\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = ['ctrl', 'shift', 'alt', 'meta'];\nconst modifierGuards = {\n stop: e => e.stopPropagation(),\n prevent: e => e.preventDefault(),\n self: e => e.target !== e.currentTarget,\n ctrl: e => !e.ctrlKey,\n shift: e => !e.shiftKey,\n alt: e => !e.altKey,\n meta: e => !e.metaKey,\n left: e => 'button' in e && e.button !== 0,\n middle: e => 'button' in e && e.button !== 1,\n right: e => 'button' in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some(m => e[`${m}Key`] && !modifiers.includes(m))\n};\n/**\n * @private\n */\nconst withModifiers = (fn, modifiers) => {\n return (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n };\n};\n// Kept for 2.x compat.\n// Note: IE11 compat for `spacebar` and `del` is removed for now.\nconst keyNames = {\n esc: 'escape',\n space: ' ',\n up: 'arrow-up',\n left: 'arrow-left',\n right: 'arrow-right',\n down: 'arrow-down',\n delete: 'backspace'\n};\n/**\n * @private\n */\nconst withKeys = (fn, modifiers) => {\n return (event) => {\n if (!('key' in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some(k => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n };\n};\n\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el._vod = el.style.display === 'none' ? '' : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n }\n else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n }\n else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n }\n else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nfunction setDisplay(el, value) {\n el.style.display = value ? el._vod : 'none';\n}\n// SSR vnode transforms, only used when user includes client-oriented render\n// function in SSR\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: 'none' } };\n }\n };\n}\n\nconst rendererOptions = /*#__PURE__*/ extend({ patchProp }, nodeOps);\n// lazy create the renderer - this makes core renderer logic tree-shakable\n// in case the user only imports reactivity utilities from Vue.\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return (renderer ||\n (renderer = createRenderer(rendererOptions)));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration\n ? renderer\n : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\n// use explicit type casts here to avoid import() calls in rolled-up d.ts\nconst render = ((...args) => {\n ensureRenderer().render(...args);\n});\nconst hydrate = ((...args) => {\n ensureHydrationRenderer().hydrate(...args);\n});\nconst createApp = ((...args) => {\n const app = ensureRenderer().createApp(...args);\n if ((process.env.NODE_ENV !== 'production')) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container)\n return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n // __UNSAFE__\n // Reason: potential execution of JS expressions in in-DOM template.\n // The user must make sure the in-DOM template is trusted. If it's\n // rendered by the server, the template should not contain any user data.\n component.template = container.innerHTML;\n }\n // clear content before mounting\n container.innerHTML = '';\n const proxy = mount(container, false, container instanceof SVGElement);\n if (container instanceof Element) {\n container.removeAttribute('v-cloak');\n container.setAttribute('data-v-app', '');\n }\n return proxy;\n };\n return app;\n});\nconst createSSRApp = ((...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if ((process.env.NODE_ENV !== 'production')) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, container instanceof SVGElement);\n }\n };\n return app;\n});\nfunction injectNativeTagCheck(app) {\n // Inject `isNativeTag`\n // this is used for component name validation (dev only)\n Object.defineProperty(app.config, 'isNativeTag', {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag),\n writable: false\n });\n}\n// dev only\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, 'isCustomElement', {\n get() {\n return isCustomElement;\n },\n set() {\n warn(`The \\`isCustomElement\\` config option is deprecated. Use ` +\n `\\`compilerOptions.isCustomElement\\` instead.`);\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using ` +\n `a build of Vue.js that includes the runtime compiler (aka \"full build\"). ` +\n `Since you are using the runtime-only build, \\`compilerOptions\\` ` +\n `must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\\n` +\n `- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\\n` +\n `- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\\n` +\n `- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-dom`;\n Object.defineProperty(app.config, 'compilerOptions', {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if ((process.env.NODE_ENV !== 'production') && !res) {\n warn(`Failed to mount app: mount target selector \"${container}\" returned null.`);\n }\n return res;\n }\n if ((process.env.NODE_ENV !== 'production') &&\n window.ShadowRoot &&\n container instanceof window.ShadowRoot &&\n container.mode === 'closed') {\n warn(`mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`);\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\n/**\n * @internal\n */\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n }\n ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*.*?\\*\\//gs;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText\n .replace(styleCommentRE, '')\n .split(listDelimiterRE)\n .forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === 'number') {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\n */\nfunction includeBooleanAttr(value) {\n return !!value || value === '';\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return (attrValidationCache[name] = !isUnsafe);\n}\nconst propsToAttrMap = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n};\n/**\n * Known attributes, this is used for stringification of runtime static nodes\n * so that we don't stringify bindings that cannot be set from HTML.\n * Don't also forget to allow `data-*` and `aria-*`!\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n */\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\n `value,width,wrap`);\n/**\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n */\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\n `color-interpolation-filters,color-profile,color-rendering,` +\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = '' + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = '';\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escaped = '&quot;';\n break;\n case 38: // &\n escaped = '&amp;';\n break;\n case 39: // '\n escaped = '&#39;';\n break;\n case 60: // <\n escaped = '&lt;';\n break;\n case 62: // >\n escaped = '&gt;';\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\n// https://www.w3.org/TR/html52/syntax.html#comments\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, '');\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if ((aHasKey && !bHasKey) ||\n (!aHasKey && bHasKey) ||\n !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex(item => looseEqual(item, val));\n}\n\n/**\n * For converting {{ interpolation }} values to displayed strings.\n * @private\n */\nconst toDisplayString = (val) => {\n return isString(val)\n ? val\n : val == null\n ? ''\n : isArray(val) ||\n (isObject(val) &&\n (val.toString === objectToString || !isFunction(val.toString)))\n ? JSON.stringify(val, replacer, 2)\n : String(val);\n};\nconst replacer = (_key, val) => {\n // can't use isRef here since @vue/shared has no deps\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n }\n else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\n entries[`${key} =>`] = val;\n return entries;\n }, {})\n };\n }\n else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n }\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\n ? Object.freeze({})\n : {};\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\nconst NOOP = () => { };\n/**\n * Always return false.\n */\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith('onUpdate:');\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === '[object Map]';\nconst isSet = (val) => toTypeString(val) === '[object Set]';\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isSymbol = (val) => typeof val === 'symbol';\nconst isObject = (val) => val !== null && typeof val === 'object';\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n // extract \"RawType\" from strings like \"[object RawType]\"\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\nconst isIntegerKey = (key) => isString(key) &&\n key !== 'NaN' &&\n key[0] !== '-' &&\n '' + parseInt(key, 10) === key;\nconst isReservedProp = /*#__PURE__*/ makeMap(\n// the leading comma is intentional so empty string \"\" is also included\n',key,ref,ref_for,ref_key,' +\n 'onVnodeBeforeMount,onVnodeMounted,' +\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\nconst cacheStringFunction = (fn) => {\n const cache = Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-(\\w)/g;\n/**\n * @private\n */\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\n});\nconst hyphenateRE = /\\B([A-Z])/g;\n/**\n * @private\n */\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\n/**\n * @private\n */\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n/**\n * @private\n */\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n// compare whether a value has changed, accounting for NaN.\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name)\n ? `__props.${name}`\n : `__props[${JSON.stringify(name)}]`;\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { isReactive, isReadonly, computed, unref, ref, watch, reactive, isRef, nextTick, inject, provide, getCurrentInstance, onBeforeMount, onBeforeUnmount } from 'vue-demi';\n\nfunction unwrapObj(obj) {\n let ignoreKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return Object.keys(obj).reduce((o, k) => {\n if (ignoreKeys.includes(k)) return o;\n o[k] = unref(obj[k]);\n return o;\n }, {});\n}\nfunction isFunction(val) {\n return typeof val === 'function';\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction get(obj, stringPath, def) {\n // Cache the current object\n let current = obj;\n const path = stringPath.split('.'); // For each item in the path, dig into the object\n\n for (let i = 0; i < path.length; i++) {\n // If the item isn't found, return the default (or null)\n if (!current[path[i]]) return def; // Otherwise, update the current value\n\n current = current[path[i]];\n }\n\n return current;\n}\nfunction gatherBooleanGroupProperties(group, nestedResults, property) {\n return computed(() => {\n return group.some(path => {\n return get(nestedResults, path, {\n [property]: false\n })[property];\n });\n });\n}\nfunction gatherArrayGroupProperties(group, nestedResults, property) {\n return computed(() => {\n return group.reduce((all, path) => {\n const fetchedProperty = get(nestedResults, path, {\n [property]: false\n })[property] || [];\n return all.concat(fetchedProperty);\n }, []);\n });\n}\n\n/**\n * Response form a raw Validator function.\n * Should return a Boolean or an object with $invalid property.\n * @typedef {Boolean | { $valid: Boolean }} ValidatorResponse\n */\n\n/**\n * Calls a validation rule by unwrapping its value first from a ref.\n * @param {Validator} rule\n * @param {Ref} value\n * @param {VueInstance} instance\n * @param {Object} siblingState\n * @return {Promise<ValidatorResponse> | ValidatorResponse}\n */\n\nfunction callRule(rule, value, siblingState, instance) {\n return rule.call(instance, unref(value), unref(siblingState), instance);\n}\n/**\n * Normalizes the validator result\n * Allows passing a boolean of an object like `{ $valid: Boolean }`\n * @param {ValidatorResponse} result - Validator result\n * @return {boolean}\n */\n\n\nfunction normalizeValidatorResponse(result) {\n return result.$valid !== undefined ? !result.$valid : !result;\n}\n/**\n * Returns the result of an async validator.\n * @param {Validator} rule\n * @param {Ref<*>} model\n * @param {Ref<Boolean>} $pending\n * @param {Ref<Boolean>} $dirty\n * @param {GlobalConfig} config\n * @param {boolean} config.$lazy\n * @param {Ref<*>} $response\n * @param {VueInstance} instance\n * @param {Ref<*>[]} watchTargets\n * @param {Object} siblingState\n * @param {Ref<Boolean>} $lastInvalidState\n * @param {Ref<Number>} $lastCommittedOn\n * @return {{ $invalid: Ref<Boolean>, $unwatch: WatchStopHandle }}\n */\n\n\nfunction createAsyncResult(rule, model, $pending, $dirty, _ref, $response, instance) {\n let {\n $lazy,\n $rewardEarly\n } = _ref;\n let watchTargets = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : [];\n let siblingState = arguments.length > 8 ? arguments[8] : undefined;\n let $lastInvalidState = arguments.length > 9 ? arguments[9] : undefined;\n let $lastCommittedOn = arguments.length > 10 ? arguments[10] : undefined;\n const $invalid = ref(!!$dirty.value);\n const $pendingCounter = ref(0);\n $pending.value = false;\n const $unwatch = watch([model, $dirty].concat(watchTargets, $lastCommittedOn), () => {\n if ( // if $lazy and not dirty, return\n $lazy && !$dirty.value || // if in $rewardEarly mode and no previous errors, nothing pending, return\n $rewardEarly && !$lastInvalidState.value && !$pending.value) {\n return;\n }\n\n let ruleResult; // make sure we dont break if a validator throws\n\n try {\n ruleResult = callRule(rule, model, siblingState, instance);\n } catch (err) {\n // convert to a promise, so we can handle it async\n ruleResult = Promise.reject(err);\n }\n\n $pendingCounter.value++;\n $pending.value = !!$pendingCounter.value; // ensure $invalid is false, while validator is resolving\n\n $invalid.value = false;\n Promise.resolve(ruleResult).then(data => {\n $pendingCounter.value--;\n $pending.value = !!$pendingCounter.value;\n $response.value = data;\n $invalid.value = normalizeValidatorResponse(data);\n }).catch(error => {\n $pendingCounter.value--;\n $pending.value = !!$pendingCounter.value;\n $response.value = error;\n $invalid.value = true;\n });\n }, {\n immediate: true,\n deep: typeof model === 'object'\n });\n return {\n $invalid,\n $unwatch\n };\n}\n/**\n * Returns the result of a sync validator\n * @param {Validator} rule\n * @param {Ref<*>} model\n * @param {Ref<Boolean>} $dirty\n * @param {GlobalConfig} config\n * @param {Boolean} config.$lazy\n * @param {Ref<*>} $response\n * @param {VueInstance} instance\n * @param {Object} siblingState\n * @param {Ref<Boolean>} $lastInvalidState\n * @return {{$unwatch: (function(): {}), $invalid: ComputedRef<boolean>}}\n */\n\n\nfunction createSyncResult(rule, model, $dirty, _ref2, $response, instance, siblingState, $lastInvalidState) {\n let {\n $lazy,\n $rewardEarly\n } = _ref2;\n\n const $unwatch = () => ({});\n\n const $invalid = computed(() => {\n if ( // return early if $lazy mode and not touched\n $lazy && !$dirty.value || // If $rewardEarly mode is ON and last invalid was false (no error), return it.\n // If we want to invalidate, we just flip the last state to true, causing the computed to run again\n $rewardEarly && !$lastInvalidState.value) {\n return false;\n }\n\n let returnValue = true;\n\n try {\n const result = callRule(rule, model, siblingState, instance);\n $response.value = result;\n returnValue = normalizeValidatorResponse(result);\n } catch (err) {\n $response.value = err;\n }\n\n return returnValue;\n });\n return {\n $unwatch,\n $invalid\n };\n}\n/**\n * Returns the validation result.\n * Detects async and sync validators.\n * @param {NormalizedValidator} rule\n * @param {Ref<*>} model\n * @param {Ref<boolean>} $dirty\n * @param {GlobalConfig} config - Vuelidate config\n * @param {VueInstance} instance - component instance\n * @param {string} validatorName - name of the current validator\n * @param {string} propertyKey - the current property we are validating\n * @param {string} propertyPath - the deep path to the validated property\n * @param {Object} siblingState\n * @param {Ref<Boolean>} $lastInvalidState - the last invalid state\n * @param {Ref<Number>} $lastCommittedOn - the last time $commit was called\n * @return {{ $params: *, $message: Ref<String>, $pending: Ref<Boolean>, $invalid: Ref<Boolean>, $response: Ref<*>, $unwatch: WatchStopHandle }}\n */\n\n\nfunction createValidatorResult(rule, model, $dirty, config, instance, validatorName, propertyKey, propertyPath, siblingState, $lastInvalidState, $lastCommittedOn) {\n const $pending = ref(false);\n const $params = rule.$params || {};\n const $response = ref(null);\n let $invalid;\n let $unwatch;\n\n if (rule.$async) {\n ({\n $invalid,\n $unwatch\n } = createAsyncResult(rule.$validator, model, $pending, $dirty, config, $response, instance, rule.$watchTargets, siblingState, $lastInvalidState, $lastCommittedOn));\n } else {\n ({\n $invalid,\n $unwatch\n } = createSyncResult(rule.$validator, model, $dirty, config, $response, instance, siblingState, $lastInvalidState));\n }\n\n const message = rule.$message;\n const $message = isFunction(message) ? computed(() => message(unwrapObj({\n $pending,\n $invalid,\n $params: unwrapObj($params),\n // $params can hold refs, so we unwrap them for easy access\n $model: model,\n $response,\n $validator: validatorName,\n $propertyPath: propertyPath,\n $property: propertyKey\n }))) : message || '';\n return {\n $message,\n $params,\n $pending,\n $invalid,\n $response,\n $unwatch\n };\n}\n\n/**\n * Sorts a validation definition into rules, configs and nested validators.\n * @param {Object<NormalizedValidator|Function>} validationsRaw\n * @return {{ rules: Object<NormalizedValidator>, nestedValidators: Object, config: GlobalConfig }}\n */\n\nfunction sortValidations() {\n let validationsRaw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const validations = unref(validationsRaw);\n const validationKeys = Object.keys(validations);\n const rules = {};\n const nestedValidators = {};\n const config = {};\n let validationGroups = null;\n validationKeys.forEach(key => {\n const v = validations[key];\n\n switch (true) {\n // If it is already normalized, use it\n case isFunction(v.$validator):\n rules[key] = v;\n break;\n // If it is just a function, normalize it first\n // into { $validator: <Fun> }\n\n case isFunction(v):\n rules[key] = {\n $validator: v\n };\n break;\n\n case key === '$validationGroups':\n validationGroups = v;\n break;\n // Catch $-prefixed properties as config\n\n case key.startsWith('$'):\n config[key] = v;\n break;\n // If it doesn’t match any of the above,\n // treat as nestedValidators state property\n\n default:\n nestedValidators[key] = v;\n }\n });\n return {\n rules,\n nestedValidators,\n config,\n validationGroups\n };\n}\n\nfunction _empty() {}\n\nconst ROOT_PATH = '__root';\n/** @typedef {import('vue-demi').ComponentPublicInstance} VueInstance */\n\n/** @typedef {import('vue-demi').ComputedRef} ComputedRef */\n\n/** @typedef {import('vue-demi').UnwrapRef} UnwrapRef */\n\n/** @typedef {import('vue-demi').WatchStopHandle} WatchStopHandle */\n\n/** @typedef {import('vue-demi').WritableComputedRef} WritableComputedRef */\n\n/** @typedef {import('vue-demi').UnwrapNestedRefs} UnwrapNestedRefs */\n\n/**\n * @typedef NormalizedValidator\n * @property {Validator} $validator\n * @property {String | Ref<String> | function(*): string} [$message]\n * @property {Object | Ref<Object>} [$params]\n * @property {Object | Ref<Object>} [$async]\n * @property {Ref<*>[]} [$watchTargets]\n */\n\n/**\n * Raw validator function, before being normalized\n * Can return a Promise or a {@see ValidatorResponse}\n * @typedef {function(*): ((Promise<ValidatorResponse> | ValidatorResponse))} Validator\n */\n\n/**\n * @typedef ErrorObject\n * @property {Ref<String>} $message - Reactive error message\n * @property {Ref<Object>} $params - Params passed from withParams\n * @property {Ref<Boolean>} $pending - If validation is pending\n * @property {String} $property - State key\n * @property {String} $propertyPath - Dot notation path to state\n * @property {String} $validator - Validator name\n * @property {String} $uid - Unique identifier\n */\n\n/**\n * @typedef ValidationResult\n * @property {Ref<Boolean>} $pending\n * @property {Ref<Boolean>} $dirty\n * @property {Ref<Boolean>} $invalid\n * @property {Ref<Boolean>} $error\n * @property {Ref<String>} $path\n * @property {Function} $touch\n * @property {Function} $reset\n * @property {ComputedRef<ErrorObject[]>} $errors\n * @property {ComputedRef<ErrorObject[]>} $silentErrors\n * @property {Function} $commit\n */\n\n/**\n * Creates the main Validation Results object for a state tree\n * Walks the tree's top level branches\n * @param {Object<NormalizedValidator>} rules - Rules for the current state tree\n * @param {Object} model - Current state value\n * @param {String} key - Key for the current state tree\n * @param {ResultsStorage} [resultsCache] - A cache map of all the validators\n * @param {String} [path] - the current property path\n * @param {GlobalConfig} [config] - the config object\n * @param {VueInstance} instance\n * @param {ComputedRef<Object>} externalResults\n * @param {Object} siblingState\n * @return {ValidationResult | {}}\n */\n\nfunction _call(body, then, direct) {\n if (direct) {\n return then ? then(body()) : body();\n }\n\n try {\n var result = Promise.resolve(body());\n return then ? result.then(then) : result;\n } catch (e) {\n return Promise.reject(e);\n }\n}\n/**\n * Collects the validation results of all nested state properties\n * @param {Object<NormalizedValidator|Function>} validations - The validation\n * @param {Object} nestedState - Current state\n * @param {String} path - Path to current property\n * @param {ResultsStorage} resultsCache - Validations cache map\n * @param {GlobalConfig} config - The config object\n * @param {VueInstance} instance - The current Vue instance\n * @param {ComputedRef<object>} nestedExternalResults - The external results for this nested collection\n * @return {Object<string, VuelidateState>}\n */\n\n\nfunction _callIgnored(body, direct) {\n return _call(body, _empty, direct);\n}\n\nfunction _invoke(body, then) {\n var result = body();\n\n if (result && result.then) {\n return result.then(then);\n }\n\n return then(result);\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nfunction createValidationResults(rules, model, key, resultsCache, path, config, instance, externalResults, siblingState) {\n // collect the property keys\n const ruleKeys = Object.keys(rules);\n const cachedResult = resultsCache.get(path, rules);\n const $dirty = ref(false); // state for the $rewardEarly option\n\n /** The last invalid state of this property */\n\n const $lastInvalidState = ref(false);\n /** The last time $commit was called. Used to re-trigger async calls */\n\n const $lastCommittedOn = ref(0);\n\n if (cachedResult) {\n // if the rules are the same as before, use the cached results\n if (!cachedResult.$partial) return cachedResult; // remove old watchers\n\n cachedResult.$unwatch(); // use the `$dirty.value`, so we dont save references by accident\n\n $dirty.value = cachedResult.$dirty.value;\n }\n\n const result = {\n // restore $dirty from cache\n $dirty,\n $path: path,\n $touch: () => {\n if (!$dirty.value) $dirty.value = true;\n },\n $reset: () => {\n if ($dirty.value) $dirty.value = false;\n },\n $commit: () => {}\n };\n /**\n * If there are no validation rules, it is most likely\n * a top level state, aka root\n */\n\n if (!ruleKeys.length) {\n // if there are cached results, we should overwrite them with the new ones\n cachedResult && resultsCache.set(path, rules, result);\n return result;\n }\n\n ruleKeys.forEach(ruleKey => {\n result[ruleKey] = createValidatorResult(rules[ruleKey], model, result.$dirty, config, instance, ruleKey, key, path, siblingState, $lastInvalidState, $lastCommittedOn);\n });\n result.$externalResults = computed(() => {\n if (!externalResults.value) return [];\n return [].concat(externalResults.value).map((stringError, index) => ({\n $propertyPath: path,\n $property: key,\n $validator: '$externalResults',\n $uid: `${path}-externalResult-${index}`,\n $message: stringError,\n $params: {},\n $response: null,\n $pending: false\n }));\n });\n result.$invalid = computed(() => {\n const r = ruleKeys.some(ruleKey => unref(result[ruleKey].$invalid)); // cache the last invalid state\n\n $lastInvalidState.value = r;\n return !!result.$externalResults.value.length || r;\n });\n result.$pending = computed(() => ruleKeys.some(ruleKey => unref(result[ruleKey].$pending)));\n result.$error = computed(() => result.$dirty.value ? result.$pending.value || result.$invalid.value : false);\n result.$silentErrors = computed(() => ruleKeys.filter(ruleKey => unref(result[ruleKey].$invalid)).map(ruleKey => {\n const res = result[ruleKey];\n return reactive({\n $propertyPath: path,\n $property: key,\n $validator: ruleKey,\n $uid: `${path}-${ruleKey}`,\n $message: res.$message,\n $params: res.$params,\n $response: res.$response,\n $pending: res.$pending\n });\n }).concat(result.$externalResults.value));\n result.$errors = computed(() => result.$dirty.value ? result.$silentErrors.value : []);\n\n result.$unwatch = () => ruleKeys.forEach(ruleKey => {\n result[ruleKey].$unwatch();\n });\n\n result.$commit = () => {\n $lastInvalidState.value = true;\n $lastCommittedOn.value = Date.now();\n };\n\n resultsCache.set(path, rules, result);\n return result;\n}\n\nfunction collectNestedValidationResults(validations, nestedState, path, resultsCache, config, instance, nestedExternalResults) {\n const nestedValidationKeys = Object.keys(validations); // if we have no state, return empty object\n\n if (!nestedValidationKeys.length) return {};\n return nestedValidationKeys.reduce((results, nestedKey) => {\n // build validation results for nested state\n results[nestedKey] = setValidations({\n validations: validations[nestedKey],\n state: nestedState,\n key: nestedKey,\n parentKey: path,\n resultsCache,\n globalConfig: config,\n instance,\n externalResults: nestedExternalResults\n });\n return results;\n }, {});\n}\n/**\n * Generates the Meta fields from the results\n * @param {ValidationResult|{}} results\n * @param {Object.<string, VuelidateState>} nestedResults\n * @param {Object.<string, ValidationResult>} childResults\n * @return {{$anyDirty: Ref<Boolean>, $error: Ref<Boolean>, $invalid: Ref<Boolean>, $errors: Ref<ErrorObject[]>, $dirty: Ref<Boolean>, $touch: Function, $reset: Function }}\n */\n\n\nfunction createMetaFields(results, nestedResults, childResults) {\n const allResults = computed(() => [nestedResults, childResults].filter(res => res).reduce((allRes, res) => {\n return allRes.concat(Object.values(unref(res)));\n }, [])); // returns `$dirty` as true, if all children are dirty\n\n const $dirty = computed({\n get() {\n return results.$dirty.value || (allResults.value.length ? allResults.value.every(r => r.$dirty) : false);\n },\n\n set(v) {\n results.$dirty.value = v;\n }\n\n });\n const $silentErrors = computed(() => {\n // current state level errors, fallback to empty array if root\n const modelErrors = unref(results.$silentErrors) || []; // collect all nested and child $silentErrors\n\n const nestedErrors = allResults.value.filter(result => (unref(result).$silentErrors || []).length).reduce((errors, result) => {\n return errors.concat(...result.$silentErrors);\n }, []); // merge the $silentErrors\n\n return modelErrors.concat(nestedErrors);\n });\n const $errors = computed(() => {\n // current state level errors, fallback to empty array if root\n const modelErrors = unref(results.$errors) || []; // collect all nested and child $errors\n\n const nestedErrors = allResults.value.filter(result => (unref(result).$errors || []).length).reduce((errors, result) => {\n return errors.concat(...result.$errors);\n }, []); // merge the $errors\n\n return modelErrors.concat(nestedErrors);\n });\n const $invalid = computed(() => // if any of the nested values is invalid\n allResults.value.some(r => r.$invalid) || // or if the current state is invalid\n unref(results.$invalid) || // fallback to false if is root\n false);\n const $pending = computed(() => // if any of the nested values is pending\n allResults.value.some(r => unref(r.$pending)) || // if any of the current state validators is pending\n unref(results.$pending) || // fallback to false if is root\n false);\n const $anyDirty = computed(() => allResults.value.some(r => r.$dirty) || allResults.value.some(r => r.$anyDirty) || $dirty.value);\n const $error = computed(() => $dirty.value ? $pending.value || $invalid.value : false);\n\n const $touch = () => {\n // call the root $touch\n results.$touch(); // call all nested level $touch\n\n allResults.value.forEach(result => {\n result.$touch();\n });\n };\n\n const $commit = () => {\n // call the root $touch\n results.$commit(); // call all nested level $touch\n\n allResults.value.forEach(result => {\n result.$commit();\n });\n };\n\n const $reset = () => {\n // reset the root $dirty state\n results.$reset(); // reset all the children $dirty states\n\n allResults.value.forEach(result => {\n result.$reset();\n });\n }; // Ensure that if all child and nested results are $dirty, this also becomes $dirty\n\n\n if (allResults.value.length && allResults.value.every(nr => nr.$dirty)) $touch();\n return {\n $dirty,\n $errors,\n $invalid,\n $anyDirty,\n $error,\n $pending,\n $touch,\n $reset,\n $silentErrors,\n $commit\n };\n}\n/**\n * @typedef VuelidateState\n * @property {WritableComputedRef<any>} $model\n * @property {ComputedRef<Boolean>} $dirty\n * @property {ComputedRef<Boolean>} $error\n * @property {ComputedRef<ErrorObject[]>} $errors\n * @property {ComputedRef<Boolean>} $invalid\n * @property {ComputedRef<Boolean>} $anyDirty\n * @property {ComputedRef<Boolean>} $pending\n * @property {Function} $touch\n * @property {Function} $reset\n * @property {String} $path\n * @property {ComputedRef<ErrorObject[]>} $silentErrors\n * @property {Function} [$validate]\n * @property {Function} [$getResultsForChild]\n * @property {Object.<string, VuelidateState>}\n */\n\n/**\n * Main Vuelidate bootstrap function.\n * Used both for Composition API in `setup` and for Global App usage.\n * Used to collect validation state, when walking recursively down the state tree\n * @param {Object} params\n * @param {Object<NormalizedValidator|Function>} params.validations\n * @param {Object} params.state\n * @param {String} [params.key] - Current state property key. Used when being called on nested items\n * @param {String} [params.parentKey] - Parent state property key. Used when being called recursively\n * @param {Object<string, ValidationResult>} [params.childResults] - Used to collect child results.\n * @param {ResultsStorage} params.resultsCache - The cached validation results\n * @param {VueInstance} params.instance - The current Vue instance\n * @param {GlobalConfig} params.globalConfig - The validation config, passed to this setValidations instance.\n * @param {UnwrapNestedRefs<object> | Ref<Object>} params.externalResults - External validation results\n * @return {UnwrapNestedRefs<VuelidateState>}\n */\n\n\nfunction setValidations(_ref) {\n /**\n * Executes the validators and returns the result.\n * @return {Promise<boolean>}\n */\n const $validate = _async(function () {\n $touch();\n return _invoke(function () {\n if (mergedConfig.$rewardEarly) {\n $commit(); // await the watchers\n\n return _callIgnored(nextTick);\n }\n }, function () {\n // await the watchers\n return _call(nextTick, function () {\n return new Promise(resolve => {\n // return whether it is valid or not\n if (!$pending.value) return resolve(!$invalid.value);\n const unwatch = watch($pending, () => {\n resolve(!$invalid.value);\n unwatch();\n });\n });\n });\n });\n });\n /**\n * Returns a child component's results, based on registration name\n * @param {string} key\n * @return {VuelidateState}\n */\n\n\n let {\n validations,\n state,\n key,\n parentKey,\n childResults,\n resultsCache,\n globalConfig = {},\n instance,\n externalResults\n } = _ref;\n const path = parentKey ? `${parentKey}.${key}` : key; // Sort out the validation object into:\n // – rules = validators for current state tree fragment\n // — nestedValidators = nested state fragments keys that might contain more validators\n // – config = configuration properties that affect this state fragment\n\n const {\n rules,\n nestedValidators,\n config,\n validationGroups\n } = sortValidations(validations);\n const mergedConfig = Object.assign({}, globalConfig, config); // create protected state for cases when the state branch does not exist yet.\n // This protects when using the OptionsAPI as the data is bound after the setup method\n\n const nestedState = key ? computed(() => {\n const s = unref(state);\n return s ? unref(s[key]) : undefined;\n }) : state; // cache the external results, so we can revert back to them\n\n const cachedExternalResults = Object.assign({}, unref(externalResults) || {});\n const nestedExternalResults = computed(() => {\n const results = unref(externalResults);\n if (!key) return results;\n return results ? unref(results[key]) : undefined;\n }); // Use rules for the current state fragment and validate it\n\n const results = createValidationResults(rules, nestedState, key, resultsCache, path, mergedConfig, instance, nestedExternalResults, state); // Use nested keys to repeat the process\n // *WARN*: This is recursive\n\n const nestedResults = collectNestedValidationResults(nestedValidators, nestedState, path, resultsCache, mergedConfig, instance, nestedExternalResults);\n const $validationGroups = {};\n\n if (validationGroups) {\n Object.entries(validationGroups).forEach(_ref2 => {\n let [key, group] = _ref2;\n $validationGroups[key] = {\n $invalid: gatherBooleanGroupProperties(group, nestedResults, '$invalid'),\n $error: gatherBooleanGroupProperties(group, nestedResults, '$error'),\n $pending: gatherBooleanGroupProperties(group, nestedResults, '$pending'),\n $errors: gatherArrayGroupProperties(group, nestedResults, '$errors'),\n $silentErrors: gatherArrayGroupProperties(group, nestedResults, '$silentErrors')\n };\n });\n } // Collect and merge this level validation results\n // with all nested validation results\n\n\n const {\n $dirty,\n $errors,\n $invalid,\n $anyDirty,\n $error,\n $pending,\n $touch,\n $reset,\n $silentErrors,\n $commit\n } = createMetaFields(results, nestedResults, childResults);\n /**\n * If we have no `key`, this is the top level state\n * We dont need `$model` there.\n */\n\n const $model = key ? computed({\n get: () => unref(nestedState),\n set: val => {\n $dirty.value = true;\n const s = unref(state);\n const external = unref(externalResults);\n\n if (external) {\n external[key] = cachedExternalResults[key];\n }\n\n if (isRef(s[key])) {\n s[key].value = val;\n } else {\n s[key] = val;\n }\n }\n }) : null;\n\n if (key && mergedConfig.$autoDirty) {\n watch(nestedState, () => {\n if (!$dirty.value) $touch();\n const external = unref(externalResults);\n\n if (external) {\n external[key] = cachedExternalResults[key];\n }\n }, {\n flush: 'sync'\n });\n }\n\n function $getResultsForChild(key) {\n return (childResults.value || {})[key];\n }\n\n function $clearExternalResults() {\n if (isRef(externalResults)) {\n externalResults.value = cachedExternalResults;\n } else {\n // if the external results state was empty, we need to delete every property, one by one\n if (Object.keys(cachedExternalResults).length === 0) {\n Object.keys(externalResults).forEach(k => {\n delete externalResults[k];\n });\n } else {\n // state was not empty, so we just assign it back into the current state\n Object.assign(externalResults, cachedExternalResults);\n }\n }\n }\n\n return reactive(Object.assign({}, results, {\n // NOTE: The order here is very important, since we want to override\n // some of the *results* meta fields with the collective version of it\n // that includes the results of nested state validation results\n $model,\n $dirty,\n $error,\n $errors,\n $invalid,\n $anyDirty,\n $pending,\n $touch,\n $reset,\n $path: path || ROOT_PATH,\n $silentErrors,\n $validate,\n $commit\n }, childResults && {\n $getResultsForChild,\n $clearExternalResults,\n $validationGroups\n }, nestedResults));\n}\n\nclass ResultsStorage {\n constructor() {\n this.storage = new Map();\n }\n /**\n * Stores a validation result, and its rules by its path\n * @param {String} path\n * @param {Object<NormalizedValidator>} rules\n * @param {ValidationResult} result\n */\n\n\n set(path, rules, result) {\n this.storage.set(path, {\n rules,\n result\n });\n }\n /**\n * Check if the stored `results` for the provided `path` have the same `rules` compared to 'storedRules'\n * @param {String} path\n * @param {Object<NormalizedValidator>} rules\n * @param {Object<NormalizedValidator>} storedRules\n * @return {Boolean}\n */\n\n\n checkRulesValidity(path, rules, storedRules) {\n const storedRulesKeys = Object.keys(storedRules);\n const newRulesKeys = Object.keys(rules);\n if (newRulesKeys.length !== storedRulesKeys.length) return false;\n const hasAllValidators = newRulesKeys.every(ruleKey => storedRulesKeys.includes(ruleKey));\n if (!hasAllValidators) return false;\n return newRulesKeys.every(ruleKey => {\n if (!rules[ruleKey].$params) return true;\n return Object.keys(rules[ruleKey].$params).every(paramKey => {\n // make sure to unwrap before comparing\n return unref(storedRules[ruleKey].$params[paramKey]) === unref(rules[ruleKey].$params[paramKey]);\n });\n });\n }\n /**\n * Returns the matched result if catche is valid\n * @param {String} path\n * @param {Object<NormalizedValidator>} rules\n * @return {{$partial: boolean, $dirty: Ref<Boolean>, $unwatch: function}|undefined|ValidationResult}\n */\n\n\n get(path, rules) {\n const storedRuleResultPair = this.storage.get(path);\n if (!storedRuleResultPair) return undefined;\n const {\n rules: storedRules,\n result\n } = storedRuleResultPair;\n const isValidCache = this.checkRulesValidity(path, rules, storedRules);\n const $unwatch = result.$unwatch ? result.$unwatch : () => ({});\n if (!isValidCache) return {\n $dirty: result.$dirty,\n $partial: true,\n $unwatch\n };\n return result;\n }\n\n}\n\nconst CollectFlag = {\n COLLECT_ALL: true,\n COLLECT_NONE: false\n};\nconst VuelidateInjectChildResults = Symbol('vuelidate#injectChildResults');\nconst VuelidateRemoveChildResults = Symbol('vuelidate#removeChildResults');\n/**\n * Create helpers to collect validation state from child components\n * @param {Object} params\n * @param {String | Number | Boolean} params.$scope - Parent component scope\n * @return {{sendValidationResultsToParent: function[], childResults: ComputedRef<Object>, removeValidationResultsFromParent: function[]}}\n */\n\nfunction nestedValidations(_ref) {\n let {\n $scope,\n instance\n } = _ref;\n const childResultsRaw = {};\n const childResultsKeys = ref([]);\n const childResults = computed(() => childResultsKeys.value.reduce((results, key) => {\n results[key] = unref(childResultsRaw[key]);\n return results;\n }, {}));\n /**\n * Allows children to send validation data up to their parent.\n * @param {Object} results - the results\n * @param {Object} args\n * @param {String} args.$registerAs - the $registeredAs key\n * @param {String | Number | Boolean} args.$scope - the $scope key\n */\n\n function injectChildResultsIntoParent(results, _ref2) {\n let {\n $registerAs: key,\n $scope: childScope,\n $stopPropagation\n } = _ref2;\n if ($stopPropagation || $scope === CollectFlag.COLLECT_NONE || childScope === CollectFlag.COLLECT_NONE || $scope !== CollectFlag.COLLECT_ALL && $scope !== childScope) return;\n childResultsRaw[key] = results;\n childResultsKeys.value.push(key);\n } // combine with other `injectChildResultsIntoParent` from vuelidate instances in this Vue component instance\n\n\n instance.__vuelidateInjectInstances = [].concat(instance.__vuelidateInjectInstances || [], injectChildResultsIntoParent);\n /**\n * Allows children to remove the validation data from their parent, before getting destroyed.\n * @param {String} key - the registeredAs key\n */\n\n function removeChildResultsFromParent(key) {\n // remove the key\n childResultsKeys.value = childResultsKeys.value.filter(childKey => childKey !== key); // remove the stored data for the key\n\n delete childResultsRaw[key];\n } // combine with other `removeChildResultsFromParent` from vuelidate instances in this Vue component instance\n\n\n instance.__vuelidateRemoveInstances = [].concat(instance.__vuelidateRemoveInstances || [], removeChildResultsFromParent); // inject the `injectChildResultsIntoParent` method, into the current scope\n\n const sendValidationResultsToParent = inject(VuelidateInjectChildResults, []); // provide to all of its children the send results to parent function\n\n provide(VuelidateInjectChildResults, instance.__vuelidateInjectInstances);\n const removeValidationResultsFromParent = inject(VuelidateRemoveChildResults, []); // provide to all of its children the remove results function\n\n provide(VuelidateRemoveChildResults, instance.__vuelidateRemoveInstances);\n return {\n childResults,\n sendValidationResultsToParent,\n removeValidationResultsFromParent\n };\n}\n\n/**\n * Helper proxy for instance property access. It makes every reference\n * reactive for the validation function\n * @param target\n * @return {*|ComputedRef<*>}\n */\n\nfunction ComputedProxyFactory(target) {\n return new Proxy(target, {\n get(target, prop) {\n return typeof target[prop] === 'object' ? ComputedProxyFactory(target[prop]) : computed(() => target[prop]);\n }\n\n });\n}\n\n/**\n * @typedef GlobalConfig\n * @property {String} [$registerAs] - Config Object\n * @property {String | Number | Symbol} [$scope] - A scope to limit child component registration\n * @property {Boolean} [$stopPropagation] - Tells a Vue component to stop sending its results up to the parent\n * @property {Ref<Object>} [$externalResults] - External error messages, like from server validation.\n * @property {Boolean} [$autoDirty] - Should the form watch for state changed, and automatically set `$dirty` to true.\n * @property {Boolean} [$lazy] - Should the validations be lazy, and run only after they are dirty\n * @property {Boolean} [$rewardEarly] - Once valid, re-runs property validators only on manual calls of $commit\n */\n\n/**\n * Composition API compatible Vuelidate\n * Use inside the `setup` lifecycle hook\n * @param {Object | GlobalConfig} [validations] - Validations Object or the globalConfig.\n * @param {Object} [state] - State object - required if `validations` is a validation object.\n * @param {GlobalConfig} [globalConfig] - Config Object\n * @return {ComputedRef<*>}\n */\n\nlet uid = 0;\nfunction useVuelidate(validations, state) {\n var _getCurrentInstance;\n\n let globalConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // if we pass only one argument, its most probably the globalConfig.\n // This use case is so parents can just collect results of child forms.\n if (arguments.length === 1) {\n globalConfig = validations;\n validations = undefined;\n state = undefined;\n }\n\n let {\n $registerAs,\n $scope = CollectFlag.COLLECT_ALL,\n $stopPropagation,\n $externalResults,\n currentVueInstance\n } = globalConfig;\n const instance = currentVueInstance || ((_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy);\n const componentOptions = instance ? instance.$options : {}; // if there is no registration name, add one.\n\n if (!$registerAs) {\n uid += 1;\n $registerAs = `_vuelidate_${uid}`;\n }\n\n const validationResults = ref({});\n const resultsCache = new ResultsStorage();\n const {\n childResults,\n sendValidationResultsToParent,\n removeValidationResultsFromParent\n } = instance ? nestedValidations({\n $scope,\n instance\n }) : {\n childResults: ref({})\n }; // Options API\n\n if (!validations && componentOptions.validations) {\n const rules = componentOptions.validations;\n state = ref({});\n onBeforeMount(() => {\n // Delay binding state to validations defined with the Options API until mounting, when the data\n // has been attached to the component instance. From that point on it will be reactive.\n state.value = instance;\n watch(() => isFunction(rules) ? rules.call(state.value, new ComputedProxyFactory(state.value)) : rules, validations => {\n validationResults.value = setValidations({\n validations,\n state,\n childResults,\n resultsCache,\n globalConfig,\n instance,\n externalResults: $externalResults || instance.vuelidateExternalResults\n });\n }, {\n immediate: true\n });\n });\n globalConfig = componentOptions.validationsConfig || globalConfig;\n } else {\n const validationsWatchTarget = isRef(validations) || isProxy(validations) ? validations // wrap plain objects in a reactive, so we can track changes if they have computed in them.\n : reactive(validations || {});\n watch(validationsWatchTarget, newValidationRules => {\n validationResults.value = setValidations({\n validations: newValidationRules,\n state,\n childResults,\n resultsCache,\n globalConfig,\n instance: instance !== null && instance !== void 0 ? instance : {},\n externalResults: $externalResults\n });\n }, {\n immediate: true\n });\n }\n\n if (instance) {\n // send all the data to the parent when the function is invoked inside setup.\n sendValidationResultsToParent.forEach(f => f(validationResults, {\n $registerAs,\n $scope,\n $stopPropagation\n })); // before this component is destroyed, remove all the data from the parent.\n\n onBeforeUnmount(() => removeValidationResultsFromParent.forEach(f => f($registerAs)));\n }\n\n return computed(() => {\n return Object.assign({}, unref(validationResults.value), childResults.value);\n });\n}\n\nexport { CollectFlag, useVuelidate as default, useVuelidate };\n","import { unref } from 'vue-demi';\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\nfunction isObject(o) {\n return o !== null && typeof o === 'object' && !Array.isArray(o);\n}\n/**\n * Returns a standard ValidatorObject\n * Wraps a plain function into a ValidatorObject\n * @param {NormalizedValidator|Function} validator\n * @return {NormalizedValidator}\n */\n\nfunction normalizeValidatorObject(validator) {\n return isFunction(validator.$validator) ? Object.assign({}, validator) : {\n $validator: validator\n };\n}\nfunction isPromise(object) {\n return isObject(object) && isFunction(object.then);\n}\n/**\n * Unwraps a ValidatorResponse object, into a boolean.\n * @param {ValidatorResponse} result\n * @return {boolean}\n */\n\nfunction unwrapValidatorResponse(result) {\n if (typeof result === 'object') return result.$valid;\n return result;\n}\n/**\n * Unwraps a `NormalizedValidator` object, returning its validator function.\n * @param {NormalizedValidator | Function} validator\n * @return {function}\n */\n\nfunction unwrapNormalizedValidator(validator) {\n return validator.$validator || validator;\n}\n\n/**\n * Allows attaching parameters to a validator\n * @param {Object} $params\n * @param {NormalizedValidator|Function} $validator\n * @return {NormalizedValidator}\n */\n\nfunction withParams($params, $validator) {\n if (!isObject($params)) throw new Error(`[@vuelidate/validators]: First parameter to \"withParams\" should be an object, provided ${typeof $params}`);\n if (!isObject($validator) && !isFunction($validator)) throw new Error(`[@vuelidate/validators]: Validator must be a function or object with $validator parameter`);\n const validatorObj = normalizeValidatorObject($validator);\n validatorObj.$params = Object.assign({}, validatorObj.$params || {}, $params);\n return validatorObj;\n}\n\n/**\n * @callback MessageCallback\n * @param {Object} params\n * @return String\n */\n\n/**\n * Attaches a message to a validator\n * @param {MessageCallback | String} $message\n * @param {NormalizedValidator|Function} $validator\n * @return {NormalizedValidator}\n */\n\nfunction withMessage($message, $validator) {\n if (!isFunction($message) && typeof unref($message) !== 'string') throw new Error(`[@vuelidate/validators]: First parameter to \"withMessage\" should be string or a function returning a string, provided ${typeof $message}`);\n if (!isObject($validator) && !isFunction($validator)) throw new Error(`[@vuelidate/validators]: Validator must be a function or object with $validator parameter`);\n const validatorObj = normalizeValidatorObject($validator);\n validatorObj.$message = $message;\n return validatorObj;\n}\n\n/**\n * @typedef {function(*): Promise<boolean|ValidatorResponse>} asyncValidator\n */\n\n/**\n * @typedef {Ref<*>[]|function(*): *} watchTargets\n */\n\n/**\n * Wraps validators that returns a Promise.\n * @param {asyncValidator} $validator\n * @param {watchTargets} $watchTargets\n * @return {{$async: boolean, $validator: asyncValidator, $watchTargets: watchTargets}}\n */\n\nfunction withAsync($validator) {\n let $watchTargets = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n const validatorObj = normalizeValidatorObject($validator);\n return Object.assign({}, validatorObj, {\n $async: true,\n $watchTargets\n });\n}\n\nfunction forEach(validators) {\n return {\n $validator(collection) {\n for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n others[_key - 1] = arguments[_key];\n }\n\n // go over the collection. It can be a ref as well.\n return unref(collection).reduce((previous, collectionItem, index) => {\n // go over each property\n const collectionEntryResult = Object.entries(collectionItem).reduce((all, _ref) => {\n let [property, $model] = _ref;\n // get the validators for this property\n const innerValidators = validators[property] || {}; // go over each validator and run it\n\n const propertyResult = Object.entries(innerValidators).reduce((all, _ref2) => {\n let [validatorName, currentValidator] = _ref2;\n // extract the validator. Supports simple and extended validators.\n const validatorFunction = unwrapNormalizedValidator(currentValidator); // Call the validator, passing the VM as this, the value, current iterated object and the rest.\n\n const $response = validatorFunction.call(this, $model, collectionItem, index, ...others); // extract the valid from the result\n\n const $valid = unwrapValidatorResponse($response); // store the entire response for later\n\n all.$data[validatorName] = $response;\n all.$data.$invalid = !$valid || !!all.$data.$invalid;\n all.$data.$error = all.$data.$invalid; // if not valid, get the $message\n\n if (!$valid) {\n let $message = currentValidator.$message || '';\n const $params = currentValidator.$params || {}; // If $message is a function, we call it with the appropriate parameters\n\n if (typeof $message === 'function') {\n $message = $message({\n $pending: false,\n $invalid: !$valid,\n $params,\n $model,\n $response\n });\n } // save the error object\n\n\n all.$errors.push({\n $property: property,\n $message,\n $params,\n $response,\n $model,\n $pending: false,\n $validator: validatorName\n });\n }\n\n return {\n $valid: all.$valid && $valid,\n $data: all.$data,\n $errors: all.$errors\n };\n }, {\n $valid: true,\n $data: {},\n $errors: []\n });\n all.$data[property] = propertyResult.$data;\n all.$errors[property] = propertyResult.$errors;\n return {\n $valid: all.$valid && propertyResult.$valid,\n $data: all.$data,\n $errors: all.$errors\n };\n }, {\n $valid: true,\n $data: {},\n $errors: {}\n });\n return {\n $valid: previous.$valid && collectionEntryResult.$valid,\n $data: previous.$data.concat(collectionEntryResult.$data),\n $errors: previous.$errors.concat(collectionEntryResult.$errors)\n };\n }, {\n $valid: true,\n $data: [],\n $errors: []\n });\n },\n\n // collect all the validation errors into a 2 dimensional array, for each entry in the collection, you have an array of error messages.\n $message: _ref3 => {\n let {\n $response\n } = _ref3;\n return $response ? $response.$errors.map(context => {\n return Object.values(context).map(errors => errors.map(error => error.$message)).reduce((a, b) => a.concat(b), []);\n }) : [];\n }\n };\n}\n\n// \"required\" core, used in almost every validator to allow empty values\nconst req = value => {\n value = unref(value);\n if (Array.isArray(value)) return !!value.length;\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value === false) {\n return true;\n }\n\n if (value instanceof Date) {\n // invalid date won't pass\n return !isNaN(value.getTime());\n }\n\n if (typeof value === 'object') {\n for (let _ in value) return true;\n\n return false;\n }\n\n return !!String(value).length;\n};\n/**\n * Returns the length of an arbitrary value\n * @param {Array|Object|String} value\n * @return {number}\n */\n\nconst len = value => {\n value = unref(value);\n if (Array.isArray(value)) return value.length;\n\n if (typeof value === 'object') {\n return Object.keys(value).length;\n }\n\n return String(value).length;\n};\n/**\n * Regex based validator template\n * @param {RegExp} expr\n * @return {function(*=): boolean}\n */\n\nfunction regex() {\n for (var _len = arguments.length, expr = new Array(_len), _key = 0; _key < _len; _key++) {\n expr[_key] = arguments[_key];\n }\n\n return value => {\n value = unref(value);\n return !req(value) || expr.every(reg => reg.test(value));\n };\n}\n\nvar common = /*#__PURE__*/Object.freeze({\n __proto__: null,\n withParams: withParams,\n withMessage: withMessage,\n withAsync: withAsync,\n forEach: forEach,\n req: req,\n len: len,\n regex: regex,\n unwrap: unref,\n unwrapNormalizedValidator: unwrapNormalizedValidator,\n unwrapValidatorResponse: unwrapValidatorResponse,\n normalizeValidatorObject: normalizeValidatorObject\n});\n\nvar alpha$1 = regex(/^[a-zA-Z]*$/);\n\n/**\n * Validate if value is alphabetical string.\n * @type {NormalizedValidator}\n */\n\nvar alpha = {\n $validator: alpha$1,\n $message: 'The value is not alphabetical',\n $params: {\n type: 'alpha'\n }\n};\n\nvar alphaNum$1 = regex(/^[a-zA-Z0-9]*$/);\n\n/**\n * Validate if value is alpha-numeric string.\n * @type {NormalizedValidator}\n */\n\nvar alphaNum = {\n $validator: alphaNum$1,\n $message: 'The value must be alpha-numeric',\n $params: {\n type: 'alphaNum'\n }\n};\n\nvar numeric$1 = regex(/^\\d*(\\.\\d+)?$/);\n\n/**\n * Check whether a value is numeric.\n * @type NormalizedValidator\n */\n\nvar numeric = {\n $validator: numeric$1,\n $message: 'Value must be numeric',\n $params: {\n type: 'numeric'\n }\n};\n\n/**\n * Check if a numeric value is between two values.\n * @param {Ref<Number> | Number} min\n * @param {Ref<Number> | Number} max\n * @return {function(*=): boolean}\n */\n\nfunction between$1 (min, max) {\n return value => !req(value) || (!/\\s/.test(value) || value instanceof Date) && +unref(min) <= +value && +unref(max) >= +value;\n}\n\n/**\n * Checks if a value is between two values.\n * @param {Ref<Number> | Number} min\n * @param {Ref<Number> | Number} max\n * @return {NormalizedValidator}\n */\n\nfunction between (min, max) {\n return {\n $validator: between$1(min, max),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The value must be between ${$params.min} and ${$params.max}`;\n },\n $params: {\n min,\n max,\n type: 'between'\n }\n };\n}\n\nconst emailRegex = /^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nvar email$1 = regex(emailRegex);\n\n/**\n * Validate if value is an email.\n * @type {NormalizedValidator}\n */\n\nvar email = {\n $validator: email$1,\n $message: 'Value is not a valid email address',\n $params: {\n type: 'email'\n }\n};\n\n/**\n * Check if a string is an IP Address\n * @param {String} value\n * @returns {boolean}\n */\n\nfunction ipAddress$1 (value) {\n if (!req(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n const nibbles = value.split('.');\n return nibbles.length === 4 && nibbles.every(nibbleValid);\n}\n\nconst nibbleValid = nibble => {\n if (nibble.length > 3 || nibble.length === 0) {\n return false;\n }\n\n if (nibble[0] === '0' && nibble !== '0') {\n return false;\n }\n\n if (!nibble.match(/^\\d+$/)) {\n return false;\n }\n\n const numeric = +nibble | 0;\n return numeric >= 0 && numeric <= 255;\n};\n\n/**\n * Validate if value is an ipAddress string.\n * @type {NormalizedValidator}\n */\n\nvar ipAddress = {\n $validator: ipAddress$1,\n $message: 'The value is not a valid IP address',\n $params: {\n type: 'ipAddress'\n }\n};\n\n/**\n * Check if value is a properly formatted Mac Address.\n * @param {String | Ref<String>} [separator]\n * @returns {function(*): boolean}\n */\n\nfunction macAddress$1 () {\n let separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ':';\n return value => {\n separator = unref(separator);\n\n if (!req(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n const parts = typeof separator === 'string' && separator !== '' ? value.split(separator) : value.length === 12 || value.length === 16 ? value.match(/.{2}/g) : null;\n return parts !== null && (parts.length === 6 || parts.length === 8) && parts.every(hexValid);\n };\n}\n\nconst hexValid = hex => hex.toLowerCase().match(/^[0-9a-f]{2}$/);\n\n/**\n * Validate if value is a valid Mac Address string.\n * @returns {NormalizedValidator}\n */\n\nfunction macAddress (separator) {\n return {\n $validator: macAddress$1(separator),\n $message: 'The value is not a valid MAC Address',\n $params: {\n type: 'macAddress'\n }\n };\n}\n\n/**\n * Check if provided value has a maximum length\n * @param {Number | Ref<Number>} length\n * @returns {function(Array|Object|String): boolean}\n */\n\nfunction maxLength$1 (length) {\n return value => !req(value) || len(value) <= unref(length);\n}\n\n/**\n * Validate the max length of a string.\n * @param {Number} max\n * @return {NormalizedValidator}\n */\n\nfunction maxLength (max) {\n return {\n $validator: maxLength$1(max),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The maximum length allowed is ${$params.max}`;\n },\n $params: {\n max,\n type: 'maxLength'\n }\n };\n}\n\n/**\n * Check if value is above a threshold.\n * @param {Number | Ref<Number>} length\n * @returns {function(Array|Object|String): boolean}\n */\n\nfunction minLength$1 (length) {\n return value => !req(value) || len(value) >= unref(length);\n}\n\n/**\n * Check if value is above a threshold.\n * @param {Number | Ref<Number>} min\n * @returns {NormalizedValidator}\n */\n\nfunction minLength (min) {\n return {\n $validator: minLength$1(min),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `This field should be at least ${$params.min} characters long`;\n },\n $params: {\n min,\n type: 'minLength'\n }\n };\n}\n\n/**\n * Validates if a value is empty.\n * @param {String | Array | Date | Object} value\n * @returns {boolean}\n */\n\nfunction required$1 (value) {\n if (typeof value === 'string') {\n value = value.trim();\n }\n\n return req(value);\n}\n\n/**\n * Check if a value is empty or not.\n * @type {NormalizedValidator}\n */\n\nvar required = {\n $validator: required$1,\n $message: 'Value is required',\n $params: {\n type: 'required'\n }\n};\n\nconst validate$1 = (prop, val) => prop ? req(typeof val === 'string' ? val.trim() : val) : true;\n/**\n * Returns required if the passed property is truthy\n * @param {Boolean | String | function(any): Boolean | Ref<string | boolean>} propOrFunction\n * @return {function(value: *, parentVM: object): Boolean}\n */\n\n\nfunction requiredIf$1(propOrFunction) {\n return function (value, parentVM) {\n if (typeof propOrFunction !== 'function') {\n return validate$1(unref(propOrFunction), value);\n }\n\n const result = propOrFunction.call(this, value, parentVM);\n return validate$1(result, value);\n };\n}\n\n/**\n * Returns required if the passed property is truthy\n * @param {Boolean | String | function(): (Boolean | Promise<boolean>)} prop\n * @return {NormalizedValidator}\n */\n\nfunction requiredIf (prop) {\n return {\n $validator: requiredIf$1(prop),\n $message: 'The value is required',\n $params: {\n type: 'requiredIf',\n prop\n }\n };\n}\n\nconst validate = (prop, val) => !prop ? req(typeof val === 'string' ? val.trim() : val) : true;\n/**\n * Returns required if the passed property is falsy.\n * @param {Boolean | String | function(any): Boolean | Ref<string | boolean>} propOrFunction\n * @return {function(value: *, parentVM: object): Boolean}\n */\n\n\nfunction requiredUnless$1(propOrFunction) {\n return function (value, parentVM) {\n if (typeof propOrFunction !== 'function') {\n return validate(unref(propOrFunction), value);\n }\n\n const result = propOrFunction.call(this, value, parentVM);\n return validate(result, value);\n };\n}\n\n/**\n * Returns required unless the passed property is truthy\n * @param {Boolean | String | function(): (Boolean | Promise<boolean>)} prop\n * @return {NormalizedValidator}\n */\n\nfunction requiredUnless (prop) {\n return {\n $validator: requiredUnless$1(prop),\n $message: 'The value is required',\n $params: {\n type: 'requiredUnless',\n prop\n }\n };\n}\n\n/**\n * Check if two values are identical.\n * @param {*} equalTo\n * @return {function(*=): boolean}\n */\n\nfunction sameAs$1 (equalTo) {\n return value => unref(value) === unref(equalTo);\n}\n\n/**\n * Check if two values are identical\n * @param {*} equalTo\n * @param {String} [otherName]\n * @return {NormalizedValidator}\n */\n\nfunction sameAs (equalTo) {\n let otherName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'other';\n return {\n $validator: sameAs$1(equalTo),\n $message: _ref => {\n return `The value must be equal to the ${otherName} value`;\n },\n $params: {\n equalTo,\n otherName,\n type: 'sameAs'\n }\n };\n}\n\n/**\n * Regex taken from {@link https://gist.github.com/dperini/729294}\n */\n\nconst urlRegex = /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i;\nvar url$1 = regex(urlRegex);\n\n/**\n * Check if a value is a url\n * @type {NormalizedValidator}\n */\n\nvar url = {\n $validator: url$1,\n $message: 'The value is not a valid URL address',\n $params: {\n type: 'url'\n }\n};\n\nfunction _await$1(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction syncOr(validators) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validators.reduce((valid, fn) => {\n if (unwrapValidatorResponse(valid)) return valid;\n return unwrapNormalizedValidator(fn).apply(this, args);\n }, false);\n };\n}\n\nfunction asyncOr(validators) {\n return function () {\n const _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.reduce(function (valid, fn) {\n return _await$1(valid, function (r) {\n return unwrapValidatorResponse(r) ? r : unwrapNormalizedValidator(fn).apply(_this, args);\n });\n }, Promise.resolve(false));\n };\n}\n/**\n * Returns true when one of the provided functions returns true.\n * @param {...(NormalizedValidator|Function)} validators\n * @return {{$validator: function(...[*]=): (boolean | Promise<boolean>), $async: boolean, $watchTargets: any[]}}\n */\n\n\nfunction or$1() {\n for (var _len3 = arguments.length, validators = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n validators[_key3] = arguments[_key3];\n }\n\n const $async = validators.some(v => v.$async);\n const $watchTargets = validators.reduce((all, v) => {\n if (!v.$watchTargets) return all;\n return all.concat(v.$watchTargets);\n }, []);\n\n let $validator = () => false;\n\n if (validators.length) $validator = $async ? asyncOr(validators) : syncOr(validators);\n return {\n $async,\n $validator,\n $watchTargets\n };\n}\n\n/**\n * Returns true when one of the provided functions returns true.\n * @param {...(NormalizedValidator|Function)} validators\n * @return {NormalizedValidator}\n */\n\nfunction or () {\n return withParams({\n type: 'or'\n }, withMessage('The value does not match any of the provided validators', or$1(...arguments)));\n}\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n/**\n *\n * @param validators\n * @return {function(...[*]=): Promise<boolean>}\n */\n\n\nfunction syncAnd(validators) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validators.reduce((valid, fn) => {\n if (!unwrapValidatorResponse(valid)) return valid;\n return unwrapNormalizedValidator(fn).apply(this, args);\n }, true);\n };\n}\n\nfunction asyncAnd(validators) {\n return function () {\n const _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.reduce(function (valid, fn) {\n return _await(valid, function (r) {\n return unwrapValidatorResponse(r) ? unwrapNormalizedValidator(fn).apply(_this, args) : r;\n });\n }, Promise.resolve(true));\n };\n}\n/**\n * Returns true when all validators are truthy\n * @param {...(NormalizedValidator | Function)} validators\n * @return {{$validator: function(...[*]=): (boolean | Promise<boolean>), $async: boolean, $watchTargets: any[]}}\n */\n\n\nfunction and$1() {\n for (var _len3 = arguments.length, validators = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n validators[_key3] = arguments[_key3];\n }\n\n const $async = validators.some(v => v.$async);\n const $watchTargets = validators.reduce((all, v) => {\n if (!v.$watchTargets) return all;\n return all.concat(v.$watchTargets);\n }, []);\n\n let $validator = () => false;\n\n if (validators.length) $validator = $async ? asyncAnd(validators) : syncAnd(validators);\n return {\n $async,\n $validator,\n $watchTargets\n };\n}\n\n/**\n * Validate if all validators match.\n * @param {...*} validators\n * @returns {NormalizedValidator}\n */\n\nfunction and () {\n return withParams({\n type: 'and'\n }, withMessage('The value does not match all of the provided validators', and$1(...arguments)));\n}\n\n/**\n * Swaps the result of a value\n * @param {NormalizedValidator|Function} validator\n * @returns {function(*=, *=): boolean}\n */\n\nfunction not$1 (validator) {\n return function (value, vm) {\n if (!req(value)) return true;\n const response = unwrapNormalizedValidator(validator).call(this, value, vm);\n if (!isPromise(response)) return !unwrapValidatorResponse(response);\n return response.then(r => !unwrapValidatorResponse(r));\n };\n}\n\n/**\n * Swaps the result of a value\n * @param {NormalizedValidator|Function} validator\n * @returns {NormalizedValidator}\n */\n\nfunction not (validator) {\n return {\n $validator: not$1(validator),\n $message: `The value does not match the provided validator`,\n $params: {\n type: 'not'\n }\n };\n}\n\n/**\n * Check if a value is above a threshold.\n * @param {String | Number | Ref<Number> | Ref<String>} min\n * @returns {function(*=): boolean}\n */\n\nfunction minValue$1 (min) {\n return value => !req(value) || (!/\\s/.test(value) || value instanceof Date) && +value >= +unref(min);\n}\n\n/**\n * Check if a value is above a threshold.\n * @param {String | Number | Ref<Number> | Ref<String>} min\n * @returns {NormalizedValidator}\n */\n\nfunction minValue (min) {\n return {\n $validator: minValue$1(min),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The minimum value allowed is ${$params.min}`;\n },\n $params: {\n min,\n type: 'minValue'\n }\n };\n}\n\n/**\n * Check if value is below a threshold.\n * @param {Number | Ref<Number> | Ref<String>} max\n * @returns {function(*=): boolean}\n */\n\nfunction maxValue$1 (max) {\n return value => !req(value) || (!/\\s/.test(value) || value instanceof Date) && +value <= +unref(max);\n}\n\n/**\n * Check if value is below a threshold.\n * @param {Number | Ref<Number> | Ref<String>} max\n * @return {NormalizedValidator}\n */\n\nvar maxValue = (max => ({\n $validator: maxValue$1(max),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The maximum value allowed is ${$params.max}`;\n },\n $params: {\n max,\n type: 'maxValue'\n }\n}));\n\n// ^-[0-9]+$ - only for negative integer (minus sign without at least 1 digit is not a number)\n\nvar integer$1 = regex(/(^[0-9]*$)|(^-[0-9]+$)/);\n\n/**\n * Validate if value is integer.\n * @type {NormalizedValidator}\n */\n\nvar integer = {\n $validator: integer$1,\n $message: 'Value is not an integer',\n $params: {\n type: 'integer'\n }\n};\n\nvar decimal$1 = regex(/^[-]?\\d*(\\.\\d+)?$/);\n\n/**\n * Validate if value is decimal number.\n * @type {NormalizedValidator}\n */\n\nvar decimal = {\n $validator: decimal$1,\n $message: 'Value must be decimal',\n $params: {\n type: 'decimal'\n }\n};\n\n/**\n * Creates a translatable version of `withMessage` helper.\n * @param {function} t - the translation function of your choice\n * @param {function} [messagePath] - a function to generate the message path, passed to `t` for each message. By default it is `validations.${$validator}`\n * @param {function} [messageParams] - a function to augment the params, passed to `t` for each message.\n */\n\nfunction createI18nMessage(_ref) {\n let {\n t,\n messagePath = _ref2 => {\n let {\n $validator\n } = _ref2;\n return `validations.${$validator}`;\n },\n messageParams = params => params\n } = _ref;\n return function withI18nMessage(validator) {\n let {\n withArguments = false,\n messagePath: localMessagePath = messagePath,\n messageParams: localMessageParams = messageParams\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n function message(props) {\n return t(localMessagePath(props), localMessageParams(Object.assign({\n model: props.$model,\n property: props.$property,\n pending: props.$pending,\n invalid: props.$invalid,\n response: props.$response,\n validator: props.$validator,\n propertyPath: props.$propertyPath\n }, props.$params)));\n }\n\n if (withArguments && typeof validator === 'function') {\n return function () {\n return withMessage(message, validator(...arguments));\n };\n }\n\n return withMessage(message, validator);\n };\n}\n\nexport { alpha, alphaNum, and, between, createI18nMessage, decimal, email, common as helpers, integer, ipAddress, macAddress, maxLength, maxValue, minLength, minValue, not, numeric, or, required, requiredIf, requiredUnless, sameAs, url };\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","\"use strict\";function getIlluminant(r){return ILLUMINANTS[r]}function matrixMultiply(r,t){for(var n=[],e=0;e<r.length;e++){n[e]=[];for(var o=0;o<t[0].length;o++){for(var u=0,a=0;a<r[0].length;a++)u+=r[e][a]*t[a][o];n[e][o]=u}}return n}function getTransform(r){return TRANSFORMS[r]}function determineType(r){var t=types.find(function(t){return testColorType[t](r)});if(!t)throw new Error(\"No type found for color \"+r);return t}function toRadian(r){return r*(Math.PI/180)}function toDegree(r){return r*(180/Math.PI)}function negativeModulo(r,t){return(r%t+t)%t}function bounded(r,t){return r<t[0]?r=t[0]:r>t[1]&&(r=t[1]),r}function boundedRgb(r){return{r:bounded255(r.r),g:bounded255(r.g),b:bounded255(r.b)}}function cubeRoot(r){if(Math.cbrt)return Math.cbrt(r);var t=Math.pow(Math.abs(r),1/3);return r<0?-t:t}function convert(r,t,n){if(void 0===t)throw new Error(\"No value provided\");var e=n||determineType(t);if(e===r)return t;if(conversions[e][r])return convertNow(e,r,t);var o=conversionSteps[e],u=\"string\"==typeof o?o:o[r]||o.default;return convert(r,convertNow(e,u,t),u)}function makeColourObject(r){var t={};return types$1.forEach(function(n){Object.defineProperty(t,n,{get:function(){return convertArrayOrColour(n,r)},enumerable:!0})}),t}function adapt(r,t,n){var e=convert(\"XYZ\",r),o=convert(\"lms\",getIlluminant(t)||getIlluminant(\"D65\")),u=convert(\"lms\",getIlluminant(n)||getIlluminant(\"D65\")),a=getTransform(\"BRADFORD\"),c=matrixMultiply(matrixMultiply(matrixMultiply(getTransform(\"INVERSE_BRADFORD\"),[[o.rho/u.rho,0,0],[0,o.gamma/u.gamma,0],[0,0,o.beta/u.beta]]),a),[[e.X],[e.Y],[e.Z]]);return makeColourObject({X:c[0][0],Y:c[1][0],Z:c[2][0]})}function adjacent(r,t,n){for(var e=convert(\"hsl\",n),o=[{h:e.h,s:e.s,l:e.l}],u=0;u<t-1;u++)e.h=negativeModulo(e.h+r,360),o.push({h:e.h,s:e.s,l:e.l});return makeColourObject(o)}function brightness(r,t){var n=convert(\"hsl\",t);return n.l+=r,n.l<0?n.l=0:n.l>100&&(n.l=100),makeColourObject(n)}function complementary(r){var t=convert(\"hsl\",r);return t.h=(t.h+180)%360,makeColourObject(t)}function contrast(r,t){var n=convert(\"rgb\",t);return n.r=255*((n.r/255-.5)*r+.5),n.r<0?n.r=0:n.r>255&&(n.r=255),n.g=255*((n.g/255-.5)*r+.5),n.g<0?n.g=0:n.g>255&&(n.g=255),n.b=255*((n.b/255-.5)*r+.5),n.b<0?n.b=0:n.b>255&&(n.b=255),makeColourObject(n)}function contrastRatio(r){var t=convert(\"rgb\",r);return t=(299*t.r+587*t.g+114*t.b)/1e3>=128?{r:0,g:0,b:0}:{r:255,g:255,b:255},makeColourObject(t)}function difference(r,t,n,e){n=n||1,e=e||1;var o=convert(\"cielab\",r),u=convert(\"cielab\",t),a=Math.sqrt(Math.pow(o.a,2)+Math.pow(o.b,2)),c=a-Math.sqrt(Math.pow(u.a,2)+Math.pow(u.b,2)),i=o.L-u.L,s=o.a-u.a,l=o.b-u.b,h=Math.sqrt(Math.pow(s,2)+Math.pow(l,2)-Math.pow(c,2)),f=o.L<16?.511:.040975*o.L/(1.01765*o.L),v=.0638*a/(1.0131*a),b=Math.atan2(o.b,o.a),g=b>=0?b:b+360,p=g>=164&&g<=345?.56+Math.abs(.2*Math.cos(toRadian(g+168))):.36+Math.abs(.4*Math.cos(toRadian(g+35))),m=Math.pow(a,4)/(Math.pow(a,4)+1900),d=v*(m*p+1-m),Y=Math.pow(i/(n*f),2),M=Math.pow(c/(e*v),2),y=Math.pow(h/d,2);return Math.sqrt(Y+M+y)}function slopeMod(r,t){return r>2*t?slopeMod(r-2*t,t):r>t?2*t-r:r<0?slopeMod(r+2*t,t):r}function fade(r,t,n){var e=convert(\"rgb\",t),o=convert(\"rgb\",n),u=[e];r-=1;for(var a=(o.r-e.r)/r,c=(o.g-e.g)/r,i=(o.b-e.b)/r,s={r:e.r,g:e.g,b:e.b},l=0;l<r-1;l++)s.r=slopeMod(s.r+a,255),s.g=slopeMod(s.g+c,255),s.b=slopeMod(s.b+i,255),u.push({r:s.r,g:s.g,b:s.b});return u.push(o),makeColourObject(u)}function greyscale(r){var t=convert(\"rgb\",r),n=(t.r+t.g+t.b)/3;return t={r:n,g:n,b:n},makeColourObject(t)}function hue(r,t){var n=convert(\"hsl\",t);return n.h=negativeModulo(n.h+r,360),makeColourObject(n)}function invert(r){var t=convert(\"rgb\",r);return t.r=negativeModulo(255-t.r,255),t.g=negativeModulo(255-t.g,255),t.b=negativeModulo(255-t.b,255),makeColourObject(t)}function invertLightness(r){var t=convert(\"hsl\",r);return t.l=100-t.l,makeColourObject(t)}function mid(r,t){var n=convert(\"hsl\",r),e=convert(\"hsl\",t);return makeColourObject({h:(n.h+e.h)/2,s:(n.s+e.s)/2,l:(n.l+e.l)/2})}function multiply(r,t){var n=convert(\"hsl\",r),e=convert(\"hsl\",t),o={h:n.h,s:n.s,l:n.l/100*(e.l/100)*100};return o.l=o.l>100?100:o.l,o.l=o.l<0?0:o.l,makeColourObject(o)}function saturation(r,t){var n=convert(\"hsl\",t);return n.s+=r,n.s<0?n.s=0:n.s>100&&(n.s=100),makeColourObject(n)}function sepia(r){var t=convert(\"rgb\",r),n={};return n.r=.393*t.r+.769*t.g+.189*t.b,n.g=.349*t.r+.686*t.g+.168*t.b,n.b=.272*t.r+.534*t.g+.131*t.b,makeColourObject(n)}function shade(r,t){var n=convert(\"hsv\",t);return console.log(n),n.v+=r,n.v<0?n.v=0:n.v>100&&(n.v=100),console.log(n),makeColourObject(n)}function temperature(r){var t=convert(\"xyY\",r),n=(t.x-.332)/(t.y-.1858);return-449*Math.pow(n,3)+3525*Math.pow(n,2)-6823.3*n+5520.33}function tetrad(r){for(var t=convert(\"hsl\",r),n=[{h:t.h,s:t.s,l:t.l}],e=0;e<3;e++)t.h=(t.h+90)%360,n.push({h:t.h,s:t.s,l:t.l});return makeColourObject(n)}function triad(r){for(var t=convert(\"hsl\",r),n=[{h:t.h,s:t.s,l:t.l}],e=0;e<2;e++)t.h=(t.h+120)%360,n.push({h:t.h,s:t.s,l:t.l});return makeColourObject(n)}function complementary$1(r){var t=convert(\"hsluv\",r);return t.hu=(t.hu+180)%360,makeColourObject(t)}function triad$1(r){for(var t=convert(\"hsluv\",r),n=[{hu:t.hu,s:t.s,l:t.l}],e=0;e<2;e++)t.hu=(t.hu+120)%360,n.push({h:t.hu,s:t.s,l:t.l});return makeColourObject(n)}function tetrad$1(r){for(var t=convert(\"hsluv\",r),n=[{hu:t.hu,s:t.s,l:t.l}],e=0;e<3;e++)t.hu=(t.hu+90)%360,n.push({h:t.hu,s:t.s,l:t.l});return makeColourObject(n)}Object.defineProperty(exports,\"__esModule\",{value:!0});var ILLUMINANTS={A:{X:1.0985*100,Y:100,Z:35.585},B:{X:99.072,Y:100,Z:85.223},C:{X:98.074,Y:100,Z:118.232},D50:{X:96.422,Y:100,Z:82.521},D55:{X:95.682,Y:100,Z:92.149},D65:{X:95.047,Y:100,Z:108.883},D75:{X:94.972,Y:100,Z:122.638},E:{X:100,Y:100,Z:100},F2:{X:.99186*100,Y:100,Z:67.393},F7:{X:95.041,Y:100,Z:108.747},F11:{X:1.00962*100,Y:100,Z:64.35}},TRANSFORMS={BRADFORD:[[.8951,.2664,-.1614],[-.7502,1.7135,.0367],[.0389,-.0685,1.0296]],INVERSE_BRADFORD:[[.9869929,-.1470543,.1599627],[.4323053,.5183603,.0492912],[-.0085287,.0400428,.9684867]],SRGB_XYZ:[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],INVERSE_SRGB_XYZ:[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]]},contains=function(r,t){var n=new Set(Object.keys(r));return t.every(function(r){return n.has(r)})},stringStartsWith=function(r,t){return\"string\"==typeof r&&r.slice(0,t.length)===t},testColorType={hex:function(r){return stringStartsWith(r,\"#\")},rgb:function(r){return contains(r,[\"r\",\"g\",\"b\"])},cssrgb:function(r){return stringStartsWith(r,\"rgb(\")},hsl:function(r){return contains(r,[\"h\",\"s\",\"l\"])},csshsl:function(r){return stringStartsWith(r,\"hsl(\")},hsv:function(r){return contains(r,[\"h\",\"s\",\"v\"])},cmyk:function(r){return contains(r,[\"c\",\"m\",\"y\",\"k\"])},yiq:function(r){return contains(r,[\"y\",\"i\",\"q\"])},XYZ:function(r){return contains(r,[\"X\",\"Y\",\"Z\"])},xyY:function(r){return contains(r,[\"x\",\"y\",\"Y\"])},lms:function(r){return contains(r,[\"rho\",\"gamma\",\"beta\"])},cielab:function(r){return contains(r,[\"L\",\"a\",\"b\"])},cieluv:function(r){return contains(r,[\"L\",\"u\",\"v\"])},cielch:function(r){return contains(r,[\"L\",\"C\",\"h\"])},hsluv:function(r){return contains(r,[\"hu\",\"s\",\"l\"])}},types=Object.keys(testColorType),epsilon=.008856,kappa=903.3,white=getIlluminant(\"D65\"),toR=function(r){return Math.pow(r,3)>epsilon?Math.pow(r,3):(116*r-16)/kappa},cielab={XYZ:function(r){var t=(r.L+16)/116,n=r.a/500+t,e=t-r.b/200,o=toR(n),u=toR(e),a=r.L>kappa*epsilon?Math.pow(t,3):r.L/kappa;return{X:o*white.X,Y:a*white.Y,Z:u*white.Z}}},cielch={cieluv:function(r){var t=toRadian(r.h),n=r.C*Math.cos(t),e=r.C*Math.sin(t);return{L:r.L,u:n,v:e}},hsluv:function(r){if(r.L>99.9999999)return{hu:r.h,s:0,l:100};if(r.L<1e-8)return{hu:r.h,s:0,l:0};for(var t=(r.L+16)/1560896,n=t>.008856?t:r.L/903.3,e=getTransform(\"INVERSE_SRGB_XYZ\"),o=[],u=0;u<3;u++)for(var a=e[u][0],c=e[u][1],i=e[u][2],s=0;s<2;s++){var l=(284517*a-94839*i)*n,h=(838422*i+769860*c+731718*a)*r.L*n-769860*s*r.L,f=(632260*i-126452*c)*n+126452*s;o.push({m:l/f,b:h/f})}var v=Number.MAX_VALUE,b=toRadian(r.h);o.forEach(function(r){var t=r.b/(Math.sin(b)-r.m*Math.cos(b));t>=0&&(v=Math.min(v,t))});var g=v;return{hu:r.h,s:r.C/g*100,l:r.L}}},cieluv={XYZ:function(r){var t=getIlluminant(\"D65\"),n=function(r){return 4*r.X/(r.X+15*r.Y+3*r.Z)}(t),e=function(r){return 9*r.Y/(r.X+15*r.Y+3*r.Z)}(t),o=1/3*(52*r.L/(r.u+13*r.L*n)-1),u=r.L>903.3*.008856?Math.pow((r.L+16)/116,3):r.L/903.3,a=-5*u,c=(u*(39*r.L/(r.v+13*r.L*e)-5)-a)/(o- -1/3);return{X:100*c,Y:100*u,Z:100*(c*o+a)}},cielch:function(r){var t=Math.sqrt(Math.pow(r.u,2)+Math.pow(r.v,2)),n=Math.atan2(r.v,r.u);return n<0&&(n+=2*Math.PI),n=toDegree(n),{L:r.L,C:t,h:n}}},rgb=function(r){return{r:255*(1-r.c)*(1-r.k),g:255*(1-r.m)*(1-r.k),b:255*(1-r.y)*(1-r.k)}},cmyk={rgb:rgb,cssrgb:function(r){var t=rgb(r),n=t.r,e=t.g,o=t.b;return\"rgb(\"+Math.round(n)+\",\"+Math.round(e)+\",\"+Math.round(o)+\")\"}},csshsl={hsl:function(r){var t=r.replace(/(hsl\\(|\\)|%|[\\s]*)/g,\"\").split(\",\").map(function(r){return parseInt(r,10)});return{h:t[0],s:t[1],l:t[2]}}},cssrgb={rgb:function(r){var t=r.replace(/((rgb\\(|\\))|[\\s]*)/g,\"\").split(\",\").map(function(r){return parseInt(r,10)});return{r:t[0],g:t[1],b:t[2]}}},hex={rgb:function(r){var t=r.replace(\"#\",\"\").match(/.{2}/g).map(function(r){return parseInt(r,16)});return{r:t[0],g:t[1],b:t[2]}}},hsl={rgb:function(r){if(0===r.s){var t=r.l/100*255;return{r:t,g:t,b:t}}var n,e,o;n=r.l>=50?r.l/100+r.s/100-r.l/100*(r.s/100):r.l/100*(1+r.s/100),e=r.l/100*2-n;var u,a,c,i=((o=r.h/360)+.333)%1,s=o,l=negativeModulo(o-.333,1);return u=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+6*(.666-i)*(n-e):e,a=6*s<1?e+6*(n-e)*s:2*s<1?n:3*s<2?e+6*(.666-s)*(n-e):e,c=6*l<1?e+6*(n-e)*l:2*l<1?n:3*l<2?e+6*(.666-l)*(n-e):e,u<0&&(u=0),a<0&&(a=0),c<0&&(c=0),{r:255*u,g:255*a,b:255*c}},csshsl:function(r){return\"hsl(\"+Math.round(r.h)+\",\"+Math.round(r.s)+\"%,\"+Math.round(r.l)+\"%)\"},hsv:function(r){var t=Object.assign({},r,{s:r.s/100,l:r.l/100}),n=t.s*(t.l<.5?t.l:1-t.l);return{h:t.h,s:100*(2*n/(t.l+n)),v:100*(t.l+n)}}},hsluv={cielch:function(r){if(r.L>99.9999999)return{L:100,C:0,h:r.hu};if(r.L<1e-8)return{L:0,C:0,h:r.hu};for(var t=(r.l+16)/1560896,n=t>.008856?t:r.l/903.3,e=getTransform(\"INVERSE_SRGB_XYZ\"),o=[],u=0;u<3;u++)for(var a=e[u][0],c=e[u][1],i=e[u][2],s=0;s<2;s++){var l=(284517*a-94839*i)*n,h=(838422*i+769860*c+731718*a)*r.l*n-769860*s*r.l,f=(632260*i-126452*c)*n+126452*s;o.push({m:l/f,b:h/f})}var v=Number.MAX_VALUE,b=toRadian(r.hu);o.forEach(function(r){var t=r.b/(Math.sin(b)-r.m*Math.cos(b));t>=0&&(v=Math.min(v,t))});var g=v;return{L:r.l,C:g/100*r.s,h:r.hu}}},hsv={hsl:function(r){var t=Object.assign({},r,{h:r.h/360,s:r.s/100,v:r.v/100});return{h:360*t.h,s:100*((2-t.s)*t.v<1?t.s*t.v/((2-t.s)*t.v):t.s*t.v/(2-(2-t.s)*t.v)),l:100*((2-t.s)*t.v/2)}}},lms={XYZ:function(r){var t=[r.rho,r.gamma,r.beta],n=getTransform(\"INVERSE_BRADFORD\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)});return{X:100*n[0],Y:100*n[1],Z:100*n[2]}}},bounded255=function(r){return bounded(r,[0,255])},slicedToArray=function(){function r(r,t){var n=[],e=!0,o=!1,u=void 0;try{for(var a,c=r[Symbol.iterator]();!(e=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);e=!0);}catch(r){o=!0,u=r}finally{try{!e&&c.return&&c.return()}finally{if(o)throw u}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return r(t,n);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),epsilon$1=.008856,kappa$1=903.3,white$1=getIlluminant(\"D65\"),fromXYZ={rgb:function(r){var t=[r.X,r.Y,r.Z].map(function(r){return r/100}),n=getTransform(\"INVERSE_SRGB_XYZ\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)}).map(function(r){return r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055}).map(function(r){return 255*r}),e=slicedToArray(n,3);return boundedRgb({r:e[0],g:e[1],b:e[2]})},lms:function(r){var t=[r.X,r.Y,r.Z].map(function(r){return r/100}),n=getTransform(\"BRADFORD\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)});return{rho:n[0],gamma:n[1],beta:n[2]}},cielab:function(r){var t=r.X/white$1.X,n=r.Y/white$1.Y,e=r.Z/white$1.Z,o=function(r){return r>epsilon$1?cubeRoot(r):(kappa$1*r+16)/116},u=o(t),a=o(n);return{L:116*a-16,a:500*(u-a),b:200*(a-o(e))}},cieluv:function(r){var t=r.Y/white$1.Y,n=t>epsilon$1?116*cubeRoot(t)-16:kappa$1*t,e=function(r){return 4*r.X/(r.X+15*r.Y+3*r.Z)},o=function(r){return 9*r.Y/(r.X+15*r.Y+3*r.Z)};return{L:n,u:13*n*(e(r)-e(white$1)),v:13*n*(o(r)-o(white$1))}},xyY:function(r){return{x:r.X/(r.X+r.Y+r.Z),y:r.Y/(r.X+r.Y+r.Z),Y:r.Y}}},fromXYZTolms=fromXYZ.lms,fromXYZTocielab=fromXYZ.cielab,fromXYZTocieluv=fromXYZ.cieluv,fromXYZToxyY=fromXYZ.xyY,hsl$1=function(r){var t,n,e=r.r/255,o=r.g/255,u=r.b/255,a=[e,o,u].sort(),c=(a[0]+a[2])/2*100;return a[0]===a[2]?(t=0,n=0):(t=c>=50?(a[2]-a[0])/(2-a[2]-a[0])*100:(a[2]-a[0])/(a[2]+a[0])*100,(n=a[2]===e?(o-u)/(a[2]-a[0])*60:a[2]===o?60*(2+(u-e)/(a[2]-a[0])):60*(4+(e-o)/(a[2]-a[0])))<0?n+=360:n>360&&(n%=360)),{h:n,s:t,l:c}},cieluv$1=function(r){return fromXYZTocieluv(XYZ(r))},XYZ=function(r){var t=[r.r,r.g,r.b].map(function(r){return r/255}).map(function(r){return r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}),n=getTransform(\"SRGB_XYZ\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)}).map(function(r){return 100*r}),e=slicedToArray(n,3);return{X:e[0],Y:e[1],Z:e[2]}},rgb$1={hex:function(r){var t=Math.round(r.r).toString(16);1===t.length&&(t=\"0\"+t);var n=Math.round(r.g).toString(16);1===n.length&&(n=\"0\"+n);var e=Math.round(r.b).toString(16);return 1===e.length&&(e=\"0\"+e),\"#\"+t+n+e},cssrgb:function(r){return\"rgb(\"+Math.round(r.r)+\",\"+Math.round(r.g)+\",\"+Math.round(r.b)+\")\"},hsl:hsl$1,csshsl:function(r){var t=hsl$1(r),n=t.h,e=t.s,o=t.l;return\"hsl(\"+Math.round(n)+\",\"+Math.round(e)+\"%,\"+Math.round(o)+\"%)\"},cmyk:function(r){var t=r.r/255,n=r.g/255,e=r.b/255,o=1-Math.max(t,n,e);return 1!==o?{c:(1-t-o)/(1-o),m:(1-n-o)/(1-o),y:(1-e-o)/(1-o),k:o}:{c:0,m:0,y:0,k:o}},yiq:function(r){var t=r.r/255*.299+r.g/255*.587+r.b/255*.114,n=r.r/255*.596+r.g/255*-.274+r.b/255*-.322,e=r.r/255*.211+r.g/255*-.523+r.b/255*.312;return n=bounded(n,[-.5957,.5957]),e=bounded(e,[-.5226,.5226]),{y:t,i:n,q:e}},XYZ:XYZ,lms:function(r){return fromXYZTolms(XYZ(r))},cielab:function(r){return fromXYZTocielab(XYZ(r))},cieluv:cieluv$1,xyY:function(r){return fromXYZToxyY(XYZ(r))}},xyY={XYZ:function(r){var t=r.x,n=r.y,e=r.Y;return{X:e/n*t,Y:e,Z:e/n*(1-t-n)}}},bound=function(r){return bounded(r,[0,255])},yiq={rgb:function(r){var t=bounded(r.i,[-.5957,.5957]),n=bounded(r.q,[-.5226,.5226]);return{r:255*bound(r.y+.956*t+.621*n),g:255*bound(r.y+-.272*t+-.647*n),b:255*bound(r.y+-1.106*t+-1.703*n)}}},conversions=Object.freeze({cielab:cielab,cielch:cielch,cieluv:cieluv,cmyk:cmyk,csshsl:csshsl,cssrgb:cssrgb,hex:hex,hsl:hsl,hsluv:hsluv,hsv:hsv,lms:lms,rgb:rgb$1,xyY:xyY,XYZ:fromXYZ,yiq:yiq}),conversionSteps={rgb:{default:\"XYZ\",csshsl:\"hsl\",hsv:\"hsl\"},hex:\"rgb\",hsl:\"rgb\",hsv:\"hsl\",csshsl:\"hsl\",cssrgb:\"rgb\",cmyk:\"rgb\",XYZ:{default:\"rgb\",cielch:\"cieluv\",hsluv:\"cieluv\"},xyY:\"XYZ\",lms:\"XYZ\",cieluv:{default:\"XYZ\",hsluv:\"cielch\"},cielch:\"cieluv\",cielab:\"XYZ\",yiq:\"rgb\",hsluv:\"cielch\"},convertNow=function(r,t,n){return conversions[r][t](n)},types$1=Object.keys(testColorType),convertArrayOrColour=function(r,t){return Array.isArray(t)?t.map(function(t){return convert(r,t)}):convert(r,t)};exports.adapt=adapt,exports.adjacent=adjacent,exports.brightness=brightness,exports.complementary=complementary,exports.contrast=contrast,exports.contrastRatio=contrastRatio,exports.convert=makeColourObject,exports.difference=difference,exports.fade=fade,exports.greyscale=greyscale,exports.hue=hue,exports.invert=invert,exports.invertLightness=invertLightness,exports.mid=mid,exports.multiply=multiply,exports.saturation=saturation,exports.sepia=sepia,exports.shade=shade,exports.temperature=temperature,exports.tetrad=tetrad,exports.triad=triad,exports.uniformComplementary=complementary$1,exports.uniformTriad=triad$1,exports.uniformTetrad=tetrad$1;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e||self)[\"v-click-outside\"]=n()}(this,function(){var e=\"__v-click-outside\",n=\"undefined\"!=typeof window,t=\"undefined\"!=typeof navigator,r=n&&(\"ontouchstart\"in window||t&&navigator.msMaxTouchPoints>0)?[\"touchstart\"]:[\"click\"],i=function(e){var n=e.event,t=e.handler;(0,e.middleware)(n)&&t(n)},a=function(n,t){var a=function(e){var n=\"function\"==typeof e;if(!n&&\"object\"!=typeof e)throw new Error(\"v-click-outside: Binding value must be a function or an object\");return{handler:n?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||r,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe),capture:Boolean(e.capture)}}(t.value),o=a.handler,d=a.middleware,c=a.detectIframe,u=a.capture;if(a.isActive){if(n[e]=a.events.map(function(e){return{event:e,srcTarget:document.documentElement,handler:function(e){return function(e){var n=e.el,t=e.event,r=e.handler,a=e.middleware,o=t.path||t.composedPath&&t.composedPath();(o?o.indexOf(n)<0:!n.contains(t.target))&&i({event:t,handler:r,middleware:a})}({el:n,event:e,handler:o,middleware:d})},capture:u}}),c){var l={event:\"blur\",srcTarget:window,handler:function(e){return function(e){var n=e.el,t=e.event,r=e.handler,a=e.middleware;setTimeout(function(){var e=document.activeElement;e&&\"IFRAME\"===e.tagName&&!n.contains(e)&&i({event:t,handler:r,middleware:a})},0)}({el:n,event:e,handler:o,middleware:d})},capture:u};n[e]=[].concat(n[e],[l])}n[e].forEach(function(t){var r=t.event,i=t.srcTarget,a=t.handler;return setTimeout(function(){n[e]&&i.addEventListener(r,a,u)},0)})}},o=function(n){(n[e]||[]).forEach(function(e){return e.srcTarget.removeEventListener(e.event,e.handler,e.capture)}),delete n[e]},d=n?{beforeMount:a,updated:function(e,n){var t=n.value,r=n.oldValue;JSON.stringify(t)!==JSON.stringify(r)&&(o(e),a(e,{value:t}))},unmounted:o}:{};return{install:function(e){e.directive(\"click-outside\",d)},directive:d}});\n//# sourceMappingURL=v-click-outside.umd.js.map\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&#39;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","const LANGUAGES_LIST = {\n aa: {\n name: 'Afar',\n nativeName: 'Afaraf',\n },\n ab: {\n name: 'Abkhaz',\n nativeName: 'аҧсуа бызшәа',\n },\n ae: {\n name: 'Avestan',\n nativeName: 'avesta',\n },\n af: {\n name: 'Afrikaans',\n nativeName: 'Afrikaans',\n },\n ak: {\n name: 'Akan',\n nativeName: 'Akan',\n },\n am: {\n name: 'Amharic',\n nativeName: 'አማርኛ',\n },\n an: {\n name: 'Aragonese',\n nativeName: 'aragonés',\n },\n ar: {\n name: 'Arabic',\n nativeName: 'اَلْعَرَبِيَّةُ',\n },\n as: {\n name: 'Assamese',\n nativeName: 'অসমীয়া',\n },\n av: {\n name: 'Avaric',\n nativeName: 'авар мацӀ',\n },\n ay: {\n name: 'Aymara',\n nativeName: 'aymar aru',\n },\n az: {\n name: 'Azerbaijani',\n nativeName: 'azərbaycan dili',\n },\n ba: {\n name: 'Bashkir',\n nativeName: 'башҡорт теле',\n },\n be: {\n name: 'Belarusian',\n nativeName: 'беларуская мова',\n },\n bg: {\n name: 'Bulgarian',\n nativeName: 'български език',\n },\n bi: {\n name: 'Bislama',\n nativeName: 'Bislama',\n },\n bm: {\n name: 'Bambara',\n nativeName: 'bamanankan',\n },\n bn: {\n name: 'Bengali',\n nativeName: 'বাংলা',\n },\n bo: {\n name: 'Tibetan',\n nativeName: 'བོད་ཡིག',\n },\n br: {\n name: 'Breton',\n nativeName: 'brezhoneg',\n },\n bs: {\n name: 'Bosnian',\n nativeName: 'bosanski jezik',\n },\n ca: {\n name: 'Catalan',\n nativeName: 'Català',\n },\n ce: {\n name: 'Chechen',\n nativeName: 'нохчийн мотт',\n },\n ch: {\n name: 'Chamorro',\n nativeName: 'Chamoru',\n },\n co: {\n name: 'Corsican',\n nativeName: 'corsu',\n },\n cr: {\n name: 'Cree',\n nativeName: 'ᓀᐦᐃᔭᐍᐏᐣ',\n },\n cs: {\n name: 'Czech',\n nativeName: 'čeština',\n },\n cu: {\n name: 'Old Church Slavonic',\n nativeName: 'ѩзыкъ словѣньскъ',\n },\n cv: {\n name: 'Chuvash',\n nativeName: 'чӑваш чӗлхи',\n },\n cy: {\n name: 'Welsh',\n nativeName: 'Cymraeg',\n },\n da: {\n name: 'Danish',\n nativeName: 'dansk',\n },\n de: {\n name: 'German',\n nativeName: 'Deutsch',\n },\n dv: {\n name: 'Divehi',\n nativeName: 'ދިވެހި',\n },\n dz: {\n name: 'Dzongkha',\n nativeName: 'རྫོང་ཁ',\n },\n ee: {\n name: 'Ewe',\n nativeName: 'Eʋegbe',\n },\n el: {\n name: 'Greek',\n nativeName: 'Ελληνικά',\n },\n en: {\n name: 'English',\n nativeName: 'English',\n },\n eo: {\n name: 'Esperanto',\n nativeName: 'Esperanto',\n },\n es: {\n name: 'Spanish',\n nativeName: 'Español',\n },\n et: {\n name: 'Estonian',\n nativeName: 'eesti',\n },\n eu: {\n name: 'Basque',\n nativeName: 'euskara',\n },\n fa: {\n name: 'Persian',\n nativeName: 'فارسی',\n },\n ff: {\n name: 'Fula',\n nativeName: 'Fulfulde',\n },\n fi: {\n name: 'Finnish',\n nativeName: 'suomi',\n },\n fj: {\n name: 'Fijian',\n nativeName: 'vosa Vakaviti',\n },\n fo: {\n name: 'Faroese',\n nativeName: 'føroyskt',\n },\n fr: {\n name: 'French',\n nativeName: 'Français',\n },\n fy: {\n name: 'Western Frisian',\n nativeName: 'Frysk',\n },\n ga: {\n name: 'Irish',\n nativeName: 'Gaeilge',\n },\n gd: {\n name: 'Scottish Gaelic',\n nativeName: 'Gàidhlig',\n },\n gl: {\n name: 'Galician',\n nativeName: 'galego',\n },\n gn: {\n name: 'Guaraní',\n nativeName: \"Avañe'ẽ\",\n },\n gu: {\n name: 'Gujarati',\n nativeName: 'ગુજરાતી',\n },\n gv: {\n name: 'Manx',\n nativeName: 'Gaelg',\n },\n ha: {\n name: 'Hausa',\n nativeName: 'هَوُسَ',\n },\n he: {\n name: 'Hebrew',\n nativeName: 'עברית',\n },\n hi: {\n name: 'Hindi',\n nativeName: 'हिन्दी',\n },\n ho: {\n name: 'Hiri Motu',\n nativeName: 'Hiri Motu',\n },\n hr: {\n name: 'Croatian',\n nativeName: 'Hrvatski',\n },\n ht: {\n name: 'Haitian',\n nativeName: 'Kreyòl ayisyen',\n },\n hu: {\n name: 'Hungarian',\n nativeName: 'magyar',\n },\n hy: {\n name: 'Armenian',\n nativeName: 'Հայերեն',\n },\n hz: {\n name: 'Herero',\n nativeName: 'Otjiherero',\n },\n ia: {\n name: 'Interlingua',\n nativeName: 'Interlingua',\n },\n id: {\n name: 'Indonesian',\n nativeName: 'Bahasa Indonesia',\n },\n ie: {\n name: 'Interlingue',\n nativeName: 'Interlingue',\n },\n ig: {\n name: 'Igbo',\n nativeName: 'Asụsụ Igbo',\n },\n ii: {\n name: 'Nuosu',\n nativeName: 'ꆈꌠ꒿ Nuosuhxop',\n },\n ik: {\n name: 'Inupiaq',\n nativeName: 'Iñupiaq',\n },\n io: {\n name: 'Ido',\n nativeName: 'Ido',\n },\n is: {\n name: 'Icelandic',\n nativeName: 'Íslenska',\n },\n it: {\n name: 'Italian',\n nativeName: 'Italiano',\n },\n iu: {\n name: 'Inuktitut',\n nativeName: 'ᐃᓄᒃᑎᑐᑦ',\n },\n ja: {\n name: 'Japanese',\n nativeName: '日本語',\n },\n jv: {\n name: 'Javanese',\n nativeName: 'basa Jawa',\n },\n ka: {\n name: 'Georgian',\n nativeName: 'ქართული',\n },\n kg: {\n name: 'Kongo',\n nativeName: 'Kikongo',\n },\n ki: {\n name: 'Kikuyu',\n nativeName: 'Gĩkũyũ',\n },\n kj: {\n name: 'Kwanyama',\n nativeName: 'Kuanyama',\n },\n kk: {\n name: 'Kazakh',\n nativeName: 'қазақ тілі',\n },\n kl: {\n name: 'Kalaallisut',\n nativeName: 'kalaallisut',\n },\n km: {\n name: 'Khmer',\n nativeName: 'ខេមរភាសា',\n },\n kn: {\n name: 'Kannada',\n nativeName: 'ಕನ್ನಡ',\n },\n ko: {\n name: 'Korean',\n nativeName: '한국어',\n },\n kr: {\n name: 'Kanuri',\n nativeName: 'Kanuri',\n },\n ks: {\n name: 'Kashmiri',\n nativeName: 'कश्मीरी',\n },\n ku: {\n name: 'Kurdish',\n nativeName: 'Kurdî',\n },\n kv: {\n name: 'Komi',\n nativeName: 'коми кыв',\n },\n kw: {\n name: 'Cornish',\n nativeName: 'Kernewek',\n },\n ky: {\n name: 'Kyrgyz',\n nativeName: 'Кыргызча',\n },\n la: {\n name: 'Latin',\n nativeName: 'latine',\n },\n lb: {\n name: 'Luxembourgish',\n nativeName: 'Lëtzebuergesch',\n },\n lg: {\n name: 'Ganda',\n nativeName: 'Luganda',\n },\n li: {\n name: 'Limburgish',\n nativeName: 'Limburgs',\n },\n ln: {\n name: 'Lingala',\n nativeName: 'Lingála',\n },\n lo: {\n name: 'Lao',\n nativeName: 'ພາສາລາວ',\n },\n lt: {\n name: 'Lithuanian',\n nativeName: 'lietuvių kalba',\n },\n lu: {\n name: 'Luba-Katanga',\n nativeName: 'Kiluba',\n },\n lv: {\n name: 'Latvian',\n nativeName: 'latviešu valoda',\n },\n mg: {\n name: 'Malagasy',\n nativeName: 'fiteny malagasy',\n },\n mh: {\n name: 'Marshallese',\n nativeName: 'Kajin M̧ajeļ',\n },\n mi: {\n name: 'Māori',\n nativeName: 'te reo Māori',\n },\n mk: {\n name: 'Macedonian',\n nativeName: 'македонски јазик',\n },\n ml: {\n name: 'Malayalam',\n nativeName: 'മലയാളം',\n },\n mn: {\n name: 'Mongolian',\n nativeName: 'Монгол хэл',\n },\n mr: {\n name: 'Marathi',\n nativeName: 'मराठी',\n },\n ms: {\n name: 'Malay',\n nativeName: 'Bahasa Melayu',\n },\n mt: {\n name: 'Maltese',\n nativeName: 'Malti',\n },\n my: {\n name: 'Burmese',\n nativeName: 'ဗမာစာ',\n },\n na: {\n name: 'Nauru',\n nativeName: 'Dorerin Naoero',\n },\n nb: {\n name: 'Norwegian Bokmål',\n nativeName: 'Norsk bokmål',\n },\n nd: {\n name: 'Northern Ndebele',\n nativeName: 'isiNdebele',\n },\n ne: {\n name: 'Nepali',\n nativeName: 'नेपाली',\n },\n ng: {\n name: 'Ndonga',\n nativeName: 'Owambo',\n },\n nl: {\n name: 'Dutch',\n nativeName: 'Nederlands',\n },\n nn: {\n name: 'Norwegian Nynorsk',\n nativeName: 'Norsk nynorsk',\n },\n no: {\n name: 'Norwegian',\n nativeName: 'Norsk',\n },\n nr: {\n name: 'Southern Ndebele',\n nativeName: 'isiNdebele',\n },\n nv: {\n name: 'Navajo',\n nativeName: 'Diné bizaad',\n },\n ny: {\n name: 'Chichewa',\n nativeName: 'chiCheŵa',\n },\n oc: {\n name: 'Occitan',\n nativeName: 'occitan',\n },\n oj: {\n name: 'Ojibwe',\n nativeName: 'ᐊᓂᔑᓈᐯᒧᐎᓐ',\n },\n om: {\n name: 'Oromo',\n nativeName: 'Afaan Oromoo',\n },\n or: {\n name: 'Oriya',\n nativeName: 'ଓଡ଼ିଆ',\n },\n os: {\n name: 'Ossetian',\n nativeName: 'ирон æвзаг',\n },\n pa: {\n name: 'Panjabi',\n nativeName: 'ਪੰਜਾਬੀ',\n },\n pi: {\n name: 'Pāli',\n nativeName: 'पाऴि',\n },\n pl: {\n name: 'Polish',\n nativeName: 'Polski',\n },\n ps: {\n name: 'Pashto',\n nativeName: 'پښتو',\n },\n pt: {\n name: 'Portuguese',\n nativeName: 'Português',\n },\n qu: {\n name: 'Quechua',\n nativeName: 'Runa Simi',\n },\n rm: {\n name: 'Romansh',\n nativeName: 'rumantsch grischun',\n },\n rn: {\n name: 'Kirundi',\n nativeName: 'Ikirundi',\n },\n ro: {\n name: 'Romanian',\n nativeName: 'Română',\n },\n ru: {\n name: 'Russian',\n nativeName: 'Русский',\n },\n rw: {\n name: 'Kinyarwanda',\n nativeName: 'Ikinyarwanda',\n },\n sa: {\n name: 'Sanskrit',\n nativeName: 'संस्कृतम्',\n },\n sc: {\n name: 'Sardinian',\n nativeName: 'sardu',\n },\n sd: {\n name: 'Sindhi',\n nativeName: 'सिन्धी',\n },\n se: {\n name: 'Northern Sami',\n nativeName: 'Davvisámegiella',\n },\n sg: {\n name: 'Sango',\n nativeName: 'yângâ tî sängö',\n },\n si: {\n name: 'Sinhala',\n nativeName: 'සිංහල',\n },\n sk: {\n name: 'Slovak',\n nativeName: 'slovenčina',\n },\n sl: {\n name: 'Slovenian',\n nativeName: 'slovenščina',\n },\n sm: {\n name: 'Samoan',\n nativeName: \"gagana fa'a Samoa\",\n },\n sn: {\n name: 'Shona',\n nativeName: 'chiShona',\n },\n so: {\n name: 'Somali',\n nativeName: 'Soomaaliga',\n },\n sq: {\n name: 'Albanian',\n nativeName: 'Shqip',\n },\n sr: {\n name: 'Serbian',\n nativeName: 'српски језик',\n },\n ss: {\n name: 'Swati',\n nativeName: 'SiSwati',\n },\n st: {\n name: 'Southern Sotho',\n nativeName: 'Sesotho',\n },\n su: {\n name: 'Sundanese',\n nativeName: 'Basa Sunda',\n },\n sv: {\n name: 'Swedish',\n nativeName: 'Svenska',\n },\n sw: {\n name: 'Swahili',\n nativeName: 'Kiswahili',\n },\n ta: {\n name: 'Tamil',\n nativeName: 'தமிழ்',\n },\n te: {\n name: 'Telugu',\n nativeName: 'తెలుగు',\n },\n tg: {\n name: 'Tajik',\n nativeName: 'тоҷикӣ',\n },\n th: {\n name: 'Thai',\n nativeName: 'ไทย',\n },\n ti: {\n name: 'Tigrinya',\n nativeName: 'ትግርኛ',\n },\n tk: {\n name: 'Turkmen',\n nativeName: 'Türkmençe',\n },\n tl: {\n name: 'Tagalog',\n nativeName: 'Wikang Tagalog',\n },\n tn: {\n name: 'Tswana',\n nativeName: 'Setswana',\n },\n to: {\n name: 'Tonga',\n nativeName: 'faka Tonga',\n },\n tr: {\n name: 'Turkish',\n nativeName: 'Türkçe',\n },\n ts: {\n name: 'Tsonga',\n nativeName: 'Xitsonga',\n },\n tt: {\n name: 'Tatar',\n nativeName: 'татар теле',\n },\n tw: {\n name: 'Twi',\n nativeName: 'Twi',\n },\n ty: {\n name: 'Tahitian',\n nativeName: 'Reo Tahiti',\n },\n ug: {\n name: 'Uyghur',\n nativeName: 'ئۇيغۇرچە‎',\n },\n uk: {\n name: 'Ukrainian',\n nativeName: 'Українська',\n },\n ur: {\n name: 'Urdu',\n nativeName: 'اردو',\n },\n uz: {\n name: 'Uzbek',\n nativeName: 'Ўзбек',\n },\n ve: {\n name: 'Venda',\n nativeName: 'Tshivenḓa',\n },\n vi: {\n name: 'Vietnamese',\n nativeName: 'Tiếng Việt',\n },\n vo: {\n name: 'Volapük',\n nativeName: 'Volapük',\n },\n wa: {\n name: 'Walloon',\n nativeName: 'walon',\n },\n wo: {\n name: 'Wolof',\n nativeName: 'Wollof',\n },\n xh: {\n name: 'Xhosa',\n nativeName: 'isiXhosa',\n },\n yi: {\n name: 'Yiddish',\n nativeName: 'ייִדיש',\n },\n yo: {\n name: 'Yoruba',\n nativeName: 'Yorùbá',\n },\n za: {\n name: 'Zhuang',\n nativeName: 'Saɯ cueŋƅ',\n },\n zh: {\n name: 'Chinese',\n nativeName: '中文',\n },\n zu: {\n name: 'Zulu',\n nativeName: 'isiZulu',\n },\n};\n\nexport default LANGUAGES_LIST;\n","import LANGUAGES_LIST from './data';\n\nexport default class ISO6391 {\n static getLanguages(codes = []) {\n return codes.map(code => ({\n code,\n name: ISO6391.getName(code),\n nativeName: ISO6391.getNativeName(code),\n }));\n }\n\n static getName(code) {\n return ISO6391.validate(code) ? LANGUAGES_LIST[code].name : '';\n }\n\n static getAllNames() {\n return Object.values(LANGUAGES_LIST).map(l => l.name);\n }\n\n static getNativeName(code) {\n return ISO6391.validate(code) ? LANGUAGES_LIST[code].nativeName : '';\n }\n\n static getAllNativeNames() {\n return Object.values(LANGUAGES_LIST).map(l => l.nativeName);\n }\n\n static getCode(name) {\n const code = Object.keys(LANGUAGES_LIST).find(code => {\n const language = LANGUAGES_LIST[code];\n\n return (\n language.name.toLowerCase() === name.toLowerCase() ||\n language.nativeName.toLowerCase() === name.toLowerCase()\n );\n });\n return code || '';\n }\n\n static getAllCodes() {\n return Object.keys(LANGUAGES_LIST);\n }\n\n static validate(code) {\n return LANGUAGES_LIST.hasOwnProperty(code);\n }\n}\n","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","var copyArray = require('./_copyArray'),\n shuffleSelf = require('./_shuffleSelf');\n\n/**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n}\n\nmodule.exports = arrayShuffle;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","var baseUnset = require('./_baseUnset'),\n isIndex = require('./_isIndex');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nmodule.exports = basePullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nmodule.exports = baseRandom;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","var shuffleSelf = require('./_shuffleSelf'),\n values = require('./values');\n\n/**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction baseShuffle(collection) {\n return shuffleSelf(values(collection));\n}\n\nmodule.exports = baseShuffle;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nmodule.exports = charsEndIndex;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nmodule.exports = charsStartIndex;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseRandom = require('./_baseRandom');\n\n/**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\nfunction shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n}\n\nmodule.exports = shuffleSelf;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map HTML entities to characters. */\nvar htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\"\n};\n\n/**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\nvar unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\nmodule.exports = unescapeHtmlChar;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","var arrayPush = require('./_arrayPush'),\n baseFlatten = require('./_baseFlatten'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray');\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nmodule.exports = concat;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","module.exports = require('./forEach');\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nmodule.exports = findLastIndex;\n","module.exports = require('./head');\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nmodule.exports = keyBy;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","var baseExtremum = require('./_baseExtremum'),\n baseIteratee = require('./_baseIteratee'),\n baseLt = require('./_baseLt');\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nmodule.exports = minBy;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var arrayReduce = require('./_arrayReduce'),\n baseEach = require('./_baseEach'),\n baseIteratee = require('./_baseIteratee'),\n baseReduce = require('./_baseReduce'),\n isArray = require('./isArray');\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n negate = require('./negate');\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nmodule.exports = reject;\n","var baseIteratee = require('./_baseIteratee'),\n basePullAt = require('./_basePullAt');\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nmodule.exports = remove;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","var arrayShuffle = require('./_arrayShuffle'),\n baseShuffle = require('./_baseShuffle'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\nfunction shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n}\n\nmodule.exports = shuffle;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nmodule.exports = slice;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseIteratee = require('./_baseIteratee'),\n baseSum = require('./_baseSum');\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nmodule.exports = sumBy;\n","var baseSlice = require('./_baseSlice'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\nfunction take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nmodule.exports = take;\n","var baseSlice = require('./_baseSlice'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\nfunction takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nmodule.exports = takeRight;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseToString = require('./_baseToString'),\n baseTrim = require('./_baseTrim'),\n castSlice = require('./_castSlice'),\n charsEndIndex = require('./_charsEndIndex'),\n charsStartIndex = require('./_charsStartIndex'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nmodule.exports = trim;\n","var toString = require('./toString'),\n unescapeHtmlChar = require('./_unescapeHtmlChar');\n\n/** Used to match HTML entities and HTML characters. */\nvar reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source);\n\n/**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, &amp; pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n}\n\nmodule.exports = unescape;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","'use strict';\n\nvar qs = require('querystring')\n , url = require('url')\n , xtend = require('xtend');\n\nconst PARSE_LINK_HEADER_MAXLEN = parseInt(process.env.PARSE_LINK_HEADER_MAXLEN) || 2000;\nconst PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED = process.env.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED != null\n\nfunction hasRel(x) {\n return x && x.rel;\n}\n\nfunction intoRels (acc, x) {\n function splitRel (rel) {\n acc[rel] = xtend(x, { rel: rel });\n }\n\n x.rel.split(/\\s+/).forEach(splitRel);\n\n return acc;\n}\n\nfunction createObjects (acc, p) {\n // rel=\"next\" => 1: rel 2: next\n var m = p.match(/\\s*(.+)\\s*=\\s*\"?([^\"]+)\"?/)\n if (m) acc[m[1]] = m[2];\n return acc;\n}\n\nfunction parseLink(link) {\n try {\n var m = link.match(/<?([^>]*)>(.*)/)\n , linkUrl = m[1]\n , parts = m[2].split(';')\n , parsedUrl = url.parse(linkUrl)\n , qry = qs.parse(parsedUrl.query);\n\n parts.shift();\n\n var info = parts\n .reduce(createObjects, {});\n \n info = xtend(qry, info);\n info.url = linkUrl;\n return info;\n } catch (e) {\n return null;\n }\n}\n\nfunction checkHeader(linkHeader){\n if (!linkHeader) return false;\n\n if (linkHeader.length > PARSE_LINK_HEADER_MAXLEN) {\n if (PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED) {\n throw new Error('Input string too long, it should be under ' + PARSE_LINK_HEADER_MAXLEN + ' characters.');\n } else {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = function (linkHeader) {\n if (!checkHeader(linkHeader)) return null;\n\n return linkHeader.split(/,\\s*</)\n .map(parseLink)\n .filter(hasRel)\n .reduce(intoRels, {});\n};\n","// js/phoenix/utils.js\nvar closure = (value) => {\n if (typeof value === \"function\") {\n return value;\n } else {\n let closure2 = function() {\n return value;\n };\n return closure2;\n }\n};\n\n// js/phoenix/constants.js\nvar globalSelf = typeof self !== \"undefined\" ? self : null;\nvar phxWindow = typeof window !== \"undefined\" ? window : null;\nvar global = globalSelf || phxWindow || void 0;\nvar DEFAULT_VSN = \"2.0.0\";\nvar SOCKET_STATES = { connecting: 0, open: 1, closing: 2, closed: 3 };\nvar DEFAULT_TIMEOUT = 1e4;\nvar WS_CLOSE_NORMAL = 1e3;\nvar CHANNEL_STATES = {\n closed: \"closed\",\n errored: \"errored\",\n joined: \"joined\",\n joining: \"joining\",\n leaving: \"leaving\"\n};\nvar CHANNEL_EVENTS = {\n close: \"phx_close\",\n error: \"phx_error\",\n join: \"phx_join\",\n reply: \"phx_reply\",\n leave: \"phx_leave\"\n};\nvar TRANSPORTS = {\n longpoll: \"longpoll\",\n websocket: \"websocket\"\n};\nvar XHR_STATES = {\n complete: 4\n};\n\n// js/phoenix/push.js\nvar Push = class {\n constructor(channel, event, payload, timeout) {\n this.channel = channel;\n this.event = event;\n this.payload = payload || function() {\n return {};\n };\n this.receivedResp = null;\n this.timeout = timeout;\n this.timeoutTimer = null;\n this.recHooks = [];\n this.sent = false;\n }\n resend(timeout) {\n this.timeout = timeout;\n this.reset();\n this.send();\n }\n send() {\n if (this.hasReceived(\"timeout\")) {\n return;\n }\n this.startTimeout();\n this.sent = true;\n this.channel.socket.push({\n topic: this.channel.topic,\n event: this.event,\n payload: this.payload(),\n ref: this.ref,\n join_ref: this.channel.joinRef()\n });\n }\n receive(status, callback) {\n if (this.hasReceived(status)) {\n callback(this.receivedResp.response);\n }\n this.recHooks.push({ status, callback });\n return this;\n }\n reset() {\n this.cancelRefEvent();\n this.ref = null;\n this.refEvent = null;\n this.receivedResp = null;\n this.sent = false;\n }\n matchReceive({ status, response, _ref }) {\n this.recHooks.filter((h) => h.status === status).forEach((h) => h.callback(response));\n }\n cancelRefEvent() {\n if (!this.refEvent) {\n return;\n }\n this.channel.off(this.refEvent);\n }\n cancelTimeout() {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = null;\n }\n startTimeout() {\n if (this.timeoutTimer) {\n this.cancelTimeout();\n }\n this.ref = this.channel.socket.makeRef();\n this.refEvent = this.channel.replyEventName(this.ref);\n this.channel.on(this.refEvent, (payload) => {\n this.cancelRefEvent();\n this.cancelTimeout();\n this.receivedResp = payload;\n this.matchReceive(payload);\n });\n this.timeoutTimer = setTimeout(() => {\n this.trigger(\"timeout\", {});\n }, this.timeout);\n }\n hasReceived(status) {\n return this.receivedResp && this.receivedResp.status === status;\n }\n trigger(status, response) {\n this.channel.trigger(this.refEvent, { status, response });\n }\n};\n\n// js/phoenix/timer.js\nvar Timer = class {\n constructor(callback, timerCalc) {\n this.callback = callback;\n this.timerCalc = timerCalc;\n this.timer = null;\n this.tries = 0;\n }\n reset() {\n this.tries = 0;\n clearTimeout(this.timer);\n }\n scheduleTimeout() {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.tries = this.tries + 1;\n this.callback();\n }, this.timerCalc(this.tries + 1));\n }\n};\n\n// js/phoenix/channel.js\nvar Channel = class {\n constructor(topic, params, socket) {\n this.state = CHANNEL_STATES.closed;\n this.topic = topic;\n this.params = closure(params || {});\n this.socket = socket;\n this.bindings = [];\n this.bindingRef = 0;\n this.timeout = this.socket.timeout;\n this.joinedOnce = false;\n this.joinPush = new Push(this, CHANNEL_EVENTS.join, this.params, this.timeout);\n this.pushBuffer = [];\n this.stateChangeRefs = [];\n this.rejoinTimer = new Timer(() => {\n if (this.socket.isConnected()) {\n this.rejoin();\n }\n }, this.socket.rejoinAfterMs);\n this.stateChangeRefs.push(this.socket.onError(() => this.rejoinTimer.reset()));\n this.stateChangeRefs.push(this.socket.onOpen(() => {\n this.rejoinTimer.reset();\n if (this.isErrored()) {\n this.rejoin();\n }\n }));\n this.joinPush.receive(\"ok\", () => {\n this.state = CHANNEL_STATES.joined;\n this.rejoinTimer.reset();\n this.pushBuffer.forEach((pushEvent) => pushEvent.send());\n this.pushBuffer = [];\n });\n this.joinPush.receive(\"error\", () => {\n this.state = CHANNEL_STATES.errored;\n if (this.socket.isConnected()) {\n this.rejoinTimer.scheduleTimeout();\n }\n });\n this.onClose(() => {\n this.rejoinTimer.reset();\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `close ${this.topic} ${this.joinRef()}`);\n this.state = CHANNEL_STATES.closed;\n this.socket.remove(this);\n });\n this.onError((reason) => {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `error ${this.topic}`, reason);\n if (this.isJoining()) {\n this.joinPush.reset();\n }\n this.state = CHANNEL_STATES.errored;\n if (this.socket.isConnected()) {\n this.rejoinTimer.scheduleTimeout();\n }\n });\n this.joinPush.receive(\"timeout\", () => {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `timeout ${this.topic} (${this.joinRef()})`, this.joinPush.timeout);\n let leavePush = new Push(this, CHANNEL_EVENTS.leave, closure({}), this.timeout);\n leavePush.send();\n this.state = CHANNEL_STATES.errored;\n this.joinPush.reset();\n if (this.socket.isConnected()) {\n this.rejoinTimer.scheduleTimeout();\n }\n });\n this.on(CHANNEL_EVENTS.reply, (payload, ref) => {\n this.trigger(this.replyEventName(ref), payload);\n });\n }\n join(timeout = this.timeout) {\n if (this.joinedOnce) {\n throw new Error(\"tried to join multiple times. 'join' can only be called a single time per channel instance\");\n } else {\n this.timeout = timeout;\n this.joinedOnce = true;\n this.rejoin();\n return this.joinPush;\n }\n }\n onClose(callback) {\n this.on(CHANNEL_EVENTS.close, callback);\n }\n onError(callback) {\n return this.on(CHANNEL_EVENTS.error, (reason) => callback(reason));\n }\n on(event, callback) {\n let ref = this.bindingRef++;\n this.bindings.push({ event, ref, callback });\n return ref;\n }\n off(event, ref) {\n this.bindings = this.bindings.filter((bind) => {\n return !(bind.event === event && (typeof ref === \"undefined\" || ref === bind.ref));\n });\n }\n canPush() {\n return this.socket.isConnected() && this.isJoined();\n }\n push(event, payload, timeout = this.timeout) {\n payload = payload || {};\n if (!this.joinedOnce) {\n throw new Error(`tried to push '${event}' to '${this.topic}' before joining. Use channel.join() before pushing events`);\n }\n let pushEvent = new Push(this, event, function() {\n return payload;\n }, timeout);\n if (this.canPush()) {\n pushEvent.send();\n } else {\n pushEvent.startTimeout();\n this.pushBuffer.push(pushEvent);\n }\n return pushEvent;\n }\n leave(timeout = this.timeout) {\n this.rejoinTimer.reset();\n this.joinPush.cancelTimeout();\n this.state = CHANNEL_STATES.leaving;\n let onClose = () => {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `leave ${this.topic}`);\n this.trigger(CHANNEL_EVENTS.close, \"leave\");\n };\n let leavePush = new Push(this, CHANNEL_EVENTS.leave, closure({}), timeout);\n leavePush.receive(\"ok\", () => onClose()).receive(\"timeout\", () => onClose());\n leavePush.send();\n if (!this.canPush()) {\n leavePush.trigger(\"ok\", {});\n }\n return leavePush;\n }\n onMessage(_event, payload, _ref) {\n return payload;\n }\n isMember(topic, event, payload, joinRef) {\n if (this.topic !== topic) {\n return false;\n }\n if (joinRef && joinRef !== this.joinRef()) {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", \"dropping outdated message\", { topic, event, payload, joinRef });\n return false;\n } else {\n return true;\n }\n }\n joinRef() {\n return this.joinPush.ref;\n }\n rejoin(timeout = this.timeout) {\n if (this.isLeaving()) {\n return;\n }\n this.socket.leaveOpenTopic(this.topic);\n this.state = CHANNEL_STATES.joining;\n this.joinPush.resend(timeout);\n }\n trigger(event, payload, ref, joinRef) {\n let handledPayload = this.onMessage(event, payload, ref, joinRef);\n if (payload && !handledPayload) {\n throw new Error(\"channel onMessage callbacks must return the payload, modified or unmodified\");\n }\n let eventBindings = this.bindings.filter((bind) => bind.event === event);\n for (let i = 0; i < eventBindings.length; i++) {\n let bind = eventBindings[i];\n bind.callback(handledPayload, ref, joinRef || this.joinRef());\n }\n }\n replyEventName(ref) {\n return `chan_reply_${ref}`;\n }\n isClosed() {\n return this.state === CHANNEL_STATES.closed;\n }\n isErrored() {\n return this.state === CHANNEL_STATES.errored;\n }\n isJoined() {\n return this.state === CHANNEL_STATES.joined;\n }\n isJoining() {\n return this.state === CHANNEL_STATES.joining;\n }\n isLeaving() {\n return this.state === CHANNEL_STATES.leaving;\n }\n};\n\n// js/phoenix/ajax.js\nvar Ajax = class {\n static request(method, endPoint, accept, body, timeout, ontimeout, callback) {\n if (global.XDomainRequest) {\n let req = new global.XDomainRequest();\n this.xdomainRequest(req, method, endPoint, body, timeout, ontimeout, callback);\n } else {\n let req = new global.XMLHttpRequest();\n this.xhrRequest(req, method, endPoint, accept, body, timeout, ontimeout, callback);\n }\n }\n static xdomainRequest(req, method, endPoint, body, timeout, ontimeout, callback) {\n req.timeout = timeout;\n req.open(method, endPoint);\n req.onload = () => {\n let response = this.parseJSON(req.responseText);\n callback && callback(response);\n };\n if (ontimeout) {\n req.ontimeout = ontimeout;\n }\n req.onprogress = () => {\n };\n req.send(body);\n }\n static xhrRequest(req, method, endPoint, accept, body, timeout, ontimeout, callback) {\n req.open(method, endPoint, true);\n req.timeout = timeout;\n req.setRequestHeader(\"Content-Type\", accept);\n req.onerror = () => {\n callback && callback(null);\n };\n req.onreadystatechange = () => {\n if (req.readyState === XHR_STATES.complete && callback) {\n let response = this.parseJSON(req.responseText);\n callback(response);\n }\n };\n if (ontimeout) {\n req.ontimeout = ontimeout;\n }\n req.send(body);\n }\n static parseJSON(resp) {\n if (!resp || resp === \"\") {\n return null;\n }\n try {\n return JSON.parse(resp);\n } catch (e) {\n console && console.log(\"failed to parse JSON response\", resp);\n return null;\n }\n }\n static serialize(obj, parentKey) {\n let queryStr = [];\n for (var key in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n continue;\n }\n let paramKey = parentKey ? `${parentKey}[${key}]` : key;\n let paramVal = obj[key];\n if (typeof paramVal === \"object\") {\n queryStr.push(this.serialize(paramVal, paramKey));\n } else {\n queryStr.push(encodeURIComponent(paramKey) + \"=\" + encodeURIComponent(paramVal));\n }\n }\n return queryStr.join(\"&\");\n }\n static appendParams(url, params) {\n if (Object.keys(params).length === 0) {\n return url;\n }\n let prefix = url.match(/\\?/) ? \"&\" : \"?\";\n return `${url}${prefix}${this.serialize(params)}`;\n }\n};\n\n// js/phoenix/longpoll.js\nvar LongPoll = class {\n constructor(endPoint) {\n this.endPoint = null;\n this.token = null;\n this.skipHeartbeat = true;\n this.onopen = function() {\n };\n this.onerror = function() {\n };\n this.onmessage = function() {\n };\n this.onclose = function() {\n };\n this.pollEndpoint = this.normalizeEndpoint(endPoint);\n this.readyState = SOCKET_STATES.connecting;\n this.poll();\n }\n normalizeEndpoint(endPoint) {\n return endPoint.replace(\"ws://\", \"http://\").replace(\"wss://\", \"https://\").replace(new RegExp(\"(.*)/\" + TRANSPORTS.websocket), \"$1/\" + TRANSPORTS.longpoll);\n }\n endpointURL() {\n return Ajax.appendParams(this.pollEndpoint, { token: this.token });\n }\n closeAndRetry() {\n this.close();\n this.readyState = SOCKET_STATES.connecting;\n }\n ontimeout() {\n this.onerror(\"timeout\");\n this.closeAndRetry();\n }\n poll() {\n if (!(this.readyState === SOCKET_STATES.open || this.readyState === SOCKET_STATES.connecting)) {\n return;\n }\n Ajax.request(\"GET\", this.endpointURL(), \"application/json\", null, this.timeout, this.ontimeout.bind(this), (resp) => {\n if (resp) {\n var { status, token, messages } = resp;\n this.token = token;\n } else {\n status = 0;\n }\n switch (status) {\n case 200:\n messages.forEach((msg) => {\n setTimeout(() => {\n this.onmessage({ data: msg });\n }, 0);\n });\n this.poll();\n break;\n case 204:\n this.poll();\n break;\n case 410:\n this.readyState = SOCKET_STATES.open;\n this.onopen();\n this.poll();\n break;\n case 403:\n this.onerror();\n this.close();\n break;\n case 0:\n case 500:\n this.onerror();\n this.closeAndRetry();\n break;\n default:\n throw new Error(`unhandled poll status ${status}`);\n }\n });\n }\n send(body) {\n Ajax.request(\"POST\", this.endpointURL(), \"application/json\", body, this.timeout, this.onerror.bind(this, \"timeout\"), (resp) => {\n if (!resp || resp.status !== 200) {\n this.onerror(resp && resp.status);\n this.closeAndRetry();\n }\n });\n }\n close(_code, _reason) {\n this.readyState = SOCKET_STATES.closed;\n this.onclose();\n }\n};\n\n// js/phoenix/presence.js\nvar Presence = class {\n constructor(channel, opts = {}) {\n let events = opts.events || { state: \"presence_state\", diff: \"presence_diff\" };\n this.state = {};\n this.pendingDiffs = [];\n this.channel = channel;\n this.joinRef = null;\n this.caller = {\n onJoin: function() {\n },\n onLeave: function() {\n },\n onSync: function() {\n }\n };\n this.channel.on(events.state, (newState) => {\n let { onJoin, onLeave, onSync } = this.caller;\n this.joinRef = this.channel.joinRef();\n this.state = Presence.syncState(this.state, newState, onJoin, onLeave);\n this.pendingDiffs.forEach((diff) => {\n this.state = Presence.syncDiff(this.state, diff, onJoin, onLeave);\n });\n this.pendingDiffs = [];\n onSync();\n });\n this.channel.on(events.diff, (diff) => {\n let { onJoin, onLeave, onSync } = this.caller;\n if (this.inPendingSyncState()) {\n this.pendingDiffs.push(diff);\n } else {\n this.state = Presence.syncDiff(this.state, diff, onJoin, onLeave);\n onSync();\n }\n });\n }\n onJoin(callback) {\n this.caller.onJoin = callback;\n }\n onLeave(callback) {\n this.caller.onLeave = callback;\n }\n onSync(callback) {\n this.caller.onSync = callback;\n }\n list(by) {\n return Presence.list(this.state, by);\n }\n inPendingSyncState() {\n return !this.joinRef || this.joinRef !== this.channel.joinRef();\n }\n static syncState(currentState, newState, onJoin, onLeave) {\n let state = this.clone(currentState);\n let joins = {};\n let leaves = {};\n this.map(state, (key, presence) => {\n if (!newState[key]) {\n leaves[key] = presence;\n }\n });\n this.map(newState, (key, newPresence) => {\n let currentPresence = state[key];\n if (currentPresence) {\n let newRefs = newPresence.metas.map((m) => m.phx_ref);\n let curRefs = currentPresence.metas.map((m) => m.phx_ref);\n let joinedMetas = newPresence.metas.filter((m) => curRefs.indexOf(m.phx_ref) < 0);\n let leftMetas = currentPresence.metas.filter((m) => newRefs.indexOf(m.phx_ref) < 0);\n if (joinedMetas.length > 0) {\n joins[key] = newPresence;\n joins[key].metas = joinedMetas;\n }\n if (leftMetas.length > 0) {\n leaves[key] = this.clone(currentPresence);\n leaves[key].metas = leftMetas;\n }\n } else {\n joins[key] = newPresence;\n }\n });\n return this.syncDiff(state, { joins, leaves }, onJoin, onLeave);\n }\n static syncDiff(state, diff, onJoin, onLeave) {\n let { joins, leaves } = this.clone(diff);\n if (!onJoin) {\n onJoin = function() {\n };\n }\n if (!onLeave) {\n onLeave = function() {\n };\n }\n this.map(joins, (key, newPresence) => {\n let currentPresence = state[key];\n state[key] = this.clone(newPresence);\n if (currentPresence) {\n let joinedRefs = state[key].metas.map((m) => m.phx_ref);\n let curMetas = currentPresence.metas.filter((m) => joinedRefs.indexOf(m.phx_ref) < 0);\n state[key].metas.unshift(...curMetas);\n }\n onJoin(key, currentPresence, newPresence);\n });\n this.map(leaves, (key, leftPresence) => {\n let currentPresence = state[key];\n if (!currentPresence) {\n return;\n }\n let refsToRemove = leftPresence.metas.map((m) => m.phx_ref);\n currentPresence.metas = currentPresence.metas.filter((p) => {\n return refsToRemove.indexOf(p.phx_ref) < 0;\n });\n onLeave(key, currentPresence, leftPresence);\n if (currentPresence.metas.length === 0) {\n delete state[key];\n }\n });\n return state;\n }\n static list(presences, chooser) {\n if (!chooser) {\n chooser = function(key, pres) {\n return pres;\n };\n }\n return this.map(presences, (key, presence) => {\n return chooser(key, presence);\n });\n }\n static map(obj, func) {\n return Object.getOwnPropertyNames(obj).map((key) => func(key, obj[key]));\n }\n static clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n};\n\n// js/phoenix/serializer.js\nvar serializer_default = {\n HEADER_LENGTH: 1,\n META_LENGTH: 4,\n KINDS: { push: 0, reply: 1, broadcast: 2 },\n encode(msg, callback) {\n if (msg.payload.constructor === ArrayBuffer) {\n return callback(this.binaryEncode(msg));\n } else {\n let payload = [msg.join_ref, msg.ref, msg.topic, msg.event, msg.payload];\n return callback(JSON.stringify(payload));\n }\n },\n decode(rawPayload, callback) {\n if (rawPayload.constructor === ArrayBuffer) {\n return callback(this.binaryDecode(rawPayload));\n } else {\n let [join_ref, ref, topic, event, payload] = JSON.parse(rawPayload);\n return callback({ join_ref, ref, topic, event, payload });\n }\n },\n binaryEncode(message) {\n let { join_ref, ref, event, topic, payload } = message;\n let metaLength = this.META_LENGTH + join_ref.length + ref.length + topic.length + event.length;\n let header = new ArrayBuffer(this.HEADER_LENGTH + metaLength);\n let view = new DataView(header);\n let offset = 0;\n view.setUint8(offset++, this.KINDS.push);\n view.setUint8(offset++, join_ref.length);\n view.setUint8(offset++, ref.length);\n view.setUint8(offset++, topic.length);\n view.setUint8(offset++, event.length);\n Array.from(join_ref, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n Array.from(ref, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n Array.from(topic, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n Array.from(event, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n var combined = new Uint8Array(header.byteLength + payload.byteLength);\n combined.set(new Uint8Array(header), 0);\n combined.set(new Uint8Array(payload), header.byteLength);\n return combined.buffer;\n },\n binaryDecode(buffer) {\n let view = new DataView(buffer);\n let kind = view.getUint8(0);\n let decoder = new TextDecoder();\n switch (kind) {\n case this.KINDS.push:\n return this.decodePush(buffer, view, decoder);\n case this.KINDS.reply:\n return this.decodeReply(buffer, view, decoder);\n case this.KINDS.broadcast:\n return this.decodeBroadcast(buffer, view, decoder);\n }\n },\n decodePush(buffer, view, decoder) {\n let joinRefSize = view.getUint8(1);\n let topicSize = view.getUint8(2);\n let eventSize = view.getUint8(3);\n let offset = this.HEADER_LENGTH + this.META_LENGTH - 1;\n let joinRef = decoder.decode(buffer.slice(offset, offset + joinRefSize));\n offset = offset + joinRefSize;\n let topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n let event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n let data = buffer.slice(offset, buffer.byteLength);\n return { join_ref: joinRef, ref: null, topic, event, payload: data };\n },\n decodeReply(buffer, view, decoder) {\n let joinRefSize = view.getUint8(1);\n let refSize = view.getUint8(2);\n let topicSize = view.getUint8(3);\n let eventSize = view.getUint8(4);\n let offset = this.HEADER_LENGTH + this.META_LENGTH;\n let joinRef = decoder.decode(buffer.slice(offset, offset + joinRefSize));\n offset = offset + joinRefSize;\n let ref = decoder.decode(buffer.slice(offset, offset + refSize));\n offset = offset + refSize;\n let topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n let event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n let data = buffer.slice(offset, buffer.byteLength);\n let payload = { status: event, response: data };\n return { join_ref: joinRef, ref, topic, event: CHANNEL_EVENTS.reply, payload };\n },\n decodeBroadcast(buffer, view, decoder) {\n let topicSize = view.getUint8(1);\n let eventSize = view.getUint8(2);\n let offset = this.HEADER_LENGTH + 2;\n let topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n let event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n let data = buffer.slice(offset, buffer.byteLength);\n return { join_ref: null, ref: null, topic, event, payload: data };\n }\n};\n\n// js/phoenix/socket.js\nvar Socket = class {\n constructor(endPoint, opts = {}) {\n this.stateChangeCallbacks = { open: [], close: [], error: [], message: [] };\n this.channels = [];\n this.sendBuffer = [];\n this.ref = 0;\n this.timeout = opts.timeout || DEFAULT_TIMEOUT;\n this.transport = opts.transport || global.WebSocket || LongPoll;\n this.establishedConnections = 0;\n this.defaultEncoder = serializer_default.encode.bind(serializer_default);\n this.defaultDecoder = serializer_default.decode.bind(serializer_default);\n this.closeWasClean = false;\n this.binaryType = opts.binaryType || \"arraybuffer\";\n this.connectClock = 1;\n if (this.transport !== LongPoll) {\n this.encode = opts.encode || this.defaultEncoder;\n this.decode = opts.decode || this.defaultDecoder;\n } else {\n this.encode = this.defaultEncoder;\n this.decode = this.defaultDecoder;\n }\n let awaitingConnectionOnPageShow = null;\n if (phxWindow && phxWindow.addEventListener) {\n phxWindow.addEventListener(\"pagehide\", (_e) => {\n if (this.conn) {\n this.disconnect();\n awaitingConnectionOnPageShow = this.connectClock;\n }\n });\n phxWindow.addEventListener(\"pageshow\", (_e) => {\n if (awaitingConnectionOnPageShow === this.connectClock) {\n awaitingConnectionOnPageShow = null;\n this.connect();\n }\n });\n }\n this.heartbeatIntervalMs = opts.heartbeatIntervalMs || 3e4;\n this.rejoinAfterMs = (tries) => {\n if (opts.rejoinAfterMs) {\n return opts.rejoinAfterMs(tries);\n } else {\n return [1e3, 2e3, 5e3][tries - 1] || 1e4;\n }\n };\n this.reconnectAfterMs = (tries) => {\n if (opts.reconnectAfterMs) {\n return opts.reconnectAfterMs(tries);\n } else {\n return [10, 50, 100, 150, 200, 250, 500, 1e3, 2e3][tries - 1] || 5e3;\n }\n };\n this.logger = opts.logger || null;\n this.longpollerTimeout = opts.longpollerTimeout || 2e4;\n this.params = closure(opts.params || {});\n this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`;\n this.vsn = opts.vsn || DEFAULT_VSN;\n this.heartbeatTimer = null;\n this.pendingHeartbeatRef = null;\n this.reconnectTimer = new Timer(() => {\n this.teardown(() => this.connect());\n }, this.reconnectAfterMs);\n }\n replaceTransport(newTransport) {\n this.disconnect();\n this.transport = newTransport;\n }\n protocol() {\n return location.protocol.match(/^https/) ? \"wss\" : \"ws\";\n }\n endPointURL() {\n let uri = Ajax.appendParams(Ajax.appendParams(this.endPoint, this.params()), { vsn: this.vsn });\n if (uri.charAt(0) !== \"/\") {\n return uri;\n }\n if (uri.charAt(1) === \"/\") {\n return `${this.protocol()}:${uri}`;\n }\n return `${this.protocol()}://${location.host}${uri}`;\n }\n disconnect(callback, code, reason) {\n this.connectClock++;\n this.closeWasClean = true;\n this.reconnectTimer.reset();\n this.teardown(callback, code, reason);\n }\n connect(params) {\n this.connectClock++;\n if (params) {\n console && console.log(\"passing params to connect is deprecated. Instead pass :params to the Socket constructor\");\n this.params = closure(params);\n }\n if (this.conn) {\n return;\n }\n this.closeWasClean = false;\n this.conn = new this.transport(this.endPointURL());\n this.conn.binaryType = this.binaryType;\n this.conn.timeout = this.longpollerTimeout;\n this.conn.onopen = () => this.onConnOpen();\n this.conn.onerror = (error) => this.onConnError(error);\n this.conn.onmessage = (event) => this.onConnMessage(event);\n this.conn.onclose = (event) => this.onConnClose(event);\n }\n log(kind, msg, data) {\n this.logger(kind, msg, data);\n }\n hasLogger() {\n return this.logger !== null;\n }\n onOpen(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.open.push([ref, callback]);\n return ref;\n }\n onClose(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.close.push([ref, callback]);\n return ref;\n }\n onError(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.error.push([ref, callback]);\n return ref;\n }\n onMessage(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.message.push([ref, callback]);\n return ref;\n }\n onConnOpen() {\n if (this.hasLogger())\n this.log(\"transport\", `connected to ${this.endPointURL()}`);\n this.closeWasClean = false;\n this.establishedConnections++;\n this.flushSendBuffer();\n this.reconnectTimer.reset();\n this.resetHeartbeat();\n this.stateChangeCallbacks.open.forEach(([, callback]) => callback());\n }\n heartbeatTimeout() {\n if (this.pendingHeartbeatRef) {\n this.pendingHeartbeatRef = null;\n if (this.hasLogger()) {\n this.log(\"transport\", \"heartbeat timeout. Attempting to re-establish connection\");\n }\n this.abnormalClose(\"heartbeat timeout\");\n }\n }\n resetHeartbeat() {\n if (this.conn && this.conn.skipHeartbeat) {\n return;\n }\n this.pendingHeartbeatRef = null;\n clearTimeout(this.heartbeatTimer);\n setTimeout(() => this.sendHeartbeat(), this.heartbeatIntervalMs);\n }\n teardown(callback, code, reason) {\n if (!this.conn) {\n return callback && callback();\n }\n this.waitForBufferDone(() => {\n if (this.conn) {\n if (code) {\n this.conn.close(code, reason || \"\");\n } else {\n this.conn.close();\n }\n }\n this.waitForSocketClosed(() => {\n if (this.conn) {\n this.conn.onclose = function() {\n };\n this.conn = null;\n }\n callback && callback();\n });\n });\n }\n waitForBufferDone(callback, tries = 1) {\n if (tries === 5 || !this.conn || !this.conn.bufferedAmount) {\n callback();\n return;\n }\n setTimeout(() => {\n this.waitForBufferDone(callback, tries + 1);\n }, 150 * tries);\n }\n waitForSocketClosed(callback, tries = 1) {\n if (tries === 5 || !this.conn || this.conn.readyState === SOCKET_STATES.closed) {\n callback();\n return;\n }\n setTimeout(() => {\n this.waitForSocketClosed(callback, tries + 1);\n }, 150 * tries);\n }\n onConnClose(event) {\n if (this.hasLogger())\n this.log(\"transport\", \"close\", event);\n this.triggerChanError();\n clearTimeout(this.heartbeatTimer);\n if (!this.closeWasClean) {\n this.reconnectTimer.scheduleTimeout();\n }\n this.stateChangeCallbacks.close.forEach(([, callback]) => callback(event));\n }\n onConnError(error) {\n if (this.hasLogger())\n this.log(\"transport\", error);\n let transportBefore = this.transport;\n let establishedBefore = this.establishedConnections;\n this.stateChangeCallbacks.error.forEach(([, callback]) => {\n callback(error, transportBefore, establishedBefore);\n });\n if (transportBefore === this.transport || establishedBefore > 0) {\n this.triggerChanError();\n }\n }\n triggerChanError() {\n this.channels.forEach((channel) => {\n if (!(channel.isErrored() || channel.isLeaving() || channel.isClosed())) {\n channel.trigger(CHANNEL_EVENTS.error);\n }\n });\n }\n connectionState() {\n switch (this.conn && this.conn.readyState) {\n case SOCKET_STATES.connecting:\n return \"connecting\";\n case SOCKET_STATES.open:\n return \"open\";\n case SOCKET_STATES.closing:\n return \"closing\";\n default:\n return \"closed\";\n }\n }\n isConnected() {\n return this.connectionState() === \"open\";\n }\n remove(channel) {\n this.off(channel.stateChangeRefs);\n this.channels = this.channels.filter((c) => c.joinRef() !== channel.joinRef());\n }\n off(refs) {\n for (let key in this.stateChangeCallbacks) {\n this.stateChangeCallbacks[key] = this.stateChangeCallbacks[key].filter(([ref]) => {\n return refs.indexOf(ref) === -1;\n });\n }\n }\n channel(topic, chanParams = {}) {\n let chan = new Channel(topic, chanParams, this);\n this.channels.push(chan);\n return chan;\n }\n push(data) {\n if (this.hasLogger()) {\n let { topic, event, payload, ref, join_ref } = data;\n this.log(\"push\", `${topic} ${event} (${join_ref}, ${ref})`, payload);\n }\n if (this.isConnected()) {\n this.encode(data, (result) => this.conn.send(result));\n } else {\n this.sendBuffer.push(() => this.encode(data, (result) => this.conn.send(result)));\n }\n }\n makeRef() {\n let newRef = this.ref + 1;\n if (newRef === this.ref) {\n this.ref = 0;\n } else {\n this.ref = newRef;\n }\n return this.ref.toString();\n }\n sendHeartbeat() {\n if (this.pendingHeartbeatRef && !this.isConnected()) {\n return;\n }\n this.pendingHeartbeatRef = this.makeRef();\n this.push({ topic: \"phoenix\", event: \"heartbeat\", payload: {}, ref: this.pendingHeartbeatRef });\n this.heartbeatTimer = setTimeout(() => this.heartbeatTimeout(), this.heartbeatIntervalMs);\n }\n abnormalClose(reason) {\n this.closeWasClean = false;\n if (this.isConnected()) {\n this.conn.close(WS_CLOSE_NORMAL, reason);\n }\n }\n flushSendBuffer() {\n if (this.isConnected() && this.sendBuffer.length > 0) {\n this.sendBuffer.forEach((callback) => callback());\n this.sendBuffer = [];\n }\n }\n onConnMessage(rawMessage) {\n this.decode(rawMessage.data, (msg) => {\n let { topic, event, payload, ref, join_ref } = msg;\n if (ref && ref === this.pendingHeartbeatRef) {\n clearTimeout(this.heartbeatTimer);\n this.pendingHeartbeatRef = null;\n setTimeout(() => this.sendHeartbeat(), this.heartbeatIntervalMs);\n }\n if (this.hasLogger())\n this.log(\"receive\", `${payload.status || \"\"} ${topic} ${event} ${ref && \"(\" + ref + \")\" || \"\"}`, payload);\n for (let i = 0; i < this.channels.length; i++) {\n const channel = this.channels[i];\n if (!channel.isMember(topic, event, payload, join_ref)) {\n continue;\n }\n channel.trigger(event, payload, ref, join_ref);\n }\n for (let i = 0; i < this.stateChangeCallbacks.message.length; i++) {\n let [, callback] = this.stateChangeCallbacks.message[i];\n callback(msg);\n }\n });\n }\n leaveOpenTopic(topic) {\n let dupChannel = this.channels.find((c) => c.topic === topic && (c.isJoined() || c.isJoining()));\n if (dupChannel) {\n if (this.hasLogger())\n this.log(\"transport\", `leaving duplicate topic \"${topic}\"`);\n dupChannel.leave();\n }\n }\n};\nexport {\n Channel,\n LongPoll,\n Presence,\n serializer_default as Serializer,\n Socket\n};\n//# sourceMappingURL=phoenix.esm.js.map\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","var serviceWorkerOption = {\"scriptURL\":\"/sw-pleroma.js\"};\n \"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable flowtype/require-valid-file-annotation */\n/* global serviceWorkerOption */\n\nexports.default = {\n register: function register() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (navigator.serviceWorker) {\n return navigator.serviceWorker.register(serviceWorkerOption.scriptURL, options);\n }\n\n return false;\n }\n};\nmodule.exports = exports[\"default\"];","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&apos;');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function detectModuloStart(scnr) {\r\n const spaces = peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n scnr.peek() === \"{\" /* BraceLeft */;\r\n scnr.resetPeek();\r\n return {\r\n isModulo: ret,\r\n hasSpace: spaces.length > 0\r\n };\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readModulo(scnr) {\r\n skipSpaces(scnr);\r\n const ch = scnr.currentChar();\r\n if (ch !== \"%\" /* Modulo */) {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n }\r\n scnr.next();\r\n return \"%\" /* Modulo */;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n if (isModulo) {\r\n return hasSpace\r\n ? getToken(context, 0 /* Text */, readText(scnr))\r\n : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n transformer.helper(\"type\" /* TYPE */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n generator.push(`, _type`);\r\n }\r\n else {\r\n generator.push(`, undefined, _type`);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, isString, hasOwn, isObject, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CompileErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, ref, computed, watch, getCurrentInstance, Fragment, h, effectScope, inject, onMounted, onUnmounted, shallowRef, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.2.2';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nlet code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\nconst inc$1 = () => ++code$1;\r\nconst I18nWarnCodes = {\r\n FALLBACK_TO_ROOT: code$1,\r\n NOT_SUPPORTED_PRESERVE: inc$1(),\r\n NOT_SUPPORTED_FORMATTER: inc$1(),\r\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n};\r\nconst warnMessages = {\r\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst I18nErrorCodes = {\r\n // composer module errors\r\n UNEXPECTED_RETURN_TYPE: code,\r\n // legacy module errors\r\n INVALID_ARGUMENT: inc(),\r\n // i18n module errors\r\n MUST_BE_CALL_SETUP_TOP: inc(),\r\n NOT_INSLALLED: inc(),\r\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n // directive module errors\r\n REQUIRED_VALUE: inc(),\r\n INVALID_VALUE: inc(),\r\n // vue-devtools errors\r\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n // unexpected error\r\n UNEXPECTED_ERROR: inc(),\r\n // not compatible legacy vue-i18n constructor\r\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n // bridge support vue 2.x only\r\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n // for enhancement\r\n __EXTEND_POINT__: inc() // 29\r\n};\r\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\r\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\r\n};\n\nconst TransrateVNodeSymbol = \r\n/* #__PURE__*/ makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes('.')) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split('.');\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n, messageResolver, flatJson } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(custom => {\r\n if ('locale' in custom && 'resource' in custom) {\r\n const { locale, resource } = custom;\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n }\r\n else {\r\n isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (messageResolver == null && flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getComponentOptions(instance) {\r\n return instance.type ;\r\n}\r\nfunction adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in componentOptions) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: componentOptions.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n {\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n }\r\n}\r\nfunction createTextNode(key) {\r\n return createVNode(Text, null, key, 0)\r\n ;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// extend VNode interface\r\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = () => {\r\n const instance = getCurrentInstance();\r\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createComposer(options = {}, VueI18nLegacy) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n let _warnHtmlMessage = __root\r\n ? __root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n const getCoreContext = () => {\r\n _isGlobal && setFallbackContext(null);\r\n const ctxOptions = {\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n messageResolver: options.messageResolver,\r\n __meta: { framework: 'vue' }\r\n };\r\n {\r\n ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n ctxOptions.numberFormats = _numberFormats.value;\r\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined;\r\n ctxOptions.__numberFormatters = isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ctxOptions.__v_emitter = isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined;\r\n }\r\n const ctx = createCoreContext(ctxOptions);\r\n _isGlobal && setFallbackContext(ctx);\r\n return ctx;\r\n };\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ]\r\n ;\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !arg.resolvedMessage;\r\n }\r\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n if (!_isGlobal) {\r\n _context.fallbackContext = __root\r\n ? getFallbackContext()\r\n : undefined;\r\n }\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n if (!_isGlobal) {\r\n _context.fallbackContext = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n }\r\n };\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n ? createTextNode(String(val))\r\n : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = Reflect.apply(translate, null, [_context, ...args]);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return _context.messageResolver(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root && inBrowser) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define basic composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [SetPluralRulesSymbol]: setPluralRules\r\n };\r\n {\r\n composer.datetimeFormats = datetimeFormats;\r\n composer.numberFormats = numberFormats;\r\n composer.rt = rt;\r\n composer.te = te;\r\n composer.tm = tm;\r\n composer.d = d;\r\n composer.n = n;\r\n composer.getDateTimeFormat = getDateTimeFormat;\r\n composer.setDateTimeFormat = setDateTimeFormat;\r\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n composer.getNumberFormat = getNumberFormat;\r\n composer.setNumberFormat = setNumberFormat;\r\n composer.mergeNumberFormat = mergeNumberFormat;\r\n composer[InejctWithOption] = options.__injectWithOption;\r\n composer[TransrateVNodeSymbol] = transrateVNode;\r\n composer[DatetimePartsSymbol] = datetimeParts;\r\n composer[NumberPartsSymbol] = numberParts;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageResolver: options.messageResolver,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createVueI18n(options = {}, VueI18nLegacy) {\r\n {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n rt(...args) {\r\n return Reflect.apply(composer.rt, composer, [...args]);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return Reflect.apply(composer.d, composer, [...args]);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return Reflect.apply(composer.n, composer, [...args]);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n }\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n default: 'parent' /* ComponetI18nScope */\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\nfunction getInterpolateArg(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n{ slots }, // SetupContext,\r\nkeys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot with list\r\n const ret = slots.default ? slots.default() : [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return ret.reduce((slot, current) => {\r\n return (slot = [\r\n ...slot,\r\n ...(isArray(current.children) ? current.children : [current])\r\n ]);\r\n }, []);\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getFragmentableTag(tag) {\r\n return Fragment ;\r\n}\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n * <div id=\"app\">\r\n * <!-- ... -->\r\n * <i18n path=\"term\" tag=\"label\" for=\"tos\">\r\n * <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\r\n * </i18n>\r\n * <!-- ... -->\r\n * </div>\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n return () => {\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n }\r\n};\n\nfunction isVNode(target) {\r\n return isArray(target) && !isString(target[0]);\r\n}\r\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n const node = slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n if (isVNode(node)) {\r\n node[0].key = `${part.type}-${index}`;\r\n }\r\n return node;\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n}\n\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = /*defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const _process = (binding) => {\r\n const { instance, modifiers, value } = binding;\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n }\r\n const parsedValue = parseValue(value);\r\n return [\r\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n composer\r\n ];\r\n };\r\n const register = (el, binding) => {\r\n const [textContent, composer] = _process(binding);\r\n if (inBrowser && i18n.global === composer) {\r\n // global scope only\r\n el.__i18nWatcher = watch(composer.locale, () => {\r\n binding.instance && binding.instance.$forceUpdate();\r\n });\r\n }\r\n el.__composer = composer;\r\n el.textContent = textContent;\r\n };\r\n const unregister = (el) => {\r\n if (inBrowser && el.__i18nWatcher) {\r\n el.__i18nWatcher();\r\n el.__i18nWatcher = undefined;\r\n delete el.__i18nWatcher;\r\n }\r\n if (el.__composer) {\r\n el.__composer = undefined;\r\n delete el.__composer;\r\n }\r\n };\r\n const update = (el, { value }) => {\r\n if (el.__composer) {\r\n const composer = el.__composer;\r\n const parsedValue = parseValue(value);\r\n el.textContent = Reflect.apply(composer.t, composer, [\r\n ...makeParams(parsedValue)\r\n ]);\r\n }\r\n };\r\n const getSSRProps = (binding) => {\r\n const [textContent] = _process(binding);\r\n return { textContent };\r\n };\r\n return {\r\n created: register,\r\n unmounted: unregister,\r\n beforeUpdate: update,\r\n getSSRProps\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n {\r\n app.directive('t', vTDirective(i18n));\r\n }\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el &&\r\n componentInstance.vnode.el.__VUE_I18N__ &&\r\n instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n const roots = new Map();\r\n api.on.getInspectorState(async (payload) => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n api.unhighlightElement();\r\n inspectScope(payload, i18n);\r\n if (payload.nodeId === 'global') {\r\n if (!roots.has(payload.app)) {\r\n const [root] = await api.getComponentInstances(payload.app);\r\n roots.set(payload.app, root);\r\n }\r\n api.highlightElement(roots.get(payload.app));\r\n }\r\n else {\r\n const instance = getComponentInstance(payload.nodeId, i18n);\r\n instance && api.highlightElement(instance);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getI18nScopeLable(instance) {\r\n return (instance.type.name ||\r\n instance.type.displayName ||\r\n instance.type.__file ||\r\n 'Anonymous');\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const tag = {\r\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n {\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '&lt;',\r\n '>': '&gt;',\r\n '\"': '&quot;',\r\n '&': '&amp;'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `<span>ƒ</span> ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${getI18nScopeLable(keyInstance)} Scope`\r\n });\r\n }\r\n}\r\nfunction getComponentInstance(nodeId, i18n) {\r\n let instance = null;\r\n if (nodeId !== 'global') {\r\n for (const [component, composer] of i18n.__instances.entries()) {\r\n if (composer.id.toString() === nodeId) {\r\n instance = component;\r\n break;\r\n }\r\n }\r\n }\r\n return instance;\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n // TODO:\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n return null;\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n {\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n }\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n/**\r\n * Supports compatibility for legacy vue-i18n APIs\r\n * This mixin is used when we use vue-i18n@v9.x or later\r\n */\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n if (options.__i18nGlobal) {\r\n adjustI18nResources(composer, options, options);\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$i18n) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter =\r\n createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n unmounted() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$el.__VUE_I18N__) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n if (this.$i18n) {\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Injection key for {@link useI18n}\r\n *\r\n * @remarks\r\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst I18nInjectionKey = \r\n/* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction createI18n(options = {}, VueI18nLegacy) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n // prettier-ignore\r\n const __globalInjection = isBoolean(options.globalInjection)\r\n ? options.globalInjection\r\n : true;\r\n // prettier-ignore\r\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? !!options.allowComposition\r\n : true;\r\n const __instances = new Map();\r\n const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n function __getInstance(component) {\r\n return __instances.get(component) || null;\r\n }\r\n function __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n }\r\n function __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n {\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n return __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? 'legacy'\r\n : 'composition';\r\n },\r\n // allowComposition\r\n get allowComposition() {\r\n return __allowComposition;\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // release global scope\r\n const unmountApp = app.unmount;\r\n app.unmount = () => {\r\n i18n.dispose();\r\n unmountApp();\r\n };\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n dispose() {\r\n globalScope.stop();\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance,\r\n // @internal\r\n __setInstance,\r\n // @internal\r\n __deleteInstance\r\n };\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n }\r\n if (!instance.isCE &&\r\n instance.appContext.app != null &&\r\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n }\r\n const i18n = getI18nInstance(instance);\r\n const global = getGlobalComposer(i18n);\r\n const componentOptions = getComponentOptions(instance);\r\n const scope = getScope(options, componentOptions);\r\n if (__VUE_I18N_LEGACY_API__) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n if (!i18n.allowComposition) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n }\r\n return useI18nForLegacy(instance, scope, global, options);\r\n }\r\n }\r\n if (scope === 'global') {\r\n adjustI18nResources(global, options, componentOptions);\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const composerOptions = assign({}, options);\r\n if ('__i18n' in componentOptions) {\r\n composerOptions.__i18n = componentOptions.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\n/**\r\n * Cast to VueI18n legacy compatible type\r\n *\r\n * @remarks\r\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n *\r\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\r\n *\r\n * @param i18n - An instance of {@link I18n}\r\n * @returns A i18n instance which is casted to {@link VueI18n} type\r\n *\r\n * @VueI18nTip\r\n * :new: provided by **vue-i18n-bridge only**\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst castToVueI18n = (i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) => {\r\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n }\r\n return i18n;\r\n};\r\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const scope = effectScope();\r\n {\r\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\r\n ? scope.run(() => createVueI18n(options))\r\n : scope.run(() => createComposer(options));\r\n if (obj == null) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n return [scope, obj];\r\n }\r\n}\r\nfunction getI18nInstance(instance) {\r\n {\r\n const i18n = inject(!instance.isCE\r\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n : I18nInjectionKey);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(!instance.isCE\r\n ? I18nErrorCodes.UNEXPECTED_ERROR\r\n : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n }\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getScope(options, componentOptions) {\r\n // prettier-ignore\r\n return isEmptyObject(options)\r\n ? ('__i18n' in componentOptions)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n}\r\nfunction getGlobalComposer(i18n) {\r\n // prettier-ignore\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer\r\n ;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n if (__VUE_I18N_LEGACY_API__) {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n if (useComponent &&\r\n composer &&\r\n !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n composer = null;\r\n }\r\n }\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n {\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n }\r\n}\r\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const isLocale = scope === 'local';\r\n const _composer = shallowRef(null);\r\n if (isLocale &&\r\n instance.proxy &&\r\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n }\r\n const _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _missingWarn = isLocale\r\n ? root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackWarn = isLocale\r\n ? root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackRoot = isLocale\r\n ? root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n const _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n const _missing = isFunction(options.missing) ? options.missing : null;\r\n // postTranslation handler\r\n const _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n const _warnHtmlMessage = isLocale\r\n ? root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const _escapeParameter = !!options.escapeParameter;\r\n // prettier-ignore\r\n const _modifiers = isLocale\r\n ? root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => {\r\n return _composer.value ? _composer.value.locale.value : _locale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.locale.value = val;\r\n }\r\n _locale.value = val;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => {\r\n return _composer.value\r\n ? _composer.value.fallbackLocale.value\r\n : _fallbackLocale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.fallbackLocale.value = val;\r\n }\r\n _fallbackLocale.value = val;\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => {\r\n if (_composer.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _composer.value.messages.value;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _messages.value;\r\n }\r\n });\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n const numberFormats = computed(() => _numberFormats.value);\r\n function getPostTranslationHandler() {\r\n return _composer.value\r\n ? _composer.value.getPostTranslationHandler()\r\n : _postTranslation;\r\n }\r\n function setPostTranslationHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setPostTranslationHandler(handler);\r\n }\r\n }\r\n function getMissingHandler() {\r\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n }\r\n function setMissingHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setMissingHandler(handler);\r\n }\r\n }\r\n function warpWithDeps(fn) {\r\n trackReactivityValues();\r\n return fn();\r\n }\r\n function t(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function rt(...args) {\r\n return _composer.value\r\n ? Reflect.apply(_composer.value.rt, null, [...args])\r\n : '';\r\n }\r\n function d(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function n(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function tm(key) {\r\n return _composer.value ? _composer.value.tm(key) : {};\r\n }\r\n function te(key, locale) {\r\n return _composer.value ? _composer.value.te(key, locale) : false;\r\n }\r\n function getLocaleMessage(locale) {\r\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n }\r\n function setLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.setLocaleMessage(locale, message);\r\n _messages.value[locale] = message;\r\n }\r\n }\r\n function mergeLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.mergeLocaleMessage(locale, message);\r\n }\r\n }\r\n function getDateTimeFormat(locale) {\r\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n }\r\n function setDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setDateTimeFormat(locale, format);\r\n _datetimeFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeDateTimeFormat(locale, format);\r\n }\r\n }\r\n function getNumberFormat(locale) {\r\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n }\r\n function setNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setNumberFormat(locale, format);\r\n _numberFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeNumberFormat(locale, format);\r\n }\r\n }\r\n const wrapper = {\r\n get id() {\r\n return _composer.value ? _composer.value.id : -1;\r\n },\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get inheritLocale() {\r\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n if (_composer.value) {\r\n _composer.value.inheritLocale = val;\r\n }\r\n },\r\n get availableLocales() {\r\n return _composer.value\r\n ? _composer.value.availableLocales\r\n : Object.keys(_messages.value);\r\n },\r\n get modifiers() {\r\n return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n },\r\n get pluralRules() {\r\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n },\r\n get isGlobal() {\r\n return _composer.value ? _composer.value.isGlobal : false;\r\n },\r\n get missingWarn() {\r\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackWarn() {\r\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackRoot() {\r\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackRoot = val;\r\n }\r\n },\r\n get fallbackFormat() {\r\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackFormat = val;\r\n }\r\n },\r\n get warnHtmlMessage() {\r\n return _composer.value\r\n ? _composer.value.warnHtmlMessage\r\n : _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n if (_composer.value) {\r\n _composer.value.warnHtmlMessage = val;\r\n }\r\n },\r\n get escapeParameter() {\r\n return _composer.value\r\n ? _composer.value.escapeParameter\r\n : _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n if (_composer.value) {\r\n _composer.value.escapeParameter = val;\r\n }\r\n },\r\n t,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n rt,\r\n d,\r\n n,\r\n tm,\r\n te,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat\r\n };\r\n function sync(composer) {\r\n composer.locale.value = _locale.value;\r\n composer.fallbackLocale.value = _fallbackLocale.value;\r\n Object.keys(_messages.value).forEach(locale => {\r\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n });\r\n Object.keys(_datetimeFormats.value).forEach(locale => {\r\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n });\r\n Object.keys(_numberFormats.value).forEach(locale => {\r\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n });\r\n composer.escapeParameter = _escapeParameter;\r\n composer.fallbackFormat = _fallbackFormat;\r\n composer.fallbackRoot = _fallbackRoot;\r\n composer.fallbackWarn = _fallbackWarn;\r\n composer.missingWarn = _missingWarn;\r\n composer.warnHtmlMessage = _warnHtmlMessage;\r\n }\r\n onBeforeMount(() => {\r\n if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const composer = (_composer.value = instance.proxy.$i18n\r\n .__composer);\r\n if (scope === 'global') {\r\n _locale.value = composer.locale.value;\r\n _fallbackLocale.value = composer.fallbackLocale.value;\r\n _messages.value = composer.messages.value;\r\n _datetimeFormats.value = composer.datetimeFormats.value;\r\n _numberFormats.value = composer.numberFormats.value;\r\n }\r\n else if (isLocale) {\r\n sync(composer);\r\n }\r\n });\r\n return wrapper;\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'] ;\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message resolver at vue-i18n\r\nregisterMessageResolver(resolveValue);\r\n// register fallback locale at vue-i18n\r\nregisterLocaleFallbacker(fallbackWithLocaleChain);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nInjectionKey, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","/*!\n * vue-router v4.1.6\n * (c) 2022 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || obj[Symbol.toStringTag] === 'Module';\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = isArray(value)\r\n ? value.map(fn)\r\n : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\r\n/**\r\n * Typesafe alternative to Array.isArray\r\n * https://github.com/microsoft/TypeScript/pull/48228\r\n */\r\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms a URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n // TODO: move to new URL()\r\n const hashPos = location.indexOf('#');\r\n let searchPos = location.indexOf('?');\r\n // the hash appears before the search, so it's not part of the search string\r\n if (hashPos < searchPos && hashPos >= 0) {\r\n searchPos = -1;\r\n }\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // we stay on the same position\r\n if (segment === '.')\r\n continue;\r\n // go up in the from array\r\n if (segment === '..') {\r\n // we can't go below zero, but we still need to increment toPosition\r\n if (position > 1)\r\n position--;\r\n // continue\r\n }\r\n // we reached a non-relative path, we stop here\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n // ensure we use at least the last element in the toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect <base> tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler<ScrollPosition> = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // set up the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // set up the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor, and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided, and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/router/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `<base>` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/router/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\r\n * handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `<base>` tag\r\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\r\n * calls**, meaning that if you use a `<base>` tag, it's `href` value **has to match this parameter** (ignoring anything\r\n * after the `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non-greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub-segment /:a-other-:b\r\n let subSegmentScore = 40 /* PathScore.Segment */ +\r\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* TokenType.Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* PathScore.Static */;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* PathScore.Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* PathScore.BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* TokenType.Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (isArray(param) && !repeatable) {\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n }\r\n const text = isArray(param)\r\n ? param.join('/')\r\n : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n // avoid empty path when we have multiple optional params\r\n return path || '/';\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n if (Math.abs(bScore.length - aScore.length) === 1) {\r\n if (isLastScoreNegative(aScore))\r\n return 1;\r\n if (isLastScoreNegative(bScore))\r\n return -1;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\r\n/**\r\n * This allows detecting splats at the end of a path: /home/:id(.*)*\r\n *\r\n * @param score - score to check\r\n * @returns true if the last entry is negative\r\n */\r\nfunction isLastScoreNegative(score) {\r\n const last = score[score.length - 1];\r\n return score.length > 0 && last[last.length - 1] < 0;\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* TokenType.Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map<string, Token[][]>()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* TokenizerState.Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* TokenizerState.Static */) {\r\n segment.push({\r\n type: 0 /* TokenType.Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* TokenizerState.Param */ ||\r\n state === 2 /* TokenizerState.ParamRegExp */ ||\r\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* TokenType.Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* TokenizerState.EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* TokenizerState.Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* TokenizerState.Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* TokenizerState.EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* TokenizerState.Param */:\r\n if (char === '(') {\r\n state = 2 /* TokenizerState.ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* TokenizerState.ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* TokenizerState.ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* TokenizerState.ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* TokenizerState.ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\r\n }\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object beforehand, so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist,\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if (mainNormalizedRecord.children) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other aliases (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\r\n // not be reached and pass through the catch all route\r\n if ((matcher.record.components &&\r\n Object.keys(matcher.record.components).length) ||\r\n matcher.record.name ||\r\n matcher.record.redirect) {\r\n insertMatcher(matcher);\r\n }\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\r\n // Adding children with empty path should still appear before the parent\r\n // https://github.com/vuejs/router/issues/1124\r\n (matcher.record.path !== matchers[i].record.path ||\r\n !isRecordChildOf(matcher, matchers[i])))\r\n i++;\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n // warn if the user is passing invalid params so they can debug it better when they get removed\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\r\n if (invalidParams.length) {\r\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\r\n }\r\n }\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), \r\n // discard any existing params in the current location that do not exist here\r\n // #1497 this ensures better active/exact matching\r\n location.params &&\r\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || null\r\n : record.component && { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records, but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\n/**\r\n * A route with a name and a child with an empty path without a name should warn when adding the route\r\n *\r\n * @param mainNormalizedRecord - RouteRecordNormalized\r\n * @param parent - RouteRecordMatcher\r\n */\r\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\r\n if (parent &&\r\n parent.record.name &&\r\n !mainNormalizedRecord.name &&\r\n !mainNormalizedRecord.path) {\r\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\r\nfunction isRecordChildOf(record, parent) {\r\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query, but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false) {\r\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n }\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function') {\r\n enterCallbackArray.push(valid);\r\n }\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\r\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\r\n ` or \"children\" property.`);\r\n }\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n * @internal\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\r\n/**\r\n * Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\r\n *\r\n * @param route - resolved route to load\r\n */\r\nfunction loadRouteLocation(route) {\r\n return route.matched.every(record => record.redirect)\r\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\r\n : Promise.all(route.matched.map(record => record.components &&\r\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\r\n const rawComponent = record.components[name];\r\n if (typeof rawComponent === 'function' &&\r\n !('displayName' in rawComponent)) {\r\n promises.push(rawComponent().then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n return;\r\n }));\r\n }\r\n return promises;\r\n }, [])))).then(() => route);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n /**\r\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\r\n */\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n compatConfig: { MODE: 3 },\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener, so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n // Better compat for @vue/compat users\r\n // https://github.com/vuejs/router/issues/1315\r\n compatConfig: { MODE: 3 },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const injectedDepth = inject(viewDepthKey, 0);\r\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\r\n // that are used to reuse the `path` property\r\n const depth = computed(() => {\r\n let initialDepth = unref(injectedDepth);\r\n const { matched } = routeToDisplay.value;\r\n let matchedRoute;\r\n while ((matchedRoute = matched[initialDepth]) &&\r\n !matchedRoute.components) {\r\n initialDepth++;\r\n }\r\n return initialDepth;\r\n });\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\r\n provide(viewDepthKey, computed(() => depth.value + 1));\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name, so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[currentName];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth: depth.value,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and <component :is=\"...\"> both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with <transition> & <keep-alive>\r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `<router-view v-slot=\"{ Component }\">\\n` +\r\n ` <${comp}>\\n` +\r\n ` <component :is=\"Component\" />\\n` +\r\n ` </${comp}>\\n` +\r\n `</router-view>`);\r\n }\r\n}\n\n/**\r\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\r\n *\r\n * @param routeLocation - routeLocation to format\r\n * @param tooltip - optional tooltip\r\n * @returns a copy of the routeLocation\r\n */\r\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://router.vuejs.org',\r\n logo: 'https://router.vuejs.org/logo.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n if (typeof api.now !== 'function') {\r\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\r\n }\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by &lt;router-view&gt;',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: api.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: api.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: api.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n if (Object.keys(route.record.meta).length) {\r\n fields.push({\r\n editable: false,\r\n key: 'meta',\r\n value: route.record.meta,\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: typeof record.redirect === 'string'\r\n ? `redirect: ${record.redirect}`\r\n : 'redirects',\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // the matcher might have merged current location params, so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n // avoid transferring params if the redirect has a path\r\n params: 'path' in newTargetLocation ? {} : to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: typeof shouldRedirect === 'object'\r\n ? assign({}, data, shouldRedirect.state)\r\n : data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? // navigation redirects still mark the router as ready\r\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\r\n ? error\r\n : markAsReady(error) // also returns the error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign({\r\n // preserve an existing replacement but allow the redirect to override it\r\n replace,\r\n }, locationAsObject(failure.to), {\r\n state: typeof failure.to === 'object'\r\n ? assign({}, data, failure.to.state)\r\n : data,\r\n force,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise<Component>\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n // avoid setting up listeners twice due to an invalid first navigation\r\n if (removeHistoryListener)\r\n return;\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n if (!router.listening)\r\n return;\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is no guarantee for\r\n // it to work on every browser. So instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing, but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\r\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta &&\r\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\r\n // entry while a different route is displayed\r\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n function markAsReady(err) {\r\n if (!ready) {\r\n // still not ready if an error happened\r\n ready = !err;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n return err;\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n listening: true,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n removeHistoryListener = null;\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n // TODO: this probably needs to be updated so it can be used by vue-termui\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","import { nextTick, pushScopeId, popScopeId, openBlock, createBlock, withScopeId } from 'vue';\n\nfunction getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\nlet isIE;\n\nfunction initCompat () {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n\n props: {\n emitOnMount: {\n type: Boolean,\n default: false,\n },\n\n ignoreWidth: {\n type: Boolean,\n default: false,\n },\n\n ignoreHeight: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'notify',\n ],\n\n mounted () {\n initCompat();\n nextTick(() => {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n if (this.emitOnMount) {\n this.emitSize();\n }\n });\n const object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n if (isIE) {\n this.$el.appendChild(object);\n }\n object.data = 'about:blank';\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n\n beforeUnmount () {\n this.removeResizeHandlers();\n },\n\n methods: {\n compareAndNotify () {\n if ((!this.ignoreWidth && this._w !== this.$el.offsetWidth) || (!this.ignoreHeight && this._h !== this.$el.offsetHeight)) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n\n emitSize () {\n this.$emit('notify', {\n width: this._w,\n height: this._h,\n });\n },\n\n addResizeHandlers () {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n this.compareAndNotify();\n },\n\n removeResizeHandlers () {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n },\n },\n};\n\nconst _withId = /*#__PURE__*/withScopeId(\"data-v-b329ee4c\");\n\npushScopeId(\"data-v-b329ee4c\");\nconst _hoisted_1 = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\npopScopeId();\n\nconst render = /*#__PURE__*/_withId((_ctx, _cache, $props, $setup, $data, $options) => {\n return (openBlock(), createBlock(\"div\", _hoisted_1))\n});\n\nscript.render = render;\nscript.__scopeId = \"data-v-b329ee4c\";\nscript.__file = \"src/components/ResizeObserver.vue\";\n\nfunction install(app) {\n // eslint-disable-next-line vue/component-definition-name-casing\n app.component('resize-observer', script);\n app.component('ResizeObserver', script);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"2.0.0-alpha.1\",\n install: install\n};\n\nexport default plugin;\nexport { script as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import { nextTick } from 'vue';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState = /*#__PURE__*/function () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && typeof this.options.intersection.threshold === 'number' ? this.options.intersection.threshold : 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction beforeMount(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction updated(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unmounted(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n beforeMount(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unmounted(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n beforeMount: beforeMount,\n updated: updated,\n unmounted: unmounted\n};\n\nfunction install(app) {\n app.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"2.0.0-alpha.1\",\n install: install\n};\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","import { markRaw, shallowReactive, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeClass, renderSlot, createCommentVNode, createBlock, resolveDynamicComponent, normalizeStyle, withCtx, Fragment, renderList, mergeProps, toHandlers, createVNode, normalizeProps, guardReactiveProps, h, reactive } from 'vue';\nimport { ResizeObserver as ResizeObserver$1 } from 'vue-resize';\nimport { ObserveVisibility } from 'vue-observe-visibility';\nimport mitt from 'mitt';\n\nvar config = {\n itemsLimit: 1000\n};\n\n// Fork of https://github.com/olahol/scrollparent.js to be able to build with Rollup\n\nvar regex = /(auto|scroll)/;\nfunction parents(node, ps) {\n if (node.parentNode === null) {\n return ps;\n }\n return parents(node.parentNode, ps.concat([node]));\n}\nvar style = function style(node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n};\nvar overflow = function overflow(node) {\n return style(node, 'overflow') + style(node, 'overflow-y') + style(node, 'overflow-x');\n};\nvar scroll = function scroll(node) {\n return regex.test(overflow(node));\n};\nfunction getScrollParent(node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return;\n }\n var ps = parents(node.parentNode, []);\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n return document.scrollingElement || document.documentElement;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nvar props = {\n items: {\n type: Array,\n required: true\n },\n keyField: {\n type: String,\n default: 'id'\n },\n direction: {\n type: String,\n default: 'vertical',\n validator: function validator(value) {\n return ['vertical', 'horizontal'].includes(value);\n }\n },\n listTag: {\n type: String,\n default: 'div'\n },\n itemTag: {\n type: String,\n default: 'div'\n }\n};\nfunction simpleArray() {\n return this.items.length && _typeof(this.items[0]) !== 'object';\n}\n\nvar supportsPassive = false;\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nlet uid = 0;\n\nvar script$2 = {\n name: 'RecycleScroller',\n\n components: {\n ResizeObserver: ResizeObserver$1,\n },\n\n directives: {\n ObserveVisibility,\n },\n\n props: {\n ...props,\n\n itemSize: {\n type: Number,\n default: null,\n },\n\n gridItems: {\n type: Number,\n default: undefined,\n },\n\n itemSecondarySize: {\n type: Number,\n default: undefined,\n },\n\n minItemSize: {\n type: [Number, String],\n default: null,\n },\n\n sizeField: {\n type: String,\n default: 'size',\n },\n\n typeField: {\n type: String,\n default: 'type',\n },\n\n buffer: {\n type: Number,\n default: 200,\n },\n\n pageMode: {\n type: Boolean,\n default: false,\n },\n\n prerender: {\n type: Number,\n default: 0,\n },\n\n emitUpdate: {\n type: Boolean,\n default: false,\n },\n\n updateInterval: {\n type: Number,\n default: 0,\n },\n\n skipHover: {\n type: Boolean,\n default: false,\n },\n\n listTag: {\n type: String,\n default: 'div',\n },\n\n itemTag: {\n type: String,\n default: 'div',\n },\n\n listClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n itemClass: {\n type: [String, Object, Array],\n default: '',\n },\n },\n\n emits: [\n 'resize',\n 'visible',\n 'hidden',\n 'update',\n 'scroll-start',\n 'scroll-end',\n ],\n\n data () {\n return {\n pool: [],\n totalSize: 0,\n ready: false,\n hoverKey: null,\n }\n },\n\n computed: {\n sizes () {\n if (this.itemSize === null) {\n const sizes = {\n '-1': { accumulator: 0 },\n };\n const items = this.items;\n const field = this.sizeField;\n const minItemSize = this.minItemSize;\n let computedMinSize = 10000;\n let accumulator = 0;\n let current;\n for (let i = 0, l = items.length; i < l; i++) {\n current = items[i][field] || minItemSize;\n if (current < computedMinSize) {\n computedMinSize = current;\n }\n accumulator += current;\n sizes[i] = { accumulator, size: current };\n }\n // eslint-disable-next-line\n this.$_computedMinItemSize = computedMinSize;\n return sizes\n }\n return []\n },\n\n simpleArray,\n\n itemIndexByKey () {\n const { keyField, items } = this;\n const result = {};\n for (let i = 0, l = items.length; i < l; i++) {\n result[items[i][keyField]] = i;\n }\n return result\n },\n },\n\n watch: {\n items () {\n this.updateVisibleItems(true);\n },\n\n pageMode () {\n this.applyPageMode();\n this.updateVisibleItems(false);\n },\n\n sizes: {\n handler () {\n this.updateVisibleItems(false);\n },\n deep: true,\n },\n\n gridItems () {\n this.updateVisibleItems(true);\n },\n\n itemSecondarySize () {\n this.updateVisibleItems(true);\n },\n },\n\n created () {\n this.$_startIndex = 0;\n this.$_endIndex = 0;\n this.$_views = new Map();\n this.$_unusedViews = new Map();\n this.$_scrollDirty = false;\n this.$_lastUpdateScrollPosition = 0;\n\n // In SSR mode, we also prerender the same number of item for the first render\n // to avoir mismatch between server and client templates\n if (this.prerender) {\n this.$_prerender = true;\n this.updateVisibleItems(false);\n }\n\n if (this.gridItems && !this.itemSize) {\n console.error('[vue-recycle-scroller] You must provide an itemSize when using gridItems');\n }\n },\n\n mounted () {\n this.applyPageMode();\n this.$nextTick(() => {\n // In SSR mode, render the real number of visible items\n this.$_prerender = false;\n this.updateVisibleItems(true);\n this.ready = true;\n });\n },\n\n activated () {\n const lastPosition = this.$_lastUpdateScrollPosition;\n if (typeof lastPosition === 'number') {\n this.$nextTick(() => {\n this.scrollToPosition(lastPosition);\n });\n }\n },\n\n beforeUnmount () {\n this.removeListeners();\n },\n\n methods: {\n addView (pool, index, item, key, type) {\n const nr = markRaw({\n id: uid++,\n index,\n used: true,\n key,\n type,\n });\n const view = shallowReactive({\n item,\n position: 0,\n nr,\n });\n pool.push(view);\n return view\n },\n\n unuseView (view, fake = false) {\n const unusedViews = this.$_unusedViews;\n const type = view.nr.type;\n let unusedPool = unusedViews.get(type);\n if (!unusedPool) {\n unusedPool = [];\n unusedViews.set(type, unusedPool);\n }\n unusedPool.push(view);\n if (!fake) {\n view.nr.used = false;\n view.position = -9999;\n }\n },\n\n handleResize () {\n this.$emit('resize');\n if (this.ready) this.updateVisibleItems(false);\n },\n\n handleScroll (event) {\n if (!this.$_scrollDirty) {\n this.$_scrollDirty = true;\n if (this.$_updateTimeout) return\n\n const requestUpdate = () => requestAnimationFrame(() => {\n this.$_scrollDirty = false;\n const { continuous } = this.updateVisibleItems(false, true);\n\n // It seems sometimes chrome doesn't fire scroll event :/\n // When non continous scrolling is ending, we force a refresh\n if (!continuous) {\n clearTimeout(this.$_refreshTimout);\n this.$_refreshTimout = setTimeout(this.handleScroll, this.updateInterval + 100);\n }\n });\n\n requestUpdate();\n\n // Schedule the next update with throttling\n if (this.updateInterval) {\n this.$_updateTimeout = setTimeout(() => {\n this.$_updateTimeout = 0;\n if (this.$_scrollDirty) requestUpdate();\n }, this.updateInterval);\n }\n }\n },\n\n handleVisibilityChange (isVisible, entry) {\n if (this.ready) {\n if (isVisible || entry.boundingClientRect.width !== 0 || entry.boundingClientRect.height !== 0) {\n this.$emit('visible');\n requestAnimationFrame(() => {\n this.updateVisibleItems(false);\n });\n } else {\n this.$emit('hidden');\n }\n }\n },\n\n updateVisibleItems (checkItem, checkPositionDiff = false) {\n const itemSize = this.itemSize;\n const gridItems = this.gridItems || 1;\n const itemSecondarySize = this.itemSecondarySize || itemSize;\n const minItemSize = this.$_computedMinItemSize;\n const typeField = this.typeField;\n const keyField = this.simpleArray ? null : this.keyField;\n const items = this.items;\n const count = items.length;\n const sizes = this.sizes;\n const views = this.$_views;\n const unusedViews = this.$_unusedViews;\n const pool = this.pool;\n const itemIndexByKey = this.itemIndexByKey;\n let startIndex, endIndex;\n let totalSize;\n let visibleStartIndex, visibleEndIndex;\n\n if (!count) {\n startIndex = endIndex = visibleStartIndex = visibleEndIndex = totalSize = 0;\n } else if (this.$_prerender) {\n startIndex = visibleStartIndex = 0;\n endIndex = visibleEndIndex = Math.min(this.prerender, items.length);\n totalSize = null;\n } else {\n const scroll = this.getScroll();\n\n // Skip update if use hasn't scrolled enough\n if (checkPositionDiff) {\n let positionDiff = scroll.start - this.$_lastUpdateScrollPosition;\n if (positionDiff < 0) positionDiff = -positionDiff;\n if ((itemSize === null && positionDiff < minItemSize) || positionDiff < itemSize) {\n return {\n continuous: true,\n }\n }\n }\n this.$_lastUpdateScrollPosition = scroll.start;\n\n const buffer = this.buffer;\n scroll.start -= buffer;\n scroll.end += buffer;\n\n // account for leading slot\n let beforeSize = 0;\n if (this.$refs.before) {\n beforeSize = this.$refs.before.scrollHeight;\n scroll.start -= beforeSize;\n }\n\n // account for trailing slot\n if (this.$refs.after) {\n const afterSize = this.$refs.after.scrollHeight;\n scroll.end += afterSize;\n }\n\n // Variable size mode\n if (itemSize === null) {\n let h;\n let a = 0;\n let b = count - 1;\n let i = ~~(count / 2);\n let oldI;\n\n // Searching for startIndex\n do {\n oldI = i;\n h = sizes[i].accumulator;\n if (h < scroll.start) {\n a = i;\n } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) {\n b = i;\n }\n i = ~~((a + b) / 2);\n } while (i !== oldI)\n i < 0 && (i = 0);\n startIndex = i;\n\n // For container style\n totalSize = sizes[count - 1].accumulator;\n\n // Searching for endIndex\n for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++);\n if (endIndex === -1) {\n endIndex = items.length - 1;\n } else {\n endIndex++;\n // Bounds\n endIndex > count && (endIndex = count);\n }\n\n // search visible startIndex\n for (visibleStartIndex = startIndex; visibleStartIndex < count && (beforeSize + sizes[visibleStartIndex].accumulator) < scroll.start; visibleStartIndex++);\n\n // search visible endIndex\n for (visibleEndIndex = visibleStartIndex; visibleEndIndex < count && (beforeSize + sizes[visibleEndIndex].accumulator) < scroll.end; visibleEndIndex++);\n } else {\n // Fixed size mode\n startIndex = ~~(scroll.start / itemSize * gridItems);\n const remainer = startIndex % gridItems;\n startIndex -= remainer;\n endIndex = Math.ceil(scroll.end / itemSize * gridItems);\n visibleStartIndex = Math.max(0, Math.floor((scroll.start - beforeSize) / itemSize * gridItems));\n visibleEndIndex = Math.floor((scroll.end - beforeSize) / itemSize * gridItems);\n\n // Bounds\n startIndex < 0 && (startIndex = 0);\n endIndex > count && (endIndex = count);\n visibleStartIndex < 0 && (visibleStartIndex = 0);\n visibleEndIndex > count && (visibleEndIndex = count);\n\n totalSize = Math.ceil(count / gridItems) * itemSize;\n }\n }\n\n if (endIndex - startIndex > config.itemsLimit) {\n this.itemsLimitError();\n }\n\n this.totalSize = totalSize;\n\n let view;\n\n const continuous = startIndex <= this.$_endIndex && endIndex >= this.$_startIndex;\n\n // Unuse views that are no longer visible\n if (continuous) {\n for (let i = 0, l = pool.length; i < l; i++) {\n view = pool[i];\n if (view.nr.used) {\n // Update view item index\n if (checkItem) {\n view.nr.index = itemIndexByKey[view.item[keyField]];\n }\n\n // Check if index is still in visible range\n if (\n view.nr.index == null ||\n view.nr.index < startIndex ||\n view.nr.index >= endIndex\n ) {\n this.unuseView(view);\n }\n }\n }\n }\n\n const unusedIndex = continuous ? null : new Map();\n\n let item, type;\n let v;\n for (let i = startIndex; i < endIndex; i++) {\n item = items[i];\n const key = keyField ? item[keyField] : item;\n if (key == null) {\n throw new Error(`Key is ${key} on item (keyField is '${keyField}')`)\n }\n view = views.get(key);\n\n if (!itemSize && !sizes[i].size) {\n if (view) this.unuseView(view);\n continue\n }\n\n type = item[typeField];\n\n let unusedPool = unusedViews.get(type);\n let newlyUsedView = false;\n\n // No view assigned to item\n if (!view) {\n if (continuous) {\n // Reuse existing view\n if (unusedPool && unusedPool.length) {\n view = unusedPool.pop();\n } else {\n view = this.addView(pool, i, item, key, type);\n }\n } else {\n // Use existing view\n // We don't care if they are already used\n // because we are not in continous scrolling\n v = unusedIndex.get(type) || 0;\n\n if (!unusedPool || v >= unusedPool.length) {\n view = this.addView(pool, i, item, key, type);\n this.unuseView(view, true);\n unusedPool = unusedViews.get(type);\n }\n\n view = unusedPool[v];\n unusedIndex.set(type, v + 1);\n }\n\n // Assign view to item\n views.delete(view.nr.key);\n view.nr.used = true;\n view.nr.index = i;\n view.nr.key = key;\n view.nr.type = type;\n views.set(key, view);\n\n newlyUsedView = true;\n } else {\n // View already assigned to item\n if (!view.nr.used) {\n view.nr.used = true;\n newlyUsedView = true;\n if (unusedPool) {\n const index = unusedPool.indexOf(view);\n if (index !== -1) unusedPool.splice(index, 1);\n }\n }\n }\n\n // Always set item in case it's a new object with the same key\n view.item = item;\n\n if (newlyUsedView) {\n if (i === items.length - 1) this.$emit('scroll-end');\n if (i === 0) this.$emit('scroll-start');\n }\n\n // Update position\n if (itemSize === null) {\n view.position = sizes[i - 1].accumulator;\n view.offset = 0;\n } else {\n view.position = Math.floor(i / gridItems) * itemSize;\n view.offset = (i % gridItems) * itemSecondarySize;\n }\n }\n\n this.$_startIndex = startIndex;\n this.$_endIndex = endIndex;\n\n if (this.emitUpdate) this.$emit('update', startIndex, endIndex, visibleStartIndex, visibleEndIndex);\n\n // After the user has finished scrolling\n // Sort views so text selection is correct\n clearTimeout(this.$_sortTimer);\n this.$_sortTimer = setTimeout(this.sortViews, this.updateInterval + 300);\n\n return {\n continuous,\n }\n },\n\n getListenerTarget () {\n let target = getScrollParent(this.$el);\n // Fix global scroll target for Chrome and Safari\n if (window.document && (target === window.document.documentElement || target === window.document.body)) {\n target = window;\n }\n return target\n },\n\n getScroll () {\n const { $el: el, direction } = this;\n const isVertical = direction === 'vertical';\n let scrollState;\n\n if (this.pageMode) {\n const bounds = el.getBoundingClientRect();\n const boundsSize = isVertical ? bounds.height : bounds.width;\n let start = -(isVertical ? bounds.top : bounds.left);\n let size = isVertical ? window.innerHeight : window.innerWidth;\n if (start < 0) {\n size += start;\n start = 0;\n }\n if (start + size > boundsSize) {\n size = boundsSize - start;\n }\n scrollState = {\n start,\n end: start + size,\n };\n } else if (isVertical) {\n scrollState = {\n start: el.scrollTop,\n end: el.scrollTop + el.clientHeight,\n };\n } else {\n scrollState = {\n start: el.scrollLeft,\n end: el.scrollLeft + el.clientWidth,\n };\n }\n\n return scrollState\n },\n\n applyPageMode () {\n if (this.pageMode) {\n this.addListeners();\n } else {\n this.removeListeners();\n }\n },\n\n addListeners () {\n this.listenerTarget = this.getListenerTarget();\n this.listenerTarget.addEventListener('scroll', this.handleScroll, supportsPassive\n ? {\n passive: true,\n }\n : false);\n this.listenerTarget.addEventListener('resize', this.handleResize);\n },\n\n removeListeners () {\n if (!this.listenerTarget) {\n return\n }\n\n this.listenerTarget.removeEventListener('scroll', this.handleScroll);\n this.listenerTarget.removeEventListener('resize', this.handleResize);\n\n this.listenerTarget = null;\n },\n\n scrollToItem (index) {\n let scroll;\n const gridItems = this.gridItems || 1;\n if (this.itemSize === null) {\n scroll = index > 0 ? this.sizes[index - 1].accumulator : 0;\n } else {\n scroll = Math.floor(index / gridItems) * this.itemSize;\n }\n this.scrollToPosition(scroll);\n },\n\n scrollToPosition (position) {\n const direction = this.direction === 'vertical'\n ? { scroll: 'scrollTop', start: 'top' }\n : { scroll: 'scrollLeft', start: 'left' };\n\n let viewport;\n let scrollDirection;\n let scrollDistance;\n\n if (this.pageMode) {\n const viewportEl = getScrollParent(this.$el);\n // HTML doesn't overflow like other elements\n const scrollTop = viewportEl.tagName === 'HTML' ? 0 : viewportEl[direction.scroll];\n const bounds = viewportEl.getBoundingClientRect();\n\n const scroller = this.$el.getBoundingClientRect();\n const scrollerPosition = scroller[direction.start] - bounds[direction.start];\n\n viewport = viewportEl;\n scrollDirection = direction.scroll;\n scrollDistance = position + scrollTop + scrollerPosition;\n } else {\n viewport = this.$el;\n scrollDirection = direction.scroll;\n scrollDistance = position;\n }\n\n viewport[scrollDirection] = scrollDistance;\n },\n\n itemsLimitError () {\n setTimeout(() => {\n console.log('It seems the scroller element isn\\'t scrolling, so it tries to render all the items at once.', 'Scroller:', this.$el);\n console.log('Make sure the scroller has a fixed height (or width) and \\'overflow-y\\' (or \\'overflow-x\\') set to \\'auto\\' so it can scroll correctly and only render the items visible in the scroll viewport.');\n });\n throw new Error('Rendered items limit reached')\n },\n\n sortViews () {\n this.pool.sort((viewA, viewB) => viewA.nr.index - viewB.nr.index);\n },\n },\n};\n\nconst _hoisted_1 = {\n key: 0,\n ref: \"before\",\n class: \"vue-recycle-scroller__slot\"\n};\nconst _hoisted_2 = {\n key: 1,\n ref: \"after\",\n class: \"vue-recycle-scroller__slot\"\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ResizeObserver = resolveComponent(\"ResizeObserver\");\n const _directive_observe_visibility = resolveDirective(\"observe-visibility\");\n\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vue-recycle-scroller\", {\n ready: $data.ready,\n 'page-mode': $props.pageMode,\n [`direction-${_ctx.direction}`]: true,\n }]),\n onScrollPassive: _cache[0] || (_cache[0] = (...args) => ($options.handleScroll && $options.handleScroll(...args)))\n }, [\n (_ctx.$slots.before)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"before\")\n ], 512 /* NEED_PATCH */))\n : createCommentVNode(\"v-if\", true),\n (openBlock(), createBlock(resolveDynamicComponent($props.listTag), {\n ref: \"wrapper\",\n style: normalizeStyle({ [_ctx.direction === 'vertical' ? 'minHeight' : 'minWidth']: $data.totalSize + 'px' }),\n class: normalizeClass([\"vue-recycle-scroller__item-wrapper\", $props.listClass])\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.pool, (view) => {\n return (openBlock(), createBlock(resolveDynamicComponent($props.itemTag), mergeProps({\n key: view.nr.id,\n style: $data.ready ? {\n transform: `translate${_ctx.direction === 'vertical' ? 'Y' : 'X'}(${view.position}px) translate${_ctx.direction === 'vertical' ? 'X' : 'Y'}(${view.offset}px)`,\n width: $props.gridItems ? `${_ctx.direction === 'vertical' ? $props.itemSecondarySize || $props.itemSize : $props.itemSize}px` : undefined,\n height: $props.gridItems ? `${_ctx.direction === 'horizontal' ? $props.itemSecondarySize || $props.itemSize : $props.itemSize}px` : undefined,\n } : null,\n class: [\"vue-recycle-scroller__item-view\", [\n $props.itemClass,\n {\n hover: !$props.skipHover && $data.hoverKey === view.nr.key\n },\n ]]\n }, toHandlers($props.skipHover ? {} : {\n mouseenter: () => { $data.hoverKey = view.nr.key; },\n mouseleave: () => { $data.hoverKey = null; },\n })), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {\n item: view.item,\n index: view.nr.index,\n active: view.nr.used\n })\n ]),\n _: 2 /* DYNAMIC */\n }, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, [\"style\", \"class\"]))\n }), 128 /* KEYED_FRAGMENT */)),\n renderSlot(_ctx.$slots, \"empty\")\n ]),\n _: 3 /* FORWARDED */\n }, 8 /* PROPS */, [\"style\", \"class\"])),\n (_ctx.$slots.after)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"after\")\n ], 512 /* NEED_PATCH */))\n : createCommentVNode(\"v-if\", true),\n createVNode(_component_ResizeObserver, { onNotify: $options.handleResize }, null, 8 /* PROPS */, [\"onNotify\"])\n ], 34 /* CLASS, HYDRATE_EVENTS */)), [\n [_directive_observe_visibility, $options.handleVisibilityChange]\n ])\n}\n\nscript$2.render = render$1;\nscript$2.__file = \"src/components/RecycleScroller.vue\";\n\nvar script$1 = {\n name: 'DynamicScroller',\n\n components: {\n RecycleScroller: script$2,\n },\n\n provide () {\n if (typeof ResizeObserver !== 'undefined') {\n this.$_resizeObserver = new ResizeObserver(entries => {\n requestAnimationFrame(() => {\n if (!Array.isArray(entries)) {\n return\n }\n for (const entry of entries) {\n if (entry.target && entry.target.$_vs_onResize) {\n const resizeObserverSize = entry.borderBoxSize[0];\n entry.target.$_vs_onResize(entry.target.$_vs_id, resizeObserverSize.inlineSize, resizeObserverSize.blockSize);\n }\n }\n });\n });\n }\n\n return {\n vscrollData: this.vscrollData,\n vscrollParent: this,\n vscrollResizeObserver: this.$_resizeObserver,\n }\n },\n\n inheritAttrs: false,\n\n props: {\n ...props,\n\n minItemSize: {\n type: [Number, String],\n required: true,\n },\n },\n\n emits: [\n 'resize',\n 'visible',\n ],\n\n data () {\n return {\n vscrollData: {\n active: true,\n sizes: {},\n keyField: this.keyField,\n simpleArray: false,\n },\n }\n },\n\n computed: {\n simpleArray,\n\n itemsWithSize () {\n const result = [];\n const { items, keyField, simpleArray } = this;\n const sizes = this.vscrollData.sizes;\n const l = items.length;\n for (let i = 0; i < l; i++) {\n const item = items[i];\n const id = simpleArray ? i : item[keyField];\n let size = sizes[id];\n if (typeof size === 'undefined' && !this.$_undefinedMap[id]) {\n size = 0;\n }\n result.push({\n item,\n id,\n size,\n });\n }\n return result\n },\n },\n\n watch: {\n items () {\n this.forceUpdate();\n },\n\n simpleArray: {\n handler (value) {\n this.vscrollData.simpleArray = value;\n },\n immediate: true,\n },\n\n direction (value) {\n this.forceUpdate(true);\n },\n\n itemsWithSize (next, prev) {\n const scrollTop = this.$el.scrollTop;\n\n // Calculate total diff between prev and next sizes\n // over current scroll top. Then add it to scrollTop to\n // avoid jumping the contents that the user is seeing.\n let prevActiveTop = 0; let activeTop = 0;\n const length = Math.min(next.length, prev.length);\n for (let i = 0; i < length; i++) {\n if (prevActiveTop >= scrollTop) {\n break\n }\n prevActiveTop += prev[i].size || this.minItemSize;\n activeTop += next[i].size || this.minItemSize;\n }\n const offset = activeTop - prevActiveTop;\n\n if (offset === 0) {\n return\n }\n\n this.$el.scrollTop += offset;\n },\n },\n\n beforeCreate () {\n this.$_updates = [];\n this.$_undefinedSizes = 0;\n this.$_undefinedMap = {};\n this.$_events = mitt();\n },\n\n activated () {\n this.vscrollData.active = true;\n },\n\n deactivated () {\n this.vscrollData.active = false;\n },\n\n unmounted () {\n this.$_events.all.clear();\n },\n\n methods: {\n onScrollerResize () {\n const scroller = this.$refs.scroller;\n if (scroller) {\n this.forceUpdate();\n }\n this.$emit('resize');\n },\n\n onScrollerVisible () {\n this.$_events.emit('vscroll:update', { force: false });\n this.$emit('visible');\n },\n\n forceUpdate (clear = false) {\n if (clear || this.simpleArray) {\n this.vscrollData.sizes = {};\n }\n this.$_events.emit('vscroll:update', { force: true });\n },\n\n scrollToItem (index) {\n const scroller = this.$refs.scroller;\n if (scroller) scroller.scrollToItem(index);\n },\n\n getItemSize (item, index = undefined) {\n const id = this.simpleArray ? (index != null ? index : this.items.indexOf(item)) : item[this.keyField];\n return this.vscrollData.sizes[id] || 0\n },\n\n scrollToBottom () {\n if (this.$_scrollingToBottom) return\n this.$_scrollingToBottom = true;\n const el = this.$el;\n // Item is inserted to the DOM\n this.$nextTick(() => {\n el.scrollTop = el.scrollHeight + 5000;\n // Item sizes are computed\n const cb = () => {\n el.scrollTop = el.scrollHeight + 5000;\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight + 5000;\n if (this.$_undefinedSizes === 0) {\n this.$_scrollingToBottom = false;\n } else {\n requestAnimationFrame(cb);\n }\n });\n };\n requestAnimationFrame(cb);\n });\n },\n },\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_RecycleScroller = resolveComponent(\"RecycleScroller\");\n\n return (openBlock(), createBlock(_component_RecycleScroller, mergeProps({\n ref: \"scroller\",\n items: $options.itemsWithSize,\n \"min-item-size\": $props.minItemSize,\n direction: _ctx.direction,\n \"key-field\": \"id\",\n \"list-tag\": _ctx.listTag,\n \"item-tag\": _ctx.itemTag\n }, _ctx.$attrs, {\n onResize: $options.onScrollerResize,\n onVisible: $options.onScrollerVisible\n }), {\n default: withCtx(({ item: itemWithSize, index, active }) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps({\n item: itemWithSize.item,\n index,\n active,\n itemWithSize\n })))\n ]),\n before: withCtx(() => [\n renderSlot(_ctx.$slots, \"before\")\n ]),\n after: withCtx(() => [\n renderSlot(_ctx.$slots, \"after\")\n ]),\n empty: withCtx(() => [\n renderSlot(_ctx.$slots, \"empty\")\n ]),\n _: 3 /* FORWARDED */\n }, 16 /* FULL_PROPS */, [\"items\", \"min-item-size\", \"direction\", \"list-tag\", \"item-tag\", \"onResize\", \"onVisible\"]))\n}\n\nscript$1.render = render;\nscript$1.__file = \"src/components/DynamicScroller.vue\";\n\nvar script = {\n name: 'DynamicScrollerItem',\n\n inject: [\n 'vscrollData',\n 'vscrollParent',\n 'vscrollResizeObserver',\n ],\n\n props: {\n // eslint-disable-next-line vue/require-prop-types\n item: {\n required: true,\n },\n\n watchData: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Indicates if the view is actively used to display an item.\n */\n active: {\n type: Boolean,\n required: true,\n },\n\n index: {\n type: Number,\n default: undefined,\n },\n\n sizeDependencies: {\n type: [Array, Object],\n default: null,\n },\n\n emitResize: {\n type: Boolean,\n default: false,\n },\n\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n emits: [\n 'resize',\n ],\n\n computed: {\n id () {\n if (this.vscrollData.simpleArray) return this.index\n // eslint-disable-next-line no-prototype-builtins\n if (this.vscrollData.keyField in this.item) return this.item[this.vscrollData.keyField]\n throw new Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`)\n },\n\n size () {\n return this.vscrollData.sizes[this.id] || 0\n },\n\n finalActive () {\n return this.active && this.vscrollData.active\n },\n },\n\n watch: {\n watchData: 'updateWatchData',\n\n id (value, oldValue) {\n this.$el.$_vs_id = this.id;\n if (!this.size) {\n this.onDataUpdate();\n }\n\n if (this.$_sizeObserved) {\n // In case the old item had the same size, it won't trigger the ResizeObserver\n // since we are reusing the same DOM node\n const oldSize = this.vscrollData.sizes[oldValue];\n const size = this.vscrollData.sizes[value];\n if (oldSize != null && oldSize !== size) {\n this.applySize(oldSize);\n }\n }\n },\n\n finalActive (value) {\n if (!this.size) {\n if (value) {\n if (!this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes++;\n this.vscrollParent.$_undefinedMap[this.id] = true;\n }\n } else {\n if (this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes--;\n this.vscrollParent.$_undefinedMap[this.id] = false;\n }\n }\n }\n\n if (this.vscrollResizeObserver) {\n if (value) {\n this.observeSize();\n } else {\n this.unobserveSize();\n }\n } else if (value && this.$_pendingVScrollUpdate === this.id) {\n this.updateSize();\n }\n },\n },\n\n created () {\n if (this.$isServer) return\n\n this.$_forceNextVScrollUpdate = null;\n this.updateWatchData();\n\n if (!this.vscrollResizeObserver) {\n for (const k in this.sizeDependencies) {\n this.$watch(() => this.sizeDependencies[k], this.onDataUpdate);\n }\n\n this.vscrollParent.$_events.on('vscroll:update', this.onVscrollUpdate);\n }\n },\n\n mounted () {\n if (this.finalActive) {\n this.updateSize();\n this.observeSize();\n }\n },\n\n beforeUnmount () {\n this.vscrollParent.$_events.off('vscroll:update', this.onVscrollUpdate);\n this.unobserveSize();\n },\n\n methods: {\n updateSize () {\n if (this.finalActive) {\n if (this.$_pendingSizeUpdate !== this.id) {\n this.$_pendingSizeUpdate = this.id;\n this.$_forceNextVScrollUpdate = null;\n this.$_pendingVScrollUpdate = null;\n this.computeSize(this.id);\n }\n } else {\n this.$_forceNextVScrollUpdate = this.id;\n }\n },\n\n updateWatchData () {\n if (this.watchData && !this.vscrollResizeObserver) {\n this.$_watchData = this.$watch('item', () => {\n this.onDataUpdate();\n }, {\n deep: true,\n });\n } else if (this.$_watchData) {\n this.$_watchData();\n this.$_watchData = null;\n }\n },\n\n onVscrollUpdate ({ force }) {\n // If not active, sechedule a size update when it becomes active\n if (!this.finalActive && force) {\n this.$_pendingVScrollUpdate = this.id;\n }\n\n if (this.$_forceNextVScrollUpdate === this.id || force || !this.size) {\n this.updateSize();\n }\n },\n\n onDataUpdate () {\n this.updateSize();\n },\n\n computeSize (id) {\n this.$nextTick(() => {\n if (this.id === id) {\n const width = this.$el.offsetWidth;\n const height = this.$el.offsetHeight;\n this.applyWidthHeight(width, height);\n }\n this.$_pendingSizeUpdate = null;\n });\n },\n\n applyWidthHeight (width, height) {\n const size = ~~(this.vscrollParent.direction === 'vertical' ? height : width);\n if (size && this.size !== size) {\n this.applySize(size);\n }\n },\n\n applySize (size) {\n if (this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes--;\n this.vscrollParent.$_undefinedMap[this.id] = undefined;\n }\n this.vscrollData.sizes[this.id] = size;\n if (this.emitResize) this.$emit('resize', this.id);\n },\n\n observeSize () {\n if (!this.vscrollResizeObserver) return\n if (this.$_sizeObserved) return\n this.vscrollResizeObserver.observe(this.$el);\n this.$el.$_vs_id = this.id;\n this.$el.$_vs_onResize = this.onResize;\n this.$_sizeObserved = true;\n },\n\n unobserveSize () {\n if (!this.vscrollResizeObserver) return\n if (!this.$_sizeObserved) return\n this.vscrollResizeObserver.unobserve(this.$el);\n this.$el.$_vs_onResize = undefined;\n this.$_sizeObserved = false;\n },\n\n onResize (id, width, height) {\n if (this.id === id) {\n this.applyWidthHeight(width, height);\n }\n },\n },\n\n render () {\n return h(this.tag, this.$slots.default())\n },\n};\n\nscript.__file = \"src/components/DynamicScrollerItem.vue\";\n\nfunction IdState () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$idProp = _ref.idProp,\n idProp = _ref$idProp === void 0 ? function (vm) {\n return vm.item.id;\n } : _ref$idProp;\n var store = reactive({});\n\n // @vue/component\n return {\n data: function data() {\n return {\n idState: null\n };\n },\n created: function created() {\n var _this = this;\n this.$_id = null;\n if (typeof idProp === 'function') {\n this.$_getId = function () {\n return idProp.call(_this, _this);\n };\n } else {\n this.$_getId = function () {\n return _this[idProp];\n };\n }\n this.$watch(this.$_getId, {\n handler: function handler(value) {\n var _this2 = this;\n this.$nextTick(function () {\n _this2.$_id = value;\n });\n },\n immediate: true\n });\n this.$_updateIdState();\n },\n beforeUpdate: function beforeUpdate() {\n this.$_updateIdState();\n },\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */$_idStateInit: function $_idStateInit(id) {\n var factory = this.$options.idState;\n if (typeof factory === 'function') {\n var data = factory.call(this, this);\n store[id] = data;\n this.$_id = id;\n return data;\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.');\n }\n },\n /**\n * Ensure idState is created and up-to-date\n */$_updateIdState: function $_updateIdState() {\n var id = this.$_getId();\n if (id == null) {\n console.warn(\"No id found for IdState with idProp: '\".concat(idProp, \"'.\"));\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id);\n }\n this.idState = store[id];\n }\n }\n }\n };\n}\n\nfunction registerComponents(app, prefix) {\n app.component(\"\".concat(prefix, \"recycle-scroller\"), script$2);\n app.component(\"\".concat(prefix, \"RecycleScroller\"), script$2);\n app.component(\"\".concat(prefix, \"dynamic-scroller\"), script$1);\n app.component(\"\".concat(prefix, \"DynamicScroller\"), script$1);\n app.component(\"\".concat(prefix, \"dynamic-scroller-item\"), script);\n app.component(\"\".concat(prefix, \"DynamicScrollerItem\"), script);\n}\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"2.0.0-beta.7\",\n install: function install(app, options) {\n var finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: ''\n }, options);\n for (var key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key];\n }\n }\n if (finalOptions.installComponents) {\n registerComponents(app, finalOptions.componentsPrefix);\n }\n }\n};\n\nexport { script$1 as DynamicScroller, script as DynamicScrollerItem, IdState, script$2 as RecycleScroller, plugin as default };\n//# sourceMappingURL=vue-virtual-scroller.esm.js.map\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i&&i.push(e)||n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&i.splice(i.indexOf(e)>>>0,1)},emit:function(t,e){(n.get(t)||[]).slice().map(function(n){n(e)}),(n.get(\"*\")||[]).slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.es.js.map\n","export function getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n // @ts-ignore\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = global.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const';\nimport { now } from './time';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","/*!\n * vuex v4.1.0\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { inject, effectScope, reactive, watch, computed } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nvar storeKey = 'store';\n\nfunction useStore (key) {\n if ( key === void 0 ) key = null;\n\n return inject(key !== null ? key : storeKey)\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset state\n resetStoreState(store, state, hot);\n}\n\nfunction resetStoreState (store, state, hot) {\n var oldState = store._state;\n var oldScope = store._scope;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computedObj = {};\n var computedCache = {};\n\n // create a new effect scope and create computed object inside it to avoid\n // getters (computed) getting destroyed on component unmount.\n var scope = effectScope(true);\n\n scope.run(function () {\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldState.\n // using partial to return function with only arguments preserved in closure environment.\n computedObj[key] = partial(fn, store);\n computedCache[key] = computed(function () { return computedObj[key](); });\n Object.defineProperty(store.getters, key, {\n get: function () { return computedCache[key].value; },\n enumerable: true // for local getters\n });\n });\n });\n\n store._state = reactive({\n data: state\n });\n\n // register the newly created effect scope to the store so that we can\n // dispose the effects when this method runs again in the future.\n store._scope = scope;\n\n // enable strict mode for new state\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldState) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldState.data = null;\n });\n }\n }\n\n // dispose previously registered effect scope if there is one.\n if (oldScope) {\n oldScope.stop();\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n parentState[moduleName] = module.state;\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by state update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n watch(function () { return store._state.data; }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, flush: 'sync' });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nvar LABEL_VUEX_BINDINGS = 'vuex bindings';\nvar MUTATIONS_LAYER_ID = 'vuex:mutations';\nvar ACTIONS_LAYER_ID = 'vuex:actions';\nvar INSPECTOR_ID = 'vuex';\n\nvar actionId = 0;\n\nfunction addDevtools (app, store) {\n setupDevtoolsPlugin(\n {\n id: 'org.vuejs.vuex',\n app: app,\n label: 'Vuex',\n homepage: 'https://next.vuex.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n packageName: 'vuex',\n componentStateTypes: [LABEL_VUEX_BINDINGS]\n },\n function (api) {\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: 'Vuex Mutations',\n color: COLOR_LIME_500\n });\n\n api.addTimelineLayer({\n id: ACTIONS_LAYER_ID,\n label: 'Vuex Actions',\n color: COLOR_LIME_500\n });\n\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Vuex',\n icon: 'storage',\n treeFilterPlaceholder: 'Filter stores...'\n });\n\n api.on.getInspectorTree(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n if (payload.filter) {\n var nodes = [];\n flattenStoreForInspectorTree(nodes, store._modules.root, payload.filter, '');\n payload.rootNodes = nodes;\n } else {\n payload.rootNodes = [\n formatStoreForInspectorTree(store._modules.root, '')\n ];\n }\n }\n });\n\n api.on.getInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n makeLocalGetters(store, modulePath);\n payload.state = formatStoreForInspectorState(\n getStoreModule(store._modules, modulePath),\n modulePath === 'root' ? store.getters : store._makeLocalGettersCache,\n modulePath\n );\n }\n });\n\n api.on.editInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n var path = payload.path;\n if (modulePath !== 'root') {\n path = modulePath.split('/').filter(Boolean).concat( path);\n }\n store._withCommit(function () {\n payload.set(store._state.data, path, payload.state.value);\n });\n }\n });\n\n store.subscribe(function (mutation, state) {\n var data = {};\n\n if (mutation.payload) {\n data.payload = mutation.payload;\n }\n\n data.state = state;\n\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: mutation.type,\n data: data\n }\n });\n });\n\n store.subscribeAction({\n before: function (action, state) {\n var data = {};\n if (action.payload) {\n data.payload = action.payload;\n }\n action._id = actionId++;\n action._time = Date.now();\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: action._time,\n title: action.type,\n groupId: action._id,\n subtitle: 'start',\n data: data\n }\n });\n },\n after: function (action, state) {\n var data = {};\n var duration = Date.now() - action._time;\n data.duration = {\n _custom: {\n type: 'duration',\n display: (duration + \"ms\"),\n tooltip: 'Action duration',\n value: duration\n }\n };\n if (action.payload) {\n data.payload = action.payload;\n }\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: action.type,\n groupId: action._id,\n subtitle: 'end',\n data: data\n }\n });\n }\n });\n }\n );\n}\n\n// extracted from tailwind palette\nvar COLOR_LIME_500 = 0x84cc16;\nvar COLOR_DARK = 0x666666;\nvar COLOR_WHITE = 0xffffff;\n\nvar TAG_NAMESPACED = {\n label: 'namespaced',\n textColor: COLOR_WHITE,\n backgroundColor: COLOR_DARK\n};\n\n/**\n * @param {string} path\n */\nfunction extractNameFromPath (path) {\n return path && path !== 'root' ? path.split('/').slice(-2, -1)[0] : 'Root'\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorNode}\n */\nfunction formatStoreForInspectorTree (module, path) {\n return {\n id: path || 'root',\n // all modules end with a `/`, we want the last segment only\n // cart/ -> cart\n // nested/cart/ -> cart\n label: extractNameFromPath(path),\n tags: module.namespaced ? [TAG_NAMESPACED] : [],\n children: Object.keys(module._children).map(function (moduleName) { return formatStoreForInspectorTree(\n module._children[moduleName],\n path + moduleName + '/'\n ); }\n )\n }\n}\n\n/**\n * @param {import('@vue/devtools-api').CustomInspectorNode[]} result\n * @param {*} module\n * @param {string} filter\n * @param {string} path\n */\nfunction flattenStoreForInspectorTree (result, module, filter, path) {\n if (path.includes(filter)) {\n result.push({\n id: path || 'root',\n label: path.endsWith('/') ? path.slice(0, path.length - 1) : path || 'Root',\n tags: module.namespaced ? [TAG_NAMESPACED] : []\n });\n }\n Object.keys(module._children).forEach(function (moduleName) {\n flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + '/');\n });\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorState}\n */\nfunction formatStoreForInspectorState (module, getters, path) {\n getters = path === 'root' ? getters : getters[path];\n var gettersKeys = Object.keys(getters);\n var storeState = {\n state: Object.keys(module.state).map(function (key) { return ({\n key: key,\n editable: true,\n value: module.state[key]\n }); })\n };\n\n if (gettersKeys.length) {\n var tree = transformPathsToObjectTree(getters);\n storeState.getters = Object.keys(tree).map(function (key) { return ({\n key: key.endsWith('/') ? extractNameFromPath(key) : key,\n editable: false,\n value: canThrow(function () { return tree[key]; })\n }); });\n }\n\n return storeState\n}\n\nfunction transformPathsToObjectTree (getters) {\n var result = {};\n Object.keys(getters).forEach(function (key) {\n var path = key.split('/');\n if (path.length > 1) {\n var target = result;\n var leafKey = path.pop();\n path.forEach(function (p) {\n if (!target[p]) {\n target[p] = {\n _custom: {\n value: {},\n display: p,\n tooltip: 'Module',\n abstract: true\n }\n };\n }\n target = target[p]._custom.value;\n });\n target[leafKey] = canThrow(function () { return getters[key]; });\n } else {\n result[key] = canThrow(function () { return getters[key]; });\n }\n });\n return result\n}\n\nfunction getStoreModule (moduleMap, path) {\n var names = path.split('/').filter(function (n) { return n; });\n return names.reduce(\n function (module, moduleName, i) {\n var child = module[moduleName];\n if (!child) {\n throw new Error((\"Missing module \\\"\" + moduleName + \"\\\" for path \\\"\" + path + \"\\\".\"))\n }\n return i === names.length - 1 ? child : child._children\n },\n path === 'root' ? moduleMap : moduleMap.root._children\n )\n}\n\nfunction canThrow (cb) {\n try {\n return cb()\n } catch (e) {\n return e\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nfunction createStore (options) {\n return new Store(options)\n}\n\nvar Store = function Store (options) {\n var this$1$1 = this;\n if ( options === void 0 ) options = {};\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n var devtools = options.devtools;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._makeLocalGettersCache = Object.create(null);\n\n // EffectScope instance. when registering new getters, we wrap them inside\n // EffectScope so that getters (computed) would not be destroyed on\n // component unmount.\n this._scope = null;\n\n this._devtools = devtools;\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store state, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreState(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1$1); });\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nStore.prototype.install = function install (app, injectKey) {\n app.provide(injectKey || storeKey, this);\n app.config.globalProperties.$store = this;\n\n var useDevtools = this._devtools !== undefined\n ? this._devtools\n : (process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__;\n\n if (useDevtools) {\n addDevtools(app, this);\n }\n};\n\nprototypeAccessors.state.get = function () {\n return this._state.data\n};\n\nprototypeAccessors.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch$1 (getter, cb, options) {\n var this$1$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return watch(function () { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options))\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1$1 = this;\n\n this._withCommit(function () {\n this$1$1._state.data = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreState(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1$1.state, path.slice(0, -1));\n delete parentState[path[path.length - 1]];\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n version: '4.1.0',\n Store: Store,\n storeKey: storeKey,\n createStore: createStore,\n useStore: useStore,\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, storeKey, useStore };\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env';\nimport { HOOK_SETUP } from './const';\nimport { ApiProxy } from './proxy';\nexport * from './api';\nexport * from './plugin';\nexport * from './time';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\ntry {\n self.EventTarget = (new EventTarget).constructor;\n} catch(EventTarget) {\n (function (Object, wm) {\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var proto = EventTarget.prototype;\n define(proto, 'addEventListener', function (type, listener, options) {\n for (var\n secret = wm.get(this),\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener)\n return;\n }\n listeners.push({target: this, listener: listener, options: options});\n });\n define(proto, 'dispatchEvent', function (event) {\n var secret = wm.get(this);\n var listeners = secret[event.type];\n if (listeners) {\n define(event, 'target', this);\n define(event, 'currentTarget', this);\n listeners.slice(0).some(dispatch, event);\n delete event.currentTarget;\n delete event.target;\n }\n return true;\n });\n define(proto, 'removeEventListener', function (type, listener) {\n for (var\n secret = wm.get(this),\n /* istanbul ignore next */\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener) {\n listeners.splice(i, 1);\n return;\n }\n }\n });\n self.EventTarget = EventTarget;\n function EventTarget() {'use strict';\n wm.set(this, create(null));\n }\n function define(target, name, value) {\n defineProperty(\n target,\n name,\n {\n configurable: true,\n writable: true,\n value: value\n }\n );\n }\n function dispatch(info) {\n var options = info.options;\n if (options && options.once)\n info.target.removeEventListener(this.type, info.listener);\n if (typeof info.listener === 'function')\n info.listener.call(info.target, this);\n else\n info.listener.handleEvent(this);\n return this._stopImmediatePropagationFlag;\n }\n }(Object, new WeakMap));\n}\nexport default self.EventTarget;\n"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","props","descriptor","configurable","writable","value","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","done","err","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","o","minLen","n","toString","slice","name","test","len","arr2","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","Proxy","get","prop","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","concat","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","Set","map","add","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","set","_onChangeCb","cb","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","htmlEscape","str","replace","joinStyles","styles","reduce","acc","styleName","trim","transformIsMeaningful","transform","css","dcp","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","_cssInserted","ensureCss","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","loaded","domready","fn","setTimeout","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","children","attributeName","joinAttributes","join","iconFromMapping","mapping","prefix","iconName","icon","doScroll","readyState","listener","removeEventListener","subject","initialValue","thisContext","result","undefined","func","a","b","c","bindInternal4","toHex","unicode","decoded","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","params","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","values","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","some","v","canonical","rest","aliasIconName","Library","instance","Constructor","_classCallCheck","this","definitions","protoProps","_this","_len","_key","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","args","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","Promise","reject","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","parse","_icon","match","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","mask","symbol","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","resolve","console","error","maybeNotifyMissing","noop$1","p","preamble","perf","end","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","options","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","type","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","contains","childList","characterData","subtree","styleParser","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","data","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","f","prefixesDomQuery","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","toLowerCase","_hexValueFromContent","second","first","cleaned","codePoint","index","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","startsWith","iconIdentifier","iconName4","meta","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","isNaN","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","r","opacity","mixoutsTo","pseudoElements2svg","unwatch","bootstrap","disconnect","symbolData","k","plugin","tk","sk","config$1","library$1","parse$1","faSmileBeam","faFlag","faBookmark","faStar","faWindowMinimize","faAt","faTrashAlt","faInfo","faCompressAlt","faSignOutAlt","faAngleDoubleDown","faPencilAlt","faComments","faCircleNotch","faPaw","faReply","faCompass","faBars","faLightbulb","faList","faPaintBrush","faLock","faEdit","faShareAlt","faUsers","faEyeSlash","faChevronUp","faUser","faBullhorn","faGlobe","faBan","faServer","faSignInAlt","faFileUpload","faPlusSquare","faImage","faAngleDoubleRight","faPlayCircle","faBoxOpen","faFilter","faCode","faLockOpen","faPollH","faBasketballBall","faWrench","faEye","faPen","faBus","faExternalLinkAlt","faBirthdayCake","faEnvelope","faInfoCircle","faMinus","faCog","faFolderTree","faEllipsisV","faDownload","faHome","faStop","faUpload","faFileDownload","faEllipsisH","faBell","faFile","faTachometerAlt","faStream","faIceCream","faLink","faFont","faSearch","faSuitcaseRolling","faChevronDown","faArrowUp","faAdjust","faPlus","faTimes","faChevronLeft","faChevronRight","faRetweet","faSmile","faThumbtack","faRobot","faAngleDoubleLeft","faHistory","faMusic","faExpandAlt","faCirclePlus","faRss","faUserPlus","faCheck","faExclamationTriangle","faAlignRight","faSearchPlus","faThumbsUp","faStickyNote","faVideo","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","module","commonjsGlobal","globalThis","g","self","humps$1","exports","global","_processKeys","convert","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","l","_isArray","hasOwnProperty","camelize","_isNumerical","chr","substr","pascalize","camelized","decamelize","separator","separateWords","_processor","process","humps","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_excluded","styleToObject","pair","idx","classToObject","className","abstractElement","attrs","mixins","_attrs$style","aStyle","otherAttrs","h","objectWithKey","normalizeIconArgs","FontAwesomeIcon","border","Boolean","default","fixedWidth","flip","String","validator","required","listItem","pull","pulse","rotation","Number","swapOpacity","spin","inverse","bounce","shake","beat","fade","beatFade","flash","spinPulse","spinReverse","setup","icon$1","_classes","renderedIcon","_console","log","immediate","vnode","FontAwesomeLayers","slots","Pointer","nativePointer","pageX","pageY","clientX","clientY","Touch","identifier","isPointerEvent","pointerId","getCoalesced","getCoalescedEvents","event","PointerEvent","ref","insertAt","getElementsByTagName","styleSheet","cssText","styleInject","minScaleAttr","allowPanMinScaleAttr","resetToMinScaleLimitAttr","reachMinScaleStrategyAttr","stopPropagateHandledAttr","getDistance","sqrt","getMidpoint","getAbsoluteValue","max","trimRight","endsWith","cachedSvg","getSVG","createMatrix","createSVGMatrix","createPoint","createSVGPoint","MIN_SCALE","roundedCmp","round","PinchZoom","HTMLElement","super","_transform","_stageElChange","pointerTracker","_element","start","move","rawUpdates","startPointers","currentPointers","_pointerStart","button","_triggerPointerStart","setPointerCapture","_rawUpdates","_move","_pointerEnd","_touchStart","touch","changedTouches","previousPointers","changedPointers","t","trackedChangedPointers","pointer","findIndex","_moveCallback","_triggerPointerEnd","splice","cancelled","_endCallback","_touchEnd","_startCallback","stop","_positioningEl","isPan","_allowPan","_maybeStopPropagate","_maybeEmitCancel","preventDefault","_","_onPointerMove","_onPointerEnd","_onWheel","_onClick","observedAttributes","attributeChangedCallback","oldValue","newValue","scale","minScale","setTransform","attrValue","isFinite","reachMinScaleStrategy","allowPanMinScale","resetToMinScaleLimit","stopPropagateHandled","hasAttribute","connectedCallback","scaleTo","opts","originX","originY","relativeTo","allowChangeEvent","relativeToEl","rect","currentRect","left","top","_applyChange","scaleDiff","_updateTransform","thisBounds","positioningElBounds","topLeft","bottomRight","matrix","translate","multiply","matrixTransform","setProperty","Event","bubbles","dispatchEvent","warn","deltaY","ctrlKey","deltaMode","isZoomOut","_maybeResetScale","prevMidpoint","newMidpoint","prevDistance","newDistance","panX","panY","_resetToMinScale","totalPointers","stopPropagation","pointers","parentElement","customElements","define","activeEffectScope","EffectScope","detached","active","effects","cleanups","parent","scopes","run","currentEffectScope","on","off","fromParent","last","pop","effectScope","createDep","dep","wasTracked","trackOpBit","newTracked","targetMap","WeakMap","activeEffect","effectTrackDepth","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","scope","deps","effect","recordEffectScope","lastShouldTrack","shouldTrack","initDepMarkers","cleanupEffect","ptr","delete","finalizeDepMarkers","deferStop","onStop","trackStack","pauseTracking","resetTracking","track","depsMap","Map","trackEffects","debuggerEventExtraInfo","has","trigger","oldTarget","newLength","triggerEffects","computed","triggerEffect","allowRecurse","isNonTrackableKeys","builtInSymbols","getOwnPropertyNames","createGetter","shallowGet","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","res","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","readonly","reactive","createSetter","shallowSet","isShallow","hadKey","mutableHandlers","deleteProperty","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","getPrototypeOf","get$1","rawTarget","rawKey","wrap","toReadonly","toReactive","has$1","set$1","deleteEntry","clear","hadItems","createForEach","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","rawType","targetTypeMap","proxy","isReactive","isProxy","raw","markRaw","trackRefValue","triggerRefValue","newVal","__v_isRef","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","_rawValue","_value","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","_a","ComputedRefImpl","getter","_setter","isSSR","_dirty","_cacheable","getterOrOptions","debugOptions","setter","onlyGetter","callWithErrorHandling","handleError","callWithAsyncErrorHandling","throwInDev","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","contextVNode","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","queueJob","job","middle","getId","findInsertionIndex","queueFlush","flushJobs","flushPreFlushCbs","seen","pre","flushPostFlushCbs","deduped","sort","Infinity","comparator","diff","emit$1","rawArgs","isUnmounted","isModelListener","modelArg","modifiersKey","number","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","comp","asMixin","cache","emitsCache","cached","emits","hasExtends","extendEmits","normalizedFromExtend","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","_c","renderComponentRoot","Component","withProxy","propsOptions","emit","renderCache","setupState","inheritAttrs","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","blockStack","createVNode","Comment","filterModelListeners","cloneVNode","dirs","transition","hasPropsChanged","prevProps","nextProps","emitsOptions","nextKeys","isSuspense","__isSuspense","provide","currentInstance","parentProvides","create","inject","defaultValue","treatDefaultAsFactory","INITIAL_WATCHER_VALUE","doWatch","deep","flush","onTrack","onTrigger","cleanup","forceTrigger","isMultiSource","traverse","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","useSSRContext","__watcherHandles","queuePostRenderEffect","suspense","uid","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","segments","useTransitionState","state","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","Function","BaseTransition","mode","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","hasFound","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","subTree","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","el","earlyRemove","delayedLeave","getLeavingNodesForType","_leaveCb","leavingVNodesCache","callHook","callAsyncHook","every","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","_enterCb","leave","clone","isKeepAlive","component","ssContent","ssFallback","keepComment","parentKey","ret","keyedFragmentCount","Fragment","patchFlag","defineComponent","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","timeout","suspensible","onError","userOnError","resolvedComp","pendingRequest","retries","load","thisRequest","Error","__esModule","toStringTag","__asyncResolved","createInnerComp","delayed","ce","__isKeepAlive","KeepAlive","include","exclude","sharedContext","renderer","current","parentSuspense","patch","m","um","_unmount","storageContainer","unmount","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","anchor","isSVG","optimized","slotScopeIds","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","isVNode","cachedVNode","pattern","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","unshift","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","withDirectives","directives","internalInstance","getExposeProxy","bindings","dir","arg","modifiers","mounted","updated","invokeDirectiveHook","prevVNode","oldBindings","binding","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","registry","renderList","renderItem","item","renderSlot","fallback","noSlotted","isCE","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","scopeId","vnodes","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","$slots","$refs","refs","$parent","$root","$emit","$options","resolveMergedOptions","$forceUpdate","$nextTick","$watch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","createWatcher","base","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","to","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","methods","beforeCreate","mergeAsArray","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","merged","normalizeInject","setFullProps","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","resolvePropValue","isAbsent","opt","hasDefault","propsDefaults","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","assign","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","createAppContext","app","isNativeTag","NO","warnHandler","compilerOptions","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","_instance","version","use","install","mixin","directive","mount","rootContainer","isHydrate","__vue_app__","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","_isString","_isRef","doSet","existing","pendingBranch","createRenderer","createHydrationFns","__VUE__","insert","hostInsert","hostRemove","patchProp","hostPatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","nextSibling","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","n1","n2","parentComponent","dynamicChildren","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","removeStaticNode","mountElement","patchElement","is","mountChildren","unmountChildren","onVnodeBeforeMount","needCallTransitionHooks","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","emptyAppContext","uid$1","exposed","exposeProxy","setupContext","suspenseId","pendingId","asyncDep","asyncResolved","bc","bm","bu","u","bum","rtg","rtc","sp","createComponentInstance","isStateful","InternalObjectKey","initProps","initSlots","setupResult","expose","createAttrsProxy","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","setupStatefulComponent","setupComponent","registerDep","setupRenderEffect","placeholder","nextVNode","prevChildren","nextChildren","$stable","shouldUpdateComponent","updateComponentPreRender","invalidateJob","originNext","nextTree","prevTree","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","updateProps","needDeletionCheck","deletionComparisonTarget","updateSlots","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","min","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","arrI","getSequence","nextIndex","moveType","performLeave","moveStaticNode","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","_vnode","mt","mc","pc","pbc","createApp","baseCreateRenderer","allowed","ch1","ch2","isTeleportDisabled","isTargetSVG","SVGElement","resolveTarget","select","targetSelector","moveTeleport","targetAnchor","isReorder","Teleport","__isTeleport","mainAnchor","wasDisabled","currentContainer","currentAnchor","nextTarget","updateCssVars","hydrateChildren","targetNode","_lpa","ut","currentBlock","disableTracking","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","staticCount","normalizeChildren","normalize","cloned","__vccOpts","guardReactiveProps","klass","isTeleport","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","flag","createCommentVNode","asBlock","memo","slotFlag","toMerge","incoming","__ssrInlineRender","ssrRender","skipOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","filters","checkDuplicateProperties","unwrapRef","resolveInjections","unwrapInjectedRef","methodHandler","registerLifecycleHook","register","_hook","applyOptions","includeInferred","displayName","__name","propsOrChildren","ssrContextKey","doc","templateContainer","nodeOps","multiple","nodeValue","textContent","selector","before","previousSibling","lastChild","cloneNode","template","wrapper","importantRE","setStyle","prefixed","rawName","prefixCache","autoPrefix","xlinkNS","optionsModifierRE","cachedNow","nativeOnRE","TRANSITION","ANIMATION","Transition","baseProps","DOMTransitionPropsValidators","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","NumberOf","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","addTransitionClass","hasExplicitCallback","whenTransitionEnds","body","offsetHeight","resolveTransitionProps","_vtc","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","getTransitionInfo","endEvent","ended","onEnd","delays","toMs","getModelAssigner","onCompositionStart","composing","onCompositionEnd","vModelText","lazy","_assign","castToNumber","domValue","activeElement","vModelCheckbox","modelValue","_modelValue","elementValue","getValue","checked","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","selected","setSelected","_binding","isMultiple","option","optionValue","selectedIndex","vModelDynamic","callModelHook","resolveDynamicModel","systemModifiers","modifierGuards","prevent","currentTarget","ctrl","shift","shiftKey","alt","altKey","metaKey","right","exact","withModifiers","guard","keyNames","esc","space","up","down","withKeys","eventKey","vShow","_vod","display","setDisplay","rendererOptions","prevValue","nextValue","transitionClasses","patchClass","isCssString","currentDisplay","patchStyle","invokers","_vei","existingInvoker","parseName","invoker","_vts","attached","Date","now","originalStop","stopImmediatePropagation","_stopped","patchStopImmediatePropagation","createInvoker","patchEvent","shouldSetAsProp","needRemove","patchDOMProp","_trueValue","_falseValue","removeAttributeNS","setAttributeNS","isBoolean","patchAttr","containerOrSelector","normalizeContainer","Element","makeMap","expectsLowerCase","list","isGloballyWhitelisted","normalizeStyle","isString","parseStringStyle","isObject","listDelimiterRE","propertyDelimiterRE","styleCommentRE","tmp","normalizeClass","normalizeProps","isSpecialBooleanAttr","includeBooleanAttr","looseEqual","aValidType","isDate","bValidType","getTime","isSymbol","equal","looseCompareArrays","aHasKey","bHasKey","looseIndexOf","toDisplayString","objectToString","isFunction","JSON","stringify","replacer","isMap","entries","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","onRE","isOn","extend","hasOwn","toTypeString","isPromise","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","camelizeRE","hyphenateRE","hyphenate","capitalize","charAt","toHandlerKey","hasChanged","invokeArrayFns","fns","def","toNumber","_globalThis","getGlobalThis","unwrapObj","ignoreKeys","stringPath","gatherBooleanGroupProperties","group","nestedResults","property","gatherArrayGroupProperties","fetchedProperty","callRule","rule","siblingState","normalizeValidatorResponse","$valid","_empty","_call","direct","setValidations","$validate","$touch","$pending","$invalid","mergedConfig","$rewardEarly","$commit","validations","childResults","resultsCache","globalConfig","externalResults","rules","nestedValidators","validationGroups","validationsRaw","validationKeys","$validator","sortValidations","nestedState","cachedExternalResults","nestedExternalResults","results","model","ruleKeys","cachedResult","$dirty","$lastInvalidState","$lastCommittedOn","$partial","$unwatch","$path","$reset","ruleKey","validatorName","propertyKey","propertyPath","$params","$response","$async","$lazy","watchTargets","$pendingCounter","ruleResult","createAsyncResult","$watchTargets","returnValue","createSyncResult","message","$message","$model","$propertyPath","$property","createValidatorResult","$externalResults","stringError","$uid","$error","$silentErrors","$errors","createValidationResults","nestedValidationKeys","nestedKey","collectNestedValidationResults","$validationGroups","$anyDirty","allResults","allRes","modelErrors","nestedErrors","errors","nr","createMetaFields","external","$autoDirty","$getResultsForChild","$clearExternalResults","ResultsStorage","storage","checkRulesValidity","storedRules","storedRulesKeys","newRulesKeys","paramKey","storedRuleResultPair","isValidCache","CollectFlag","COLLECT_ALL","COLLECT_NONE","VuelidateInjectChildResults","VuelidateRemoveChildResults","nestedValidations","$scope","childResultsRaw","childResultsKeys","__vuelidateInjectInstances","$registerAs","childScope","$stopPropagation","__vuelidateRemoveInstances","childKey","sendValidationResultsToParent","removeValidationResultsFromParent","ComputedProxyFactory","useVuelidate","_getCurrentInstance","currentVueInstance","componentOptions","validationResults","vuelidateExternalResults","validationsConfig","validationsWatchTarget","newValidationRules","req","regex","expr","reg","validate$1","requiredIf","propOrFunction","parentVM","sameAs$1","equalTo","sameAs","otherName","hasPassiveEvents","passiveTestOptions","passive","isIosDevice","platform","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","lock","rawEvent","touches","disableBodyScroll","targetElement","ontouchstart","targetTouches","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","handleScroll","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","clientWidth","paddingRight","overflow","setOverflowHidden","enableBodyScroll","getIlluminant","ILLUMINANTS","getTransform","TRANSFORMS","toRadian","PI","bounded","cubeRoot","cbrt","pow","abs","types","find","testColorType","determineType","conversions","convertNow","conversionSteps","makeColourObject","types$1","convertArrayOrColour","A","X","Y","Z","B","C","D50","D55","D65","D75","E","F2","F7","F11","BRADFORD","INVERSE_BRADFORD","SRGB_XYZ","INVERSE_SRGB_XYZ","stringStartsWith","hex","rgb","cssrgb","hsl","csshsl","hsv","cmyk","yiq","XYZ","xyY","lms","cielab","cieluv","cielch","hsluv","epsilon","kappa","white","toR","L","cos","sin","hu","MAX_VALUE","atan2","toDegree","negativeModulo","rho","gamma","beta","bounded255","slicedToArray","return","epsilon$1","white$1","fromXYZ","boundedRgb","fromXYZTolms","fromXYZTocielab","fromXYZTocieluv","fromXYZToxyY","hsl$1","rgb$1","q","bound","freeze","msMaxTouchPoints","middleware","events","isActive","detectIframe","capture","srcTarget","composedPath","CustomEvent","cancelable","defaultPrevented","evt","origPrevent","createEvent","initCustomEvent","detail","matchHtmlRegExp","escape","exec","lastIndex","substring","aa","nativeName","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bi","bn","bo","br","bs","ca","ch","co","cr","cs","cu","cv","de","dv","dz","ee","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hy","hz","ia","ie","ig","ii","ik","io","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","my","na","nb","nd","ne","ng","nl","nn","no","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tl","tn","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu","ISO6391","static","codes","code","getName","getNativeName","validate","language","init","converter","defaultAttributes","expires","toUTCString","encodeURIComponent","decodeURIComponent","stringifiedAttributes","cookie","write","cookies","jar","foundKey","read","withAttributes","withConverter","amd","localforage","require","_dereq_","scheduleDrain","draining","Mutation","WebKitMutationObserver","observer","setImmediate","MessageChannel","scriptEl","onreadystatechange","channel","port1","onmessage","port2","postMessage","oldQueue","task","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","getThen","thenable","onSuccess","tryCatch","status","out","reason","iterable","allResolver","outValue","race","response","idb","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","getIDB","createBlob","properties","Blob","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","append","getBlob","Promise$1","executeCallback","executeTwoCallbacks","errorCallback","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","forages","db","close","dbArgs","openreq","open","onupgradeneeded","createObjectStore","storeName","oldVersion","ex","newVersion","onerror","onsuccess","onversionchange","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","isDowngrade","isUpgrade","incVersion","_decodeBlob","encodedBlob","bin","buf","ArrayBuffer","Uint8Array","_binStringToArrayBuffer","atob","_isEncodedBlob","__local_forage_encoded_blob","_fullyReady","_initReady","_dbInfo","createTransaction","tx","transaction","forage","_tryReconnect","asyncStorage","_driver","_initStorage","ready","initPromises","ignoreErrors","_defaultConfig","_support","isSafari","openDatabase","hasFetch","fetch","IDBKeyRange","isIndexedDBValid","iterate","objectStore","openCursor","iterationNumber","cursor","getItem","setItem","txn","blob","put","onabort","oncomplete","matchedChrome","matchedEdge","_checkBlobSupportWithoutCaching","_checkBlobSupport","blobSupport","reader","FileReader","onloadend","base64","btoa","readAsBinaryString","store","removeItem","count","advanced","openKeyCursor","advance","dropInstance","currentConfig","isCurrentDb","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","BASE_CHARS","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","buffer","bytes","bufferToString","base64String","localforageSerializer","serialize","valueType","marker","fileReader","onload","readAsArrayBuffer","deserialize","blobType","matcher","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","createDbTable","executeSql","tryExecuteSql","sqlStatement","SYNTAX_ERR","rows","_setItem","retriesLeft","originalValue","serializer","sqlError","QUOTA_ERR","getAllStoreNames","storeNames","webSQLStorage","dbInfoPromise","description","operationInfo","dropTable","_getKeyPrefix","defaultConfig","keyPrefix","localStorageWrapper","localStorageTestKey","localStorage","checkIfLocalStorageThrows","isLocalStorageValid","keyPrefixLength","itemKey","searchElement","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","LocalForage","driverTypeKey","driverName","defineDriver","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","driverObject","complianceError","driverMethods","driverMethodName","methodNotImplementedFactory","methodName","optionalDriverMethod","configureMissingMethods","setDriverSupport","support","info","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","oldDriverSetDone","currentDriverIndex","driverPromiseLoop","initDriver","supports","libraryMethodsAndProperties","createInstance","localforage_js","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","funcTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","reIsNative","Buffer","getPrototype","allocUnsafe","objectCreate","symToStringTag","getNative","nativeIsBuffer","isBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","proto","Hash","entry","ListCache","MapCache","Stack","__data__","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","getMapData","pairs","LARGE_ARRAY_SIZE","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","isObjectLike","baseMerge","srcIndex","customizer","stack","iteratee","keysFunc","baseFor","srcValue","mergeFunc","safeGet","stacked","typedArray","arrayBuffer","isCommon","isArr","isBuff","isTyped","isArrayLike","copyArray","isDeep","cloneBuffer","byteLength","byteOffset","Ctor","isArguments","isNew","copyObject","keysIn","toPlainObject","isPrototype","initCloneObject","baseMergeDeep","baseSetToString","identity","isMasked","toSource","baseIsNative","isIndex","setToString","lastCalled","stamp","remaining","shortOut","other","isLength","baseUnary","inherited","isArg","isType","skipIndexes","baseTimes","arrayLikeKeys","nativeKeysIn","isProto","baseKeysIn","assigner","merge","otherArgs","overRest","baseRest","sources","isIterateeCall","DataView","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","setCacheAdd","setCacheHas","SetCache","stackClear","stackDelete","stackGet","stackHas","stackSet","predicate","resIndex","baseIndexOf","initAccum","shuffleSelf","reAsciiWord","baseEach","collection","lower","upper","arrayEach","baseAssign","baseAssignIn","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","subValue","baseForOwn","createBaseEach","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","createBaseFor","castPath","toKey","symbolsFunc","baseFindIndex","baseIsNaN","strictIndexOf","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseMatches","baseMatchesProperty","nativeKeys","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","cloneTypedArray","isArrayLikeObject","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","compareMultiple","iteratees","orders","baseSet","paths","baseUnset","indexes","previous","nativeFloor","floor","nativeRandom","eachFunc","nested","constant","comparer","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","seenIndex","stringToPath","baseSlice","strSymbols","chrSymbols","copy","cloneArrayBuffer","dataView","reFlags","regexp","symbolValueOf","valueOf","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","getSymbols","getSymbolsIn","arrayAggregator","baseAggregator","initializer","castSlice","hasUnicode","stringToArray","trailing","arrayReduce","deburr","words","reApos","findIndexFunc","deburrLetter","basePropertyOf","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","isKeyable","overArg","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","reHasUnicode","reHasUnicodeWord","input","cloneDataView","cloneRegExp","cloneSymbol","spreadableSymbol","isConcatSpreadable","reIsDeepProp","reIsPlainProp","memoize","baseRandom","rand","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","quote","subString","reWhitespace","unescapeHtmlChar","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsEmoji","reUnicodeWord","camelCase","createCompounder","word","upperFirst","toInteger","nativeCeil","ceil","baseClamp","CLONE_DEEP_FLAG","nativeMin","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","reLatin","reComboMark","baseFilter","createFind","castFunction","createAggregator","groupBy","baseHasIn","hasPath","stubFalse","baseKeys","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","baseIsTypedArray","kebabCase","keyBy","baseExtremum","baseGt","memoized","Cache","createAssigner","mergeWith","baseLt","negate","pickBy","baseOrderBy","basePickBy","baseProperty","basePropertyDeep","baseReduce","basePullAt","arrayShuffle","baseShuffle","sortBy","baseSum","debounce","toFinite","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","charsEndIndex","charsStartIndex","chars","reEscapedHtml","reHasEscapedHtml","baseUniq","idCounter","createCaseFirst","baseValues","asciiWords","hasUnicodeWord","unicodeWords","qs","url","xtend","PARSE_LINK_HEADER_MAXLEN","PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED","hasRel","rel","intoRels","createObjects","parseLink","link","linkUrl","parsedUrl","qry","query","linkHeader","checkHeader","closure","globalSelf","phxWindow","CHANNEL_STATES","CHANNEL_EVENTS","Push","payload","receivedResp","timeoutTimer","recHooks","sent","resend","reset","send","hasReceived","startTimeout","socket","topic","join_ref","joinRef","receive","cancelRefEvent","refEvent","matchReceive","cancelTimeout","makeRef","replyEventName","Timer","timerCalc","timer","tries","scheduleTimeout","Ajax","endPoint","accept","ontimeout","XDomainRequest","xdomainRequest","XMLHttpRequest","xhrRequest","parseJSON","responseText","onprogress","setRequestHeader","resp","queryStr","paramVal","LongPoll","token","skipHeartbeat","onopen","onclose","pollEndpoint","normalizeEndpoint","poll","endpointURL","appendParams","closeAndRetry","request","messages","msg","_code","_reason","serializer_default","HEADER_LENGTH","META_LENGTH","KINDS","reply","broadcast","encode","binaryEncode","decode","rawPayload","binaryDecode","metaLength","header","view","setUint8","char","combined","kind","getUint8","decoder","TextDecoder","decodePush","decodeReply","decodeBroadcast","joinRefSize","topicSize","eventSize","refSize","Socket","stateChangeCallbacks","channels","sendBuffer","transport","WebSocket","establishedConnections","defaultEncoder","defaultDecoder","closeWasClean","binaryType","connectClock","awaitingConnectionOnPageShow","conn","connect","heartbeatIntervalMs","rejoinAfterMs","reconnectAfterMs","logger","longpollerTimeout","vsn","heartbeatTimer","pendingHeartbeatRef","reconnectTimer","teardown","replaceTransport","newTransport","protocol","location","endPointURL","uri","host","onConnOpen","onConnError","onConnMessage","onConnClose","hasLogger","onOpen","onClose","onMessage","flushSendBuffer","resetHeartbeat","heartbeatTimeout","abnormalClose","sendHeartbeat","waitForBufferDone","waitForSocketClosed","bufferedAmount","triggerChanError","transportBefore","establishedBefore","isErrored","isClosed","connectionState","isConnected","stateChangeRefs","chanParams","chan","bindingRef","joinedOnce","joinPush","pushBuffer","rejoinTimer","rejoin","pushEvent","isJoining","canPush","isJoined","leavePush","_event","isMember","leaveOpenTopic","handledPayload","eventBindings","newRef","rawMessage","dupChannel","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","fromCharCode","RangeError","mapDomain","domain","encoded","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","inputLength","bias","basic","lastIndexOf","oldi","baseMinusT","fromCodePoint","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","codePoints","ucs2encode","toUnicode","toASCII","sep","maxKeys","kstr","vstr","stringifyPrimitive","serviceWorkerOption","serviceWorker","punycode","util","Url","slashes","auth","port","hostname","hash","search","pathname","href","urlParse","relative","resolveObject","format","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","qm","tkeys","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","hasTrailingSlash","isAbsolute","inBrowser","hasSymbol","isNumber","isRegExp","isEmptyObject","escapeHtml","rawText","createCompileError","loc","SyntaxError","pathStateMachine","literalValueRE","getPathCharType","resolveWithKeyValue","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","devtools","translateDevTools","createDevToolsHook","payloads","fallbackWithSimple","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","__localeChainCache","chain","block","appendBlockToChain","defaults","blocks","follow","locale","appendLocaleToChain","tokens","appendItemToChain","toLocaleUpperCase","_resolver","_fallbacker","_additionalMeta","setAdditionalMeta","_fallbackContext","setFallbackContext","_cid","handleMissing","missingWarn","missing","onWarn","updateFallbackLocale","localeFallbacker","inc","CoreErrorCodes","INVALID_ARGUMENT","INVALID_DATE_ARGUMENT","INVALID_ISO_DATE_ARGUMENT","__EXTEND_POINT__","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","fallbackFormat","postTranslation","unresolving","messageCompiler","fallbackLocale","parseTranslateArgs","escapeParameter","fallbackWarn","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","named","escapeParams","formatScope","targetLocale","resolveMessageFormat","cacheBaseKey","occurred","compileMessageFormat","ctxOptions","pluralRules","messageResolver","resolveValue","fallbackContext","processor","plural","pluralIndex","getMessageContextOptions","messaged","msgCtx","evaluateMessage","getPluralIndex","pluralRule","orgPluralRule","_list","_named","normalizeNamed","interpolate","arg1","arg2","modifier","createMessageContext","__INTLIFY_PROD_DEVTOOLS__","timestamp","__meta","locales","missingRet","errorDetector","warnHtmlMessage","onCacheKey","friendlyJSONstringify","json","generateFormatCacheKey","getCompileOptions","arg3","intlDefined","Intl","datetime","datetimeFormats","__datetimeFormatters","overrides","parseDateTimeArgs","DateTimeFormat","datetimeFormat","formatter","formatToParts","NumberFormat","DATETIME_FORMAT_OPTIONS_KEYS","arg4","dateTime","toISOString","clearDateTimeFormat","numberFormats","__numberFormatters","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","code$1","inc$1","I18nErrorCodes","UNEXPECTED_RETURN_TYPE","MUST_BE_CALL_SETUP_TOP","NOT_INSLALLED","NOT_AVAILABLE_IN_LEGACY_MODE","REQUIRED_VALUE","INVALID_VALUE","CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN","NOT_INSLALLED_WITH_PROVIDE","UNEXPECTED_ERROR","NOT_COMPATIBLE_LEGACY_VUE_I18N","BRIDGE_SUPPORT_VUE_2_ONLY","MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION","NOT_AVAILABLE_COMPOSITION_IN_LEGACY","createI18nError","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOption","handleFlatJson","subKeys","currentObj","getLocaleMessages","__i18n","flatJson","custom","resource","deepCopy","isNotObjectOrIsArray","src","des","getComponentOptions","adjustI18nResources","__i18nGlobal","mergeLocaleMessage","mergeDateTimeFormat","mergeNumberFormat","DEVTOOLS_META","composerID","defineCoreMissingHandler","createComposer","VueI18nLegacy","__root","_isGlobal","_inheritLocale","inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","framework","_compiler","internalOptions","cid","i18n","initI18nDevTools","createCoreContext","getCoreContext","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","getMetaInfo","getLocaleMessage","composer","availableLocales","isGlobal","setLocaleMessage","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","rt","tm","targetLocaleMessages","messageValue","resolveMessages","getDateTimeFormat","setDateTimeFormat","getNumberFormat","setNumberFormat","__injectWithOption","createVueI18n","silentTranslationWarn","silentFallbackWarn","formatFallbackMessages","pluralizationRules","warnHtmlInMessage","escapeParameterHtml","sync","sharedMessages","convertComposerOptions","vueI18n","preserveDirectiveContent","__composer","tc","getChoiceIndex","__onComponentInstanceCreated","componentInstanceCreatedListener","baseFormatProps","getFragmentableTag","Translation","keypath","useI18n","useScope","__useComponent","getInterpolateArg","assignedAttrs","renderFormatter","slotKeys","partFormatter","DatetimeFormat","parseValue","makeParams","mergeToRoot","I18nInjectionKey","createI18n","__legacyMode","__VUE_I18N_LEGACY_API__","legacy","__globalInjection","globalInjection","__allowComposition","allowComposition","__instances","globalScope","__global","legacyMode","createGlobal","async","__VUE_I18N_SYMBOL__","globalExportProps","desc","$i18n","globalExportMethods","injectGlobalFields","__VUE_I18N_FULL_INSTALL__","pluginOptions","useI18nComponentName","globalInstall","_process","i18nInternal","__getInstance","getComposer$2","parsedValue","__i18nWatcher","getSSRProps","vTDirective","vuei18n","optionsI18n","__setInstance","$t","$rt","$tc","$te","$d","$n","$tm","__deleteInstance","defineMixin","unmountApp","dispose","getI18nInstance","getGlobalComposer","getScope","isLocale","_composer","warpWithDeps","useI18nForLegacy","useComponent","getComposer","composerOptions","setupLifeCycle","hit","newChar","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","trimmed","exp","stripQuotes","formatSubPath","needWarn","initFeatureFlags","__INTLIFY__","__INTLIFY_DEVTOOLS_GLOBAL_HOOK__","sfc","isBrowser","applyToParams","newParams","TRAILING_SLASH_RE","parseURL","parseQuery","currentLocation","searchString","hashPos","searchPos","fromSegments","toSegments","toPosition","segment","resolveRelativePath","fullPath","stripBase","isSameRouteRecord","aliasOf","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","NavigationType","NavigationDirection","BEFORE_HASH_RE","createHref","computeScrollPosition","pageXOffset","pageYOffset","getScrollKey","history","scrollPositions","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","buildState","back","forward","replaced","computeScroll","scroll","createWebHistory","historyNavigation","historyState","changeLocation","hashIndex","currentState","useHistoryStateNavigation","baseEl","normalizeBase","historyListeners","listeners","teardowns","pauseState","popStateHandler","fromState","direction","unknown","beforeUnloadListener","replaceState","pauseListeners","listen","destroy","useHistoryListeners","routerHistory","go","triggerListeners","isRouteName","START_LOCATION_NORMALIZED","matched","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","strict","REGEX_CHARS_RE","compareScoreArray","comparePathParserScore","aScore","score","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","createRouteRecordMatcher","record","extraOptions","segmentScores","tokenIndex","subSegmentScore","repeatable","optional","re","subPattern","avoidDuplicatedSlash","param","tokensToParser","crash","previousState","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","tokenizePath","paramsFromLocation","normalizeRecordProps","propsObject","isAliasRecord","mergeMetaFields","partialOptions","isRecordChildOf","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeQueryValue","encodeParam","encodePath","searchParams","searchParam","eqPos","stringifyQuery","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","guardToPromiseFn","enterCallbackArray","enterCallbacks","valid","route","guardReturn","instances","guardCall","extractComponentsGuards","guardType","guards","rawComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","innerValue","outerValue","includesParams","isExactActive","navigate","guardEvent","RouterLink","compatConfig","MODE","activeClass","exactActiveClass","ariaCurrentValue","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","onClick","propClass","globalClass","defaultClass","slotContent","RouterView","injectedRoute","routeToDisplay","injectedDepth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","leaveGuards","updateGuards","currentName","ViewComponent","routePropsOption","routeProps","createRouter","routes","globalOptions","matchers","matcherMap","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","redirect","normalizeRouteRecord","normalizedRecords","originalMatcher","normalizedRecord","parentPath","connectingSlash","removeRoute","insertMatcher","matcherRef","parentMatcher","getRoutes","getRecordMatcher","createRouterMatcher","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","rawLocation","locationNormalized","matcherLocation","targetParams","stringifyURL","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","shouldRedirect","toLocation","failure","aLastIndex","bLastIndex","isSameRouteLocation","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","recordFrom","recordTo","extractChangingRecords","reverse","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","removeHistoryListener","readyHandlers","errorHandlers","_from","listening","scrollPosition","getSavedScrollPosition","scrollToOptions","positionEl","isIdSelector","getElementById","docRect","elRect","behavior","getElementPosition","scrollTo","scrollToPosition","started","installedApps","parentOrRoute","recordMatcher","hasRoute","routeMatcher","beforeEach","beforeResolve","afterEach","isReady","$router","reactiveRoute","isIE","initCompat","ua","msie","rv","edge","getInternetExplorerVersion","script","emitOnMount","ignoreWidth","ignoreHeight","_w","offsetWidth","_h","emitSize","_resizeObject","addResizeHandlers","removeResizeHandlers","compareAndNotify","contentDocument","defaultView","_withId","_hoisted_1","tabindex","_cache","$setup","deepEqual","val1","val2","__file","VisibilityState","frozen","createObserver","destroyObserver","once","throttle","_leading","throttleOptions","lastState","currentArgs","throttled","_clear","oldResult","IntersectionObserver","intersectingEntry","isIntersecting","intersectionRatio","threshold","intersection","_vue_visibilityState","ObserveVisibility","itemsLimit","parents","getScrollParent","scrollingElement","items","keyField","listTag","itemTag","simpleArray","supportsPassive","script$2","ResizeObserver","itemSize","gridItems","itemSecondarySize","minItemSize","sizeField","typeField","pageMode","prerender","emitUpdate","updateInterval","skipHover","listClass","itemClass","pool","totalSize","hoverKey","sizes","field","computedMinSize","$_computedMinItemSize","itemIndexByKey","updateVisibleItems","applyPageMode","$_startIndex","$_endIndex","$_views","$_unusedViews","$_scrollDirty","$_lastUpdateScrollPosition","$_prerender","lastPosition","removeListeners","addView","used","unuseView","fake","unusedViews","unusedPool","handleResize","$_updateTimeout","requestUpdate","continuous","$_refreshTimout","handleVisibilityChange","isVisible","checkItem","checkPositionDiff","views","startIndex","endIndex","visibleStartIndex","visibleEndIndex","getScroll","positionDiff","beforeSize","after","afterSize","oldI","itemsLimitError","unusedIndex","newlyUsedView","$_sortTimer","sortViews","getListenerTarget","isVertical","scrollState","bounds","boundsSize","innerHeight","scrollLeft","addListeners","listenerTarget","scrollToItem","viewport","scrollDirection","scrollDistance","viewportEl","scrollerPosition","viewA","viewB","_hoisted_2","_component_ResizeObserver","_directive_observe_visibility","onScrollPassive","hover","mouseenter","mouseleave","onNotify","script$1","RecycleScroller","$_resizeObserver","$_vs_onResize","resizeObserverSize","borderBoxSize","$_vs_id","inlineSize","blockSize","vscrollData","vscrollParent","vscrollResizeObserver","itemsWithSize","$_undefinedMap","forceUpdate","prevActiveTop","activeTop","$_updates","$_undefinedSizes","$_events","onScrollerResize","scroller","onScrollerVisible","getItemSize","scrollToBottom","$_scrollingToBottom","_component_RecycleScroller","onResize","onVisible","itemWithSize","empty","watchData","sizeDependencies","emitResize","finalActive","onDataUpdate","$_sizeObserved","oldSize","applySize","observeSize","unobserveSize","$_pendingVScrollUpdate","updateSize","$isServer","$_forceNextVScrollUpdate","updateWatchData","onVscrollUpdate","$_pendingSizeUpdate","computeSize","$_watchData","applyWidthHeight","unobserve","finalOptions","installComponents","componentsPrefix","registerComponents","getTarget","isProxyAvailable","supported","ApiProxy","targetQueue","onQueue","defaultSettings","settings","localSettingsSaveId","currentSettings","fallbacks","getSettings","setSettings","perf_hooks","pluginId","proxiedOn","_target","proxiedTarget","forEachValue","genericSubscribe","subs","resetStore","hot","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","installModule","_modules","resetStoreState","oldState","_state","oldScope","_scope","getters","_makeLocalGettersCache","wrappedGetters","computedObj","computedCache","partial","enableStrictMode","_withCommit","rootState","isRoot","getNamespace","namespaced","parentState","getNestedState","moduleName","local","noNamespace","dispatch","_type","_payload","_options","unifyObjectStyle","commit","makeLocalGetters","makeLocalContext","forEachMutation","registerMutation","forEachAction","rootGetters","_devtoolHook","registerAction","forEachGetter","rawGetter","registerGetter","forEachChild","gettersProxy","splitPos","localType","MUTATIONS_LAYER_ID","ACTIONS_LAYER_ID","INSPECTOR_ID","actionId","addDevtools","pluginDescriptor","setupFn","__VUE_DEVTOOLS_GLOBAL_HOOK__","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","__VUE_DEVTOOLS_PLUGINS__","setupDevtoolsPlugin","label","homepage","logo","packageName","componentStateTypes","addTimelineLayer","color","COLOR_LIME_500","addInspector","treeFilterPlaceholder","getInspectorTree","inspectorId","nodes","flattenStoreForInspectorTree","rootNodes","formatStoreForInspectorTree","getInspectorState","modulePath","nodeId","gettersKeys","storeState","editable","tree","leafKey","_custom","tooltip","canThrow","transformPathsToObjectTree","extractNameFromPath","formatStoreForInspectorState","moduleMap","_children","editInspectorState","subscribe","notifyComponentUpdate","sendInspectorTree","sendInspectorState","addTimelineEvent","layerId","subscribeAction","_time","groupId","subtitle","TAG_NAMESPACED","textColor","backgroundColor","tags","Module","rawModule","runtime","_rawModule","rawState","prototypeAccessors$1","addChild","getChild","hasChild","ModuleCollection","rawRootModule","targetModule","newModule","modules","createStore","Store","this$1$1","rawChildModule","unregister","isRegistered","plugins","_committing","_actionSubscribers","_subscribers","_devtools","prototypeAccessors","injectKey","$store","sub","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","doneResult","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","skipTempReset","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_assertThisInitialized","ReferenceError","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_createClass","staticProps","_extends","_getPrototypeOf","_inherits","subClass","superClass","_objectDestructuringEmpty","_possibleConstructorReturn","_setPrototypeOf","arrayWithHoles","_x","_r","unsupportedIterableToArray","nonIterableRest","_toArray","arrayLikeToArray","iterableToArray","_toPropertyKey","hint","prim","toPrimitive","_isNativeReflectConstruct","construct","sham","_construct","Parent","Class","_wrapNativeSuper","Wrapper","EventTarget","wm","handleEvent","_stopImmediatePropagationFlag","secret"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/48.d7e479b200a6c89c4958.js b/priv/static/static/js/48.d7e479b200a6c89c4958.js
new file mode 100644
index 000000000..5475e3d30
--- /dev/null
+++ b/priv/static/static/js/48.d7e479b200a6c89c4958.js
@@ -0,0 +1,3 @@
+/*! For license information please see 48.d7e479b200a6c89c4958.js.LICENSE.txt */
+(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[48],{99990:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var n=i(66252),r=i(92592);const a="ready";var o=(0,n.aZ)({name:"VueQrcode",props:{value:{type:String,default:void 0},options:{type:Object,default:void 0},tag:{type:String,default:"canvas"}},emits:[a],watch:{$props:{deep:!0,immediate:!0,handler(){this.$el&&this.generate()}}},mounted(){this.generate()},methods:{generate(){const t=this.options||{},e=String(this.value),i=()=>{this.$emit(a,this.$el)};switch(this.tag){case"canvas":(0,r.rT)(this.$el,e,t,(t=>{if(t)throw t;i()}));break;case"img":(0,r.hz)(e,t,((t,e)=>{if(t)throw t;this.$el.src=e,this.$el.onload=i}));break;case"svg":(0,r.toString)(e,t,((t,e)=>{if(t)throw t;const n=document.createElement("div");n.innerHTML=e;const r=n.querySelector("svg");if(r){const{attributes:t,childNodes:e}=r;Object.keys(t).forEach((e=>{const i=t[Number(e)];this.$el.setAttribute(i.name,i.value)})),Object.keys(e).forEach((t=>{const i=e[Number(t)];this.$el.appendChild(i.cloneNode(!0))})),i()}}))}}},render(){return(0,n.h)(this.tag,this.$slots.default)}})},33129:function(t){t.exports=function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function e(e){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?t(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t){return function(t){if(Array.isArray(t))return s(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return s(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?s(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var h="undefined"!=typeof window&&void 0!==window.document,c=h?window:{},l=!(!h||!c.document.documentElement)&&"ontouchstart"in c.document.documentElement,d=!!h&&"PointerEvent"in c,u="cropper",p="all",g="crop",f="move",m="zoom",v="e",w="w",y="s",b="n",x="ne",M="nw",C="se",E="sw",B="".concat(u,"-crop"),T="".concat(u,"-disabled"),D="".concat(u,"-hidden"),A="".concat(u,"-hide"),N="".concat(u,"-invisible"),k="".concat(u,"-modal"),R="".concat(u,"-move"),I="".concat(u,"Action"),L="".concat(u,"Preview"),P="crop",S="move",O="none",H="crop",z="cropend",Y="cropmove",U="cropstart",W="dblclick",j=d?"pointerdown":l?"touchstart":"mousedown",X=d?"pointermove":l?"touchmove":"mousemove",F=d?"pointerup pointercancel":l?"touchend touchcancel":"mouseup",K="ready",q="resize",$="wheel",_="zoom",J="image/jpeg",Q=/^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/,V=/^data:/,Z=/^data:image\/jpeg;base64,/,G=/^img|canvas$/i,tt={viewMode:0,dragMode:P,initialAspectRatio:NaN,aspectRatio:NaN,data:null,preview:"",responsive:!0,restore:!0,checkCrossOrigin:!0,checkOrientation:!0,modal:!0,guides:!0,center:!0,highlight:!0,background:!0,autoCrop:!0,autoCropArea:.8,movable:!0,rotatable:!0,scalable:!0,zoomable:!0,zoomOnTouch:!0,zoomOnWheel:!0,wheelZoomRatio:.1,cropBoxMovable:!0,cropBoxResizable:!0,toggleDragModeOnDblclick:!0,minCanvasWidth:0,minCanvasHeight:0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:200,minContainerHeight:100,ready:null,cropstart:null,cropmove:null,cropend:null,crop:null,zoom:null},et=Number.isNaN||c.isNaN;function it(t){return"number"==typeof t&&!et(t)}var nt=function(t){return t>0&&t<1/0};function rt(t){return void 0===t}function at(t){return"object"===i(t)&&null!==t}var ot=Object.prototype.hasOwnProperty;function st(t){if(!at(t))return!1;try{var e=t.constructor,i=e.prototype;return e&&i&&ot.call(i,"isPrototypeOf")}catch(t){return!1}}function ht(t){return"function"==typeof t}var ct=Array.prototype.slice;function lt(t){return Array.from?Array.from(t):ct.call(t)}function dt(t,e){return t&&ht(e)&&(Array.isArray(t)||it(t.length)?lt(t).forEach((function(i,n){e.call(t,i,n,t)})):at(t)&&Object.keys(t).forEach((function(i){e.call(t,t[i],i,t)}))),t}var ut=Object.assign||function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];return at(t)&&i.length>0&&i.forEach((function(e){at(e)&&Object.keys(e).forEach((function(i){t[i]=e[i]}))})),t},pt=/\.\d*(?:0|9){12}\d*$/;function gt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e11;return pt.test(t)?Math.round(t*e)/e:t}var ft=/^width|height|left|top|marginLeft|marginTop$/;function mt(t,e){var i=t.style;dt(e,(function(t,e){ft.test(e)&&it(t)&&(t="".concat(t,"px")),i[e]=t}))}function vt(t,e){if(e)if(it(t.length))dt(t,(function(t){vt(t,e)}));else if(t.classList)t.classList.add(e);else{var i=t.className.trim();i?i.indexOf(e)<0&&(t.className="".concat(i," ").concat(e)):t.className=e}}function wt(t,e){e&&(it(t.length)?dt(t,(function(t){wt(t,e)})):t.classList?t.classList.remove(e):t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,"")))}function yt(t,e,i){e&&(it(t.length)?dt(t,(function(t){yt(t,e,i)})):i?vt(t,e):wt(t,e))}var bt=/([a-z\d])([A-Z])/g;function xt(t){return t.replace(bt,"$1-$2").toLowerCase()}function Mt(t,e){return at(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(xt(e)))}function Ct(t,e,i){at(i)?t[e]=i:t.dataset?t.dataset[e]=i:t.setAttribute("data-".concat(xt(e)),i)}var Et=/\s\s*/,Bt=function(){var t=!1;if(h){var e=!1,i=function(){},n=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(t){e=t}});c.addEventListener("test",i,n),c.removeEventListener("test",i,n)}return t}();function Tt(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=i;e.trim().split(Et).forEach((function(e){if(!Bt){var a=t.listeners;a&&a[e]&&a[e][i]&&(r=a[e][i],delete a[e][i],0===Object.keys(a[e]).length&&delete a[e],0===Object.keys(a).length&&delete t.listeners)}t.removeEventListener(e,r,n)}))}function Dt(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=i;e.trim().split(Et).forEach((function(e){if(n.once&&!Bt){var a=t.listeners,o=void 0===a?{}:a;r=function(){delete o[e][i],t.removeEventListener(e,r,n);for(var a=arguments.length,s=new Array(a),h=0;h<a;h++)s[h]=arguments[h];i.apply(t,s)},o[e]||(o[e]={}),o[e][i]&&t.removeEventListener(e,o[e][i],n),o[e][i]=r,t.listeners=o}t.addEventListener(e,r,n)}))}function At(t,e,i){var n;return ht(Event)&&ht(CustomEvent)?n=new CustomEvent(e,{detail:i,bubbles:!0,cancelable:!0}):(n=document.createEvent("CustomEvent")).initCustomEvent(e,!0,!0,i),t.dispatchEvent(n)}function Nt(t){var e=t.getBoundingClientRect();return{left:e.left+(window.pageXOffset-document.documentElement.clientLeft),top:e.top+(window.pageYOffset-document.documentElement.clientTop)}}var kt=c.location,Rt=/^(\w+:)\/\/([^:/?#]*):?(\d*)/i;function It(t){var e=t.match(Rt);return null!==e&&(e[1]!==kt.protocol||e[2]!==kt.hostname||e[3]!==kt.port)}function Lt(t){var e="timestamp=".concat((new Date).getTime());return t+(-1===t.indexOf("?")?"?":"&")+e}function Pt(t){var e=t.rotate,i=t.scaleX,n=t.scaleY,r=t.translateX,a=t.translateY,o=[];it(r)&&0!==r&&o.push("translateX(".concat(r,"px)")),it(a)&&0!==a&&o.push("translateY(".concat(a,"px)")),it(e)&&0!==e&&o.push("rotate(".concat(e,"deg)")),it(i)&&1!==i&&o.push("scaleX(".concat(i,")")),it(n)&&1!==n&&o.push("scaleY(".concat(n,")"));var s=o.length?o.join(" "):"none";return{WebkitTransform:s,msTransform:s,transform:s}}function St(t,i){var n=t.pageX,r=t.pageY,a={endX:n,endY:r};return i?a:e({startX:n,startY:r},a)}function Ot(t){var e=t.aspectRatio,i=t.height,n=t.width,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"contain",a=nt(n),o=nt(i);if(a&&o){var s=i*e;"contain"===r&&s>n||"cover"===r&&s<n?i=n/e:n=i*e}else a?i=n/e:o&&(n=i*e);return{width:n,height:i}}function Ht(t,e,i,n){var r=e.aspectRatio,a=e.naturalWidth,s=e.naturalHeight,h=e.rotate,c=void 0===h?0:h,l=e.scaleX,d=void 0===l?1:l,u=e.scaleY,p=void 0===u?1:u,g=i.aspectRatio,f=i.naturalWidth,m=i.naturalHeight,v=n.fillColor,w=void 0===v?"transparent":v,y=n.imageSmoothingEnabled,b=void 0===y||y,x=n.imageSmoothingQuality,M=void 0===x?"low":x,C=n.maxWidth,E=void 0===C?1/0:C,B=n.maxHeight,T=void 0===B?1/0:B,D=n.minWidth,A=void 0===D?0:D,N=n.minHeight,k=void 0===N?0:N,R=document.createElement("canvas"),I=R.getContext("2d"),L=Ot({aspectRatio:g,width:E,height:T}),P=Ot({aspectRatio:g,width:A,height:k},"cover"),S=Math.min(L.width,Math.max(P.width,f)),O=Math.min(L.height,Math.max(P.height,m)),H=Ot({aspectRatio:r,width:E,height:T}),z=Ot({aspectRatio:r,width:A,height:k},"cover"),Y=Math.min(H.width,Math.max(z.width,a)),U=Math.min(H.height,Math.max(z.height,s)),W=[-Y/2,-U/2,Y,U];return R.width=gt(S),R.height=gt(O),I.fillStyle=w,I.fillRect(0,0,S,O),I.save(),I.translate(S/2,O/2),I.rotate(c*Math.PI/180),I.scale(d,p),I.imageSmoothingEnabled=b,I.imageSmoothingQuality=M,I.drawImage.apply(I,[t].concat(o(W.map((function(t){return Math.floor(gt(t))}))))),I.restore(),R}var zt=String.fromCharCode;var Yt=/^data:.*,/;function Ut(t){var e,i=new DataView(t);try{var n,r,a;if(255===i.getUint8(0)&&216===i.getUint8(1))for(var o=i.byteLength,s=2;s+1<o;){if(255===i.getUint8(s)&&225===i.getUint8(s+1)){r=s;break}s+=1}if(r){var h=r+10;if("Exif"===function(t,e,i){var n="";i+=e;for(var r=e;r<i;r+=1)n+=zt(t.getUint8(r));return n}(i,r+4,4)){var c=i.getUint16(h);if(((n=18761===c)||19789===c)&&42===i.getUint16(h+2,n)){var l=i.getUint32(h+4,n);l>=8&&(a=h+l)}}}if(a){var d,u,p=i.getUint16(a,n);for(u=0;u<p;u+=1)if(d=a+12*u+2,274===i.getUint16(d,n)){d+=8,e=i.getUint16(d,n),i.setUint16(d,1,n);break}}}catch(t){e=1}return e}var Wt={render:function(){this.initContainer(),this.initCanvas(),this.initCropBox(),this.renderCanvas(),this.cropped&&this.renderCropBox()},initContainer:function(){var t=this.element,e=this.options,i=this.container,n=this.cropper,r=Number(e.minContainerWidth),a=Number(e.minContainerHeight);vt(n,D),wt(t,D);var o={width:Math.max(i.offsetWidth,r>=0?r:200),height:Math.max(i.offsetHeight,a>=0?a:100)};this.containerData=o,mt(n,{width:o.width,height:o.height}),vt(t,D),wt(n,D)},initCanvas:function(){var t=this.containerData,e=this.imageData,i=this.options.viewMode,n=Math.abs(e.rotate)%180==90,r=n?e.naturalHeight:e.naturalWidth,a=n?e.naturalWidth:e.naturalHeight,o=r/a,s=t.width,h=t.height;t.height*o>t.width?3===i?s=t.height*o:h=t.width/o:3===i?h=t.width/o:s=t.height*o;var c={aspectRatio:o,naturalWidth:r,naturalHeight:a,width:s,height:h};this.canvasData=c,this.limited=1===i||2===i,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=ut({},c)},limitCanvas:function(t,e){var i=this.options,n=this.containerData,r=this.canvasData,a=this.cropBoxData,o=i.viewMode,s=r.aspectRatio,h=this.cropped&&a;if(t){var c=Number(i.minCanvasWidth)||0,l=Number(i.minCanvasHeight)||0;o>1?(c=Math.max(c,n.width),l=Math.max(l,n.height),3===o&&(l*s>c?c=l*s:l=c/s)):o>0&&(c?c=Math.max(c,h?a.width:0):l?l=Math.max(l,h?a.height:0):h&&(c=a.width,(l=a.height)*s>c?c=l*s:l=c/s));var d=Ot({aspectRatio:s,width:c,height:l});c=d.width,l=d.height,r.minWidth=c,r.minHeight=l,r.maxWidth=1/0,r.maxHeight=1/0}if(e)if(o>(h?0:1)){var u=n.width-r.width,p=n.height-r.height;r.minLeft=Math.min(0,u),r.minTop=Math.min(0,p),r.maxLeft=Math.max(0,u),r.maxTop=Math.max(0,p),h&&this.limited&&(r.minLeft=Math.min(a.left,a.left+(a.width-r.width)),r.minTop=Math.min(a.top,a.top+(a.height-r.height)),r.maxLeft=a.left,r.maxTop=a.top,2===o&&(r.width>=n.width&&(r.minLeft=Math.min(0,u),r.maxLeft=Math.max(0,u)),r.height>=n.height&&(r.minTop=Math.min(0,p),r.maxTop=Math.max(0,p))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=n.width,r.maxTop=n.height},renderCanvas:function(t,e){var i=this.canvasData,n=this.imageData;if(e){var r=function(t){var e=t.width,i=t.height,n=t.degree;if(90==(n=Math.abs(n)%180))return{width:i,height:e};var r=n%90*Math.PI/180,a=Math.sin(r),o=Math.cos(r),s=e*o+i*a,h=e*a+i*o;return n>90?{width:h,height:s}:{width:s,height:h}}({width:n.naturalWidth*Math.abs(n.scaleX||1),height:n.naturalHeight*Math.abs(n.scaleY||1),degree:n.rotate||0}),a=r.width,o=r.height,s=i.width*(a/i.naturalWidth),h=i.height*(o/i.naturalHeight);i.left-=(s-i.width)/2,i.top-=(h-i.height)/2,i.width=s,i.height=h,i.aspectRatio=a/o,i.naturalWidth=a,i.naturalHeight=o,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.width<i.minWidth)&&(i.left=i.oldLeft),(i.height>i.maxHeight||i.height<i.minHeight)&&(i.top=i.oldTop),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),this.limitCanvas(!1,!0),i.left=Math.min(Math.max(i.left,i.minLeft),i.maxLeft),i.top=Math.min(Math.max(i.top,i.minTop),i.maxTop),i.oldLeft=i.left,i.oldTop=i.top,mt(this.canvas,ut({width:i.width,height:i.height},Pt({translateX:i.left,translateY:i.top}))),this.renderImage(t),this.cropped&&this.limited&&this.limitCropBox(!0,!0)},renderImage:function(t){var e=this.canvasData,i=this.imageData,n=i.naturalWidth*(e.width/e.naturalWidth),r=i.naturalHeight*(e.height/e.naturalHeight);ut(i,{width:n,height:r,left:(e.width-n)/2,top:(e.height-r)/2}),mt(this.image,ut({width:i.width,height:i.height},Pt(ut({translateX:i.left,translateY:i.top},i)))),t&&this.output()},initCropBox:function(){var t=this.options,e=this.canvasData,i=t.aspectRatio||t.initialAspectRatio,n=Number(t.autoCropArea)||.8,r={width:e.width,height:e.height};i&&(e.height*i>e.width?r.height=r.width/i:r.width=r.height*i),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*n),r.height=Math.max(r.minHeight,r.height*n),r.left=e.left+(e.width-r.width)/2,r.top=e.top+(e.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=ut({},r)},limitCropBox:function(t,e){var i=this.options,n=this.containerData,r=this.canvasData,a=this.cropBoxData,o=this.limited,s=i.aspectRatio;if(t){var h=Number(i.minCropBoxWidth)||0,c=Number(i.minCropBoxHeight)||0,l=o?Math.min(n.width,r.width,r.width+r.left,n.width-r.left):n.width,d=o?Math.min(n.height,r.height,r.height+r.top,n.height-r.top):n.height;h=Math.min(h,n.width),c=Math.min(c,n.height),s&&(h&&c?c*s>h?c=h/s:h=c*s:h?c=h/s:c&&(h=c*s),d*s>l?d=l/s:l=d*s),a.minWidth=Math.min(h,l),a.minHeight=Math.min(c,d),a.maxWidth=l,a.maxHeight=d}e&&(o?(a.minLeft=Math.max(0,r.left),a.minTop=Math.max(0,r.top),a.maxLeft=Math.min(n.width,r.left+r.width)-a.width,a.maxTop=Math.min(n.height,r.top+r.height)-a.height):(a.minLeft=0,a.minTop=0,a.maxLeft=n.width-a.width,a.maxTop=n.height-a.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.width<i.minWidth)&&(i.left=i.oldLeft),(i.height>i.maxHeight||i.height<i.minHeight)&&(i.top=i.oldTop),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),this.limitCropBox(!1,!0),i.left=Math.min(Math.max(i.left,i.minLeft),i.maxLeft),i.top=Math.min(Math.max(i.top,i.minTop),i.maxTop),i.oldLeft=i.left,i.oldTop=i.top,t.movable&&t.cropBoxMovable&&Ct(this.face,I,i.width>=e.width&&i.height>=e.height?f:p),mt(this.cropBox,ut({width:i.width,height:i.height},Pt({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),At(this.element,H,this.getData())}},jt={initPreview:function(){var t=this.element,e=this.crossOrigin,i=this.options.preview,n=e?this.crossOriginUrl:this.url,r=t.alt||"The image to preview",a=document.createElement("img");if(e&&(a.crossOrigin=e),a.src=n,a.alt=r,this.viewBox.appendChild(a),this.viewBoxImage=a,i){var o=i;"string"==typeof i?o=t.ownerDocument.querySelectorAll(i):i.querySelector&&(o=[i]),this.previews=o,dt(o,(function(t){var i=document.createElement("img");Ct(t,L,{width:t.offsetWidth,height:t.offsetHeight,html:t.innerHTML}),e&&(i.crossOrigin=e),i.src=n,i.alt=r,i.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',t.innerHTML="",t.appendChild(i)}))}},resetPreview:function(){dt(this.previews,(function(t){var e=Mt(t,L);mt(t,{width:e.width,height:e.height}),t.innerHTML=e.html,function(t,e){if(at(t[e]))try{delete t[e]}catch(i){t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch(i){t.dataset[e]=void 0}else t.removeAttribute("data-".concat(xt(e)))}(t,L)}))},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,n=i.width,r=i.height,a=t.width,o=t.height,s=i.left-e.left-t.left,h=i.top-e.top-t.top;this.cropped&&!this.disabled&&(mt(this.viewBoxImage,ut({width:a,height:o},Pt(ut({translateX:-s,translateY:-h},t)))),dt(this.previews,(function(e){var i=Mt(e,L),c=i.width,l=i.height,d=c,u=l,p=1;n&&(u=r*(p=c/n)),r&&u>l&&(d=n*(p=l/r),u=l),mt(e,{width:d,height:u}),mt(e.getElementsByTagName("img")[0],ut({width:a*p,height:o*p},Pt(ut({translateX:-s*p,translateY:-h*p},t))))})))}},Xt={bind:function(){var t=this.element,e=this.options,i=this.cropper;ht(e.cropstart)&&Dt(t,U,e.cropstart),ht(e.cropmove)&&Dt(t,Y,e.cropmove),ht(e.cropend)&&Dt(t,z,e.cropend),ht(e.crop)&&Dt(t,H,e.crop),ht(e.zoom)&&Dt(t,_,e.zoom),Dt(i,j,this.onCropStart=this.cropStart.bind(this)),e.zoomable&&e.zoomOnWheel&&Dt(i,$,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&Dt(i,W,this.onDblclick=this.dblclick.bind(this)),Dt(t.ownerDocument,X,this.onCropMove=this.cropMove.bind(this)),Dt(t.ownerDocument,F,this.onCropEnd=this.cropEnd.bind(this)),e.responsive&&Dt(window,q,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;ht(e.cropstart)&&Tt(t,U,e.cropstart),ht(e.cropmove)&&Tt(t,Y,e.cropmove),ht(e.cropend)&&Tt(t,z,e.cropend),ht(e.crop)&&Tt(t,H,e.crop),ht(e.zoom)&&Tt(t,_,e.zoom),Tt(i,j,this.onCropStart),e.zoomable&&e.zoomOnWheel&&Tt(i,$,this.onWheel,{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&Tt(i,W,this.onDblclick),Tt(t.ownerDocument,X,this.onCropMove),Tt(t.ownerDocument,F,this.onCropEnd),e.responsive&&Tt(window,q,this.onResize)}},Ft={resize:function(){if(!this.disabled){var t,e,i=this.options,n=this.container,r=this.containerData,a=n.offsetWidth/r.width,o=n.offsetHeight/r.height,s=Math.abs(a-1)>Math.abs(o-1)?a:o;1!==s&&(i.restore&&(t=this.getCanvasData(),e=this.getCropBoxData()),this.render(),i.restore&&(this.setCanvasData(dt(t,(function(e,i){t[i]=e*s}))),this.setCropBoxData(dt(e,(function(t,i){e[i]=t*s})))))}},dblclick:function(){var t,e;this.disabled||this.options.dragMode===O||this.setDragMode((t=this.dragBox,e=B,(t.classList?t.classList.contains(e):t.className.indexOf(e)>-1)?S:P))},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,n=1;this.disabled||(t.preventDefault(),this.wheeling||(this.wheeling=!0,setTimeout((function(){e.wheeling=!1}),50),t.deltaY?n=t.deltaY>0?1:-1:t.wheelDelta?n=-t.wheelDelta/120:t.detail&&(n=t.detail>0?1:-1),this.zoom(-n*i,t)))},cropStart:function(t){var e=t.buttons,i=t.button;if(!(this.disabled||("mousedown"===t.type||"pointerdown"===t.type&&"mouse"===t.pointerType)&&(it(e)&&1!==e||it(i)&&0!==i||t.ctrlKey))){var n,r=this.options,a=this.pointers;t.changedTouches?dt(t.changedTouches,(function(t){a[t.identifier]=St(t)})):a[t.pointerId||0]=St(t),n=Object.keys(a).length>1&&r.zoomable&&r.zoomOnTouch?m:Mt(t.target,I),Q.test(n)&&!1!==At(this.element,U,{originalEvent:t,action:n})&&(t.preventDefault(),this.action=n,this.cropping=!1,n===g&&(this.cropping=!0,vt(this.dragBox,k)))}},cropMove:function(t){var e=this.action;if(!this.disabled&&e){var i=this.pointers;t.preventDefault(),!1!==At(this.element,Y,{originalEvent:t,action:e})&&(t.changedTouches?dt(t.changedTouches,(function(t){ut(i[t.identifier]||{},St(t,!0))})):ut(i[t.pointerId||0]||{},St(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?dt(t.changedTouches,(function(t){delete i[t.identifier]})):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,yt(this.dragBox,k,this.cropped&&this.options.modal)),At(this.element,z,{originalEvent:t,action:e}))}}},Kt={change:function(t){var i,n=this.options,r=this.canvasData,a=this.containerData,o=this.cropBoxData,s=this.pointers,h=this.action,c=n.aspectRatio,l=o.left,d=o.top,u=o.width,B=o.height,T=l+u,A=d+B,N=0,k=0,R=a.width,I=a.height,L=!0;!c&&t.shiftKey&&(c=u&&B?u/B:1),this.limited&&(N=o.minLeft,k=o.minTop,R=N+Math.min(a.width,r.width,r.left+r.width),I=k+Math.min(a.height,r.height,r.top+r.height));var P=s[Object.keys(s)[0]],S={x:P.endX-P.startX,y:P.endY-P.startY},O=function(t){switch(t){case v:T+S.x>R&&(S.x=R-T);break;case w:l+S.x<N&&(S.x=N-l);break;case b:d+S.y<k&&(S.y=k-d);break;case y:A+S.y>I&&(S.y=I-A)}};switch(h){case p:l+=S.x,d+=S.y;break;case v:if(S.x>=0&&(T>=R||c&&(d<=k||A>=I))){L=!1;break}O(v),(u+=S.x)<0&&(h=w,l-=u=-u),c&&(B=u/c,d+=(o.height-B)/2);break;case b:if(S.y<=0&&(d<=k||c&&(l<=N||T>=R))){L=!1;break}O(b),B-=S.y,d+=S.y,B<0&&(h=y,d-=B=-B),c&&(u=B*c,l+=(o.width-u)/2);break;case w:if(S.x<=0&&(l<=N||c&&(d<=k||A>=I))){L=!1;break}O(w),u-=S.x,l+=S.x,u<0&&(h=v,l-=u=-u),c&&(B=u/c,d+=(o.height-B)/2);break;case y:if(S.y>=0&&(A>=I||c&&(l<=N||T>=R))){L=!1;break}O(y),(B+=S.y)<0&&(h=b,d-=B=-B),c&&(u=B*c,l+=(o.width-u)/2);break;case x:if(c){if(S.y<=0&&(d<=k||T>=R)){L=!1;break}O(b),B-=S.y,d+=S.y,u=B*c}else O(b),O(v),S.x>=0?T<R?u+=S.x:S.y<=0&&d<=k&&(L=!1):u+=S.x,S.y<=0?d>k&&(B-=S.y,d+=S.y):(B-=S.y,d+=S.y);u<0&&B<0?(h=E,d-=B=-B,l-=u=-u):u<0?(h=M,l-=u=-u):B<0&&(h=C,d-=B=-B);break;case M:if(c){if(S.y<=0&&(d<=k||l<=N)){L=!1;break}O(b),B-=S.y,d+=S.y,u=B*c,l+=o.width-u}else O(b),O(w),S.x<=0?l>N?(u-=S.x,l+=S.x):S.y<=0&&d<=k&&(L=!1):(u-=S.x,l+=S.x),S.y<=0?d>k&&(B-=S.y,d+=S.y):(B-=S.y,d+=S.y);u<0&&B<0?(h=C,d-=B=-B,l-=u=-u):u<0?(h=x,l-=u=-u):B<0&&(h=E,d-=B=-B);break;case E:if(c){if(S.x<=0&&(l<=N||A>=I)){L=!1;break}O(w),u-=S.x,l+=S.x,B=u/c}else O(y),O(w),S.x<=0?l>N?(u-=S.x,l+=S.x):S.y>=0&&A>=I&&(L=!1):(u-=S.x,l+=S.x),S.y>=0?A<I&&(B+=S.y):B+=S.y;u<0&&B<0?(h=x,d-=B=-B,l-=u=-u):u<0?(h=C,l-=u=-u):B<0&&(h=M,d-=B=-B);break;case C:if(c){if(S.x>=0&&(T>=R||A>=I)){L=!1;break}O(v),B=(u+=S.x)/c}else O(y),O(v),S.x>=0?T<R?u+=S.x:S.y>=0&&A>=I&&(L=!1):u+=S.x,S.y>=0?A<I&&(B+=S.y):B+=S.y;u<0&&B<0?(h=M,d-=B=-B,l-=u=-u):u<0?(h=E,l-=u=-u):B<0&&(h=x,d-=B=-B);break;case f:this.move(S.x,S.y),L=!1;break;case m:this.zoom(function(t){var i=e({},t),n=0;return dt(t,(function(t,e){delete i[e],dt(i,(function(e){var i=Math.abs(t.startX-e.startX),r=Math.abs(t.startY-e.startY),a=Math.abs(t.endX-e.endX),o=Math.abs(t.endY-e.endY),s=Math.sqrt(i*i+r*r),h=(Math.sqrt(a*a+o*o)-s)/s;Math.abs(h)>Math.abs(n)&&(n=h)}))})),n}(s),t),L=!1;break;case g:if(!S.x||!S.y){L=!1;break}i=Nt(this.cropper),l=P.startX-i.left,d=P.startY-i.top,u=o.minWidth,B=o.minHeight,S.x>0?h=S.y>0?C:x:S.x<0&&(l-=u,h=S.y>0?E:M),S.y<0&&(d-=B),this.cropped||(wt(this.cropBox,D),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}L&&(o.width=u,o.height=B,o.left=l,o.top=d,this.action=h,this.renderCropBox()),dt(s,(function(t){t.startX=t.endX,t.startY=t.endY}))}},qt={crop:function(){return!this.ready||this.cropped||this.disabled||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&vt(this.dragBox,k),wt(this.cropBox,D),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ut({},this.initialImageData),this.canvasData=ut({},this.initialCanvasData),this.cropBoxData=ut({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ut(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),wt(this.dragBox,k),vt(this.cropBox,D)),this},replace:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,dt(this.previews,(function(e){e.getElementsByTagName("img")[0].src=t})))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,wt(this.cropper,T)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,vt(this.cropper,T)),this},destroy:function(){var t=this.element;return t.cropper?(t.cropper=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,n=i.left,r=i.top;return this.moveTo(rt(t)?t:n+Number(t),rt(e)?e:r+Number(e))},moveTo:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,n=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.movable&&(it(t)&&(i.left=t,n=!0),it(e)&&(i.top=e,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,e){var i=this.canvasData;return t=(t=Number(t))<0?1/(1-t):1+t,this.zoomTo(i.width*t/i.naturalWidth,null,e)},zoomTo:function(t,e,i){var n=this.options,r=this.canvasData,a=r.width,o=r.height,s=r.naturalWidth,h=r.naturalHeight;if((t=Number(t))>=0&&this.ready&&!this.disabled&&n.zoomable){var c=s*t,l=h*t;if(!1===At(this.element,_,{ratio:t,oldRatio:a/s,originalEvent:i}))return this;if(i){var d=this.pointers,u=Nt(this.cropper),p=d&&Object.keys(d).length?function(t){var e=0,i=0,n=0;return dt(t,(function(t){var r=t.startX,a=t.startY;e+=r,i+=a,n+=1})),{pageX:e/=n,pageY:i/=n}}(d):{pageX:i.pageX,pageY:i.pageY};r.left-=(c-a)*((p.pageX-u.left-r.left)/a),r.top-=(l-o)*((p.pageY-u.top-r.top)/o)}else st(e)&&it(e.x)&&it(e.y)?(r.left-=(c-a)*((e.x-r.left)/a),r.top-=(l-o)*((e.y-r.top)/o)):(r.left-=(c-a)/2,r.top-=(l-o)/2);r.width=c,r.height=l,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return it(t=Number(t))&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var e=this.imageData.scaleY;return this.scale(t,it(e)?e:1)},scaleY:function(t){var e=this.imageData.scaleX;return this.scale(it(e)?e:1,t)},scale:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.imageData,n=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.scalable&&(it(t)&&(i.scaleX=t,n=!0),it(e)&&(i.scaleY=e,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.options,n=this.imageData,r=this.canvasData,a=this.cropBoxData;if(this.ready&&this.cropped){t={x:a.left-r.left,y:a.top-r.top,width:a.width,height:a.height};var o=n.width/n.naturalWidth;if(dt(t,(function(e,i){t[i]=e/o})),e){var s=Math.round(t.y+t.height),h=Math.round(t.x+t.width);t.x=Math.round(t.x),t.y=Math.round(t.y),t.width=h-t.x,t.height=s-t.y}}else t={x:0,y:0,width:0,height:0};return i.rotatable&&(t.rotate=n.rotate||0),i.scalable&&(t.scaleX=n.scaleX||1,t.scaleY=n.scaleY||1),t},setData:function(t){var e=this.options,i=this.imageData,n=this.canvasData,r={};if(this.ready&&!this.disabled&&st(t)){var a=!1;e.rotatable&&it(t.rotate)&&t.rotate!==i.rotate&&(i.rotate=t.rotate,a=!0),e.scalable&&(it(t.scaleX)&&t.scaleX!==i.scaleX&&(i.scaleX=t.scaleX,a=!0),it(t.scaleY)&&t.scaleY!==i.scaleY&&(i.scaleY=t.scaleY,a=!0)),a&&this.renderCanvas(!0,!0);var o=i.width/i.naturalWidth;it(t.x)&&(r.left=t.x*o+n.left),it(t.y)&&(r.top=t.y*o+n.top),it(t.width)&&(r.width=t.width*o),it(t.height)&&(r.height=t.height*o),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?ut({},this.containerData):{}},getImageData:function(){return this.sized?ut({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&dt(["left","top","width","height","naturalWidth","naturalHeight"],(function(i){e[i]=t[i]})),e},setCanvasData:function(t){var e=this.canvasData,i=e.aspectRatio;return this.ready&&!this.disabled&&st(t)&&(it(t.left)&&(e.left=t.left),it(t.top)&&(e.top=t.top),it(t.width)?(e.width=t.width,e.height=t.width/i):it(t.height)&&(e.height=t.height,e.width=t.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var t,e=this.cropBoxData;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(t){var e,i,n=this.cropBoxData,r=this.options.aspectRatio;return this.ready&&this.cropped&&!this.disabled&&st(t)&&(it(t.left)&&(n.left=t.left),it(t.top)&&(n.top=t.top),it(t.width)&&t.width!==n.width&&(e=!0,n.width=t.width),it(t.height)&&t.height!==n.height&&(i=!0,n.height=t.height),r&&(e?n.height=n.width/r:i&&(n.width=n.height*r)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var e=this.canvasData,i=Ht(this.image,this.imageData,e,t);if(!this.cropped)return i;var n=this.getData(),r=n.x,a=n.y,s=n.width,h=n.height,c=i.width/Math.floor(e.naturalWidth);1!==c&&(r*=c,a*=c,s*=c,h*=c);var l=s/h,d=Ot({aspectRatio:l,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),u=Ot({aspectRatio:l,width:t.minWidth||0,height:t.minHeight||0},"cover"),p=Ot({aspectRatio:l,width:t.width||(1!==c?i.width:s),height:t.height||(1!==c?i.height:h)}),g=p.width,f=p.height;g=Math.min(d.width,Math.max(u.width,g)),f=Math.min(d.height,Math.max(u.height,f));var m=document.createElement("canvas"),v=m.getContext("2d");m.width=gt(g),m.height=gt(f),v.fillStyle=t.fillColor||"transparent",v.fillRect(0,0,g,f);var w=t.imageSmoothingEnabled,y=void 0===w||w,b=t.imageSmoothingQuality;v.imageSmoothingEnabled=y,b&&(v.imageSmoothingQuality=b);var x,M,C,E,B,T,D=i.width,A=i.height,N=r,k=a;N<=-s||N>D?(N=0,x=0,C=0,B=0):N<=0?(C=-N,N=0,B=x=Math.min(D,s+N)):N<=D&&(C=0,B=x=Math.min(s,D-N)),x<=0||k<=-h||k>A?(k=0,M=0,E=0,T=0):k<=0?(E=-k,k=0,T=M=Math.min(A,h+k)):k<=A&&(E=0,T=M=Math.min(h,A-k));var R=[N,k,x,M];if(B>0&&T>0){var I=g/s;R.push(C*I,E*I,B*I,T*I)}return v.drawImage.apply(v,[i].concat(o(R.map((function(t){return Math.floor(gt(t))}))))),m},setAspectRatio:function(t){var e=this.options;return this.disabled||rt(t)||(e.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var e=this.options,i=this.dragBox,n=this.face;if(this.ready&&!this.disabled){var r=t===P,a=e.movable&&t===S;t=r||a?t:O,e.dragMode=t,Ct(i,I,t),yt(i,B,r),yt(i,R,a),e.cropBoxMovable||(Ct(n,I,t),yt(n,B,r),yt(n,R,a))}return this}},$t=c.Cropper,_t=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n(this,t),!e||!G.test(e.tagName))throw new Error("The first argument is required and must be an <img> or <canvas> element.");this.element=e,this.options=ut({},tt,st(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return e=t,a=[{key:"noConflict",value:function(){return window.Cropper=$t,t}},{key:"setDefaults",value:function(t){ut(tt,st(t)&&t)}}],(i=[{key:"init",value:function(){var t,e=this.element,i=e.tagName.toLowerCase();if(!e.cropper){if(e.cropper=this,"img"===i){if(this.isImg=!0,t=e.getAttribute("src")||"",this.originalUrl=t,!t)return;t=e.src}else"canvas"===i&&window.HTMLCanvasElement&&(t=e.toDataURL());this.load(t)}}},{key:"load",value:function(t){var e,i,n,r,a=this;if(t){this.url=t,this.imageData={};var o=this.element,s=this.options;if(s.rotatable||s.scalable||(s.checkOrientation=!1),s.checkOrientation&&window.ArrayBuffer)if(V.test(t))Z.test(t)?this.read((e=t.replace(Yt,""),i=atob(e),n=new ArrayBuffer(i.length),dt(r=new Uint8Array(n),(function(t,e){r[e]=i.charCodeAt(e)})),n)):this.clone();else{var h=new XMLHttpRequest,c=this.clone.bind(this);this.reloading=!0,this.xhr=h,h.onabort=c,h.onerror=c,h.ontimeout=c,h.onprogress=function(){h.getResponseHeader("content-type")!==J&&h.abort()},h.onload=function(){a.read(h.response)},h.onloadend=function(){a.reloading=!1,a.xhr=null},s.checkCrossOrigin&&It(t)&&o.crossOrigin&&(t=Lt(t)),h.open("GET",t,!0),h.responseType="arraybuffer",h.withCredentials="use-credentials"===o.crossOrigin,h.send()}else this.clone()}}},{key:"read",value:function(t){var e=this.options,i=this.imageData,n=Ut(t),r=0,a=1,o=1;if(n>1){this.url=function(t,e){for(var i=[],n=new Uint8Array(t);n.length>0;)i.push(zt.apply(null,lt(n.subarray(0,8192)))),n=n.subarray(8192);return"data:".concat(e,";base64,").concat(btoa(i.join("")))}(t,J);var s=function(t){var e=0,i=1,n=1;switch(t){case 2:i=-1;break;case 3:e=-180;break;case 4:n=-1;break;case 5:e=90,n=-1;break;case 6:e=90;break;case 7:e=90,i=-1;break;case 8:e=-90}return{rotate:e,scaleX:i,scaleY:n}}(n);r=s.rotate,a=s.scaleX,o=s.scaleY}e.rotatable&&(i.rotate=r),e.scalable&&(i.scaleX=a,i.scaleY=o),this.clone()}},{key:"clone",value:function(){var t=this.element,e=this.url,i=t.crossOrigin,n=e;this.options.checkCrossOrigin&&It(e)&&(i||(i="anonymous"),n=Lt(e)),this.crossOrigin=i,this.crossOriginUrl=n;var r=document.createElement("img");i&&(r.crossOrigin=i),r.src=n||e,r.alt=t.alt||"The image to crop",this.image=r,r.onload=this.start.bind(this),r.onerror=this.stop.bind(this),vt(r,A),t.parentNode.insertBefore(r,t.nextSibling)}},{key:"start",value:function(){var t=this,e=this.image;e.onload=null,e.onerror=null,this.sizing=!0;var i=c.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(c.navigator.userAgent),n=function(e,i){ut(t.imageData,{naturalWidth:e,naturalHeight:i,aspectRatio:e/i}),t.initialImageData=ut({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(!e.naturalWidth||i){var r=document.createElement("img"),a=document.body||document.documentElement;this.sizingImage=r,r.onload=function(){n(r.width,r.height),i||a.removeChild(r)},r.src=e.src,i||(r.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",a.appendChild(r))}else n(e.naturalWidth,e.naturalHeight)}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(this.sized&&!this.ready){var t=this.element,e=this.options,i=this.image,n=t.parentNode,r=document.createElement("div");r.innerHTML='<div class="cropper-container" touch-action="none"><div class="cropper-wrap-box"><div class="cropper-canvas"></div></div><div class="cropper-drag-box"></div><div class="cropper-crop-box"><span class="cropper-view-box"></span><span class="cropper-dashed dashed-h"></span><span class="cropper-dashed dashed-v"></span><span class="cropper-center"></span><span class="cropper-face"></span><span class="cropper-line line-e" data-cropper-action="e"></span><span class="cropper-line line-n" data-cropper-action="n"></span><span class="cropper-line line-w" data-cropper-action="w"></span><span class="cropper-line line-s" data-cropper-action="s"></span><span class="cropper-point point-e" data-cropper-action="e"></span><span class="cropper-point point-n" data-cropper-action="n"></span><span class="cropper-point point-w" data-cropper-action="w"></span><span class="cropper-point point-s" data-cropper-action="s"></span><span class="cropper-point point-ne" data-cropper-action="ne"></span><span class="cropper-point point-nw" data-cropper-action="nw"></span><span class="cropper-point point-sw" data-cropper-action="sw"></span><span class="cropper-point point-se" data-cropper-action="se"></span></div></div>';var a=r.querySelector(".".concat(u,"-container")),o=a.querySelector(".".concat(u,"-canvas")),s=a.querySelector(".".concat(u,"-drag-box")),h=a.querySelector(".".concat(u,"-crop-box")),c=h.querySelector(".".concat(u,"-face"));this.container=n,this.cropper=a,this.canvas=o,this.dragBox=s,this.cropBox=h,this.viewBox=a.querySelector(".".concat(u,"-view-box")),this.face=c,o.appendChild(i),vt(t,D),n.insertBefore(a,t.nextSibling),this.isImg||wt(i,A),this.initPreview(),this.bind(),e.initialAspectRatio=Math.max(0,e.initialAspectRatio)||NaN,e.aspectRatio=Math.max(0,e.aspectRatio)||NaN,e.viewMode=Math.max(0,Math.min(3,Math.round(e.viewMode)))||0,vt(h,D),e.guides||vt(h.getElementsByClassName("".concat(u,"-dashed")),D),e.center||vt(h.getElementsByClassName("".concat(u,"-center")),D),e.background&&vt(a,"".concat(u,"-bg")),e.highlight||vt(c,N),e.cropBoxMovable&&(vt(c,R),Ct(c,I,p)),e.cropBoxResizable||(vt(h.getElementsByClassName("".concat(u,"-line")),D),vt(h.getElementsByClassName("".concat(u,"-point")),D)),this.render(),this.ready=!0,this.setDragMode(e.dragMode),e.autoCrop&&this.crop(),this.setData(e.data),ht(e.ready)&&Dt(t,K,e.ready,{once:!0}),At(t,K)}}},{key:"unbuild",value:function(){this.ready&&(this.ready=!1,this.unbind(),this.resetPreview(),this.cropper.parentNode.removeChild(this.cropper),wt(this.element,D))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}])&&r(e.prototype,i),a&&r(e,a),t;var e,i,a}();return ut(_t.prototype,Wt,jt,Xt,Ft,Kt,qt),_t}()},65987:t=>{"use strict";var e={single_source_shortest_paths:function(t,i,n){var r={},a={};a[i]=0;var o,s,h,c,l,d,u,p=e.PriorityQueue.make();for(p.push(i,0);!p.empty();)for(h in s=(o=p.pop()).value,c=o.cost,l=t[s]||{})l.hasOwnProperty(h)&&(d=c+l[h],u=a[h],(void 0===a[h]||u>d)&&(a[h]=d,p.push(h,d),r[h]=s));if(void 0!==n&&void 0===a[n]){var g=["Could not find a path from ",i," to ",n,"."].join("");throw new Error(g)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var i=[],n=e;n;)i.push(n),t[n],n=t[n];return i.reverse(),i},find_path:function(t,i,n){var r=e.single_source_shortest_paths(t,i,n);return e.extract_shortest_path_from_predecessor_list(r,n)},PriorityQueue:{make:function(t){var i,n=e.PriorityQueue,r={};for(i in t=t||{},n)n.hasOwnProperty(i)&&(r[i]=n[i]);return r.queue=[],r.sorter=t.sorter||n.default_sorter,r},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var i={value:t,cost:e};this.queue.push(i),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};t.exports=e},62378:t=>{"use strict";t.exports=function(t){for(var e=[],i=t.length,n=0;n<i;n++){var r=t.charCodeAt(n);if(r>=55296&&r<=56319&&i>n+1){var a=t.charCodeAt(n+1);a>=56320&&a<=57343&&(r=1024*(r-55296)+a-56320+65536,n+=1)}r<128?e.push(r):r<2048?(e.push(r>>6|192),e.push(63&r|128)):r<55296||r>=57344&&r<65536?(e.push(r>>12|224),e.push(r>>6&63|128),e.push(63&r|128)):r>=65536&&r<=1114111?(e.push(r>>18|240),e.push(r>>12&63|128),e.push(r>>6&63|128),e.push(63&r|128)):e.push(239,191,189)}return new Uint8Array(e).buffer}},92592:(t,e,i)=>{const n=i(47138),r=i(95115),a=i(6907),o=i(93776);function s(t,e,i,a,o){const s=[].slice.call(arguments,1),h=s.length,c="function"==typeof s[h-1];if(!c&&!n())throw new Error("Callback required as last argument");if(!c){if(h<1)throw new Error("Too few arguments provided");return 1===h?(i=e,e=a=void 0):2!==h||e.getContext||(a=i,i=e,e=void 0),new Promise((function(n,o){try{const o=r.create(i,a);n(t(o,e,a))}catch(t){o(t)}}))}if(h<2)throw new Error("Too few arguments provided");2===h?(o=i,i=e,e=a=void 0):3===h&&(e.getContext&&void 0===o?(o=a,a=void 0):(o=a,a=i,i=e,e=void 0));try{const n=r.create(i,a);o(null,t(n,e,a))}catch(t){o(t)}}r.create,e.rT=s.bind(null,a.render),e.hz=s.bind(null,a.renderToDataURL),e.toString=s.bind(null,(function(t,e,i){return o.render(t,i)}))},47138:t=>{t.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},21845:(t,e,i)=>{const n=i(10242).getSymbolSize;e.getRowColCoords=function(t){if(1===t)return[];const e=Math.floor(t/7)+2,i=n(t),r=145===i?26:2*Math.ceil((i-13)/(2*e-2)),a=[i-7];for(let t=1;t<e-1;t++)a[t]=a[t-1]-r;return a.push(6),a.reverse()},e.getPositions=function(t){const i=[],n=e.getRowColCoords(t),r=n.length;for(let t=0;t<r;t++)for(let e=0;e<r;e++)0===t&&0===e||0===t&&e===r-1||t===r-1&&0===e||i.push([n[t],n[e]]);return i}},8260:(t,e,i)=>{const n=i(76910),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function a(t){this.mode=n.ALPHANUMERIC,this.data=t}a.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let i=45*r.indexOf(this.data[e]);i+=r.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},t.exports=a},97245:t=>{function e(){this.buffer=[],this.length=0}e.prototype={get:function(t){const e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(let i=0;i<e;i++)this.putBit(1==(t>>>e-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},t.exports=e},73280:t=>{function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}e.prototype.set=function(t,e,i,n){const r=t*this.size+e;this.data[r]=i,n&&(this.reservedBit[r]=!0)},e.prototype.get=function(t,e){return this.data[t*this.size+e]},e.prototype.xor=function(t,e,i){this.data[t*this.size+e]^=i},e.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},t.exports=e},43424:(t,e,i)=>{const n=i(62378),r=i(76910);function a(t){this.mode=r.BYTE,this.data=new Uint8Array(n(t))}a.getBitsLength=function(t){return 8*t},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){for(let e=0,i=this.data.length;e<i;e++)t.put(this.data[e],8)},t.exports=a},26245:(t,e,i)=>{const n=i(64908),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],a=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}},e.getTotalCodewordsCount=function(t,e){switch(e){case n.L:return a[4*(t-1)+0];case n.M:return a[4*(t-1)+1];case n.Q:return a[4*(t-1)+2];case n.H:return a[4*(t-1)+3];default:return}}},64908:(t,e)=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},e.from=function(t,i){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(t){return i}}},76526:(t,e,i)=>{const n=i(10242).getSymbolSize;e.getPositions=function(t){const e=n(t);return[[0,0],[e-7,0],[0,e-7]]}},61642:(t,e,i)=>{const n=i(10242),r=n.getBCHDigit(1335);e.getEncodedBits=function(t,e){const i=t.bit<<3|e;let a=i<<10;for(;n.getBCHDigit(a)-r>=0;)a^=1335<<n.getBCHDigit(a)-r;return 21522^(i<<10|a)}},69729:(t,e)=>{const i=new Uint8Array(512),n=new Uint8Array(256);!function(){let t=1;for(let e=0;e<255;e++)i[e]=t,n[t]=e,t<<=1,256&t&&(t^=285);for(let t=255;t<512;t++)i[t]=i[t-255]}(),e.log=function(t){if(t<1)throw new Error("log("+t+")");return n[t]},e.exp=function(t){return i[t]},e.mul=function(t,e){return 0===t||0===e?0:i[n[t]+n[e]]}},35442:(t,e,i)=>{const n=i(76910),r=i(10242);function a(t){this.mode=n.KANJI,this.data=t}a.getBitsLength=function(t){return 13*t},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){let e;for(e=0;e<this.data.length;e++){let i=r.toSJIS(this.data[e]);if(i>=33088&&i<=40956)i-=33088;else{if(!(i>=57408&&i<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");i-=49472}i=192*(i>>>8&255)+(255&i),t.put(i,13)}},t.exports=a},27126:(t,e)=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function i(t,i,n){switch(t){case e.Patterns.PATTERN000:return(i+n)%2==0;case e.Patterns.PATTERN001:return i%2==0;case e.Patterns.PATTERN010:return n%3==0;case e.Patterns.PATTERN011:return(i+n)%3==0;case e.Patterns.PATTERN100:return(Math.floor(i/2)+Math.floor(n/3))%2==0;case e.Patterns.PATTERN101:return i*n%2+i*n%3==0;case e.Patterns.PATTERN110:return(i*n%2+i*n%3)%2==0;case e.Patterns.PATTERN111:return(i*n%3+(i+n)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}e.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(t){const e=t.size;let i=0,n=0,r=0,a=null,o=null;for(let s=0;s<e;s++){n=r=0,a=o=null;for(let h=0;h<e;h++){let e=t.get(s,h);e===a?n++:(n>=5&&(i+=n-5+3),a=e,n=1),e=t.get(h,s),e===o?r++:(r>=5&&(i+=r-5+3),o=e,r=1)}n>=5&&(i+=n-5+3),r>=5&&(i+=r-5+3)}return i},e.getPenaltyN2=function(t){const e=t.size;let i=0;for(let n=0;n<e-1;n++)for(let r=0;r<e-1;r++){const e=t.get(n,r)+t.get(n,r+1)+t.get(n+1,r)+t.get(n+1,r+1);4!==e&&0!==e||i++}return 3*i},e.getPenaltyN3=function(t){const e=t.size;let i=0,n=0,r=0;for(let a=0;a<e;a++){n=r=0;for(let o=0;o<e;o++)n=n<<1&2047|t.get(a,o),o>=10&&(1488===n||93===n)&&i++,r=r<<1&2047|t.get(o,a),o>=10&&(1488===r||93===r)&&i++}return 40*i},e.getPenaltyN4=function(t){let e=0;const i=t.data.length;for(let n=0;n<i;n++)e+=t.data[n];return 10*Math.abs(Math.ceil(100*e/i/5)-10)},e.applyMask=function(t,e){const n=e.size;for(let r=0;r<n;r++)for(let a=0;a<n;a++)e.isReserved(a,r)||e.xor(a,r,i(t,a,r))},e.getBestMask=function(t,i){const n=Object.keys(e.Patterns).length;let r=0,a=1/0;for(let o=0;o<n;o++){i(o),e.applyMask(o,t);const n=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),n<a&&(a=n,r=o)}return r}},76910:(t,e,i)=>{const n=i(43114),r=i(7007);e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!n.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},e.getBestModeForData=function(t){return r.testNumeric(t)?e.NUMERIC:r.testAlphanumeric(t)?e.ALPHANUMERIC:r.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},e.isValid=function(t){return t&&t.bit&&t.ccBits},e.from=function(t,i){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(t){return i}}},41085:(t,e,i)=>{const n=i(76910);function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){let e,i,n;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),n=parseInt(i,10),t.put(n,10);const r=this.data.length-e;r>0&&(i=this.data.substr(e),n=parseInt(i,10),t.put(n,3*r+1))},t.exports=r},26143:(t,e,i)=>{const n=i(69729);e.mul=function(t,e){const i=new Uint8Array(t.length+e.length-1);for(let r=0;r<t.length;r++)for(let a=0;a<e.length;a++)i[r+a]^=n.mul(t[r],e[a]);return i},e.mod=function(t,e){let i=new Uint8Array(t);for(;i.length-e.length>=0;){const t=i[0];for(let r=0;r<e.length;r++)i[r]^=n.mul(e[r],t);let r=0;for(;r<i.length&&0===i[r];)r++;i=i.slice(r)}return i},e.generateECPolynomial=function(t){let i=new Uint8Array([1]);for(let r=0;r<t;r++)i=e.mul(i,new Uint8Array([1,n.exp(r)]));return i}},95115:(t,e,i)=>{const n=i(10242),r=i(64908),a=i(97245),o=i(73280),s=i(21845),h=i(76526),c=i(27126),l=i(26245),d=i(52882),u=i(23103),p=i(61642),g=i(76910),f=i(16130);function m(t,e,i){const n=t.size,r=p.getEncodedBits(e,i);let a,o;for(a=0;a<15;a++)o=1==(r>>a&1),a<6?t.set(a,8,o,!0):a<8?t.set(a+1,8,o,!0):t.set(n-15+a,8,o,!0),a<8?t.set(8,n-a-1,o,!0):a<9?t.set(8,15-a-1+1,o,!0):t.set(8,15-a-1,o,!0);t.set(n-8,8,1,!0)}function v(t,e,i,r){let p;if(Array.isArray(t))p=f.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");{let n=e;if(!n){const e=f.rawSplit(t);n=u.getBestVersionForData(e,i)}p=f.fromString(t,n||40)}}const v=u.getBestVersionForData(p,i);if(!v)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e<v)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+v+".\n")}else e=v;const w=function(t,e,i){const r=new a;i.forEach((function(e){r.put(e.mode.bit,4),r.put(e.getLength(),g.getCharCountIndicator(e.mode,t)),e.write(r)}));const o=8*(n.getSymbolTotalCodewords(t)-l.getTotalCodewordsCount(t,e));for(r.getLengthInBits()+4<=o&&r.put(0,4);r.getLengthInBits()%8!=0;)r.putBit(0);const s=(o-r.getLengthInBits())/8;for(let t=0;t<s;t++)r.put(t%2?17:236,8);return function(t,e,i){const r=n.getSymbolTotalCodewords(e),a=r-l.getTotalCodewordsCount(e,i),o=l.getBlocksCount(e,i),s=o-r%o,h=Math.floor(r/o),c=Math.floor(a/o),u=c+1,p=h-c,g=new d(p);let f=0;const m=new Array(o),v=new Array(o);let w=0;const y=new Uint8Array(t.buffer);for(let t=0;t<o;t++){const e=t<s?c:u;m[t]=y.slice(f,f+e),v[t]=g.encode(m[t]),f+=e,w=Math.max(w,e)}const b=new Uint8Array(r);let x,M,C=0;for(x=0;x<w;x++)for(M=0;M<o;M++)x<m[M].length&&(b[C++]=m[M][x]);for(x=0;x<p;x++)for(M=0;M<o;M++)b[C++]=v[M][x];return b}(r,t,e)}(e,i,p),y=n.getSymbolSize(e),b=new o(y);return function(t,e){const i=t.size,n=h.getPositions(e);for(let e=0;e<n.length;e++){const r=n[e][0],a=n[e][1];for(let e=-1;e<=7;e++)if(!(r+e<=-1||i<=r+e))for(let n=-1;n<=7;n++)a+n<=-1||i<=a+n||(e>=0&&e<=6&&(0===n||6===n)||n>=0&&n<=6&&(0===e||6===e)||e>=2&&e<=4&&n>=2&&n<=4?t.set(r+e,a+n,!0,!0):t.set(r+e,a+n,!1,!0))}}(b,e),function(t){const e=t.size;for(let i=8;i<e-8;i++){const e=i%2==0;t.set(i,6,e,!0),t.set(6,i,e,!0)}}(b),function(t,e){const i=s.getPositions(e);for(let e=0;e<i.length;e++){const n=i[e][0],r=i[e][1];for(let e=-2;e<=2;e++)for(let i=-2;i<=2;i++)-2===e||2===e||-2===i||2===i||0===e&&0===i?t.set(n+e,r+i,!0,!0):t.set(n+e,r+i,!1,!0)}}(b,e),m(b,i,0),e>=7&&function(t,e){const i=t.size,n=u.getEncodedBits(e);let r,a,o;for(let e=0;e<18;e++)r=Math.floor(e/3),a=e%3+i-8-3,o=1==(n>>e&1),t.set(r,a,o,!0),t.set(a,r,o,!0)}(b,e),function(t,e){const i=t.size;let n=-1,r=i-1,a=7,o=0;for(let s=i-1;s>0;s-=2)for(6===s&&s--;;){for(let i=0;i<2;i++)if(!t.isReserved(r,s-i)){let n=!1;o<e.length&&(n=1==(e[o]>>>a&1)),t.set(r,s-i,n),a--,-1===a&&(o++,a=7)}if(r+=n,r<0||i<=r){r-=n,n=-n;break}}}(b,w),isNaN(r)&&(r=c.getBestMask(b,m.bind(null,b,i))),c.applyMask(r,b),m(b,i,r),{modules:b,version:e,errorCorrectionLevel:i,maskPattern:r,segments:p}}e.create=function(t,e){if(void 0===t||""===t)throw new Error("No input text");let i,a,o=r.M;return void 0!==e&&(o=r.from(e.errorCorrectionLevel,r.M),i=u.from(e.version),a=c.from(e.maskPattern),e.toSJISFunc&&n.setToSJISFunction(e.toSJISFunc)),v(t,i,o,a)}},52882:(t,e,i)=>{const n=i(26143);function r(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(t){this.degree=t,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");const e=new Uint8Array(t.length+this.degree);e.set(t);const i=n.mod(e,this.genPoly),r=this.degree-i.length;if(r>0){const t=new Uint8Array(this.degree);return t.set(i,r),t}return i},t.exports=r},7007:(t,e)=>{let i="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";i=i.replace(/u/g,"\\u");const n="(?:(?![A-Z0-9 $%*+\\-./:]|"+i+")(?:.|[\r\n]))+";e.KANJI=new RegExp(i,"g"),e.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),e.BYTE=new RegExp(n,"g"),e.NUMERIC=new RegExp("[0-9]+","g"),e.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const r=new RegExp("^"+i+"$"),a=new RegExp("^[0-9]+$"),o=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");e.testKanji=function(t){return r.test(t)},e.testNumeric=function(t){return a.test(t)},e.testAlphanumeric=function(t){return o.test(t)}},16130:(t,e,i)=>{const n=i(76910),r=i(41085),a=i(8260),o=i(43424),s=i(35442),h=i(7007),c=i(10242),l=i(65987);function d(t){return unescape(encodeURIComponent(t)).length}function u(t,e,i){const n=[];let r;for(;null!==(r=t.exec(i));)n.push({data:r[0],index:r.index,mode:e,length:r[0].length});return n}function p(t){const e=u(h.NUMERIC,n.NUMERIC,t),i=u(h.ALPHANUMERIC,n.ALPHANUMERIC,t);let r,a;return c.isKanjiModeEnabled()?(r=u(h.BYTE,n.BYTE,t),a=u(h.KANJI,n.KANJI,t)):(r=u(h.BYTE_KANJI,n.BYTE,t),a=[]),e.concat(i,r,a).sort((function(t,e){return t.index-e.index})).map((function(t){return{data:t.data,mode:t.mode,length:t.length}}))}function g(t,e){switch(e){case n.NUMERIC:return r.getBitsLength(t);case n.ALPHANUMERIC:return a.getBitsLength(t);case n.KANJI:return s.getBitsLength(t);case n.BYTE:return o.getBitsLength(t)}}function f(t,e){let i;const h=n.getBestModeForData(t);if(i=n.from(e,h),i!==n.BYTE&&i.bit<h.bit)throw new Error('"'+t+'" cannot be encoded with mode '+n.toString(i)+".\n Suggested mode is: "+n.toString(h));switch(i!==n.KANJI||c.isKanjiModeEnabled()||(i=n.BYTE),i){case n.NUMERIC:return new r(t);case n.ALPHANUMERIC:return new a(t);case n.KANJI:return new s(t);case n.BYTE:return new o(t)}}e.fromArray=function(t){return t.reduce((function(t,e){return"string"==typeof e?t.push(f(e,null)):e.data&&t.push(f(e.data,e.mode)),t}),[])},e.fromString=function(t,i){const r=function(t){const e=[];for(let i=0;i<t.length;i++){const r=t[i];switch(r.mode){case n.NUMERIC:e.push([r,{data:r.data,mode:n.ALPHANUMERIC,length:r.length},{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.ALPHANUMERIC:e.push([r,{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.KANJI:e.push([r,{data:r.data,mode:n.BYTE,length:d(r.data)}]);break;case n.BYTE:e.push([{data:r.data,mode:n.BYTE,length:d(r.data)}])}}return e}(p(t,c.isKanjiModeEnabled())),a=function(t,e){const i={},r={start:{}};let a=["start"];for(let o=0;o<t.length;o++){const s=t[o],h=[];for(let t=0;t<s.length;t++){const c=s[t],l=""+o+t;h.push(l),i[l]={node:c,lastCount:0},r[l]={};for(let t=0;t<a.length;t++){const o=a[t];i[o]&&i[o].node.mode===c.mode?(r[o][l]=g(i[o].lastCount+c.length,c.mode)-g(i[o].lastCount,c.mode),i[o].lastCount+=c.length):(i[o]&&(i[o].lastCount=c.length),r[o][l]=g(c.length,c.mode)+4+n.getCharCountIndicator(c.mode,e))}}a=h}for(let t=0;t<a.length;t++)r[a[t]].end=0;return{map:r,table:i}}(r,i),o=l.find_path(a.map,"start","end"),s=[];for(let t=1;t<o.length-1;t++)s.push(a.table[o[t]].node);return e.fromArray(s.reduce((function(t,e){const i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)}),[]))},e.rawSplit=function(t){return e.fromArray(p(t,c.isKanjiModeEnabled()))}},10242:(t,e)=>{let i;const n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},e.getSymbolTotalCodewords=function(t){return n[t]},e.getBCHDigit=function(t){let e=0;for(;0!==t;)e++,t>>>=1;return e},e.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');i=t},e.isKanjiModeEnabled=function(){return void 0!==i},e.toSJIS=function(t){return i(t)}},43114:(t,e)=>{e.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},23103:(t,e,i)=>{const n=i(10242),r=i(26245),a=i(64908),o=i(76910),s=i(43114),h=n.getBCHDigit(7973);function c(t,e){return o.getCharCountIndicator(t,e)+4}function l(t,e){let i=0;return t.forEach((function(t){const n=c(t.mode,e);i+=n+t.getBitsLength()})),i}e.from=function(t,e){return s.isValid(t)?parseInt(t,10):e},e.getCapacity=function(t,e,i){if(!s.isValid(t))throw new Error("Invalid QR Code version");void 0===i&&(i=o.BYTE);const a=8*(n.getSymbolTotalCodewords(t)-r.getTotalCodewordsCount(t,e));if(i===o.MIXED)return a;const h=a-c(i,t);switch(i){case o.NUMERIC:return Math.floor(h/10*3);case o.ALPHANUMERIC:return Math.floor(h/11*2);case o.KANJI:return Math.floor(h/13);case o.BYTE:default:return Math.floor(h/8)}},e.getBestVersionForData=function(t,i){let n;const r=a.from(i,a.M);if(Array.isArray(t)){if(t.length>1)return function(t,i){for(let n=1;n<=40;n++)if(l(t,n)<=e.getCapacity(n,i,o.MIXED))return n}(t,r);if(0===t.length)return 1;n=t[0]}else n=t;return function(t,i,n){for(let r=1;r<=40;r++)if(i<=e.getCapacity(r,n,t))return r}(n.mode,n.getLength(),r)},e.getEncodedBits=function(t){if(!s.isValid(t)||t<7)throw new Error("Invalid QR Code version");let e=t<<12;for(;n.getBCHDigit(e)-h>=0;)e^=7973<<n.getBCHDigit(e)-h;return t<<12|e}},6907:(t,e,i)=>{const n=i(89653);e.render=function(t,e,i){let r=i,a=e;void 0!==r||e&&e.getContext||(r=e,e=void 0),e||(a=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),r=n.getOptions(r);const o=n.getImageWidth(t.modules.size,r),s=a.getContext("2d"),h=s.createImageData(o,o);return n.qrToImageData(h.data,t,r),function(t,e,i){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=i,e.width=i,e.style.height=i+"px",e.style.width=i+"px"}(s,a,o),s.putImageData(h,0,0),a},e.renderToDataURL=function(t,i,n){let r=n;void 0!==r||i&&i.getContext||(r=i,i=void 0),r||(r={});const a=e.render(t,i,r),o=r.type||"image/png",s=r.rendererOpts||{};return a.toDataURL(o,s.quality)}},93776:(t,e,i)=>{const n=i(89653);function r(t,e){const i=t.a/255,n=e+'="'+t.hex+'"';return i<1?n+" "+e+'-opacity="'+i.toFixed(2).slice(1)+'"':n}function a(t,e,i){let n=t+e;return void 0!==i&&(n+=" "+i),n}e.render=function(t,e,i){const o=n.getOptions(e),s=t.modules.size,h=t.modules.data,c=s+2*o.margin,l=o.color.light.a?"<path "+r(o.color.light,"fill")+' d="M0 0h'+c+"v"+c+'H0z"/>':"",d="<path "+r(o.color.dark,"stroke")+' d="'+function(t,e,i){let n="",r=0,o=!1,s=0;for(let h=0;h<t.length;h++){const c=Math.floor(h%e),l=Math.floor(h/e);c||o||(o=!0),t[h]?(s++,h>0&&c>0&&t[h-1]||(n+=o?a("M",c+i,.5+l+i):a("m",r,0),r=0,o=!1),c+1<e&&t[h+1]||(n+=a("h",s),s=0)):r++}return n}(h,s,o.margin)+'"/>',u='viewBox="0 0 '+c+" "+c+'"',p='<svg xmlns="http://www.w3.org/2000/svg" '+(o.width?'width="'+o.width+'" height="'+o.width+'" ':"")+u+' shape-rendering="crispEdges">'+l+d+"</svg>\n";return"function"==typeof i&&i(null,p),p}},89653:(t,e)=>{function i(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");let e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map((function(t){return[t,t]})))),6===e.length&&e.push("F","F");const i=parseInt(e.join(""),16);return{r:i>>24&255,g:i>>16&255,b:i>>8&255,a:255&i,hex:"#"+e.slice(0,6).join("")}}e.getOptions=function(t){t||(t={}),t.color||(t.color={});const e=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,n=t.width&&t.width>=21?t.width:void 0,r=t.scale||4;return{width:n,scale:n?4:r,margin:e,color:{dark:i(t.color.dark||"#000000ff"),light:i(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},e.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},e.getImageWidth=function(t,i){const n=e.getScale(t,i);return Math.floor((t+2*i.margin)*n)},e.qrToImageData=function(t,i,n){const r=i.modules.size,a=i.modules.data,o=e.getScale(r,n),s=Math.floor((r+2*n.margin)*o),h=n.margin*o,c=[n.color.light,n.color.dark];for(let e=0;e<s;e++)for(let i=0;i<s;i++){let l=4*(e*s+i),d=n.color.light;e>=h&&i>=h&&e<s-h&&i<s-h&&(d=c[a[Math.floor((e-h)/o)*r+Math.floor((i-h)/o)]?1:0]),t[l++]=d.r,t[l++]=d.g,t[l++]=d.b,t[l]=d.a}}}}]);
+//# sourceMappingURL=48.d7e479b200a6c89c4958.js.map \ No newline at end of file
diff --git a/priv/static/static/js/2677.45ff400a54f2f4c858f2.js.LICENSE.txt b/priv/static/static/js/48.d7e479b200a6c89c4958.js.LICENSE.txt
index eebbec8f5..eebbec8f5 100644
--- a/priv/static/static/js/2677.45ff400a54f2f4c858f2.js.LICENSE.txt
+++ b/priv/static/static/js/48.d7e479b200a6c89c4958.js.LICENSE.txt
diff --git a/priv/static/static/js/48.d7e479b200a6c89c4958.js.map b/priv/static/static/js/48.d7e479b200a6c89c4958.js.map
new file mode 100644
index 000000000..cd4ce8e66
--- /dev/null
+++ b/priv/static/static/js/48.d7e479b200a6c89c4958.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/48.d7e479b200a6c89c4958.js","mappings":"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","sources":["webpack://pleroma_fe/./node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.esm.js","webpack://pleroma_fe/./node_modules/cropperjs/dist/cropper.js","webpack://pleroma_fe/./node_modules/dijkstrajs/dijkstra.js","webpack://pleroma_fe/./node_modules/encode-utf8/index.js","webpack://pleroma_fe/./node_modules/qrcode/lib/browser.js","webpack://pleroma_fe/./node_modules/qrcode/lib/can-promise.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/alignment-pattern.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/bit-buffer.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/bit-matrix.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/byte-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/error-correction-code.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/error-correction-level.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/finder-pattern.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/format-info.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/galois-field.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/kanji-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/mask-pattern.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/mode.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/numeric-data.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/polynomial.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/qrcode.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/regex.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/segments.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/utils.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/version-check.js","webpack://pleroma_fe/./node_modules/qrcode/lib/core/version.js","webpack://pleroma_fe/./node_modules/qrcode/lib/renderer/canvas.js","webpack://pleroma_fe/./node_modules/qrcode/lib/renderer/svg-tag.js","webpack://pleroma_fe/./node_modules/qrcode/lib/renderer/utils.js"],"sourcesContent":["/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */\nimport { defineComponent, h } from 'vue';\nimport { toString, toDataURL, toCanvas } from 'qrcode';\n\nconst EVENT_READY = 'ready';\r\nvar index = defineComponent({\r\n name: 'VueQrcode',\r\n props: {\r\n /**\r\n * The value of the QR code.\r\n */\r\n value: {\r\n type: String,\r\n default: undefined,\r\n },\r\n /**\r\n * The options for the QR code generator.\r\n * {@link https://github.com/soldair/node-qrcode#qr-code-options}\r\n */\r\n options: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * The tag name of the component's root element.\r\n */\r\n tag: {\r\n type: String,\r\n default: 'canvas',\r\n },\r\n },\r\n emits: [EVENT_READY],\r\n watch: {\r\n $props: {\r\n deep: true,\r\n immediate: true,\r\n /**\r\n * Update the QR code when props changed.\r\n */\r\n handler() {\r\n if (this.$el) {\r\n this.generate();\r\n }\r\n },\r\n },\r\n },\r\n mounted() {\r\n this.generate();\r\n },\r\n methods: {\r\n /**\r\n * Generate QR code.\r\n */\r\n generate() {\r\n const options = this.options || {};\r\n const value = String(this.value);\r\n const done = () => {\r\n this.$emit(EVENT_READY, this.$el);\r\n };\r\n switch (this.tag) {\r\n case 'canvas':\r\n toCanvas(this.$el, value, options, (error) => {\r\n if (error) {\r\n throw error;\r\n }\r\n done();\r\n });\r\n break;\r\n case 'img':\r\n toDataURL(value, options, (error, url) => {\r\n if (error) {\r\n throw error;\r\n }\r\n this.$el.src = url;\r\n this.$el.onload = done;\r\n });\r\n break;\r\n case 'svg':\r\n toString(value, options, (error, string) => {\r\n if (error) {\r\n throw error;\r\n }\r\n const div = document.createElement('div');\r\n div.innerHTML = string;\r\n const svg = div.querySelector('svg');\r\n if (svg) {\r\n const { attributes, childNodes } = svg;\r\n Object.keys(attributes).forEach((key) => {\r\n const attribute = attributes[Number(key)];\r\n this.$el.setAttribute(attribute.name, attribute.value);\r\n });\r\n Object.keys(childNodes).forEach((key) => {\r\n const childNode = childNodes[Number(key)];\r\n this.$el.appendChild(childNode.cloneNode(true));\r\n });\r\n done();\r\n }\r\n });\r\n break;\r\n }\r\n },\r\n },\r\n render() {\r\n return h(this.tag, this.$slots.default);\r\n },\r\n});\n\nexport { index as default };\n","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:17.411Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cropper = factory());\n}(this, (function () { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'cropper'; // Actions\n\n var ACTION_ALL = 'all';\n var ACTION_CROP = 'crop';\n var ACTION_MOVE = 'move';\n var ACTION_ZOOM = 'zoom';\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw'; // Classes\n\n var CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\n var CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\n var CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\"); // Data keys\n\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n var DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\"); // Drag modes\n\n var DRAG_MODE_CROP = 'crop';\n var DRAG_MODE_MOVE = 'move';\n var DRAG_MODE_NONE = 'none'; // Events\n\n var EVENT_CROP = 'crop';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_READY = 'ready';\n var EVENT_RESIZE = 'resize';\n var EVENT_WHEEL = 'wheel';\n var EVENT_ZOOM = 'zoom'; // Mime types\n\n var MIME_TYPE_JPEG = 'image/jpeg'; // RegExps\n\n var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\n var REGEXP_TAG_NAME = /^img|canvas$/i; // Misc\n // Inspired by the default width and height of a canvas element.\n\n var MIN_CONTAINER_WIDTH = 200;\n var MIN_CONTAINER_HEIGHT = 100;\n\n var DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n };\n\n var TEMPLATE = '<div class=\"cropper-container\" touch-action=\"none\">' + '<div class=\"cropper-wrap-box\">' + '<div class=\"cropper-canvas\"></div>' + '</div>' + '<div class=\"cropper-drag-box\"></div>' + '<div class=\"cropper-crop-box\">' + '<span class=\"cropper-view-box\"></span>' + '<span class=\"cropper-dashed dashed-h\"></span>' + '<span class=\"cropper-dashed dashed-v\"></span>' + '<span class=\"cropper-center\"></span>' + '<span class=\"cropper-face\"></span>' + '<span class=\"cropper-line line-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-line line-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-line line-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-line line-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-point point-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-point point-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-point point-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-ne\" data-cropper-action=\"ne\"></span>' + '<span class=\"cropper-point point-nw\" data-cropper-action=\"nw\"></span>' + '<span class=\"cropper-point point-sw\" data-cropper-action=\"sw\"></span>' + '<span class=\"cropper-point point-se\" data-cropper-action=\"se\"></span>' + '</div>' + '</div>';\n\n /**\n * Check if the given value is not a number.\n */\n\n var isNaN = Number.isNaN || WINDOW.isNaN;\n /**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n\n function isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n }\n /**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n /**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n /**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n\n function isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n }\n /**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n\n function isFunction(value) {\n return typeof value === 'function';\n }\n var slice = Array.prototype.slice;\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n /**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n\n function forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length)\n /* array-like */\n ) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n\n return data;\n }\n /**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\n\n var assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n\n return target;\n };\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n var REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n /**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n\n function setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n\n style[property] = value;\n });\n }\n /**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n\n function hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n /**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n\n function addClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n\n var className = element.className.trim();\n\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n }\n /**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n\n function removeClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n /**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n\n function toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n } // IE10-11 doesn't support the second parameter of `classList.toggle`\n\n\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n var REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n /**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n\n function toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n }\n /**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n\n function getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n\n if (element.dataset) {\n return element.dataset[name];\n }\n\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n }\n /**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n\n function setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n }\n /**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\n\n function removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n }\n var REGEXP_SPACES = /\\s\\s*/;\n\n var onceSupported = function () {\n var supported = false;\n\n if (IS_BROWSER) {\n var once = false;\n\n var listener = function listener() {};\n\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n\n return supported;\n }();\n /**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n\n function removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n\n element.removeEventListener(event, handler, options);\n });\n }\n /**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n function addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n listener.apply(element, args);\n };\n\n if (!listeners[event]) {\n listeners[event] = {};\n }\n\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n\n element.addEventListener(event, _handler, options);\n });\n }\n /**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n\n function dispatchEvent(element, type, data) {\n var event; // Event and CustomEvent on IE9-11 are global objects, not constructors\n\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n\n return element.dispatchEvent(event);\n }\n /**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n\n function getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n }\n var location = WINDOW.location;\n var REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n /**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\n\n function isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n }\n /**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\n\n function addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n }\n /**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n\n function getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n } // Rotate should come first before scale to match orientation transform\n\n\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n /**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n\n function getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n }\n /**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n\n function getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n }\n /**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n /**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n\n function getAdjustedSizes(_ref4) // or 'cover'\n {\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n\n return {\n width: width,\n height: height\n };\n }\n /**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\n\n function getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n }\n /**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\n\n function getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n }\n var fromCharCode = String.fromCharCode;\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n\n return str;\n }\n var REGEXP_DATA_URL_HEAD = /^data:.*,/;\n /**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\n\n function dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n }\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = []; // Chunk Typed Array for better performance (#435)\n\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation; // Ignores range error when the image does not have correct Exif information\n\n try {\n var littleEndian;\n var app1Start;\n var ifdStart; // Only handle JPEG image (start by 0xFFD8)\n\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n\n offset += 1;\n }\n }\n\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D\n /* bigEndian */\n ) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n\n var _offset;\n\n var i;\n\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n\n if (dataView.getUint16(_offset, littleEndian) === 0x0112\n /* Orientation */\n ) {\n // 8 is the offset of the current tag's value\n _offset += 8; // Get the original orientation value\n\n orientation = dataView.getUint16(_offset, littleEndian); // Override the orientation with its default value\n\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n\n return orientation;\n }\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n // Rotate left 180°\n\n case 3:\n rotate = -180;\n break;\n // Flip vertical\n\n case 4:\n scaleY = -1;\n break;\n // Flip vertical and rotate right 90°\n\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n // Rotate right 90°\n\n case 6:\n rotate = 90;\n break;\n // Flip horizontal and rotate right 90°\n\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n // Rotate left 90°\n\n case 8:\n rotate = -90;\n break;\n }\n\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n var render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true); // Initialize auto crop area\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); // The width/height of auto crop area must large than \"minWidth/Height\"\n\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height; // The min/maxCropBoxWidth/Height must be less than container's width/height\n\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n } // The minWidth/Height must be less than maxWidth/Height\n\n\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n };\n\n var preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n\n if (!preview) {\n return;\n }\n\n var previews = preview;\n\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img'); // Save the original size for recover\n\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.src = url;\n img.alt = alt;\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n\n if (!this.cropped || this.disabled) {\n return;\n }\n\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n };\n\n var events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n };\n\n var handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY; // Resize when width changed or height changed\n\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n\n this.render();\n\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n\n if (this.disabled) {\n return;\n }\n\n event.preventDefault(); // Limit wheel speed to prevent zoom too fast (#21)\n\n if (this.wheeling) {\n return;\n }\n\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n\n if (this.disabled // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && ( // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu\n || event.ctrlKey)) {\n return;\n }\n\n var options = this.options,\n pointers = this.pointers;\n var action;\n\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n } // This line is required for preventing page zooming in iOS browsers\n\n\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n\n if (this.disabled || !action) {\n return;\n }\n\n var pointers = this.pointers;\n event.preventDefault();\n\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n\n var action = this.action,\n pointers = this.pointers;\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n\n if (!action) {\n return;\n }\n\n event.preventDefault();\n\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n };\n\n var change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset; // Locking aspect ratio in \"free mode\" by holding shift key\n\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n\n break;\n\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n\n break;\n\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n\n break;\n }\n };\n\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n // Resize crop box\n\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_SOUTH);\n height += range.y;\n\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n // Move canvas\n\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n // Zoom canvas\n\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n // Create crop box\n\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n\n if (range.y < 0) {\n top -= height;\n } // Show the crop box if is hidden\n\n\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n\n break;\n }\n\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n } // Override\n\n\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n };\n\n var methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true); // Render canvas after crop box rendered\n\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n\n return this;\n },\n\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n\n if (!element[NAMESPACE]) {\n return this;\n }\n\n element[NAMESPACE] = undefined;\n\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n\n this.uncreate();\n return this;\n },\n\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n\n if (changed) {\n this.renderCanvas(true);\n }\n }\n\n return this;\n },\n\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n }; // Zoom from the triggering point of the event\n\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n\n return this;\n },\n\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n\n return this;\n },\n\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n\n return data;\n },\n\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n\n var ratio = imageData.width / imageData.naturalWidth;\n\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n\n this.setCropBoxData(cropBoxData);\n }\n\n return this;\n },\n\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n\n return data;\n },\n\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n\n return data || {};\n },\n\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.renderCropBox();\n }\n\n return this;\n },\n\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options); // Returns the source canvas if it is not cropped.\n\n if (!this.cropped) {\n return source;\n }\n\n var _this$getData = this.getData(),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n } // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n\n\n var sourceWidth = source.width;\n var sourceHeight = source.height; // Source canvas parameters\n\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight; // Destination canvas parameters\n\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n\n var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid \"IndexSizeError\"\n\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n } // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n\n\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n\n if (this.ready) {\n this.initCropBox();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n\n return this;\n },\n\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n\n return this;\n }\n };\n\n var AnotherCropper = WINDOW.Cropper;\n\n var Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Cropper);\n\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an <img> or <canvas> element.');\n }\n\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n\n _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n\n if (element[NAMESPACE]) {\n return;\n }\n\n element[NAMESPACE] = this;\n\n if (tagName === 'img') {\n this.isImg = true; // e.g.: \"img/picture.jpg\"\n\n url = element.getAttribute('src') || '';\n this.originalUrl = url; // Stop when it's a blank image\n\n if (!url) {\n return;\n } // e.g.: \"https://example.com/img/picture.jpg\"\n\n\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n\n if (!url) {\n return;\n }\n\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n } // Only IE10+ supports Typed Arrays\n\n\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n } // Detect the mime type of the image directly if it is a Data URL\n\n\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n\n return;\n } // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n\n\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr; // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n }; // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n\n\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n } // The third parameter is required for avoiding side-effect (#682)\n\n\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData; // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n\n var _parseOrientation = parseOrientation(orientation);\n\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n } // Bust cache when there is not a \"crossOrigin\" property (#519)\n\n\n crossOriginUrl = addTimestamp(url);\n }\n\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true; // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n\n _this2.build();\n }; // Most modern browsers (excepts iOS WebKit)\n\n\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n\n sizingImage.src = image.src; // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n\n var element = this.element,\n options = this.options,\n image = this.image; // Create cropper elements\n\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image); // Hide the original image\n\n addClass(element, CLASS_HIDDEN); // Inserts the cropper after to the current image\n\n container.insertBefore(cropper, element.nextSibling); // Show the image if is hidden\n\n if (!this.isImg) {\n removeClass(image, CLASS_HIDE);\n }\n\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n\n if (options.autoCrop) {\n this.crop();\n }\n\n this.setData(options.data);\n\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n\n this.ready = false;\n this.unbind();\n this.resetPreview();\n this.cropper.parentNode.removeChild(this.cropper);\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n\n return Cropper;\n }();\n\n assign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\n return Cropper;\n\n})));\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin <self@wyattbaldwin.com>\n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(data))\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>'\n\n const path =\n '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>'\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n"],"names":["EVENT_READY","index","name","props","value","type","String","default","undefined","options","Object","tag","emits","watch","$props","deep","immediate","handler","this","$el","generate","mounted","methods","done","$emit","error","url","src","onload","toString","string","div","document","createElement","innerHTML","svg","querySelector","attributes","childNodes","keys","forEach","key","attribute","Number","setAttribute","childNode","appendChild","cloneNode","render","h","$slots","module","exports","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","o","minLen","n","call","slice","test","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","IS_BROWSER","window","WINDOW","IS_TOUCH_DEVICE","documentElement","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_EAST","ACTION_WEST","ACTION_SOUTH","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","concat","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","DRAG_MODE_CROP","DRAG_MODE_MOVE","DRAG_MODE_NONE","EVENT_CROP","EVENT_CROP_END","EVENT_CROP_MOVE","EVENT_CROP_START","EVENT_DBLCLICK","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_RESIZE","EVENT_WHEEL","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","DEFAULTS","viewMode","dragMode","initialAspectRatio","NaN","aspectRatio","data","preview","responsive","restore","checkCrossOrigin","checkOrientation","modal","guides","center","highlight","background","autoCrop","autoCropArea","movable","rotatable","scalable","zoomable","zoomOnTouch","zoomOnWheel","wheelZoomRatio","cropBoxMovable","cropBoxResizable","toggleDragModeOnDblclick","minCanvasWidth","minCanvasHeight","minCropBoxWidth","minCropBoxHeight","minContainerWidth","minContainerHeight","ready","cropstart","cropmove","cropend","crop","zoom","isNaN","isNumber","isPositiveNumber","Infinity","isUndefined","isObject","hasOwnProperty","isPlainObject","_constructor","isFunction","toArray","callback","assign","_len","args","_key","arg","REGEXP_DECIMALS","normalizeDecimalNumber","times","Math","round","REGEXP_SUFFIX","setStyle","element","styles","style","property","addClass","elem","classList","add","className","trim","indexOf","removeClass","remove","replace","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","toLowerCase","getData","dataset","getAttribute","setData","REGEXP_SPACES","onceSupported","supported","once","listener","get","set","addEventListener","removeEventListener","removeListener","split","event","listeners","addListener","_handler","_element$listeners","_len2","_key2","dispatchEvent","Event","CustomEvent","detail","bubbles","cancelable","createEvent","initCustomEvent","getOffset","box","getBoundingClientRect","left","pageXOffset","clientLeft","top","pageYOffset","clientTop","location","REGEXP_ORIGINS","isCrossOriginURL","parts","match","protocol","hostname","port","addTimestamp","timestamp","Date","getTime","getTransforms","_ref","rotate","scaleX","scaleY","translateX","translateY","values","transform","join","WebkitTransform","msTransform","getPointer","_ref2","endOnly","pageX","pageY","end","endX","endY","startX","startY","getAdjustedSizes","_ref4","height","width","isValidWidth","isValidHeight","adjustedWidth","getSourceCanvas","image","_ref6","_ref7","_ref8","imageAspectRatio","imageNaturalWidth","naturalWidth","imageNaturalHeight","naturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","_ref8$fillColor","fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","maxWidth","_ref8$maxHeight","maxHeight","_ref8$minWidth","minWidth","_ref8$minHeight","minHeight","canvas","context","getContext","maxSizes","minSizes","min","max","destMaxSizes","destMinSizes","destWidth","destHeight","params","fillStyle","fillRect","save","translate","PI","scale","drawImage","map","param","floor","fromCharCode","REGEXP_DATA_URL_HEAD","resetAndGetOrientation","arrayBuffer","orientation","dataView","DataView","littleEndian","app1Start","ifdStart","getUint8","byteLength","offset","tiffOffset","start","str","getStringFromCharCode","endianness","getUint16","firstIFDOffset","getUint32","_offset","_length","setUint16","initContainer","initCanvas","initCropBox","renderCanvas","cropped","renderCropBox","container","cropper","containerData","offsetWidth","offsetHeight","imageData","rotated","abs","canvasWidth","canvasHeight","canvasData","limited","limitCanvas","oldLeft","oldTop","initialCanvasData","sizeLimited","positionLimited","cropBoxData","_getAdjustedSizes","newCanvasLeft","newCanvasTop","minLeft","minTop","maxLeft","maxTop","changed","transformed","_getRotatedSizes","_ref5","degree","arc","sinArc","sin","cosArc","cos","newWidth","newHeight","getRotatedSizes","renderImage","limitCropBox","output","initialCropBoxData","maxCropBoxWidth","maxCropBoxHeight","face","cropBox","disabled","initPreview","crossOrigin","crossOriginUrl","alt","viewBox","viewBoxImage","previews","ownerDocument","querySelectorAll","el","img","html","cssText","resetPreview","removeAttribute","removeData","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","ratio","getElementsByTagName","events","bind","onCropStart","cropStart","onWheel","wheel","passive","capture","onDblclick","dblclick","onCropMove","cropMove","onCropEnd","cropEnd","onResize","resize","unbind","handlers","ratioX","ratioY","getCanvasData","getCropBoxData","setCanvasData","setCropBoxData","setDragMode","dragBox","contains","_this","delta","preventDefault","wheeling","setTimeout","deltaY","wheelDelta","buttons","button","pointerType","ctrlKey","action","pointers","changedTouches","touch","identifier","pointerId","originalEvent","cropping","change","right","bottom","renderable","shiftKey","pointer","range","x","y","check","side","move","pointers2","maxRatio","pointer2","x1","y1","x2","y2","z1","sqrt","getMaxZoomRatio","p","reset","initialImageData","clear","hasSameSize","isImg","replaced","uncreate","load","enable","disable","destroy","originalUrl","offsetX","offsetY","_this$canvasData","moveTo","_originalEvent","zoomTo","pivot","oldRatio","count","_ref3","getPointersCenter","rotateTo","_scaleX","_scaleY","rounded","getContainerData","getImageData","sized","widthChanged","heightChanged","getCroppedCanvas","HTMLCanvasElement","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","sourceWidth","sourceHeight","srcX","srcY","setAspectRatio","mode","croppable","AnotherCropper","Cropper","tagName","Error","reloading","sizing","init","staticProps","protoProps","toDataURL","base64","binary","uint8","ArrayBuffer","read","atob","Uint8Array","charCodeAt","clone","xhr","XMLHttpRequest","onabort","onerror","ontimeout","onprogress","getResponseHeader","abort","response","onloadend","open","responseType","withCredentials","send","mimeType","chunks","subarray","btoa","arrayBufferToDataURL","_parseOrientation","parseOrientation","stop","parentNode","insertBefore","nextSibling","_this2","isIOSWebKit","navigator","userAgent","build","sizingImage","body","removeChild","template","getElementsByClassName","unbuild","factory","dijkstra","single_source_shortest_paths","graph","s","d","predecessors","costs","closest","u","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","empty","pop","cost","msg","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","opts","T","t","queue","sorter","default_sorter","a","b","item","sort","shift","input","result","size","point","second","buffer","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderFunc","text","cb","argsNum","isLastArgCb","Promise","resolve","reject","create","e","renderToDataURL","_","then","getSymbolSize","getRowColCoords","version","posCount","intervals","ceil","positions","getPositions","coords","pos","posLength","j","Mode","ALPHA_NUM_CHARS","AlphanumericData","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","put","BitBuffer","bufIndex","num","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","col","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","EXP_TABLE","LOG_TABLE","log","exp","mul","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","getMaskAt","maskPattern","parseInt","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","VersionCheck","Regex","NUMERIC","id","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","substr","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","generateECPolynomial","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","bits","createSymbol","segments","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","r","createCodewords","createData","moduleCount","modules","c","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","remainder","buff","kanji","byte","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","exec","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","s1","s2","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","array","reduce","acc","seg","segs","buildNodes","table","prevNodeIds","nodeGroup","currentNodeIds","node","lastCount","prevNodeId","buildGraph","path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","f","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","getCanvasElement","getOptions","getImageWidth","ctx","createImageData","qrToImageData","clearRect","clearCanvas","putImageData","rendererOpts","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","svgTag","hex2rgba","hexCode","hexValue","g","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/5948.2b7b4e97487f2539eb44.js b/priv/static/static/js/5948.2b7b4e97487f2539eb44.js
new file mode 100644
index 000000000..31ffe6980
--- /dev/null
+++ b/priv/static/static/js/5948.2b7b4e97487f2539eb44.js
@@ -0,0 +1,2 @@
+(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[5948],{25771:(e,t,r)=>{"use strict";r.d(t,{M:()=>i,i:()=>a});var n=r(57458),o=r.n(n),i=function(e){var t=e.filename,r=void 0===t?"data":t,n=e.getExportedObject;return{exportData:function(){var e=o().encode(JSON.stringify(n(),null,2)),t=document.createElement("a");t.setAttribute("download","".concat(r,".json")),t.setAttribute("href","data:application/json;base64,"+window.btoa(e)),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}}},a=function(e){var t=e.onImport,r=e.onImportFailure,n=e.validator,o=void 0===n?function(){return!0}:n;return{importData:function(){var e=document.createElement("input");e.setAttribute("type","file"),e.setAttribute("accept",".json"),e.addEventListener("change",(function(e){if(e.target.files[0]){var n=new FileReader;n.onload=function(e){var n=e.target;try{var i=JSON.parse(n.result),a=o(i);!0===a?t(i):r({validationResult:a})}catch(e){r({error:e})}},n.readAsText(e.target.files[0])}})),document.body.appendChild(e),e.click(),document.body.removeChild(e)}}}},57458:(e,t)=>{!function(e){var t,r,n,o=String.fromCharCode;function i(e){for(var t,r,n=[],o=0,i=e.length;o<i;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<i?56320==(64512&(r=e.charCodeAt(o++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),o--):n.push(t);return n}function a(e){if(e>=55296&&e<=57343)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function s(e,t){return o(e>>t&63|128)}function c(e){if(0==(4294967168&e))return o(e);var t="";return 0==(4294965248&e)?t=o(e>>6&31|192):0==(4294901760&e)?(a(e),t=o(e>>12&15|224),t+=s(e,6)):0==(4292870144&e)&&(t=o(e>>18&7|240),t+=s(e,12),t+=s(e,6)),t+o(63&e|128)}function l(){if(n>=r)throw Error("Invalid byte index");var e=255&t[n];if(n++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function u(){var e,o;if(n>r)throw Error("Invalid byte index");if(n==r)return!1;if(e=255&t[n],n++,0==(128&e))return e;if(192==(224&e)){if((o=(31&e)<<6|l())>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&e)){if((o=(15&e)<<12|l()<<6|l())>=2048)return a(o),o;throw Error("Invalid continuation byte")}if(240==(248&e)&&(o=(7&e)<<18|l()<<12|l()<<6|l())>=65536&&o<=1114111)return o;throw Error("Invalid UTF-8 detected")}e.version="3.0.0",e.encode=function(e){for(var t=i(e),r=t.length,n=-1,o="";++n<r;)o+=c(t[n]);return o},e.decode=function(e){t=i(e),r=t.length,n=0;for(var a,s=[];!1!==(a=u());)s.push(a);return function(e){for(var t,r=e.length,n=-1,i="";++n<r;)(t=e[n])>65535&&(i+=o((t-=65536)>>>10&1023|55296),t=56320|1023&t),i+=o(t);return i}(s)}}(t)},75948:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>L});var n=r(66252),o=r(3577),i=r(49963),a={class:"settings-modal-panel panel"},s={class:"panel-heading"},c={class:"title"},l=["title"],u=["title"],d={class:"panel-body"},p={class:"panel-footer settings-footer"},f=["title"],m={class:"dropdown-menu"},g=["onClick"],v=["onClick"],h=["onClick"],b=(0,n._)("span",{id:"unscrolled-content",class:"extra-content"},null,-1),_=r(4942),w=r(29439),y=r(50361),k=r.n(y),O=r(48328),x=r(29187),j={class:"async-component-error"};const C={emits:["resetAsyncComponent"],methods:{retry:function(){this.$emit("resetAsyncComponent")}}};var S=r(83744);const $=(0,S.Z)(C,[["render",function(e,t,r,i,a,s){return(0,n.wg)(),(0,n.iD)("div",j,[(0,n._)("div",null,[(0,n._)("h4",null,(0,o.zw)(e.$t("general.generic_error")),1),(0,n._)("p",null,(0,o.zw)(e.$t("general.error_retry")),1),(0,n._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return s.retry&&s.retry.apply(s,arguments)})},(0,o.zw)(e.$t("general.retry")),1)])])}]]);var M=r(2262);function E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var P=r(91447),I=r(90350),A=r(9382),D=r(25771),z=r(84131),N=r(5737);function W(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function T(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?W(Object(r),!0).forEach((function(t){(0,_.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):W(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}A.vI.add(z.NBC,N.IQi,z.Y9i,z.kwI,z.ptq);const Z={data:function(){var e=this;return{dataImporter:(0,D.i)({validator:this.importValidator,onImport:this.onImport,onImportFailure:this.onImportFailure}),dataThemeExporter:(0,D.M)({filename:"pleromafe_settings.full",getExportedObject:function(){return e.generateExport(!0)}}),dataExporter:(0,D.M)({filename:"pleromafe_settings",getExportedObject:function(){return e.generateExport()}})}},components:{Modal:O.Z,Popover:P.default,Checkbox:I.Z,SettingsModalContent:(F=function(){return Promise.all([r.e(48),r.e(9114)]).then(r.bind(r,9114))},U={loadingComponent:x.Z,errorComponent:$,delay:0},K=function(){return function(){return(0,n.RC)(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?E(Object(r),!0).forEach((function(t){(0,_.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({loader:F},U))}},R=(0,M.Um)({c:K()}),{render:function(){return(0,n.h)(R.c(),{onResetAsyncComponent:function(){R.c=K()}})}})},methods:{closeModal:function(){this.$store.dispatch("closeSettingsModal")},peekModal:function(){this.$store.dispatch("togglePeekSettingsModal")},importValidator:function(e){if(!Array.isArray(e._pleroma_settings_version))return{messageKey:"settings.file_import_export.invalid_file"};var t=(0,w.Z)(e._pleroma_settings_version,2),r=t[0],n=t[1];return r>1?{messageKey:"settings.file_export_import.errors.file_too_new",messageArgs:{fileMajor:r,feMajor:1}}:r<1?{messageKey:"settings.file_export_import.errors.file_too_old",messageArgs:{fileMajor:r,feMajor:1}}:(n>0&&this.$store.dispatch("pushGlobalNotice",{level:"warning",messageKey:"settings.file_export_import.errors.file_slightly_new"}),!0)},onImportFailure:function(e){e.error?this.$store.dispatch("pushGlobalNotice",{messageKey:"settings.invalid_settings_imported",level:"error"}):this.$store.dispatch("pushGlobalNotice",T(T({},e.validationResult),{},{level:"error"}))},onImport:function(e){e&&this.$store.dispatch("loadSettings",e)},restore:function(){this.dataImporter.importData()},backup:function(){this.dataExporter.exportData()},backupWithTheme:function(){this.dataThemeExporter.exportData()},generateExport:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.$store.state.config,r=t;if(!e){var n=new Set(["customTheme","customThemeSource","colors"]);r=Object.fromEntries(Object.entries(r).filter((function(e){var t=(0,w.Z)(e,1)[0];return!n.has(t)})))}var o=k()(r);return o._pleroma_settings_version=[1,0],o}},computed:{currentSaveStateNotice:function(){return this.$store.state.interface.settings.currentSaveStateNotice},modalActivated:function(){return"hidden"!==this.$store.state.interface.settingsModalState},modalOpenedOnce:function(){return this.$store.state.interface.settingsModalLoaded},modalPeeked:function(){return"minimized"===this.$store.state.interface.settingsModalState},expertLevel:{get:function(){return this.$store.state.config.expertLevel>0},set:function(e){console.log(e),this.$store.dispatch("setOption",{name:"expertLevel",value:e?1:0})}}}},L=(0,S.Z)(Z,[["render",function(e,t,r,_,w,y){var k=(0,n.up)("FAIcon"),O=(0,n.up)("SettingsModalContent"),x=(0,n.up)("Popover"),j=(0,n.up)("Checkbox"),C=(0,n.up)("Modal");return(0,n.wg)(),(0,n.j4)(C,{"is-open":e.modalActivated,class:(0,o.C_)(["settings-modal",{peek:e.modalPeeked}]),"no-background":e.modalPeeked},{default:(0,n.w5)((function(){return[(0,n._)("div",a,[(0,n._)("div",s,[(0,n._)("span",c,(0,o.zw)(e.$t("settings.settings")),1),(0,n.Wm)(i.uT,{name:"fade"},{default:(0,n.w5)((function(){return[e.currentSaveStateNotice?((0,n.wg)(),(0,n.iD)("div",{key:0,class:(0,o.C_)(["alert",{transparent:!e.currentSaveStateNotice.error,error:e.currentSaveStateNotice.error}]),onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["prevent"]))},(0,o.zw)(e.currentSaveStateNotice.error?e.$t("settings.saving_err"):e.$t("settings.saving_ok")),3)):(0,n.kq)("",!0)]})),_:1}),(0,n._)("button",{class:"btn button-default",title:e.$t("general.peek"),onClick:t[1]||(t[1]=function(){return e.peekModal&&e.peekModal.apply(e,arguments)})},[(0,n.Wm)(k,{icon:["far","window-minimize"],"fixed-width":""})],8,l),(0,n._)("button",{class:"btn button-default",title:e.$t("general.close"),onClick:t[2]||(t[2]=function(){return e.closeModal&&e.closeModal.apply(e,arguments)})},[(0,n.Wm)(k,{icon:"times","fixed-width":""})],8,u)]),(0,n._)("div",d,[e.modalOpenedOnce?((0,n.wg)(),(0,n.j4)(O,{key:0})):(0,n.kq)("",!0)]),(0,n._)("div",p,[(0,n.Wm)(x,{class:"export",trigger:"click",placement:"top",offset:{y:5,x:5},"bound-to":{x:"container"},"remove-padding":""},{trigger:(0,n.w5)((function(){return[(0,n._)("button",{class:"btn button-default",title:e.$t("general.close")},[(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.backup_restore")),1),(0,n.Uk)(" "+(0,o.zw)(" ")+" "),(0,n.Wm)(k,{icon:"chevron-down"})],8,f)]})),content:(0,n.w5)((function(r){var a=r.close;return[(0,n._)("div",m,[(0,n._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[3]||(t[3]=(0,i.iM)((function(){return e.backup&&e.backup.apply(e,arguments)}),["prevent"])),a]},[(0,n.Wm)(k,{icon:"file-download","fixed-width":""}),(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.backup_settings")),1)],8,g),(0,n._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[4]||(t[4]=(0,i.iM)((function(){return e.backupWithTheme&&e.backupWithTheme.apply(e,arguments)}),["prevent"])),a]},[(0,n.Wm)(k,{icon:"file-download","fixed-width":""}),(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.backup_settings_theme")),1)],8,v),(0,n._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[5]||(t[5]=(0,i.iM)((function(){return e.restore&&e.restore.apply(e,arguments)}),["prevent"])),a]},[(0,n.Wm)(k,{icon:"file-upload","fixed-width":""}),(0,n._)("span",null,(0,o.zw)(e.$t("settings.file_export_import.restore_settings")),1)],8,h)])]})),_:1}),(0,n.Wm)(j,{"model-value":!!e.expertLevel,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.expertLevel=Number(t)})},{default:(0,n.w5)((function(){return[(0,n.Uk)((0,o.zw)(e.$t("settings.expert_mode")),1)]})),_:1},8,["model-value"]),b])])]})),_:1},8,["is-open","class","no-background"])}]]);var F,U,K,R}}]);
+//# sourceMappingURL=5948.2b7b4e97487f2539eb44.js.map \ No newline at end of file
diff --git a/priv/static/static/js/1325.d1e5fcff4166acac7f06.js.map b/priv/static/static/js/5948.2b7b4e97487f2539eb44.js.map
index 45c7ed869..cb7a42ed4 100644
--- a/priv/static/static/js/1325.d1e5fcff4166acac7f06.js.map
+++ b/priv/static/static/js/5948.2b7b4e97487f2539eb44.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/1325.d1e5fcff4166acac7f06.js","mappings":"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","sources":["webpack://pleroma_fe/./src/services/export_import/export_import.js","webpack://pleroma_fe/./node_modules/utf8/utf8.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue?c151","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.js","webpack://pleroma_fe/./src/services/resettable_async_component.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue?2a2f"],"sourcesContent":["import utf8 from 'utf8'\n\nexport const newExporter = ({\n filename = 'data',\n getExportedObject\n}) => ({\n exportData () {\n const stringified = utf8.encode(JSON.stringify(getExportedObject(), null, 2)) // Pretty-print and indent with 2 spaces\n\n // Create an invisible link with a data url and simulate a click\n const e = document.createElement('a')\n e.setAttribute('download', `${filename}.json`)\n e.setAttribute('href', 'data:application/json;base64,' + window.btoa(stringified))\n e.style.display = 'none'\n\n document.body.appendChild(e)\n e.click()\n document.body.removeChild(e)\n }\n})\n\nexport const newImporter = ({\n onImport,\n onImportFailure,\n validator = () => true\n}) => ({\n importData () {\n const filePicker = document.createElement('input')\n filePicker.setAttribute('type', 'file')\n filePicker.setAttribute('accept', '.json')\n\n filePicker.addEventListener('change', event => {\n if (event.target.files[0]) {\n // eslint-disable-next-line no-undef\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n try {\n const parsed = JSON.parse(target.result)\n const validationResult = validator(parsed)\n if (validationResult === true) {\n onImport(parsed)\n } else {\n onImportFailure({ validationResult })\n }\n } catch (error) {\n onImportFailure({ error })\n }\n }\n reader.readAsText(event.target.files[0])\n }\n })\n\n document.body.appendChild(filePicker)\n filePicker.click()\n document.body.removeChild(filePicker)\n }\n})\n","/*! https://mths.be/utf8js v3.0.0 by @mathias */\n;(function(root) {\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\troot.version = '3.0.0';\n\troot.encode = utf8encode;\n\troot.decode = utf8decode;\n\n}(typeof exports === 'undefined' ? this.utf8 = {} : exports));\n","<template>\n <Modal\n :is-open=\"modalActivated\"\n class=\"settings-modal\"\n :class=\"{ peek: modalPeeked }\"\n :no-background=\"modalPeeked\"\n >\n <div class=\"settings-modal-panel panel\">\n <div class=\"panel-heading\">\n <span class=\"title\">\n {{ $t('settings.settings') }}\n </span>\n <transition name=\"fade\">\n <div\n v-if=\"currentSaveStateNotice\"\n class=\"alert\"\n :class=\"{ transparent: !currentSaveStateNotice.error, error: currentSaveStateNotice.error}\"\n @click.prevent\n >\n {{ currentSaveStateNotice.error ? $t('settings.saving_err') : $t('settings.saving_ok') }}\n </div>\n </transition>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.peek')\"\n @click=\"peekModal\"\n >\n <FAIcon\n :icon=\"['far', 'window-minimize']\"\n fixed-width\n />\n </button>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n @click=\"closeModal\"\n >\n <FAIcon\n icon=\"times\"\n fixed-width\n />\n </button>\n </div>\n <div class=\"panel-body\">\n <SettingsModalContent v-if=\"modalOpenedOnce\" />\n </div>\n <div class=\"panel-footer settings-footer\">\n <Popover\n class=\"export\"\n trigger=\"click\"\n placement=\"top\"\n :offset=\"{ y: 5, x: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #trigger>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n >\n <span>{{ $t(\"settings.file_export_import.backup_restore\") }}</span>\n {{ ' ' }}\n <FAIcon\n icon=\"chevron-down\"\n />\n </button>\n </template>\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backup\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backupWithTheme\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings_theme\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"restore\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-upload\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.restore_settings\") }}</span>\n </button>\n </div>\n </template>\n </Popover>\n\n <Checkbox\n :model-value=\"!!expertLevel\"\n @update:modelValue=\"expertLevel = Number($event)\"\n >\n {{ $t(\"settings.expert_mode\") }}\n </Checkbox>\n <span\n id=\"unscrolled-content\"\n class=\"extra-content\"\n />\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./settings_modal.js\"></script>\n\n<style src=\"./settings_modal.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"async-component-error\">\n <div>\n <h4>\n {{ $t('general.generic_error') }}\n </h4>\n <p>\n {{ $t('general.error_retry') }}\n </p>\n <button\n class=\"btn button-default\"\n @click=\"retry\"\n >\n {{ $t('general.retry') }}\n </button>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['resetAsyncComponent'],\n methods: {\n retry () {\n this.$emit('resetAsyncComponent')\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n .btn {\n margin: .5em;\n padding: .5em 2em;\n }\n}\n</style>\n","import { render } from \"./async_component_error.vue?vue&type=template&id=26dcc164\"\nimport script from \"./async_component_error.vue?vue&type=script&lang=js\"\nexport * from \"./async_component_error.vue?vue&type=script&lang=js\"\n\nimport \"./async_component_error.vue?vue&type=style&index=0&id=26dcc164&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Modal from 'src/components/modal/modal.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport AsyncComponentError from 'src/components/async_component_error/async_component_error.vue'\nimport getResettableAsyncComponent from 'src/services/resettable_async_component.js'\nimport Popover from '../popover/popover.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { cloneDeep } from 'lodash'\nimport {\n newImporter,\n newExporter\n} from 'src/services/export_import/export_import.js'\nimport {\n faTimes,\n faFileUpload,\n faFileDownload,\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faWindowMinimize\n} from '@fortawesome/free-regular-svg-icons'\n\nconst PLEROMAFE_SETTINGS_MAJOR_VERSION = 1\nconst PLEROMAFE_SETTINGS_MINOR_VERSION = 0\n\nlibrary.add(\n faTimes,\n faWindowMinimize,\n faFileUpload,\n faFileDownload,\n faChevronDown\n)\n\nconst SettingsModal = {\n data () {\n return {\n dataImporter: newImporter({\n validator: this.importValidator,\n onImport: this.onImport,\n onImportFailure: this.onImportFailure\n }),\n dataThemeExporter: newExporter({\n filename: 'pleromafe_settings.full',\n getExportedObject: () => this.generateExport(true)\n }),\n dataExporter: newExporter({\n filename: 'pleromafe_settings',\n getExportedObject: () => this.generateExport()\n })\n }\n },\n components: {\n Modal,\n Popover,\n Checkbox,\n SettingsModalContent: getResettableAsyncComponent(\n () => import('./settings_modal_content.vue'),\n {\n loadingComponent: PanelLoading,\n errorComponent: AsyncComponentError,\n delay: 0\n }\n )\n },\n methods: {\n closeModal () {\n this.$store.dispatch('closeSettingsModal')\n },\n peekModal () {\n this.$store.dispatch('togglePeekSettingsModal')\n },\n importValidator (data) {\n if (!Array.isArray(data._pleroma_settings_version)) {\n return {\n messageKey: 'settings.file_import_export.invalid_file'\n }\n }\n\n const [major, minor] = data._pleroma_settings_version\n\n if (major > PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_new',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (major < PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_old',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (minor > PLEROMAFE_SETTINGS_MINOR_VERSION) {\n this.$store.dispatch('pushGlobalNotice', {\n level: 'warning',\n messageKey: 'settings.file_export_import.errors.file_slightly_new'\n })\n }\n\n return true\n },\n onImportFailure (result) {\n if (result.error) {\n this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' })\n } else {\n this.$store.dispatch('pushGlobalNotice', { ...result.validationResult, level: 'error' })\n }\n },\n onImport (data) {\n if (data) { this.$store.dispatch('loadSettings', data) }\n },\n restore () {\n this.dataImporter.importData()\n },\n backup () {\n this.dataExporter.exportData()\n },\n backupWithTheme () {\n this.dataThemeExporter.exportData()\n },\n generateExport (theme = false) {\n const { config } = this.$store.state\n let sample = config\n if (!theme) {\n const ignoreList = new Set([\n 'customTheme',\n 'customThemeSource',\n 'colors'\n ])\n sample = Object.fromEntries(\n Object\n .entries(sample)\n .filter(([key]) => !ignoreList.has(key))\n )\n }\n const clone = cloneDeep(sample)\n clone._pleroma_settings_version = [\n PLEROMAFE_SETTINGS_MAJOR_VERSION,\n PLEROMAFE_SETTINGS_MINOR_VERSION\n ]\n return clone\n }\n },\n computed: {\n currentSaveStateNotice () {\n return this.$store.state.interface.settings.currentSaveStateNotice\n },\n modalActivated () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n modalOpenedOnce () {\n return this.$store.state.interface.settingsModalLoaded\n },\n modalPeeked () {\n return this.$store.state.interface.settingsModalState === 'minimized'\n },\n expertLevel: {\n get () {\n return this.$store.state.config.expertLevel > 0\n },\n set (value) {\n console.log(value)\n this.$store.dispatch('setOption', { name: 'expertLevel', value: value ? 1 : 0 })\n }\n }\n }\n}\n\nexport default SettingsModal\n","import { defineAsyncComponent, shallowReactive, h } from 'vue'\n\n/* By default async components don't have any way to recover, if component is\n * failed, it is failed forever. This helper tries to remedy that by recreating\n * async component when retry is requested (by user). You need to emit the\n * `resetAsyncComponent` event from child to reset the component. Generally,\n * this should be done from error component but could be done from loading or\n * actual target component itself if needs to be.\n */\nfunction getResettableAsyncComponent (asyncComponent, options) {\n const asyncComponentFactory = () => () => defineAsyncComponent({\n loader: asyncComponent,\n ...options\n })\n\n const observe = shallowReactive({ c: asyncComponentFactory() })\n\n return {\n render () {\n // emit event resetAsyncComponent to reloading\n return h(observe.c(), {\n onResetAsyncComponent () {\n observe.c = asyncComponentFactory()\n }\n })\n }\n }\n}\n\nexport default getResettableAsyncComponent\n","import { render } from \"./settings_modal.vue?vue&type=template&id=068fd1f8\"\nimport script from \"./settings_modal.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["newExporter","filename","getExportedObject","exportData","stringified","utf8","JSON","stringify","e","document","createElement","setAttribute","window","btoa","style","display","body","appendChild","click","removeChild","newImporter","onImport","onImportFailure","validator","importData","filePicker","addEventListener","event","target","files","reader","FileReader","onload","parsed","parse","result","validationResult","error","readAsText","root","byteArray","byteCount","byteIndex","stringFromCharCode","String","fromCharCode","ucs2decode","string","value","extra","output","counter","length","charCodeAt","push","checkScalarValue","codePoint","Error","toString","toUpperCase","createByte","shift","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","encode","codePoints","index","byteString","decode","tmp","array","ucs2encode","exports","class","_createElementVNode","id","emits","methods","retry","this","$emit","_createElementBlock","_hoisted_1","_ctx","onClick","$options","library","faTimes","faWindowMinimize","faFileUpload","faFileDownload","faChevronDown","data","dataImporter","importValidator","dataThemeExporter","generateExport","dataExporter","components","Modal","Popover","Checkbox","SettingsModalContent","asyncComponent","options","loadingComponent","PanelLoading","errorComponent","AsyncComponentError","delay","asyncComponentFactory","defineAsyncComponent","loader","observe","shallowReactive","c","render","h","onResetAsyncComponent","closeModal","$store","dispatch","peekModal","Array","isArray","_pleroma_settings_version","messageKey","major","minor","messageArgs","fileMajor","feMajor","level","restore","backup","backupWithTheme","theme","config","state","sample","ignoreList","Set","Object","fromEntries","entries","filter","key","has","clone","computed","currentSaveStateNotice","settings","modalActivated","settingsModalState","modalOpenedOnce","settingsModalLoaded","modalPeeked","expertLevel","get","set","console","log","name","_createBlock","_component_Modal","_normalizeClass","peek","_hoisted_2","_hoisted_3","_createVNode","_Transition","transparent","title","_component_FAIcon","icon","_hoisted_6","_component_SettingsModalContent","_hoisted_7","_component_Popover","trigger","placement","offset","y","x","content","close","_hoisted_9","_component_Checkbox","Number","$event","_hoisted_13"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"static/js/5948.2b7b4e97487f2539eb44.js","mappings":"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","sources":["webpack://pleroma_fe/./src/services/export_import/export_import.js","webpack://pleroma_fe/./node_modules/utf8/utf8.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue?c151","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.js","webpack://pleroma_fe/./src/services/resettable_async_component.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue?2a2f"],"sourcesContent":["import utf8 from 'utf8'\n\nexport const newExporter = ({\n filename = 'data',\n getExportedObject\n}) => ({\n exportData () {\n const stringified = utf8.encode(JSON.stringify(getExportedObject(), null, 2)) // Pretty-print and indent with 2 spaces\n\n // Create an invisible link with a data url and simulate a click\n const e = document.createElement('a')\n e.setAttribute('download', `${filename}.json`)\n e.setAttribute('href', 'data:application/json;base64,' + window.btoa(stringified))\n e.style.display = 'none'\n\n document.body.appendChild(e)\n e.click()\n document.body.removeChild(e)\n }\n})\n\nexport const newImporter = ({\n onImport,\n onImportFailure,\n validator = () => true\n}) => ({\n importData () {\n const filePicker = document.createElement('input')\n filePicker.setAttribute('type', 'file')\n filePicker.setAttribute('accept', '.json')\n\n filePicker.addEventListener('change', event => {\n if (event.target.files[0]) {\n // eslint-disable-next-line no-undef\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n try {\n const parsed = JSON.parse(target.result)\n const validationResult = validator(parsed)\n if (validationResult === true) {\n onImport(parsed)\n } else {\n onImportFailure({ validationResult })\n }\n } catch (error) {\n onImportFailure({ error })\n }\n }\n reader.readAsText(event.target.files[0])\n }\n })\n\n document.body.appendChild(filePicker)\n filePicker.click()\n document.body.removeChild(filePicker)\n }\n})\n","/*! https://mths.be/utf8js v3.0.0 by @mathias */\n;(function(root) {\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\troot.version = '3.0.0';\n\troot.encode = utf8encode;\n\troot.decode = utf8decode;\n\n}(typeof exports === 'undefined' ? this.utf8 = {} : exports));\n","<template>\n <Modal\n :is-open=\"modalActivated\"\n class=\"settings-modal\"\n :class=\"{ peek: modalPeeked }\"\n :no-background=\"modalPeeked\"\n >\n <div class=\"settings-modal-panel panel\">\n <div class=\"panel-heading\">\n <span class=\"title\">\n {{ $t('settings.settings') }}\n </span>\n <transition name=\"fade\">\n <div\n v-if=\"currentSaveStateNotice\"\n class=\"alert\"\n :class=\"{ transparent: !currentSaveStateNotice.error, error: currentSaveStateNotice.error}\"\n @click.prevent\n >\n {{ currentSaveStateNotice.error ? $t('settings.saving_err') : $t('settings.saving_ok') }}\n </div>\n </transition>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.peek')\"\n @click=\"peekModal\"\n >\n <FAIcon\n :icon=\"['far', 'window-minimize']\"\n fixed-width\n />\n </button>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n @click=\"closeModal\"\n >\n <FAIcon\n icon=\"times\"\n fixed-width\n />\n </button>\n </div>\n <div class=\"panel-body\">\n <SettingsModalContent v-if=\"modalOpenedOnce\" />\n </div>\n <div class=\"panel-footer settings-footer\">\n <Popover\n class=\"export\"\n trigger=\"click\"\n placement=\"top\"\n :offset=\"{ y: 5, x: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #trigger>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n >\n <span>{{ $t(\"settings.file_export_import.backup_restore\") }}</span>\n {{ ' ' }}\n <FAIcon\n icon=\"chevron-down\"\n />\n </button>\n </template>\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backup\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backupWithTheme\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings_theme\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"restore\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-upload\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.restore_settings\") }}</span>\n </button>\n </div>\n </template>\n </Popover>\n\n <Checkbox\n :model-value=\"!!expertLevel\"\n @update:modelValue=\"expertLevel = Number($event)\"\n >\n {{ $t(\"settings.expert_mode\") }}\n </Checkbox>\n <span\n id=\"unscrolled-content\"\n class=\"extra-content\"\n />\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./settings_modal.js\"></script>\n\n<style src=\"./settings_modal.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"async-component-error\">\n <div>\n <h4>\n {{ $t('general.generic_error') }}\n </h4>\n <p>\n {{ $t('general.error_retry') }}\n </p>\n <button\n class=\"btn button-default\"\n @click=\"retry\"\n >\n {{ $t('general.retry') }}\n </button>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['resetAsyncComponent'],\n methods: {\n retry () {\n this.$emit('resetAsyncComponent')\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n\n .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n }\n}\n</style>\n","import { render } from \"./async_component_error.vue?vue&type=template&id=0e326028\"\nimport script from \"./async_component_error.vue?vue&type=script&lang=js\"\nexport * from \"./async_component_error.vue?vue&type=script&lang=js\"\n\nimport \"./async_component_error.vue?vue&type=style&index=0&id=0e326028&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Modal from 'src/components/modal/modal.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport AsyncComponentError from 'src/components/async_component_error/async_component_error.vue'\nimport getResettableAsyncComponent from 'src/services/resettable_async_component.js'\nimport Popover from '../popover/popover.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { cloneDeep } from 'lodash'\nimport {\n newImporter,\n newExporter\n} from 'src/services/export_import/export_import.js'\nimport {\n faTimes,\n faFileUpload,\n faFileDownload,\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faWindowMinimize\n} from '@fortawesome/free-regular-svg-icons'\n\nconst PLEROMAFE_SETTINGS_MAJOR_VERSION = 1\nconst PLEROMAFE_SETTINGS_MINOR_VERSION = 0\n\nlibrary.add(\n faTimes,\n faWindowMinimize,\n faFileUpload,\n faFileDownload,\n faChevronDown\n)\n\nconst SettingsModal = {\n data () {\n return {\n dataImporter: newImporter({\n validator: this.importValidator,\n onImport: this.onImport,\n onImportFailure: this.onImportFailure\n }),\n dataThemeExporter: newExporter({\n filename: 'pleromafe_settings.full',\n getExportedObject: () => this.generateExport(true)\n }),\n dataExporter: newExporter({\n filename: 'pleromafe_settings',\n getExportedObject: () => this.generateExport()\n })\n }\n },\n components: {\n Modal,\n Popover,\n Checkbox,\n SettingsModalContent: getResettableAsyncComponent(\n () => import('./settings_modal_content.vue'),\n {\n loadingComponent: PanelLoading,\n errorComponent: AsyncComponentError,\n delay: 0\n }\n )\n },\n methods: {\n closeModal () {\n this.$store.dispatch('closeSettingsModal')\n },\n peekModal () {\n this.$store.dispatch('togglePeekSettingsModal')\n },\n importValidator (data) {\n if (!Array.isArray(data._pleroma_settings_version)) {\n return {\n messageKey: 'settings.file_import_export.invalid_file'\n }\n }\n\n const [major, minor] = data._pleroma_settings_version\n\n if (major > PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_new',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (major < PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_old',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (minor > PLEROMAFE_SETTINGS_MINOR_VERSION) {\n this.$store.dispatch('pushGlobalNotice', {\n level: 'warning',\n messageKey: 'settings.file_export_import.errors.file_slightly_new'\n })\n }\n\n return true\n },\n onImportFailure (result) {\n if (result.error) {\n this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' })\n } else {\n this.$store.dispatch('pushGlobalNotice', { ...result.validationResult, level: 'error' })\n }\n },\n onImport (data) {\n if (data) { this.$store.dispatch('loadSettings', data) }\n },\n restore () {\n this.dataImporter.importData()\n },\n backup () {\n this.dataExporter.exportData()\n },\n backupWithTheme () {\n this.dataThemeExporter.exportData()\n },\n generateExport (theme = false) {\n const { config } = this.$store.state\n let sample = config\n if (!theme) {\n const ignoreList = new Set([\n 'customTheme',\n 'customThemeSource',\n 'colors'\n ])\n sample = Object.fromEntries(\n Object\n .entries(sample)\n .filter(([key]) => !ignoreList.has(key))\n )\n }\n const clone = cloneDeep(sample)\n clone._pleroma_settings_version = [\n PLEROMAFE_SETTINGS_MAJOR_VERSION,\n PLEROMAFE_SETTINGS_MINOR_VERSION\n ]\n return clone\n }\n },\n computed: {\n currentSaveStateNotice () {\n return this.$store.state.interface.settings.currentSaveStateNotice\n },\n modalActivated () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n modalOpenedOnce () {\n return this.$store.state.interface.settingsModalLoaded\n },\n modalPeeked () {\n return this.$store.state.interface.settingsModalState === 'minimized'\n },\n expertLevel: {\n get () {\n return this.$store.state.config.expertLevel > 0\n },\n set (value) {\n console.log(value)\n this.$store.dispatch('setOption', { name: 'expertLevel', value: value ? 1 : 0 })\n }\n }\n }\n}\n\nexport default SettingsModal\n","import { defineAsyncComponent, shallowReactive, h } from 'vue'\n\n/* By default async components don't have any way to recover, if component is\n * failed, it is failed forever. This helper tries to remedy that by recreating\n * async component when retry is requested (by user). You need to emit the\n * `resetAsyncComponent` event from child to reset the component. Generally,\n * this should be done from error component but could be done from loading or\n * actual target component itself if needs to be.\n */\nfunction getResettableAsyncComponent (asyncComponent, options) {\n const asyncComponentFactory = () => () => defineAsyncComponent({\n loader: asyncComponent,\n ...options\n })\n\n const observe = shallowReactive({ c: asyncComponentFactory() })\n\n return {\n render () {\n // emit event resetAsyncComponent to reloading\n return h(observe.c(), {\n onResetAsyncComponent () {\n observe.c = asyncComponentFactory()\n }\n })\n }\n }\n}\n\nexport default getResettableAsyncComponent\n","import { render } from \"./settings_modal.vue?vue&type=template&id=068fd1f8\"\nimport script from \"./settings_modal.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["newExporter","filename","getExportedObject","exportData","stringified","utf8","JSON","stringify","e","document","createElement","setAttribute","window","btoa","style","display","body","appendChild","click","removeChild","newImporter","onImport","onImportFailure","validator","importData","filePicker","addEventListener","event","target","files","reader","FileReader","onload","parsed","parse","result","validationResult","error","readAsText","root","byteArray","byteCount","byteIndex","stringFromCharCode","String","fromCharCode","ucs2decode","string","value","extra","output","counter","length","charCodeAt","push","checkScalarValue","codePoint","Error","toString","toUpperCase","createByte","shift","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","encode","codePoints","index","byteString","decode","tmp","array","ucs2encode","exports","class","_createElementVNode","id","emits","methods","retry","this","$emit","_createElementBlock","_hoisted_1","_ctx","onClick","$options","library","faTimes","faWindowMinimize","faFileUpload","faFileDownload","faChevronDown","data","dataImporter","importValidator","dataThemeExporter","generateExport","dataExporter","components","Modal","Popover","Checkbox","SettingsModalContent","asyncComponent","options","loadingComponent","PanelLoading","errorComponent","AsyncComponentError","delay","asyncComponentFactory","defineAsyncComponent","loader","observe","shallowReactive","c","render","h","onResetAsyncComponent","closeModal","$store","dispatch","peekModal","Array","isArray","_pleroma_settings_version","messageKey","major","minor","messageArgs","fileMajor","feMajor","level","restore","backup","backupWithTheme","theme","config","state","sample","ignoreList","Set","Object","fromEntries","entries","filter","key","has","clone","computed","currentSaveStateNotice","settings","modalActivated","settingsModalState","modalOpenedOnce","settingsModalLoaded","modalPeeked","expertLevel","get","set","console","log","name","_createBlock","_component_Modal","_normalizeClass","peek","_hoisted_2","_hoisted_3","_createVNode","_Transition","transparent","title","_component_FAIcon","icon","_hoisted_6","_component_SettingsModalContent","_hoisted_7","_component_Popover","trigger","placement","offset","y","x","content","close","_hoisted_9","_component_Checkbox","Number","$event","_hoisted_13"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/6464.2ababce187697ee8b1e9.js b/priv/static/static/js/6464.fea96fa80a7373e4e5f8.js
index 122402716..eda885616 100644
--- a/priv/static/static/js/6464.2ababce187697ee8b1e9.js
+++ b/priv/static/static/js/6464.fea96fa80a7373e4e5f8.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[6464],{16464:(t,e,a)=>{a.r(e),a.d(e,{CURRENT_UPDATE_COUNTER:()=>T,default:()=>N});var n=a(66252),o=a(3577),s=a(49963),i={class:"panel-heading"},r={class:"title"},l={class:"panel-body"},u=["src"],p=(0,n._)("div",{class:"spacer-top"},null,-1),c={class:"text"},d={ref:"animatedText",class:"extra-info-group"},g={target:"_blank",href:"https://git.pleroma.social/"},h={target:"_blank",href:"https://pleroma.social/announcements/"},m={class:"art-credit"},_=(0,n._)("a",{target:"_blank",href:"https://post.ebin.club/users/pipivovott"},"pipivovott",-1),f=(0,n._)("div",{class:"spacer-bottom"},null,-1),w={class:"panel-footer"},v=a(58312),S=a(9382),b=a(31934),k=a(95326),$=a(43011),C=a(68789),y=a(84131);S.vI.add(y.NBC);var T=1;const M={data:function(){return{showingImage:!1,pleromaTanVariant:Math.random()>.5?b:k,showingMore:!1}},components:{Modal:v.Z},computed:{pleromaTanStyles:function(){return{"shape-outside":"url("+(this.pleromaTanVariant===b?$:C)+")"}},shouldShow:function(){return!this.$store.state.instance.disableUpdateNotification&&this.$store.state.users.currentUser&&this.$store.state.serverSideStorage.flagStorage.updateCounter<T&&!this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs}},methods:{toggleShow:function(){this.showingMore=!this.showingMore},neverShowAgain:function(){this.toggleShow(),this.$store.commit("setFlag",{flag:"updateCounter",value:T}),this.$store.commit("setPreference",{path:"simple.dontShowUpdateNotifs",value:!0}),this.$store.dispatch("pushServerSideStorage")},dismiss:function(){this.$store.commit("setFlag",{flag:"updateCounter",value:T}),this.$store.dispatch("pushServerSideStorage")}},mounted:function(){var t=this;this.contentHeightNoImage=this.$refs.animatedText.scrollHeight;var e=new Image;e.onload=function(){setTimeout((function(){t.showingImage=!0}),100)},e.src=this.pleromaTanVariant===b?$:C}},N=(0,a(83744).Z)(M,[["render",function(t,e,a,v,S,b){var k=(0,n.up)("i18n-t"),$=(0,n.up)("Modal");return(0,n.wg)(),(0,n.j4)($,{"is-open":!!t.shouldShow,class:"UpdateNotification","no-background":!0},{default:(0,n.w5)((function(){return[(0,n._)("div",{class:(0,o.C_)(["UpdateNotificationModal panel",{"-peek":!t.showingMore}])},[(0,n._)("div",i,[(0,n._)("span",r,(0,o.zw)(t.$t("update.big_update_title")),1)]),(0,n._)("div",l,[(0,n._)("div",{class:(0,o.C_)(["content",{"-noImage":!t.showingImage}])},[t.showingImage?((0,n.wg)(),(0,n.iD)("img",{key:0,class:"pleroma-tan",src:t.pleromaTanVariant,style:(0,o.j5)(t.pleromaTanStyles)},null,12,u)):(0,n.kq)("",!0),p,(0,n._)("div",c,[(0,n._)("p",null,(0,o.zw)(t.$t("update.big_update_content")),1),(0,n._)("div",d,[(0,n.Wm)(k,{keypath:"update.update_bugs",tag:"p"},{pleromaGitlab:(0,n.w5)((function(){return[(0,n._)("a",g,(0,o.zw)(t.$t("update.update_bugs_gitlab")),1)]})),_:1}),(0,n.Wm)(k,{keypath:"update.update_changelog",tag:"p"},{theFullChangelog:(0,n.w5)((function(){return[(0,n._)("a",h,(0,o.zw)(t.$t("update.update_changelog_here")),1)]})),_:1}),(0,n._)("p",m,[(0,n.Wm)(k,{keypath:"update.art_by",tag:"small"},{linkToArtist:(0,n.w5)((function(){return[_]})),_:1})])],512)]),f],2)]),(0,n._)("div",w,[(0,n._)("button",{class:"button-default",onClick:e[0]||(e[0]=(0,s.iM)((function(){return t.neverShowAgain&&t.neverShowAgain.apply(t,arguments)}),["prevent"]))},(0,o.zw)(t.$t("general.never_show_again")),1),t.showingMore?(0,n.kq)("",!0):((0,n.wg)(),(0,n.iD)("button",{key:0,class:"button-default",onClick:e[1]||(e[1]=(0,s.iM)((function(){return t.toggleShow&&t.toggleShow.apply(t,arguments)}),["prevent"]))},(0,o.zw)(t.$t("general.show_more")),1)),(0,n._)("button",{class:"button-default",onClick:e[2]||(e[2]=(0,s.iM)((function(){return t.dismiss&&t.dismiss.apply(t,arguments)}),["prevent"]))},(0,o.zw)(t.$t("general.dismiss")),1)])],2)]})),_:1},8,["is-open"])}]])}}]);
-//# sourceMappingURL=6464.2ababce187697ee8b1e9.js.map \ No newline at end of file
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[6464],{16464:(t,e,a)=>{a.r(e),a.d(e,{CURRENT_UPDATE_COUNTER:()=>T,default:()=>N});var n=a(66252),o=a(3577),s=a(49963),i={class:"panel-heading"},r={class:"title"},l={class:"panel-body"},u=["src"],p=(0,n._)("div",{class:"spacer-top"},null,-1),c={class:"text"},d={ref:"animatedText",class:"extra-info-group"},g={target:"_blank",href:"https://git.pleroma.social/"},h={target:"_blank",href:"https://pleroma.social/announcements/"},m={class:"art-credit"},_=(0,n._)("a",{target:"_blank",href:"https://post.ebin.club/users/pipivovott"},"pipivovott",-1),f=(0,n._)("div",{class:"spacer-bottom"},null,-1),w={class:"panel-footer"},v=a(48328),S=a(9382),b=a(31934),k=a(95326),$=a(43011),C=a(68789),y=a(84131);S.vI.add(y.NBC);var T=1;const M={data:function(){return{showingImage:!1,pleromaTanVariant:Math.random()>.5?b:k,showingMore:!1}},components:{Modal:v.Z},computed:{pleromaTanStyles:function(){return{"shape-outside":"url("+(this.pleromaTanVariant===b?$:C)+")"}},shouldShow:function(){return!this.$store.state.instance.disableUpdateNotification&&this.$store.state.users.currentUser&&this.$store.state.serverSideStorage.flagStorage.updateCounter<T&&!this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs}},methods:{toggleShow:function(){this.showingMore=!this.showingMore},neverShowAgain:function(){this.toggleShow(),this.$store.commit("setFlag",{flag:"updateCounter",value:T}),this.$store.commit("setPreference",{path:"simple.dontShowUpdateNotifs",value:!0}),this.$store.dispatch("pushServerSideStorage")},dismiss:function(){this.$store.commit("setFlag",{flag:"updateCounter",value:T}),this.$store.dispatch("pushServerSideStorage")}},mounted:function(){var t=this;this.contentHeightNoImage=this.$refs.animatedText.scrollHeight;var e=new Image;e.onload=function(){setTimeout((function(){t.showingImage=!0}),100)},e.src=this.pleromaTanVariant===b?$:C}},N=(0,a(83744).Z)(M,[["render",function(t,e,a,v,S,b){var k=(0,n.up)("i18n-t"),$=(0,n.up)("Modal");return(0,n.wg)(),(0,n.j4)($,{"is-open":!!t.shouldShow,class:"UpdateNotification","no-background":!0},{default:(0,n.w5)((function(){return[(0,n._)("div",{class:(0,o.C_)(["UpdateNotificationModal panel",{"-peek":!t.showingMore}])},[(0,n._)("div",i,[(0,n._)("span",r,(0,o.zw)(t.$t("update.big_update_title")),1)]),(0,n._)("div",l,[(0,n._)("div",{class:(0,o.C_)(["content",{"-noImage":!t.showingImage}])},[t.showingImage?((0,n.wg)(),(0,n.iD)("img",{key:0,class:"pleroma-tan",src:t.pleromaTanVariant,style:(0,o.j5)(t.pleromaTanStyles)},null,12,u)):(0,n.kq)("",!0),p,(0,n._)("div",c,[(0,n._)("p",null,(0,o.zw)(t.$t("update.big_update_content")),1),(0,n._)("div",d,[(0,n.Wm)(k,{keypath:"update.update_bugs",tag:"p"},{pleromaGitlab:(0,n.w5)((function(){return[(0,n._)("a",g,(0,o.zw)(t.$t("update.update_bugs_gitlab")),1)]})),_:1}),(0,n.Wm)(k,{keypath:"update.update_changelog",tag:"p"},{theFullChangelog:(0,n.w5)((function(){return[(0,n._)("a",h,(0,o.zw)(t.$t("update.update_changelog_here")),1)]})),_:1}),(0,n._)("p",m,[(0,n.Wm)(k,{keypath:"update.art_by",tag:"small"},{linkToArtist:(0,n.w5)((function(){return[_]})),_:1})])],512)]),f],2)]),(0,n._)("div",w,[(0,n._)("button",{class:"button-default",onClick:e[0]||(e[0]=(0,s.iM)((function(){return t.neverShowAgain&&t.neverShowAgain.apply(t,arguments)}),["prevent"]))},(0,o.zw)(t.$t("general.never_show_again")),1),t.showingMore?(0,n.kq)("",!0):((0,n.wg)(),(0,n.iD)("button",{key:0,class:"button-default",onClick:e[1]||(e[1]=(0,s.iM)((function(){return t.toggleShow&&t.toggleShow.apply(t,arguments)}),["prevent"]))},(0,o.zw)(t.$t("general.show_more")),1)),(0,n._)("button",{class:"button-default",onClick:e[2]||(e[2]=(0,s.iM)((function(){return t.dismiss&&t.dismiss.apply(t,arguments)}),["prevent"]))},(0,o.zw)(t.$t("general.dismiss")),1)])],2)]})),_:1},8,["is-open"])}]])}}]);
+//# sourceMappingURL=6464.fea96fa80a7373e4e5f8.js.map \ No newline at end of file
diff --git a/priv/static/static/js/6464.2ababce187697ee8b1e9.js.map b/priv/static/static/js/6464.fea96fa80a7373e4e5f8.js.map
index 436b31e7d..a6c978d36 100644
--- a/priv/static/static/js/6464.2ababce187697ee8b1e9.js.map
+++ b/priv/static/static/js/6464.fea96fa80a7373e4e5f8.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/6464.2ababce187697ee8b1e9.js","mappings":"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","sources":["webpack://pleroma_fe/./src/components/update_notification/update_notification.vue","webpack://pleroma_fe/./src/components/update_notification/update_notification.js","webpack://pleroma_fe/./src/components/update_notification/update_notification.vue?27aa"],"sourcesContent":["<template>\n <Modal\n :is-open=\"!!shouldShow\"\n class=\"UpdateNotification\"\n :no-background=\"true\"\n >\n <div\n class=\"UpdateNotificationModal panel\"\n :class=\"{ '-peek': !showingMore }\"\n >\n <div class=\"panel-heading\">\n <span class=\"title\">\n {{ $t('update.big_update_title') }}\n </span>\n </div>\n <div class=\"panel-body\">\n <div\n class=\"content\"\n :class=\"{ '-noImage': !showingImage }\"\n >\n <img\n v-if=\"showingImage\"\n class=\"pleroma-tan\"\n :src=\"pleromaTanVariant\"\n :style=\"pleromaTanStyles\"\n >\n <div class=\"spacer-top\" />\n <div class=\"text\">\n <p>\n {{ $t('update.big_update_content') }}\n </p>\n <div\n ref=\"animatedText\"\n class=\"extra-info-group\"\n >\n <i18n-t\n keypath=\"update.update_bugs\"\n tag=\"p\"\n >\n <template #pleromaGitlab>\n <a\n target=\"_blank\"\n href=\"https://git.pleroma.social/\"\n >{{ $t('update.update_bugs_gitlab') }}</a>\n </template>\n </i18n-t>\n <i18n-t\n keypath=\"update.update_changelog\"\n tag=\"p\"\n >\n <template #theFullChangelog>\n <a\n target=\"_blank\"\n href=\"https://pleroma.social/announcements/\"\n >{{ $t('update.update_changelog_here') }}</a>\n </template>\n </i18n-t>\n <p class=\"art-credit\">\n <i18n-t\n keypath=\"update.art_by\"\n tag=\"small\"\n >\n <template #linkToArtist>\n <a\n target=\"_blank\"\n href=\"https://post.ebin.club/users/pipivovott\"\n >pipivovott</a>\n </template>\n </i18n-t>\n </p>\n </div>\n </div>\n <div class=\"spacer-bottom\" />\n </div>\n </div>\n <div class=\"panel-footer\">\n <button\n class=\"button-default\"\n @click.prevent=\"neverShowAgain\"\n >\n {{ $t(\"general.never_show_again\") }}\n </button>\n <button\n v-if=\"!showingMore\"\n class=\"button-default\"\n @click.prevent=\"toggleShow\"\n >\n {{ $t(\"general.show_more\") }}\n </button>\n <button\n class=\"button-default\"\n @click.prevent=\"dismiss\"\n >\n {{ $t(\"general.dismiss\") }}\n </button>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./update_notification.js\"></script>\n\n<style src=\"./update_notification.scss\" lang=\"scss\"></style>\n","import Modal from 'src/components/modal/modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport pleromaTan from 'src/assets/pleromatan_apology.png'\nimport pleromaTanFox from 'src/assets/pleromatan_apology_fox.png'\nimport pleromaTanMask from 'src/assets/pleromatan_apology_mask.png'\nimport pleromaTanFoxMask from 'src/assets/pleromatan_apology_fox_mask.png'\n\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nlibrary.add(\n faTimes\n)\n\nexport const CURRENT_UPDATE_COUNTER = 1\n\nconst UpdateNotification = {\n data () {\n return {\n showingImage: false,\n pleromaTanVariant: Math.random() > 0.5 ? pleromaTan : pleromaTanFox,\n showingMore: false\n }\n },\n components: {\n Modal\n },\n computed: {\n pleromaTanStyles () {\n const mask = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n return {\n 'shape-outside': 'url(' + mask + ')'\n }\n },\n shouldShow () {\n return !this.$store.state.instance.disableUpdateNotification &&\n this.$store.state.users.currentUser &&\n this.$store.state.serverSideStorage.flagStorage.updateCounter < CURRENT_UPDATE_COUNTER &&\n !this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs\n }\n },\n methods: {\n toggleShow () {\n this.showingMore = !this.showingMore\n },\n neverShowAgain () {\n this.toggleShow()\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.commit('setPreference', { path: 'simple.dontShowUpdateNotifs', value: true })\n this.$store.dispatch('pushServerSideStorage')\n },\n dismiss () {\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n mounted () {\n this.contentHeightNoImage = this.$refs.animatedText.scrollHeight\n\n // Workaround to get the text height only after mask loaded. A bit hacky.\n const newImg = new Image()\n newImg.onload = () => {\n setTimeout(() => { this.showingImage = true }, 100)\n }\n newImg.src = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n }\n}\n\nexport default UpdateNotification\n","import { render } from \"./update_notification.vue?vue&type=template&id=653a2178\"\nimport script from \"./update_notification.js?vue&type=script&lang=js\"\nexport * from \"./update_notification.js?vue&type=script&lang=js\"\n\nimport \"./update_notification.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","_createElementVNode","ref","target","href","library","faTimes","CURRENT_UPDATE_COUNTER","data","showingImage","pleromaTanVariant","Math","random","pleromaTan","pleromaTanFox","showingMore","components","Modal","computed","pleromaTanStyles","this","pleromaTanMask","pleromaTanFoxMask","shouldShow","$store","state","instance","disableUpdateNotification","users","currentUser","serverSideStorage","flagStorage","updateCounter","prefsStorage","simple","dontShowUpdateNotifs","methods","toggleShow","neverShowAgain","commit","flag","value","path","dispatch","dismiss","mounted","contentHeightNoImage","$refs","animatedText","scrollHeight","newImg","Image","onload","setTimeout","src","_createBlock","_component_Modal","_ctx","_normalizeClass","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","style","_hoisted_5","_hoisted_6","_hoisted_7","_createVNode","_component_i18n_t","keypath","tag","pleromaGitlab","_hoisted_8","theFullChangelog","_hoisted_9","_hoisted_10","linkToArtist","_hoisted_11","_hoisted_12","_hoisted_13","onClick"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"static/js/6464.fea96fa80a7373e4e5f8.js","mappings":"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","sources":["webpack://pleroma_fe/./src/components/update_notification/update_notification.vue","webpack://pleroma_fe/./src/components/update_notification/update_notification.js","webpack://pleroma_fe/./src/components/update_notification/update_notification.vue?27aa"],"sourcesContent":["<template>\n <Modal\n :is-open=\"!!shouldShow\"\n class=\"UpdateNotification\"\n :no-background=\"true\"\n >\n <div\n class=\"UpdateNotificationModal panel\"\n :class=\"{ '-peek': !showingMore }\"\n >\n <div class=\"panel-heading\">\n <span class=\"title\">\n {{ $t('update.big_update_title') }}\n </span>\n </div>\n <div class=\"panel-body\">\n <div\n class=\"content\"\n :class=\"{ '-noImage': !showingImage }\"\n >\n <img\n v-if=\"showingImage\"\n class=\"pleroma-tan\"\n :src=\"pleromaTanVariant\"\n :style=\"pleromaTanStyles\"\n >\n <div class=\"spacer-top\" />\n <div class=\"text\">\n <p>\n {{ $t('update.big_update_content') }}\n </p>\n <div\n ref=\"animatedText\"\n class=\"extra-info-group\"\n >\n <i18n-t\n keypath=\"update.update_bugs\"\n tag=\"p\"\n >\n <template #pleromaGitlab>\n <a\n target=\"_blank\"\n href=\"https://git.pleroma.social/\"\n >{{ $t('update.update_bugs_gitlab') }}</a>\n </template>\n </i18n-t>\n <i18n-t\n keypath=\"update.update_changelog\"\n tag=\"p\"\n >\n <template #theFullChangelog>\n <a\n target=\"_blank\"\n href=\"https://pleroma.social/announcements/\"\n >{{ $t('update.update_changelog_here') }}</a>\n </template>\n </i18n-t>\n <p class=\"art-credit\">\n <i18n-t\n keypath=\"update.art_by\"\n tag=\"small\"\n >\n <template #linkToArtist>\n <a\n target=\"_blank\"\n href=\"https://post.ebin.club/users/pipivovott\"\n >pipivovott</a>\n </template>\n </i18n-t>\n </p>\n </div>\n </div>\n <div class=\"spacer-bottom\" />\n </div>\n </div>\n <div class=\"panel-footer\">\n <button\n class=\"button-default\"\n @click.prevent=\"neverShowAgain\"\n >\n {{ $t(\"general.never_show_again\") }}\n </button>\n <button\n v-if=\"!showingMore\"\n class=\"button-default\"\n @click.prevent=\"toggleShow\"\n >\n {{ $t(\"general.show_more\") }}\n </button>\n <button\n class=\"button-default\"\n @click.prevent=\"dismiss\"\n >\n {{ $t(\"general.dismiss\") }}\n </button>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./update_notification.js\"></script>\n\n<style src=\"./update_notification.scss\" lang=\"scss\"></style>\n","import Modal from 'src/components/modal/modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport pleromaTan from 'src/assets/pleromatan_apology.png'\nimport pleromaTanFox from 'src/assets/pleromatan_apology_fox.png'\nimport pleromaTanMask from 'src/assets/pleromatan_apology_mask.png'\nimport pleromaTanFoxMask from 'src/assets/pleromatan_apology_fox_mask.png'\n\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nlibrary.add(\n faTimes\n)\n\nexport const CURRENT_UPDATE_COUNTER = 1\n\nconst UpdateNotification = {\n data () {\n return {\n showingImage: false,\n pleromaTanVariant: Math.random() > 0.5 ? pleromaTan : pleromaTanFox,\n showingMore: false\n }\n },\n components: {\n Modal\n },\n computed: {\n pleromaTanStyles () {\n const mask = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n return {\n 'shape-outside': 'url(' + mask + ')'\n }\n },\n shouldShow () {\n return !this.$store.state.instance.disableUpdateNotification &&\n this.$store.state.users.currentUser &&\n this.$store.state.serverSideStorage.flagStorage.updateCounter < CURRENT_UPDATE_COUNTER &&\n !this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs\n }\n },\n methods: {\n toggleShow () {\n this.showingMore = !this.showingMore\n },\n neverShowAgain () {\n this.toggleShow()\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.commit('setPreference', { path: 'simple.dontShowUpdateNotifs', value: true })\n this.$store.dispatch('pushServerSideStorage')\n },\n dismiss () {\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n mounted () {\n this.contentHeightNoImage = this.$refs.animatedText.scrollHeight\n\n // Workaround to get the text height only after mask loaded. A bit hacky.\n const newImg = new Image()\n newImg.onload = () => {\n setTimeout(() => { this.showingImage = true }, 100)\n }\n newImg.src = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n }\n}\n\nexport default UpdateNotification\n","import { render } from \"./update_notification.vue?vue&type=template&id=653a2178\"\nimport script from \"./update_notification.js?vue&type=script&lang=js\"\nexport * from \"./update_notification.js?vue&type=script&lang=js\"\n\nimport \"./update_notification.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","_createElementVNode","ref","target","href","library","faTimes","CURRENT_UPDATE_COUNTER","data","showingImage","pleromaTanVariant","Math","random","pleromaTan","pleromaTanFox","showingMore","components","Modal","computed","pleromaTanStyles","this","pleromaTanMask","pleromaTanFoxMask","shouldShow","$store","state","instance","disableUpdateNotification","users","currentUser","serverSideStorage","flagStorage","updateCounter","prefsStorage","simple","dontShowUpdateNotifs","methods","toggleShow","neverShowAgain","commit","flag","value","path","dispatch","dismiss","mounted","contentHeightNoImage","$refs","animatedText","scrollHeight","newImg","Image","onload","setTimeout","src","_createBlock","_component_Modal","_ctx","_normalizeClass","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","style","_hoisted_5","_hoisted_6","_hoisted_7","_createVNode","_component_i18n_t","keypath","tag","pleromaGitlab","_hoisted_8","theFullChangelog","_hoisted_9","_hoisted_10","linkToArtist","_hoisted_11","_hoisted_12","_hoisted_13","onClick"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/8532.290194af65a2e3a4120e.js b/priv/static/static/js/8532.290194af65a2e3a4120e.js
deleted file mode 100644
index a79caf985..000000000
--- a/priv/static/static/js/8532.290194af65a2e3a4120e.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[8532],{68532:(t,e,n)=>{n.r(e),n.d(e,{default:()=>p});var i=n(66252),a=n(49963),c={class:"sticker-picker"},r=["image-tooltip","image"],o=["onClick"],s=["src"],l=n(7257);const u={components:{TabSwitcher:n(79354).Z},data:function(){return{meta:{stickers:[]},path:""}},computed:{pack:function(){return this.$store.state.instance.stickers||[]}},methods:{clear:function(){this.meta={stickers:[]}},pick:function(t,e){var n=this,i=this.$store;fetch(t).then((function(t){t.blob().then((function(t){var a=new File([t],e,{mimetype:"image/png"}),c=new FormData;c.append("file",a),l.Z.uploadMedia({store:i,formData:c}).then((function(t){n.$emit("uploaded",t),n.clear()}),(function(t){console.warn("Can't attach sticker"),console.warn(t),n.$emit("upload-failed","default")}))}))}))}}},p=(0,n(83744).Z)(u,[["render",function(t,e,n,l,u,p){var f=(0,i.up)("tab-switcher");return(0,i.wg)(),(0,i.iD)("div",c,[(0,i.Wm)(f,{class:"tab-switcher","render-only-focused":!0,"scrollable-tabs":""},{default:(0,i.w5)((function(){return[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(t.pack,(function(e){return(0,i.wg)(),(0,i.iD)("div",{key:e.path,"image-tooltip":e.meta.title,image:e.path+e.meta.tabIcon,class:"sticker-picker-content"},[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.meta.stickers,(function(n){return(0,i.wg)(),(0,i.iD)("div",{key:n,class:"sticker",onClick:(0,a.iM)((function(i){return t.pick(e.path+n,e.meta.title)}),["stop","prevent"])},[(0,i._)("img",{src:e.path+n},null,8,s)],8,o)})),128))],8,r)})),128))]})),_:1})])}]])}}]);
-//# sourceMappingURL=8532.290194af65a2e3a4120e.js.map \ No newline at end of file
diff --git a/priv/static/static/js/8532.290194af65a2e3a4120e.js.map b/priv/static/static/js/8532.290194af65a2e3a4120e.js.map
deleted file mode 100644
index f2a8fcc80..000000000
--- a/priv/static/static/js/8532.290194af65a2e3a4120e.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/8532.290194af65a2e3a4120e.js","mappings":"oKAEIA,MAAM,kB,8DCiDV,QA/CsB,CACpBC,WAAY,CACVC,Y,SAAAA,GAEFC,KAAI,WACF,MAAO,CACLC,KAAM,CACJC,SAAU,IAEZC,KAAM,GAEV,EACAC,SAAU,CACRC,KAAI,WACF,OAAOC,KAAKC,OAAOC,MAAMC,SAASP,UAAY,EAChD,GAEFQ,QAAS,CACPC,MAAK,WACHL,KAAKL,KAAO,CACVC,SAAU,GAEd,EACAU,KAAI,SAAEC,EAASC,GAAM,WACbC,EAAQT,KAAKC,OAEnBS,MAAMH,GACHI,MAAK,SAACC,GACLA,EAAIC,OAAOF,MAAK,SAACE,GACf,IAAMC,EAAO,IAAIC,KAAK,CAACF,GAAOL,EAAM,CAAEQ,SAAU,cAC1CC,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQL,GACxBM,EAAAA,EAAAA,YAAgC,CAAEX,MAAAA,EAAOQ,SAAAA,IACtCN,MAAK,SAACU,GACL,EAAKC,MAAM,WAAYD,GACvB,EAAKhB,OACP,IAAG,SAACkB,GACFC,QAAQC,KAAK,wBACbD,QAAQC,KAAKF,GACb,EAAKD,MAAM,gBAAiB,UAC9B,GACJ,GACF,GACJ,ICtCJ,GAFiC,E,SAAA,GAAgB,EAAQ,CAAC,CAAC,S,uEFNzDI,EAAAA,EAAAA,IA2BM,MA3BNC,EA2BM,EAxBJC,EAAAA,EAAAA,IAuBeC,EAAAA,CAtBbtC,MAAM,eACL,uBAAqB,EACtB,sB,mBAGE,iBAA2B,gBAD7BmC,EAAAA,EAAAA,IAiBMI,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IAhBkBC,EAAAA,MAAI,SAAnBC,G,kBADTN,EAAAA,EAAAA,IAiBM,OAfHO,IAAKD,EAAYnC,KACjB,gBAAemC,EAAYrC,KAAKuC,MAChCC,MAAOH,EAAYnC,KAAOmC,EAAYrC,KAAKyC,QAC5C7C,MAAM,0B,gBAENmC,EAAAA,EAAAA,IASMI,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IARcE,EAAYrC,KAAKC,UAAQ,SAApCW,G,kBADTmB,EAAAA,EAAAA,IASM,OAPHO,IAAK1B,EACNhB,MAAM,UACL8C,SAAK,4BAAeN,EAAAA,KAAKC,EAAYnC,KAAOU,EAASyB,EAAYrC,KAAKuC,MAAK,wB,EAE5EI,EAAAA,EAAAA,GAEC,OADEC,IAAKP,EAAYnC,KAAOU,G","sources":["webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue","webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.js","webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue?a437"],"sourcesContent":["<template>\n <div\n class=\"sticker-picker\"\n >\n <tab-switcher\n class=\"tab-switcher\"\n :render-only-focused=\"true\"\n scrollable-tabs\n >\n <div\n v-for=\"stickerpack in pack\"\n :key=\"stickerpack.path\"\n :image-tooltip=\"stickerpack.meta.title\"\n :image=\"stickerpack.path + stickerpack.meta.tabIcon\"\n class=\"sticker-picker-content\"\n >\n <div\n v-for=\"sticker in stickerpack.meta.stickers\"\n :key=\"sticker\"\n class=\"sticker\"\n @click.stop.prevent=\"pick(stickerpack.path + sticker, stickerpack.meta.title)\"\n >\n <img\n :src=\"stickerpack.path + sticker\"\n >\n </div>\n </div>\n </tab-switcher>\n </div>\n</template>\n\n<script src=\"./sticker_picker.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.sticker-picker {\n width: 100%;\n .contents {\n min-height: 250px;\n .sticker-picker-content {\n display: flex;\n flex-wrap: wrap;\n padding: 0 4px;\n .sticker {\n display: flex;\n flex: 1 1 auto;\n margin: 4px;\n width: 56px;\n height: 56px;\n img {\n height: 100%;\n &:hover {\n filter: drop-shadow(0 0 5px var(--accent, $fallback--link));\n }\n }\n }\n }\n }\n}\n\n</style>\n","/* eslint-env browser */\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport TabSwitcher from '../tab_switcher/tab_switcher.jsx'\n\nconst StickerPicker = {\n components: {\n TabSwitcher\n },\n data () {\n return {\n meta: {\n stickers: []\n },\n path: ''\n }\n },\n computed: {\n pack () {\n return this.$store.state.instance.stickers || []\n }\n },\n methods: {\n clear () {\n this.meta = {\n stickers: []\n }\n },\n pick (sticker, name) {\n const store = this.$store\n // TODO remove this workaround by finding a way to bypass reuploads\n fetch(sticker)\n .then((res) => {\n res.blob().then((blob) => {\n const file = new File([blob], name, { mimetype: 'image/png' })\n const formData = new FormData()\n formData.append('file', file)\n statusPosterService.uploadMedia({ store, formData })\n .then((fileData) => {\n this.$emit('uploaded', fileData)\n this.clear()\n }, (error) => {\n console.warn(\"Can't attach sticker\")\n console.warn(error)\n this.$emit('upload-failed', 'default')\n })\n })\n })\n }\n }\n}\n\nexport default StickerPicker\n","import { render } from \"./sticker_picker.vue?vue&type=template&id=9cf415b2\"\nimport script from \"./sticker_picker.js?vue&type=script&lang=js\"\nexport * from \"./sticker_picker.js?vue&type=script&lang=js\"\n\nimport \"./sticker_picker.vue?vue&type=style&index=0&id=9cf415b2&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","components","TabSwitcher","data","meta","stickers","path","computed","pack","this","$store","state","instance","methods","clear","pick","sticker","name","store","fetch","then","res","blob","file","File","mimetype","formData","FormData","append","statusPosterService","fileData","$emit","error","console","warn","_createElementBlock","_hoisted_1","_createVNode","_component_tab_switcher","_Fragment","_ctx","stickerpack","key","title","image","tabIcon","onClick","_createElementVNode","src"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/9114.e761a1c6846fea99aaf1.js b/priv/static/static/js/9114.e761a1c6846fea99aaf1.js
new file mode 100644
index 000000000..c358d9906
--- /dev/null
+++ b/priv/static/static/js/9114.e761a1c6846fea99aaf1.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[9114],{9114:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ti});var l=n(66252),a=["label"],o=["label"],s=["label"],r=["label"],i=["label"],u=["label"],c=["label"],d=["label"],p=["label"],m=n(79354),f=n(3577),h=["label"],g={class:"setting-item"},b={class:"setting-item"},w={class:"setting-item"},_={class:"setting-item"},k={class:"setting-item"},v={class:"setting-item"},y={class:"setting-item"},$=(0,l._)("th",null,null,-1),C={class:"actions"},V=["href"],T={key:1},U={key:2},x={key:3},L={key:0,class:"alert error"},O=["title"],W={key:1},z={key:2},S=n(4942),P={class:"importer"},D={key:2},I={key:3},j=n(9382),B=n(84131);j.vI.add(B.IJ7,B.NBC);const A={props:{submitHandler:{type:Function,required:!0},submitButtonLabel:{type:String},successMessage:{type:String},errorMessage:{type:String}},data:function(){return{file:null,error:!1,success:!1,submitting:!1}},methods:{change:function(){this.file=this.$refs.input.files[0]},submit:function(){var e=this;this.dismiss(),this.submitting=!0,this.submitHandler(this.file).then((function(){e.success=!0})).catch((function(){e.error=!0})).finally((function(){e.submitting=!1}))},dismiss:function(){this.success=!1,this.error=!1}}};var E=n(83744);const F=(0,E.Z)(A,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",P,[(0,l._)("form",null,[(0,l._)("input",{ref:"input",type:"file",onChange:t[0]||(t[0]=function(){return e.change&&e.change.apply(e,arguments)})},null,544)]),e.submitting?((0,l.wg)(),(0,l.j4)(r,{key:0,class:"importer-uploading",spin:"",icon:"circle-notch"})):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.submit&&e.submit.apply(e,arguments)})},(0,f.zw)(e.submitButtonLabel||e.$t("importer.submit")),1)),e.success?((0,l.wg)(),(0,l.iD)("div",D,[(0,l._)("button",{class:"button-unstyled",onClick:t[2]||(t[2]=function(){return e.dismiss&&e.dismiss.apply(e,arguments)})},[(0,l.Wm)(r,{icon:"times"})]),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l._)("span",null,(0,f.zw)(e.successMessage||e.$t("importer.success")),1)])):e.error?((0,l.wg)(),(0,l.iD)("div",I,[(0,l._)("button",{class:"button-unstyled",onClick:t[3]||(t[3]=function(){return e.dismiss&&e.dismiss.apply(e,arguments)})},[(0,l.Wm)(r,{icon:"times"})]),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l._)("span",null,(0,f.zw)(e.errorMessage||e.$t("importer.error")),1)])):(0,l.kq)("",!0)])}]]);var q={class:"exporter"},Z={key:0};j.vI.add(B.IJ7);const M={props:{getContent:{type:Function,required:!0},filename:{type:String,default:"export.csv"},exportButtonLabel:{type:String},processingMessage:{type:String}},data:function(){return{processing:!1}},methods:{process:function(){var e=this;this.processing=!0,this.getContent().then((function(t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download",e.filename),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n),setTimeout((function(){e.processing=!1}),2e3)}))}}},R=(0,E.Z)(M,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",q,[e.processing?((0,l.wg)(),(0,l.iD)("div",Z,[(0,l.Wm)(r,{icon:"circle-notch",size:"lg",spin:""}),(0,l._)("span",null,(0,f.zw)(e.processingMessage||e.$t("exporter.processing")),1)])):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.process&&e.process.apply(e,arguments)})},(0,f.zw)(e.exportButtonLabel||e.$t("exporter.export")),1))])}]]);var N=n(90350),H=n(989);function Y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const K={data:function(){return{activeTab:"profile",newDomainToMute:"",listBackupsError:!1,addBackupError:!1,addedBackup:!1,backups:[]}},created:function(){this.$store.dispatch("fetchTokens"),this.fetchBackups()},components:{Importer:F,Exporter:R,Checkbox:N.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},(0,H.rn)({backendInteractor:function(e){return e.api.backendInteractor},user:function(e){return e.users.currentUser}})),methods:{getFollowsContent:function(){return this.backendInteractor.exportFriends({id:this.user.id}).then(this.generateExportableUsersContent)},getBlocksContent:function(){return this.backendInteractor.fetchBlocks().then(this.generateExportableUsersContent)},getMutesContent:function(){return this.backendInteractor.fetchMutes().then(this.generateExportableUsersContent)},importFollows:function(e){return this.backendInteractor.importFollows({file:e}).then((function(e){if(!e)throw new Error("failed")}))},importBlocks:function(e){return this.backendInteractor.importBlocks({file:e}).then((function(e){if(!e)throw new Error("failed")}))},importMutes:function(e){return this.backendInteractor.importMutes({file:e}).then((function(e){if(!e)throw new Error("failed")}))},generateExportableUsersContent:function(e){return e.map((function(e){return e&&e.is_local?e.screen_name+"@"+location.hostname:e.screen_name})).join("\n")},addBackup:function(){var e=this;this.$store.state.api.backendInteractor.addBackup().then((function(t){e.addedBackup=!0,e.addBackupError=!1})).catch((function(t){e.addedBackup=!1,e.addBackupError=t})).then((function(){return e.fetchBackups()}))},fetchBackups:function(){var e=this;this.$store.state.api.backendInteractor.listBackups().then((function(t){e.backups=t,e.listBackupsError=!1})).catch((function(t){e.listBackupsError=t.error}))}}},G=(0,E.Z)(K,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Importer"),i=(0,l.up)("Exporter"),u=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.data_import_export_tab")},[(0,l._)("div",g,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.follow_import")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.import_followers_from_a_csv_file")),1),(0,l.Wm)(r,{"submit-handler":e.importFollows,"success-message":e.$t("settings.follows_imported"),"error-message":e.$t("settings.follow_import_error")},null,8,["submit-handler","success-message","error-message"])]),(0,l._)("div",b,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.follow_export")),1),(0,l.Wm)(i,{"get-content":e.getFollowsContent,filename:"friends.csv","export-button-label":e.$t("settings.follow_export_button")},null,8,["get-content","export-button-label"])]),(0,l._)("div",w,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.block_import")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.import_blocks_from_a_csv_file")),1),(0,l.Wm)(r,{"submit-handler":e.importBlocks,"success-message":e.$t("settings.blocks_imported"),"error-message":e.$t("settings.block_import_error")},null,8,["submit-handler","success-message","error-message"])]),(0,l._)("div",_,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.block_export")),1),(0,l.Wm)(i,{"get-content":e.getBlocksContent,filename:"blocks.csv","export-button-label":e.$t("settings.block_export_button")},null,8,["get-content","export-button-label"])]),(0,l._)("div",k,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.mute_import")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.import_mutes_from_a_csv_file")),1),(0,l.Wm)(r,{"submit-handler":e.importMutes,"success-message":e.$t("settings.mutes_imported"),"error-message":e.$t("settings.mute_import_error")},null,8,["submit-handler","success-message","error-message"])]),(0,l._)("div",v,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.mute_export")),1),(0,l.Wm)(i,{"get-content":e.getMutesContent,filename:"mutes.csv","export-button-label":e.$t("settings.mute_export_button")},null,8,["get-content","export-button-label"])]),(0,l._)("div",y,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.account_backup")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.account_backup_description")),1),(0,l._)("table",null,[(0,l._)("thead",null,[(0,l._)("tr",null,[(0,l._)("th",null,(0,f.zw)(e.$t("settings.account_backup_table_head")),1),$])]),(0,l._)("tbody",null,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.backups,(function(t){return(0,l.wg)(),(0,l.iD)("tr",{key:t.id},[(0,l._)("td",null,(0,f.zw)(t.inserted_at),1),(0,l._)("td",C,[t.processed?((0,l.wg)(),(0,l.iD)("a",{key:0,target:"_blank",href:t.url},(0,f.zw)(e.$t("settings.download_backup")),9,V)):"running"===t.state?((0,l.wg)(),(0,l.iD)("span",T,(0,f.zw)(e.$tc("settings.backup_running",t.processed_number,{number:t.processed_number})),1)):"failed"===t.state?((0,l.wg)(),(0,l.iD)("span",U,(0,f.zw)(e.$t("settings.backup_failed")),1)):((0,l.wg)(),(0,l.iD)("span",x,(0,f.zw)(e.$t("settings.backup_not_ready")),1))])])})),128))])]),e.listBackupsError?((0,l.wg)(),(0,l.iD)("div",L,[(0,l.Uk)((0,f.zw)(e.$t("settings.list_backups_error",{error:e.error}))+" ",1),(0,l._)("button",{title:e.$t("settings.hide_list_backups_error_action"),onClick:t[0]||(t[0]=function(t){return e.listBackupsError=!1})},[(0,l.Wm)(u,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,O)])):(0,l.kq)("",!0),(0,l._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.addBackup&&e.addBackup.apply(e,arguments)})},(0,f.zw)(e.$t("settings.add_backup")),1),e.addedBackup?((0,l.wg)(),(0,l.iD)("p",W,(0,f.zw)(e.$t("settings.added_backup")),1)):(0,l.kq)("",!0),!1!==e.addBackupError?((0,l.wg)(),(0,l.iD)("p",z,(0,f.zw)(e.$t("settings.add_backup_error",{error:e.addBackupError})),1)):(0,l.kq)("",!0)])],8,h)}]]);var J=["label"],Q={class:"usersearch-wrapper"},X={class:"bulk-actions"},ee=["label"],te=["label"],ne={class:"usersearch-wrapper"},le={class:"bulk-actions"},ae=["label"],oe={class:"domain-mute-form"},se={class:"bulk-actions"},re=n(27361),ie=n.n(re),ue=n(35161),ce=n.n(ue),de=n(43063),pe=n.n(de),me=n(49963),fe={class:"autosuggest"},he=["placeholder"],ge={key:0,class:"autosuggest-results"};const be={props:{query:{type:Function,required:!0},filter:{type:Function},placeholder:{type:String,default:"Search..."}},data:function(){return{term:"",timeout:null,results:[],resultsVisible:!1}},computed:{filtered:function(){return this.filter?this.filter(this.results):this.results}},watch:{term:function(e){this.fetchResults(e)}},methods:{fetchResults:function(e){var t=this;clearTimeout(this.timeout),this.timeout=setTimeout((function(){t.results=[],e&&t.query(e).then((function(e){t.results=e}))}),500)},onInputClick:function(){this.resultsVisible=!0},onClickOutside:function(){this.resultsVisible=!1}}},we=(0,E.Z)(be,[["render",function(e,t,n,a,o,s){var r=(0,l.Q2)("click-outside");return(0,l.wy)(((0,l.wg)(),(0,l.iD)("div",fe,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.term=t}),placeholder:e.placeholder,class:"autosuggest-input",onClick:t[1]||(t[1]=function(){return e.onInputClick&&e.onInputClick.apply(e,arguments)})},null,8,he),[[me.nr,e.term]]),e.resultsVisible&&e.filtered.length>0?((0,l.wg)(),(0,l.iD)("div",ge,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.filtered,(function(t){return(0,l.WI)(e.$slots,"default",{item:t})})),256))])):(0,l.kq)("",!0)])),[[r,e.onClickOutside]])}]]);var _e={class:"block-card-content-container"},ke=["disabled"],ve=["disabled"],ye=n(29076);const $e={props:["userId"],data:function(){return{progress:!1}},computed:{user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},blocked:function(){return this.relationship.blocking}},components:{BasicUserCard:ye.Z},methods:{unblockUser:function(){var e=this;this.progress=!0,this.$store.dispatch("unblockUser",this.user.id).then((function(){e.progress=!1}))},blockUser:function(){var e=this;this.progress=!0,this.$store.dispatch("blockUser",this.user.id).then((function(){e.progress=!1}))}}},Ce=(0,E.Z)($e,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("basic-user-card");return(0,l.wg)(),(0,l.j4)(r,{user:e.user},{default:(0,l.w5)((function(){return[(0,l._)("div",_e,[e.blocked?((0,l.wg)(),(0,l.iD)("button",{key:0,class:"btn button-default",disabled:e.progress,onClick:t[0]||(t[0]=function(){return e.unblockUser&&e.unblockUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,f.zw)(e.$t("user_card.unblock_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,f.zw)(e.$t("user_card.unblock")),1)],64))],8,ke)):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",disabled:e.progress,onClick:t[1]||(t[1]=function(){return e.blockUser&&e.blockUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,f.zw)(e.$t("user_card.block_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,f.zw)(e.$t("user_card.block")),1)],64))],8,ve))])]})),_:1},8,["user"])}]]);var Ve={class:"mute-card-content-container"},Te=["disabled"],Ue=["disabled"];const xe={props:["userId"],data:function(){return{progress:!1}},computed:{user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},muted:function(){return this.relationship.muting}},components:{BasicUserCard:ye.Z},methods:{unmuteUser:function(){var e=this;this.progress=!0,this.$store.dispatch("unmuteUser",this.userId).then((function(){e.progress=!1}))},muteUser:function(){var e=this;this.progress=!0,this.$store.dispatch("muteUser",this.userId).then((function(){e.progress=!1}))}}},Le=(0,E.Z)(xe,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("basic-user-card");return(0,l.wg)(),(0,l.j4)(r,{user:e.user},{default:(0,l.w5)((function(){return[(0,l._)("div",Ve,[e.muted?((0,l.wg)(),(0,l.iD)("button",{key:0,class:"btn button-default",disabled:e.progress,onClick:t[0]||(t[0]=function(){return e.unmuteUser&&e.unmuteUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,f.zw)(e.$t("user_card.unmute_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,f.zw)(e.$t("user_card.unmute")),1)],64))],8,Te)):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",disabled:e.progress,onClick:t[1]||(t[1]=function(){return e.muteUser&&e.muteUser.apply(e,arguments)})},[e.progress?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,f.zw)(e.$t("user_card.mute_progress")),1)],64)):((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,f.zw)(e.$t("user_card.mute")),1)],64))],8,Ue))])]})),_:1},8,["user"])}]]);var Oe={class:"domain-mute-card"},We={class:"domain-mute-card-domain"},ze=n(99507);const Se={props:["domain"],components:{ProgressButton:ze.Z},computed:{user:function(){return this.$store.state.users.currentUser},muted:function(){return this.user.domainMutes.includes(this.domain)}},methods:{unmuteDomain:function(){return this.$store.dispatch("unmuteDomain",this.domain)},muteDomain:function(){return this.$store.dispatch("muteDomain",this.domain)}}},Pe=(0,E.Z)(Se,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("ProgressButton");return(0,l.wg)(),(0,l.iD)("div",Oe,[(0,l._)("div",We,(0,f.zw)(e.domain),1),e.muted?((0,l.wg)(),(0,l.j4)(r,{key:0,click:e.unmuteDomain,class:"btn button-default"},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("domain_mute_card.unmute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("domain_mute_card.unmute"))+" ",1)]})),_:1},8,["click"])):((0,l.wg)(),(0,l.j4)(r,{key:1,click:e.muteDomain,class:"btn button-default"},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("domain_mute_card.mute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("domain_mute_card.mute"))+" ",1)]})),_:1},8,["click"]))])}]]);var De={class:"selectable-list"},Ie={key:0,class:"selectable-list-header"},je={class:"selectable-list-checkbox-wrapper"},Be={class:"selectable-list-header-actions"},Ae={class:"selectable-list-checkbox-wrapper"};const Ee={components:{List:n(56773).Z,Checkbox:N.Z},props:{items:{type:Array,default:function(){return[]}},getKey:{type:Function,default:function(e){return e.id}}},data:function(){return{selected:[]}},computed:{allKeys:function(){return this.items.map(this.getKey)},filteredSelected:function(){var e=this;return this.allKeys.filter((function(t){return-1!==e.selected.indexOf(t)}))},allSelected:function(){return this.filteredSelected.length===this.items.length},noneSelected:function(){return 0===this.filteredSelected.length},someSelected:function(){return!this.allSelected&&!this.noneSelected}},methods:{isSelected:function(e){return-1!==this.filteredSelected.indexOf(this.getKey(e))},toggle:function(e,t){var n=this.getKey(t);e!==this.isSelected(n)&&(e?this.selected.push(n):this.selected.splice(this.selected.indexOf(n),1))},toggleAll:function(e){this.selected=e?this.allKeys.slice(0):[]}}},Fe=(0,E.Z)(Ee,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Checkbox"),i=(0,l.up)("List");return(0,l.wg)(),(0,l.iD)("div",De,[e.items.length>0?((0,l.wg)(),(0,l.iD)("div",Ie,[(0,l._)("div",je,[(0,l.Wm)(r,{"model-value":e.allSelected,indeterminate:e.someSelected,"onUpdate:modelValue":e.toggleAll},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("selectable_list.select_all")),1)]})),_:1},8,["model-value","indeterminate","onUpdate:modelValue"])]),(0,l._)("div",Be,[(0,l.WI)(e.$slots,"header",{selected:e.filteredSelected})])])):(0,l.kq)("",!0),(0,l.Wm)(i,{items:e.items,"get-key":e.getKey},{item:(0,l.w5)((function(t){var n=t.item;return[(0,l._)("div",{class:(0,f.C_)(["selectable-list-item-inner",{"selectable-list-item-selected-inner":e.isSelected(n)}])},[(0,l._)("div",Ae,[(0,l.Wm)(r,{"model-value":e.isSelected(n),"onUpdate:modelValue":function(t){return e.toggle(t,n)}},null,8,["model-value","onUpdate:modelValue"])]),(0,l.WI)(e.$slots,"item",{item:n})],2)]})),empty:(0,l.w5)((function(){return[(0,l.WI)(e.$slots,"empty")]})),_:3},8,["items","get-key"])])}]]);var qe=n(93433),Ze=n(41609),Me=n.n(Ze),Re=n(13562),Ne=n(57810);function He(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function Ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?He(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):He(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}j.vI.add(B.IJ7);const Ke=function(e){var t=e.fetch,n=e.select,a=e.childPropName,o=void 0===a?"content":a,s=e.additionalPropNames,r=void 0===s?[]:s;return function(e){var a=Object.keys((0,Re.g)(e)).filter((function(e){return e!==o})).concat(r);return{props:[].concat((0,qe.Z)(a),["refresh"]),data:function(){return{loading:!1,error:!1}},computed:{fetchedData:function(){return n(this.$props,this.$store)}},created:function(){(this.refresh||Me()(this.fetchedData))&&this.fetchData()},methods:{fetchData:function(){var e=this;this.loading||(this.loading=!0,this.error=!1,t(this.$props,this.$store).then((function(){e.loading=!1})).catch((function(){e.error=!0,e.loading=!1})))}},render:function(){if(this.error||this.loading)return(0,l.Wm)("div",{class:"with-subscription-loading"},[this.error?(0,l.Wm)("a",{onClick:this.fetchData,class:"alert error"},[this.$t("general.generic_error")]):(0,l.Wm)(Ne.GN,{spin:!0,icon:"circle-notch"},null)]);var t,n=Ye(Ye({},this.$props),{},(0,S.Z)({},o,this.fetchedData)),a=this.$slots;return(0,l.Wm)("div",{class:"with-subscription"},[(0,l.Wm)(e,n,(t=a,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!(0,l.lA)(t)?a:{default:function(){return[a]}}))])}}}};var Ge=Ke({fetch:function(e,t){return t.dispatch("fetchBlocks")},select:function(e,t){return ie()(t.state.users.currentUser,"blockIds",[])},childPropName:"items"})(Fe),Je=Ke({fetch:function(e,t){return t.dispatch("fetchMutes")},select:function(e,t){return ie()(t.state.users.currentUser,"muteIds",[])},childPropName:"items"})(Fe),Qe=Ke({fetch:function(e,t){return t.dispatch("fetchDomainMutes")},select:function(e,t){return ie()(t.state.users.currentUser,"domainMutes",[])},childPropName:"items"})(Fe);const Xe={data:function(){return{activeTab:"profile"}},created:function(){this.$store.dispatch("fetchTokens"),this.$store.dispatch("getKnownDomains")},components:{TabSwitcher:m.Z,BlockList:Ge,MuteList:Je,DomainMuteList:Qe,BlockCard:Ce,MuteCard:Le,DomainMuteCard:Pe,ProgressButton:ze.Z,Autosuggest:we,Checkbox:N.Z},computed:{knownDomains:function(){return this.$store.state.instance.knownDomains},user:function(){return this.$store.state.users.currentUser}},methods:{importFollows:function(e){return this.$store.state.api.backendInteractor.importFollows({file:e}).then((function(e){if(!e)throw new Error("failed")}))},importBlocks:function(e){return this.$store.state.api.backendInteractor.importBlocks({file:e}).then((function(e){if(!e)throw new Error("failed")}))},generateExportableUsersContent:function(e){return e.map((function(e){return e&&e.is_local?e.screen_name+"@"+location.hostname:e.screen_name})).join("\n")},activateTab:function(e){this.activeTab=e},filterUnblockedUsers:function(e){var t=this;return pe()(e,(function(e){return t.$store.getters.relationship(t.userId).blocking||e===t.user.id}))},filterUnMutedUsers:function(e){var t=this;return pe()(e,(function(e){return t.$store.getters.relationship(t.userId).muting||e===t.user.id}))},queryUserIds:function(e){return this.$store.dispatch("searchUsers",{query:e}).then((function(e){return ce()(e,"id")}))},blockUsers:function(e){return this.$store.dispatch("blockUsers",e)},unblockUsers:function(e){return this.$store.dispatch("unblockUsers",e)},muteUsers:function(e){return this.$store.dispatch("muteUsers",e)},unmuteUsers:function(e){return this.$store.dispatch("unmuteUsers",e)},filterUnMutedDomains:function(e){var t=this;return e.filter((function(e){return!t.user.domainMutes.includes(e)}))},queryKnownDomains:function(e){var t=this;return new Promise((function(n,l){n(t.knownDomains.filter((function(t){return t.toLowerCase().includes(e)})))}))},unmuteDomains:function(e){return this.$store.dispatch("unmuteDomains",e)}}},et=(0,E.Z)(Xe,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("BlockCard"),i=(0,l.up)("Autosuggest"),u=(0,l.up)("ProgressButton"),c=(0,l.up)("BlockList"),d=(0,l.up)("MuteCard"),p=(0,l.up)("MuteList"),m=(0,l.up)("DomainMuteCard"),h=(0,l.up)("DomainMuteList"),g=(0,l.up)("tab-switcher");return(0,l.wg)(),(0,l.j4)(g,{"scrollable-tabs":!0,class:"mutes-and-blocks-tab"},{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.blocks_tab")},[(0,l._)("div",Q,[(0,l.Wm)(i,{filter:e.filterUnblockedUsers,query:e.queryUserIds,placeholder:e.$t("settings.search_user_to_block")},{default:(0,l.w5)((function(e){return[(0,l.Wm)(r,{"user-id":e.item},null,8,["user-id"])]})),_:1},8,["filter","query","placeholder"])]),(0,l.Wm)(c,{refresh:!0,"get-key":function(e){return e}},{header:(0,l.w5)((function(t){var n=t.selected;return[(0,l._)("div",X,[n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:0,class:"btn button-default bulk-action-button",click:function(){return e.blockUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.block_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.block"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0),n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"btn button-default",click:function(){return e.unblockUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.unblock_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.unblock"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0)])]})),item:(0,l.w5)((function(e){var t=e.item;return[(0,l.Wm)(r,{"user-id":t},null,8,["user-id"])]})),empty:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.no_blocks")),1)]})),_:1},8,["get-key"])],8,J),(0,l._)("div",{label:e.$t("settings.mutes_tab")},[(0,l.Wm)(g,null,{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.user_mutes")},[(0,l._)("div",ne,[(0,l.Wm)(i,{filter:e.filterUnMutedUsers,query:e.queryUserIds,placeholder:e.$t("settings.search_user_to_mute")},{default:(0,l.w5)((function(e){return[(0,l.Wm)(d,{"user-id":e.item},null,8,["user-id"])]})),_:1},8,["filter","query","placeholder"])]),(0,l.Wm)(p,{refresh:!0,"get-key":function(e){return e}},{header:(0,l.w5)((function(t){var n=t.selected;return[(0,l._)("div",le,[n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:0,class:"btn button-default",click:function(){return e.muteUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.mute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.mute"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0),n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"btn button-default",click:function(){return e.unmuteUsers(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.unmute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("user_card.unmute"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0)])]})),item:(0,l.w5)((function(e){var t=e.item;return[(0,l.Wm)(d,{"user-id":t},null,8,["user-id"])]})),empty:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.no_mutes")),1)]})),_:1},8,["get-key"])],8,te),(0,l._)("div",{label:e.$t("settings.domain_mutes")},[(0,l._)("div",oe,[(0,l.Wm)(i,{filter:e.filterUnMutedDomains,query:e.queryKnownDomains,placeholder:e.$t("settings.type_domains_to_mute")},{default:(0,l.w5)((function(e){return[(0,l.Wm)(m,{domain:e.item},null,8,["domain"])]})),_:1},8,["filter","query","placeholder"])]),(0,l.Wm)(h,{refresh:!0,"get-key":function(e){return e}},{header:(0,l.w5)((function(t){var n=t.selected;return[(0,l._)("div",se,[n.length>0?((0,l.wg)(),(0,l.j4)(u,{key:0,class:"btn button-default",click:function(){return e.unmuteDomains(n)}},{progress:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("domain_mute_card.unmute_progress")),1)]})),default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("domain_mute_card.unmute"))+" ",1)]})),_:2},1032,["click"])):(0,l.kq)("",!0)])]})),item:(0,l.w5)((function(e){var t=e.item;return[(0,l.Wm)(m,{domain:t},null,8,["domain"])]})),empty:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.no_mutes")),1)]})),_:1},8,["get-key"])],8,ae)]})),_:1})],8,ee)]})),_:1})}]]);var tt=["label"],nt={class:"setting-item"},lt={class:"setting-list"},at={class:"select-multiple"},ot={class:"label"},st={class:"option-list"},rt={key:0,class:"setting-item"},it={class:"setting-list"},ut={class:"setting-item"},ct={key:0,class:"BooleanSetting"},dt={key:0,class:"label"},pt=n(84506),mt=n(36968),ft=n.n(mt),ht={key:0,class:"ModifiedIndicator"},gt={class:"modified-tooltip"},bt=n(91447);j.vI.add(B.klh);const wt={components:{Popover:bt.default},props:["changed"]},_t=(0,E.Z)(wt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon"),i=(0,l.up)("Popover");return n.changed?((0,l.wg)(),(0,l.iD)("span",ht,[(0,l.Wm)(i,{trigger:"hover","trigger-attrs":{"aria-label":e.$t("settings.setting_changed")}},{trigger:(0,l.w5)((function(){return[(0,l.Uk)("   "),(0,l.Wm)(r,{icon:"wrench"})]})),content:(0,l.w5)((function(){return[(0,l._)("div",gt,(0,f.zw)(e.$t("settings.setting_changed")),1)]})),_:1},8,["trigger-attrs"])])):(0,l.kq)("",!0)}]]);var kt={key:0,class:"ServerSideIndicator"},vt={class:"serverside-tooltip"};j.vI.add(B.xf3);const yt={components:{Popover:bt.default},props:["serverSide"]},$t=(0,E.Z)(yt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon"),i=(0,l.up)("Popover");return n.serverSide?((0,l.wg)(),(0,l.iD)("span",kt,[(0,l.Wm)(i,{trigger:"hover"},{trigger:(0,l.w5)((function(){return[(0,l.Uk)("   "),(0,l.Wm)(r,{icon:"server","aria-label":e.$t("settings.setting_server_side")},null,8,["aria-label"])]})),content:(0,l.w5)((function(){return[(0,l._)("div",vt,(0,f.zw)(e.$t("settings.setting_server_side")),1)]})),_:1})])):(0,l.kq)("",!0)}]]);function Ct(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const Vt={components:{Checkbox:N.Z,ModifiedIndicator:_t,ServerSideIndicator:$t},props:["path","disabled","expert"],computed:{pathDefault:function(){var e=this.path.split("."),t=(0,pt.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,qe.Z)(l)).join(".")},state:function(){var e=ie()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return ie()(this.$parent,this.pathDefault)},isServerSide:function(){return this.path.startsWith("serverSide_")},isChanged:function(){return!this.path.startsWith("serverSide_")&&this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){var t=this.path.split("."),n=(0,pt.Z)(t),l=n[0],a=n.slice(1);ft()(this.$parent,this.path,e),a.length>0&&ft()(this.$parent,l,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ct(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ct(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},ie()(this.$parent,l)))},reset:function(){ft()(this.$parent,this.path,this.defaultState)}}},Tt=(0,E.Z)(Vt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("ModifiedIndicator"),i=(0,l.up)("ServerSideIndicator"),u=(0,l.up)("Checkbox");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("label",ct,[(0,l.Wm)(u,{"model-value":e.state,disabled:e.disabled,"onUpdate:modelValue":e.update},{default:(0,l.w5)((function(){return[e.$slots.default?((0,l.wg)(),(0,l.iD)("span",dt,[(0,l.WI)(e.$slots,"default")])):(0,l.kq)("",!0),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l.Wm)(r,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"]),(0,l.Wm)(i,{"server-side":e.isServerSide},null,8,["server-side"])]})),_:3},8,["model-value","disabled","onUpdate:modelValue"])])):(0,l.kq)("",!0)}]]);var Ut=n(29439),xt=n(85565),Lt=n(65405);function Ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function Wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ot(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ot(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const zt=function(){return Wt(Wt(Wt(Wt({user:function(){return this.$store.state.users.currentUser}},Object.keys(xt.W2).map((function(e){return[e+"DefaultValue",function(){return this.$store.getters.defaultConfig[e]}]})).reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return Wt(Wt({},e),{},(0,S.Z)({},l,a))}),{})),Object.keys(xt.W2).map((function(e){return[e,{get:function(){return this.$store.getters.mergedConfig[e]},set:function(t){this.$store.dispatch("setOption",{name:e,value:t})}}]})).reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return Wt(Wt({},e),{},(0,S.Z)({},l,a))}),{})),Object.keys(Lt.W2).map((function(e){return["serverSide_"+e,{get:function(){return this.$store.state.serverSideConfig[e]},set:function(t){this.$store.dispatch("setServerSideOption",{name:e,value:t})}}]})).reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return Wt(Wt({},e),{},(0,S.Z)({},l,a))}),{})),{},{useStreamingApi:{get:function(){return this.$store.getters.mergedConfig.useStreamingApi},set:function(e){var t=this;(e?this.$store.dispatch("enableMastoSockets"):this.$store.dispatch("disableMastoSockets")).then((function(){t.$store.dispatch("setOption",{name:"useStreamingApi",value:e})})).catch((function(e){console.error("Failed starting MastoAPI Streaming socket",e),t.$store.dispatch("disableMastoSockets"),t.$store.dispatch("setOption",{name:"useStreamingApi",value:!1})}))}}})};function St(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const Pt={data:function(){return{activeTab:"profile",notificationSettings:this.$store.state.users.currentUser.notification_settings,newDomainToMute:""}},components:{BooleanSetting:Tt},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?St(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):St(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({user:function(){return this.$store.state.users.currentUser}},zt()),methods:{updateNotificationSettings:function(){this.$store.state.api.backendInteractor.updateNotificationSettings({settings:this.notificationSettings})}}},Dt=(0,E.Z)(Pt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("BooleanSetting");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.notifications")},[(0,l._)("div",nt,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.notification_setting_filters")),1),(0,l._)("ul",lt,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"serverSide_blockNotificationsFromStrangers"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_setting_block_from_strangers")),1)]})),_:1})]),(0,l._)("li",at,[(0,l._)("span",ot,(0,f.zw)(e.$t("settings.notification_visibility")),1),(0,l._)("ul",st,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.likes"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_visibility_likes")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.repeats"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_visibility_repeats")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.follows"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_visibility_follows")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.mentions"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_visibility_mentions")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.moves"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_visibility_moves")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.emojiReactions"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_visibility_emoji_reactions")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"notificationVisibility.polls"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_visibility_polls")),1)]})),_:1})])])])])]),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("div",rt,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.notification_setting_privacy")),1),(0,l._)("ul",it,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"webPushNotifications",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.enable_web_push_notifications")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"serverSide_webPushHideContents",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.notification_setting_hide_notification_contents")),1)]})),_:1})])])])):(0,l.kq)("",!0),(0,l._)("div",ut,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.notification_mutes")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.notification_blocks")),1)])],8,tt)}]]);var It=["label"],jt={class:"setting-item"},Bt={class:"setting-list"},At={key:0,class:"setting-item"},Et={class:"setting-list"},Ft=n(23279),qt=n.n(Ft),Zt=n(92742),Mt=n.n(Zt),Rt=n(63105),Nt=n.n(Rt),Ht={key:0,class:"ChoiceSetting"},Yt=["value"],Kt=n(76990);const Gt={components:{Select:Kt.Z,ModifiedIndicator:_t,ServerSideIndicator:$t},props:["path","disabled","options","expert"],computed:{pathDefault:function(){var e=this.path.split("."),t=(0,pt.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,qe.Z)(l)).join(".")},state:function(){var e=ie()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return ie()(this.$parent,this.pathDefault)},isServerSide:function(){return this.path.startsWith("serverSide_")},isChanged:function(){return!this.path.startsWith("serverSide_")&&this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){ft()(this.$parent,this.path,e)},reset:function(){ft()(this.$parent,this.path,this.defaultState)}}},Jt=(0,E.Z)(Gt,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("ModifiedIndicator"),u=(0,l.up)("ServerSideIndicator");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("label",Ht,[(0,l.WI)(e.$slots,"default"),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l.Wm)(r,{"model-value":e.state,disabled:e.disabled,"onUpdate:modelValue":e.update},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.options,(function(t){return(0,l.wg)(),(0,l.iD)("option",{key:t.key,value:t.value},(0,f.zw)(t.label)+" "+(0,f.zw)(t.value===e.defaultState?e.$t("settings.instance_default_simple"):""),9,Yt)})),128))]})),_:1},8,["model-value","disabled","onUpdate:modelValue"]),(0,l.Wm)(i,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"]),(0,l.Wm)(u,{"server-side":e.isServerSide},null,8,["server-side"])])):(0,l.kq)("",!0)}]]);var Qt={key:0,class:"IntegerSetting"},Xt=["for"],en=["id","disabled","min","value"];const tn={components:{ModifiedIndicator:_t},props:{path:String,disabled:Boolean,min:Number,expert:[Number,String]},computed:{pathDefault:function(){var e=this.path.split("."),t=(0,pt.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,qe.Z)(l)).join(".")},state:function(){var e=ie()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return ie()(this.$parent,this.pathDefault)},isChanged:function(){return this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){ft()(this.$parent,this.path,parseInt(e.target.value))},reset:function(){ft()(this.$parent,this.path,this.defaultState)}}},nn=(0,E.Z)(tn,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("ModifiedIndicator");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("span",Qt,[(0,l._)("label",{for:e.path},[(0,l.WI)(e.$slots,"default")],8,Xt),(0,l._)("input",{id:e.path,class:"number-input",type:"number",step:"1",disabled:e.disabled,min:e.min||0,value:e.state,onChange:t[0]||(t[0]=function(){return e.update&&e.update.apply(e,arguments)})},null,40,en),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l.Wm)(r,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"])])):(0,l.kq)("",!0)}]]);function ln(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function an(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ln(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ln(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const on={data:function(){var e=this;return{muteWordsStringLocal:this.$store.getters.mergedConfig.muteWords.join("\n"),replyVisibilityOptions:["all","following","self"].map((function(t){return{key:t,value:t,label:e.$t("settings.reply_visibility_".concat(t))}}))}},components:{BooleanSetting:Tt,ChoiceSetting:Jt,IntegerSetting:nn},computed:an(an({},zt()),{},{muteWordsString:{get:function(){return this.muteWordsStringLocal},set:function(e){this.muteWordsStringLocal=e,this.debouncedSetMuteWords(e)}},debouncedSetMuteWords:function(){var e=this;return qt()((function(t){e.$store.dispatch("setOption",{name:"muteWords",value:Nt()(t.split("\n"),(function(e){return Mt()(e).length>0}))})}),1e3)}}),watch:{replyVisibility:function(){this.$store.dispatch("queueFlushAll")}}},sn=(0,E.Z)(on,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("BooleanSetting"),i=(0,l.up)("ChoiceSetting"),u=(0,l.up)("IntegerSetting");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.filtering")},[(0,l._)("div",jt,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.posts")),1),(0,l._)("ul",Bt,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideFilteredStatuses"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_filtered_statuses")),1)]})),_:1}),(0,l._)("ul",{class:(0,f.C_)(["setting-list suboptions",[{disabled:!e.streaming}]])},[(0,l._)("li",null,[(0,l.Wm)(r,{disabled:e.hideFilteredStatuses,path:"hideWordFilteredPosts"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_wordfiltered_statuses")),1)]})),_:1},8,["disabled"])]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(r,{key:0,disabled:e.hideFilteredStatuses,path:"hideMutedThreads"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_muted_threads")),1)]})),_:1},8,["disabled"])):(0,l.kq)("",!0)]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(r,{key:0,disabled:e.hideFilteredStatuses,path:"hideMutedPosts"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_muted_posts")),1)]})),_:1},8,["disabled"])):(0,l.kq)("",!0)])],2)]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"muteBotStatuses"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.mute_bot_posts")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hidePostStats"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_post_stats")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideBotIndication"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_bot_indication")),1)]})),_:1})]),e.user?((0,l.wg)(),(0,l.j4)(i,{key:0,id:"replyVisibility",path:"replyVisibility",options:e.replyVisibilityOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.replies_in_timeline")),1)]})),_:1},8,["options"])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l._)("h3",null,(0,f.zw)(e.$t("settings.wordfilter")),1),(0,l.wy)((0,l._)("textarea",{id:"muteWords","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.muteWordsString=t}),class:"resize-height"},null,512),[[me.nr,e.muteWordsString]]),(0,l._)("div",null,(0,f.zw)(e.$t("settings.filtering_explanation")),1)]),(0,l._)("h3",null,(0,f.zw)(e.$t("settings.attachments")),1),(0,l._)("li",null,[(0,l.Wm)(u,{path:"maxThumbnails",expert:"1",min:0},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.max_thumbnails")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideAttachments"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_attachments_in_tl")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideAttachmentsInConv"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_attachments_in_convo")),1)]})),_:1})])])]),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("div",At,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.user_profiles")),1),(0,l._)("ul",Et,[(0,l._)("li",null,[(0,l.Wm)(r,{path:"hideUserStats"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_user_stats")),1)]})),_:1})])])])):(0,l.kq)("",!0)],8,It)}]]);var rn=["label"],un={class:"setting-item"},cn={key:0},dn={class:"setting-item"},pn={key:0},mn={key:1},fn={key:2},hn={class:"setting-item"},gn={class:"oauth-tokens"},bn=(0,l._)("th",null,null,-1),wn={class:"actions"},_n=["onClick"],kn={class:"setting-item"},vn=(0,l._)("th",null,null,-1),yn={class:"actions"},$n=["onClick"],Cn={key:0,class:"alert error"},Vn=(0,l._)("code",{place:"example"}," foo@example.org ",-1),Tn={key:1},Un={key:2},xn={class:"setting-item"},Ln=(0,l._)("code",{place:"example"}," foo@example.org ",-1),On={key:0},Wn={key:1},zn={class:"setting-item"},Sn={key:0},Pn={key:1},Dn={key:2},In={key:3},jn={key:0,class:"setting-item mfa-settings"},Bn={class:"mfa-heading"},An={key:0,class:"setting-item"},En=(0,l._)("br",null,null,-1),Fn={key:0},qn={key:2},Zn={class:"warning"},Mn={key:1},Rn={key:0},Nn={key:1},Hn={class:"setup-otp"},Yn={class:"qr-code"},Kn={class:"verify"},Gn={class:"confirm-otp-actions"},Jn={key:0,class:"alert error"},Qn=n(15861),Xn=n(64687),el=n.n(Xn),tl={class:"mfa-backup-codes"},nl={key:0},ll={key:1},al={class:"alert warning"},ol={class:"backup-codes"};const sl={props:{backupCodes:{type:Object,default:function(){return{inProgress:!1,codes:[]}}}},data:function(){return{}},computed:{inProgress:function(){return this.backupCodes.inProgress},ready:function(){return this.backupCodes.codes.length>0},displayTitle:function(){return this.inProgress||this.ready}}},rl=(0,E.Z)(sl,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",tl,[e.displayTitle?((0,l.wg)(),(0,l.iD)("h4",nl,(0,f.zw)(e.$t("settings.mfa.recovery_codes")),1)):(0,l.kq)("",!0),e.inProgress?((0,l.wg)(),(0,l.iD)("i",ll,(0,f.zw)(e.$t("settings.mfa.waiting_a_recovery_codes")),1)):(0,l.kq)("",!0),e.ready?((0,l.wg)(),(0,l.iD)(l.HY,{key:2},[(0,l._)("p",al,(0,f.zw)(e.$t("settings.mfa.recovery_codes_warning")),1),(0,l._)("ul",ol,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.backupCodes.codes,(function(e){return(0,l.wg)(),(0,l.iD)("li",{key:e},(0,f.zw)(e),1)})),128))])],64)):(0,l.kq)("",!0)])}]]);var il={class:"method-item"},ul=["disabled"],cl={key:1,class:"alert error"},dl=["disabled"],pl=["disabled"];const ml={props:["disabled"],data:function(){return{}},methods:{confirm:function(){this.$emit("confirm")},cancel:function(){this.$emit("cancel")}}},fl=(0,E.Z)(ml,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",null,[(0,l.WI)(e.$slots,"default"),(0,l._)("button",{class:"btn button-default",disabled:e.disabled,onClick:t[0]||(t[0]=function(){return e.confirm&&e.confirm.apply(e,arguments)})},(0,f.zw)(e.$t("general.confirm")),9,dl),(0,l._)("button",{class:"btn button-default",disabled:e.disabled,onClick:t[1]||(t[1]=function(){return e.cancel&&e.cancel.apply(e,arguments)})},(0,f.zw)(e.$t("general.cancel")),9,pl)])}]]);function hl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const gl={props:["settings"],data:function(){return{error:!1,currentPassword:"",deactivate:!1,inProgress:!1}},components:{confirm:fl},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hl(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({isActivated:function(){return this.settings.totp}},(0,H.rn)({backendInteractor:function(e){return e.api.backendInteractor}})),methods:{doActivate:function(){this.$emit("activate")},cancelDeactivate:function(){this.deactivate=!1},doDeactivate:function(){this.error=null,this.deactivate=!0},confirmDeactivate:function(){var e=this;this.error=null,this.inProgress=!0,this.backendInteractor.mfaDisableOTP({password:this.currentPassword}).then((function(t){e.inProgress=!1,t.error?e.error=t.error:(e.deactivate=!1,e.$emit("deactivate"))}))}}};function bl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}const wl={data:function(){return{settings:{available:!1,enabled:!1,totp:!1},setupState:{state:"",setupOTPState:""},backupCodes:{getNewCodes:!1,inProgress:!1,codes:[]},otpSettings:{provisioning_uri:"",key:""},currentPassword:null,otpConfirmToken:null,error:null,readyInit:!1}},components:{"recovery-codes":rl,"totp-item":(0,E.Z)(gl,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("confirm");return(0,l.wg)(),(0,l.iD)("div",null,[(0,l._)("div",il,[(0,l._)("strong",null,(0,f.zw)(e.$t("settings.mfa.otp")),1),e.isActivated?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.doActivate&&e.doActivate.apply(e,arguments)})},(0,f.zw)(e.$t("general.enable")),1)),e.isActivated?((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",disabled:e.deactivate,onClick:t[1]||(t[1]=function(){return e.doDeactivate&&e.doDeactivate.apply(e,arguments)})},(0,f.zw)(e.$t("general.disable")),9,ul)):(0,l.kq)("",!0)]),e.deactivate?((0,l.wg)(),(0,l.j4)(r,{key:0,disabled:e.inProgress,onConfirm:e.confirmDeactivate,onCancel:e.cancelDeactivate},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.enter_current_password_to_confirm"))+": ",1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.currentPassword=t}),type:"password"},null,512),[[me.nr,e.currentPassword]])]})),_:1},8,["disabled","onConfirm","onCancel"])):(0,l.kq)("",!0),e.error?((0,l.wg)(),(0,l.iD)("div",cl,(0,f.zw)(e.error),1)):(0,l.kq)("",!0)])}]]),qrcode:n(99990).Z,confirm:fl},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bl(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({canSetupOTP:function(){return(this.setupInProgress&&this.backupCodesPrepared||this.settings.enabled)&&!this.settings.totp&&!this.setupOTPInProgress},setupInProgress:function(){return""!==this.setupState.state&&"complete"!==this.setupState.state},setupOTPInProgress:function(){return"setupOTP"===this.setupState.state&&!this.completedOTP},prepareOTP:function(){return"prepare"===this.setupState.setupOTPState},confirmOTP:function(){return"confirm"===this.setupState.setupOTPState},completedOTP:function(){return"completed"===this.setupState.setupOTPState},backupCodesPrepared:function(){return!this.backupCodes.inProgress&&this.backupCodes.codes.length>0},confirmNewBackupCodes:function(){return this.backupCodes.getNewCodes}},(0,H.rn)({backendInteractor:function(e){return e.api.backendInteractor}})),methods:{activateOTP:function(){this.settings.enabled||(this.setupState.state="getBackupcodes",this.fetchBackupCodes())},fetchBackupCodes:function(){var e=this;return this.backupCodes.inProgress=!0,this.backupCodes.codes=[],this.backendInteractor.generateMfaBackupCodes().then((function(t){e.backupCodes.codes=t.codes,e.backupCodes.inProgress=!1}))},getBackupCodes:function(){this.backupCodes.getNewCodes=!0},confirmBackupCodes:function(){var e=this;this.fetchBackupCodes().then((function(t){e.backupCodes.getNewCodes=!1}))},cancelBackupCodes:function(){this.backupCodes.getNewCodes=!1},setupOTP:function(){var e=this;this.setupState.state="setupOTP",this.setupState.setupOTPState="prepare",this.backendInteractor.mfaSetupOTP().then((function(t){e.otpSettings=t,e.setupState.setupOTPState="confirm"}))},doConfirmOTP:function(){var e=this;this.error=null,this.backendInteractor.mfaConfirmOTP({token:this.otpConfirmToken,password:this.currentPassword}).then((function(t){t.error?e.error=t.error:e.completeSetup()}))},completeSetup:function(){this.setupState.setupOTPState="complete",this.setupState.state="complete",this.currentPassword=null,this.error=null,this.fetchSettings()},cancelSetup:function(){this.setupState.setupOTPState="",this.setupState.state="",this.currentPassword=null,this.error=null},fetchSettings:function(){var e=this;return(0,Qn.Z)(el().mark((function t(){var n;return el().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.backendInteractor.settingsMFA();case 2:if(!(n=t.sent).error){t.next=5;break}return t.abrupt("return");case 5:return e.settings=n.settings,e.settings.available=!0,t.abrupt("return",n);case 8:case"end":return t.stop()}}),t)})))()}},mounted:function(){var e=this;this.fetchSettings().then((function(){e.readyInit=!0}))}},_l=(0,E.Z)(wl,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("totp-item"),i=(0,l.up)("recovery-codes"),u=(0,l.up)("confirm"),c=(0,l.up)("qrcode");return e.readyInit&&e.settings.available?((0,l.wg)(),(0,l.iD)("div",jn,[(0,l._)("div",Bn,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.mfa.title")),1)]),(0,l._)("div",null,[e.setupInProgress?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("div",An,[(0,l._)("h3",null,(0,f.zw)(e.$t("settings.mfa.authentication_methods")),1),(0,l.Wm)(r,{settings:e.settings,onDeactivate:e.fetchSettings,onActivate:e.activateOTP},null,8,["settings","onDeactivate","onActivate"]),En,e.settings.enabled?((0,l.wg)(),(0,l.iD)("div",Fn,[e.confirmNewBackupCodes?(0,l.kq)("",!0):((0,l.wg)(),(0,l.j4)(i,{key:0,"backup-codes":e.backupCodes},null,8,["backup-codes"])),e.confirmNewBackupCodes?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.getBackupCodes&&e.getBackupCodes.apply(e,arguments)})},(0,f.zw)(e.$t("settings.mfa.generate_new_recovery_codes")),1)),e.confirmNewBackupCodes?((0,l.wg)(),(0,l.iD)("div",qn,[(0,l.Wm)(u,{disabled:e.backupCodes.inProgress,onConfirm:e.confirmBackupCodes,onCancel:e.cancelBackupCodes},{default:(0,l.w5)((function(){return[(0,l._)("p",Zn,(0,f.zw)(e.$t("settings.mfa.warning_of_generate_new_codes")),1)]})),_:1},8,["disabled","onConfirm","onCancel"])])):(0,l.kq)("",!0)])):(0,l.kq)("",!0)])),e.setupInProgress?((0,l.wg)(),(0,l.iD)("div",Mn,[(0,l._)("h3",null,(0,f.zw)(e.$t("settings.mfa.setup_otp")),1),e.setupOTPInProgress?(0,l.kq)("",!0):((0,l.wg)(),(0,l.j4)(i,{key:0,"backup-codes":e.backupCodes},null,8,["backup-codes"])),e.canSetupOTP?((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.cancelSetup&&e.cancelSetup.apply(e,arguments)})},(0,f.zw)(e.$t("general.cancel")),1)):(0,l.kq)("",!0),e.canSetupOTP?((0,l.wg)(),(0,l.iD)("button",{key:2,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.setupOTP&&e.setupOTP.apply(e,arguments)})},(0,f.zw)(e.$t("settings.mfa.setup_otp")),1)):(0,l.kq)("",!0),e.setupOTPInProgress?((0,l.wg)(),(0,l.iD)(l.HY,{key:3},[e.prepareOTP?((0,l.wg)(),(0,l.iD)("i",Rn,(0,f.zw)(e.$t("settings.mfa.wait_pre_setup_otp")),1)):(0,l.kq)("",!0),e.confirmOTP?((0,l.wg)(),(0,l.iD)("div",Nn,[(0,l._)("div",Hn,[(0,l._)("div",Yn,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.mfa.scan.title")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.mfa.scan.desc")),1),(0,l.Wm)(c,{value:e.otpSettings.provisioning_uri,options:{width:200}},null,8,["value"]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.mfa.scan.secret_code"))+": "+(0,f.zw)(e.otpSettings.key),1)]),(0,l._)("div",Kn,[(0,l._)("h4",null,(0,f.zw)(e.$t("general.verify")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.mfa.verify.desc")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.otpConfirmToken=t}),type:"text"},null,512),[[me.nr,e.otpConfirmToken]]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.enter_current_password_to_confirm"))+":",1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.currentPassword=t}),type:"password"},null,512),[[me.nr,e.currentPassword]]),(0,l._)("div",Gn,[(0,l._)("button",{class:"btn button-default",onClick:t[5]||(t[5]=function(){return e.doConfirmOTP&&e.doConfirmOTP.apply(e,arguments)})},(0,f.zw)(e.$t("settings.mfa.confirm_and_enable")),1),(0,l._)("button",{class:"btn button-default",onClick:t[6]||(t[6]=function(){return e.cancelSetup&&e.cancelSetup.apply(e,arguments)})},(0,f.zw)(e.$t("general.cancel")),1)]),e.error?((0,l.wg)(),(0,l.iD)("div",Jn,(0,f.zw)(e.error),1)):(0,l.kq)("",!0)])])])):(0,l.kq)("",!0)],64)):(0,l.kq)("",!0)])):(0,l.kq)("",!0)])])):(0,l.kq)("",!0)}]]);var kl=n(39776);const vl={data:function(){return{newEmail:"",changeEmailError:!1,changeEmailPassword:"",changedEmail:!1,deletingAccount:!1,deleteAccountConfirmPasswordInput:"",deleteAccountError:!1,changePasswordInputs:["","",""],changedPassword:!1,changePasswordError:!1,moveAccountTarget:"",moveAccountPassword:"",movedAccount:!1,moveAccountError:!1,aliases:[],listAliasesError:!1,addAliasTarget:"",addedAlias:!1,addAliasError:!1}},created:function(){this.$store.dispatch("fetchTokens"),this.fetchAliases()},components:{ProgressButton:ze.Z,Mfa:_l,Checkbox:N.Z},computed:{user:function(){return this.$store.state.users.currentUser},pleromaBackend:function(){return this.$store.state.instance.pleromaBackend},oauthTokens:function(){var e=this;return this.$store.state.oauthTokens.tokens.map((function(t){return{id:t.id,appName:t.app_name,validUntil:new Date(t.valid_until).toLocaleDateString(kl.Z.internalToBrowserLocale(e.$i18n.locale))}}))}},methods:{confirmDelete:function(){this.deletingAccount=!0},deleteAccount:function(){var e=this;this.$store.state.api.backendInteractor.deleteAccount({password:this.deleteAccountConfirmPasswordInput}).then((function(t){"success"===t.status?(e.$store.dispatch("logout"),e.$router.push({name:"root"})):e.deleteAccountError=t.error}))},changePassword:function(){var e=this,t={password:this.changePasswordInputs[0],newPassword:this.changePasswordInputs[1],newPasswordConfirmation:this.changePasswordInputs[2]};this.$store.state.api.backendInteractor.changePassword(t).then((function(t){"success"===t.status?(e.changedPassword=!0,e.changePasswordError=!1,e.logout()):(e.changedPassword=!1,e.changePasswordError=t.error)}))},changeEmail:function(){var e=this,t={email:this.newEmail,password:this.changeEmailPassword};this.$store.state.api.backendInteractor.changeEmail(t).then((function(t){"success"===t.status?(e.changedEmail=!0,e.changeEmailError=!1):(e.changedEmail=!1,e.changeEmailError=t.error)}))},moveAccount:function(){var e=this,t={targetAccount:this.moveAccountTarget,password:this.moveAccountPassword};this.$store.state.api.backendInteractor.moveAccount(t).then((function(t){"success"===t.status?(e.movedAccount=!0,e.moveAccountError=!1):(e.movedAccount=!1,e.moveAccountError=t.error)}))},removeAlias:function(e){var t=this;this.$store.state.api.backendInteractor.deleteAlias({alias:e}).then((function(){return t.fetchAliases()}))},addAlias:function(){var e=this;this.$store.state.api.backendInteractor.addAlias({alias:this.addAliasTarget}).then((function(t){e.addedAlias=!0,e.addAliasError=!1,e.addAliasTarget=""})).catch((function(t){e.addedAlias=!1,e.addAliasError=t})).then((function(){return e.fetchAliases()}))},fetchAliases:function(){var e=this;this.$store.state.api.backendInteractor.listAliases().then((function(t){e.aliases=t.aliases,e.listAliasesError=!1})).catch((function(t){e.listAliasesError=t.error}))},logout:function(){this.$store.dispatch("logout"),this.$router.replace("/")},revokeToken:function(e){window.confirm("".concat(this.$i18n.t("settings.revoke_token"),"?"))&&this.$store.dispatch("revokeToken",e)}}},yl=(0,E.Z)(vl,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("mfa"),i=(0,l.up)("FAIcon"),u=(0,l.up)("i18n");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.security_tab")},[(0,l._)("div",un,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.change_email")),1),(0,l._)("div",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.new_email")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.newEmail=t}),type:"email",autocomplete:"email"},null,512),[[me.nr,e.newEmail]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.current_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.changeEmailPassword=t}),type:"password",autocomplete:"current-password"},null,512),[[me.nr,e.changeEmailPassword]])]),(0,l._)("button",{class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.changeEmail&&e.changeEmail.apply(e,arguments)})},(0,f.zw)(e.$t("settings.save")),1),e.changedEmail?((0,l.wg)(),(0,l.iD)("p",cn,(0,f.zw)(e.$t("settings.changed_email")),1)):(0,l.kq)("",!0),!1!==e.changeEmailError?((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l._)("p",null,(0,f.zw)(e.$t("settings.change_email_error")),1),(0,l._)("p",null,(0,f.zw)(e.changeEmailError),1)],64)):(0,l.kq)("",!0)]),(0,l._)("div",dn,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.change_password")),1),(0,l._)("div",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.current_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.changePasswordInputs[0]=t}),type:"password"},null,512),[[me.nr,e.changePasswordInputs[0]]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.new_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.changePasswordInputs[1]=t}),type:"password"},null,512),[[me.nr,e.changePasswordInputs[1]]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.confirm_new_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.changePasswordInputs[2]=t}),type:"password"},null,512),[[me.nr,e.changePasswordInputs[2]]])]),(0,l._)("button",{class:"btn button-default",onClick:t[6]||(t[6]=function(){return e.changePassword&&e.changePassword.apply(e,arguments)})},(0,f.zw)(e.$t("settings.save")),1),e.changedPassword?((0,l.wg)(),(0,l.iD)("p",pn,(0,f.zw)(e.$t("settings.changed_password")),1)):!1!==e.changePasswordError?((0,l.wg)(),(0,l.iD)("p",mn,(0,f.zw)(e.$t("settings.change_password_error")),1)):(0,l.kq)("",!0),e.changePasswordError?((0,l.wg)(),(0,l.iD)("p",fn,(0,f.zw)(e.changePasswordError),1)):(0,l.kq)("",!0)]),(0,l._)("div",hn,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.oauth_tokens")),1),(0,l._)("table",gn,[(0,l._)("thead",null,[(0,l._)("tr",null,[(0,l._)("th",null,(0,f.zw)(e.$t("settings.app_name")),1),(0,l._)("th",null,(0,f.zw)(e.$t("settings.valid_until")),1),bn])]),(0,l._)("tbody",null,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.oauthTokens,(function(t){return(0,l.wg)(),(0,l.iD)("tr",{key:t.id},[(0,l._)("td",null,(0,f.zw)(t.appName),1),(0,l._)("td",null,(0,f.zw)(t.validUntil),1),(0,l._)("td",wn,[(0,l._)("button",{class:"btn button-default",onClick:function(n){return e.revokeToken(t.id)}},(0,f.zw)(e.$t("settings.revoke_token")),9,_n)])])})),128))])])]),(0,l.Wm)(r),(0,l._)("div",kn,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.account_alias")),1),(0,l._)("table",null,[(0,l._)("thead",null,[(0,l._)("tr",null,[(0,l._)("th",null,(0,f.zw)(e.$t("settings.account_alias_table_head")),1),vn])]),(0,l._)("tbody",null,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.aliases,(function(t){return(0,l.wg)(),(0,l.iD)("tr",{key:t},[(0,l._)("td",null,(0,f.zw)(t),1),(0,l._)("td",yn,[(0,l._)("button",{class:"btn button-default",onClick:function(n){return e.removeAlias(t)}},(0,f.zw)(e.$t("settings.remove_alias")),9,$n)])])})),128))])]),e.listAliasesError?((0,l.wg)(),(0,l.iD)("div",Cn,[(0,l.Uk)((0,f.zw)(e.$t("settings.list_aliases_error",{error:e.error}))+" ",1),(0,l.Wm)(i,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("settings.hide_list_aliases_error_action"),onClick:t[7]||(t[7]=function(t){return e.listAliasesError=!1})},null,8,["title"])])):(0,l.kq)("",!0),(0,l._)("div",null,[(0,l.Wm)(u,{path:"settings.new_alias_target",tag:"p"},{default:(0,l.w5)((function(){return[Vn]})),_:1}),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.addAliasTarget=t})},null,512),[[me.nr,e.addAliasTarget]])]),(0,l._)("button",{class:"btn button-default",onClick:t[9]||(t[9]=function(){return e.addAlias&&e.addAlias.apply(e,arguments)})},(0,f.zw)(e.$t("settings.save")),1),e.addedAlias?((0,l.wg)(),(0,l.iD)("p",Tn,(0,f.zw)(e.$t("settings.added_alias")),1)):(0,l.kq)("",!0),!1!==e.addAliasError?((0,l.wg)(),(0,l.iD)("p",Un,(0,f.zw)(e.$t("settings.add_alias_error",{error:e.addAliasError})),1)):(0,l.kq)("",!0)]),(0,l._)("div",xn,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.move_account")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.move_account_notes")),1),(0,l._)("div",null,[(0,l.Wm)(u,{path:"settings.move_account_target",tag:"p"},{default:(0,l.w5)((function(){return[Ln]})),_:1}),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[10]||(t[10]=function(t){return e.moveAccountTarget=t})},null,512),[[me.nr,e.moveAccountTarget]])]),(0,l._)("div",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.current_password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[11]||(t[11]=function(t){return e.moveAccountPassword=t}),type:"password",autocomplete:"current-password"},null,512),[[me.nr,e.moveAccountPassword]])]),(0,l._)("button",{class:"btn button-default",onClick:t[12]||(t[12]=function(){return e.moveAccount&&e.moveAccount.apply(e,arguments)})},(0,f.zw)(e.$t("settings.save")),1),e.movedAccount?((0,l.wg)(),(0,l.iD)("p",On,(0,f.zw)(e.$t("settings.moved_account")),1)):(0,l.kq)("",!0),!1!==e.moveAccountError?((0,l.wg)(),(0,l.iD)("p",Wn,(0,f.zw)(e.$t("settings.move_account_error",{error:e.moveAccountError})),1)):(0,l.kq)("",!0)]),(0,l._)("div",zn,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.delete_account")),1),e.deletingAccount?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("p",Sn,(0,f.zw)(e.$t("settings.delete_account_description")),1)),e.deletingAccount?((0,l.wg)(),(0,l.iD)("div",Pn,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.delete_account_instructions")),1),(0,l._)("p",null,(0,f.zw)(e.$t("login.password")),1),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[13]||(t[13]=function(t){return e.deleteAccountConfirmPasswordInput=t}),type:"password"},null,512),[[me.nr,e.deleteAccountConfirmPasswordInput]]),(0,l._)("button",{class:"btn button-default",onClick:t[14]||(t[14]=function(){return e.deleteAccount&&e.deleteAccount.apply(e,arguments)})},(0,f.zw)(e.$t("settings.delete_account")),1)])):(0,l.kq)("",!0),!1!==e.deleteAccountError?((0,l.wg)(),(0,l.iD)("p",Dn,(0,f.zw)(e.$t("settings.delete_account_error")),1)):(0,l.kq)("",!0),e.deleteAccountError?((0,l.wg)(),(0,l.iD)("p",In,(0,f.zw)(e.deleteAccountError),1)):(0,l.kq)("",!0),e.deletingAccount?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:4,class:"btn button-default",onClick:t[15]||(t[15]=function(){return e.confirmDelete&&e.confirmDelete.apply(e,arguments)})},(0,f.zw)(e.$t("settings.delete_account")),1))])],8,rn)}]]);var $l={class:"profile-tab"},Cl={class:"setting-item"},Vl={key:0},Tl={key:1},Ul=["onUpdate:modelValue","placeholder"],xl=["onUpdate:modelValue","placeholder"],Ll=["onClick"],Ol=["disabled"],Wl={class:"setting-item"},zl={class:"visibility-notice"},Sl={class:"current-avatar-container"},Pl=["src"],Dl=["title"],Il={class:"setting-item"},jl={class:"banner-background-preview"},Bl=["src"],Al=["title"],El=["src"],Fl={class:"setting-item"},ql={class:"banner-background-preview"},Zl=["src"],Ml=["title"],Rl=["src"],Nl={class:"setting-item"},Hl={class:"setting-list"},Yl=n(27955),Kl=n.n(Yl),Gl=n(82492),Jl=n.n(Gl),Ql={class:"image-cropper"},Xl={key:0},ea={class:"image-cropper-image-container"},ta=["src"],na={class:"image-cropper-buttons-wrapper"},la=["disabled","textContent"],aa=["disabled","textContent"],oa=["disabled","textContent"],sa=["accept"],ra=n(71002),ia=n(33129),ua=n.n(ia);j.vI.add(B.IJ7);const ca={props:{trigger:{type:[String,window.Element],required:!0},submitHandler:{type:Function,required:!0},cropperOptions:{type:Object,default:function(){return{aspectRatio:1,autoCropArea:1,viewMode:1,movable:!1,zoomable:!1,guides:!1}}},mimes:{type:String,default:"image/png, image/gif, image/jpeg, image/bmp, image/x-icon"},saveButtonLabel:{type:String},saveWithoutCroppingButtonlabel:{type:String},cancelButtonLabel:{type:String}},data:function(){return{cropper:void 0,dataUrl:void 0,filename:void 0,submitting:!1}},computed:{saveText:function(){return this.saveButtonLabel||this.$t("image_cropper.save")},saveWithoutCroppingText:function(){return this.saveWithoutCroppingButtonlabel||this.$t("image_cropper.save_without_cropping")},cancelText:function(){return this.cancelButtonLabel||this.$t("image_cropper.cancel")}},methods:{destroy:function(){this.cropper&&this.cropper.destroy(),this.$refs.input.value="",this.dataUrl=void 0,this.$emit("close")},submit:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.submitting=!0,this.submitHandler(t&&this.cropper,this.file).then((function(){return e.destroy()})).finally((function(){e.submitting=!1}))},pickImage:function(){this.$refs.input.click()},createCropper:function(){this.cropper=new(ua())(this.$refs.img,this.cropperOptions)},getTriggerDOM:function(){return"object"===(0,ra.Z)(this.trigger)?this.trigger:document.querySelector(this.trigger)},readFile:function(){var e=this,t=this.$refs.input;if(null!=t.files&&null!=t.files[0]){this.file=t.files[0];var n=new window.FileReader;n.onload=function(t){e.dataUrl=t.target.result,e.$emit("open")},n.readAsDataURL(this.file),this.$emit("changed",this.file,n)}}},mounted:function(){var e=this.getTriggerDOM();e?e.addEventListener("click",this.pickImage):this.$emit("error","No image make trigger found.","user"),this.$refs.input.addEventListener("change",this.readFile)},beforeUnmount:function(){var e=this.getTriggerDOM();e&&e.removeEventListener("click",this.pickImage),this.$refs.input.removeEventListener("change",this.readFile)}},da=(0,E.Z)(ca,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",Ql,[e.dataUrl?((0,l.wg)(),(0,l.iD)("div",Xl,[(0,l._)("div",ea,[(0,l._)("img",{ref:"img",src:e.dataUrl,alt:"",onLoad:t[0]||(t[0]=(0,me.iM)((function(){return e.createCropper&&e.createCropper.apply(e,arguments)}),["stop"]))},null,40,ta)]),(0,l._)("div",na,[(0,l._)("button",{class:"button-default btn",type:"button",disabled:e.submitting,onClick:t[1]||(t[1]=function(t){return e.submit()}),textContent:(0,f.zw)(e.saveText)},null,8,la),(0,l._)("button",{class:"button-default btn",type:"button",disabled:e.submitting,onClick:t[2]||(t[2]=function(){return e.destroy&&e.destroy.apply(e,arguments)}),textContent:(0,f.zw)(e.cancelText)},null,8,aa),(0,l._)("button",{class:"button-default btn",type:"button",disabled:e.submitting,onClick:t[3]||(t[3]=function(t){return e.submit(!1)}),textContent:(0,f.zw)(e.saveWithoutCroppingText)},null,8,oa),e.submitting?((0,l.wg)(),(0,l.j4)(r,{key:0,spin:"",icon:"circle-notch"})):(0,l.kq)("",!0)])])):(0,l.kq)("",!0),(0,l._)("input",{ref:"input",type:"file",class:"image-cropper-img-input",accept:e.mimes},null,8,sa)])}]]);var pa=n(54110),ma=n(65079),fa=n(86319),ha=n(19003),ga=n(73414),ba=n(37230);function wa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function _a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wa(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}j.vI.add(B.NBC,B.r8p,B.IJ7);var ka={data:function(){return{newName:this.$store.state.users.currentUser.name_unescaped,newBio:Kl()(this.$store.state.users.currentUser.description),newLocked:this.$store.state.users.currentUser.locked,newBirthday:this.$store.state.users.currentUser.birthday,showBirthday:this.$store.state.users.currentUser.show_birthday,newFields:this.$store.state.users.currentUser.fields.map((function(e){return{name:e.name,value:e.value}})),showRole:this.$store.state.users.currentUser.show_role,role:this.$store.state.users.currentUser.role,bot:this.$store.state.users.currentUser.bot,pickAvatarBtnVisible:!0,bannerUploading:!1,backgroundUploading:!1,banner:null,bannerPreview:null,background:null,backgroundPreview:null,emailLanguage:this.$store.state.users.currentUser.language||[""]}},components:{ScopeSelector:pa.Z,ImageCropper:da,EmojiInput:fa.Z,Autosuggest:we,ProgressButton:ze.Z,Checkbox:N.Z,BooleanSetting:Tt,InterfaceLanguageSwitcher:ga.Z},computed:_a(_a({user:function(){return this.$store.state.users.currentUser}},zt()),{},{emojiUserSuggestor:function(){return(0,ha.ZP)({emoji:[].concat((0,qe.Z)(this.$store.getters.standardEmojiList),(0,qe.Z)(this.$store.state.instance.customEmoji)),store:this.$store})},emojiSuggestor:function(){return(0,ha.ZP)({emoji:[].concat((0,qe.Z)(this.$store.getters.standardEmojiList),(0,qe.Z)(this.$store.state.instance.customEmoji))})},userSuggestor:function(){return(0,ha.ZP)({store:this.$store})},fieldsLimits:function(){return this.$store.state.instance.fieldsLimits},maxFields:function(){return this.fieldsLimits?this.fieldsLimits.maxFields:0},defaultAvatar:function(){return this.$store.state.instance.server+this.$store.state.instance.defaultAvatar},defaultBanner:function(){return this.$store.state.instance.server+this.$store.state.instance.defaultBanner},isDefaultAvatar:function(){var e=this.$store.state.instance.defaultAvatar;return!this.$store.state.users.currentUser.profile_image_url||this.$store.state.users.currentUser.profile_image_url.includes(e)},isDefaultBanner:function(){var e=this.$store.state.instance.defaultBanner;return!this.$store.state.users.currentUser.cover_photo||this.$store.state.users.currentUser.cover_photo.includes(e)},isDefaultBackground:function(){return!this.$store.state.users.currentUser.background_image},avatarImgSrc:function(){return this.$store.state.users.currentUser.profile_image_url_original||this.defaultAvatar},bannerImgSrc:function(){return this.$store.state.users.currentUser.cover_photo||this.defaultBanner}}),methods:{updateProfile:function(){var e=this,t={note:this.newBio,locked:this.newLocked,display_name:this.newName,fields_attributes:this.newFields.filter((function(e){return null!=e})),bot:this.bot,show_role:this.showRole,birthday:this.newBirthday||"",show_birthday:this.showBirthday};this.emailLanguage&&(t.language=kl.Z.internalToBackendLocaleMulti(this.emailLanguage)),this.$store.state.api.backendInteractor.updateProfile({params:t}).then((function(t){e.newFields.splice(t.fields.length),Jl()(e.newFields,t.fields),e.$store.commit("addNewUsers",[t]),e.$store.commit("setCurrentUser",t)}))},changeVis:function(e){this.newDefaultScope=e},addField:function(){return this.newFields.length<this.maxFields&&(this.newFields.push({name:"",value:""}),!0)},deleteField:function(e,t){this.newFields.splice(e,1)},uploadFile:function(e,t){var n=this,l=t.target.files[0];if(l)if(l.size>this.$store.state.instance[e+"limit"]){var a=ma.Z.fileSizeFormat(l.size),o=ma.Z.fileSizeFormat(this.$store.state.instance[e+"limit"]);this.$store.dispatch("pushGlobalNotice",{messageKey:"upload.error.message",messageArgs:[this.$t("upload.error.file_too_big",{filesize:a.num,filesizeunit:a.unit,allowedsize:o.num,allowedsizeunit:o.unit})],level:"error"})}else{var s=new FileReader;s.onload=function(t){var a=t.target.result;n[e+"Preview"]=a,n[e]=l},s.readAsDataURL(l)}},resetAvatar:function(){window.confirm(this.$t("settings.reset_avatar_confirm"))&&this.submitAvatar(void 0,"")},resetBanner:function(){window.confirm(this.$t("settings.reset_banner_confirm"))&&this.submitBanner("")},resetBackground:function(){window.confirm(this.$t("settings.reset_background_confirm"))&&this.submitBackground("")},submitAvatar:function(e,t){var n=this;return new Promise((function(l,a){function o(e,t){n.$store.state.api.backendInteractor.updateProfileImages({avatar:e,avatarName:t}).then((function(e){n.$store.commit("addNewUsers",[e]),n.$store.commit("setCurrentUser",e),l()})).catch((function(e){n.displayUploadError(e),a(e)}))}e?e.getCroppedCanvas().toBlob((function(e){return o(e,t.name)}),t.type):o(t,t.name)}))},submitBanner:function(e){var t=this;(this.bannerPreview||""===e)&&(this.bannerUploading=!0,this.$store.state.api.backendInteractor.updateProfileImages({banner:e}).then((function(e){t.$store.commit("addNewUsers",[e]),t.$store.commit("setCurrentUser",e),t.bannerPreview=null})).catch(this.displayUploadError).finally((function(){t.bannerUploading=!1})))},submitBackground:function(e){var t=this;(this.backgroundPreview||""===e)&&(this.backgroundUploading=!0,this.$store.state.api.backendInteractor.updateProfileImages({background:e}).then((function(e){t.$store.commit("addNewUsers",[e]),t.$store.commit("setCurrentUser",e),t.backgroundPreview=null})).catch(this.displayUploadError).finally((function(){t.backgroundUploading=!1})))},displayUploadError:function(e){this.$store.dispatch("pushGlobalNotice",{messageKey:"upload.error.message",messageArgs:[e.message],level:"error"})},propsToNative:function(e){return(0,ba.X)(e)}}};const va=ka,ya=(0,E.Z)(va,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("EmojiInput"),i=(0,l.up)("Checkbox"),u=(0,l.up)("FAIcon"),c=(0,l.up)("interface-language-switcher"),d=(0,l.up)("image-cropper"),p=(0,l.up)("BooleanSetting");return(0,l.wg)(),(0,l.iD)("div",$l,[(0,l._)("div",Cl,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.name_bio")),1),(0,l._)("p",null,(0,f.zw)(e.$t("settings.name")),1),(0,l.Wm)(r,{modelValue:e.newName,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.newName=t}),"enable-emoji-picker":"",suggest:e.emojiSuggestor},{default:(0,l.w5)((function(n){return[(0,l.wy)((0,l._)("input",(0,l.dG)({id:"username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.newName=t}),class:"name-changer"},e.propsToNative(n)),null,16),[[me.YZ,e.newName]])]})),_:1},8,["modelValue","suggest"]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.bio")),1),(0,l.Wm)(r,{modelValue:e.newBio,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.newBio=t}),"enable-emoji-picker":"",suggest:e.emojiUserSuggestor},{default:(0,l.w5)((function(n){return[(0,l.wy)((0,l._)("textarea",(0,l.dG)({"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.newBio=t}),class:"bio resize-height"},e.propsToNative(n)),null,16),[[me.nr,e.newBio]])]})),_:1},8,["modelValue","suggest"]),"admin"===e.role||"moderator"===e.role?((0,l.wg)(),(0,l.iD)("p",Vl,[(0,l.Wm)(i,{modelValue:e.showRole,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.showRole=t})},{default:(0,l.w5)((function(){return["admin"===e.role?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l.Uk)((0,f.zw)(e.$t("settings.show_admin_badge")),1)],64)):(0,l.kq)("",!0),"moderator"===e.role?((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.Uk)((0,f.zw)(e.$t("settings.show_moderator_badge")),1)],64)):(0,l.kq)("",!0)]})),_:1},8,["modelValue"])])):(0,l.kq)("",!0),(0,l._)("div",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.birthday.label")),1),(0,l.wy)((0,l._)("input",{id:"birthday","onUpdate:modelValue":t[5]||(t[5]=function(t){return e.newBirthday=t}),type:"date",class:"birthday-input"},null,512),[[me.nr,e.newBirthday]]),(0,l.Wm)(i,{modelValue:e.showBirthday,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.showBirthday=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.birthday.show_birthday")),1)]})),_:1},8,["modelValue"])]),e.maxFields>0?((0,l.wg)(),(0,l.iD)("div",Tl,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.profile_fields.label")),1),((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.newFields,(function(t,n){return(0,l.wg)(),(0,l.iD)("div",{key:n,class:"profile-fields"},[(0,l.Wm)(r,{modelValue:e.newFields[n].name,"onUpdate:modelValue":function(t){return e.newFields[n].name=t},"enable-emoji-picker":"","hide-emoji-button":"",suggest:e.userSuggestor},{default:(0,l.w5)((function(t){return[(0,l.wy)((0,l._)("input",(0,l.dG)({"onUpdate:modelValue":function(t){return e.newFields[n].name=t},placeholder:e.$t("settings.profile_fields.name")},e.propsToNative(t)),null,16,Ul),[[me.YZ,e.newFields[n].name]])]})),_:2},1032,["modelValue","onUpdate:modelValue","suggest"]),(0,l.Wm)(r,{modelValue:e.newFields[n].value,"onUpdate:modelValue":function(t){return e.newFields[n].value=t},"enable-emoji-picker":"","hide-emoji-button":"",suggest:e.userSuggestor},{default:(0,l.w5)((function(t){return[(0,l.wy)((0,l._)("input",(0,l.dG)({"onUpdate:modelValue":function(t){return e.newFields[n].value=t},placeholder:e.$t("settings.profile_fields.value")},e.propsToNative(t)),null,16,xl),[[me.YZ,e.newFields[n].value]])]})),_:2},1032,["modelValue","onUpdate:modelValue","suggest"]),(0,l._)("button",{class:"delete-field button-unstyled -hover-highlight",onClick:function(t){return e.deleteField(n)}},[e.newFields.length>1?((0,l.wg)(),(0,l.j4)(u,{key:0,icon:"times"})):(0,l.kq)("",!0)],8,Ll)])})),128)),e.newFields.length<e.maxFields?((0,l.wg)(),(0,l.iD)("button",{key:0,class:"add-field faint button-unstyled -hover-highlight",onClick:t[7]||(t[7]=function(){return e.addField&&e.addField.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"plus"}),(0,l.Uk)(" "+(0,f.zw)(e.$t("settings.profile_fields.add_field")),1)])):(0,l.kq)("",!0)])):(0,l.kq)("",!0),(0,l._)("p",null,[(0,l.Wm)(i,{modelValue:e.bot,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.bot=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.bot")),1)]})),_:1},8,["modelValue"])]),(0,l._)("p",null,[(0,l.Wm)(c,{"prompt-text":e.$t("settings.email_language"),language:e.emailLanguage,"set-language":function(t){return e.emailLanguage=t}},null,8,["prompt-text","language","set-language"])]),(0,l._)("button",{disabled:e.newName&&0===e.newName.length,class:"btn button-default",onClick:t[9]||(t[9]=function(){return e.updateProfile&&e.updateProfile.apply(e,arguments)})},(0,f.zw)(e.$t("settings.save")),9,Ol)]),(0,l._)("div",Wl,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.avatar")),1),(0,l._)("p",zl,(0,f.zw)(e.$t("settings.avatar_size_instruction")),1),(0,l._)("div",Sl,[(0,l._)("img",{src:e.user.profile_image_url_original,class:"current-avatar"},null,8,Pl),!e.isDefaultAvatar&&e.pickAvatarBtnVisible?((0,l.wg)(),(0,l.iD)("button",{key:0,title:e.$t("settings.reset_avatar"),class:"button-unstyled reset-button",onClick:t[10]||(t[10]=function(){return e.resetAvatar&&e.resetAvatar.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"times",type:"button"})],8,Dl)):(0,l.kq)("",!0)]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.set_new_avatar")),1),(0,l.wy)((0,l._)("button",{id:"pick-avatar",class:"button-default btn",type:"button"},(0,f.zw)(e.$t("settings.upload_a_photo")),513),[[me.F8,e.pickAvatarBtnVisible]]),(0,l.Wm)(d,{trigger:"#pick-avatar","submit-handler":e.submitAvatar,onOpen:t[11]||(t[11]=function(t){return e.pickAvatarBtnVisible=!1}),onClose:t[12]||(t[12]=function(t){return e.pickAvatarBtnVisible=!0})},null,8,["submit-handler"])]),(0,l._)("div",Il,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.profile_banner")),1),(0,l._)("div",jl,[(0,l._)("img",{src:e.user.cover_photo},null,8,Bl),e.isDefaultBanner?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"button-unstyled reset-button",title:e.$t("settings.reset_profile_banner"),onClick:t[13]||(t[13]=function(){return e.resetBanner&&e.resetBanner.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"times",type:"button"})],8,Al))]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.set_new_profile_banner")),1),e.bannerPreview?((0,l.wg)(),(0,l.iD)("img",{key:0,class:"banner-background-preview",src:e.bannerPreview},null,8,El)):(0,l.kq)("",!0),(0,l._)("div",null,[(0,l._)("input",{type:"file",onChange:t[14]||(t[14]=function(t){return e.uploadFile("banner",t)})},null,32)]),e.bannerUploading?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"uploading",spin:"",icon:"circle-notch"})):e.bannerPreview?((0,l.wg)(),(0,l.iD)("button",{key:2,class:"btn button-default",onClick:t[15]||(t[15]=function(t){return e.submitBanner(e.banner)})},(0,f.zw)(e.$t("settings.save")),1)):(0,l.kq)("",!0)]),(0,l._)("div",Fl,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.profile_background")),1),(0,l._)("div",ql,[(0,l._)("img",{src:e.user.background_image},null,8,Zl),e.isDefaultBackground?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"button-unstyled reset-button",title:e.$t("settings.reset_profile_background"),onClick:t[16]||(t[16]=function(){return e.resetBackground&&e.resetBackground.apply(e,arguments)})},[(0,l.Wm)(u,{icon:"times",type:"button"})],8,Ml))]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.set_new_profile_background")),1),e.backgroundPreview?((0,l.wg)(),(0,l.iD)("img",{key:0,class:"banner-background-preview",src:e.backgroundPreview},null,8,Rl)):(0,l.kq)("",!0),(0,l._)("div",null,[(0,l._)("input",{type:"file",onChange:t[17]||(t[17]=function(t){return e.uploadFile("background",t)})},null,32)]),e.backgroundUploading?((0,l.wg)(),(0,l.j4)(u,{key:1,class:"uploading",spin:"",icon:"circle-notch"})):e.backgroundPreview?((0,l.wg)(),(0,l.iD)("button",{key:2,class:"btn button-default",onClick:t[18]||(t[18]=function(t){return e.submitBackground(e.background)})},(0,f.zw)(e.$t("settings.save")),1)):(0,l.kq)("",!0)]),(0,l._)("div",Nl,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.account_privacy")),1),(0,l._)("ul",Hl,[(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_locked"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.lock_account_description")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_discoverable"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.discoverable")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_allowFollowingMove"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.allow_following_move")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFavorites"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_favorites_description")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollowers"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_followers_description")),1)]})),_:1}),(0,l._)("ul",{class:(0,f.C_)(["setting-list suboptions",[{disabled:!e.serverSide_hideFollowers}]])},[(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollowersCount",disabled:!e.serverSide_hideFollowers},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_followers_count_description")),1)]})),_:1},8,["disabled"])])],2)]),(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollows"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_follows_description")),1)]})),_:1}),(0,l._)("ul",{class:(0,f.C_)(["setting-list suboptions",[{disabled:!e.serverSide_hideFollows}]])},[(0,l._)("li",null,[(0,l.Wm)(p,{path:"serverSide_hideFollowsCount",disabled:!e.serverSide_hideFollows},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_follows_count_description")),1)]})),_:1},8,["disabled"])])],2)])])])])}]]);var $a=["label"],Ca={class:"setting-item"},Va={class:"setting-list"},Ta={key:0},Ua={key:1},xa={key:2},La={key:3},Oa={class:"column-settings"},Wa={class:"select-multiple"},za={class:"label"},Sa={class:"option-list"},Pa={class:"setting-item"},Da={class:"setting-list"},Ia={key:0,class:"setting-list suboptions"},ja={class:"setting-list suboptions"},Ba={key:0,class:"unavailable"},Aa={key:1},Ea={key:2},Fa={key:3},qa={key:0,class:"setting-item"},Za={class:"setting-list"},Ma={for:"default-vis"},Ra={key:0},Na={key:0,class:"SizeSetting"},Ha=["for"],Ya=["id","disabled","min","value"],Ka=["value"],Ga=["cm","mm","in","px","pt","pc","em","ex","ch","rem","vw","vh","vmin","vmax","%"],Ja=["px","rem","vw"];const Qa={components:{ModifiedIndicator:_t,Select:Kt.Z},props:{path:String,disabled:Boolean,min:Number,units:{type:[String],default:function(){return Ga}},expert:[Number,String]},computed:{pathDefault:function(){var e=this.path.split("."),t=(0,pt.Z)(e),n=t[0],l=t.slice(1);return[n+"DefaultValue"].concat((0,qe.Z)(l)).join(".")},stateUnit:function(){return(this.state||"").replace(/\d+/,"")},stateValue:function(){return(this.state||"").replace(/\D+/,"")},state:function(){var e=ie()(this.$parent,this.path);return void 0===e?this.defaultState:e},defaultState:function(){return ie()(this.$parent,this.pathDefault)},isChanged:function(){return this.state!==this.defaultState},matchesExpertLevel:function(){return(this.expert||0)<=this.$parent.expertLevel}},methods:{update:function(e){ft()(this.$parent,this.path,e)},reset:function(){ft()(this.$parent,this.path,this.defaultState)},updateValue:function(e){ft()(this.$parent,this.path,parseInt(e.target.value)+this.stateUnit)},updateUnit:function(e){ft()(this.$parent,this.path,this.stateValue+e.target.value)}}},Xa=(0,E.Z)(Qa,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("ModifiedIndicator");return e.matchesExpertLevel?((0,l.wg)(),(0,l.iD)("span",Na,[(0,l._)("label",{for:e.path,class:"size-label"},[(0,l.WI)(e.$slots,"default")],8,Ha),(0,l._)("input",{id:e.path,class:"number-input",type:"number",step:"1",disabled:e.disabled,min:e.min||0,value:e.stateValue,onChange:t[0]||(t[0]=function(){return e.updateValue&&e.updateValue.apply(e,arguments)})},null,40,Ya),(0,l.Wm)(r,{id:e.path,"model-value":e.stateUnit,disabled:e.disabled,class:"css-unit-input",onChange:e.updateUnit},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.units,(function(e){return(0,l.wg)(),(0,l.iD)("option",{key:e,value:e},(0,f.zw)(e),9,Ka)})),128))]})),_:1},8,["id","model-value","disabled","onChange"]),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l.Wm)(i,{changed:e.isChanged,onclick:e.reset},null,8,["changed","onclick"])])):(0,l.kq)("",!0)}]]);function eo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}j.vI.add(B.g4A);const to={data:function(){var e=this;return{subjectLineOptions:["email","noop","masto"].map((function(t){return{key:t,value:t,label:e.$t("settings.subject_line_".concat("masto"===t?"mastodon":t))}})),conversationDisplayOptions:["tree","linear"].map((function(t){return{key:t,value:t,label:e.$t("settings.conversation_display_".concat(t))}})),conversationOtherRepliesButtonOptions:["below","inside"].map((function(t){return{key:t,value:t,label:e.$t("settings.conversation_other_replies_button_".concat(t))}})),mentionLinkDisplayOptions:["short","full_for_remote","full"].map((function(t){return{key:t,value:t,label:e.$t("settings.mention_link_display_".concat(t))}})),thirdColumnModeOptions:["none","notifications","postform"].map((function(t){return{key:t,value:t,label:e.$t("settings.third_column_mode_".concat(t))}})),userPopoverAvatarActionOptions:["close","zoom","open"].map((function(t){return{key:t,value:t,label:e.$t("settings.user_popover_avatar_action_".concat(t))}})),loopSilentAvailable:Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype,"mozHasAudio")||Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"webkitAudioDecodedByteCount")||Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"audioTracks")}},components:{BooleanSetting:Tt,ChoiceSetting:Jt,IntegerSetting:nn,SizeSetting:Xa,InterfaceLanguageSwitcher:ga.Z,ScopeSelector:pa.Z,ServerSideIndicator:$t},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?eo(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({horizontalUnits:function(){return Ja},postFormats:function(){return this.$store.state.instance.postFormats||[]},postContentOptions:function(){var e=this;return this.postFormats.map((function(t){return{key:t,value:t,label:e.$t('post_status.content_type["'.concat(t,'"]'))}}))},columns:function(){var e=this.$store.getters.mergedConfig.thirdColumnMode,t="none"===e?[]:["notifs"];return this.$store.getters.mergedConfig.sidebarRight||"postform"===e?[].concat(t,["content","sidebar"]):["sidebar","content"].concat(t)},instanceSpecificPanelPresent:function(){return this.$store.state.instance.showInstanceSpecificPanel},instanceWallpaperUsed:function(){return this.$store.state.instance.background&&!this.$store.state.users.currentUser.background_image},instanceShoutboxPresent:function(){return this.$store.state.instance.shoutAvailable},language:{get:function(){return this.$store.getters.mergedConfig.interfaceLanguage},set:function(e){this.$store.dispatch("setOption",{name:"interfaceLanguage",value:e})}}},zt()),methods:{changeDefaultScope:function(e){this.$store.dispatch("setServerSideOption",{name:"defaultScope",value:e})}}},no=(0,E.Z)(to,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("interface-language-switcher"),i=(0,l.up)("BooleanSetting"),u=(0,l.up)("ChoiceSetting"),c=(0,l.up)("SizeSetting"),d=(0,l.up)("IntegerSetting"),p=(0,l.up)("FAIcon"),m=(0,l.up)("ServerSideIndicator"),h=(0,l.up)("ScopeSelector");return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.general")},[(0,l._)("div",Ca,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.interface")),1),(0,l._)("ul",Va,[(0,l._)("li",null,[(0,l.Wm)(r,{"prompt-text":e.$t("settings.interfaceLanguage"),language:e.language,"set-language":function(t){return e.language=t}},null,8,["prompt-text","language","set-language"])]),e.instanceSpecificPanelPresent?((0,l.wg)(),(0,l.iD)("li",Ta,[(0,l.Wm)(i,{path:"hideISP"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_isp")),1)]})),_:1})])):(0,l.kq)("",!0),e.instanceWallpaperUsed?((0,l.wg)(),(0,l.iD)("li",Ua,[(0,l.Wm)(i,{path:"hideInstanceWallpaper"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_wallpaper")),1)]})),_:1})])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"stopGifs"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.stop_gifs")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"streaming"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.streaming")),1)]})),_:1}),(0,l._)("ul",{class:(0,f.C_)(["setting-list suboptions",[{disabled:!e.streaming}]])},[(0,l._)("li",null,[(0,l.Wm)(i,{path:"pauseOnUnfocused",disabled:!e.streaming},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.pause_on_unfocused")),1)]})),_:1},8,["disabled"])])],2)]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useStreamingApi",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.useStreamingApi")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"virtualScrolling",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.virtual_scrolling")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(u,{id:"userPopoverAvatarAction",path:"userPopoverAvatarAction",options:e.userPopoverAvatarActionOptions,expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.user_popover_avatar_action")),1)]})),_:1},8,["options"])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"userPopoverOverlay",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.user_popover_avatar_overlay")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"alwaysShowNewPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.always_show_post_button")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"autohideFloatingPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.autohide_floating_post_button")),1)]})),_:1})]),e.instanceShoutboxPresent?((0,l.wg)(),(0,l.iD)("li",xa,[(0,l.Wm)(i,{path:"hideShoutbox",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.hide_shoutbox")),1)]})),_:1})])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l._)("h3",null,(0,f.zw)(e.$t("settings.columns")),1)]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"disableStickyHeaders"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.disable_sticky_headers")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"showScrollbars"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.show_scrollbars")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"sidebarRight"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.right_sidebar")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"navbarColumnStretch"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.navbar_column_stretch")),1)]})),_:1})]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(u,{key:0,id:"thirdColumnMode",path:"thirdColumnMode",options:e.thirdColumnModeOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.third_column_mode")),1)]})),_:1},8,["options"])):(0,l.kq)("",!0)]),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("li",La,[(0,l.Uk)((0,f.zw)(e.$t("settings.column_sizes"))+" ",1),(0,l._)("div",Oa,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.columns,(function(t){return(0,l.wg)(),(0,l.j4)(c,{key:t,path:t+"ColumnWidth",units:e.horizontalUnits,expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.column_sizes_"+t)),1)]})),_:2},1032,["path","units"])})),128))])])):(0,l.kq)("",!0),(0,l._)("li",Wa,[(0,l._)("span",za,(0,f.zw)(e.$t("settings.confirm_dialogs")),1),(0,l._)("ul",Sa,[(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnRepeat"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_repeat")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnUnfollow"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_unfollow")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnBlock"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_block")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnMute"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_mute")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnDelete"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_delete")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnLogout"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_logout")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnApproveFollow"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_approve_follow")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnDenyFollow"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_deny_follow")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"modalOnRemoveUserFromFollowers"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.confirm_dialogs_remove_follower")),1)]})),_:1})])])])])]),(0,l._)("div",Pa,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.post_look_feel")),1),(0,l._)("ul",Da,[(0,l._)("li",null,[(0,l.Wm)(u,{id:"conversationDisplay",path:"conversationDisplay",options:e.conversationDisplayOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.conversation_display")),1)]})),_:1},8,["options"])]),"linear"!==e.conversationDisplay?((0,l.wg)(),(0,l.iD)("ul",Ia,[(0,l._)("li",null,[(0,l.Wm)(i,{path:"conversationTreeAdvanced"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.tree_advanced")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"conversationTreeFadeAncestors",expert:1},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.tree_fade_ancestors")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(d,{path:"maxDepthInThread",min:3,expert:1},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.max_depth_in_thread")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(u,{id:"conversationOtherRepliesButton",path:"conversationOtherRepliesButton",options:e.conversationOtherRepliesButtonOptions,expert:1},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.conversation_other_replies_button")),1)]})),_:1},8,["options"])])])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"collapseMessageWithSubject"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.collapse_subject")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"emojiReactionsOnTimeline",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.emoji_reactions_on_timeline")),1)]})),_:1})]),(0,l._)("li",null,[e.user?((0,l.wg)(),(0,l.j4)(i,{key:0,path:"serverSide_stripRichContent",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.no_rich_text_description")),1)]})),_:1})):(0,l.kq)("",!0)]),(0,l._)("h3",null,(0,f.zw)(e.$t("settings.attachments")),1),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useContainFit",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.use_contain_fit")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"hideNsfw"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.nsfw_clickthrough")),1)]})),_:1})]),(0,l._)("ul",ja,[(0,l._)("li",null,[(0,l.Wm)(i,{path:"preloadImage",expert:"1",disabled:!e.hideNsfw},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.preload_images")),1)]})),_:1},8,["disabled"])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useOneClickNsfw",expert:"1",disabled:!e.hideNsfw},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.use_one_click_nsfw")),1)]})),_:1},8,["disabled"])])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"loopVideo",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.loop_video")),1)]})),_:1}),(0,l._)("ul",{class:(0,f.C_)(["setting-list suboptions",[{disabled:!e.streaming}]])},[(0,l._)("li",null,[(0,l.Wm)(i,{path:"loopVideoSilentOnly",expert:"1",disabled:!e.loopVideo||!e.loopSilentAvailable},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.loop_video_silent_only")),1)]})),_:1},8,["disabled"]),e.loopSilentAvailable?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("div",Ba,[(0,l.Wm)(p,{icon:"globe"}),(0,l.Uk)("! "+(0,f.zw)(e.$t("settings.limited_availability")),1)]))])],2)]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"playVideosInModal",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.play_videos_in_modal")),1)]})),_:1})]),(0,l._)("h3",null,(0,f.zw)(e.$t("settings.mention_links")),1),(0,l._)("li",null,[(0,l.Wm)(u,{id:"mentionLinkDisplay",path:"mentionLinkDisplay",options:e.mentionLinkDisplayOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.mention_link_display")),1)]})),_:1},8,["options"])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"mentionLinkShowTooltip",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.mention_link_use_tooltip")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"useAtIcon",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.use_at_icon")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"mentionLinkShowAvatar"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.mention_link_show_avatar")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"mentionLinkFadeDomain",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.mention_link_fade_domain")),1)]})),_:1})]),e.user?((0,l.wg)(),(0,l.iD)("li",Aa,[(0,l.Wm)(i,{path:"mentionLinkBoldenYou",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.mention_link_bolden_you")),1)]})),_:1})])):(0,l.kq)("",!0),e.expertLevel>0?((0,l.wg)(),(0,l.iD)("h3",Ea,(0,f.zw)(e.$t("settings.fun")),1)):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"greentext",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.greentext")),1)]})),_:1})]),e.user?((0,l.wg)(),(0,l.iD)("li",Fa,[(0,l.Wm)(i,{path:"mentionLinkShowYous",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.show_yous")),1)]})),_:1})])):(0,l.kq)("",!0)])]),e.user?((0,l.wg)(),(0,l.iD)("div",qa,[(0,l._)("h2",null,(0,f.zw)(e.$t("settings.composing")),1),(0,l._)("ul",Za,[(0,l._)("li",null,[(0,l._)("label",Ma,[(0,l.Uk)((0,f.zw)(e.$t("settings.default_vis"))+" ",1),(0,l.Wm)(m,{"server-side":!0}),(0,l.Wm)(h,{class:"scope-selector","show-all":!0,"user-default":e.serverSide_defaultScope,"initial-scope":e.serverSide_defaultScope,"on-scope-change":e.changeDefaultScope},null,8,["user-default","initial-scope","on-scope-change"])])]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"sensitiveByDefault"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.sensitive_by_default")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"scopeCopy",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.scope_copy")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"alwaysShowSubjectInput",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.subject_input_always_show")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(u,{id:"subjectLineBehavior",path:"subjectLineBehavior",options:e.subjectLineOptions,expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.subject_line_behavior")),1)]})),_:1},8,["options"])]),e.postFormats.length>0?((0,l.wg)(),(0,l.iD)("li",Ra,[(0,l.Wm)(u,{id:"postContentType",path:"postContentType",options:e.postContentOptions},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.post_status_content_type")),1)]})),_:1},8,["options"])])):(0,l.kq)("",!0),(0,l._)("li",null,[(0,l.Wm)(i,{path:"minimalScopesMode",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.minimal_scopes_mode")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"alwaysShowNewPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.always_show_post_button")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"autohideFloatingPostButton",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.autohide_floating_post_button")),1)]})),_:1})]),(0,l._)("li",null,[(0,l.Wm)(i,{path:"padEmoji",expert:"1"},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.pad_emoji")),1)]})),_:1})])])])):(0,l.kq)("",!0)],8,$a)}]]);var lo=["label"],ao={class:"setting-item"},oo={class:"setting-list"},so={class:"option-list"},ro=["href"],io={class:"option-list"},uo=["href"];const co={data:function(){var e=this.$store.state.instance;return{backendVersion:e.backendVersion,frontendVersion:e.frontendVersion}},computed:{frontendVersionLink:function(){return"https://git.pleroma.social/pleroma/pleroma-fe/commit/"+this.frontendVersion},backendVersionLink:function(){return"https://git.pleroma.social/pleroma/pleroma/commit/"+((e=this.backendVersion.match(/-g(\w+)/i))?e[1]:"");var e}}},po=(0,E.Z)(co,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",{label:e.$t("settings.version.title")},[(0,l._)("div",ao,[(0,l._)("ul",oo,[(0,l._)("li",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.version.backend_version")),1),(0,l._)("ul",so,[(0,l._)("li",null,[(0,l._)("a",{href:e.backendVersionLink,target:"_blank"},(0,f.zw)(e.backendVersion),9,ro)])])]),(0,l._)("li",null,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.version.frontend_version")),1),(0,l._)("ul",io,[(0,l._)("li",null,[(0,l._)("a",{href:e.frontendVersionLink,target:"_blank"},(0,f.zw)(e.frontendVersion),9,uo)])])])])])],8,lo)}]]);var mo={class:"theme-tab"},fo={class:"presets-container"},ho={class:"save-load"},go={key:0,class:"theme-warning"},bo={class:"alert warning"},wo={class:"buttons"},_o={class:"top"},ko={class:"presets"},vo={for:"preset-switcher",class:"select"},yo=["value"],$o={class:"export-import"},Co={class:"save-load-options"},Vo={class:"keep-option"},To={class:"keep-option"},Uo={class:"keep-option"},xo={class:"keep-option"},Lo={class:"keep-option"},Oo=["label"],Wo={class:"tab-header"},zo={class:"tab-header-buttons"},So={class:"color-item"},Po={class:"color-item"},Do={class:"color-item"},Io={class:"color-item"},jo=["label"],Bo={class:"tab-header"},Ao={class:"color-item"},Eo={class:"color-item"},Fo={class:"color-item"},qo={class:"color-item"},Zo={class:"color-item"},Mo={class:"color-item"},Ro={class:"color-item"},No={class:"color-item"},Ho={class:"color-item"},Yo={class:"color-item"},Ko={class:"color-item"},Go={class:"color-item"},Jo={class:"color-item"},Qo={class:"color-item"},Xo={class:"color-item"},es={class:"color-item"},ts={class:"color-item"},ns={class:"color-item"},ls=["label"],as={class:"tab-header"},os=["label"],ss={class:"tab-header shadow-selector"},rs={class:"select-container"},is=["value"],us={class:"override"},cs={for:"override",class:"label"},ds=(0,l._)("label",{class:"checkbox-label",for:"override"},null,-1),ps={key:0},ms=(0,l._)("code",null,"filter: drop-shadow()",-1),fs=(0,l._)("code",null,"drop-shadow",-1),hs=(0,l._)("code",null,"spread-radius",-1),gs=(0,l._)("code",null,"inset",-1),bs=(0,l._)("code",null,"box-shadow",-1),ws=["label"],_s={class:"tab-header"},ks={class:"apply-container"},vs=["disabled"],ys=n(21865),$s=n(77394),Cs=n(25771),Vs=n(44551),Ts=n(40454),Us=["for"],xs={class:"input color-input-field"},Ls=["id","value","disabled"],Os=["id","value","disabled"],Ws={key:1,class:"transparentIndicator"};const zs={components:{Checkbox:N.Z},props:{name:{required:!0,type:String},label:{required:!0,type:String},modelValue:{required:!1,type:String,default:void 0},fallback:{required:!1,type:String,default:void 0},disabled:{required:!1,type:Boolean,default:!1},showOptionalTickbox:{required:!1,type:Boolean,default:!0}},emits:["update:modelValue"],computed:{present:function(){return void 0!==this.modelValue},validColor:function(){return(0,ys.wK)(this.modelValue||this.fallback)},transparentColor:function(){return"transparent"===this.modelValue},computedColor:function(){return this.modelValue&&this.modelValue.startsWith("--")}}},Ss=(0,E.Z)(zs,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Checkbox");return(0,l.wg)(),(0,l.iD)("div",{class:(0,f.C_)(["color-input style-control",{disabled:!s.present||n.disabled}])},[(0,l._)("label",{for:n.name,class:"label"},(0,f.zw)(n.label),9,Us),void 0!==n.fallback&&n.showOptionalTickbox?((0,l.wg)(),(0,l.j4)(r,{key:0,"model-value":s.present,disabled:n.disabled,class:"opt","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.$emit("update:modelValue",void 0===n.modelValue?n.fallback:void 0)})},null,8,["model-value","disabled"])):(0,l.kq)("",!0),(0,l._)("div",xs,[(0,l._)("input",{id:n.name+"-t",class:"textColor unstyled",type:"text",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,onInput:t[1]||(t[1]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,Ls),s.validColor?((0,l.wg)(),(0,l.iD)("input",{key:0,id:n.name,class:"nativeColor unstyled",type:"color",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,onInput:t[2]||(t[2]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,Os)):(0,l.kq)("",!0),s.transparentColor?((0,l.wg)(),(0,l.iD)("div",Ws)):(0,l.kq)("",!0),s.computedColor?((0,l.wg)(),(0,l.iD)("div",{key:2,class:"computedIndicator",style:(0,f.j5)({backgroundColor:n.fallback})},null,4)):(0,l.kq)("",!0)])],2)}]]);var Ps=["for"],Ds=["id","checked"],Is=["for"],js=["id","value","disabled","max","min","step"],Bs=["id","value","disabled","max","min","step"];const As={props:["name","modelValue","fallback","disabled","label","max","min","step","hardMin","hardMax"],emits:["update:modelValue"],computed:{present:function(){return void 0!==this.modelValue}}},Es=(0,E.Z)(As,[["render",function(e,t,n,a,o,s){return(0,l.wg)(),(0,l.iD)("div",{class:(0,f.C_)(["range-control style-control",{disabled:!s.present||n.disabled}])},[(0,l._)("label",{for:n.name,class:"label"},(0,f.zw)(n.label),9,Ps),void 0!==n.fallback?((0,l.wg)(),(0,l.iD)("input",{key:0,id:n.name+"-o",class:"opt",type:"checkbox",checked:s.present,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",s.present?void 0:n.fallback)})},null,40,Ds)):(0,l.kq)("",!0),void 0!==n.fallback?((0,l.wg)(),(0,l.iD)("label",{key:1,class:"opt-l",for:n.name+"-o"},null,8,Is)):(0,l.kq)("",!0),(0,l._)("input",{id:n.name,class:"input-number",type:"range",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,max:n.max||n.hardMax||100,min:n.min||n.hardMin||0,step:n.step||1,onInput:t[1]||(t[1]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,js),(0,l._)("input",{id:n.name,class:"input-number",type:"number",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,max:n.hardMax,min:n.hardMin,step:n.step||1,onInput:t[2]||(t[2]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,Bs)],2)}]]);var Fs=["for"],qs=["id","value","disabled"];const Zs={components:{Checkbox:N.Z},props:["name","modelValue","fallback","disabled"],emits:["update:modelValue"],computed:{present:function(){return void 0!==this.modelValue}}},Ms=(0,E.Z)(Zs,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Checkbox");return(0,l.wg)(),(0,l.iD)("div",{class:(0,f.C_)(["opacity-control style-control",{disabled:!s.present||n.disabled}])},[(0,l._)("label",{for:n.name,class:"label"},(0,f.zw)(e.$t("settings.style.common.opacity")),9,Fs),void 0!==n.fallback?((0,l.wg)(),(0,l.j4)(r,{key:0,"model-value":s.present,disabled:n.disabled,class:"opt","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.$emit("update:modelValue",s.present?void 0:n.fallback)})},null,8,["model-value","disabled"])):(0,l.kq)("",!0),(0,l._)("input",{id:n.name,class:"input-number",type:"number",value:n.modelValue||n.fallback,disabled:!s.present||n.disabled,max:"1",min:"0",step:".05",onInput:t[1]||(t[1]=function(t){return e.$emit("update:modelValue",t.target.value)})},null,40,qs)],2)}]]);var Rs={class:"shadow-preview-container"},Ns=["disabled"],Hs=["disabled"],Ys={class:"wrap"},Ks=["disabled"],Gs={class:"preview-window"},Js=["disabled"],Qs=["disabled"],Xs={class:"wrap"},er=["disabled"],tr={class:"shadow-tweak"},nr=["disabled"],lr=["value"],ar=["disabled"],or=["disabled"],sr=["disabled"],rr=["disabled"],ir=["disabled"],ur={for:"inset",class:"label"},cr=["disabled"],dr=(0,l._)("label",{class:"checkbox-label",for:"inset"},null,-1),pr=["disabled"],mr={for:"spread",class:"label"},fr=["disabled"],hr=["disabled"],gr=["disabled"],br={for:"spread",class:"label"},wr=["disabled"],_r=["disabled"],kr=(0,l._)("code",null,"--variable,mod",-1);function vr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function yr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vr(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}j.vI.add(B.ptq,B.mTx,B.NBC,B.r8p);var $r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return yr({x:0,y:0,blur:0,spread:0,inset:!1,color:"#000000",alpha:1},e)};const Cr={props:["modelValue","fallback","ready"],emits:["update:modelValue"],data:function(){return{selectedId:0,cValue:(this.modelValue||this.fallback||[]).map($r)}},components:{ColorInput:Ss,OpacityInput:Ms,Select:Kt.Z},methods:{add:function(){this.cValue.push($r(this.selected)),this.selectedId=this.cValue.length-1},del:function(){this.cValue.splice(this.selectedId,1),this.selectedId=0===this.cValue.length?void 0:Math.max(this.selectedId-1,0)},moveUp:function(){var e=this.cValue.splice(this.selectedId,1)[0];this.cValue.splice(this.selectedId-1,0,e),this.selectedId-=1},moveDn:function(){var e=this.cValue.splice(this.selectedId,1)[0];this.cValue.splice(this.selectedId+1,0,e),this.selectedId+=1}},beforeUpdate:function(){this.cValue=this.modelValue||this.fallback},computed:{anyShadows:function(){return this.cValue.length>0},anyShadowsFallback:function(){return this.fallback.length>0},selected:function(){return this.ready&&this.anyShadows?this.cValue[this.selectedId]:$r({})},currentFallback:function(){return this.ready&&this.anyShadowsFallback?this.fallback[this.selectedId]:$r({})},moveUpValid:function(){return this.ready&&this.selectedId>0},moveDnValid:function(){return this.ready&&this.selectedId<this.cValue.length-1},present:function(){return this.ready&&void 0!==this.cValue[this.selectedId]&&!this.usingFallback},usingFallback:function(){return void 0===this.modelValue},rgb:function(){return(0,ys.wK)(this.selected.color)},style:function(){return this.ready?{boxShadow:(0,$s.Ot)(this.fallback)}:{}}}},Vr=(0,E.Z)(Cr,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("FAIcon"),u=(0,l.up)("ColorInput"),c=(0,l.up)("OpacityInput"),d=(0,l.up)("i18n-t");return(0,l.wg)(),(0,l.iD)("div",{class:(0,f.C_)(["shadow-control",{disabled:!e.present}])},[(0,l._)("div",Rs,[(0,l._)("div",{disabled:!e.present,class:"y-shift-control"},[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.selected.y=t}),disabled:!e.present,class:"input-number",type:"number"},null,8,Hs),[[me.nr,e.selected.y]]),(0,l._)("div",Ys,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.selected.y=t}),disabled:!e.present,class:"input-range",type:"range",max:"20",min:"-20"},null,8,Ks),[[me.nr,e.selected.y]])])],8,Ns),(0,l._)("div",Gs,[(0,l._)("div",{class:"preview-block",style:(0,f.j5)(e.style)},null,4)]),(0,l._)("div",{disabled:!e.present,class:"x-shift-control"},[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.selected.x=t}),disabled:!e.present,class:"input-number",type:"number"},null,8,Qs),[[me.nr,e.selected.x]]),(0,l._)("div",Xs,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.selected.x=t}),disabled:!e.present,class:"input-range",type:"range",max:"20",min:"-20"},null,8,er),[[me.nr,e.selected.x]])])],8,Js)]),(0,l._)("div",tr,[(0,l._)("div",{disabled:e.usingFallback,class:"id-control style-control"},[(0,l.Wm)(r,{id:"shadow-switcher",modelValue:e.selectedId,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.selectedId=t}),class:"shadow-switcher",disabled:!e.ready||e.usingFallback},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.cValue,(function(t,n){return(0,l.wg)(),(0,l.iD)("option",{key:n,value:n},(0,f.zw)(e.$t("settings.style.shadows.shadow_id",{value:n})),9,lr)})),128))]})),_:1},8,["modelValue","disabled"]),(0,l._)("button",{class:"btn button-default",disabled:!e.ready||!e.present,onClick:t[5]||(t[5]=function(){return e.del&&e.del.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"times"})],8,ar),(0,l._)("button",{class:"btn button-default",disabled:!e.moveUpValid,onClick:t[6]||(t[6]=function(){return e.moveUp&&e.moveUp.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"chevron-up"})],8,or),(0,l._)("button",{class:"btn button-default",disabled:!e.moveDnValid,onClick:t[7]||(t[7]=function(){return e.moveDn&&e.moveDn.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"chevron-down"})],8,sr),(0,l._)("button",{class:"btn button-default",disabled:e.usingFallback,onClick:t[8]||(t[8]=function(){return e.add&&e.add.apply(e,arguments)})},[(0,l.Wm)(i,{"fixed-width":"",icon:"plus"})],8,rr)],8,nr),(0,l._)("div",{disabled:!e.present,class:"inset-control style-control"},[(0,l._)("label",ur,(0,f.zw)(e.$t("settings.style.shadows.inset")),1),(0,l.wy)((0,l._)("input",{id:"inset","onUpdate:modelValue":t[9]||(t[9]=function(t){return e.selected.inset=t}),disabled:!e.present,name:"inset",class:"input-inset",type:"checkbox"},null,8,cr),[[me.e8,e.selected.inset]]),dr],8,ir),(0,l._)("div",{disabled:!e.present,class:"blur-control style-control"},[(0,l._)("label",mr,(0,f.zw)(e.$t("settings.style.shadows.blur")),1),(0,l.wy)((0,l._)("input",{id:"blur","onUpdate:modelValue":t[10]||(t[10]=function(t){return e.selected.blur=t}),disabled:!e.present,name:"blur",class:"input-range",type:"range",max:"20",min:"0"},null,8,fr),[[me.nr,e.selected.blur]]),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[11]||(t[11]=function(t){return e.selected.blur=t}),disabled:!e.present,class:"input-number",type:"number",min:"0"},null,8,hr),[[me.nr,e.selected.blur]])],8,pr),(0,l._)("div",{disabled:!e.present,class:"spread-control style-control"},[(0,l._)("label",br,(0,f.zw)(e.$t("settings.style.shadows.spread")),1),(0,l.wy)((0,l._)("input",{id:"spread","onUpdate:modelValue":t[12]||(t[12]=function(t){return e.selected.spread=t}),disabled:!e.present,name:"spread",class:"input-range",type:"range",max:"20",min:"-20"},null,8,wr),[[me.nr,e.selected.spread]]),(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":t[13]||(t[13]=function(t){return e.selected.spread=t}),disabled:!e.present,class:"input-number",type:"number"},null,8,_r),[[me.nr,e.selected.spread]])],8,gr),(0,l.Wm)(u,{modelValue:e.selected.color,"onUpdate:modelValue":t[14]||(t[14]=function(t){return e.selected.color=t}),disabled:!e.present,label:e.$t("settings.style.common.color"),fallback:e.currentFallback.color,"show-optional-tickbox":!1,name:"shadow"},null,8,["modelValue","disabled","label","fallback"]),(0,l.Wm)(c,{modelValue:e.selected.alpha,"onUpdate:modelValue":t[15]||(t[15]=function(t){return e.selected.alpha=t}),disabled:!e.present},null,8,["modelValue","disabled"]),(0,l.Wm)(d,{scope:"global",keypath:"settings.style.shadows.hintV3",tag:"p"},{default:(0,l.w5)((function(){return[kr]})),_:1})])],2)}]]);var Tr=["for"],Ur=["id","checked"],xr=["for"],Lr=["value"],Or=["id"];const Wr={components:{Select:Kt.Z},props:["name","label","modelValue","fallback","options","no-inherit"],emits:["update:modelValue"],data:function(){return{lValue:this.modelValue,availableOptions:[this.noInherit?"":"inherit","custom"].concat((0,qe.Z)(this.options||[]),["serif","monospace","sans-serif"]).filter((function(e){return e}))}},beforeUpdate:function(){this.lValue=this.modelValue},computed:{present:function(){return void 0!==this.lValue},dValue:function(){return this.lValue||this.fallback||{}},family:{get:function(){return this.dValue.family},set:function(e){ft()(this.lValue,"family",e),this.$emit("update:modelValue",this.lValue)}},isCustom:function(){return"custom"===this.preset},preset:{get:function(){return"serif"===this.family||"sans-serif"===this.family||"monospace"===this.family||"inherit"===this.family?this.family:"custom"},set:function(e){this.family="custom"===e?"":e}}}},zr=(0,E.Z)(Wr,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select");return(0,l.wg)(),(0,l.iD)("div",{class:(0,f.C_)(["font-control style-control",{custom:e.isCustom}])},[(0,l._)("label",{for:"custom"===e.preset?e.name:e.name+"-font-switcher",class:"label"},(0,f.zw)(e.label),9,Tr),void 0!==e.fallback?((0,l.wg)(),(0,l.iD)("input",{key:0,id:e.name+"-o",class:"opt exlcude-disabled",type:"checkbox",checked:e.present,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",void 0===e.modelValue?e.fallback:void 0)})},null,40,Ur)):(0,l.kq)("",!0),void 0!==e.fallback?((0,l.wg)(),(0,l.iD)("label",{key:1,class:"opt-l",for:e.name+"-o"},null,8,xr)):(0,l.kq)("",!0),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l.Wm)(r,{id:e.name+"-font-switcher",modelValue:e.preset,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.preset=t}),disabled:!e.present,class:"font-switcher"},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.availableOptions,(function(t){return(0,l.wg)(),(0,l.iD)("option",{key:t,value:t},(0,f.zw)("custom"===t?e.$t("settings.style.fonts.custom"):t),9,Lr)})),128))]})),_:1},8,["id","modelValue","disabled"]),e.isCustom?(0,l.wy)(((0,l.wg)(),(0,l.iD)("input",{key:2,id:e.name,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.family=t}),class:"custom-font",type:"text"},null,8,Or)),[[me.nr,e.family]]):(0,l.kq)("",!0)],2)}]]);var Sr={key:0,class:"contrast-ratio"},Pr=["title"],Dr={key:0},Ir={key:1},jr={key:2},Br=["title"],Ar={key:0},Er={key:1},Fr={key:2};j.vI.add(B.OwZ,B.eHv,B.u8Q);const qr={props:{large:{required:!1,type:Boolean,default:!1},contrast:{required:!1,type:Object,default:function(){return{}}}},computed:{hint:function(){var e=this.contrast.aaa?"aaa":this.contrast.aa?"aa":"bad",t=this.$t("settings.style.common.contrast.level.".concat(e)),n=this.$t("settings.style.common.contrast.context.text"),l=this.contrast.text;return this.$t("settings.style.common.contrast.hint",{level:t,context:n,ratio:l})},hint_18pt:function(){var e=this.contrast.laaa?"aaa":this.contrast.laa?"aa":"bad",t=this.$t("settings.style.common.contrast.level.".concat(e)),n=this.$t("settings.style.common.contrast.context.18pt"),l=this.contrast.text;return this.$t("settings.style.common.contrast.hint",{level:t,context:n,ratio:l})}}},Zr=(0,E.Z)(qr,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("FAIcon");return n.contrast?((0,l.wg)(),(0,l.iD)("span",Sr,[(0,l._)("span",{title:s.hint,class:"rating"},[n.contrast.aaa?((0,l.wg)(),(0,l.iD)("span",Dr,[(0,l.Wm)(r,{icon:"thumbs-up"})])):(0,l.kq)("",!0),!n.contrast.aaa&&n.contrast.aa?((0,l.wg)(),(0,l.iD)("span",Ir,[(0,l.Wm)(r,{icon:"adjust"})])):(0,l.kq)("",!0),n.contrast.aaa||n.contrast.aa?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("span",jr,[(0,l.Wm)(r,{icon:"exclamation-triangle"})]))],8,Pr),n.contrast&&n.large?((0,l.wg)(),(0,l.iD)("span",{key:0,class:"rating",title:s.hint_18pt},[n.contrast.laaa?((0,l.wg)(),(0,l.iD)("span",Ar,[(0,l.Wm)(r,{icon:"thumbs-up"})])):(0,l.kq)("",!0),!n.contrast.laaa&&n.contrast.laa?((0,l.wg)(),(0,l.iD)("span",Er,[(0,l.Wm)(r,{icon:"adjust"})])):(0,l.kq)("",!0),n.contrast.laaa||n.contrast.laa?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("span",Fr,[(0,l.Wm)(r,{icon:"exclamation-triangle"})]))],8,Br)):(0,l.kq)("",!0)])):(0,l.kq)("",!0)}]]);var Mr={class:"preview-container"},Rr=(0,l._)("div",{class:"underlay underlay-preview"},null,-1),Nr={class:"panel dummy"},Hr={class:"panel-heading"},Yr={class:"title"},Kr=(0,l._)("span",{class:"badge badge-notification"}," 99 ",-1),Gr={class:"faint"},Jr={class:"alert error"},Qr={class:"btn button-default"},Xr={class:"panel-body theme-preview-content"},ei={class:"post"},ti=(0,l._)("div",{class:"avatar still-image"}," ( ͡° ͜ʖ ͡°) ",-1),ni={class:"content"},li={style:{"font-family":"var(--postCodeFont)"}},ai={style:{color:"var(--link)"}},oi={class:"icons"},si={class:"after-post"},ri=(0,l._)("div",{class:"avatar-alt"}," :^) ",-1),ii={class:"content"},ui={style:{color:"var(--faintLink)"}},ci=(0,l._)("div",{class:"separator"},null,-1),di={class:"alert error"},pi=["value"],mi={class:"actions"},fi={class:"checkbox"},hi=(0,l._)("input",{id:"preview_checkbox",checked:"very yes",type:"checkbox"},null,-1),gi={for:"preview_checkbox"},bi={class:"btn button-default"};j.vI.add(B.NBC,B.Tab,B.x5v,B.Lh7);const wi={},_i=(0,E.Z)(wi,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("i18n-t"),i=(0,l.up)("FAIcon");return(0,l.wg)(),(0,l.iD)("div",Mr,[Rr,(0,l._)("div",Nr,[(0,l._)("div",Hr,[(0,l._)("div",Yr,[(0,l.Uk)((0,f.zw)(e.$t("settings.style.preview.header"))+" ",1),Kr]),(0,l._)("span",Gr,(0,f.zw)(e.$t("settings.style.preview.header_faint")),1),(0,l._)("span",Jr,(0,f.zw)(e.$t("settings.style.preview.error")),1),(0,l._)("button",Qr,(0,f.zw)(e.$t("settings.style.preview.button")),1)]),(0,l._)("div",Xr,[(0,l._)("div",ei,[ti,(0,l._)("div",ni,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.preview.content")),1),(0,l.Wm)(r,{scope:"global",keypath:"settings.style.preview.text"},{default:(0,l.w5)((function(){return[(0,l._)("code",li,(0,f.zw)(e.$t("settings.style.preview.mono")),1),(0,l._)("a",ai,(0,f.zw)(e.$t("settings.style.preview.link")),1)]})),_:1}),(0,l._)("div",oi,[(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cBlue)"},class:"fa-scale-110 fa-old-padding",icon:"reply"}),(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cGreen)"},class:"fa-scale-110 fa-old-padding",icon:"retweet"}),(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cOrange)"},class:"fa-scale-110 fa-old-padding",icon:"star"}),(0,l.Wm)(i,{"fixed-width":"",style:{color:"var(--cRed)"},class:"fa-scale-110 fa-old-padding",icon:"times"})])])]),(0,l._)("div",si,[ri,(0,l._)("div",ii,[(0,l.Wm)(r,{keypath:"settings.style.preview.fine_print",tag:"span",class:"faint",scope:"global"},{default:(0,l.w5)((function(){return[(0,l._)("a",ui,(0,f.zw)(e.$t("settings.style.preview.faint_link")),1)]})),_:1})])]),ci,(0,l._)("span",di,(0,f.zw)(e.$t("settings.style.preview.error")),1),(0,l._)("input",{value:e.$t("settings.style.preview.input"),type:"text"},null,8,pi),(0,l._)("div",mi,[(0,l._)("span",fi,[hi,(0,l._)("label",gi,(0,f.zw)(e.$t("settings.style.preview.checkbox")),1)]),(0,l._)("button",bi,(0,f.zw)(e.$t("settings.style.preview.button")),1)])])])])}]]);function ki(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function vi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ki(Object(n),!0).forEach((function(t){(0,S.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ki(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var yi=["bg","fg","text","link","cRed","cGreen","cBlue","cOrange"].map((function(e){return e+"ColorLocal"}));const $i={data:function(){var e=this;return vi(vi(vi({themeImporter:(0,Cs.i)({validator:this.importValidator,onImport:this.onImport,onImportFailure:this.onImportFailure}),themeExporter:(0,Cs.M)({filename:"pleroma_theme",getExportedObject:function(){return e.exportedTheme}}),availableStyles:[],selected:"",selectedTheme:this.$store.getters.mergedConfig.theme,themeWarning:void 0,tempImportFile:void 0,engineVersion:0,previewShadows:{},previewColors:{},previewRadii:{},previewFonts:{},shadowsInvalid:!0,colorsInvalid:!0,radiiInvalid:!0,keepColor:!1,keepShadows:!1,keepOpacity:!1,keepRoundness:!1,keepFonts:!1},Object.keys(Vs.em).map((function(e){return[e,""]})).reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return vi(vi({},e),{},(0,S.Z)({},l+"ColorLocal",a))}),{})),Object.keys(Ts.AQ).map((function(e){return[e,""]})).reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return vi(vi({},e),{},(0,S.Z)({},l+"OpacityLocal",a))}),{})),{},{shadowSelected:void 0,shadowsLocal:{},fontsLocal:{},btnRadiusLocal:"",inputRadiusLocal:"",checkboxRadiusLocal:"",panelRadiusLocal:"",avatarRadiusLocal:"",avatarAltRadiusLocal:"",attachmentRadiusLocal:"",tooltipRadiusLocal:"",chatMessageRadiusLocal:""})},created:function(){var e=this;(0,$s.RC)().then((function(e){return Promise.all(Object.entries(e).map((function(e){var t=(0,Ut.Z)(e,2),n=t[0];return t[1].then((function(e){return[n,e]}))})))})).then((function(e){return e.reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return a?vi(vi({},e),{},(0,S.Z)({},l,a)):e}),{})})).then((function(t){e.availableStyles=t}))},mounted:function(){this.loadThemeFromLocalStorage(),void 0===this.shadowSelected&&(this.shadowSelected=this.shadowsAvailable[0])},computed:{themeWarningHelp:function(){if(this.themeWarning){var e=this.$t,t="settings.style.switcher.help.",n=this.themeWarning,l=n.origin,a=n.themeEngineVersion,o=n.type,s=n.noActionsPossible;if("file"===l){if(2===a&&"wrong_version"===o)return e(t+"v2_imported");if(a>Ts.we)return e(t+"future_version_imported")+" "+e(s?t+"snapshot_missing":t+"snapshot_present");if(a<Ts.we)return e(t+"future_version_imported")+" "+e(s?t+"snapshot_missing":t+"snapshot_present")}else if("localStorage"===l){if("snapshot_source_mismatch"===o)return e(t+"snapshot_source_mismatch");if(2===a)return e(t+"upgraded_from_v2");if(a>Ts.we)return e(t+"fe_downgraded")+" "+e(s?t+"migration_snapshot_ok":t+"migration_snapshot_gone");if(a<Ts.we)return e(t+"fe_upgraded")+" "+e(s?t+"migration_snapshot_ok":t+"migration_snapshot_gone")}}},selectedVersion:function(){return Array.isArray(this.selectedTheme)?1:2},currentColors:function(){var e=this;return Object.keys(Vs.em).map((function(t){return[t,e[t+"ColorLocal"]]})).reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return vi(vi({},e),{},(0,S.Z)({},l,a))}),{})},currentOpacity:function(){var e=this;return Object.keys(Ts.AQ).map((function(t){return[t,e[t+"OpacityLocal"]]})).reduce((function(e,t){var n=(0,Ut.Z)(t,2),l=n[0],a=n[1];return vi(vi({},e),{},(0,S.Z)({},l,a))}),{})},currentRadii:function(){return{btn:this.btnRadiusLocal,input:this.inputRadiusLocal,checkbox:this.checkboxRadiusLocal,panel:this.panelRadiusLocal,avatar:this.avatarRadiusLocal,avatarAlt:this.avatarAltRadiusLocal,tooltip:this.tooltipRadiusLocal,attachment:this.attachmentRadiusLocal,chatMessage:this.chatMessageRadiusLocal}},preview:function(){return(0,$s.gm)(this.previewColors,this.previewRadii,this.previewShadows,this.previewFonts)},previewTheme:function(){return this.preview.theme.colors?this.preview.theme:{colors:{},opacity:{},radii:{},shadows:{},fonts:{}}},previewContrast:function(){try{if(!this.previewTheme.colors.bg)return{};var e=this.previewTheme.colors,t=this.previewTheme.opacity;if(!e.bg)return{};var n=Object.entries(e).reduce((function(e,t){var n,l=(0,Ut.Z)(t,2),a=l[0],o=l[1];return vi(vi({},e),{},(0,S.Z)({},a,(n=o).startsWith("--")||"transparent"===n?n:(0,ys.wK)(n)))}),{}),l=Object.entries(Vs.em).reduce((function(e,l){var a=(0,Ut.Z)(l,2),o=a[0],s=a[1],r="text"===o||"link"===o;if(!(r||"object"===(0,ra.Z)(s)&&null!==s&&s.textColor))return e;var i=r?{layer:"bg"}:s,u=i.layer,c=i.variant,d=c||u,p=(0,Ts.AV)(d),m=[o].concat((0,qe.Z)("bg"===d?["cRed","cGreen","cBlue","cOrange"]:[])),f=(0,Ts.xb)(u,c||u,p,n,t);return f.flat().some((function(e){return null==e}))?e:vi(vi({},e),m.reduce((function(e,t){var l=r?"bg"+t[0].toUpperCase()+t.slice(1):t;return vi(vi({},e),{},(0,S.Z)({},l,(0,ys.aj)(n[t],f,n[t])))}),{}))}),{});return Object.entries(l).reduce((function(e,t){var n,l=(0,Ut.Z)(t,2),a=l[0],o=l[1];return e[a]={text:(n=o).toPrecision(3)+":1",aa:n>=4.5,aaa:n>=7,laa:n>=3,laaa:n>=4.5},e}),{})}catch(e){return console.warn("Failure computing contrasts",e),{}}},previewRules:function(){return this.preview.rules?[].concat((0,qe.Z)(Object.values(this.preview.rules)),["color: var(--text)","font-family: var(--interfaceFont, sans-serif)"]).join(";"):""},shadowsAvailable:function(){return Object.keys($s.vp).sort()},currentShadowOverriden:{get:function(){return!!this.currentShadow},set:function(e){e?this.shadowsLocal[this.shadowSelected]=this.currentShadowFallback.map((function(e){return Object.assign({},e)})):delete this.shadowsLocal[this.shadowSelected]}},currentShadowFallback:function(){return(this.previewTheme.shadows||{})[this.shadowSelected]},currentShadow:{get:function(){return this.shadowsLocal[this.shadowSelected]},set:function(e){this.shadowsLocal[this.shadowSelected]=e}},themeValid:function(){return!this.shadowsInvalid&&!this.colorsInvalid&&!this.radiiInvalid},exportedTheme:function(){var e=!(this.keepFonts||this.keepShadows||this.keepOpacity||this.keepRoundness||this.keepColor),t={themeEngineVersion:Ts.we};return(this.keepFonts||e)&&(t.fonts=this.fontsLocal),(this.keepShadows||e)&&(t.shadows=this.shadowsLocal),(this.keepOpacity||e)&&(t.opacity=this.currentOpacity),(this.keepColor||e)&&(t.colors=this.currentColors),(this.keepRoundness||e)&&(t.radii=this.currentRadii),{_pleroma_theme_version:2,theme:vi({themeEngineVersion:Ts.we},this.previewTheme),source:t}},isActive:function(){var e=this.$parent;return!!e&&e.isActive("theme")}},components:{ColorInput:Ss,OpacityInput:Ms,RangeInput:Es,ContrastRatio:Zr,ShadowControl:Vr,FontControl:zr,TabSwitcher:m.Z,Preview:_i,Checkbox:N.Z,Select:Kt.Z},methods:{loadTheme:function(e,t){var n=e.theme,l=e.source,a=e._pleroma_theme_version,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.dismissWarning(),!l&&!n)throw new Error("Can't load theme: empty");var s="localStorage"!==t||n.colors?a:"l1",r=(n||{}).themeEngineVersion,i=(l||{}).themeEngineVersion||2,u=i===Ts.we,c=void 0!==n&&void 0!==l&&i!==r,d=l&&o||!n;u&&!c||d||"l1"===s||"defaults"===t||(c&&"localStorage"===t?this.themeWarning={origin:t,themeEngineVersion:i,type:"snapshot_source_mismatch"}:n?u||(this.themeWarning={origin:t,noActionsPossible:!l,themeEngineVersion:i,type:"wrong_version"}):this.themeWarning={origin:t,noActionsPossible:!0,themeEngineVersion:i,type:"no_snapshot_old_version"}),this.normalizeLocalState(n,s,l,d)},forceLoadLocalStorage:function(){this.loadThemeFromLocalStorage(!0)},dismissWarning:function(){this.themeWarning=void 0,this.tempImportFile=void 0},forceLoad:function(){switch(this.themeWarning.origin){case"localStorage":this.loadThemeFromLocalStorage(!0);break;case"file":this.onImport(this.tempImportFile,!0)}this.dismissWarning()},forceSnapshot:function(){switch(this.themeWarning.origin){case"localStorage":this.loadThemeFromLocalStorage(!1,!0);break;case"file":console.error("Forcing snapshot from file is not supported yet")}this.dismissWarning()},loadThemeFromLocalStorage:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.$store.getters.mergedConfig,l=n.customTheme,a=n.customThemeSource;l||a?this.loadTheme({theme:l,source:t?l:a},"localStorage",e):this.loadTheme(this.$store.state.instance.themeData,"defaults",e)},setCustomTheme:function(){this.$store.dispatch("setOption",{name:"customTheme",value:vi({themeEngineVersion:Ts.we},this.previewTheme)}),this.$store.dispatch("setOption",{name:"customThemeSource",value:{themeEngineVersion:Ts.we,shadows:this.shadowsLocal,fonts:this.fontsLocal,opacity:this.currentOpacity,colors:this.currentColors,radii:this.currentRadii}})},updatePreviewColorsAndShadows:function(){this.previewColors=(0,$s.LP)({opacity:this.currentOpacity,colors:this.currentColors}),this.previewShadows=(0,$s.H2)({shadows:this.shadowsLocal,opacity:this.previewTheme.opacity,themeEngineVersion:this.engineVersion},this.previewColors.theme.colors,this.previewColors.mod)},importTheme:function(){this.themeImporter.importData()},exportTheme:function(){this.themeExporter.exportData()},onImport:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.tempImportFile=e,this.loadTheme(e,"file",t)},onImportFailure:function(e){this.$store.dispatch("pushGlobalNotice",{messageKey:"settings.invalid_theme_imported",level:"error"})},importValidator:function(e){var t=e._pleroma_theme_version;return t>=1||t<=2},clearAll:function(){this.loadThemeFromLocalStorage()},clearV1:function(){var e=this;Object.keys(this.$data).filter((function(e){return e.endsWith("ColorLocal")||e.endsWith("OpacityLocal")})).filter((function(e){return!yi.includes(e)})).forEach((function(t){e.$data[t]=void 0}))},clearRoundness:function(){var e=this;Object.keys(this.$data).filter((function(e){return e.endsWith("RadiusLocal")})).forEach((function(t){e.$data[t]=void 0}))},clearOpacity:function(){var e=this;Object.keys(this.$data).filter((function(e){return e.endsWith("OpacityLocal")})).forEach((function(t){e.$data[t]=void 0}))},clearShadows:function(){this.shadowsLocal={}},clearFonts:function(){this.fontsLocal={}},normalizeLocalState:function(e){var t,n=this,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];void 0===a||!o&&a.themeEngineVersion!==Ts.we?t=e:(t=a,l=a.themeEngineVersion);var s=t.radii||t,r=t.opacity,i=t.shadows||{},u=t.fonts||{},c=t.themeEngineVersion?t.colors||t:(0,$s.dE)(t.colors||t);if(0===l&&(t.version&&(l=t.version),void 0===c.text&&void 0!==c.fg&&(l=1),void 0!==c.text&&void 0!==c.fg&&(l=2)),this.engineVersion=l,1===l&&(this.fgColorLocal=(0,ys.CO)(c.btn),this.textColorLocal=(0,ys.CO)(c.fg)),!this.keepColor){this.clearV1();var d=new Set(1!==l?Object.keys(Vs.em):[]);1!==l&&"l1"!==l||d.add("bg").add("link").add("cRed").add("cBlue").add("cGreen").add("cOrange"),d.forEach((function(e){var t=c[e],l=(0,ys.CO)(c[e]);n[e+"ColorLocal"]="#aN"===l?t:l}))}r&&!this.keepOpacity&&(this.clearOpacity(),Object.entries(r).forEach((function(e){var t=(0,Ut.Z)(e,2),l=t[0],a=t[1];null==a||Number.isNaN(a)||(n[l+"OpacityLocal"]=a)}))),this.keepRoundness||(this.clearRoundness(),Object.entries(s).forEach((function(e){var t=(0,Ut.Z)(e,2),l=t[0],a=t[1],o=l.endsWith("Radius")?l.split("Radius")[0]:l;n[o+"RadiusLocal"]=a}))),this.keepShadows||(this.clearShadows(),this.shadowsLocal=2===l?(0,$s.l9)(i,this.previewTheme.opacity):i,this.shadowSelected=this.shadowsAvailable[0]),this.keepFonts||(this.clearFonts(),this.fontsLocal=u)}},watch:{currentRadii:function(){try{this.previewRadii=(0,$s.lD)({radii:this.currentRadii}),this.radiiInvalid=!1}catch(e){this.radiiInvalid=!0,console.warn(e)}},shadowsLocal:{handler:function(){if(1!==Object.getOwnPropertyNames(this.previewColors).length)try{this.updatePreviewColorsAndShadows(),this.shadowsInvalid=!1}catch(e){this.shadowsInvalid=!0,console.warn(e)}},deep:!0},fontsLocal:{handler:function(){try{this.previewFonts=(0,$s.m)({fonts:this.fontsLocal}),this.fontsInvalid=!1}catch(e){this.fontsInvalid=!0,console.warn(e)}},deep:!0},currentColors:function(){try{this.updatePreviewColorsAndShadows(),this.colorsInvalid=!1,this.shadowsInvalid=!1}catch(e){this.colorsInvalid=!0,this.shadowsInvalid=!0,console.warn(e)}},currentOpacity:function(){try{this.updatePreviewColorsAndShadows()}catch(e){console.warn(e)}},selected:function(){var e=this;this.selectedTheme=Object.entries(this.availableStyles).find((function(t){var n=(0,Ut.Z)(t,2),l=(n[0],n[1]);return Array.isArray(l)?(console.log(l[0]===e.selected,e.selected),l[0]===e.selected):l.name===e.selected}))[1]},selectedTheme:function(){this.dismissWarning(),1===this.selectedVersion?(this.keepRoundness||this.clearRoundness(),this.keepShadows||this.clearShadows(),this.keepOpacity||this.clearOpacity(),this.keepColor||(this.clearV1(),this.bgColorLocal=this.selectedTheme[1],this.fgColorLocal=this.selectedTheme[2],this.textColorLocal=this.selectedTheme[3],this.linkColorLocal=this.selectedTheme[4],this.cRedColorLocal=this.selectedTheme[5],this.cGreenColorLocal=this.selectedTheme[6],this.cBlueColorLocal=this.selectedTheme[7],this.cOrangeColorLocal=this.selectedTheme[8])):this.selectedVersion>=2&&this.normalizeLocalState(this.selectedTheme.theme,2,this.selectedTheme.source)}}},Ci=(0,E.Z)($i,[["render",function(e,t,n,a,o,s){var r=(0,l.up)("Select"),i=(0,l.up)("Checkbox"),u=(0,l.up)("preview"),c=(0,l.up)("ColorInput"),d=(0,l.up)("OpacityInput"),p=(0,l.up)("ContrastRatio"),m=(0,l.up)("RangeInput"),h=(0,l.up)("ShadowControl"),g=(0,l.up)("i18n-t"),b=(0,l.up)("FontControl"),w=(0,l.up)("tab-switcher");return(0,l.wg)(),(0,l.iD)("div",mo,[(0,l._)("div",fo,[(0,l._)("div",ho,[e.themeWarning?((0,l.wg)(),(0,l.iD)("div",go,[(0,l._)("div",bo,(0,f.zw)(e.themeWarningHelp),1),(0,l._)("div",wo,["snapshot_source_mismatch"===e.themeWarning.type?((0,l.wg)(),(0,l.iD)(l.HY,{key:0},[(0,l._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.forceLoad&&e.forceLoad.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.use_source")),1),(0,l._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.forceSnapshot&&e.forceSnapshot.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.use_snapshot")),1)],64)):e.themeWarning.noActionsPossible?((0,l.wg)(),(0,l.iD)("button",{key:1,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.dismissWarning&&e.dismissWarning.apply(e,arguments)})},(0,f.zw)(e.$t("general.dismiss")),1)):((0,l.wg)(),(0,l.iD)(l.HY,{key:2},[(0,l._)("button",{class:"btn button-default",onClick:t[3]||(t[3]=function(){return e.forceLoad&&e.forceLoad.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.load_theme")),1),(0,l._)("button",{class:"btn button-default",onClick:t[4]||(t[4]=function(){return e.dismissWarning&&e.dismissWarning.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.keep_as_is")),1)],64))])])):(0,l.kq)("",!0),(0,l._)("div",_o,[(0,l._)("div",ko,[(0,l.Uk)((0,f.zw)(e.$t("settings.presets"))+" ",1),(0,l._)("label",vo,[(0,l.Wm)(r,{id:"preset-switcher",modelValue:e.selected,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.selected=t}),class:"preset-switcher"},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.availableStyles,(function(e){return(0,l.wg)(),(0,l.iD)("option",{key:e.name,value:e.name||e[0],style:(0,f.j5)({backgroundColor:e[1]||(e.theme||e.source).colors.bg,color:e[3]||(e.theme||e.source).colors.text})},(0,f.zw)(e[0]||e.name),13,yo)})),128))]})),_:1},8,["modelValue"])])]),(0,l._)("div",$o,[(0,l._)("button",{class:"btn button-default",onClick:t[6]||(t[6]=function(){return e.importTheme&&e.importTheme.apply(e,arguments)})},(0,f.zw)(e.$t("settings.import_theme")),1),(0,l._)("button",{class:"btn button-default",onClick:t[7]||(t[7]=function(){return e.exportTheme&&e.exportTheme.apply(e,arguments)})},(0,f.zw)(e.$t("settings.export_theme")),1)])])]),(0,l._)("div",Co,[(0,l._)("span",Vo,[(0,l.Wm)(i,{modelValue:e.keepColor,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.keepColor=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.style.switcher.keep_color")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",To,[(0,l.Wm)(i,{modelValue:e.keepShadows,"onUpdate:modelValue":t[9]||(t[9]=function(t){return e.keepShadows=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.style.switcher.keep_shadows")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",Uo,[(0,l.Wm)(i,{modelValue:e.keepOpacity,"onUpdate:modelValue":t[10]||(t[10]=function(t){return e.keepOpacity=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.style.switcher.keep_opacity")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",xo,[(0,l.Wm)(i,{modelValue:e.keepRoundness,"onUpdate:modelValue":t[11]||(t[11]=function(t){return e.keepRoundness=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.style.switcher.keep_roundness")),1)]})),_:1},8,["modelValue"])]),(0,l._)("span",Lo,[(0,l.Wm)(i,{modelValue:e.keepFonts,"onUpdate:modelValue":t[12]||(t[12]=function(t){return e.keepFonts=t})},{default:(0,l.w5)((function(){return[(0,l.Uk)((0,f.zw)(e.$t("settings.style.switcher.keep_fonts")),1)]})),_:1},8,["modelValue"])]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.style.switcher.save_load_hint")),1)])]),(0,l.Wm)(u,{style:(0,f.j5)(e.previewRules)},null,8,["style"]),((0,l.wg)(),(0,l.j4)(l.Ob,null,[(0,l.Wm)(w,{key:"style-tweak"},{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.style.common_colors._tab_label"),class:"color-container"},[(0,l._)("div",Wo,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.theme_help")),1),(0,l._)("div",zo,[(0,l._)("button",{class:"btn button-default",onClick:t[13]||(t[13]=function(){return e.clearOpacity&&e.clearOpacity.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.clear_opacity")),1),(0,l._)("button",{class:"btn button-default",onClick:t[14]||(t[14]=function(){return e.clearV1&&e.clearV1.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.clear_all")),1)])]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.theme_help_v2_1")),1),(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.common_colors.main")),1),(0,l._)("div",So,[(0,l.Wm)(c,{modelValue:e.bgColorLocal,"onUpdate:modelValue":t[15]||(t[15]=function(t){return e.bgColorLocal=t}),name:"bgColor",label:e.$t("settings.background")},null,8,["modelValue","label"]),(0,l.Wm)(d,{modelValue:e.bgOpacityLocal,"onUpdate:modelValue":t[16]||(t[16]=function(t){return e.bgOpacityLocal=t}),name:"bgOpacity",fallback:e.previewTheme.opacity.bg},null,8,["modelValue","fallback"]),(0,l.Wm)(c,{modelValue:e.textColorLocal,"onUpdate:modelValue":t[17]||(t[17]=function(t){return e.textColorLocal=t}),name:"textColor",label:e.$t("settings.text")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.accentColorLocal,"onUpdate:modelValue":t[18]||(t[18]=function(t){return e.accentColorLocal=t}),name:"accentColor",fallback:e.previewTheme.colors.link,label:e.$t("settings.accent"),"show-optional-tickbox":void 0!==e.linkColorLocal},null,8,["modelValue","fallback","label","show-optional-tickbox"]),(0,l.Wm)(c,{modelValue:e.linkColorLocal,"onUpdate:modelValue":t[19]||(t[19]=function(t){return e.linkColorLocal=t}),name:"linkColor",fallback:e.previewTheme.colors.accent,label:e.$t("settings.links"),"show-optional-tickbox":void 0!==e.accentColorLocal},null,8,["modelValue","fallback","label","show-optional-tickbox"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgLink},null,8,["contrast"])]),(0,l._)("div",Po,[(0,l.Wm)(c,{modelValue:e.fgColorLocal,"onUpdate:modelValue":t[20]||(t[20]=function(t){return e.fgColorLocal=t}),name:"fgColor",label:e.$t("settings.foreground")},null,8,["modelValue","label"]),(0,l.Wm)(c,{modelValue:e.fgTextColorLocal,"onUpdate:modelValue":t[21]||(t[21]=function(t){return e.fgTextColorLocal=t}),name:"fgTextColor",label:e.$t("settings.text"),fallback:e.previewTheme.colors.fgText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.fgLinkColorLocal,"onUpdate:modelValue":t[22]||(t[22]=function(t){return e.fgLinkColorLocal=t}),name:"fgLinkColor",label:e.$t("settings.links"),fallback:e.previewTheme.colors.fgLink},null,8,["modelValue","label","fallback"]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.style.common_colors.foreground_hint")),1)]),(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.common_colors.rgbo")),1),(0,l._)("div",Do,[(0,l.Wm)(c,{modelValue:e.cRedColorLocal,"onUpdate:modelValue":t[23]||(t[23]=function(t){return e.cRedColorLocal=t}),name:"cRedColor",label:e.$t("settings.cRed")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCRed},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.cBlueColorLocal,"onUpdate:modelValue":t[24]||(t[24]=function(t){return e.cBlueColorLocal=t}),name:"cBlueColor",label:e.$t("settings.cBlue")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCBlue},null,8,["contrast"])]),(0,l._)("div",Io,[(0,l.Wm)(c,{modelValue:e.cGreenColorLocal,"onUpdate:modelValue":t[25]||(t[25]=function(t){return e.cGreenColorLocal=t}),name:"cGreenColor",label:e.$t("settings.cGreen")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCGreen},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.cOrangeColorLocal,"onUpdate:modelValue":t[26]||(t[26]=function(t){return e.cOrangeColorLocal=t}),name:"cOrangeColor",label:e.$t("settings.cOrange")},null,8,["modelValue","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.bgCOrange},null,8,["contrast"])]),(0,l._)("p",null,(0,f.zw)(e.$t("settings.theme_help_v2_2")),1)],8,Oo),(0,l._)("div",{label:e.$t("settings.style.advanced_colors._tab_label"),class:"color-container"},[(0,l._)("div",Bo,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.theme_help")),1),(0,l._)("button",{class:"btn button-default",onClick:t[27]||(t[27]=function(){return e.clearOpacity&&e.clearOpacity.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.clear_opacity")),1),(0,l._)("button",{class:"btn button-default",onClick:t[28]||(t[28]=function(){return e.clearV1&&e.clearV1.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l._)("div",Ao,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.post")),1),(0,l.Wm)(c,{modelValue:e.postLinkColorLocal,"onUpdate:modelValue":t[29]||(t[29]=function(t){return e.postLinkColorLocal=t}),name:"postLinkColor",fallback:e.previewTheme.colors.accent,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.postLink},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.postGreentextColorLocal,"onUpdate:modelValue":t[30]||(t[30]=function(t){return e.postGreentextColorLocal=t}),name:"postGreentextColor",fallback:e.previewTheme.colors.cGreen,label:e.$t("settings.greentext")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.postGreentext},null,8,["contrast"]),(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.alert")),1),(0,l.Wm)(c,{modelValue:e.alertErrorColorLocal,"onUpdate:modelValue":t[31]||(t[31]=function(t){return e.alertErrorColorLocal=t}),name:"alertError",label:e.$t("settings.style.advanced_colors.alert_error"),fallback:e.previewTheme.colors.alertError},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.alertErrorTextColorLocal,"onUpdate:modelValue":t[32]||(t[32]=function(t){return e.alertErrorTextColorLocal=t}),name:"alertErrorText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.alertErrorText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.alertErrorText,large:""},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.alertWarningColorLocal,"onUpdate:modelValue":t[33]||(t[33]=function(t){return e.alertWarningColorLocal=t}),name:"alertWarning",label:e.$t("settings.style.advanced_colors.alert_warning"),fallback:e.previewTheme.colors.alertWarning},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.alertWarningTextColorLocal,"onUpdate:modelValue":t[34]||(t[34]=function(t){return e.alertWarningTextColorLocal=t}),name:"alertWarningText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.alertWarningText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.alertWarningText,large:""},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.alertNeutralColorLocal,"onUpdate:modelValue":t[35]||(t[35]=function(t){return e.alertNeutralColorLocal=t}),name:"alertNeutral",label:e.$t("settings.style.advanced_colors.alert_neutral"),fallback:e.previewTheme.colors.alertNeutral},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.alertNeutralTextColorLocal,"onUpdate:modelValue":t[36]||(t[36]=function(t){return e.alertNeutralTextColorLocal=t}),name:"alertNeutralText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.alertNeutralText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.alertNeutralText,large:""},null,8,["contrast"]),(0,l.Wm)(d,{modelValue:e.alertOpacityLocal,"onUpdate:modelValue":t[37]||(t[37]=function(t){return e.alertOpacityLocal=t}),name:"alertOpacity",fallback:e.previewTheme.opacity.alert},null,8,["modelValue","fallback"])]),(0,l._)("div",Eo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.badge")),1),(0,l.Wm)(c,{modelValue:e.badgeNotificationColorLocal,"onUpdate:modelValue":t[38]||(t[38]=function(t){return e.badgeNotificationColorLocal=t}),name:"badgeNotification",label:e.$t("settings.style.advanced_colors.badge_notification"),fallback:e.previewTheme.colors.badgeNotification},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.badgeNotificationTextColorLocal,"onUpdate:modelValue":t[39]||(t[39]=function(t){return e.badgeNotificationTextColorLocal=t}),name:"badgeNotificationText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.badgeNotificationText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.badgeNotificationText,large:""},null,8,["contrast"])]),(0,l._)("div",Fo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.panel_header")),1),(0,l.Wm)(c,{modelValue:e.panelColorLocal,"onUpdate:modelValue":t[40]||(t[40]=function(t){return e.panelColorLocal=t}),name:"panelColor",fallback:e.previewTheme.colors.panel,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.panelOpacityLocal,"onUpdate:modelValue":t[41]||(t[41]=function(t){return e.panelOpacityLocal=t}),name:"panelOpacity",fallback:e.previewTheme.opacity.panel,disabled:"transparent"===e.panelColorLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.panelTextColorLocal,"onUpdate:modelValue":t[42]||(t[42]=function(t){return e.panelTextColorLocal=t}),name:"panelTextColor",fallback:e.previewTheme.colors.panelText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.panelText,large:""},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.panelLinkColorLocal,"onUpdate:modelValue":t[43]||(t[43]=function(t){return e.panelLinkColorLocal=t}),name:"panelLinkColor",fallback:e.previewTheme.colors.panelLink,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.panelLink,large:""},null,8,["contrast"])]),(0,l._)("div",qo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.top_bar")),1),(0,l.Wm)(c,{modelValue:e.topBarColorLocal,"onUpdate:modelValue":t[44]||(t[44]=function(t){return e.topBarColorLocal=t}),name:"topBarColor",fallback:e.previewTheme.colors.topBar,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.topBarTextColorLocal,"onUpdate:modelValue":t[45]||(t[45]=function(t){return e.topBarTextColorLocal=t}),name:"topBarTextColor",fallback:e.previewTheme.colors.topBarText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.topBarText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.topBarLinkColorLocal,"onUpdate:modelValue":t[46]||(t[46]=function(t){return e.topBarLinkColorLocal=t}),name:"topBarLinkColor",fallback:e.previewTheme.colors.topBarLink,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.topBarLink},null,8,["contrast"])]),(0,l._)("div",Zo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.inputs")),1),(0,l.Wm)(c,{modelValue:e.inputColorLocal,"onUpdate:modelValue":t[47]||(t[47]=function(t){return e.inputColorLocal=t}),name:"inputColor",fallback:e.previewTheme.colors.input,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.inputOpacityLocal,"onUpdate:modelValue":t[48]||(t[48]=function(t){return e.inputOpacityLocal=t}),name:"inputOpacity",fallback:e.previewTheme.opacity.input,disabled:"transparent"===e.inputColorLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.inputTextColorLocal,"onUpdate:modelValue":t[49]||(t[49]=function(t){return e.inputTextColorLocal=t}),name:"inputTextColor",fallback:e.previewTheme.colors.inputText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.inputText},null,8,["contrast"])]),(0,l._)("div",Mo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.buttons")),1),(0,l.Wm)(c,{modelValue:e.btnColorLocal,"onUpdate:modelValue":t[50]||(t[50]=function(t){return e.btnColorLocal=t}),name:"btnColor",fallback:e.previewTheme.colors.btn,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.btnOpacityLocal,"onUpdate:modelValue":t[51]||(t[51]=function(t){return e.btnOpacityLocal=t}),name:"btnOpacity",fallback:e.previewTheme.opacity.btn,disabled:"transparent"===e.btnColorLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.btnTextColorLocal,"onUpdate:modelValue":t[52]||(t[52]=function(t){return e.btnTextColorLocal=t}),name:"btnTextColor",fallback:e.previewTheme.colors.btnText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnPanelTextColorLocal,"onUpdate:modelValue":t[53]||(t[53]=function(t){return e.btnPanelTextColorLocal=t}),name:"btnPanelTextColor",fallback:e.previewTheme.colors.btnPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPanelText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnTopBarTextColorLocal,"onUpdate:modelValue":t[54]||(t[54]=function(t){return e.btnTopBarTextColorLocal=t}),name:"btnTopBarTextColor",fallback:e.previewTheme.colors.btnTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnTopBarText},null,8,["contrast"]),(0,l._)("h5",null,(0,f.zw)(e.$t("settings.style.advanced_colors.pressed")),1),(0,l.Wm)(c,{modelValue:e.btnPressedColorLocal,"onUpdate:modelValue":t[55]||(t[55]=function(t){return e.btnPressedColorLocal=t}),name:"btnPressedColor",fallback:e.previewTheme.colors.btnPressed,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnPressedTextColorLocal,"onUpdate:modelValue":t[56]||(t[56]=function(t){return e.btnPressedTextColorLocal=t}),name:"btnPressedTextColor",fallback:e.previewTheme.colors.btnPressedText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPressedText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnPressedPanelTextColorLocal,"onUpdate:modelValue":t[57]||(t[57]=function(t){return e.btnPressedPanelTextColorLocal=t}),name:"btnPressedPanelTextColor",fallback:e.previewTheme.colors.btnPressedPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPressedPanelText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnPressedTopBarTextColorLocal,"onUpdate:modelValue":t[58]||(t[58]=function(t){return e.btnPressedTopBarTextColorLocal=t}),name:"btnPressedTopBarTextColor",fallback:e.previewTheme.colors.btnPressedTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnPressedTopBarText},null,8,["contrast"]),(0,l._)("h5",null,(0,f.zw)(e.$t("settings.style.advanced_colors.disabled")),1),(0,l.Wm)(c,{modelValue:e.btnDisabledColorLocal,"onUpdate:modelValue":t[59]||(t[59]=function(t){return e.btnDisabledColorLocal=t}),name:"btnDisabledColor",fallback:e.previewTheme.colors.btnDisabled,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnDisabledTextColorLocal,"onUpdate:modelValue":t[60]||(t[60]=function(t){return e.btnDisabledTextColorLocal=t}),name:"btnDisabledTextColor",fallback:e.previewTheme.colors.btnDisabledText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnDisabledPanelTextColorLocal,"onUpdate:modelValue":t[61]||(t[61]=function(t){return e.btnDisabledPanelTextColorLocal=t}),name:"btnDisabledPanelTextColor",fallback:e.previewTheme.colors.btnDisabledPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnDisabledTopBarTextColorLocal,"onUpdate:modelValue":t[62]||(t[62]=function(t){return e.btnDisabledTopBarTextColorLocal=t}),name:"btnDisabledTopBarTextColor",fallback:e.previewTheme.colors.btnDisabledTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l._)("h5",null,(0,f.zw)(e.$t("settings.style.advanced_colors.toggled")),1),(0,l.Wm)(c,{modelValue:e.btnToggledColorLocal,"onUpdate:modelValue":t[63]||(t[63]=function(t){return e.btnToggledColorLocal=t}),name:"btnToggledColor",fallback:e.previewTheme.colors.btnToggled,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.btnToggledTextColorLocal,"onUpdate:modelValue":t[64]||(t[64]=function(t){return e.btnToggledTextColorLocal=t}),name:"btnToggledTextColor",fallback:e.previewTheme.colors.btnToggledText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnToggledText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnToggledPanelTextColorLocal,"onUpdate:modelValue":t[65]||(t[65]=function(t){return e.btnToggledPanelTextColorLocal=t}),name:"btnToggledPanelTextColor",fallback:e.previewTheme.colors.btnToggledPanelText,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnToggledPanelText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.btnToggledTopBarTextColorLocal,"onUpdate:modelValue":t[66]||(t[66]=function(t){return e.btnToggledTopBarTextColorLocal=t}),name:"btnToggledTopBarTextColor",fallback:e.previewTheme.colors.btnToggledTopBarText,label:e.$t("settings.style.advanced_colors.top_bar")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.btnToggledTopBarText},null,8,["contrast"])]),(0,l._)("div",Ro,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.tabs")),1),(0,l.Wm)(c,{modelValue:e.tabColorLocal,"onUpdate:modelValue":t[67]||(t[67]=function(t){return e.tabColorLocal=t}),name:"tabColor",fallback:e.previewTheme.colors.tab,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.tabTextColorLocal,"onUpdate:modelValue":t[68]||(t[68]=function(t){return e.tabTextColorLocal=t}),name:"tabTextColor",fallback:e.previewTheme.colors.tabText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.tabText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.tabActiveTextColorLocal,"onUpdate:modelValue":t[69]||(t[69]=function(t){return e.tabActiveTextColorLocal=t}),name:"tabActiveTextColor",fallback:e.previewTheme.colors.tabActiveText,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(p,{contrast:e.previewContrast.tabActiveText},null,8,["contrast"])]),(0,l._)("div",No,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.borders")),1),(0,l.Wm)(c,{modelValue:e.borderColorLocal,"onUpdate:modelValue":t[70]||(t[70]=function(t){return e.borderColorLocal=t}),name:"borderColor",fallback:e.previewTheme.colors.border,label:e.$t("settings.style.common.color")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.borderOpacityLocal,"onUpdate:modelValue":t[71]||(t[71]=function(t){return e.borderOpacityLocal=t}),name:"borderOpacity",fallback:e.previewTheme.opacity.border,disabled:"transparent"===e.borderColorLocal},null,8,["modelValue","fallback","disabled"])]),(0,l._)("div",Ho,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.faint_text")),1),(0,l.Wm)(c,{modelValue:e.faintColorLocal,"onUpdate:modelValue":t[72]||(t[72]=function(t){return e.faintColorLocal=t}),name:"faintColor",fallback:e.previewTheme.colors.faint,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.faintLinkColorLocal,"onUpdate:modelValue":t[73]||(t[73]=function(t){return e.faintLinkColorLocal=t}),name:"faintLinkColor",fallback:e.previewTheme.colors.faintLink,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.panelFaintColorLocal,"onUpdate:modelValue":t[74]||(t[74]=function(t){return e.panelFaintColorLocal=t}),name:"panelFaintColor",fallback:e.previewTheme.colors.panelFaint,label:e.$t("settings.style.advanced_colors.panel_header")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(d,{modelValue:e.faintOpacityLocal,"onUpdate:modelValue":t[75]||(t[75]=function(t){return e.faintOpacityLocal=t}),name:"faintOpacity",fallback:e.previewTheme.opacity.faint},null,8,["modelValue","fallback"])]),(0,l._)("div",Yo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.underlay")),1),(0,l.Wm)(c,{modelValue:e.underlayColorLocal,"onUpdate:modelValue":t[76]||(t[76]=function(t){return e.underlayColorLocal=t}),name:"underlay",label:e.$t("settings.style.advanced_colors.underlay"),fallback:e.previewTheme.colors.underlay},null,8,["modelValue","label","fallback"]),(0,l.Wm)(d,{modelValue:e.underlayOpacityLocal,"onUpdate:modelValue":t[77]||(t[77]=function(t){return e.underlayOpacityLocal=t}),name:"underlayOpacity",fallback:e.previewTheme.opacity.underlay,disabled:"transparent"===e.underlayOpacityLocal},null,8,["modelValue","fallback","disabled"])]),(0,l._)("div",Ko,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.wallpaper")),1),(0,l.Wm)(c,{modelValue:e.wallpaperColorLocal,"onUpdate:modelValue":t[78]||(t[78]=function(t){return e.wallpaperColorLocal=t}),name:"wallpaper",label:e.$t("settings.style.advanced_colors.wallpaper"),fallback:e.previewTheme.colors.wallpaper},null,8,["modelValue","label","fallback"])]),(0,l._)("div",Go,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.poll")),1),(0,l.Wm)(c,{modelValue:e.pollColorLocal,"onUpdate:modelValue":t[79]||(t[79]=function(t){return e.pollColorLocal=t}),name:"poll",label:e.$t("settings.background"),fallback:e.previewTheme.colors.poll},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.pollTextColorLocal,"onUpdate:modelValue":t[80]||(t[80]=function(t){return e.pollTextColorLocal=t}),name:"pollText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.pollText},null,8,["modelValue","label","fallback"])]),(0,l._)("div",Jo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.icons")),1),(0,l.Wm)(c,{modelValue:e.iconColorLocal,"onUpdate:modelValue":t[81]||(t[81]=function(t){return e.iconColorLocal=t}),name:"icon",label:e.$t("settings.style.advanced_colors.icons"),fallback:e.previewTheme.colors.icon},null,8,["modelValue","label","fallback"])]),(0,l._)("div",Qo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.highlight")),1),(0,l.Wm)(c,{modelValue:e.highlightColorLocal,"onUpdate:modelValue":t[82]||(t[82]=function(t){return e.highlightColorLocal=t}),name:"highlight",label:e.$t("settings.background"),fallback:e.previewTheme.colors.highlight},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.highlightTextColorLocal,"onUpdate:modelValue":t[83]||(t[83]=function(t){return e.highlightTextColorLocal=t}),name:"highlightText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.highlightText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.highlightText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.highlightLinkColorLocal,"onUpdate:modelValue":t[84]||(t[84]=function(t){return e.highlightLinkColorLocal=t}),name:"highlightLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.highlightLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.highlightLink},null,8,["contrast"])]),(0,l._)("div",Xo,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.popover")),1),(0,l.Wm)(c,{modelValue:e.popoverColorLocal,"onUpdate:modelValue":t[85]||(t[85]=function(t){return e.popoverColorLocal=t}),name:"popover",label:e.$t("settings.background"),fallback:e.previewTheme.colors.popover},null,8,["modelValue","label","fallback"]),(0,l.Wm)(d,{modelValue:e.popoverOpacityLocal,"onUpdate:modelValue":t[86]||(t[86]=function(t){return e.popoverOpacityLocal=t}),name:"popoverOpacity",fallback:e.previewTheme.opacity.popover,disabled:"transparent"===e.popoverOpacityLocal},null,8,["modelValue","fallback","disabled"]),(0,l.Wm)(c,{modelValue:e.popoverTextColorLocal,"onUpdate:modelValue":t[87]||(t[87]=function(t){return e.popoverTextColorLocal=t}),name:"popoverText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.popoverText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.popoverText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.popoverLinkColorLocal,"onUpdate:modelValue":t[88]||(t[88]=function(t){return e.popoverLinkColorLocal=t}),name:"popoverLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.popoverLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.popoverLink},null,8,["contrast"])]),(0,l._)("div",es,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.selectedPost")),1),(0,l.Wm)(c,{modelValue:e.selectedPostColorLocal,"onUpdate:modelValue":t[89]||(t[89]=function(t){return e.selectedPostColorLocal=t}),name:"selectedPost",label:e.$t("settings.background"),fallback:e.previewTheme.colors.selectedPost},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.selectedPostTextColorLocal,"onUpdate:modelValue":t[90]||(t[90]=function(t){return e.selectedPostTextColorLocal=t}),name:"selectedPostText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.selectedPostText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedPostText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.selectedPostLinkColorLocal,"onUpdate:modelValue":t[91]||(t[91]=function(t){return e.selectedPostLinkColorLocal=t}),name:"selectedPostLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.selectedPostLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedPostLink},null,8,["contrast"])]),(0,l._)("div",ts,[(0,l._)("h4",null,(0,f.zw)(e.$t("settings.style.advanced_colors.selectedMenu")),1),(0,l.Wm)(c,{modelValue:e.selectedMenuColorLocal,"onUpdate:modelValue":t[92]||(t[92]=function(t){return e.selectedMenuColorLocal=t}),name:"selectedMenu",label:e.$t("settings.background"),fallback:e.previewTheme.colors.selectedMenu},null,8,["modelValue","label","fallback"]),(0,l.Wm)(c,{modelValue:e.selectedMenuTextColorLocal,"onUpdate:modelValue":t[93]||(t[93]=function(t){return e.selectedMenuTextColorLocal=t}),name:"selectedMenuText",label:e.$t("settings.text"),fallback:e.previewTheme.colors.selectedMenuText},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedMenuText},null,8,["contrast"]),(0,l.Wm)(c,{modelValue:e.selectedMenuLinkColorLocal,"onUpdate:modelValue":t[94]||(t[94]=function(t){return e.selectedMenuLinkColorLocal=t}),name:"selectedMenuLink",label:e.$t("settings.links"),fallback:e.previewTheme.colors.selectedMenuLink},null,8,["modelValue","label","fallback"]),(0,l.Wm)(p,{contrast:e.previewContrast.selectedMenuLink},null,8,["contrast"])]),(0,l._)("div",ns,[(0,l._)("h4",null,(0,f.zw)(e.$t("chats.chats")),1),(0,l.Wm)(c,{modelValue:e.chatBgColorLocal,"onUpdate:modelValue":t[95]||(t[95]=function(t){return e.chatBgColorLocal=t}),name:"chatBgColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l._)("h5",null,(0,f.zw)(e.$t("settings.style.advanced_colors.chat.incoming")),1),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingBgColorLocal,"onUpdate:modelValue":t[96]||(t[96]=function(t){return e.chatMessageIncomingBgColorLocal=t}),name:"chatMessageIncomingBgColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingTextColorLocal,"onUpdate:modelValue":t[97]||(t[97]=function(t){return e.chatMessageIncomingTextColorLocal=t}),name:"chatMessageIncomingTextColor",fallback:e.previewTheme.colors.text,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingLinkColorLocal,"onUpdate:modelValue":t[98]||(t[98]=function(t){return e.chatMessageIncomingLinkColorLocal=t}),name:"chatMessageIncomingLinkColor",fallback:e.previewTheme.colors.link,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageIncomingBorderColorLocal,"onUpdate:modelValue":t[99]||(t[99]=function(t){return e.chatMessageIncomingBorderColorLocal=t}),name:"chatMessageIncomingBorderLinkColor",fallback:e.previewTheme.colors.fg,label:e.$t("settings.style.advanced_colors.chat.border")},null,8,["modelValue","fallback","label"]),(0,l._)("h5",null,(0,f.zw)(e.$t("settings.style.advanced_colors.chat.outgoing")),1),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingBgColorLocal,"onUpdate:modelValue":t[100]||(t[100]=function(t){return e.chatMessageOutgoingBgColorLocal=t}),name:"chatMessageOutgoingBgColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.background")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingTextColorLocal,"onUpdate:modelValue":t[101]||(t[101]=function(t){return e.chatMessageOutgoingTextColorLocal=t}),name:"chatMessageOutgoingTextColor",fallback:e.previewTheme.colors.text,label:e.$t("settings.text")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingLinkColorLocal,"onUpdate:modelValue":t[102]||(t[102]=function(t){return e.chatMessageOutgoingLinkColorLocal=t}),name:"chatMessageOutgoingLinkColor",fallback:e.previewTheme.colors.link,label:e.$t("settings.links")},null,8,["modelValue","fallback","label"]),(0,l.Wm)(c,{modelValue:e.chatMessageOutgoingBorderColorLocal,"onUpdate:modelValue":t[103]||(t[103]=function(t){return e.chatMessageOutgoingBorderColorLocal=t}),name:"chatMessageOutgoingBorderLinkColor",fallback:e.previewTheme.colors.bg,label:e.$t("settings.style.advanced_colors.chat.border")},null,8,["modelValue","fallback","label"])])],8,jo),(0,l._)("div",{label:e.$t("settings.style.radii._tab_label"),class:"radius-container"},[(0,l._)("div",as,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.radii_help")),1),(0,l._)("button",{class:"btn button-default",onClick:t[104]||(t[104]=function(){return e.clearRoundness&&e.clearRoundness.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l.Wm)(m,{modelValue:e.btnRadiusLocal,"onUpdate:modelValue":t[105]||(t[105]=function(t){return e.btnRadiusLocal=t}),name:"btnRadius",label:e.$t("settings.btnRadius"),fallback:e.previewTheme.radii.btn,max:"16","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.inputRadiusLocal,"onUpdate:modelValue":t[106]||(t[106]=function(t){return e.inputRadiusLocal=t}),name:"inputRadius",label:e.$t("settings.inputRadius"),fallback:e.previewTheme.radii.input,max:"9","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.checkboxRadiusLocal,"onUpdate:modelValue":t[107]||(t[107]=function(t){return e.checkboxRadiusLocal=t}),name:"checkboxRadius",label:e.$t("settings.checkboxRadius"),fallback:e.previewTheme.radii.checkbox,max:"16","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.panelRadiusLocal,"onUpdate:modelValue":t[108]||(t[108]=function(t){return e.panelRadiusLocal=t}),name:"panelRadius",label:e.$t("settings.panelRadius"),fallback:e.previewTheme.radii.panel,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.avatarRadiusLocal,"onUpdate:modelValue":t[109]||(t[109]=function(t){return e.avatarRadiusLocal=t}),name:"avatarRadius",label:e.$t("settings.avatarRadius"),fallback:e.previewTheme.radii.avatar,max:"28","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.avatarAltRadiusLocal,"onUpdate:modelValue":t[110]||(t[110]=function(t){return e.avatarAltRadiusLocal=t}),name:"avatarAltRadius",label:e.$t("settings.avatarAltRadius"),fallback:e.previewTheme.radii.avatarAlt,max:"28","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.attachmentRadiusLocal,"onUpdate:modelValue":t[111]||(t[111]=function(t){return e.attachmentRadiusLocal=t}),name:"attachmentRadius",label:e.$t("settings.attachmentRadius"),fallback:e.previewTheme.radii.attachment,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.tooltipRadiusLocal,"onUpdate:modelValue":t[112]||(t[112]=function(t){return e.tooltipRadiusLocal=t}),name:"tooltipRadius",label:e.$t("settings.tooltipRadius"),fallback:e.previewTheme.radii.tooltip,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(m,{modelValue:e.chatMessageRadiusLocal,"onUpdate:modelValue":t[113]||(t[113]=function(t){return e.chatMessageRadiusLocal=t}),name:"chatMessageRadius",label:e.$t("settings.chatMessageRadius"),fallback:e.previewTheme.radii.chatMessage||2,max:"50","hard-min":"0"},null,8,["modelValue","label","fallback"])],8,ls),(0,l._)("div",{label:e.$t("settings.style.shadows._tab_label"),class:"shadow-container"},[(0,l._)("div",ss,[(0,l._)("div",rs,[(0,l.Uk)((0,f.zw)(e.$t("settings.style.shadows.component"))+" "+(0,f.zw)(" ")+" ",1),(0,l.Wm)(r,{id:"shadow-switcher",modelValue:e.shadowSelected,"onUpdate:modelValue":t[114]||(t[114]=function(t){return e.shadowSelected=t}),class:"shadow-switcher"},{default:(0,l.w5)((function(){return[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.shadowsAvailable,(function(t){return(0,l.wg)(),(0,l.iD)("option",{key:t,value:t},(0,f.zw)(e.$t("settings.style.shadows.components."+t)),9,is)})),128))]})),_:1},8,["modelValue"])]),(0,l._)("div",us,[(0,l._)("label",cs,(0,f.zw)(e.$t("settings.style.shadows.override")),1),(0,l.Uk)(" "+(0,f.zw)(" ")+" "),(0,l.wy)((0,l._)("input",{id:"override","onUpdate:modelValue":t[115]||(t[115]=function(t){return e.currentShadowOverriden=t}),name:"override",class:"input-override",type:"checkbox"},null,512),[[me.e8,e.currentShadowOverriden]]),ds]),(0,l._)("button",{class:"btn button-default",onClick:t[116]||(t[116]=function(){return e.clearShadows&&e.clearShadows.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l.Wm)(h,{modelValue:e.currentShadow,"onUpdate:modelValue":t[117]||(t[117]=function(t){return e.currentShadow=t}),ready:!!e.currentShadowFallback,fallback:e.currentShadowFallback},null,8,["modelValue","ready","fallback"]),"avatar"===e.shadowSelected||"avatarStatus"===e.shadowSelected?((0,l.wg)(),(0,l.iD)("div",ps,[(0,l.Wm)(g,{scope:"global",keypath:"settings.style.shadows.filter_hint.always_drop_shadow",tag:"p"},{default:(0,l.w5)((function(){return[ms]})),_:1}),(0,l._)("p",null,(0,f.zw)(e.$t("settings.style.shadows.filter_hint.avatar_inset")),1),(0,l.Wm)(g,{scope:"global",keypath:"settings.style.shadows.filter_hint.drop_shadow_syntax",tag:"p"},{default:(0,l.w5)((function(){return[fs,hs,gs]})),_:1}),(0,l.Wm)(g,{scope:"global",keypath:"settings.style.shadows.filter_hint.inset_classic",tag:"p"},{default:(0,l.w5)((function(){return[bs]})),_:1}),(0,l._)("p",null,(0,f.zw)(e.$t("settings.style.shadows.filter_hint.spread_zero")),1)])):(0,l.kq)("",!0)],8,os),(0,l._)("div",{label:e.$t("settings.style.fonts._tab_label"),class:"fonts-container"},[(0,l._)("div",_s,[(0,l._)("p",null,(0,f.zw)(e.$t("settings.style.fonts.help")),1),(0,l._)("button",{class:"btn button-default",onClick:t[118]||(t[118]=function(){return e.clearFonts&&e.clearFonts.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.clear_all")),1)]),(0,l.Wm)(b,{modelValue:e.fontsLocal.interface,"onUpdate:modelValue":t[119]||(t[119]=function(t){return e.fontsLocal.interface=t}),name:"ui",label:e.$t("settings.style.fonts.components.interface"),fallback:e.previewTheme.fonts.interface,"no-inherit":"1"},null,8,["modelValue","label","fallback"]),(0,l.Wm)(b,{modelValue:e.fontsLocal.input,"onUpdate:modelValue":t[120]||(t[120]=function(t){return e.fontsLocal.input=t}),name:"input",label:e.$t("settings.style.fonts.components.input"),fallback:e.previewTheme.fonts.input},null,8,["modelValue","label","fallback"]),(0,l.Wm)(b,{modelValue:e.fontsLocal.post,"onUpdate:modelValue":t[121]||(t[121]=function(t){return e.fontsLocal.post=t}),name:"post",label:e.$t("settings.style.fonts.components.post"),fallback:e.previewTheme.fonts.post},null,8,["modelValue","label","fallback"]),(0,l.Wm)(b,{modelValue:e.fontsLocal.postCode,"onUpdate:modelValue":t[122]||(t[122]=function(t){return e.fontsLocal.postCode=t}),name:"postCode",label:e.$t("settings.style.fonts.components.postCode"),fallback:e.previewTheme.fonts.postCode},null,8,["modelValue","label","fallback"])],8,ws)]})),_:1})],1024)),e.isActive?((0,l.wg)(),(0,l.j4)(l.lR,{key:0,to:"#unscrolled-content"},[(0,l._)("div",ks,[(0,l._)("button",{class:"btn button-default submit",disabled:!e.themeValid,onClick:t[123]||(t[123]=function(){return e.setCustomTheme&&e.setCustomTheme.apply(e,arguments)})},(0,f.zw)(e.$t("general.apply")),9,vs),(0,l._)("button",{class:"btn button-default",onClick:t[124]||(t[124]=function(){return e.clearAll&&e.clearAll.apply(e,arguments)})},(0,f.zw)(e.$t("settings.style.switcher.reset")),1)])])):(0,l.kq)("",!0)])}]]);j.vI.add(B.klh,B.ILF,B.G_j,B.XsY,B.qmU,B.q7m,B.Aq,B.YHc);const Vi={components:{TabSwitcher:m.Z,DataImportExportTab:G,MutesAndBlocksTab:et,NotificationsTab:Dt,FilteringTab:sn,SecurityTab:yl,ProfileTab:ya,GeneralTab:no,VersionTab:po,ThemeTab:Ci},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},open:function(){return"hidden"!==this.$store.state.interface.settingsModalState},bodyLock:function(){return"visible"===this.$store.state.interface.settingsModalState}},methods:{onOpen:function(){var e=this.$store.state.interface.settingsModalTargetTab;if(e){var t=this.$refs.tabSwitcher.$slots.default().findIndex((function(t){return t.props&&t.props["data-tab-name"]===e}));t>=0&&this.$refs.tabSwitcher.setTab(t)}this.$store.dispatch("clearSettingsModalTargetTab")}},mounted:function(){this.onOpen()},watch:{open:function(e){e&&this.onOpen()}}},Ti=(0,E.Z)(Vi,[["render",function(e,t,n,m,f,h){var g=(0,l.up)("GeneralTab"),b=(0,l.up)("ProfileTab"),w=(0,l.up)("SecurityTab"),_=(0,l.up)("FilteringTab"),k=(0,l.up)("ThemeTab"),v=(0,l.up)("NotificationsTab"),y=(0,l.up)("DataImportExportTab"),$=(0,l.up)("MutesAndBlocksTab"),C=(0,l.up)("VersionTab"),V=(0,l.up)("tab-switcher");return(0,l.wg)(),(0,l.j4)(V,{ref:"tabSwitcher",class:"settings_tab-switcher","side-tab-bar":!0,"scrollable-tabs":!0,"body-scroll-lock":e.bodyLock},{default:(0,l.w5)((function(){return[(0,l._)("div",{label:e.$t("settings.general"),icon:"wrench","data-tab-name":"general"},[(0,l.Wm)(g)],8,a),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:0,label:e.$t("settings.profile_tab"),icon:"user","data-tab-name":"profile"},[(0,l.Wm)(b)],8,o)):(0,l.kq)("",!0),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:1,label:e.$t("settings.security_tab"),icon:"lock","data-tab-name":"security"},[(0,l.Wm)(w)],8,s)):(0,l.kq)("",!0),(0,l._)("div",{label:e.$t("settings.filtering"),icon:"filter","data-tab-name":"filtering"},[(0,l.Wm)(_)],8,r),(0,l._)("div",{label:e.$t("settings.theme"),icon:"paint-brush","data-tab-name":"theme"},[(0,l.Wm)(k)],8,i),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:2,label:e.$t("settings.notifications"),icon:"bell","data-tab-name":"notifications"},[(0,l.Wm)(v)],8,u)):(0,l.kq)("",!0),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:3,label:e.$t("settings.data_import_export_tab"),icon:"download","data-tab-name":"dataImportExport"},[(0,l.Wm)(y)],8,c)):(0,l.kq)("",!0),e.isLoggedIn?((0,l.wg)(),(0,l.iD)("div",{key:4,label:e.$t("settings.mutes_and_blocks"),fullHeight:!0,icon:"eye-slash","data-tab-name":"mutesAndBlocks"},[(0,l.Wm)($)],8,d)):(0,l.kq)("",!0),(0,l._)("div",{label:e.$t("settings.version.title"),icon:"info","data-tab-name":"version"},[(0,l.Wm)(C)],8,p)]})),_:1},8,["body-scroll-lock"])}]])}}]);
+//# sourceMappingURL=9114.e761a1c6846fea99aaf1.js.map \ No newline at end of file
diff --git a/priv/static/static/js/9114.e761a1c6846fea99aaf1.js.map b/priv/static/static/js/9114.e761a1c6846fea99aaf1.js.map
new file mode 100644
index 000000000..06cfe9bd3
--- /dev/null
+++ b/priv/static/static/js/9114.e761a1c6846fea99aaf1.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/9114.e761a1c6846fea99aaf1.js","mappings":"sSAISA,MAAM,gB,GASNA,MAAM,gB,GAQNA,MAAM,gB,GASNA,MAAM,gB,GAQNA,MAAM,gB,GASNA,MAAM,gB,GAQNA,MAAM,gB,GAOHC,EAAAA,EAAAA,GAAM,mB,GASFD,MAAM,W,kDA6BdA,MAAM,e,6CCnGPA,MAAM,Y,yCCKbE,EAAAA,GAAAA,IACEC,EAAAA,IACAC,EAAAA,KAwCF,QArCiB,CACfC,MAAO,CACLC,cAAe,CACbC,KAAMC,SACNC,UAAU,GAEZC,kBAAmB,CAAEH,KAAMI,QAC3BC,eAAgB,CAAEL,KAAMI,QACxBE,aAAc,CAAEN,KAAMI,SAExBG,KAAI,WACF,MAAO,CACLC,KAAM,KACNC,OAAO,EACPC,SAAS,EACTC,YAAY,EAEhB,EACAC,QAAS,CACPC,OAAM,WACJC,KAAKN,KAAOM,KAAKC,MAAMC,MAAMC,MAAM,EACrC,EACAC,OAAM,WAAI,WACRJ,KAAKK,UACLL,KAAKH,YAAa,EAClBG,KAAKf,cAAce,KAAKN,MACrBY,MAAK,WAAQ,EAAKV,SAAU,CAAK,IAAE,OAC7B,WAAQ,EAAKD,OAAQ,CAAK,IAAE,SAC1B,WAAQ,EAAKE,YAAa,CAAM,GAC7C,EACAQ,QAAO,WACLL,KAAKJ,SAAU,EACfI,KAAKL,OAAQ,CACf,I,eCrCJ,MAEA,GAFiC,OAAgB,EAAQ,CAAC,CAAC,S,iEFNzDY,EAAAA,EAAAA,IA6CM,MA7CNC,EA6CM,EA5CJ5B,EAAAA,EAAAA,GAMO,cALLA,EAAAA,EAAAA,GAIC,SAHC6B,IAAI,QACJvB,KAAK,OACJwB,SAAM,8BAAEC,EAAAA,QAAAA,EAAAA,OAAAA,MAAAA,EAAAA,UAAM,I,YAIXA,EAAAA,aAAU,WADlBC,EAAAA,EAAAA,IAKEC,EAAAA,C,MAHAlC,MAAM,qBACNmC,KAAA,GACAC,KAAK,oB,WAEPR,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,QAAAA,EAAAA,OAAAA,MAAAA,EAAAA,UAAM,K,QAEXA,EAAAA,mBAAqBA,EAAAA,GAAG,oBAAD,IAEjBA,EAAAA,UAAO,WAAlBJ,EAAAA,EAAAA,IAWM,UAVJ3B,EAAAA,EAAAA,GAOS,UANPD,MAAM,kBACLqC,QAAK,8BAAEL,EAAAA,SAAAA,EAAAA,QAAAA,MAAAA,EAAAA,UAAO,I,EAEfM,EAAAA,EAAAA,IAEEJ,EAAAA,CADAE,KAAK,aAAO,QAEP,KACT,QAAG,KAAM,MACT,OAA2D,qBAAlDJ,EAAAA,gBAAkBA,EAAAA,GAAG,qBAAD,MAEfA,EAAAA,QAAK,WAArBJ,EAAAA,EAAAA,IAWM,UAVJ3B,EAAAA,EAAAA,GAOS,UANPD,MAAM,kBACLqC,QAAK,8BAAEL,EAAAA,SAAAA,EAAAA,QAAAA,MAAAA,EAAAA,UAAO,I,EAEfM,EAAAA,EAAAA,IAEEJ,EAAAA,CADAE,KAAK,aAAO,QAEP,KACT,QAAG,KAAM,MACT,OAAuD,qBAA9CJ,EAAAA,cAAgBA,EAAAA,GAAG,mBAAD,uB,YG3C1BhC,MAAM,Y,UCEbE,EAAAA,GAAAA,IACEC,EAAAA,KAwCF,QArCiB,CACfE,MAAO,CACLkC,WAAY,CACVhC,KAAMC,SACNC,UAAU,GAEZ+B,SAAU,CACRjC,KAAMI,OACN8B,QAAS,cAEXC,kBAAmB,CAAEnC,KAAMI,QAC3BgC,kBAAmB,CAAEpC,KAAMI,SAE7BG,KAAI,WACF,MAAO,CACL8B,YAAY,EAEhB,EACAzB,QAAS,CACP0B,QAAO,WAAI,WACTxB,KAAKuB,YAAa,EAClBvB,KAAKkB,aACFZ,MAAK,SAACmB,GACL,IAAMC,EAAiBC,SAASC,cAAc,KAC9CF,EAAeG,aAAa,OAAQ,iCAAmCC,mBAAmBL,IAC1FC,EAAeG,aAAa,WAAY,EAAKV,UAC7CO,EAAeK,MAAMC,QAAU,OAC/BL,SAASM,KAAKC,YAAYR,GAC1BA,EAAeS,QACfR,SAASM,KAAKG,YAAYV,GAE1BW,YAAW,WAAQ,EAAKd,YAAa,CAAM,GAAG,IAChD,GACJ,IC/BJ,GAFiC,OAAgB,EAAQ,CAAC,CAAC,S,iEFNzDhB,EAAAA,EAAAA,IAiBM,MAjBNC,EAiBM,CAhBOG,EAAAA,aAAU,WAArBJ,EAAAA,EAAAA,IAQM,UAPJU,EAAAA,EAAAA,IAIEJ,EAAAA,CAHAE,KAAK,eACLuB,KAAK,KACLxB,KAAA,MAGFlC,EAAAA,EAAAA,GAAiE,qBAAxD+B,EAAAA,mBAAqBA,EAAAA,GAAG,wBAAD,mBAElCJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,SAAAA,EAAAA,QAAAA,MAAAA,EAAAA,UAAO,K,QAEZA,EAAAA,mBAAqBA,EAAAA,GAAG,oBAAD,K,2PGyFhC,QApG4B,CAC1BlB,KAAI,WACF,MAAO,CACL8C,UAAW,UACXC,gBAAiB,GACjBC,kBAAkB,EAClBC,gBAAgB,EAChBC,aAAa,EACbC,QAAS,GAEb,EACAC,QAAO,WACL7C,KAAK8C,OAAOC,SAAS,eACrB/C,KAAKgD,cACP,EACAC,WAAY,CACVC,SAAAA,EACAC,SAAAA,EACAC,SAAAA,EAAAA,GAEFC,S,qWAAU,CAAF,IACHC,EAAAA,EAAAA,IAAS,CACVC,kBAAmB,SAACC,GAAK,OAAKA,EAAMC,IAAIF,iBAAiB,EACzDG,KAAM,SAACF,GAAK,OAAKA,EAAMG,MAAMC,WAAW,KAG5C9D,QAAS,CACP+D,kBAAiB,WACf,OAAO7D,KAAKuD,kBAAkBO,cAAc,CAAEC,GAAI/D,KAAK0D,KAAKK,KACzDzD,KAAKN,KAAKgE,+BACf,EACAC,iBAAgB,WACd,OAAOjE,KAAKuD,kBAAkBW,cAC3B5D,KAAKN,KAAKgE,+BACf,EACAG,gBAAe,WACb,OAAOnE,KAAKuD,kBAAkBa,aAC3B9D,KAAKN,KAAKgE,+BACf,EACAK,cAAa,SAAE3E,GACb,OAAOM,KAAKuD,kBAAkBc,cAAc,CAAE3E,KAAAA,IAC3CY,MAAK,SAACgE,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,SAEpB,GACJ,EACAC,aAAY,SAAE9E,GACZ,OAAOM,KAAKuD,kBAAkBiB,aAAa,CAAE9E,KAAAA,IAC1CY,MAAK,SAACgE,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,SAEpB,GACJ,EACAE,YAAW,SAAE/E,GACX,OAAOM,KAAKuD,kBAAkBkB,YAAY,CAAE/E,KAAAA,IACzCY,MAAK,SAACgE,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,SAEpB,GACJ,EACAP,+BAA8B,SAAEL,GAE9B,OAAOA,EAAMe,KAAI,SAAChB,GAEhB,OAAIA,GAAQA,EAAKiB,SAGRjB,EAAKkB,YAAc,IAAMC,SAASC,SAEpCpB,EAAKkB,WACd,IAAGG,KAAK,KACV,EACAC,UAAS,WAAI,WACXhF,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkByB,YACrC1E,MAAK,SAAC2E,GACL,EAAKtC,aAAc,EACnB,EAAKD,gBAAiB,CACxB,IAAE,OACK,SAAC/C,GACN,EAAKgD,aAAc,EACnB,EAAKD,eAAiB/C,CACxB,IACCW,MAAK,kBAAM,EAAK0C,cAAc,GACnC,EACAA,aAAY,WAAI,WACdhD,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkB2B,cACrC5E,MAAK,SAAC2E,GACL,EAAKrC,QAAUqC,EACf,EAAKxC,kBAAmB,CAC1B,IAAE,OACK,SAAC9C,GACN,EAAK8C,iBAAmB9C,EAAMA,KAChC,GACJ,IC9FJ,GAFiC,OAAgB,EAAQ,CAAC,CAAC,S,+GRJzDY,EAAAA,EAAAA,IA6HM,OA5HH4E,MAAOxE,EAAAA,GAAG,oC,EAEX/B,EAAAA,EAAAA,GAQM,MARNwG,EAQM,EAPJxG,EAAAA,EAAAA,GAA2C,mBAApC+B,EAAAA,GAAG,2BAAD,IACT/B,EAAAA,EAAAA,GAA4D,kBAAtD+B,EAAAA,GAAG,8CAAD,IACRM,EAAAA,EAAAA,IAIEoE,EAAAA,CAHC,iBAAgB1E,EAAAA,cAChB,kBAAiBA,EAAAA,GAAG,6BACpB,gBAAeA,EAAAA,GAAG,iC,gEAGvB/B,EAAAA,EAAAA,GAOM,MAPN0G,EAOM,EANJ1G,EAAAA,EAAAA,GAA2C,mBAApC+B,EAAAA,GAAG,2BAAD,IACTM,EAAAA,EAAAA,IAIEsE,EAAAA,CAHC,cAAa5E,EAAAA,kBACdQ,SAAS,cACR,sBAAqBR,EAAAA,GAAG,kC,iDAG7B/B,EAAAA,EAAAA,GAQM,MARN4G,EAQM,EAPJ5G,EAAAA,EAAAA,GAA0C,mBAAnC+B,EAAAA,GAAG,0BAAD,IACT/B,EAAAA,EAAAA,GAAyD,kBAAnD+B,EAAAA,GAAG,2CAAD,IACRM,EAAAA,EAAAA,IAIEoE,EAAAA,CAHC,iBAAgB1E,EAAAA,aAChB,kBAAiBA,EAAAA,GAAG,4BACpB,gBAAeA,EAAAA,GAAG,gC,gEAGvB/B,EAAAA,EAAAA,GAOM,MAPN6G,EAOM,EANJ7G,EAAAA,EAAAA,GAA0C,mBAAnC+B,EAAAA,GAAG,0BAAD,IACTM,EAAAA,EAAAA,IAIEsE,EAAAA,CAHC,cAAa5E,EAAAA,iBACdQ,SAAS,aACR,sBAAqBR,EAAAA,GAAG,iC,iDAG7B/B,EAAAA,EAAAA,GAQM,MARN8G,EAQM,EAPJ9G,EAAAA,EAAAA,GAAyC,mBAAlC+B,EAAAA,GAAG,yBAAD,IACT/B,EAAAA,EAAAA,GAAwD,kBAAlD+B,EAAAA,GAAG,0CAAD,IACRM,EAAAA,EAAAA,IAIEoE,EAAAA,CAHC,iBAAgB1E,EAAAA,YAChB,kBAAiBA,EAAAA,GAAG,2BACpB,gBAAeA,EAAAA,GAAG,+B,gEAGvB/B,EAAAA,EAAAA,GAOM,MAPN+G,EAOM,EANJ/G,EAAAA,EAAAA,GAAyC,mBAAlC+B,EAAAA,GAAG,yBAAD,IACTM,EAAAA,EAAAA,IAIEsE,EAAAA,CAHC,cAAa5E,EAAAA,gBACdQ,SAAS,YACR,sBAAqBR,EAAAA,GAAG,gC,iDAG7B/B,EAAAA,EAAAA,GAsEM,MAtENgH,EAsEM,EArEJhH,EAAAA,EAAAA,GAA4C,mBAArC+B,EAAAA,GAAG,4BAAD,IACT/B,EAAAA,EAAAA,GAAsD,kBAAhD+B,EAAAA,GAAG,wCAAD,IACR/B,EAAAA,EAAAA,GAuCQ,eAtCNA,EAAAA,EAAAA,GAKQ,eAJNA,EAAAA,EAAAA,GAGK,YAFHA,EAAAA,EAAAA,GAAuD,mBAAhD+B,EAAAA,GAAG,uCAAD,GACTkF,OAGJjH,EAAAA,EAAAA,GA+BQ,6BA9BN2B,EAAAA,EAAAA,IA6BKuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IA5BcnF,EAAAA,SAAO,SAAjBoF,G,kBADTxF,EAAAA,EAAAA,IA6BK,MA3BFyF,IAAKD,EAAOhC,I,EAEbnF,EAAAA,EAAAA,GAAiC,mBAA1BmH,EAAOE,aAAW,IACzBrH,EAAAA,EAAAA,GAuBK,KAvBLsH,EAuBK,CArBKH,EAAOI,YAAS,WADxB5F,EAAAA,EAAAA,IAMI,K,MAJF6F,OAAO,SACNC,KAAMN,EAAOO,M,QAEX3F,EAAAA,GAAG,6BAAD,MAGuB,YAAjBoF,EAAOvC,QAAK,WADzBjD,EAAAA,EAAAA,IAIO,kBADFI,EAAAA,IAAI,0BAA2BoF,EAAOQ,iBAAkB,CAAFC,OAAYT,EAAOQ,oBAAgB,IAGhE,WAAjBR,EAAOvC,QAAK,WADzBjD,EAAAA,EAAAA,IAIO,kBADFI,EAAAA,GAAG,2BAAD,iBAEPJ,EAAAA,EAAAA,IAIO,kBADFI,EAAAA,GAAG,8BAAD,O,cAOPA,EAAAA,mBAAgB,WADxBJ,EAAAA,EAAAA,IAcM,MAdNkG,EAcM,mBAVD9F,EAAAA,GAAG,8BAA+B,CAAhChB,MAAkCgB,EAAAA,SAAW,IAClD,WAQS,UAPN+F,MAAO/F,EAAAA,GAAG,2CACVK,QAAK,+BAAEL,EAAAA,kBAAmB,CAAH,I,EAExBM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFAlC,MAAM,8BACNoC,KAAK,W,yBAIXnC,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,WAAAA,EAAAA,UAAAA,MAAAA,EAAAA,UAAS,K,QAEdA,EAAAA,GAAG,wBAAD,GAEEA,EAAAA,cAAW,WAApBJ,EAAAA,EAAAA,IAEI,eADCI,EAAAA,GAAG,0BAAD,qBAE4B,IAAnBA,EAAAA,iBAAc,WAC5BJ,EAAAA,EAAAA,IAAuE,eAAjEI,EAAAA,GAAG,4BAA6B,CAA9BhB,MAAuCgB,EAAAA,kBAAc,2B,wBSrH1DhC,MAAM,sB,GAkBFA,MAAM,gB,8BAmCNA,MAAM,sB,IAkBFA,MAAM,gB,iBAiCVA,MAAM,oB,IAkBFA,MAAM,gB,qFC7HrBA,MAAM,e,6BAUJA,MAAM,uBCXZ,UACEK,MAAO,CACL2H,MAAO,CACLzH,KAAMC,SACNC,UAAU,GAEZwH,OAAQ,CACN1H,KAAMC,UAER0H,YAAa,CACX3H,KAAMI,OACN8B,QAAS,cAGb3B,KAAI,WACF,MAAO,CACLqH,KAAM,GACNC,QAAS,KACTC,QAAS,GACTC,gBAAgB,EAEpB,EACA5D,SAAU,CACR6D,SAAQ,WACN,OAAOlH,KAAK4G,OAAS5G,KAAK4G,OAAO5G,KAAKgH,SAAWhH,KAAKgH,OACxD,GAEFG,MAAO,CACLL,KAAI,SAAEM,GACJpH,KAAKqH,aAAaD,EACpB,GAEFtH,QAAS,CACPuH,aAAY,SAAEP,GAAM,WAClBQ,aAAatH,KAAK+G,SAClB/G,KAAK+G,QAAU1E,YAAW,WACxB,EAAK2E,QAAU,GACXF,GACF,EAAKH,MAAMG,GAAMxG,MAAK,SAAC0G,GAAc,EAAKA,QAAUA,CAAQ,GAEhE,GA1CuB,IA2CzB,EACAO,aAAY,WACVvH,KAAKiH,gBAAiB,CACxB,EACAO,eAAc,WACZxH,KAAKiH,gBAAiB,CACxB,ICxCJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,kFFNzD1G,EAAAA,EAAAA,IAmBM,MAnBNC,GAmBM,WAfJ5B,EAAAA,EAAAA,GAKC,S,qDAJU+B,EAAAA,KAAI,IACZkG,YAAalG,EAAAA,YACdhC,MAAM,oBACLqC,QAAK,8BAAEL,EAAAA,cAAAA,EAAAA,aAAAA,MAAAA,EAAAA,UAAY,I,mBAHXA,EAAAA,QAMHA,EAAAA,gBAAkBA,EAAAA,SAAS8G,OAAS,IAAH,WADzClH,EAAAA,EAAAA,IAQM,MARN+E,GAQM,gBAJJ/E,EAAAA,EAAAA,IAGEuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IAFenF,EAAAA,UAAQ,SAAhB+G,G,OADTC,EAAAA,EAAAA,IAGEhH,EAAAA,OAAAA,UAAAA,CADC+G,KAAMA,G,oCAfM/G,EAAAA,iB,aGAZhC,MAAM,gC,4CCqCf,SArCkB,CAChBK,MAAO,CAAC,UACRS,KAAI,WACF,MAAO,CACLmI,UAAU,EAEd,EACAvE,SAAU,CACRK,KAAI,WACF,OAAO1D,KAAK8C,OAAO+E,QAAQC,SAAS9H,KAAK+H,OAC3C,EACAC,aAAY,WACV,OAAOhI,KAAK8C,OAAO+E,QAAQG,aAAahI,KAAK+H,OAC/C,EACAE,QAAO,WACL,OAAOjI,KAAKgI,aAAaE,QAC3B,GAEFjF,WAAY,CACVkF,cAAAA,GAAAA,GAEFrI,QAAS,CACPsI,YAAW,WAAI,WACbpI,KAAK4H,UAAW,EAChB5H,KAAK8C,OAAOC,SAAS,cAAe/C,KAAK0D,KAAKK,IAAIzD,MAAK,WACrD,EAAKsH,UAAW,CAClB,GACF,EACAS,UAAS,WAAI,WACXrI,KAAK4H,UAAW,EAChB5H,KAAK8C,OAAOC,SAAS,YAAa/C,KAAK0D,KAAKK,IAAIzD,MAAK,WACnD,EAAKsH,UAAW,CAClB,GACF,IC1BJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,0EFNzDhH,EAAAA,EAAAA,IA6BkB0H,EAAAA,CA7BA5E,KAAM/C,EAAAA,MAAI,C,kBAC1B,iBA2BM,EA3BN/B,EAAAA,EAAAA,GA2BM,MA3BN4B,GA2BM,CAzBIG,EAAAA,UAAO,WADfJ,EAAAA,EAAAA,IAYS,U,MAVP5B,MAAM,qBACL4J,SAAU5H,EAAAA,SACVK,QAAK,8BAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,I,CAEHA,EAAAA,WAAQ,WAAxBJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,+BAAD,sBAEPJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,sBAAD,8BAGTJ,EAAAA,EAAAA,IAYS,U,MAVP5B,MAAM,qBACL4J,SAAU5H,EAAAA,SACVK,QAAK,8BAAEL,EAAAA,WAAAA,EAAAA,UAAAA,MAAAA,EAAAA,UAAS,I,CAEDA,EAAAA,WAAQ,WAAxBJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,6BAAD,sBAEPJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,oBAAD,mB,iCGxBNhC,MAAM,+B,gCCqCf,SArCiB,CACfK,MAAO,CAAC,UACRS,KAAI,WACF,MAAO,CACLmI,UAAU,EAEd,EACAvE,SAAU,CACRK,KAAI,WACF,OAAO1D,KAAK8C,OAAO+E,QAAQC,SAAS9H,KAAK+H,OAC3C,EACAC,aAAY,WACV,OAAOhI,KAAK8C,OAAO+E,QAAQG,aAAahI,KAAK+H,OAC/C,EACAS,MAAK,WACH,OAAOxI,KAAKgI,aAAaS,MAC3B,GAEFxF,WAAY,CACVkF,cAAAA,GAAAA,GAEFrI,QAAS,CACP4I,WAAU,WAAI,WACZ1I,KAAK4H,UAAW,EAChB5H,KAAK8C,OAAOC,SAAS,aAAc/C,KAAK+H,QAAQzH,MAAK,WACnD,EAAKsH,UAAW,CAClB,GACF,EACAe,SAAQ,WAAI,WACV3I,KAAK4H,UAAW,EAChB5H,KAAK8C,OAAOC,SAAS,WAAY/C,KAAK+H,QAAQzH,MAAK,WACjD,EAAKsH,UAAW,CAClB,GACF,IC1BJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,0EFNzDhH,EAAAA,EAAAA,IA6BkB0H,EAAAA,CA7BA5E,KAAM/C,EAAAA,MAAI,C,kBAC1B,iBA2BM,EA3BN/B,EAAAA,EAAAA,GA2BM,MA3BN4B,GA2BM,CAzBIG,EAAAA,QAAK,WADbJ,EAAAA,EAAAA,IAYS,U,MAVP5B,MAAM,qBACL4J,SAAU5H,EAAAA,SACVK,QAAK,8BAAEL,EAAAA,YAAAA,EAAAA,WAAAA,MAAAA,EAAAA,UAAU,I,CAEFA,EAAAA,WAAQ,WAAxBJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,8BAAD,sBAEPJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,qBAAD,8BAGTJ,EAAAA,EAAAA,IAYS,U,MAVP5B,MAAM,qBACL4J,SAAU5H,EAAAA,SACVK,QAAK,8BAAEL,EAAAA,UAAAA,EAAAA,SAAAA,MAAAA,EAAAA,UAAQ,I,CAEAA,EAAAA,WAAQ,WAAxBJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,4BAAD,sBAEPJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,mBAAD,mB,iCGzBRhC,MAAM,oB,IACJA,MAAM,2B,YCuBf,SAvBuB,CACrBK,MAAO,CAAC,UACRiE,WAAY,CACV2F,eAAAA,GAAAA,GAEFvF,SAAU,CACRK,KAAI,WACF,OAAO1D,KAAK8C,OAAOU,MAAMG,MAAMC,WACjC,EACA4E,MAAK,WACH,OAAOxI,KAAK0D,KAAKmF,YAAYC,SAAS9I,KAAK+I,OAC7C,GAEFjJ,QAAS,CACPkJ,aAAY,WACV,OAAOhJ,KAAK8C,OAAOC,SAAS,eAAgB/C,KAAK+I,OACnD,EACAE,WAAU,WACR,OAAOjJ,KAAK8C,OAAOC,SAAS,aAAc/C,KAAK+I,OACjD,ICZJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,yEFNzDxI,EAAAA,EAAAA,IAwBM,MAxBNC,GAwBM,EAvBJ5B,EAAAA,EAAAA,GAEM,MAFNwG,IAEM,QADDzE,EAAAA,QAAM,GAGHA,EAAAA,QAAK,WADbC,EAAAA,EAAAA,IASiBsI,EAAAA,C,MAPd/G,MAAOxB,EAAAA,aACRhC,MAAM,sB,CAGKiJ,UAAQ,SACjB,iBAA4C,mBAAzCjH,EAAAA,GAAG,qCAAD,G,sBAFP,iBAAmC,mBAAhCA,EAAAA,GAAG,4BAA6B,IACnC,G,oCAIFC,EAAAA,EAAAA,IASiBsI,EAAAA,C,MAPd/G,MAAOxB,EAAAA,WACRhC,MAAM,sB,CAGKiJ,UAAQ,SACjB,iBAA0C,mBAAvCjH,EAAAA,GAAG,mCAAD,G,sBAFP,iBAAiC,mBAA9BA,EAAAA,GAAG,0BAA2B,IACjC,G,qCGpBChC,MAAM,mB,UAGPA,MAAM,0B,IAEDA,MAAM,oC,IASNA,MAAM,kC,IAgBFA,MAAM,oCCkCrB,SA9DuB,CACrBsE,WAAY,CACVkG,K,SAAAA,EACA/F,SAAAA,EAAAA,GAEFpE,MAAO,CACLoK,MAAO,CACLlK,KAAMmK,MACNjI,QAAS,iBAAM,EAAE,GAEnBkI,OAAQ,CACNpK,KAAMC,SACNiC,QAAS,SAAAsG,GAAI,OAAIA,EAAK3D,EAAE,IAG5BtE,KAAI,WACF,MAAO,CACL8J,SAAU,GAEd,EACAlG,SAAU,CACRmG,QAAO,WACL,OAAOxJ,KAAKoJ,MAAM1E,IAAI1E,KAAKsJ,OAC7B,EACAG,iBAAgB,WAAI,WAClB,OAAOzJ,KAAKwJ,QAAQ5C,QAAO,SAAAZ,GAAG,OAAoC,IAAhC,EAAKuD,SAASG,QAAQ1D,EAAW,GACrE,EACA2D,YAAW,WACT,OAAO3J,KAAKyJ,iBAAiBhC,SAAWzH,KAAKoJ,MAAM3B,MACrD,EACAmC,aAAY,WACV,OAAwC,IAAjC5J,KAAKyJ,iBAAiBhC,MAC/B,EACAoC,aAAY,WACV,OAAQ7J,KAAK2J,cAAgB3J,KAAK4J,YACpC,GAEF9J,QAAS,CACPgK,WAAU,SAAEpC,GACV,OAA6D,IAAtD1H,KAAKyJ,iBAAiBC,QAAQ1J,KAAKsJ,OAAO5B,GACnD,EACAqC,OAAM,SAAEC,EAAStC,GACf,IAAM1B,EAAMhG,KAAKsJ,OAAO5B,GAEpBsC,IADehK,KAAK8J,WAAW9D,KAE7BgE,EACFhK,KAAKuJ,SAASU,KAAKjE,GAEnBhG,KAAKuJ,SAASW,OAAOlK,KAAKuJ,SAASG,QAAQ1D,GAAM,GAGvD,EACAmE,UAAS,SAAEC,GAEPpK,KAAKuJ,SADHa,EACcpK,KAAKwJ,QAAQa,MAAM,GAEnB,EAEpB,ICpDJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,sFFNzD9J,EAAAA,EAAAA,IA8CM,MA9CNC,GA8CM,CA5CIG,EAAAA,MAAM8G,OAAS,IAAH,WADpBlH,EAAAA,EAAAA,IAmBM,MAnBN6E,GAmBM,EAfJxG,EAAAA,EAAAA,GAQM,MARN0G,GAQM,EAPJrE,EAAAA,EAAAA,IAMWqJ,EAAAA,CALR,cAAa3J,EAAAA,YACb4J,cAAe5J,EAAAA,aACf,sBAAoBA,EAAAA,W,mBAErB,iBAAsC,mBAAnCA,EAAAA,GAAG,+BAAD,G,qEAGT/B,EAAAA,EAAAA,GAKM,MALN4G,GAKM,EAJJmC,EAAAA,EAAAA,IAGEhH,EAAAA,OAAAA,SAAAA,CADC4I,SAAU5I,EAAAA,yBAAgB,gBAIjCM,EAAAA,EAAAA,IAwBOuJ,EAAAA,CAvBJpB,MAAOzI,EAAAA,MACP,UAASA,EAAAA,Q,CAEC+G,MAAI,SACb,gBADgBA,EAAI,EAAJA,KAAI,QACpB9I,EAAAA,EAAAA,GAcM,OAbJD,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,6BAA4B,uCACe9J,EAAAA,WAAW+G,O,EAE5D9I,EAAAA,EAAAA,GAKM,MALN6G,GAKM,EAJJxE,EAAAA,EAAAA,IAGEqJ,EAAAA,CAFC,cAAa3J,EAAAA,WAAW+G,GACxB,sBAAoB,SAAAsC,GAAO,OAAIrJ,EAAAA,OAAOqJ,EAAStC,EAAI,G,iDAGxDC,EAAAA,EAAAA,IAGEhH,EAAAA,OAAAA,OAAAA,CADC+G,KAAMA,KAAI,G,IAINgD,OAAK,SACd,iBAAqB,EAArB/C,EAAAA,EAAAA,IAAqBhH,EAAAA,OAAAA,S,8qBGhC7B9B,EAAAA,GAAAA,IACEC,EAAAA,KA6EF,SA1EyB,SAAH,OACpB6L,EAAK,EAALA,MACAC,EAAM,EAANA,OAAM,IACNC,cAAAA,OAAa,IAAG,YAAS,MACzBC,oBAAAA,OAAmB,IAAG,KAAE,SACpB,SAACC,GACL,IACM/L,EADgBgM,OAAOC,MAAKC,EAAAA,GAAAA,GAAkBH,IACxBnE,QAAO,SAAAuE,GAAC,OAAIA,IAAMN,CAAa,IAAEO,OAAON,GAEpE,MAAO,CACL9L,MAAO,GAAF,gBACAA,GAAK,CACR,YAEFS,KAAI,WACF,MAAO,CACL4L,SAAS,EACT1L,OAAO,EAEX,EACA0D,SAAU,CACRiI,YAAW,WACT,OAAOV,EAAO5K,KAAKuL,OAAQvL,KAAK8C,OAClC,GAEFD,QAAO,YACD7C,KAAKwL,SAAWC,KAAQzL,KAAKsL,eAC/BtL,KAAK0L,WAET,EACA5L,QAAS,CACP4L,UAAS,WAAI,WACN1L,KAAKqL,UACRrL,KAAKqL,SAAU,EACfrL,KAAKL,OAAQ,EACbgL,EAAM3K,KAAKuL,OAAQvL,KAAK8C,QACrBxC,MAAK,WACJ,EAAK+K,SAAU,CACjB,IAAE,OACK,WACL,EAAK1L,OAAQ,EACb,EAAK0L,SAAU,CACjB,IAEN,GAEFM,OAAM,WACJ,GAAK3L,KAAKL,OAAUK,KAAKqL,QAcvB,OAAO,eAAP,MACa,6BAA2B,CACnCrL,KAAKL,OAAK,qBACKK,KAAK0L,UAAS,MAAQ,eAAa,CAAE1L,KAAK4L,GAAG,4BAAwB,4BAC/D,gBAAc,QAjBxC,IAtDkC,EAsD5B5M,EAAQ,SACTgB,KAAKuL,QAAM,cACbV,EAAgB7K,KAAKsL,cAElBO,EAAW7L,KAAK8L,OACtB,OAAO,eAAP,MACa,qBAAmB,YACN9M,GA7DQ,EA8D3B6M,EA9D2B,0FA8D3BA,EAAQ,2BAARA,EAAQ,MAcnB,EAEJ,CAAC,EC3ED,IAAME,GAAYC,GAAiB,CACjCrB,MAAO,SAAC3L,EAAO8D,GAAM,OAAKA,EAAOC,SAAS,cAAc,EACxD6H,OAAQ,SAAC5L,EAAO8D,GAAM,OAAKmJ,KAAInJ,EAAOU,MAAMG,MAAMC,YAAa,WAAY,GAAG,EAC9EiH,cAAe,SAHCmB,CAIfE,IAEGC,GAAWH,GAAiB,CAChCrB,MAAO,SAAC3L,EAAO8D,GAAM,OAAKA,EAAOC,SAAS,aAAa,EACvD6H,OAAQ,SAAC5L,EAAO8D,GAAM,OAAKmJ,KAAInJ,EAAOU,MAAMG,MAAMC,YAAa,UAAW,GAAG,EAC7EiH,cAAe,SAHAmB,CAIdE,IAEGE,GAAiBJ,GAAiB,CACtCrB,MAAO,SAAC3L,EAAO8D,GAAM,OAAKA,EAAOC,SAAS,mBAAmB,EAC7D6H,OAAQ,SAAC5L,EAAO8D,GAAM,OAAKmJ,KAAInJ,EAAOU,MAAMG,MAAMC,YAAa,cAAe,GAAG,EACjFiH,cAAe,SAHMmB,CAIpBE,IA0GH,SAxGuB,CACrBzM,KAAI,WACF,MAAO,CACL8C,UAAW,UAEf,EACAM,QAAO,WACL7C,KAAK8C,OAAOC,SAAS,eACrB/C,KAAK8C,OAAOC,SAAS,kBACvB,EACAE,WAAY,CACVoJ,YAAAA,EAAAA,EACAN,UAAAA,GACAI,SAAAA,GACAC,eAAAA,GACAE,UAAAA,GACAC,SAAAA,GACAC,eAAAA,GACA5D,eAAAA,GAAAA,EACA6D,YAAAA,GACArJ,SAAAA,EAAAA,GAEFC,SAAU,CACRqJ,aAAY,WACV,OAAO1M,KAAK8C,OAAOU,MAAMmJ,SAASD,YACpC,EACAhJ,KAAI,WACF,OAAO1D,KAAK8C,OAAOU,MAAMG,MAAMC,WACjC,GAEF9D,QAAS,CACPuE,cAAa,SAAE3E,GACb,OAAOM,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBc,cAAc,CAAE3E,KAAAA,IAC5DY,MAAK,SAACgE,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,SAEpB,GACJ,EACAC,aAAY,SAAE9E,GACZ,OAAOM,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBiB,aAAa,CAAE9E,KAAAA,IAC3DY,MAAK,SAACgE,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,SAEpB,GACJ,EACAP,+BAA8B,SAAEL,GAE9B,OAAOA,EAAMe,KAAI,SAAChB,GAEhB,OAAIA,GAAQA,EAAKiB,SAGRjB,EAAKkB,YAAc,IAAMC,SAASC,SAEpCpB,EAAKkB,WACd,IAAGG,KAAK,KACV,EACA6H,YAAW,SAAEC,GACX7M,KAAKuC,UAAYsK,CACnB,EACAC,qBAAoB,SAAEC,GAAS,WAC7B,OAAOC,KAAOD,GAAS,SAAChF,GAEtB,OADqB,EAAKjF,OAAO+E,QAAQG,aAAa,EAAKD,QACvCG,UAAYH,IAAW,EAAKrE,KAAKK,EACvD,GACF,EACAkJ,mBAAkB,SAAEF,GAAS,WAC3B,OAAOC,KAAOD,GAAS,SAAChF,GAEtB,OADqB,EAAKjF,OAAO+E,QAAQG,aAAa,EAAKD,QACvCU,QAAUV,IAAW,EAAKrE,KAAKK,EACrD,GACF,EACAmJ,aAAY,SAAEvG,GACZ,OAAO3G,KAAK8C,OAAOC,SAAS,cAAe,CAAE4D,MAAAA,IAC1CrG,MAAK,SAACqD,GAAK,OAAKe,KAAIf,EAAO,KAAK,GACrC,EACAwJ,WAAU,SAAEC,GACV,OAAOpN,KAAK8C,OAAOC,SAAS,aAAcqK,EAC5C,EACAC,aAAY,SAAED,GACZ,OAAOpN,KAAK8C,OAAOC,SAAS,eAAgBqK,EAC9C,EACAE,UAAS,SAAEF,GACT,OAAOpN,KAAK8C,OAAOC,SAAS,YAAaqK,EAC3C,EACAG,YAAW,SAAEH,GACX,OAAOpN,KAAK8C,OAAOC,SAAS,cAAeqK,EAC7C,EACAI,qBAAoB,SAAEC,GAAM,WAC1B,OAAOA,EAAK7G,QAAO,SAAAN,GAAG,OAAK,EAAK5C,KAAKmF,YAAYC,SAASxC,EAAI,GAChE,EACAoH,kBAAiB,SAAE/G,GAAO,WACxB,OAAO,IAAIgH,SAAQ,SAACC,EAASZ,GAC3BY,EAAQ,EAAKlB,aAAa9F,QAAO,SAAAN,GAAG,OAAIA,EAAIuH,cAAc/E,SAASnC,EAAM,IAC3E,GACF,EACAmH,cAAa,SAAEC,GACb,OAAO/N,KAAK8C,OAAOC,SAAS,gBAAiBgL,EAC/C,IC1HJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,sRlBNzDnN,EAAAA,EAAAA,IAsJeoN,EAAAA,CArJZ,mBAAiB,EAClBrP,MAAM,wB,mBAEN,iBAiDM,EAjDNC,EAAAA,EAAAA,GAiDM,OAjDAuG,MAAOxE,EAAAA,GAAG,wB,EACd/B,EAAAA,EAAAA,GAYM,MAZNwG,EAYM,EAXJnE,EAAAA,EAAAA,IAUcgN,EAAAA,CATXrH,OAAQjG,EAAAA,qBACRgG,MAAOhG,EAAAA,aACPkG,YAAalG,EAAAA,GAAG,kC,CAENS,SAAO8M,EAAAA,EAAAA,KAChB,SADkBC,GAAG,QACrBlN,EAAAA,EAAAA,IAEEmN,EAAAA,CADC,UAASD,EAAIzG,M,oEAKtBzG,EAAAA,EAAAA,IAkCYoN,EAAAA,CAjCT7C,SAAS,EACT,UAAS,SAAA8C,GAAC,OAAIA,CAAC,G,CAELC,QAAM,SACf,gBADkBhF,EAAQ,EAARA,SAAQ,QAC1B3K,EAAAA,EAAAA,GAqBM,MArBN0G,EAqBM,CAnBIiE,EAAS9B,OAAS,IAAH,WADvB7G,EAAAA,EAAAA,IASiBsI,EAAAA,C,MAPfvK,MAAM,wCACLwD,MAAK,kBAAQxB,EAAAA,WAAW4I,EAAQ,G,CAGtB3B,UAAQ,SACjB,iBAAoC,mBAAjCjH,EAAAA,GAAG,6BAAD,G,sBAFP,iBAA2B,mBAAxBA,EAAAA,GAAG,oBAAqB,IAC3B,G,0CAKM4I,EAAS9B,OAAS,IAAH,WADvB7G,EAAAA,EAAAA,IASiBsI,EAAAA,C,MAPfvK,MAAM,qBACLwD,MAAK,kBAAQxB,EAAAA,aAAa4I,EAAQ,G,CAGxB3B,UAAQ,SACjB,iBAAsC,mBAAnCjH,EAAAA,GAAG,+BAAD,G,sBAFP,iBAA6B,mBAA1BA,EAAAA,GAAG,sBAAuB,IAC7B,G,gDAMK+G,MAAI,SACb,gBADgBA,EAAI,EAAJA,KAAI,QACpBzG,EAAAA,EAAAA,IAA6BmN,EAAAA,CAAjB,UAAS1G,GAAI,oB,IAEhBgD,OAAK,SACd,iBAA8B,mBAA3B/J,EAAAA,GAAG,uBAAD,G,+BAKX/B,EAAAA,EAAAA,GA8FM,OA9FAuG,MAAOxE,EAAAA,GAAG,uB,EACdM,EAAAA,EAAAA,IA4Fe+M,EAAAA,KAAAA,C,kBA3Fb,iBAiDM,EAjDNpP,EAAAA,EAAAA,GAiDM,OAjDAuG,MAAOxE,EAAAA,GAAG,wB,EACd/B,EAAAA,EAAAA,GAYM,MAZN8G,GAYM,EAXJzE,EAAAA,EAAAA,IAUcgN,EAAAA,CATXrH,OAAQjG,EAAAA,mBACRgG,MAAOhG,EAAAA,aACPkG,YAAalG,EAAAA,GAAG,iC,CAENS,SAAO8M,EAAAA,EAAAA,KAChB,SADkBC,GAAG,QACrBlN,EAAAA,EAAAA,IAEEuN,EAAAA,CADC,UAASL,EAAIzG,M,oEAKtBzG,EAAAA,EAAAA,IAkCWwN,EAAAA,CAjCRjD,SAAS,EACT,UAAS,SAAA8C,GAAC,OAAIA,CAAC,G,CAELC,QAAM,SACf,gBADkBhF,EAAQ,EAARA,SAAQ,QAC1B3K,EAAAA,EAAAA,GAqBM,MArBN+G,GAqBM,CAnBI4D,EAAS9B,OAAS,IAAH,WADvB7G,EAAAA,EAAAA,IASiBsI,EAAAA,C,MAPfvK,MAAM,qBACLwD,MAAK,kBAAQxB,EAAAA,UAAU4I,EAAQ,G,CAGrB3B,UAAQ,SACjB,iBAAmC,mBAAhCjH,EAAAA,GAAG,4BAAD,G,sBAFP,iBAA0B,mBAAvBA,EAAAA,GAAG,mBAAoB,IAC1B,G,0CAKM4I,EAAS9B,OAAS,IAAH,WADvB7G,EAAAA,EAAAA,IASiBsI,EAAAA,C,MAPfvK,MAAM,qBACLwD,MAAK,kBAAQxB,EAAAA,YAAY4I,EAAQ,G,CAGvB3B,UAAQ,SACjB,iBAAqC,mBAAlCjH,EAAAA,GAAG,8BAAD,G,sBAFP,iBAA4B,mBAAzBA,EAAAA,GAAG,qBAAsB,IAC5B,G,gDAMK+G,MAAI,SACb,gBADgBA,EAAI,EAAJA,KAAI,QACpBzG,EAAAA,EAAAA,IAA4BuN,EAAAA,CAAjB,UAAS9G,GAAI,oB,IAEfgD,OAAK,SACd,iBAA6B,mBAA1B/J,EAAAA,GAAG,sBAAD,G,gCAKX/B,EAAAA,EAAAA,GAuCM,OAvCAuG,MAAOxE,EAAAA,GAAG,0B,EACd/B,EAAAA,EAAAA,GAYM,MAZNiH,GAYM,EAXJ5E,EAAAA,EAAAA,IAUcgN,EAAAA,CATXrH,OAAQjG,EAAAA,qBACRgG,MAAOhG,EAAAA,kBACPkG,YAAalG,EAAAA,GAAG,kC,CAENS,SAAO8M,EAAAA,EAAAA,KAChB,SADkBC,GAAG,QACrBlN,EAAAA,EAAAA,IAEEyN,EAAAA,CADC3F,OAAQoF,EAAIzG,M,mEAKrBzG,EAAAA,EAAAA,IAwBiB0N,EAAAA,CAvBdnD,SAAS,EACT,UAAS,SAAA8C,GAAC,OAAIA,CAAC,G,CAELC,QAAM,SACf,gBADkBhF,EAAQ,EAARA,SAAQ,QAC1B3K,EAAAA,EAAAA,GAWM,MAXNsH,GAWM,CATIqD,EAAS9B,OAAS,IAAH,WADvB7G,EAAAA,EAAAA,IASiBsI,EAAAA,C,MAPfvK,MAAM,qBACLwD,MAAK,kBAAQxB,EAAAA,cAAc4I,EAAQ,G,CAGzB3B,UAAQ,SACjB,iBAA4C,mBAAzCjH,EAAAA,GAAG,qCAAD,G,sBAFP,iBAAmC,mBAAhCA,EAAAA,GAAG,4BAA6B,IACnC,G,gDAMK+G,MAAI,SACb,gBADgBA,EAAI,EAAJA,KAAI,QACpBzG,EAAAA,EAAAA,IAAiCyN,EAAAA,CAAhB3F,OAAQrB,GAAI,mB,IAEpBgD,OAAK,SACd,iBAA6B,mBAA1B/J,EAAAA,GAAG,sBAAD,G,mFmB/IVhC,MAAM,gB,IAELA,MAAM,gB,IAMJA,MAAM,mB,IACFA,MAAM,S,IACRA,MAAM,e,UA2CdA,MAAM,gB,IAGFA,MAAM,gB,IAmBPA,MAAM,gB,UC1EXA,MAAM,kB,UASFA,MAAM,S,6CCTVA,MAAM,qB,IAaGA,MAAM,oB,YAanBE,EAAAA,GAAAA,IACE+P,EAAAA,KAGF,UACE3L,WAAY,CAAE4L,QAAAA,GAAAA,SACd7P,MAAO,CAAC,YC1BV,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,4EDLjDuM,EAAAA,UAAO,WADfhL,EAAAA,EAAAA,IAoBO,OApBPC,GAoBO,EAhBLS,EAAAA,EAAAA,IAeU6N,EAAAA,CAdRC,QAAQ,QACP,gBAAa,cAAkBpO,EAAAA,GAAG,8B,CAExBoO,SAAO,SAAC,iBAEjB,UAFiB,QAEjB,QAEElO,EAAAA,CADAE,KAAK,W,IAGEU,SAAO,SAChB,iBAEM,EAFN7C,EAAAA,EAAAA,GAEM,MAFNwG,IAEM,QADDzE,EAAAA,GAAG,6BAAD,G,mEEdXhC,MAAM,uB,IAaGA,MAAM,sBAanBE,EAAAA,GAAAA,IACEmQ,EAAAA,KAGF,UACE/L,WAAY,CAAE4L,QAAAA,GAAAA,SACd7P,MAAO,CAAC,eC1BV,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,4EDLjDuM,EAAAA,aAAU,WADlBhL,EAAAA,EAAAA,IAoBO,OApBPC,GAoBO,EAhBLS,EAAAA,EAAAA,IAeU6N,EAAAA,CAdRC,QAAQ,SAAO,CAEJA,SAAO,SAAC,iBAEjB,UAFiB,QAEjB,QAGElO,EAAAA,CAFAE,KAAK,SACJ,aAAYJ,EAAAA,GAAG,iC,2BAGTc,SAAO,SAChB,iBAEM,EAFN7C,EAAAA,EAAAA,GAEM,MAFNwG,IAEM,QADDzE,EAAAA,GAAG,iCAAD,G,gQEbf,UACEsC,WAAY,CACVG,SAAAA,EAAAA,EACA6L,kBAAAA,GACAC,oBAAAA,IAEFlQ,MAAO,CACL,OACA,WACA,UAEFqE,SAAU,CACR8L,YAAW,WACT,MAAgCnP,KAAKoP,KAAKC,MAAM,KAAI,cAA7CC,EAAY,KAAKC,EAAI,WAC5B,MAAO,CAACD,EAAe,gBAAc,gBAAKC,IAAMxK,KAAK,IACvD,EACAvB,MAAK,WACH,IAAM4G,EAAQ,KAAIpK,KAAKwP,QAASxP,KAAKoP,MACrC,YAAcK,IAAVrF,EACKpK,KAAK0P,aAELtF,CAEX,EACAsF,aAAY,WACV,OAAO,KAAI1P,KAAKwP,QAASxP,KAAKmP,YAChC,EACAQ,aAAY,WACV,OAAO3P,KAAKoP,KAAKQ,WAAW,cAC9B,EACAC,UAAS,WACP,OAAQ7P,KAAKoP,KAAKQ,WAAW,gBAAkB5P,KAAKwD,QAAUxD,KAAK0P,YACrE,EACAI,mBAAkB,WAChB,OAAQ9P,KAAK+P,QAAU,IAAM/P,KAAKwP,QAAQQ,WAC5C,GAEFlQ,QAAS,CACPmQ,OAAM,SAAEC,GACN,MAAgClQ,KAAKoP,KAAKC,MAAM,KAAI,cAA7CC,EAAY,KAAKC,EAAI,WAC5B,KAAIvP,KAAKwP,QAASxP,KAAKoP,KAAMc,GAGzBX,EAAK9H,OAAS,GAChB,KAAIzH,KAAKwP,QAASF,E,uWAAc,IAAK,KAAItP,KAAKwP,QAASF,IAE3D,EACAa,MAAK,WACH,KAAInQ,KAAKwP,QAASxP,KAAKoP,KAAMpP,KAAK0P,aACpC,IC9CJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,0HNHjD/O,EAAAA,qBAAkB,WAD1BJ,EAAAA,EAAAA,IAsBQ,QAtBRC,GAsBQ,EAlBNS,EAAAA,EAAAA,IAiBWqJ,EAAAA,CAhBR,cAAa3J,EAAAA,MACb4H,SAAU5H,EAAAA,SACV,sBAAmBA,EAAAA,Q,mBAEpB,iBAKO,CAJGA,EAAAA,OAAM,UAAQ,WADxBJ,EAAAA,EAAAA,IAKO,OALP6E,GAKO,EADLuC,EAAAA,EAAAA,IAAQhH,EAAAA,OAAAA,eAAAA,EAAAA,EAAAA,IAAAA,IAAAA,IAAAA,EAAAA,EAAAA,IACH,KACP,QAAG,KAAM,MACT,QAGEyP,EAAAA,CAFCC,QAAS1P,EAAAA,UACT2P,QAAS3P,EAAAA,O,+BAEZM,EAAAA,EAAAA,IAAmDsP,EAAAA,CAA7B,cAAa5P,EAAAA,cAAY,wB,qsBO+BrD,SAjD6B,WAAH,oBACxB+C,KAAI,WACF,OAAO1D,KAAK8C,OAAOU,MAAMG,MAAMC,WACjC,GAEGoH,OAAOC,KAAKuF,GAAAA,IACZ9L,KAAI,SAAAsB,GAAG,MAAI,CACVA,EAAM,eACN,WACE,OAAOhG,KAAK8C,OAAO+E,QAAQ4I,cAAczK,EAC3C,EACD,IACA0K,QAAO,SAACC,EAAK,GAAF,oBAAG3K,EAAG,KAAEoE,EAAK,qBAAYuG,GAAG,cAAG3K,EAAMoE,GAAK,GAAK,CAAC,IAE3DY,OAAOC,KAAKuF,GAAAA,IACZ9L,KAAI,SAAAsB,GAAG,MAAI,CAACA,EAAK,CAChBiG,IAAG,WAAM,OAAOjM,KAAK8C,OAAO+E,QAAQ+I,aAAa5K,EAAK,EACtD6K,IAAG,SAAEzG,GACHpK,KAAK8C,OAAOC,SAAS,YAAa,CAAE+N,KAAM9K,EAAKoE,MAAAA,GACjD,GACA,IACDsG,QAAO,SAACC,EAAK,GAAF,oBAAG3K,EAAG,KAAEoE,EAAK,qBAAYuG,GAAG,cAAG3K,EAAMoE,GAAK,GAAK,CAAC,IAC3DY,OAAOC,KAAK8F,GAAAA,IACZrM,KAAI,SAAAsB,GAAG,MAAI,CAAC,cAAgBA,EAAK,CAChCiG,IAAG,WAAM,OAAOjM,KAAK8C,OAAOU,MAAMwN,iBAAiBhL,EAAK,EACxD6K,IAAG,SAAEzG,GACHpK,KAAK8C,OAAOC,SAAS,sBAAuB,CAAE+N,KAAM9K,EAAKoE,MAAAA,GAC3D,GACA,IACDsG,QAAO,SAACC,EAAK,GAAF,oBAAG3K,EAAG,KAAEoE,EAAK,qBAAYuG,GAAG,cAAG3K,EAAMoE,GAAK,GAAK,CAAC,IAAE,IAEhE6G,gBAAiB,CACfhF,IAAG,WAAM,OAAOjM,KAAK8C,OAAO+E,QAAQ+I,aAAaK,eAAgB,EACjEJ,IAAG,SAAEzG,GAAO,YACMA,EACZpK,KAAK8C,OAAOC,SAAS,sBACrB/C,KAAK8C,OAAOC,SAAS,wBAEjBzC,MAAK,WACX,EAAKwC,OAAOC,SAAS,YAAa,CAAE+N,KAAM,kBAAmB1G,MAAAA,GAC/D,IAAE,OAAO,SAAC8F,GACRgB,QAAQvR,MAAM,4CAA6CuQ,GAC3D,EAAKpN,OAAOC,SAAS,uBACrB,EAAKD,OAAOC,SAAS,YAAa,CAAE+N,KAAM,kBAAmB1G,OAAO,GACtE,GACF,IACD,E,+NCrBH,SAzByB,CACvB3K,KAAI,WACF,MAAO,CACL8C,UAAW,UACX4O,qBAAsBnR,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYwN,sBAC1D5O,gBAAiB,GAErB,EACAS,WAAY,CACVoO,eAAAA,IAEFhO,S,uWAAU,EACRK,KAAI,WACF,OAAO1D,KAAK8C,OAAOU,MAAMG,MAAMC,WACjC,GACG0N,MAELxR,QAAS,CACPyR,2BAA0B,WACxBvR,KAAK8C,OAAOU,MAAMC,IAAIF,kBACnBgO,2BAA2B,CAAEC,SAAUxR,KAAKmR,sBACjD,ICjBJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,yEVJzD5Q,EAAAA,EAAAA,IAgFM,OAhFA4E,MAAOxE,EAAAA,GAAG,2B,EACd/B,EAAAA,EAAAA,GAiDM,MAjDNwG,GAiDM,EAhDJxG,EAAAA,EAAAA,GAA0D,mBAAnD+B,EAAAA,GAAG,0CAAD,IACT/B,EAAAA,EAAAA,GA8CK,KA9CL0G,GA8CK,EA7CH1G,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,8CAA4C,C,kBAC/D,iBAA8D,mBAA3DzO,EAAAA,GAAG,uDAAD,G,aAGT/B,EAAAA,EAAAA,GAuCK,KAvCL4G,GAuCK,EAtCH5G,EAAAA,EAAAA,GAAuE,OAAvE6G,IAAuE,QAAhD9E,EAAAA,GAAG,qCAAD,IACzB/B,EAAAA,EAAAA,GAoCK,KApCL8G,GAoCK,EAnCH9G,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,gCAA8B,C,kBACjD,iBAAkD,mBAA/CzO,EAAAA,GAAG,2CAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,kCAAgC,C,kBACnD,iBAAoD,mBAAjDzO,EAAAA,GAAG,6CAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,kCAAgC,C,kBACnD,iBAAoD,mBAAjDzO,EAAAA,GAAG,6CAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,mCAAiC,C,kBACpD,iBAAqD,mBAAlDzO,EAAAA,GAAG,8CAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,gCAA8B,C,kBACjD,iBAAkD,mBAA/CzO,EAAAA,GAAG,2CAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,yCAAuC,C,kBAC1D,iBAA4D,mBAAzDzO,EAAAA,GAAG,qDAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,gCAA8B,C,kBACjD,iBAAkD,mBAA/CzO,EAAAA,GAAG,2CAAD,G,oBASTA,EAAAA,YAAc,IAAH,WADnBJ,EAAAA,EAAAA,IAuBM,MAvBNoF,GAuBM,EAnBJ/G,EAAAA,EAAAA,GAA0D,mBAAnD+B,EAAAA,GAAG,0CAAD,IACT/B,EAAAA,EAAAA,GAiBK,KAjBLgH,GAiBK,EAhBHhH,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,uBACLW,OAAO,K,mBAEP,iBAAkD,mBAA/CpP,EAAAA,GAAG,2CAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,iCACLW,OAAO,K,mBAEP,iBAAoE,mBAAjEpP,EAAAA,GAAG,6DAAD,G,kCAKb/B,EAAAA,EAAAA,GAGM,MAHNiH,GAGM,EAFJjH,EAAAA,EAAAA,GAA8C,kBAAxC+B,EAAAA,GAAG,gCAAD,IACR/B,EAAAA,EAAAA,GAA+C,kBAAzC+B,EAAAA,GAAG,iCAAD,W,0BW7ELhC,MAAM,gB,IAELA,MAAM,gB,UA6FVA,MAAM,gB,IAGFA,MAAM,gB,+ECjGZA,MAAM,iB,yBCCV,UACEsE,WAAY,CACVyO,OAAAA,GAAAA,EACAzC,kBAAAA,GACAC,oBAAAA,IAEFlQ,MAAO,CACL,OACA,WACA,UACA,UAEFqE,SAAU,CACR8L,YAAW,WACT,MAAgCnP,KAAKoP,KAAKC,MAAM,KAAI,cAA7CC,EAAY,KAAKC,EAAI,WAC5B,MAAO,CAACD,EAAe,gBAAc,gBAAKC,IAAMxK,KAAK,IACvD,EACAvB,MAAK,WACH,IAAM4G,EAAQ,KAAIpK,KAAKwP,QAASxP,KAAKoP,MACrC,YAAcK,IAAVrF,EACKpK,KAAK0P,aAELtF,CAEX,EACAsF,aAAY,WACV,OAAO,KAAI1P,KAAKwP,QAASxP,KAAKmP,YAChC,EACAQ,aAAY,WACV,OAAO3P,KAAKoP,KAAKQ,WAAW,cAC9B,EACAC,UAAS,WACP,OAAQ7P,KAAKoP,KAAKQ,WAAW,gBAAkB5P,KAAKwD,QAAUxD,KAAK0P,YACrE,EACAI,mBAAkB,WAChB,OAAQ9P,KAAK+P,QAAU,IAAM/P,KAAKwP,QAAQQ,WAC5C,GAEFlQ,QAAS,CACPmQ,OAAM,SAAEC,GACN,KAAIlQ,KAAKwP,QAASxP,KAAKoP,KAAMc,EAC/B,EACAC,MAAK,WACH,KAAInQ,KAAKwP,QAASxP,KAAKoP,KAAMpP,KAAK0P,aACpC,ICzCJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,wHFHjD/O,EAAAA,qBAAkB,WAD1BJ,EAAAA,EAAAA,IAyBQ,QAzBRC,GAyBQ,EArBNmH,EAAAA,EAAAA,IAAQhH,EAAAA,OAAAA,YAAAA,EAAAA,EAAAA,IAAAA,KACR,QAAG,KAAM,MACT,QAaSgR,EAAAA,CAZN,cAAahR,EAAAA,MACb4H,SAAU5H,EAAAA,SACV,sBAAmBA,EAAAA,Q,mBAGlB,iBAAyB,gBAD3BJ,EAAAA,EAAAA,IAOSuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IANUnF,EAAAA,SAAO,SAAjBiR,G,kBADTrR,EAAAA,EAAAA,IAOS,UALNyF,IAAK4L,EAAO5L,IACZoE,MAAOwH,EAAOxH,Q,QAEZwH,EAAOzM,OAAQ,KAClB,QAAGyM,EAAOxH,QAAUzJ,EAAAA,aAAeA,EAAAA,GAAG,oCAAsC,IAAvC,K,wEAGzCM,EAAAA,EAAAA,IAGEmP,EAAAA,CAFCC,QAAS1P,EAAAA,UACT2P,QAAS3P,EAAAA,O,+BAEZM,EAAAA,EAAAA,IAAmDsP,EAAAA,CAA7B,cAAa5P,EAAAA,cAAY,0C,mBGtB/ChC,MAAM,kB,8CCDV,UACEsE,WAAY,CACVgM,kBAAAA,IAEFjQ,MAAO,CACLoQ,KAAM9P,OACNiJ,SAAUsJ,QACVC,IAAKC,OACLhC,OAAQ,CAACgC,OAAQzS,SAEnB+D,SAAU,CACR8L,YAAW,WACT,MAAgCnP,KAAKoP,KAAKC,MAAM,KAAI,cAA7CC,EAAY,KAAKC,EAAI,WAC5B,MAAO,CAACD,EAAe,gBAAc,gBAAKC,IAAMxK,KAAK,IACvD,EACAvB,MAAK,WACH,IAAM4G,EAAQ,KAAIpK,KAAKwP,QAASxP,KAAKoP,MACrC,YAAcK,IAAVrF,EACKpK,KAAK0P,aAELtF,CAEX,EACAsF,aAAY,WACV,OAAO,KAAI1P,KAAKwP,QAASxP,KAAKmP,YAChC,EACAU,UAAS,WACP,OAAO7P,KAAKwD,QAAUxD,KAAK0P,YAC7B,EACAI,mBAAkB,WAChB,OAAQ9P,KAAK+P,QAAU,IAAM/P,KAAKwP,QAAQQ,WAC5C,GAEFlQ,QAAS,CACPmQ,OAAM,SAAEC,GACN,KAAIlQ,KAAKwP,QAASxP,KAAKoP,KAAM4C,SAAS9B,EAAE9J,OAAOgE,OACjD,EACA+F,MAAK,WACH,KAAInQ,KAAKwP,QAASxP,KAAKoP,KAAMpP,KAAK0P,aACpC,IClCJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,iEFHjD/O,EAAAA,qBAAkB,WAD1BJ,EAAAA,EAAAA,IAsBO,OAtBPC,GAsBO,EAlBL5B,EAAAA,EAAAA,GAEQ,SAFAqT,IAAKtR,EAAAA,MAAI,EACfgH,EAAAA,EAAAA,IAAQhH,EAAAA,OAAAA,YAAAA,EAAAA,KAEV/B,EAAAA,EAAAA,GASC,SAREmF,GAAIpD,EAAAA,KACLhC,MAAM,eACNO,KAAK,SACLgT,KAAK,IACJ3J,SAAU5H,EAAAA,SACVmR,IAAKnR,EAAAA,KAAO,EACZyJ,MAAOzJ,EAAAA,MACPD,SAAM,8BAAEC,EAAAA,QAAAA,EAAAA,OAAAA,MAAAA,EAAAA,UAAM,I,qBAChB,KACD,QAAG,KAAM,MACT,QAGEyP,EAAAA,CAFCC,QAAS1P,EAAAA,UACT2P,QAAS3P,EAAAA,O,8nBG8BhB,SA5CqB,CACnBlB,KAAI,WAAI,WACN,MAAO,CACL0S,qBAAsBnS,KAAK8C,OAAO+E,QAAQ+I,aAAawB,UAAUrN,KAAK,MACtEsN,uBAAwB,CAAC,MAAO,YAAa,QAAQ3N,KAAI,SAAA4N,GAAI,MAAK,CAChEtM,IAAKsM,EACLlI,MAAOkI,EACPnN,MAAO,EAAKyG,GAAG,6BAAD,OAA8B0G,IAC7C,IAEL,EACArP,WAAY,CACVoO,eAAAA,GACAkB,cAAAA,GACAC,eAAAA,IAEFnP,SAAU,SACLiO,MAAsB,IACzBmB,gBAAiB,CACfxG,IAAG,WACD,OAAOjM,KAAKmS,oBACd,EACAtB,IAAG,SAAEzG,GACHpK,KAAKmS,qBAAuB/H,EAC5BpK,KAAK0S,sBAAsBtI,EAC7B,GAEFsI,sBAAqB,WAAI,WACvB,OAAO,MAAS,SAACtI,GACf,EAAKtH,OAAOC,SAAS,YAAa,CAChC+N,KAAM,YACN1G,MAAO,KAAOA,EAAMiF,MAAM,OAAO,SAACsD,GAAI,OAAK,KAAKA,GAAMlL,OAAS,CAAC,KAEpE,GAAG,IACL,IAGFN,MAAO,CACLyL,gBAAe,WACb5S,KAAK8C,OAAOC,SAAS,gBACvB,ICxCJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,kIRJzDxC,EAAAA,EAAAA,IA2GM,OA3GA4E,MAAOxE,EAAAA,GAAG,uB,EACd/B,EAAAA,EAAAA,GA4FM,MA5FNwG,GA4FM,EA3FJxG,EAAAA,EAAAA,GAAmC,mBAA5B+B,EAAAA,GAAG,mBAAD,IACT/B,EAAAA,EAAAA,GAyFK,KAzFL0G,GAyFK,EAxFH1G,EAAAA,EAAAA,GAmCK,YAlCHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,wBAAsB,C,kBACzC,iBAA2C,mBAAxCzO,EAAAA,GAAG,oCAAD,G,WAEP/B,EAAAA,EAAAA,GA8BK,MA7BHD,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,0BAAyB,EAAAlC,UACV5H,EAAAA,e,EAErB/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJdlJ,SAAU5H,EAAAA,qBACXyO,KAAK,yB,mBAEL,iBAA+C,mBAA5CzO,EAAAA,GAAG,wCAAD,G,4BAGT/B,EAAAA,EAAAA,GAQK,WANK+B,EAAAA,OAAI,WADZC,EAAAA,EAAAA,IAMiB6Q,EAAAA,C,MAJdlJ,SAAU5H,EAAAA,qBACXyO,KAAK,oB,mBAEL,iBAAuC,mBAApCzO,EAAAA,GAAG,gCAAD,G,6CAGT/B,EAAAA,EAAAA,GAQK,WANK+B,EAAAA,OAAI,WADZC,EAAAA,EAAAA,IAMiB6Q,EAAAA,C,MAJdlJ,SAAU5H,EAAAA,qBACXyO,KAAK,kB,mBAEL,iBAAqC,mBAAlCzO,EAAAA,GAAG,8BAAD,G,mDAKb/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,mBAAiB,C,kBACpC,iBAAmC,mBAAhCzO,EAAAA,GAAG,4BAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,iBAAe,C,kBAClC,iBAAoC,mBAAjCzO,EAAAA,GAAG,6BAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,qBAAmB,C,kBACtC,iBAAwC,mBAArCzO,EAAAA,GAAG,iCAAD,G,YAIDA,EAAAA,OAAI,WADZC,EAAAA,EAAAA,IAOgBiS,EAAAA,C,MALd9O,GAAG,kBACHqL,KAAK,kBACJ0D,QAASnS,EAAAA,wB,mBAEV,iBAAwC,mBAArCA,EAAAA,GAAG,iCAAD,G,0CAEP/B,EAAAA,EAAAA,GAQK,YAPHA,EAAAA,EAAAA,GAAwC,mBAAjC+B,EAAAA,GAAG,wBAAD,aACT/B,EAAAA,EAAAA,GAIE,YAHAmF,GAAG,Y,qDACMpD,EAAAA,gBAAe,IACxBhC,MAAM,iB,kBADGgC,EAAAA,oBAGX/B,EAAAA,EAAAA,GAAqD,oBAA7C+B,EAAAA,GAAG,mCAAD,MAEZ/B,EAAAA,EAAAA,GAAyC,mBAAlC+B,EAAAA,GAAG,yBAAD,IACT/B,EAAAA,EAAAA,GAQK,YAPHqC,EAAAA,EAAAA,IAMiB8R,EAAAA,CALf3D,KAAK,gBACLW,OAAO,IACN+B,IAAK,G,mBAEN,iBAAmC,mBAAhCnR,EAAAA,GAAG,4BAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,mBAAiB,C,kBACpC,iBAA2C,mBAAxCzO,EAAAA,GAAG,oCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,yBAAuB,C,kBAC1C,iBAA8C,mBAA3CzO,EAAAA,GAAG,uCAAD,G,gBAMLA,EAAAA,YAAc,IAAH,WADnBJ,EAAAA,EAAAA,IAYM,MAZNiF,GAYM,EARJ5G,EAAAA,EAAAA,GAA2C,mBAApC+B,EAAAA,GAAG,2BAAD,IACT/B,EAAAA,EAAAA,GAMK,KANL6G,GAMK,EALH7G,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,iBAAe,C,kBAClC,iBAAoC,mBAAjCzO,EAAAA,GAAG,6BAAD,G,iESrGRhC,MAAM,gB,eAiCNA,MAAM,gB,qCAwCNA,MAAM,gB,IAEFA,MAAM,gB,IAKPC,EAAAA,EAAAA,GAAM,mB,IAUFD,MAAM,W,mBAcbA,MAAM,gB,IAMHC,EAAAA,EAAAA,GAAM,mB,IASFD,MAAM,W,yBAadA,MAAM,e,IAeJC,EAAAA,EAAAA,GAIO,QAHLoU,MAAM,WACP,qBAED,G,0BAoBDrU,MAAM,gB,IAQLC,EAAAA,EAAAA,GAIO,QAHLoU,MAAM,WACP,qBAED,G,0BA4BDrU,MAAM,gB,sDClNXA,MAAM,6B,IAEDA,MAAM,e,UAOPA,MAAM,gB,IASNC,EAAAA,EAAAA,GAAI,mB,0BAsBKD,MAAM,W,qCAsCNA,MAAM,a,IACJA,MAAM,W,IAaNA,MAAM,U,IAaJA,MAAM,uB,UAgBTA,MAAM,e,uCC3HjBA,MAAM,oB,0BAMJA,MAAM,iB,IAGLA,MAAM,gBCVhB,UACEK,MAAO,CACLiU,YAAa,CACX/T,KAAM8L,OACN5J,QAAS,iBAAO,CACd8R,YAAY,EACZC,MAAO,GACR,IAGL1T,KAAM,iBAAO,CAAC,CAAC,EACf4D,SAAU,CACR6P,WAAU,WAAM,OAAOlT,KAAKiT,YAAYC,UAAW,EACnDE,MAAK,WAAM,OAAOpT,KAAKiT,YAAYE,MAAM1L,OAAS,CAAE,EACpD4L,aAAY,WAAM,OAAOrT,KAAKkT,YAAclT,KAAKoT,KAAM,ICL3D,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,wCFNzD7S,EAAAA,EAAAA,IAkBM,MAlBNC,GAkBM,CAjBMG,EAAAA,eAAY,WAAtBJ,EAAAA,EAAAA,IAEK,iBADAI,EAAAA,GAAG,gCAAD,oBAEEA,EAAAA,aAAU,WAAnBJ,EAAAA,EAAAA,IAA0E,gBAAlDI,EAAAA,GAAG,0CAAD,oBACVA,EAAAA,QAAK,WAArBJ,EAAAA,EAAAA,IAYWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,EAXTpH,EAAAA,EAAAA,GAEI,IAFJ4G,IAEI,QADC7E,EAAAA,GAAG,wCAAD,IAEP/B,EAAAA,EAAAA,GAOK,KAPL6G,GAOK,gBANHlF,EAAAA,EAAAA,IAKKuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IAJYnF,EAAAA,YAAYwS,OAAK,SAAzBG,G,kBADT/S,EAAAA,EAAAA,IAKK,MAHFyF,IAAKsN,IAAI,QAEPA,GAAI,E,gDGbR3U,MAAM,e,0BAkCTA,MAAM,e,gCC5BZ,SARgB,CACdK,MAAO,CAAC,YACRS,KAAM,iBAAO,CAAC,CAAC,EACfK,QAAS,CACPyT,QAAO,WAAMvT,KAAKwT,MAAM,UAAW,EACnCC,OAAM,WAAMzT,KAAKwT,MAAM,SAAU,ICErC,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,wCCJzDjT,EAAAA,EAAAA,IAgBM,aAfJoH,EAAAA,EAAAA,IAAQhH,EAAAA,OAAAA,YACR/B,EAAAA,EAAAA,GAMS,UALPD,MAAM,qBACL4J,SAAU5H,EAAAA,SACVK,QAAK,8BAAEL,EAAAA,SAAAA,EAAAA,QAAAA,MAAAA,EAAAA,UAAO,K,QAEZA,EAAAA,GAAG,oBAAD,OAEP/B,EAAAA,EAAAA,GAMS,UALPD,MAAM,qBACL4J,SAAU5H,EAAAA,SACVK,QAAK,8BAAEL,EAAAA,QAAAA,EAAAA,OAAAA,MAAAA,EAAAA,UAAM,K,QAEXA,EAAAA,GAAG,mBAAD,O,oOCZX,UACE3B,MAAO,CAAC,YACRS,KAAM,iBAAO,CACXE,OAAO,EACP+T,gBAAiB,GACjBC,YAAY,EACZT,YAAY,EACb,EACDjQ,WAAY,CACVsQ,QAASK,IAEXvQ,S,uWAAU,EACRwQ,YAAW,WACT,OAAO7T,KAAKwR,SAASsC,IACvB,IACGxQ,EAAAA,EAAAA,IAAS,CACVC,kBAAmB,SAACC,GAAK,OAAKA,EAAMC,IAAIF,iBAAiB,KAG7DzD,QAAS,CACPiU,WAAU,WACR/T,KAAKwT,MAAM,WACb,EACAQ,iBAAgB,WAAMhU,KAAK2T,YAAa,CAAM,EAC9CM,aAAY,WACVjU,KAAKL,MAAQ,KACbK,KAAK2T,YAAa,CACpB,EACAO,kBAAiB,WAAI,WACnBlU,KAAKL,MAAQ,KACbK,KAAKkT,YAAa,EAClBlT,KAAKuD,kBAAkB4Q,cAAc,CACnCC,SAAUpU,KAAK0T,kBAEdpT,MAAK,SAAC2E,GACL,EAAKiO,YAAa,EACdjO,EAAItF,MACN,EAAKA,MAAQsF,EAAItF,OAGnB,EAAKgU,YAAa,EAClB,EAAKH,MAAM,cACb,GACJ,I,+NC4GJ,SApJY,CACV/T,KAAM,iBAAO,CACX+R,SAAU,CACR6C,WAAW,EACXC,SAAS,EACTR,MAAM,GAERS,WAAY,CACV/Q,MAAO,GACPgR,cAAe,IAEjBvB,YAAa,CACXwB,aAAa,EACbvB,YAAY,EACZC,MAAO,IAETuB,YAAa,CACXC,iBAAkB,GAClB3O,IAAK,IAEP0N,gBAAiB,KACjBkB,gBAAiB,KACjBjV,MAAO,KACPkV,WAAW,EACZ,EACD5R,WAAY,CACV,iBAAkB6R,GAClB,aC5B6B,OAAgB,GAAQ,CAAC,CAAC,S,kENJzDvU,EAAAA,EAAAA,IAuCM,aAtCJ3B,EAAAA,EAAAA,GAkBM,MAlBN4B,GAkBM,EAjBJ5B,EAAAA,EAAAA,GAA6C,uBAAlC+B,EAAAA,GAAG,qBAAD,GAEJA,EAAAA,aAIF,iBAJa,WADpBJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,YAAAA,EAAAA,WAAAA,MAAAA,EAAAA,UAAU,K,QAEfA,EAAAA,GAAG,mBAAD,IAICA,EAAAA,cAAW,WADnBJ,EAAAA,EAAAA,IAOS,U,MALP5B,MAAM,qBACL4J,SAAU5H,EAAAA,WACVK,QAAK,8BAAEL,EAAAA,cAAAA,EAAAA,aAAAA,MAAAA,EAAAA,UAAY,K,QAEjBA,EAAAA,GAAG,oBAAD,yBAKDA,EAAAA,aAAU,WADlBC,EAAAA,EAAAA,IAWUmU,EAAAA,C,MATPxM,SAAU5H,EAAAA,WACVqU,UAASrU,EAAAA,kBACTsU,SAAQtU,EAAAA,kB,mBAET,iBAAsD,mBAAnDA,EAAAA,GAAG,+CAAgD,KACtD,oBAGC,S,qDAFUA,EAAAA,gBAAe,IACxBzB,KAAK,Y,kBADIyB,EAAAA,mB,iEAKLA,EAAAA,QAAK,WADbJ,EAAAA,EAAAA,IAKM,MALN+E,IAKM,QADD3E,EAAAA,OAAK,qB,KKJVuU,O,SAAQC,EACR5B,QAASK,IAEXvQ,S,uWAAU,EACR+R,YAAW,WACT,OACGpV,KAAKqV,iBAAmBrV,KAAKsV,qBAC5BtV,KAAKwR,SAAS8C,WACZtU,KAAKwR,SAASsC,OAAS9T,KAAKuV,kBACpC,EACAF,gBAAe,WACb,MAAiC,KAA1BrV,KAAKuU,WAAW/Q,OAA0C,aAA1BxD,KAAKuU,WAAW/Q,KACzD,EACA+R,mBAAkB,WAChB,MAAiC,aAA1BvV,KAAKuU,WAAW/Q,QAAyBxD,KAAKwV,YACvD,EACAC,WAAU,WACR,MAAyC,YAAlCzV,KAAKuU,WAAWC,aACzB,EACAkB,WAAU,WACR,MAAyC,YAAlC1V,KAAKuU,WAAWC,aACzB,EACAgB,aAAY,WACV,MAAyC,cAAlCxV,KAAKuU,WAAWC,aACzB,EACAc,oBAAmB,WACjB,OAAQtV,KAAKiT,YAAYC,YAAclT,KAAKiT,YAAYE,MAAM1L,OAAS,CACzE,EACAkO,sBAAqB,WACnB,OAAO3V,KAAKiT,YAAYwB,WAC1B,IACGnR,EAAAA,EAAAA,IAAS,CACVC,kBAAmB,SAACC,GAAK,OAAKA,EAAMC,IAAIF,iBAAiB,KAI7DzD,QAAS,CACP8V,YAAW,WACJ5V,KAAKwR,SAAS8C,UACjBtU,KAAKuU,WAAW/Q,MAAQ,iBACxBxD,KAAK6V,mBAET,EACAA,iBAAgB,WAAI,WAIlB,OAHA7V,KAAKiT,YAAYC,YAAa,EAC9BlT,KAAKiT,YAAYE,MAAQ,GAElBnT,KAAKuD,kBAAkBuS,yBAC3BxV,MAAK,SAAC2E,GACL,EAAKgO,YAAYE,MAAQlO,EAAIkO,MAC7B,EAAKF,YAAYC,YAAa,CAChC,GACJ,EACA6C,eAAc,WACZ/V,KAAKiT,YAAYwB,aAAc,CACjC,EACAuB,mBAAkB,WAAI,WACpBhW,KAAK6V,mBAAmBvV,MAAK,SAAC2E,GAC5B,EAAKgO,YAAYwB,aAAc,CACjC,GACF,EACAwB,kBAAiB,WACfjW,KAAKiT,YAAYwB,aAAc,CACjC,EAGAyB,SAAQ,WAAI,WACVlW,KAAKuU,WAAW/Q,MAAQ,WACxBxD,KAAKuU,WAAWC,cAAgB,UAChCxU,KAAKuD,kBAAkB4S,cACpB7V,MAAK,SAAC2E,GACL,EAAKyP,YAAczP,EACnB,EAAKsP,WAAWC,cAAgB,SAClC,GACJ,EACA4B,aAAY,WAAI,WACdpW,KAAKL,MAAQ,KACbK,KAAKuD,kBAAkB8S,cAAc,CACnCC,MAAOtW,KAAK4U,gBACZR,SAAUpU,KAAK0T,kBAEdpT,MAAK,SAAC2E,GACDA,EAAItF,MACN,EAAKA,MAAQsF,EAAItF,MAGnB,EAAK4W,eACP,GACJ,EAEAA,cAAa,WACXvW,KAAKuU,WAAWC,cAAgB,WAChCxU,KAAKuU,WAAW/Q,MAAQ,WACxBxD,KAAK0T,gBAAkB,KACvB1T,KAAKL,MAAQ,KACbK,KAAKwW,eACP,EACAC,YAAW,WACTzW,KAAKuU,WAAWC,cAAgB,GAChCxU,KAAKuU,WAAW/Q,MAAQ,GACxBxD,KAAK0T,gBAAkB,KACvB1T,KAAKL,MAAQ,IACf,EAIM6W,cAAa,WAAI,0IACA,EAAKjT,kBAAkBmT,cAAa,OAA7C,KAANC,EAAS,EAAH,MACDhX,MAAO,CAAF,gDAEc,OAD9B,EAAK6R,SAAWmF,EAAOnF,SACvB,EAAKA,SAAS6C,WAAY,EAAI,kBACvBsC,GAAM,0CALQ,EAMvB,GAEFC,QAAO,WAAI,WACT5W,KAAKwW,gBAAgBlW,MAAK,WACxB,EAAKuU,WAAY,CACnB,GACF,GE/IF,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,iIXLjDlU,EAAAA,WAAaA,EAAAA,SAAS0T,YAAS,WADvC9T,EAAAA,EAAAA,IAqIM,MArINC,GAqIM,EAjIJ5B,EAAAA,EAAAA,GAEM,MAFNwG,GAEM,EADJxG,EAAAA,EAAAA,GAAuC,mBAAhC+B,EAAAA,GAAG,uBAAD,MAGX/B,EAAAA,EAAAA,GA4HM,YA1HK+B,EAAAA,iB,iBAAe,WADxBJ,EAAAA,EAAAA,IAuCM,MAvCN+E,GAuCM,EAlCJ1G,EAAAA,EAAAA,GAAwD,mBAAjD+B,EAAAA,GAAG,wCAAD,IACTM,EAAAA,EAAAA,IAIE4V,EAAAA,CAHCrF,SAAU7Q,EAAAA,SACVmW,aAAYnW,EAAAA,cACZoW,WAAUpW,EAAAA,a,iDAEb6E,GAEW7E,EAAAA,SAAS2T,UAAO,WAA3B/T,EAAAA,EAAAA,IAyBM,UAtBKI,EAAAA,uB,iBAAqB,WAD9BC,EAAAA,EAAAA,IAGEoW,EAAAA,C,MADC,eAAcrW,EAAAA,a,0BAGRA,EAAAA,uBAIF,iBAJuB,WAD9BJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,gBAAAA,EAAAA,eAAAA,MAAAA,EAAAA,UAAc,K,QAEnBA,EAAAA,GAAG,6CAAD,IAGIA,EAAAA,wBAAqB,WAAhCJ,EAAAA,EAAAA,IAUM,WATJU,EAAAA,EAAAA,IAQU8T,EAAAA,CAPPxM,SAAU5H,EAAAA,YAAYuS,WACtB8B,UAASrU,EAAAA,mBACTsU,SAAQtU,EAAAA,mB,mBAET,iBAEI,EAFJ/B,EAAAA,EAAAA,GAEI,IAFJ+G,IAEI,QADChF,EAAAA,GAAG,+CAAD,G,yFAOJA,EAAAA,kBAAe,WAA1BJ,EAAAA,EAAAA,IAiFM,WA9EJ3B,EAAAA,EAAAA,GAA2C,mBAApC+B,EAAAA,GAAG,2BAAD,GAGAA,EAAAA,oB,iBAAkB,WAD3BC,EAAAA,EAAAA,IAGEoW,EAAAA,C,MADC,eAAcrW,EAAAA,a,0BAITA,EAAAA,cAAW,WADnBJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,K,QAEhBA,EAAAA,GAAG,mBAAD,oBAICA,EAAAA,cAAW,WADnBJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,UAAAA,EAAAA,SAAAA,MAAAA,EAAAA,UAAQ,K,QAEbA,EAAAA,GAAG,2BAAD,oBAGSA,EAAAA,qBAAkB,WAAlCJ,EAAAA,EAAAA,IAsDWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,CArDArF,EAAAA,aAAU,WAAnBJ,EAAAA,EAAAA,IAAoE,gBAA5CI,EAAAA,GAAG,oCAAD,oBAEfA,EAAAA,aAAU,WAArBJ,EAAAA,EAAAA,IAkDM,WAjDJ3B,EAAAA,EAAAA,GAgDM,MAhDNqY,GAgDM,EA/CJrY,EAAAA,EAAAA,GAWM,MAXNsY,GAWM,EAVJtY,EAAAA,EAAAA,GAA4C,mBAArC+B,EAAAA,GAAG,4BAAD,IACT/B,EAAAA,EAAAA,GAAyC,kBAAnC+B,EAAAA,GAAG,2BAAD,IACRM,EAAAA,EAAAA,IAGEkW,EAAAA,CAFC/M,MAAOzJ,EAAAA,YAAYgU,iBACnB7B,QAAS,CAAAsE,MAAAA,M,mBAEZxY,EAAAA,EAAAA,GAGI,kBAFC+B,EAAAA,GAAG,kCAAmC,MACzC,QAAGA,EAAAA,YAAYqF,KAAG,MAItBpH,EAAAA,EAAAA,GAiCM,MAjCNyY,GAiCM,EAhCJzY,EAAAA,EAAAA,GAAmC,mBAA5B+B,EAAAA,GAAG,mBAAD,IACT/B,EAAAA,EAAAA,GAA2C,kBAArC+B,EAAAA,GAAG,6BAAD,aACR/B,EAAAA,EAAAA,GAGC,S,qDAFU+B,EAAAA,gBAAe,IACxBzB,KAAK,Q,kBADIyB,EAAAA,oBAIX/B,EAAAA,EAAAA,GAA8D,kBAAxD+B,EAAAA,GAAG,+CAAgD,IAAC,aAC1D/B,EAAAA,EAAAA,GAGC,S,qDAFU+B,EAAAA,gBAAe,IACxBzB,KAAK,Y,kBADIyB,EAAAA,oBAGX/B,EAAAA,EAAAA,GAaM,MAbN0Y,GAaM,EAZJ1Y,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,cAAAA,EAAAA,aAAAA,MAAAA,EAAAA,UAAY,K,QAEjBA,EAAAA,GAAG,oCAAD,IAEP/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,K,QAEhBA,EAAAA,GAAG,mBAAD,KAIDA,EAAAA,QAAK,WADbJ,EAAAA,EAAAA,IAKM,MALNkG,IAKM,QADD9F,EAAAA,OAAK,wG,qBYiC1B,SA1JoB,CAClBlB,KAAI,WACF,MAAO,CACL8X,SAAU,GACVC,kBAAkB,EAClBC,oBAAqB,GACrBC,cAAc,EACdC,iBAAiB,EACjBC,kCAAmC,GACnCC,oBAAoB,EACpBC,qBAAsB,CAAC,GAAI,GAAI,IAC/BC,iBAAiB,EACjBC,qBAAqB,EACrBC,kBAAmB,GACnBC,oBAAqB,GACrBC,cAAc,EACdC,kBAAkB,EAClBC,QAAS,GACTC,kBAAkB,EAClBC,eAAgB,GAChBC,YAAY,EACZC,eAAe,EAEnB,EACA5V,QAAO,WACL7C,KAAK8C,OAAOC,SAAS,eACrB/C,KAAK0Y,cACP,EACAzV,WAAY,CACV2F,eAAAA,GAAAA,EACA+P,IAAAA,GACAvV,SAAAA,EAAAA,GAEFC,SAAU,CACRK,KAAI,WACF,OAAO1D,KAAK8C,OAAOU,MAAMG,MAAMC,WACjC,EACAgV,eAAc,WACZ,OAAO5Y,KAAK8C,OAAOU,MAAMmJ,SAASiM,cACpC,EACAC,YAAW,WAAI,WACb,OAAO7Y,KAAK8C,OAAOU,MAAMqV,YAAYC,OAAOpU,KAAI,SAAAqU,GAC9C,MAAO,CACLhV,GAAIgV,EAAWhV,GACfiV,QAASD,EAAWE,SACpBC,WAAY,IAAIC,KAAKJ,EAAWK,aAAaC,mBAAmBC,GAAAA,EAAAA,wBAAsC,EAAKC,MAAMC,SAErH,GACF,GAEF1Z,QAAS,CACP2Z,cAAa,WACXzZ,KAAK2X,iBAAkB,CACzB,EACA+B,cAAa,WAAI,WACf1Z,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBmW,cAAc,CAAEtF,SAAUpU,KAAK4X,oCACpEtX,MAAK,SAAC2E,GACc,YAAfA,EAAIX,QACN,EAAKxB,OAAOC,SAAS,UACrB,EAAK4W,QAAQ1P,KAAK,CAAE6G,KAAM,UAE1B,EAAK+G,mBAAqB5S,EAAItF,KAElC,GACJ,EACAia,eAAc,WAAI,WACVC,EAAS,CACbzF,SAAUpU,KAAK8X,qBAAqB,GACpCgC,YAAa9Z,KAAK8X,qBAAqB,GACvCiC,wBAAyB/Z,KAAK8X,qBAAqB,IAErD9X,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBqW,eAAeC,GACpDvZ,MAAK,SAAC2E,GACc,YAAfA,EAAIX,QACN,EAAKyT,iBAAkB,EACvB,EAAKC,qBAAsB,EAC3B,EAAKgC,WAEL,EAAKjC,iBAAkB,EACvB,EAAKC,oBAAsB/S,EAAItF,MAEnC,GACJ,EACAsa,YAAW,WAAI,WACPJ,EAAS,CACbK,MAAOla,KAAKuX,SACZnD,SAAUpU,KAAKyX,qBAEjBzX,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkB0W,YAAYJ,GACjDvZ,MAAK,SAAC2E,GACc,YAAfA,EAAIX,QACN,EAAKoT,cAAe,EACpB,EAAKF,kBAAmB,IAExB,EAAKE,cAAe,EACpB,EAAKF,iBAAmBvS,EAAItF,MAEhC,GACJ,EACAwa,YAAW,WAAI,WACPN,EAAS,CACbO,cAAepa,KAAKiY,kBACpB7D,SAAUpU,KAAKkY,qBAEjBlY,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkB4W,YAAYN,GACjDvZ,MAAK,SAAC2E,GACc,YAAfA,EAAIX,QACN,EAAK6T,cAAe,EACpB,EAAKC,kBAAmB,IAExB,EAAKD,cAAe,EACpB,EAAKC,iBAAmBnT,EAAItF,MAEhC,GACJ,EACA0a,YAAW,SAAEC,GAAO,WAClBta,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBgX,YAAY,CAAED,MAAAA,IACnDha,MAAK,kBAAM,EAAKoY,cAAc,GACnC,EACA8B,SAAQ,WAAI,WACVxa,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBiX,SAAS,CAAEF,MAAOta,KAAKuY,iBAC5DjY,MAAK,SAAC2E,GACL,EAAKuT,YAAa,EAClB,EAAKC,eAAgB,EACrB,EAAKF,eAAiB,EACxB,IAAE,OACK,SAAC5Y,GACN,EAAK6Y,YAAa,EAClB,EAAKC,cAAgB9Y,CACvB,IACCW,MAAK,kBAAM,EAAKoY,cAAc,GACnC,EACAA,aAAY,WAAI,WACd1Y,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBkX,cACrCna,MAAK,SAAC2E,GACL,EAAKoT,QAAUpT,EAAIoT,QACnB,EAAKC,kBAAmB,CAC1B,IAAE,OACK,SAAC3Y,GACN,EAAK2Y,iBAAmB3Y,EAAMA,KAChC,GACJ,EACAqa,OAAM,WACJha,KAAK8C,OAAOC,SAAS,UACrB/C,KAAK2Z,QAAQe,QAAQ,IACvB,EACAC,YAAW,SAAE5W,GACP6W,OAAOrH,QAAQ,GAAD,OAAIvT,KAAKuZ,MAAMsB,EAAE,yBAAwB,OACzD7a,KAAK8C,OAAOC,SAAS,cAAegB,EAExC,ICpJJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,sGdJzDxD,EAAAA,EAAAA,IAqPM,OArPA4E,MAAOxE,EAAAA,GAAG,0B,EACd/B,EAAAA,EAAAA,GA+BM,MA/BNwG,GA+BM,EA9BJxG,EAAAA,EAAAA,GAA0C,mBAAnC+B,EAAAA,GAAG,0BAAD,IACT/B,EAAAA,EAAAA,GAOM,aANJA,EAAAA,EAAAA,GAAqC,kBAA/B+B,EAAAA,GAAG,uBAAD,aACR/B,EAAAA,EAAAA,GAIC,S,qDAHU+B,EAAAA,SAAQ,IACjBzB,KAAK,QACL4b,aAAa,S,kBAFJna,EAAAA,eAKb/B,EAAAA,EAAAA,GAOM,aANJA,EAAAA,EAAAA,GAA4C,kBAAtC+B,EAAAA,GAAG,8BAAD,aACR/B,EAAAA,EAAAA,GAIC,S,qDAHU+B,EAAAA,oBAAmB,IAC5BzB,KAAK,WACL4b,aAAa,oB,kBAFJna,EAAAA,0BAKb/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,K,QAEhBA,EAAAA,GAAG,kBAAD,GAEEA,EAAAA,eAAY,WAArBJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,GAAG,2BAAD,qBAE8B,IAArBA,EAAAA,mBAAgB,WAAhCJ,EAAAA,EAAAA,IAGWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,EAFTpH,EAAAA,EAAAA,GAA8C,kBAAxC+B,EAAAA,GAAG,gCAAD,IACR/B,EAAAA,EAAAA,GAA6B,kBAAvB+B,EAAAA,kBAAgB,4BAI1B/B,EAAAA,EAAAA,GAsCM,MAtCN4G,GAsCM,EArCJ5G,EAAAA,EAAAA,GAA6C,mBAAtC+B,EAAAA,GAAG,6BAAD,IACT/B,EAAAA,EAAAA,GAMM,aALJA,EAAAA,EAAAA,GAA4C,kBAAtC+B,EAAAA,GAAG,8BAAD,aACR/B,EAAAA,EAAAA,GAGC,S,qDAFU+B,EAAAA,qBAAqB,GAAD,IAC7BzB,KAAK,Y,kBADIyB,EAAAA,qBAAqB,SAIlC/B,EAAAA,EAAAA,GAMM,aALJA,EAAAA,EAAAA,GAAwC,kBAAlC+B,EAAAA,GAAG,0BAAD,aACR/B,EAAAA,EAAAA,GAGC,S,qDAFU+B,EAAAA,qBAAqB,GAAD,IAC7BzB,KAAK,Y,kBADIyB,EAAAA,qBAAqB,SAIlC/B,EAAAA,EAAAA,GAMM,aALJA,EAAAA,EAAAA,GAAgD,kBAA1C+B,EAAAA,GAAG,kCAAD,aACR/B,EAAAA,EAAAA,GAGC,S,qDAFU+B,EAAAA,qBAAqB,GAAD,IAC7BzB,KAAK,Y,kBADIyB,EAAAA,qBAAqB,SAIlC/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,gBAAAA,EAAAA,eAAAA,MAAAA,EAAAA,UAAc,K,QAEnBA,EAAAA,GAAG,kBAAD,GAEEA,EAAAA,kBAAe,WAAxBJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,GAAG,8BAAD,KAE+B,IAAxBA,EAAAA,sBAAmB,WAAjCJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,GAAG,mCAAD,oBAEEA,EAAAA,sBAAmB,WAA5BJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,qBAAmB,uBAI1B/B,EAAAA,EAAAA,GA4BM,MA5BNgH,GA4BM,EA3BJhH,EAAAA,EAAAA,GAA0C,mBAAnC+B,EAAAA,GAAG,0BAAD,IACT/B,EAAAA,EAAAA,GAyBQ,QAzBRiH,GAyBQ,EAxBNjH,EAAAA,EAAAA,GAMQ,eALNA,EAAAA,EAAAA,GAIK,YAHHA,EAAAA,EAAAA,GAAsC,mBAA/B+B,EAAAA,GAAG,sBAAD,IACT/B,EAAAA,EAAAA,GAAyC,mBAAlC+B,EAAAA,GAAG,yBAAD,GACTuF,QAGJtH,EAAAA,EAAAA,GAgBQ,6BAfN2B,EAAAA,EAAAA,IAcKuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IAbkBnF,EAAAA,aAAW,SAAzBoY,G,kBADTxY,EAAAA,EAAAA,IAcK,MAZFyF,IAAK+S,EAAWhV,I,EAEjBnF,EAAAA,EAAAA,GAAiC,mBAA1Bma,EAAWC,SAAO,IACzBpa,EAAAA,EAAAA,GAAoC,mBAA7Bma,EAAWG,YAAU,IAC5Bta,EAAAA,EAAAA,GAOK,KAPLqY,GAOK,EANHrY,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,mBAAEL,EAAAA,YAAYoY,EAAWhV,GAAE,I,QAE9BpD,EAAAA,GAAG,0BAAD,S,iBAOjBM,EAAAA,EAAAA,IAAO8Z,IAEPnc,EAAAA,EAAAA,GAiEM,MAjENyY,GAiEM,EAhEJzY,EAAAA,EAAAA,GAA2C,mBAApC+B,EAAAA,GAAG,2BAAD,IACT/B,EAAAA,EAAAA,GAuBQ,eAtBNA,EAAAA,EAAAA,GAKQ,eAJNA,EAAAA,EAAAA,GAGK,YAFHA,EAAAA,EAAAA,GAAsD,mBAA/C+B,EAAAA,GAAG,sCAAD,GACT2W,QAGJ1Y,EAAAA,EAAAA,GAeQ,6BAdN2B,EAAAA,EAAAA,IAaKuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IAZanF,EAAAA,SAAO,SAAhB2Z,G,kBADT/Z,EAAAA,EAAAA,IAaK,MAXFyF,IAAKsU,GAAK,EAEX1b,EAAAA,EAAAA,GAAoB,mBAAb0b,GAAK,IACZ1b,EAAAA,EAAAA,GAOK,KAPL6H,GAOK,EANH7H,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,mBAAEL,EAAAA,YAAY2Z,EAAK,I,QAEtB3Z,EAAAA,GAAG,0BAAD,S,cAOPA,EAAAA,mBAAgB,WADxBJ,EAAAA,EAAAA,IAWM,MAXNya,GAWM,mBAPDra,EAAAA,GAAG,8BAA+B,CAAhChB,MAAkCgB,EAAAA,SAAW,IAClD,YAKEE,EAAAA,CAJAlC,MAAM,8BACNoC,KAAK,QACJ2F,MAAO/F,EAAAA,GAAG,2CACVK,QAAK,+BAAEL,EAAAA,kBAAmB,CAAH,I,sCAG5B/B,EAAAA,EAAAA,GAcM,aAbJqC,EAAAA,EAAAA,IASOga,EAAAA,CARL7L,KAAK,4BACL8L,IAAI,K,mBAEJ,iBAIO,CAJPC,G,oBAMFvc,EAAAA,EAAAA,GAEC,S,qDADU+B,EAAAA,eAAc,K,kBAAdA,EAAAA,qBAGb/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,UAAAA,EAAAA,SAAAA,MAAAA,EAAAA,UAAQ,K,QAEbA,EAAAA,GAAG,kBAAD,GAEEA,EAAAA,aAAU,WAAnBJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,GAAG,yBAAD,qBAE2B,IAAlBA,EAAAA,gBAAa,WAC3BJ,EAAAA,EAAAA,IAAqE,gBAA/DI,EAAAA,GAAG,2BAA4B,CAA7BhB,MAAsCgB,EAAAA,iBAAa,uBAI/D/B,EAAAA,EAAAA,GAsCM,MAtCNwc,GAsCM,EArCJxc,EAAAA,EAAAA,GAA0C,mBAAnC+B,EAAAA,GAAG,0BAAD,IACT/B,EAAAA,EAAAA,GAA8C,kBAAxC+B,EAAAA,GAAG,gCAAD,IACR/B,EAAAA,EAAAA,GAcM,aAbJqC,EAAAA,EAAAA,IASOga,EAAAA,CARL7L,KAAK,+BACL8L,IAAI,K,mBAEJ,iBAIO,CAJPG,G,oBAMFzc,EAAAA,EAAAA,GAEC,S,uDADU+B,EAAAA,kBAAiB,K,kBAAjBA,EAAAA,wBAGb/B,EAAAA,EAAAA,GAOM,aANJA,EAAAA,EAAAA,GAA4C,kBAAtC+B,EAAAA,GAAG,8BAAD,aACR/B,EAAAA,EAAAA,GAIC,S,uDAHU+B,EAAAA,oBAAmB,IAC5BzB,KAAK,WACL4b,aAAa,oB,kBAFJna,EAAAA,0BAKb/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,gCAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,K,QAEhBA,EAAAA,GAAG,kBAAD,GAEEA,EAAAA,eAAY,WAArBJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,GAAG,2BAAD,qBAE8B,IAArBA,EAAAA,mBAAgB,WAC9BJ,EAAAA,EAAAA,IAA2E,gBAArEI,EAAAA,GAAG,8BAA+B,CAAhChB,MAAyCgB,EAAAA,oBAAgB,uBAIrE/B,EAAAA,EAAAA,GAgCM,MAhCN0c,GAgCM,EA/BJ1c,EAAAA,EAAAA,GAA4C,mBAArC+B,EAAAA,GAAG,4BAAD,GACCA,EAAAA,iBACH,iBADkB,WAAzBJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,GAAG,wCAAD,IAEIA,EAAAA,kBAAe,WAA1BJ,EAAAA,EAAAA,IAaM,WAZJ3B,EAAAA,EAAAA,GAAuD,kBAAjD+B,EAAAA,GAAG,yCAAD,IACR/B,EAAAA,EAAAA,GAAiC,kBAA3B+B,EAAAA,GAAG,mBAAD,aACR/B,EAAAA,EAAAA,GAGC,S,uDAFU+B,EAAAA,kCAAiC,IAC1CzB,KAAK,Y,kBADIyB,EAAAA,sCAGX/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,gCAAEL,EAAAA,eAAAA,EAAAA,cAAAA,MAAAA,EAAAA,UAAa,K,QAElBA,EAAAA,GAAG,4BAAD,uBAGuB,IAAvBA,EAAAA,qBAAkB,WAA3BJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,GAAG,kCAAD,oBAEEA,EAAAA,qBAAkB,WAA3BJ,EAAAA,EAAAA,IAEI,gBADCI,EAAAA,oBAAkB,oBAGdA,EAAAA,iBAIF,iBAJiB,WADxBJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,gCAAEL,EAAAA,eAAAA,EAAAA,cAAAA,MAAAA,EAAAA,UAAa,K,QAElBA,EAAAA,GAAG,4BAAD,Y,aelPNhC,MAAM,e,IACJA,MAAM,gB,2IAgINA,MAAM,gB,IAENA,MAAM,qB,IAGJA,MAAM,4B,4BAiCRA,MAAM,gB,IAEJA,MAAM,6B,uCAwCRA,MAAM,gB,IAEJA,MAAM,6B,uCAwCRA,MAAM,gB,IAELA,MAAM,gB,kDC7PTA,MAAM,iB,eAEFA,MAAM,iC,eAQNA,MAAM,iC,2ICJjBE,EAAAA,GAAAA,IACEC,EAAAA,KA0HF,SAvHqB,CACnBE,MAAO,CACL+P,QAAS,CACP7P,KAAM,CAACI,OAAQsb,OAAOW,SACtBnc,UAAU,GAEZH,cAAe,CACbC,KAAMC,SACNC,UAAU,GAEZoc,eAAgB,CACdtc,KAAM8L,OAAM,mBAEV,MAAO,CACLyQ,YAAa,EACbC,aAAc,EACdC,SAAU,EACVC,SAAS,EACTC,UAAU,EACVC,QAAQ,EAEZ,GAEFC,MAAO,CACL7c,KAAMI,OACN8B,QAAS,6DAEX4a,gBAAiB,CACf9c,KAAMI,QAER2c,+BAAgC,CAC9B/c,KAAMI,QAER4c,kBAAmB,CACjBhd,KAAMI,SAGVG,KAAI,WACF,MAAO,CACL0c,aAAS1M,EACT2M,aAAS3M,EACTtO,cAAUsO,EACV5P,YAAY,EAEhB,EACAwD,SAAU,CACRgZ,SAAQ,WACN,OAAOrc,KAAKgc,iBAAmBhc,KAAK4L,GAAG,qBACzC,EACA0Q,wBAAuB,WACrB,OAAOtc,KAAKic,gCAAkCjc,KAAK4L,GAAG,sCACxD,EACA2Q,WAAU,WACR,OAAOvc,KAAKkc,mBAAqBlc,KAAK4L,GAAG,uBAC3C,GAEF9L,QAAS,CACP0c,QAAO,WACDxc,KAAKmc,SACPnc,KAAKmc,QAAQK,UAEfxc,KAAKC,MAAMC,MAAMkK,MAAQ,GACzBpK,KAAKoc,aAAU3M,EACfzP,KAAKwT,MAAM,QACb,EACApT,OAAM,WAAmB,WAAjBqc,IAAW,UAAH,+CACdzc,KAAKH,YAAa,EAClBG,KAAKf,cAAcwd,GAAYzc,KAAKmc,QAASnc,KAAKN,MAC/CY,MAAK,kBAAM,EAAKkc,SAAS,IAAC,SAClB,WACP,EAAK3c,YAAa,CACpB,GACJ,EACA6c,UAAS,WACP1c,KAAKC,MAAMC,MAAMiC,OACnB,EACAwa,cAAa,WACX3c,KAAKmc,QAAU,IAAIS,KAAJ,CAAY5c,KAAKC,MAAM4c,IAAK7c,KAAKwb,eAClD,EACAsB,cAAa,WACX,MAA+B,YAAxB,QAAO9c,KAAK+O,SAAuB/O,KAAK+O,QAAUpN,SAASob,cAAc/c,KAAK+O,QACvF,EACAiO,SAAQ,WAAI,WACJC,EAAYjd,KAAKC,MAAMC,MAC7B,GAAuB,MAAnB+c,EAAU9c,OAAuC,MAAtB8c,EAAU9c,MAAM,GAAY,CACzDH,KAAKN,KAAOud,EAAU9c,MAAM,GAC5B,IAAM+c,EAAS,IAAItC,OAAOuC,WAC1BD,EAAOE,OAAS,SAAClN,GACf,EAAKkM,QAAUlM,EAAE9J,OAAOuQ,OACxB,EAAKnD,MAAM,OACb,EACA0J,EAAOG,cAAcrd,KAAKN,MAC1BM,KAAKwT,MAAM,UAAWxT,KAAKN,KAAMwd,EACnC,CACF,GAEFtG,QAAO,WAEL,IAAM7H,EAAU/O,KAAK8c,gBAChB/N,EAGHA,EAAQuO,iBAAiB,QAAStd,KAAK0c,WAFvC1c,KAAKwT,MAAM,QAAS,+BAAgC,QAKpCxT,KAAKC,MAAMC,MACnBod,iBAAiB,SAAUtd,KAAKgd,SAC5C,EACAO,cAAe,WAEb,IAAMxO,EAAU/O,KAAK8c,gBACjB/N,GACFA,EAAQyO,oBAAoB,QAASxd,KAAK0c,WAE1B1c,KAAKC,MAAMC,MACnBsd,oBAAoB,SAAUxd,KAAKgd,SAC/C,GCtHF,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,iEFNzDzc,EAAAA,EAAAA,IA6CM,MA7CNC,GA6CM,CA5COG,EAAAA,UAAO,WAAlBJ,EAAAA,EAAAA,IAqCM,WApCJ3B,EAAAA,EAAAA,GAOM,MAPN0G,GAOM,EANJ1G,EAAAA,EAAAA,GAKC,OAJC6B,IAAI,MACHgd,IAAK9c,EAAAA,QACN+c,IAAI,GACHC,OAAI,yCAAOhd,EAAAA,eAAAA,EAAAA,cAAAA,MAAAA,EAAAA,UAAa,e,eAG7B/B,EAAAA,EAAAA,GA2BM,MA3BN6G,GA2BM,EA1BJ7G,EAAAA,EAAAA,GAME,UALAD,MAAM,qBACNO,KAAK,SACJqJ,SAAU5H,EAAAA,WACVK,QAAK,+BAAEL,EAAAA,QAAM,G,aACdid,EAAAA,EAAAA,IAAQjd,EAAS,W,YAEnB/B,EAAAA,EAAAA,GAME,UALAD,MAAM,qBACNO,KAAK,SACJqJ,SAAU5H,EAAAA,WACVK,QAAK,8BAAEL,EAAAA,SAAAA,EAAAA,QAAAA,MAAAA,EAAAA,UAAO,G,aACfid,EAAAA,EAAAA,IAAQjd,EAAW,a,YAErB/B,EAAAA,EAAAA,GAME,UALAD,MAAM,qBACNO,KAAK,SACJqJ,SAAU5H,EAAAA,WACVK,QAAK,+BAAEL,EAAAA,QAAO,EAAD,G,aACdid,EAAAA,EAAAA,IAAQjd,EAAwB,0B,WAG1BA,EAAAA,aAAU,WADlBC,EAAAA,EAAAA,IAIEC,EAAAA,C,MAFAC,KAAA,GACAC,KAAK,mB,qCAIXnC,EAAAA,EAAAA,GAKC,SAJC6B,IAAI,QACJvB,KAAK,OACLP,MAAM,0BACLkf,OAAQld,EAAAA,O,sqBGrBf9B,EAAAA,GAAAA,IACEE,EAAAA,IACA+e,EAAAA,IACAhf,EAAAA,KAGF,IAAMif,GAAa,CACjBte,KAAI,WACF,MAAO,CACLue,QAAShe,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYqa,eAC7CC,OAAQC,KAASne,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYwa,aACrDC,UAAWre,KAAK8C,OAAOU,MAAMG,MAAMC,YAAY0a,OAC/CC,YAAave,KAAK8C,OAAOU,MAAMG,MAAMC,YAAY4a,SACjDC,aAAcze,KAAK8C,OAAOU,MAAMG,MAAMC,YAAY8a,cAClDC,UAAW3e,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYgb,OAAOla,KAAI,SAAAma,GAAK,MAAK,CAAE/N,KAAM+N,EAAM/N,KAAM1G,MAAOyU,EAAMzU,MAAO,IAC5G0U,SAAU9e,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYmb,UAC9CC,KAAMhf,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYob,KAC1CC,IAAKjf,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYqb,IACzCC,sBAAsB,EACtBC,iBAAiB,EACjBC,qBAAqB,EACrBC,OAAQ,KACRC,cAAe,KACfC,WAAY,KACZC,kBAAmB,KACnBC,cAAezf,KAAK8C,OAAOU,MAAMG,MAAMC,YAAY8b,UAAY,CAAC,IAEpE,EACAzc,WAAY,CACV0c,cAAAA,GAAAA,EACAC,aAAAA,GACAC,WAAAA,GAAAA,EACApT,YAAAA,GACA7D,eAAAA,GAAAA,EACAxF,SAAAA,EAAAA,EACAiO,eAAAA,GACAyO,0BAAAA,GAAAA,GAEFzc,SAAU,OACRK,KAAI,WACF,OAAO1D,KAAK8C,OAAOU,MAAMG,MAAMC,WACjC,GACG0N,MAAsB,IACzByO,mBAAkB,WAChB,OAAOC,EAAAA,GAAAA,IAAU,CACfC,MAAO,GAAF,gBACAjgB,KAAK8C,OAAO+E,QAAQqY,oBAAiB,QACrClgB,KAAK8C,OAAOU,MAAMmJ,SAASwT,cAEhCC,MAAOpgB,KAAK8C,QAEhB,EACAud,eAAc,WACZ,OAAOL,EAAAA,GAAAA,IAAU,CACfC,MAAO,GAAF,gBACAjgB,KAAK8C,OAAO+E,QAAQqY,oBAAiB,QACrClgB,KAAK8C,OAAOU,MAAMmJ,SAASwT,eAGpC,EACAG,cAAa,WACX,OAAON,EAAAA,GAAAA,IAAU,CAAEI,MAAOpgB,KAAK8C,QACjC,EACAyd,aAAY,WACV,OAAOvgB,KAAK8C,OAAOU,MAAMmJ,SAAS4T,YACpC,EACAC,UAAS,WACP,OAAOxgB,KAAKugB,aAAevgB,KAAKugB,aAAaC,UAAY,CAC3D,EACAC,cAAa,WACX,OAAOzgB,KAAK8C,OAAOU,MAAMmJ,SAAS+T,OAAS1gB,KAAK8C,OAAOU,MAAMmJ,SAAS8T,aACxE,EACAE,cAAa,WACX,OAAO3gB,KAAK8C,OAAOU,MAAMmJ,SAAS+T,OAAS1gB,KAAK8C,OAAOU,MAAMmJ,SAASgU,aACxE,EACAC,gBAAe,WACb,IAAMC,EAAa7gB,KAAK8C,OAAOU,MAAMmJ,SAAS8T,cAC9C,OAASzgB,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYkd,mBAC7C9gB,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYkd,kBAAkBhY,SAAS+X,EACjE,EACAE,gBAAe,WACb,IAAMC,EAAahhB,KAAK8C,OAAOU,MAAMmJ,SAASgU,cAC9C,OAAS3gB,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYqd,aAC7CjhB,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYqd,YAAYnY,SAASkY,EAC3D,EACAE,oBAAmB,WACjB,OAASlhB,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYud,gBAC/C,EACAC,aAAY,WAEV,OADYphB,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYyd,4BAChCrhB,KAAKygB,aACvB,EACAa,aAAY,WAEV,OADYthB,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYqd,aAChCjhB,KAAK2gB,aACvB,IAEF7gB,QAAS,CACPyhB,cAAa,WAAI,WACT1H,EAAS,CACb2H,KAAMxhB,KAAKke,OACXI,OAAQte,KAAKqe,UAGboD,aAAczhB,KAAKge,QACnB0D,kBAAmB1hB,KAAK2e,UAAU/X,QAAO,SAAA+a,GAAE,OAAU,MAANA,CAAU,IACzD1C,IAAKjf,KAAKif,IACVF,UAAW/e,KAAK8e,SAChBN,SAAUxe,KAAKue,aAAe,GAC9BG,cAAe1e,KAAKye,cAIlBze,KAAKyf,gBACP5F,EAAO6F,SAAWpG,GAAAA,EAAAA,6BAA2CtZ,KAAKyf,gBAGpEzf,KAAK8C,OAAOU,MAAMC,IAAIF,kBACnBge,cAAc,CAAE1H,OAAAA,IAChBvZ,MAAK,SAACoD,GACL,EAAKib,UAAUzU,OAAOxG,EAAKkb,OAAOnX,QAClCma,KAAM,EAAKjD,UAAWjb,EAAKkb,QAC3B,EAAK9b,OAAO+e,OAAO,cAAe,CAACne,IACnC,EAAKZ,OAAO+e,OAAO,iBAAkBne,EACvC,GACJ,EACAoe,UAAS,SAAEC,GACT/hB,KAAKgiB,gBAAkBD,CACzB,EACAE,SAAQ,WACN,OAAIjiB,KAAK2e,UAAUlX,OAASzH,KAAKwgB,YAC/BxgB,KAAK2e,UAAU1U,KAAK,CAAE6G,KAAM,GAAI1G,MAAO,MAChC,EAGX,EACA8X,YAAW,SAAEC,EAAOC,GAClBpiB,KAAK2e,UAAUzU,OAAOiY,EAAO,EAC/B,EACAE,WAAU,SAAEC,EAAMpS,GAAG,WACbxQ,EAAOwQ,EAAE9J,OAAOjG,MAAM,GAC5B,GAAKT,EACL,GAAIA,EAAK4C,KAAOtC,KAAK8C,OAAOU,MAAMmJ,SAAS2V,EAAO,SAAlD,CACE,IAAMC,EAAWC,GAAAA,EAAAA,eAAqC9iB,EAAK4C,MACrDmgB,EAAcD,GAAAA,EAAAA,eAAqCxiB,KAAK8C,OAAOU,MAAMmJ,SAAS2V,EAAO,UAC3FtiB,KAAK8C,OAAOC,SAAS,mBAAoB,CACvC2f,WAAY,uBACZC,YAAa,CACX3iB,KAAK4L,GAAG,4BAA6B,CACnC2W,SAAUA,EAASK,IACnBC,aAAcN,EAASO,KACvBL,YAAaA,EAAYG,IACzBG,gBAAiBN,EAAYK,QAGjCE,MAAO,SAGX,KAhBA,CAkBA,IAAM9F,EAAS,IAAIC,WACnBD,EAAOE,OAAS,YAAgB,IACxBP,EADiB,EAANzW,OACEuQ,OACnB,EAAK2L,EAAO,WAAazF,EACzB,EAAKyF,GAAQ5iB,CACf,EACAwd,EAAOG,cAAc3d,EARrB,CASF,EACAujB,YAAW,WACSrI,OAAOrH,QAAQvT,KAAK4L,GAAG,mCAEvC5L,KAAKkjB,kBAAazT,EAAW,GAEjC,EACA0T,YAAW,WACSvI,OAAOrH,QAAQvT,KAAK4L,GAAG,mCAEvC5L,KAAKojB,aAAa,GAEtB,EACAC,gBAAe,WACKzI,OAAOrH,QAAQvT,KAAK4L,GAAG,uCAEvC5L,KAAKsjB,iBAAiB,GAE1B,EACAJ,aAAY,SAAE/G,EAASzc,GACrB,IAAM6jB,EAAOvjB,KACb,OAAO,IAAI2N,SAAQ,SAACC,EAASZ,GAC3B,SAASwW,EAAcC,EAAQC,GAC7BH,EAAKzgB,OAAOU,MAAMC,IAAIF,kBAAkBogB,oBAAoB,CAAEF,OAAAA,EAAQC,WAAAA,IACnEpjB,MAAK,SAACoD,GACL6f,EAAKzgB,OAAO+e,OAAO,cAAe,CAACne,IACnC6f,EAAKzgB,OAAO+e,OAAO,iBAAkBne,GACrCkK,GACF,IAAE,OACK,SAACjO,GACN4jB,EAAKK,mBAAmBjkB,GACxBqN,EAAOrN,EACT,GACJ,CAEIwc,EACFA,EAAQ0H,mBAAmBC,QAAO,SAACrkB,GAAI,OAAK+jB,EAAa/jB,EAAMC,EAAKoR,KAAK,GAAEpR,EAAKR,MAEhFskB,EAAa9jB,EAAMA,EAAKoR,KAE5B,GACF,EACAsS,aAAY,SAAE/D,GAAQ,YACfrf,KAAKsf,eAA4B,KAAXD,KAE3Brf,KAAKmf,iBAAkB,EACvBnf,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBogB,oBAAoB,CAAEtE,OAAAA,IAC3D/e,MAAK,SAACoD,GACL,EAAKZ,OAAO+e,OAAO,cAAe,CAACne,IACnC,EAAKZ,OAAO+e,OAAO,iBAAkBne,GACrC,EAAK4b,cAAgB,IACvB,IAAE,MACKtf,KAAK4jB,oBAAmB,SACtB,WAAQ,EAAKzE,iBAAkB,CAAM,IAClD,EACAmE,iBAAgB,SAAE/D,GAAY,YACvBvf,KAAKwf,mBAAoC,KAAfD,KAE/Bvf,KAAKof,qBAAsB,EAC3Bpf,KAAK8C,OAAOU,MAAMC,IAAIF,kBAAkBogB,oBAAoB,CAAEpE,WAAAA,IAC3Djf,MAAK,SAACb,GACL,EAAKqD,OAAO+e,OAAO,cAAe,CAACpiB,IACnC,EAAKqD,OAAO+e,OAAO,iBAAkBpiB,GACrC,EAAK+f,kBAAoB,IAC3B,IAAE,MACKxf,KAAK4jB,oBAAmB,SACtB,WAAQ,EAAKxE,qBAAsB,CAAM,IACtD,EACAwE,mBAAkB,SAAEjkB,GAClBK,KAAK8C,OAAOC,SAAS,mBAAoB,CACvC2f,WAAY,uBACZC,YAAa,CAAChjB,EAAMokB,SACpBf,MAAO,SAEX,EACAgB,cAAa,SAAEhlB,GACb,OAAOglB,EAAAA,GAAAA,GAAchlB,EACvB,IAIJ,YCtQA,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,oNLNzDuB,EAAAA,EAAAA,IAwTM,MAxTNC,GAwTM,EAvTJ5B,EAAAA,EAAAA,GA+HM,MA/HNwG,GA+HM,EA9HJxG,EAAAA,EAAAA,GAAsC,mBAA/B+B,EAAAA,GAAG,sBAAD,IACT/B,EAAAA,EAAAA,GAAgC,kBAA1B+B,EAAAA,GAAG,kBAAD,IACRM,EAAAA,EAAAA,IAaagjB,EAAAA,C,WAZFtjB,EAAAA,Q,qDAAAA,EAAAA,QAAO,IAChB,yBACCujB,QAASvjB,EAAAA,gB,CAECS,SAAO8M,EAAAA,EAAAA,KAChB,SADkBiW,GAAU,iBAC5BvlB,EAAAA,EAAAA,GAKC,SALDwlB,EAAAA,EAAAA,IAKC,CAJCrgB,GAAG,W,qDACMpD,EAAAA,QAAO,IAChBhC,MAAM,gBACEgC,EAAAA,cAAcwjB,IAAU,iBAFvBxjB,EAAAA,W,sCAMf/B,EAAAA,EAAAA,GAA+B,kBAAzB+B,EAAAA,GAAG,iBAAD,IACRM,EAAAA,EAAAA,IAYagjB,EAAAA,C,WAXFtjB,EAAAA,O,qDAAAA,EAAAA,OAAM,IACf,yBACCujB,QAASvjB,EAAAA,oB,CAECS,SAAO8M,EAAAA,EAAAA,KAChB,SADkBiW,GAAU,iBAC5BvlB,EAAAA,EAAAA,GAIE,YAJFwlB,EAAAA,EAAAA,IAIE,C,qDAHSzjB,EAAAA,OAAM,IACfhC,MAAM,qBACEgC,EAAAA,cAAcwjB,IAAU,iBAFvBxjB,EAAAA,U,qCAMG,UAATA,EAAAA,MAA6B,cAATA,EAAAA,OAAI,WAAjCJ,EAAAA,EAAAA,IASI,SARFU,EAAAA,EAAAA,IAOWqJ,EAAAA,C,WAPQ3J,EAAAA,S,qDAAAA,EAAAA,SAAQ,K,mBACzB,iBAEW,CAFc,UAATA,EAAAA,OAAI,WAApBJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,8BAAD,yBAEkB,cAATA,EAAAA,OAAI,WAApBJ,EAAAA,EAAAA,IAEWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,mBADNrF,EAAAA,GAAG,kCAAD,yB,+CAIX/B,EAAAA,EAAAA,GAWM,aAVJA,EAAAA,EAAAA,GAA0C,kBAApC+B,EAAAA,GAAG,4BAAD,aACR/B,EAAAA,EAAAA,GAKC,SAJCmF,GAAG,W,qDACMpD,EAAAA,YAAW,IACpBzB,KAAK,OACLP,MAAM,kB,kBAFGgC,EAAAA,gBAIXM,EAAAA,EAAAA,IAEWqJ,EAAAA,C,WAFQ3J,EAAAA,a,qDAAAA,EAAAA,aAAY,K,mBAC7B,iBAA2C,mBAAxCA,EAAAA,GAAG,oCAAD,G,6BAGEA,EAAAA,UAAY,IAAH,WAApBJ,EAAAA,EAAAA,IAsDM,WArDJ3B,EAAAA,EAAAA,GAAgD,kBAA1C+B,EAAAA,GAAG,kCAAD,kBACRJ,EAAAA,EAAAA,IA2CMuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IA1CanF,EAAAA,WAAS,SAAlB0jB,EAAG/V,G,kBADb/N,EAAAA,EAAAA,IA2CM,OAzCHyF,IAAKsI,EACN3P,MAAM,kB,EAENsC,EAAAA,EAAAA,IAaagjB,EAAAA,C,WAZFtjB,EAAAA,UAAU2N,GAAGwC,K,yCAAbnQ,EAAAA,UAAU2N,GAAGwC,KAAI,GAC1B,yBACA,uBACCoT,QAASvjB,EAAAA,e,CAECS,SAAO8M,EAAAA,EAAAA,KAChB,SADkBiW,GAAU,iBAC5BvlB,EAAAA,EAAAA,GAIC,SAJDwlB,EAAAA,EAAAA,IAIC,C,yCAHUzjB,EAAAA,UAAU2N,GAAGwC,KAAI,GACzBjK,YAAalG,EAAAA,GAAG,iCACTA,EAAAA,cAAcwjB,IAAU,oBAFvBxjB,EAAAA,UAAU2N,GAAGwC,Q,+DAM5B7P,EAAAA,EAAAA,IAaagjB,EAAAA,C,WAZFtjB,EAAAA,UAAU2N,GAAGlE,M,yCAAbzJ,EAAAA,UAAU2N,GAAGlE,MAAK,GAC3B,yBACA,uBACC8Z,QAASvjB,EAAAA,e,CAECS,SAAO8M,EAAAA,EAAAA,KAChB,SADkBiW,GAAU,iBAC5BvlB,EAAAA,EAAAA,GAIC,SAJDwlB,EAAAA,EAAAA,IAIC,C,yCAHUzjB,EAAAA,UAAU2N,GAAGlE,MAAK,GAC1BvD,YAAalG,EAAAA,GAAG,kCACTA,EAAAA,cAAcwjB,IAAU,oBAFvBxjB,EAAAA,UAAU2N,GAAGlE,S,+DAM5BxL,EAAAA,EAAAA,GASS,UARPD,MAAM,gDACLqC,QAAK,mBAAEL,EAAAA,YAAY2N,EAAC,G,CAIb3N,EAAAA,UAAU8G,OAAS,IAAH,WADxB7G,EAAAA,EAAAA,IAGEC,EAAAA,C,MADAE,KAAK,Y,iCAKHJ,EAAAA,UAAU8G,OAAS9G,EAAAA,YAAS,WADpCJ,EAAAA,EAAAA,IAOS,U,MALP5B,MAAM,mDACLqC,QAAK,8BAAEL,EAAAA,UAAAA,EAAAA,SAAAA,MAAAA,EAAAA,UAAQ,I,EAEhBM,EAAAA,EAAAA,IAAsBJ,EAAAA,CAAdE,KAAK,UAAM,QAAG,KACtB,QAAGJ,EAAAA,GAAG,sCAAD,0CAGT/B,EAAAA,EAAAA,GAII,WAHFqC,EAAAA,EAAAA,IAEWqJ,EAAAA,C,WAFQ3J,EAAAA,I,qDAAAA,EAAAA,IAAG,K,mBACpB,iBAAwB,mBAArBA,EAAAA,GAAG,iBAAD,G,8BAGT/B,EAAAA,EAAAA,GAMI,WALFqC,EAAAA,EAAAA,IAIEqjB,EAAAA,CAHC,cAAa3jB,EAAAA,GAAG,2BAChB+e,SAAU/e,EAAAA,cACV,eAAc,SAAAyG,GAAG,OAAIzG,EAAAA,cAAgByG,CAAG,G,qDAG7CxI,EAAAA,EAAAA,GAMS,UALN2J,SAAU5H,EAAAA,SAA8B,IAAnBA,EAAAA,QAAQ8G,OAC9B9I,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,eAAAA,EAAAA,cAAAA,MAAAA,EAAAA,UAAa,K,QAElBA,EAAAA,GAAG,kBAAD,SAGT/B,EAAAA,EAAAA,GAqCM,MArCNiH,GAqCM,EApCJjH,EAAAA,EAAAA,GAAoC,mBAA7B+B,EAAAA,GAAG,oBAAD,IACT/B,EAAAA,EAAAA,GAEI,IAFJsH,IAEI,QADCvF,EAAAA,GAAG,qCAAD,IAEP/B,EAAAA,EAAAA,GAgBM,MAhBNqY,GAgBM,EAfJrY,EAAAA,EAAAA,GAGC,OAFE6e,IAAK9c,EAAAA,KAAK0gB,2BACX1iB,MAAM,kB,YAGCgC,EAAAA,iBAAmBA,EAAAA,uBAAoB,WADhDJ,EAAAA,EAAAA,IAUS,U,MARNmG,MAAO/F,EAAAA,GAAG,yBACXhC,MAAM,+BACLqC,QAAK,gCAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,I,EAEnBM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFAE,KAAK,QACL7B,KAAK,Y,0BAIXN,EAAAA,EAAAA,GAA0C,kBAApC+B,EAAAA,GAAG,4BAAD,aACR/B,EAAAA,EAAAA,GAOS,UALPmF,GAAG,cACHpF,MAAM,qBACNO,KAAK,W,QAEFyB,EAAAA,GAAG,4BAAD,aALGA,EAAAA,yBAOVM,EAAAA,EAAAA,IAKEsjB,EAAAA,CAJAxV,QAAQ,eACP,iBAAgBpO,EAAAA,aAChB6jB,OAAI,iCAAE7jB,EAAAA,sBAAoB,IAC1B8jB,QAAK,iCAAE9jB,EAAAA,sBAAoB,K,8BAGhC/B,EAAAA,EAAAA,GAyCM,MAzCN0Y,GAyCM,EAxCJ1Y,EAAAA,EAAAA,GAA4C,mBAArC+B,EAAAA,GAAG,4BAAD,IACT/B,EAAAA,EAAAA,GAaM,MAbN6H,GAaM,EAZJ7H,EAAAA,EAAAA,GAA6B,OAAvB6e,IAAK9c,EAAAA,KAAKsgB,a,WAEPtgB,EAAAA,iB,iBAAe,WADxBJ,EAAAA,EAAAA,IAUS,U,MARP5B,MAAM,+BACL+H,MAAO/F,EAAAA,GAAG,iCACVK,QAAK,gCAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,I,EAEnBM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFAE,KAAK,QACL7B,KAAK,Y,UAIXN,EAAAA,EAAAA,GAAkD,kBAA5C+B,EAAAA,GAAG,oCAAD,GAEAA,EAAAA,gBAAa,WADrBJ,EAAAA,EAAAA,IAIC,O,MAFC5B,MAAM,4BACL8e,IAAK9c,EAAAA,e,6BAER/B,EAAAA,EAAAA,GAKM,aAJJA,EAAAA,EAAAA,GAGC,SAFCM,KAAK,OACJwB,SAAM,iCAAEC,EAAAA,WAAW,SAAU+jB,EAAM,I,WAIhC/jB,EAAAA,kBAAe,WADvBC,EAAAA,EAAAA,IAKEC,EAAAA,C,MAHAlC,MAAM,YACNmC,KAAA,GACAC,KAAK,kBAGMJ,EAAAA,gBAAa,WAD1BJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,iCAAEL,EAAAA,aAAaA,EAAAA,OAAM,K,QAExBA,EAAAA,GAAG,kBAAD,uBAGT/B,EAAAA,EAAAA,GAyCM,MAzCN+lB,GAyCM,EAxCJ/lB,EAAAA,EAAAA,GAAgD,mBAAzC+B,EAAAA,GAAG,gCAAD,IACT/B,EAAAA,EAAAA,GAaM,MAbNgmB,GAaM,EAZJhmB,EAAAA,EAAAA,GAAkC,OAA5B6e,IAAK9c,EAAAA,KAAKwgB,kB,WAEPxgB,EAAAA,qB,iBAAmB,WAD5BJ,EAAAA,EAAAA,IAUS,U,MARP5B,MAAM,+BACL+H,MAAO/F,EAAAA,GAAG,qCACVK,QAAK,gCAAEL,EAAAA,iBAAAA,EAAAA,gBAAAA,MAAAA,EAAAA,UAAe,I,EAEvBM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFAE,KAAK,QACL7B,KAAK,Y,UAIXN,EAAAA,EAAAA,GAAsD,kBAAhD+B,EAAAA,GAAG,wCAAD,GAEAA,EAAAA,oBAAiB,WADzBJ,EAAAA,EAAAA,IAIC,O,MAFC5B,MAAM,4BACL8e,IAAK9c,EAAAA,mB,6BAER/B,EAAAA,EAAAA,GAKM,aAJJA,EAAAA,EAAAA,GAGC,SAFCM,KAAK,OACJwB,SAAM,iCAAEC,EAAAA,WAAW,aAAc+jB,EAAM,I,WAIpC/jB,EAAAA,sBAAmB,WAD3BC,EAAAA,EAAAA,IAKEC,EAAAA,C,MAHAlC,MAAM,YACNmC,KAAA,GACAC,KAAK,kBAGMJ,EAAAA,oBAAiB,WAD9BJ,EAAAA,EAAAA,IAMS,U,MAJP5B,MAAM,qBACLqC,QAAK,iCAAEL,EAAAA,iBAAiBA,EAAAA,WAAU,K,QAEhCA,EAAAA,GAAG,kBAAD,uBAGT/B,EAAAA,EAAAA,GA4DM,MA5DNimB,GA4DM,EA3DJjmB,EAAAA,EAAAA,GAA6C,mBAAtC+B,EAAAA,GAAG,6BAAD,IACT/B,EAAAA,EAAAA,GAyDK,KAzDL0c,GAyDK,EAxDH1c,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,qBAAmB,C,kBACtC,iBAA6C,mBAA1CzO,EAAAA,GAAG,sCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,2BAAyB,C,kBAC5C,iBAAiC,mBAA9BzO,EAAAA,GAAG,0BAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,iCAA+B,C,kBAClD,iBAAyC,mBAAtCzO,EAAAA,GAAG,kCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,4BAA0B,C,kBAC7C,iBAA+C,mBAA5CzO,EAAAA,GAAG,wCAAD,G,aAGT/B,EAAAA,EAAAA,GAiBK,YAhBHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,4BAA0B,C,kBAC7C,iBAA+C,mBAA5CzO,EAAAA,GAAG,wCAAD,G,WAEP/B,EAAAA,EAAAA,GAYK,MAXHD,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,0BAAyB,EAAAlC,UACV5H,EAAAA,8B,EAErB/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,gCACJ7G,UAAW5H,EAAAA,0B,mBAEZ,iBAAqD,mBAAlDA,EAAAA,GAAG,8CAAD,G,kCAKb/B,EAAAA,EAAAA,GAiBK,YAhBHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,0BAAwB,C,kBAC3C,iBAA6C,mBAA1CzO,EAAAA,GAAG,sCAAD,G,WAEP/B,EAAAA,EAAAA,GAYK,MAXHD,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,0BAAyB,EAAAlC,UACV5H,EAAAA,4B,EAErB/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,8BACJ7G,UAAW5H,EAAAA,wB,mBAEZ,iBAAmD,mBAAhDA,EAAAA,GAAG,4CAAD,G,gEMhTZhC,MAAM,gB,IAELA,MAAM,gB,gDAsIDA,MAAM,mB,IAYTA,MAAM,mB,IACFA,MAAM,S,IACRA,MAAM,e,IAkDXA,MAAM,gB,IAELA,MAAM,gB,UAYNA,MAAM,2B,IAuEJA,MAAM,2B,UAyCFA,MAAM,e,2CAsFhBA,MAAM,gB,IAGFA,MAAM,gB,IAECsT,IAAI,e,qBChajBtT,MAAM,e,2DCCGmmB,GAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,OAAQ,OAAQ,KACxGC,GAAyB,CAAC,KAAM,MAAO,MAGpD,UACE9hB,WAAY,CACVgM,kBAAAA,GACAyC,OAAAA,GAAAA,GAEF1S,MAAO,CACLoQ,KAAM9P,OACNiJ,SAAUsJ,QACVC,IAAKC,OACLiT,MAAO,CACL9lB,KAAM,CAACI,QACP8B,QAAS,kBAAM0jB,EAAW,GAE5B/U,OAAQ,CAACgC,OAAQzS,SAEnB+D,SAAU,CACR8L,YAAW,WACT,MAAgCnP,KAAKoP,KAAKC,MAAM,KAAI,cAA7CC,EAAY,KAAKC,EAAI,WAC5B,MAAO,CAACD,EAAe,gBAAc,gBAAKC,IAAMxK,KAAK,IACvD,EACAkgB,UAAS,WACP,OAAQjlB,KAAKwD,OAAS,IAAIkX,QAAQ,MAAO,GAC3C,EACAwK,WAAU,WACR,OAAQllB,KAAKwD,OAAS,IAAIkX,QAAQ,MAAO,GAC3C,EACAlX,MAAK,WACH,IAAM4G,EAAQ,KAAIpK,KAAKwP,QAASxP,KAAKoP,MACrC,YAAcK,IAAVrF,EACKpK,KAAK0P,aAELtF,CAEX,EACAsF,aAAY,WACV,OAAO,KAAI1P,KAAKwP,QAASxP,KAAKmP,YAChC,EACAU,UAAS,WACP,OAAO7P,KAAKwD,QAAUxD,KAAK0P,YAC7B,EACAI,mBAAkB,WAChB,OAAQ9P,KAAK+P,QAAU,IAAM/P,KAAKwP,QAAQQ,WAC5C,GAEFlQ,QAAS,CACPmQ,OAAM,SAAEC,GACN,KAAIlQ,KAAKwP,QAASxP,KAAKoP,KAAMc,EAC/B,EACAC,MAAK,WACH,KAAInQ,KAAKwP,QAASxP,KAAKoP,KAAMpP,KAAK0P,aACpC,EACAyV,YAAW,SAAEjV,GACX,KAAIlQ,KAAKwP,QAASxP,KAAKoP,KAAM4C,SAAS9B,EAAE9J,OAAOgE,OAASpK,KAAKilB,UAC/D,EACAG,WAAU,SAAElV,GACV,KAAIlQ,KAAKwP,QAASxP,KAAKoP,KAAMpP,KAAKklB,WAAahV,EAAE9J,OAAOgE,MAC1D,ICvDJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,sFFLjDzJ,EAAAA,qBAAkB,WAD1BJ,EAAAA,EAAAA,IAwCO,OAxCPC,GAwCO,EApCL5B,EAAAA,EAAAA,GAKQ,SAJLqT,IAAKtR,EAAAA,KACNhC,MAAM,c,EAENgJ,EAAAA,EAAAA,IAAQhH,EAAAA,OAAAA,YAAAA,EAAAA,KAEV/B,EAAAA,EAAAA,GASC,SAREmF,GAAIpD,EAAAA,KACLhC,MAAM,eACNO,KAAK,SACLgT,KAAK,IACJ3J,SAAU5H,EAAAA,SACVmR,IAAKnR,EAAAA,KAAO,EACZyJ,MAAOzJ,EAAAA,WACPD,SAAM,8BAAEC,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,I,aAEtBM,EAAAA,EAAAA,IAcS0Q,EAAAA,CAbN5N,GAAIpD,EAAAA,KACJ,cAAaA,EAAAA,UACb4H,SAAU5H,EAAAA,SACXhC,MAAM,iBACL+B,SAAQC,EAAAA,Y,mBAGP,iBAAuB,gBADzBJ,EAAAA,EAAAA,IAMSuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IALUnF,EAAAA,OAAK,SAAfiR,G,kBADTrR,EAAAA,EAAAA,IAMS,UAJNyF,IAAK4L,EACLxH,MAAOwH,I,QAELA,GAAM,K,0EAEJ,KACT,QAAG,KAAM,MACT,QAGExB,EAAAA,CAFCC,QAAS1P,EAAAA,UACT2P,QAAS3P,EAAAA,O,oRGzBhB9B,EAAAA,GAAAA,IACEwmB,EAAAA,KAoGF,SAjGmB,CACjB5lB,KAAI,WAAI,WACN,MAAO,CACL6lB,mBAAoB,CAAC,QAAS,OAAQ,SAAS5gB,KAAI,SAAA4N,GAAI,MAAK,CAC1DtM,IAAKsM,EACLlI,MAAOkI,EACPnN,MAAO,EAAKyG,GAAG,yBAAD,OAAmC,UAAT0G,EAAmB,WAAaA,IACzE,IACDiT,2BAA4B,CAAC,OAAQ,UAAU7gB,KAAI,SAAA4N,GAAI,MAAK,CAC1DtM,IAAKsM,EACLlI,MAAOkI,EACPnN,MAAO,EAAKyG,GAAG,iCAAD,OAAkC0G,IACjD,IACDkT,sCAAuC,CAAC,QAAS,UAAU9gB,KAAI,SAAA4N,GAAI,MAAK,CACtEtM,IAAKsM,EACLlI,MAAOkI,EACPnN,MAAO,EAAKyG,GAAG,8CAAD,OAA+C0G,IAC9D,IACDmT,0BAA2B,CAAC,QAAS,kBAAmB,QAAQ/gB,KAAI,SAAA4N,GAAI,MAAK,CAC3EtM,IAAKsM,EACLlI,MAAOkI,EACPnN,MAAO,EAAKyG,GAAG,iCAAD,OAAkC0G,IACjD,IACDoT,uBAAwB,CAAC,OAAQ,gBAAiB,YAAYhhB,KAAI,SAAA4N,GAAI,MAAK,CACzEtM,IAAKsM,EACLlI,MAAOkI,EACPnN,MAAO,EAAKyG,GAAG,8BAAD,OAA+B0G,IAC9C,IACDqT,+BAAgC,CAAC,QAAS,OAAQ,QAAQjhB,KAAI,SAAA4N,GAAI,MAAK,CACrEtM,IAAKsM,EACLlI,MAAOkI,EACPnN,MAAO,EAAKyG,GAAG,uCAAD,OAAwC0G,IACvD,IACDsT,oBAEA5a,OAAO6a,yBAAyBC,iBAAiBC,UAAW,gBAE5D/a,OAAO6a,yBAAyBG,iBAAiBD,UAAW,gCAE5D/a,OAAO6a,yBAAyBG,iBAAiBD,UAAW,eAEhE,EACA9iB,WAAY,CACVoO,eAAAA,GACAkB,cAAAA,GACAC,eAAAA,GACAyT,YAAAA,GACAnG,0BAAAA,GAAAA,EACAH,cAAAA,GAAAA,EACAzQ,oBAAAA,IAEF7L,S,uWAAU,EACR6iB,gBAAe,WACb,OAAOnB,EACT,EACAoB,YAAW,WACT,OAAOnmB,KAAK8C,OAAOU,MAAMmJ,SAASwZ,aAAe,EACnD,EACAC,mBAAkB,WAAI,WACpB,OAAOpmB,KAAKmmB,YAAYzhB,KAAI,SAAA2hB,GAAM,MAAK,CACrCrgB,IAAKqgB,EACLjc,MAAOic,EACPlhB,MAAO,EAAKyG,GAAG,6BAAD,OAA8Bya,EAAM,OACnD,GACH,EACAC,QAAO,WACL,IAAMhU,EAAOtS,KAAK8C,OAAO+E,QAAQ+I,aAAa2V,gBAExCC,EAAiB,SAATlU,EAAkB,GAAK,CAAC,UAEtC,OAAItS,KAAK8C,OAAO+E,QAAQ+I,aAAa6V,cAAyB,aAATnU,EAC5C,GAAP,OAAWkU,EAAO,WAAW,YAEtB,CAAC,UAAW,WAAS,OAAKA,EAErC,EACAE,6BAA4B,WAAM,OAAO1mB,KAAK8C,OAAOU,MAAMmJ,SAASga,yBAA0B,EAC9FC,sBAAqB,WACnB,OAAO5mB,KAAK8C,OAAOU,MAAMmJ,SAAS4S,aAC/Bvf,KAAK8C,OAAOU,MAAMG,MAAMC,YAAYud,gBACzC,EACA0F,wBAAuB,WAAM,OAAO7mB,KAAK8C,OAAOU,MAAMmJ,SAASma,cAAe,EAC9EpH,SAAU,CACRzT,IAAK,WAAc,OAAOjM,KAAK8C,OAAO+E,QAAQ+I,aAAamW,iBAAkB,EAC7ElW,IAAK,SAAUzJ,GACbpH,KAAK8C,OAAOC,SAAS,YAAa,CAAE+N,KAAM,oBAAqB1G,MAAOhD,GACxE,IAECkK,MAELxR,QAAS,CACPknB,mBAAkB,SAAE5c,GAClBpK,KAAK8C,OAAOC,SAAS,sBAAuB,CAAE+N,KAAM,eAAgB1G,MAAAA,GACtE,ICtGJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,yRLNzD7J,EAAAA,EAAAA,IAwfM,OAxfA4E,MAAOxE,EAAAA,GAAG,qB,EACd/B,EAAAA,EAAAA,GAuMM,MAvMNwG,GAuMM,EAtMJxG,EAAAA,EAAAA,GAAuC,mBAAhC+B,EAAAA,GAAG,uBAAD,IACT/B,EAAAA,EAAAA,GAoMK,KApML0G,GAoMK,EAnMH1G,EAAAA,EAAAA,GAMK,YALHqC,EAAAA,EAAAA,IAIEqjB,EAAAA,CAHC,cAAa3jB,EAAAA,GAAG,8BAChB+e,SAAU/e,EAAAA,SACV,eAAc,SAAAyG,GAAG,OAAIzG,EAAAA,SAAWyG,CAAG,G,oDAG9BzG,EAAAA,+BAA4B,WAAtCJ,EAAAA,EAAAA,IAIK,UAHHU,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,WAAS,C,kBAC5B,iBAA6B,mBAA1BzO,EAAAA,GAAG,sBAAD,G,6BAGCA,EAAAA,wBAAqB,WAA/BJ,EAAAA,EAAAA,IAIK,UAHHU,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,yBAAuB,C,kBAC1C,iBAAmC,mBAAhCzO,EAAAA,GAAG,4BAAD,G,8BAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,YAAU,C,kBAC7B,iBAA8B,mBAA3BzO,EAAAA,GAAG,uBAAD,G,aAGT/B,EAAAA,EAAAA,GAiBK,YAhBHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,aAAW,C,kBAC9B,iBAA8B,mBAA3BzO,EAAAA,GAAG,uBAAD,G,WAEP/B,EAAAA,EAAAA,GAYK,MAXHD,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,0BAAyB,EAAAlC,UACV5H,EAAAA,e,EAErB/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,mBACJ7G,UAAW5H,EAAAA,W,mBAEZ,iBAAuC,mBAApCA,EAAAA,GAAG,gCAAD,G,kCAKb/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,kBACLW,OAAO,K,mBAEP,iBAAoC,mBAAjCpP,EAAAA,GAAG,6BAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,mBACLW,OAAO,K,mBAEP,iBAAsC,mBAAnCpP,EAAAA,GAAG,+BAAD,G,aAGT/B,EAAAA,EAAAA,GASK,YARHqC,EAAAA,EAAAA,IAOgB4R,EAAAA,CANd9O,GAAG,0BACHqL,KAAK,0BACJ0D,QAASnS,EAAAA,+BACVoP,OAAO,K,mBAEP,iBAA+C,mBAA5CpP,EAAAA,GAAG,wCAAD,G,2BAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,qBACLW,OAAO,K,mBAEP,iBAAgD,mBAA7CpP,EAAAA,GAAG,yCAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,0BACLW,OAAO,K,mBAEP,iBAA4C,mBAAzCpP,EAAAA,GAAG,qCAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,6BACLW,OAAO,K,mBAEP,iBAAkD,mBAA/CpP,EAAAA,GAAG,2CAAD,G,YAGCA,EAAAA,0BAAuB,WAAjCJ,EAAAA,EAAAA,IAOK,UANHU,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,eACLW,OAAO,K,mBAEP,iBAAkC,mBAA/BpP,EAAAA,GAAG,2BAAD,G,8BAGT/B,EAAAA,EAAAA,GAEK,YADHA,EAAAA,EAAAA,GAAqC,mBAA9B+B,EAAAA,GAAG,qBAAD,MAEX/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,wBAAsB,C,kBACzC,iBAA2C,mBAAxCzO,EAAAA,GAAG,oCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,kBAAgB,C,kBACnC,iBAAoC,mBAAjCzO,EAAAA,GAAG,6BAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,gBAAc,C,kBACjC,iBAAkC,mBAA/BzO,EAAAA,GAAG,2BAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,uBAAqB,C,kBACxC,iBAA0C,mBAAvCzO,EAAAA,GAAG,mCAAD,G,aAGT/B,EAAAA,EAAAA,GASK,WAPK+B,EAAAA,OAAI,WADZC,EAAAA,EAAAA,IAOgBiS,EAAAA,C,MALd9O,GAAG,kBACHqL,KAAK,kBACJ0D,QAASnS,EAAAA,wB,mBAEV,iBAAsC,mBAAnCA,EAAAA,GAAG,+BAAD,G,2CAGCA,EAAAA,YAAc,IAAH,WAArBJ,EAAAA,EAAAA,IAaK,2BAZAI,EAAAA,GAAG,0BAA2B,IACjC,WAUM,MAVNiF,GAUM,gBATJrF,EAAAA,EAAAA,IAQcuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IAPKnF,EAAAA,SAAO,SAAjBsmB,G,kBADTrmB,EAAAA,EAAAA,IAQcsmB,EAAAA,CANXlhB,IAAKihB,EACL7X,KAAM6X,EAAS,cACfjC,MAAOrkB,EAAAA,gBACRoP,OAAO,K,mBAEP,iBAA2C,mBAAxCpP,EAAAA,GAAG,yBAA2BsmB,IAAM,G,+DAI7CroB,EAAAA,EAAAA,GAiDK,KAjDLiH,GAiDK,EAhDHjH,EAAAA,EAAAA,GAA+D,OAA/DsH,IAA+D,QAAxCvF,EAAAA,GAAG,6BAAD,IACzB/B,EAAAA,EAAAA,GA8CK,KA9CLqY,GA8CK,EA7CHrY,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,iBAAe,C,kBAClC,iBAA2C,mBAAxCzO,EAAAA,GAAG,oCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,mBAAiB,C,kBACpC,iBAA6C,mBAA1CzO,EAAAA,GAAG,sCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,gBAAc,C,kBACjC,iBAA0C,mBAAvCzO,EAAAA,GAAG,mCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,eAAa,C,kBAChC,iBAAyC,mBAAtCzO,EAAAA,GAAG,kCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,iBAAe,C,kBAClC,iBAA2C,mBAAxCzO,EAAAA,GAAG,oCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,iBAAe,C,kBAClC,iBAA2C,mBAAxCzO,EAAAA,GAAG,oCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,wBAAsB,C,kBACzC,iBAAmD,mBAAhDzO,EAAAA,GAAG,4CAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,qBAAmB,C,kBACtC,iBAAgD,mBAA7CzO,EAAAA,GAAG,yCAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,kCAAgC,C,kBACnD,iBAAoD,mBAAjDzO,EAAAA,GAAG,6CAAD,G,qBAOjB/B,EAAAA,EAAAA,GAgNM,MAhNNsY,GAgNM,EA/MJtY,EAAAA,EAAAA,GAA4C,mBAArC+B,EAAAA,GAAG,4BAAD,IACT/B,EAAAA,EAAAA,GA6MK,KA7MLyY,GA6MK,EA5MHzY,EAAAA,EAAAA,GAQK,YAPHqC,EAAAA,EAAAA,IAMgB4R,EAAAA,CALd9O,GAAG,sBACHqL,KAAK,sBACJ0D,QAASnS,EAAAA,4B,mBAEV,iBAAyC,mBAAtCA,EAAAA,GAAG,kCAAD,G,0BAIuB,WAAxBA,EAAAA,sBAAmB,WAD3BJ,EAAAA,EAAAA,IAoCK,KApCL+W,GAoCK,EAhCH1Y,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,4BAA0B,C,kBAC7C,iBAAkC,mBAA/BzO,EAAAA,GAAG,2BAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,gCACJW,OAAQ,G,mBAET,iBAAwC,mBAArCpP,EAAAA,GAAG,iCAAD,G,aAGT/B,EAAAA,EAAAA,GAQK,YAPHqC,EAAAA,EAAAA,IAMiB8R,EAAAA,CALf3D,KAAK,mBACJ0C,IAAK,EACL/B,OAAQ,G,mBAET,iBAAwC,mBAArCpP,EAAAA,GAAG,iCAAD,G,aAGT/B,EAAAA,EAAAA,GASK,YARHqC,EAAAA,EAAAA,IAOgB4R,EAAAA,CANd9O,GAAG,iCACHqL,KAAK,iCACJ0D,QAASnS,EAAAA,sCACToP,OAAQ,G,mBAET,iBAAsD,mBAAnDpP,EAAAA,GAAG,+CAAD,G,8CAIX/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,8BAA4B,C,kBAC/C,iBAAqC,mBAAlCzO,EAAAA,GAAG,8BAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,2BACLW,OAAO,K,mBAEP,iBAAgD,mBAA7CpP,EAAAA,GAAG,yCAAD,G,aAGT/B,EAAAA,EAAAA,GAQK,WANK+B,EAAAA,OAAI,WADZC,EAAAA,EAAAA,IAMiB6Q,EAAAA,C,MAJfrC,KAAK,8BACLW,OAAO,K,mBAEP,iBAA6C,mBAA1CpP,EAAAA,GAAG,sCAAD,G,8BAGT/B,EAAAA,EAAAA,GAAyC,mBAAlC+B,EAAAA,GAAG,yBAAD,IACT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,gBACLW,OAAO,K,mBAEP,iBAAoC,mBAAjCpP,EAAAA,GAAG,6BAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,YAAU,C,kBAC7B,iBAAsC,mBAAnCzO,EAAAA,GAAG,+BAAD,G,aAGT/B,EAAAA,EAAAA,GAmBK,KAnBL6H,GAmBK,EAlBH7H,EAAAA,EAAAA,GAQK,YAPHqC,EAAAA,EAAAA,IAMiBwQ,EAAAA,CALfrC,KAAK,eACLW,OAAO,IACNxH,UAAW5H,EAAAA,U,mBAEZ,iBAAmC,mBAAhCA,EAAAA,GAAG,4BAAD,G,4BAGT/B,EAAAA,EAAAA,GAQK,YAPHqC,EAAAA,EAAAA,IAMiBwQ,EAAAA,CALfrC,KAAK,kBACLW,OAAO,IACNxH,UAAW5H,EAAAA,U,mBAEZ,iBAAuC,mBAApCA,EAAAA,GAAG,gCAAD,G,8BAIX/B,EAAAA,EAAAA,GA2BK,YA1BHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,YACLW,OAAO,K,mBAEP,iBAA+B,mBAA5BpP,EAAAA,GAAG,wBAAD,G,WAEP/B,EAAAA,EAAAA,GAmBK,MAlBHD,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,0BAAyB,EAAAlC,UACV5H,EAAAA,e,EAErB/B,EAAAA,EAAAA,GAcK,YAbHqC,EAAAA,EAAAA,IAMiBwQ,EAAAA,CALfrC,KAAK,sBACLW,OAAO,IACNxH,UAAW5H,EAAAA,YAAcA,EAAAA,qB,mBAE1B,iBAA2C,mBAAxCA,EAAAA,GAAG,oCAAD,G,yBAGEA,EAAAA,qBAGuB,iBAHJ,WAD5BJ,EAAAA,EAAAA,IAKM,MALN4mB,GAKM,EADJlmB,EAAAA,EAAAA,IAAuBJ,EAAAA,CAAfE,KAAK,WAAO,QAAG,MAAE,QAAGJ,EAAAA,GAAG,kCAAD,eAKtC/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,oBACLW,OAAO,K,mBAEP,iBAAyC,mBAAtCpP,EAAAA,GAAG,kCAAD,G,aAGT/B,EAAAA,EAAAA,GAA2C,mBAApC+B,EAAAA,GAAG,2BAAD,IACT/B,EAAAA,EAAAA,GAQK,YAPHqC,EAAAA,EAAAA,IAMgB4R,EAAAA,CALd9O,GAAG,qBACHqL,KAAK,qBACJ0D,QAASnS,EAAAA,2B,mBAEV,iBAAyC,mBAAtCA,EAAAA,GAAG,kCAAD,G,2BAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,yBACLW,OAAO,K,mBAEP,iBAA6C,mBAA1CpP,EAAAA,GAAG,sCAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,YACLW,OAAO,K,mBAEP,iBAAgC,mBAA7BpP,EAAAA,GAAG,yBAAD,G,aAGT/B,EAAAA,EAAAA,GAIK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,yBAAuB,C,kBAC1C,iBAA6C,mBAA1CzO,EAAAA,GAAG,sCAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,wBACLW,OAAO,K,mBAEP,iBAA6C,mBAA1CpP,EAAAA,GAAG,sCAAD,G,YAGCA,EAAAA,OAAI,WAAdJ,EAAAA,EAAAA,IAOK,UANHU,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,uBACLW,OAAO,K,mBAEP,iBAA4C,mBAAzCpP,EAAAA,GAAG,qCAAD,G,6BAGCA,EAAAA,YAAc,IAAH,WAArBJ,EAAAA,EAAAA,IAEK,iBADAI,EAAAA,GAAG,iBAAD,qBAEP/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,YACLW,OAAO,K,mBAEP,iBAA8B,mBAA3BpP,EAAAA,GAAG,uBAAD,G,YAGCA,EAAAA,OAAI,WAAdJ,EAAAA,EAAAA,IAOK,UANHU,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,sBACLW,OAAO,K,mBAEP,iBAA8B,mBAA3BpP,EAAAA,GAAG,uBAAD,G,iCAOLA,EAAAA,OAAI,WADZJ,EAAAA,EAAAA,IA4FM,MA5FNqkB,GA4FM,EAxFJhmB,EAAAA,EAAAA,GAAuC,mBAAhC+B,EAAAA,GAAG,uBAAD,IACT/B,EAAAA,EAAAA,GAsFK,KAtFLwc,GAsFK,EArFHxc,EAAAA,EAAAA,GAWK,YAVHA,EAAAA,EAAAA,GASQ,QATRyc,GASQ,mBARH1a,EAAAA,GAAG,yBAA0B,IAAC,YAA2C4P,EAAAA,CAArB,eAAa,KACpEtP,EAAAA,EAAAA,IAMEmmB,EAAAA,CALAzoB,MAAM,iBACL,YAAU,EACV,eAAcgC,EAAAA,wBACd,gBAAeA,EAAAA,wBACf,kBAAiBA,EAAAA,oB,gEAIxB/B,EAAAA,EAAAA,GAKK,YAHHqC,EAAAA,EAAAA,IAEiBwQ,EAAAA,CAFDrC,KAAK,sBAAoB,C,kBACvC,iBAAyC,mBAAtCzO,EAAAA,GAAG,kCAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,YACLW,OAAO,K,mBAEP,iBAA+B,mBAA5BpP,EAAAA,GAAG,wBAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,yBACLW,OAAO,K,mBAEP,iBAA8C,mBAA3CpP,EAAAA,GAAG,uCAAD,G,aAGT/B,EAAAA,EAAAA,GASK,YARHqC,EAAAA,EAAAA,IAOgB4R,EAAAA,CANd9O,GAAG,sBACHqL,KAAK,sBACJ0D,QAASnS,EAAAA,mBACVoP,OAAO,K,mBAEP,iBAA0C,mBAAvCpP,EAAAA,GAAG,mCAAD,G,0BAGCA,EAAAA,YAAY8G,OAAS,IAAH,WAA5BlH,EAAAA,EAAAA,IAQK,UAPHU,EAAAA,EAAAA,IAMgB4R,EAAAA,CALd9O,GAAG,kBACHqL,KAAK,kBACJ0D,QAASnS,EAAAA,oB,mBAEV,iBAA6C,mBAA1CA,EAAAA,GAAG,sCAAD,G,4CAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,oBACLW,OAAO,K,mBAEP,iBAAwC,mBAArCpP,EAAAA,GAAG,iCAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,0BACLW,OAAO,K,mBAEP,iBAA4C,mBAAzCpP,EAAAA,GAAG,qCAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,6BACLW,OAAO,K,mBAEP,iBAAkD,mBAA/CpP,EAAAA,GAAG,2CAAD,G,aAGT/B,EAAAA,EAAAA,GAOK,YANHqC,EAAAA,EAAAA,IAKiBwQ,EAAAA,CAJfrC,KAAK,WACLW,OAAO,K,mBAEP,iBAA8B,mBAA3BpP,EAAAA,GAAG,uBAAD,G,iEMlfRhC,MAAM,gB,IACLA,MAAM,gB,IAGFA,MAAM,e,gBAWNA,MAAM,e,YCMpB,SAlBmB,CACjBc,KAAI,WACF,IAAMkN,EAAW3M,KAAK8C,OAAOU,MAAMmJ,SACnC,MAAO,CACL0a,eAAgB1a,EAAS0a,eACzBC,gBAAiB3a,EAAS2a,gBAE9B,EACAjkB,SAAU,CACRkkB,oBAAmB,WACjB,MAbqB,wDAaOvnB,KAAKsnB,eACnC,EACAE,mBAAkB,WAChB,MAfqB,uDCAnBC,EDewCznB,KAAKqnB,eCfrBK,MADhB,aAEGD,EAAQ,GAAK,IAHH,IAErBA,CDgBJ,IEZJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,wCHJzDlnB,EAAAA,EAAAA,IA2BM,OA3BA4E,MAAOxE,EAAAA,GAAG,2B,EACd/B,EAAAA,EAAAA,GAyBM,MAzBNwG,GAyBM,EAxBJxG,EAAAA,EAAAA,GAuBK,KAvBL0G,GAuBK,EAtBH1G,EAAAA,EAAAA,GAUK,YATHA,EAAAA,EAAAA,GAAmD,kBAA7C+B,EAAAA,GAAG,qCAAD,IACR/B,EAAAA,EAAAA,GAOK,KAPL4G,GAOK,EANH5G,EAAAA,EAAAA,GAKK,YAJHA,EAAAA,EAAAA,GAGyB,KAFtByH,KAAM1F,EAAAA,mBACPyF,OAAO,W,QACLzF,EAAAA,gBAAc,aAIxB/B,EAAAA,EAAAA,GAUK,YATHA,EAAAA,EAAAA,GAAoD,kBAA9C+B,EAAAA,GAAG,sCAAD,IACR/B,EAAAA,EAAAA,GAOK,KAPL8G,GAOK,EANH9G,EAAAA,EAAAA,GAKK,YAJHA,EAAAA,EAAAA,GAG0B,KAFvByH,KAAM1F,EAAAA,oBACPyF,OAAO,W,QACLzF,EAAAA,iBAAe,sB,aIrB1BhC,MAAM,a,IACJA,MAAM,qB,IACJA,MAAM,a,UAGPA,MAAM,iB,IAEDA,MAAM,iB,IAGNA,MAAM,W,IAuCRA,MAAM,O,IACJA,MAAM,W,IAGPsT,IAAI,kBACJtT,MAAM,U,iBAqBLA,MAAM,iB,IAgBVA,MAAM,qB,IACHA,MAAM,e,IAKNA,MAAM,e,IAKNA,MAAM,e,IAKNA,MAAM,e,IAKNA,MAAM,e,iBAiBLA,MAAM,c,IAEJA,MAAM,sB,IAiBRA,MAAM,c,IAiCNA,MAAM,c,IAqBNA,MAAM,c,IAcNA,MAAM,c,iBAqBNA,MAAM,c,IAeNA,MAAM,c,IAuENA,MAAM,c,IAmBNA,MAAM,c,IAmCNA,MAAM,c,IAuBNA,MAAM,c,IAsBNA,MAAM,c,IAqHNA,MAAM,c,IAuBNA,MAAM,c,IAeNA,MAAM,c,IA0BNA,MAAM,c,IAeNA,MAAM,c,IASNA,MAAM,c,IAeNA,MAAM,c,IASNA,MAAM,c,IAuBNA,MAAM,c,IA6BNA,MAAM,c,IAuBNA,MAAM,c,IAuBNA,MAAM,c,iBAiENA,MAAM,c,iBAuFNA,MAAM,8B,IACJA,MAAM,oB,iBAiBNA,MAAM,Y,IAEPsT,IAAI,WACJtT,MAAM,S,IAYRC,EAAAA,EAAAA,GAGE,SAFAD,MAAM,iBACNsT,IAAI,Y,wBAqBNrT,EAAAA,EAAAA,GAAkC,YAA5B,yBAAqB,G,IAQ3BA,EAAAA,EAAAA,GAAwB,YAAlB,eAAW,G,IACjBA,EAAAA,EAAAA,GAA0B,YAApB,iBAAa,G,IACnBA,EAAAA,EAAAA,GAAkB,YAAZ,SAAK,G,IAOXA,EAAAA,EAAAA,GAAuB,YAAjB,cAAU,G,iBAUfD,MAAM,c,IA0CVA,MAAM,mB,2FCj/BRA,MAAM,2B,oEAoBPA,MAAM,wBAad,UACEsE,WAAY,CACVG,SAAAA,EAAAA,GAEFpE,MAAO,CAEL8R,KAAM,CACJ1R,UAAU,EACVF,KAAMI,QAGR6F,MAAO,CACL/F,UAAU,EACVF,KAAMI,QAIRqoB,WAAY,CACVvoB,UAAU,EACVF,KAAMI,OACN8B,aAASqO,GAGXmY,SAAU,CACRxoB,UAAU,EACVF,KAAMI,OACN8B,aAASqO,GAGXlH,SAAU,CACRnJ,UAAU,EACVF,KAAM2S,QACNzQ,SAAS,GAGXymB,oBAAqB,CACnBzoB,UAAU,EACVF,KAAM2S,QACNzQ,SAAS,IAGb0mB,MAAO,CAAC,qBACRzkB,SAAU,CACR0kB,QAAM,WACJ,YAAkC,IAApB/nB,KAAK2nB,UACrB,EACAK,WAAS,WACP,OAAOC,EAAAA,GAAAA,IAAQjoB,KAAK2nB,YAAc3nB,KAAK4nB,SACzC,EACAM,iBAAe,WACb,MAA2B,gBAApBloB,KAAK2nB,UACd,EACAQ,cAAY,WACV,OAAOnoB,KAAK2nB,YAAc3nB,KAAK2nB,WAAW/X,WAAW,KACvD,IC/FJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,mEDPzDrP,EAAAA,EAAAA,IA6CM,OA5CJ5B,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,4BAA2B,CAAAlC,UACZ6f,EAAAA,SAAW7c,EAAAA,a,EAEhC3M,EAAAA,EAAAA,GAKQ,SAJLqT,IAAK1G,EAAAA,KACN5M,MAAM,U,QAEH4M,EAAAA,OAAK,WAGkB,IAAbA,EAAAA,UAA4BA,EAAAA,sBAAmB,WAD9D3K,EAAAA,EAAAA,IAME0J,EAAAA,C,MAJC,cAAa8d,EAAAA,QACb7f,SAAUgD,EAAAA,SACX5M,MAAM,MACL,sBAAiB,+BAAEgC,EAAAA,MAAM,yBAA2C,IAAf4K,EAAAA,WAA6BA,EAAAA,cAAWkE,EAAS,I,qDAEzG7Q,EAAAA,EAAAA,GA2BM,MA3BNwG,GA2BM,EA1BJxG,EAAAA,EAAAA,GAOC,SANEmF,GAAIwH,EAAAA,KAAO,KACZ5M,MAAM,qBACNO,KAAK,OACJkL,MAAOmB,EAAAA,YAAcA,EAAAA,SACrBhD,UAAW6f,EAAAA,SAAW7c,EAAAA,SACtB8c,QAAK,+BAAE1nB,EAAAA,MAAM,oBAAqB+jB,EAAOte,OAAOgE,MAAK,I,YAGhDge,EAAAA,aAAU,WADlB7nB,EAAAA,EAAAA,IAQC,S,MANEwD,GAAIwH,EAAAA,KACL5M,MAAM,uBACNO,KAAK,QACJkL,MAAOmB,EAAAA,YAAcA,EAAAA,SACrBhD,UAAW6f,EAAAA,SAAW7c,EAAAA,SACtB8c,QAAK,+BAAE1nB,EAAAA,MAAM,oBAAqB+jB,EAAOte,OAAOgE,MAAK,I,6BAGhDge,EAAAA,mBAAgB,WADxB7nB,EAAAA,EAAAA,IAGE,MAHFkF,MAGE,eAEM2iB,EAAAA,gBAAa,WADrB7nB,EAAAA,EAAAA,IAIE,O,MAFA5B,MAAM,oBACLoD,OAAK,SAAAumB,gBAAoB/c,EAAAA,Y,iLEOlC,UACEvM,MAAO,CACL,OAAQ,aAAc,WAAY,WAAY,QAAS,MAAO,MAAO,OAAQ,UAAW,WAE1F8oB,MAAO,CAAC,qBACRzkB,SAAU,CACR0kB,QAAM,WACJ,YAAkC,IAApB/nB,KAAK2nB,UACrB,ICnDJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,wCDJzDpnB,EAAAA,EAAAA,IA6CM,OA5CJ5B,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,8BAA6B,CAAAlC,UACd6f,EAAAA,SAAW7c,EAAAA,a,EAEhC3M,EAAAA,EAAAA,GAKQ,SAJLqT,IAAK1G,EAAAA,KACN5M,MAAM,U,QAEH4M,EAAAA,OAAK,WAGkB,IAAbA,EAAAA,WAAQ,WADvBhL,EAAAA,EAAAA,IAOC,S,MALEwD,GAAIwH,EAAAA,KAAO,KACZ5M,MAAM,MACNO,KAAK,WACJ8K,QAASoe,EAAAA,QACT1nB,SAAM,+BAAEC,EAAAA,MAAM,oBAAsBynB,EAAAA,aAAqB3Y,EAAXlE,EAAAA,SAAoB,I,kCAGzC,IAAbA,EAAAA,WAAQ,WADvBhL,EAAAA,EAAAA,IAIE,S,MAFA5B,MAAM,QACLsT,IAAK1G,EAAAA,KAAO,M,6BAEf3M,EAAAA,EAAAA,GAUC,SATEmF,GAAIwH,EAAAA,KACL5M,MAAM,eACNO,KAAK,QACJkL,MAAOmB,EAAAA,YAAcA,EAAAA,SACrBhD,UAAW6f,EAAAA,SAAW7c,EAAAA,SACtBgd,IAAKhd,EAAAA,KAAOA,EAAAA,SAAW,IACvBuG,IAAKvG,EAAAA,KAAOA,EAAAA,SAAW,EACvB2G,KAAM3G,EAAAA,MAAQ,EACd8c,QAAK,+BAAE1nB,EAAAA,MAAM,oBAAqB+jB,EAAOte,OAAOgE,MAAK,I,aAExDxL,EAAAA,EAAAA,GAUC,SATEmF,GAAIwH,EAAAA,KACL5M,MAAM,eACNO,KAAK,SACJkL,MAAOmB,EAAAA,YAAcA,EAAAA,SACrBhD,UAAW6f,EAAAA,SAAW7c,EAAAA,SACtBgd,IAAKhd,EAAAA,QACLuG,IAAKvG,EAAAA,QACL2G,KAAM3G,EAAAA,MAAQ,EACd8c,QAAK,+BAAE1nB,EAAAA,MAAM,oBAAqB+jB,EAAOte,OAAOgE,MAAK,I,gEEV5D,UACEnH,WAAY,CACVG,SAAAA,EAAAA,GAEFpE,MAAO,CACL,OAAQ,aAAc,WAAY,YAEpC8oB,MAAO,CAAC,qBACRzkB,SAAU,CACR0kB,QAAM,WACJ,YAAkC,IAApB/nB,KAAK2nB,UACrB,ICtCJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,mEDJzDpnB,EAAAA,EAAAA,IA4BM,OA3BJ5B,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,gCAA+B,CAAAlC,UAChB6f,EAAAA,SAAW7c,EAAAA,a,EAEhC3M,EAAAA,EAAAA,GAKQ,SAJLqT,IAAK1G,EAAAA,KACN5M,MAAM,U,QAEHgC,EAAAA,GAAG,kCAAD,WAGqB,IAAb4K,EAAAA,WAAQ,WADvB3K,EAAAA,EAAAA,IAME0J,EAAAA,C,MAJC,cAAa8d,EAAAA,QACb7f,SAAUgD,EAAAA,SACX5M,MAAM,MACL,sBAAiB,+BAAEgC,EAAAA,MAAM,oBAAsBynB,EAAAA,aAAqB3Y,EAAXlE,EAAAA,SAAoB,I,qDAEhF3M,EAAAA,EAAAA,GAUC,SATEmF,GAAIwH,EAAAA,KACL5M,MAAM,eACNO,KAAK,SACJkL,MAAOmB,EAAAA,YAAcA,EAAAA,SACrBhD,UAAW6f,EAAAA,SAAW7c,EAAAA,SACvBgd,IAAI,IACJzW,IAAI,IACJI,KAAK,MACJmW,QAAK,+BAAE1nB,EAAAA,MAAM,oBAAqB+jB,EAAOte,OAAOgE,MAAK,I,4BEtBnDzL,MAAM,4B,oCAWFA,MAAM,Q,oBAWRA,MAAM,kB,oCAgBJA,MAAM,Q,oBAaVA,MAAM,gB,iHAiELsT,IAAI,QACJtT,MAAM,S,oBAYRC,EAAAA,EAAAA,GAGE,SAFAD,MAAM,iBACNsT,IAAI,S,6BAQJA,IAAI,SACJtT,MAAM,S,oDA2BNsT,IAAI,SACJtT,MAAM,S,oCAsCRC,EAAAA,EAAAA,GAA2B,YAArB,kBAAc,G,ykBCtM5BC,EAAAA,GAAAA,IACE2pB,EAAAA,IACAC,EAAAA,IACA1pB,EAAAA,IACA+e,EAAAA,KAGF,IAAM4K,GAAU,WAAH,IAAIC,EAAS,UAAH,6CAAG,CAAC,EAAC,WAC1BC,EAAG,EACHC,EAAG,EACHC,KAAM,EACNC,OAAQ,EACRC,OAAO,EACPC,MAAO,UACPC,MAAO,GACJP,EAAM,EAGX,UAKE3pB,MAAO,CACL,aAAc,WAAY,SAE5B8oB,MAAO,CAAC,qBACRroB,KAAI,WACF,MAAO,CACL0pB,WAAY,EAEZC,QAASppB,KAAK2nB,YAAc3nB,KAAK4nB,UAAY,IAAIljB,IAAIgkB,IAEzD,EACAzlB,WAAY,CACVomB,WAAAA,GACAC,aAAAA,GACA5X,OAAAA,GAAAA,GAEF5R,QAAS,CACPypB,IAAG,WACDvpB,KAAKopB,OAAOnf,KAAKye,GAAQ1oB,KAAKuJ,WAC9BvJ,KAAKmpB,WAAanpB,KAAKopB,OAAO3hB,OAAS,CACzC,EACA+hB,IAAG,WACDxpB,KAAKopB,OAAOlf,OAAOlK,KAAKmpB,WAAY,GACpCnpB,KAAKmpB,WAAoC,IAAvBnpB,KAAKopB,OAAO3hB,YAAegI,EAAYga,KAAKlB,IAAIvoB,KAAKmpB,WAAa,EAAG,EACzF,EACAO,OAAM,WACJ,IAAM9N,EAAU5b,KAAKopB,OAAOlf,OAAOlK,KAAKmpB,WAAY,GAAG,GACvDnpB,KAAKopB,OAAOlf,OAAOlK,KAAKmpB,WAAa,EAAG,EAAGvN,GAC3C5b,KAAKmpB,YAAc,CACrB,EACAQ,OAAM,WACJ,IAAM/N,EAAU5b,KAAKopB,OAAOlf,OAAOlK,KAAKmpB,WAAY,GAAG,GACvDnpB,KAAKopB,OAAOlf,OAAOlK,KAAKmpB,WAAa,EAAG,EAAGvN,GAC3C5b,KAAKmpB,YAAc,CACrB,GAEFS,aAAY,WACV5pB,KAAKopB,OAASppB,KAAK2nB,YAAc3nB,KAAK4nB,QACxC,EACAvkB,SAAU,CACRwmB,WAAU,WACR,OAAO7pB,KAAKopB,OAAO3hB,OAAS,CAC9B,EACAqiB,mBAAkB,WAChB,OAAO9pB,KAAK4nB,SAASngB,OAAS,CAChC,EACA8B,SAAQ,WACN,OAAIvJ,KAAKoT,OAASpT,KAAK6pB,WACd7pB,KAAKopB,OAAOppB,KAAKmpB,YAEjBT,GAAQ,CAAC,EAEpB,EACAqB,gBAAe,WACb,OAAI/pB,KAAKoT,OAASpT,KAAK8pB,mBACd9pB,KAAK4nB,SAAS5nB,KAAKmpB,YAEnBT,GAAQ,CAAC,EAEpB,EACAsB,YAAW,WACT,OAAOhqB,KAAKoT,OAASpT,KAAKmpB,WAAa,CACzC,EACAc,YAAW,WACT,OAAOjqB,KAAKoT,OAASpT,KAAKmpB,WAAanpB,KAAKopB,OAAO3hB,OAAS,CAC9D,EACAsgB,QAAO,WACL,OAAO/nB,KAAKoT,YAC8B,IAAjCpT,KAAKopB,OAAOppB,KAAKmpB,cACvBnpB,KAAKkqB,aACV,EACAA,cAAa,WACX,YAAkC,IAApBlqB,KAAK2nB,UACrB,EACAwC,IAAG,WACD,OAAOlC,EAAAA,GAAAA,IAAQjoB,KAAKuJ,SAAS0f,MAC/B,EACAlnB,MAAK,WACH,OAAO/B,KAAKoT,MACR,CACEgX,WAAWC,EAAAA,GAAAA,IAAarqB,KAAK4nB,WAE/B,CAAC,CACP,IC9GJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,+JFNzDrnB,EAAAA,EAAAA,IAqNM,OApNJ5B,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,iBAAgB,CAAAlC,UACD5H,EAAAA,Y,EAErB/B,EAAAA,EAAAA,GAiDM,MAjDN4B,GAiDM,EAhDJ5B,EAAAA,EAAAA,GAoBM,OAnBH2J,UAAW5H,EAAAA,QACZhC,MAAM,mB,WAENC,EAAAA,EAAAA,GAKC,S,qDAJU+B,EAAAA,SAASkoB,EAAC,IAClBtgB,UAAW5H,EAAAA,QACZhC,MAAM,eACNO,KAAK,U,mBAHIyB,EAAAA,SAASkoB,MAKpBjqB,EAAAA,EAAAA,GASM,MATN4G,GASM,WARJ5G,EAAAA,EAAAA,GAOC,S,qDANU+B,EAAAA,SAASkoB,EAAC,IAClBtgB,UAAW5H,EAAAA,QACZhC,MAAM,cACNO,KAAK,QACLqpB,IAAI,KACJzW,IAAI,O,mBALKnR,EAAAA,SAASkoB,QAAC,OASzBjqB,EAAAA,EAAAA,GAKM,MALN8G,GAKM,EAJJ9G,EAAAA,EAAAA,GAGE,OAFAD,MAAM,gBACLoD,OAAK,QAAEpB,EAAAA,Q,WAGZ/B,EAAAA,EAAAA,GAoBM,OAnBH2J,UAAW5H,EAAAA,QACZhC,MAAM,mB,WAENC,EAAAA,EAAAA,GAKC,S,qDAJU+B,EAAAA,SAASioB,EAAC,IAClBrgB,UAAW5H,EAAAA,QACZhC,MAAM,eACNO,KAAK,U,mBAHIyB,EAAAA,SAASioB,MAKpBhqB,EAAAA,EAAAA,GASM,MATNiH,GASM,WARJjH,EAAAA,EAAAA,GAOC,S,qDANU+B,EAAAA,SAASioB,EAAC,IAClBrgB,UAAW5H,EAAAA,QACZhC,MAAM,cACNO,KAAK,QACLqpB,IAAI,KACJzW,IAAI,O,mBALKnR,EAAAA,SAASioB,QAAC,SAW3BhqB,EAAAA,EAAAA,GA6JM,MA7JNqY,GA6JM,EA5JJrY,EAAAA,EAAAA,GA0DM,OAzDH2J,SAAU5H,EAAAA,cACXhC,MAAM,4B,EAENsC,EAAAA,EAAAA,IAaS0Q,EAAAA,CAZP5N,GAAG,kB,WACMpD,EAAAA,W,qDAAAA,EAAAA,WAAU,IACnBhC,MAAM,kBACL4J,UAAW5H,EAAAA,OAASA,EAAAA,e,mBAGnB,iBAAiC,gBADnCJ,EAAAA,EAAAA,IAMSuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IALmBnF,EAAAA,QAAM,SAAxB2pB,EAAQnI,G,kBADlB5hB,EAAAA,EAAAA,IAMS,UAJNyF,IAAKmc,EACL/X,MAAO+X,I,QAELxhB,EAAAA,GAAG,mCAAoC,CAArCyJ,MAA8C+X,KAAK,K,iDAG5DvjB,EAAAA,EAAAA,GASS,UARPD,MAAM,qBACL4J,UAAW5H,EAAAA,QAAUA,EAAAA,QACrBK,QAAK,8BAAEL,EAAAA,KAAAA,EAAAA,IAAAA,MAAAA,EAAAA,UAAG,I,EAEXM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFA,iBACAE,KAAK,W,OAGTnC,EAAAA,EAAAA,GASS,UARPD,MAAM,qBACL4J,UAAW5H,EAAAA,YACXK,QAAK,8BAAEL,EAAAA,QAAAA,EAAAA,OAAAA,MAAAA,EAAAA,UAAM,I,EAEdM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFA,iBACAE,KAAK,gB,OAGTnC,EAAAA,EAAAA,GASS,UARPD,MAAM,qBACL4J,UAAW5H,EAAAA,YACXK,QAAK,8BAAEL,EAAAA,QAAAA,EAAAA,OAAAA,MAAAA,EAAAA,UAAM,I,EAEdM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFA,iBACAE,KAAK,kB,OAGTnC,EAAAA,EAAAA,GASS,UARPD,MAAM,qBACL4J,SAAU5H,EAAAA,cACVK,QAAK,8BAAEL,EAAAA,KAAAA,EAAAA,IAAAA,MAAAA,EAAAA,UAAG,I,EAEXM,EAAAA,EAAAA,IAGEJ,EAAAA,CAFA,iBACAE,KAAK,U,cAIXnC,EAAAA,EAAAA,GAsBM,OArBH2J,UAAW5H,EAAAA,QACZhC,MAAM,+B,EAENC,EAAAA,EAAAA,GAKQ,QALR+lB,IAKQ,QADHhkB,EAAAA,GAAG,iCAAD,aAEP/B,EAAAA,EAAAA,GAOC,SANCmF,GAAG,Q,qDACMpD,EAAAA,SAASqoB,MAAK,IACtBzgB,UAAW5H,EAAAA,QACZmQ,KAAK,QACLnS,MAAM,cACNO,KAAK,Y,mBAJIyB,EAAAA,SAASqoB,SAMpB5N,IAGE,OAEJxc,EAAAA,EAAAA,GA2BM,OA1BH2J,UAAW5H,EAAAA,QACZhC,MAAM,8B,EAENC,EAAAA,EAAAA,GAKQ,QALR2rB,IAKQ,QADH5pB,EAAAA,GAAG,gCAAD,aAEP/B,EAAAA,EAAAA,GASC,SARCmF,GAAG,O,uDACMpD,EAAAA,SAASmoB,KAAI,IACrBvgB,UAAW5H,EAAAA,QACZmQ,KAAK,OACLnS,MAAM,cACNO,KAAK,QACLqpB,IAAI,KACJzW,IAAI,K,mBANKnR,EAAAA,SAASmoB,SAAI,SAQxBlqB,EAAAA,EAAAA,GAMC,S,uDALU+B,EAAAA,SAASmoB,KAAI,IACrBvgB,UAAW5H,EAAAA,QACZhC,MAAM,eACNO,KAAK,SACL4S,IAAI,K,mBAJKnR,EAAAA,SAASmoB,SAAI,OAO1BlqB,EAAAA,EAAAA,GA0BM,OAzBH2J,UAAW5H,EAAAA,QACZhC,MAAM,gC,EAENC,EAAAA,EAAAA,GAKQ,QALR4rB,IAKQ,QADH7pB,EAAAA,GAAG,kCAAD,aAEP/B,EAAAA,EAAAA,GASC,SARCmF,GAAG,S,uDACMpD,EAAAA,SAASooB,OAAM,IACvBxgB,UAAW5H,EAAAA,QACZmQ,KAAK,SACLnS,MAAM,cACNO,KAAK,QACLqpB,IAAI,KACJzW,IAAI,O,mBANKnR,EAAAA,SAASooB,WAAM,SAQ1BnqB,EAAAA,EAAAA,GAKC,S,uDAJU+B,EAAAA,SAASooB,OAAM,IACvBxgB,UAAW5H,EAAAA,QACZhC,MAAM,eACNO,KAAK,U,mBAHIyB,EAAAA,SAASooB,WAAM,OAM5B9nB,EAAAA,EAAAA,IAOEwpB,EAAAA,C,WANS9pB,EAAAA,SAASsoB,M,uDAATtoB,EAAAA,SAASsoB,MAAK,IACtB1gB,UAAW5H,EAAAA,QACXwE,MAAOxE,EAAAA,GAAG,+BACVinB,SAAUjnB,EAAAA,gBAAgBsoB,MAC1B,yBAAuB,EACxBnY,KAAK,U,sDAEP7P,EAAAA,EAAAA,IAGEypB,EAAAA,C,WAFS/pB,EAAAA,SAASuoB,M,uDAATvoB,EAAAA,SAASuoB,MAAK,IACtB3gB,UAAW5H,EAAAA,S,mCAEdM,EAAAA,EAAAA,IAMS0pB,EAAAA,CALPC,MAAM,SACNC,QAAQ,gCACR3P,IAAI,K,mBAEJ,iBAA2B,CAA3B4P,G,yFGhNR,UACE7nB,WAAY,CACVyO,OAAAA,GAAAA,GAEF1S,MAAO,CACL,OAAQ,QAAS,aAAc,WAAY,UAAW,cAExD8oB,MAAO,CAAC,qBACRroB,KAAI,WACF,MAAO,CACLsrB,OAAQ/qB,KAAK2nB,WACbqD,iBAAkB,CAChBhrB,KAAKirB,UAAY,GAAK,UACtB,UAAQ,gBACJjrB,KAAK8S,SAAW,IAAE,CACtB,QACA,YACA,eACAlM,QAAO,SAAAyd,GAAC,OAAIA,CAAC,IAEnB,EACAuF,aAAY,WACV5pB,KAAK+qB,OAAS/qB,KAAK2nB,UACrB,EACAtkB,SAAU,CACR0kB,QAAO,WACL,YAA8B,IAAhB/nB,KAAK+qB,MACrB,EACAG,OAAM,WACJ,OAAOlrB,KAAK+qB,QAAU/qB,KAAK4nB,UAAY,CAAC,CAC1C,EACAuD,OAAQ,CACNlf,IAAG,WACD,OAAOjM,KAAKkrB,OAAOC,MACrB,EACAta,IAAG,SAAE1F,GACH,KAAInL,KAAK+qB,OAAQ,SAAU5f,GAC3BnL,KAAKwT,MAAM,oBAAqBxT,KAAK+qB,OACvC,GAEFK,SAAQ,WACN,MAAuB,WAAhBprB,KAAKqrB,MACd,EACAA,OAAQ,CACNpf,IAAG,WACD,MAAoB,UAAhBjM,KAAKmrB,QACW,eAAhBnrB,KAAKmrB,QACW,cAAhBnrB,KAAKmrB,QACW,YAAhBnrB,KAAKmrB,OACAnrB,KAAKmrB,OAEL,QAEX,EACAta,IAAG,SAAE1F,GACHnL,KAAKmrB,OAAe,WAANhgB,EAAiB,GAAKA,CACtC,KClDN,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,iECNzD5K,EAAAA,EAAAA,IA6CM,OA5CJ5B,OAAK8L,EAAAA,EAAAA,IAAAA,CAAC,6BAA4B,CAAA6gB,OAChB3qB,EAAAA,a,EAElB/B,EAAAA,EAAAA,GAKQ,SAJLqT,IAAgB,WAAXtR,EAAAA,OAAsBA,EAAAA,KAAOA,EAAAA,KAAO,iBAC1ChC,MAAM,U,QAEHgC,EAAAA,OAAK,WAGkB,IAAbA,EAAAA,WAAQ,WADvBJ,EAAAA,EAAAA,IAOC,S,MALEwD,GAAIpD,EAAAA,KAAO,KACZhC,MAAM,uBACNO,KAAK,WACJ8K,QAASrJ,EAAAA,QACTD,SAAM,+BAAEC,EAAAA,MAAM,yBAA2C,IAAfA,EAAAA,WAA6BA,EAAAA,cAAW8O,EAAS,I,kCAGlE,IAAb9O,EAAAA,WAAQ,WADvBJ,EAAAA,EAAAA,IAIE,S,MAFA5B,MAAM,QACLsT,IAAKtR,EAAAA,KAAO,M,qCACb,KACF,QAAG,KAAM,MACT,QAaSgR,EAAAA,CAZN5N,GAAIpD,EAAAA,KAAO,iB,WACHA,EAAAA,O,qDAAAA,EAAAA,OAAM,IACd4H,UAAW5H,EAAAA,QACZhC,MAAM,iB,mBAGJ,iBAAkC,gBADpC4B,EAAAA,EAAAA,IAMSuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IALUnF,EAAAA,kBAAgB,SAA1BiR,G,kBADTrR,EAAAA,EAAAA,IAMS,UAJNyF,IAAK4L,EACLxH,MAAOwH,I,QAEM,WAAXA,EAAsBjR,EAAAA,GAAG,+BAAiCiR,GAAM,K,qDAI/DjR,EAAAA,UAAQ,qBADhBJ,EAAAA,EAAAA,IAMC,S,MAJEwD,GAAIpD,EAAAA,K,qDACIA,EAAAA,OAAM,IACfhC,MAAM,cACNO,KAAK,Q,oBAFIyB,EAAAA,WAAM,kB,mBCvCjBhC,MAAM,kB,4FA0CVE,EAAAA,GAAAA,IACE0sB,EAAAA,IACAC,EAAAA,IACAC,EAAAA,KAGF,UACEzsB,MAAO,CACL0sB,MAAO,CACLtsB,UAAU,EACVF,KAAM2S,QACNzQ,SAAS,GAIXuqB,SAAU,CACRvsB,UAAU,EACVF,KAAM8L,OACN5J,QAAS,iBAAO,CAAC,CAAC,IAGtBiC,SAAU,CACRuoB,KAAG,WACD,IAAMC,EAAW7rB,KAAK2rB,SAASG,IAAM,MAAS9rB,KAAK2rB,SAASI,GAAK,KAAO,MAClE/I,EAAQhjB,KAAK4L,GAAG,wCAAD,OAAyCigB,IACxDG,EAAUhsB,KAAK4L,GAAG,+CAClBqgB,EAAQjsB,KAAK2rB,SAASO,KAC5B,OAAOlsB,KAAK4L,GAAG,sCAAuC,CAAEoX,MAAAA,EAAOgJ,QAAAA,EAASC,MAAAA,GAC1E,EACAE,UAAQ,WACN,IAAMN,EAAW7rB,KAAK2rB,SAASS,KAAO,MAASpsB,KAAK2rB,SAASU,IAAM,KAAO,MACpErJ,EAAQhjB,KAAK4L,GAAG,wCAAD,OAAyCigB,IACxDG,EAAUhsB,KAAK4L,GAAG,+CAClBqgB,EAAQjsB,KAAK2rB,SAASO,KAC5B,OAAOlsB,KAAK4L,GAAG,sCAAuC,CAAEoX,MAAAA,EAAOgJ,QAAAA,EAASC,MAAAA,GAC1E,ICvEJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,sDDLjD1gB,EAAAA,WAAQ,WADhBhL,EAAAA,EAAAA,IAiCO,OAjCPC,GAiCO,EA7BL5B,EAAAA,EAAAA,GAaO,QAZJ8H,MAAO0hB,EAAAA,KACRzpB,MAAM,U,CAEM4M,EAAAA,SAASugB,MAAG,WAAxBvrB,EAAAA,EAAAA,IAEO,YADLU,EAAAA,EAAAA,IAA2BJ,EAAAA,CAAnBE,KAAK,kBAAW,gBAEbwK,EAAAA,SAASugB,KAAOvgB,EAAAA,SAASwgB,KAAE,WAAxCxrB,EAAAA,EAAAA,IAEO,YADLU,EAAAA,EAAAA,IAAwBJ,EAAAA,CAAhBE,KAAK,eAAQ,eAEVwK,EAAAA,SAASugB,KAAQvgB,EAAAA,SAASwgB,IACF,iBADI,WAAzCxrB,EAAAA,EAAAA,IAEO,YADLU,EAAAA,EAAAA,IAAsCJ,EAAAA,CAA9BE,KAAK,6BAAsB,MAI/BwK,EAAAA,UAAYA,EAAAA,QAAK,WADzBhL,EAAAA,EAAAA,IAcO,Q,MAZL5B,MAAM,SACL+H,MAAO0hB,EAAAA,W,CAEI7c,EAAAA,SAAS6gB,OAAI,WAAzB7rB,EAAAA,EAAAA,IAEO,YADLU,EAAAA,EAAAA,IAA2BJ,EAAAA,CAAnBE,KAAK,kBAAW,gBAEbwK,EAAAA,SAAS6gB,MAAQ7gB,EAAAA,SAAS8gB,MAAG,WAA1C9rB,EAAAA,EAAAA,IAEO,YADLU,EAAAA,EAAAA,IAAwBJ,EAAAA,CAAhBE,KAAK,eAAQ,eAEVwK,EAAAA,SAAS6gB,MAAS7gB,EAAAA,SAAS8gB,KACH,iBADM,WAA3C9rB,EAAAA,EAAAA,IAEO,YADLU,EAAAA,EAAAA,IAAsCJ,EAAAA,CAA9BE,KAAK,6BAAsB,yC,aE9BpCpC,MAAM,qB,IACTC,EAAAA,EAAAA,GAAyC,OAApCD,MAAM,6BAA2B,S,IACjCA,MAAM,e,IACJA,MAAM,iB,IACJA,MAAM,S,IAETC,EAAAA,EAAAA,GAEO,QAFDD,MAAM,4BAA2B,QAEvC,G,IAEIA,MAAM,S,IAGNA,MAAM,e,IAGJA,MAAM,sB,IAIXA,MAAM,oC,IACJA,MAAM,Q,IACTC,EAAAA,EAAAA,GAEM,OAFDD,MAAM,sBAAqB,iBAEhC,G,IACKA,MAAM,W,IASDoD,MAAA,uC,IAGHA,MAAA,uB,IAKApD,MAAM,S,IA6BVA,MAAM,c,IACTC,EAAAA,EAAAA,GAEM,OAFDD,MAAM,cAAa,SAExB,G,IACKA,MAAM,W,IAOJoD,MAAA,4B,IAMTnD,EAAAA,EAAAA,GAAyB,OAApBD,MAAM,aAAW,S,IAEhBA,MAAM,e,iBAQPA,MAAM,W,IACHA,MAAM,Y,IACVC,EAAAA,EAAAA,GAIC,SAHCmF,GAAG,mBACHiG,QAAQ,WACR9K,KAAK,Y,aAEA+S,IAAI,oB,IAELtT,MAAM,sBAkBxBE,EAAAA,GAAAA,IACEE,EAAAA,IACAutB,EAAAA,IACAC,EAAAA,IACAC,EAAAA,KAGF,UAAiB,EC5HjB,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,sFDNzDjsB,EAAAA,EAAAA,IAiHM,MAjHNC,GAiHM,CAhHJ4E,IACAxG,EAAAA,EAAAA,GA8GM,MA9GN0G,GA8GM,EA7GJ1G,EAAAA,EAAAA,GAgBM,MAhBN4G,GAgBM,EAfJ5G,EAAAA,EAAAA,GAKM,MALN6G,GAKM,mBAJD9E,EAAAA,GAAG,kCAAmC,IACzC,SAIF/B,EAAAA,EAAAA,GAEO,OAFP+G,IAEO,QADFhF,EAAAA,GAAG,wCAAD,IAEP/B,EAAAA,EAAAA,GAEO,OAFPgH,IAEO,QADFjF,EAAAA,GAAG,iCAAD,IAEP/B,EAAAA,EAAAA,GAES,SAFTiH,IAES,QADJlF,EAAAA,GAAG,kCAAD,MAGT/B,EAAAA,EAAAA,GA2FM,MA3FNsH,GA2FM,EA1FJtH,EAAAA,EAAAA,GAgDM,MAhDNqY,GAgDM,CA/CJC,IAGAtY,EAAAA,EAAAA,GA2CM,MA3CNyY,GA2CM,EA1CJzY,EAAAA,EAAAA,GAEK,mBADA+B,EAAAA,GAAG,mCAAD,IAGPM,EAAAA,EAAAA,IAUS0pB,EAAAA,CATPC,MAAM,SACNC,QAAQ,+B,mBAER,iBAEO,EAFPjsB,EAAAA,EAAAA,GAEO,OAFP0Y,IAEO,QADF3W,EAAAA,GAAG,gCAAD,IAEP/B,EAAAA,EAAAA,GAEI,IAFJ6H,IAEI,QADC9F,EAAAA,GAAG,gCAAD,G,WAIT/B,EAAAA,EAAAA,GAyBM,MAzBNuoB,GAyBM,EAxBJlmB,EAAAA,EAAAA,IAKEJ,EAAAA,CAJA,iBACAkB,MAAA,uBACApD,MAAM,8BACNoC,KAAK,WAEPE,EAAAA,EAAAA,IAKEJ,EAAAA,CAJA,iBACAkB,MAAA,wBACApD,MAAM,8BACNoC,KAAK,aAEPE,EAAAA,EAAAA,IAKEJ,EAAAA,CAJA,iBACAkB,MAAA,yBACApD,MAAM,8BACNoC,KAAK,UAEPE,EAAAA,EAAAA,IAKEJ,EAAAA,CAJA,iBACAkB,MAAA,sBACApD,MAAM,8BACNoC,KAAK,iBAMbnC,EAAAA,EAAAA,GAgBM,MAhBNoc,GAgBM,CAfJG,IAGAvc,EAAAA,EAAAA,GAWM,MAXN+lB,GAWM,EAVJ1jB,EAAAA,EAAAA,IASS0pB,EAAAA,CARPE,QAAQ,oCACR3P,IAAI,OACJvc,MAAM,QACNisB,MAAM,U,mBAEN,iBAEI,EAFJhsB,EAAAA,EAAAA,GAEI,IAFJgmB,IAEI,QADCjkB,EAAAA,GAAG,sCAAD,G,cAKbya,IAEAxc,EAAAA,EAAAA,GAEO,OAFPyc,IAEO,QADF1a,EAAAA,GAAG,iCAAD,IAEP/B,EAAAA,EAAAA,GAGC,SAFEwL,MAAOzJ,EAAAA,GAAG,gCACXzB,KAAK,Q,YAGPN,EAAAA,EAAAA,GAYM,MAZNimB,GAYM,EAXJjmB,EAAAA,EAAAA,GAOO,OAPP0c,GAOO,CANLmR,IAKA7tB,EAAAA,EAAAA,GAAiF,QAAjF4rB,IAAiF,QAAhD7pB,EAAAA,GAAG,oCAAD,MAErC/B,EAAAA,EAAAA,GAES,SAFT8tB,IAES,QADJ/rB,EAAAA,GAAG,kCAAD,U,8kBEnEjB,IAAMgsB,GAAc,CAClB,KACA,KACA,OACA,OACA,OACA,SACA,QACA,WACAjoB,KAAI,SAAA2f,GAAC,OAAIA,EAAI,YAAY,IAU3B,UACE5kB,KAAI,WAAI,WACN,OAAO,UACLmtB,eAAeC,EAAAA,GAAAA,GAAY,CACzBC,UAAW9sB,KAAK+sB,gBAChBC,SAAUhtB,KAAKgtB,SACfC,gBAAiBjtB,KAAKitB,kBAExBC,eAAeC,EAAAA,GAAAA,GAAY,CACzBhsB,SAAU,gBACVisB,kBAAmB,kBAAM,EAAKC,aAAa,IAE7CC,gBAAiB,GACjB/jB,SAAU,GACVgkB,cAAevtB,KAAK8C,OAAO+E,QAAQ+I,aAAa4c,MAChDC,kBAAche,EACdie,oBAAgBje,EAChBke,cAAe,EAEfC,eAAgB,CAAC,EACjBC,cAAe,CAAC,EAChBC,aAAc,CAAC,EACfC,aAAc,CAAC,EAEfC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EAEdC,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,eAAe,EACfC,WAAW,GAERvjB,OAAOC,KAAKujB,GAAAA,IACZ9pB,KAAI,SAAAsB,GAAG,MAAI,CAACA,EAAK,GAAG,IACpB0K,QAAO,SAACC,EAAK,GAAF,oBAAG3K,EAAG,KAAEoB,EAAG,qBAAYuJ,GAAG,cAAG3K,EAAM,aAAeoB,GAAG,GAAK,CAAC,IAEtE4D,OAAOC,KAAKwjB,GAAAA,IACZ/pB,KAAI,SAAAsB,GAAG,MAAI,CAACA,EAAK,GAAG,IACpB0K,QAAO,SAACC,EAAK,GAAF,oBAAG3K,EAAG,KAAEoB,EAAG,qBAAYuJ,GAAG,cAAG3K,EAAM,eAAiBoB,GAAG,GAAK,CAAC,IAAE,IAE7EsnB,oBAAgBjf,EAChBkf,aAAc,CAAC,EACfC,WAAY,CAAC,EAEbC,eAAgB,GAChBC,iBAAkB,GAClBC,oBAAqB,GACrBC,iBAAkB,GAClBC,kBAAmB,GACnBC,qBAAsB,GACtBC,sBAAuB,GACvBC,mBAAoB,GACpBC,uBAAwB,IAE5B,EACAxsB,QAAO,WACL,IAAMysB,EAAOtvB,MAEbuvB,EAAAA,GAAAA,MACGjvB,MAAK,SAACkvB,GACL,OAAO7hB,QAAQ8hB,IACbzkB,OAAO0kB,QAAQF,GACZ9qB,KAAI,gCAAEirB,EAAC,KAAG,YAAQrvB,MAAK,SAAA2E,GAAG,MAAI,CAAC0qB,EAAG1qB,EAAI,GAAC,IAE9C,IACC3E,MAAK,SAAAsvB,GAAM,OAAIA,EAAOlf,QAAO,SAACC,EAAK,GAAW,oBAAVgf,EAAC,KAAExkB,EAAC,KACvC,OAAIA,EACK,SACFwF,GAAG,cACLgf,EAAIxkB,IAGAwF,CAEX,GAAG,CAAC,EAAE,IACLrQ,MAAK,SAACuvB,GACLP,EAAKhC,gBAAkBuC,CACzB,GACJ,EACAjZ,QAAO,WACL5W,KAAK8vB,iCAC8B,IAAxB9vB,KAAK0uB,iBACd1uB,KAAK0uB,eAAiB1uB,KAAK+vB,iBAAiB,GAEhD,EACA1sB,SAAU,CACR2sB,iBAAgB,WACd,GAAKhwB,KAAKytB,aAAV,CACA,IAAM5S,EAAI7a,KAAK4L,GACTqkB,EAAM,gCACZ,EAKIjwB,KAAKytB,aAJPyC,EAAM,EAANA,OACAC,EAAkB,EAAlBA,mBACAjxB,EAAI,EAAJA,KACAkxB,EAAiB,EAAjBA,kBAEF,GAAe,SAAXF,EAAmB,CAErB,GAA2B,IAAvBC,GAAqC,kBAATjxB,EAC9B,OAAO2b,EAAEoV,EAAM,eAEjB,GAAIE,EAAqBE,GAAAA,GACvB,OAAOxV,EAAEoV,EAAM,2BAA6B,IAGpCpV,EADJuV,EACMH,EAAM,mBACNA,EAAM,oBAGlB,GAAIE,EAAqBE,GAAAA,GACvB,OAAOxV,EAAEoV,EAAM,2BAA6B,IAGpCpV,EADJuV,EACMH,EAAM,mBACNA,EAAM,mBAGpB,MAAO,GAAe,iBAAXC,EAA2B,CACpC,GAAa,6BAAThxB,EACF,OAAO2b,EAAEoV,EAAM,4BAGjB,GAA2B,IAAvBE,EACF,OAAOtV,EAAEoV,EAAM,oBAGjB,GAAIE,EAAqBE,GAAAA,GACvB,OAAOxV,EAAEoV,EAAM,iBAAmB,IAG1BpV,EADJuV,EACMH,EAAM,wBACNA,EAAM,2BAIlB,GAAIE,EAAqBE,GAAAA,GACvB,OAAOxV,EAAEoV,EAAM,eAAiB,IAGxBpV,EADJuV,EACMH,EAAM,wBACNA,EAAM,0BAGpB,CAxD8B,CAyDhC,EACAK,gBAAe,WACb,OAAOjnB,MAAMknB,QAAQvwB,KAAKutB,eAAiB,EAAI,CACjD,EACAiD,cAAa,WAAI,WACf,OAAOxlB,OAAOC,KAAKujB,GAAAA,IAChB9pB,KAAI,SAAAsB,GAAG,MAAI,CAACA,EAAK,EAAKA,EAAM,cAAc,IAC1C0K,QAAO,SAACC,EAAK,GAAF,oBAAG3K,EAAG,KAAEoB,EAAG,qBAAYuJ,GAAG,cAAG3K,EAAMoB,GAAG,GAAK,CAAC,EAC5D,EACAqpB,eAAc,WAAI,WAChB,OAAOzlB,OAAOC,KAAKwjB,GAAAA,IAChB/pB,KAAI,SAAAsB,GAAG,MAAI,CAACA,EAAK,EAAKA,EAAM,gBAAgB,IAC5C0K,QAAO,SAACC,EAAK,GAAF,oBAAG3K,EAAG,KAAEoB,EAAG,qBAAYuJ,GAAG,cAAG3K,EAAMoB,GAAG,GAAK,CAAC,EAC5D,EACAspB,aAAY,WACV,MAAO,CACLC,IAAK3wB,KAAK6uB,eACV3uB,MAAOF,KAAK8uB,iBACZ8B,SAAU5wB,KAAK+uB,oBACf8B,MAAO7wB,KAAKgvB,iBACZvL,OAAQzjB,KAAKivB,kBACb6B,UAAW9wB,KAAKkvB,qBAChB6B,QAAS/wB,KAAKovB,mBACd4B,WAAYhxB,KAAKmvB,sBACjB8B,YAAajxB,KAAKqvB,uBAEtB,EACA6B,QAAO,WACL,OAAOC,EAAAA,GAAAA,IAAcnxB,KAAK6tB,cAAe7tB,KAAK8tB,aAAc9tB,KAAK4tB,eAAgB5tB,KAAK+tB,aACxF,EACAqD,aAAY,WACV,OAAKpxB,KAAKkxB,QAAQ1D,MAAM6D,OACjBrxB,KAAKkxB,QAAQ1D,MADmB,CAAE6D,OAAQ,CAAC,EAAGC,QAAS,CAAC,EAAGC,MAAO,CAAC,EAAGC,QAAS,CAAC,EAAGC,MAAO,CAAC,EAEpG,EAEAC,gBAAe,WACb,IACE,IAAK1xB,KAAKoxB,aAAaC,OAAOM,GAAI,MAAO,CAAC,EAC1C,IAAMN,EAASrxB,KAAKoxB,aAAaC,OAC3BC,EAAUtxB,KAAKoxB,aAAaE,QAClC,IAAKD,EAAOM,GAAI,MAAO,CAAC,EACxB,IASMC,EAAkB5mB,OAAO0kB,QAAQ2B,GAAQ3gB,QAAO,SAACC,EAAK,GAAF,IA5M5CsY,EA4M4C,gBAAGjjB,EAAG,KAAEoE,EAAK,qBAAYuG,GAAG,cAAG3K,GA5M3EijB,EA4M8F7e,GA3MxGwF,WAAW,OAAmB,gBAAVqZ,EACrBA,GAEAhB,EAAAA,GAAAA,IAAQgB,IAwMuG,GAAK,CAAC,GAElH4I,EAAS7mB,OAAO0kB,QAAQlB,GAAAA,IAAkB9d,QAAO,SAACC,EAAK,GAAiB,oBAAhB3K,EAAG,KAAEoE,EAAK,KAChE0nB,EAAyB,SAAR9rB,GAA0B,SAARA,EAIzC,KAHmB8rB,GACA,YAAjB,QAAO1nB,IAAgC,OAAVA,GAAkBA,EAAM2nB,WAEtC,OAAOphB,EACxB,MAA2BmhB,EAAiB,CAAEE,MAAO,MAAS5nB,EAAtD4nB,EAAK,EAALA,MAAOC,EAAO,EAAPA,QACT1S,EAAa0S,GAAWD,EACxBE,GAAcC,EAAAA,GAAAA,IAAe5S,GAC7B6S,EAAa,CACjBpsB,GAAG,gBACgB,OAAfuZ,EAAsB,CAAC,OAAQ,SAAU,QAAS,WAAa,KAG/D8S,GAASC,EAAAA,GAAAA,IACbN,EACAC,GAAWD,EACXE,EACAN,EACAN,GAIF,OAAIe,EAAOE,OAAOC,MAAK,SAAArnB,GAAC,OAAS,MAALA,CAAS,IAAUwF,EAExC,SACFA,GACAyhB,EAAW1hB,QAAO,SAACC,EAAK8hB,GACzB,IAAMC,EAASZ,EACX,KAAOW,EAAa,GAAGE,cAAgBF,EAAapoB,MAAM,GAC1DooB,EACJ,OAAO,SACF9hB,GAAG,cACL+hB,GAASE,EAAAA,GAAAA,IACRhB,EAAgBa,GAChBJ,EACAT,EAAgBa,KAGtB,GAAG,CAAC,GAER,GAAG,CAAC,GAEJ,OAAOznB,OAAO0kB,QAAQmC,GAAQnhB,QAAO,SAACC,EAAK,GAAW,IAtDvCsb,EAsDuC,gBAAV0D,EAAC,KAAExkB,EAAC,KAA2B,OAAnBwF,EAAIgf,GAtDlC,CACxBzD,MADaD,EAsDwD9gB,GArDzD0nB,YAAY,GAAK,KAE7B9G,GAAIE,GAAS,IACbH,IAAKG,GAAS,EAEdI,IAAKJ,GAAS,EACdG,KAAMH,GAAS,KA+CiEtb,CAAI,GAAG,CAAC,EAI5F,CAHE,MAAOT,GAEP,OADAgB,QAAQ4hB,KAAK,8BAA+B5iB,GACrC,CAAC,CACV,CACF,EACA6iB,aAAY,WACV,OAAK/yB,KAAKkxB,QAAQ8B,MACX,mBACFhoB,OAAOioB,OAAOjzB,KAAKkxB,QAAQ8B,QAAM,CACpC,qBACA,kDACAjuB,KAAK,KALyB,EAMlC,EACAgrB,iBAAgB,WACd,OAAO/kB,OAAOC,KAAKioB,GAAAA,IAAiBC,MACtC,EACAC,uBAAwB,CACtBnnB,IAAG,WACD,QAASjM,KAAKqzB,aAChB,EACAxiB,IAAG,SAAEzJ,GACCA,EACFpH,KAAK2uB,aAAa3uB,KAAK0uB,gBAAkB1uB,KAAKszB,sBAAsB5uB,KAAI,SAAA2f,GAAC,OAAIrZ,OAAOuoB,OAAO,CAAC,EAAGlP,EAAE,WAE1FrkB,KAAK2uB,aAAa3uB,KAAK0uB,eAElC,GAEF4E,sBAAqB,WACnB,OAAQtzB,KAAKoxB,aAAaI,SAAW,CAAC,GAAGxxB,KAAK0uB,eAChD,EACA2E,cAAe,CACbpnB,IAAG,WACD,OAAOjM,KAAK2uB,aAAa3uB,KAAK0uB,eAChC,EACA7d,IAAG,SAAE1F,GACHnL,KAAK2uB,aAAa3uB,KAAK0uB,gBAAkBvjB,CAC3C,GAEFqoB,WAAU,WACR,OAAQxzB,KAAKguB,iBAAmBhuB,KAAKiuB,gBAAkBjuB,KAAKkuB,YAC9D,EACAb,cAAa,WACX,IAAMoG,IACHzzB,KAAKuuB,WACLvuB,KAAKouB,aACLpuB,KAAKquB,aACLruB,KAAKsuB,eACLtuB,KAAKmuB,WAGFuF,EAAS,CACbvD,mBAAoBE,GAAAA,IAwBtB,OArBIrwB,KAAKuuB,WAAakF,KACpBC,EAAOjC,MAAQzxB,KAAK4uB,aAElB5uB,KAAKouB,aAAeqF,KACtBC,EAAOlC,QAAUxxB,KAAK2uB,eAEpB3uB,KAAKquB,aAAeoF,KACtBC,EAAOpC,QAAUtxB,KAAKywB,iBAEpBzwB,KAAKmuB,WAAasF,KACpBC,EAAOrC,OAASrxB,KAAKwwB,gBAEnBxwB,KAAKsuB,eAAiBmF,KACxBC,EAAOnC,MAAQvxB,KAAK0wB,cAQf,CAELiD,uBAAwB,EAAGnG,MAPf,IACZ2C,mBAAoBE,GAAAA,IACjBrwB,KAAKoxB,cAK0BsC,OAAAA,EAEtC,EACAE,SAAQ,WACN,IAAMC,EAAc7zB,KAAKwP,QACzB,QAAOqkB,GAAcA,EAAYD,SAAS,QAC5C,GAEF3wB,WAAY,CACVomB,WAAAA,GACAC,aAAAA,GACAwK,WAAAA,GACAC,cAAAA,GACAC,cAAAA,GACAC,YAAAA,GACA5nB,YAAAA,EAAAA,EACA6nB,QAAAA,GACA9wB,SAAAA,EAAAA,EACAsO,OAAAA,GAAAA,GAEF5R,QAAS,CACPq0B,UAAS,WAMPjE,GAEA,IANE1C,EAAK,EAALA,MACAkG,EAAM,EAANA,OACwBU,EAAW,EAAnCT,uBAGFU,EAAiB,UAAH,8CAGd,GADAr0B,KAAKs0B,kBACAZ,IAAWlG,EACd,MAAM,IAAIjpB,MAAM,2BAElB,IAAMgwB,EAAsB,iBAAXrE,GAA8B1C,EAAM6D,OAEjD+C,EADA,KAEEI,GAAyBhH,GAAS,CAAC,GAAG2C,mBACtCA,GAAsBuD,GAAU,CAAC,GAAGvD,oBAAsB,EAC1DsE,EAAgBtE,IAAuBE,GAAAA,GACvCqE,OACMjlB,IAAV+d,QACa/d,IAAXikB,GACAvD,IAAuBqE,EAIrBG,EAAoBjB,GAAUW,IAAoB7G,EAClDiH,IAAkBC,GACnBC,GACW,OAAZJ,GACW,aAAXrE,IAEEwE,GAAqC,iBAAXxE,EAC5BlwB,KAAKytB,aAAe,CAClByC,OAAAA,EACAC,mBAAAA,EACAjxB,KAAM,4BAEEsuB,EAOAiH,IACVz0B,KAAKytB,aAAe,CAClByC,OAAAA,EACAE,mBAAoBsD,EACpBvD,mBAAAA,EACAjxB,KAAM,kBAXRc,KAAKytB,aAAe,CAClByC,OAAAA,EACAE,mBAAmB,EACnBD,mBAAAA,EACAjxB,KAAM,4BAWZc,KAAK40B,oBAAoBpH,EAAO+G,EAASb,EAAQiB,EACnD,EACAE,sBAAqB,WACnB70B,KAAK8vB,2BAA0B,EACjC,EACAwE,eAAc,WACZt0B,KAAKytB,kBAAehe,EACpBzP,KAAK0tB,oBAAiBje,CACxB,EACAqlB,UAAS,WAEP,OADmB90B,KAAKytB,aAAhByC,QAEN,IAAK,eACHlwB,KAAK8vB,2BAA0B,GAC/B,MACF,IAAK,OACH9vB,KAAKgtB,SAAShtB,KAAK0tB,gBAAgB,GAGvC1tB,KAAKs0B,gBACP,EACAS,cAAa,WAEX,OADmB/0B,KAAKytB,aAAhByC,QAEN,IAAK,eACHlwB,KAAK8vB,2BAA0B,GAAO,GACtC,MACF,IAAK,OACH5e,QAAQvR,MAAM,mDAGlBK,KAAKs0B,gBACP,EACAxE,0BAAyB,WAAoD,IAAlDkF,EAAoB,UAAH,8CAAUD,EAAgB,UAAH,8CACjE,EAGI/0B,KAAK8C,OAAO+E,QAAQ+I,aAFT4c,EAAK,EAAlByH,YACmBvB,EAAM,EAAzBwB,kBAEG1H,GAAUkG,EAQb1zB,KAAKm0B,UACH,CACE3G,MAAAA,EACAkG,OAAQqB,EAAgBvH,EAAQkG,GAElC,eACAsB,GAZFh1B,KAAKm0B,UACHn0B,KAAK8C,OAAOU,MAAMmJ,SAASwoB,UAC3B,WACAH,EAYN,EACAI,eAAc,WACZp1B,KAAK8C,OAAOC,SAAS,YAAa,CAChC+N,KAAM,cACN1G,MAAO,IACL+lB,mBAAoBE,GAAAA,IACjBrwB,KAAKoxB,gBAGZpxB,KAAK8C,OAAOC,SAAS,YAAa,CAChC+N,KAAM,oBACN1G,MAAO,CACL+lB,mBAAoBE,GAAAA,GACpBmB,QAASxxB,KAAK2uB,aACd8C,MAAOzxB,KAAK4uB,WACZ0C,QAAStxB,KAAKywB,eACdY,OAAQrxB,KAAKwwB,cACbe,MAAOvxB,KAAK0wB,eAGlB,EACA2E,8BAA6B,WAC3Br1B,KAAK6tB,eAAgByH,EAAAA,GAAAA,IAAe,CAClChE,QAAStxB,KAAKywB,eACdY,OAAQrxB,KAAKwwB,gBAEfxwB,KAAK4tB,gBAAiB2H,EAAAA,GAAAA,IACpB,CAAE/D,QAASxxB,KAAK2uB,aAAc2C,QAAStxB,KAAKoxB,aAAaE,QAASnB,mBAAoBnwB,KAAK2tB,eAC3F3tB,KAAK6tB,cAAcL,MAAM6D,OACzBrxB,KAAK6tB,cAAc2H,IAEvB,EACAC,YAAW,WAAMz1B,KAAK4sB,cAAc8I,YAAa,EACjDC,YAAW,WAAM31B,KAAKktB,cAAc0I,YAAa,EACjD5I,SAAQ,SAAE6I,GAA6B,IAArBC,EAAc,UAAH,8CAC3B91B,KAAK0tB,eAAiBmI,EACtB71B,KAAKm0B,UAAU0B,EAAQ,OAAQC,EACjC,EACA7I,gBAAe,SAAEtW,GACf3W,KAAK8C,OAAOC,SAAS,mBAAoB,CAAE2f,WAAY,kCAAmCM,MAAO,SACnG,EACA+J,gBAAe,SAAE8I,GACf,IAAMtB,EAAUsB,EAAOlC,uBACvB,OAAOY,GAAW,GAAKA,GAAW,CACpC,EACAwB,SAAQ,WACN/1B,KAAK8vB,2BACP,EAGAkG,QAAO,WAAI,WACThrB,OAAOC,KAAKjL,KAAKi2B,OACdrvB,QAAO,SAAAyd,GAAC,OAAIA,EAAE6R,SAAS,eAAiB7R,EAAE6R,SAAS,eAAe,IAClEtvB,QAAO,SAAAyd,GAAC,OAAKsI,GAAY7jB,SAASub,EAAE,IACpC8R,SAAQ,SAAAnwB,GACP,EAAKiwB,MAAMjwB,QAAOyJ,CACpB,GACJ,EAEA2mB,eAAc,WAAI,WAChBprB,OAAOC,KAAKjL,KAAKi2B,OACdrvB,QAAO,SAAAyd,GAAC,OAAIA,EAAE6R,SAAS,cAAc,IACrCC,SAAQ,SAAAnwB,GACP,EAAKiwB,MAAMjwB,QAAOyJ,CACpB,GACJ,EAEA4mB,aAAY,WAAI,WACdrrB,OAAOC,KAAKjL,KAAKi2B,OACdrvB,QAAO,SAAAyd,GAAC,OAAIA,EAAE6R,SAAS,eAAe,IACtCC,SAAQ,SAAAnwB,GACP,EAAKiwB,MAAMjwB,QAAOyJ,CACpB,GACJ,EAEA6mB,aAAY,WACVt2B,KAAK2uB,aAAe,CAAC,CACvB,EAEA4H,WAAU,WACRv2B,KAAK4uB,WAAa,CAAC,CACrB,EAeAgG,oBAAmB,SAAEpH,GAAiD,IAChEttB,EADgE,OAA1Cq0B,EAAU,UAAH,6CAAG,EAAGb,EAAM,uCAAEoC,EAAc,UAAH,mDAEpC,IAAXpC,IACLoC,GAAepC,EAAOvD,qBAAuBE,GAAAA,GAOjDnwB,EAAQstB,GANNttB,EAAQwzB,EACRa,EAAUb,EAAOvD,oBAQrB,IAAMoB,EAAQrxB,EAAMqxB,OAASrxB,EACvBoxB,EAAUpxB,EAAMoxB,QAChBE,EAAUtxB,EAAMsxB,SAAW,CAAC,EAC5BC,EAAQvxB,EAAMuxB,OAAS,CAAC,EACxBJ,EAAUnxB,EAAMiwB,mBAElBjwB,EAAMmxB,QAAUnxB,GADhBs2B,EAAAA,GAAAA,IAAWt2B,EAAMmxB,QAAUnxB,GAuB/B,GApBgB,IAAZq0B,IACEr0B,EAAMq0B,UAASA,EAAUr0B,EAAMq0B,cAER,IAAhBlD,EAAOnF,WAA6C,IAAdmF,EAAOoF,KACtDlC,EAAU,QAGe,IAAhBlD,EAAOnF,WAA6C,IAAdmF,EAAOoF,KACtDlC,EAAU,IAIdv0B,KAAK2tB,cAAgB4G,EAGL,IAAZA,IACFv0B,KAAK02B,cAAeC,EAAAA,GAAAA,IAAQtF,EAAOV,KACnC3wB,KAAK42B,gBAAiBD,EAAAA,GAAAA,IAAQtF,EAAOoF,MAGlCz2B,KAAKmuB,UAAW,CACnBnuB,KAAKg2B,UACL,IAAM/qB,EAAO,IAAI4rB,IAAgB,IAAZtC,EAAgBvpB,OAAOC,KAAKujB,GAAAA,IAAoB,IACrD,IAAZ+F,GAA6B,OAAZA,GACnBtpB,EACGse,IAAI,MACJA,IAAI,QACJA,IAAI,QACJA,IAAI,SACJA,IAAI,UACJA,IAAI,WAGTte,EAAKkrB,SAAQ,SAAAnwB,GACX,IAAMijB,EAAQoI,EAAOrrB,GACf8wB,GAAMH,EAAAA,GAAAA,IAAQtF,EAAOrrB,IAC3B,EAAKA,EAAM,cAAwB,QAAR8wB,EAAgB7N,EAAQ6N,CACrD,GACF,CAEIxF,IAAYtxB,KAAKquB,cACnBruB,KAAKq2B,eACLrrB,OAAO0kB,QAAQ4B,GAAS6E,SAAQ,YAAY,oBAAVxG,EAAC,KAAExkB,EAAC,KAChC,MAAOA,GAAmC4G,OAAOglB,MAAM5rB,KAC3D,EAAKwkB,EAAI,gBAAkBxkB,EAC7B,KAGGnL,KAAKsuB,gBACRtuB,KAAKo2B,iBACLprB,OAAO0kB,QAAQ6B,GAAO4E,SAAQ,YAAY,oBAAVxG,EAAC,KAAExkB,EAAC,KAE5BnF,EAAM2pB,EAAEuG,SAAS,UAAYvG,EAAEtgB,MAAM,UAAU,GAAKsgB,EAC1D,EAAK3pB,EAAM,eAAiBmF,CAC9B,KAGGnL,KAAKouB,cACRpuB,KAAKs2B,eAEHt2B,KAAK2uB,aADS,IAAZ4F,GACkByC,EAAAA,GAAAA,IAAYxF,EAASxxB,KAAKoxB,aAAaE,SAEvCE,EAEtBxxB,KAAK0uB,eAAiB1uB,KAAK+vB,iBAAiB,IAGzC/vB,KAAKuuB,YACRvuB,KAAKu2B,aACLv2B,KAAK4uB,WAAa6C,EAEtB,GAEFtqB,MAAO,CACLupB,aAAY,WACV,IACE1wB,KAAK8tB,cAAemJ,EAAAA,GAAAA,IAAc,CAAE1F,MAAOvxB,KAAK0wB,eAChD1wB,KAAKkuB,cAAe,CAItB,CAHE,MAAOhe,GACPlQ,KAAKkuB,cAAe,EACpBhd,QAAQ4hB,KAAK5iB,EACf,CACF,EACAye,aAAc,CACZuI,QAAO,WACL,GAA8D,IAA1DlsB,OAAOmsB,oBAAoBn3B,KAAK6tB,eAAepmB,OACnD,IACEzH,KAAKq1B,gCACLr1B,KAAKguB,gBAAiB,CAIxB,CAHE,MAAO9d,GACPlQ,KAAKguB,gBAAiB,EACtB9c,QAAQ4hB,KAAK5iB,EACf,CACF,EACAknB,MAAM,GAERxI,WAAY,CACVsI,QAAO,WACL,IACEl3B,KAAK+tB,cAAesJ,EAAAA,GAAAA,GAAc,CAAE5F,MAAOzxB,KAAK4uB,aAChD5uB,KAAKs3B,cAAe,CAItB,CAHE,MAAOpnB,GACPlQ,KAAKs3B,cAAe,EACpBpmB,QAAQ4hB,KAAK5iB,EACf,CACF,EACAknB,MAAM,GAER5G,cAAa,WACX,IACExwB,KAAKq1B,gCACLr1B,KAAKiuB,eAAgB,EACrBjuB,KAAKguB,gBAAiB,CAKxB,CAJE,MAAO9d,GACPlQ,KAAKiuB,eAAgB,EACrBjuB,KAAKguB,gBAAiB,EACtB9c,QAAQ4hB,KAAK5iB,EACf,CACF,EACAugB,eAAc,WACZ,IACEzwB,KAAKq1B,+BAGP,CAFE,MAAOnlB,GACPgB,QAAQ4hB,KAAK5iB,EACf,CACF,EACA3G,SAAQ,WAAI,WACVvJ,KAAKutB,cAAgBviB,OAAO0kB,QAAQ1vB,KAAKstB,iBAAiBiK,MAAK,YAAY,oBAAPC,GAAF,KAAG,MACnE,OAAInuB,MAAMknB,QAAQiH,IAChBtmB,QAAQumB,IAAID,EAAE,KAAO,EAAKjuB,SAAU,EAAKA,UAClCiuB,EAAE,KAAO,EAAKjuB,UAEdiuB,EAAE1mB,OAAS,EAAKvH,QAE3B,IAAG,EACL,EACAgkB,cAAa,WACXvtB,KAAKs0B,iBACwB,IAAzBt0B,KAAKswB,iBACFtwB,KAAKsuB,eACRtuB,KAAKo2B,iBAGFp2B,KAAKouB,aACRpuB,KAAKs2B,eAGFt2B,KAAKquB,aACRruB,KAAKq2B,eAGFr2B,KAAKmuB,YACRnuB,KAAKg2B,UAELh2B,KAAK03B,aAAe13B,KAAKutB,cAAc,GACvCvtB,KAAK02B,aAAe12B,KAAKutB,cAAc,GACvCvtB,KAAK42B,eAAiB52B,KAAKutB,cAAc,GACzCvtB,KAAK23B,eAAiB33B,KAAKutB,cAAc,GACzCvtB,KAAK43B,eAAiB53B,KAAKutB,cAAc,GACzCvtB,KAAK63B,iBAAmB73B,KAAKutB,cAAc,GAC3CvtB,KAAK83B,gBAAkB93B,KAAKutB,cAAc,GAC1CvtB,KAAK+3B,kBAAoB/3B,KAAKutB,cAAc,KAErCvtB,KAAKswB,iBAAmB,GACjCtwB,KAAK40B,oBAAoB50B,KAAKutB,cAAcC,MAAO,EAAGxtB,KAAKutB,cAAcmG,OAE7E,ICjxBJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,6TlBNzDnzB,EAAAA,EAAAA,IAkhCM,MAlhCNC,GAkhCM,EAjhCJ5B,EAAAA,EAAAA,GAsHM,MAtHNwG,GAsHM,EArHJxG,EAAAA,EAAAA,GAwFM,MAxFN0G,GAwFM,CAtFI3E,EAAAA,eAAY,WADpBJ,EAAAA,EAAAA,IA6CM,MA7CNiF,GA6CM,EAzCJ5G,EAAAA,EAAAA,GAEM,MAFN6G,IAEM,QADD9E,EAAAA,kBAAgB,IAErB/B,EAAAA,EAAAA,GAqCM,MArCN8G,GAqCM,CApCkC,6BAAtB/E,EAAAA,aAAazB,OAAI,WAAjCqB,EAAAA,EAAAA,IAaWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,EAZTpH,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,WAAAA,EAAAA,UAAAA,MAAAA,EAAAA,UAAS,K,QAEdA,EAAAA,GAAG,uCAAD,IAEP/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,eAAAA,EAAAA,cAAAA,MAAAA,EAAAA,UAAa,K,QAElBA,EAAAA,GAAG,yCAAD,SAGYA,EAAAA,aAAayvB,oBAAiB,WACjD7vB,EAAAA,EAAAA,IAKS,U,MAJP5B,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,gBAAAA,EAAAA,eAAAA,MAAAA,EAAAA,UAAc,K,QAEnBA,EAAAA,GAAG,oBAAD,iBAGTJ,EAAAA,EAAAA,IAaWuF,EAAAA,GAAAA,CAAAE,IAAAA,GAAA,EAZTpH,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,WAAAA,EAAAA,UAAAA,MAAAA,EAAAA,UAAS,K,QAEdA,EAAAA,GAAG,uCAAD,IAEP/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,gBAAAA,EAAAA,eAAAA,MAAAA,EAAAA,UAAc,K,QAEnBA,EAAAA,GAAG,uCAAD,+BAKb/B,EAAAA,EAAAA,GAwCM,MAxCN+G,GAwCM,EAvCJ/G,EAAAA,EAAAA,GAwBM,MAxBNgH,GAwBM,mBAvBDjF,EAAAA,GAAG,qBAAsB,IAC5B,WAqBQ,QArBRkF,GAqBQ,EAjBN5E,EAAAA,EAAAA,IAgBS0Q,EAAAA,CAfP5N,GAAG,kB,WACMpD,EAAAA,S,qDAAAA,EAAAA,SAAQ,IACjBhC,MAAM,mB,mBAGJ,iBAAgC,gBADlC4B,EAAAA,EAAAA,IAUSuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IATSnF,EAAAA,iBAAe,SAAxBoB,G,kBADTxB,EAAAA,EAAAA,IAUS,UARNyF,IAAKjE,EAAM+O,KACX1G,MAAOrI,EAAM+O,MAAQ/O,EAAM,GAC3BA,OAAK,S,gBAAyCA,EAAK,KAAQA,EAAMyrB,OAASzrB,EAAM2xB,QAAQrC,OAAOM,G,MAA+B5vB,EAAK,KAAQA,EAAMyrB,OAASzrB,EAAM2xB,QAAQrC,OAAOnF,S,QAK7KnqB,EAAM,IAAMA,EAAM+O,MAAI,M,0CAKjClS,EAAAA,EAAAA,GAaM,MAbNqY,GAaM,EAZJrY,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,K,QAEhBA,EAAAA,GAAG,0BAAD,IAEP/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,8BAAEL,EAAAA,aAAAA,EAAAA,YAAAA,MAAAA,EAAAA,UAAW,K,QAEhBA,EAAAA,GAAG,0BAAD,UAKb/B,EAAAA,EAAAA,GA2BM,MA3BNsY,GA2BM,EA1BJtY,EAAAA,EAAAA,GAIO,OAJPyY,GAIO,EAHLpW,EAAAA,EAAAA,IAEWqJ,EAAAA,C,WAFQ3J,EAAAA,U,qDAAAA,EAAAA,UAAS,K,mBAC1B,iBAA8C,mBAA3CA,EAAAA,GAAG,uCAAD,G,8BAGT/B,EAAAA,EAAAA,GAIO,OAJP0Y,GAIO,EAHLrW,EAAAA,EAAAA,IAEWqJ,EAAAA,C,WAFQ3J,EAAAA,Y,qDAAAA,EAAAA,YAAW,K,mBAC5B,iBAAgD,mBAA7CA,EAAAA,GAAG,yCAAD,G,8BAGT/B,EAAAA,EAAAA,GAIO,OAJP6H,GAIO,EAHLxF,EAAAA,EAAAA,IAEWqJ,EAAAA,C,WAFQ3J,EAAAA,Y,uDAAAA,EAAAA,YAAW,K,mBAC5B,iBAAgD,mBAA7CA,EAAAA,GAAG,yCAAD,G,8BAGT/B,EAAAA,EAAAA,GAIO,OAJPuoB,GAIO,EAHLlmB,EAAAA,EAAAA,IAEWqJ,EAAAA,C,WAFQ3J,EAAAA,c,uDAAAA,EAAAA,cAAa,K,mBAC9B,iBAAkD,mBAA/CA,EAAAA,GAAG,2CAAD,G,8BAGT/B,EAAAA,EAAAA,GAIO,OAJPoc,GAIO,EAHL/Z,EAAAA,EAAAA,IAEWqJ,EAAAA,C,WAFQ3J,EAAAA,U,uDAAAA,EAAAA,UAAS,K,mBAC1B,iBAA8C,mBAA3CA,EAAAA,GAAG,uCAAD,G,8BAGT/B,EAAAA,EAAAA,GAAyD,kBAAnD+B,EAAAA,GAAG,2CAAD,QAIZM,EAAAA,EAAAA,IAAiC+2B,EAAAA,CAAvBj2B,OAAK,QAAEpB,EAAAA,e,+BAEjBC,EAAAA,EAAAA,IAi4Baq3B,EAAAA,GAAAA,KAAAA,EAh4BXh3B,EAAAA,EAAAA,IA+3Be+M,EAAAA,CA/3BDhI,IAAI,eAAa,C,kBAC7B,iBA0GM,EA1GNpH,EAAAA,EAAAA,GA0GM,OAzGHuG,MAAOxE,EAAAA,GAAG,2CACXhC,MAAM,mB,EAENC,EAAAA,EAAAA,GAgBM,MAhBN+lB,GAgBM,EAfJ/lB,EAAAA,EAAAA,GAAsC,kBAAhC+B,EAAAA,GAAG,wBAAD,IACR/B,EAAAA,EAAAA,GAaM,MAbNgmB,GAaM,EAZJhmB,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,gCAAEL,EAAAA,cAAAA,EAAAA,aAAAA,MAAAA,EAAAA,UAAY,K,QAEjBA,EAAAA,GAAG,0CAAD,IAEP/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,gCAAEL,EAAAA,SAAAA,EAAAA,QAAAA,MAAAA,EAAAA,UAAO,K,QAEZA,EAAAA,GAAG,sCAAD,QAIX/B,EAAAA,EAAAA,GAA2C,kBAArC+B,EAAAA,GAAG,6BAAD,IACR/B,EAAAA,EAAAA,GAAsD,mBAA/C+B,EAAAA,GAAG,sCAAD,IACT/B,EAAAA,EAAAA,GAgCM,MAhCNwc,GAgCM,EA/BJna,EAAAA,EAAAA,IAIEwpB,EAAAA,C,WAHS9pB,EAAAA,a,uDAAAA,EAAAA,aAAY,IACrBmQ,KAAK,UACJ3L,MAAOxE,EAAAA,GAAG,wB,gCAEbM,EAAAA,EAAAA,IAIEypB,EAAAA,C,WAHS/pB,EAAAA,e,uDAAAA,EAAAA,eAAc,IACvBmQ,KAAK,YACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQK,I,mCAElC1wB,EAAAA,EAAAA,IAIEwpB,EAAAA,C,WAHS9pB,EAAAA,e,uDAAAA,EAAAA,eAAc,IACvBmQ,KAAK,YACJ3L,MAAOxE,EAAAA,GAAG,kB,gCAEbM,EAAAA,EAAAA,IAAoDi3B,EAAAA,CAApCvM,SAAUhrB,EAAAA,gBAAgBw3B,Q,sBAC1Cl3B,EAAAA,EAAAA,IAMEwpB,EAAAA,C,WALS9pB,EAAAA,iB,uDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO+G,KAC9BjzB,MAAOxE,EAAAA,GAAG,mBACV,6BAAiD,IAAnBA,EAAAA,gB,mEAEjCM,EAAAA,EAAAA,IAMEwpB,EAAAA,C,WALS9pB,EAAAA,e,uDAAAA,EAAAA,eAAc,IACvBmQ,KAAK,YACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOgH,OAC9BlzB,MAAOxE,EAAAA,GAAG,kBACV,6BAAmD,IAArBA,EAAAA,kB,mEAEjCM,EAAAA,EAAAA,IAAoDi3B,EAAAA,CAApCvM,SAAUhrB,EAAAA,gBAAgB23B,Q,wBAE5C15B,EAAAA,EAAAA,GAmBM,MAnBNyc,GAmBM,EAlBJpa,EAAAA,EAAAA,IAIEwpB,EAAAA,C,WAHS9pB,EAAAA,a,uDAAAA,EAAAA,aAAY,IACrBmQ,KAAK,UACJ3L,MAAOxE,EAAAA,GAAG,wB,gCAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,iB,uDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOkH,Q,2CAEjCt3B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,iB,uDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ3L,MAAOxE,EAAAA,GAAG,kBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOmH,Q,2CAEjC55B,EAAAA,EAAAA,GAA+D,kBAAzD+B,EAAAA,GAAG,iDAAD,MAEV/B,EAAAA,EAAAA,GAAsD,mBAA/C+B,EAAAA,GAAG,sCAAD,IACT/B,EAAAA,EAAAA,GAaM,MAbN2rB,GAaM,EAZJtpB,EAAAA,EAAAA,IAIEwpB,EAAAA,C,WAHS9pB,EAAAA,e,uDAAAA,EAAAA,eAAc,IACvBmQ,KAAK,YACJ3L,MAAOxE,EAAAA,GAAG,kB,gCAEbM,EAAAA,EAAAA,IAAoDi3B,EAAAA,CAApCvM,SAAUhrB,EAAAA,gBAAgB83B,Q,sBAC1Cx3B,EAAAA,EAAAA,IAIEwpB,EAAAA,C,WAHS9pB,EAAAA,gB,uDAAAA,EAAAA,gBAAe,IACxBmQ,KAAK,aACJ3L,MAAOxE,EAAAA,GAAG,mB,gCAEbM,EAAAA,EAAAA,IAAqDi3B,EAAAA,CAArCvM,SAAUhrB,EAAAA,gBAAgB+3B,S,wBAE5C95B,EAAAA,EAAAA,GAaM,MAbNimB,GAaM,EAZJ5jB,EAAAA,EAAAA,IAIEwpB,EAAAA,C,WAHS9pB,EAAAA,iB,uDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ3L,MAAOxE,EAAAA,GAAG,oB,gCAEbM,EAAAA,EAAAA,IAAsDi3B,EAAAA,CAAtCvM,SAAUhrB,EAAAA,gBAAgBg4B,U,sBAC1C13B,EAAAA,EAAAA,IAIEwpB,EAAAA,C,WAHS9pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ3L,MAAOxE,EAAAA,GAAG,qB,gCAEbM,EAAAA,EAAAA,IAAuDi3B,EAAAA,CAAvCvM,SAAUhrB,EAAAA,gBAAgBi4B,W,wBAE5Ch6B,EAAAA,EAAAA,GAA2C,kBAArC+B,EAAAA,GAAG,6BAAD,WAGV/B,EAAAA,EAAAA,GA+jBM,OA9jBHuG,MAAOxE,EAAAA,GAAG,6CACXhC,MAAM,mB,EAENC,EAAAA,EAAAA,GAcM,MAdN6tB,GAcM,EAbJ7tB,EAAAA,EAAAA,GAAsC,kBAAhC+B,EAAAA,GAAG,wBAAD,IACR/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,gCAAEL,EAAAA,cAAAA,EAAAA,aAAAA,MAAAA,EAAAA,UAAY,K,QAEjBA,EAAAA,GAAG,0CAAD,IAEP/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,gCAAEL,EAAAA,SAAAA,EAAAA,QAAAA,MAAAA,EAAAA,UAAO,K,QAEZA,EAAAA,GAAG,sCAAD,MAGT/B,EAAAA,EAAAA,GAsEM,MAtEN4rB,GAsEM,EArEJ5rB,EAAAA,EAAAA,GAAwD,mBAAjD+B,EAAAA,GAAG,wCAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,mB,uDAAAA,EAAAA,mBAAkB,IAC3BmQ,KAAK,gBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOgH,OAC9BlzB,MAAOxE,EAAAA,GAAG,mB,2CAEbM,EAAAA,EAAAA,IAAsDi3B,EAAAA,CAAtCvM,SAAUhrB,EAAAA,gBAAgBk4B,U,sBAC1C53B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,wB,uDAAAA,EAAAA,wBAAuB,IAChCmQ,KAAK,qBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOyH,OAC9B3zB,MAAOxE,EAAAA,GAAG,uB,2CAEbM,EAAAA,EAAAA,IAA2Di3B,EAAAA,CAA3CvM,SAAUhrB,EAAAA,gBAAgBo4B,e,sBAC1Cn6B,EAAAA,EAAAA,GAAyD,mBAAlD+B,EAAAA,GAAG,yCAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,qB,uDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,aACJ3L,MAAOxE,EAAAA,GAAG,8CACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO2H,Y,2CAEjC/3B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,yB,uDAAAA,EAAAA,yBAAwB,IACjCmQ,KAAK,iBACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO4H,gB,2CAEjCh4B,EAAAA,EAAAA,IAGEi3B,EAAAA,CAFCvM,SAAUhrB,EAAAA,gBAAgBs4B,eAC3BvN,MAAA,I,sBAEFzqB,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,uB,uDAAAA,EAAAA,uBAAsB,IAC/BmQ,KAAK,eACJ3L,MAAOxE,EAAAA,GAAG,gDACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO6H,c,2CAEjCj4B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,2B,uDAAAA,EAAAA,2BAA0B,IACnCmQ,KAAK,mBACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO8H,kB,2CAEjCl4B,EAAAA,EAAAA,IAGEi3B,EAAAA,CAFCvM,SAAUhrB,EAAAA,gBAAgBw4B,iBAC3BzN,MAAA,I,sBAEFzqB,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,uB,uDAAAA,EAAAA,uBAAsB,IAC/BmQ,KAAK,eACJ3L,MAAOxE,EAAAA,GAAG,gDACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO+H,c,2CAEjCn4B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,2B,uDAAAA,EAAAA,2BAA0B,IACnCmQ,KAAK,mBACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOgI,kB,2CAEjCp4B,EAAAA,EAAAA,IAGEi3B,EAAAA,CAFCvM,SAAUhrB,EAAAA,gBAAgB04B,iBAC3B3N,MAAA,I,sBAEFzqB,EAAAA,EAAAA,IAIEypB,EAAAA,C,WAHS/pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQgI,O,qCAGpC16B,EAAAA,EAAAA,GAkBM,MAlBN8tB,GAkBM,EAjBJ9tB,EAAAA,EAAAA,GAAyD,mBAAlD+B,EAAAA,GAAG,yCAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,4B,uDAAAA,EAAAA,4BAA2B,IACpCmQ,KAAK,oBACJ3L,MAAOxE,EAAAA,GAAG,qDACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOkI,mB,2CAEjCt4B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,gC,uDAAAA,EAAAA,gCAA+B,IACxCmQ,KAAK,wBACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOmI,uB,2CAEjCv4B,EAAAA,EAAAA,IAGEi3B,EAAAA,CAFCvM,SAAUhrB,EAAAA,gBAAgB64B,sBAC3B9N,MAAA,I,wBAGJ9sB,EAAAA,EAAAA,GAkCM,MAlCN66B,GAkCM,EAjCJ76B,EAAAA,EAAAA,GAAgE,mBAAzD+B,EAAAA,GAAG,gDAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,gB,uDAAAA,EAAAA,gBAAe,IACxBmQ,KAAK,aACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOR,MAC9B1rB,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEypB,EAAAA,C,WAJS/pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQT,MAC/BtoB,SAA8B,gBAApB5H,EAAAA,iB,8CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oB,uDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,iBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOqI,UAC9Bv0B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAGEi3B,EAAAA,CAFCvM,SAAUhrB,EAAAA,gBAAgB+4B,UAC3BhO,MAAA,I,sBAEFzqB,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oB,uDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,iBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOsI,UAC9Bx0B,MAAOxE,EAAAA,GAAG,mB,2CAEbM,EAAAA,EAAAA,IAGEi3B,EAAAA,CAFCvM,SAAUhrB,EAAAA,gBAAgBg5B,UAC3BjO,MAAA,I,wBAGJ9sB,EAAAA,EAAAA,GAsBM,MAtBNksB,GAsBM,EArBJlsB,EAAAA,EAAAA,GAA2D,mBAApD+B,EAAAA,GAAG,2CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,iB,uDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOuI,OAC9Bz0B,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,qB,uDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,kBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOwI,WAC9B10B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAAwDi3B,EAAAA,CAAxCvM,SAAUhrB,EAAAA,gBAAgBk5B,Y,sBAC1C54B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,qB,uDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,kBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOyI,WAC9B30B,MAAOxE,EAAAA,GAAG,mB,2CAEbM,EAAAA,EAAAA,IAAwDi3B,EAAAA,CAAxCvM,SAAUhrB,EAAAA,gBAAgBm5B,Y,wBAE5Cl7B,EAAAA,EAAAA,GAqBM,MArBNm7B,GAqBM,EApBJn7B,EAAAA,EAAAA,GAA0D,mBAAnD+B,EAAAA,GAAG,0CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,gB,uDAAAA,EAAAA,gBAAe,IACxBmQ,KAAK,aACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOnxB,MAC9BiF,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEypB,EAAAA,C,WAJS/pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQpxB,MAC/BqI,SAA8B,gBAApB5H,EAAAA,iB,8CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oB,uDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,iBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO2I,UAC9B70B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAAuDi3B,EAAAA,CAAvCvM,SAAUhrB,EAAAA,gBAAgBq5B,W,wBAE5Cp7B,EAAAA,EAAAA,GAoHM,MApHNq7B,GAoHM,EAnHJr7B,EAAAA,EAAAA,GAA2D,mBAApD+B,EAAAA,GAAG,2CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,c,uDAAAA,EAAAA,cAAa,IACtBmQ,KAAK,WACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOV,IAC9BxrB,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEypB,EAAAA,C,WAJS/pB,EAAAA,gB,uDAAAA,EAAAA,gBAAe,IACxBmQ,KAAK,aACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQX,IAC/BpoB,SAA4B,gBAAlB5H,EAAAA,e,8CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO6I,QAC9B/0B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAAqDi3B,EAAAA,CAArCvM,SAAUhrB,EAAAA,gBAAgBu5B,S,sBAC1Cj5B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,uB,uDAAAA,EAAAA,uBAAsB,IAC/BmQ,KAAK,oBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO8I,aAC9Bh1B,MAAOxE,EAAAA,GAAG,gD,2CAEbM,EAAAA,EAAAA,IAA0Di3B,EAAAA,CAA1CvM,SAAUhrB,EAAAA,gBAAgBw5B,c,sBAC1Cl5B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,wB,uDAAAA,EAAAA,wBAAuB,IAChCmQ,KAAK,qBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO+I,cAC9Bj1B,MAAOxE,EAAAA,GAAG,2C,2CAEbM,EAAAA,EAAAA,IAA2Di3B,EAAAA,CAA3CvM,SAAUhrB,EAAAA,gBAAgBy5B,e,sBAC1Cx7B,EAAAA,EAAAA,GAA2D,mBAApD+B,EAAAA,GAAG,2CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,qB,uDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,kBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOgJ,WAC9Bl1B,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,yB,uDAAAA,EAAAA,yBAAwB,IACjCmQ,KAAK,sBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOiJ,eAC9Bn1B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAA4Di3B,EAAAA,CAA5CvM,SAAUhrB,EAAAA,gBAAgB25B,gB,sBAC1Cr5B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,8B,uDAAAA,EAAAA,8BAA6B,IACtCmQ,KAAK,2BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOkJ,oBAC9Bp1B,MAAOxE,EAAAA,GAAG,gD,2CAEbM,EAAAA,EAAAA,IAAiEi3B,EAAAA,CAAjDvM,SAAUhrB,EAAAA,gBAAgB45B,qB,sBAC1Ct5B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,+B,uDAAAA,EAAAA,+BAA8B,IACvCmQ,KAAK,4BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOmJ,qBAC9Br1B,MAAOxE,EAAAA,GAAG,2C,2CAEbM,EAAAA,EAAAA,IAAkEi3B,EAAAA,CAAlDvM,SAAUhrB,EAAAA,gBAAgB65B,sB,sBAC1C57B,EAAAA,EAAAA,GAA4D,mBAArD+B,EAAAA,GAAG,4CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,sB,uDAAAA,EAAAA,sBAAqB,IAC9BmQ,KAAK,mBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOoJ,YAC9Bt1B,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,0B,uDAAAA,EAAAA,0BAAyB,IAClCmQ,KAAK,uBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOqJ,gBAC9Bv1B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,+B,uDAAAA,EAAAA,+BAA8B,IACvCmQ,KAAK,4BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOsJ,qBAC9Bx1B,MAAOxE,EAAAA,GAAG,gD,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,gC,uDAAAA,EAAAA,gCAA+B,IACxCmQ,KAAK,6BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOuJ,sBAC9Bz1B,MAAOxE,EAAAA,GAAG,2C,2CAEb/B,EAAAA,EAAAA,GAA2D,mBAApD+B,EAAAA,GAAG,2CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,qB,uDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,kBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOwJ,WAC9B11B,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,yB,uDAAAA,EAAAA,yBAAwB,IACjCmQ,KAAK,sBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOyJ,eAC9B31B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAA4Di3B,EAAAA,CAA5CvM,SAAUhrB,EAAAA,gBAAgBm6B,gB,sBAC1C75B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,8B,uDAAAA,EAAAA,8BAA6B,IACtCmQ,KAAK,2BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO0J,oBAC9B51B,MAAOxE,EAAAA,GAAG,gD,2CAEbM,EAAAA,EAAAA,IAAiEi3B,EAAAA,CAAjDvM,SAAUhrB,EAAAA,gBAAgBo6B,qB,sBAC1C95B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,+B,uDAAAA,EAAAA,+BAA8B,IACvCmQ,KAAK,4BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO2J,qBAC9B71B,MAAOxE,EAAAA,GAAG,2C,2CAEbM,EAAAA,EAAAA,IAAkEi3B,EAAAA,CAAlDvM,SAAUhrB,EAAAA,gBAAgBq6B,sB,wBAE5Cp8B,EAAAA,EAAAA,GAsBM,MAtBNq8B,GAsBM,EArBJr8B,EAAAA,EAAAA,GAAwD,mBAAjD+B,EAAAA,GAAG,wCAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,c,uDAAAA,EAAAA,cAAa,IACtBmQ,KAAK,WACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO6J,IAC9B/1B,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO8J,QAC9Bh2B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAAqDi3B,EAAAA,CAArCvM,SAAUhrB,EAAAA,gBAAgBw6B,S,sBAC1Cl6B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,wB,uDAAAA,EAAAA,wBAAuB,IAChCmQ,KAAK,qBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO+J,cAC9Bj2B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAA2Di3B,EAAAA,CAA3CvM,SAAUhrB,EAAAA,gBAAgBy6B,e,wBAE5Cx8B,EAAAA,EAAAA,GAcM,MAdNy8B,GAcM,EAbJz8B,EAAAA,EAAAA,GAA2D,mBAApD+B,EAAAA,GAAG,2CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,iB,uDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOiK,OAC9Bn2B,MAAOxE,EAAAA,GAAG,gC,2CAEbM,EAAAA,EAAAA,IAKEypB,EAAAA,C,WAJS/pB,EAAAA,mB,uDAAAA,EAAAA,mBAAkB,IAC3BmQ,KAAK,gBACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQgK,OAC/B/yB,SAA+B,gBAArB5H,EAAAA,kB,gDAGf/B,EAAAA,EAAAA,GAyBM,MAzBN28B,GAyBM,EAxBJ38B,EAAAA,EAAAA,GAA8D,mBAAvD+B,EAAAA,GAAG,8CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,gB,uDAAAA,EAAAA,gBAAe,IACxBmQ,KAAK,aACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOmK,MAC9Br2B,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oB,uDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,iBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOoK,UAC9Bt2B,MAAOxE,EAAAA,GAAG,mB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,qB,uDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,kBACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOqK,WAC9Bv2B,MAAOxE,EAAAA,GAAG,gD,2CAEbM,EAAAA,EAAAA,IAIEypB,EAAAA,C,WAHS/pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQkK,O,qCAGpC58B,EAAAA,EAAAA,GAcM,MAdN+8B,GAcM,EAbJ/8B,EAAAA,EAAAA,GAA4D,mBAArD+B,EAAAA,GAAG,4CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,mB,uDAAAA,EAAAA,mBAAkB,IAC3BmQ,KAAK,WACJ3L,MAAOxE,EAAAA,GAAG,2CACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOuK,U,2CAEjC36B,EAAAA,EAAAA,IAKEypB,EAAAA,C,WAJS/pB,EAAAA,qB,uDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,kBACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQsK,SAC/BrzB,SAAmC,gBAAzB5H,EAAAA,sB,gDAGf/B,EAAAA,EAAAA,GAQM,MARNi9B,GAQM,EAPJj9B,EAAAA,EAAAA,GAA6D,mBAAtD+B,EAAAA,GAAG,6CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oB,uDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,YACJ3L,MAAOxE,EAAAA,GAAG,4CACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOyK,W,6CAGnCl9B,EAAAA,EAAAA,GAcM,MAdNm9B,GAcM,EAbJn9B,EAAAA,EAAAA,GAAwD,mBAAjD+B,EAAAA,GAAG,wCAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,e,uDAAAA,EAAAA,eAAc,IACvBmQ,KAAK,OACJ3L,MAAOxE,EAAAA,GAAG,uBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO2K,M,2CAEjC/6B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,mB,uDAAAA,EAAAA,mBAAkB,IAC3BmQ,KAAK,WACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO4K,U,6CAGnCr9B,EAAAA,EAAAA,GAQM,MARNs9B,GAQM,EAPJt9B,EAAAA,EAAAA,GAAyD,mBAAlD+B,EAAAA,GAAG,yCAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,e,uDAAAA,EAAAA,eAAc,IACvBmQ,KAAK,OACJ3L,MAAOxE,EAAAA,GAAG,wCACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOtwB,M,6CAGnCnC,EAAAA,EAAAA,GAsBM,MAtBNu9B,GAsBM,EArBJv9B,EAAAA,EAAAA,GAA6D,mBAAtD+B,EAAAA,GAAG,6CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oB,uDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,YACJ3L,MAAOxE,EAAAA,GAAG,uBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO+K,W,2CAEjCn7B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,wB,uDAAAA,EAAAA,wBAAuB,IAChCmQ,KAAK,gBACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOgL,e,2CAEjCp7B,EAAAA,EAAAA,IAA2Di3B,EAAAA,CAA3CvM,SAAUhrB,EAAAA,gBAAgB07B,e,sBAC1Cp7B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,wB,uDAAAA,EAAAA,wBAAuB,IAChCmQ,KAAK,gBACJ3L,MAAOxE,EAAAA,GAAG,kBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOiL,e,2CAEjCr7B,EAAAA,EAAAA,IAA2Di3B,EAAAA,CAA3CvM,SAAUhrB,EAAAA,gBAAgB27B,e,wBAE5C19B,EAAAA,EAAAA,GA4BM,MA5BN29B,GA4BM,EA3BJ39B,EAAAA,EAAAA,GAA2D,mBAApD+B,EAAAA,GAAG,2CAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,kB,uDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,UACJ3L,MAAOxE,EAAAA,GAAG,uBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOmL,S,2CAEjCv7B,EAAAA,EAAAA,IAKEypB,EAAAA,C,WAJS/pB,EAAAA,oB,uDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,iBACJ8W,SAAUjnB,EAAAA,aAAa2wB,QAAQkL,QAC/Bj0B,SAAkC,gBAAxB5H,EAAAA,qB,8CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,sB,uDAAAA,EAAAA,sBAAqB,IAC9BmQ,KAAK,cACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOoL,a,2CAEjCx7B,EAAAA,EAAAA,IAAyDi3B,EAAAA,CAAzCvM,SAAUhrB,EAAAA,gBAAgB87B,a,sBAC1Cx7B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,sB,uDAAAA,EAAAA,sBAAqB,IAC9BmQ,KAAK,cACJ3L,MAAOxE,EAAAA,GAAG,kBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOqL,a,2CAEjCz7B,EAAAA,EAAAA,IAAyDi3B,EAAAA,CAAzCvM,SAAUhrB,EAAAA,gBAAgB+7B,a,wBAE5C99B,EAAAA,EAAAA,GAsBM,MAtBN+9B,GAsBM,EArBJ/9B,EAAAA,EAAAA,GAAgE,mBAAzD+B,EAAAA,GAAG,gDAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,uB,uDAAAA,EAAAA,uBAAsB,IAC/BmQ,KAAK,eACJ3L,MAAOxE,EAAAA,GAAG,uBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOuL,c,2CAEjC37B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,2B,uDAAAA,EAAAA,2BAA0B,IACnCmQ,KAAK,mBACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOwL,kB,2CAEjC57B,EAAAA,EAAAA,IAA8Di3B,EAAAA,CAA9CvM,SAAUhrB,EAAAA,gBAAgBk8B,kB,sBAC1C57B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,2B,uDAAAA,EAAAA,2BAA0B,IACnCmQ,KAAK,mBACJ3L,MAAOxE,EAAAA,GAAG,kBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAOyL,kB,2CAEjC77B,EAAAA,EAAAA,IAA8Di3B,EAAAA,CAA9CvM,SAAUhrB,EAAAA,gBAAgBm8B,kB,wBAE5Cl+B,EAAAA,EAAAA,GAsBM,MAtBNm+B,GAsBM,EArBJn+B,EAAAA,EAAAA,GAAgE,mBAAzD+B,EAAAA,GAAG,gDAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,uB,uDAAAA,EAAAA,uBAAsB,IAC/BmQ,KAAK,eACJ3L,MAAOxE,EAAAA,GAAG,uBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO2L,c,2CAEjC/7B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,2B,uDAAAA,EAAAA,2BAA0B,IACnCmQ,KAAK,mBACJ3L,MAAOxE,EAAAA,GAAG,iBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO4L,kB,2CAEjCh8B,EAAAA,EAAAA,IAA8Di3B,EAAAA,CAA9CvM,SAAUhrB,EAAAA,gBAAgBs8B,kB,sBAC1Ch8B,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,2B,uDAAAA,EAAAA,2BAA0B,IACnCmQ,KAAK,mBACJ3L,MAAOxE,EAAAA,GAAG,kBACVinB,SAAUjnB,EAAAA,aAAa0wB,OAAO6L,kB,2CAEjCj8B,EAAAA,EAAAA,IAA8Di3B,EAAAA,CAA9CvM,SAAUhrB,EAAAA,gBAAgBu8B,kB,wBAE5Ct+B,EAAAA,EAAAA,GA0DM,MA1DNu+B,GA0DM,EAzDJv+B,EAAAA,EAAAA,GAAgC,mBAAzB+B,EAAAA,GAAG,gBAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,iB,uDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOM,GAC9BxsB,MAAOxE,EAAAA,GAAG,wB,2CAEb/B,EAAAA,EAAAA,GAAiE,mBAA1D+B,EAAAA,GAAG,iDAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,gC,uDAAAA,EAAAA,gCAA+B,IACxCmQ,KAAK,6BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOM,GAC9BxsB,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,kC,uDAAAA,EAAAA,kCAAiC,IAC1CmQ,KAAK,+BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOnF,KAC9B/mB,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,kC,uDAAAA,EAAAA,kCAAiC,IAC1CmQ,KAAK,+BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO+G,KAC9BjzB,MAAOxE,EAAAA,GAAG,mB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oC,uDAAAA,EAAAA,oCAAmC,IAC5CmQ,KAAK,qCACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOoF,GAC9BtxB,MAAOxE,EAAAA,GAAG,+C,2CAEb/B,EAAAA,EAAAA,GAAiE,mBAA1D+B,EAAAA,GAAG,iDAAD,IACTM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,gC,yDAAAA,EAAAA,gCAA+B,IACxCmQ,KAAK,6BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOM,GAC9BxsB,MAAOxE,EAAAA,GAAG,wB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,kC,yDAAAA,EAAAA,kCAAiC,IAC1CmQ,KAAK,+BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOnF,KAC9B/mB,MAAOxE,EAAAA,GAAG,kB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,kC,yDAAAA,EAAAA,kCAAiC,IAC1CmQ,KAAK,+BACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAO+G,KAC9BjzB,MAAOxE,EAAAA,GAAG,mB,2CAEbM,EAAAA,EAAAA,IAKEwpB,EAAAA,C,WAJS9pB,EAAAA,oC,yDAAAA,EAAAA,oCAAmC,IAC5CmQ,KAAK,qCACJ8W,SAAUjnB,EAAAA,aAAa0wB,OAAOM,GAC9BxsB,MAAOxE,EAAAA,GAAG,+C,oDAKjB/B,EAAAA,EAAAA,GAqFM,OApFHuG,MAAOxE,EAAAA,GAAG,mCACXhC,MAAM,oB,EAENC,EAAAA,EAAAA,GAQM,MARNw+B,GAQM,EAPJx+B,EAAAA,EAAAA,GAAsC,kBAAhC+B,EAAAA,GAAG,wBAAD,IACR/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,kCAAEL,EAAAA,gBAAAA,EAAAA,eAAAA,MAAAA,EAAAA,UAAc,K,QAEnBA,EAAAA,GAAG,sCAAD,MAGTM,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,e,yDAAAA,EAAAA,eAAc,IACvBmQ,KAAK,YACJ3L,MAAOxE,EAAAA,GAAG,sBACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMZ,IAC9BpI,IAAI,KACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,iB,yDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ3L,MAAOxE,EAAAA,GAAG,wBACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMrxB,MAC9BqoB,IAAI,IACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,oB,yDAAAA,EAAAA,oBAAmB,IAC5BmQ,KAAK,iBACJ3L,MAAOxE,EAAAA,GAAG,2BACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMX,SAC9BrI,IAAI,KACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,iB,yDAAAA,EAAAA,iBAAgB,IACzBmQ,KAAK,cACJ3L,MAAOxE,EAAAA,GAAG,wBACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMV,MAC9BtI,IAAI,KACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,kB,yDAAAA,EAAAA,kBAAiB,IAC1BmQ,KAAK,eACJ3L,MAAOxE,EAAAA,GAAG,yBACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAM9N,OAC9B8E,IAAI,KACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,qB,yDAAAA,EAAAA,qBAAoB,IAC7BmQ,KAAK,kBACJ3L,MAAOxE,EAAAA,GAAG,4BACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMT,UAC9BvI,IAAI,KACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,sB,yDAAAA,EAAAA,sBAAqB,IAC9BmQ,KAAK,mBACJ3L,MAAOxE,EAAAA,GAAG,6BACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMP,WAC9BzI,IAAI,KACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,mB,yDAAAA,EAAAA,mBAAkB,IAC3BmQ,KAAK,gBACJ3L,MAAOxE,EAAAA,GAAG,0BACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMR,QAC9BxI,IAAI,KACJ,WAAS,K,2CAEXtnB,EAAAA,EAAAA,IAOEo8B,EAAAA,C,WANS18B,EAAAA,uB,yDAAAA,EAAAA,uBAAsB,IAC/BmQ,KAAK,oBACJ3L,MAAOxE,EAAAA,GAAG,8BACVinB,SAAUjnB,EAAAA,aAAa4wB,MAAMN,aAAe,EAC7C1I,IAAI,KACJ,WAAS,K,kDAIb3pB,EAAAA,EAAAA,GAiFM,OAhFHuG,MAAOxE,EAAAA,GAAG,qCACXhC,MAAM,oB,EAENC,EAAAA,EAAAA,GA4CM,MA5CN0+B,GA4CM,EA3CJ1+B,EAAAA,EAAAA,GAgBM,MAhBN2+B,GAgBM,mBAfD58B,EAAAA,GAAG,qCAAsC,KAC5C,QAAG,KAAM,IACT,YAYSgR,EAAAA,CAXP5N,GAAG,kB,WACMpD,EAAAA,e,yDAAAA,EAAAA,eAAc,IACvBhC,MAAM,mB,mBAGJ,iBAAkC,gBADpC4B,EAAAA,EAAAA,IAMSuF,EAAAA,GAAAA,MAAAA,EAAAA,EAAAA,IALUnF,EAAAA,kBAAgB,SAA1B2pB,G,kBADT/pB,EAAAA,EAAAA,IAMS,UAJNyF,IAAKskB,EACLlgB,MAAOkgB,I,QAEL3pB,EAAAA,GAAG,qCAAuC2pB,IAAM,K,wCAIzD1rB,EAAAA,EAAAA,GAmBM,MAnBN4+B,GAmBM,EAlBJ5+B,EAAAA,EAAAA,GAKQ,QALR6+B,IAKQ,QADH98B,EAAAA,GAAG,oCAAD,YACC,KACR,QAAG,KAAM,MACT,gBAMC,SALCoD,GAAG,W,yDACMpD,EAAAA,uBAAsB,IAC/BmQ,KAAK,WACLnS,MAAM,iBACNO,KAAK,Y,kBAHIyB,EAAAA,0BAKX+8B,MAKF9+B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,kCAAEL,EAAAA,cAAAA,EAAAA,aAAAA,MAAAA,EAAAA,UAAY,K,QAEjBA,EAAAA,GAAG,sCAAD,MAGTM,EAAAA,EAAAA,IAIE08B,EAAAA,C,WAHSh9B,EAAAA,c,yDAAAA,EAAAA,cAAa,IACrByS,QAASzS,EAAAA,sBACTinB,SAAUjnB,EAAAA,uB,0CAEiB,WAAnBA,EAAAA,gBAAkD,iBAAnBA,EAAAA,iBAAc,WAAxDJ,EAAAA,EAAAA,IA0BM,WAzBJU,EAAAA,EAAAA,IAMS0pB,EAAAA,CALPC,MAAM,SACNC,QAAQ,wDACR3P,IAAI,K,mBAEJ,iBAAkC,CAAlC0iB,G,WAEFh/B,EAAAA,EAAAA,GAAkE,kBAA5D+B,EAAAA,GAAG,oDAAD,IACRM,EAAAA,EAAAA,IAQS0pB,EAAAA,CAPPC,MAAM,SACNC,QAAQ,wDACR3P,IAAI,K,mBAEJ,iBAAwB,CAAxB2iB,GACAC,GACAC,G,WAEF98B,EAAAA,EAAAA,IAMS0pB,EAAAA,CALPC,MAAM,SACNC,QAAQ,mDACR3P,IAAI,K,mBAEJ,iBAAuB,CAAvB8iB,G,WAEFp/B,EAAAA,EAAAA,GAAiE,kBAA3D+B,EAAAA,GAAG,mDAAD,8BAIZ/B,EAAAA,EAAAA,GAsCM,OArCHuG,MAAOxE,EAAAA,GAAG,mCACXhC,MAAM,mB,EAENC,EAAAA,EAAAA,GAQM,MARNq/B,GAQM,EAPJr/B,EAAAA,EAAAA,GAA4C,kBAAtC+B,EAAAA,GAAG,8BAAD,IACR/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,kCAAEL,EAAAA,YAAAA,EAAAA,WAAAA,MAAAA,EAAAA,UAAU,K,QAEfA,EAAAA,GAAG,sCAAD,MAGTM,EAAAA,EAAAA,IAMEi9B,EAAAA,C,WALSv9B,EAAAA,WAAU,U,yDAAVA,EAAAA,WAAU,UAAU,IAC7BmQ,KAAK,KACJ3L,MAAOxE,EAAAA,GAAG,6CACVinB,SAAUjnB,EAAAA,aAAa8wB,MAAK,UAC7B,aAAW,K,2CAEbxwB,EAAAA,EAAAA,IAKEi9B,EAAAA,C,WAJSv9B,EAAAA,WAAWT,M,yDAAXS,EAAAA,WAAWT,MAAK,IACzB4Q,KAAK,QACJ3L,MAAOxE,EAAAA,GAAG,yCACVinB,SAAUjnB,EAAAA,aAAa8wB,MAAMvxB,O,2CAEhCe,EAAAA,EAAAA,IAKEi9B,EAAAA,C,WAJSv9B,EAAAA,WAAWw9B,K,yDAAXx9B,EAAAA,WAAWw9B,KAAI,IACxBrtB,KAAK,OACJ3L,MAAOxE,EAAAA,GAAG,wCACVinB,SAAUjnB,EAAAA,aAAa8wB,MAAM0M,M,2CAEhCl9B,EAAAA,EAAAA,IAKEi9B,EAAAA,C,WAJSv9B,EAAAA,WAAWy9B,S,yDAAXz9B,EAAAA,WAAWy9B,SAAQ,IAC5BttB,KAAK,WACJ3L,MAAOxE,EAAAA,GAAG,4CACVinB,SAAUjnB,EAAAA,aAAa8wB,MAAM2M,U,mEAO9Bz9B,EAAAA,WAAQ,WADhBC,EAAAA,EAAAA,IAmBWy9B,EAAAA,GAAAA,C,MAjBTC,GAAG,uB,EAEH1/B,EAAAA,EAAAA,GAcM,MAdN2/B,GAcM,EAbJ3/B,EAAAA,EAAAA,GAMS,UALPD,MAAM,4BACL4J,UAAW5H,EAAAA,WACXK,QAAK,kCAAEL,EAAAA,gBAAAA,EAAAA,eAAAA,MAAAA,EAAAA,UAAc,K,QAEnBA,EAAAA,GAAG,kBAAD,OAEP/B,EAAAA,EAAAA,GAKS,UAJPD,MAAM,qBACLqC,QAAK,kCAAEL,EAAAA,UAAAA,EAAAA,SAAAA,MAAAA,EAAAA,UAAQ,K,QAEbA,EAAAA,GAAG,kCAAD,yB,KmBv/Bf9B,EAAAA,GAAAA,IACE+P,EAAAA,IACA4vB,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,GACAC,EAAAA,KAuDF,SApD6B,CAC3B77B,WAAY,CACVoJ,YAAAA,EAAAA,EAEA0yB,oBAAAA,EACAC,kBAAAA,GACAC,iBAAAA,GACAC,aAAAA,GACAC,YAAAA,GACAphB,WAAAA,GACAqhB,WAAAA,GACAC,WAAAA,GACAC,SAAAA,IAEFj8B,SAAU,CACRk8B,WAAU,WACR,QAASv/B,KAAK8C,OAAOU,MAAMG,MAAMC,WACnC,EACA47B,KAAI,WACF,MAA0D,WAAnDx/B,KAAK8C,OAAOU,MAAK,UAAWi8B,kBACrC,EACAC,SAAQ,WACN,MAA0D,YAAnD1/B,KAAK8C,OAAOU,MAAK,UAAWi8B,kBACrC,GAEF3/B,QAAS,CACP0kB,OAAM,WACJ,IAAMmb,EAAY3/B,KAAK8C,OAAOU,MAAK,UAAWo8B,uBAE9C,GAAID,EAAW,CACb,IAAME,EAAW7/B,KAAKC,MAAM4zB,YAAY/nB,OAAM,UAAWg0B,WAAU,SAAAC,GACjE,OAAOA,EAAI/gC,OAAS+gC,EAAI/gC,MAAM,mBAAqB2gC,CACrD,IACIE,GAAY,GACd7/B,KAAKC,MAAM4zB,YAAYmM,OAAOH,EAElC,CAGA7/B,KAAK8C,OAAOC,SAAS,8BACvB,GAEF6T,QAAO,WACL5W,KAAKwkB,QACP,EACArd,MAAO,CACLq4B,KAAM,SAAUp1B,GACVA,GAAOpK,KAAKwkB,QAClB,IC1EJ,IAFiC,OAAgB,GAAQ,CAAC,CAAC,S,+TCNzD5jB,EAAAA,EAAAA,IA4EeoN,EAAAA,CA3EbvN,IAAI,cACJ9B,MAAM,wBACL,gBAAc,EACd,mBAAiB,EACjB,mBAAkBgC,EAAAA,U,mBAEnB,iBAMM,EANN/B,EAAAA,EAAAA,GAMM,OALHuG,MAAOxE,EAAAA,GAAG,oBACXI,KAAK,SACL,gBAAc,W,EAEdE,EAAAA,EAAAA,IAAcg/B,IAAAA,EAAAA,GAGRt/B,EAAAA,aAAU,WADlBJ,EAAAA,EAAAA,IAOM,O,MALH4E,MAAOxE,EAAAA,GAAG,wBACXI,KAAK,OACL,gBAAc,W,EAEdE,EAAAA,EAAAA,IAAci/B,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,IAAAA,GAGRv/B,EAAAA,aAAU,WADlBJ,EAAAA,EAAAA,IAOM,O,MALH4E,MAAOxE,EAAAA,GAAG,yBACXI,KAAK,OACL,gBAAc,Y,EAEdE,EAAAA,EAAAA,IAAek/B,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,IAAAA,IAEjBvhC,EAAAA,EAAAA,GAMM,OALHuG,MAAOxE,EAAAA,GAAG,sBACXI,KAAK,SACL,gBAAc,a,EAEdE,EAAAA,EAAAA,IAAgBm/B,IAAAA,EAAAA,IAElBxhC,EAAAA,EAAAA,GAMM,OALHuG,MAAOxE,EAAAA,GAAG,kBACXI,KAAK,cACL,gBAAc,S,EAEdE,EAAAA,EAAAA,IAAYo/B,IAAAA,EAAAA,GAGN1/B,EAAAA,aAAU,WADlBJ,EAAAA,EAAAA,IAOM,O,MALH4E,MAAOxE,EAAAA,GAAG,0BACXI,KAAK,OACL,gBAAc,iB,EAEdE,EAAAA,EAAAA,IAAoBq/B,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,IAAAA,GAGd3/B,EAAAA,aAAU,WADlBJ,EAAAA,EAAAA,IAOM,O,MALH4E,MAAOxE,EAAAA,GAAG,mCACXI,KAAK,WACL,gBAAc,oB,EAEdE,EAAAA,EAAAA,IAAuBs/B,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,IAAAA,GAGjB5/B,EAAAA,aAAU,WADlBJ,EAAAA,EAAAA,IAQM,O,MANH4E,MAAOxE,EAAAA,GAAG,6BACV6/B,YAAY,EACbz/B,KAAK,YACL,gBAAc,kB,EAEdE,EAAAA,EAAAA,IAAqBw/B,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,IAAAA,IAEvB7hC,EAAAA,EAAAA,GAMM,OALHuG,MAAOxE,EAAAA,GAAG,0BACXI,KAAK,OACL,gBAAc,W,EAEdE,EAAAA,EAAAA,IAAcy/B,IAAAA,EAAAA,G","sources":["webpack://pleroma_fe/./src/components/settings_modal/tabs/data_import_export_tab.vue","webpack://pleroma_fe/./src/components/importer/importer.vue","webpack://pleroma_fe/./src/components/importer/importer.js","webpack://pleroma_fe/./src/components/importer/importer.vue?a48c","webpack://pleroma_fe/./src/components/exporter/exporter.vue","webpack://pleroma_fe/./src/components/exporter/exporter.js","webpack://pleroma_fe/./src/components/exporter/exporter.vue?49d4","webpack://pleroma_fe/./src/components/settings_modal/tabs/data_import_export_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/data_import_export_tab.vue?3b3e","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.js","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue?ed00","webpack://pleroma_fe/./src/components/block_card/block_card.vue","webpack://pleroma_fe/./src/components/block_card/block_card.js","webpack://pleroma_fe/./src/components/block_card/block_card.vue?98f0","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue","webpack://pleroma_fe/./src/components/mute_card/mute_card.js","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue?716e","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.js","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue?06f5","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.js","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue?5249","webpack://pleroma_fe/./src/hocs/with_subscription/with_subscription.jsx","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.vue?8a44","webpack://pleroma_fe/./src/components/settings_modal/tabs/notifications_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/boolean_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue?d3ff","webpack://pleroma_fe/./src/components/settings_modal/helpers/server_side_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/server_side_indicator.vue?7a7f","webpack://pleroma_fe/./src/components/settings_modal/helpers/boolean_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/boolean_setting.vue?ef04","webpack://pleroma_fe/./src/components/settings_modal/helpers/shared_computed_object.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/notifications_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/notifications_tab.vue?6ae7","webpack://pleroma_fe/./src/components/settings_modal/tabs/filtering_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/choice_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/choice_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/choice_setting.vue?672b","webpack://pleroma_fe/./src/components/settings_modal/helpers/integer_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/integer_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/integer_setting.vue?de6c","webpack://pleroma_fe/./src/components/settings_modal/tabs/filtering_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/filtering_tab.vue?d491","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/security_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue?d03b","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_totp.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/confirm.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/confirm.vue?c451","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/confirm.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_totp.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_totp.vue?33f3","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue?eb32","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/security_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/security_tab.vue?9c71","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.vue","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.js","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue?4bc2","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.vue?f69a","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue?9e8f","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue?ba77","webpack://pleroma_fe/./src/components/settings_modal/tabs/version_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/version_tab.js","webpack://pleroma_fe/./src/services/version/version.service.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/version_tab.vue?9b58","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.vue","webpack://pleroma_fe/./src/components/color_input/color_input.vue","webpack://pleroma_fe/./src/components/color_input/color_input.vue?ea8c","webpack://pleroma_fe/./src/components/range_input/range_input.vue","webpack://pleroma_fe/./src/components/range_input/range_input.vue?9fff","webpack://pleroma_fe/./src/components/opacity_input/opacity_input.vue","webpack://pleroma_fe/./src/components/opacity_input/opacity_input.vue?ed56","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.js","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue?fe66","webpack://pleroma_fe/./src/components/font_control/font_control.js","webpack://pleroma_fe/./src/components/font_control/font_control.vue?d3f8","webpack://pleroma_fe/./src/components/font_control/font_control.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue?2ae9","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue?771c","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.js","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.vue?bfa7","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.vue?6fc2","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.vue"],"sourcesContent":["<template>\n <div\n :label=\"$t('settings.data_import_export_tab')\"\n >\n <div class=\"setting-item\">\n <h2>{{ $t('settings.follow_import') }}</h2>\n <p>{{ $t('settings.import_followers_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importFollows\"\n :success-message=\"$t('settings.follows_imported')\"\n :error-message=\"$t('settings.follow_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.follow_export') }}</h2>\n <Exporter\n :get-content=\"getFollowsContent\"\n filename=\"friends.csv\"\n :export-button-label=\"$t('settings.follow_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.block_import') }}</h2>\n <p>{{ $t('settings.import_blocks_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importBlocks\"\n :success-message=\"$t('settings.blocks_imported')\"\n :error-message=\"$t('settings.block_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.block_export') }}</h2>\n <Exporter\n :get-content=\"getBlocksContent\"\n filename=\"blocks.csv\"\n :export-button-label=\"$t('settings.block_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.mute_import') }}</h2>\n <p>{{ $t('settings.import_mutes_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importMutes\"\n :success-message=\"$t('settings.mutes_imported')\"\n :error-message=\"$t('settings.mute_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.mute_export') }}</h2>\n <Exporter\n :get-content=\"getMutesContent\"\n filename=\"mutes.csv\"\n :export-button-label=\"$t('settings.mute_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.account_backup') }}</h2>\n <p>{{ $t('settings.account_backup_description') }}</p>\n <table>\n <thead>\n <tr>\n <th>{{ $t('settings.account_backup_table_head') }}</th>\n <th />\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"backup in backups\"\n :key=\"backup.id\"\n >\n <td>{{ backup.inserted_at }}</td>\n <td class=\"actions\">\n <a\n v-if=\"backup.processed\"\n target=\"_blank\"\n :href=\"backup.url\"\n >\n {{ $t('settings.download_backup') }}\n </a>\n <span\n v-else-if=\"backup.state === 'running'\"\n >\n {{ $tc('settings.backup_running', backup.processed_number, { number: backup.processed_number }) }}\n </span>\n <span\n v-else-if=\"backup.state === 'failed'\"\n >\n {{ $t('settings.backup_failed') }}\n </span>\n <span\n v-else\n >\n {{ $t('settings.backup_not_ready') }}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n <div\n v-if=\"listBackupsError\"\n class=\"alert error\"\n >\n {{ $t('settings.list_backups_error', { error }) }}\n <button\n :title=\"$t('settings.hide_list_backups_error_action')\"\n @click=\"listBackupsError = false\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <button\n class=\"btn button-default\"\n @click=\"addBackup\"\n >\n {{ $t('settings.add_backup') }}\n </button>\n <p v-if=\"addedBackup\">\n {{ $t('settings.added_backup') }}\n </p>\n <template v-if=\"addBackupError !== false\">\n <p>{{ $t('settings.add_backup_error', { error: addBackupError }) }}</p>\n </template>\n </div>\n </div>\n</template>\n\n<script src=\"./data_import_export_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <div class=\"importer\">\n <form>\n <input\n ref=\"input\"\n type=\"file\"\n @change=\"change\"\n >\n </form>\n <FAIcon\n v-if=\"submitting\"\n class=\"importer-uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else\n class=\"btn button-default\"\n @click=\"submit\"\n >\n {{ submitButtonLabel || $t('importer.submit') }}\n </button>\n <div v-if=\"success\">\n <button\n class=\"button-unstyled\"\n @click=\"dismiss\"\n >\n <FAIcon\n icon=\"times\"\n />\n </button>\n {{ ' ' }}\n <span>{{ successMessage || $t('importer.success') }}</span>\n </div>\n <div v-else-if=\"error\">\n <button\n class=\"button-unstyled\"\n @click=\"dismiss\"\n >\n <FAIcon\n icon=\"times\"\n />\n </button>\n {{ ' ' }}\n <span>{{ errorMessage || $t('importer.error') }}</span>\n </div>\n </div>\n</template>\n\n<script src=\"./importer.js\"></script>\n\n<style lang=\"scss\">\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faTimes\n)\n\nconst Importer = {\n props: {\n submitHandler: {\n type: Function,\n required: true\n },\n submitButtonLabel: { type: String },\n successMessage: { type: String },\n errorMessage: { type: String }\n },\n data () {\n return {\n file: null,\n error: false,\n success: false,\n submitting: false\n }\n },\n methods: {\n change () {\n this.file = this.$refs.input.files[0]\n },\n submit () {\n this.dismiss()\n this.submitting = true\n this.submitHandler(this.file)\n .then(() => { this.success = true })\n .catch(() => { this.error = true })\n .finally(() => { this.submitting = false })\n },\n dismiss () {\n this.success = false\n this.error = false\n }\n }\n}\n\nexport default Importer\n","import { render } from \"./importer.vue?vue&type=template&id=24f20fa0\"\nimport script from \"./importer.js?vue&type=script&lang=js\"\nexport * from \"./importer.js?vue&type=script&lang=js\"\n\nimport \"./importer.vue?vue&type=style&index=0&id=24f20fa0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"exporter\">\n <div v-if=\"processing\">\n <FAIcon\n icon=\"circle-notch\"\n size=\"lg\"\n spin\n />\n\n <span>{{ processingMessage || $t('exporter.processing') }}</span>\n </div>\n <button\n v-else\n class=\"btn button-default\"\n @click=\"process\"\n >\n {{ exportButtonLabel || $t('exporter.export') }}\n </button>\n </div>\n</template>\n\n<script src=\"./exporter.js\"></script>\n\n<style lang=\"scss\">\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst Exporter = {\n props: {\n getContent: {\n type: Function,\n required: true\n },\n filename: {\n type: String,\n default: 'export.csv'\n },\n exportButtonLabel: { type: String },\n processingMessage: { type: String }\n },\n data () {\n return {\n processing: false\n }\n },\n methods: {\n process () {\n this.processing = true\n this.getContent()\n .then((content) => {\n const fileToDownload = document.createElement('a')\n fileToDownload.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content))\n fileToDownload.setAttribute('download', this.filename)\n fileToDownload.style.display = 'none'\n document.body.appendChild(fileToDownload)\n fileToDownload.click()\n document.body.removeChild(fileToDownload)\n // Add delay before hiding processing state since browser takes some time to handle file download\n setTimeout(() => { this.processing = false }, 2000)\n })\n }\n }\n}\n\nexport default Exporter\n","import { render } from \"./exporter.vue?vue&type=template&id=6357fe6a\"\nimport script from \"./exporter.js?vue&type=script&lang=js\"\nexport * from \"./exporter.js?vue&type=script&lang=js\"\n\nimport \"./exporter.vue?vue&type=style&index=0&id=6357fe6a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Importer from 'src/components/importer/importer.vue'\nimport Exporter from 'src/components/exporter/exporter.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport { mapState } from 'vuex'\n\nconst DataImportExportTab = {\n data () {\n return {\n activeTab: 'profile',\n newDomainToMute: '',\n listBackupsError: false,\n addBackupError: false,\n addedBackup: false,\n backups: []\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n this.fetchBackups()\n },\n components: {\n Importer,\n Exporter,\n Checkbox\n },\n computed: {\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor,\n user: (state) => state.users.currentUser\n })\n },\n methods: {\n getFollowsContent () {\n return this.backendInteractor.exportFriends({ id: this.user.id })\n .then(this.generateExportableUsersContent)\n },\n getBlocksContent () {\n return this.backendInteractor.fetchBlocks()\n .then(this.generateExportableUsersContent)\n },\n getMutesContent () {\n return this.backendInteractor.fetchMutes()\n .then(this.generateExportableUsersContent)\n },\n importFollows (file) {\n return this.backendInteractor.importFollows({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importBlocks (file) {\n return this.backendInteractor.importBlocks({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importMutes (file) {\n return this.backendInteractor.importMutes({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n generateExportableUsersContent (users) {\n // Get addresses\n return users.map((user) => {\n // check is it's a local user\n if (user && user.is_local) {\n // append the instance address\n // eslint-disable-next-line no-undef\n return user.screen_name + '@' + location.hostname\n }\n return user.screen_name\n }).join('\\n')\n },\n addBackup () {\n this.$store.state.api.backendInteractor.addBackup()\n .then((res) => {\n this.addedBackup = true\n this.addBackupError = false\n })\n .catch((error) => {\n this.addedBackup = false\n this.addBackupError = error\n })\n .then(() => this.fetchBackups())\n },\n fetchBackups () {\n this.$store.state.api.backendInteractor.listBackups()\n .then((res) => {\n this.backups = res\n this.listBackupsError = false\n })\n .catch((error) => {\n this.listBackupsError = error.error\n })\n }\n }\n}\n\nexport default DataImportExportTab\n","import { render } from \"./data_import_export_tab.vue?vue&type=template&id=2a8891ee\"\nimport script from \"./data_import_export_tab.js?vue&type=script&lang=js\"\nexport * from \"./data_import_export_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <tab-switcher\n :scrollable-tabs=\"true\"\n class=\"mutes-and-blocks-tab\"\n >\n <div :label=\"$t('settings.blocks_tab')\">\n <div class=\"usersearch-wrapper\">\n <Autosuggest\n :filter=\"filterUnblockedUsers\"\n :query=\"queryUserIds\"\n :placeholder=\"$t('settings.search_user_to_block')\"\n >\n <template #default=\"row\">\n <BlockCard\n :user-id=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <BlockList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template #header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default bulk-action-button\"\n :click=\"() => blockUsers(selected)\"\n >\n {{ $t('user_card.block') }}\n <template #progress>\n {{ $t('user_card.block_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unblockUsers(selected)\"\n >\n {{ $t('user_card.unblock') }}\n <template #progress>\n {{ $t('user_card.unblock_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template #item=\"{item}\">\n <BlockCard :user-id=\"item\" />\n </template>\n <template #empty>\n {{ $t('settings.no_blocks') }}\n </template>\n </BlockList>\n </div>\n\n <div :label=\"$t('settings.mutes_tab')\">\n <tab-switcher>\n <div :label=\"$t('settings.user_mutes')\">\n <div class=\"usersearch-wrapper\">\n <Autosuggest\n :filter=\"filterUnMutedUsers\"\n :query=\"queryUserIds\"\n :placeholder=\"$t('settings.search_user_to_mute')\"\n >\n <template #default=\"row\">\n <MuteCard\n :user-id=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <MuteList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template #header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => muteUsers(selected)\"\n >\n {{ $t('user_card.mute') }}\n <template #progress>\n {{ $t('user_card.mute_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unmuteUsers(selected)\"\n >\n {{ $t('user_card.unmute') }}\n <template #progress>\n {{ $t('user_card.unmute_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template #item=\"{item}\">\n <MuteCard :user-id=\"item\" />\n </template>\n <template #empty>\n {{ $t('settings.no_mutes') }}\n </template>\n </MuteList>\n </div>\n\n <div :label=\"$t('settings.domain_mutes')\">\n <div class=\"domain-mute-form\">\n <Autosuggest\n :filter=\"filterUnMutedDomains\"\n :query=\"queryKnownDomains\"\n :placeholder=\"$t('settings.type_domains_to_mute')\"\n >\n <template #default=\"row\">\n <DomainMuteCard\n :domain=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <DomainMuteList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template #header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unmuteDomains(selected)\"\n >\n {{ $t('domain_mute_card.unmute') }}\n <template #progress>\n {{ $t('domain_mute_card.unmute_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template #item=\"{item}\">\n <DomainMuteCard :domain=\"item\" />\n </template>\n <template #empty>\n {{ $t('settings.no_mutes') }}\n </template>\n </DomainMuteList>\n </div>\n </tab-switcher>\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./mutes_and_blocks_tab.js\"></script>\n<style lang=\"scss\" src=\"./mutes_and_blocks_tab.scss\"></style>\n","<template>\n <div\n v-click-outside=\"onClickOutside\"\n class=\"autosuggest\"\n >\n <input\n v-model=\"term\"\n :placeholder=\"placeholder\"\n class=\"autosuggest-input\"\n @click=\"onInputClick\"\n >\n <div\n v-if=\"resultsVisible && filtered.length > 0\"\n class=\"autosuggest-results\"\n >\n <slot\n v-for=\"item in filtered\"\n :item=\"item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./autosuggest.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-style: solid;\n border-width: 1px;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n</style>\n","const debounceMilliseconds = 500\n\nexport default {\n props: {\n query: { // function to query results and return a promise\n type: Function,\n required: true\n },\n filter: { // function to filter results in real time\n type: Function\n },\n placeholder: {\n type: String,\n default: 'Search...'\n }\n },\n data () {\n return {\n term: '',\n timeout: null,\n results: [],\n resultsVisible: false\n }\n },\n computed: {\n filtered () {\n return this.filter ? this.filter(this.results) : this.results\n }\n },\n watch: {\n term (val) {\n this.fetchResults(val)\n }\n },\n methods: {\n fetchResults (term) {\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => {\n this.results = []\n if (term) {\n this.query(term).then((results) => { this.results = results })\n }\n }, debounceMilliseconds)\n },\n onInputClick () {\n this.resultsVisible = true\n },\n onClickOutside () {\n this.resultsVisible = false\n }\n }\n}\n","import { render } from \"./autosuggest.vue?vue&type=template&id=4e594b36\"\nimport script from \"./autosuggest.js?vue&type=script&lang=js\"\nexport * from \"./autosuggest.js?vue&type=script&lang=js\"\n\nimport \"./autosuggest.vue?vue&type=style&index=0&id=4e594b36&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <basic-user-card :user=\"user\">\n <div class=\"block-card-content-container\">\n <button\n v-if=\"blocked\"\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"unblockUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.unblock_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.unblock') }}\n </template>\n </button>\n <button\n v-else\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"blockUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.block_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.block') }}\n </template>\n </button>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./block_card.js\"></script>\n\n<style lang=\"scss\">\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst BlockCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n blocked () {\n return this.relationship.blocking\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unblockUser () {\n this.progress = true\n this.$store.dispatch('unblockUser', this.user.id).then(() => {\n this.progress = false\n })\n },\n blockUser () {\n this.progress = true\n this.$store.dispatch('blockUser', this.user.id).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default BlockCard\n","import { render } from \"./block_card.vue?vue&type=template&id=1c525ef4\"\nimport script from \"./block_card.js?vue&type=script&lang=js\"\nexport * from \"./block_card.js?vue&type=script&lang=js\"\n\nimport \"./block_card.vue?vue&type=style&index=0&id=1c525ef4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <basic-user-card :user=\"user\">\n <div class=\"mute-card-content-container\">\n <button\n v-if=\"muted\"\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"unmuteUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.unmute_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.unmute') }}\n </template>\n </button>\n <button\n v-else\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"muteUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.mute_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.mute') }}\n </template>\n </button>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./mute_card.js\"></script>\n\n<style lang=\"scss\">\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n\n button {\n width: 10em;\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst MuteCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n muted () {\n return this.relationship.muting\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unmuteUser () {\n this.progress = true\n this.$store.dispatch('unmuteUser', this.userId).then(() => {\n this.progress = false\n })\n },\n muteUser () {\n this.progress = true\n this.$store.dispatch('muteUser', this.userId).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default MuteCard\n","import { render } from \"./mute_card.vue?vue&type=template&id=7dda2f25\"\nimport script from \"./mute_card.js?vue&type=script&lang=js\"\nexport * from \"./mute_card.js?vue&type=script&lang=js\"\n\nimport \"./mute_card.vue?vue&type=style&index=0&id=7dda2f25&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"domain-mute-card\">\n <div class=\"domain-mute-card-domain\">\n {{ domain }}\n </div>\n <ProgressButton\n v-if=\"muted\"\n :click=\"unmuteDomain\"\n class=\"btn button-default\"\n >\n {{ $t('domain_mute_card.unmute') }}\n <template #progress>\n {{ $t('domain_mute_card.unmute_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-else\n :click=\"muteDomain\"\n class=\"btn button-default\"\n >\n {{ $t('domain_mute_card.mute') }}\n <template #progress>\n {{ $t('domain_mute_card.mute_progress') }}\n </template>\n </ProgressButton>\n </div>\n</template>\n\n<script src=\"./domain_mute_card.js\"></script>\n\n<style lang=\"scss\">\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n</style>\n","import ProgressButton from '../progress_button/progress_button.vue'\n\nconst DomainMuteCard = {\n props: ['domain'],\n components: {\n ProgressButton\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n muted () {\n return this.user.domainMutes.includes(this.domain)\n }\n },\n methods: {\n unmuteDomain () {\n return this.$store.dispatch('unmuteDomain', this.domain)\n },\n muteDomain () {\n return this.$store.dispatch('muteDomain', this.domain)\n }\n }\n}\n\nexport default DomainMuteCard\n","import { render } from \"./domain_mute_card.vue?vue&type=template&id=2e9027a8\"\nimport script from \"./domain_mute_card.js?vue&type=script&lang=js\"\nexport * from \"./domain_mute_card.js?vue&type=script&lang=js\"\n\nimport \"./domain_mute_card.vue?vue&type=style&index=0&id=2e9027a8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"selectable-list\">\n <div\n v-if=\"items.length > 0\"\n class=\"selectable-list-header\"\n >\n <div class=\"selectable-list-checkbox-wrapper\">\n <Checkbox\n :model-value=\"allSelected\"\n :indeterminate=\"someSelected\"\n @update:model-value=\"toggleAll\"\n >\n {{ $t('selectable_list.select_all') }}\n </Checkbox>\n </div>\n <div class=\"selectable-list-header-actions\">\n <slot\n name=\"header\"\n :selected=\"filteredSelected\"\n />\n </div>\n </div>\n <List\n :items=\"items\"\n :get-key=\"getKey\"\n >\n <template #item=\"{item}\">\n <div\n class=\"selectable-list-item-inner\"\n :class=\"{ 'selectable-list-item-selected-inner': isSelected(item) }\"\n >\n <div class=\"selectable-list-checkbox-wrapper\">\n <Checkbox\n :model-value=\"isSelected(item)\"\n @update:model-value=\"checked => toggle(checked, item)\"\n />\n </div>\n <slot\n name=\"item\"\n :item=\"item\"\n />\n </div>\n </template>\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </List>\n </div>\n</template>\n\n<script src=\"./selectable_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.selectable-list {\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-item-selected-inner {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: 0.6em 0;\n border-bottom: 2px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding: 0 10px;\n flex: none;\n }\n}\n</style>\n","import List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nconst SelectableList = {\n components: {\n List,\n Checkbox\n },\n props: {\n items: {\n type: Array,\n default: () => []\n },\n getKey: {\n type: Function,\n default: item => item.id\n }\n },\n data () {\n return {\n selected: []\n }\n },\n computed: {\n allKeys () {\n return this.items.map(this.getKey)\n },\n filteredSelected () {\n return this.allKeys.filter(key => this.selected.indexOf(key) !== -1)\n },\n allSelected () {\n return this.filteredSelected.length === this.items.length\n },\n noneSelected () {\n return this.filteredSelected.length === 0\n },\n someSelected () {\n return !this.allSelected && !this.noneSelected\n }\n },\n methods: {\n isSelected (item) {\n return this.filteredSelected.indexOf(this.getKey(item)) !== -1\n },\n toggle (checked, item) {\n const key = this.getKey(item)\n const oldChecked = this.isSelected(key)\n if (checked !== oldChecked) {\n if (checked) {\n this.selected.push(key)\n } else {\n this.selected.splice(this.selected.indexOf(key), 1)\n }\n }\n },\n toggleAll (value) {\n if (value) {\n this.selected = this.allKeys.slice(0)\n } else {\n this.selected = []\n }\n }\n }\n}\n\nexport default SelectableList\n","import { render } from \"./selectable_list.vue?vue&type=template&id=7a94fbea\"\nimport script from \"./selectable_list.js?vue&type=script&lang=js\"\nexport * from \"./selectable_list.js?vue&type=script&lang=js\"\n\nimport \"./selectable_list.vue?vue&type=style&index=0&id=7a94fbea&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// eslint-disable-next-line no-unused\nimport { h } from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_subscription.scss'\n\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst withSubscription = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n childPropName = 'content', // name of the prop to be passed into the wrapped component\n additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n const originalProps = Object.keys(getComponentProps(WrappedComponent))\n const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n return {\n props: [\n ...props,\n 'refresh' // boolean saying to force-fetch data whenever created\n ],\n data () {\n return {\n loading: false,\n error: false\n }\n },\n computed: {\n fetchedData () {\n return select(this.$props, this.$store)\n }\n },\n created () {\n if (this.refresh || isEmpty(this.fetchedData)) {\n this.fetchData()\n }\n },\n methods: {\n fetchData () {\n if (!this.loading) {\n this.loading = true\n this.error = false\n fetch(this.$props, this.$store)\n .then(() => {\n this.loading = false\n })\n .catch(() => {\n this.error = true\n this.loading = false\n })\n }\n }\n },\n render () {\n if (!this.error && !this.loading) {\n const props = {\n ...this.$props,\n [childPropName]: this.fetchedData\n }\n const children = this.$slots\n return (\n <div class=\"with-subscription\">\n <WrappedComponent {...props}>\n {children}\n </WrappedComponent>\n </div>\n )\n } else {\n return (\n <div class=\"with-subscription-loading\">\n {this.error\n ? <a onClick={this.fetchData} class=\"alert error\">{this.$t('general.generic_error')}</a>\n : <FAIcon spin icon=\"circle-notch\"/>\n }\n </div>\n )\n }\n }\n }\n}\n\nexport default withSubscription\n","import get from 'lodash/get'\nimport map from 'lodash/map'\nimport reject from 'lodash/reject'\nimport Autosuggest from 'src/components/autosuggest/autosuggest.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport BlockCard from 'src/components/block_card/block_card.vue'\nimport MuteCard from 'src/components/mute_card/mute_card.vue'\nimport DomainMuteCard from 'src/components/domain_mute_card/domain_mute_card.vue'\nimport SelectableList from 'src/components/selectable_list/selectable_list.vue'\nimport ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport withSubscription from 'src/components/../hocs/with_subscription/with_subscription'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\n\nconst BlockList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchBlocks'),\n select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst MuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst DomainMuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchDomainMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'domainMutes', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst MutesAndBlocks = {\n data () {\n return {\n activeTab: 'profile'\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n this.$store.dispatch('getKnownDomains')\n },\n components: {\n TabSwitcher,\n BlockList,\n MuteList,\n DomainMuteList,\n BlockCard,\n MuteCard,\n DomainMuteCard,\n ProgressButton,\n Autosuggest,\n Checkbox\n },\n computed: {\n knownDomains () {\n return this.$store.state.instance.knownDomains\n },\n user () {\n return this.$store.state.users.currentUser\n }\n },\n methods: {\n importFollows (file) {\n return this.$store.state.api.backendInteractor.importFollows({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importBlocks (file) {\n return this.$store.state.api.backendInteractor.importBlocks({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n generateExportableUsersContent (users) {\n // Get addresses\n return users.map((user) => {\n // check is it's a local user\n if (user && user.is_local) {\n // append the instance address\n // eslint-disable-next-line no-undef\n return user.screen_name + '@' + location.hostname\n }\n return user.screen_name\n }).join('\\n')\n },\n activateTab (tabName) {\n this.activeTab = tabName\n },\n filterUnblockedUsers (userIds) {\n return reject(userIds, (userId) => {\n const relationship = this.$store.getters.relationship(this.userId)\n return relationship.blocking || userId === this.user.id\n })\n },\n filterUnMutedUsers (userIds) {\n return reject(userIds, (userId) => {\n const relationship = this.$store.getters.relationship(this.userId)\n return relationship.muting || userId === this.user.id\n })\n },\n queryUserIds (query) {\n return this.$store.dispatch('searchUsers', { query })\n .then((users) => map(users, 'id'))\n },\n blockUsers (ids) {\n return this.$store.dispatch('blockUsers', ids)\n },\n unblockUsers (ids) {\n return this.$store.dispatch('unblockUsers', ids)\n },\n muteUsers (ids) {\n return this.$store.dispatch('muteUsers', ids)\n },\n unmuteUsers (ids) {\n return this.$store.dispatch('unmuteUsers', ids)\n },\n filterUnMutedDomains (urls) {\n return urls.filter(url => !this.user.domainMutes.includes(url))\n },\n queryKnownDomains (query) {\n return new Promise((resolve, reject) => {\n resolve(this.knownDomains.filter(url => url.toLowerCase().includes(query)))\n })\n },\n unmuteDomains (domains) {\n return this.$store.dispatch('unmuteDomains', domains)\n }\n }\n}\n\nexport default MutesAndBlocks\n","import { render } from \"./mutes_and_blocks_tab.vue?vue&type=template&id=41edf664\"\nimport script from \"./mutes_and_blocks_tab.js?vue&type=script&lang=js\"\nexport * from \"./mutes_and_blocks_tab.js?vue&type=script&lang=js\"\n\nimport \"./mutes_and_blocks_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.notifications')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.notification_setting_filters') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"serverSide_blockNotificationsFromStrangers\">\n {{ $t('settings.notification_setting_block_from_strangers') }}\n </BooleanSetting>\n </li>\n <li class=\"select-multiple\">\n <span class=\"label\">{{ $t('settings.notification_visibility') }}</span>\n <ul class=\"option-list\">\n <li>\n <BooleanSetting path=\"notificationVisibility.likes\">\n {{ $t('settings.notification_visibility_likes') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.repeats\">\n {{ $t('settings.notification_visibility_repeats') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.follows\">\n {{ $t('settings.notification_visibility_follows') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.mentions\">\n {{ $t('settings.notification_visibility_mentions') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.moves\">\n {{ $t('settings.notification_visibility_moves') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.emojiReactions\">\n {{ $t('settings.notification_visibility_emoji_reactions') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.polls\">\n {{ $t('settings.notification_visibility_polls') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n\n <div\n v-if=\"expertLevel > 0\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.notification_setting_privacy') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\"webPushNotifications\"\n expert=\"1\"\n >\n {{ $t('settings.enable_web_push_notifications') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"serverSide_webPushHideContents\"\n expert=\"1\"\n >\n {{ $t('settings.notification_setting_hide_notification_contents') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <p>{{ $t('settings.notification_mutes') }}</p>\n <p>{{ $t('settings.notification_blocks') }}</p>\n </div>\n </div>\n</template>\n\n<script src=\"./notifications_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"BooleanSetting\"\n >\n <Checkbox\n :model-value=\"state\"\n :disabled=\"disabled\"\n @update:modelValue=\"update\"\n >\n <span\n v-if=\"!!$slots.default\"\n class=\"label\"\n >\n <slot />\n </span>\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ServerSideIndicator :server-side=\"isServerSide\" />\n </Checkbox>\n </label>\n</template>\n\n<script src=\"./boolean_setting.js\"></script>\n","<template>\n <span\n v-if=\"changed\"\n class=\"ModifiedIndicator\"\n >\n <Popover\n trigger=\"hover\"\n :trigger-attrs=\"{ 'aria-label': $t('settings.setting_changed') }\"\n >\n <template #trigger>\n &nbsp;\n <FAIcon\n icon=\"wrench\"\n />\n </template>\n <template #content>\n <div class=\"modified-tooltip\">\n {{ $t('settings.setting_changed') }}\n </div>\n </template>\n </Popover>\n </span>\n</template>\n\n<script>\nimport Popover from 'src/components/popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench\n)\n\nexport default {\n components: { Popover },\n props: ['changed']\n}\n</script>\n\n<style lang=\"scss\">\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n</style>\n","import { render } from \"./modified_indicator.vue?vue&type=template&id=b12efb1c\"\nimport script from \"./modified_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./modified_indicator.vue?vue&type=script&lang=js\"\n\nimport \"./modified_indicator.vue?vue&type=style&index=0&id=b12efb1c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"serverSide\"\n class=\"ServerSideIndicator\"\n >\n <Popover\n trigger=\"hover\"\n >\n <template #trigger>\n &nbsp;\n <FAIcon\n icon=\"server\"\n :aria-label=\"$t('settings.setting_server_side')\"\n />\n </template>\n <template #content>\n <div class=\"serverside-tooltip\">\n {{ $t('settings.setting_server_side') }}\n </div>\n </template>\n </Popover>\n </span>\n</template>\n\n<script>\nimport Popover from 'src/components/popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faServer } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faServer\n)\n\nexport default {\n components: { Popover },\n props: ['serverSide']\n}\n</script>\n\n<style lang=\"scss\">\n.ServerSideIndicator {\n display: inline-block;\n position: relative;\n}\n\n.serverside-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n</style>\n","import { render } from \"./server_side_indicator.vue?vue&type=template&id=0363e54b\"\nimport script from \"./server_side_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./server_side_indicator.vue?vue&type=script&lang=js\"\n\nimport \"./server_side_indicator.vue?vue&type=style&index=0&id=0363e54b&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { get, set } from 'lodash'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport ServerSideIndicator from './server_side_indicator.vue'\nexport default {\n components: {\n Checkbox,\n ModifiedIndicator,\n ServerSideIndicator\n },\n props: [\n 'path',\n 'disabled',\n 'expert'\n ],\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isServerSide () {\n return this.path.startsWith('serverSide_')\n },\n isChanged () {\n return !this.path.startsWith('serverSide_') && this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n const [firstSegment, ...rest] = this.path.split('.')\n set(this.$parent, this.path, e)\n // Updating nested properties does not trigger update on its parent.\n // probably still not as reliable, but works for depth=1 at least\n if (rest.length > 0) {\n set(this.$parent, firstSegment, { ...get(this.$parent, firstSegment) })\n }\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n }\n }\n}\n","import { render } from \"./boolean_setting.vue?vue&type=template&id=2b40af98\"\nimport script from \"./boolean_setting.js?vue&type=script&lang=js\"\nexport * from \"./boolean_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defaultState as configDefaultState } from 'src/modules/config.js'\nimport { defaultState as serverSideConfigDefaultState } from 'src/modules/serverSideConfig.js'\n\nconst SharedComputedObject = () => ({\n user () {\n return this.$store.state.users.currentUser\n },\n // Getting values for default properties\n ...Object.keys(configDefaultState)\n .map(key => [\n key + 'DefaultValue',\n function () {\n return this.$store.getters.defaultConfig[key]\n }\n ])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Generating computed values for vuex properties\n ...Object.keys(configDefaultState)\n .map(key => [key, {\n get () { return this.$store.getters.mergedConfig[key] },\n set (value) {\n this.$store.dispatch('setOption', { name: key, value })\n }\n }])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n ...Object.keys(serverSideConfigDefaultState)\n .map(key => ['serverSide_' + key, {\n get () { return this.$store.state.serverSideConfig[key] },\n set (value) {\n this.$store.dispatch('setServerSideOption', { name: key, value })\n }\n }])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Special cases (need to transform values or perform actions first)\n useStreamingApi: {\n get () { return this.$store.getters.mergedConfig.useStreamingApi },\n set (value) {\n const promise = value\n ? this.$store.dispatch('enableMastoSockets')\n : this.$store.dispatch('disableMastoSockets')\n\n promise.then(() => {\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value })\n }).catch((e) => {\n console.error('Failed starting MastoAPI Streaming socket', e)\n this.$store.dispatch('disableMastoSockets')\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value: false })\n })\n }\n }\n})\n\nexport default SharedComputedObject\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\n\nconst NotificationsTab = {\n data () {\n return {\n activeTab: 'profile',\n notificationSettings: this.$store.state.users.currentUser.notification_settings,\n newDomainToMute: ''\n }\n },\n components: {\n BooleanSetting\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n ...SharedComputedObject()\n },\n methods: {\n updateNotificationSettings () {\n this.$store.state.api.backendInteractor\n .updateNotificationSettings({ settings: this.notificationSettings })\n }\n }\n}\n\nexport default NotificationsTab\n","import { render } from \"./notifications_tab.vue?vue&type=template&id=e4b944ee\"\nimport script from \"./notifications_tab.js?vue&type=script&lang=js\"\nexport * from \"./notifications_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.filtering')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.posts') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"hideFilteredStatuses\">\n {{ $t('settings.hide_filtered_statuses') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n :disabled=\"hideFilteredStatuses\"\n path=\"hideWordFilteredPosts\"\n >\n {{ $t('settings.hide_wordfiltered_statuses') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n :disabled=\"hideFilteredStatuses\"\n path=\"hideMutedThreads\"\n >\n {{ $t('settings.hide_muted_threads') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n :disabled=\"hideFilteredStatuses\"\n path=\"hideMutedPosts\"\n >\n {{ $t('settings.hide_muted_posts') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\"muteBotStatuses\">\n {{ $t('settings.mute_bot_posts') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hidePostStats\">\n {{ $t('settings.hide_post_stats') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideBotIndication\">\n {{ $t('settings.hide_bot_indication') }}\n </BooleanSetting>\n </li>\n <ChoiceSetting\n v-if=\"user\"\n id=\"replyVisibility\"\n path=\"replyVisibility\"\n :options=\"replyVisibilityOptions\"\n >\n {{ $t('settings.replies_in_timeline') }}\n </ChoiceSetting>\n <li>\n <h3>{{ $t('settings.wordfilter') }}</h3>\n <textarea\n id=\"muteWords\"\n v-model=\"muteWordsString\"\n class=\"resize-height\"\n />\n <div>{{ $t('settings.filtering_explanation') }}</div>\n </li>\n <h3>{{ $t('settings.attachments') }}</h3>\n <li>\n <IntegerSetting\n path=\"maxThumbnails\"\n expert=\"1\"\n :min=\"0\"\n >\n {{ $t('settings.max_thumbnails') }}\n </IntegerSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideAttachments\">\n {{ $t('settings.hide_attachments_in_tl') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideAttachmentsInConv\">\n {{ $t('settings.hide_attachments_in_convo') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n <div\n v-if=\"expertLevel > 0\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.user_profiles') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"hideUserStats\">\n {{ $t('settings.hide_user_stats') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n </div>\n</template>\n<script src=\"./filtering_tab.js\"></script>\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"ChoiceSetting\"\n >\n <slot />\n {{ ' ' }}\n <Select\n :model-value=\"state\"\n :disabled=\"disabled\"\n @update:modelValue=\"update\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.key\"\n :value=\"option.value\"\n >\n {{ option.label }}\n {{ option.value === defaultState ? $t('settings.instance_default_simple') : '' }}\n </option>\n </Select>\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ServerSideIndicator :server-side=\"isServerSide\" />\n </label>\n</template>\n\n<script src=\"./choice_setting.js\"></script>\n","import { get, set } from 'lodash'\nimport Select from 'src/components/select/select.vue'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport ServerSideIndicator from './server_side_indicator.vue'\nexport default {\n components: {\n Select,\n ModifiedIndicator,\n ServerSideIndicator\n },\n props: [\n 'path',\n 'disabled',\n 'options',\n 'expert'\n ],\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isServerSide () {\n return this.path.startsWith('serverSide_')\n },\n isChanged () {\n return !this.path.startsWith('serverSide_') && this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, e)\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n }\n }\n}\n","import { render } from \"./choice_setting.vue?vue&type=template&id=0d10f82a\"\nimport script from \"./choice_setting.js?vue&type=script&lang=js\"\nexport * from \"./choice_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"IntegerSetting\"\n >\n <label :for=\"path\">\n <slot />\n </label>\n <input\n :id=\"path\"\n class=\"number-input\"\n type=\"number\"\n step=\"1\"\n :disabled=\"disabled\"\n :min=\"min || 0\"\n :value=\"state\"\n @change=\"update\"\n >\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n </span>\n</template>\n\n<script src=\"./integer_setting.js\"></script>\n","import { get, set } from 'lodash'\nimport ModifiedIndicator from './modified_indicator.vue'\nexport default {\n components: {\n ModifiedIndicator\n },\n props: {\n path: String,\n disabled: Boolean,\n min: Number,\n expert: [Number, String]\n },\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isChanged () {\n return this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, parseInt(e.target.value))\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n }\n }\n}\n","import { render } from \"./integer_setting.vue?vue&type=template&id=0490fdac\"\nimport script from \"./integer_setting.js?vue&type=script&lang=js\"\nexport * from \"./integer_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { filter, trim, debounce } from 'lodash'\nimport BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\n\nconst FilteringTab = {\n data () {\n return {\n muteWordsStringLocal: this.$store.getters.mergedConfig.muteWords.join('\\n'),\n replyVisibilityOptions: ['all', 'following', 'self'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.reply_visibility_${mode}`)\n }))\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting\n },\n computed: {\n ...SharedComputedObject(),\n muteWordsString: {\n get () {\n return this.muteWordsStringLocal\n },\n set (value) {\n this.muteWordsStringLocal = value\n this.debouncedSetMuteWords(value)\n }\n },\n debouncedSetMuteWords () {\n return debounce((value) => {\n this.$store.dispatch('setOption', {\n name: 'muteWords',\n value: filter(value.split('\\n'), (word) => trim(word).length > 0)\n })\n }, 1000)\n }\n },\n // Updating nested properties\n watch: {\n replyVisibility () {\n this.$store.dispatch('queueFlushAll')\n }\n }\n}\n\nexport default FilteringTab\n","import { render } from \"./filtering_tab.vue?vue&type=template&id=19e8a013\"\nimport script from \"./filtering_tab.js?vue&type=script&lang=js\"\nexport * from \"./filtering_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.security_tab')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.change_email') }}</h2>\n <div>\n <p>{{ $t('settings.new_email') }}</p>\n <input\n v-model=\"newEmail\"\n type=\"email\"\n autocomplete=\"email\"\n >\n </div>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"changeEmailPassword\"\n type=\"password\"\n autocomplete=\"current-password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"changeEmail\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"changedEmail\">\n {{ $t('settings.changed_email') }}\n </p>\n <template v-if=\"changeEmailError !== false\">\n <p>{{ $t('settings.change_email_error') }}</p>\n <p>{{ changeEmailError }}</p>\n </template>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.change_password') }}</h2>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"changePasswordInputs[0]\"\n type=\"password\"\n >\n </div>\n <div>\n <p>{{ $t('settings.new_password') }}</p>\n <input\n v-model=\"changePasswordInputs[1]\"\n type=\"password\"\n >\n </div>\n <div>\n <p>{{ $t('settings.confirm_new_password') }}</p>\n <input\n v-model=\"changePasswordInputs[2]\"\n type=\"password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"changePassword\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"changedPassword\">\n {{ $t('settings.changed_password') }}\n </p>\n <p v-else-if=\"changePasswordError !== false\">\n {{ $t('settings.change_password_error') }}\n </p>\n <p v-if=\"changePasswordError\">\n {{ changePasswordError }}\n </p>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.oauth_tokens') }}</h2>\n <table class=\"oauth-tokens\">\n <thead>\n <tr>\n <th>{{ $t('settings.app_name') }}</th>\n <th>{{ $t('settings.valid_until') }}</th>\n <th />\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"oauthToken in oauthTokens\"\n :key=\"oauthToken.id\"\n >\n <td>{{ oauthToken.appName }}</td>\n <td>{{ oauthToken.validUntil }}</td>\n <td class=\"actions\">\n <button\n class=\"btn button-default\"\n @click=\"revokeToken(oauthToken.id)\"\n >\n {{ $t('settings.revoke_token') }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <mfa />\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.account_alias') }}</h2>\n <table>\n <thead>\n <tr>\n <th>{{ $t('settings.account_alias_table_head') }}</th>\n <th />\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"alias in aliases\"\n :key=\"alias\"\n >\n <td>{{ alias }}</td>\n <td class=\"actions\">\n <button\n class=\"btn button-default\"\n @click=\"removeAlias(alias)\"\n >\n {{ $t('settings.remove_alias') }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <div\n v-if=\"listAliasesError\"\n class=\"alert error\"\n >\n {{ $t('settings.list_aliases_error', { error }) }}\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('settings.hide_list_aliases_error_action')\"\n @click=\"listAliasesError = false\"\n />\n </div>\n <div>\n <i18n\n path=\"settings.new_alias_target\"\n tag=\"p\"\n >\n <code\n place=\"example\"\n >\n foo@example.org\n </code>\n </i18n>\n <input\n v-model=\"addAliasTarget\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"addAlias\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"addedAlias\">\n {{ $t('settings.added_alias') }}\n </p>\n <template v-if=\"addAliasError !== false\">\n <p>{{ $t('settings.add_alias_error', { error: addAliasError }) }}</p>\n </template>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.move_account') }}</h2>\n <p>{{ $t('settings.move_account_notes') }}</p>\n <div>\n <i18n\n path=\"settings.move_account_target\"\n tag=\"p\"\n >\n <code\n place=\"example\"\n >\n foo@example.org\n </code>\n </i18n>\n <input\n v-model=\"moveAccountTarget\"\n >\n </div>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"moveAccountPassword\"\n type=\"password\"\n autocomplete=\"current-password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"moveAccount\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"movedAccount\">\n {{ $t('settings.moved_account') }}\n </p>\n <template v-if=\"moveAccountError !== false\">\n <p>{{ $t('settings.move_account_error', { error: moveAccountError }) }}</p>\n </template>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.delete_account') }}</h2>\n <p v-if=\"!deletingAccount\">\n {{ $t('settings.delete_account_description') }}\n </p>\n <div v-if=\"deletingAccount\">\n <p>{{ $t('settings.delete_account_instructions') }}</p>\n <p>{{ $t('login.password') }}</p>\n <input\n v-model=\"deleteAccountConfirmPasswordInput\"\n type=\"password\"\n >\n <button\n class=\"btn button-default\"\n @click=\"deleteAccount\"\n >\n {{ $t('settings.delete_account') }}\n </button>\n </div>\n <p v-if=\"deleteAccountError !== false\">\n {{ $t('settings.delete_account_error') }}\n </p>\n <p v-if=\"deleteAccountError\">\n {{ deleteAccountError }}\n </p>\n <button\n v-if=\"!deletingAccount\"\n class=\"btn button-default\"\n @click=\"confirmDelete\"\n >\n {{ $t('settings.delete_account') }}\n </button>\n </div>\n </div>\n</template>\n\n<script src=\"./security_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <div\n v-if=\"readyInit && settings.available\"\n class=\"setting-item mfa-settings\"\n >\n <div class=\"mfa-heading\">\n <h2>{{ $t('settings.mfa.title') }}</h2>\n </div>\n\n <div>\n <div\n v-if=\"!setupInProgress\"\n class=\"setting-item\"\n >\n <!-- Enabled methods -->\n <h3>{{ $t('settings.mfa.authentication_methods') }}</h3>\n <totp-item\n :settings=\"settings\"\n @deactivate=\"fetchSettings\"\n @activate=\"activateOTP\"\n />\n <br>\n\n <div v-if=\"settings.enabled\">\n <!-- backup codes block-->\n <recovery-codes\n v-if=\"!confirmNewBackupCodes\"\n :backup-codes=\"backupCodes\"\n />\n <button\n v-if=\"!confirmNewBackupCodes\"\n class=\"btn button-default\"\n @click=\"getBackupCodes\"\n >\n {{ $t('settings.mfa.generate_new_recovery_codes') }}\n </button>\n\n <div v-if=\"confirmNewBackupCodes\">\n <confirm\n :disabled=\"backupCodes.inProgress\"\n @confirm=\"confirmBackupCodes\"\n @cancel=\"cancelBackupCodes\"\n >\n <p class=\"warning\">\n {{ $t('settings.mfa.warning_of_generate_new_codes') }}\n </p>\n </confirm>\n </div>\n </div>\n </div>\n\n <div v-if=\"setupInProgress\">\n <!-- setup block-->\n\n <h3>{{ $t('settings.mfa.setup_otp') }}</h3>\n\n <recovery-codes\n v-if=\"!setupOTPInProgress\"\n :backup-codes=\"backupCodes\"\n />\n\n <button\n v-if=\"canSetupOTP\"\n class=\"btn button-default\"\n @click=\"cancelSetup\"\n >\n {{ $t('general.cancel') }}\n </button>\n\n <button\n v-if=\"canSetupOTP\"\n class=\"btn button-default\"\n @click=\"setupOTP\"\n >\n {{ $t('settings.mfa.setup_otp') }}\n </button>\n\n <template v-if=\"setupOTPInProgress\">\n <i v-if=\"prepareOTP\">{{ $t('settings.mfa.wait_pre_setup_otp') }}</i>\n\n <div v-if=\"confirmOTP\">\n <div class=\"setup-otp\">\n <div class=\"qr-code\">\n <h4>{{ $t('settings.mfa.scan.title') }}</h4>\n <p>{{ $t('settings.mfa.scan.desc') }}</p>\n <qrcode\n :value=\"otpSettings.provisioning_uri\"\n :options=\"{ width: 200 }\"\n />\n <p>\n {{ $t('settings.mfa.scan.secret_code') }}:\n {{ otpSettings.key }}\n </p>\n </div>\n\n <div class=\"verify\">\n <h4>{{ $t('general.verify') }}</h4>\n <p>{{ $t('settings.mfa.verify.desc') }}</p>\n <input\n v-model=\"otpConfirmToken\"\n type=\"text\"\n >\n\n <p>{{ $t('settings.enter_current_password_to_confirm') }}:</p>\n <input\n v-model=\"currentPassword\"\n type=\"password\"\n >\n <div class=\"confirm-otp-actions\">\n <button\n class=\"btn button-default\"\n @click=\"doConfirmOTP\"\n >\n {{ $t('settings.mfa.confirm_and_enable') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"cancelSetup\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n </div>\n </div>\n </div>\n </div>\n </template>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./mfa.js\"></script>\n<style lang=\"scss\">\n@import \"../../../../variables\";\n\n.mfa-settings {\n .mfa-heading,\n .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0; }\n\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n }\n }\n}\n</style>\n","<template>\n <div class=\"mfa-backup-codes\">\n <h4 v-if=\"displayTitle\">\n {{ $t('settings.mfa.recovery_codes') }}\n </h4>\n <i v-if=\"inProgress\">{{ $t('settings.mfa.waiting_a_recovery_codes') }}</i>\n <template v-if=\"ready\">\n <p class=\"alert warning\">\n {{ $t('settings.mfa.recovery_codes_warning') }}\n </p>\n <ul class=\"backup-codes\">\n <li\n v-for=\"code in backupCodes.codes\"\n :key=\"code\"\n >\n {{ code }}\n </li>\n </ul>\n </template>\n </div>\n</template>\n<script src=\"./mfa_backup_codes.js\"></script>\n<style lang=\"scss\">\n@import \"../../../../variables\";\n\n.mfa-backup-codes {\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .backup-codes {\n font-family: var(--postCodeFont, monospace);\n }\n}\n</style>\n","export default {\n props: {\n backupCodes: {\n type: Object,\n default: () => ({\n inProgress: false,\n codes: []\n })\n }\n },\n data: () => ({}),\n computed: {\n inProgress () { return this.backupCodes.inProgress },\n ready () { return this.backupCodes.codes.length > 0 },\n displayTitle () { return this.inProgress || this.ready }\n }\n}\n","import { render } from \"./mfa_backup_codes.vue?vue&type=template&id=c00de0a2\"\nimport script from \"./mfa_backup_codes.js?vue&type=script&lang=js\"\nexport * from \"./mfa_backup_codes.js?vue&type=script&lang=js\"\n\nimport \"./mfa_backup_codes.vue?vue&type=style&index=0&id=c00de0a2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <div class=\"method-item\">\n <strong>{{ $t('settings.mfa.otp') }}</strong>\n <button\n v-if=\"!isActivated\"\n class=\"btn button-default\"\n @click=\"doActivate\"\n >\n {{ $t('general.enable') }}\n </button>\n\n <button\n v-if=\"isActivated\"\n class=\"btn button-default\"\n :disabled=\"deactivate\"\n @click=\"doDeactivate\"\n >\n {{ $t('general.disable') }}\n </button>\n </div>\n\n <confirm\n v-if=\"deactivate\"\n :disabled=\"inProgress\"\n @confirm=\"confirmDeactivate\"\n @cancel=\"cancelDeactivate\"\n >\n {{ $t('settings.enter_current_password_to_confirm') }}:\n <input\n v-model=\"currentPassword\"\n type=\"password\"\n >\n </confirm>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n </div>\n </div>\n</template>\n<script src=\"./mfa_totp.js\"></script>\n","const Confirm = {\n props: ['disabled'],\n data: () => ({}),\n methods: {\n confirm () { this.$emit('confirm') },\n cancel () { this.$emit('cancel') }\n }\n}\nexport default Confirm\n","import { render } from \"./confirm.vue?vue&type=template&id=232a09eb\"\nimport script from \"./confirm.js?vue&type=script&lang=js\"\nexport * from \"./confirm.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <slot />\n <button\n class=\"btn button-default\"\n :disabled=\"disabled\"\n @click=\"confirm\"\n >\n {{ $t('general.confirm') }}\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"disabled\"\n @click=\"cancel\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n</template>\n\n<script src=\"./confirm.js\">\n</script>\n","import Confirm from './confirm.vue'\nimport { mapState } from 'vuex'\n\nexport default {\n props: ['settings'],\n data: () => ({\n error: false,\n currentPassword: '',\n deactivate: false,\n inProgress: false // progress peform request to disable otp method\n }),\n components: {\n confirm: Confirm\n },\n computed: {\n isActivated () {\n return this.settings.totp\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n methods: {\n doActivate () {\n this.$emit('activate')\n },\n cancelDeactivate () { this.deactivate = false },\n doDeactivate () {\n this.error = null\n this.deactivate = true\n },\n confirmDeactivate () { // confirm deactivate TOTP method\n this.error = null\n this.inProgress = true\n this.backendInteractor.mfaDisableOTP({\n password: this.currentPassword\n })\n .then((res) => {\n this.inProgress = false\n if (res.error) {\n this.error = res.error\n return\n }\n this.deactivate = false\n this.$emit('deactivate')\n })\n }\n }\n}\n","import RecoveryCodes from './mfa_backup_codes.vue'\nimport TOTP from './mfa_totp.vue'\nimport Confirm from './confirm.vue'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport { mapState } from 'vuex'\n\nconst Mfa = {\n data: () => ({\n settings: { // current settings of MFA\n available: false,\n enabled: false,\n totp: false\n },\n setupState: { // setup mfa\n state: '', // state of setup. '' -> 'getBackupCodes' -> 'setupOTP' -> 'complete'\n setupOTPState: '' // state of setup otp. '' -> 'prepare' -> 'confirm' -> 'complete'\n },\n backupCodes: {\n getNewCodes: false,\n inProgress: false, // progress of fetch codes\n codes: []\n },\n otpSettings: { // pre-setup setting of OTP. secret key, qrcode url.\n provisioning_uri: '',\n key: ''\n },\n currentPassword: null,\n otpConfirmToken: null,\n error: null,\n readyInit: false\n }),\n components: {\n 'recovery-codes': RecoveryCodes,\n 'totp-item': TOTP,\n qrcode: VueQrcode,\n confirm: Confirm\n },\n computed: {\n canSetupOTP () {\n return (\n (this.setupInProgress && this.backupCodesPrepared) ||\n this.settings.enabled\n ) && !this.settings.totp && !this.setupOTPInProgress\n },\n setupInProgress () {\n return this.setupState.state !== '' && this.setupState.state !== 'complete'\n },\n setupOTPInProgress () {\n return this.setupState.state === 'setupOTP' && !this.completedOTP\n },\n prepareOTP () {\n return this.setupState.setupOTPState === 'prepare'\n },\n confirmOTP () {\n return this.setupState.setupOTPState === 'confirm'\n },\n completedOTP () {\n return this.setupState.setupOTPState === 'completed'\n },\n backupCodesPrepared () {\n return !this.backupCodes.inProgress && this.backupCodes.codes.length > 0\n },\n confirmNewBackupCodes () {\n return this.backupCodes.getNewCodes\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n\n methods: {\n activateOTP () {\n if (!this.settings.enabled) {\n this.setupState.state = 'getBackupcodes'\n this.fetchBackupCodes()\n }\n },\n fetchBackupCodes () {\n this.backupCodes.inProgress = true\n this.backupCodes.codes = []\n\n return this.backendInteractor.generateMfaBackupCodes()\n .then((res) => {\n this.backupCodes.codes = res.codes\n this.backupCodes.inProgress = false\n })\n },\n getBackupCodes () { // get a new backup codes\n this.backupCodes.getNewCodes = true\n },\n confirmBackupCodes () { // confirm getting new backup codes\n this.fetchBackupCodes().then((res) => {\n this.backupCodes.getNewCodes = false\n })\n },\n cancelBackupCodes () { // cancel confirm form of new backup codes\n this.backupCodes.getNewCodes = false\n },\n\n // Setup OTP\n setupOTP () { // prepare setup OTP\n this.setupState.state = 'setupOTP'\n this.setupState.setupOTPState = 'prepare'\n this.backendInteractor.mfaSetupOTP()\n .then((res) => {\n this.otpSettings = res\n this.setupState.setupOTPState = 'confirm'\n })\n },\n doConfirmOTP () { // handler confirm enable OTP\n this.error = null\n this.backendInteractor.mfaConfirmOTP({\n token: this.otpConfirmToken,\n password: this.currentPassword\n })\n .then((res) => {\n if (res.error) {\n this.error = res.error\n return\n }\n this.completeSetup()\n })\n },\n\n completeSetup () {\n this.setupState.setupOTPState = 'complete'\n this.setupState.state = 'complete'\n this.currentPassword = null\n this.error = null\n this.fetchSettings()\n },\n cancelSetup () { // cancel setup\n this.setupState.setupOTPState = ''\n this.setupState.state = ''\n this.currentPassword = null\n this.error = null\n },\n // end Setup OTP\n\n // fetch settings from server\n async fetchSettings () {\n const result = await this.backendInteractor.settingsMFA()\n if (result.error) return\n this.settings = result.settings\n this.settings.available = true\n return result\n }\n },\n mounted () {\n this.fetchSettings().then(() => {\n this.readyInit = true\n })\n }\n}\nexport default Mfa\n","import { render } from \"./mfa_totp.vue?vue&type=template&id=5466d3a1\"\nimport script from \"./mfa_totp.js?vue&type=script&lang=js\"\nexport * from \"./mfa_totp.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./mfa.vue?vue&type=template&id=7a1ef7d0\"\nimport script from \"./mfa.js?vue&type=script&lang=js\"\nexport * from \"./mfa.js?vue&type=script&lang=js\"\n\nimport \"./mfa.vue?vue&type=style&index=0&id=7a1ef7d0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport Mfa from './mfa.vue'\nimport localeService from 'src/services/locale/locale.service.js'\n\nconst SecurityTab = {\n data () {\n return {\n newEmail: '',\n changeEmailError: false,\n changeEmailPassword: '',\n changedEmail: false,\n deletingAccount: false,\n deleteAccountConfirmPasswordInput: '',\n deleteAccountError: false,\n changePasswordInputs: ['', '', ''],\n changedPassword: false,\n changePasswordError: false,\n moveAccountTarget: '',\n moveAccountPassword: '',\n movedAccount: false,\n moveAccountError: false,\n aliases: [],\n listAliasesError: false,\n addAliasTarget: '',\n addedAlias: false,\n addAliasError: false\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n this.fetchAliases()\n },\n components: {\n ProgressButton,\n Mfa,\n Checkbox\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n pleromaBackend () {\n return this.$store.state.instance.pleromaBackend\n },\n oauthTokens () {\n return this.$store.state.oauthTokens.tokens.map(oauthToken => {\n return {\n id: oauthToken.id,\n appName: oauthToken.app_name,\n validUntil: new Date(oauthToken.valid_until).toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale))\n }\n })\n }\n },\n methods: {\n confirmDelete () {\n this.deletingAccount = true\n },\n deleteAccount () {\n this.$store.state.api.backendInteractor.deleteAccount({ password: this.deleteAccountConfirmPasswordInput })\n .then((res) => {\n if (res.status === 'success') {\n this.$store.dispatch('logout')\n this.$router.push({ name: 'root' })\n } else {\n this.deleteAccountError = res.error\n }\n })\n },\n changePassword () {\n const params = {\n password: this.changePasswordInputs[0],\n newPassword: this.changePasswordInputs[1],\n newPasswordConfirmation: this.changePasswordInputs[2]\n }\n this.$store.state.api.backendInteractor.changePassword(params)\n .then((res) => {\n if (res.status === 'success') {\n this.changedPassword = true\n this.changePasswordError = false\n this.logout()\n } else {\n this.changedPassword = false\n this.changePasswordError = res.error\n }\n })\n },\n changeEmail () {\n const params = {\n email: this.newEmail,\n password: this.changeEmailPassword\n }\n this.$store.state.api.backendInteractor.changeEmail(params)\n .then((res) => {\n if (res.status === 'success') {\n this.changedEmail = true\n this.changeEmailError = false\n } else {\n this.changedEmail = false\n this.changeEmailError = res.error\n }\n })\n },\n moveAccount () {\n const params = {\n targetAccount: this.moveAccountTarget,\n password: this.moveAccountPassword\n }\n this.$store.state.api.backendInteractor.moveAccount(params)\n .then((res) => {\n if (res.status === 'success') {\n this.movedAccount = true\n this.moveAccountError = false\n } else {\n this.movedAccount = false\n this.moveAccountError = res.error\n }\n })\n },\n removeAlias (alias) {\n this.$store.state.api.backendInteractor.deleteAlias({ alias })\n .then(() => this.fetchAliases())\n },\n addAlias () {\n this.$store.state.api.backendInteractor.addAlias({ alias: this.addAliasTarget })\n .then((res) => {\n this.addedAlias = true\n this.addAliasError = false\n this.addAliasTarget = ''\n })\n .catch((error) => {\n this.addedAlias = false\n this.addAliasError = error\n })\n .then(() => this.fetchAliases())\n },\n fetchAliases () {\n this.$store.state.api.backendInteractor.listAliases()\n .then((res) => {\n this.aliases = res.aliases\n this.listAliasesError = false\n })\n .catch((error) => {\n this.listAliasesError = error.error\n })\n },\n logout () {\n this.$store.dispatch('logout')\n this.$router.replace('/')\n },\n revokeToken (id) {\n if (window.confirm(`${this.$i18n.t('settings.revoke_token')}?`)) {\n this.$store.dispatch('revokeToken', id)\n }\n }\n }\n}\n\nexport default SecurityTab\n","import { render } from \"./security_tab.vue?vue&type=template&id=c8181b06\"\nimport script from \"./security_tab.js?vue&type=script&lang=js\"\nexport * from \"./security_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"profile-tab\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.name_bio') }}</h2>\n <p>{{ $t('settings.name') }}</p>\n <EmojiInput\n v-model=\"newName\"\n enable-emoji-picker\n :suggest=\"emojiSuggestor\"\n >\n <template #default=\"inputProps\">\n <input\n id=\"username\"\n v-model=\"newName\"\n class=\"name-changer\"\n v-bind=\"propsToNative(inputProps)\"\n >\n </template>\n </EmojiInput>\n <p>{{ $t('settings.bio') }}</p>\n <EmojiInput\n v-model=\"newBio\"\n enable-emoji-picker\n :suggest=\"emojiUserSuggestor\"\n >\n <template #default=\"inputProps\">\n <textarea\n v-model=\"newBio\"\n class=\"bio resize-height\"\n v-bind=\"propsToNative(inputProps)\"\n />\n </template>\n </EmojiInput>\n <p v-if=\"role === 'admin' || role === 'moderator'\">\n <Checkbox v-model=\"showRole\">\n <template v-if=\"role === 'admin'\">\n {{ $t('settings.show_admin_badge') }}\n </template>\n <template v-if=\"role === 'moderator'\">\n {{ $t('settings.show_moderator_badge') }}\n </template>\n </Checkbox>\n </p>\n <div>\n <p>{{ $t('settings.birthday.label') }}</p>\n <input\n id=\"birthday\"\n v-model=\"newBirthday\"\n type=\"date\"\n class=\"birthday-input\"\n >\n <Checkbox v-model=\"showBirthday\">\n {{ $t('settings.birthday.show_birthday') }}\n </Checkbox>\n </div>\n <div v-if=\"maxFields > 0\">\n <p>{{ $t('settings.profile_fields.label') }}</p>\n <div\n v-for=\"(_, i) in newFields\"\n :key=\"i\"\n class=\"profile-fields\"\n >\n <EmojiInput\n v-model=\"newFields[i].name\"\n enable-emoji-picker\n hide-emoji-button\n :suggest=\"userSuggestor\"\n >\n <template #default=\"inputProps\">\n <input\n v-model=\"newFields[i].name\"\n :placeholder=\"$t('settings.profile_fields.name')\"\n v-bind=\"propsToNative(inputProps)\"\n >\n </template>\n </EmojiInput>\n <EmojiInput\n v-model=\"newFields[i].value\"\n enable-emoji-picker\n hide-emoji-button\n :suggest=\"userSuggestor\"\n >\n <template #default=\"inputProps\">\n <input\n v-model=\"newFields[i].value\"\n :placeholder=\"$t('settings.profile_fields.value')\"\n v-bind=\"propsToNative(inputProps)\"\n >\n </template>\n </EmojiInput>\n <button\n class=\"delete-field button-unstyled -hover-highlight\"\n @click=\"deleteField(i)\"\n >\n <!-- TODO something is wrong with v-show here -->\n <FAIcon\n v-if=\"newFields.length > 1\"\n icon=\"times\"\n />\n </button>\n </div>\n <button\n v-if=\"newFields.length < maxFields\"\n class=\"add-field faint button-unstyled -hover-highlight\"\n @click=\"addField\"\n >\n <FAIcon icon=\"plus\" />\n {{ $t(\"settings.profile_fields.add_field\") }}\n </button>\n </div>\n <p>\n <Checkbox v-model=\"bot\">\n {{ $t('settings.bot') }}\n </Checkbox>\n </p>\n <p>\n <interface-language-switcher\n :prompt-text=\"$t('settings.email_language')\"\n :language=\"emailLanguage\"\n :set-language=\"val => emailLanguage = val\"\n />\n </p>\n <button\n :disabled=\"newName && newName.length === 0\"\n class=\"btn button-default\"\n @click=\"updateProfile\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.avatar') }}</h2>\n <p class=\"visibility-notice\">\n {{ $t('settings.avatar_size_instruction') }}\n </p>\n <div class=\"current-avatar-container\">\n <img\n :src=\"user.profile_image_url_original\"\n class=\"current-avatar\"\n >\n <button\n v-if=\"!isDefaultAvatar && pickAvatarBtnVisible\"\n :title=\"$t('settings.reset_avatar')\"\n class=\"button-unstyled reset-button\"\n @click=\"resetAvatar\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_avatar') }}</p>\n <button\n v-show=\"pickAvatarBtnVisible\"\n id=\"pick-avatar\"\n class=\"button-default btn\"\n type=\"button\"\n >\n {{ $t('settings.upload_a_photo') }}\n </button>\n <image-cropper\n trigger=\"#pick-avatar\"\n :submit-handler=\"submitAvatar\"\n @open=\"pickAvatarBtnVisible=false\"\n @close=\"pickAvatarBtnVisible=true\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.profile_banner') }}</h2>\n <div class=\"banner-background-preview\">\n <img :src=\"user.cover_photo\">\n <button\n v-if=\"!isDefaultBanner\"\n class=\"button-unstyled reset-button\"\n :title=\"$t('settings.reset_profile_banner')\"\n @click=\"resetBanner\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_profile_banner') }}</p>\n <img\n v-if=\"bannerPreview\"\n class=\"banner-background-preview\"\n :src=\"bannerPreview\"\n >\n <div>\n <input\n type=\"file\"\n @change=\"uploadFile('banner', $event)\"\n >\n </div>\n <FAIcon\n v-if=\"bannerUploading\"\n class=\"uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else-if=\"bannerPreview\"\n class=\"btn button-default\"\n @click=\"submitBanner(banner)\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.profile_background') }}</h2>\n <div class=\"banner-background-preview\">\n <img :src=\"user.background_image\">\n <button\n v-if=\"!isDefaultBackground\"\n class=\"button-unstyled reset-button\"\n :title=\"$t('settings.reset_profile_background')\"\n @click=\"resetBackground\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_profile_background') }}</p>\n <img\n v-if=\"backgroundPreview\"\n class=\"banner-background-preview\"\n :src=\"backgroundPreview\"\n >\n <div>\n <input\n type=\"file\"\n @change=\"uploadFile('background', $event)\"\n >\n </div>\n <FAIcon\n v-if=\"backgroundUploading\"\n class=\"uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else-if=\"backgroundPreview\"\n class=\"btn button-default\"\n @click=\"submitBackground(background)\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.account_privacy') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"serverSide_locked\">\n {{ $t('settings.lock_account_description') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_discoverable\">\n {{ $t('settings.discoverable') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_allowFollowingMove\">\n {{ $t('settings.allow_following_move') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFavorites\">\n {{ $t('settings.hide_favorites_description') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFollowers\">\n {{ $t('settings.hide_followers_description') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !serverSide_hideFollowers}]\"\n >\n <li>\n <BooleanSetting\n path=\"serverSide_hideFollowersCount\"\n :disabled=\"!serverSide_hideFollowers\"\n >\n {{ $t('settings.hide_followers_count_description') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFollows\">\n {{ $t('settings.hide_follows_description') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !serverSide_hideFollows}]\"\n >\n <li>\n <BooleanSetting\n path=\"serverSide_hideFollowsCount\"\n :disabled=\"!serverSide_hideFollows\"\n >\n {{ $t('settings.hide_follows_count_description') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./profile_tab.js\"></script>\n<style lang=\"scss\" src=\"./profile_tab.scss\"></style>\n","<template>\n <div class=\"image-cropper\">\n <div v-if=\"dataUrl\">\n <div class=\"image-cropper-image-container\">\n <img\n ref=\"img\"\n :src=\"dataUrl\"\n alt=\"\"\n @load.stop=\"createCropper\"\n >\n </div>\n <div class=\"image-cropper-buttons-wrapper\">\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"submit()\"\n v-text=\"saveText\"\n />\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"destroy\"\n v-text=\"cancelText\"\n />\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"submit(false)\"\n v-text=\"saveWithoutCroppingText\"\n />\n <FAIcon\n v-if=\"submitting\"\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n <input\n ref=\"input\"\n type=\"file\"\n class=\"image-cropper-img-input\"\n :accept=\"mimes\"\n >\n </div>\n</template>\n\n<script src=\"./image_cropper.js\"></script>\n\n<style lang=\"scss\">\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n</style>\n","import Cropper from 'cropperjs'\nimport 'cropperjs/dist/cropper.css'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst ImageCropper = {\n props: {\n trigger: {\n type: [String, window.Element],\n required: true\n },\n submitHandler: {\n type: Function,\n required: true\n },\n cropperOptions: {\n type: Object,\n default () {\n return {\n aspectRatio: 1,\n autoCropArea: 1,\n viewMode: 1,\n movable: false,\n zoomable: false,\n guides: false\n }\n }\n },\n mimes: {\n type: String,\n default: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'\n },\n saveButtonLabel: {\n type: String\n },\n saveWithoutCroppingButtonlabel: {\n type: String\n },\n cancelButtonLabel: {\n type: String\n }\n },\n data () {\n return {\n cropper: undefined,\n dataUrl: undefined,\n filename: undefined,\n submitting: false\n }\n },\n computed: {\n saveText () {\n return this.saveButtonLabel || this.$t('image_cropper.save')\n },\n saveWithoutCroppingText () {\n return this.saveWithoutCroppingButtonlabel || this.$t('image_cropper.save_without_cropping')\n },\n cancelText () {\n return this.cancelButtonLabel || this.$t('image_cropper.cancel')\n }\n },\n methods: {\n destroy () {\n if (this.cropper) {\n this.cropper.destroy()\n }\n this.$refs.input.value = ''\n this.dataUrl = undefined\n this.$emit('close')\n },\n submit (cropping = true) {\n this.submitting = true\n this.submitHandler(cropping && this.cropper, this.file)\n .then(() => this.destroy())\n .finally(() => {\n this.submitting = false\n })\n },\n pickImage () {\n this.$refs.input.click()\n },\n createCropper () {\n this.cropper = new Cropper(this.$refs.img, this.cropperOptions)\n },\n getTriggerDOM () {\n return typeof this.trigger === 'object' ? this.trigger : document.querySelector(this.trigger)\n },\n readFile () {\n const fileInput = this.$refs.input\n if (fileInput.files != null && fileInput.files[0] != null) {\n this.file = fileInput.files[0]\n const reader = new window.FileReader()\n reader.onload = (e) => {\n this.dataUrl = e.target.result\n this.$emit('open')\n }\n reader.readAsDataURL(this.file)\n this.$emit('changed', this.file, reader)\n }\n }\n },\n mounted () {\n // listen for click event on trigger\n const trigger = this.getTriggerDOM()\n if (!trigger) {\n this.$emit('error', 'No image make trigger found.', 'user')\n } else {\n trigger.addEventListener('click', this.pickImage)\n }\n // listen for input file changes\n const fileInput = this.$refs.input\n fileInput.addEventListener('change', this.readFile)\n },\n beforeUnmount: function () {\n // remove the event listeners\n const trigger = this.getTriggerDOM()\n if (trigger) {\n trigger.removeEventListener('click', this.pickImage)\n }\n const fileInput = this.$refs.input\n fileInput.removeEventListener('change', this.readFile)\n }\n}\n\nexport default ImageCropper\n","import { render } from \"./image_cropper.vue?vue&type=template&id=0bac39f0\"\nimport script from \"./image_cropper.js?vue&type=script&lang=js\"\nexport * from \"./image_cropper.js?vue&type=script&lang=js\"\n\nimport \"./image_cropper.vue?vue&type=style&index=0&id=0bac39f0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import unescape from 'lodash/unescape'\nimport merge from 'lodash/merge'\nimport ImageCropper from 'src/components/image_cropper/image_cropper.vue'\nimport ScopeSelector from 'src/components/scope_selector/scope_selector.vue'\nimport fileSizeFormatService from 'src/components/../services/file_size_format/file_size_format.js'\nimport ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport EmojiInput from 'src/components/emoji_input/emoji_input.vue'\nimport suggestor from 'src/components/emoji_input/suggestor.js'\nimport Autosuggest from 'src/components/autosuggest/autosuggest.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'\nimport BooleanSetting from '../helpers/boolean_setting.vue'\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport localeService from 'src/services/locale/locale.service.js'\nimport { propsToNative } from 'src/services/attributes_helper/attributes_helper.service.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faPlus,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus,\n faCircleNotch\n)\n\nconst ProfileTab = {\n data () {\n return {\n newName: this.$store.state.users.currentUser.name_unescaped,\n newBio: unescape(this.$store.state.users.currentUser.description),\n newLocked: this.$store.state.users.currentUser.locked,\n newBirthday: this.$store.state.users.currentUser.birthday,\n showBirthday: this.$store.state.users.currentUser.show_birthday,\n newFields: this.$store.state.users.currentUser.fields.map(field => ({ name: field.name, value: field.value })),\n showRole: this.$store.state.users.currentUser.show_role,\n role: this.$store.state.users.currentUser.role,\n bot: this.$store.state.users.currentUser.bot,\n pickAvatarBtnVisible: true,\n bannerUploading: false,\n backgroundUploading: false,\n banner: null,\n bannerPreview: null,\n background: null,\n backgroundPreview: null,\n emailLanguage: this.$store.state.users.currentUser.language || ['']\n }\n },\n components: {\n ScopeSelector,\n ImageCropper,\n EmojiInput,\n Autosuggest,\n ProgressButton,\n Checkbox,\n BooleanSetting,\n InterfaceLanguageSwitcher\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n ...SharedComputedObject(),\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ]\n })\n },\n userSuggestor () {\n return suggestor({ store: this.$store })\n },\n fieldsLimits () {\n return this.$store.state.instance.fieldsLimits\n },\n maxFields () {\n return this.fieldsLimits ? this.fieldsLimits.maxFields : 0\n },\n defaultAvatar () {\n return this.$store.state.instance.server + this.$store.state.instance.defaultAvatar\n },\n defaultBanner () {\n return this.$store.state.instance.server + this.$store.state.instance.defaultBanner\n },\n isDefaultAvatar () {\n const baseAvatar = this.$store.state.instance.defaultAvatar\n return !(this.$store.state.users.currentUser.profile_image_url) ||\n this.$store.state.users.currentUser.profile_image_url.includes(baseAvatar)\n },\n isDefaultBanner () {\n const baseBanner = this.$store.state.instance.defaultBanner\n return !(this.$store.state.users.currentUser.cover_photo) ||\n this.$store.state.users.currentUser.cover_photo.includes(baseBanner)\n },\n isDefaultBackground () {\n return !(this.$store.state.users.currentUser.background_image)\n },\n avatarImgSrc () {\n const src = this.$store.state.users.currentUser.profile_image_url_original\n return (!src) ? this.defaultAvatar : src\n },\n bannerImgSrc () {\n const src = this.$store.state.users.currentUser.cover_photo\n return (!src) ? this.defaultBanner : src\n }\n },\n methods: {\n updateProfile () {\n const params = {\n note: this.newBio,\n locked: this.newLocked,\n // Backend notation.\n /* eslint-disable camelcase */\n display_name: this.newName,\n fields_attributes: this.newFields.filter(el => el != null),\n bot: this.bot,\n show_role: this.showRole,\n birthday: this.newBirthday || '',\n show_birthday: this.showBirthday\n /* eslint-enable camelcase */\n }\n\n if (this.emailLanguage) {\n params.language = localeService.internalToBackendLocaleMulti(this.emailLanguage)\n }\n\n this.$store.state.api.backendInteractor\n .updateProfile({ params })\n .then((user) => {\n this.newFields.splice(user.fields.length)\n merge(this.newFields, user.fields)\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n })\n },\n changeVis (visibility) {\n this.newDefaultScope = visibility\n },\n addField () {\n if (this.newFields.length < this.maxFields) {\n this.newFields.push({ name: '', value: '' })\n return true\n }\n return false\n },\n deleteField (index, event) {\n this.newFields.splice(index, 1)\n },\n uploadFile (slot, e) {\n const file = e.target.files[0]\n if (!file) { return }\n if (file.size > this.$store.state.instance[slot + 'limit']) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(this.$store.state.instance[slot + 'limit'])\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'upload.error.message',\n messageArgs: [\n this.$t('upload.error.file_too_big', {\n filesize: filesize.num,\n filesizeunit: filesize.unit,\n allowedsize: allowedsize.num,\n allowedsizeunit: allowedsize.unit\n })\n ],\n level: 'error'\n })\n return\n }\n // eslint-disable-next-line no-undef\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n const img = target.result\n this[slot + 'Preview'] = img\n this[slot] = file\n }\n reader.readAsDataURL(file)\n },\n resetAvatar () {\n const confirmed = window.confirm(this.$t('settings.reset_avatar_confirm'))\n if (confirmed) {\n this.submitAvatar(undefined, '')\n }\n },\n resetBanner () {\n const confirmed = window.confirm(this.$t('settings.reset_banner_confirm'))\n if (confirmed) {\n this.submitBanner('')\n }\n },\n resetBackground () {\n const confirmed = window.confirm(this.$t('settings.reset_background_confirm'))\n if (confirmed) {\n this.submitBackground('')\n }\n },\n submitAvatar (cropper, file) {\n const that = this\n return new Promise((resolve, reject) => {\n function updateAvatar (avatar, avatarName) {\n that.$store.state.api.backendInteractor.updateProfileImages({ avatar, avatarName })\n .then((user) => {\n that.$store.commit('addNewUsers', [user])\n that.$store.commit('setCurrentUser', user)\n resolve()\n })\n .catch((error) => {\n that.displayUploadError(error)\n reject(error)\n })\n }\n\n if (cropper) {\n cropper.getCroppedCanvas().toBlob((data) => updateAvatar(data, file.name), file.type)\n } else {\n updateAvatar(file, file.name)\n }\n })\n },\n submitBanner (banner) {\n if (!this.bannerPreview && banner !== '') { return }\n\n this.bannerUploading = true\n this.$store.state.api.backendInteractor.updateProfileImages({ banner })\n .then((user) => {\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n this.bannerPreview = null\n })\n .catch(this.displayUploadError)\n .finally(() => { this.bannerUploading = false })\n },\n submitBackground (background) {\n if (!this.backgroundPreview && background !== '') { return }\n\n this.backgroundUploading = true\n this.$store.state.api.backendInteractor.updateProfileImages({ background })\n .then((data) => {\n this.$store.commit('addNewUsers', [data])\n this.$store.commit('setCurrentUser', data)\n this.backgroundPreview = null\n })\n .catch(this.displayUploadError)\n .finally(() => { this.backgroundUploading = false })\n },\n displayUploadError (error) {\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'upload.error.message',\n messageArgs: [error.message],\n level: 'error'\n })\n },\n propsToNative (props) {\n return propsToNative(props)\n }\n }\n}\n\nexport default ProfileTab\n","import { render } from \"./profile_tab.vue?vue&type=template&id=574391c1\"\nimport script from \"./profile_tab.js?vue&type=script&lang=js\"\nexport * from \"./profile_tab.js?vue&type=script&lang=js\"\n\nimport \"./profile_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.general')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.interface') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <interface-language-switcher\n :prompt-text=\"$t('settings.interfaceLanguage')\"\n :language=\"language\"\n :set-language=\"val => language = val\"\n />\n </li>\n <li v-if=\"instanceSpecificPanelPresent\">\n <BooleanSetting path=\"hideISP\">\n {{ $t('settings.hide_isp') }}\n </BooleanSetting>\n </li>\n <li v-if=\"instanceWallpaperUsed\">\n <BooleanSetting path=\"hideInstanceWallpaper\">\n {{ $t('settings.hide_wallpaper') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"stopGifs\">\n {{ $t('settings.stop_gifs') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"streaming\">\n {{ $t('settings.streaming') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n path=\"pauseOnUnfocused\"\n :disabled=\"!streaming\"\n >\n {{ $t('settings.pause_on_unfocused') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting\n path=\"useStreamingApi\"\n expert=\"1\"\n >\n {{ $t('settings.useStreamingApi') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"virtualScrolling\"\n expert=\"1\"\n >\n {{ $t('settings.virtual_scrolling') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"userPopoverAvatarAction\"\n path=\"userPopoverAvatarAction\"\n :options=\"userPopoverAvatarActionOptions\"\n expert=\"1\"\n >\n {{ $t('settings.user_popover_avatar_action') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"userPopoverOverlay\"\n expert=\"1\"\n >\n {{ $t('settings.user_popover_avatar_overlay') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowNewPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.always_show_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"autohideFloatingPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.autohide_floating_post_button') }}\n </BooleanSetting>\n </li>\n <li v-if=\"instanceShoutboxPresent\">\n <BooleanSetting\n path=\"hideShoutbox\"\n expert=\"1\"\n >\n {{ $t('settings.hide_shoutbox') }}\n </BooleanSetting>\n </li>\n <li>\n <h3>{{ $t('settings.columns') }}</h3>\n </li>\n <li>\n <BooleanSetting path=\"disableStickyHeaders\">\n {{ $t('settings.disable_sticky_headers') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"showScrollbars\">\n {{ $t('settings.show_scrollbars') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"sidebarRight\">\n {{ $t('settings.right_sidebar') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"navbarColumnStretch\">\n {{ $t('settings.navbar_column_stretch') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n v-if=\"user\"\n id=\"thirdColumnMode\"\n path=\"thirdColumnMode\"\n :options=\"thirdColumnModeOptions\"\n >\n {{ $t('settings.third_column_mode') }}\n </ChoiceSetting>\n </li>\n <li v-if=\"expertLevel > 0\">\n {{ $t('settings.column_sizes') }}\n <div class=\"column-settings\">\n <SizeSetting\n v-for=\"column in columns\"\n :key=\"column\"\n :path=\"column + 'ColumnWidth'\"\n :units=\"horizontalUnits\"\n expert=\"1\"\n >\n {{ $t('settings.column_sizes_' + column) }}\n </SizeSetting>\n </div>\n </li>\n <li class=\"select-multiple\">\n <span class=\"label\">{{ $t('settings.confirm_dialogs') }}</span>\n <ul class=\"option-list\">\n <li>\n <BooleanSetting path=\"modalOnRepeat\">\n {{ $t('settings.confirm_dialogs_repeat') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnUnfollow\">\n {{ $t('settings.confirm_dialogs_unfollow') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnBlock\">\n {{ $t('settings.confirm_dialogs_block') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnMute\">\n {{ $t('settings.confirm_dialogs_mute') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnDelete\">\n {{ $t('settings.confirm_dialogs_delete') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnLogout\">\n {{ $t('settings.confirm_dialogs_logout') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnApproveFollow\">\n {{ $t('settings.confirm_dialogs_approve_follow') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnDenyFollow\">\n {{ $t('settings.confirm_dialogs_deny_follow') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"modalOnRemoveUserFromFollowers\">\n {{ $t('settings.confirm_dialogs_remove_follower') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.post_look_feel') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <ChoiceSetting\n id=\"conversationDisplay\"\n path=\"conversationDisplay\"\n :options=\"conversationDisplayOptions\"\n >\n {{ $t('settings.conversation_display') }}\n </ChoiceSetting>\n </li>\n <ul\n v-if=\"conversationDisplay !== 'linear'\"\n class=\"setting-list suboptions\"\n >\n <li>\n <BooleanSetting path=\"conversationTreeAdvanced\">\n {{ $t('settings.tree_advanced') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"conversationTreeFadeAncestors\"\n :expert=\"1\"\n >\n {{ $t('settings.tree_fade_ancestors') }}\n </BooleanSetting>\n </li>\n <li>\n <IntegerSetting\n path=\"maxDepthInThread\"\n :min=\"3\"\n :expert=\"1\"\n >\n {{ $t('settings.max_depth_in_thread') }}\n </IntegerSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"conversationOtherRepliesButton\"\n path=\"conversationOtherRepliesButton\"\n :options=\"conversationOtherRepliesButtonOptions\"\n :expert=\"1\"\n >\n {{ $t('settings.conversation_other_replies_button') }}\n </ChoiceSetting>\n </li>\n </ul>\n <li>\n <BooleanSetting path=\"collapseMessageWithSubject\">\n {{ $t('settings.collapse_subject') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"emojiReactionsOnTimeline\"\n expert=\"1\"\n >\n {{ $t('settings.emoji_reactions_on_timeline') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n path=\"serverSide_stripRichContent\"\n expert=\"1\"\n >\n {{ $t('settings.no_rich_text_description') }}\n </BooleanSetting>\n </li>\n <h3>{{ $t('settings.attachments') }}</h3>\n <li>\n <BooleanSetting\n path=\"useContainFit\"\n expert=\"1\"\n >\n {{ $t('settings.use_contain_fit') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideNsfw\">\n {{ $t('settings.nsfw_clickthrough') }}\n </BooleanSetting>\n </li>\n <ul class=\"setting-list suboptions\">\n <li>\n <BooleanSetting\n path=\"preloadImage\"\n expert=\"1\"\n :disabled=\"!hideNsfw\"\n >\n {{ $t('settings.preload_images') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"useOneClickNsfw\"\n expert=\"1\"\n :disabled=\"!hideNsfw\"\n >\n {{ $t('settings.use_one_click_nsfw') }}\n </BooleanSetting>\n </li>\n </ul>\n <li>\n <BooleanSetting\n path=\"loopVideo\"\n expert=\"1\"\n >\n {{ $t('settings.loop_video') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n path=\"loopVideoSilentOnly\"\n expert=\"1\"\n :disabled=\"!loopVideo || !loopSilentAvailable\"\n >\n {{ $t('settings.loop_video_silent_only') }}\n </BooleanSetting>\n <div\n v-if=\"!loopSilentAvailable\"\n class=\"unavailable\"\n >\n <FAIcon icon=\"globe\" />! {{ $t('settings.limited_availability') }}\n </div>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting\n path=\"playVideosInModal\"\n expert=\"1\"\n >\n {{ $t('settings.play_videos_in_modal') }}\n </BooleanSetting>\n </li>\n <h3>{{ $t('settings.mention_links') }}</h3>\n <li>\n <ChoiceSetting\n id=\"mentionLinkDisplay\"\n path=\"mentionLinkDisplay\"\n :options=\"mentionLinkDisplayOptions\"\n >\n {{ $t('settings.mention_link_display') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"mentionLinkShowTooltip\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_use_tooltip') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"useAtIcon\"\n expert=\"1\"\n >\n {{ $t('settings.use_at_icon') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"mentionLinkShowAvatar\">\n {{ $t('settings.mention_link_show_avatar') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"mentionLinkFadeDomain\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_fade_domain') }}\n </BooleanSetting>\n </li>\n <li v-if=\"user\">\n <BooleanSetting\n path=\"mentionLinkBoldenYou\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_bolden_you') }}\n </BooleanSetting>\n </li>\n <h3 v-if=\"expertLevel > 0\">\n {{ $t('settings.fun') }}\n </h3>\n <li>\n <BooleanSetting\n path=\"greentext\"\n expert=\"1\"\n >\n {{ $t('settings.greentext') }}\n </BooleanSetting>\n </li>\n <li v-if=\"user\">\n <BooleanSetting\n path=\"mentionLinkShowYous\"\n expert=\"1\"\n >\n {{ $t('settings.show_yous') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n\n <div\n v-if=\"user\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.composing') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <label for=\"default-vis\">\n {{ $t('settings.default_vis') }} <ServerSideIndicator :server-side=\"true\" />\n <ScopeSelector\n class=\"scope-selector\"\n :show-all=\"true\"\n :user-default=\"serverSide_defaultScope\"\n :initial-scope=\"serverSide_defaultScope\"\n :on-scope-change=\"changeDefaultScope\"\n />\n </label>\n </li>\n <li>\n <!-- <BooleanSetting path=\"serverSide_defaultNSFW\"> -->\n <BooleanSetting path=\"sensitiveByDefault\">\n {{ $t('settings.sensitive_by_default') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"scopeCopy\"\n expert=\"1\"\n >\n {{ $t('settings.scope_copy') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowSubjectInput\"\n expert=\"1\"\n >\n {{ $t('settings.subject_input_always_show') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"subjectLineBehavior\"\n path=\"subjectLineBehavior\"\n :options=\"subjectLineOptions\"\n expert=\"1\"\n >\n {{ $t('settings.subject_line_behavior') }}\n </ChoiceSetting>\n </li>\n <li v-if=\"postFormats.length > 0\">\n <ChoiceSetting\n id=\"postContentType\"\n path=\"postContentType\"\n :options=\"postContentOptions\"\n >\n {{ $t('settings.post_status_content_type') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"minimalScopesMode\"\n expert=\"1\"\n >\n {{ $t('settings.minimal_scopes_mode') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowNewPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.always_show_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"autohideFloatingPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.autohide_floating_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"padEmoji\"\n expert=\"1\"\n >\n {{ $t('settings.pad_emoji') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./general_tab.js\"></script>\n\n<style lang=\"scss\">\n.column-settings {\n display: flex;\n justify-content: space-evenly;\n flex-wrap: wrap;\n}\n\n.column-settings .size-label {\n display: block;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n</style>\n","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"SizeSetting\"\n >\n <label\n :for=\"path\"\n class=\"size-label\"\n >\n <slot />\n </label>\n <input\n :id=\"path\"\n class=\"number-input\"\n type=\"number\"\n step=\"1\"\n :disabled=\"disabled\"\n :min=\"min || 0\"\n :value=\"stateValue\"\n @change=\"updateValue\"\n >\n <Select\n :id=\"path\"\n :model-value=\"stateUnit\"\n :disabled=\"disabled\"\n class=\"css-unit-input\"\n @change=\"updateUnit\"\n >\n <option\n v-for=\"option in units\"\n :key=\"option\"\n :value=\"option\"\n >\n {{ option }}\n </option>\n </Select>\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n </span>\n</template>\n\n<script src=\"./size_setting.js\"></script>\n\n<style lang=\"scss\">\n.css-unit-input,\n.css-unit-input select {\n margin-left: 0.5em;\n width: 4em;\n max-width: 4em;\n min-width: 4em;\n}\n</style>\n","import { get, set } from 'lodash'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport Select from 'src/components/select/select.vue'\n\nexport const allCssUnits = ['cm', 'mm', 'in', 'px', 'pt', 'pc', 'em', 'ex', 'ch', 'rem', 'vw', 'vh', 'vmin', 'vmax', '%']\nexport const defaultHorizontalUnits = ['px', 'rem', 'vw']\nexport const defaultVerticalUnits = ['px', 'rem', 'vh']\n\nexport default {\n components: {\n ModifiedIndicator,\n Select\n },\n props: {\n path: String,\n disabled: Boolean,\n min: Number,\n units: {\n type: [String],\n default: () => allCssUnits\n },\n expert: [Number, String]\n },\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n stateUnit () {\n return (this.state || '').replace(/\\d+/, '')\n },\n stateValue () {\n return (this.state || '').replace(/\\D+/, '')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isChanged () {\n return this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, e)\n },\n reset () {\n set(this.$parent, this.path, this.defaultState)\n },\n updateValue (e) {\n set(this.$parent, this.path, parseInt(e.target.value) + this.stateUnit)\n },\n updateUnit (e) {\n set(this.$parent, this.path, this.stateValue + e.target.value)\n }\n }\n}\n","import { render } from \"./size_setting.vue?vue&type=template&id=5f9495e3\"\nimport script from \"./size_setting.js?vue&type=script&lang=js\"\nexport * from \"./size_setting.js?vue&type=script&lang=js\"\n\nimport \"./size_setting.vue?vue&type=style&index=0&id=5f9495e3&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport ScopeSelector from 'src/components/scope_selector/scope_selector.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport SizeSetting, { defaultHorizontalUnits } from '../helpers/size_setting.vue'\nimport InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport ServerSideIndicator from '../helpers/server_side_indicator.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst GeneralTab = {\n data () {\n return {\n subjectLineOptions: ['email', 'noop', 'masto'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.subject_line_${mode === 'masto' ? 'mastodon' : mode}`)\n })),\n conversationDisplayOptions: ['tree', 'linear'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.conversation_display_${mode}`)\n })),\n conversationOtherRepliesButtonOptions: ['below', 'inside'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.conversation_other_replies_button_${mode}`)\n })),\n mentionLinkDisplayOptions: ['short', 'full_for_remote', 'full'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.mention_link_display_${mode}`)\n })),\n thirdColumnModeOptions: ['none', 'notifications', 'postform'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.third_column_mode_${mode}`)\n })),\n userPopoverAvatarActionOptions: ['close', 'zoom', 'open'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.user_popover_avatar_action_${mode}`)\n })),\n loopSilentAvailable:\n // Firefox\n Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') ||\n // Chrome-likes\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'webkitAudioDecodedByteCount') ||\n // Future spec, still not supported in Nightly 63 as of 08/2018\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'audioTracks')\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n SizeSetting,\n InterfaceLanguageSwitcher,\n ScopeSelector,\n ServerSideIndicator\n },\n computed: {\n horizontalUnits () {\n return defaultHorizontalUnits\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n postContentOptions () {\n return this.postFormats.map(format => ({\n key: format,\n value: format,\n label: this.$t(`post_status.content_type[\"${format}\"]`)\n }))\n },\n columns () {\n const mode = this.$store.getters.mergedConfig.thirdColumnMode\n\n const notif = mode === 'none' ? [] : ['notifs']\n\n if (this.$store.getters.mergedConfig.sidebarRight || mode === 'postform') {\n return [...notif, 'content', 'sidebar']\n } else {\n return ['sidebar', 'content', ...notif]\n }\n },\n instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel },\n instanceWallpaperUsed () {\n return this.$store.state.instance.background &&\n !this.$store.state.users.currentUser.background_image\n },\n instanceShoutboxPresent () { return this.$store.state.instance.shoutAvailable },\n language: {\n get: function () { return this.$store.getters.mergedConfig.interfaceLanguage },\n set: function (val) {\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n }\n },\n ...SharedComputedObject()\n },\n methods: {\n changeDefaultScope (value) {\n this.$store.dispatch('setServerSideOption', { name: 'defaultScope', value })\n }\n }\n}\n\nexport default GeneralTab\n","import { render } from \"./general_tab.vue?vue&type=template&id=f443aacc\"\nimport script from \"./general_tab.js?vue&type=script&lang=js\"\nexport * from \"./general_tab.js?vue&type=script&lang=js\"\n\nimport \"./general_tab.vue?vue&type=style&index=0&id=f443aacc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.version.title')\">\n <div class=\"setting-item\">\n <ul class=\"setting-list\">\n <li>\n <p>{{ $t('settings.version.backend_version') }}</p>\n <ul class=\"option-list\">\n <li>\n <a\n :href=\"backendVersionLink\"\n target=\"_blank\"\n >{{ backendVersion }}</a>\n </li>\n </ul>\n </li>\n <li>\n <p>{{ $t('settings.version.frontend_version') }}</p>\n <ul class=\"option-list\">\n <li>\n <a\n :href=\"frontendVersionLink\"\n target=\"_blank\"\n >{{ frontendVersion }}</a>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n<script src=\"./version_tab.js\" />\n","import { extractCommit } from 'src/services/version/version.service'\n\nconst pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/'\nconst pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/'\n\nconst VersionTab = {\n data () {\n const instance = this.$store.state.instance\n return {\n backendVersion: instance.backendVersion,\n frontendVersion: instance.frontendVersion\n }\n },\n computed: {\n frontendVersionLink () {\n return pleromaFeCommitUrl + this.frontendVersion\n },\n backendVersionLink () {\n return pleromaBeCommitUrl + extractCommit(this.backendVersion)\n }\n }\n}\n\nexport default VersionTab\n","\nexport const extractCommit = versionString => {\n const regex = /-g(\\w+)/i\n const matches = versionString.match(regex)\n return matches ? matches[1] : ''\n}\n","import { render } from \"./version_tab.vue?vue&type=template&id=1295897c\"\nimport script from \"./version_tab.js?vue&type=script&lang=js\"\nexport * from \"./version_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"theme-tab\">\n <div class=\"presets-container\">\n <div class=\"save-load\">\n <div\n v-if=\"themeWarning\"\n class=\"theme-warning\"\n >\n <div class=\"alert warning\">\n {{ themeWarningHelp }}\n </div>\n <div class=\"buttons\">\n <template v-if=\"themeWarning.type === 'snapshot_source_mismatch'\">\n <button\n class=\"btn button-default\"\n @click=\"forceLoad\"\n >\n {{ $t('settings.style.switcher.use_source') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"forceSnapshot\"\n >\n {{ $t('settings.style.switcher.use_snapshot') }}\n </button>\n </template>\n <template v-else-if=\"themeWarning.noActionsPossible\">\n <button\n class=\"btn button-default\"\n @click=\"dismissWarning\"\n >\n {{ $t('general.dismiss') }}\n </button>\n </template>\n <template v-else>\n <button\n class=\"btn button-default\"\n @click=\"forceLoad\"\n >\n {{ $t('settings.style.switcher.load_theme') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"dismissWarning\"\n >\n {{ $t('settings.style.switcher.keep_as_is') }}\n </button>\n </template>\n </div>\n </div>\n <div class=\"top\">\n <div class=\"presets\">\n {{ $t('settings.presets') }}\n <label\n for=\"preset-switcher\"\n class=\"select\"\n >\n <Select\n id=\"preset-switcher\"\n v-model=\"selected\"\n class=\"preset-switcher\"\n >\n <option\n v-for=\"style in availableStyles\"\n :key=\"style.name\"\n :value=\"style.name || style[0]\"\n :style=\"{\n backgroundColor: style[1] || (style.theme || style.source).colors.bg,\n color: style[3] || (style.theme || style.source).colors.text\n }\"\n >\n {{ style[0] || style.name }}\n </option>\n </Select>\n </label>\n </div>\n <div class=\"export-import\">\n <button\n class=\"btn button-default\"\n @click=\"importTheme\"\n >\n {{ $t(&quot;settings.import_theme&quot;) }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"exportTheme\"\n >\n {{ $t(&quot;settings.export_theme&quot;) }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"save-load-options\">\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepColor\">\n {{ $t('settings.style.switcher.keep_color') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepShadows\">\n {{ $t('settings.style.switcher.keep_shadows') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepOpacity\">\n {{ $t('settings.style.switcher.keep_opacity') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepRoundness\">\n {{ $t('settings.style.switcher.keep_roundness') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepFonts\">\n {{ $t('settings.style.switcher.keep_fonts') }}\n </Checkbox>\n </span>\n <p>{{ $t('settings.style.switcher.save_load_hint') }}</p>\n </div>\n </div>\n\n <preview :style=\"previewRules\" />\n\n <keep-alive>\n <tab-switcher key=\"style-tweak\">\n <div\n :label=\"$t('settings.style.common_colors._tab_label')\"\n class=\"color-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.theme_help') }}</p>\n <div class=\"tab-header-buttons\">\n <button\n class=\"btn button-default\"\n @click=\"clearOpacity\"\n >\n {{ $t('settings.style.switcher.clear_opacity') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearV1\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n </div>\n <p>{{ $t('settings.theme_help_v2_1') }}</p>\n <h4>{{ $t('settings.style.common_colors.main') }}</h4>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"bgColorLocal\"\n name=\"bgColor\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"bgOpacityLocal\"\n name=\"bgOpacity\"\n :fallback=\"previewTheme.opacity.bg\"\n />\n <ColorInput\n v-model=\"textColorLocal\"\n name=\"textColor\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgText\" />\n <ColorInput\n v-model=\"accentColorLocal\"\n name=\"accentColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.accent')\"\n :show-optional-tickbox=\"typeof linkColorLocal !== 'undefined'\"\n />\n <ColorInput\n v-model=\"linkColorLocal\"\n name=\"linkColor\"\n :fallback=\"previewTheme.colors.accent\"\n :label=\"$t('settings.links')\"\n :show-optional-tickbox=\"typeof accentColorLocal !== 'undefined'\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgLink\" />\n </div>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"fgColorLocal\"\n name=\"fgColor\"\n :label=\"$t('settings.foreground')\"\n />\n <ColorInput\n v-model=\"fgTextColorLocal\"\n name=\"fgTextColor\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.fgText\"\n />\n <ColorInput\n v-model=\"fgLinkColorLocal\"\n name=\"fgLinkColor\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.fgLink\"\n />\n <p>{{ $t('settings.style.common_colors.foreground_hint') }}</p>\n </div>\n <h4>{{ $t('settings.style.common_colors.rgbo') }}</h4>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"cRedColorLocal\"\n name=\"cRedColor\"\n :label=\"$t('settings.cRed')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCRed\" />\n <ColorInput\n v-model=\"cBlueColorLocal\"\n name=\"cBlueColor\"\n :label=\"$t('settings.cBlue')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCBlue\" />\n </div>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"cGreenColorLocal\"\n name=\"cGreenColor\"\n :label=\"$t('settings.cGreen')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCGreen\" />\n <ColorInput\n v-model=\"cOrangeColorLocal\"\n name=\"cOrangeColor\"\n :label=\"$t('settings.cOrange')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCOrange\" />\n </div>\n <p>{{ $t('settings.theme_help_v2_2') }}</p>\n </div>\n\n <div\n :label=\"$t('settings.style.advanced_colors._tab_label')\"\n class=\"color-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.theme_help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearOpacity\"\n >\n {{ $t('settings.style.switcher.clear_opacity') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearV1\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.post') }}</h4>\n <ColorInput\n v-model=\"postLinkColorLocal\"\n name=\"postLinkColor\"\n :fallback=\"previewTheme.colors.accent\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio :contrast=\"previewContrast.postLink\" />\n <ColorInput\n v-model=\"postGreentextColorLocal\"\n name=\"postGreentextColor\"\n :fallback=\"previewTheme.colors.cGreen\"\n :label=\"$t('settings.greentext')\"\n />\n <ContrastRatio :contrast=\"previewContrast.postGreentext\" />\n <h4>{{ $t('settings.style.advanced_colors.alert') }}</h4>\n <ColorInput\n v-model=\"alertErrorColorLocal\"\n name=\"alertError\"\n :label=\"$t('settings.style.advanced_colors.alert_error')\"\n :fallback=\"previewTheme.colors.alertError\"\n />\n <ColorInput\n v-model=\"alertErrorTextColorLocal\"\n name=\"alertErrorText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertErrorText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertErrorText\"\n large\n />\n <ColorInput\n v-model=\"alertWarningColorLocal\"\n name=\"alertWarning\"\n :label=\"$t('settings.style.advanced_colors.alert_warning')\"\n :fallback=\"previewTheme.colors.alertWarning\"\n />\n <ColorInput\n v-model=\"alertWarningTextColorLocal\"\n name=\"alertWarningText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertWarningText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertWarningText\"\n large\n />\n <ColorInput\n v-model=\"alertNeutralColorLocal\"\n name=\"alertNeutral\"\n :label=\"$t('settings.style.advanced_colors.alert_neutral')\"\n :fallback=\"previewTheme.colors.alertNeutral\"\n />\n <ColorInput\n v-model=\"alertNeutralTextColorLocal\"\n name=\"alertNeutralText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertNeutralText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertNeutralText\"\n large\n />\n <OpacityInput\n v-model=\"alertOpacityLocal\"\n name=\"alertOpacity\"\n :fallback=\"previewTheme.opacity.alert\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.badge') }}</h4>\n <ColorInput\n v-model=\"badgeNotificationColorLocal\"\n name=\"badgeNotification\"\n :label=\"$t('settings.style.advanced_colors.badge_notification')\"\n :fallback=\"previewTheme.colors.badgeNotification\"\n />\n <ColorInput\n v-model=\"badgeNotificationTextColorLocal\"\n name=\"badgeNotificationText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.badgeNotificationText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.badgeNotificationText\"\n large\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.panel_header') }}</h4>\n <ColorInput\n v-model=\"panelColorLocal\"\n name=\"panelColor\"\n :fallback=\"previewTheme.colors.panel\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"panelOpacityLocal\"\n name=\"panelOpacity\"\n :fallback=\"previewTheme.opacity.panel\"\n :disabled=\"panelColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"panelTextColorLocal\"\n name=\"panelTextColor\"\n :fallback=\"previewTheme.colors.panelText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.panelText\"\n large\n />\n <ColorInput\n v-model=\"panelLinkColorLocal\"\n name=\"panelLinkColor\"\n :fallback=\"previewTheme.colors.panelLink\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.panelLink\"\n large\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.top_bar') }}</h4>\n <ColorInput\n v-model=\"topBarColorLocal\"\n name=\"topBarColor\"\n :fallback=\"previewTheme.colors.topBar\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"topBarTextColorLocal\"\n name=\"topBarTextColor\"\n :fallback=\"previewTheme.colors.topBarText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.topBarText\" />\n <ColorInput\n v-model=\"topBarLinkColorLocal\"\n name=\"topBarLinkColor\"\n :fallback=\"previewTheme.colors.topBarLink\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio :contrast=\"previewContrast.topBarLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.inputs') }}</h4>\n <ColorInput\n v-model=\"inputColorLocal\"\n name=\"inputColor\"\n :fallback=\"previewTheme.colors.input\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"inputOpacityLocal\"\n name=\"inputOpacity\"\n :fallback=\"previewTheme.opacity.input\"\n :disabled=\"inputColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"inputTextColorLocal\"\n name=\"inputTextColor\"\n :fallback=\"previewTheme.colors.inputText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.inputText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.buttons') }}</h4>\n <ColorInput\n v-model=\"btnColorLocal\"\n name=\"btnColor\"\n :fallback=\"previewTheme.colors.btn\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"btnOpacityLocal\"\n name=\"btnOpacity\"\n :fallback=\"previewTheme.opacity.btn\"\n :disabled=\"btnColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"btnTextColorLocal\"\n name=\"btnTextColor\"\n :fallback=\"previewTheme.colors.btnText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnText\" />\n <ColorInput\n v-model=\"btnPanelTextColorLocal\"\n name=\"btnPanelTextColor\"\n :fallback=\"previewTheme.colors.btnPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPanelText\" />\n <ColorInput\n v-model=\"btnTopBarTextColorLocal\"\n name=\"btnTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnTopBarText\" />\n <h5>{{ $t('settings.style.advanced_colors.pressed') }}</h5>\n <ColorInput\n v-model=\"btnPressedColorLocal\"\n name=\"btnPressedColor\"\n :fallback=\"previewTheme.colors.btnPressed\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnPressedTextColorLocal\"\n name=\"btnPressedTextColor\"\n :fallback=\"previewTheme.colors.btnPressedText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedText\" />\n <ColorInput\n v-model=\"btnPressedPanelTextColorLocal\"\n name=\"btnPressedPanelTextColor\"\n :fallback=\"previewTheme.colors.btnPressedPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedPanelText\" />\n <ColorInput\n v-model=\"btnPressedTopBarTextColorLocal\"\n name=\"btnPressedTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnPressedTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedTopBarText\" />\n <h5>{{ $t('settings.style.advanced_colors.disabled') }}</h5>\n <ColorInput\n v-model=\"btnDisabledColorLocal\"\n name=\"btnDisabledColor\"\n :fallback=\"previewTheme.colors.btnDisabled\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnDisabledTextColorLocal\"\n name=\"btnDisabledTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledText\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"btnDisabledPanelTextColorLocal\"\n name=\"btnDisabledPanelTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ColorInput\n v-model=\"btnDisabledTopBarTextColorLocal\"\n name=\"btnDisabledTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.toggled') }}</h5>\n <ColorInput\n v-model=\"btnToggledColorLocal\"\n name=\"btnToggledColor\"\n :fallback=\"previewTheme.colors.btnToggled\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnToggledTextColorLocal\"\n name=\"btnToggledTextColor\"\n :fallback=\"previewTheme.colors.btnToggledText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledText\" />\n <ColorInput\n v-model=\"btnToggledPanelTextColorLocal\"\n name=\"btnToggledPanelTextColor\"\n :fallback=\"previewTheme.colors.btnToggledPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledPanelText\" />\n <ColorInput\n v-model=\"btnToggledTopBarTextColorLocal\"\n name=\"btnToggledTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnToggledTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledTopBarText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.tabs') }}</h4>\n <ColorInput\n v-model=\"tabColorLocal\"\n name=\"tabColor\"\n :fallback=\"previewTheme.colors.tab\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"tabTextColorLocal\"\n name=\"tabTextColor\"\n :fallback=\"previewTheme.colors.tabText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.tabText\" />\n <ColorInput\n v-model=\"tabActiveTextColorLocal\"\n name=\"tabActiveTextColor\"\n :fallback=\"previewTheme.colors.tabActiveText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.tabActiveText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.borders') }}</h4>\n <ColorInput\n v-model=\"borderColorLocal\"\n name=\"borderColor\"\n :fallback=\"previewTheme.colors.border\"\n :label=\"$t('settings.style.common.color')\"\n />\n <OpacityInput\n v-model=\"borderOpacityLocal\"\n name=\"borderOpacity\"\n :fallback=\"previewTheme.opacity.border\"\n :disabled=\"borderColorLocal === 'transparent'\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.faint_text') }}</h4>\n <ColorInput\n v-model=\"faintColorLocal\"\n name=\"faintColor\"\n :fallback=\"previewTheme.colors.faint\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"faintLinkColorLocal\"\n name=\"faintLinkColor\"\n :fallback=\"previewTheme.colors.faintLink\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"panelFaintColorLocal\"\n name=\"panelFaintColor\"\n :fallback=\"previewTheme.colors.panelFaint\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <OpacityInput\n v-model=\"faintOpacityLocal\"\n name=\"faintOpacity\"\n :fallback=\"previewTheme.opacity.faint\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.underlay') }}</h4>\n <ColorInput\n v-model=\"underlayColorLocal\"\n name=\"underlay\"\n :label=\"$t('settings.style.advanced_colors.underlay')\"\n :fallback=\"previewTheme.colors.underlay\"\n />\n <OpacityInput\n v-model=\"underlayOpacityLocal\"\n name=\"underlayOpacity\"\n :fallback=\"previewTheme.opacity.underlay\"\n :disabled=\"underlayOpacityLocal === 'transparent'\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.wallpaper') }}</h4>\n <ColorInput\n v-model=\"wallpaperColorLocal\"\n name=\"wallpaper\"\n :label=\"$t('settings.style.advanced_colors.wallpaper')\"\n :fallback=\"previewTheme.colors.wallpaper\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.poll') }}</h4>\n <ColorInput\n v-model=\"pollColorLocal\"\n name=\"poll\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.poll\"\n />\n <ColorInput\n v-model=\"pollTextColorLocal\"\n name=\"pollText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.pollText\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.icons') }}</h4>\n <ColorInput\n v-model=\"iconColorLocal\"\n name=\"icon\"\n :label=\"$t('settings.style.advanced_colors.icons')\"\n :fallback=\"previewTheme.colors.icon\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.highlight') }}</h4>\n <ColorInput\n v-model=\"highlightColorLocal\"\n name=\"highlight\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.highlight\"\n />\n <ColorInput\n v-model=\"highlightTextColorLocal\"\n name=\"highlightText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.highlightText\"\n />\n <ContrastRatio :contrast=\"previewContrast.highlightText\" />\n <ColorInput\n v-model=\"highlightLinkColorLocal\"\n name=\"highlightLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.highlightLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.highlightLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.popover') }}</h4>\n <ColorInput\n v-model=\"popoverColorLocal\"\n name=\"popover\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.popover\"\n />\n <OpacityInput\n v-model=\"popoverOpacityLocal\"\n name=\"popoverOpacity\"\n :fallback=\"previewTheme.opacity.popover\"\n :disabled=\"popoverOpacityLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"popoverTextColorLocal\"\n name=\"popoverText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.popoverText\"\n />\n <ContrastRatio :contrast=\"previewContrast.popoverText\" />\n <ColorInput\n v-model=\"popoverLinkColorLocal\"\n name=\"popoverLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.popoverLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.popoverLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.selectedPost') }}</h4>\n <ColorInput\n v-model=\"selectedPostColorLocal\"\n name=\"selectedPost\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.selectedPost\"\n />\n <ColorInput\n v-model=\"selectedPostTextColorLocal\"\n name=\"selectedPostText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.selectedPostText\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedPostText\" />\n <ColorInput\n v-model=\"selectedPostLinkColorLocal\"\n name=\"selectedPostLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.selectedPostLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedPostLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.selectedMenu') }}</h4>\n <ColorInput\n v-model=\"selectedMenuColorLocal\"\n name=\"selectedMenu\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.selectedMenu\"\n />\n <ColorInput\n v-model=\"selectedMenuTextColorLocal\"\n name=\"selectedMenuText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.selectedMenuText\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedMenuText\" />\n <ColorInput\n v-model=\"selectedMenuLinkColorLocal\"\n name=\"selectedMenuLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.selectedMenuLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedMenuLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('chats.chats') }}</h4>\n <ColorInput\n v-model=\"chatBgColorLocal\"\n name=\"chatBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.chat.incoming') }}</h5>\n <ColorInput\n v-model=\"chatMessageIncomingBgColorLocal\"\n name=\"chatMessageIncomingBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingTextColorLocal\"\n name=\"chatMessageIncomingTextColor\"\n :fallback=\"previewTheme.colors.text\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingLinkColorLocal\"\n name=\"chatMessageIncomingLinkColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingBorderColorLocal\"\n name=\"chatMessageIncomingBorderLinkColor\"\n :fallback=\"previewTheme.colors.fg\"\n :label=\"$t('settings.style.advanced_colors.chat.border')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.chat.outgoing') }}</h5>\n <ColorInput\n v-model=\"chatMessageOutgoingBgColorLocal\"\n name=\"chatMessageOutgoingBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingTextColorLocal\"\n name=\"chatMessageOutgoingTextColor\"\n :fallback=\"previewTheme.colors.text\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingLinkColorLocal\"\n name=\"chatMessageOutgoingLinkColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingBorderColorLocal\"\n name=\"chatMessageOutgoingBorderLinkColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.style.advanced_colors.chat.border')\"\n />\n </div>\n </div>\n\n <div\n :label=\"$t('settings.style.radii._tab_label')\"\n class=\"radius-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.radii_help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearRoundness\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <RangeInput\n v-model=\"btnRadiusLocal\"\n name=\"btnRadius\"\n :label=\"$t('settings.btnRadius')\"\n :fallback=\"previewTheme.radii.btn\"\n max=\"16\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"inputRadiusLocal\"\n name=\"inputRadius\"\n :label=\"$t('settings.inputRadius')\"\n :fallback=\"previewTheme.radii.input\"\n max=\"9\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"checkboxRadiusLocal\"\n name=\"checkboxRadius\"\n :label=\"$t('settings.checkboxRadius')\"\n :fallback=\"previewTheme.radii.checkbox\"\n max=\"16\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"panelRadiusLocal\"\n name=\"panelRadius\"\n :label=\"$t('settings.panelRadius')\"\n :fallback=\"previewTheme.radii.panel\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"avatarRadiusLocal\"\n name=\"avatarRadius\"\n :label=\"$t('settings.avatarRadius')\"\n :fallback=\"previewTheme.radii.avatar\"\n max=\"28\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"avatarAltRadiusLocal\"\n name=\"avatarAltRadius\"\n :label=\"$t('settings.avatarAltRadius')\"\n :fallback=\"previewTheme.radii.avatarAlt\"\n max=\"28\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"attachmentRadiusLocal\"\n name=\"attachmentRadius\"\n :label=\"$t('settings.attachmentRadius')\"\n :fallback=\"previewTheme.radii.attachment\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"tooltipRadiusLocal\"\n name=\"tooltipRadius\"\n :label=\"$t('settings.tooltipRadius')\"\n :fallback=\"previewTheme.radii.tooltip\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"chatMessageRadiusLocal\"\n name=\"chatMessageRadius\"\n :label=\"$t('settings.chatMessageRadius')\"\n :fallback=\"previewTheme.radii.chatMessage || 2\"\n max=\"50\"\n hard-min=\"0\"\n />\n </div>\n\n <div\n :label=\"$t('settings.style.shadows._tab_label')\"\n class=\"shadow-container\"\n >\n <div class=\"tab-header shadow-selector\">\n <div class=\"select-container\">\n {{ $t('settings.style.shadows.component') }}\n {{ ' ' }}\n <Select\n id=\"shadow-switcher\"\n v-model=\"shadowSelected\"\n class=\"shadow-switcher\"\n >\n <option\n v-for=\"shadow in shadowsAvailable\"\n :key=\"shadow\"\n :value=\"shadow\"\n >\n {{ $t('settings.style.shadows.components.' + shadow) }}\n </option>\n </Select>\n </div>\n <div class=\"override\">\n <label\n for=\"override\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.override') }}\n </label>\n {{ ' ' }}\n <input\n id=\"override\"\n v-model=\"currentShadowOverriden\"\n name=\"override\"\n class=\"input-override\"\n type=\"checkbox\"\n >\n <label\n class=\"checkbox-label\"\n for=\"override\"\n />\n </div>\n <button\n class=\"btn button-default\"\n @click=\"clearShadows\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <ShadowControl\n v-model=\"currentShadow\"\n :ready=\"!!currentShadowFallback\"\n :fallback=\"currentShadowFallback\"\n />\n <div v-if=\"shadowSelected === 'avatar' || shadowSelected === 'avatarStatus'\">\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.always_drop_shadow\"\n tag=\"p\"\n >\n <code>filter: drop-shadow()</code>\n </i18n-t>\n <p>{{ $t('settings.style.shadows.filter_hint.avatar_inset') }}</p>\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.drop_shadow_syntax\"\n tag=\"p\"\n >\n <code>drop-shadow</code>\n <code>spread-radius</code>\n <code>inset</code>\n </i18n-t>\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.inset_classic\"\n tag=\"p\"\n >\n <code>box-shadow</code>\n </i18n-t>\n <p>{{ $t('settings.style.shadows.filter_hint.spread_zero') }}</p>\n </div>\n </div>\n\n <div\n :label=\"$t('settings.style.fonts._tab_label')\"\n class=\"fonts-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.style.fonts.help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearFonts\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <FontControl\n v-model=\"fontsLocal.interface\"\n name=\"ui\"\n :label=\"$t('settings.style.fonts.components.interface')\"\n :fallback=\"previewTheme.fonts.interface\"\n no-inherit=\"1\"\n />\n <FontControl\n v-model=\"fontsLocal.input\"\n name=\"input\"\n :label=\"$t('settings.style.fonts.components.input')\"\n :fallback=\"previewTheme.fonts.input\"\n />\n <FontControl\n v-model=\"fontsLocal.post\"\n name=\"post\"\n :label=\"$t('settings.style.fonts.components.post')\"\n :fallback=\"previewTheme.fonts.post\"\n />\n <FontControl\n v-model=\"fontsLocal.postCode\"\n name=\"postCode\"\n :label=\"$t('settings.style.fonts.components.postCode')\"\n :fallback=\"previewTheme.fonts.postCode\"\n />\n </div>\n </tab-switcher>\n </keep-alive>\n\n <teleport\n v-if=\"isActive\"\n to=\"#unscrolled-content\"\n >\n <div class=\"apply-container\">\n <button\n class=\"btn button-default submit\"\n :disabled=\"!themeValid\"\n @click=\"setCustomTheme\"\n >\n {{ $t('general.apply') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearAll\"\n >\n {{ $t('settings.style.switcher.reset') }}\n </button>\n </div>\n </teleport>\n </div>\n</template>\n\n<script src=\"./theme_tab.js\"></script>\n\n<style src=\"./theme_tab.scss\" lang=\"scss\"></style>\n","<template>\n <div\n class=\"color-input style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined' && showOptionalTickbox\"\n :model-value=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @update:modelValue=\"$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)\"\n />\n <div class=\"input color-input-field\">\n <input\n :id=\"name + '-t'\"\n class=\"textColor unstyled\"\n type=\"text\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <input\n v-if=\"validColor\"\n :id=\"name\"\n class=\"nativeColor unstyled\"\n type=\"color\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <div\n v-if=\"transparentColor\"\n class=\"transparentIndicator\"\n />\n <div\n v-if=\"computedColor\"\n class=\"computedIndicator\"\n :style=\"{backgroundColor: fallback}\"\n />\n </div>\n </div>\n</template>\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nexport default {\n components: {\n Checkbox\n },\n props: {\n // Name of color, used for identifying\n name: {\n required: true,\n type: String\n },\n // Readable label\n label: {\n required: true,\n type: String\n },\n // Color value, should be required but vue cannot tell the difference\n // between \"property missing\" and \"property set to undefined\"\n modelValue: {\n required: false,\n type: String,\n default: undefined\n },\n // Color fallback to use when value is not defeind\n fallback: {\n required: false,\n type: String,\n default: undefined\n },\n // Disable the control\n disabled: {\n required: false,\n type: Boolean,\n default: false\n },\n // Show \"optional\" tickbox, for when value might become mandatory\n showOptionalTickbox: {\n required: false,\n type: Boolean,\n default: true\n }\n },\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n },\n validColor () {\n return hex2rgb(this.modelValue || this.fallback)\n },\n transparentColor () {\n return this.modelValue === 'transparent'\n },\n computedColor () {\n return this.modelValue && this.modelValue.startsWith('--')\n }\n }\n}\n</script>\n<style lang=\"scss\" src=\"./color_input.scss\"></style>\n\n<style lang=\"scss\">\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n</style>\n","import { render } from \"./color_input.vue?vue&type=template&id=a9be5fb8\"\nimport script from \"./color_input.vue?vue&type=script&lang=js\"\nexport * from \"./color_input.vue?vue&type=script&lang=js\"\n\nimport \"./color_input.scss?vue&type=style&index=0&lang=scss\"\nimport \"./color_input.vue?vue&type=style&index=1&id=a9be5fb8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"range-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <input\n v-if=\"typeof fallback !== 'undefined'\"\n :id=\"name + '-o'\"\n class=\"opt\"\n type=\"checkbox\"\n :checked=\"present\"\n @change=\"$emit('update:modelValue', !present ? fallback : undefined)\"\n >\n <label\n v-if=\"typeof fallback !== 'undefined'\"\n class=\"opt-l\"\n :for=\"name + '-o'\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"range\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"max || hardMax || 100\"\n :min=\"min || hardMin || 0\"\n :step=\"step || 1\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"hardMax\"\n :min=\"hardMin\"\n :step=\"step || 1\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nexport default {\n props: [\n 'name', 'modelValue', 'fallback', 'disabled', 'label', 'max', 'min', 'step', 'hardMin', 'hardMax'\n ],\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n }\n }\n}\n</script>\n","import { render } from \"./range_input.vue?vue&type=template&id=7ecff9e8\"\nimport script from \"./range_input.vue?vue&type=script&lang=js\"\nexport * from \"./range_input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"opacity-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ $t('settings.style.common.opacity') }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined'\"\n :model-value=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @update:modelValue=\"$emit('update:modelValue', !present ? fallback : undefined)\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n max=\"1\"\n min=\"0\"\n step=\".05\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nexport default {\n components: {\n Checkbox\n },\n props: [\n 'name', 'modelValue', 'fallback', 'disabled'\n ],\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n }\n }\n}\n</script>\n","import { render } from \"./opacity_input.vue?vue&type=template&id=69949f84\"\nimport script from \"./opacity_input.vue?vue&type=script&lang=js\"\nexport * from \"./opacity_input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"shadow-control\"\n :class=\"{ disabled: !present }\"\n >\n <div class=\"shadow-preview-container\">\n <div\n :disabled=\"!present\"\n class=\"y-shift-control\"\n >\n <input\n v-model=\"selected.y\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n <div class=\"wrap\">\n <input\n v-model=\"selected.y\"\n :disabled=\"!present\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n </div>\n </div>\n <div class=\"preview-window\">\n <div\n class=\"preview-block\"\n :style=\"style\"\n />\n </div>\n <div\n :disabled=\"!present\"\n class=\"x-shift-control\"\n >\n <input\n v-model=\"selected.x\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n <div class=\"wrap\">\n <input\n v-model=\"selected.x\"\n :disabled=\"!present\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n </div>\n </div>\n </div>\n\n <div class=\"shadow-tweak\">\n <div\n :disabled=\"usingFallback\"\n class=\"id-control style-control\"\n >\n <Select\n id=\"shadow-switcher\"\n v-model=\"selectedId\"\n class=\"shadow-switcher\"\n :disabled=\"!ready || usingFallback\"\n >\n <option\n v-for=\"(shadow, index) in cValue\"\n :key=\"index\"\n :value=\"index\"\n >\n {{ $t('settings.style.shadows.shadow_id', { value: index }) }}\n </option>\n </Select>\n <button\n class=\"btn button-default\"\n :disabled=\"!ready || !present\"\n @click=\"del\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"!moveUpValid\"\n @click=\"moveUp\"\n >\n <FAIcon\n fixed-width\n icon=\"chevron-up\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"!moveDnValid\"\n @click=\"moveDn\"\n >\n <FAIcon\n fixed-width\n icon=\"chevron-down\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"usingFallback\"\n @click=\"add\"\n >\n <FAIcon\n fixed-width\n icon=\"plus\"\n />\n </button>\n </div>\n <div\n :disabled=\"!present\"\n class=\"inset-control style-control\"\n >\n <label\n for=\"inset\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.inset') }}\n </label>\n <input\n id=\"inset\"\n v-model=\"selected.inset\"\n :disabled=\"!present\"\n name=\"inset\"\n class=\"input-inset\"\n type=\"checkbox\"\n >\n <label\n class=\"checkbox-label\"\n for=\"inset\"\n />\n </div>\n <div\n :disabled=\"!present\"\n class=\"blur-control style-control\"\n >\n <label\n for=\"spread\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.blur') }}\n </label>\n <input\n id=\"blur\"\n v-model=\"selected.blur\"\n :disabled=\"!present\"\n name=\"blur\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"0\"\n >\n <input\n v-model=\"selected.blur\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n min=\"0\"\n >\n </div>\n <div\n :disabled=\"!present\"\n class=\"spread-control style-control\"\n >\n <label\n for=\"spread\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.spread') }}\n </label>\n <input\n id=\"spread\"\n v-model=\"selected.spread\"\n :disabled=\"!present\"\n name=\"spread\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n <input\n v-model=\"selected.spread\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n </div>\n <ColorInput\n v-model=\"selected.color\"\n :disabled=\"!present\"\n :label=\"$t('settings.style.common.color')\"\n :fallback=\"currentFallback.color\"\n :show-optional-tickbox=\"false\"\n name=\"shadow\"\n />\n <OpacityInput\n v-model=\"selected.alpha\"\n :disabled=\"!present\"\n />\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.hintV3\"\n tag=\"p\"\n >\n <code>--variable,mod</code>\n </i18n-t>\n </div>\n </div>\n</template>\n\n<script src=\"./shadow_control.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n $side: 15em;\n\n input[type=\"number\"] {\n width: 5em;\n min-width: 2em;\n }\n\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=\"disabled\"] * {\n opacity: 0.5;\n }\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=\"range\"] {\n margin: 0;\n width: $side;\n height: 2em;\n }\n\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n\n .wrap {\n width: 2em;\n height: $side;\n }\n\n input[type=\"range\"] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n\n .preview-window {\n flex: 1;\n background-color: #999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666 25%, transparent 25%),\n linear-gradient(-45deg, #666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666 75%),\n linear-gradient(-45deg, transparent 75%, #666 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0;\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .preview-block {\n width: 33%;\n height: 33%;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher,\n .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 0.4em;\n margin: 0 0.1em;\n }\n }\n }\n}\n</style>\n","import ColorInput from '../color_input/color_input.vue'\nimport OpacityInput from '../opacity_input/opacity_input.vue'\nimport Select from '../select/select.vue'\nimport { getCssShadow } from '../../services/style_setter/style_setter.js'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faChevronDown,\n faChevronUp,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown,\n faChevronUp,\n faTimes,\n faPlus\n)\n\nconst toModel = (object = {}) => ({\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n inset: false,\n color: '#000000',\n alpha: 1,\n ...object\n})\n\nexport default {\n // 'modelValue' and 'Fallback' can be undefined, but if they are\n // initially vue won't detect it when they become something else\n // therefore i'm using \"ready\" which should be passed as true when\n // data becomes available\n props: [\n 'modelValue', 'fallback', 'ready'\n ],\n emits: ['update:modelValue'],\n data () {\n return {\n selectedId: 0,\n // TODO there are some bugs regarding display of array (it's not getting updated when deleting for some reason)\n cValue: (this.modelValue || this.fallback || []).map(toModel)\n }\n },\n components: {\n ColorInput,\n OpacityInput,\n Select\n },\n methods: {\n add () {\n this.cValue.push(toModel(this.selected))\n this.selectedId = this.cValue.length - 1\n },\n del () {\n this.cValue.splice(this.selectedId, 1)\n this.selectedId = this.cValue.length === 0 ? undefined : Math.max(this.selectedId - 1, 0)\n },\n moveUp () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId - 1, 0, movable)\n this.selectedId -= 1\n },\n moveDn () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId + 1, 0, movable)\n this.selectedId += 1\n }\n },\n beforeUpdate () {\n this.cValue = this.modelValue || this.fallback\n },\n computed: {\n anyShadows () {\n return this.cValue.length > 0\n },\n anyShadowsFallback () {\n return this.fallback.length > 0\n },\n selected () {\n if (this.ready && this.anyShadows) {\n return this.cValue[this.selectedId]\n } else {\n return toModel({})\n }\n },\n currentFallback () {\n if (this.ready && this.anyShadowsFallback) {\n return this.fallback[this.selectedId]\n } else {\n return toModel({})\n }\n },\n moveUpValid () {\n return this.ready && this.selectedId > 0\n },\n moveDnValid () {\n return this.ready && this.selectedId < this.cValue.length - 1\n },\n present () {\n return this.ready &&\n typeof this.cValue[this.selectedId] !== 'undefined' &&\n !this.usingFallback\n },\n usingFallback () {\n return typeof this.modelValue === 'undefined'\n },\n rgb () {\n return hex2rgb(this.selected.color)\n },\n style () {\n return this.ready\n ? {\n boxShadow: getCssShadow(this.fallback)\n }\n : {}\n }\n }\n}\n","import { render } from \"./shadow_control.vue?vue&type=template&id=e65a0b78\"\nimport script from \"./shadow_control.js?vue&type=script&lang=js\"\nexport * from \"./shadow_control.js?vue&type=script&lang=js\"\n\nimport \"./shadow_control.vue?vue&type=style&index=0&id=e65a0b78&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { set } from 'lodash'\nimport Select from '../select/select.vue'\n\nexport default {\n components: {\n Select\n },\n props: [\n 'name', 'label', 'modelValue', 'fallback', 'options', 'no-inherit'\n ],\n emits: ['update:modelValue'],\n data () {\n return {\n lValue: this.modelValue,\n availableOptions: [\n this.noInherit ? '' : 'inherit',\n 'custom',\n ...(this.options || []),\n 'serif',\n 'monospace',\n 'sans-serif'\n ].filter(_ => _)\n }\n },\n beforeUpdate () {\n this.lValue = this.modelValue\n },\n computed: {\n present () {\n return typeof this.lValue !== 'undefined'\n },\n dValue () {\n return this.lValue || this.fallback || {}\n },\n family: {\n get () {\n return this.dValue.family\n },\n set (v) {\n set(this.lValue, 'family', v)\n this.$emit('update:modelValue', this.lValue)\n }\n },\n isCustom () {\n return this.preset === 'custom'\n },\n preset: {\n get () {\n if (this.family === 'serif' ||\n this.family === 'sans-serif' ||\n this.family === 'monospace' ||\n this.family === 'inherit') {\n return this.family\n } else {\n return 'custom'\n }\n },\n set (v) {\n this.family = v === 'custom' ? '' : v\n }\n }\n }\n}\n","import { render } from \"./font_control.vue?vue&type=template&id=094b0e70\"\nimport script from \"./font_control.js?vue&type=script&lang=js\"\nexport * from \"./font_control.js?vue&type=script&lang=js\"\n\nimport \"./font_control.vue?vue&type=style&index=0&id=094b0e70&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"font-control style-control\"\n :class=\"{ custom: isCustom }\"\n >\n <label\n :for=\"preset === 'custom' ? name : name + '-font-switcher'\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <input\n v-if=\"typeof fallback !== 'undefined'\"\n :id=\"name + '-o'\"\n class=\"opt exlcude-disabled\"\n type=\"checkbox\"\n :checked=\"present\"\n @change=\"$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)\"\n >\n <label\n v-if=\"typeof fallback !== 'undefined'\"\n class=\"opt-l\"\n :for=\"name + '-o'\"\n />\n {{ ' ' }}\n <Select\n :id=\"name + '-font-switcher'\"\n v-model=\"preset\"\n :disabled=\"!present\"\n class=\"font-switcher\"\n >\n <option\n v-for=\"option in availableOptions\"\n :key=\"option\"\n :value=\"option\"\n >\n {{ option === 'custom' ? $t('settings.style.fonts.custom') : option }}\n </option>\n </Select>\n <input\n v-if=\"isCustom\"\n :id=\"name\"\n v-model=\"family\"\n class=\"custom-font\"\n type=\"text\"\n >\n </div>\n</template>\n\n<script src=\"./font_control.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.font-control {\n input.custom-font {\n min-width: 10em;\n }\n\n &.custom {\n /* TODO Should make proper joiners... */\n .font-switcher {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .custom-font {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n</style>\n","<template>\n <span\n v-if=\"contrast\"\n class=\"contrast-ratio\"\n >\n <span\n :title=\"hint\"\n class=\"rating\"\n >\n <span v-if=\"contrast.aaa\">\n <FAIcon icon=\"thumbs-up\" />\n </span>\n <span v-if=\"!contrast.aaa && contrast.aa\">\n <FAIcon icon=\"adjust\" />\n </span>\n <span v-if=\"!contrast.aaa && !contrast.aa\">\n <FAIcon icon=\"exclamation-triangle\" />\n </span>\n </span>\n <span\n v-if=\"contrast && large\"\n class=\"rating\"\n :title=\"hint_18pt\"\n >\n <span v-if=\"contrast.laaa\">\n <FAIcon icon=\"thumbs-up\" />\n </span>\n <span v-if=\"!contrast.laaa && contrast.laa\">\n <FAIcon icon=\"adjust\" />\n </span>\n <span v-if=\"!contrast.laaa && !contrast.laa\">\n <FAIcon icon=\"exclamation-triangle\" />\n </span>\n </span>\n </span>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAdjust,\n faExclamationTriangle,\n faThumbsUp\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAdjust,\n faExclamationTriangle,\n faThumbsUp\n)\n\nexport default {\n props: {\n large: {\n required: false,\n type: Boolean,\n default: false\n },\n // TODO: Make theme switcher compute theme initially so that contrast\n // component won't be called without contrast data\n contrast: {\n required: false,\n type: Object,\n default: () => ({})\n }\n },\n computed: {\n hint () {\n const levelVal = this.contrast.aaa ? 'aaa' : (this.contrast.aa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.text')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n },\n hint_18pt () {\n const levelVal = this.contrast.laaa ? 'aaa' : (this.contrast.laa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.18pt')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n</style>\n","import { render } from \"./contrast_ratio.vue?vue&type=template&id=1d1df7c6\"\nimport script from \"./contrast_ratio.vue?vue&type=script&lang=js\"\nexport * from \"./contrast_ratio.vue?vue&type=script&lang=js\"\n\nimport \"./contrast_ratio.vue?vue&type=style&index=0&id=1d1df7c6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"preview-container\">\n <div class=\"underlay underlay-preview\" />\n <div class=\"panel dummy\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('settings.style.preview.header') }}\n <span class=\"badge badge-notification\">\n 99\n </span>\n </div>\n <span class=\"faint\">\n {{ $t('settings.style.preview.header_faint') }}\n </span>\n <span class=\"alert error\">\n {{ $t('settings.style.preview.error') }}\n </span>\n <button class=\"btn button-default\">\n {{ $t('settings.style.preview.button') }}\n </button>\n </div>\n <div class=\"panel-body theme-preview-content\">\n <div class=\"post\">\n <div class=\"avatar still-image\">\n ( ͡° ͜ʖ ͡°)\n </div>\n <div class=\"content\">\n <h4>\n {{ $t('settings.style.preview.content') }}\n </h4>\n\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.preview.text\"\n >\n <code style=\"font-family: var(--postCodeFont);\">\n {{ $t('settings.style.preview.mono') }}\n </code>\n <a style=\"color: var(--link);\">\n {{ $t('settings.style.preview.link') }}\n </a>\n </i18n-t>\n\n <div class=\"icons\">\n <FAIcon\n fixed-width\n style=\"color: var(--cBlue);\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"reply\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cGreen);\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"retweet\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cOrange);\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"star\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cRed);\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </div>\n </div>\n </div>\n\n <div class=\"after-post\">\n <div class=\"avatar-alt\">\n :^)\n </div>\n <div class=\"content\">\n <i18n-t\n keypath=\"settings.style.preview.fine_print\"\n tag=\"span\"\n class=\"faint\"\n scope=\"global\"\n >\n <a style=\"color: var(--faintLink);\">\n {{ $t('settings.style.preview.faint_link') }}\n </a>\n </i18n-t>\n </div>\n </div>\n <div class=\"separator\" />\n\n <span class=\"alert error\">\n {{ $t('settings.style.preview.error') }}\n </span>\n <input\n :value=\"$t('settings.style.preview.input')\"\n type=\"text\"\n >\n\n <div class=\"actions\">\n <span class=\"checkbox\">\n <input\n id=\"preview_checkbox\"\n checked=\"very yes\"\n type=\"checkbox\"\n >\n <label for=\"preview_checkbox\">{{ $t('settings.style.preview.checkbox') }}</label>\n </span>\n <button class=\"btn button-default\">\n {{ $t('settings.style.preview.button') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faStar,\n faRetweet,\n faReply\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faStar,\n faRetweet,\n faReply\n)\n\nexport default {}\n</script>\n\n<style lang=\"scss\">\n.preview-container {\n position: relative;\n}\n\n.underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n}\n</style>\n","import { render } from \"./preview.vue?vue&type=template&id=5454116a\"\nimport script from \"./preview.vue?vue&type=script&lang=js\"\nexport * from \"./preview.vue?vue&type=script&lang=js\"\n\nimport \"./preview.vue?vue&type=style&index=0&id=5454116a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\n rgb2hex,\n hex2rgb,\n getContrastRatioLayers\n} from 'src/services/color_convert/color_convert.js'\nimport {\n DEFAULT_SHADOWS,\n generateColors,\n generateShadows,\n generateRadii,\n generateFonts,\n composePreset,\n getThemes,\n shadows2to3,\n colors2to3\n} from 'src/services/style_setter/style_setter.js'\nimport {\n newImporter,\n newExporter\n} from 'src/services/export_import/export_import.js'\nimport {\n SLOT_INHERITANCE\n} from 'src/services/theme_data/pleromafe.js'\nimport {\n CURRENT_VERSION,\n OPACITIES,\n getLayers,\n getOpacitySlot\n} from 'src/services/theme_data/theme_data.service.js'\nimport ColorInput from 'src/components/color_input/color_input.vue'\nimport RangeInput from 'src/components/range_input/range_input.vue'\nimport OpacityInput from 'src/components/opacity_input/opacity_input.vue'\nimport ShadowControl from 'src/components/shadow_control/shadow_control.vue'\nimport FontControl from 'src/components/font_control/font_control.vue'\nimport ContrastRatio from 'src/components/contrast_ratio/contrast_ratio.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport Select from 'src/components/select/select.vue'\n\nimport Preview from './preview.vue'\n\n// List of color values used in v1\nconst v1OnlyNames = [\n 'bg',\n 'fg',\n 'text',\n 'link',\n 'cRed',\n 'cGreen',\n 'cBlue',\n 'cOrange'\n].map(_ => _ + 'ColorLocal')\n\nconst colorConvert = (color) => {\n if (color.startsWith('--') || color === 'transparent') {\n return color\n } else {\n return hex2rgb(color)\n }\n}\n\nexport default {\n data () {\n return {\n themeImporter: newImporter({\n validator: this.importValidator,\n onImport: this.onImport,\n onImportFailure: this.onImportFailure\n }),\n themeExporter: newExporter({\n filename: 'pleroma_theme',\n getExportedObject: () => this.exportedTheme\n }),\n availableStyles: [],\n selected: '',\n selectedTheme: this.$store.getters.mergedConfig.theme,\n themeWarning: undefined,\n tempImportFile: undefined,\n engineVersion: 0,\n\n previewShadows: {},\n previewColors: {},\n previewRadii: {},\n previewFonts: {},\n\n shadowsInvalid: true,\n colorsInvalid: true,\n radiiInvalid: true,\n\n keepColor: false,\n keepShadows: false,\n keepOpacity: false,\n keepRoundness: false,\n keepFonts: false,\n\n ...Object.keys(SLOT_INHERITANCE)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [key + 'ColorLocal']: val }), {}),\n\n ...Object.keys(OPACITIES)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [key + 'OpacityLocal']: val }), {}),\n\n shadowSelected: undefined,\n shadowsLocal: {},\n fontsLocal: {},\n\n btnRadiusLocal: '',\n inputRadiusLocal: '',\n checkboxRadiusLocal: '',\n panelRadiusLocal: '',\n avatarRadiusLocal: '',\n avatarAltRadiusLocal: '',\n attachmentRadiusLocal: '',\n tooltipRadiusLocal: '',\n chatMessageRadiusLocal: ''\n }\n },\n created () {\n const self = this\n\n getThemes()\n .then((promises) => {\n return Promise.all(\n Object.entries(promises)\n .map(([k, v]) => v.then(res => [k, res]))\n )\n })\n .then(themes => themes.reduce((acc, [k, v]) => {\n if (v) {\n return {\n ...acc,\n [k]: v\n }\n } else {\n return acc\n }\n }, {}))\n .then((themesComplete) => {\n self.availableStyles = themesComplete\n })\n },\n mounted () {\n this.loadThemeFromLocalStorage()\n if (typeof this.shadowSelected === 'undefined') {\n this.shadowSelected = this.shadowsAvailable[0]\n }\n },\n computed: {\n themeWarningHelp () {\n if (!this.themeWarning) return\n const t = this.$t\n const pre = 'settings.style.switcher.help.'\n const {\n origin,\n themeEngineVersion,\n type,\n noActionsPossible\n } = this.themeWarning\n if (origin === 'file') {\n // Loaded v2 theme from file\n if (themeEngineVersion === 2 && type === 'wrong_version') {\n return t(pre + 'v2_imported')\n }\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n } else if (origin === 'localStorage') {\n if (type === 'snapshot_source_mismatch') {\n return t(pre + 'snapshot_source_mismatch')\n }\n // FE upgraded from v2\n if (themeEngineVersion === 2) {\n return t(pre + 'upgraded_from_v2')\n }\n // Admin downgraded FE\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'fe_downgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n // Admin upgraded FE\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'fe_upgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n }\n },\n selectedVersion () {\n return Array.isArray(this.selectedTheme) ? 1 : 2\n },\n currentColors () {\n return Object.keys(SLOT_INHERITANCE)\n .map(key => [key, this[key + 'ColorLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {})\n },\n currentOpacity () {\n return Object.keys(OPACITIES)\n .map(key => [key, this[key + 'OpacityLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {})\n },\n currentRadii () {\n return {\n btn: this.btnRadiusLocal,\n input: this.inputRadiusLocal,\n checkbox: this.checkboxRadiusLocal,\n panel: this.panelRadiusLocal,\n avatar: this.avatarRadiusLocal,\n avatarAlt: this.avatarAltRadiusLocal,\n tooltip: this.tooltipRadiusLocal,\n attachment: this.attachmentRadiusLocal,\n chatMessage: this.chatMessageRadiusLocal\n }\n },\n preview () {\n return composePreset(this.previewColors, this.previewRadii, this.previewShadows, this.previewFonts)\n },\n previewTheme () {\n if (!this.preview.theme.colors) return { colors: {}, opacity: {}, radii: {}, shadows: {}, fonts: {} }\n return this.preview.theme\n },\n // This needs optimization maybe\n previewContrast () {\n try {\n if (!this.previewTheme.colors.bg) return {}\n const colors = this.previewTheme.colors\n const opacity = this.previewTheme.opacity\n if (!colors.bg) return {}\n const hints = (ratio) => ({\n text: ratio.toPrecision(3) + ':1',\n // AA level, AAA level\n aa: ratio >= 4.5,\n aaa: ratio >= 7,\n // same but for 18pt+ texts\n laa: ratio >= 3,\n laaa: ratio >= 4.5\n })\n const colorsConverted = Object.entries(colors).reduce((acc, [key, value]) => ({ ...acc, [key]: colorConvert(value) }), {})\n\n const ratios = Object.entries(SLOT_INHERITANCE).reduce((acc, [key, value]) => {\n const slotIsBaseText = key === 'text' || key === 'link'\n const slotIsText = slotIsBaseText || (\n typeof value === 'object' && value !== null && value.textColor\n )\n if (!slotIsText) return acc\n const { layer, variant } = slotIsBaseText ? { layer: 'bg' } : value\n const background = variant || layer\n const opacitySlot = getOpacitySlot(background)\n const textColors = [\n key,\n ...(background === 'bg' ? ['cRed', 'cGreen', 'cBlue', 'cOrange'] : [])\n ]\n\n const layers = getLayers(\n layer,\n variant || layer,\n opacitySlot,\n colorsConverted,\n opacity\n )\n\n // Temporary patch for null-y value errors\n if (layers.flat().some(v => v == null)) return acc\n\n return {\n ...acc,\n ...textColors.reduce((acc, textColorKey) => {\n const newKey = slotIsBaseText\n ? 'bg' + textColorKey[0].toUpperCase() + textColorKey.slice(1)\n : textColorKey\n return {\n ...acc,\n [newKey]: getContrastRatioLayers(\n colorsConverted[textColorKey],\n layers,\n colorsConverted[textColorKey]\n )\n }\n }, {})\n }\n }, {})\n\n return Object.entries(ratios).reduce((acc, [k, v]) => { acc[k] = hints(v); return acc }, {})\n } catch (e) {\n console.warn('Failure computing contrasts', e)\n return {}\n }\n },\n previewRules () {\n if (!this.preview.rules) return ''\n return [\n ...Object.values(this.preview.rules),\n 'color: var(--text)',\n 'font-family: var(--interfaceFont, sans-serif)'\n ].join(';')\n },\n shadowsAvailable () {\n return Object.keys(DEFAULT_SHADOWS).sort()\n },\n currentShadowOverriden: {\n get () {\n return !!this.currentShadow\n },\n set (val) {\n if (val) {\n this.shadowsLocal[this.shadowSelected] = this.currentShadowFallback.map(_ => Object.assign({}, _))\n } else {\n delete this.shadowsLocal[this.shadowSelected]\n }\n }\n },\n currentShadowFallback () {\n return (this.previewTheme.shadows || {})[this.shadowSelected]\n },\n currentShadow: {\n get () {\n return this.shadowsLocal[this.shadowSelected]\n },\n set (v) {\n this.shadowsLocal[this.shadowSelected] = v\n }\n },\n themeValid () {\n return !this.shadowsInvalid && !this.colorsInvalid && !this.radiiInvalid\n },\n exportedTheme () {\n const saveEverything = (\n !this.keepFonts &&\n !this.keepShadows &&\n !this.keepOpacity &&\n !this.keepRoundness &&\n !this.keepColor\n )\n\n const source = {\n themeEngineVersion: CURRENT_VERSION\n }\n\n if (this.keepFonts || saveEverything) {\n source.fonts = this.fontsLocal\n }\n if (this.keepShadows || saveEverything) {\n source.shadows = this.shadowsLocal\n }\n if (this.keepOpacity || saveEverything) {\n source.opacity = this.currentOpacity\n }\n if (this.keepColor || saveEverything) {\n source.colors = this.currentColors\n }\n if (this.keepRoundness || saveEverything) {\n source.radii = this.currentRadii\n }\n\n const theme = {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n\n return {\n // To separate from other random JSON files and possible future source formats\n _pleroma_theme_version: 2, theme, source\n }\n },\n isActive () {\n const tabSwitcher = this.$parent\n return tabSwitcher ? tabSwitcher.isActive('theme') : false\n }\n },\n components: {\n ColorInput,\n OpacityInput,\n RangeInput,\n ContrastRatio,\n ShadowControl,\n FontControl,\n TabSwitcher,\n Preview,\n Checkbox,\n Select\n },\n methods: {\n loadTheme (\n {\n theme,\n source,\n _pleroma_theme_version: fileVersion\n },\n origin,\n forceUseSource = false\n ) {\n this.dismissWarning()\n if (!source && !theme) {\n throw new Error('Can\\'t load theme: empty')\n }\n const version = (origin === 'localStorage' && !theme.colors)\n ? 'l1'\n : fileVersion\n const snapshotEngineVersion = (theme || {}).themeEngineVersion\n const themeEngineVersion = (source || {}).themeEngineVersion || 2\n const versionsMatch = themeEngineVersion === CURRENT_VERSION\n const sourceSnapshotMismatch = (\n theme !== undefined &&\n source !== undefined &&\n themeEngineVersion !== snapshotEngineVersion\n )\n // Force loading of source if user requested it or if snapshot\n // is unavailable\n const forcedSourceLoad = (source && forceUseSource) || !theme\n if (!(versionsMatch && !sourceSnapshotMismatch) &&\n !forcedSourceLoad &&\n version !== 'l1' &&\n origin !== 'defaults'\n ) {\n if (sourceSnapshotMismatch && origin === 'localStorage') {\n this.themeWarning = {\n origin,\n themeEngineVersion,\n type: 'snapshot_source_mismatch'\n }\n } else if (!theme) {\n this.themeWarning = {\n origin,\n noActionsPossible: true,\n themeEngineVersion,\n type: 'no_snapshot_old_version'\n }\n } else if (!versionsMatch) {\n this.themeWarning = {\n origin,\n noActionsPossible: !source,\n themeEngineVersion,\n type: 'wrong_version'\n }\n }\n }\n this.normalizeLocalState(theme, version, source, forcedSourceLoad)\n },\n forceLoadLocalStorage () {\n this.loadThemeFromLocalStorage(true)\n },\n dismissWarning () {\n this.themeWarning = undefined\n this.tempImportFile = undefined\n },\n forceLoad () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(true)\n break\n case 'file':\n this.onImport(this.tempImportFile, true)\n break\n }\n this.dismissWarning()\n },\n forceSnapshot () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(false, true)\n break\n case 'file':\n console.error('Forcing snapshot from file is not supported yet')\n break\n }\n this.dismissWarning()\n },\n loadThemeFromLocalStorage (confirmLoadSource = false, forceSnapshot = false) {\n const {\n customTheme: theme,\n customThemeSource: source\n } = this.$store.getters.mergedConfig\n if (!theme && !source) {\n // Anon user or never touched themes\n this.loadTheme(\n this.$store.state.instance.themeData,\n 'defaults',\n confirmLoadSource\n )\n } else {\n this.loadTheme(\n {\n theme,\n source: forceSnapshot ? theme : source\n },\n 'localStorage',\n confirmLoadSource\n )\n }\n },\n setCustomTheme () {\n this.$store.dispatch('setOption', {\n name: 'customTheme',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n })\n this.$store.dispatch('setOption', {\n name: 'customThemeSource',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n shadows: this.shadowsLocal,\n fonts: this.fontsLocal,\n opacity: this.currentOpacity,\n colors: this.currentColors,\n radii: this.currentRadii\n }\n })\n },\n updatePreviewColorsAndShadows () {\n this.previewColors = generateColors({\n opacity: this.currentOpacity,\n colors: this.currentColors\n })\n this.previewShadows = generateShadows(\n { shadows: this.shadowsLocal, opacity: this.previewTheme.opacity, themeEngineVersion: this.engineVersion },\n this.previewColors.theme.colors,\n this.previewColors.mod\n )\n },\n importTheme () { this.themeImporter.importData() },\n exportTheme () { this.themeExporter.exportData() },\n onImport (parsed, forceSource = false) {\n this.tempImportFile = parsed\n this.loadTheme(parsed, 'file', forceSource)\n },\n onImportFailure (result) {\n this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_theme_imported', level: 'error' })\n },\n importValidator (parsed) {\n const version = parsed._pleroma_theme_version\n return version >= 1 || version <= 2\n },\n clearAll () {\n this.loadThemeFromLocalStorage()\n },\n\n // Clears all the extra stuff when loading V1 theme\n clearV1 () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('ColorLocal') || _.endsWith('OpacityLocal'))\n .filter(_ => !v1OnlyNames.includes(_))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearRoundness () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('RadiusLocal'))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearOpacity () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('OpacityLocal'))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearShadows () {\n this.shadowsLocal = {}\n },\n\n clearFonts () {\n this.fontsLocal = {}\n },\n\n /**\n * This applies stored theme data onto form. Supports three versions of data:\n * v3 (version >= 3) - newest version of themes which supports snapshots for better compatiblity\n * v2 (version = 2) - newer version of themes.\n * v1 (version = 1) - older version of themes (import from file)\n * v1l (version = l1) - older version of theme (load from local storage)\n * v1 and v1l differ because of way themes were stored/exported.\n * @param {Object} theme - theme data (snapshot)\n * @param {Number} version - version of data. 0 means try to guess based on data. \"l1\" means v1, locastorage type\n * @param {Object} source - theme source - this will be used if compatible\n * @param {Boolean} source - by default source won't be used if version doesn't match since it might render differently\n * this allows importing source anyway\n */\n normalizeLocalState (theme, version = 0, source, forceSource = false) {\n let input\n if (typeof source !== 'undefined') {\n if (forceSource || source.themeEngineVersion === CURRENT_VERSION) {\n input = source\n version = source.themeEngineVersion\n } else {\n input = theme\n }\n } else {\n input = theme\n }\n\n const radii = input.radii || input\n const opacity = input.opacity\n const shadows = input.shadows || {}\n const fonts = input.fonts || {}\n const colors = !input.themeEngineVersion\n ? colors2to3(input.colors || input)\n : input.colors || input\n\n if (version === 0) {\n if (input.version) version = input.version\n // Old v1 naming: fg is text, btn is foreground\n if (typeof colors.text === 'undefined' && typeof colors.fg !== 'undefined') {\n version = 1\n }\n // New v2 naming: text is text, fg is foreground\n if (typeof colors.text !== 'undefined' && typeof colors.fg !== 'undefined') {\n version = 2\n }\n }\n\n this.engineVersion = version\n\n // Stuff that differs between V1 and V2\n if (version === 1) {\n this.fgColorLocal = rgb2hex(colors.btn)\n this.textColorLocal = rgb2hex(colors.fg)\n }\n\n if (!this.keepColor) {\n this.clearV1()\n const keys = new Set(version !== 1 ? Object.keys(SLOT_INHERITANCE) : [])\n if (version === 1 || version === 'l1') {\n keys\n .add('bg')\n .add('link')\n .add('cRed')\n .add('cBlue')\n .add('cGreen')\n .add('cOrange')\n }\n\n keys.forEach(key => {\n const color = colors[key]\n const hex = rgb2hex(colors[key])\n this[key + 'ColorLocal'] = hex === '#aN' ? color : hex\n })\n }\n\n if (opacity && !this.keepOpacity) {\n this.clearOpacity()\n Object.entries(opacity).forEach(([k, v]) => {\n if (typeof v === 'undefined' || v === null || Number.isNaN(v)) return\n this[k + 'OpacityLocal'] = v\n })\n }\n\n if (!this.keepRoundness) {\n this.clearRoundness()\n Object.entries(radii).forEach(([k, v]) => {\n // 'Radius' is kept mostly for v1->v2 localstorage transition\n const key = k.endsWith('Radius') ? k.split('Radius')[0] : k\n this[key + 'RadiusLocal'] = v\n })\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n if (version === 2) {\n this.shadowsLocal = shadows2to3(shadows, this.previewTheme.opacity)\n } else {\n this.shadowsLocal = shadows\n }\n this.shadowSelected = this.shadowsAvailable[0]\n }\n\n if (!this.keepFonts) {\n this.clearFonts()\n this.fontsLocal = fonts\n }\n }\n },\n watch: {\n currentRadii () {\n try {\n this.previewRadii = generateRadii({ radii: this.currentRadii })\n this.radiiInvalid = false\n } catch (e) {\n this.radiiInvalid = true\n console.warn(e)\n }\n },\n shadowsLocal: {\n handler () {\n if (Object.getOwnPropertyNames(this.previewColors).length === 1) return\n try {\n this.updatePreviewColorsAndShadows()\n this.shadowsInvalid = false\n } catch (e) {\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n fontsLocal: {\n handler () {\n try {\n this.previewFonts = generateFonts({ fonts: this.fontsLocal })\n this.fontsInvalid = false\n } catch (e) {\n this.fontsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n currentColors () {\n try {\n this.updatePreviewColorsAndShadows()\n this.colorsInvalid = false\n this.shadowsInvalid = false\n } catch (e) {\n this.colorsInvalid = true\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n currentOpacity () {\n try {\n this.updatePreviewColorsAndShadows()\n } catch (e) {\n console.warn(e)\n }\n },\n selected () {\n this.selectedTheme = Object.entries(this.availableStyles).find(([k, s]) => {\n if (Array.isArray(s)) {\n console.log(s[0] === this.selected, this.selected)\n return s[0] === this.selected\n } else {\n return s.name === this.selected\n }\n })[1]\n },\n selectedTheme () {\n this.dismissWarning()\n if (this.selectedVersion === 1) {\n if (!this.keepRoundness) {\n this.clearRoundness()\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n }\n\n if (!this.keepOpacity) {\n this.clearOpacity()\n }\n\n if (!this.keepColor) {\n this.clearV1()\n\n this.bgColorLocal = this.selectedTheme[1]\n this.fgColorLocal = this.selectedTheme[2]\n this.textColorLocal = this.selectedTheme[3]\n this.linkColorLocal = this.selectedTheme[4]\n this.cRedColorLocal = this.selectedTheme[5]\n this.cGreenColorLocal = this.selectedTheme[6]\n this.cBlueColorLocal = this.selectedTheme[7]\n this.cOrangeColorLocal = this.selectedTheme[8]\n }\n } else if (this.selectedVersion >= 2) {\n this.normalizeLocalState(this.selectedTheme.theme, 2, this.selectedTheme.source)\n }\n }\n }\n}\n","import { render } from \"./theme_tab.vue?vue&type=template&id=1128449a\"\nimport script from \"./theme_tab.js?vue&type=script&lang=js\"\nexport * from \"./theme_tab.js?vue&type=script&lang=js\"\n\nimport \"./theme_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nimport DataImportExportTab from './tabs/data_import_export_tab.vue'\nimport MutesAndBlocksTab from './tabs/mutes_and_blocks_tab.vue'\nimport NotificationsTab from './tabs/notifications_tab.vue'\nimport FilteringTab from './tabs/filtering_tab.vue'\nimport SecurityTab from './tabs/security_tab/security_tab.vue'\nimport ProfileTab from './tabs/profile_tab.vue'\nimport GeneralTab from './tabs/general_tab.vue'\nimport VersionTab from './tabs/version_tab.vue'\nimport ThemeTab from './tabs/theme_tab/theme_tab.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faWrench,\n faUser,\n faFilter,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench,\n faUser,\n faFilter,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n)\n\nconst SettingsModalContent = {\n components: {\n TabSwitcher,\n\n DataImportExportTab,\n MutesAndBlocksTab,\n NotificationsTab,\n FilteringTab,\n SecurityTab,\n ProfileTab,\n GeneralTab,\n VersionTab,\n ThemeTab\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n open () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n bodyLock () {\n return this.$store.state.interface.settingsModalState === 'visible'\n }\n },\n methods: {\n onOpen () {\n const targetTab = this.$store.state.interface.settingsModalTargetTab\n // We're being told to open in specific tab\n if (targetTab) {\n const tabIndex = this.$refs.tabSwitcher.$slots.default().findIndex(elm => {\n return elm.props && elm.props['data-tab-name'] === targetTab\n })\n if (tabIndex >= 0) {\n this.$refs.tabSwitcher.setTab(tabIndex)\n }\n }\n // Clear the state of target tab, so that next time settings is opened\n // it doesn't force it.\n this.$store.dispatch('clearSettingsModalTargetTab')\n }\n },\n mounted () {\n this.onOpen()\n },\n watch: {\n open: function (value) {\n if (value) this.onOpen()\n }\n }\n}\n\nexport default SettingsModalContent\n","import { render } from \"./settings_modal_content.vue?vue&type=template&id=6191ca84\"\nimport script from \"./settings_modal_content.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal_content.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal_content.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <tab-switcher\n ref=\"tabSwitcher\"\n class=\"settings_tab-switcher\"\n :side-tab-bar=\"true\"\n :scrollable-tabs=\"true\"\n :body-scroll-lock=\"bodyLock\"\n >\n <div\n :label=\"$t('settings.general')\"\n icon=\"wrench\"\n data-tab-name=\"general\"\n >\n <GeneralTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.profile_tab')\"\n icon=\"user\"\n data-tab-name=\"profile\"\n >\n <ProfileTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.security_tab')\"\n icon=\"lock\"\n data-tab-name=\"security\"\n >\n <SecurityTab />\n </div>\n <div\n :label=\"$t('settings.filtering')\"\n icon=\"filter\"\n data-tab-name=\"filtering\"\n >\n <FilteringTab />\n </div>\n <div\n :label=\"$t('settings.theme')\"\n icon=\"paint-brush\"\n data-tab-name=\"theme\"\n >\n <ThemeTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.notifications')\"\n icon=\"bell\"\n data-tab-name=\"notifications\"\n >\n <NotificationsTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.data_import_export_tab')\"\n icon=\"download\"\n data-tab-name=\"dataImportExport\"\n >\n <DataImportExportTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.mutes_and_blocks')\"\n :fullHeight=\"true\"\n icon=\"eye-slash\"\n data-tab-name=\"mutesAndBlocks\"\n >\n <MutesAndBlocksTab />\n </div>\n <div\n :label=\"$t('settings.version.title')\"\n icon=\"info\"\n data-tab-name=\"version\"\n >\n <VersionTab />\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./settings_modal_content.js\"></script>\n\n<style src=\"./settings_modal_content.scss\" lang=\"scss\"></style>\n"],"names":["class","_createElementVNode","library","faCircleNotch","faTimes","props","submitHandler","type","Function","required","submitButtonLabel","String","successMessage","errorMessage","data","file","error","success","submitting","methods","change","this","$refs","input","files","submit","dismiss","then","_createElementBlock","_hoisted_1","ref","onChange","_ctx","_createBlock","_component_FAIcon","spin","icon","onClick","_createVNode","getContent","filename","default","exportButtonLabel","processingMessage","processing","process","content","fileToDownload","document","createElement","setAttribute","encodeURIComponent","style","display","body","appendChild","click","removeChild","setTimeout","size","activeTab","newDomainToMute","listBackupsError","addBackupError","addedBackup","backups","created","$store","dispatch","fetchBackups","components","Importer","Exporter","Checkbox","computed","mapState","backendInteractor","state","api","user","users","currentUser","getFollowsContent","exportFriends","id","generateExportableUsersContent","getBlocksContent","fetchBlocks","getMutesContent","fetchMutes","importFollows","status","Error","importBlocks","importMutes","map","is_local","screen_name","location","hostname","join","addBackup","res","listBackups","label","_hoisted_2","_component_Importer","_hoisted_3","_component_Exporter","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_Fragment","backup","key","inserted_at","_hoisted_10","processed","target","href","url","processed_number","number","_hoisted_15","title","query","filter","placeholder","term","timeout","results","resultsVisible","filtered","watch","val","fetchResults","clearTimeout","onInputClick","onClickOutside","length","item","_renderSlot","progress","getters","findUser","userId","relationship","blocked","blocking","BasicUserCard","unblockUser","blockUser","_component_basic_user_card","disabled","muted","muting","unmuteUser","muteUser","ProgressButton","domainMutes","includes","domain","unmuteDomain","muteDomain","_component_ProgressButton","List","items","Array","getKey","selected","allKeys","filteredSelected","indexOf","allSelected","noneSelected","someSelected","isSelected","toggle","checked","push","splice","toggleAll","value","slice","_component_Checkbox","indeterminate","_component_List","_normalizeClass","empty","fetch","select","childPropName","additionalPropNames","WrappedComponent","Object","keys","getComponentProps","v","concat","loading","fetchedData","$props","refresh","isEmpty","fetchData","render","$t","children","$slots","BlockList","withSubscription","get","SelectableList","MuteList","DomainMuteList","TabSwitcher","BlockCard","MuteCard","DomainMuteCard","Autosuggest","knownDomains","instance","activateTab","tabName","filterUnblockedUsers","userIds","reject","filterUnMutedUsers","queryUserIds","blockUsers","ids","unblockUsers","muteUsers","unmuteUsers","filterUnMutedDomains","urls","queryKnownDomains","Promise","resolve","toLowerCase","unmuteDomains","domains","_component_tab_switcher","_component_Autosuggest","_withCtx","row","_component_BlockCard","_component_BlockList","i","header","_component_MuteCard","_component_MuteList","_component_DomainMuteCard","_component_DomainMuteList","faWrench","Popover","_component_Popover","trigger","faServer","ModifiedIndicator","ServerSideIndicator","pathDefault","path","split","firstSegment","rest","$parent","undefined","defaultState","isServerSide","startsWith","isChanged","matchesExpertLevel","expert","expertLevel","update","e","reset","_component_ModifiedIndicator","changed","onclick","_component_ServerSideIndicator","configDefaultState","defaultConfig","reduce","acc","mergedConfig","set","name","serverSideConfigDefaultState","serverSideConfig","useStreamingApi","console","notificationSettings","notification_settings","BooleanSetting","SharedComputedObject","updateNotificationSettings","settings","_component_BooleanSetting","Select","_component_Select","option","Boolean","min","Number","parseInt","for","step","muteWordsStringLocal","muteWords","replyVisibilityOptions","mode","ChoiceSetting","IntegerSetting","muteWordsString","debouncedSetMuteWords","word","replyVisibility","_component_ChoiceSetting","options","_component_IntegerSetting","place","backupCodes","inProgress","codes","ready","displayTitle","code","confirm","$emit","cancel","currentPassword","deactivate","Confirm","isActivated","totp","doActivate","cancelDeactivate","doDeactivate","confirmDeactivate","mfaDisableOTP","password","available","enabled","setupState","setupOTPState","getNewCodes","otpSettings","provisioning_uri","otpConfirmToken","readyInit","RecoveryCodes","_component_confirm","onConfirm","onCancel","qrcode","VueQrcode","canSetupOTP","setupInProgress","backupCodesPrepared","setupOTPInProgress","completedOTP","prepareOTP","confirmOTP","confirmNewBackupCodes","activateOTP","fetchBackupCodes","generateMfaBackupCodes","getBackupCodes","confirmBackupCodes","cancelBackupCodes","setupOTP","mfaSetupOTP","doConfirmOTP","mfaConfirmOTP","token","completeSetup","fetchSettings","cancelSetup","settingsMFA","result","mounted","_component_totp_item","onDeactivate","onActivate","_component_recovery_codes","_hoisted_11","_hoisted_12","_component_qrcode","width","_hoisted_13","_hoisted_14","newEmail","changeEmailError","changeEmailPassword","changedEmail","deletingAccount","deleteAccountConfirmPasswordInput","deleteAccountError","changePasswordInputs","changedPassword","changePasswordError","moveAccountTarget","moveAccountPassword","movedAccount","moveAccountError","aliases","listAliasesError","addAliasTarget","addedAlias","addAliasError","fetchAliases","Mfa","pleromaBackend","oauthTokens","tokens","oauthToken","appName","app_name","validUntil","Date","valid_until","toLocaleDateString","localeService","$i18n","locale","confirmDelete","deleteAccount","$router","changePassword","params","newPassword","newPasswordConfirmation","logout","changeEmail","email","moveAccount","targetAccount","removeAlias","alias","deleteAlias","addAlias","listAliases","replace","revokeToken","window","t","autocomplete","_component_mfa","_hoisted_17","_component_i18n","tag","_hoisted_18","_hoisted_21","_hoisted_22","_hoisted_25","Element","cropperOptions","aspectRatio","autoCropArea","viewMode","movable","zoomable","guides","mimes","saveButtonLabel","saveWithoutCroppingButtonlabel","cancelButtonLabel","cropper","dataUrl","saveText","saveWithoutCroppingText","cancelText","destroy","cropping","pickImage","createCropper","Cropper","img","getTriggerDOM","querySelector","readFile","fileInput","reader","FileReader","onload","readAsDataURL","addEventListener","beforeUnmount","removeEventListener","src","alt","onLoad","_toDisplayString","accept","faPlus","ProfileTab","newName","name_unescaped","newBio","unescape","description","newLocked","locked","newBirthday","birthday","showBirthday","show_birthday","newFields","fields","field","showRole","show_role","role","bot","pickAvatarBtnVisible","bannerUploading","backgroundUploading","banner","bannerPreview","background","backgroundPreview","emailLanguage","language","ScopeSelector","ImageCropper","EmojiInput","InterfaceLanguageSwitcher","emojiUserSuggestor","suggestor","emoji","standardEmojiList","customEmoji","store","emojiSuggestor","userSuggestor","fieldsLimits","maxFields","defaultAvatar","server","defaultBanner","isDefaultAvatar","baseAvatar","profile_image_url","isDefaultBanner","baseBanner","cover_photo","isDefaultBackground","background_image","avatarImgSrc","profile_image_url_original","bannerImgSrc","updateProfile","note","display_name","fields_attributes","el","merge","commit","changeVis","visibility","newDefaultScope","addField","deleteField","index","event","uploadFile","slot","filesize","fileSizeFormatService","allowedsize","messageKey","messageArgs","num","filesizeunit","unit","allowedsizeunit","level","resetAvatar","submitAvatar","resetBanner","submitBanner","resetBackground","submitBackground","that","updateAvatar","avatar","avatarName","updateProfileImages","displayUploadError","getCroppedCanvas","toBlob","message","propsToNative","_component_EmojiInput","suggest","inputProps","_mergeProps","_","_component_interface_language_switcher","_component_image_cropper","onOpen","onClose","$event","_hoisted_19","_hoisted_20","_hoisted_24","allCssUnits","defaultHorizontalUnits","units","stateUnit","stateValue","updateValue","updateUnit","faGlobe","subjectLineOptions","conversationDisplayOptions","conversationOtherRepliesButtonOptions","mentionLinkDisplayOptions","thirdColumnModeOptions","userPopoverAvatarActionOptions","loopSilentAvailable","getOwnPropertyDescriptor","HTMLVideoElement","prototype","HTMLMediaElement","SizeSetting","horizontalUnits","postFormats","postContentOptions","format","columns","thirdColumnMode","notif","sidebarRight","instanceSpecificPanelPresent","showInstanceSpecificPanel","instanceWallpaperUsed","instanceShoutboxPresent","shoutAvailable","interfaceLanguage","changeDefaultScope","column","_component_SizeSetting","_hoisted_16","_component_ScopeSelector","backendVersion","frontendVersion","frontendVersionLink","backendVersionLink","matches","match","modelValue","fallback","showOptionalTickbox","emits","present","validColor","hex2rgb","transparentColor","computedColor","$options","onInput","backgroundColor","max","faChevronDown","faChevronUp","toModel","object","x","y","blur","spread","inset","color","alpha","selectedId","cValue","ColorInput","OpacityInput","add","del","Math","moveUp","moveDn","beforeUpdate","anyShadows","anyShadowsFallback","currentFallback","moveUpValid","moveDnValid","usingFallback","rgb","boxShadow","getCssShadow","shadow","_hoisted_23","_hoisted_27","_component_ColorInput","_component_OpacityInput","_component_i18n_t","scope","keypath","_hoisted_30","lValue","availableOptions","noInherit","dValue","family","isCustom","preset","custom","faAdjust","faExclamationTriangle","faThumbsUp","large","contrast","hint","levelVal","aaa","aa","context","ratio","text","hint_18pt","laaa","laa","faStar","faRetweet","faReply","_hoisted_26","_hoisted_28","v1OnlyNames","themeImporter","newImporter","validator","importValidator","onImport","onImportFailure","themeExporter","newExporter","getExportedObject","exportedTheme","availableStyles","selectedTheme","theme","themeWarning","tempImportFile","engineVersion","previewShadows","previewColors","previewRadii","previewFonts","shadowsInvalid","colorsInvalid","radiiInvalid","keepColor","keepShadows","keepOpacity","keepRoundness","keepFonts","SLOT_INHERITANCE","OPACITIES","shadowSelected","shadowsLocal","fontsLocal","btnRadiusLocal","inputRadiusLocal","checkboxRadiusLocal","panelRadiusLocal","avatarRadiusLocal","avatarAltRadiusLocal","attachmentRadiusLocal","tooltipRadiusLocal","chatMessageRadiusLocal","self","getThemes","promises","all","entries","k","themes","themesComplete","loadThemeFromLocalStorage","shadowsAvailable","themeWarningHelp","pre","origin","themeEngineVersion","noActionsPossible","CURRENT_VERSION","selectedVersion","isArray","currentColors","currentOpacity","currentRadii","btn","checkbox","panel","avatarAlt","tooltip","attachment","chatMessage","preview","composePreset","previewTheme","colors","opacity","radii","shadows","fonts","previewContrast","bg","colorsConverted","ratios","slotIsBaseText","textColor","layer","variant","opacitySlot","getOpacitySlot","textColors","layers","getLayers","flat","some","textColorKey","newKey","toUpperCase","getContrastRatioLayers","toPrecision","warn","previewRules","rules","values","DEFAULT_SHADOWS","sort","currentShadowOverriden","currentShadow","currentShadowFallback","assign","themeValid","saveEverything","source","_pleroma_theme_version","isActive","tabSwitcher","RangeInput","ContrastRatio","ShadowControl","FontControl","Preview","loadTheme","fileVersion","forceUseSource","dismissWarning","version","snapshotEngineVersion","versionsMatch","sourceSnapshotMismatch","forcedSourceLoad","normalizeLocalState","forceLoadLocalStorage","forceLoad","forceSnapshot","confirmLoadSource","customTheme","customThemeSource","themeData","setCustomTheme","updatePreviewColorsAndShadows","generateColors","generateShadows","mod","importTheme","importData","exportTheme","exportData","parsed","forceSource","clearAll","clearV1","$data","endsWith","forEach","clearRoundness","clearOpacity","clearShadows","clearFonts","colors2to3","fg","fgColorLocal","rgb2hex","textColorLocal","Set","hex","isNaN","shadows2to3","generateRadii","handler","getOwnPropertyNames","deep","generateFonts","fontsInvalid","find","s","log","bgColorLocal","linkColorLocal","cRedColorLocal","cGreenColorLocal","cBlueColorLocal","cOrangeColorLocal","_component_preview","_KeepAlive","_component_ContrastRatio","bgText","link","accent","bgLink","fgText","fgLink","bgCRed","bgCBlue","bgCGreen","bgCOrange","postLink","cGreen","postGreentext","alertError","alertErrorText","alertWarning","alertWarningText","alertNeutral","alertNeutralText","alert","badgeNotification","badgeNotificationText","_hoisted_29","panelText","panelLink","topBar","topBarText","topBarLink","_hoisted_31","inputText","_hoisted_32","btnText","btnPanelText","btnTopBarText","btnPressed","btnPressedText","btnPressedPanelText","btnPressedTopBarText","btnDisabled","btnDisabledText","btnDisabledPanelText","btnDisabledTopBarText","btnToggled","btnToggledText","btnToggledPanelText","btnToggledTopBarText","_hoisted_33","tab","tabText","tabActiveText","_hoisted_34","border","_hoisted_35","faint","faintLink","panelFaint","_hoisted_36","underlay","_hoisted_37","wallpaper","_hoisted_38","poll","pollText","_hoisted_39","_hoisted_40","highlight","highlightText","highlightLink","_hoisted_41","popover","popoverText","popoverLink","_hoisted_42","selectedPost","selectedPostText","selectedPostLink","_hoisted_43","selectedMenu","selectedMenuText","selectedMenuLink","_hoisted_44","_hoisted_46","_component_RangeInput","_hoisted_48","_hoisted_49","_hoisted_51","_hoisted_52","_hoisted_53","_component_ShadowControl","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_61","_component_FontControl","post","postCode","_Teleport","to","_hoisted_62","faUser","faFilter","faPaintBrush","faBell","faDownload","faEyeSlash","faInfo","DataImportExportTab","MutesAndBlocksTab","NotificationsTab","FilteringTab","SecurityTab","GeneralTab","VersionTab","ThemeTab","isLoggedIn","open","settingsModalState","bodyLock","targetTab","settingsModalTargetTab","tabIndex","findIndex","elm","setTab","_component_GeneralTab","_component_ProfileTab","_component_SecurityTab","_component_FilteringTab","_component_ThemeTab","_component_NotificationsTab","_component_DataImportExportTab","fullHeight","_component_MutesAndBlocksTab","_component_VersionTab"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/9169.335214f6ab57538eae0b.js b/priv/static/static/js/9169.335214f6ab57538eae0b.js
deleted file mode 100644
index 7bd000f28..000000000
--- a/priv/static/static/js/9169.335214f6ab57538eae0b.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! For license information please see 9169.335214f6ab57538eae0b.js.LICENSE.txt */
-(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[9169],{9382:(e,t,n)=>{"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Qc:()=>vn,fL:()=>bn,qv:()=>gn,vI:()=>mn,vc:()=>dn});var p=function(){},h={},d={},m=null,v={mark:p,measure:p};try{"undefined"!=typeof window&&(h=window),"undefined"!=typeof document&&(d=document),"undefined"!=typeof MutationObserver&&(m=MutationObserver),"undefined"!=typeof performance&&(v=performance)}catch(e){}var g,b,y,_,w,x=(h.navigator||{}).userAgent,k=void 0===x?"":x,C=h,E=d,N=m,S=v,O=(C.document,!!E.documentElement&&!!E.head&&"function"==typeof E.addEventListener&&"function"==typeof E.createElement),j=~k.indexOf("MSIE")||~k.indexOf("Trident/"),L="svg-inline--fa",A="data-fa-i2svg",M="data-fa-pseudo-element",I="data-prefix",T="data-icon",R="fontawesome-i2svg",P=["HTML","HEAD","STYLE","SCRIPT"],z=function(){try{return!0}catch(e){return!1}}(),F="classic",$="sharp",H=[F,$];function D(e){return new Proxy(e,{get:function(e,t){return t in e?e[t]:e.classic}})}var V=D((s(g={},F,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit"}),s(g,$,{fa:"solid",fass:"solid","fa-solid":"solid"}),g)),U=D((s(b={},F,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),s(b,$,{solid:"fass"}),b)),B=D((s(y={},F,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),s(y,$,{fass:"fa-solid"}),y)),W=D((s(_={},F,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),s(_,$,{"fa-solid":"fass"}),_)),Y=/fa(s|r|l|t|d|b|k|ss)?[\-\ ]/,q="fa-layers-text",G=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,X=D((s(w={},F,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),s(w,$,{900:"fass"}),w)),Z=[1,2,3,4,5,6,7,8,9,10],J=Z.concat([11,12,13,14,15,16,17,18,19,20]),K=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],Q="duotone-group",ee="primary",te="secondary",ne=new Set;Object.keys(U.classic).map(ne.add.bind(ne)),Object.keys(U.sharp).map(ne.add.bind(ne));var re=[].concat(H,l(ne),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",Q,"swap-opacity",ee,te]).concat(Z.map((function(e){return"".concat(e,"x")}))).concat(J.map((function(e){return"w-".concat(e)}))),ae=C.FontAwesomeConfig||{};E&&"function"==typeof E.querySelector&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach((function(e){var t=c(e,2),n=t[0],r=t[1],a=function(e){return""===e||"false"!==e&&("true"===e||e)}(function(e){var t=E.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}(n));null!=a&&(ae[r]=a)}));var oe={styleDefault:"solid",familyDefault:"classic",cssPrefix:"fa",replacementClass:L,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};ae.familyPrefix&&(ae.cssPrefix=ae.familyPrefix);var ie=a(a({},oe),ae);ie.autoReplaceSvg||(ie.observeMutations=!1);var se={};Object.keys(oe).forEach((function(e){Object.defineProperty(se,e,{enumerable:!0,set:function(t){ie[e]=t,ce.forEach((function(e){return e(se)}))},get:function(){return ie[e]}})})),Object.defineProperty(se,"familyPrefix",{enumerable:!0,set:function(e){ie.cssPrefix=e,ce.forEach((function(e){return e(se)}))},get:function(){return ie.cssPrefix}}),C.FontAwesomeConfig=se;var ce=[],le=16,ue={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function fe(){for(var e=12,t="";e-- >0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function pe(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function he(e){return e.classList?pe(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function de(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function me(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")}),"")}function ve(e){return e.size!==ue.size||e.x!==ue.x||e.y!==ue.y||e.rotate!==ue.rotate||e.flipX||e.flipY}function ge(){var e="fa",t=L,n=se.cssPrefix,r=se.replacementClass,a=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if(n!==e||r!==t){var o=new RegExp("\\.".concat(e,"\\-"),"g"),i=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");a=a.replace(o,".".concat(n,"-")).replace(i,"--".concat(n,"-")).replace(s,".".concat(r))}return a}var be=!1;function ye(){se.autoAddCss&&!be&&(function(e){if(e&&O){var t=E.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=E.head.childNodes,r=null,a=n.length-1;a>-1;a--){var o=n[a],i=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(r=o)}E.head.insertBefore(t,r)}}(ge()),be=!0)}var _e={mixout:function(){return{dom:{css:ge,insertCss:ye}}},hooks:function(){return{beforeDOMElementCreation:function(){ye()},beforeI2svg:function(){ye()}}}},we=C||{};we.___FONT_AWESOME___||(we.___FONT_AWESOME___={}),we.___FONT_AWESOME___.styles||(we.___FONT_AWESOME___.styles={}),we.___FONT_AWESOME___.hooks||(we.___FONT_AWESOME___.hooks={}),we.___FONT_AWESOME___.shims||(we.___FONT_AWESOME___.shims=[]);var xe=we.___FONT_AWESOME___,ke=[],Ce=!1;function Ee(e){O&&(Ce?setTimeout(e,0):ke.push(e))}function Ne(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,o=void 0===a?[]:a;return"string"==typeof e?de(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(de(e[n]),'" ')}),"").trim()}(r),">").concat(o.map(Ne).join(""),"</").concat(t,">")}function Se(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}O&&((Ce=(E.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(E.readyState))||E.addEventListener("DOMContentLoaded",(function e(){E.removeEventListener("DOMContentLoaded",e),Ce=1,ke.map((function(e){return e()}))})));var Oe=function(e,t,n,r){var a,o,i,s=Object.keys(e),c=s.length,l=void 0!==r?function(e,t){return function(n,r,a,o){return e.call(t,n,r,a,o)}}(t,r):t;for(void 0===n?(a=1,i=e[s[0]]):(a=0,i=n);a<c;a++)i=l(i,e[o=s[a]],o,e);return i};function je(e){var t=function(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var o=e.charCodeAt(n++);56320==(64512&o)?t.push(((1023&a)<<10)+(1023&o)+65536):(t.push(a),n--)}else t.push(a)}return t}(e);return 1===t.length?t[0].toString(16):null}function Le(e){return Object.keys(e).reduce((function(t,n){var r=e[n];return r.icon?t[r.iconName]=r.icon:t[n]=r,t}),{})}function Ae(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,o=void 0!==r&&r,i=Le(t);"function"!=typeof xe.hooks.addPack||o?xe.styles[e]=a(a({},xe.styles[e]||{}),i):xe.hooks.addPack(e,Le(t)),"fas"===e&&Ae("fa",t)}var Me,Ie,Te,Re=xe.styles,Pe=xe.shims,ze=(s(Me={},F,Object.values(B.classic)),s(Me,$,Object.values(B.sharp)),Me),Fe=null,$e={},He={},De={},Ve={},Ue={},Be=(s(Ie={},F,Object.keys(V.classic)),s(Ie,$,Object.keys(V.sharp)),Ie);function We(e,t){var n,r=t.split("-"),a=r[0],o=r.slice(1).join("-");return a!==e||""===o||(n=o,~re.indexOf(n))?null:o}var Ye,qe=function(){var e=function(e){return Oe(Re,(function(t,n,r){return t[r]=Oe(n,e,{}),t}),{})};$e=e((function(e,t,n){return t[3]&&(e[t[3]]=n),t[2]&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=n})),e})),He=e((function(e,t,n){return e[n]=n,t[2]&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=n})),e})),Ue=e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in Re||se.autoFetchSvg,n=Oe(Pe,(function(e,n){var r=n[0],a=n[1],o=n[2];return"far"!==a||t||(a="fas"),"string"==typeof r&&(e.names[r]={prefix:a,iconName:o}),"number"==typeof r&&(e.unicodes[r.toString(16)]={prefix:a,iconName:o}),e}),{names:{},unicodes:{}});De=n.names,Ve=n.unicodes,Fe=Ke(se.styleDefault,{family:se.familyDefault})};function Ge(e,t){return($e[e]||{})[t]}function Xe(e,t){return(Ue[e]||{})[t]}function Ze(e){return De[e]||{prefix:null,iconName:null}}function Je(){return Fe}function Ke(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.family,r=void 0===n?F:n,a=V[r][e],o=U[r][e]||U[r][a],i=e in xe.styles?e:null;return o||i||null}Ye=function(e){Fe=Ke(e.styleDefault,{family:se.familyDefault})},ce.push(Ye),qe();var Qe=(s(Te={},F,Object.keys(B.classic)),s(Te,$,Object.keys(B.sharp)),Te);function et(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.skipLookups,a=void 0!==r&&r,o=(s(t={},F,"".concat(se.cssPrefix,"-").concat(F)),s(t,$,"".concat(se.cssPrefix,"-").concat($)),t),i=null,c=F;(e.includes(o.classic)||e.some((function(e){return Qe.classic.includes(e)})))&&(c=F),(e.includes(o.sharp)||e.some((function(e){return Qe.sharp.includes(e)})))&&(c=$);var l=e.reduce((function(e,t){var n=We(se.cssPrefix,t);if(Re[t]?(t=ze[c].includes(t)?W[c][t]:t,i=t,e.prefix=t):Be[c].indexOf(t)>-1?(i=t,e.prefix=Ke(t,{family:c})):n?e.iconName=n:t!==se.replacementClass&&t!==o.classic&&t!==o.sharp&&e.rest.push(t),!a&&e.prefix&&e.iconName){var r="fa"===i?Ze(e.iconName):{},s=Xe(e.prefix,e.iconName);r.prefix&&(i=null),e.iconName=r.iconName||s||e.iconName,e.prefix=r.prefix||e.prefix,"far"!==e.prefix||Re.far||!Re.fas||se.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return(e.includes("fa-brands")||e.includes("fab"))&&(l.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(l.prefix="fad"),l.prefix||c!==$||!Re.fass&&!se.autoFetchSvg||(l.prefix="fass",l.iconName=Xe(l.prefix,l.iconName)||l.iconName),"fa"!==l.prefix&&"fa"!==i||(l.prefix=Je()||"fas"),l}var tt=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n;return t=e,n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=n.reduce(this._pullDefinitions,{});Object.keys(o).forEach((function(t){e.definitions[t]=a(a({},e.definitions[t]||{}),o[t]),Ae(t,o[t]);var n=B.classic[t];n&&Ae(n,o[t]),qe()}))}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(e,t){var n=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(n).map((function(t){var r=n[t],a=r.prefix,o=r.iconName,i=r.icon,s=i[2];e[a]||(e[a]={}),s.length>0&&s.forEach((function(t){"string"==typeof t&&(e[a][t]=i)})),e[a][o]=i})),e}}],n&&i(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}(),nt=[],rt={},at={},ot=Object.keys(at);function it(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a<n;a++)r[a-2]=arguments[a];var o=rt[e]||[];return o.forEach((function(e){t=e.apply(null,[t].concat(r))})),t}function st(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=rt[e]||[];a.forEach((function(e){e.apply(null,n)}))}function ct(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return at[e]?at[e].apply(null,t):void 0}function lt(e){"fa"===e.prefix&&(e.prefix="fas");var t=e.iconName,n=e.prefix||Je();if(t)return t=Xe(n,t)||t,Se(ut.definitions,n,t)||Se(xe.styles,n,t)}var ut=new tt,ft={i2svg:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O?(st("beforeI2svg",e),ct("pseudoElements2svg",e),ct("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===se.autoReplaceSvg&&(se.autoReplaceSvg=!0),se.observeMutations=!0,Ee((function(){ht({autoReplaceSvgRoot:t}),st("watch",e)}))}},pt={noAuto:function(){se.autoReplaceSvg=!1,se.observeMutations=!1,st("noAuto")},config:se,dom:ft,parse:{icon:function(e){if(null===e)return null;if("object"===o(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Xe(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=Ke(e[0]);return{prefix:n,iconName:Xe(n,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(se.cssPrefix,"-"))>-1||e.match(Y))){var r=et(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||Je(),iconName:Xe(r.prefix,r.iconName)||r.iconName}}if("string"==typeof e){var a=Je();return{prefix:a,iconName:Xe(a,e)||e}}}},library:ut,findIconDefinition:lt,toHtml:Ne},ht=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,n=void 0===t?E:t;(Object.keys(xe.styles).length>0||se.autoFetchSvg)&&O&&se.autoReplaceSvg&&pt.dom.i2svg({node:n})};function dt(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return Ne(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(O){var t=E.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function mt(e){var t=e.icons,n=t.main,r=t.mask,o=e.prefix,i=e.iconName,s=e.transform,c=e.symbol,l=e.title,u=e.maskId,f=e.titleId,p=e.extra,h=e.watchable,d=void 0!==h&&h,m=r.found?r:n,v=m.width,g=m.height,b="fak"===o,y=[se.replacementClass,i?"".concat(se.cssPrefix,"-").concat(i):""].filter((function(e){return-1===p.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(p.classes).join(" "),_={children:[],attributes:a(a({},p.attributes),{},{"data-prefix":o,"data-icon":i,class:y,role:p.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(v," ").concat(g)})},w=b&&!~p.classes.indexOf("fa-fw")?{width:"".concat(v/g*16*.0625,"em")}:{};d&&(_.attributes[A]=""),l&&(_.children.push({tag:"title",attributes:{id:_.attributes["aria-labelledby"]||"title-".concat(f||fe())},children:[l]}),delete _.attributes.title);var x=a(a({},_),{},{prefix:o,iconName:i,main:n,mask:r,maskId:u,transform:s,symbol:c,styles:a(a({},w),p.styles)}),k=r.found&&n.found?ct("generateAbstractMask",x)||{children:[],attributes:{}}:ct("generateAbstractIcon",x)||{children:[],attributes:{}},C=k.children,E=k.attributes;return x.children=C,x.attributes=E,c?function(e){var t=e.prefix,n=e.iconName,r=e.children,o=e.attributes,i=e.symbol,s=!0===i?"".concat(t,"-").concat(se.cssPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:a(a({},o),{},{id:s}),children:r}]}]}(x):function(e){var t=e.children,n=e.main,r=e.mask,o=e.attributes,i=e.styles,s=e.transform;if(ve(s)&&n.found&&!r.found){var c={x:n.width/n.height/2,y:.5};o.style=me(a(a({},i),{},{"transform-origin":"".concat(c.x+s.x/16,"em ").concat(c.y+s.y/16,"em")}))}return[{tag:"svg",attributes:o,children:t}]}(x)}function vt(e){var t=e.content,n=e.width,r=e.height,o=e.transform,i=e.title,s=e.extra,c=e.watchable,l=void 0!==c&&c,u=a(a(a({},s.attributes),i?{title:i}:{}),{},{class:s.classes.join(" ")});l&&(u[A]="");var f=a({},s.styles);ve(o)&&(f.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?16:n,a=e.height,o=void 0===a?16:a,i=e.startCentered,s=void 0!==i&&i,c="";return c+=s&&j?"translate(".concat(t.x/le-r/2,"em, ").concat(t.y/le-o/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/le,"em), calc(-50% + ").concat(t.y/le,"em)) "):"translate(".concat(t.x/le,"em, ").concat(t.y/le,"em) "),(c+="scale(".concat(t.size/le*(t.flipX?-1:1),", ").concat(t.size/le*(t.flipY?-1:1),") "))+"rotate(".concat(t.rotate,"deg) ")}({transform:o,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var p=me(f);p.length>0&&(u.style=p);var h=[];return h.push({tag:"span",attributes:u,children:[t]}),i&&h.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),h}function gt(e){var t=e.content,n=e.title,r=e.extra,o=a(a(a({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),i=me(r.styles);i.length>0&&(o.style=i);var s=[];return s.push({tag:"span",attributes:o,children:[t]}),n&&s.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),s}var bt=xe.styles;function yt(e){var t=e[0],n=e[1],r=c(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(se.cssPrefix,"-").concat(Q)},children:[{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(te),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(ee),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var _t={found:!1,width:512,height:512};function wt(e,t){var n=t;return"fa"===t&&null!==se.styleDefault&&(t=Je()),new Promise((function(r,o){if(ct("missingIconAbstract"),"fa"===n){var i=Ze(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&bt[t]&&bt[t][e])return r(yt(bt[t][e]));!function(e,t){z||se.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(a(a({},_t),{},{icon:se.showMissingIcons&&e&&ct("missingIconAbstract")||{}}))}))}var xt=function(){},kt=se.measurePerformance&&S&&S.mark&&S.measure?S:{mark:xt,measure:xt},Ct='FA "6.2.0"',Et=function(e){return kt.mark("".concat(Ct," ").concat(e," begins")),function(){return function(e){kt.mark("".concat(Ct," ").concat(e," ends")),kt.measure("".concat(Ct," ").concat(e),"".concat(Ct," ").concat(e," begins"),"".concat(Ct," ").concat(e," ends"))}(e)}},Nt=function(){};function St(e){return"string"==typeof(e.getAttribute?e.getAttribute(A):null)}function Ot(e){return E.createElementNS("http://www.w3.org/2000/svg",e)}function jt(e){return E.createElement(e)}function Lt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.ceFn,r=void 0===n?"svg"===e.tag?Ot:jt:n;if("string"==typeof e)return E.createTextNode(e);var a=r(e.tag);Object.keys(e.attributes||[]).forEach((function(t){a.setAttribute(t,e.attributes[t])}));var o=e.children||[];return o.forEach((function(e){a.appendChild(Lt(e,{ceFn:r}))})),a}var At={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(Lt(e),t)})),null===t.getAttribute(A)&&se.keepOriginalSource){var n=E.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~he(t).indexOf(se.replacementClass))return At.replace(e);var r=new RegExp("".concat(se.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var a=n[0].attributes.class.split(" ").reduce((function(e,t){return t===se.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});n[0].attributes.class=a.toSvg.join(" "),0===a.toNode.length?t.removeAttribute("class"):t.setAttribute("class",a.toNode.join(" "))}var o=n.map((function(e){return Ne(e)})).join("\n");t.setAttribute(A,""),t.innerHTML=o}};function Mt(e){e()}function It(e,t){var n="function"==typeof t?t:Nt;if(0===e.length)n();else{var r=Mt;"async"===se.mutateApproach&&(r=C.requestAnimationFrame||Mt),r((function(){var t=!0===se.autoReplaceSvg?At.replace:At[se.autoReplaceSvg]||At.replace,r=Et("mutate");e.map(t),r(),n()}))}}var Tt=!1;function Rt(){Tt=!0}function Pt(){Tt=!1}var zt=null;function Ft(e){if(N&&se.observeMutations){var t=e.treeCallback,n=void 0===t?Nt:t,r=e.nodeCallback,a=void 0===r?Nt:r,o=e.pseudoElementsCallback,i=void 0===o?Nt:o,s=e.observeMutationsRoot,c=void 0===s?E:s;zt=new N((function(e){if(!Tt){var t=Je();pe(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!St(e.addedNodes[0])&&(se.searchPseudoElements&&i(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&se.searchPseudoElements&&i(e.target.parentNode),"attributes"===e.type&&St(e.target)&&~K.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(I):null,n=e.getAttribute?e.getAttribute(T):null;return t&&n}(e.target)){var r=et(he(e.target)),o=r.prefix,s=r.iconName;e.target.setAttribute(I,o||t),s&&e.target.setAttribute(T,s)}else(c=e.target)&&c.classList&&c.classList.contains&&c.classList.contains(se.replacementClass)&&a(e.target);var c}))}})),O&&zt.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function $t(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce((function(e,t){var n=t.split(":"),r=n[0],a=n.slice(1);return r&&a.length>0&&(e[r]=a.join(":").trim()),e}),{})),n}function Ht(e){var t,n,r=e.getAttribute("data-prefix"),a=e.getAttribute("data-icon"),o=void 0!==e.innerText?e.innerText.trim():"",i=et(he(e));return i.prefix||(i.prefix=Je()),r&&a&&(i.prefix=r,i.iconName=a),i.iconName&&i.prefix||(i.prefix&&o.length>0&&(i.iconName=(t=i.prefix,n=e.innerText,(He[t]||{})[n]||Ge(i.prefix,je(e.innerText)))),!i.iconName&&se.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function Dt(e){var t=pe(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return se.autoA11y&&(n?t["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(r||fe()):(t["aria-hidden"]="true",t.focusable="false")),t}function Vt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=Ht(e),r=n.iconName,o=n.prefix,i=n.rest,s=Dt(e),c=it("parseNodeAttributes",{},e),l=t.styleParser?$t(e):[];return a({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:o,transform:ue,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:l,attributes:s}},c)}var Ut=xe.styles;function Bt(e){var t="nest"===se.autoReplaceSvg?Vt(e,{styleParser:!1}):Vt(e);return~t.extra.classes.indexOf(q)?ct("generateLayersText",e,t):ct("generateSvgReplacementMutation",e,t)}var Wt=new Set;function Yt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!O)return Promise.resolve();var n=E.documentElement.classList,r=function(e){return n.add("".concat(R,"-").concat(e))},a=function(e){return n.remove("".concat(R,"-").concat(e))},o=se.autoFetchSvg?Wt:H.map((function(e){return"fa-".concat(e)})).concat(Object.keys(Ut));o.includes("fa")||o.push("fa");var i=[".".concat(q,":not([").concat(A,"])")].concat(o.map((function(e){return".".concat(e,":not([").concat(A,"])")}))).join(", ");if(0===i.length)return Promise.resolve();var s=[];try{s=pe(e.querySelectorAll(i))}catch(e){}if(!(s.length>0))return Promise.resolve();r("pending"),a("complete");var c=Et("onTree"),l=s.reduce((function(e,t){try{var n=Bt(t);n&&e.push(n)}catch(e){z||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,n){Promise.all(l).then((function(n){It(n,(function(){r("active"),r("complete"),a("pending"),"function"==typeof t&&t(),c(),e()}))})).catch((function(e){c(),n(e)}))}))}function qt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;Bt(e).then((function(e){e&&It([e],t)}))}H.map((function(e){Wt.add("fa-".concat(e))})),Object.keys(V.classic).map(Wt.add.bind(Wt)),Object.keys(V.sharp).map(Wt.add.bind(Wt)),Wt=l(Wt);var Gt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ue:n,o=t.symbol,i=void 0!==o&&o,s=t.mask,c=void 0===s?null:s,l=t.maskId,u=void 0===l?null:l,f=t.title,p=void 0===f?null:f,h=t.titleId,d=void 0===h?null:h,m=t.classes,v=void 0===m?[]:m,g=t.attributes,b=void 0===g?{}:g,y=t.styles,_=void 0===y?{}:y;if(e){var w=e.prefix,x=e.iconName,k=e.icon;return dt(a({type:"icon"},e),(function(){return st("beforeDOMElementCreation",{iconDefinition:e,params:t}),se.autoA11y&&(p?b["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(d||fe()):(b["aria-hidden"]="true",b.focusable="false")),mt({icons:{main:yt(k),mask:c?yt(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:w,iconName:x,transform:a(a({},ue),r),symbol:i,title:p,maskId:u,titleId:d,extra:{attributes:b,styles:_,classes:v}})}))}},Xt={mixout:function(){return{icon:(e=Gt,function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:lt(t||{}),o=n.mask;return o&&(o=(o||{}).icon?o:lt(o||{})),e(r,a(a({},n),{},{mask:o}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=Yt,e.nodeCallback=qt,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?E:t,r=e.callback;return Yt(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.title,a=t.titleId,o=t.prefix,i=t.transform,s=t.symbol,l=t.mask,u=t.maskId,f=t.extra;return new Promise((function(t,p){Promise.all([wt(n,o),l.iconName?wt(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(l){var p=c(l,2),h=p[0],d=p[1];t([e,mt({icons:{main:h,mask:d},prefix:o,iconName:n,transform:i,symbol:s,maskId:u,title:r,titleId:a,extra:f,watchable:!0})])})).catch(p)}))},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,a=e.main,o=e.transform,i=me(e.styles);return i.length>0&&(r.style=i),ve(o)&&(t=ct("generateAbstractTransformGrouping",{main:a,transform:o,containerWidth:a.width,iconWidth:a.width})),n.push(t||a.icon),{children:n,attributes:r}}}},Zt={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return dt({type:"layer"},(function(){st("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e((function(e){Array.isArray(e)?e.map((function(e){n=n.concat(e.abstract)})):n=n.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(se.cssPrefix,"-layers")].concat(l(r)).join(" ")},children:n}]}))}}}},Jt={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,a=t.classes,o=void 0===a?[]:a,i=t.attributes,s=void 0===i?{}:i,c=t.styles,u=void 0===c?{}:c;return dt({type:"counter",content:e},(function(){return st("beforeDOMElementCreation",{content:e,params:t}),gt({content:e.toString(),title:r,extra:{attributes:s,styles:u,classes:["".concat(se.cssPrefix,"-layers-counter")].concat(l(o))}})}))}}}},Kt={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ue:n,o=t.title,i=void 0===o?null:o,s=t.classes,c=void 0===s?[]:s,u=t.attributes,f=void 0===u?{}:u,p=t.styles,h=void 0===p?{}:p;return dt({type:"text",content:e},(function(){return st("beforeDOMElementCreation",{content:e,params:t}),vt({content:e,transform:a(a({},ue),r),title:i,extra:{attributes:f,styles:h,classes:["".concat(se.cssPrefix,"-layers-text")].concat(l(c))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.title,r=t.transform,a=t.extra,o=null,i=null;if(j){var s=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();o=c.width/s,i=c.height/s}return se.autoA11y&&!n&&(a.attributes["aria-hidden"]="true"),Promise.resolve([e,vt({content:e.innerHTML,width:o,height:i,transform:r,title:n,extra:a,watchable:!0})])}}},Qt=new RegExp('"',"ug"),en=[1105920,1112319];function tn(e,t){var n="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(r,o){if(null!==e.getAttribute(n))return r();var i,s,c,l=pe(e.children).filter((function(e){return e.getAttribute(M)===t}))[0],u=C.getComputedStyle(e,t),f=u.getPropertyValue("font-family").match(G),p=u.getPropertyValue("font-weight"),h=u.getPropertyValue("content");if(l&&!f)return e.removeChild(l),r();if(f&&"none"!==h&&""!==h){var d=u.getPropertyValue("content"),m=~["Sharp"].indexOf(f[2])?$:F,v=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(f[2])?U[m][f[2].toLowerCase()]:X[m][p],g=function(e){var t,n,r,a,o=e.replace(Qt,""),i=(0,r=(t=o).length,(a=t.charCodeAt(0))>=55296&&a<=56319&&r>1&&(n=t.charCodeAt(1))>=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a),s=i>=en[0]&&i<=en[1],c=2===o.length&&o[0]===o[1];return{value:je(c?o[0]:o),isSecondary:s||c}}(d),b=g.value,y=g.isSecondary,_=f[0].startsWith("FontAwesome"),w=Ge(v,b),x=w;if(_){var k=(s=Ve[i=b],c=Ge("fas",i),s||(c?{prefix:"fas",iconName:c}:null)||{prefix:null,iconName:null});k.iconName&&k.prefix&&(w=k.iconName,v=k.prefix)}if(!w||y||l&&l.getAttribute(I)===v&&l.getAttribute(T)===x)r();else{e.setAttribute(n,x),l&&e.removeChild(l);var N={iconName:null,title:null,titleId:null,prefix:null,transform:ue,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},S=N.extra;S.attributes[M]=t,wt(w,v).then((function(o){var i=mt(a(a({},N),{},{icons:{main:o,mask:{prefix:null,iconName:null,rest:[]}},prefix:v,iconName:x,extra:S,watchable:!0})),s=E.createElement("svg");"::before"===t?e.insertBefore(s,e.firstChild):e.appendChild(s),s.outerHTML=i.map((function(e){return Ne(e)})).join("\n"),e.removeAttribute(n),r()})).catch(o)}}else r()}))}function nn(e){return Promise.all([tn(e,"::before"),tn(e,"::after")])}function rn(e){return!(e.parentNode===document.head||~P.indexOf(e.tagName.toUpperCase())||e.getAttribute(M)||e.parentNode&&"svg"===e.parentNode.tagName)}function an(e){if(O)return new Promise((function(t,n){var r=pe(e.querySelectorAll("*")).filter(rn).map(nn),a=Et("searchPseudoElements");Rt(),Promise.all(r).then((function(){a(),Pt(),t()})).catch((function(){a(),Pt(),n()}))}))}var on=!1,sn=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},cn={mixout:function(){return{parse:{transform:function(e){return sn(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=sn(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,o=e.iconWidth,i={transform:"translate(".concat(r/2," 256)")},s="translate(".concat(32*n.x,", ").concat(32*n.y,") "),c="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),l="rotate(".concat(n.rotate," 0 0)"),u={outer:i,inner:{transform:"".concat(s," ").concat(c," ").concat(l)},path:{transform:"translate(".concat(o/2*-1," -256)")}};return{tag:"g",attributes:a({},u.outer),children:[{tag:"g",attributes:a({},u.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:a(a({},t.icon.attributes),u.path)}]}]}}}},ln={x:0,y:0,width:"100%",height:"100%"};function un(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var fn,pn={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?et(n.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return r.prefix||(r.prefix=Je()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,o=e.main,i=e.mask,s=e.maskId,c=e.transform,l=o.width,u=o.icon,f=i.width,p=i.icon,h=function(e){var t=e.transform,n=e.iconWidth,r={transform:"translate(".concat(e.containerWidth/2," 256)")},a="translate(".concat(32*t.x,", ").concat(32*t.y,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),i="rotate(".concat(t.rotate," 0 0)");return{outer:r,inner:{transform:"".concat(a," ").concat(o," ").concat(i)},path:{transform:"translate(".concat(n/2*-1," -256)")}}}({transform:c,containerWidth:f,iconWidth:l}),d={tag:"rect",attributes:a(a({},ln),{},{fill:"white"})},m=u.children?{children:u.children.map(un)}:{},v={tag:"g",attributes:a({},h.inner),children:[un(a({tag:u.tag,attributes:a(a({},u.attributes),h.path)},m))]},g={tag:"g",attributes:a({},h.outer),children:[v]},b="mask-".concat(s||fe()),y="clip-".concat(s||fe()),_={tag:"mask",attributes:a(a({},ln),{},{id:b,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[d,g]},w={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=p,"g"===t.tag?t.children:[t])},_]};return n.push(w,{tag:"rect",attributes:a({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(b,")")},ln)}),{children:n,attributes:r}}}},hn={provides:function(e){var t=!1;C.matchMedia&&(t=C.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:a(a({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var o=a(a({},r),{},{attributeName:"opacity"}),i={tag:"circle",attributes:a(a({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:a(a({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:a(a({},o),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:a(a({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:a(a({},o),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:a(a({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:a(a({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}};fn={mixoutsTo:pt}.mixoutsTo,nt=[_e,Xt,Zt,Jt,Kt,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=an,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?E:t;se.searchPseudoElements&&an(n)}}},{mixout:function(){return{dom:{unwatch:function(){Rt(),on=!0}}}},hooks:function(){return{bootstrap:function(){Ft(it("mutationObserverCallbacks",{}))},noAuto:function(){zt&&zt.disconnect()},watch:function(e){var t=e.observeMutationsRoot;on?Pt():Ft(it("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},cn,pn,hn,{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}],rt={},Object.keys(at).forEach((function(e){-1===ot.indexOf(e)&&delete at[e]})),nt.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(fn[e]=t[e]),"object"===o(t[e])&&Object.keys(t[e]).forEach((function(n){fn[e]||(fn[e]={}),fn[e][n]=t[e][n]}))})),e.hooks){var n=e.hooks();Object.keys(n).forEach((function(e){rt[e]||(rt[e]=[]),rt[e].push(n[e])}))}e.provides&&e.provides(at)}));var dn=pt.config,mn=pt.library,vn=pt.parse,gn=pt.icon,bn=pt.text},5737:(e,t,n)=>{"use strict";n.d(t,{IQi:()=>s,RKn:()=>r,RrC:()=>a,Tab:()=>i,xVw:()=>o});var r={prefix:"far",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"]},a={prefix:"far",iconName:"flag",icon:[512,512,[127988,61725],"f024","M476.3 0c-6.365 0-13.01 1.35-19.34 4.233c-45.69 20.86-79.56 27.94-107.8 27.94c-59.96 0-94.81-31.86-163.9-31.87c-34.63 0-77.87 8.003-137.2 32.05V24C48 10.75 37.25 0 24 0S0 10.75 0 24v464C0 501.3 10.75 512 24 512s24-10.75 24-24v-104c53.59-23.86 96.02-31.81 132.8-31.81c73.63 0 124.9 31.78 198.6 31.78c31.91 0 68.02-5.971 111.1-23.09C504.1 355.9 512 344.4 512 332.1V30.73C512 11.1 495.3 0 476.3 0zM464 319.8c-30.31 10.82-58.08 16.1-84.6 16.1c-30.8 0-58.31-7-87.44-14.41c-32.01-8.141-68.29-17.37-111.1-17.37c-42.35 0-85.99 9.09-132.8 27.73V84.14l18.03-7.301c47.39-19.2 86.38-28.54 119.2-28.54c28.24 .0039 49.12 6.711 73.31 14.48c25.38 8.148 54.13 17.39 90.58 17.39c35.43 0 72.24-8.496 114.9-26.61V319.8z"]},o={prefix:"far",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M336 0h-288C21.49 0 0 21.49 0 48v431.9c0 24.7 26.79 40.08 48.12 27.64L192 423.6l143.9 83.93C357.2 519.1 384 504.6 384 479.9V48C384 21.49 362.5 0 336 0zM336 452L192 368l-144 84V54C48 50.63 50.63 48 53.1 48h276C333.4 48 336 50.63 336 54V452z"]},i={prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"]},s={prefix:"far",iconName:"window-minimize",icon:[512,512,[128469],"f2d1","M0 456C0 442.7 10.75 432 24 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H24C10.75 480 0 469.3 0 456z"]}},84131:(e,t,n)=>{"use strict";n.d(t,{$Wj:()=>T,A35:()=>ke,Acd:()=>j,Aq:()=>E,Bg$:()=>oe,CPW:()=>P,E1P:()=>he,EQ8:()=>Ie,EfQ:()=>k,Elv:()=>W,FKd:()=>Re,FPD:()=>ye,FU$:()=>J,FVb:()=>C,Fwd:()=>Te,GTN:()=>m,G_j:()=>D,HLz:()=>fe,I7k:()=>a,IA$:()=>H,IBq:()=>r,IJ7:()=>p,ILF:()=>O,IwR:()=>G,IyC:()=>Ve,J9Y:()=>ae,Kl4:()=>Q,L4e:()=>De,LEp:()=>Pe,Lh7:()=>d,Mdf:()=>q,Mm7:()=>B,N7g:()=>$e,NBC:()=>xe,OwZ:()=>_e,RKn:()=>c,RP7:()=>Se,RrC:()=>b,S3c:()=>Fe,Sbq:()=>l,TTL:()=>Me,Tab:()=>M,UJf:()=>u,UXu:()=>je,V9$:()=>i,VE0:()=>Oe,VmB:()=>z,X8G:()=>g,Xcf:()=>x,Xig:()=>Ae,Xjp:()=>Z,XsY:()=>_,Y9i:()=>R,YHc:()=>o,Zrf:()=>y,_1N:()=>U,_tD:()=>Ce,aC2:()=>pe,aQp:()=>$,b7W:()=>ee,byT:()=>w,cLY:()=>F,cNd:()=>ce,cf$:()=>ie,ctA:()=>Ne,dT$:()=>V,eHv:()=>ze,g4A:()=>L,gMD:()=>ue,gPx:()=>A,gmr:()=>ge,iV1:()=>ne,jLD:()=>s,k0d:()=>X,kQp:()=>h,klh:()=>Y,kwI:()=>se,lCn:()=>te,lXL:()=>f,mTx:()=>N,nNP:()=>de,ptq:()=>be,q7m:()=>re,qO$:()=>Le,qmU:()=>le,r8p:()=>we,sqG:()=>K,u8Q:()=>He,wn1:()=>ve,x5v:()=>Ee,xVw:()=>S,xf3:()=>I,xiG:()=>v,yGG:()=>me});var r={prefix:"fas",iconName:"at",icon:[512,512,[61946],"40","M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z"]},a={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]},o={prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M144 80c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z"]},i={prefix:"fas",iconName:"down-left-and-up-right-to-center",icon:[512,512,["compress-alt"],"f422","M473 7c-9.4-9.4-24.6-9.4-33.9 0l-87 87L313 55c-6.9-6.9-17.2-8.9-26.2-5.2S272 62.3 272 72V216c0 13.3 10.7 24 24 24H440c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-39-39 87-87c9.4-9.4 9.4-24.6 0-33.9L473 7zM216 272H72c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39L7 439c-9.4 9.4-9.4 24.6 0 33.9l32 32c9.4 9.4 24.6 9.4 33.9 0l87-87 39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V296c0-13.3-10.7-24-24-24z"]},s={prefix:"fas",iconName:"right-from-bracket",icon:[512,512,["sign-out-alt"],"f2f5","M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96C43 32 0 75 0 128V384c0 53 43 96 96 96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32h64zM504.5 273.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32H320v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z"]},c={prefix:"fas",iconName:"face-smile-beam",icon:[512,512,[128522,"smile-beam"],"f5b8","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z"]},l={prefix:"fas",iconName:"angles-down",icon:[448,512,["angle-double-down"],"f103","M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"]},u={prefix:"fas",iconName:"pencil",icon:[512,512,[9999,61504,"pencil-alt"],"f303","M421.7 220.3l-11.3 11.3-22.6 22.6-205 205c-6.6 6.6-14.8 11.5-23.8 14.1L30.8 511c-8.4 2.5-17.5 .2-23.7-6.1S-1.5 489.7 1 481.2L38.7 353.1c2.6-9 7.5-17.2 14.1-23.8l205-205 22.6-22.6 11.3-11.3 33.9 33.9 62.1 62.1 33.9 33.9zM96 353.9l-9.3 9.3c-.9 .9-1.6 2.1-2 3.4l-25.3 86 86-25.3c1.3-.4 2.5-1.1 3.4-2l9.3-9.3H112c-8.8 0-16-7.2-16-16V353.9zM453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-14.5 14.5-22.6 22.6-11.3 11.3-33.9-33.9-62.1-62.1L314.3 67.7l11.3-11.3 22.6-22.6 14.5-14.5c25-25 65.5-25 90.5 0z"]},f={prefix:"fas",iconName:"comments",icon:[640,512,[128490,61670],"f086","M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z"]},p={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},h={prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z"]},d={prefix:"fas",iconName:"reply",icon:[512,512,[61714,"mail-reply"],"f3e5","M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"]},m={prefix:"fas",iconName:"compass",icon:[512,512,[129517],"f14e","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z"]},v={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},g={prefix:"fas",iconName:"lightbulb",icon:[384,512,[128161],"f0eb","M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"]},b={prefix:"fas",iconName:"flag",icon:[512,512,[127988,61725],"f024","M64 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32C0 14.3 14.3 0 32 0S64 14.3 64 32zm40.8 302.8c-3 .9-6 1.7-8.8 2.6V13.5C121.5 6.4 153 0 184 0c36.5 0 68.3 9.1 95.6 16.9l1.3 .4C309.4 25.4 333.3 32 360 32c26.8 0 52.9-6.8 73-14.1c9.9-3.6 17.9-7.2 23.4-9.8c2.7-1.3 4.8-2.4 6.2-3.1c.7-.4 1.1-.6 1.4-.8l.2-.1c9.9-5.6 22.1-5.6 31.9 .2S512 20.6 512 32V288c0 12.1-6.8 23.2-17.7 28.6L480 288c14.3 28.6 14.3 28.6 14.3 28.6l0 0 0 0-.1 0-.2 .1-.7 .4c-.6 .3-1.5 .7-2.5 1.2c-2.2 1-5.2 2.4-9 4c-7.7 3.3-18.5 7.6-31.5 11.9C424.5 342.9 388.8 352 352 352c-37 0-65.2-9.4-89-17.3l-1-.3c-24-8-43.7-14.4-70-14.4c-27.5 0-60.1 7-87.2 14.8z"]},y={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"]},_={prefix:"fas",iconName:"paintbrush",icon:[576,512,[128396,"paint-brush"],"f1fc","M371.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L600.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S549.7-4.4 531.1 9.6L294.4 187.2c-24 18-38.2 46.1-38.4 76.1L371.3 367.1zm-19.6 25.4l-116-104.4C175.9 290.3 128 339.6 128 400c0 3.9 .2 7.8 .6 11.6c1.8 17.5-10.2 36.4-27.8 36.4H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H240c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"]},w={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"]},x={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.8 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z"]},k={prefix:"fas",iconName:"share-nodes",icon:[448,512,["share-alt"],"f1e0","M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z"]},C={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M144 160c-44.2 0-80-35.8-80-80S99.8 0 144 0s80 35.8 80 80s-35.8 80-80 80zm368 0c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM416 224c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z"]},E={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z"]},N={prefix:"fas",iconName:"chevron-up",icon:[512,512,[],"f077","M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]},S={prefix:"fas",iconName:"bookmark",icon:[384,512,[128278,61591],"f02e","M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"]},O={prefix:"fas",iconName:"user",icon:[448,512,[128100,62144],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z"]},j={prefix:"fas",iconName:"bullhorn",icon:[512,512,[128226,128363],"f0a1","M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z"]},L={prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 21 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z"]},A={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z"]},M={prefix:"fas",iconName:"star",icon:[576,512,[11088,61446],"f005","M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"]},I={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM344 152c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm96-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zM344 408c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm104-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z"]},T={prefix:"fas",iconName:"right-to-bracket",icon:[512,512,["sign-in-alt"],"f2f6","M352 96h64c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c53 0 96-43 96-96V128c0-53-43-96-96-96H352c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-7.5 177.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H160v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z"]},R={prefix:"fas",iconName:"file-arrow-up",icon:[384,512,["file-upload"],"f574","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z"]},P={prefix:"fas",iconName:"square-plus",icon:[448,512,[61846,"plus-square"],"f0fe","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},z={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z"]},F={prefix:"fas",iconName:"angles-right",icon:[512,512,[187,"angle-double-right"],"f101","M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"]},$={prefix:"fas",iconName:"circle-play",icon:[512,512,[61469,"play-circle"],"f144","M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]},H={prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z"]},D={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"]},V={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},U={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z"]},B={prefix:"fas",iconName:"square-poll-horizontal",icon:[448,512,["poll-h"],"f682","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z"]},W={prefix:"fas",iconName:"basketball",icon:[512,512,[127936,"basketball-ball"],"f434","M86.6 64C119 35.5 158.6 15 202.3 5.6C206 19.1 208 33.3 208 48c0 38.4-13.5 73.7-36.1 101.3L86.6 64zM64 86.6l85.2 85.2C121.7 194.5 86.4 208 48 208c-14.7 0-28.9-2-42.4-5.7C15 158.6 35.5 119 64 86.6zM256 0c64.9 0 124.2 24.2 169.4 64L256 233.4 194.6 172C222.9 138.5 240 95.3 240 48c0-16.2-2-32-5.8-47.1C241.4 .3 248.7 0 256 0zM48 240c47.3 0 90.5-17.1 124-45.4L233.4 256 64 425.4C24.2 380.2 0 320.9 0 256c0-7.3 .3-14.6 .9-21.8C16 238 31.8 240 48 240zm463.1 37.8C496 274 480.2 272 464 272c-47.3 0-90.5 17.1-124 45.4L278.6 256 448 86.6c39.8 45.1 64 104.4 64 169.4c0 7.3-.3 14.6-.9 21.8zm-4.7 31.9C497 353.4 476.5 393 448 425.4l-85.2-85.2C390.3 317.5 425.6 304 464 304c14.7 0 28.9 2 42.4 5.7zM340.1 362.7L425.4 448C393 476.5 353.4 497 309.7 506.4C306 492.9 304 478.7 304 464c0-38.4 13.5-73.7 36.1-101.3zM317.4 340C289.1 373.5 272 416.7 272 464c0 16.2 2 32 5.8 47.1c-7.2 .6-14.5 .9-21.8 .9c-64.9 0-124.2-24.2-169.4-64L256 278.6 317.4 340z"]},Y={prefix:"fas",iconName:"wrench",icon:[512,512,[128295],"f0ad","M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z"]},q={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM432 256c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM288 192c0 35.3-28.7 64-64 64c-11.5 0-22.3-3-31.6-8.4c-.2 2.8-.4 5.5-.4 8.4c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6z"]},G={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"]},X={prefix:"fas",iconName:"bus",icon:[512,512,[128653],"f207","M256 0C390.4 0 480 35.2 480 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C32 35.2 121.6 0 256 0zM96 160v96c0 17.7 14.3 32 32 32H240V128H128c-17.7 0-32 14.3-32 32zM272 288H384c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H272V288zM112 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 80c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16z"]},Z={prefix:"fas",iconName:"up-right-from-square",icon:[448,512,["external-link-alt"],"f35d","M288 32c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L306.7 128 169.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L352 173.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V64c0-17.7-14.3-32-32-32H288zM80 64C35.8 64 0 99.8 0 144V400c0 44.2 35.8 80 80 80H336c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},J={prefix:"fas",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"]},K={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"]},Q={prefix:"fas",iconName:"minus",icon:[448,512,[8211,8722,10134,"subtract"],"f068","M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"]},ee={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z"]},te={prefix:"fas",iconName:"folder-tree",icon:[576,512,[],"f802","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z"]},ne={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zm0-160c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zM120 96c0 30.9-25.1 56-56 56S8 126.9 8 96S33.1 40 64 40s56 25.1 56 56z"]},re={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zM432 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z"]},ae={prefix:"fas",iconName:"house",icon:[576,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"]},oe={prefix:"fas",iconName:"stop",icon:[384,512,[9209],"f04d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},ie={prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z"]},se={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},ce={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm160 0c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm104 56c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z"]},le={prefix:"fas",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"]},ue={prefix:"fas",iconName:"file",icon:[384,512,[128196,128459,61462],"f15b","M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z"]},fe={prefix:"fas",iconName:"gauge-high",icon:[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z"]},pe={prefix:"fas",iconName:"bars-staggered",icon:[512,512,["reorder","stream"],"f550","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},he={prefix:"fas",iconName:"ice-cream",icon:[384,512,[127848],"f810","M335.1 160c.6-5.3 .9-10.6 .9-16C336 64.5 271.5 0 192 0S48 64.5 48 144c0 5.4 .3 10.7 .9 16H48c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H336c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM64 288L168.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L320 288H64z"]},de={prefix:"fas",iconName:"link",icon:[640,512,[128279,"chain"],"f0c1","M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"]},me={prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z"]},ve={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z"]},ge={prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},be={prefix:"fas",iconName:"chevron-down",icon:[512,512,[],"f078","M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]},ye={prefix:"fas",iconName:"arrow-up",icon:[384,512,[8593],"f062","M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"]},_e={prefix:"fas",iconName:"circle-half-stroke",icon:[512,512,[9680,"adjust"],"f042","M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z"]},we={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"]},xe={prefix:"fas",iconName:"xmark",icon:[320,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"]},ke={prefix:"fas",iconName:"chevron-left",icon:[384,512,[9001],"f053","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 278.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]},Ce={prefix:"fas",iconName:"chevron-right",icon:[384,512,[9002],"f054","M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},Ee={prefix:"fas",iconName:"retweet",icon:[576,512,[],"f079","M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z"]},Ne={prefix:"fas",iconName:"face-smile",icon:[512,512,[128578,"smile"],"f118","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"]},Se={prefix:"fas",iconName:"thumbtack",icon:[384,512,[128204,128392,"thumb-tack"],"f08d","M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z"]},Oe={prefix:"fas",iconName:"robot",icon:[640,512,[129302],"f544","M320 0c17.7 0 32 14.3 32 32V96H480c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm152 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z"]},je={prefix:"fas",iconName:"angles-left",icon:[512,512,[171,"angle-double-left"],"f100","M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"]},Le={prefix:"fas",iconName:"clock-rotate-left",icon:[512,512,["history"],"f1da","M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z"]},Ae={prefix:"fas",iconName:"music",icon:[512,512,[127925],"f001","M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z"]},Me={prefix:"fas",iconName:"up-right-and-down-left-from-center",icon:[512,512,["expand-alt"],"f424","M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM184 496H40c-13.3 0-24-10.7-24-24V328c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]},Ie={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Te={prefix:"fas",iconName:"rss",icon:[448,512,["feed"],"f09e","M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM128 416c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},Re={prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},Pe={prefix:"fas",iconName:"check",icon:[512,512,[10003,10004],"f00c","M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},ze={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z"]},Fe={prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},$e={prefix:"fas",iconName:"magnifying-glass-plus",icon:[512,512,["search-plus"],"f00e","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z"]},He={prefix:"fas",iconName:"thumbs-up",icon:[512,512,[128077,61575],"f164","M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"]},De={prefix:"fas",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H290.7c17 0 33.3-6.7 45.3-18.7L429.3 368c12-12 18.7-28.3 18.7-45.3V96c0-35.3-28.7-64-64-64H64zm0 64H384V320H320c-17.7 0-32 14.3-32 32v64H64V96z"]},Ve={prefix:"fas",iconName:"video",icon:[576,512,["video-camera"],"f03d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]}},57810:(e,t,n)=>{"use strict";n.d(t,{GN:()=>k,NH:()=>C});var r=n(9382),a=n(66252);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function u(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var p,h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{},d={exports:{}};p=d,function(e){var t=function(e,n,r){if(!s(n)||l(n)||u(n)||f(n)||i(n))return n;var a,o=0,p=0;if(c(n))for(a=[],p=n.length;o<p;o++)a.push(t(e,n[o],r));else for(var h in a={},n)Object.prototype.hasOwnProperty.call(n,h)&&(a[e(h,r)]=t(e,n[h],r));return a},n=function(e){return h(e)?e:(e=e.replace(/[\-_\s]+(.)?/g,(function(e,t){return t?t.toUpperCase():""}))).substr(0,1).toLowerCase()+e.substr(1)},r=function(e){var t=n(e);return t.substr(0,1).toUpperCase()+t.substr(1)},a=function(e,t){return function(e,t){var n=(t=t||{}).separator||"_",r=t.split||/(?=[A-Z])/;return e.split(r).join(n)}(e,t).toLowerCase()},o=Object.prototype.toString,i=function(e){return"function"==typeof e},s=function(e){return e===Object(e)},c=function(e){return"[object Array]"==o.call(e)},l=function(e){return"[object Date]"==o.call(e)},u=function(e){return"[object RegExp]"==o.call(e)},f=function(e){return"[object Boolean]"==o.call(e)},h=function(e){return(e-=0)==e},d=function(e,t){var n=t&&"process"in t?t.process:t;return"function"!=typeof n?e:function(t,r){return n(t,e,r)}},m={camelize:n,decamelize:a,pascalize:r,depascalize:a,camelizeKeys:function(e,r){return t(d(n,r),e)},decamelizeKeys:function(e,n){return t(d(a,n),e,n)},pascalizeKeys:function(e,n){return t(d(r,n),e)},depascalizeKeys:function(){return this.decamelizeKeys.apply(this,arguments)}};p.exports?p.exports=m:e.humps=m}(h);var m=d.exports,v=["class","style"];function g(e){return e.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,t){var n=t.indexOf(":"),r=m.camelize(t.slice(0,n)),a=t.slice(n+1).trim();return e[r]=a,e}),{})}function b(e){return e.split(/\s+/).reduce((function(e,t){return e[t]=!0,e}),{})}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof e)return e;var r=(e.children||[]).map((function(e){return y(e)})),o=Object.keys(e.attributes||{}).reduce((function(t,n){var r=e.attributes[n];switch(n){case"class":t.class=b(r);break;case"style":t.style=g(r);break;default:t.attrs[n]=r}return t}),{attrs:{},class:{},style:{}});n.class;var s=n.style,c=void 0===s?{}:s,u=l(n,v);return(0,a.h)(e.tag,i(i(i({},t),{},{class:o.class,style:i(i({},o.style),c)},o.attrs),u),r)}var _=!1;try{_=!0}catch(e){}function w(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?c({},e,t):{}}function x(e){return e&&"object"===s(e)&&e.prefix&&e.iconName&&e.icon?e:r.Qc.icon?r.Qc.icon(e):null===e?null:"object"===s(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}var k=(0,a.aZ)({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(e){return[!0,!1,"horizontal","vertical","both"].indexOf(e)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(e){return["right","left"].indexOf(e)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(e){return[90,180,270].indexOf(Number.parseInt(e,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(e){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(e)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1}},setup:function(e,t){var n=t.attrs,o=(0,a.Fl)((function(){return x(e.icon)})),s=(0,a.Fl)((function(){return w("classes",function(e){var t,n=(c(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip":!0===e.flip,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},"fa-".concat(e.size),null!==e.size),c(t,"fa-rotate-".concat(e.rotation),null!==e.rotation),c(t,"fa-pull-".concat(e.pull),null!==e.pull),c(t,"fa-swap-opacity",e.swapOpacity),c(t,"fa-bounce",e.bounce),c(t,"fa-shake",e.shake),c(t,"fa-beat",e.beat),c(t,"fa-fade",e.fade),c(t,"fa-beat-fade",e.beatFade),c(t,"fa-flash",e.flash),c(t,"fa-spin-pulse",e.spinPulse),c(t,"fa-spin-reverse",e.spinReverse),t);return Object.keys(n).map((function(e){return n[e]?e:null})).filter((function(e){return e}))}(e))})),l=(0,a.Fl)((function(){return w("transform","string"==typeof e.transform?r.Qc.transform(e.transform):e.transform)})),u=(0,a.Fl)((function(){return w("mask",x(e.mask))})),f=(0,a.Fl)((function(){return(0,r.qv)(o.value,i(i(i(i({},s.value),l.value),u.value),{},{symbol:e.symbol,title:e.title}))}));(0,a.YP)(f,(function(e){if(!e)return function(){var e;!_&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find one or more icon(s)",o.value,u.value)}),{immediate:!0});var p=(0,a.Fl)((function(){return f.value?y(f.value.abstract[0],{},n):null}));return function(){return p.value}}}),C=(0,a.aZ)({name:"FontAwesomeLayers",props:{fixedWidth:{type:Boolean,default:!1}},setup:function(e,t){var n=t.slots,o=r.vc.familyPrefix,i=(0,a.Fl)((function(){return["".concat(o,"-layers")].concat(u(e.fixedWidth?["".concat(o,"-fw")]:[]))}));return function(){return(0,a.h)("div",{class:i.value},n.default?n.default():[])}}});(0,a.aZ)({name:"FontAwesomeLayersText",props:{value:{type:[String,Number],default:""},transform:{type:[String,Object],default:null},counter:{type:Boolean,default:!1},position:{type:String,default:null,validator:function(e){return["bottom-left","bottom-right","top-left","top-right"].indexOf(e)>-1}}},setup:function(e,t){var n=t.attrs,o=r.vc.familyPrefix,s=(0,a.Fl)((function(){return w("classes",[].concat(u(e.counter?["".concat(o,"-layers-counter")]:[]),u(e.position?["".concat(o,"-layers-").concat(e.position)]:[])))})),c=(0,a.Fl)((function(){return w("transform","string"==typeof e.transform?r.Qc.transform(e.transform):e.transform)})),l=(0,a.Fl)((function(){var t=(0,r.fL)(e.value.toString(),i(i({},c.value),s.value)).abstract;return e.counter&&(t[0].attributes.class=t[0].attributes.class.replace("fa-layers-text","")),t[0]})),f=(0,a.Fl)((function(){return y(l.value,{},n)}));return function(){return f.value}}})},782:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});class r{constructor(e){this.id=-1,this.nativePointer=e,this.pageX=e.pageX,this.pageY=e.pageY,this.clientX=e.clientX,this.clientY=e.clientY,self.Touch&&e instanceof Touch?this.id=e.identifier:a(e)&&(this.id=e.pointerId)}getCoalesced(){return"getCoalescedEvents"in this.nativePointer?this.nativePointer.getCoalescedEvents().map((e=>new r(e))):[this]}}const a=e=>self.PointerEvent&&e instanceof PointerEvent,o=()=>{};!function(e,t){void 0===t&&(t={});var n=t.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}("pinch-zoom {\n display: block;\n overflow: hidden;\n touch-action: none;\n --scale: 1;\n --x: 0;\n --y: 0;\n}\n\npinch-zoom > * {\n transform: translate(var(--x), var(--y)) scale(var(--scale));\n transform-origin: 0 0;\n will-change: transform;\n}\n");const i="min-scale",s="allow-pan-min-scale",c="reset-to-min-scale-limit",l="reach-min-scale-strategy",u="stop-propagate-handled";function f(e,t){return t?Math.sqrt((t.clientX-e.clientX)**2+(t.clientY-e.clientY)**2):0}function p(e,t){return t?{clientX:(e.clientX+t.clientX)/2,clientY:(e.clientY+t.clientY)/2}:e}function h(e,t){return"number"==typeof e?e:e.trimRight().endsWith("%")?t*parseFloat(e)/100:parseFloat(e)}let d;function m(){return d||(d=document.createElementNS("http://www.w3.org/2000/svg","svg"))}function v(){return m().createSVGMatrix()}function g(){return m().createSVGPoint()}const b=.01,y=(e,t)=>Math.round(100*e)-Math.round(100*t);class _ extends HTMLElement{constructor(){super(),this._transform=v(),new MutationObserver((()=>this._stageElChange())).observe(this,{childList:!0});const e=new class{constructor(e,{start:t=(()=>!0),move:n=o,end:i=o,rawUpdates:s=!1}={}){this._element=e,this.startPointers=[],this.currentPointers=[],this._pointerStart=e=>{0===e.button&&this._triggerPointerStart(new r(e),e)&&(a(e)?((e.target&&"setPointerCapture"in e.target?e.target:this._element).setPointerCapture(e.pointerId),this._element.addEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.addEventListener("pointerup",this._pointerEnd),this._element.addEventListener("pointercancel",this._pointerEnd)):(window.addEventListener("mousemove",this._move),window.addEventListener("mouseup",this._pointerEnd)))},this._touchStart=e=>{for(const t of Array.from(e.changedTouches))this._triggerPointerStart(new r(t),e)},this._move=e=>{const t=this.currentPointers.slice(),n="changedTouches"in e?Array.from(e.changedTouches).map((e=>new r(e))):[new r(e)],a=[];for(const e of n){const t=this.currentPointers.findIndex((t=>t.id===e.id));-1!==t&&(a.push(e),this.currentPointers[t]=e)}0!==a.length&&this._moveCallback(t,a,e)},this._triggerPointerEnd=(e,t)=>{const n=this.currentPointers.findIndex((t=>t.id===e.id));if(-1===n)return!1;this.currentPointers.splice(n,1),this.startPointers.splice(n,1);const r="touchcancel"===t.type||"pointercancel"===t.type;return this._endCallback(e,t,r),!0},this._pointerEnd=e=>{if(this._triggerPointerEnd(new r(e),e))if(a(e)){if(this.currentPointers.length)return;this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd)}else window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)},this._touchEnd=e=>{for(const t of Array.from(e.changedTouches))this._triggerPointerEnd(new r(t),e)},this._startCallback=t,this._moveCallback=n,this._endCallback=i,this._rawUpdates=s&&"onpointerrawupdate"in window,self.PointerEvent?this._element.addEventListener("pointerdown",this._pointerStart):(this._element.addEventListener("mousedown",this._pointerStart),this._element.addEventListener("touchstart",this._touchStart),this._element.addEventListener("touchmove",this._move),this._element.addEventListener("touchend",this._touchEnd),this._element.addEventListener("touchcancel",this._touchEnd))}stop(){this._element.removeEventListener("pointerdown",this._pointerStart),this._element.removeEventListener("mousedown",this._pointerStart),this._element.removeEventListener("touchstart",this._touchStart),this._element.removeEventListener("touchmove",this._move),this._element.removeEventListener("touchend",this._touchEnd),this._element.removeEventListener("touchcancel",this._touchEnd),this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd),window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)}_triggerPointerStart(e,t){return!!this._startCallback(e,t)&&(this.currentPointers.push(e),this.startPointers.push(e),!0)}}(this,{start:(t,n)=>{if(2===e.currentPointers.length||!this._positioningEl)return!1;const r=e.currentPointers.length+1===1;return!(r&&!this._allowPan())&&(this._maybeStopPropagate(n),r||this._maybeEmitCancel([t,...e.currentPointers])),n.preventDefault(),!0},move:(t,n,r)=>{this._onPointerMove(t,e.currentPointers,r)},end:(t,n)=>{this._onPointerEnd(t,e.currentPointers,n)}});this.addEventListener("wheel",(e=>this._onWheel(e))),this.addEventListener("click",(t=>this._onClick(t,e)))}static get observedAttributes(){return[i]}attributeChangedCallback(e,t,n){e===i&&this.scale<this.minScale&&this.setTransform({scale:this.minScale})}get minScale(){const e=this.getAttribute(i);if(!e)return b;const t=parseFloat(e);return Number.isFinite(t)?Math.max(b,t):b}set minScale(e){this.setAttribute(i,String(e))}get reachMinScaleStrategy(){return this.getAttribute(l)||"none"}set reachMinScaleStrategy(e){this.setAttribute(l,e)}get allowPanMinScale(){const e=this.getAttribute(s);if(!e)return-1;const t=parseFloat(e);return Number.isFinite(t)?Math.max(-1,t):-1}set allowPanMinScale(e){this.setAttribute(s,String(e))}get resetToMinScaleLimit(){const e=this.getAttribute(c);if(!e)return-1;const t=parseFloat(e);return Number.isFinite(t)?Math.max(-1,t):-1}set resetToMinScaleLimit(e){this.setAttribute(c,String(e))}get stopPropagateHandled(){return this.hasAttribute(u)}set stopPropagateHandled(e){e?this.setAttribute(u,""):this.removeAttribute(u)}connectedCallback(){this._stageElChange()}get x(){return this._transform.e}get y(){return this._transform.f}get scale(){return this._transform.a}scaleTo(e,t={}){let{originX:n=0,originY:r=0}=t;const{relativeTo:a="content",allowChangeEvent:o=!1}=t,i="content"===a?this._positioningEl:this;if(!i||!this._positioningEl)return void this.setTransform({scale:e,allowChangeEvent:o});const s=i.getBoundingClientRect();if(n=h(n,s.width),r=h(r,s.height),"content"===a)n+=this.x,r+=this.y;else{const e=this._positioningEl.getBoundingClientRect();n-=e.left,r-=e.top}this._applyChange({allowChangeEvent:o,originX:n,originY:r,scaleDiff:e/this.scale})}setTransform(e={}){const{scale:t=this.scale,allowChangeEvent:n=!1}=e;let{x:r=this.x,y:a=this.y}=e;if(!this._positioningEl)return void this._updateTransform(t,r,a,n);const o=this.getBoundingClientRect(),i=this._positioningEl.getBoundingClientRect();if(!o.width||!o.height)return void this._updateTransform(t,r,a,n);let s=g();s.x=i.left-o.left,s.y=i.top-o.top;let c=g();c.x=i.width+s.x,c.y=i.height+s.y;const l=v().translate(r,a).scale(t).multiply(this._transform.inverse());s=s.matrixTransform(l),c=c.matrixTransform(l),s.x>o.width?r+=o.width-s.x:c.x<0&&(r+=-c.x),s.y>o.height?a+=o.height-s.y:c.y<0&&(a+=-c.y),this._updateTransform(t,r,a,n)}_updateTransform(e,t,n,r){if(e<this.minScale&&(e=this.minScale),(e!==this.scale||t!==this.x||n!==this.y)&&(this._transform.e=t,this._transform.f=n,this._transform.d=this._transform.a=e,this.style.setProperty("--x",this.x+"px"),this.style.setProperty("--y",this.y+"px"),this.style.setProperty("--scale",this.scale+""),r)){const e=new Event("change",{bubbles:!0});this.dispatchEvent(e)}}_stageElChange(){this._positioningEl=void 0,0!==this.children.length&&(this._positioningEl=this.children[0],this.children.length>1&&console.warn("<pinch-zoom> must not have more than one child."),this.setTransform({allowChangeEvent:!0}))}_onWheel(e){if(!this._positioningEl)return;e.preventDefault();const t=this._positioningEl.getBoundingClientRect();let{deltaY:n}=e;const{ctrlKey:r,deltaMode:a}=e;1===a&&(n*=15);const o=1-n/(r?100:300),i=o<1;this._applyChange({scaleDiff:o,originX:e.clientX-t.left,originY:e.clientY-t.top,allowChangeEvent:!0}),i&&this._maybeResetScale()}_onPointerMove(e,t,n){if(!this._positioningEl)return;if(e.length<2&&!this._allowPan())return;const r=this._positioningEl.getBoundingClientRect(),a=p(e[0],e[1]),o=p(t[0],t[1]),i=a.clientX-r.left,s=a.clientY-r.top,c=f(e[0],e[1]),l=f(t[0],t[1]),u=c?l/c:1;this._applyChange({originX:i,originY:s,scaleDiff:u,panX:o.clientX-a.clientX,panY:o.clientY-a.clientY,allowChangeEvent:!0}),this._maybeStopPropagate(n)}_maybeResetScale(){y(this.scale,this.resetToMinScaleLimit)<=0&&this._resetToMinScale()}_onPointerEnd(e,t,n){if(!this._positioningEl)return;const r=1+t.length,a=1==r;r>=2&&this._maybeResetScale(),a&&!this._allowPan()||this._maybeStopPropagate(n)}_resetToMinScale(){"reset"===this.reachMinScaleStrategy?this.setTransform({scale:this.minScale,x:0,y:0}):this.setTransform({scale:this.minScale})}_applyChange(e={}){const{panX:t=0,panY:n=0,originX:r=0,originY:a=0,scaleDiff:o=1,allowChangeEvent:i=!1}=e,s=v().translate(t,n).translate(r,a).translate(this.x,this.y).scale(o).translate(-r,-a).scale(this.scale);this.setTransform({allowChangeEvent:i,scale:s.a,x:s.e,y:s.f})}_maybeStopPropagate(e){this.stopPropagateHandled&&e.stopPropagation()}_allowPan(){return this.allowPanMinScale>0&&y(this.scale,this.allowPanMinScale)>0}_maybeEmitCancel(e){this.stopPropagateHandled&&e.forEach((e=>{var t;this.parentElement&&"function"==typeof this.parentElement.dispatchEvent&&this.parentElement.dispatchEvent((t=e,new PointerEvent("pointercancel",{pointerId:t.id,clientX:t.clientX,clientY:t.clientY})))}))}_onClick(e,t){0===e.button&&(0!==t.currentPointers.length||this._allowPan())&&this._maybeStopPropagate(e)}}customElements.define("pinch-zoom",_);const w=_},2262:(e,t,n)=>{"use strict";n.d(t,{$y:()=>ge,B:()=>i,Bj:()=>o,Fl:()=>Pe,IU:()=>_e,Jd:()=>_,PG:()=>ve,SU:()=>Ae,Um:()=>he,WL:()=>Ie,X$:()=>C,X3:()=>ye,XI:()=>Oe,Xl:()=>we,dq:()=>Ne,iH:()=>Se,j:()=>x,lk:()=>w,qj:()=>pe,qq:()=>v,yT:()=>be});var r=n(3577);let a;class o{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=a,!e&&a&&(this.index=(a.scopes||(a.scopes=[])).push(this)-1)}run(e){if(this.active){const t=a;try{return a=this,e()}finally{a=t}}}on(){a=this}off(){a=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this.active=!1}}}function i(e){return new o(e)}const s=e=>{const t=new Set(e);return t.w=0,t.n=0,t},c=e=>(e.w&h)>0,l=e=>(e.n&h)>0,u=new WeakMap;let f,p=0,h=1;const d=Symbol(""),m=Symbol("");class v{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t=a){t&&t.active&&t.effects.push(e)}(this,n)}run(){if(!this.active)return this.fn();let e=f,t=b;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=f,f=this,b=!0,h=1<<++p,p<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=h})(this):g(this),this.fn()}finally{p<=30&&(e=>{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r<t.length;r++){const a=t[r];c(a)&&!l(a)?a.delete(e):t[n++]=a,a.w&=~h,a.n&=~h}t.length=n}})(this),h=1<<--p,f=this.parent,b=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){f===this?this.deferStop=!0:this.active&&(g(this),this.onStop&&this.onStop(),this.active=!1)}}function g(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let b=!0;const y=[];function _(){y.push(b),b=!1}function w(){const e=y.pop();b=void 0===e||e}function x(e,t,n){if(b&&f){let t=u.get(e);t||u.set(e,t=new Map);let r=t.get(n);r||t.set(n,r=s()),k(r)}}function k(e,t){let n=!1;p<=30?l(e)||(e.n|=h,n=!c(e)):n=!e.has(f),n&&(e.add(f),f.deps.push(e))}function C(e,t,n,a,o,i){const c=u.get(e);if(!c)return;let l=[];if("clear"===t)l=[...c.values()];else if("length"===n&&(0,r.kJ)(e))c.forEach(((e,t)=>{("length"===t||t>=a)&&l.push(e)}));else switch(void 0!==n&&l.push(c.get(n)),t){case"add":(0,r.kJ)(e)?(0,r.S0)(n)&&l.push(c.get("length")):(l.push(c.get(d)),(0,r._N)(e)&&l.push(c.get(m)));break;case"delete":(0,r.kJ)(e)||(l.push(c.get(d)),(0,r._N)(e)&&l.push(c.get(m)));break;case"set":(0,r._N)(e)&&l.push(c.get(d))}if(1===l.length)l[0]&&E(l[0]);else{const e=[];for(const t of l)t&&e.push(...t);E(s(e))}}function E(e,t){const n=(0,r.kJ)(e)?e:[...e];for(const e of n)e.computed&&N(e);for(const e of n)e.computed||N(e)}function N(e,t){(e!==f||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const S=(0,r.fY)("__proto__,__v_isRef,__isVue"),O=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(r.yk)),j=T(),L=T(!1,!0),A=T(!0),M=I();function I(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=_e(this);for(let e=0,t=this.length;e<t;e++)x(n,0,e+"");const r=n[t](...e);return-1===r||!1===r?n[t](...e.map(_e)):r}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){_();const n=_e(this)[t].apply(this,e);return w(),n}})),e}function T(e=!1,t=!1){return function(n,a,o){if("__v_isReactive"===a)return!e;if("__v_isReadonly"===a)return e;if("__v_isShallow"===a)return t;if("__v_raw"===a&&o===(e?t?fe:ue:t?le:ce).get(n))return n;const i=(0,r.kJ)(n);if(!e&&i&&(0,r.RI)(M,a))return Reflect.get(M,a,o);const s=Reflect.get(n,a,o);return((0,r.yk)(a)?O.has(a):S(a))?s:(e||x(n,0,a),t?s:Ne(s)?i&&(0,r.S0)(a)?s:s.value:(0,r.Kn)(s)?e?de(s):pe(s):s)}}const R=z(),P=z(!0);function z(e=!1){return function(t,n,a,o){let i=t[n];if(ge(i)&&Ne(i)&&!Ne(a))return!1;if(!e&&(be(a)||ge(a)||(i=_e(i),a=_e(a)),!(0,r.kJ)(t)&&Ne(i)&&!Ne(a)))return i.value=a,!0;const s=(0,r.kJ)(t)&&(0,r.S0)(n)?Number(n)<t.length:(0,r.RI)(t,n),c=Reflect.set(t,n,a,o);return t===_e(o)&&(s?(0,r.aU)(a,i)&&C(t,"set",n,a):C(t,"add",n,a)),c}}const F={get:j,set:R,deleteProperty:function(e,t){const n=(0,r.RI)(e,t),a=(e[t],Reflect.deleteProperty(e,t));return a&&n&&C(e,"delete",t,void 0),a},has:function(e,t){const n=Reflect.has(e,t);return(0,r.yk)(t)&&O.has(t)||x(e,0,t),n},ownKeys:function(e){return x(e,0,(0,r.kJ)(e)?"length":d),Reflect.ownKeys(e)}},$={get:A,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},H=(0,r.l7)({},F,{get:L,set:P}),D=e=>e,V=e=>Reflect.getPrototypeOf(e);function U(e,t,n=!1,r=!1){const a=_e(e=e.__v_raw),o=_e(t);n||(t!==o&&x(a,0,t),x(a,0,o));const{has:i}=V(a),s=r?D:n?ke:xe;return i.call(a,t)?s(e.get(t)):i.call(a,o)?s(e.get(o)):void(e!==a&&e.get(t))}function B(e,t=!1){const n=this.__v_raw,r=_e(n),a=_e(e);return t||(e!==a&&x(r,0,e),x(r,0,a)),e===a?n.has(e):n.has(e)||n.has(a)}function W(e,t=!1){return e=e.__v_raw,!t&&x(_e(e),0,d),Reflect.get(e,"size",e)}function Y(e){e=_e(e);const t=_e(this);return V(t).has.call(t,e)||(t.add(e),C(t,"add",e,e)),this}function q(e,t){t=_e(t);const n=_e(this),{has:a,get:o}=V(n);let i=a.call(n,e);i||(e=_e(e),i=a.call(n,e));const s=o.call(n,e);return n.set(e,t),i?(0,r.aU)(t,s)&&C(n,"set",e,t):C(n,"add",e,t),this}function G(e){const t=_e(this),{has:n,get:r}=V(t);let a=n.call(t,e);a||(e=_e(e),a=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return a&&C(t,"delete",e,void 0),o}function X(){const e=_e(this),t=0!==e.size,n=e.clear();return t&&C(e,"clear",void 0,void 0),n}function Z(e,t){return function(n,r){const a=this,o=a.__v_raw,i=_e(o),s=t?D:e?ke:xe;return!e&&x(i,0,d),o.forEach(((e,t)=>n.call(r,s(e),s(t),a)))}}function J(e,t,n){return function(...a){const o=this.__v_raw,i=_e(o),s=(0,r._N)(i),c="entries"===e||e===Symbol.iterator&&s,l="keys"===e&&s,u=o[e](...a),f=n?D:t?ke:xe;return!t&&x(i,0,l?m:d),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[f(e[0]),f(e[1])]:f(e),done:t}},[Symbol.iterator](){return this}}}}function K(e){return function(...t){return"delete"!==e&&this}}function Q(){const e={get(e){return U(this,e)},get size(){return W(this)},has:B,add:Y,set:q,delete:G,clear:X,forEach:Z(!1,!1)},t={get(e){return U(this,e,!1,!0)},get size(){return W(this)},has:B,add:Y,set:q,delete:G,clear:X,forEach:Z(!1,!0)},n={get(e){return U(this,e,!0)},get size(){return W(this,!0)},has(e){return B.call(this,e,!0)},add:K("add"),set:K("set"),delete:K("delete"),clear:K("clear"),forEach:Z(!0,!1)},r={get(e){return U(this,e,!0,!0)},get size(){return W(this,!0)},has(e){return B.call(this,e,!0)},add:K("add"),set:K("set"),delete:K("delete"),clear:K("clear"),forEach:Z(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((a=>{e[a]=J(a,!1,!1),n[a]=J(a,!0,!1),t[a]=J(a,!1,!0),r[a]=J(a,!0,!0)})),[e,n,t,r]}const[ee,te,ne,re]=Q();function ae(e,t){const n=t?e?re:ne:e?te:ee;return(t,a,o)=>"__v_isReactive"===a?!e:"__v_isReadonly"===a?e:"__v_raw"===a?t:Reflect.get((0,r.RI)(n,a)&&a in t?n:t,a,o)}const oe={get:ae(!1,!1)},ie={get:ae(!1,!0)},se={get:ae(!0,!1)},ce=new WeakMap,le=new WeakMap,ue=new WeakMap,fe=new WeakMap;function pe(e){return ge(e)?e:me(e,!1,F,oe,ce)}function he(e){return me(e,!1,H,ie,le)}function de(e){return me(e,!0,$,se,ue)}function me(e,t,n,a,o){if(!(0,r.Kn)(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const i=o.get(e);if(i)return i;const s=(c=e).__v_skip||!Object.isExtensible(c)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((0,r.W7)(c));var c;if(0===s)return e;const l=new Proxy(e,2===s?a:n);return o.set(e,l),l}function ve(e){return ge(e)?ve(e.__v_raw):!(!e||!e.__v_isReactive)}function ge(e){return!(!e||!e.__v_isReadonly)}function be(e){return!(!e||!e.__v_isShallow)}function ye(e){return ve(e)||ge(e)}function _e(e){const t=e&&e.__v_raw;return t?_e(t):e}function we(e){return(0,r.Nj)(e,"__v_skip",!0),e}const xe=e=>(0,r.Kn)(e)?pe(e):e,ke=e=>(0,r.Kn)(e)?de(e):e;function Ce(e){b&&f&&k((e=_e(e)).dep||(e.dep=s()))}function Ee(e,t){(e=_e(e)).dep&&E(e.dep)}function Ne(e){return!(!e||!0!==e.__v_isRef)}function Se(e){return je(e,!1)}function Oe(e){return je(e,!0)}function je(e,t){return Ne(e)?e:new Le(e,t)}class Le{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:_e(e),this._value=t?e:xe(e)}get value(){return Ce(this),this._value}set value(e){const t=this.__v_isShallow||be(e)||ge(e);e=t?e:_e(e),(0,r.aU)(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:xe(e),Ee(this))}}function Ae(e){return Ne(e)?e.value:e}const Me={get:(e,t,n)=>Ae(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const a=e[t];return Ne(a)&&!Ne(n)?(a.value=n,!0):Reflect.set(e,t,n,r)}};function Ie(e){return ve(e)?e:new Proxy(e,Me)}var Te;class Re{constructor(e,t,n,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[Te]=!1,this._dirty=!0,this.effect=new v(e,(()=>{this._dirty||(this._dirty=!0,Ee(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=n}get value(){const e=_e(this);return Ce(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Pe(e,t,n=!1){let a,o;const i=(0,r.mf)(e);return i?(a=e,o=r.dG):(a=e.get,o=e.set),new Re(a,o,i||!o,n)}Te="__v_isReadonly"},66252:(e,t,n)=>{"use strict";n.d(t,{$d:()=>i,Ah:()=>_e,F4:()=>Dt,FN:()=>Qt,Fl:()=>ln,HY:()=>xt,JJ:()=>z,Jd:()=>ye,Ko:()=>Te,LL:()=>Le,Ob:()=>oe,P$:()=>q,Q2:()=>Ae,Q6:()=>Q,RC:()=>ne,U2:()=>X,Uk:()=>Ut,Us:()=>dt,WI:()=>Re,Wm:()=>Ht,Y3:()=>g,Y8:()=>W,YP:()=>H,_:()=>$t,aZ:()=>ee,bv:()=>ve,dG:()=>Gt,f3:()=>F,h:()=>un,iD:()=>Mt,ic:()=>be,j4:()=>It,kq:()=>Bt,lA:()=>Tt,lR:()=>wt,mx:()=>ze,nK:()=>K,up:()=>Oe,w5:()=>A,wF:()=>me,wg:()=>Ot,wy:()=>Ee,xv:()=>kt});var r=n(2262),a=n(3577);function o(e,t,n,r){let a;try{a=r?e(...r):e()}catch(e){s(e,t,n)}return a}function i(e,t,n,r){if((0,a.mf)(e)){const i=o(e,t,n,r);return i&&(0,a.tI)(i)&&i.catch((e=>{s(e,t,n)})),i}const c=[];for(let a=0;a<e.length;a++)c.push(i(e[a],t,n,r));return c}function s(e,t,n,r=!0){if(t&&t.vnode,t){let r=t.parent;const a=t.proxy,i=n;for(;r;){const t=r.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,a,i))return;r=r.parent}const s=t.appContext.config.errorHandler;if(s)return void o(s,null,10,[e,a,i])}!function(e,t,n,r=!0){console.error(e)}(e,0,0,r)}let c=!1,l=!1;const u=[];let f=0;const p=[];let h=null,d=0;const m=Promise.resolve();let v=null;function g(e){const t=v||m;return e?t.then(this?e.bind(this):e):t}function b(e){u.length&&u.includes(e,c&&e.allowRecurse?f+1:f)||(null==e.id?u.push(e):u.splice(function(e){let t=f+1,n=u.length;for(;t<n;){const r=t+n>>>1;x(u[r])<e?t=r+1:n=r}return t}(e.id),0,e),y())}function y(){c||l||(l=!0,v=m.then(C))}function _(e,t=(c?f+1:0)){for(;t<u.length;t++){const e=u[t];e&&e.pre&&(u.splice(t,1),t--,e())}}function w(e){if(p.length){const e=[...new Set(p)];if(p.length=0,h)return void h.push(...e);for(h=e,h.sort(((e,t)=>x(e)-x(t))),d=0;d<h.length;d++)h[d]();h=null,d=0}}const x=e=>null==e.id?1/0:e.id,k=(e,t)=>{const n=x(e)-x(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function C(e){l=!1,c=!0,u.sort(k),a.dG;try{for(f=0;f<u.length;f++){const e=u[f];e&&!1!==e.active&&o(e,null,14)}}finally{f=0,u.length=0,w(),c=!1,v=null,(u.length||p.length)&&C(e)}}function E(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||a.kT;let o=n;const s=t.startsWith("update:"),c=s&&t.slice(7);if(c&&c in r){const e=`${"modelValue"===c?"model":c}Modifiers`,{number:t,trim:i}=r[e]||a.kT;i&&(o=n.map((e=>e.trim()))),t&&(o=n.map(a.He))}let l,u=r[l=(0,a.hR)(t)]||r[l=(0,a.hR)((0,a._A)(t))];!u&&s&&(u=r[l=(0,a.hR)((0,a.rs)(t))]),u&&i(u,e,6,o);const f=r[l+"Once"];if(f){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,i(f,e,6,o)}}function N(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(void 0!==o)return o;const i=e.emits;let s={},c=!1;if(!(0,a.mf)(e)){const r=e=>{const n=N(e,t,!0);n&&(c=!0,(0,a.l7)(s,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return i||c?((0,a.kJ)(i)?i.forEach((e=>s[e]=null)):(0,a.l7)(s,i),(0,a.Kn)(e)&&r.set(e,s),s):((0,a.Kn)(e)&&r.set(e,null),null)}function S(e,t){return!(!e||!(0,a.F7)(t))&&(t=t.slice(2).replace(/Once$/,""),(0,a.RI)(e,t[0].toLowerCase()+t.slice(1))||(0,a.RI)(e,(0,a.rs)(t))||(0,a.RI)(e,t))}new Set,new Map;let O=null,j=null;function L(e){const t=O;return O=e,j=e&&e.type.__scopeId||null,t}function A(e,t=O,n){if(!t)return e;if(e._n)return e;const r=(...n)=>{r._d&&Lt(-1);const a=L(t);let o;try{o=e(...n)}finally{L(a),r._d&&Lt(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function M(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:i,propsOptions:[c],slots:l,attrs:u,emit:f,render:p,renderCache:h,data:d,setupState:m,ctx:v,inheritAttrs:g}=e;let b,y;const _=L(e);try{if(4&n.shapeFlag){const e=o||r;b=Wt(p.call(e,e,h,i,m,d,v)),y=u}else{const e=t;b=Wt(e.length>1?e(i,{attrs:u,slots:l,emit:f}):e(i,null)),y=t.props?u:I(u)}}catch(t){Nt.length=0,s(t,e,1),b=Ht(Ct)}let w=b;if(y&&!1!==g){const e=Object.keys(y),{shapeFlag:t}=w;e.length&&7&t&&(c&&e.some(a.tR)&&(y=T(y,c)),w=Vt(w,y))}return n.dirs&&(w=Vt(w),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&(w.transition=n.transition),b=w,L(_),b}const I=e=>{let t;for(const n in e)("class"===n||"style"===n||(0,a.F7)(n))&&((t||(t={}))[n]=e[n]);return t},T=(e,t)=>{const n={};for(const r in e)(0,a.tR)(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function R(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let a=0;a<r.length;a++){const o=r[a];if(t[o]!==e[o]&&!S(n,o))return!0}return!1}const P=e=>e.__isSuspense;function z(e,t){if(Kt){let n=Kt.provides;const r=Kt.parent&&Kt.parent.provides;r===n&&(n=Kt.provides=Object.create(r)),n[e]=t}}function F(e,t,n=!1){const r=Kt||O;if(r){const o=null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&(0,a.mf)(t)?t.call(r.proxy):t}}const $={};function H(e,t,n){return D(e,t,n)}function D(e,t,{immediate:n,deep:s,flush:c,onTrack:l,onTrigger:u}=a.kT){const f=Kt;let p,h,d=!1,m=!1;if((0,r.dq)(e)?(p=()=>e.value,d=(0,r.yT)(e)):(0,r.PG)(e)?(p=()=>e,s=!0):(0,a.kJ)(e)?(m=!0,d=e.some((e=>(0,r.PG)(e)||(0,r.yT)(e))),p=()=>e.map((e=>(0,r.dq)(e)?e.value:(0,r.PG)(e)?B(e):(0,a.mf)(e)?o(e,f,2):void 0))):p=(0,a.mf)(e)?t?()=>o(e,f,2):()=>{if(!f||!f.isUnmounted)return h&&h(),i(e,f,3,[v])}:a.dG,t&&s){const e=p;p=()=>B(e())}let v=e=>{h=w.onStop=()=>{o(e,f,4)}};if(rn)return v=a.dG,t?n&&i(t,f,3,[p(),m?[]:void 0,v]):p(),a.dG;let g=m?[]:$;const y=()=>{if(w.active)if(t){const e=w.run();(s||d||(m?e.some(((e,t)=>(0,a.aU)(e,g[t]))):(0,a.aU)(e,g)))&&(h&&h(),i(t,f,3,[e,g===$?void 0:g,v]),g=e)}else w.run()};let _;y.allowRecurse=!!t,"sync"===c?_=y:"post"===c?_=()=>ht(y,f&&f.suspense):(y.pre=!0,f&&(y.id=f.uid),_=()=>b(y));const w=new r.qq(p,_);return t?n?y():g=w.run():"post"===c?ht(w.run.bind(w),f&&f.suspense):w.run(),()=>{w.stop(),f&&f.scope&&(0,a.Od)(f.scope.effects,w)}}function V(e,t,n){const r=this.proxy,o=(0,a.HD)(e)?e.includes(".")?U(r,e):()=>r[e]:e.bind(r,r);let i;(0,a.mf)(t)?i=t:(i=t.handler,n=t);const s=Kt;en(this);const c=D(o,i.bind(r),n);return s?en(s):tn(),c}function U(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function B(e,t){if(!(0,a.Kn)(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),(0,r.dq)(e))B(e.value,t);else if((0,a.kJ)(e))for(let n=0;n<e.length;n++)B(e[n],t);else if((0,a.DM)(e)||(0,a._N)(e))e.forEach((e=>{B(e,t)}));else if((0,a.PO)(e))for(const n in e)B(e[n],t);return e}function W(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return ve((()=>{e.isMounted=!0})),ye((()=>{e.isUnmounting=!0})),e}const Y=[Function,Array],q={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Y,onEnter:Y,onAfterEnter:Y,onEnterCancelled:Y,onBeforeLeave:Y,onLeave:Y,onAfterLeave:Y,onLeaveCancelled:Y,onBeforeAppear:Y,onAppear:Y,onAfterAppear:Y,onAppearCancelled:Y},setup(e,{slots:t}){const n=Qt(),a=W();let o;return()=>{const i=t.default&&Q(t.default(),!0);if(!i||!i.length)return;let s=i[0];if(i.length>1){let e=!1;for(const t of i)if(t.type!==Ct){s=t,e=!0;break}}const c=(0,r.IU)(e),{mode:l}=c;if(a.isLeaving)return Z(s);const u=J(s);if(!u)return Z(s);const f=X(u,c,a,n);K(u,f);const p=n.subTree,h=p&&J(p);let d=!1;const{getTransitionKey:m}=u.type;if(m){const e=m();void 0===o?o=e:e!==o&&(o=e,d=!0)}if(h&&h.type!==Ct&&(!Rt(u,h)||d)){const e=X(h,c,a,n);if(K(h,e),"out-in"===l)return a.isLeaving=!0,e.afterLeave=()=>{a.isLeaving=!1,n.update()},Z(s);"in-out"===l&&u.type!==Ct&&(e.delayLeave=(e,t,n)=>{G(a,h)[String(h.key)]=h,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=n})}return s}}};function G(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function X(e,t,n,r){const{appear:o,mode:s,persisted:c=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:f,onEnterCancelled:p,onBeforeLeave:h,onLeave:d,onAfterLeave:m,onLeaveCancelled:v,onBeforeAppear:g,onAppear:b,onAfterAppear:y,onAppearCancelled:_}=t,w=String(e.key),x=G(n,e),k=(e,t)=>{e&&i(e,r,9,t)},C=(e,t)=>{const n=t[1];k(e,t),(0,a.kJ)(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},E={mode:s,persisted:c,beforeEnter(t){let r=l;if(!n.isMounted){if(!o)return;r=g||l}t._leaveCb&&t._leaveCb(!0);const a=x[w];a&&Rt(e,a)&&a.el._leaveCb&&a.el._leaveCb(),k(r,[t])},enter(e){let t=u,r=f,a=p;if(!n.isMounted){if(!o)return;t=b||u,r=y||f,a=_||p}let i=!1;const s=e._enterCb=t=>{i||(i=!0,k(t?a:r,[e]),E.delayedLeave&&E.delayedLeave(),e._enterCb=void 0)};t?C(t,[e,s]):s()},leave(t,r){const a=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return r();k(h,[t]);let o=!1;const i=t._leaveCb=n=>{o||(o=!0,r(),k(n?v:m,[t]),t._leaveCb=void 0,x[a]===e&&delete x[a])};x[a]=e,d?C(d,[t,i]):i()},clone:e=>X(e,t,n,r)};return E}function Z(e){if(ae(e))return(e=Vt(e)).children=null,e}function J(e){return ae(e)?e.children?e.children[0]:void 0:e}function K(e,t){6&e.shapeFlag&&e.component?K(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Q(e,t=!1,n){let r=[],a=0;for(let o=0;o<e.length;o++){let i=e[o];const s=null==n?i.key:String(n)+String(null!=i.key?i.key:o);i.type===xt?(128&i.patchFlag&&a++,r=r.concat(Q(i.children,t,s))):(t||i.type!==Ct)&&r.push(null!=s?Vt(i,{key:s}):i)}if(a>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function ee(e){return(0,a.mf)(e)?{setup:e,name:e.name}:e}const te=e=>!!e.type.__asyncLoader;function ne(e){(0,a.mf)(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:i=200,timeout:c,suspensible:l=!0,onError:u}=e;let f,p=null,h=0;const d=()=>{let e;return p||(e=p=t().catch((e=>{if(e=e instanceof Error?e:new Error(String(e)),u)return new Promise(((t,n)=>{u(e,(()=>t((h++,p=null,d()))),(()=>n(e)),h+1)}));throw e})).then((t=>e!==p&&p?p:(t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),f=t,t))))};return ee({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return f},setup(){const e=Kt;if(f)return()=>re(f,e);const t=t=>{p=null,s(t,e,13,!o)};if(l&&e.suspense||rn)return d().then((t=>()=>re(t,e))).catch((e=>(t(e),()=>o?Ht(o,{error:e}):null)));const a=(0,r.iH)(!1),u=(0,r.iH)(),h=(0,r.iH)(!!i);return i&&setTimeout((()=>{h.value=!1}),i),null!=c&&setTimeout((()=>{if(!a.value&&!u.value){const e=new Error(`Async component timed out after ${c}ms.`);t(e),u.value=e}}),c),d().then((()=>{a.value=!0,e.parent&&ae(e.parent.vnode)&&b(e.parent.update)})).catch((e=>{t(e),u.value=e})),()=>a.value&&f?re(f,e):u.value&&o?Ht(o,{error:u.value}):n&&!h.value?Ht(n):void 0}})}function re(e,{vnode:{ref:t,props:n,children:r,shapeFlag:a},parent:o}){const i=Ht(e,n,r);return i.ref=t,i}const ae=e=>e.type.__isKeepAlive,oe={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Qt(),r=n.ctx;if(!r.renderer)return()=>{const e=t.default&&t.default();return e&&1===e.length?e[0]:e};const o=new Map,i=new Set;let s=null;const c=n.suspense,{renderer:{p:l,m:u,um:f,o:{createElement:p}}}=r,h=p("div");function d(e){fe(e),f(e,n,c,!0)}function m(e){o.forEach(((t,n)=>{const r=cn(t.type);!r||e&&e(r)||v(n)}))}function v(e){const t=o.get(e);s&&t.type===s.type?s&&fe(s):d(t),o.delete(e),i.delete(e)}r.activate=(e,t,n,r,o)=>{const i=e.component;u(e,t,n,0,c),l(i.vnode,e,t,n,i,c,r,e.slotScopeIds,o),ht((()=>{i.isDeactivated=!1,i.a&&(0,a.ir)(i.a);const t=e.props&&e.props.onVnodeMounted;t&&Xt(t,i.parent,e)}),c)},r.deactivate=e=>{const t=e.component;u(e,h,null,1,c),ht((()=>{t.da&&(0,a.ir)(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&Xt(n,t.parent,e),t.isDeactivated=!0}),c)},H((()=>[e.include,e.exclude]),(([e,t])=>{e&&m((t=>ie(e,t))),t&&m((e=>!ie(t,e)))}),{flush:"post",deep:!0});let g=null;const b=()=>{null!=g&&o.set(g,pe(n.subTree))};return ve(b),be(b),ye((()=>{o.forEach((e=>{const{subTree:t,suspense:r}=n,a=pe(t);if(e.type!==a.type)d(e);else{fe(a);const e=a.component.da;e&&ht(e,r)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!Tt(r)||!(4&r.shapeFlag||128&r.shapeFlag))return s=null,r;let a=pe(r);const c=a.type,l=cn(te(a)?a.type.__asyncResolved||{}:c),{include:u,exclude:f,max:p}=e;if(u&&(!l||!ie(u,l))||f&&l&&ie(f,l))return s=a,r;const h=null==a.key?c:a.key,d=o.get(h);return a.el&&(a=Vt(a),128&r.shapeFlag&&(r.ssContent=a)),g=h,d?(a.el=d.el,a.component=d.component,a.transition&&K(a,a.transition),a.shapeFlag|=512,i.delete(h),i.add(h)):(i.add(h),p&&i.size>parseInt(p,10)&&v(i.values().next().value)),a.shapeFlag|=256,s=a,P(r.type)?r:a}}};function ie(e,t){return(0,a.kJ)(e)?e.some((e=>ie(e,t))):(0,a.HD)(e)?e.split(",").includes(t):!!e.test&&e.test(t)}function se(e,t){le(e,"a",t)}function ce(e,t){le(e,"da",t)}function le(e,t,n=Kt){const r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(he(t,r,n),n){let e=n.parent;for(;e&&e.parent;)ae(e.parent.vnode)&&ue(r,t,n,e),e=e.parent}}function ue(e,t,n,r){const o=he(t,e,r,!0);_e((()=>{(0,a.Od)(r[t],o)}),n)}function fe(e){let t=e.shapeFlag;256&t&&(t-=256),512&t&&(t-=512),e.shapeFlag=t}function pe(e){return 128&e.shapeFlag?e.ssContent:e}function he(e,t,n=Kt,a=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...a)=>{if(n.isUnmounted)return;(0,r.Jd)(),en(n);const o=i(t,n,e,a);return tn(),(0,r.lk)(),o});return a?o.unshift(s):o.push(s),s}}const de=e=>(t,n=Kt)=>(!rn||"sp"===e)&&he(e,((...e)=>t(...e)),n),me=de("bm"),ve=de("m"),ge=de("bu"),be=de("u"),ye=de("bum"),_e=de("um"),we=de("sp"),xe=de("rtg"),ke=de("rtc");function Ce(e,t=Kt){he("ec",e,t)}function Ee(e,t){const n=O;if(null===n)return e;const r=sn(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[n,i,s,c=a.kT]=t[e];(0,a.mf)(n)&&(n={mounted:n,updated:n}),n.deep&&B(i),o.push({dir:n,instance:r,value:i,oldValue:void 0,arg:s,modifiers:c})}return e}function Ne(e,t,n,a){const o=e.dirs,s=t&&t.dirs;for(let c=0;c<o.length;c++){const l=o[c];s&&(l.oldValue=s[c].value);let u=l.dir[a];u&&((0,r.Jd)(),i(u,n,8,[e.el,l,e,t]),(0,r.lk)())}}const Se="components";function Oe(e,t){return Me(Se,e,!0,t)||e}const je=Symbol();function Le(e){return(0,a.HD)(e)?Me(Se,e,!1)||e:e||je}function Ae(e){return Me("directives",e)}function Me(e,t,n=!0,r=!1){const o=O||Kt;if(o){const n=o.type;if(e===Se){const e=cn(n,!1);if(e&&(e===t||e===(0,a._A)(t)||e===(0,a.kC)((0,a._A)(t))))return n}const i=Ie(o[e]||n[e],t)||Ie(o.appContext[e],t);return!i&&r?n:i}}function Ie(e,t){return e&&(e[t]||e[(0,a._A)(t)]||e[(0,a.kC)((0,a._A)(t))])}function Te(e,t,n,r){let o;const i=n&&n[r];if((0,a.kJ)(e)||(0,a.HD)(e)){o=new Array(e.length);for(let n=0,r=e.length;n<r;n++)o[n]=t(e[n],n,void 0,i&&i[n])}else if("number"==typeof e){o=new Array(e);for(let n=0;n<e;n++)o[n]=t(n+1,n,void 0,i&&i[n])}else if((0,a.Kn)(e))if(e[Symbol.iterator])o=Array.from(e,((e,n)=>t(e,n,void 0,i&&i[n])));else{const n=Object.keys(e);o=new Array(n.length);for(let r=0,a=n.length;r<a;r++){const a=n[r];o[r]=t(e[a],a,r,i&&i[r])}}else o=[];return n&&(n[r]=o),o}function Re(e,t,n={},r,a){if(O.isCE||O.parent&&te(O.parent)&&O.parent.isCE)return Ht("slot","default"===t?null:{name:t},r&&r());let o=e[t];o&&o._c&&(o._d=!1),Ot();const i=o&&Pe(o(n)),s=It(xt,{key:n.key||i&&i.key||`_${t}`},i||(r?r():[]),i&&1===e._?64:-2);return!a&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),o&&o._c&&(o._d=!0),s}function Pe(e){return e.some((e=>!Tt(e)||e.type!==Ct&&!(e.type===xt&&!Pe(e.children))))?e:null}function ze(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:(0,a.hR)(r)]=e[r];return n}const Fe=e=>e?nn(e)?sn(e)||e.proxy:Fe(e.parent):null,$e=(0,a.l7)(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Fe(e.parent),$root:e=>Fe(e.root),$emit:e=>e.emit,$options:e=>Be(e),$forceUpdate:e=>e.f||(e.f=()=>b(e.update)),$nextTick:e=>e.n||(e.n=g.bind(e.proxy)),$watch:e=>V.bind(e)}),He={get({_:e},t){const{ctx:n,setupState:o,data:i,props:s,accessCache:c,type:l,appContext:u}=e;let f;if("$"!==t[0]){const r=c[t];if(void 0!==r)switch(r){case 1:return o[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(o!==a.kT&&(0,a.RI)(o,t))return c[t]=1,o[t];if(i!==a.kT&&(0,a.RI)(i,t))return c[t]=2,i[t];if((f=e.propsOptions[0])&&(0,a.RI)(f,t))return c[t]=3,s[t];if(n!==a.kT&&(0,a.RI)(n,t))return c[t]=4,n[t];De&&(c[t]=0)}}const p=$e[t];let h,d;return p?("$attrs"===t&&(0,r.j)(e,"get",t),p(e)):(h=l.__cssModules)&&(h=h[t])?h:n!==a.kT&&(0,a.RI)(n,t)?(c[t]=4,n[t]):(d=u.config.globalProperties,(0,a.RI)(d,t)?d[t]:void 0)},set({_:e},t,n){const{data:r,setupState:o,ctx:i}=e;return o!==a.kT&&(0,a.RI)(o,t)?(o[t]=n,!0):r!==a.kT&&(0,a.RI)(r,t)?(r[t]=n,!0):!((0,a.RI)(e.props,t)||"$"===t[0]&&t.slice(1)in e||(i[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:i}},s){let c;return!!n[s]||e!==a.kT&&(0,a.RI)(e,s)||t!==a.kT&&(0,a.RI)(t,s)||(c=i[0])&&(0,a.RI)(c,s)||(0,a.RI)(r,s)||(0,a.RI)($e,s)||(0,a.RI)(o.config.globalProperties,s)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:(0,a.RI)(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let De=!0;function Ve(e,t,n){i((0,a.kJ)(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function Ue(e,t,n,r){const o=r.includes(".")?U(n,r):()=>n[r];if((0,a.HD)(e)){const n=t[e];(0,a.mf)(n)&&H(o,n)}else if((0,a.mf)(e))H(o,e.bind(n));else if((0,a.Kn)(e))if((0,a.kJ)(e))e.forEach((e=>Ue(e,t,n,r)));else{const r=(0,a.mf)(e.handler)?e.handler.bind(n):t[e.handler];(0,a.mf)(r)&&H(o,r,e)}}function Be(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:s}}=e.appContext,c=i.get(t);let l;return c?l=c:o.length||n||r?(l={},o.length&&o.forEach((e=>We(l,e,s,!0))),We(l,t,s)):l=t,(0,a.Kn)(t)&&i.set(t,l),l}function We(e,t,n,r=!1){const{mixins:a,extends:o}=t;o&&We(e,o,n,!0),a&&a.forEach((t=>We(e,t,n,!0)));for(const a in t)if(r&&"expose"===a);else{const r=Ye[a]||n&&n[a];e[a]=r?r(e[a],t[a]):t[a]}return e}const Ye={data:qe,props:Ze,emits:Ze,methods:Ze,computed:Ze,beforeCreate:Xe,created:Xe,beforeMount:Xe,mounted:Xe,beforeUpdate:Xe,updated:Xe,beforeDestroy:Xe,beforeUnmount:Xe,destroyed:Xe,unmounted:Xe,activated:Xe,deactivated:Xe,errorCaptured:Xe,serverPrefetch:Xe,components:Ze,directives:Ze,watch:function(e,t){if(!e)return t;if(!t)return e;const n=(0,a.l7)(Object.create(null),e);for(const r in t)n[r]=Xe(e[r],t[r]);return n},provide:qe,inject:function(e,t){return Ze(Ge(e),Ge(t))}};function qe(e,t){return t?e?function(){return(0,a.l7)((0,a.mf)(e)?e.call(this,this):e,(0,a.mf)(t)?t.call(this,this):t)}:t:e}function Ge(e){if((0,a.kJ)(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Xe(e,t){return e?[...new Set([].concat(e,t))]:t}function Ze(e,t){return e?(0,a.l7)((0,a.l7)(Object.create(null),e),t):t}function Je(e,t,n,o){const[i,s]=e.propsOptions;let c,l=!1;if(t)for(let r in t){if((0,a.Gg)(r))continue;const u=t[r];let f;i&&(0,a.RI)(i,f=(0,a._A)(r))?s&&s.includes(f)?(c||(c={}))[f]=u:n[f]=u:S(e.emitsOptions,r)||r in o&&u===o[r]||(o[r]=u,l=!0)}if(s){const t=(0,r.IU)(n),o=c||a.kT;for(let r=0;r<s.length;r++){const c=s[r];n[c]=Ke(i,t,c,o[c],e,!(0,a.RI)(o,c))}}return l}function Ke(e,t,n,r,o,i){const s=e[n];if(null!=s){const e=(0,a.RI)(s,"default");if(e&&void 0===r){const e=s.default;if(s.type!==Function&&(0,a.mf)(e)){const{propsDefaults:a}=o;n in a?r=a[n]:(en(o),r=a[n]=e.call(null,t),tn())}else r=e}s[0]&&(i&&!e?r=!1:!s[1]||""!==r&&r!==(0,a.rs)(n)||(r=!0))}return r}function Qe(e,t,n=!1){const r=t.propsCache,o=r.get(e);if(o)return o;const i=e.props,s={},c=[];let l=!1;if(!(0,a.mf)(e)){const r=e=>{l=!0;const[n,r]=Qe(e,t,!0);(0,a.l7)(s,n),r&&c.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!i&&!l)return(0,a.Kn)(e)&&r.set(e,a.Z6),a.Z6;if((0,a.kJ)(i))for(let e=0;e<i.length;e++){const t=(0,a._A)(i[e]);et(t)&&(s[t]=a.kT)}else if(i)for(const e in i){const t=(0,a._A)(e);if(et(t)){const n=i[e],r=s[t]=(0,a.kJ)(n)||(0,a.mf)(n)?{type:n}:n;if(r){const e=rt(Boolean,r.type),n=rt(String,r.type);r[0]=e>-1,r[1]=n<0||e<n,(e>-1||(0,a.RI)(r,"default"))&&c.push(t)}}}const u=[s,c];return(0,a.Kn)(e)&&r.set(e,u),u}function et(e){return"$"!==e[0]}function tt(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function nt(e,t){return tt(e)===tt(t)}function rt(e,t){return(0,a.kJ)(t)?t.findIndex((t=>nt(t,e))):(0,a.mf)(t)&&nt(t,e)?0:-1}const at=e=>"_"===e[0]||"$stable"===e,ot=e=>(0,a.kJ)(e)?e.map(Wt):[Wt(e)],it=(e,t,n)=>{if(t._n)return t;const r=A(((...e)=>ot(t(...e))),n);return r._c=!1,r},st=(e,t,n)=>{const r=e._ctx;for(const n in e){if(at(n))continue;const o=e[n];if((0,a.mf)(o))t[n]=it(0,o,r);else if(null!=o){const e=ot(o);t[n]=()=>e}}},ct=(e,t)=>{const n=ot(t);e.slots.default=()=>n};function lt(){return{app:null,config:{isNativeTag:a.NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ut=0;function ft(e,t){return function(n,r=null){(0,a.mf)(n)||(n=Object.assign({},n)),null==r||(0,a.Kn)(r)||(r=null);const o=lt(),i=new Set;let s=!1;const c=o.app={_uid:ut++,_component:n,_props:r,_container:null,_context:o,_instance:null,version:fn,get config(){return o.config},set config(e){},use:(e,...t)=>(i.has(e)||(e&&(0,a.mf)(e.install)?(i.add(e),e.install(c,...t)):(0,a.mf)(e)&&(i.add(e),e(c,...t))),c),mixin:e=>(o.mixins.includes(e)||o.mixins.push(e),c),component:(e,t)=>t?(o.components[e]=t,c):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,c):o.directives[e],mount(a,i,l){if(!s){const u=Ht(n,r);return u.appContext=o,i&&t?t(u,a):e(u,a,l),s=!0,c._container=a,a.__vue_app__=c,sn(u.component)||u.component.proxy}},unmount(){s&&(e(null,c._container),delete c._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,c)};return c}}function pt(e,t,n,i,s=!1){if((0,a.kJ)(e))return void e.forEach(((e,r)=>pt(e,t&&((0,a.kJ)(t)?t[r]:t),n,i,s)));if(te(i)&&!s)return;const c=4&i.shapeFlag?sn(i.component)||i.component.proxy:i.el,l=s?null:c,{i:u,r:f}=e,p=t&&t.r,h=u.refs===a.kT?u.refs={}:u.refs,d=u.setupState;if(null!=p&&p!==f&&((0,a.HD)(p)?(h[p]=null,(0,a.RI)(d,p)&&(d[p]=null)):(0,r.dq)(p)&&(p.value=null)),(0,a.mf)(f))o(f,u,12,[l,h]);else{const t=(0,a.HD)(f),o=(0,r.dq)(f);if(t||o){const r=()=>{if(e.f){const n=t?(0,a.RI)(d,f)?d[f]:h[f]:f.value;s?(0,a.kJ)(n)&&(0,a.Od)(n,c):(0,a.kJ)(n)?n.includes(c)||n.push(c):t?(h[f]=[c],(0,a.RI)(d,f)&&(d[f]=h[f])):(f.value=[c],e.k&&(h[e.k]=f.value))}else t?(h[f]=l,(0,a.RI)(d,f)&&(d[f]=l)):o&&(f.value=l,e.k&&(h[e.k]=l))};l?(r.id=-1,ht(r,n)):r()}}}const ht=function(e,t){var n;t&&t.pendingBranch?(0,a.kJ)(e)?t.effects.push(...e):t.effects.push(e):(n=e,(0,a.kJ)(n)?p.push(...n):h&&h.includes(n,n.allowRecurse?d+1:d)||p.push(n),y())};function dt(e){return function(e,t){(0,a.E9)().__VUE__=!0;const{insert:n,remove:i,patchProp:c,createElement:l,createText:p,createComment:h,setText:d,setElementText:m,parentNode:v,nextSibling:g,setScopeId:y=a.dG,insertStaticContent:x}=e,k=(e,t,n,r=null,a=null,o=null,i=!1,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Rt(e,t)&&(r=ne(e),Z(e,a,o,!0),e=null),-2===t.patchFlag&&(c=!1,t.dynamicChildren=null);const{type:l,ref:u,shapeFlag:f}=t;switch(l){case kt:C(e,t,n,r);break;case Ct:O(e,t,n,r);break;case Et:null==e&&j(t,n,r,i);break;case xt:H(e,t,n,r,a,o,i,s,c);break;default:1&f?A(e,t,n,r,a,o,i,s,c):6&f?D(e,t,n,r,a,o,i,s,c):(64&f||128&f)&&l.process(e,t,n,r,a,o,i,s,c,oe)}null!=u&&a&&pt(u,e&&e.ref,o,t||e,!t)},C=(e,t,r,a)=>{if(null==e)n(t.el=p(t.children),r,a);else{const n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},O=(e,t,r,a)=>{null==e?n(t.el=h(t.children||""),r,a):t.el=e.el},j=(e,t,n,r)=>{[e.el,e.anchor]=x(e.children,t,n,r,e.el,e.anchor)},L=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),i(e),e=n;i(t)},A=(e,t,n,r,a,o,i,s,c)=>{i=i||"svg"===t.type,null==e?I(t,n,r,a,o,i,s,c):z(e,t,a,o,i,s,c)},I=(e,t,r,o,i,s,u,f)=>{let p,h;const{type:d,props:v,shapeFlag:g,transition:b,dirs:y}=e;if(p=e.el=l(e.type,s,v&&v.is,v),8&g?m(p,e.children):16&g&&P(e.children,p,null,o,i,s&&"foreignObject"!==d,u,f),y&&Ne(e,null,o,"created"),v){for(const t in v)"value"===t||(0,a.Gg)(t)||c(p,t,null,v[t],s,e.children,o,i,ee);"value"in v&&c(p,"value",null,v.value),(h=v.onVnodeBeforeMount)&&Xt(h,o,e)}T(p,e,e.scopeId,u,o),y&&Ne(e,null,o,"beforeMount");const _=(!i||i&&!i.pendingBranch)&&b&&!b.persisted;_&&b.beforeEnter(p),n(p,t,r),((h=v&&v.onVnodeMounted)||_||y)&&ht((()=>{h&&Xt(h,o,e),_&&b.enter(p),y&&Ne(e,null,o,"mounted")}),i)},T=(e,t,n,r,a)=>{if(n&&y(e,n),r)for(let t=0;t<r.length;t++)y(e,r[t]);if(a&&t===a.subTree){const t=a.vnode;T(e,t,t.scopeId,t.slotScopeIds,a.parent)}},P=(e,t,n,r,a,o,i,s,c=0)=>{for(let l=c;l<e.length;l++){const c=e[l]=s?Yt(e[l]):Wt(e[l]);k(null,c,t,n,r,a,o,i,s)}},z=(e,t,n,r,o,i,s)=>{const l=t.el=e.el;let{patchFlag:u,dynamicChildren:f,dirs:p}=t;u|=16&e.patchFlag;const h=e.props||a.kT,d=t.props||a.kT;let v;n&&mt(n,!1),(v=d.onVnodeBeforeUpdate)&&Xt(v,n,t,e),p&&Ne(t,e,n,"beforeUpdate"),n&&mt(n,!0);const g=o&&"foreignObject"!==t.type;if(f?F(e.dynamicChildren,f,l,n,r,g,i):s||Y(e,t,l,null,n,r,g,i,!1),u>0){if(16&u)$(l,t,h,d,n,r,o);else if(2&u&&h.class!==d.class&&c(l,"class",null,d.class,o),4&u&&c(l,"style",h.style,d.style,o),8&u){const a=t.dynamicProps;for(let t=0;t<a.length;t++){const i=a[t],s=h[i],u=d[i];u===s&&"value"!==i||c(l,i,s,u,o,e.children,n,r,ee)}}1&u&&e.children!==t.children&&m(l,t.children)}else s||null!=f||$(l,t,h,d,n,r,o);((v=d.onVnodeUpdated)||p)&&ht((()=>{v&&Xt(v,n,t,e),p&&Ne(t,e,n,"updated")}),r)},F=(e,t,n,r,a,o,i)=>{for(let s=0;s<t.length;s++){const c=e[s],l=t[s],u=c.el&&(c.type===xt||!Rt(c,l)||70&c.shapeFlag)?v(c.el):n;k(c,l,u,null,r,a,o,i,!0)}},$=(e,t,n,r,o,i,s)=>{if(n!==r){if(n!==a.kT)for(const l in n)(0,a.Gg)(l)||l in r||c(e,l,n[l],null,s,t.children,o,i,ee);for(const l in r){if((0,a.Gg)(l))continue;const u=r[l],f=n[l];u!==f&&"value"!==l&&c(e,l,f,u,s,t.children,o,i,ee)}"value"in r&&c(e,"value",n.value,r.value)}},H=(e,t,r,a,o,i,s,c,l)=>{const u=t.el=e?e.el:p(""),f=t.anchor=e?e.anchor:p("");let{patchFlag:h,dynamicChildren:d,slotScopeIds:m}=t;m&&(c=c?c.concat(m):m),null==e?(n(u,r,a),n(f,r,a),P(t.children,r,f,o,i,s,c,l)):h>0&&64&h&&d&&e.dynamicChildren?(F(e.dynamicChildren,d,r,o,i,s,c),(null!=t.key||o&&t===o.subTree)&&vt(e,t,!0)):Y(e,t,r,f,o,i,s,c,l)},D=(e,t,n,r,a,o,i,s,c)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?a.ctx.activate(t,n,r,i,c):V(t,n,r,a,o,i,c):U(e,t,c)},V=(e,t,n,i,c,l,u)=>{const f=e.component=function(e,t,n){const o=e.type,i=(t?t.appContext:e.appContext)||Zt,s={uid:Jt++,vnode:e,type:o,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,scope:new r.Bj(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Qe(o,i),emitsOptions:N(o,i),emit:null,emitted:null,propsDefaults:a.kT,inheritAttrs:o.inheritAttrs,ctx:a.kT,data:a.kT,props:a.kT,attrs:a.kT,slots:a.kT,refs:a.kT,setupState:a.kT,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=E.bind(null,s),e.ce&&e.ce(s),s}(e,i,c);if(ae(e)&&(f.ctx.renderer=oe),function(e,t=!1){rn=t;const{props:n,children:i}=e.vnode,c=nn(e);!function(e,t,n,o=!1){const i={},s={};(0,a.Nj)(s,Pt,1),e.propsDefaults=Object.create(null),Je(e,t,i,s);for(const t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=o?i:(0,r.Um)(i):e.type.props?e.props=i:e.props=s,e.attrs=s}(e,n,c,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=(0,r.IU)(t),(0,a.Nj)(t,"_",n)):st(t,e.slots={})}else e.slots={},t&&ct(e,t);(0,a.Nj)(e.slots,Pt,1)})(e,i);const l=c?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=(0,r.Xl)(new Proxy(e.ctx,He));const{setup:i}=n;if(i){const n=e.setupContext=i.length>1?function(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=function(e){return new Proxy(e.attrs,{get:(t,n)=>((0,r.j)(e,"get","$attrs"),t[n])})}(e))},slots:e.slots,emit:e.emit,expose:t}}(e):null;en(e),(0,r.Jd)();const c=o(i,e,0,[e.props,n]);if((0,r.lk)(),tn(),(0,a.tI)(c)){if(c.then(tn,tn),t)return c.then((n=>{an(e,n,t)})).catch((t=>{s(t,e,0)}));e.asyncDep=c}else an(e,c,t)}else on(e,t)}(e,t):void 0;rn=!1}(f),f.asyncDep){if(c&&c.registerDep(f,B),!e.el){const e=f.subTree=Ht(Ct);O(null,e,t,n)}}else B(f,e,t,n,c,l,u)},U=(e,t,n)=>{const r=t.component=e.component;if(function(e,t,n){const{props:r,children:a,component:o}=e,{props:i,children:s,patchFlag:c}=t,l=o.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&c>=0))return!(!a&&!s||s&&s.$stable)||r!==i&&(r?!i||R(r,i,l):!!i);if(1024&c)return!0;if(16&c)return r?R(r,i,l):!!i;if(8&c){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(i[n]!==r[n]&&!S(l,n))return!0}}return!1}(e,t,n)){if(r.asyncDep&&!r.asyncResolved)return void W(r,t,n);r.next=t,function(e){const t=u.indexOf(e);t>f&&u.splice(t,1)}(r.update),r.update()}else t.el=e.el,r.vnode=t},B=(e,t,n,o,i,s,c)=>{const l=e.effect=new r.qq((()=>{if(e.isMounted){let t,{next:n,bu:r,u:o,parent:l,vnode:u}=e,f=n;mt(e,!1),n?(n.el=u.el,W(e,n,c)):n=u,r&&(0,a.ir)(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&Xt(t,l,n,u),mt(e,!0);const p=M(e),h=e.subTree;e.subTree=p,k(h,p,v(h.el),ne(h),e,i,s),n.el=p.el,null===f&&function({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}(e,p.el),o&&ht(o,i),(t=n.props&&n.props.onVnodeUpdated)&&ht((()=>Xt(t,l,n,u)),i)}else{let r;const{el:c,props:l}=t,{bm:u,m:f,parent:p}=e,h=te(t);if(mt(e,!1),u&&(0,a.ir)(u),!h&&(r=l&&l.onVnodeBeforeMount)&&Xt(r,p,t),mt(e,!0),c&&se){const n=()=>{e.subTree=M(e),se(c,e.subTree,e,i,null)};h?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{const r=e.subTree=M(e);k(null,r,n,o,e,i,s),t.el=r.el}if(f&&ht(f,i),!h&&(r=l&&l.onVnodeMounted)){const e=t;ht((()=>Xt(r,p,e)),i)}(256&t.shapeFlag||p&&te(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&ht(e.a,i),e.isMounted=!0,t=n=o=null}}),(()=>b(u)),e.scope),u=e.update=()=>l.run();u.id=e.uid,mt(e,!0),u()},W=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:i,attrs:s,vnode:{patchFlag:c}}=e,l=(0,r.IU)(i),[u]=e.propsOptions;let f=!1;if(!(o||c>0)||16&c){let r;Je(e,t,i,s)&&(f=!0);for(const o in l)t&&((0,a.RI)(t,o)||(r=(0,a.rs)(o))!==o&&(0,a.RI)(t,r))||(u?!n||void 0===n[o]&&void 0===n[r]||(i[o]=Ke(u,l,o,void 0,e,!0)):delete i[o]);if(s!==l)for(const e in s)t&&(0,a.RI)(t,e)||(delete s[e],f=!0)}else if(8&c){const n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(S(e.emitsOptions,o))continue;const c=t[o];if(u)if((0,a.RI)(s,o))c!==s[o]&&(s[o]=c,f=!0);else{const t=(0,a._A)(o);i[t]=Ke(u,l,t,c,e,!1)}else c!==s[o]&&(s[o]=c,f=!0)}}f&&(0,r.X$)(e,"set","$attrs")}(e,t.props,o,n),((e,t,n)=>{const{vnode:r,slots:o}=e;let i=!0,s=a.kT;if(32&r.shapeFlag){const e=t._;e?n&&1===e?i=!1:((0,a.l7)(o,t),n||1!==e||delete o._):(i=!t.$stable,st(t,o)),s=t}else t&&(ct(e,t),s={default:1});if(i)for(const e in o)at(e)||e in s||delete o[e]})(e,t.children,n),(0,r.Jd)(),_(),(0,r.lk)()},Y=(e,t,n,r,a,o,i,s,c=!1)=>{const l=e&&e.children,u=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p)return void G(l,f,n,r,a,o,i,s,c);if(256&p)return void q(l,f,n,r,a,o,i,s,c)}8&h?(16&u&&ee(l,a,o),f!==l&&m(n,f)):16&u?16&h?G(l,f,n,r,a,o,i,s,c):ee(l,a,o,!0):(8&u&&m(n,""),16&h&&P(f,n,r,a,o,i,s,c))},q=(e,t,n,r,o,i,s,c,l)=>{e=e||a.Z6,t=t||a.Z6;const u=e.length,f=t.length,p=Math.min(u,f);let h;for(h=0;h<p;h++){const r=t[h]=l?Yt(t[h]):Wt(t[h]);k(e[h],r,n,null,o,i,s,c,l)}u>f?ee(e,o,i,!0,!1,p):P(t,n,r,o,i,s,c,l,p)},G=(e,t,n,r,o,i,s,c,l)=>{let u=0;const f=t.length;let p=e.length-1,h=f-1;for(;u<=p&&u<=h;){const r=e[u],a=t[u]=l?Yt(t[u]):Wt(t[u]);if(!Rt(r,a))break;k(r,a,n,null,o,i,s,c,l),u++}for(;u<=p&&u<=h;){const r=e[p],a=t[h]=l?Yt(t[h]):Wt(t[h]);if(!Rt(r,a))break;k(r,a,n,null,o,i,s,c,l),p--,h--}if(u>p){if(u<=h){const e=h+1,a=e<f?t[e].el:r;for(;u<=h;)k(null,t[u]=l?Yt(t[u]):Wt(t[u]),n,a,o,i,s,c,l),u++}}else if(u>h)for(;u<=p;)Z(e[u],o,i,!0),u++;else{const d=u,m=u,v=new Map;for(u=m;u<=h;u++){const e=t[u]=l?Yt(t[u]):Wt(t[u]);null!=e.key&&v.set(e.key,u)}let g,b=0;const y=h-m+1;let _=!1,w=0;const x=new Array(y);for(u=0;u<y;u++)x[u]=0;for(u=d;u<=p;u++){const r=e[u];if(b>=y){Z(r,o,i,!0);continue}let a;if(null!=r.key)a=v.get(r.key);else for(g=m;g<=h;g++)if(0===x[g-m]&&Rt(r,t[g])){a=g;break}void 0===a?Z(r,o,i,!0):(x[a-m]=u+1,a>=w?w=a:_=!0,k(r,t[a],n,null,o,i,s,c,l),b++)}const C=_?function(e){const t=e.slice(),n=[0];let r,a,o,i,s;const c=e.length;for(r=0;r<c;r++){const c=e[r];if(0!==c){if(a=n[n.length-1],e[a]<c){t[r]=a,n.push(r);continue}for(o=0,i=n.length-1;o<i;)s=o+i>>1,e[n[s]]<c?o=s+1:i=s;c<e[n[o]]&&(o>0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}(x):a.Z6;for(g=C.length-1,u=y-1;u>=0;u--){const e=m+u,a=t[e],p=e+1<f?t[e+1].el:r;0===x[u]?k(null,a,n,p,o,i,s,c,l):_&&(g<0||u!==C[g]?X(a,n,p,2):g--)}}},X=(e,t,r,a,o=null)=>{const{el:i,type:s,transition:c,children:l,shapeFlag:u}=e;if(6&u)X(e.component.subTree,t,r,a);else if(128&u)e.suspense.move(t,r,a);else if(64&u)s.move(e,t,r,oe);else if(s!==xt)if(s!==Et)if(2!==a&&1&u&&c)if(0===a)c.beforeEnter(i),n(i,t,r),ht((()=>c.enter(i)),o);else{const{leave:e,delayLeave:a,afterLeave:o}=c,s=()=>n(i,t,r),l=()=>{e(i,(()=>{s(),o&&o()}))};a?a(i,s,l):l()}else n(i,t,r);else(({el:e,anchor:t},r,a)=>{let o;for(;e&&e!==t;)o=g(e),n(e,r,a),e=o;n(t,r,a)})(e,t,r);else{n(i,t,r);for(let e=0;e<l.length;e++)X(l[e],t,r,a);n(e.anchor,t,r)}},Z=(e,t,n,r=!1,a=!1)=>{const{type:o,props:i,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:f,dirs:p}=e;if(null!=s&&pt(s,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const h=1&u&&p,d=!te(e);let m;if(d&&(m=i&&i.onVnodeBeforeUnmount)&&Xt(m,t,e),6&u)Q(e.component,n,r);else{if(128&u)return void e.suspense.unmount(n,r);h&&Ne(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,a,oe,r):l&&(o!==xt||f>0&&64&f)?ee(l,t,n,!1,!0):(o===xt&&384&f||!a&&16&u)&&ee(c,t,n),r&&J(e)}(d&&(m=i&&i.onVnodeUnmounted)||h)&&ht((()=>{m&&Xt(m,t,e),h&&Ne(e,null,t,"unmounted")}),n)},J=e=>{const{type:t,el:n,anchor:r,transition:a}=e;if(t===xt)return void K(n,r);if(t===Et)return void L(e);const o=()=>{i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(1&e.shapeFlag&&a&&!a.persisted){const{leave:t,delayLeave:r}=a,i=()=>t(n,o);r?r(e.el,o,i):i()}else o()},K=(e,t)=>{let n;for(;e!==t;)n=g(e),i(e),e=n;i(t)},Q=(e,t,n)=>{const{bum:r,scope:o,update:i,subTree:s,um:c}=e;r&&(0,a.ir)(r),o.stop(),i&&(i.active=!1,Z(s,e,t,n)),c&&ht(c,t),ht((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},ee=(e,t,n,r=!1,a=!1,o=0)=>{for(let i=o;i<e.length;i++)Z(e[i],t,n,r,a)},ne=e=>6&e.shapeFlag?ne(e.component.subTree):128&e.shapeFlag?e.suspense.next():g(e.anchor||e.el),re=(e,t,n)=>{null==e?t._vnode&&Z(t._vnode,null,null,!0):k(t._vnode||null,e,t,null,null,null,n),_(),w(),t._vnode=e},oe={p:k,um:Z,m:X,r:J,mt:V,mc:P,pc:Y,pbc:F,n:ne,o:e};let ie,se;return t&&([ie,se]=t(oe)),{render:re,hydrate:ie,createApp:ft(re,ie)}}(e)}function mt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function vt(e,t,n=!1){const r=e.children,o=t.children;if((0,a.kJ)(r)&&(0,a.kJ)(o))for(let e=0;e<r.length;e++){const t=r[e];let a=o[e];1&a.shapeFlag&&!a.dynamicChildren&&((a.patchFlag<=0||32===a.patchFlag)&&(a=o[e]=Yt(o[e]),a.el=t.el),n||vt(t,a))}}const gt=e=>e&&(e.disabled||""===e.disabled),bt=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,yt=(e,t)=>{const n=e&&e.to;if((0,a.HD)(n)){if(t){return t(n)}return null}return n};function _t(e,t,n,{o:{insert:r},m:a},o=2){0===o&&r(e.targetAnchor,t,n);const{el:i,anchor:s,shapeFlag:c,children:l,props:u}=e,f=2===o;if(f&&r(i,t,n),(!f||gt(u))&&16&c)for(let e=0;e<l.length;e++)a(l[e],t,n,2);f&&r(s,t,n)}const wt={__isTeleport:!0,process(e,t,n,r,a,o,i,s,c,l){const{mc:u,pc:f,pbc:p,o:{insert:h,querySelector:d,createText:m,createComment:v}}=l,g=gt(t.props);let{shapeFlag:b,children:y,dynamicChildren:_}=t;if(null==e){const e=t.el=m(""),l=t.anchor=m("");h(e,n,r),h(l,n,r);const f=t.target=yt(t.props,d),p=t.targetAnchor=m("");f&&(h(p,f),i=i||bt(f));const v=(e,t)=>{16&b&&u(y,e,t,a,o,i,s,c)};g?v(n,l):f&&v(f,p)}else{t.el=e.el;const r=t.anchor=e.anchor,u=t.target=e.target,h=t.targetAnchor=e.targetAnchor,m=gt(e.props),v=m?n:u,b=m?r:h;if(i=i||bt(u),_?(p(e.dynamicChildren,_,v,a,o,i,s),vt(e,t,!0)):c||f(e,t,v,b,a,o,i,s,!1),g)m||_t(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=yt(t.props,d);e&&_t(t,e,null,l,0)}else m&&_t(t,u,h,l,1)}},remove(e,t,n,r,{um:a,o:{remove:o}},i){const{shapeFlag:s,children:c,anchor:l,targetAnchor:u,target:f,props:p}=e;if(f&&o(u),(i||!gt(p))&&(o(l),16&s))for(let e=0;e<c.length;e++){const r=c[e];a(r,t,n,!0,!!r.dynamicChildren)}},move:_t,hydrate:function(e,t,n,r,a,o,{o:{nextSibling:i,parentNode:s,querySelector:c}},l){const u=t.target=yt(t.props,c);if(u){const c=u._lpa||u.firstChild;if(16&t.shapeFlag)if(gt(t.props))t.anchor=l(i(e),t,s(e),n,r,a,o),t.targetAnchor=c;else{t.anchor=i(e);let s=c;for(;s;)if(s=i(s),s&&8===s.nodeType&&"teleport anchor"===s.data){t.targetAnchor=s,u._lpa=t.targetAnchor&&i(t.targetAnchor);break}l(c,t,u,n,r,a,o)}}return t.anchor&&i(t.anchor)}},xt=Symbol(void 0),kt=Symbol(void 0),Ct=Symbol(void 0),Et=Symbol(void 0),Nt=[];let St=null;function Ot(e=!1){Nt.push(St=e?null:[])}let jt=1;function Lt(e){jt+=e}function At(e){return e.dynamicChildren=jt>0?St||a.Z6:null,Nt.pop(),St=Nt[Nt.length-1]||null,jt>0&&St&&St.push(e),e}function Mt(e,t,n,r,a,o){return At($t(e,t,n,r,a,o,!0))}function It(e,t,n,r,a){return At(Ht(e,t,n,r,a,!0))}function Tt(e){return!!e&&!0===e.__v_isVNode}function Rt(e,t){return e.type===t.type&&e.key===t.key}const Pt="__vInternal",zt=({key:e})=>null!=e?e:null,Ft=({ref:e,ref_key:t,ref_for:n})=>null!=e?(0,a.HD)(e)||(0,r.dq)(e)||(0,a.mf)(e)?{i:O,r:e,k:t,f:!!n}:e:null;function $t(e,t=null,n=null,r=0,o=null,i=(e===xt?0:1),s=!1,c=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&zt(t),ref:t&&Ft(t),scopeId:j,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null};return c?(qt(l,n),128&i&&e.normalize(l)):n&&(l.shapeFlag|=(0,a.HD)(n)?8:16),jt>0&&!s&&St&&(l.patchFlag>0||6&i)&&32!==l.patchFlag&&St.push(l),l}const Ht=function(e,t=null,n=null,o=0,i=null,s=!1){if(e&&e!==je||(e=Ct),Tt(e)){const r=Vt(e,t,!0);return n&&qt(r,n),jt>0&&!s&&St&&(6&r.shapeFlag?St[St.indexOf(e)]=r:St.push(r)),r.patchFlag|=-2,r}if(c=e,(0,a.mf)(c)&&"__vccOpts"in c&&(e=e.__vccOpts),t){t=Dt(t);let{class:e,style:n}=t;e&&!(0,a.HD)(e)&&(t.class=(0,a.C_)(e)),(0,a.Kn)(n)&&((0,r.X3)(n)&&!(0,a.kJ)(n)&&(n=(0,a.l7)({},n)),t.style=(0,a.j5)(n))}var c;return $t(e,t,n,o,i,(0,a.HD)(e)?1:P(e)?128:(e=>e.__isTeleport)(e)?64:(0,a.Kn)(e)?4:(0,a.mf)(e)?2:0,s,!0)};function Dt(e){return e?(0,r.X3)(e)||Pt in e?(0,a.l7)({},e):e:null}function Vt(e,t,n=!1){const{props:r,ref:o,patchFlag:i,children:s}=e,c=t?Gt(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&zt(c),ref:t&&t.ref?n&&o?(0,a.kJ)(o)?o.concat(Ft(t)):[o,Ft(t)]:Ft(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==xt?-1===i?16:16|i:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Vt(e.ssContent),ssFallback:e.ssFallback&&Vt(e.ssFallback),el:e.el,anchor:e.anchor}}function Ut(e=" ",t=0){return Ht(kt,null,e,t)}function Bt(e="",t=!1){return t?(Ot(),It(Ct,null,e)):Ht(Ct,null,e)}function Wt(e){return null==e||"boolean"==typeof e?Ht(Ct):(0,a.kJ)(e)?Ht(xt,null,e.slice()):"object"==typeof e?Yt(e):Ht(kt,null,String(e))}function Yt(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Vt(e)}function qt(e,t){let n=0;const{shapeFlag:r}=e;if(null==t)t=null;else if((0,a.kJ)(t))n=16;else if("object"==typeof t){if(65&r){const n=t.default;return void(n&&(n._c&&(n._d=!1),qt(e,n()),n._c&&(n._d=!0)))}{n=32;const r=t._;r||Pt in t?3===r&&O&&(1===O.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=O}}else(0,a.mf)(t)?(t={default:t,_ctx:O},n=32):(t=String(t),64&r?(n=16,t=[Ut(t)]):n=8);e.children=t,e.shapeFlag|=n}function Gt(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const e in r)if("class"===e)t.class!==r.class&&(t.class=(0,a.C_)([t.class,r.class]));else if("style"===e)t.style=(0,a.j5)([t.style,r.style]);else if((0,a.F7)(e)){const n=t[e],o=r[e];!o||n===o||(0,a.kJ)(n)&&n.includes(o)||(t[e]=n?[].concat(n,o):o)}else""!==e&&(t[e]=r[e])}return t}function Xt(e,t,n,r=null){i(e,t,7,[n,r])}const Zt=lt();let Jt=0;let Kt=null;const Qt=()=>Kt||O,en=e=>{Kt=e,e.scope.on()},tn=()=>{Kt&&Kt.scope.off(),Kt=null};function nn(e){return 4&e.vnode.shapeFlag}let rn=!1;function an(e,t,n){(0,a.mf)(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:(0,a.Kn)(t)&&(e.setupState=(0,r.WL)(t)),on(e,n)}function on(e,t,n){const o=e.type;e.render||(e.render=o.render||a.dG),en(e),(0,r.Jd)(),function(e){const t=Be(e),n=e.proxy,o=e.ctx;De=!1,t.beforeCreate&&Ve(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:c,watch:l,provide:u,inject:f,created:p,beforeMount:h,mounted:d,beforeUpdate:m,updated:v,activated:g,deactivated:b,beforeDestroy:y,beforeUnmount:_,destroyed:w,unmounted:x,render:k,renderTracked:C,renderTriggered:E,errorCaptured:N,serverPrefetch:S,expose:O,inheritAttrs:j,components:L,directives:A,filters:M}=t;if(f&&function(e,t,n=a.dG,o=!1){(0,a.kJ)(e)&&(e=Ge(e));for(const n in e){const i=e[n];let s;s=(0,a.Kn)(i)?"default"in i?F(i.from||n,i.default,!0):F(i.from||n):F(i),(0,r.dq)(s)&&o?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e}):t[n]=s}}(f,o,null,e.appContext.config.unwrapInjectedRef),c)for(const e in c){const t=c[e];(0,a.mf)(t)&&(o[e]=t.bind(n))}if(i){const t=i.call(n,n);(0,a.Kn)(t)&&(e.data=(0,r.qj)(t))}if(De=!0,s)for(const e in s){const t=s[e],r=(0,a.mf)(t)?t.bind(n,n):(0,a.mf)(t.get)?t.get.bind(n,n):a.dG,i=!(0,a.mf)(t)&&(0,a.mf)(t.set)?t.set.bind(n):a.dG,c=ln({get:r,set:i});Object.defineProperty(o,e,{enumerable:!0,configurable:!0,get:()=>c.value,set:e=>c.value=e})}if(l)for(const e in l)Ue(l[e],o,n,e);if(u){const e=(0,a.mf)(u)?u.call(n):u;Reflect.ownKeys(e).forEach((t=>{z(t,e[t])}))}function I(e,t){(0,a.kJ)(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(p&&Ve(p,e,"c"),I(me,h),I(ve,d),I(ge,m),I(be,v),I(se,g),I(ce,b),I(Ce,N),I(ke,C),I(xe,E),I(ye,_),I(_e,x),I(we,S),(0,a.kJ)(O))if(O.length){const t=e.exposed||(e.exposed={});O.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});k&&e.render===a.dG&&(e.render=k),null!=j&&(e.inheritAttrs=j),L&&(e.components=L),A&&(e.directives=A)}(e),(0,r.lk)(),tn()}function sn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy((0,r.WL)((0,r.Xl)(e.exposed)),{get:(t,n)=>n in t?t[n]:n in $e?$e[n](e):void 0}))}function cn(e,t=!0){return(0,a.mf)(e)?e.displayName||e.name:e.name||t&&e.__name}const ln=(e,t)=>(0,r.Fl)(e,t,rn);function un(e,t,n){const r=arguments.length;return 2===r?(0,a.Kn)(t)&&!(0,a.kJ)(t)?Tt(t)?Ht(e,null,[t]):Ht(e,t):Ht(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&Tt(n)&&(n=[n]),Ht(e,t,n))}Symbol("");const fn="3.2.41"},49963:(e,t,n)=>{"use strict";n.d(t,{D2:()=>X,F8:()=>Z,YZ:()=>U,e8:()=>P,iM:()=>q,nr:()=>R,ri:()=>ee,uT:()=>_});var r=n(3577),a=n(66252);n(2262);const o="undefined"!=typeof document?document:null,i=o&&o.createElement("template"),s={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const a=t?o.createElementNS("http://www.w3.org/2000/svg",e):o.createElement(e,n?{is:n}:void 0);return"select"===e&&r&&null!=r.multiple&&a.setAttribute("multiple",r.multiple),a},createText:e=>o.createTextNode(e),createComment:e=>o.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>o.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,a,o){const s=n?n.previousSibling:t.lastChild;if(a&&(a===o||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),n),a!==o&&(a=a.nextSibling););else{i.innerHTML=r?`<svg>${e}</svg>`:e;const a=i.content;if(r){const e=a.firstChild;for(;e.firstChild;)a.appendChild(e.firstChild);a.removeChild(e)}t.insertBefore(a,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},c=/\s*!important$/;function l(e,t,n){if((0,r.kJ)(n))n.forEach((n=>l(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=function(e,t){const n=f[t];if(n)return n;let a=(0,r._A)(t);if("filter"!==a&&a in e)return f[t]=a;a=(0,r.kC)(a);for(let n=0;n<u.length;n++){const r=u[n]+a;if(r in e)return f[t]=r}return t}(e,t);c.test(n)?e.setProperty((0,r.rs)(a),n.replace(c,""),"important"):e[a]=n}}const u=["Webkit","Moz","ms"],f={},p="http://www.w3.org/1999/xlink";function h(e,t,n,r){e.addEventListener(t,n,r)}const d=/(?:Once|Passive|Capture)$/;let m=0;const v=Promise.resolve(),g=/^on[a-z]/;"undefined"!=typeof HTMLElement&&HTMLElement;const b="transition",y="animation",_=(e,{slots:t})=>(0,a.h)(a.P$,function(e){const t={};for(const n in e)n in w||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:a,duration:o,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:l=i,appearActiveClass:u=s,appearToClass:f=c,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,m=function(e){if(null==e)return null;if((0,r.Kn)(e))return[C(e.enter),C(e.leave)];{const t=C(e);return[t,t]}}(o),v=m&&m[0],g=m&&m[1],{onBeforeEnter:b,onEnter:y,onEnterCancelled:_,onLeave:O,onLeaveCancelled:L,onBeforeAppear:A=b,onAppear:M=y,onAppearCancelled:I=_}=t,T=(e,t,n)=>{N(e,t?f:c),N(e,t?u:s),n&&n()},R=(e,t)=>{e._isLeaving=!1,N(e,p),N(e,d),N(e,h),t&&t()},P=e=>(t,n)=>{const r=e?M:y,o=()=>T(t,e,n);x(r,[t,o]),S((()=>{N(t,e?l:i),E(t,e?f:c),k(r)||j(t,a,v,o)}))};return(0,r.l7)(t,{onBeforeEnter(e){x(b,[e]),E(e,i),E(e,s)},onBeforeAppear(e){x(A,[e]),E(e,l),E(e,u)},onEnter:P(!1),onAppear:P(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>R(e,t);E(e,p),document.body.offsetHeight,E(e,h),S((()=>{e._isLeaving&&(N(e,p),E(e,d),k(O)||j(e,a,g,n))})),x(O,[e,n])},onEnterCancelled(e){T(e,!1),x(_,[e])},onAppearCancelled(e){T(e,!0),x(I,[e])},onLeaveCancelled(e){R(e),x(L,[e])}})}(e),t);_.displayName="Transition";const w={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},x=(_.props=(0,r.l7)({},a.P$.props,w),(e,t=[])=>{(0,r.kJ)(e)?e.forEach((e=>e(...t))):e&&e(...t)}),k=e=>!!e&&((0,r.kJ)(e)?e.some((e=>e.length>1)):e.length>1);function C(e){return(0,r.He)(e)}function E(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function N(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function S(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let O=0;function j(e,t,n,r){const a=e._endId=++O,o=()=>{a===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:s,propCount:c}=function(e,t){const n=window.getComputedStyle(e),r=e=>(n[e]||"").split(", "),a=r("transitionDelay"),o=r("transitionDuration"),i=L(a,o),s=r("animationDelay"),c=r("animationDuration"),l=L(s,c);let u=null,f=0,p=0;return t===b?i>0&&(u=b,f=i,p=o.length):t===y?l>0&&(u=y,f=l,p=c.length):(f=Math.max(i,l),u=f>0?i>l?b:y:null,p=u?u===b?o.length:c.length:0),{type:u,timeout:f,propCount:p,hasTransform:u===b&&/\b(transform|all)(,|$)/.test(n.transitionProperty)}}(e,t);if(!i)return r();const l=i+"end";let u=0;const f=()=>{e.removeEventListener(l,p),o()},p=t=>{t.target===e&&++u>=c&&f()};setTimeout((()=>{u<c&&f()}),s+1),e.addEventListener(l,p)}function L(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map(((t,n)=>A(t)+A(e[n]))))}function A(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}new WeakMap,new WeakMap;const M=e=>{const t=e.props["onUpdate:modelValue"]||!1;return(0,r.kJ)(t)?e=>(0,r.ir)(t,e):t};function I(e){e.target.composing=!0}function T(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const R={created(e,{modifiers:{lazy:t,trim:n,number:a}},o){e._assign=M(o);const i=a||o.props&&"number"===o.props.type;h(e,t?"change":"input",(t=>{if(t.target.composing)return;let a=e.value;n&&(a=a.trim()),i&&(a=(0,r.He)(a)),e._assign(a)})),n&&h(e,"change",(()=>{e.value=e.value.trim()})),t||(h(e,"compositionstart",I),h(e,"compositionend",T),h(e,"change",T))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:a,number:o}},i){if(e._assign=M(i),e.composing)return;if(document.activeElement===e&&"range"!==e.type){if(n)return;if(a&&e.value.trim()===t)return;if((o||"number"===e.type)&&(0,r.He)(e.value)===t)return}const s=null==t?"":t;e.value!==s&&(e.value=s)}},P={deep:!0,created(e,t,n){e._assign=M(n),h(e,"change",(()=>{const t=e._modelValue,n=D(e),a=e.checked,o=e._assign;if((0,r.kJ)(t)){const e=(0,r.hq)(t,n),i=-1!==e;if(a&&!i)o(t.concat(n));else if(!a&&i){const n=[...t];n.splice(e,1),o(n)}}else if((0,r.DM)(t)){const e=new Set(t);a?e.add(n):e.delete(n),o(e)}else o(V(e,a))}))},mounted:z,beforeUpdate(e,t,n){e._assign=M(n),z(e,t,n)}};function z(e,{value:t,oldValue:n},a){e._modelValue=t,(0,r.kJ)(t)?e.checked=(0,r.hq)(t,a.props.value)>-1:(0,r.DM)(t)?e.checked=t.has(a.props.value):t!==n&&(e.checked=(0,r.WV)(t,V(e,!0)))}const F={created(e,{value:t},n){e.checked=(0,r.WV)(t,n.props.value),e._assign=M(n),h(e,"change",(()=>{e._assign(D(e))}))},beforeUpdate(e,{value:t,oldValue:n},a){e._assign=M(a),t!==n&&(e.checked=(0,r.WV)(t,a.props.value))}},$={deep:!0,created(e,{value:t,modifiers:{number:n}},a){const o=(0,r.DM)(t);h(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?(0,r.He)(D(e)):D(e)));e._assign(e.multiple?o?new Set(t):t:t[0])})),e._assign=M(a)},mounted(e,{value:t}){H(e,t)},beforeUpdate(e,t,n){e._assign=M(n)},updated(e,{value:t}){H(e,t)}};function H(e,t){const n=e.multiple;if(!n||(0,r.kJ)(t)||(0,r.DM)(t)){for(let a=0,o=e.options.length;a<o;a++){const o=e.options[a],i=D(o);if(n)(0,r.kJ)(t)?o.selected=(0,r.hq)(t,i)>-1:o.selected=t.has(i);else if((0,r.WV)(D(o),t))return void(e.selectedIndex!==a&&(e.selectedIndex=a))}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function D(e){return"_value"in e?e._value:e.value}function V(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const U={created(e,t,n){B(e,t,n,null,"created")},mounted(e,t,n){B(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){B(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){B(e,t,n,r,"updated")}};function B(e,t,n,r,a){const o=function(e,t){switch(e){case"SELECT":return $;case"TEXTAREA":return R;default:switch(t){case"checkbox":return P;case"radio":return F;default:return R}}}(e.tagName,n.props&&n.props.type)[a];o&&o(e,t,n,r)}const W=["ctrl","shift","alt","meta"],Y={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>W.some((n=>e[`${n}Key`]&&!t.includes(n)))},q=(e,t)=>(n,...r)=>{for(let e=0;e<t.length;e++){const r=Y[t[e]];if(r&&r(n,t))return}return e(n,...r)},G={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},X=(e,t)=>n=>{if(!("key"in n))return;const a=(0,r.rs)(n.key);return t.some((e=>e===a||G[e]===a))?e(n):void 0},Z={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):J(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),J(e,!0),r.enter(e)):r.leave(e,(()=>{J(e,!1)})):J(e,t))},beforeUnmount(e,{value:t}){J(e,t)}};function J(e,t){e.style.display=t?e._vod:"none"}const K=(0,r.l7)({patchProp:(e,t,n,o,i=!1,s,c,u,f)=>{"class"===t?function(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,i):"style"===t?function(e,t,n){const a=e.style,o=(0,r.HD)(n);if(n&&!o){for(const e in n)l(a,e,n[e]);if(t&&!(0,r.HD)(t))for(const e in t)null==n[e]&&l(a,e,"")}else{const r=a.display;o?t!==n&&(a.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(a.display=r)}}(e,n,o):(0,r.F7)(t)?(0,r.tR)(t)||function(e,t,n,o,i=null){const s=e._vei||(e._vei={}),c=s[t];if(o&&c)c.value=o;else{const[n,l]=function(e){let t;if(d.test(e)){let n;for(t={};n=e.match(d);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):(0,r.rs)(e.slice(2)),t]}(t);if(o){const c=s[t]=function(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();(0,a.$d)(function(e,t){if((0,r.kJ)(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=m||(v.then((()=>m=0)),m=Date.now()),n}(o,i);h(e,n,c,l)}else c&&(function(e,t,n,r){e.removeEventListener(t,n,r)}(e,n,c,l),s[t]=void 0)}}(e,t,0,o,c):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,a){return a?"innerHTML"===t||"textContent"===t||!!(t in e&&g.test(t)&&(0,r.mf)(n)):"spellcheck"!==t&&"draggable"!==t&&"translate"!==t&&("form"!==t&&(("list"!==t||"INPUT"!==e.tagName)&&(("type"!==t||"TEXTAREA"!==e.tagName)&&((!g.test(t)||!(0,r.HD)(n))&&t in e))))}(e,t,o,i))?function(e,t,n,a,o,i,s){if("innerHTML"===t||"textContent"===t)return a&&s(a,o,i),void(e[t]=null==n?"":n);if("value"===t&&"PROGRESS"!==e.tagName&&!e.tagName.includes("-")){e._value=n;const r=null==n?"":n;return e.value===r&&"OPTION"!==e.tagName||(e.value=r),void(null==n&&e.removeAttribute(t))}let c=!1;if(""===n||null==n){const a=typeof e[t];"boolean"===a?n=(0,r.yA)(n):null==n&&"string"===a?(n="",c=!0):"number"===a&&(n=0,c=!0)}try{e[t]=n}catch(e){}c&&e.removeAttribute(t)}(e,t,o,s,c,u,f):("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),function(e,t,n,a,o){if(a&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(p,t.slice(6,t.length)):e.setAttributeNS(p,t,n);else{const a=(0,r.Pq)(t);null==n||a&&!(0,r.yA)(n)?e.removeAttribute(t):e.setAttribute(t,a?"":n)}}(e,t,o,i))}},s);let Q;const ee=(...e)=>{const t=(Q||(Q=(0,a.Us)(K))).createApp(...e),{mount:n}=t;return t.mount=e=>{const a=function(e){if((0,r.HD)(e))return document.querySelector(e);return e}(e);if(!a)return;const o=t._component;(0,r.mf)(o)||o.render||o.template||(o.template=a.innerHTML),a.innerHTML="";const i=n(a,!1,a instanceof SVGElement);return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),i},t}},3577:(e,t,n)=>{"use strict";function r(e,t){const n=Object.create(null),r=e.split(",");for(let e=0;e<r.length;e++)n[r[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}n.d(t,{C_:()=>f,DM:()=>L,E9:()=>te,F7:()=>x,Gg:()=>V,HD:()=>I,He:()=>Q,Kn:()=>R,NO:()=>_,Nj:()=>K,Od:()=>E,PO:()=>H,Pq:()=>o,RI:()=>S,S0:()=>D,W7:()=>$,WV:()=>h,Z6:()=>b,_A:()=>W,_N:()=>j,aU:()=>Z,dG:()=>y,e1:()=>a,fY:()=>r,hR:()=>X,hq:()=>d,ir:()=>J,j5:()=>s,kC:()=>G,kJ:()=>O,kT:()=>g,l7:()=>C,mf:()=>M,rs:()=>q,tI:()=>P,tR:()=>k,vs:()=>p,yA:()=>i,yk:()=>T,zw:()=>m});const a=r("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"),o=r("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function i(e){return!!e||""===e}function s(e){if(O(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],a=I(r)?u(r):s(r);if(a)for(const e in a)t[e]=a[e]}return t}return I(e)||R(e)?e:void 0}const c=/;(?![^(]*\))/g,l=/:(.+)/;function u(e){const t={};return e.split(c).forEach((e=>{if(e){const n=e.split(l);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function f(e){let t="";if(I(e))t=e;else if(O(e))for(let n=0;n<e.length;n++){const r=f(e[n]);r&&(t+=r+" ")}else if(R(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function p(e){if(!e)return null;let{class:t,style:n}=e;return t&&!I(t)&&(e.class=f(t)),n&&(e.style=s(n)),e}function h(e,t){if(e===t)return!0;let n=A(e),r=A(t);if(n||r)return!(!n||!r)&&e.getTime()===t.getTime();if(n=T(e),r=T(t),n||r)return e===t;if(n=O(e),r=O(t),n||r)return!(!n||!r)&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=h(e[r],t[r]);return n}(e,t);if(n=R(e),r=R(t),n||r){if(!n||!r)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e){const r=e.hasOwnProperty(n),a=t.hasOwnProperty(n);if(r&&!a||!r&&a||!h(e[n],t[n]))return!1}}return String(e)===String(t)}function d(e,t){return e.findIndex((e=>h(e,t)))}const m=e=>I(e)?e:null==e?"":O(e)||R(e)&&(e.toString===z||!M(e.toString))?JSON.stringify(e,v,2):String(e),v=(e,t)=>t&&t.__v_isRef?v(e,t.value):j(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:L(t)?{[`Set(${t.size})`]:[...t.values()]}:!R(t)||O(t)||H(t)?t:String(t),g={},b=[],y=()=>{},_=()=>!1,w=/^on[^a-z]/,x=e=>w.test(e),k=e=>e.startsWith("onUpdate:"),C=Object.assign,E=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,S=(e,t)=>N.call(e,t),O=Array.isArray,j=e=>"[object Map]"===F(e),L=e=>"[object Set]"===F(e),A=e=>"[object Date]"===F(e),M=e=>"function"==typeof e,I=e=>"string"==typeof e,T=e=>"symbol"==typeof e,R=e=>null!==e&&"object"==typeof e,P=e=>R(e)&&M(e.then)&&M(e.catch),z=Object.prototype.toString,F=e=>z.call(e),$=e=>F(e).slice(8,-1),H=e=>"[object Object]"===F(e),D=e=>I(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,V=r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),U=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-(\w)/g,W=U((e=>e.replace(B,((e,t)=>t?t.toUpperCase():"")))),Y=/\B([A-Z])/g,q=U((e=>e.replace(Y,"-$1").toLowerCase())),G=U((e=>e.charAt(0).toUpperCase()+e.slice(1))),X=U((e=>e?`on${G(e)}`:"")),Z=(e,t)=>!Object.is(e,t),J=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},K=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Q=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ee;const te=()=>ee||(ee="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{})},54028:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>k});var r=n(2262),a=n(66252);function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(((n,a)=>(t.includes(a)||(n[a]=(0,r.SU)(e[a])),n)),{})}function i(e){return"function"==typeof e}function s(e){return(0,r.PG)(e)||(0,r.$y)(e)}function c(e,t,n){let r=e;const a=t.split(".");for(let e=0;e<a.length;e++){if(!r[a[e]])return n;r=r[a[e]]}return r}function l(e,t,n){return(0,a.Fl)((()=>e.some((e=>c(t,e,{[n]:!1})[n]))))}function u(e,t,n){return(0,a.Fl)((()=>e.reduce(((e,r)=>{const a=c(t,r,{[n]:!1})[n]||[];return e.concat(a)}),[])))}function f(e,t,n,a){return e.call(a,(0,r.SU)(t),(0,r.SU)(n),a)}function p(e){return void 0!==e.$valid?!e.$valid:!e}function h(){}function d(e,t,n){if(n)return t?t(e()):e();try{var r=Promise.resolve(e());return t?r.then(t):r}catch(e){return Promise.reject(e)}}function m(e){const t=(n=function(){return D(),e=function(){return d(a.Y3,(function(){return new Promise((e=>{if(!H.value)return e(!z.value);const t=(0,a.YP)(H,(()=>{e(!z.value),t()}))}))}))},(t=function(){if(O.$rewardEarly)return B(),d(a.Y3,h,undefined)}())&&t.then?t.then(e):e();var e,t},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];try{return Promise.resolve(n.apply(this,e))}catch(e){return Promise.reject(e)}});var n;let{validations:s,state:c,key:v,parentKey:g,childResults:b,resultsCache:y,globalConfig:_={},instance:w,externalResults:x}=e;const k=g?`${g}.${v}`:v,{rules:C,nestedValidators:E,config:N,validationGroups:S}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,r.SU)(e),n=Object.keys(t),a={},o={},s={};let c=null;return n.forEach((e=>{const n=t[e];switch(!0){case i(n.$validator):a[e]=n;break;case i(n):a[e]={$validator:n};break;case"$validationGroups"===e:c=n;break;case e.startsWith("$"):s[e]=n;break;default:o[e]=n}})),{rules:a,nestedValidators:o,config:s,validationGroups:c}}(s),O=Object.assign({},_,N),j=v?(0,a.Fl)((()=>{const e=(0,r.SU)(c);return e?(0,r.SU)(e[v]):void 0})):c,L=Object.assign({},(0,r.SU)(x)||{}),A=(0,a.Fl)((()=>{const e=(0,r.SU)(x);return v?e?(0,r.SU)(e[v]):void 0:e})),M=function(e,t,n,s,c,l,u,h,d){const m=Object.keys(e),v=s.get(c,e),g=(0,r.iH)(!1),b=(0,r.iH)(!1),y=(0,r.iH)(0);if(v){if(!v.$partial)return v;v.$unwatch(),g.value=v.$dirty.value}const _={$dirty:g,$path:c,$touch:()=>{g.value||(g.value=!0)},$reset:()=>{g.value&&(g.value=!1)},$commit:()=>{}};return m.length?(m.forEach((s=>{_[s]=function(e,t,n,s,c,l,u,h,d,m,v){const g=(0,r.iH)(!1),b=e.$params||{},y=(0,r.iH)(null);let _,w;e.$async?({$invalid:_,$unwatch:w}=function(e,t,n,o,i,s,c){let{$lazy:l,$rewardEarly:u}=i,h=arguments.length>7&&void 0!==arguments[7]?arguments[7]:[],d=arguments.length>8?arguments[8]:void 0,m=arguments.length>9?arguments[9]:void 0,v=arguments.length>10?arguments[10]:void 0;const g=(0,r.iH)(!!o.value),b=(0,r.iH)(0);n.value=!1;const y=(0,a.YP)([t,o].concat(h,v),(()=>{if(l&&!o.value||u&&!m.value&&!n.value)return;let r;try{r=f(e,t,d,c)}catch(e){r=Promise.reject(e)}b.value++,n.value=!!b.value,g.value=!1,Promise.resolve(r).then((e=>{b.value--,n.value=!!b.value,s.value=e,g.value=p(e)})).catch((e=>{b.value--,n.value=!!b.value,s.value=e,g.value=!0}))}),{immediate:!0,deep:"object"==typeof t});return{$invalid:g,$unwatch:y}}(e.$validator,t,g,n,s,y,c,e.$watchTargets,d,m,v)):({$invalid:_,$unwatch:w}=function(e,t,n,r,o,i,s,c){let{$lazy:l,$rewardEarly:u}=r;return{$unwatch:()=>({}),$invalid:(0,a.Fl)((()=>{if(l&&!n.value||u&&!c.value)return!1;let r=!0;try{const n=f(e,t,s,i);o.value=n,r=p(n)}catch(e){o.value=e}return r}))}}(e.$validator,t,n,s,y,c,d,m));const x=e.$message;return{$message:i(x)?(0,a.Fl)((()=>x(o({$pending:g,$invalid:_,$params:o(b),$model:t,$response:y,$validator:l,$propertyPath:h,$property:u})))):x||"",$params:b,$pending:g,$invalid:_,$response:y,$unwatch:w}}(e[s],t,_.$dirty,l,u,s,n,c,d,b,y)})),_.$externalResults=(0,a.Fl)((()=>h.value?[].concat(h.value).map(((e,t)=>({$propertyPath:c,$property:n,$validator:"$externalResults",$uid:`${c}-externalResult-${t}`,$message:e,$params:{},$response:null,$pending:!1}))):[])),_.$invalid=(0,a.Fl)((()=>{const e=m.some((e=>(0,r.SU)(_[e].$invalid)));return b.value=e,!!_.$externalResults.value.length||e})),_.$pending=(0,a.Fl)((()=>m.some((e=>(0,r.SU)(_[e].$pending))))),_.$error=(0,a.Fl)((()=>!!_.$dirty.value&&(_.$pending.value||_.$invalid.value))),_.$silentErrors=(0,a.Fl)((()=>m.filter((e=>(0,r.SU)(_[e].$invalid))).map((e=>{const t=_[e];return(0,r.qj)({$propertyPath:c,$property:n,$validator:e,$uid:`${c}-${e}`,$message:t.$message,$params:t.$params,$response:t.$response,$pending:t.$pending})})).concat(_.$externalResults.value))),_.$errors=(0,a.Fl)((()=>_.$dirty.value?_.$silentErrors.value:[])),_.$unwatch=()=>m.forEach((e=>{_[e].$unwatch()})),_.$commit=()=>{b.value=!0,y.value=Date.now()},s.set(c,e,_),_):(v&&s.set(c,e,_),_)}(C,j,v,y,k,O,w,A,c),I=function(e,t,n,r,a,o,i){const s=Object.keys(e);return s.length?s.reduce(((s,c)=>(s[c]=m({validations:e[c],state:t,key:c,parentKey:n,resultsCache:r,globalConfig:a,instance:o,externalResults:i}),s)),{}):{}}(E,j,k,y,O,w,A),T={};S&&Object.entries(S).forEach((e=>{let[t,n]=e;T[t]={$invalid:l(n,I,"$invalid"),$error:l(n,I,"$error"),$pending:l(n,I,"$pending"),$errors:u(n,I,"$errors"),$silentErrors:u(n,I,"$silentErrors")}}));const{$dirty:R,$errors:P,$invalid:z,$anyDirty:F,$error:$,$pending:H,$touch:D,$reset:V,$silentErrors:U,$commit:B}=function(e,t,n){const o=(0,a.Fl)((()=>[t,n].filter((e=>e)).reduce(((e,t)=>e.concat(Object.values((0,r.SU)(t)))),[]))),i=(0,a.Fl)({get:()=>e.$dirty.value||!!o.value.length&&o.value.every((e=>e.$dirty)),set(t){e.$dirty.value=t}}),s=(0,a.Fl)((()=>{const t=(0,r.SU)(e.$silentErrors)||[],n=o.value.filter((e=>((0,r.SU)(e).$silentErrors||[]).length)).reduce(((e,t)=>e.concat(...t.$silentErrors)),[]);return t.concat(n)})),c=(0,a.Fl)((()=>{const t=(0,r.SU)(e.$errors)||[],n=o.value.filter((e=>((0,r.SU)(e).$errors||[]).length)).reduce(((e,t)=>e.concat(...t.$errors)),[]);return t.concat(n)})),l=(0,a.Fl)((()=>o.value.some((e=>e.$invalid))||(0,r.SU)(e.$invalid)||!1)),u=(0,a.Fl)((()=>o.value.some((e=>(0,r.SU)(e.$pending)))||(0,r.SU)(e.$pending)||!1)),f=(0,a.Fl)((()=>o.value.some((e=>e.$dirty))||o.value.some((e=>e.$anyDirty))||i.value)),p=(0,a.Fl)((()=>!!i.value&&(u.value||l.value))),h=()=>{e.$touch(),o.value.forEach((e=>{e.$touch()}))};return o.value.length&&o.value.every((e=>e.$dirty))&&h(),{$dirty:i,$errors:c,$invalid:l,$anyDirty:f,$error:p,$pending:u,$touch:h,$reset:()=>{e.$reset(),o.value.forEach((e=>{e.$reset()}))},$silentErrors:s,$commit:()=>{e.$commit(),o.value.forEach((e=>{e.$commit()}))}}}(M,I,b),W=v?(0,a.Fl)({get:()=>(0,r.SU)(j),set:e=>{R.value=!0;const t=(0,r.SU)(c),n=(0,r.SU)(x);n&&(n[v]=L[v]),(0,r.dq)(t[v])?t[v].value=e:t[v]=e}}):null;return v&&O.$autoDirty&&(0,a.YP)(j,(()=>{R.value||D();const e=(0,r.SU)(x);e&&(e[v]=L[v])}),{flush:"sync"}),(0,r.qj)(Object.assign({},M,{$model:W,$dirty:R,$error:$,$errors:P,$invalid:z,$anyDirty:F,$pending:H,$touch:D,$reset:V,$path:k||"__root",$silentErrors:U,$validate:t,$commit:B},b&&{$getResultsForChild:function(e){return(b.value||{})[e]},$clearExternalResults:function(){(0,r.dq)(x)?x.value=L:0===Object.keys(L).length?Object.keys(x).forEach((e=>{delete x[e]})):Object.assign(x,L)},$validationGroups:T},I))}class v{constructor(){this.storage=new Map}set(e,t,n){this.storage.set(e,{rules:t,result:n})}checkRulesValidity(e,t,n){const a=Object.keys(n),o=Object.keys(t);return o.length===a.length&&(!!o.every((e=>a.includes(e)))&&o.every((e=>!t[e].$params||Object.keys(t[e].$params).every((a=>(0,r.SU)(n[e].$params[a])===(0,r.SU)(t[e].$params[a]))))))}get(e,t){const n=this.storage.get(e);if(!n)return;const{rules:r,result:a}=n,o=this.checkRulesValidity(e,t,r),i=a.$unwatch?a.$unwatch:()=>({});return o?a:{$dirty:a.$dirty,$partial:!0,$unwatch:i}}}const g={COLLECT_ALL:!0,COLLECT_NONE:!1},b=Symbol("vuelidate#injectChildResults"),y=Symbol("vuelidate#removeChildResults");function _(e){let{$scope:t,instance:n}=e;const o={},i=(0,r.iH)([]),s=(0,a.Fl)((()=>i.value.reduce(((e,t)=>(e[t]=(0,r.SU)(o[t]),e)),{})));n.__vuelidateInjectInstances=[].concat(n.__vuelidateInjectInstances||[],(function(e,n){let{$registerAs:r,$scope:a,$stopPropagation:s}=n;s||t===g.COLLECT_NONE||a===g.COLLECT_NONE||t!==g.COLLECT_ALL&&t!==a||(o[r]=e,i.value.push(r))})),n.__vuelidateRemoveInstances=[].concat(n.__vuelidateRemoveInstances||[],(function(e){i.value=i.value.filter((t=>t!==e)),delete o[e]}));const c=(0,a.f3)(b,[]);(0,a.JJ)(b,n.__vuelidateInjectInstances);const l=(0,a.f3)(y,[]);return(0,a.JJ)(y,n.__vuelidateRemoveInstances),{childResults:s,sendValidationResultsToParent:c,removeValidationResultsFromParent:l}}function w(e){return new Proxy(e,{get:(e,t)=>"object"==typeof e[t]?w(e[t]):(0,a.Fl)((()=>e[t]))})}let x=0;function k(e,t){var n;let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};1===arguments.length&&(o=e,e=void 0,t=void 0);let{$registerAs:c,$scope:l=g.COLLECT_ALL,$stopPropagation:u,$externalResults:f,currentVueInstance:p}=o;const h=p||(null===(n=(0,a.FN)())||void 0===n?void 0:n.proxy),d=h?h.$options:{};c||(x+=1,c=`_vuelidate_${x}`);const b=(0,r.iH)({}),y=new v,{childResults:k,sendValidationResultsToParent:C,removeValidationResultsFromParent:E}=h?_({$scope:l,instance:h}):{childResults:(0,r.iH)({})};if(!e&&d.validations){const e=d.validations;t=(0,r.iH)({}),(0,a.wF)((()=>{t.value=h,(0,a.YP)((()=>i(e)?e.call(t.value,new w(t.value)):e),(e=>{b.value=m({validations:e,state:t,childResults:k,resultsCache:y,globalConfig:o,instance:h,externalResults:f||h.vuelidateExternalResults})}),{immediate:!0})})),o=d.validationsConfig||o}else{const n=(0,r.dq)(e)||s(e)?e:(0,r.qj)(e||{});(0,a.YP)(n,(e=>{b.value=m({validations:e,state:t,childResults:k,resultsCache:y,globalConfig:o,instance:null!=h?h:{},externalResults:f})}),{immediate:!0})}return h&&(C.forEach((e=>e(b,{$registerAs:c,$scope:l,$stopPropagation:u}))),(0,a.Jd)((()=>E.forEach((e=>e(c)))))),(0,a.Fl)((()=>Object.assign({},(0,r.SU)(b.value),k.value)))}},35332:(e,t,n)=>{"use strict";n.d(t,{C1:()=>i,CF:()=>c,sH:()=>u});var r=n(2262);const a=e=>{if(e=(0,r.SU)(e),Array.isArray(e))return!!e.length;if(null==e)return!1;if(!1===e)return!0;if(e instanceof Date)return!isNaN(e.getTime());if("object"==typeof e){for(let t in e)return!0;return!1}return!!String(e).length};function o(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>(e=(0,r.SU)(e),!a(e)||t.every((t=>t.test(e))))}r.SU,o(/^[a-zA-Z]*$/),o(/^[a-zA-Z0-9]*$/),o(/^\d*(\.\d+)?$/),o(/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i);var i={$validator:function(e){return"string"==typeof e&&(e=e.trim()),a(e)},$message:"Value is required",$params:{type:"required"}};const s=(e,t)=>!e||a("string"==typeof t?t.trim():t);function c(e){return{$validator:(t=e,function(e,n){if("function"!=typeof t)return s((0,r.SU)(t),e);const a=t.call(this,e,n);return s(a,e)}),$message:"The value is required",$params:{type:"requiredIf",prop:e}};var t}function l(e){return t=>(0,r.SU)(t)===(0,r.SU)(e)}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"other";return{$validator:l(e),$message:e=>`The value must be equal to the ${t} value`,$params:{equalTo:e,otherName:t,type:"sameAs"}}}o(/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i),o(/(^[0-9]*$)|(^-[0-9]+$)/),o(/^[-]?\d*(\.\d+)?$/)},58509:(e,t,n)=>{"use strict";n.d(t,{Qp:()=>h,tG:()=>d});var r=!1;if("undefined"!=typeof window){var a={get passive(){r=!0}};window.addEventListener("testPassive",null,a),window.removeEventListener("testPassive",null,a)}var o="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||"MacIntel"===window.navigator.platform&&window.navigator.maxTouchPoints>1),i=[],s=!1,c=-1,l=void 0,u=void 0,f=function(e){return i.some((function(t){return!(!t.options.allowTouchMove||!t.options.allowTouchMove(e))}))},p=function(e){var t=e||window.event;return!!f(t.target)||t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)},h=function(e,t){if(e){if(!i.some((function(t){return t.targetElement===e}))){var n={targetElement:e,options:t||{}};i=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(i),[n]),o?(e.ontouchstart=function(e){1===e.targetTouches.length&&(c=e.targetTouches[0].clientY)},e.ontouchmove=function(t){1===t.targetTouches.length&&function(e,t){var n=e.targetTouches[0].clientY-c;!f(e.target)&&(t&&0===t.scrollTop&&n>0||function(e){return!!e&&e.scrollHeight-e.scrollTop<=e.clientHeight}(t)&&n<0?p(e):e.stopPropagation())}(t,e)},s||(document.addEventListener("touchmove",p,r?{passive:!1}:void 0),s=!0)):function(e){if(void 0===u){var t=!!e&&!0===e.reserveScrollBarGap,n=window.innerWidth-document.documentElement.clientWidth;t&&n>0&&(u=document.body.style.paddingRight,document.body.style.paddingRight=n+"px")}void 0===l&&(l=document.body.style.overflow,document.body.style.overflow="hidden")}(t)}}else console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.")},d=function(e){e?(i=i.filter((function(t){return t.targetElement!==e})),o?(e.ontouchstart=null,e.ontouchmove=null,s&&0===i.length&&(document.removeEventListener("touchmove",p,r?{passive:!1}:void 0),s=!1)):i.length||(void 0!==u&&(document.body.style.paddingRight=u,u=void 0),void 0!==l&&(document.body.style.overflow=l,l=void 0))):console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.")}},97332:(e,t)=>{"use strict";function n(e){return l[e]}function r(e){return u[e]}function a(e){return e*(Math.PI/180)}function o(e,t){return e<t[0]?e=t[0]:e>t[1]&&(e=t[1]),e}function i(e){if(Math.cbrt)return Math.cbrt(e);var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}function s(e,t,n){if(void 0===t)throw new Error("No value provided");var r=n||function(e){var t=d.find((function(t){return h[t](e)}));if(!t)throw new Error("No type found for color "+e);return t}(t);if(r===e)return t;if(W[r][e])return q(r,e,t);var a=Y[r],o="string"==typeof a?a:a[e]||a.default;return s(e,q(r,o,t),o)}function c(e){var t={};return G.forEach((function(n){Object.defineProperty(t,n,{get:function(){return X(n,e)},enumerable:!0})})),t}var l={A:{X:1.0985*100,Y:100,Z:35.585},B:{X:99.072,Y:100,Z:85.223},C:{X:98.074,Y:100,Z:118.232},D50:{X:96.422,Y:100,Z:82.521},D55:{X:95.682,Y:100,Z:92.149},D65:{X:95.047,Y:100,Z:108.883},D75:{X:94.972,Y:100,Z:122.638},E:{X:100,Y:100,Z:100},F2:{X:.99186*100,Y:100,Z:67.393},F7:{X:95.041,Y:100,Z:108.747},F11:{X:1.00962*100,Y:100,Z:64.35}},u={BRADFORD:[[.8951,.2664,-.1614],[-.7502,1.7135,.0367],[.0389,-.0685,1.0296]],INVERSE_BRADFORD:[[.9869929,-.1470543,.1599627],[.4323053,.5183603,.0492912],[-.0085287,.0400428,.9684867]],SRGB_XYZ:[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],INVERSE_SRGB_XYZ:[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]]},f=function(e,t){var n=new Set(Object.keys(e));return t.every((function(e){return n.has(e)}))},p=function(e,t){return"string"==typeof e&&e.slice(0,t.length)===t},h={hex:function(e){return p(e,"#")},rgb:function(e){return f(e,["r","g","b"])},cssrgb:function(e){return p(e,"rgb(")},hsl:function(e){return f(e,["h","s","l"])},csshsl:function(e){return p(e,"hsl(")},hsv:function(e){return f(e,["h","s","v"])},cmyk:function(e){return f(e,["c","m","y","k"])},yiq:function(e){return f(e,["y","i","q"])},XYZ:function(e){return f(e,["X","Y","Z"])},xyY:function(e){return f(e,["x","y","Y"])},lms:function(e){return f(e,["rho","gamma","beta"])},cielab:function(e){return f(e,["L","a","b"])},cieluv:function(e){return f(e,["L","u","v"])},cielch:function(e){return f(e,["L","C","h"])},hsluv:function(e){return f(e,["hu","s","l"])}},d=Object.keys(h),m=.008856,v=903.3,g=n("D65"),b=function(e){return Math.pow(e,3)>m?Math.pow(e,3):(116*e-16)/v},y={XYZ:function(e){var t=(e.L+16)/116,n=e.a/500+t,r=t-e.b/200,a=b(n),o=b(r),i=e.L>v*m?Math.pow(t,3):e.L/v;return{X:a*g.X,Y:i*g.Y,Z:o*g.Z}}},_={cieluv:function(e){var t=a(e.h),n=e.C*Math.cos(t),r=e.C*Math.sin(t);return{L:e.L,u:n,v:r}},hsluv:function(e){if(e.L>99.9999999)return{hu:e.h,s:0,l:100};if(e.L<1e-8)return{hu:e.h,s:0,l:0};for(var t=(e.L+16)/1560896,n=t>.008856?t:e.L/903.3,o=r("INVERSE_SRGB_XYZ"),i=[],s=0;s<3;s++)for(var c=o[s][0],l=o[s][1],u=o[s][2],f=0;f<2;f++){var p=(284517*c-94839*u)*n,h=(838422*u+769860*l+731718*c)*e.L*n-769860*f*e.L,d=(632260*u-126452*l)*n+126452*f;i.push({m:p/d,b:h/d})}var m=Number.MAX_VALUE,v=a(e.h);i.forEach((function(e){var t=e.b/(Math.sin(v)-e.m*Math.cos(v));t>=0&&(m=Math.min(m,t))}));var g=m;return{hu:e.h,s:e.C/g*100,l:e.L}}},w={XYZ:function(e){var t=n("D65"),r=function(e){return 4*e.X/(e.X+15*e.Y+3*e.Z)}(t),a=function(e){return 9*e.Y/(e.X+15*e.Y+3*e.Z)}(t),o=1/3*(52*e.L/(e.u+13*e.L*r)-1),i=e.L>903.3*.008856?Math.pow((e.L+16)/116,3):e.L/903.3,s=-5*i,c=(i*(39*e.L/(e.v+13*e.L*a)-5)-s)/(o- -1/3);return{X:100*c,Y:100*i,Z:100*(c*o+s)}},cielch:function(e){var t=Math.sqrt(Math.pow(e.u,2)+Math.pow(e.v,2)),n=Math.atan2(e.v,e.u);return n<0&&(n+=2*Math.PI),n=function(e){return e*(180/Math.PI)}(n),{L:e.L,C:t,h:n}}},x=function(e){return{r:255*(1-e.c)*(1-e.k),g:255*(1-e.m)*(1-e.k),b:255*(1-e.y)*(1-e.k)}},k={rgb:x,cssrgb:function(e){var t=x(e),n=t.r,r=t.g,a=t.b;return"rgb("+Math.round(n)+","+Math.round(r)+","+Math.round(a)+")"}},C={hsl:function(e){var t=e.replace(/(hsl\(|\)|%|[\s]*)/g,"").split(",").map((function(e){return parseInt(e,10)}));return{h:t[0],s:t[1],l:t[2]}}},E={rgb:function(e){var t=e.replace(/((rgb\(|\))|[\s]*)/g,"").split(",").map((function(e){return parseInt(e,10)}));return{r:t[0],g:t[1],b:t[2]}}},N={rgb:function(e){var t=e.replace("#","").match(/.{2}/g).map((function(e){return parseInt(e,16)}));return{r:t[0],g:t[1],b:t[2]}}},S={rgb:function(e){if(0===e.s){var t=e.l/100*255;return{r:t,g:t,b:t}}var n,r,a;n=e.l>=50?e.l/100+e.s/100-e.l/100*(e.s/100):e.l/100*(1+e.s/100),r=e.l/100*2-n;var o,i,s,c=(.333+(a=e.h/360))%1,l=a,u=function(e,t){return(e%t+t)%t}(a-.333,1);return(o=6*c<1?r+6*(n-r)*c:2*c<1?n:3*c<2?r+6*(.666-c)*(n-r):r)<0&&(o=0),(i=6*l<1?r+6*(n-r)*l:2*l<1?n:3*l<2?r+6*(.666-l)*(n-r):r)<0&&(i=0),(s=6*u<1?r+6*(n-r)*u:2*u<1?n:3*u<2?r+6*(.666-u)*(n-r):r)<0&&(s=0),{r:255*o,g:255*i,b:255*s}},csshsl:function(e){return"hsl("+Math.round(e.h)+","+Math.round(e.s)+"%,"+Math.round(e.l)+"%)"},hsv:function(e){var t=Object.assign({},e,{s:e.s/100,l:e.l/100}),n=t.s*(t.l<.5?t.l:1-t.l);return{h:t.h,s:2*n/(t.l+n)*100,v:100*(t.l+n)}}},O={cielch:function(e){if(e.L>99.9999999)return{L:100,C:0,h:e.hu};if(e.L<1e-8)return{L:0,C:0,h:e.hu};for(var t=(e.l+16)/1560896,n=t>.008856?t:e.l/903.3,o=r("INVERSE_SRGB_XYZ"),i=[],s=0;s<3;s++)for(var c=o[s][0],l=o[s][1],u=o[s][2],f=0;f<2;f++){var p=(284517*c-94839*u)*n,h=(838422*u+769860*l+731718*c)*e.l*n-769860*f*e.l,d=(632260*u-126452*l)*n+126452*f;i.push({m:p/d,b:h/d})}var m=Number.MAX_VALUE,v=a(e.hu);i.forEach((function(e){var t=e.b/(Math.sin(v)-e.m*Math.cos(v));t>=0&&(m=Math.min(m,t))}));var g=m;return{L:e.l,C:g/100*e.s,h:e.hu}}},j={hsl:function(e){var t=Object.assign({},e,{h:e.h/360,s:e.s/100,v:e.v/100});return{h:360*t.h,s:100*((2-t.s)*t.v<1?t.s*t.v/((2-t.s)*t.v):t.s*t.v/(2-(2-t.s)*t.v)),l:(2-t.s)*t.v/2*100}}},L={XYZ:function(e){var t=[e.rho,e.gamma,e.beta],n=r("INVERSE_BRADFORD").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)}));return{X:100*n[0],Y:100*n[1],Z:100*n[2]}}},A=function(e){return o(e,[0,255])},M=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=.008856,T=n("D65"),R={rgb:function(e){var t=[e.X,e.Y,e.Z].map((function(e){return e/100})),n=r("INVERSE_SRGB_XYZ").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)})).map((function(e){return e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055})).map((function(e){return 255*e})),a=M(n,3);return function(e){return{r:A(e.r),g:A(e.g),b:A(e.b)}}({r:a[0],g:a[1],b:a[2]})},lms:function(e){var t=[e.X,e.Y,e.Z].map((function(e){return e/100})),n=r("BRADFORD").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)}));return{rho:n[0],gamma:n[1],beta:n[2]}},cielab:function(e){var t=e.X/T.X,n=e.Y/T.Y,r=e.Z/T.Z,a=function(e){return e>I?i(e):(903.3*e+16)/116},o=a(t),s=a(n);return{L:116*s-16,a:500*(o-s),b:200*(s-a(r))}},cieluv:function(e){var t=e.Y/T.Y,n=t>I?116*i(t)-16:903.3*t,r=function(e){return 4*e.X/(e.X+15*e.Y+3*e.Z)},a=function(e){return 9*e.Y/(e.X+15*e.Y+3*e.Z)};return{L:n,u:13*n*(r(e)-r(T)),v:13*n*(a(e)-a(T))}},xyY:function(e){return{x:e.X/(e.X+e.Y+e.Z),y:e.Y/(e.X+e.Y+e.Z),Y:e.Y}}},P=R.lms,z=R.cielab,F=R.cieluv,$=R.xyY,H=function(e){var t,n,r=e.r/255,a=e.g/255,o=e.b/255,i=[r,a,o].sort(),s=(i[0]+i[2])/2*100;return i[0]===i[2]?(t=0,n=0):(t=s>=50?(i[2]-i[0])/(2-i[2]-i[0])*100:(i[2]-i[0])/(i[2]+i[0])*100,(n=i[2]===r?(a-o)/(i[2]-i[0])*60:i[2]===a?60*(2+(o-r)/(i[2]-i[0])):60*(4+(r-a)/(i[2]-i[0])))<0?n+=360:n>360&&(n%=360)),{h:n,s:t,l:s}},D=function(e){var t=[e.r,e.g,e.b].map((function(e){return e/255})).map((function(e){return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)})),n=r("SRGB_XYZ").map((function(e){return t.reduce((function(t,n,r){return e[r]*n+t}),0)})).map((function(e){return 100*e})),a=M(n,3);return{X:a[0],Y:a[1],Z:a[2]}},V={hex:function(e){var t=Math.round(e.r).toString(16);1===t.length&&(t="0"+t);var n=Math.round(e.g).toString(16);1===n.length&&(n="0"+n);var r=Math.round(e.b).toString(16);return 1===r.length&&(r="0"+r),"#"+t+n+r},cssrgb:function(e){return"rgb("+Math.round(e.r)+","+Math.round(e.g)+","+Math.round(e.b)+")"},hsl:H,csshsl:function(e){var t=H(e),n=t.h,r=t.s,a=t.l;return"hsl("+Math.round(n)+","+Math.round(r)+"%,"+Math.round(a)+"%)"},cmyk:function(e){var t=e.r/255,n=e.g/255,r=e.b/255,a=1-Math.max(t,n,r);return 1!==a?{c:(1-t-a)/(1-a),m:(1-n-a)/(1-a),y:(1-r-a)/(1-a),k:a}:{c:0,m:0,y:0,k:a}},yiq:function(e){var t=e.r/255*.299+e.g/255*.587+e.b/255*.114,n=e.r/255*.596+e.g/255*-.274+e.b/255*-.322,r=e.r/255*.211+e.g/255*-.523+e.b/255*.312;return{y:t,i:n=o(n,[-.5957,.5957]),q:r=o(r,[-.5226,.5226])}},XYZ:D,lms:function(e){return P(D(e))},cielab:function(e){return z(D(e))},cieluv:function(e){return F(D(e))},xyY:function(e){return $(D(e))}},U=function(e){return o(e,[0,255])},B={rgb:function(e){var t=o(e.i,[-.5957,.5957]),n=o(e.q,[-.5226,.5226]);return{r:255*U(e.y+.956*t+.621*n),g:255*U(e.y+-.272*t+-.647*n),b:255*U(e.y+-1.106*t+-1.703*n)}}},W=Object.freeze({cielab:y,cielch:_,cieluv:w,cmyk:k,csshsl:C,cssrgb:E,hex:N,hsl:S,hsluv:O,hsv:j,lms:L,rgb:V,xyY:{XYZ:function(e){var t=e.x,n=e.y,r=e.Y;return{X:r/n*t,Y:r,Z:r/n*(1-t-n)}}},XYZ:R,yiq:B}),Y={rgb:{default:"XYZ",csshsl:"hsl",hsv:"hsl"},hex:"rgb",hsl:"rgb",hsv:"hsl",csshsl:"hsl",cssrgb:"rgb",cmyk:"rgb",XYZ:{default:"rgb",cielch:"cieluv",hsluv:"cieluv"},xyY:"XYZ",lms:"XYZ",cieluv:{default:"XYZ",hsluv:"cielch"},cielch:"cieluv",cielab:"XYZ",yiq:"rgb",hsluv:"cielch"},q=function(e,t,n){return W[e][t](n)},G=Object.keys(h),X=function(e,t){return Array.isArray(t)?t.map((function(t){return s(e,t)})):s(e,t)};t.Xu=function(e,t){var n=s("hsl",t);return n.l+=e,n.l<0?n.l=0:n.l>100&&(n.l=100),c(n)},t.wo=function(e){var t=s("rgb",e);return c(t=(299*t.r+587*t.g+114*t.b)/1e3>=128?{r:0,g:0,b:0}:{r:255,g:255,b:255})},t.OQ=c,t.Xp=function(e){var t=s("hsl",e);return t.l=100-t.l,c(t)}},20425:function(e){var t,n,r,a,o,i,s,c;e.exports=(t="__v-click-outside",n="undefined"!=typeof window,r="undefined"!=typeof navigator,a=n&&("ontouchstart"in window||r&&navigator.msMaxTouchPoints>0)?["touchstart"]:["click"],o=function(e){var t=e.event,n=e.handler;(0,e.middleware)(t)&&n(t)},i=function(e,n){var r=function(e){var t="function"==typeof e;if(!t&&"object"!=typeof e)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:t?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||a,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe),capture:Boolean(e.capture)}}(n.value),i=r.handler,s=r.middleware,c=r.detectIframe,l=r.capture;if(r.isActive){if(e[t]=r.events.map((function(t){return{event:t,srcTarget:document.documentElement,handler:function(t){return function(e){var t=e.el,n=e.event,r=e.handler,a=e.middleware,i=n.path||n.composedPath&&n.composedPath();(i?i.indexOf(t)<0:!t.contains(n.target))&&o({event:n,handler:r,middleware:a})}({el:e,event:t,handler:i,middleware:s})},capture:l}})),c){var u={event:"blur",srcTarget:window,handler:function(t){return function(e){var t=e.el,n=e.event,r=e.handler,a=e.middleware;setTimeout((function(){var e=document.activeElement;e&&"IFRAME"===e.tagName&&!t.contains(e)&&o({event:n,handler:r,middleware:a})}),0)}({el:e,event:t,handler:i,middleware:s})},capture:l};e[t]=[].concat(e[t],[u])}e[t].forEach((function(n){var r=n.event,a=n.srcTarget,o=n.handler;return setTimeout((function(){e[t]&&a.addEventListener(r,o,l)}),0)}))}},s=function(e){(e[t]||[]).forEach((function(e){return e.srcTarget.removeEventListener(e.event,e.handler,e.capture)})),delete e[t]},c=n?{beforeMount:i,updated:function(e,t){var n=t.value,r=t.oldValue;JSON.stringify(n)!==JSON.stringify(r)&&(s(e),i(e,{value:n}))},unmounted:s}:{},{install:function(e){e.directive("click-outside",c)},directive:c})},67810:()=>{!function(){if("undefined"!=typeof window)try{var e=new window.CustomEvent("test",{cancelable:!0});if(e.preventDefault(),!0!==e.defaultPrevented)throw new Error("Could not prevent default")}catch(e){var t=function(e,t){var n,r;return(t=t||{}).bubbles=!!t.bubbles,t.cancelable=!!t.cancelable,(n=document.createEvent("CustomEvent")).initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r=n.preventDefault,n.preventDefault=function(){r.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(e){this.defaultPrevented=!0}},n};t.prototype=window.Event.prototype,window.CustomEvent=t}}()},95573:e=>{"use strict";var t=/["'&<>]/;e.exports=function(e){var n,r=""+e,a=t.exec(r);if(!a)return r;var o="",i=0,s=0;for(i=a.index;i<r.length;i++){switch(r.charCodeAt(i)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 39:n="&#39;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}s!==i&&(o+=r.substring(s,i)),s=i+1,o+=n}return s!==i?o+r.substring(s,i):o}},2900:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r={aa:{name:"Afar",nativeName:"Afaraf"},ab:{name:"Abkhaz",nativeName:"аҧсуа бызшәа"},ae:{name:"Avestan",nativeName:"avesta"},af:{name:"Afrikaans",nativeName:"Afrikaans"},ak:{name:"Akan",nativeName:"Akan"},am:{name:"Amharic",nativeName:"አማርኛ"},an:{name:"Aragonese",nativeName:"aragonés"},ar:{name:"Arabic",nativeName:"اَلْعَرَبِيَّةُ"},as:{name:"Assamese",nativeName:"অসমীয়া"},av:{name:"Avaric",nativeName:"авар мацӀ"},ay:{name:"Aymara",nativeName:"aymar aru"},az:{name:"Azerbaijani",nativeName:"azərbaycan dili"},ba:{name:"Bashkir",nativeName:"башҡорт теле"},be:{name:"Belarusian",nativeName:"беларуская мова"},bg:{name:"Bulgarian",nativeName:"български език"},bi:{name:"Bislama",nativeName:"Bislama"},bm:{name:"Bambara",nativeName:"bamanankan"},bn:{name:"Bengali",nativeName:"বাংলা"},bo:{name:"Tibetan",nativeName:"བོད་ཡིག"},br:{name:"Breton",nativeName:"brezhoneg"},bs:{name:"Bosnian",nativeName:"bosanski jezik"},ca:{name:"Catalan",nativeName:"Català"},ce:{name:"Chechen",nativeName:"нохчийн мотт"},ch:{name:"Chamorro",nativeName:"Chamoru"},co:{name:"Corsican",nativeName:"corsu"},cr:{name:"Cree",nativeName:"ᓀᐦᐃᔭᐍᐏᐣ"},cs:{name:"Czech",nativeName:"čeština"},cu:{name:"Old Church Slavonic",nativeName:"ѩзыкъ словѣньскъ"},cv:{name:"Chuvash",nativeName:"чӑваш чӗлхи"},cy:{name:"Welsh",nativeName:"Cymraeg"},da:{name:"Danish",nativeName:"dansk"},de:{name:"German",nativeName:"Deutsch"},dv:{name:"Divehi",nativeName:"ދިވެހި"},dz:{name:"Dzongkha",nativeName:"རྫོང་ཁ"},ee:{name:"Ewe",nativeName:"Eʋegbe"},el:{name:"Greek",nativeName:"Ελληνικά"},en:{name:"English",nativeName:"English"},eo:{name:"Esperanto",nativeName:"Esperanto"},es:{name:"Spanish",nativeName:"Español"},et:{name:"Estonian",nativeName:"eesti"},eu:{name:"Basque",nativeName:"euskara"},fa:{name:"Persian",nativeName:"فارسی"},ff:{name:"Fula",nativeName:"Fulfulde"},fi:{name:"Finnish",nativeName:"suomi"},fj:{name:"Fijian",nativeName:"vosa Vakaviti"},fo:{name:"Faroese",nativeName:"føroyskt"},fr:{name:"French",nativeName:"Français"},fy:{name:"Western Frisian",nativeName:"Frysk"},ga:{name:"Irish",nativeName:"Gaeilge"},gd:{name:"Scottish Gaelic",nativeName:"Gàidhlig"},gl:{name:"Galician",nativeName:"galego"},gn:{name:"Guaraní",nativeName:"Avañe'ẽ"},gu:{name:"Gujarati",nativeName:"ગુજરાતી"},gv:{name:"Manx",nativeName:"Gaelg"},ha:{name:"Hausa",nativeName:"هَوُسَ"},he:{name:"Hebrew",nativeName:"עברית"},hi:{name:"Hindi",nativeName:"हिन्दी"},ho:{name:"Hiri Motu",nativeName:"Hiri Motu"},hr:{name:"Croatian",nativeName:"Hrvatski"},ht:{name:"Haitian",nativeName:"Kreyòl ayisyen"},hu:{name:"Hungarian",nativeName:"magyar"},hy:{name:"Armenian",nativeName:"Հայերեն"},hz:{name:"Herero",nativeName:"Otjiherero"},ia:{name:"Interlingua",nativeName:"Interlingua"},id:{name:"Indonesian",nativeName:"Bahasa Indonesia"},ie:{name:"Interlingue",nativeName:"Interlingue"},ig:{name:"Igbo",nativeName:"Asụsụ Igbo"},ii:{name:"Nuosu",nativeName:"ꆈꌠ꒿ Nuosuhxop"},ik:{name:"Inupiaq",nativeName:"Iñupiaq"},io:{name:"Ido",nativeName:"Ido"},is:{name:"Icelandic",nativeName:"Íslenska"},it:{name:"Italian",nativeName:"Italiano"},iu:{name:"Inuktitut",nativeName:"ᐃᓄᒃᑎᑐᑦ"},ja:{name:"Japanese",nativeName:"日本語"},jv:{name:"Javanese",nativeName:"basa Jawa"},ka:{name:"Georgian",nativeName:"ქართული"},kg:{name:"Kongo",nativeName:"Kikongo"},ki:{name:"Kikuyu",nativeName:"Gĩkũyũ"},kj:{name:"Kwanyama",nativeName:"Kuanyama"},kk:{name:"Kazakh",nativeName:"қазақ тілі"},kl:{name:"Kalaallisut",nativeName:"kalaallisut"},km:{name:"Khmer",nativeName:"ខេមរភាសា"},kn:{name:"Kannada",nativeName:"ಕನ್ನಡ"},ko:{name:"Korean",nativeName:"한국어"},kr:{name:"Kanuri",nativeName:"Kanuri"},ks:{name:"Kashmiri",nativeName:"कश्मीरी"},ku:{name:"Kurdish",nativeName:"Kurdî"},kv:{name:"Komi",nativeName:"коми кыв"},kw:{name:"Cornish",nativeName:"Kernewek"},ky:{name:"Kyrgyz",nativeName:"Кыргызча"},la:{name:"Latin",nativeName:"latine"},lb:{name:"Luxembourgish",nativeName:"Lëtzebuergesch"},lg:{name:"Ganda",nativeName:"Luganda"},li:{name:"Limburgish",nativeName:"Limburgs"},ln:{name:"Lingala",nativeName:"Lingála"},lo:{name:"Lao",nativeName:"ພາສາລາວ"},lt:{name:"Lithuanian",nativeName:"lietuvių kalba"},lu:{name:"Luba-Katanga",nativeName:"Kiluba"},lv:{name:"Latvian",nativeName:"latviešu valoda"},mg:{name:"Malagasy",nativeName:"fiteny malagasy"},mh:{name:"Marshallese",nativeName:"Kajin M̧ajeļ"},mi:{name:"Māori",nativeName:"te reo Māori"},mk:{name:"Macedonian",nativeName:"македонски јазик"},ml:{name:"Malayalam",nativeName:"മലയാളം"},mn:{name:"Mongolian",nativeName:"Монгол хэл"},mr:{name:"Marathi",nativeName:"मराठी"},ms:{name:"Malay",nativeName:"Bahasa Melayu"},mt:{name:"Maltese",nativeName:"Malti"},my:{name:"Burmese",nativeName:"ဗမာစာ"},na:{name:"Nauru",nativeName:"Dorerin Naoero"},nb:{name:"Norwegian Bokmål",nativeName:"Norsk bokmål"},nd:{name:"Northern Ndebele",nativeName:"isiNdebele"},ne:{name:"Nepali",nativeName:"नेपाली"},ng:{name:"Ndonga",nativeName:"Owambo"},nl:{name:"Dutch",nativeName:"Nederlands"},nn:{name:"Norwegian Nynorsk",nativeName:"Norsk nynorsk"},no:{name:"Norwegian",nativeName:"Norsk"},nr:{name:"Southern Ndebele",nativeName:"isiNdebele"},nv:{name:"Navajo",nativeName:"Diné bizaad"},ny:{name:"Chichewa",nativeName:"chiCheŵa"},oc:{name:"Occitan",nativeName:"occitan"},oj:{name:"Ojibwe",nativeName:"ᐊᓂᔑᓈᐯᒧᐎᓐ"},om:{name:"Oromo",nativeName:"Afaan Oromoo"},or:{name:"Oriya",nativeName:"ଓଡ଼ିଆ"},os:{name:"Ossetian",nativeName:"ирон æвзаг"},pa:{name:"Panjabi",nativeName:"ਪੰਜਾਬੀ"},pi:{name:"Pāli",nativeName:"पाऴि"},pl:{name:"Polish",nativeName:"Polski"},ps:{name:"Pashto",nativeName:"پښتو"},pt:{name:"Portuguese",nativeName:"Português"},qu:{name:"Quechua",nativeName:"Runa Simi"},rm:{name:"Romansh",nativeName:"rumantsch grischun"},rn:{name:"Kirundi",nativeName:"Ikirundi"},ro:{name:"Romanian",nativeName:"Română"},ru:{name:"Russian",nativeName:"Русский"},rw:{name:"Kinyarwanda",nativeName:"Ikinyarwanda"},sa:{name:"Sanskrit",nativeName:"संस्कृतम्"},sc:{name:"Sardinian",nativeName:"sardu"},sd:{name:"Sindhi",nativeName:"सिन्धी"},se:{name:"Northern Sami",nativeName:"Davvisámegiella"},sg:{name:"Sango",nativeName:"yângâ tî sängö"},si:{name:"Sinhala",nativeName:"සිංහල"},sk:{name:"Slovak",nativeName:"slovenčina"},sl:{name:"Slovenian",nativeName:"slovenščina"},sm:{name:"Samoan",nativeName:"gagana fa'a Samoa"},sn:{name:"Shona",nativeName:"chiShona"},so:{name:"Somali",nativeName:"Soomaaliga"},sq:{name:"Albanian",nativeName:"Shqip"},sr:{name:"Serbian",nativeName:"српски језик"},ss:{name:"Swati",nativeName:"SiSwati"},st:{name:"Southern Sotho",nativeName:"Sesotho"},su:{name:"Sundanese",nativeName:"Basa Sunda"},sv:{name:"Swedish",nativeName:"Svenska"},sw:{name:"Swahili",nativeName:"Kiswahili"},ta:{name:"Tamil",nativeName:"தமிழ்"},te:{name:"Telugu",nativeName:"తెలుగు"},tg:{name:"Tajik",nativeName:"тоҷикӣ"},th:{name:"Thai",nativeName:"ไทย"},ti:{name:"Tigrinya",nativeName:"ትግርኛ"},tk:{name:"Turkmen",nativeName:"Türkmençe"},tl:{name:"Tagalog",nativeName:"Wikang Tagalog"},tn:{name:"Tswana",nativeName:"Setswana"},to:{name:"Tonga",nativeName:"faka Tonga"},tr:{name:"Turkish",nativeName:"Türkçe"},ts:{name:"Tsonga",nativeName:"Xitsonga"},tt:{name:"Tatar",nativeName:"татар теле"},tw:{name:"Twi",nativeName:"Twi"},ty:{name:"Tahitian",nativeName:"Reo Tahiti"},ug:{name:"Uyghur",nativeName:"ئۇيغۇرچە‎"},uk:{name:"Ukrainian",nativeName:"Українська"},ur:{name:"Urdu",nativeName:"اردو"},uz:{name:"Uzbek",nativeName:"Ўзбек"},ve:{name:"Venda",nativeName:"Tshivenḓa"},vi:{name:"Vietnamese",nativeName:"Tiếng Việt"},vo:{name:"Volapük",nativeName:"Volapük"},wa:{name:"Walloon",nativeName:"walon"},wo:{name:"Wolof",nativeName:"Wollof"},xh:{name:"Xhosa",nativeName:"isiXhosa"},yi:{name:"Yiddish",nativeName:"ייִדיש"},yo:{name:"Yoruba",nativeName:"Yorùbá"},za:{name:"Zhuang",nativeName:"Saɯ cueŋƅ"},zh:{name:"Chinese",nativeName:"中文"},zu:{name:"Zulu",nativeName:"isiZulu"}};class a{static getLanguages(e=[]){return e.map((e=>({code:e,name:a.getName(e),nativeName:a.getNativeName(e)})))}static getName(e){return a.validate(e)?r[e].name:""}static getAllNames(){return Object.values(r).map((e=>e.name))}static getNativeName(e){return a.validate(e)?r[e].nativeName:""}static getAllNativeNames(){return Object.values(r).map((e=>e.nativeName))}static getCode(e){return Object.keys(r).find((t=>{const n=r[t];return n.name.toLowerCase()===e.toLowerCase()||n.nativeName.toLowerCase()===e.toLowerCase()}))||""}static getAllCodes(){return Object.keys(r)}static validate(e){return r.hasOwnProperty(e)}}},6258:(e,t,n)=>{"use strict";function r(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}n.d(t,{Z:()=>a});const a=function e(t,n){function a(e,a,o){if("undefined"!=typeof document){"number"==typeof(o=r({},n,o)).expires&&(o.expires=new Date(Date.now()+864e5*o.expires)),o.expires&&(o.expires=o.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var s in o)o[s]&&(i+="; "+s,!0!==o[s]&&(i+="="+o[s].split(";")[0]));return document.cookie=e+"="+t.write(a,e)+i}}return Object.create({set:a,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],r={},a=0;a<n.length;a++){var o=n[a].split("="),i=o.slice(1).join("=");try{var s=decodeURIComponent(o[0]);if(r[s]=t.read(i,s),e===s)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){a(e,"",r({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,r({},this.attributes,t))},withConverter:function(t){return e(r({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})},69483:function(e,t){!function(n){"object"==typeof t&&void 0!==e?e.exports=n():"function"==typeof define&&define.amd?define([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=n()}((function(){return function e(t,n,r){function a(i,s){if(!n[i]){if(!t[i]){var c="function"==typeof require&&require;if(!s&&c)return c(i,!0);if(o)return o(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[i]={exports:{}};t[i][0].call(u.exports,(function(e){return a(t[i][1][e]||e)}),u,u.exports,e,t,n,r)}return n[i].exports}for(var o="function"==typeof require&&require,i=0;i<r.length;i++)a(r[i]);return a}({1:[function(e,t,n){(function(e){"use strict";var n,r,a=e.MutationObserver||e.WebKitMutationObserver;if(a){var o=0,i=new a(u),s=e.document.createTextNode("");i.observe(s,{characterData:!0}),n=function(){s.data=o=++o%2}}else if(e.setImmediate||void 0===e.MessageChannel)n="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var c=new e.MessageChannel;c.port1.onmessage=u,n=function(){c.port2.postMessage(0)}}var l=[];function u(){var e,t;r=!0;for(var n=l.length;n;){for(t=l,l=[],e=-1;++e<n;)t[e]();n=l.length}r=!1}t.exports=function(e){1!==l.push(e)||r||n()}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e(1);function a(){}var o={},i=["REJECTED"],s=["FULFILLED"],c=["PENDING"];function l(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,e!==a&&h(this,e)}function u(e,t,n){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function f(e,t,n){r((function(){var r;try{r=t(n)}catch(t){return o.reject(e,t)}r===e?o.reject(e,new TypeError("Cannot resolve promise with itself")):o.resolve(e,r)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function h(e,t){var n=!1;function r(t){n||(n=!0,o.reject(e,t))}function a(t){n||(n=!0,o.resolve(e,t))}var i=d((function(){t(a,r)}));"error"===i.status&&r(i.value)}function d(e,t){var n={};try{n.value=e(t),n.status="success"}catch(e){n.status="error",n.value=e}return n}t.exports=l,l.prototype.catch=function(e){return this.then(null,e)},l.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===i)return this;var n=new this.constructor(a);return this.state!==c?f(n,this.state===s?e:t,this.outcome):this.queue.push(new u(n,e,t)),n},u.prototype.callFulfilled=function(e){o.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){o.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},o.resolve=function(e,t){var n=d(p,t);if("error"===n.status)return o.reject(e,n.value);var r=n.value;if(r)h(e,r);else{e.state=s,e.outcome=t;for(var a=-1,i=e.queue.length;++a<i;)e.queue[a].callFulfilled(t)}return e},o.reject=function(e,t){e.state=i,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e},l.resolve=function(e){return e instanceof this?e:o.resolve(new this(a),e)},l.reject=function(e){var t=new this(a);return o.reject(t,e)},l.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var i=new Array(n),s=0,c=-1,l=new this(a);++c<n;)u(e[c],c);return l;function u(e,a){t.resolve(e).then((function(e){i[a]=e,++s!==n||r||(r=!0,o.resolve(l,i))}),(function(e){r||(r=!0,o.reject(l,e))}))}},l.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,n=!1;if(!t)return this.resolve([]);for(var r,i=-1,s=new this(a);++i<t;)r=e[i],this.resolve(r).then((function(e){n||(n=!0,o.resolve(s,e))}),(function(e){n||(n=!0,o.reject(s,e))}));return s}},{1:1}],3:[function(e,t,n){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function o(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(a){if("TypeError"!==a.name)throw a;for(var n=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r<e.length;r+=1)n.append(e[r]);return n.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var i=Promise;function s(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function c(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}function l(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function u(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",p=void 0,h={},d=Object.prototype.toString,m="readonly",v="readwrite";function g(e){var t=h[e.name],n={};n.promise=new i((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function b(e){var t=h[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function y(e,t){var n=h[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function _(e,t){return new i((function(n,r){if(h[e.name]=h[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);g(e),e.db.close()}var o=[e.name];t&&o.push(e.version);var i=a.open.apply(a,o);t&&(i.onupgradeneeded=function(t){var n=i.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(f)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),i.onerror=function(e){e.preventDefault(),r(i.error)},i.onsuccess=function(){var t=i.result;t.onversionchange=function(e){e.target.close()},n(t),b(e)}}))}function w(e){return _(e,!1)}function x(e){return _(e,!0)}function k(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,a=e.version>e.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),a||n){if(n){var o=e.db.version+1;o>e.version&&(e.version=o)}return!0}return!1}function C(e){return o([function(e){for(var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),a=0;a<t;a++)r[a]=e.charCodeAt(a);return n}(atob(e.data))],{type:e.type})}function E(e){return e&&e.__local_forage_encoded_blob}function N(e){var t=this,n=t._initReady().then((function(){var e=h[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return c(n,e,e),n}function S(e,t,n,r){void 0===r&&(r=1);try{var a=e.db.transaction(e.storeName,t);n(null,a)}catch(a){if(r>0&&(!e.db||"InvalidStateError"===a.name||"NotFoundError"===a.name))return i.resolve().then((function(){if(!e.db||"NotFoundError"===a.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return function(e){g(e);for(var t=h[e.name],n=t.forages,r=0;r<n.length;r++){var a=n[r];a._dbInfo.db&&(a._dbInfo.db.close(),a._dbInfo.db=null)}return e.db=null,w(e).then((function(t){return e.db=t,k(e)?x(e):t})).then((function(r){e.db=t.db=r;for(var a=0;a<n.length;a++)n[a]._dbInfo.db=r})).catch((function(t){throw y(e,t),t}))}(e).then((function(){S(e,t,n,r-1)}))})).catch(n);n(a)}}var O={_driver:"asyncStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var a=h[n.name];a||(a={forages:[],db:null,dbReady:null,deferredOperations:[]},h[n.name]=a),a.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=N);var o=[];function s(){return i.resolve()}for(var c=0;c<a.forages.length;c++){var l=a.forages[c];l!==t&&o.push(l._initReady().catch(s))}var u=a.forages.slice(0);return i.all(o).then((function(){return n.db=a.db,w(n)})).then((function(e){return n.db=e,k(n,t._defaultConfig.version)?x(n):e})).then((function(e){n.db=a.db=e,t._dbInfo=n;for(var r=0;r<u.length;r++){var o=u[r];o!==t&&(o._dbInfo.db=n.db,o._dbInfo.version=n.version)}}))},_support:function(){try{if(!a||!a.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=new i((function(t,r){n.ready().then((function(){S(n._dbInfo,m,(function(a,o){if(a)return r(a);try{var i=o.objectStore(n._dbInfo.storeName).openCursor(),s=1;i.onsuccess=function(){var n=i.result;if(n){var r=n.value;E(r)&&(r=C(r));var a=e(r,n.key,s++);void 0!==a?t(a):n.continue()}else t()},i.onerror=function(){r(i.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){S(n._dbInfo,m,(function(a,o){if(a)return r(a);try{var i=o.objectStore(n._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),E(e)&&(e=C(e)),t(e)},i.onerror=function(){r(i.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=l(e);var a=new i((function(n,a){var s;r.ready().then((function(){return s=r._dbInfo,"[object Blob]"===d.call(t)?function(e){return"boolean"==typeof p?i.resolve(p):function(e){return new i((function(t){var n=e.transaction(f,v),r=o([""]);n.objectStore(f).put(r,"key"),n.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},n.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),n=navigator.userAgent.match(/Edge\//);t(n||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return p=e}))}(s.db).then((function(e){return e?t:(n=t,new i((function(e,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:r,type:n.type})},r.readAsBinaryString(n)})));var n})):t})).then((function(t){S(r._dbInfo,v,(function(o,i){if(o)return a(o);try{var s=i.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var c=s.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),n(t)},i.onabort=i.onerror=function(){var e=c.error?c.error:c.transaction.error;a(e)}}catch(e){a(e)}}))})).catch(a)}));return s(a,n),a},removeItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){S(n._dbInfo,v,(function(a,o){if(a)return r(a);try{var i=o.objectStore(n._dbInfo.storeName).delete(e);o.oncomplete=function(){t()},o.onerror=function(){r(i.error)},o.onabort=function(){var e=i.error?i.error:i.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){S(t._dbInfo,v,(function(r,a){if(r)return n(r);try{var o=a.objectStore(t._dbInfo.storeName).clear();a.oncomplete=function(){e()},a.onabort=a.onerror=function(){var e=o.error?o.error:o.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){S(t._dbInfo,m,(function(r,a){if(r)return n(r);try{var o=a.objectStore(t._dbInfo.storeName).count();o.onsuccess=function(){e(o.result)},o.onerror=function(){n(o.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new i((function(t,r){e<0?t(null):n.ready().then((function(){S(n._dbInfo,m,(function(a,o){if(a)return r(a);try{var i=o.objectStore(n._dbInfo.storeName),s=!1,c=i.openKeyCursor();c.onsuccess=function(){var n=c.result;n?0===e||s?t(n.key):(s=!0,n.advance(e)):t(null)},c.onerror=function(){r(c.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){S(t._dbInfo,m,(function(r,a){if(r)return n(r);try{var o=a.objectStore(t._dbInfo.storeName).openKeyCursor(),i=[];o.onsuccess=function(){var t=o.result;t?(i.push(t.key),t.continue()):e(i)},o.onerror=function(){n(o.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=u.apply(this,arguments);var n=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,o=this;if(e.name){var c=e.name===n.name&&o._dbInfo.db,l=c?i.resolve(o._dbInfo.db):w(e).then((function(t){var n=h[e.name],r=n.forages;n.db=t;for(var a=0;a<r.length;a++)r[a]._dbInfo.db=t;return t}));r=e.storeName?l.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;g(e);var r=h[e.name],o=r.forages;t.close();for(var s=0;s<o.length;s++){var c=o[s];c._dbInfo.db=null,c._dbInfo.version=n}var l=new i((function(t,r){var o=a.open(e.name,n);o.onerror=function(e){o.result.close(),r(e)},o.onupgradeneeded=function(){o.result.deleteObjectStore(e.storeName)},o.onsuccess=function(){var e=o.result;e.close(),t(e)}}));return l.then((function(e){r.db=e;for(var t=0;t<o.length;t++){var n=o[t];n._dbInfo.db=e,b(n._dbInfo)}})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}})):l.then((function(t){g(e);var n=h[e.name],r=n.forages;t.close();for(var o=0;o<r.length;o++)r[o]._dbInfo.db=null;var s=new i((function(t,n){var r=a.deleteDatabase(e.name);r.onerror=function(){var e=r.result;e&&e.close(),n(r.error)},r.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},r.onsuccess=function(){var e=r.result;e&&e.close(),t(e)}}));return s.then((function(e){n.db=e;for(var t=0;t<r.length;t++)b(r[t]._dbInfo)})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}))}else r=i.reject("Invalid arguments");return s(r,t),r}},j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",L=/^~~local_forage_type~([^~]+)~/,A="__lfsc__:",M=A.length,I="arbf",T="blob",R="si08",P="ui08",z="uic8",F="si16",$="si32",H="ur16",D="ui32",V="fl32",U="fl64",B=M+I.length,W=Object.prototype.toString;function Y(e){var t,n,r,a,o,i=.75*e.length,s=e.length,c=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);var l=new ArrayBuffer(i),u=new Uint8Array(l);for(t=0;t<s;t+=4)n=j.indexOf(e[t]),r=j.indexOf(e[t+1]),a=j.indexOf(e[t+2]),o=j.indexOf(e[t+3]),u[c++]=n<<2|r>>4,u[c++]=(15&r)<<4|a>>2,u[c++]=(3&a)<<6|63&o;return l}function q(e){var t,n=new Uint8Array(e),r="";for(t=0;t<n.length;t+=3)r+=j[n[t]>>2],r+=j[(3&n[t])<<4|n[t+1]>>4],r+=j[(15&n[t+1])<<2|n[t+2]>>6],r+=j[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var G={serialize:function(e,t){var n="";if(e&&(n=W.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===W.call(e.buffer))){var r,a=A;e instanceof ArrayBuffer?(r=e,a+=I):(r=e.buffer,"[object Int8Array]"===n?a+=R:"[object Uint8Array]"===n?a+=P:"[object Uint8ClampedArray]"===n?a+=z:"[object Int16Array]"===n?a+=F:"[object Uint16Array]"===n?a+=H:"[object Int32Array]"===n?a+=$:"[object Uint32Array]"===n?a+=D:"[object Float32Array]"===n?a+=V:"[object Float64Array]"===n?a+=U:t(new Error("Failed to get type for BinaryArray"))),t(a+q(r))}else if("[object Blob]"===n){var o=new FileReader;o.onload=function(){var n="~~local_forage_type~"+e.type+"~"+q(this.result);t("__lfsc__:blob"+n)},o.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}},deserialize:function(e){if(e.substring(0,M)!==A)return JSON.parse(e);var t,n=e.substring(B),r=e.substring(M,B);if(r===T&&L.test(n)){var a=n.match(L);t=a[1],n=n.substring(a[0].length)}var i=Y(n);switch(r){case I:return i;case T:return o([i],{type:t});case R:return new Int8Array(i);case P:return new Uint8Array(i);case z:return new Uint8ClampedArray(i);case F:return new Int16Array(i);case H:return new Uint16Array(i);case $:return new Int32Array(i);case D:return new Uint32Array(i);case V:return new Float32Array(i);case U:return new Float64Array(i);default:throw new Error("Unkown type: "+r)}},stringToBuffer:Y,bufferToString:q};function X(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function Z(e,t,n,r,a,o){e.executeSql(n,r,a,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?o(e,i):X(e,t,(function(){e.executeSql(n,r,a,o)}),o)}),o):o(e,i)}),o)}function J(e,t,n,r){var a=this;e=l(e);var o=new i((function(o,i){a.ready().then((function(){void 0===t&&(t=null);var s=t,c=a._dbInfo;c.serializer.serialize(t,(function(t,l){l?i(l):c.db.transaction((function(n){Z(n,c,"INSERT OR REPLACE INTO "+c.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){o(s)}),(function(e,t){i(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(r>0)return void o(J.apply(a,[e,s,n,r-1]));i(t)}}))}))})).catch(i)}));return s(o,n),o}function K(e){return new i((function(t,n){e.transaction((function(r){r.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var a=[],o=0;o<r.rows.length;o++)a.push(r.rows.item(o).name);t({db:e,storeNames:a})}),(function(e,t){n(t)}))}),(function(e){n(e)}))}))}var Q={_driver:"webSQLStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var a=new i((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(a){X(a,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=G,a},_support:"function"==typeof openDatabase,iterate:function(e,t){var n=this,r=new i((function(t,r){n.ready().then((function(){var a=n._dbInfo;a.db.transaction((function(n){Z(n,a,"SELECT * FROM "+a.storeName,[],(function(n,r){for(var o=r.rows,i=o.length,s=0;s<i;s++){var c=o.item(s),l=c.value;if(l&&(l=a.serializer.deserialize(l)),void 0!==(l=e(l,c.key,s+1)))return void t(l)}t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){var a=n._dbInfo;a.db.transaction((function(n){Z(n,a,"SELECT * FROM "+a.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=a.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){return J.apply(this,[e,t,n,1])},removeItem:function(e,t){var n=this;e=l(e);var r=new i((function(t,r){n.ready().then((function(){var a=n._dbInfo;a.db.transaction((function(n){Z(n,a,"DELETE FROM "+a.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Z(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Z(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new i((function(t,r){n.ready().then((function(){var a=n._dbInfo;a.db.transaction((function(n){Z(n,a,"SELECT key FROM "+a.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new i((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){Z(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],a=0;a<n.rows.length;a++)r.push(n.rows.item(a).key);e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=u.apply(this,arguments);var n=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,a=this;return s(r=e.name?new i((function(t){var r;r=e.name===n.name?a._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:r,storeNames:[e.storeName]}):t(K(r))})).then((function(e){return new i((function(t,n){e.db.transaction((function(r){function a(e){return new i((function(t,n){r.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){n(t)}))}))}for(var o=[],s=0,c=e.storeNames.length;s<c;s++)o.push(a(e.storeNames[s]));i.all(o).then((function(){t()})).catch((function(e){n(e)}))}),(function(e){n(e)}))}))})):i.reject("Invalid arguments"),t),r}};function ee(e,t){var n=e.name+"/";return e.storeName!==t.storeName&&(n+=e.storeName+"/"),n}var te={_driver:"localStorageWrapper",_initStorage:function(e){var t={};if(e)for(var n in e)t[n]=e[n];return t.keyPrefix=ee(e,this._defaultConfig),!function(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}()||localStorage.length>0?(this._dbInfo=t,t.serializer=G,i.resolve()):i.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,a=r.length,o=localStorage.length,i=1,s=0;s<o;s++){var c=localStorage.key(s);if(0===c.indexOf(r)){var l=localStorage.getItem(c);if(l&&(l=t.serializer.deserialize(l)),void 0!==(l=e(l,c.substring(a),i++)))return l}}}));return s(r,t),r},getItem:function(e,t){var n=this;e=l(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=l(e);var a=r.ready().then((function(){void 0===t&&(t=null);var n=t;return new i((function(a,o){var i=r._dbInfo;i.serializer.serialize(t,(function(t,r){if(r)o(r);else try{localStorage.setItem(i.keyPrefix+e,t),a(n)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||o(e),o(e)}}))}))}));return s(a,n),a},removeItem:function(e,t){var n=this;e=l(e);var r=n.ready().then((function(){var t=n._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return s(r,t),r},clear:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return s(n,e),n},length:function(e){var t=this.keys().then((function(e){return e.length}));return s(t,e),t},key:function(e,t){var n=this,r=n.ready().then((function(){var t,r=n._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(r.keyPrefix.length)),t}));return s(r,t),r},keys:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo,n=localStorage.length,r=[],a=0;a<n;a++){var o=localStorage.key(a);0===o.indexOf(e.keyPrefix)&&r.push(o.substring(e.keyPrefix.length))}return r}));return s(n,e),n},dropInstance:function(e,t){if(t=u.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var n=this.config();e.name=e.name||n.name,e.storeName=e.storeName||n.storeName}var r,a=this;return s(r=e.name?new i((function(t){e.storeName?t(ee(e,a._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):i.reject("Invalid arguments"),t),r}},ne=function(e,t){for(var n,r,a=e.length,o=0;o<a;){if((n=e[o])===(r=t)||"number"==typeof n&&"number"==typeof r&&isNaN(n)&&isNaN(r))return!0;o++}return!1},re=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},ae={},oe={},ie={INDEXEDDB:O,WEBSQL:Q,LOCALSTORAGE:te},se=[ie.INDEXEDDB._driver,ie.WEBSQL._driver,ie.LOCALSTORAGE._driver],ce=["dropInstance"],le=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(ce),ue={description:"",driver:se.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function fe(e,t){e[t]=function(){var n=arguments;return e.ready().then((function(){return e[t].apply(e,n)}))}}function pe(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var n in t)t.hasOwnProperty(n)&&(re(t[n])?arguments[0][n]=t[n].slice():arguments[0][n]=t[n])}return arguments[0]}var he=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ie)if(ie.hasOwnProperty(n)){var r=ie[n],a=r._driver;this[n]=a,ae[a]||this.defineDriver(r)}this._defaultConfig=pe({},ue),this._config=pe({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":r(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,n){var r=new i((function(t,n){try{var r=e._driver,a=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void n(a);for(var o=le.concat("_initStorage"),c=0,l=o.length;c<l;c++){var u=o[c];if((!ne(ce,u)||e[u])&&"function"!=typeof e[u])return void n(a)}!function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),n=i.reject(t);return s(n,arguments[arguments.length-1]),n}},n=0,r=ce.length;n<r;n++){var a=ce[n];e[a]||(e[a]=t(a))}}();var f=function(n){ae[r]&&console.info("Redefining LocalForage driver: "+r),ae[r]=e,oe[r]=n,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(f,n):f(!!e._support):f(!0)}catch(e){n(e)}}));return c(r,t,n),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,n){var r=ae[e]?i.resolve(ae[e]):i.reject(new Error("Driver not found."));return c(r,t,n),r},e.prototype.getSerializer=function(e){var t=i.resolve(G);return c(t,e),t},e.prototype.ready=function(e){var t=this,n=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return c(n,e,e),n},e.prototype.setDriver=function(e,t,n){var r=this;re(e)||(e=[e]);var a=this._getSupportedDrivers(e);function o(){r._config.driver=r.driver()}function s(e){return r._extend(e),o(),r._ready=r._initStorage(r._config),r._ready}var l=null!==this._driverSet?this._driverSet.catch((function(){return i.resolve()})):i.resolve();return this._driverSet=l.then((function(){var e=a[0];return r._dbInfo=null,r._ready=null,r.getDriver(e).then((function(e){r._driver=e._driver,o(),r._wrapLibraryMethodsWithReady(),r._initDriver=function(e){return function(){var t=0;return function n(){for(;t<e.length;){var a=e[t];return t++,r._dbInfo=null,r._ready=null,r.getDriver(a).then(s).catch(n)}o();var c=new Error("No available storage method found.");return r._driverSet=i.reject(c),r._driverSet}()}}(a)}))})).catch((function(){o();var e=new Error("No available storage method found.");return r._driverSet=i.reject(e),r._driverSet})),c(this._driverSet,t,n),this._driverSet},e.prototype.supports=function(e){return!!oe[e]},e.prototype._extend=function(e){pe(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var a=e[n];this.supports(a)&&t.push(a)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=le.length;e<t;e++)fe(this,le[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),de=new he;t.exports=de},{3:3}]},{},[4])(4)}))},72378:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",a=9007199254740991,o="[object Arguments]",i="[object Function]",s="[object Object]",c=/^\[object .+?Constructor\]$/,l=/^(?:0|[1-9]\d*)$/,u={};u["[object Float32Array]"]=u["[object Float64Array]"]=u["[object Int8Array]"]=u["[object Int16Array]"]=u["[object Int32Array]"]=u["[object Uint8Array]"]=u["[object Uint8ClampedArray]"]=u["[object Uint16Array]"]=u["[object Uint32Array]"]=!0,u[o]=u["[object Array]"]=u["[object ArrayBuffer]"]=u["[object Boolean]"]=u["[object DataView]"]=u["[object Date]"]=u["[object Error]"]=u[i]=u["[object Map]"]=u["[object Number]"]=u[s]=u["[object RegExp]"]=u["[object Set]"]=u["[object String]"]=u["[object WeakMap]"]=!1;var f="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,p="object"==typeof self&&self&&self.Object===Object&&self,h=f||p||Function("return this")(),d=t&&!t.nodeType&&t,m=d&&e&&!e.nodeType&&e,v=m&&m.exports===d,g=v&&f.process,b=function(){try{return m&&m.require&&m.require("util").types||g&&g.binding&&g.binding("util")}catch(e){}}(),y=b&&b.isTypedArray;function _(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var w,x,k,C=Array.prototype,E=Function.prototype,N=Object.prototype,S=h["__core-js_shared__"],O=E.toString,j=N.hasOwnProperty,L=(w=/[^.]+$/.exec(S&&S.keys&&S.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"",A=N.toString,M=O.call(Object),I=RegExp("^"+O.call(j).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),T=v?h.Buffer:void 0,R=h.Symbol,P=h.Uint8Array,z=(T&&T.allocUnsafe,x=Object.getPrototypeOf,k=Object,function(e){return x(k(e))}),F=Object.create,$=N.propertyIsEnumerable,H=C.splice,D=R?R.toStringTag:void 0,V=function(){try{var e=ce(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),U=T?T.isBuffer:void 0,B=Math.max,W=Date.now,Y=ce(h,"Map"),q=ce(Object,"create"),G=function(){function e(){}return function(t){if(!_e(t))return{};if(F)return F(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function X(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Z(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function J(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function K(e){var t=this.__data__=new Z(e);this.size=t.size}function Q(e,t,n){(void 0!==n&&!he(e[t],n)||void 0===n&&!(t in e))&&ne(e,t,n)}function ee(e,t,n){var r=e[t];j.call(e,t)&&he(r,n)&&(void 0!==n||t in e)||ne(e,t,n)}function te(e,t){for(var n=e.length;n--;)if(he(e[n][0],t))return n;return-1}function ne(e,t,n){"__proto__"==t&&V?V(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}X.prototype.clear=function(){this.__data__=q?q(null):{},this.size=0},X.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},X.prototype.get=function(e){var t=this.__data__;if(q){var n=t[e];return n===r?void 0:n}return j.call(t,e)?t[e]:void 0},X.prototype.has=function(e){var t=this.__data__;return q?void 0!==t[e]:j.call(t,e)},X.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=q&&void 0===t?r:t,this},Z.prototype.clear=function(){this.__data__=[],this.size=0},Z.prototype.delete=function(e){var t=this.__data__,n=te(t,e);return!(n<0||(n==t.length-1?t.pop():H.call(t,n,1),--this.size,0))},Z.prototype.get=function(e){var t=this.__data__,n=te(t,e);return n<0?void 0:t[n][1]},Z.prototype.has=function(e){return te(this.__data__,e)>-1},Z.prototype.set=function(e,t){var n=this.__data__,r=te(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},J.prototype.clear=function(){this.size=0,this.__data__={hash:new X,map:new(Y||Z),string:new X}},J.prototype.delete=function(e){var t=se(this,e).delete(e);return this.size-=t?1:0,t},J.prototype.get=function(e){return se(this,e).get(e)},J.prototype.has=function(e){return se(this,e).has(e)},J.prototype.set=function(e,t){var n=se(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},K.prototype.clear=function(){this.__data__=new Z,this.size=0},K.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},K.prototype.get=function(e){return this.__data__.get(e)},K.prototype.has=function(e){return this.__data__.has(e)},K.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Z){var r=n.__data__;if(!Y||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new J(r)}return n.set(e,t),this.size=n.size,this};function re(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":D&&D in Object(e)?function(e){var t=j.call(e,D),n=e[D];try{e[D]=void 0;var r=!0}catch(e){}var a=A.call(e);return r&&(t?e[D]=n:delete e[D]),a}(e):function(e){return A.call(e)}(e)}function ae(e){return we(e)&&re(e)==o}function oe(e,t,n,r,a){e!==t&&function(e,t,n){for(var r=-1,a=Object(e),o=n(e),i=o.length;i--;){var s=o[++r];if(!1===t(a[s],s,a))break}}(t,(function(o,i){if(a||(a=new K),_e(o))!function(e,t,n,r,a,o,i){var c=fe(e,n),l=fe(t,n),u=i.get(l);if(u)Q(e,n,u);else{var f,p,h,d,m,v=o?o(c,l,n+"",e,t,i):void 0,g=void 0===v;if(g){var b=me(l),y=!b&&ge(l),_=!b&&!y&&xe(l);v=l,b||y||_?me(c)?v=c:we(m=c)&&ve(m)?v=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(c):y?(g=!1,v=function(e,t){return e.slice()}(l)):_?(g=!1,d=new(h=(f=l).buffer).constructor(h.byteLength),new P(d).set(new P(h)),p=d,v=new f.constructor(p,f.byteOffset,f.length)):v=[]:function(e){if(!we(e)||re(e)!=s)return!1;var t=z(e);if(null===t)return!0;var n=j.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&O.call(n)==M}(l)||de(l)?(v=c,de(c)?v=function(e){return function(e,t,n,r){var a=!n;n||(n={});for(var o=-1,i=t.length;++o<i;){var s=t[o],c=void 0;void 0===c&&(c=e[s]),a?ne(n,s,c):ee(n,s,c)}return n}(e,ke(e))}(c):_e(c)&&!be(c)||(v=function(e){return"function"!=typeof e.constructor||ue(e)?{}:G(z(e))}(l))):g=!1}g&&(i.set(l,v),a(v,l,r,o,i),i.delete(l)),Q(e,n,v)}}(e,t,i,n,oe,r,a);else{var c=r?r(fe(e,i),o,i+"",e,t,a):void 0;void 0===c&&(c=o),Q(e,i,c)}}),ke)}var ie=V?function(e,t){return V(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:Ne;function se(e,t){var n,r,a=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?a["string"==typeof t?"string":"hash"]:a.map}function ce(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!_e(e)||function(e){return!!L&&L in e}(e))&&(be(e)?I:c).test(function(e){if(null!=e){try{return O.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}(n)?n:void 0}function le(e,t){var n=typeof e;return!!(t=null==t?a:t)&&("number"==n||"symbol"!=n&&l.test(e))&&e>-1&&e%1==0&&e<t}function ue(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||N)}function fe(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var pe=function(e){var t=0,n=0;return function(){var r=W(),a=16-(r-n);if(n=r,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(ie);function he(e,t){return e===t||e!=e&&t!=t}var de=ae(function(){return arguments}())?ae:function(e){return we(e)&&j.call(e,"callee")&&!$.call(e,"callee")},me=Array.isArray;function ve(e){return null!=e&&ye(e.length)&&!be(e)}var ge=U||function(){return!1};function be(e){if(!_e(e))return!1;var t=re(e);return t==i||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function ye(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=a}function _e(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function we(e){return null!=e&&"object"==typeof e}var xe=y?function(e){return function(t){return e(t)}}(y):function(e){return we(e)&&ye(e.length)&&!!u[re(e)]};function ke(e){return ve(e)?function(e,t){var n=me(e),r=!n&&de(e),a=!n&&!r&&ge(e),o=!n&&!r&&!a&&xe(e),i=n||r||a||o,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=s.length;for(var l in e)!t&&!j.call(e,l)||i&&("length"==l||a&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||le(l,c))||s.push(l);return s}(e,!0):function(e){if(!_e(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=ue(e),n=[];for(var r in e)("constructor"!=r||!t&&j.call(e,r))&&n.push(r);return n}(e)}var Ce,Ee=(Ce=function(e,t,n){oe(e,t,n)},function(e,t){return pe(function(e,t,n){return t=B(void 0===t?e.length-1:t,0),function(){for(var r=arguments,a=-1,o=B(r.length-t,0),i=Array(o);++a<o;)i[a]=r[t+a];a=-1;for(var s=Array(t+1);++a<t;)s[a]=r[a];return s[t]=n(i),_(e,this,s)}}(e,t,Ne),e+"")}((function(e,t){var n=-1,r=t.length,a=r>1?t[r-1]:void 0,o=r>2?t[2]:void 0;for(a=Ce.length>3&&"function"==typeof a?(r--,a):void 0,o&&function(e,t,n){if(!_e(n))return!1;var r=typeof t;return!!("number"==r?ve(n)&&le(t,n.length):"string"==r&&t in n)&&he(n[t],e)}(t[0],t[1],o)&&(a=r<3?void 0:a,r=1),e=Object(e);++n<r;){var i=t[n];i&&Ce(e,i,n)}return e})));function Ne(e){return e}e.exports=Ee},18552:(e,t,n)=>{var r=n(10852)(n(55639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(51789),a=n(80401),o=n(57667),i=n(21327),s=n(81866);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=a,c.prototype.get=o,c.prototype.has=i,c.prototype.set=s,e.exports=c},38407:(e,t,n)=>{var r=n(27040),a=n(14125),o=n(82117),i=n(67518),s=n(54705);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=a,c.prototype.get=o,c.prototype.has=i,c.prototype.set=s,e.exports=c},57071:(e,t,n)=>{var r=n(10852)(n(55639),"Map");e.exports=r},83369:(e,t,n)=>{var r=n(24785),a=n(11285),o=n(96e3),i=n(49916),s=n(95265);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=a,c.prototype.get=o,c.prototype.has=i,c.prototype.set=s,e.exports=c},53818:(e,t,n)=>{var r=n(10852)(n(55639),"Promise");e.exports=r},58525:(e,t,n)=>{var r=n(10852)(n(55639),"Set");e.exports=r},88668:(e,t,n)=>{var r=n(83369),a=n(90619),o=n(72385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=a,i.prototype.has=o,e.exports=i},46384:(e,t,n)=>{var r=n(38407),a=n(37465),o=n(63779),i=n(67599),s=n(44758),c=n(34309);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=a,l.prototype.delete=o,l.prototype.get=i,l.prototype.has=s,l.prototype.set=c,e.exports=l},62705:(e,t,n)=>{var r=n(55639).Symbol;e.exports=r},11149:(e,t,n)=>{var r=n(55639).Uint8Array;e.exports=r},70577:(e,t,n)=>{var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},44174:e=>{e.exports=function(e,t,n,r){for(var a=-1,o=null==e?0:e.length;++a<o;){var i=e[a];t(r,i,n(i),e)}return r}},77412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}},47443:(e,t,n)=>{var r=n(42118);e.exports=function(e,t){return!(null==e||!e.length)&&r(e,t,0)>-1}},1196:e=>{e.exports=function(e,t,n){for(var r=-1,a=null==e?0:e.length;++r<a;)if(n(t,e[r]))return!0;return!1}},14636:(e,t,n)=>{var r=n(22545),a=n(35694),o=n(1469),i=n(44144),s=n(65776),c=n(36719),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),u=!n&&a(e),f=!n&&!u&&i(e),p=!n&&!u&&!f&&c(e),h=n||u||f||p,d=h?r(e.length,String):[],m=d.length;for(var v in e)!t&&!l.call(e,v)||h&&("length"==v||f&&("offset"==v||"parent"==v)||p&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,m))||d.push(v);return d}},29932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}},62488:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}},62663:e=>{e.exports=function(e,t,n,r){var a=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++a]);++a<o;)n=t(n,e[a],a,e);return n}},70151:(e,t,n)=>{var r=n(278),a=n(73480);e.exports=function(e){return a(r(e))}},82908:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},44286:e=>{e.exports=function(e){return e.split("")}},49029:e=>{var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(t)||[]}},86556:(e,t,n)=>{var r=n(89465),a=n(77813);e.exports=function(e,t,n){(void 0!==n&&!a(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},34865:(e,t,n)=>{var r=n(89465),a=n(77813),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];o.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:(e,t,n)=>{var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},81119:(e,t,n)=>{var r=n(89881);e.exports=function(e,t,n,a){return r(e,(function(e,r,o){t(a,e,n(e),o)})),a}},44037:(e,t,n)=>{var r=n(98363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},63886:(e,t,n)=>{var r=n(98363),a=n(81704);e.exports=function(e,t){return e&&r(t,a(t),e)}},89465:(e,t,n)=>{var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},29750:e=>{e.exports=function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}},85990:(e,t,n)=>{var r=n(46384),a=n(77412),o=n(34865),i=n(44037),s=n(63886),c=n(64626),l=n(278),u=n(18805),f=n(1911),p=n(58234),h=n(46904),d=n(64160),m=n(43824),v=n(29148),g=n(38517),b=n(1469),y=n(44144),_=n(56688),w=n(13218),x=n(72928),k=n(3674),C=n(81704),E="[object Arguments]",N="[object Function]",S="[object Object]",O={};O[E]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O[S]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O[N]=O["[object WeakMap]"]=!1,e.exports=function e(t,n,j,L,A,M){var I,T=1&n,R=2&n,P=4&n;if(j&&(I=A?j(t,L,A,M):j(t)),void 0!==I)return I;if(!w(t))return t;var z=b(t);if(z){if(I=m(t),!T)return l(t,I)}else{var F=d(t),$=F==N||"[object GeneratorFunction]"==F;if(y(t))return c(t,T);if(F==S||F==E||$&&!A){if(I=R||$?{}:g(t),!T)return R?f(t,s(I,t)):u(t,i(I,t))}else{if(!O[F])return A?t:{};I=v(t,F,T)}}M||(M=new r);var H=M.get(t);if(H)return H;M.set(t,I),x(t)?t.forEach((function(r){I.add(e(r,n,j,r,t,M))})):_(t)&&t.forEach((function(r,a){I.set(a,e(r,n,j,a,t,M))}));var D=z?void 0:(P?R?h:p:R?C:k)(t);return a(D||t,(function(r,a){D&&(r=t[a=r]),o(I,a,e(r,n,j,a,t,M))})),I}},3118:(e,t,n)=>{var r=n(13218),a=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},89881:(e,t,n)=>{var r=n(47816),a=n(99291)(r);e.exports=a},56029:(e,t,n)=>{var r=n(33448);e.exports=function(e,t,n){for(var a=-1,o=e.length;++a<o;){var i=e[a],s=t(i);if(null!=s&&(void 0===c?s==s&&!r(s):n(s,c)))var c=s,l=i}return l}},80760:(e,t,n)=>{var r=n(89881);e.exports=function(e,t){var n=[];return r(e,(function(e,r,a){t(e,r,a)&&n.push(e)})),n}},41848:e=>{e.exports=function(e,t,n,r){for(var a=e.length,o=n+(r?1:-1);r?o--:++o<a;)if(t(e[o],o,e))return o;return-1}},21078:(e,t,n)=>{var r=n(62488),a=n(37285);e.exports=function e(t,n,o,i,s){var c=-1,l=t.length;for(o||(o=a),s||(s=[]);++c<l;){var u=t[c];n>0&&o(u)?n>1?e(u,n-1,o,i,s):r(s,u):i||(s[s.length]=u)}return s}},28483:(e,t,n)=>{var r=n(25063)();e.exports=r},47816:(e,t,n)=>{var r=n(28483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},97786:(e,t,n)=>{var r=n(71811),a=n(40327);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n<o;)e=e[a(t[n++])];return n&&n==o?e:void 0}},68866:(e,t,n)=>{var r=n(62488),a=n(1469);e.exports=function(e,t,n){var o=t(e);return a(e)?o:r(o,n(e))}},44239:(e,t,n)=>{var r=n(62705),a=n(89607),o=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):o(e)}},53325:e=>{e.exports=function(e,t){return e>t}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},42118:(e,t,n)=>{var r=n(41848),a=n(62722),o=n(42351);e.exports=function(e,t,n){return t==t?o(e,t,n):r(e,a,n)}},9454:(e,t,n)=>{var r=n(44239),a=n(37005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},90939:(e,t,n)=>{var r=n(2492),a=n(37005);e.exports=function e(t,n,o,i,s){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,o,i,e,s))}},2492:(e,t,n)=>{var r=n(46384),a=n(67114),o=n(18351),i=n(16096),s=n(64160),c=n(1469),l=n(44144),u=n(36719),f="[object Arguments]",p="[object Array]",h="[object Object]",d=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,v,g){var b=c(e),y=c(t),_=b?p:s(e),w=y?p:s(t),x=(_=_==f?h:_)==h,k=(w=w==f?h:w)==h,C=_==w;if(C&&l(e)){if(!l(t))return!1;b=!0,x=!1}if(C&&!x)return g||(g=new r),b||u(e)?a(e,t,n,m,v,g):o(e,t,_,n,m,v,g);if(!(1&n)){var E=x&&d.call(e,"__wrapped__"),N=k&&d.call(t,"__wrapped__");if(E||N){var S=E?e.value():e,O=N?t.value():t;return g||(g=new r),v(S,O,n,m,g)}}return!!C&&(g||(g=new r),i(e,t,n,m,v,g))}},25588:(e,t,n)=>{var r=n(64160),a=n(37005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(46384),a=n(90939);e.exports=function(e,t,n,o){var i=n.length,s=i,c=!o;if(null==e)return!s;for(e=Object(e);i--;){var l=n[i];if(c&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<s;){var u=(l=n[i])[0],f=e[u],p=l[1];if(c&&l[2]){if(void 0===f&&!(u in e))return!1}else{var h=new r;if(o)var d=o(f,p,u,e,t,h);if(!(void 0===d?a(p,f,3,o,h):d))return!1}}return!0}},62722:e=>{e.exports=function(e){return e!=e}},28458:(e,t,n)=>{var r=n(23560),a=n(15346),o=n(13218),i=n(80346),s=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,u=c.toString,f=l.hasOwnProperty,p=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||a(e))&&(r(e)?p:s).test(i(e))}},29221:(e,t,n)=>{var r=n(64160),a=n(37005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},38749:(e,t,n)=>{var r=n(44239),a=n(41780),o=n(37005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&a(e.length)&&!!i[r(e)]}},67206:(e,t,n)=>{var r=n(91573),a=n(16432),o=n(6557),i=n(1469),s=n(39601);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):s(e)}},280:(e,t,n)=>{var r=n(25726),a=n(86916),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:(e,t,n)=>{var r=n(13218),a=n(25726),o=n(33498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=a(e),n=[];for(var s in e)("constructor"!=s||!t&&i.call(e,s))&&n.push(s);return n}},70433:e=>{e.exports=function(e,t){return e<t}},69199:(e,t,n)=>{var r=n(89881),a=n(98612);e.exports=function(e,t){var n=-1,o=a(e)?Array(e.length):[];return r(e,(function(e,r,a){o[++n]=t(e,r,a)})),o}},91573:(e,t,n)=>{var r=n(2958),a=n(1499),o=n(42634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},16432:(e,t,n)=>{var r=n(90939),a=n(27361),o=n(79095),i=n(15403),s=n(89162),c=n(42634),l=n(40327);e.exports=function(e,t){return i(e)&&s(t)?c(l(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?o(n,e):r(t,i,3)}}},42980:(e,t,n)=>{var r=n(46384),a=n(86556),o=n(28483),i=n(59783),s=n(13218),c=n(81704),l=n(36390);e.exports=function e(t,n,u,f,p){t!==n&&o(n,(function(o,c){if(p||(p=new r),s(o))i(t,n,c,u,e,f,p);else{var h=f?f(l(t,c),o,c+"",t,n,p):void 0;void 0===h&&(h=o),a(t,c,h)}}),c)}},59783:(e,t,n)=>{var r=n(86556),a=n(64626),o=n(77133),i=n(278),s=n(38517),c=n(35694),l=n(1469),u=n(29246),f=n(44144),p=n(23560),h=n(13218),d=n(68630),m=n(36719),v=n(36390),g=n(59881);e.exports=function(e,t,n,b,y,_,w){var x=v(e,n),k=v(t,n),C=w.get(k);if(C)r(e,n,C);else{var E=_?_(x,k,n+"",e,t,w):void 0,N=void 0===E;if(N){var S=l(k),O=!S&&f(k),j=!S&&!O&&m(k);E=k,S||O||j?l(x)?E=x:u(x)?E=i(x):O?(N=!1,E=a(k,!0)):j?(N=!1,E=o(k,!0)):E=[]:d(k)||c(k)?(E=x,c(x)?E=g(x):h(x)&&!p(x)||(E=s(k))):N=!1}N&&(w.set(k,E),y(E,k,b,_,w),w.delete(k)),r(e,n,E)}}},82689:(e,t,n)=>{var r=n(29932),a=n(97786),o=n(67206),i=n(69199),s=n(71131),c=n(7518),l=n(85022),u=n(6557),f=n(1469);e.exports=function(e,t,n){t=t.length?r(t,(function(e){return f(e)?function(t){return a(t,1===e.length?e[0]:e)}:e})):[u];var p=-1;t=r(t,c(o));var h=i(e,(function(e,n,a){return{criteria:r(t,(function(t){return t(e)})),index:++p,value:e}}));return s(h,(function(e,t){return l(e,t,n)}))}},63012:(e,t,n)=>{var r=n(97786),a=n(10611),o=n(71811);e.exports=function(e,t,n){for(var i=-1,s=t.length,c={};++i<s;){var l=t[i],u=r(e,l);n(u,l)&&a(c,o(l,e),u)}return c}},40371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},79152:(e,t,n)=>{var r=n(97786);e.exports=function(e){return function(t){return r(t,e)}}},18674:e=>{e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},15742:(e,t,n)=>{var r=n(57406),a=n(65776),o=Array.prototype.splice;e.exports=function(e,t){for(var n=e?t.length:0,i=n-1;n--;){var s=t[n];if(n==i||s!==c){var c=s;a(s)?o.call(e,s,1):r(e,s)}}return e}},69877:e=>{var t=Math.floor,n=Math.random;e.exports=function(e,r){return e+t(n()*(r-e+1))}},10107:e=>{e.exports=function(e,t,n,r,a){return a(e,(function(e,a,o){n=r?(r=!1,e):t(n,e,a,o)})),n}},5976:(e,t,n)=>{var r=n(6557),a=n(45357),o=n(30061);e.exports=function(e,t){return o(a(e,t,r),e+"")}},10611:(e,t,n)=>{var r=n(34865),a=n(71811),o=n(65776),i=n(13218),s=n(40327);e.exports=function(e,t,n,c){if(!i(e))return e;for(var l=-1,u=(t=a(t,e)).length,f=u-1,p=e;null!=p&&++l<u;){var h=s(t[l]),d=n;if("__proto__"===h||"constructor"===h||"prototype"===h)return e;if(l!=f){var m=p[h];void 0===(d=c?c(m,h,p):void 0)&&(d=i(m)?m:o(t[l+1])?[]:{})}r(p,h,d),p=p[h]}return e}},56560:(e,t,n)=>{var r=n(75703),a=n(38777),o=n(6557),i=a?function(e,t){return a(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=i},25127:(e,t,n)=>{var r=n(73480),a=n(52628);e.exports=function(e){return r(a(e))}},14259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r<a;)o[r]=e[r+t];return o}},71131:e=>{e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},67762:e=>{e.exports=function(e,t){for(var n,r=-1,a=e.length;++r<a;){var o=t(e[r]);void 0!==o&&(n=void 0===n?o:n+o)}return n}},22545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:(e,t,n)=>{var r=n(62705),a=n(29932),o=n(1469),i=n(33448),s=r?r.prototype:void 0,c=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return a(t,e)+"";if(i(t))return c?c.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},27561:(e,t,n)=>{var r=n(67990),a=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(a,""):e}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},45652:(e,t,n)=>{var r=n(88668),a=n(47443),o=n(1196),i=n(74757),s=n(23593),c=n(21814);e.exports=function(e,t,n){var l=-1,u=a,f=e.length,p=!0,h=[],d=h;if(n)p=!1,u=o;else if(f>=200){var m=t?null:s(e);if(m)return c(m);p=!1,u=i,d=new r}else d=t?[]:h;e:for(;++l<f;){var v=e[l],g=t?t(v):v;if(v=n||0!==v?v:0,p&&g==g){for(var b=d.length;b--;)if(d[b]===g)continue e;t&&d.push(g),h.push(v)}else u(d,g,n)||(d!==h&&d.push(g),h.push(v))}return h}},57406:(e,t,n)=>{var r=n(71811),a=n(10928),o=n(40292),i=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=o(e,t))||delete e[i(a(t))]}},47415:(e,t,n)=>{var r=n(29932);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},74757:e=>{e.exports=function(e,t){return e.has(t)}},54290:(e,t,n)=>{var r=n(6557);e.exports=function(e){return"function"==typeof e?e:r}},71811:(e,t,n)=>{var r=n(1469),a=n(15403),o=n(55514),i=n(79833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:o(i(e))}},40180:(e,t,n)=>{var r=n(14259);e.exports=function(e,t,n){var a=e.length;return n=void 0===n?a:n,!t&&n>=a?e:r(e,t,n)}},5512:(e,t,n)=>{var r=n(42118);e.exports=function(e,t){for(var n=e.length;n--&&r(t,e[n],0)>-1;);return n}},89817:(e,t,n)=>{var r=n(42118);e.exports=function(e,t){for(var n=-1,a=e.length;++n<a&&r(t,e[n],0)>-1;);return n}},74318:(e,t,n)=>{var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:(e,t,n)=>{e=n.nmd(e);var r=n(55639),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a?r.Buffer:void 0,s=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},57157:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:(e,t,n)=>{var r=n(62705),a=r?r.prototype:void 0,o=a?a.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},77133:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},26393:(e,t,n)=>{var r=n(33448);e.exports=function(e,t){if(e!==t){var n=void 0!==e,a=null===e,o=e==e,i=r(e),s=void 0!==t,c=null===t,l=t==t,u=r(t);if(!c&&!u&&!i&&e>t||i&&s&&l&&!c&&!u||a&&s&&l||!n&&l||!o)return 1;if(!a&&!i&&!u&&e<t||u&&n&&o&&!a&&!i||c&&n&&o||!s&&o||!l)return-1}return 0}},85022:(e,t,n)=>{var r=n(26393);e.exports=function(e,t,n){for(var a=-1,o=e.criteria,i=t.criteria,s=o.length,c=n.length;++a<s;){var l=r(o[a],i[a]);if(l)return a>=c?l:l*("desc"==n[a]?-1:1)}return e.index-t.index}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:(e,t,n)=>{var r=n(34865),a=n(89465);e.exports=function(e,t,n,o){var i=!n;n||(n={});for(var s=-1,c=t.length;++s<c;){var l=t[s],u=o?o(n[l],e[l],l,n,e):void 0;void 0===u&&(u=e[l]),i?a(n,l,u):r(n,l,u)}return n}},18805:(e,t,n)=>{var r=n(98363),a=n(99551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(98363),a=n(51442);e.exports=function(e,t){return r(e,a(e),t)}},14429:(e,t,n)=>{var r=n(55639)["__core-js_shared__"];e.exports=r},55189:(e,t,n)=>{var r=n(44174),a=n(81119),o=n(67206),i=n(1469);e.exports=function(e,t){return function(n,s){var c=i(n)?r:a,l=t?t():{};return c(n,e,o(s,2),l)}}},21463:(e,t,n)=>{var r=n(5976),a=n(16612);e.exports=function(e){return r((function(t,n){var r=-1,o=n.length,i=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(i=e.length>3&&"function"==typeof i?(o--,i):void 0,s&&a(n[0],n[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var c=n[r];c&&e(t,c,r,i)}return t}))}},99291:(e,t,n)=>{var r=n(98612);e.exports=function(e,t){return function(n,a){if(null==n)return n;if(!r(n))return e(n,a);for(var o=n.length,i=t?o:-1,s=Object(n);(t?i--:++i<o)&&!1!==a(s[i],i,s););return n}}},25063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,o=Object(t),i=r(t),s=i.length;s--;){var c=i[e?s:++a];if(!1===n(o[c],c,o))break}return t}}},98805:(e,t,n)=>{var r=n(40180),a=n(62689),o=n(83140),i=n(79833);e.exports=function(e){return function(t){t=i(t);var n=a(t)?o(t):void 0,s=n?n[0]:t.charAt(0),c=n?r(n,1).join(""):t.slice(1);return s[e]()+c}}},35393:(e,t,n)=>{var r=n(62663),a=n(53816),o=n(58748),i=RegExp("['’]","g");e.exports=function(e){return function(t){return r(o(a(t).replace(i,"")),e,"")}}},67740:(e,t,n)=>{var r=n(67206),a=n(98612),o=n(3674);e.exports=function(e){return function(t,n,i){var s=Object(t);if(!a(t)){var c=r(n,3);t=o(t),n=function(e){return c(s[e],e,s)}}var l=e(t,n,i);return l>-1?s[c?t[l]:l]:void 0}}},23593:(e,t,n)=>{var r=n(58525),a=n(50308),o=n(21814),i=r&&1/o(new r([,-0]))[1]==1/0?function(e){return new r(e)}:a;e.exports=i},69389:(e,t,n)=>{var r=n(18674)({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"});e.exports=r},38777:(e,t,n)=>{var r=n(10852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=a},67114:(e,t,n)=>{var r=n(88668),a=n(82908),o=n(74757);e.exports=function(e,t,n,i,s,c){var l=1&n,u=e.length,f=t.length;if(u!=f&&!(l&&f>u))return!1;var p=c.get(e),h=c.get(t);if(p&&h)return p==t&&h==e;var d=-1,m=!0,v=2&n?new r:void 0;for(c.set(e,t),c.set(t,e);++d<u;){var g=e[d],b=t[d];if(i)var y=l?i(b,g,d,t,e,c):i(g,b,d,e,t,c);if(void 0!==y){if(y)continue;m=!1;break}if(v){if(!a(t,(function(e,t){if(!o(v,t)&&(g===e||s(g,e,n,i,c)))return v.push(t)}))){m=!1;break}}else if(g!==b&&!s(g,b,n,i,c)){m=!1;break}}return c.delete(e),c.delete(t),m}},18351:(e,t,n)=>{var r=n(62705),a=n(11149),o=n(77813),i=n(67114),s=n(68776),c=n(21814),l=r?r.prototype:void 0,u=l?l.valueOf:void 0;e.exports=function(e,t,n,r,l,f,p){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var h=s;case"[object Set]":var d=1&r;if(h||(h=c),e.size!=t.size&&!d)return!1;var m=p.get(e);if(m)return m==t;r|=2,p.set(e,t);var v=i(h(e),h(t),r,l,f,p);return p.delete(e),v;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},16096:(e,t,n)=>{var r=n(58234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,i,s){var c=1&n,l=r(e),u=l.length;if(u!=r(t).length&&!c)return!1;for(var f=u;f--;){var p=l[f];if(!(c?p in t:a.call(t,p)))return!1}var h=s.get(e),d=s.get(t);if(h&&d)return h==t&&d==e;var m=!0;s.set(e,t),s.set(t,e);for(var v=c;++f<u;){var g=e[p=l[f]],b=t[p];if(o)var y=c?o(b,g,p,t,e,s):o(g,b,p,e,t,s);if(!(void 0===y?g===b||i(g,b,n,o,s):y)){m=!1;break}v||(v="constructor"==p)}if(m&&!v){var _=e.constructor,w=t.constructor;_==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w||(m=!1)}return s.delete(e),s.delete(t),m}},31957:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:(e,t,n)=>{var r=n(68866),a=n(99551),o=n(3674);e.exports=function(e){return r(e,o,a)}},46904:(e,t,n)=>{var r=n(68866),a=n(51442),o=n(81704);e.exports=function(e){return r(e,o,a)}},45050:(e,t,n)=>{var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(89162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var o=t[n],i=e[o];t[n]=[o,i,r(i)]}return t}},10852:(e,t,n)=>{var r=n(28458),a=n(47801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},85924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:(e,t,n)=>{var r=n(62705),a=Object.prototype,o=a.hasOwnProperty,i=a.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var a=i.call(e);return r&&(t?e[s]=n:delete e[s]),a}},99551:(e,t,n)=>{var r=n(34963),a=n(70479),o=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return o.call(e,t)})))}:a;e.exports=s},51442:(e,t,n)=>{var r=n(62488),a=n(85924),o=n(99551),i=n(70479),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=a(e);return t}:i;e.exports=s},64160:(e,t,n)=>{var r=n(18552),a=n(57071),o=n(53818),i=n(58525),s=n(70577),c=n(44239),l=n(80346),u="[object Map]",f="[object Promise]",p="[object Set]",h="[object WeakMap]",d="[object DataView]",m=l(r),v=l(a),g=l(o),b=l(i),y=l(s),_=c;(r&&_(new r(new ArrayBuffer(1)))!=d||a&&_(new a)!=u||o&&_(o.resolve())!=f||i&&_(new i)!=p||s&&_(new s)!=h)&&(_=function(e){var t=c(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case m:return d;case v:return u;case g:return f;case b:return p;case y:return h}return t}),e.exports=_},47801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(71811),a=n(35694),o=n(1469),i=n(65776),s=n(41780),c=n(40327);e.exports=function(e,t,n){for(var l=-1,u=(t=r(t,e)).length,f=!1;++l<u;){var p=c(t[l]);if(!(f=null!=e&&n(e,p)))break;e=e[p]}return f||++l!=u?f:!!(u=null==e?0:e.length)&&s(u)&&i(p,u)&&(o(e)||a(e))}},62689:e=>{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},93157:e=>{var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},51789:(e,t,n)=>{var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:(e,t,n)=>{var r=n(94536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},21327:(e,t,n)=>{var r=n(94536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},81866:(e,t,n)=>{var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:(e,t,n)=>{var r=n(74318),a=n(57157),o=n(93147),i=n(40419),s=n(77133);e.exports=function(e,t,n){var c=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new c(+e);case"[object DataView]":return a(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":case"[object Set]":return new c;case"[object Number]":case"[object String]":return new c(e);case"[object RegExp]":return o(e);case"[object Symbol]":return i(e)}}},38517:(e,t,n)=>{var r=n(3118),a=n(85924),o=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(a(e))}},37285:(e,t,n)=>{var r=n(62705),a=n(35694),o=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||a(e)||!!(i&&e&&e[i])}},65776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},16612:(e,t,n)=>{var r=n(77813),a=n(98612),o=n(65776),i=n(13218);e.exports=function(e,t,n){if(!i(n))return!1;var s=typeof t;return!!("number"==s?a(n)&&o(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},15403:(e,t,n)=>{var r=n(1469),a=n(33448),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||i.test(e)||!o.test(e)||null!=t&&e in Object(t)}},37019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15346:(e,t,n)=>{var r,a=n(14429),o=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!o&&o in e}},25726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},89162:(e,t,n)=>{var r=n(13218);e.exports=function(e){return e==e&&!r(e)}},27040:e=>{e.exports=function(){this.__data__=[],this.size=0}},14125:(e,t,n)=>{var r=n(18470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():a.call(t,n,1),--this.size,0))}},82117:(e,t,n)=>{var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:(e,t,n)=>{var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},54705:(e,t,n)=>{var r=n(18470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},24785:(e,t,n)=>{var r=n(1989),a=n(38407),o=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||a),string:new r}}},11285:(e,t,n)=>{var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:(e,t,n)=>{var r=n(45050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},68776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},42634:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},24523:(e,t,n)=>{var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},94536:(e,t,n)=>{var r=n(10852)(Object,"create");e.exports=r},86916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},33498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:(e,t,n)=>{e=n.nmd(e);var r=n(31957),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a&&r.process,s=function(){try{return o&&o.require&&o.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=s},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},45357:(e,t,n)=>{var r=n(96874),a=Math.max;e.exports=function(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var o=arguments,i=-1,s=a(o.length-t,0),c=Array(s);++i<s;)c[i]=o[t+i];i=-1;for(var l=Array(t+1);++i<t;)l[i]=o[i];return l[t]=n(c),r(e,this,l)}}},40292:(e,t,n)=>{var r=n(97786),a=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,a(t,0,-1))}},55639:(e,t,n)=>{var r=n(31957),a="object"==typeof self&&self&&self.Object===Object&&self,o=r||a||Function("return this")();e.exports=o},36390:e=>{e.exports=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}},90619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:e=>{e.exports=function(e){return this.__data__.has(e)}},21814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},30061:(e,t,n)=>{var r=n(56560),a=n(21275)(r);e.exports=a},21275:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var a=t(),o=16-(a-r);if(r=a,o>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},73480:(e,t,n)=>{var r=n(69877);e.exports=function(e,t){var n=-1,a=e.length,o=a-1;for(t=void 0===t?a:t;++n<t;){var i=r(n,o),s=e[i];e[i]=e[n],e[n]=s}return e.length=t,e}},37465:(e,t,n)=>{var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:e=>{e.exports=function(e){return this.__data__.get(e)}},44758:e=>{e.exports=function(e){return this.__data__.has(e)}},34309:(e,t,n)=>{var r=n(38407),a=n(57071),o=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(i)}return n.set(e,t),this.size=n.size,this}},42351:e=>{e.exports=function(e,t,n){for(var r=n-1,a=e.length;++r<a;)if(e[r]===t)return r;return-1}},83140:(e,t,n)=>{var r=n(44286),a=n(62689),o=n(676);e.exports=function(e){return a(e)?o(e):r(e)}},55514:(e,t,n)=>{var r=n(24523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(o,"$1"):n||e)})),t}));e.exports=i},40327:(e,t,n)=>{var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},80346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},67990:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},83729:(e,t,n)=>{var r=n(18674)({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});e.exports=r},676:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",s="[\\ufe0e\\ufe0f]?",c=s+i+"(?:\\u200d(?:"+[r,a,o].join("|")+")"+s+i+")*",l="(?:"+[r+t+"?",t,a,o,"[\\ud800-\\udfff]"].join("|")+")",u=RegExp(n+"(?="+n+")|"+l+c,"g");e.exports=function(e){return e.match(u)||[]}},2757:e=>{var t="a-z\\xdf-\\xf6\\xf8-\\xff",n="A-Z\\xc0-\\xd6\\xd8-\\xde",r="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",a="["+r+"]",o="\\d+",i="["+t+"]",s="[^\\ud800-\\udfff"+r+o+"\\u2700-\\u27bf"+t+n+"]",c="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",u="["+n+"]",f="(?:"+i+"|"+s+")",p="(?:"+u+"|"+s+")",h="(?:['’](?:d|ll|m|re|s|t|ve))?",d="(?:['’](?:D|LL|M|RE|S|T|VE))?",m="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",v="[\\ufe0e\\ufe0f]?",g=v+m+"(?:\\u200d(?:"+["[^\\ud800-\\udfff]",c,l].join("|")+")"+v+m+")*",b="(?:"+["[\\u2700-\\u27bf]",c,l].join("|")+")"+g,y=RegExp([u+"?"+i+"+"+h+"(?="+[a,u,"$"].join("|")+")",p+"+"+d+"(?="+[a,u+f,"$"].join("|")+")",u+"?"+f+"+"+h,u+"+"+d,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",o,b].join("|"),"g");e.exports=function(e){return e.match(y)||[]}},68929:(e,t,n)=>{var r=n(48403),a=n(35393)((function(e,t,n){return t=t.toLowerCase(),e+(n?r(t):t)}));e.exports=a},48403:(e,t,n)=>{var r=n(79833),a=n(11700);e.exports=function(e){return a(r(e).toLowerCase())}},74691:(e,t,n)=>{var r=n(29750),a=n(14841);e.exports=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=a(n))==n?n:0),void 0!==t&&(t=(t=a(t))==t?t:0),r(a(e),t,n)}},66678:(e,t,n)=>{var r=n(85990);e.exports=function(e){return r(e,4)}},50361:(e,t,n)=>{var r=n(85990);e.exports=function(e){return r(e,5)}},39693:e=>{e.exports=function(e){for(var t=-1,n=null==e?0:e.length,r=0,a=[];++t<n;){var o=e[t];o&&(a[r++]=o)}return a}},57043:(e,t,n)=>{var r=n(62488),a=n(21078),o=n(278),i=n(1469);e.exports=function(){var e=arguments.length;if(!e)return[];for(var t=Array(e-1),n=arguments[0],s=e;s--;)t[s-1]=arguments[s];return r(i(n)?o(n):[n],a(t,1))}},75703:e=>{e.exports=function(e){return function(){return e}}},23279:(e,t,n)=>{var r=n(13218),a=n(7771),o=n(14841),i=Math.max,s=Math.min;e.exports=function(e,t,n){var c,l,u,f,p,h,d=0,m=!1,v=!1,g=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function b(t){var n=c,r=l;return c=l=void 0,d=t,f=e.apply(r,n)}function y(e){return d=e,p=setTimeout(w,t),m?b(e):f}function _(e){var n=e-h;return void 0===h||n>=t||n<0||v&&e-d>=u}function w(){var e=a();if(_(e))return x(e);p=setTimeout(w,function(e){var n=t-(e-h);return v?s(n,u-(e-d)):n}(e))}function x(e){return p=void 0,g&&c?b(e):(c=l=void 0,f)}function k(){var e=a(),n=_(e);if(c=arguments,l=this,h=e,n){if(void 0===p)return y(h);if(v)return clearTimeout(p),p=setTimeout(w,t),b(h)}return void 0===p&&(p=setTimeout(w,t)),f}return t=o(t)||0,r(n)&&(m=!!n.leading,u=(v="maxWait"in n)?i(o(n.maxWait)||0,t):u,g="trailing"in n?!!n.trailing:g),k.cancel=function(){void 0!==p&&clearTimeout(p),d=0,c=h=l=p=void 0},k.flush=function(){return void 0===p?f:x(a())},k}},53816:(e,t,n)=>{var r=n(69389),a=n(79833),o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,i=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=a(e))&&e.replace(o,r).replace(i,"")}},66073:(e,t,n)=>{e.exports=n(84486)},77813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},63105:(e,t,n)=>{var r=n(34963),a=n(80760),o=n(67206),i=n(1469);e.exports=function(e,t){return(i(e)?r:a)(e,o(t,3))}},13311:(e,t,n)=>{var r=n(67740)(n(30998));e.exports=r},30998:(e,t,n)=>{var r=n(41848),a=n(67206),o=n(40554),i=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var c=null==n?0:o(n);return c<0&&(c=i(s+c,0)),r(e,a(t,3),c)}},7436:(e,t,n)=>{var r=n(41848),a=n(67206),o=n(40554),i=Math.max,s=Math.min;e.exports=function(e,t,n){var c=null==e?0:e.length;if(!c)return-1;var l=c-1;return void 0!==n&&(l=o(n),l=n<0?i(c+l,0):s(l,c-1)),r(e,a(t,3),l,!0)}},8804:(e,t,n)=>{e.exports=n(91175)},85564:(e,t,n)=>{var r=n(21078);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},42348:(e,t,n)=>{var r=n(21078);e.exports=function(e){return null!=e&&e.length?r(e,1/0):[]}},84486:(e,t,n)=>{var r=n(77412),a=n(89881),o=n(54290),i=n(1469);e.exports=function(e,t){return(i(e)?r:a)(e,o(t))}},27361:(e,t,n)=>{var r=n(97786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},7739:(e,t,n)=>{var r=n(89465),a=n(55189),o=Object.prototype.hasOwnProperty,i=a((function(e,t,n){o.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=i},79095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},91175:e=>{e.exports=function(e){return e&&e.length?e[0]:void 0}},6557:e=>{e.exports=function(e){return e}},64721:(e,t,n)=>{var r=n(42118),a=n(98612),o=n(47037),i=n(40554),s=n(52628),c=Math.max;e.exports=function(e,t,n,l){e=a(e)?e:s(e),n=n&&!l?i(n):0;var u=e.length;return n<0&&(n=c(u+n,0)),o(e)?n<=u&&e.indexOf(t,n)>-1:!!u&&r(e,t,n)>-1}},35694:(e,t,n)=>{var r=n(9454),a=n(37005),o=Object.prototype,i=o.hasOwnProperty,s=o.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=c},1469:e=>{var t=Array.isArray;e.exports=t},98612:(e,t,n)=>{var r=n(23560),a=n(41780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},29246:(e,t,n)=>{var r=n(98612),a=n(37005);e.exports=function(e){return a(e)&&r(e)}},44144:(e,t,n)=>{e=n.nmd(e);var r=n(55639),a=n(95062),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,s=i&&i.exports===o?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||a;e.exports=c},41609:(e,t,n)=>{var r=n(280),a=n(64160),o=n(35694),i=n(1469),s=n(98612),c=n(44144),l=n(25726),u=n(36719),f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(i(e)||"string"==typeof e||"function"==typeof e.splice||c(e)||u(e)||o(e)))return!e.length;var t=a(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(l(e))return!r(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},18446:(e,t,n)=>{var r=n(90939);e.exports=function(e,t){return r(e,t)}},23560:(e,t,n)=>{var r=n(44239),a=n(13218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:(e,t,n)=>{var r=n(25588),a=n(7518),o=n(31167),i=o&&o.isMap,s=i?a(i):r;e.exports=s},13218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},68630:(e,t,n)=>{var r=n(44239),a=n(85924),o=n(37005),i=Function.prototype,s=Object.prototype,c=i.toString,l=s.hasOwnProperty,u=c.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=a(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==u}},72928:(e,t,n)=>{var r=n(29221),a=n(7518),o=n(31167),i=o&&o.isSet,s=i?a(i):r;e.exports=s},47037:(e,t,n)=>{var r=n(44239),a=n(1469),o=n(37005);e.exports=function(e){return"string"==typeof e||!a(e)&&o(e)&&"[object String]"==r(e)}},33448:(e,t,n)=>{var r=n(44239),a=n(37005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},36719:(e,t,n)=>{var r=n(38749),a=n(7518),o=n(31167),i=o&&o.isTypedArray,s=i?a(i):r;e.exports=s},24350:(e,t,n)=>{var r=n(89465),a=n(55189)((function(e,t,n){r(e,n,t)}));e.exports=a},3674:(e,t,n)=>{var r=n(14636),a=n(280),o=n(98612);e.exports=function(e){return o(e)?r(e):a(e)}},81704:(e,t,n)=>{var r=n(14636),a=n(10313),o=n(98612);e.exports=function(e){return o(e)?r(e,!0):a(e)}},10928:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},35161:(e,t,n)=>{var r=n(29932),a=n(67206),o=n(69199),i=n(1469);e.exports=function(e,t){return(i(e)?r:o)(e,a(t,3))}},84753:(e,t,n)=>{var r=n(56029),a=n(53325),o=n(67206);e.exports=function(e,t){return e&&e.length?r(e,o(t,2),a):void 0}},88306:(e,t,n)=>{var r=n(83369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},82492:(e,t,n)=>{var r=n(42980),a=n(21463)((function(e,t,n){r(e,t,n)}));e.exports=a},30236:(e,t,n)=>{var r=n(42980),a=n(21463)((function(e,t,n,a){r(e,t,n,a)}));e.exports=a},22762:(e,t,n)=>{var r=n(56029),a=n(67206),o=n(70433);e.exports=function(e,t){return e&&e.length?r(e,a(t,2),o):void 0}},94885:e=>{e.exports=function(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}},50308:e=>{e.exports=function(){}},7771:(e,t,n)=>{var r=n(55639);e.exports=function(){return r.Date.now()}},14176:(e,t,n)=>{var r=n(67206),a=n(94885),o=n(35937);e.exports=function(e,t){return o(e,a(r(t)))}},75472:(e,t,n)=>{var r=n(82689),a=n(1469);e.exports=function(e,t,n,o){return null==e?[]:(a(t)||(t=null==t?[]:[t]),a(n=o?void 0:n)||(n=null==n?[]:[n]),r(e,t,n))}},35937:(e,t,n)=>{var r=n(29932),a=n(67206),o=n(63012),i=n(46904);e.exports=function(e,t){if(null==e)return{};var n=r(i(e),(function(e){return[e]}));return t=a(t),o(e,n,(function(e,n){return t(e,n[0])}))}},39601:(e,t,n)=>{var r=n(40371),a=n(79152),o=n(15403),i=n(40327);e.exports=function(e){return o(e)?r(i(e)):a(e)}},54061:(e,t,n)=>{var r=n(62663),a=n(89881),o=n(67206),i=n(10107),s=n(1469);e.exports=function(e,t,n){var c=s(e)?r:i,l=arguments.length<3;return c(e,o(t,4),n,l,a)}},43063:(e,t,n)=>{var r=n(34963),a=n(80760),o=n(67206),i=n(1469),s=n(94885);e.exports=function(e,t){return(i(e)?r:a)(e,s(o(t,3)))}},82729:(e,t,n)=>{var r=n(67206),a=n(15742);e.exports=function(e,t){var n=[];if(!e||!e.length)return n;var o=-1,i=[],s=e.length;for(t=r(t,3);++o<s;){var c=e[o];t(c,o,e)&&(n.push(c),i.push(o))}return a(e,i),n}},36968:(e,t,n)=>{var r=n(10611);e.exports=function(e,t,n){return null==e?e:r(e,t,n)}},69983:(e,t,n)=>{var r=n(70151),a=n(25127),o=n(1469);e.exports=function(e){return(o(e)?r:a)(e)}},12571:(e,t,n)=>{var r=n(14259),a=n(16612),o=n(40554);e.exports=function(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&a(e,t,n)?(t=0,n=i):(t=null==t?0:o(t),n=void 0===n?i:o(n)),r(e,t,n)):[]}},89734:(e,t,n)=>{var r=n(21078),a=n(82689),o=n(5976),i=n(16612),s=o((function(e,t){if(null==e)return[];var n=t.length;return n>1&&i(e,t[0],t[1])?t=[]:n>2&&i(t[0],t[1],t[2])&&(t=[t[0]]),a(e,r(t,1),[])}));e.exports=s},70479:e=>{e.exports=function(){return[]}},95062:e=>{e.exports=function(){return!1}},73303:(e,t,n)=>{var r=n(67206),a=n(67762);e.exports=function(e,t){return e&&e.length?a(e,r(t,2)):0}},69572:(e,t,n)=>{var r=n(14259),a=n(40554);e.exports=function(e,t,n){return e&&e.length?(t=n||void 0===t?1:a(t),r(e,0,t<0?0:t)):[]}},69579:(e,t,n)=>{var r=n(14259),a=n(40554);e.exports=function(e,t,n){var o=null==e?0:e.length;return o?(t=n||void 0===t?1:a(t),r(e,(t=o-t)<0?0:t,o)):[]}},23493:(e,t,n)=>{var r=n(23279),a=n(13218);e.exports=function(e,t,n){var o=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return a(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),r(e,t,{leading:o,maxWait:t,trailing:i})}},18601:(e,t,n)=>{var r=n(14841);e.exports=function(e){return e?Infinity===(e=r(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},40554:(e,t,n)=>{var r=n(18601);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},14841:(e,t,n)=>{var r=n(27561),a=n(13218),o=n(33448),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=s.test(e);return n||c.test(e)?l(e.slice(2),n?2:8):i.test(e)?NaN:+e}},59881:(e,t,n)=>{var r=n(98363),a=n(81704);e.exports=function(e){return r(e,a(e))}},79833:(e,t,n)=>{var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},92742:(e,t,n)=>{var r=n(80531),a=n(27561),o=n(40180),i=n(5512),s=n(89817),c=n(83140),l=n(79833);e.exports=function(e,t,n){if((e=l(e))&&(n||void 0===t))return a(e);if(!e||!(t=r(t)))return e;var u=c(e),f=c(t),p=s(u,f),h=i(u,f)+1;return o(u,p,h).join("")}},27955:(e,t,n)=>{var r=n(79833),a=n(83729),o=/&(?:amp|lt|gt|quot|#39);/g,i=RegExp(o.source);e.exports=function(e){return(e=r(e))&&i.test(e)?e.replace(o,a):e}},44908:(e,t,n)=>{var r=n(45652);e.exports=function(e){return e&&e.length?r(e):[]}},45578:(e,t,n)=>{var r=n(67206),a=n(45652);e.exports=function(e,t){return e&&e.length?a(e,r(t,2)):[]}},87185:(e,t,n)=>{var r=n(45652);e.exports=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?r(e,void 0,t):[]}},73955:(e,t,n)=>{var r=n(79833),a=0;e.exports=function(e){var t=++a;return r(e)+t}},11700:(e,t,n)=>{var r=n(98805)("toUpperCase");e.exports=r},52628:(e,t,n)=>{var r=n(47415),a=n(3674);e.exports=function(e){return null==e?[]:r(e,a(e))}},58748:(e,t,n)=>{var r=n(49029),a=n(93157),o=n(79833),i=n(2757);e.exports=function(e,t,n){return e=o(e),void 0===(t=n?void 0:t)?a(e)?i(e):r(e):e.match(t)||[]}},7059:function(e){e.exports=function(){"use strict";var e="undefined"!=typeof document&&document.documentMode,t={rootMargin:"0px",threshold:0,load:function(t){if("picture"===t.nodeName.toLowerCase()){var n=t.querySelector("img"),r=!1;null===n&&(n=document.createElement("img"),r=!0),e&&t.getAttribute("data-iesrc")&&(n.src=t.getAttribute("data-iesrc")),t.getAttribute("data-alt")&&(n.alt=t.getAttribute("data-alt")),r&&t.append(n)}if("video"===t.nodeName.toLowerCase()&&!t.getAttribute("data-src")&&t.children){for(var a=t.children,o=void 0,i=0;i<=a.length-1;i++)(o=a[i].getAttribute("data-src"))&&(a[i].src=o);t.load()}t.getAttribute("data-poster")&&(t.poster=t.getAttribute("data-poster")),t.getAttribute("data-src")&&(t.src=t.getAttribute("data-src")),t.getAttribute("data-srcset")&&t.setAttribute("srcset",t.getAttribute("data-srcset"));var s=",";if(t.getAttribute("data-background-delimiter")&&(s=t.getAttribute("data-background-delimiter")),t.getAttribute("data-background-image"))t.style.backgroundImage="url('"+t.getAttribute("data-background-image").split(s).join("'),url('")+"')";else if(t.getAttribute("data-background-image-set")){var c=t.getAttribute("data-background-image-set").split(s),l=c[0].substr(0,c[0].indexOf(" "))||c[0];l=-1===l.indexOf("url(")?"url("+l+")":l,1===c.length?t.style.backgroundImage=l:t.setAttribute("style",(t.getAttribute("style")||"")+"background-image: "+l+"; background-image: -webkit-image-set("+c+"); background-image: image-set("+c+")")}t.getAttribute("data-toggle-class")&&t.classList.toggle(t.getAttribute("data-toggle-class"))},loaded:function(){}};function n(e){e.setAttribute("data-loaded",!0)}var r=function(e){return"true"===e.getAttribute("data-loaded")},a=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:document;return e instanceof Element?[e]:e instanceof NodeList?e:t.querySelectorAll(e)};return function(){var e,o,i=0<arguments.length&&void 0!==arguments[0]?arguments[0]:".lozad",s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},c=Object.assign({},t,s),l=c.root,u=c.rootMargin,f=c.threshold,p=c.load,h=c.loaded,d=void 0;"undefined"!=typeof window&&window.IntersectionObserver&&(d=new IntersectionObserver((e=p,o=h,function(t,a){t.forEach((function(t){(0<t.intersectionRatio||t.isIntersecting)&&(a.unobserve(t.target),r(t.target)||(e(t.target),n(t.target),o(t.target)))}))}),{root:l,rootMargin:u,threshold:f}));for(var m,v=a(i,l),g=0;g<v.length;g++)(m=v[g]).getAttribute("data-placeholder-background")&&(m.style.background=m.getAttribute("data-placeholder-background"));return{observe:function(){for(var e=a(i,l),t=0;t<e.length;t++)r(e[t])||(d?d.observe(e[t]):(p(e[t]),n(e[t]),h(e[t])))},triggerLoad:function(e){r(e)||(p(e),n(e),h(e))},observer:d}}}()},28490:(e,t,n)=>{"use strict";var r=n(17673),a=n(8575),o=n(47529);const i=parseInt({NODE_ENV:"production"}.PARSE_LINK_HEADER_MAXLEN)||2e3,s=null!={NODE_ENV:"production"}.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED;function c(e){return e&&e.rel}function l(e,t){return t.rel.split(/\s+/).forEach((function(n){e[n]=o(t,{rel:n})})),e}function u(e,t){var n=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return n&&(e[n[1]]=n[2]),e}function f(e){try{var t=e.match(/<?([^>]*)>(.*)/),n=t[1],i=t[2].split(";"),s=a.parse(n),c=r.parse(s.query);i.shift();var l=i.reduce(u,{});return(l=o(c,l)).url=n,l}catch(e){return null}}e.exports=function(e){return function(e){if(!e)return!1;if(e.length>i){if(s)throw new Error("Input string too long, it should be under "+i+" characters.");return!1}return!0}(e)?e.split(/,\s*</).map(f).filter(c).reduce(l,{}):null}},90837:(e,t,n)=>{"use strict";n.d(t,{sk:()=>w});var r=e=>"function"==typeof e?e:function(){return e},a="undefined"!=typeof self?self:null,o="undefined"!=typeof window?window:null,i=a||o||void 0,s="closed",c="errored",l="joined",u="joining",f="leaving",p="phx_close",h="phx_error",d="phx_reply",m="phx_leave",v=class{constructor(e,t,n,r){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=r,this.timeoutTimer=null,this.recHooks=[],this.sent=!1}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(e,t){return this.hasReceived(e)&&t(this.receivedResp.response),this.recHooks.push({status:e,callback:t}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}matchReceive({status:e,response:t,_ref:n}){this.recHooks.filter((t=>t.status===e)).forEach((e=>e.callback(t)))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,(e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)})),this.timeoutTimer=setTimeout((()=>{this.trigger("timeout",{})}),this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,t){this.channel.trigger(this.refEvent,{status:e,response:t})}},g=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=null,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout((()=>{this.tries=this.tries+1,this.callback()}),this.timerCalc(this.tries+1))}},b=class{static request(e,t,n,r,a,o,s){if(i.XDomainRequest){let n=new i.XDomainRequest;this.xdomainRequest(n,e,t,r,a,o,s)}else{let c=new i.XMLHttpRequest;this.xhrRequest(c,e,t,n,r,a,o,s)}}static xdomainRequest(e,t,n,r,a,o,i){e.timeout=a,e.open(t,n),e.onload=()=>{let t=this.parseJSON(e.responseText);i&&i(t)},o&&(e.ontimeout=o),e.onprogress=()=>{},e.send(r)}static xhrRequest(e,t,n,r,a,o,i,s){e.open(t,n,!0),e.timeout=o,e.setRequestHeader("Content-Type",r),e.onerror=()=>{s&&s(null)},e.onreadystatechange=()=>{if(4===e.readyState&&s){let t=this.parseJSON(e.responseText);s(t)}},i&&(e.ontimeout=i),e.send(a)}static parseJSON(e){if(!e||""===e)return null;try{return JSON.parse(e)}catch(t){return console&&console.log("failed to parse JSON response",e),null}}static serialize(e,t){let n=[];for(var r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let a=t?`${t}[${r}]`:r,o=e[r];"object"==typeof o?n.push(this.serialize(o,a)):n.push(encodeURIComponent(a)+"="+encodeURIComponent(o))}return n.join("&")}static appendParams(e,t){if(0===Object.keys(t).length)return e;let n=e.match(/\?/)?"&":"?";return`${e}${n}${this.serialize(t)}`}},y=class{constructor(e){this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=0,this.poll()}normalizeEndpoint(e){return e.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/websocket"),"$1/longpoll")}endpointURL(){return b.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(){this.close(),this.readyState=0}ontimeout(){this.onerror("timeout"),this.closeAndRetry()}poll(){1!==this.readyState&&0!==this.readyState||b.request("GET",this.endpointURL(),"application/json",null,this.timeout,this.ontimeout.bind(this),(e=>{if(e){var{status:t,token:n,messages:r}=e;this.token=n}else t=0;switch(t){case 200:r.forEach((e=>{setTimeout((()=>{this.onmessage({data:e})}),0)})),this.poll();break;case 204:this.poll();break;case 410:this.readyState=1,this.onopen(),this.poll();break;case 403:this.onerror(),this.close();break;case 0:case 500:this.onerror(),this.closeAndRetry();break;default:throw new Error(`unhandled poll status ${t}`)}}))}send(e){b.request("POST",this.endpointURL(),"application/json",e,this.timeout,this.onerror.bind(this,"timeout"),(e=>{e&&200===e.status||(this.onerror(e&&e.status),this.closeAndRetry())}))}close(e,t){this.readyState=3,this.onclose()}},_={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,t){if(e.payload.constructor===ArrayBuffer)return t(this.binaryEncode(e));{let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}},decode(e,t){if(e.constructor===ArrayBuffer)return t(this.binaryDecode(e));{let[n,r,a,o,i]=JSON.parse(e);return t({join_ref:n,ref:r,topic:a,event:o,payload:i})}},binaryEncode(e){let{join_ref:t,ref:n,event:r,topic:a,payload:o}=e,i=this.META_LENGTH+t.length+n.length+a.length+r.length,s=new ArrayBuffer(this.HEADER_LENGTH+i),c=new DataView(s),l=0;c.setUint8(l++,this.KINDS.push),c.setUint8(l++,t.length),c.setUint8(l++,n.length),c.setUint8(l++,a.length),c.setUint8(l++,r.length),Array.from(t,(e=>c.setUint8(l++,e.charCodeAt(0)))),Array.from(n,(e=>c.setUint8(l++,e.charCodeAt(0)))),Array.from(a,(e=>c.setUint8(l++,e.charCodeAt(0)))),Array.from(r,(e=>c.setUint8(l++,e.charCodeAt(0))));var u=new Uint8Array(s.byteLength+o.byteLength);return u.set(new Uint8Array(s),0),u.set(new Uint8Array(o),s.byteLength),u.buffer},binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,r);case this.KINDS.reply:return this.decodeReply(e,t,r);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,r)}},decodePush(e,t,n){let r=t.getUint8(1),a=t.getUint8(2),o=t.getUint8(3),i=this.HEADER_LENGTH+this.META_LENGTH-1,s=n.decode(e.slice(i,i+r));i+=r;let c=n.decode(e.slice(i,i+a));i+=a;let l=n.decode(e.slice(i,i+o));return i+=o,{join_ref:s,ref:null,topic:c,event:l,payload:e.slice(i,e.byteLength)}},decodeReply(e,t,n){let r=t.getUint8(1),a=t.getUint8(2),o=t.getUint8(3),i=t.getUint8(4),s=this.HEADER_LENGTH+this.META_LENGTH,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+a));s+=a;let u=n.decode(e.slice(s,s+o));s+=o;let f=n.decode(e.slice(s,s+i));s+=i;let p=e.slice(s,e.byteLength);return{join_ref:c,ref:l,topic:u,event:d,payload:{status:f,response:p}}},decodeBroadcast(e,t,n){let r=t.getUint8(1),a=t.getUint8(2),o=this.HEADER_LENGTH+2,i=n.decode(e.slice(o,o+r));o+=r;let s=n.decode(e.slice(o,o+a));return o+=a,{join_ref:null,ref:null,topic:i,event:s,payload:e.slice(o,e.byteLength)}}},w=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.timeout=t.timeout||1e4,this.transport=t.transport||i.WebSocket||y,this.establishedConnections=0,this.defaultEncoder=_.encode.bind(_),this.defaultDecoder=_.decode.bind(_),this.closeWasClean=!1,this.binaryType=t.binaryType||"arraybuffer",this.connectClock=1,this.transport!==y?(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let n=null;o&&o.addEventListener&&(o.addEventListener("pagehide",(e=>{this.conn&&(this.disconnect(),n=this.connectClock)})),o.addEventListener("pageshow",(e=>{n===this.connectClock&&(n=null,this.connect())}))),this.heartbeatIntervalMs=t.heartbeatIntervalMs||3e4,this.rejoinAfterMs=e=>t.rejoinAfterMs?t.rejoinAfterMs(e):[1e3,2e3,5e3][e-1]||1e4,this.reconnectAfterMs=e=>t.reconnectAfterMs?t.reconnectAfterMs(e):[10,50,100,150,200,250,500,1e3,2e3][e-1]||5e3,this.logger=t.logger||null,this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=r(t.params||{}),this.endPoint=`${e}/websocket`,this.vsn=t.vsn||"2.0.0",this.heartbeatTimer=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new g((()=>{this.teardown((()=>this.connect()))}),this.reconnectAfterMs)}replaceTransport(e){this.disconnect(),this.transport=e}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let e=b.appendParams(b.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return"/"!==e.charAt(0)?e:"/"===e.charAt(1)?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`}disconnect(e,t,n){this.connectClock++,this.closeWasClean=!0,this.reconnectTimer.reset(),this.teardown(e,t,n)}connect(e){this.connectClock++,e&&(console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=r(e)),this.conn||(this.closeWasClean=!1,this.conn=new this.transport(this.endPointURL()),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=e=>this.onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this.onConnClose(e))}log(e,t,n){this.logger(e,t,n)}hasLogger(){return null!==this.logger}onOpen(e){let t=this.makeRef();return this.stateChangeCallbacks.open.push([t,e]),t}onClose(e){let t=this.makeRef();return this.stateChangeCallbacks.close.push([t,e]),t}onError(e){let t=this.makeRef();return this.stateChangeCallbacks.error.push([t,e]),t}onMessage(e){let t=this.makeRef();return this.stateChangeCallbacks.message.push([t,e]),t}onConnOpen(){this.hasLogger()&&this.log("transport",`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.resetHeartbeat(),this.stateChangeCallbacks.open.forEach((([,e])=>e()))}heartbeatTimeout(){this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null,this.hasLogger()&&this.log("transport","heartbeat timeout. Attempting to re-establish connection"),this.abnormalClose("heartbeat timeout"))}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,clearTimeout(this.heartbeatTimer),setTimeout((()=>this.sendHeartbeat()),this.heartbeatIntervalMs))}teardown(e,t,n){if(!this.conn)return e&&e();this.waitForBufferDone((()=>{this.conn&&(t?this.conn.close(t,n||""):this.conn.close()),this.waitForSocketClosed((()=>{this.conn&&(this.conn.onclose=function(){},this.conn=null),e&&e()}))}))}waitForBufferDone(e,t=1){5!==t&&this.conn&&this.conn.bufferedAmount?setTimeout((()=>{this.waitForBufferDone(e,t+1)}),150*t):e()}waitForSocketClosed(e,t=1){5!==t&&this.conn&&3!==this.conn.readyState?setTimeout((()=>{this.waitForSocketClosed(e,t+1)}),150*t):e()}onConnClose(e){this.hasLogger()&&this.log("transport","close",e),this.triggerChanError(),clearTimeout(this.heartbeatTimer),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach((([,t])=>t(e)))}onConnError(e){this.hasLogger()&&this.log("transport",e);let t=this.transport,n=this.establishedConnections;this.stateChangeCallbacks.error.forEach((([,r])=>{r(e,t,n)})),(t===this.transport||n>0)&&this.triggerChanError()}triggerChanError(){this.channels.forEach((e=>{e.isErrored()||e.isLeaving()||e.isClosed()||e.trigger(h)}))}connectionState(){switch(this.conn&&this.conn.readyState){case 0:return"connecting";case 1:return"open";case 2:return"closing";default:return"closed"}}isConnected(){return"open"===this.connectionState()}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter((t=>t.joinRef()!==e.joinRef()))}off(e){for(let t in this.stateChangeCallbacks)this.stateChangeCallbacks[t]=this.stateChangeCallbacks[t].filter((([t])=>-1===e.indexOf(t)))}channel(e,t={}){let n=new class{constructor(e,t,n){this.state=s,this.topic=e,this.params=r(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new v(this,"phx_join",this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new g((()=>{this.socket.isConnected()&&this.rejoin()}),this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError((()=>this.rejoinTimer.reset()))),this.stateChangeRefs.push(this.socket.onOpen((()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()}))),this.joinPush.receive("ok",(()=>{this.state=l,this.rejoinTimer.reset(),this.pushBuffer.forEach((e=>e.send())),this.pushBuffer=[]})),this.joinPush.receive("error",(()=>{this.state=c,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()})),this.onClose((()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=s,this.socket.remove(this)})),this.onError((e=>{this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,e),this.isJoining()&&this.joinPush.reset(),this.state=c,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()})),this.joinPush.receive("timeout",(()=>{this.socket.hasLogger()&&this.socket.log("channel",`timeout ${this.topic} (${this.joinRef()})`,this.joinPush.timeout),new v(this,m,r({}),this.timeout).send(),this.state=c,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()})),this.on(d,((e,t)=>{this.trigger(this.replyEventName(t),e)}))}join(e=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}onClose(e){this.on(p,e)}onError(e){return this.on(h,(t=>e(t)))}on(e,t){let n=this.bindingRef++;return this.bindings.push({event:e,ref:n,callback:t}),n}off(e,t){this.bindings=this.bindings.filter((n=>!(n.event===e&&(void 0===t||t===n.ref))))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,n=this.timeout){if(t=t||{},!this.joinedOnce)throw new Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let r=new v(this,e,(function(){return t}),n);return this.canPush()?r.send():(r.startTimeout(),this.pushBuffer.push(r)),r}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=f;let t=()=>{this.socket.hasLogger()&&this.socket.log("channel",`leave ${this.topic}`),this.trigger(p,"leave")},n=new v(this,m,r({}),e);return n.receive("ok",(()=>t())).receive("timeout",(()=>t())),n.send(),this.canPush()||n.trigger("ok",{}),n}onMessage(e,t,n){return t}isMember(e,t,n,r){return!(this.topic!==e||r&&r!==this.joinRef()&&(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:e,event:t,payload:n,joinRef:r}),1))}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=u,this.joinPush.resend(e))}trigger(e,t,n,r){let a=this.onMessage(e,t,n,r);if(t&&!a)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let o=this.bindings.filter((t=>t.event===e));for(let e=0;e<o.length;e++)o[e].callback(a,n,r||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===s}isErrored(){return this.state===c}isJoined(){return this.state===l}isJoining(){return this.state===u}isLeaving(){return this.state===f}}(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:r,ref:a,join_ref:o}=e;this.log("push",`${t} ${n} (${o}, ${a})`,r)}this.isConnected()?this.encode(e,(e=>this.conn.send(e))):this.sendBuffer.push((()=>this.encode(e,(e=>this.conn.send(e)))))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){this.pendingHeartbeatRef&&!this.isConnected()||(this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.heartbeatTimer=setTimeout((()=>this.heartbeatTimeout()),this.heartbeatIntervalMs))}abnormalClose(e){this.closeWasClean=!1,this.isConnected()&&this.conn.close(1e3,e)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach((e=>e())),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,(e=>{let{topic:t,event:n,payload:r,ref:a,join_ref:o}=e;a&&a===this.pendingHeartbeatRef&&(clearTimeout(this.heartbeatTimer),this.pendingHeartbeatRef=null,setTimeout((()=>this.sendHeartbeat()),this.heartbeatIntervalMs)),this.hasLogger()&&this.log("receive",`${r.status||""} ${t} ${n} ${a&&"("+a+")"||""}`,r);for(let e=0;e<this.channels.length;e++){const i=this.channels[e];i.isMember(t,n,r,o)&&i.trigger(n,r,a,o)}for(let t=0;t<this.stateChangeCallbacks.message.length;t++){let[,n]=this.stateChangeCallbacks.message[t];n(e)}}))}leaveOpenTopic(e){let t=this.channels.find((t=>t.topic===e&&(t.isJoined()||t.isJoining())));t&&(this.hasLogger()&&this.log("transport",`leaving duplicate topic "${e}"`),t.leave())}}},35748:(e,t,n)=>{"use strict";n.d(t,{Z:()=>b});const r=2147483647,a=36,o=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,c={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,u=String.fromCharCode;function f(e){throw new RangeError(c[e])}function p(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const a=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function h(e){const t=[];let n=0;const r=e.length;for(;n<r;){const a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&a)<<10)+(1023&r)+65536):(t.push(a),n--)}else t.push(a)}return t}const d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},m=function(e,t,n){let r=0;for(e=n?l(e/700):e>>1,e+=l(e/t);e>455;r+=a)e=l(e/35);return l(r+36*e/(e+38))},v=function(e){const t=[],n=e.length;let o=0,i=128,s=72,c=e.lastIndexOf("-");c<0&&(c=0);for(let n=0;n<c;++n)e.charCodeAt(n)>=128&&f("not-basic"),t.push(e.charCodeAt(n));for(let p=c>0?c+1:0;p<n;){let c=o;for(let t=1,i=a;;i+=a){p>=n&&f("invalid-input");const c=(u=e.charCodeAt(p++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:a;(c>=a||c>l((r-o)/t))&&f("overflow"),o+=c*t;const h=i<=s?1:i>=s+26?26:i-s;if(c<h)break;const d=a-h;t>l(r/d)&&f("overflow"),t*=d}const h=t.length+1;s=m(o-c,h,0==c),l(o/h)>r-i&&f("overflow"),i+=l(o/h),o%=h,t.splice(o++,0,i)}var u;return String.fromCodePoint(...t)},g=function(e){const t=[];let n=(e=h(e)).length,o=128,i=0,s=72;for(const n of e)n<128&&t.push(u(n));let c=t.length,p=c;for(c&&t.push("-");p<n;){let n=r;for(const t of e)t>=o&&t<n&&(n=t);const h=p+1;n-o>l((r-i)/h)&&f("overflow"),i+=(n-o)*h,o=n;for(const n of e)if(n<o&&++i>r&&f("overflow"),n==o){let e=i;for(let n=a;;n+=a){const r=n<=s?1:n>=s+26?26:n-s;if(e<r)break;const o=e-r,i=a-r;t.push(u(d(r+o%i,0))),e=l(o/i)}t.push(u(d(e,0))),s=m(i,h,p==c),i=0,++p}++i,++o}return t.join("")},b={version:"2.1.0",ucs2:{decode:h,encode:e=>String.fromCodePoint(...e)},decode:v,encode:g,toASCII:function(e){return p(e,(function(e){return i.test(e)?"xn--"+g(e):e}))},toUnicode:function(e){return p(e,(function(e){return o.test(e)?v(e.slice(4).toLowerCase()):e}))}}},74971:function(e,t,n){var r;e=n.nmd(e),function(a){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof n.g&&n.g;o.global!==o&&o.window!==o&&o.self;var i,s=2147483647,c=36,l=/^xn--/,u=/[^\x20-\x7E]/,f=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},h=Math.floor,d=String.fromCharCode;function m(e){throw RangeError(p[e])}function v(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function g(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+v((e=e.replace(f,".")).split("."),t).join(".")}function b(e){for(var t,n,r=[],a=0,o=e.length;a<o;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<o?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function y(e){return v(e,(function(e){var t="";return e>65535&&(t+=d((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+d(e)})).join("")}function _(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function w(e,t,n){var r=0;for(e=n?h(e/700):e>>1,e+=h(e/t);e>455;r+=c)e=h(e/35);return h(r+36*e/(e+38))}function x(e){var t,n,r,a,o,i,l,u,f,p,d,v=[],g=e.length,b=0,_=128,x=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&m("not-basic"),v.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<g;){for(o=b,i=1,l=c;a>=g&&m("invalid-input"),((u=(d=e.charCodeAt(a++))-48<10?d-22:d-65<26?d-65:d-97<26?d-97:c)>=c||u>h((s-b)/i))&&m("overflow"),b+=u*i,!(u<(f=l<=x?1:l>=x+26?26:l-x));l+=c)i>h(s/(p=c-f))&&m("overflow"),i*=p;x=w(b-o,t=v.length+1,0==o),h(b/t)>s-_&&m("overflow"),_+=h(b/t),b%=t,v.splice(b++,0,_)}return y(v)}function k(e){var t,n,r,a,o,i,l,u,f,p,v,g,y,x,k,C=[];for(g=(e=b(e)).length,t=128,n=0,o=72,i=0;i<g;++i)(v=e[i])<128&&C.push(d(v));for(r=a=C.length,a&&C.push("-");r<g;){for(l=s,i=0;i<g;++i)(v=e[i])>=t&&v<l&&(l=v);for(l-t>h((s-n)/(y=r+1))&&m("overflow"),n+=(l-t)*y,t=l,i=0;i<g;++i)if((v=e[i])<t&&++n>s&&m("overflow"),v==t){for(u=n,f=c;!(u<(p=f<=o?1:f>=o+26?26:f-o));f+=c)k=u-p,x=c-p,C.push(d(_(p+k%x,0))),u=h(k/x);C.push(d(_(u,0))),o=w(n,y,r==a),n=0,++r}++n,++t}return C.join("")}i={version:"1.3.2",ucs2:{decode:b,encode:y},decode:x,encode:k,toASCII:function(e){return g(e,(function(e){return u.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return g(e,(function(e){return l.test(e)?x(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},62587:e=>{"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,a){n=n||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var i=/\+/g;e=e.split(n);var s=1e3;a&&"number"==typeof a.maxKeys&&(s=a.maxKeys);var c=e.length;s>0&&c>s&&(c=s);for(var l=0;l<c;++l){var u,f,p,h,d=e[l].replace(i,"%20"),m=d.indexOf(r);m>=0?(u=d.substr(0,m),f=d.substr(m+1)):(u=d,f=""),p=decodeURIComponent(u),h=decodeURIComponent(f),t(o,p)?Array.isArray(o[p])?o[p].push(h):o[p]=[o[p],h]:o[p]=h}return o}},12361:e=>{"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,a){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var o=encodeURIComponent(t(a))+r;return Array.isArray(e[a])?e[a].map((function(e){return o+encodeURIComponent(t(e))})).join(n):o+encodeURIComponent(t(e[a]))})).join(n):a?encodeURIComponent(t(a))+r+encodeURIComponent(t(e)):""}},17673:(e,t,n)=>{"use strict";t.decode=t.parse=n(62587),t.encode=t.stringify=n(12361)},56012:(e,t)=>{var n="/sw-pleroma.js";Object.defineProperty(t,"__esModule",{value:!0}),t.default={register:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!!navigator.serviceWorker&&navigator.serviceWorker.register(n,e)}},e.exports=t.default},8575:(e,t,n)=>{"use strict";var r=n(74971),a=n(62502);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){return a.isString(e)&&(e=y(e)),e instanceof o?e.format():o.prototype.format.call(e)},t.Url=o;var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),f=["%","/","?",";","#"].concat(u),p=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(17673);function y(e,t,n){if(e&&a.isObject(e)&&e instanceof o)return e;var r=new o;return r.parse(e,t,n),r}o.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var y=e=l.join(s);if(y=y.trim(),!n&&1===e.split("#").length){var _=c.exec(y);if(_)return this.path=y,this.href=y,this.pathname=_[1],_[2]?(this.search=_[2],this.query=t?b.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=i.exec(y);if(w){var x=(w=w[0]).toLowerCase();this.protocol=x,y=y.substr(w.length)}if(n||w||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var k="//"===y.substr(0,2);!k||w&&v[w]||(y=y.substr(2),this.slashes=!0)}if(!v[w]&&(k||w&&!g[w])){for(var C,E,N=-1,S=0;S<p.length;S++)-1!==(O=y.indexOf(p[S]))&&(-1===N||O<N)&&(N=O);for(-1!==(E=-1===N?y.lastIndexOf("@"):y.lastIndexOf("@",N))&&(C=y.slice(0,E),y=y.slice(E+1),this.auth=decodeURIComponent(C)),N=-1,S=0;S<f.length;S++){var O;-1!==(O=y.indexOf(f[S]))&&(-1===N||O<N)&&(N=O)}-1===N&&(N=y.length),this.host=y.slice(0,N),y=y.slice(N),this.parseHost(),this.hostname=this.hostname||"";var j="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!j)for(var L=this.hostname.split(/\./),A=(S=0,L.length);S<A;S++){var M=L[S];if(M&&!M.match(h)){for(var I="",T=0,R=M.length;T<R;T++)M.charCodeAt(T)>127?I+="x":I+=M[T];if(!I.match(h)){var P=L.slice(0,S),z=L.slice(S+1),F=M.match(d);F&&(P.push(F[1]),z.unshift(F[2])),z.length&&(y="/"+z.join(".")+y),this.hostname=P.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=r.toASCII(this.hostname));var $=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+$,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!m[x])for(S=0,A=u.length;S<A;S++){var D=u[S];if(-1!==y.indexOf(D)){var V=encodeURIComponent(D);V===D&&(V=escape(D)),y=y.split(D).join(V)}}var U=y.indexOf("#");-1!==U&&(this.hash=y.substr(U),y=y.slice(0,U));var B=y.indexOf("?");if(-1!==B?(this.search=y.substr(B),this.query=y.substr(B+1),t&&(this.query=b.parse(this.query)),y=y.slice(0,B)):t&&(this.search="",this.query={}),y&&(this.pathname=y),g[x]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){$=this.pathname||"";var W=this.search||"";this.path=$+W}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",o=!1,i="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(i=b.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+o+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+r},o.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(a.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var n=new o,r=Object.keys(this),i=0;i<r.length;i++){var s=r[i];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var c=Object.keys(e),l=0;l<c.length;l++){var u=c[l];"protocol"!==u&&(n[u]=e[u])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var f=Object.keys(e),p=0;p<f.length;p++){var h=f[p];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||v[e.protocol])n.pathname=e.pathname;else{for(var d=(e.pathname||"").split("/");d.length&&!(e.host=d.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==d[0]&&d.unshift(""),d.length<2&&d.unshift(""),n.pathname=d.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var m=n.pathname||"",b=n.search||"";n.path=m+b}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var y=n.pathname&&"/"===n.pathname.charAt(0),_=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=_||y||n.host&&e.pathname,x=w,k=n.pathname&&n.pathname.split("/")||[],C=(d=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(C&&(n.hostname="",n.port=null,n.host&&(""===k[0]?k[0]=n.host:k.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),w=w&&(""===d[0]||""===k[0])),_)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,k=d;else if(d.length)k||(k=[]),k.pop(),k=k.concat(d),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search))return C&&(n.hostname=n.host=k.shift(),(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift())),n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!k.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var E=k.slice(-1)[0],N=(n.host||e.host||k.length>1)&&("."===E||".."===E)||""===E,S=0,O=k.length;O>=0;O--)"."===(E=k[O])?k.splice(O,1):".."===E?(k.splice(O,1),S++):S&&(k.splice(O,1),S--);if(!w&&!x)for(;S--;S)k.unshift("..");!w||""===k[0]||k[0]&&"/"===k[0].charAt(0)||k.unshift(""),N&&"/"!==k.join("/").substr(-1)&&k.push("");var j,L=""===k[0]||k[0]&&"/"===k[0].charAt(0);return C&&(n.hostname=n.host=L?"":k.length?k.shift():"",(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift())),(w=w||n.host&&k.length)&&!L&&k.unshift(""),k.length?n.pathname=k.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},62502:e=>{"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},90308:(e,t,n)=>{"use strict";n.d(t,{o:()=>et});const r="undefined"!=typeof window,a="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,o=e=>a?Symbol(e):e,i=e=>"number"==typeof e&&isFinite(e),s=e=>"[object RegExp]"===x(e),c=e=>k(e)&&0===Object.keys(e).length;function l(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const u=Object.assign;let f;const p=()=>f||(f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{});function h(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const d=Object.prototype.hasOwnProperty;function m(e,t){return d.call(e,t)}const v=Array.isArray,g=e=>"function"==typeof e,b=e=>"string"==typeof e,y=e=>"boolean"==typeof e,_=e=>null!==e&&"object"==typeof e,w=Object.prototype.toString,x=e=>w.call(e),k=e=>"[object Object]"===x(e);function C(e,t,n={}){const{domain:r,messages:a,args:o}=n,i=new SyntaxError(String(e));return i.code=e,t&&(i.location=t),i.domain=r,i}String.fromCharCode(8232),String.fromCharCode(8233);const E=[];E[0]={w:[0],i:[3,0],"[":[4],o:[7]},E[1]={w:[1],".":[2],"[":[4],o:[7]},E[2]={w:[2],i:[3,0],0:[3,0]},E[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},E[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},E[5]={"'":[4,0],o:8,l:[5,0]},E[6]={'"':[4,0],o:8,l:[6,0]};const N=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function S(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}const O=new Map;function j(e,t){return _(e)?e[t]:null}const L=e=>e,A=e=>"",M=e=>0===e.length?"":e.join(""),I=e=>null==e?"":v(e)||k(e)&&e.toString===w?JSON.stringify(e,null,2):String(e);function T(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}let R=null;const P=z("function:translate");function z(e){return t=>R&&R.emit(e,t)}function F(e,t,n){return[...new Set([n,...v(t)?t:_(t)?Object.keys(t):b(t)?[t]:[n]])]}function $(e,t,n){const r=b(n)?n:U,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let o=a.__localeChainCache.get(r);if(!o){o=[];let e=[n];for(;v(e);)e=H(o,e,t);const i=v(t)||!k(t)?t:t.default?t.default:null;e=b(i)?[i]:i,v(e)&&H(o,e,!1),a.__localeChainCache.set(r,o)}return o}function H(e,t,n){let r=!0;for(let a=0;a<t.length&&y(r);a++){const o=t[a];b(o)&&(r=D(e,t[a],n))}return r}function D(e,t,n){let r;const a=t.split("-");do{r=V(e,a.join("-"),n),a.splice(-1,1)}while(a.length&&!0===r);return r}function V(e,t,n){let r=!1;if(!e.includes(t)&&(r=!0,t)){r="!"!==t[t.length-1];const a=t.replace(/!/g,"");e.push(a),(v(n)||k(n))&&n[a]&&(r=n[a])}return r}const U="en-US",B=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;let W,Y,q=null;const G=e=>{q=e};let X=null;const Z=e=>{X=e};let J=0;function K(e,t,n,r,a){const{missing:o,onWarn:i}=e;if(null!==o){const r=o(e,n,t,a);return b(r)?r:t}return t}function Q(e,t,n){e.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}Object.create(null);let ee=15;const te=()=>++ee,ne={INVALID_ARGUMENT:ee,INVALID_DATE_ARGUMENT:te(),INVALID_ISO_DATE_ARGUMENT:te(),__EXTEND_POINT__:te()};function re(e){return C(e,null,void 0)}const ae=()=>"",oe=e=>g(e);function ie(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:a,messageCompiler:o,fallbackLocale:s,messages:c}=e,[l,f]=le(...t),p=(y(f.missingWarn)?f.missingWarn:e.missingWarn,y(f.fallbackWarn)?f.fallbackWarn:e.fallbackWarn,y(f.escapeParameter)?f.escapeParameter:e.escapeParameter),d=!!f.resolvedMessage,m=b(f.default)||y(f.default)?y(f.default)?o?l:()=>l:f.default:n?o?l:()=>l:"",w=n||""!==m,x=b(f.locale)?f.locale:e.locale;p&&function(e){v(e.list)?e.list=e.list.map((e=>b(e)?h(e):e)):_(e.named)&&Object.keys(e.named).forEach((t=>{b(e.named[t])&&(e.named[t]=h(e.named[t]))}))}(f);let[C,E,N]=d?[l,x,c[x]||{}]:se(e,l,x,s),S=C,O=l;if(d||b(S)||oe(S)||w&&(S=m,O=S),!(d||(b(S)||oe(S))&&b(E)))return a?-1:l;let j=!1;const R=oe(S)?S:ce(e,l,E,S,O,(()=>{j=!0}));if(j)return S;const z=function(e,t,n,r){const{modifiers:a,pluralRules:o,messageResolver:s,fallbackLocale:c,fallbackWarn:l,missingWarn:u,fallbackContext:f}=e,p={locale:t,modifiers:a,pluralRules:o,messages:r=>{let a=s(n,r);if(null==a&&f){const[,,e]=se(f,r,t,c);a=s(e,r)}if(b(a)){let n=!1;const o=ce(e,r,t,a,r,(()=>{n=!0}));return n?ae:o}return oe(a)?a:ae}};return e.processor&&(p.processor=e.processor),r.list&&(p.list=r.list),r.named&&(p.named=r.named),i(r.plural)&&(p.pluralIndex=r.plural),p}(e,E,N,f),F=function(e,t,n){return t(n)}(0,R,function(e={}){const t=e.locale,n=function(e){const t=i(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(i(e.named.count)||i(e.named.n))?i(e.named.count)?e.named.count:i(e.named.n)?e.named.n:t:t}(e),r=_(e.pluralRules)&&b(t)&&g(e.pluralRules[t])?e.pluralRules[t]:T,a=_(e.pluralRules)&&b(t)&&g(e.pluralRules[t])?T:void 0,o=e.list||[],s=e.named||{};function c(t){return(g(e.messages)?e.messages(t):!!_(e.messages)&&e.messages[t])||(e.parent?e.parent.message(t):A)}i(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(n,s);const l=k(e.processor)&&g(e.processor.normalize)?e.processor.normalize:M,u=k(e.processor)&&g(e.processor.interpolate)?e.processor.interpolate:I,f={list:e=>o[e],named:e=>s[e],plural:e=>e[r(n,e.length,a)],linked:(t,...n)=>{const[r,a]=n;let o="text",i="";1===n.length?_(r)?(i=r.modifier||i,o=r.type||o):b(r)&&(i=r||i):2===n.length&&(b(r)&&(i=r||i),b(a)&&(o=a||o));let s=c(t)(f);return"vnode"===o&&v(s)&&i&&(s=s[0]),i?(l=i,e.modifiers?e.modifiers[l]:L)(s,o):s;var l},message:c,type:k(e.processor)&&b(e.processor.type)?e.processor.type:"text",interpolate:u,normalize:l};return f}(z)),$=r?r(F,l):F;if(__INTLIFY_PROD_DEVTOOLS__){const t={timestamp:Date.now(),key:b(l)?l:oe(S)?S.key:"",locale:E||(oe(S)?S.locale:""),format:b(S)?S:oe(S)?S.source:"",message:$};t.meta=u({},e.__meta,q||{}),P(t)}return $}function se(e,t,n,r,a,o){const{messages:i,onWarn:s,messageResolver:c,localeFallbacker:l}=e,u=l(e,r,n);let f,p={},h=null,d=n,m=null;for(let n=0;n<u.length&&(f=m=u[n],p=i[f]||{},null===(h=c(p,t))&&(h=p[t]),!b(h)&&!g(h));n++){const n=K(e,t,f,0,"translate");n!==t&&(h=n),d=m}return[h,f,p]}function ce(e,t,n,r,a,o){const{messageCompiler:i,warnHtmlMessage:s}=e;if(oe(r)){const e=r;return e.locale=e.locale||n,e.key=e.key||t,e}if(null==i){const e=()=>r;return e.locale=n,e.key=t,e}const c=i(r,function(e,t,n,r,a,o){return{warnHtmlMessage:a,onError:e=>{throw o&&o(e),e},onCacheKey:e=>((e,t,n)=>{return r={l:e,k:t,s:n},JSON.stringify(r).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027");var r})(t,n,e)}}(0,n,a,0,s,o));return c.locale=n,c.key=t,c.source=r,c}function le(...e){const[t,n,r]=e,a={};if(!b(t)&&!i(t)&&!oe(t))throw re(ne.INVALID_ARGUMENT);const o=i(t)?String(t):(oe(t),t);return i(n)?a.plural=n:b(n)?a.default=n:k(n)&&!c(n)?a.named=n:v(n)&&(a.list=n),i(r)?a.plural=r:b(r)?a.default=r:k(r)&&u(a,r),[o,a]}const ue="undefined"!=typeof Intl;function fe(e,...t){const{datetimeFormats:n,unresolving:r,fallbackLocale:a,onWarn:o,localeFallbacker:i}=e,{__datetimeFormatters:s}=e,[l,f,p,h]=he(...t),d=(y(p.missingWarn)?p.missingWarn:e.missingWarn,y(p.fallbackWarn)?p.fallbackWarn:e.fallbackWarn,!!p.part),m=b(p.locale)?p.locale:e.locale,v=i(e,a,m);if(!b(l)||""===l)return new Intl.DateTimeFormat(m,h).format(f);let g,_={},w=null,x=m,C=null;for(let t=0;t<v.length&&(g=C=v[t],_=n[g]||{},w=_[l],!k(w));t++)K(e,l,g,0,"datetime format"),x=C;if(!k(w)||!b(g))return r?-1:l;let E=`${g}__${l}`;c(h)||(E=`${E}__${JSON.stringify(h)}`);let N=s.get(E);return N||(N=new Intl.DateTimeFormat(g,u({},w,h)),s.set(E,N)),d?N.formatToParts(f):N.format(f)}ue&&Intl.DateTimeFormat,ue&&Intl.NumberFormat;const pe=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function he(...e){const[t,n,r,a]=e,o={};let s,c={};if(b(t)){const e=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!e)throw re(ne.INVALID_ISO_DATE_ARGUMENT);const n=e[3]?e[3].trim().startsWith("T")?`${e[1].trim()}${e[3].trim()}`:`${e[1].trim()}T${e[3].trim()}`:e[1].trim();s=new Date(n);try{s.toISOString()}catch(e){throw re(ne.INVALID_ISO_DATE_ARGUMENT)}}else if("[object Date]"===x(t)){if(isNaN(t.getTime()))throw re(ne.INVALID_DATE_ARGUMENT);s=t}else{if(!i(t))throw re(ne.INVALID_ARGUMENT);s=t}return b(n)?o.key=n:k(n)&&Object.keys(n).forEach((e=>{pe.includes(e)?c[e]=n[e]:o[e]=n[e]})),b(r)?o.locale=r:k(r)&&(c=r),k(a)&&(c=a),[o.key||"",s,o,c]}function de(e,t,n){const r=e;for(const e in n){const n=`${t}__${e}`;r.__datetimeFormatters.has(n)&&r.__datetimeFormatters.delete(n)}}function me(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:a,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:s}=e,[l,f,p,h]=ge(...t),d=(y(p.missingWarn)?p.missingWarn:e.missingWarn,y(p.fallbackWarn)?p.fallbackWarn:e.fallbackWarn,!!p.part),m=b(p.locale)?p.locale:e.locale,v=i(e,a,m);if(!b(l)||""===l)return new Intl.NumberFormat(m,h).format(f);let g,_={},w=null,x=m,C=null;for(let t=0;t<v.length&&(g=C=v[t],_=n[g]||{},w=_[l],!k(w));t++)K(e,l,g,0,"number format"),x=C;if(!k(w)||!b(g))return r?-1:l;let E=`${g}__${l}`;c(h)||(E=`${E}__${JSON.stringify(h)}`);let N=s.get(E);return N||(N=new Intl.NumberFormat(g,u({},w,h)),s.set(E,N)),d?N.formatToParts(f):N.format(f)}const ve=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function ge(...e){const[t,n,r,a]=e,o={};let s={};if(!i(t))throw re(ne.INVALID_ARGUMENT);const c=t;return b(n)?o.key=n:k(n)&&Object.keys(n).forEach((e=>{ve.includes(e)?s[e]=n[e]:o[e]=n[e]})),b(r)?o.locale=r:k(r)&&(s=r),k(a)&&(s=a),[o.key||"",c,o,s]}function be(e,t,n){const r=e;for(const e in n){const n=`${t}__${e}`;r.__numberFormatters.has(n)&&r.__numberFormatters.delete(n)}}"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(p().__INTLIFY_PROD_DEVTOOLS__=!1);var ye=n(66252),_e=n(2262);let we=7;const xe=()=>++we;xe(),xe(),xe(),xe(),xe(),xe();let ke=15;const Ce=()=>++ke,Ee={UNEXPECTED_RETURN_TYPE:ke,INVALID_ARGUMENT:Ce(),MUST_BE_CALL_SETUP_TOP:Ce(),NOT_INSLALLED:Ce(),NOT_AVAILABLE_IN_LEGACY_MODE:Ce(),REQUIRED_VALUE:Ce(),INVALID_VALUE:Ce(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ce(),NOT_INSLALLED_WITH_PROVIDE:Ce(),UNEXPECTED_ERROR:Ce(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ce(),BRIDGE_SUPPORT_VUE_2_ONLY:Ce(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ce(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ce(),__EXTEND_POINT__:Ce()};function Ne(e,...t){return C(e,null,void 0)}const Se=o("__transrateVNode"),Oe=o("__datetimeParts"),je=o("__numberParts"),Le=o("__setPluralRules");o("__intlifyMeta");const Ae=o("__injectWithOption");function Me(e){if(!_(e))return e;for(const t in e)if(m(e,t))if(t.includes(".")){const n=t.split("."),r=n.length-1;let a=e;for(let e=0;e<r;e++)n[e]in a||(a[n[e]]={}),a=a[n[e]];a[n[r]]=e[t],delete e[t],_(a[n[r]])&&Me(a[n[r]])}else _(e[t])&&Me(e[t]);return e}function Ie(e,t){const{messages:n,__i18n:r,messageResolver:a,flatJson:o}=t,i=k(n)?n:v(r)?{}:{[e]:{}};if(v(r)&&r.forEach((e=>{if("locale"in e&&"resource"in e){const{locale:t,resource:n}=e;t?(i[t]=i[t]||{},Re(n,i[t])):Re(n,i)}else b(e)&&Re(JSON.parse(e),i)})),null==a&&o)for(const e in i)m(i,e)&&Me(i[e]);return i}const Te=e=>!_(e)||v(e);function Re(e,t){if(Te(e)||Te(t))throw Ne(Ee.INVALID_VALUE);for(const n in e)m(e,n)&&(Te(e[n])||Te(t[n])?t[n]=e[n]:Re(e[n],t[n]))}function Pe(e){return e.type}function ze(e,t,n){let r=_(t.messages)?t.messages:{};"__i18nGlobal"in n&&(r=Ie(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const a=Object.keys(r);if(a.length&&a.forEach((t=>{e.mergeLocaleMessage(t,r[t])})),_(t.datetimeFormats)){const n=Object.keys(t.datetimeFormats);n.length&&n.forEach((n=>{e.mergeDateTimeFormat(n,t.datetimeFormats[n])}))}if(_(t.numberFormats)){const n=Object.keys(t.numberFormats);n.length&&n.forEach((n=>{e.mergeNumberFormat(n,t.numberFormats[n])}))}}function Fe(e){return(0,ye.Wm)(ye.xv,null,e,0)}const $e="__INTLIFY_META__";let He=0;function De(e){return(t,n,r,a)=>e(n,r,(0,ye.FN)()||void 0,a)}function Ve(e={},t){const{__root:n}=e,a=void 0===n;let o=!y(e.inheritLocale)||e.inheritLocale;const c=(0,_e.iH)(n&&o?n.locale.value:b(e.locale)?e.locale:U),f=(0,_e.iH)(n&&o?n.fallbackLocale.value:b(e.fallbackLocale)||v(e.fallbackLocale)||k(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:c.value),p=(0,_e.iH)(Ie(c.value,e)),h=(0,_e.iH)(k(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),d=(0,_e.iH)(k(e.numberFormats)?e.numberFormats:{[c.value]:{}});let m=n?n.missingWarn:!y(e.missingWarn)&&!s(e.missingWarn)||e.missingWarn,w=n?n.fallbackWarn:!y(e.fallbackWarn)&&!s(e.fallbackWarn)||e.fallbackWarn,x=n?n.fallbackRoot:!y(e.fallbackRoot)||e.fallbackRoot,C=!!e.fallbackFormat,E=g(e.missing)?e.missing:null,N=g(e.missing)?De(e.missing):null,S=g(e.postTranslation)?e.postTranslation:null,O=n?n.warnHtmlMessage:!y(e.warnHtmlMessage)||e.warnHtmlMessage,L=!!e.escapeParameter;const A=n?n.modifiers:k(e.modifiers)?e.modifiers:{};let M,I=e.pluralRules||n&&n.pluralRules;M=(()=>{a&&Z(null);const t={version:"9.2.2",locale:c.value,fallbackLocale:f.value,messages:p.value,modifiers:A,pluralRules:I,missing:null===N?void 0:N,missingWarn:m,fallbackWarn:w,fallbackFormat:C,unresolving:!0,postTranslation:null===S?void 0:S,warnHtmlMessage:O,escapeParameter:L,messageResolver:e.messageResolver,__meta:{framework:"vue"}};t.datetimeFormats=h.value,t.numberFormats=d.value,t.__datetimeFormatters=k(M)?M.__datetimeFormatters:void 0,t.__numberFormatters=k(M)?M.__numberFormatters:void 0;const n=function(e={}){const t=b(e.version)?e.version:"9.2.2",n=b(e.locale)?e.locale:U,r=v(e.fallbackLocale)||k(e.fallbackLocale)||b(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:n,a=k(e.messages)?e.messages:{[n]:{}},o=k(e.datetimeFormats)?e.datetimeFormats:{[n]:{}},i=k(e.numberFormats)?e.numberFormats:{[n]:{}},c=u({},e.modifiers||{},{upper:(e,t)=>"text"===t&&b(e)?e.toUpperCase():"vnode"===t&&_(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>"text"===t&&b(e)?e.toLowerCase():"vnode"===t&&_(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>"text"===t&&b(e)?B(e):"vnode"===t&&_(e)&&"__v_isVNode"in e?B(e.children):e}),f=e.pluralRules||{},p=g(e.missing)?e.missing:null,h=!y(e.missingWarn)&&!s(e.missingWarn)||e.missingWarn,d=!y(e.fallbackWarn)&&!s(e.fallbackWarn)||e.fallbackWarn,m=!!e.fallbackFormat,w=!!e.unresolving,x=g(e.postTranslation)?e.postTranslation:null,C=k(e.processor)?e.processor:null,E=!y(e.warnHtmlMessage)||e.warnHtmlMessage,N=!!e.escapeParameter,S=g(e.messageCompiler)?e.messageCompiler:void 0,O=g(e.messageResolver)?e.messageResolver:W||j,L=g(e.localeFallbacker)?e.localeFallbacker:Y||F,A=_(e.fallbackContext)?e.fallbackContext:void 0,M=g(e.onWarn)?e.onWarn:l,I=e,T=_(I.__datetimeFormatters)?I.__datetimeFormatters:new Map,P=_(I.__numberFormatters)?I.__numberFormatters:new Map,z=_(I.__meta)?I.__meta:{};J++;const $={version:t,cid:J,locale:n,fallbackLocale:r,messages:a,modifiers:c,pluralRules:f,missing:p,missingWarn:h,fallbackWarn:d,fallbackFormat:m,unresolving:w,postTranslation:x,processor:C,warnHtmlMessage:E,escapeParameter:N,messageCompiler:S,messageResolver:O,localeFallbacker:L,fallbackContext:A,onWarn:M,__meta:z};return $.datetimeFormats=o,$.numberFormats=i,$.__datetimeFormatters=T,$.__numberFormatters=P,__INTLIFY_PROD_DEVTOOLS__&&function(e,t,n){R&&R.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}($,t,z),$}(t);return a&&Z(n),n})(),Q(M,c.value,f.value);const T=(0,ye.Fl)({get:()=>c.value,set:e=>{c.value=e,M.locale=c.value}}),P=(0,ye.Fl)({get:()=>f.value,set:e=>{f.value=e,M.fallbackLocale=f.value,Q(M,c.value,e)}}),z=(0,ye.Fl)((()=>p.value)),H=(0,ye.Fl)((()=>h.value)),D=(0,ye.Fl)((()=>d.value)),V=(e,t,r,o,s,l)=>{let u;if(c.value,f.value,p.value,h.value,d.value,__INTLIFY_PROD_DEVTOOLS__)try{G((()=>{const e=(0,ye.FN)();let t=null;return e&&(t=Pe(e)[$e])?{[$e]:t}:null})()),a||(M.fallbackContext=n?X:void 0),u=e(M)}finally{G(null),a||(M.fallbackContext=void 0)}else u=e(M);if(i(u)&&-1===u){const[e,r]=t();return n&&x?o(n):s(e)}if(l(u))return u;throw Ne(Ee.UNEXPECTED_RETURN_TYPE)};function q(...e){return V((t=>Reflect.apply(ie,null,[t,...e])),(()=>le(...e)),0,(t=>Reflect.apply(t.t,t,[...e])),(e=>e),(e=>b(e)))}const K={normalize:function(e){return e.map((e=>b(e)||i(e)||y(e)?Fe(String(e)):e))},interpolate:e=>e,type:"vnode"};function ee(e){return p.value[e]||{}}He++,n&&r&&((0,ye.YP)(n.locale,(e=>{o&&(c.value=e,M.locale=e,Q(M,c.value,f.value))})),(0,ye.YP)(n.fallbackLocale,(e=>{o&&(f.value=e,M.fallbackLocale=e,Q(M,c.value,f.value))})));const te={id:He,locale:T,fallbackLocale:P,get inheritLocale(){return o},set inheritLocale(e){o=e,e&&n&&(c.value=n.locale.value,f.value=n.fallbackLocale.value,Q(M,c.value,f.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:z,get modifiers(){return A},get pluralRules(){return I||{}},get isGlobal(){return a},get missingWarn(){return m},set missingWarn(e){m=e,M.missingWarn=m},get fallbackWarn(){return w},set fallbackWarn(e){w=e,M.fallbackWarn=w},get fallbackRoot(){return x},set fallbackRoot(e){x=e},get fallbackFormat(){return C},set fallbackFormat(e){C=e,M.fallbackFormat=C},get warnHtmlMessage(){return O},set warnHtmlMessage(e){O=e,M.warnHtmlMessage=e},get escapeParameter(){return L},set escapeParameter(e){L=e,M.escapeParameter=e},t:q,getLocaleMessage:ee,setLocaleMessage:function(e,t){p.value[e]=t,M.messages=p.value},mergeLocaleMessage:function(e,t){p.value[e]=p.value[e]||{},Re(t,p.value[e]),M.messages=p.value},getPostTranslationHandler:function(){return g(S)?S:null},setPostTranslationHandler:function(e){S=e,M.postTranslation=e},getMissingHandler:function(){return E},setMissingHandler:function(e){null!==e&&(N=De(e)),E=e,M.missing=N},[Le]:function(e){I=e,M.pluralRules=I}};return te.datetimeFormats=H,te.numberFormats=D,te.rt=function(...e){const[t,n,r]=e;if(r&&!_(r))throw Ne(Ee.INVALID_ARGUMENT);return q(t,n,u({resolvedMessage:!0},r||{}))},te.te=function(e,t){const n=ee(b(t)?t:c.value);return null!==M.messageResolver(n,e)},te.tm=function(e){const t=function(e){let t=null;const n=$(M,f.value,c.value);for(let r=0;r<n.length;r++){const a=p.value[n[r]]||{},o=M.messageResolver(a,e);if(null!=o){t=o;break}}return t}(e);return null!=t?t:n&&n.tm(e)||{}},te.d=function(...e){return V((t=>Reflect.apply(fe,null,[t,...e])),(()=>he(...e)),0,(t=>Reflect.apply(t.d,t,[...e])),(()=>""),(e=>b(e)))},te.n=function(...e){return V((t=>Reflect.apply(me,null,[t,...e])),(()=>ge(...e)),0,(t=>Reflect.apply(t.n,t,[...e])),(()=>""),(e=>b(e)))},te.getDateTimeFormat=function(e){return h.value[e]||{}},te.setDateTimeFormat=function(e,t){h.value[e]=t,M.datetimeFormats=h.value,de(M,e,t)},te.mergeDateTimeFormat=function(e,t){h.value[e]=u(h.value[e]||{},t),M.datetimeFormats=h.value,de(M,e,t)},te.getNumberFormat=function(e){return d.value[e]||{}},te.setNumberFormat=function(e,t){d.value[e]=t,M.numberFormats=d.value,be(M,e,t)},te.mergeNumberFormat=function(e,t){d.value[e]=u(d.value[e]||{},t),M.numberFormats=d.value,be(M,e,t)},te[Ae]=e.__injectWithOption,te[Se]=function(...e){return V((t=>{let n;const r=t;try{r.processor=K,n=Reflect.apply(ie,null,[r,...e])}finally{r.processor=null}return n}),(()=>le(...e)),0,(t=>t[Se](...e)),(e=>[Fe(e)]),(e=>v(e)))},te[Oe]=function(...e){return V((t=>Reflect.apply(fe,null,[t,...e])),(()=>he(...e)),0,(t=>t[Oe](...e)),(()=>[]),(e=>b(e)||v(e)))},te[je]=function(...e){return V((t=>Reflect.apply(me,null,[t,...e])),(()=>ge(...e)),0,(t=>t[je](...e)),(()=>[]),(e=>b(e)||v(e)))},te}function Ue(e={},t){{const t=Ve(function(e){const t=b(e.locale)?e.locale:U,n=b(e.fallbackLocale)||v(e.fallbackLocale)||k(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,r=g(e.missing)?e.missing:void 0,a=!y(e.silentTranslationWarn)&&!s(e.silentTranslationWarn)||!e.silentTranslationWarn,o=!y(e.silentFallbackWarn)&&!s(e.silentFallbackWarn)||!e.silentFallbackWarn,i=!y(e.fallbackRoot)||e.fallbackRoot,c=!!e.formatFallbackMessages,l=k(e.modifiers)?e.modifiers:{},f=e.pluralizationRules,p=g(e.postTranslation)?e.postTranslation:void 0,h=!b(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,d=!!e.escapeParameterHtml,m=!y(e.sync)||e.sync;let _=e.messages;if(k(e.sharedMessages)){const t=e.sharedMessages;_=Object.keys(t).reduce(((e,n)=>{const r=e[n]||(e[n]={});return u(r,t[n]),e}),_||{})}const{__i18n:w,__root:x,__injectWithOption:C}=e,E=e.datetimeFormats,N=e.numberFormats;return{locale:t,fallbackLocale:n,messages:_,flatJson:e.flatJson,datetimeFormats:E,numberFormats:N,missing:r,missingWarn:a,fallbackWarn:o,fallbackRoot:i,fallbackFormat:c,modifiers:l,pluralRules:f,postTranslation:p,warnHtmlMessage:h,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:m,__i18n:w,__root:x,__injectWithOption:C}}(e)),n={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return y(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=y(e)?!e:e},get silentFallbackWarn(){return y(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=y(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[n,r,a]=e,o={};let i=null,s=null;if(!b(n))throw Ne(Ee.INVALID_ARGUMENT);const c=n;return b(r)?o.locale=r:v(r)?i=r:k(r)&&(s=r),v(a)?i=a:k(a)&&(s=a),Reflect.apply(t.t,t,[c,i||s||{},o])},rt:(...e)=>Reflect.apply(t.rt,t,[...e]),tc(...e){const[n,r,a]=e,o={plural:1};let s=null,c=null;if(!b(n))throw Ne(Ee.INVALID_ARGUMENT);const l=n;return b(r)?o.locale=r:i(r)?o.plural=r:v(r)?s=r:k(r)&&(c=r),b(a)?o.locale=a:v(a)?s=a:k(a)&&(c=a),Reflect.apply(t.t,t,[l,s||c||{},o])},te:(e,n)=>t.te(e,n),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,n){t.setLocaleMessage(e,n)},mergeLocaleMessage(e,n){t.mergeLocaleMessage(e,n)},d:(...e)=>Reflect.apply(t.d,t,[...e]),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,n){t.setDateTimeFormat(e,n)},mergeDateTimeFormat(e,n){t.mergeDateTimeFormat(e,n)},n:(...e)=>Reflect.apply(t.n,t,[...e]),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,n){t.setNumberFormat(e,n)},mergeNumberFormat(e,n){t.mergeNumberFormat(e,n)},getChoiceIndex:(e,t)=>-1,__onComponentInstanceCreated(t){const{componentInstanceCreatedListener:r}=e;r&&r(t,n)}};return n}}const Be={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}};function We(e){return ye.HY}const Ye={name:"i18n-t",props:u({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>i(e)||!isNaN(e)}},Be),setup(e,t){const{slots:n,attrs:r}=t,a=e.i18n||tt({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter((e=>"_"!==e)),i={};e.locale&&(i.locale=e.locale),void 0!==e.plural&&(i.plural=b(e.plural)?+e.plural:e.plural);const s=function({slots:e},t){return 1===t.length&&"default"===t[0]?(e.default?e.default():[]).reduce(((e,t)=>[...e,...v(t.children)?t.children:[t]]),[]):t.reduce(((t,n)=>{const r=e[n];return r&&(t[n]=r()),t}),{})}(t,o),c=a[Se](e.keypath,s,i),l=u({},r),f=b(e.tag)||_(e.tag)?e.tag:We();return(0,ye.h)(f,l,c)}}};function qe(e,t,n,r){const{slots:a,attrs:o}=t;return()=>{const t={part:!0};let i={};e.locale&&(t.locale=e.locale),b(e.format)?t.key=e.format:_(e.format)&&(b(e.format.key)&&(t.key=e.format.key),i=Object.keys(e.format).reduce(((t,r)=>n.includes(r)?u({},t,{[r]:e.format[r]}):t),{}));const s=r(e.value,t,i);let c=[t.key];v(s)?c=s.map(((e,t)=>{const n=a[e.type],r=n?n({[e.type]:e.value,index:t,parts:s}):[e.value];var o;return v(o=r)&&!b(o[0])&&(r[0].key=`${e.type}-${t}`),r})):b(s)&&(c=[s]);const l=u({},o),f=b(e.tag)||_(e.tag)?e.tag:We();return(0,ye.h)(f,l,c)}}const Ge={name:"i18n-n",props:u({value:{type:Number,required:!0},format:{type:[String,Object]}},Be),setup(e,t){const n=e.i18n||tt({useScope:"parent",__useComponent:!0});return qe(e,t,ve,((...e)=>n[je](...e)))}},Xe={name:"i18n-d",props:u({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Be),setup(e,t){const n=e.i18n||tt({useScope:"parent",__useComponent:!0});return qe(e,t,pe,((...e)=>n[Oe](...e)))}};function Ze(e){if(b(e))return{path:e};if(k(e)){if(!("path"in e))throw Ne(Ee.REQUIRED_VALUE);return e}throw Ne(Ee.INVALID_VALUE)}function Je(e){const{path:t,locale:n,args:r,choice:a,plural:o}=e,s={},c=r||{};return b(n)&&(s.locale=n),i(a)&&(s.plural=a),i(o)&&(s.plural=o),[t,c,s]}function Ke(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Le](t.pluralizationRules||e.pluralizationRules);const n=Ie(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach((t=>e.mergeLocaleMessage(t,n[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((n=>e.mergeNumberFormat(n,t.numberFormats[n]))),e}const Qe=o("global-vue-i18n");function et(e={},t){const n=__VUE_I18N_LEGACY_API__&&y(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,a=!y(e.globalInjection)||e.globalInjection,i=!__VUE_I18N_LEGACY_API__||!n||!!e.allowComposition,s=new Map,[c,l]=function(e,t,n){const r=(0,_e.B)();{const n=__VUE_I18N_LEGACY_API__&&t?r.run((()=>Ue(e))):r.run((()=>Ve(e)));if(null==n)throw Ne(Ee.UNEXPECTED_ERROR);return[r,n]}}(e,n),u=o("");{const e={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return i},async install(t,...o){t.__VUE_I18N_SYMBOL__=u,t.provide(t.__VUE_I18N_SYMBOL__,e),!n&&a&&function(e,t){const n=Object.create(null);nt.forEach((e=>{const r=Object.getOwnPropertyDescriptor(t,e);if(!r)throw Ne(Ee.UNEXPECTED_ERROR);const a=(0,_e.dq)(r.value)?{get:()=>r.value.value,set(e){r.value.value=e}}:{get:()=>r.get&&r.get()};Object.defineProperty(n,e,a)})),e.config.globalProperties.$i18n=n,rt.forEach((n=>{const r=Object.getOwnPropertyDescriptor(t,n);if(!r||!r.value)throw Ne(Ee.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${n}`,r)}))}(t,e.global),__VUE_I18N_FULL_INSTALL__&&function(e,t,...n){const a=k(n[0])?n[0]:{},o=!!a.useI18nComponentName;(!y(a.globalInstall)||a.globalInstall)&&(e.component(o?"i18n":Ye.name,Ye),e.component(Ge.name,Ge),e.component(Xe.name,Xe)),e.directive("t",function(e){const t=t=>{const{instance:n,modifiers:r,value:a}=t;if(!n||!n.$)throw Ne(Ee.UNEXPECTED_ERROR);const o=function(e,t){const n=e;if("composition"===e.mode)return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return null!=r?r.__composer:e.global.__composer}}(e,n.$),i=Ze(a);return[Reflect.apply(o.t,o,[...Je(i)]),o]};return{created:(n,a)=>{const[o,i]=t(a);r&&e.global===i&&(n.__i18nWatcher=(0,ye.YP)(i.locale,(()=>{a.instance&&a.instance.$forceUpdate()}))),n.__composer=i,n.textContent=o},unmounted:e=>{r&&e.__i18nWatcher&&(e.__i18nWatcher(),e.__i18nWatcher=void 0,delete e.__i18nWatcher),e.__composer&&(e.__composer=void 0,delete e.__composer)},beforeUpdate:(e,{value:t})=>{if(e.__composer){const n=e.__composer,r=Ze(t);e.textContent=Reflect.apply(n.t,n,[...Je(r)])}},getSSRProps:e=>{const[n]=t(e);return{textContent:n}}}}(t))}(t,e,...o),__VUE_I18N_LEGACY_API__&&n&&t.mixin(function(e,t,n){return{beforeCreate(){const r=(0,ye.FN)();if(!r)throw Ne(Ee.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const n=a.i18n;a.__i18n&&(n.__i18n=a.__i18n),n.__root=t,this===this.$root?this.$i18n=Ke(e,n):(n.__injectWithOption=!0,this.$i18n=Ue(n))}else a.__i18n?this===this.$root?this.$i18n=Ke(e,a):this.$i18n=Ue({__i18n:a.__i18n,__injectWithOption:!0,__root:t}):this.$i18n=e;a.__i18nGlobal&&ze(t,a,a),e.__onComponentInstanceCreated(this.$i18n),n.__setInstance(r,this.$i18n),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e)},mounted(){},unmounted(){const e=(0,ye.FN)();if(!e)throw Ne(Ee.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__deleteInstance(e),delete this.$i18n}}}(l,l.__composer,e));const i=t.unmount;t.unmount=()=>{e.dispose(),i()}},get global(){return l},dispose(){c.stop()},__instances:s,__getInstance:function(e){return s.get(e)||null},__setInstance:function(e,t){s.set(e,t)},__deleteInstance:function(e){s.delete(e)}};return e}}function tt(e={}){const t=(0,ye.FN)();if(null==t)throw Ne(Ee.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&null!=t.appContext.app&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Ne(Ee.NOT_INSLALLED);const n=function(e){{const t=(0,ye.f3)(e.isCE?Qe:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Ne(e.isCE?Ee.NOT_INSLALLED_WITH_PROVIDE:Ee.UNEXPECTED_ERROR);return t}}(t),r=function(e){return"composition"===e.mode?e.global:e.global.__composer}(n),a=Pe(t),o=function(e,t){return c(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}(e,a);if(__VUE_I18N_LEGACY_API__&&"legacy"===n.mode&&!e.__useComponent){if(!n.allowComposition)throw Ne(Ee.NOT_AVAILABLE_IN_LEGACY_MODE);return function(e,t,n,r={}){const a="local"===t,o=(0,_e.XI)(null);if(a&&e.proxy&&!e.proxy.$options.i18n&&!e.proxy.$options.__i18n)throw Ne(Ee.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=!y(r.inheritLocale)||r.inheritLocale,c=(0,_e.iH)(a&&i?n.locale.value:b(r.locale)?r.locale:U),l=(0,_e.iH)(a&&i?n.fallbackLocale.value:b(r.fallbackLocale)||v(r.fallbackLocale)||k(r.fallbackLocale)||!1===r.fallbackLocale?r.fallbackLocale:c.value),u=(0,_e.iH)(Ie(c.value,r)),f=(0,_e.iH)(k(r.datetimeFormats)?r.datetimeFormats:{[c.value]:{}}),p=(0,_e.iH)(k(r.numberFormats)?r.numberFormats:{[c.value]:{}}),h=a?n.missingWarn:!y(r.missingWarn)&&!s(r.missingWarn)||r.missingWarn,d=a?n.fallbackWarn:!y(r.fallbackWarn)&&!s(r.fallbackWarn)||r.fallbackWarn,m=a?n.fallbackRoot:!y(r.fallbackRoot)||r.fallbackRoot,_=!!r.fallbackFormat,w=g(r.missing)?r.missing:null,x=g(r.postTranslation)?r.postTranslation:null,C=a?n.warnHtmlMessage:!y(r.warnHtmlMessage)||r.warnHtmlMessage,E=!!r.escapeParameter,N=a?n.modifiers:k(r.modifiers)?r.modifiers:{},S=r.pluralRules||a&&n.pluralRules;function O(e){return c.value,l.value,u.value,f.value,p.value,e()}const j={get id(){return o.value?o.value.id:-1},locale:(0,ye.Fl)({get:()=>o.value?o.value.locale.value:c.value,set:e=>{o.value&&(o.value.locale.value=e),c.value=e}}),fallbackLocale:(0,ye.Fl)({get:()=>o.value?o.value.fallbackLocale.value:l.value,set:e=>{o.value&&(o.value.fallbackLocale.value=e),l.value=e}}),messages:(0,ye.Fl)((()=>o.value?o.value.messages.value:u.value)),datetimeFormats:(0,ye.Fl)((()=>f.value)),numberFormats:(0,ye.Fl)((()=>p.value)),get inheritLocale(){return o.value?o.value.inheritLocale:i},set inheritLocale(e){o.value&&(o.value.inheritLocale=e)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(u.value)},get modifiers(){return o.value?o.value.modifiers:N},get pluralRules(){return o.value?o.value.pluralRules:S},get isGlobal(){return!!o.value&&o.value.isGlobal},get missingWarn(){return o.value?o.value.missingWarn:h},set missingWarn(e){o.value&&(o.value.missingWarn=e)},get fallbackWarn(){return o.value?o.value.fallbackWarn:d},set fallbackWarn(e){o.value&&(o.value.missingWarn=e)},get fallbackRoot(){return o.value?o.value.fallbackRoot:m},set fallbackRoot(e){o.value&&(o.value.fallbackRoot=e)},get fallbackFormat(){return o.value?o.value.fallbackFormat:_},set fallbackFormat(e){o.value&&(o.value.fallbackFormat=e)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:C},set warnHtmlMessage(e){o.value&&(o.value.warnHtmlMessage=e)},get escapeParameter(){return o.value?o.value.escapeParameter:E},set escapeParameter(e){o.value&&(o.value.escapeParameter=e)},t:function(...e){return o.value?O((()=>Reflect.apply(o.value.t,null,[...e]))):O((()=>""))},getPostTranslationHandler:function(){return o.value?o.value.getPostTranslationHandler():x},setPostTranslationHandler:function(e){o.value&&o.value.setPostTranslationHandler(e)},getMissingHandler:function(){return o.value?o.value.getMissingHandler():w},setMissingHandler:function(e){o.value&&o.value.setMissingHandler(e)},rt:function(...e){return o.value?Reflect.apply(o.value.rt,null,[...e]):""},d:function(...e){return o.value?O((()=>Reflect.apply(o.value.d,null,[...e]))):O((()=>""))},n:function(...e){return o.value?O((()=>Reflect.apply(o.value.n,null,[...e]))):O((()=>""))},tm:function(e){return o.value?o.value.tm(e):{}},te:function(e,t){return!!o.value&&o.value.te(e,t)},getLocaleMessage:function(e){return o.value?o.value.getLocaleMessage(e):{}},setLocaleMessage:function(e,t){o.value&&(o.value.setLocaleMessage(e,t),u.value[e]=t)},mergeLocaleMessage:function(e,t){o.value&&o.value.mergeLocaleMessage(e,t)},getDateTimeFormat:function(e){return o.value?o.value.getDateTimeFormat(e):{}},setDateTimeFormat:function(e,t){o.value&&(o.value.setDateTimeFormat(e,t),f.value[e]=t)},mergeDateTimeFormat:function(e,t){o.value&&o.value.mergeDateTimeFormat(e,t)},getNumberFormat:function(e){return o.value?o.value.getNumberFormat(e):{}},setNumberFormat:function(e,t){o.value&&(o.value.setNumberFormat(e,t),p.value[e]=t)},mergeNumberFormat:function(e,t){o.value&&o.value.mergeNumberFormat(e,t)}};return(0,ye.wF)((()=>{if(null==e.proxy||null==e.proxy.$i18n)throw Ne(Ee.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const n=o.value=e.proxy.$i18n.__composer;"global"===t?(c.value=n.locale.value,l.value=n.fallbackLocale.value,u.value=n.messages.value,f.value=n.datetimeFormats.value,p.value=n.numberFormats.value):a&&function(e){e.locale.value=c.value,e.fallbackLocale.value=l.value,Object.keys(u.value).forEach((t=>{e.mergeLocaleMessage(t,u.value[t])})),Object.keys(f.value).forEach((t=>{e.mergeDateTimeFormat(t,f.value[t])})),Object.keys(p.value).forEach((t=>{e.mergeNumberFormat(t,p.value[t])})),e.escapeParameter=E,e.fallbackFormat=_,e.fallbackRoot=m,e.fallbackWarn=d,e.missingWarn=h,e.warnHtmlMessage=C}(n)})),j}(t,o,r,e)}if("global"===o)return ze(r,e,a),r;if("parent"===o){let a=function(e,t,n=!1){let r=null;const a=t.root;let o=t.parent;for(;null!=o;){const t=e;if("composition"===e.mode)r=t.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const e=t.__getInstance(o);null!=e&&(r=e.__composer,n&&r&&!r[Ae]&&(r=null))}if(null!=r)break;if(a===o)break;o=o.parent}return r}(n,t,e.__useComponent);return null==a&&(a=r),a}const i=n;let l=i.__getInstance(t);if(null==l){const n=u({},e);"__i18n"in a&&(n.__i18n=a.__i18n),r&&(n.__root=r),l=Ve(n),function(e,t,n){(0,ye.bv)((()=>{}),t),(0,ye.Ah)((()=>{e.__deleteInstance(t)}),t)}(i,t),i.__setInstance(t,l)}return l}const nt=["locale","fallbackLocale","availableLocales"],rt=["t","rt","d","n","tm"];var at;if(W=function(e,t){if(!_(e))return null;let n=O.get(t);if(n||(n=function(e){const t=[];let n,r,a,o,i,s,c,l=-1,u=0,f=0;const p=[];function h(){const t=e[l+1];if(5===u&&"'"===t||6===u&&'"'===t)return l++,a="\\"+t,p[0](),!0}for(p[0]=()=>{void 0===r?r=a:r+=a},p[1]=()=>{void 0!==r&&(t.push(r),r=void 0)},p[2]=()=>{p[0](),f++},p[3]=()=>{if(f>0)f--,u=4,p[0]();else{if(f=0,void 0===r)return!1;if(r=function(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(n=t,N.test(n)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var n}(r),!1===r)return!1;p[1]()}};null!==u;)if(l++,n=e[l],"\\"!==n||!h()){if(o=S(n),c=E[u],i=c[o]||c.l||8,8===i)return;if(u=i[0],void 0!==i[1]&&(s=p[i[1]],s&&(a=n,!1===s())))return;if(7===u)return t}}(t),n&&O.set(t,n)),!n)return null;const r=n.length;let a=e,o=0;for(;o<r;){const e=a[n[o]];if(void 0===e)return null;a=e,o++}return a},Y=$,function(){let e=!1;"boolean"!=typeof __VUE_I18N_FULL_INSTALL__&&(e=!0,p().__VUE_I18N_FULL_INSTALL__=!0),"boolean"!=typeof __VUE_I18N_LEGACY_API__&&(e=!0,p().__VUE_I18N_LEGACY_API__=!0),"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(p().__INTLIFY_PROD_DEVTOOLS__=!1)}(),__INTLIFY_PROD_DEVTOOLS__){const e=p();e.__INTLIFY__=!0,at=e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__,R=at}},83744:(e,t)=>{"use strict";t.Z=(e,t)=>{const n=e.__vccOpts||e;for(const[e,r]of t)n[e]=r;return n}},28339:(e,t,n)=>{"use strict";n.d(t,{PO:()=>S,p7:()=>Le});var r=n(66252),a=n(2262);const o="undefined"!=typeof window;const i=Object.assign;function s(e,t){const n={};for(const r in t){const a=t[r];n[r]=l(a)?a.map(e):e(a)}return n}const c=()=>{},l=Array.isArray,u=/\/$/;function f(e,t,n="/"){let r,a={},o="",i="";const s=t.indexOf("#");let c=t.indexOf("?");return s<c&&s>=0&&(c=-1),c>-1&&(r=t.slice(0,c),o=t.slice(c+1,s>-1?s:t.length),a=e(o)),s>-1&&(r=r||t.slice(0,s),i=t.slice(s,t.length)),r=function(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let a,o,i=n.length-1;for(a=0;a<r.length;a++)if(o=r[a],"."!==o){if(".."!==o)break;i>1&&i--}return n.slice(0,i).join("/")+"/"+r.slice(a-(a===r.length?1:0)).join("/")}(null!=r?r:t,n),{fullPath:r+(o&&"?")+o+i,path:r,query:a,hash:i}}function p(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function h(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function d(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!m(e[n],t[n]))return!1;return!0}function m(e,t){return l(e)?v(e,t):l(t)?v(t,e):e===t}function v(e,t){return l(t)?e.length===t.length&&e.every(((e,n)=>e===t[n])):1===e.length&&e[0]===t}var g,b;!function(e){e.pop="pop",e.push="push"}(g||(g={})),function(e){e.back="back",e.forward="forward",e.unknown=""}(b||(b={}));const y=/^[^#]+#/;function _(e,t){return e.replace(y,"#")+t}const w=()=>({left:window.pageXOffset,top:window.pageYOffset});function x(e,t){return(history.state?history.state.position-t:-1)+e}const k=new Map;let C=()=>location.protocol+"//"+location.host;function E(e,t){const{pathname:n,search:r,hash:a}=t,o=e.indexOf("#");if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return"/"!==n[0]&&(n="/"+n),p(n,"")}return p(n,e)+r+a}function N(e,t,n,r=!1,a=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:a?w():null}}function S(e){const t=function(e){const{history:t,location:n}=window,r={value:E(e,n)},a={value:t.state};function o(r,o,i){const s=e.indexOf("#"),c=s>-1?(n.host&&document.querySelector("base")?e:e.slice(s))+r:C()+e+r;try{t[i?"replaceState":"pushState"](o,"",c),a.value=o}catch(e){console.error(e),n[i?"replace":"assign"](c)}}return a.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:r,state:a,push:function(e,n){const s=i({},a.value,t.state,{forward:e,scroll:w()});o(s.current,s,!0),o(e,i({},N(r.value,e,null),{position:s.position+1},n),!1),r.value=e},replace:function(e,n){o(e,i({},t.state,N(a.value.back,e,a.value.forward,!0),n,{position:a.value.position}),!0),r.value=e}}}(e=function(e){if(!e)if(o){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),e.replace(u,"")}(e)),n=function(e,t,n,r){let a=[],o=[],s=null;const c=({state:o})=>{const i=E(e,location),c=n.value,l=t.value;let u=0;if(o){if(n.value=i,t.value=o,s&&s===c)return void(s=null);u=l?o.position-l.position:0}else r(i);a.forEach((e=>{e(n.value,c,{delta:u,type:g.pop,direction:u?u>0?b.forward:b.back:b.unknown})}))};function l(){const{history:e}=window;e.state&&e.replaceState(i({},e.state,{scroll:w()}),"")}return window.addEventListener("popstate",c),window.addEventListener("beforeunload",l),{pauseListeners:function(){s=n.value},listen:function(e){a.push(e);const t=()=>{const t=a.indexOf(e);t>-1&&a.splice(t,1)};return o.push(t),t},destroy:function(){for(const e of o)e();o=[],window.removeEventListener("popstate",c),window.removeEventListener("beforeunload",l)}}}(e,t.state,t.location,t.replace),r=i({location:"",base:e,go:function(e,t=!0){t||n.pauseListeners(),history.go(e)},createHref:_.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function O(e){return"string"==typeof e||"symbol"==typeof e}const j={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},L=Symbol("");var A;function M(e,t){return i(new Error,{type:e,[L]:!0},t)}function I(e,t){return e instanceof Error&&L in e&&(null==t||!!(e.type&t))}!function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"}(A||(A={}));const T="[^/]+?",R={sensitive:!1,strict:!1,start:!0,end:!0},P=/[.+*?^${}()[\]/\\]/g;function z(e,t){let n=0;for(;n<e.length&&n<t.length;){const r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?1===e.length&&80===e[0]?-1:1:e.length>t.length?1===t.length&&80===t[0]?1:-1:0}function F(e,t){let n=0;const r=e.score,a=t.score;for(;n<r.length&&n<a.length;){const e=z(r[n],a[n]);if(e)return e;n++}if(1===Math.abs(a.length-r.length)){if($(r))return 1;if($(a))return-1}return a.length-r.length}function $(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const H={type:0,value:""},D=/[a-zA-Z0-9_]/;function V(e,t,n){const r=function(e,t){const n=i({},R,t),r=[];let a=n.start?"^":"";const o=[];for(const t of e){const e=t.length?[]:[90];n.strict&&!t.length&&(a+="/");for(let r=0;r<t.length;r++){const i=t[r];let s=40+(n.sensitive?.25:0);if(0===i.type)r||(a+="/"),a+=i.value.replace(P,"\\$&"),s+=40;else if(1===i.type){const{value:e,repeatable:n,optional:c,regexp:l}=i;o.push({name:e,repeatable:n,optional:c});const u=l||T;if(u!==T){s+=10;try{new RegExp(`(${u})`)}catch(t){throw new Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let f=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(f=c&&t.length<2?`(?:/${f})`:"/"+f),c&&(f+="?"),a+=f,s+=20,c&&(s+=-8),n&&(s+=-20),".*"===u&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){const e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(a+="/?"),n.end?a+="$":n.strict&&(a+="(?:/|$)");const s=new RegExp(a,n.sensitive?"":"i");return{re:s,score:r,keys:o,parse:function(e){const t=e.match(s),n={};if(!t)return null;for(let e=1;e<t.length;e++){const r=t[e]||"",a=o[e-1];n[a.name]=r&&a.repeatable?r.split("/"):r}return n},stringify:function(t){let n="",r=!1;for(const a of e){r&&n.endsWith("/")||(n+="/"),r=!1;for(const e of a)if(0===e.type)n+=e.value;else if(1===e.type){const{value:o,repeatable:i,optional:s}=e,c=o in t?t[o]:"";if(l(c)&&!i)throw new Error(`Provided param "${o}" is an array but it is not repeatable (* or + modifiers)`);const u=l(c)?c.join("/"):c;if(!u){if(!s)throw new Error(`Missing required param "${o}"`);a.length<2&&(n.endsWith("/")?n=n.slice(0,-1):r=!0)}n+=u}}return n||"/"}}}(function(e){if(!e)return[[]];if("/"===e)return[[H]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(e){throw new Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n;const a=[];let o;function i(){o&&a.push(o),o=[]}let s,c=0,l="",u="";function f(){l&&(0===n?o.push({type:0,value:l}):1===n||2===n||3===n?(o.length>1&&("*"===s||"+"===s)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:l,regexp:u,repeatable:"*"===s||"+"===s,optional:"*"===s||"?"===s})):t("Invalid state to consume buffer"),l="")}function p(){l+=s}for(;c<e.length;)if(s=e[c++],"\\"!==s||2===n)switch(n){case 0:"/"===s?(l&&f(),i()):":"===s?(f(),n=1):p();break;case 4:p(),n=r;break;case 1:"("===s?n=2:D.test(s)?p():(f(),n=0,"*"!==s&&"?"!==s&&"+"!==s&&c--);break;case 2:")"===s?"\\"==u[u.length-1]?u=u.slice(0,-1)+s:n=3:u+=s;break;case 3:f(),n=0,"*"!==s&&"?"!==s&&"+"!==s&&c--,u="";break;default:t("Unknown state")}else r=n,n=4;return 2===n&&t(`Unfinished custom RegExp for param "${l}"`),f(),i(),a}(e.path),n),a=i(r,{record:e,parent:t,children:[],alias:[]});return t&&!a.record.aliasOf==!t.record.aliasOf&&t.children.push(a),a}function U(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function B(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]="boolean"==typeof n?n:n[r];return t}function W(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Y(e){return e.reduce(((e,t)=>i(e,t.meta)),{})}function q(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function G(e,t){return t.children.some((t=>t===e||G(e,t)))}const X=/#/g,Z=/&/g,J=/\//g,K=/=/g,Q=/\?/g,ee=/\+/g,te=/%5B/g,ne=/%5D/g,re=/%5E/g,ae=/%60/g,oe=/%7B/g,ie=/%7C/g,se=/%7D/g,ce=/%20/g;function le(e){return encodeURI(""+e).replace(ie,"|").replace(te,"[").replace(ne,"]")}function ue(e){return le(e).replace(ee,"%2B").replace(ce,"+").replace(X,"%23").replace(Z,"%26").replace(ae,"`").replace(oe,"{").replace(se,"}").replace(re,"^")}function fe(e){return null==e?"":function(e){return le(e).replace(X,"%23").replace(Q,"%3F")}(e).replace(J,"%2F")}function pe(e){try{return decodeURIComponent(""+e)}catch(e){}return""+e}function he(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let e=0;e<n.length;++e){const r=n[e].replace(ee," "),a=r.indexOf("="),o=pe(a<0?r:r.slice(0,a)),i=a<0?null:pe(r.slice(a+1));if(o in t){let e=t[o];l(e)||(e=t[o]=[e]),e.push(i)}else t[o]=i}return t}function de(e){let t="";for(let n in e){const r=e[n];(n=ue(n).replace(K,"%3D"),null!=r)?(l(r)?r.map((e=>e&&ue(e))):[r&&ue(r)]).forEach((e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))})):void 0!==r&&(t+=(t.length?"&":"")+n)}return t}function me(e){const t={};for(const n in e){const r=e[n];void 0!==r&&(t[n]=l(r)?r.map((e=>null==e?null:""+e)):null==r?r:""+r)}return t}const ve=Symbol(""),ge=Symbol(""),be=Symbol(""),ye=Symbol(""),_e=Symbol("");function we(){let e=[];return{add:function(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}},list:()=>e,reset:function(){e=[]}}}function xe(e,t,n,r,a){const o=r&&(r.enterCallbacks[a]=r.enterCallbacks[a]||[]);return()=>new Promise(((i,s)=>{const c=e=>{var c;!1===e?s(M(4,{from:n,to:t})):e instanceof Error?s(e):"string"==typeof(c=e)||c&&"object"==typeof c?s(M(2,{from:t,to:e})):(o&&r.enterCallbacks[a]===o&&"function"==typeof e&&o.push(e),i())},l=e.call(r&&r.instances[a],t,n,c);let u=Promise.resolve(l);e.length<3&&(u=u.then(c)),u.catch((e=>s(e)))}))}function ke(e,t,n,r){const a=[];for(const i of e)for(const e in i.components){let s=i.components[e];if("beforeRouteEnter"===t||i.instances[e])if("object"==typeof(o=s)||"displayName"in o||"props"in o||"__vccOpts"in o){const o=(s.__vccOpts||s)[t];o&&a.push(xe(o,n,r,i,e))}else{let o=s();a.push((()=>o.then((a=>{if(!a)return Promise.reject(new Error(`Couldn't resolve component "${e}" at "${i.path}"`));const o=(s=a).__esModule||"Module"===s[Symbol.toStringTag]?a.default:a;var s;i.components[e]=o;const c=(o.__vccOpts||o)[t];return c&&xe(c,n,r,i,e)()}))))}}var o;return a}function Ce(e){const t=(0,r.f3)(be),n=(0,r.f3)(ye),o=(0,r.Fl)((()=>t.resolve((0,a.SU)(e.to)))),i=(0,r.Fl)((()=>{const{matched:e}=o.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;const i=a.findIndex(h.bind(null,r));if(i>-1)return i;const s=Ne(e[t-2]);return t>1&&Ne(r)===s&&a[a.length-1].path!==s?a.findIndex(h.bind(null,e[t-2])):i})),s=(0,r.Fl)((()=>i.value>-1&&function(e,t){for(const n in t){const r=t[n],a=e[n];if("string"==typeof r){if(r!==a)return!1}else if(!l(a)||a.length!==r.length||r.some(((e,t)=>e!==a[t])))return!1}return!0}(n.params,o.value.params))),u=(0,r.Fl)((()=>i.value>-1&&i.value===n.matched.length-1&&d(n.params,o.value.params)));return{route:o,href:(0,r.Fl)((()=>o.value.href)),isActive:s,isExactActive:u,navigate:function(n={}){return function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}(n)?t[(0,a.SU)(e.replace)?"replace":"push"]((0,a.SU)(e.to)).catch(c):Promise.resolve()}}}const Ee=(0,r.aZ)({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Ce,setup(e,{slots:t}){const n=(0,a.qj)(Ce(e)),{options:o}=(0,r.f3)(be),i=(0,r.Fl)((()=>({[Se(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[Se(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive})));return()=>{const a=t.default&&t.default(n);return e.custom?a:(0,r.h)("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},a)}}});function Ne(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Se=(e,t,n)=>null!=e?e:null!=t?t:n;function Oe(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const je=(0,r.aZ)({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=(0,r.f3)(_e),s=(0,r.Fl)((()=>e.route||o.value)),c=(0,r.f3)(ge,0),l=(0,r.Fl)((()=>{let e=(0,a.SU)(c);const{matched:t}=s.value;let n;for(;(n=t[e])&&!n.components;)e++;return e})),u=(0,r.Fl)((()=>s.value.matched[l.value]));(0,r.JJ)(ge,(0,r.Fl)((()=>l.value+1))),(0,r.JJ)(ve,u),(0,r.JJ)(_e,s);const f=(0,a.iH)();return(0,r.YP)((()=>[f.value,u.value,e.name]),(([e,t,n],[r,a,o])=>{t&&(t.instances[n]=e,a&&a!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=a.leaveGuards),t.updateGuards.size||(t.updateGuards=a.updateGuards))),!e||!t||a&&h(t,a)&&r||(t.enterCallbacks[n]||[]).forEach((t=>t(e)))}),{flush:"post"}),()=>{const a=s.value,o=e.name,c=u.value,l=c&&c.components[o];if(!l)return Oe(n.default,{Component:l,route:a});const p=c.props[o],h=p?!0===p?a.params:"function"==typeof p?p(a):p:null,d=(0,r.h)(l,i({},h,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(c.instances[o]=null)},ref:f}));return Oe(n.default,{Component:d,route:a})||d}}});function Le(e){const t=function(e,t){const n=[],r=new Map;function a(e,n,r){const l=!r,u=function(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:B(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}(e);u.aliasOf=r&&r.record;const f=q(t,e),p=[u];if("alias"in e){const t="string"==typeof e.alias?[e.alias]:e.alias;for(const e of t)p.push(i({},u,{components:r?r.record.components:u.components,path:e,aliasOf:r?r.record:u}))}let h,d;for(const t of p){const{path:i}=t;if(n&&"/"!==i[0]){const e=n.record.path,r="/"===e[e.length-1]?"":"/";t.path=n.record.path+(i&&r+i)}if(h=V(t,n,f),r?r.alias.push(h):(d=d||h,d!==h&&d.alias.push(h),l&&e.name&&!W(h)&&o(e.name)),u.children){const e=u.children;for(let t=0;t<e.length;t++)a(e[t],h,r&&r.children[t])}r=r||h,(h.record.components&&Object.keys(h.record.components).length||h.record.name||h.record.redirect)&&s(h)}return d?()=>{o(d)}:c}function o(e){if(O(e)){const t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(e){let t=0;for(;t<n.length&&F(e,n[t])>=0&&(e.record.path!==n[t].record.path||!G(e,n[t]));)t++;n.splice(t,0,e),e.record.name&&!W(e)&&r.set(e.record.name,e)}return t=q({strict:!1,end:!0,sensitive:!1},t),e.forEach((e=>a(e))),{addRoute:a,resolve:function(e,t){let a,o,s,c={};if("name"in e&&e.name){if(a=r.get(e.name),!a)throw M(1,{location:e});s=a.record.name,c=i(U(t.params,a.keys.filter((e=>!e.optional)).map((e=>e.name))),e.params&&U(e.params,a.keys.map((e=>e.name)))),o=a.stringify(c)}else if("path"in e)o=e.path,a=n.find((e=>e.re.test(o))),a&&(c=a.parse(o),s=a.record.name);else{if(a=t.name?r.get(t.name):n.find((e=>e.re.test(t.path))),!a)throw M(1,{location:e,currentLocation:t});s=a.record.name,c=i({},t.params,e.params),o=a.stringify(c)}const l=[];let u=a;for(;u;)l.unshift(u.record),u=u.parent;return{name:s,path:o,params:c,matched:l,meta:Y(l)}},removeRoute:o,getRoutes:function(){return n},getRecordMatcher:function(e){return r.get(e)}}}(e.routes,e),n=e.parseQuery||he,u=e.stringifyQuery||de,p=e.history,m=we(),v=we(),b=we(),y=(0,a.XI)(j);let _=j;o&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const C=s.bind(null,(e=>""+e)),E=s.bind(null,fe),N=s.bind(null,pe);function S(e,r){if(r=i({},r||y.value),"string"==typeof e){const a=f(n,e,r.path),o=t.resolve({path:a.path},r),s=p.createHref(a.fullPath);return i(a,o,{params:N(o.params),hash:pe(a.hash),redirectedFrom:void 0,href:s})}let a;if("path"in e)a=i({},e,{path:f(n,e.path,r.path).path});else{const t=i({},e.params);for(const e in t)null==t[e]&&delete t[e];a=i({},e,{params:E(e.params)}),r.params=E(r.params)}const o=t.resolve(a,r),s=e.hash||"";o.params=C(N(o.params));const c=function(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}(u,i({},e,{hash:(l=s,le(l).replace(oe,"{").replace(se,"}").replace(re,"^")),path:o.path}));var l;const h=p.createHref(c);return i({fullPath:c,hash:s,query:u===de?me(e.query):e.query||{}},o,{redirectedFrom:void 0,href:h})}function L(e){return"string"==typeof e?f(n,e,y.value.path):i({},e)}function A(e,t){if(_!==e)return M(8,{from:t,to:e})}function T(e){return P(e)}function R(e){const t=e.matched[e.matched.length-1];if(t&&t.redirect){const{redirect:n}=t;let r="function"==typeof n?n(e):n;return"string"==typeof r&&(r=r.includes("?")||r.includes("#")?r=L(r):{path:r},r.params={}),i({query:e.query,hash:e.hash,params:"path"in r?{}:e.params},r)}}function P(e,t){const n=_=S(e),r=y.value,a=e.state,o=e.force,s=!0===e.replace,c=R(n);if(c)return P(i(L(c),{state:"object"==typeof c?i({},a,c.state):a,force:o,replace:s}),t||n);const l=n;let f;return l.redirectedFrom=t,!o&&function(e,t,n){const r=t.matched.length-1,a=n.matched.length-1;return r>-1&&r===a&&h(t.matched[r],n.matched[a])&&d(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}(u,r,n)&&(f=M(16,{to:l,from:r}),te(r,r,!0,!1)),(f?Promise.resolve(f):$(l,r)).catch((e=>I(e)?I(e,2)?e:ee(e):Q(e,l,r))).then((e=>{if(e){if(I(e,2))return P(i({replace:s},L(e.to),{state:"object"==typeof e.to?i({},a,e.to.state):a,force:o}),t||l)}else e=D(l,r,!0,s,a);return H(l,r,e),e}))}function z(e,t){const n=A(e,t);return n?Promise.reject(n):Promise.resolve()}function $(e,t){let n;const[r,a,o]=function(e,t){const n=[],r=[],a=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;i<o;i++){const o=t.matched[i];o&&(e.matched.find((e=>h(e,o)))?r.push(o):n.push(o));const s=e.matched[i];s&&(t.matched.find((e=>h(e,s)))||a.push(s))}return[n,r,a]}(e,t);n=ke(r.reverse(),"beforeRouteLeave",e,t);for(const a of r)a.leaveGuards.forEach((r=>{n.push(xe(r,e,t))}));const i=z.bind(null,e,t);return n.push(i),Ae(n).then((()=>{n=[];for(const r of m.list())n.push(xe(r,e,t));return n.push(i),Ae(n)})).then((()=>{n=ke(a,"beforeRouteUpdate",e,t);for(const r of a)r.updateGuards.forEach((r=>{n.push(xe(r,e,t))}));return n.push(i),Ae(n)})).then((()=>{n=[];for(const r of e.matched)if(r.beforeEnter&&!t.matched.includes(r))if(l(r.beforeEnter))for(const a of r.beforeEnter)n.push(xe(a,e,t));else n.push(xe(r.beforeEnter,e,t));return n.push(i),Ae(n)})).then((()=>(e.matched.forEach((e=>e.enterCallbacks={})),n=ke(o,"beforeRouteEnter",e,t),n.push(i),Ae(n)))).then((()=>{n=[];for(const r of v.list())n.push(xe(r,e,t));return n.push(i),Ae(n)})).catch((e=>I(e,8)?e:Promise.reject(e)))}function H(e,t,n){for(const r of b.list())r(e,t,n)}function D(e,t,n,r,a){const s=A(e,t);if(s)return s;const c=t===j,l=o?history.state:{};n&&(r||c?p.replace(e.fullPath,i({scroll:c&&l&&l.scroll},a)):p.push(e.fullPath,a)),y.value=e,te(e,t,n,c),ee()}let X;let Z,J=we(),K=we();function Q(e,t,n){ee(e);const r=K.list();return r.length?r.forEach((r=>r(e,t,n))):console.error(e),Promise.reject(e)}function ee(e){return Z||(Z=!e,X||(X=p.listen(((e,t,n)=>{if(!ce.listening)return;const r=S(e),a=R(r);if(a)return void P(i(a,{replace:!0}),r).catch(c);_=r;const s=y.value;var l,u;o&&(l=x(s.fullPath,n.delta),u=w(),k.set(l,u)),$(r,s).catch((e=>I(e,12)?e:I(e,2)?(P(e.to,r).then((e=>{I(e,20)&&!n.delta&&n.type===g.pop&&p.go(-1,!1)})).catch(c),Promise.reject()):(n.delta&&p.go(-n.delta,!1),Q(e,r,s)))).then((e=>{(e=e||D(r,s,!1))&&(n.delta&&!I(e,8)?p.go(-n.delta,!1):n.type===g.pop&&I(e,20)&&p.go(-1,!1)),H(r,s,e)})).catch(c)}))),J.list().forEach((([t,n])=>e?n(e):t())),J.reset()),e}function te(t,n,a,i){const{scrollBehavior:s}=e;if(!o||!s)return Promise.resolve();const c=!a&&function(e){const t=k.get(e);return k.delete(e),t}(x(t.fullPath,0))||(i||!a)&&history.state&&history.state.scroll||null;return(0,r.Y3)().then((()=>s(t,n,c))).then((e=>e&&function(e){let t;if("el"in e){const n=e.el,r="string"==typeof n&&n.startsWith("#"),a="string"==typeof n?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!a)return;t=function(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}(a,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.pageXOffset,null!=t.top?t.top:window.pageYOffset)}(e))).catch((e=>Q(e,t,n)))}const ne=e=>p.go(e);let ae;const ie=new Set,ce={currentRoute:y,listening:!0,addRoute:function(e,n){let r,a;return O(e)?(r=t.getRecordMatcher(e),a=n):a=e,t.addRoute(a,r)},removeRoute:function(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)},hasRoute:function(e){return!!t.getRecordMatcher(e)},getRoutes:function(){return t.getRoutes().map((e=>e.record))},resolve:S,options:e,push:T,replace:function(e){return T(i(L(e),{replace:!0}))},go:ne,back:()=>ne(-1),forward:()=>ne(1),beforeEach:m.add,beforeResolve:v.add,afterEach:b.add,onError:K.add,isReady:function(){return Z&&y.value!==j?Promise.resolve():new Promise(((e,t)=>{J.add([e,t])}))},install(e){e.component("RouterLink",Ee),e.component("RouterView",je),e.config.globalProperties.$router=this,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>(0,a.SU)(y)}),o&&!ae&&y.value===j&&(ae=!0,T(p.location).catch((e=>{})));const t={};for(const e in j)t[e]=(0,r.Fl)((()=>y.value[e]));e.provide(be,this),e.provide(ye,(0,a.qj)(t)),e.provide(_e,y);const n=e.unmount;ie.add(e),e.unmount=function(){ie.delete(e),ie.size<1&&(_=j,X&&X(),X=null,y.value=j,ae=!1,Z=!1),n()}}};return ce}function Ae(e){return e.reduce(((e,t)=>e.then((()=>t()))),Promise.resolve())}},989:(e,t,n)=>{"use strict";n.d(t,{MT:()=>T,nv:()=>H,Se:()=>$,OI:()=>F,rn:()=>z});var r=n(66252),a=n(2262);function o(){return"undefined"!=typeof navigator&&"undefined"!=typeof window?window:void 0!==n.g?n.g:{}}const i="function"==typeof Proxy;let s,c;class l{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const r={};if(e.settings)for(const t in e.settings){const n=e.settings[t];r[t]=n.defaultValue}const a=`__vue-devtools-plugin-settings__${e.id}`;let o=Object.assign({},r);try{const e=localStorage.getItem(a),t=JSON.parse(e);Object.assign(o,t)}catch(e){}this.fallbacks={getSettings:()=>o,setSettings(e){try{localStorage.setItem(a,JSON.stringify(e))}catch(e){}o=e},now:()=>{return void 0!==s||("undefined"!=typeof window&&window.performance?(s=!0,c=window.performance):void 0!==n.g&&(null===(e=n.g.perf_hooks)||void 0===e?void 0:e.performance)?(s=!0,c=n.g.perf_hooks.performance):s=!1),s?c.now():Date.now();var e}},t&&t.on("plugin:settings:set",((e,t)=>{e===this.plugin.id&&this.fallbacks.setSettings(t)})),this.proxiedOn=new Proxy({},{get:(e,t)=>this.target?this.target.on[t]:(...e)=>{this.onQueue.push({method:t,args:e})}}),this.proxiedTarget=new Proxy({},{get:(e,t)=>this.target?this.target[t]:"on"===t?this.proxiedOn:Object.keys(this.fallbacks).includes(t)?(...e)=>(this.targetQueue.push({method:t,args:e,resolve:()=>{}}),this.fallbacks[t](...e)):(...e)=>new Promise((n=>{this.targetQueue.push({method:t,args:e,resolve:n})}))})}async setRealTarget(e){this.target=e;for(const e of this.onQueue)this.target.on[e.method](...e.args);for(const e of this.targetQueue)e.resolve(await this.target[e.method](...e.args))}}function u(e,t){Object.keys(e).forEach((function(n){return t(e[n],n)}))}function f(e){return null!==e&&"object"==typeof e}function p(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function h(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;m(e,n,[],e._modules.root,!0),d(e,n,t)}function d(e,t,n){var o=e._state,i=e._scope;e.getters={},e._makeLocalGettersCache=Object.create(null);var s=e._wrappedGetters,c={},l={},f=(0,a.B)(!0);f.run((function(){u(s,(function(t,n){c[n]=function(e,t){return function(){return e(t)}}(t,e),l[n]=(0,r.Fl)((function(){return c[n]()})),Object.defineProperty(e.getters,n,{get:function(){return l[n].value},enumerable:!0})}))})),e._state=(0,a.qj)({data:t}),e._scope=f,e.strict&&function(e){(0,r.YP)((function(){return e._state.data}),(function(){}),{deep:!0,flush:"sync"})}(e),o&&n&&e._withCommit((function(){o.data=null})),i&&i.stop()}function m(e,t,n,r,a){var o=!n.length,i=e._modules.getNamespace(n);if(r.namespaced&&(e._modulesNamespaceMap[i],e._modulesNamespaceMap[i]=r),!o&&!a){var s=g(t,n.slice(0,-1)),c=n[n.length-1];e._withCommit((function(){s[c]=r.state}))}var l=r.context=function(e,t,n){var r=""===t,a={dispatch:r?e.dispatch:function(n,r,a){var o=b(n,r,a),i=o.payload,s=o.options,c=o.type;return s&&s.root||(c=t+c),e.dispatch(c,i)},commit:r?e.commit:function(n,r,a){var o=b(n,r,a),i=o.payload,s=o.options,c=o.type;s&&s.root||(c=t+c),e.commit(c,i,s)}};return Object.defineProperties(a,{getters:{get:r?function(){return e.getters}:function(){return v(e,t)}},state:{get:function(){return g(e.state,n)}}}),a}(e,i,n);r.forEachMutation((function(t,n){!function(e,t,n,r){(e._mutations[t]||(e._mutations[t]=[])).push((function(t){n.call(e,r.state,t)}))}(e,i+n,t,l)})),r.forEachAction((function(t,n){var r=t.root?n:i+n,a=t.handler||t;!function(e,t,n,r){(e._actions[t]||(e._actions[t]=[])).push((function(t){var a,o=n.call(e,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:e.getters,rootState:e.state},t);return(a=o)&&"function"==typeof a.then||(o=Promise.resolve(o)),e._devtoolHook?o.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):o}))}(e,r,a,l)})),r.forEachGetter((function(t,n){!function(e,t,n,r){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return n(r.state,r.getters,e.state,e.getters)})}(e,i+n,t,l)})),r.forEachChild((function(r,o){m(e,t,n.concat(o),r,a)}))}function v(e,t){if(!e._makeLocalGettersCache[t]){var n={},r=t.length;Object.keys(e.getters).forEach((function(a){if(a.slice(0,r)===t){var o=a.slice(r);Object.defineProperty(n,o,{get:function(){return e.getters[a]},enumerable:!0})}})),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}function g(e,t){return t.reduce((function(e,t){return e[t]}),e)}function b(e,t,n){return f(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}var y="vuex:mutations",_="vuex:actions",w="vuex",x=0;function k(e,t){!function(e,t){const n=e,r=o(),a=o().__VUE_DEVTOOLS_GLOBAL_HOOK__,s=i&&n.enableEarlyProxy;if(!a||!r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__&&s){const e=s?new l(n,a):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:e}),e&&t(e.proxiedTarget)}else a.emit("devtools-plugin:setup",e,t)}({id:"org.vuejs.vuex",app:e,label:"Vuex",homepage:"https://next.vuex.vuejs.org/",logo:"https://vuejs.org/images/icons/favicon-96x96.png",packageName:"vuex",componentStateTypes:["vuex bindings"]},(function(n){n.addTimelineLayer({id:y,label:"Vuex Mutations",color:C}),n.addTimelineLayer({id:_,label:"Vuex Actions",color:C}),n.addInspector({id:w,label:"Vuex",icon:"storage",treeFilterPlaceholder:"Filter stores..."}),n.on.getInspectorTree((function(n){if(n.app===e&&n.inspectorId===w)if(n.filter){var r=[];O(r,t._modules.root,n.filter,""),n.rootNodes=r}else n.rootNodes=[S(t._modules.root,"")]})),n.on.getInspectorState((function(n){if(n.app===e&&n.inspectorId===w){var r=n.nodeId;v(t,r),n.state=function(e,t,n){t="root"===n?t:t[n];var r=Object.keys(t),a={state:Object.keys(e.state).map((function(t){return{key:t,editable:!0,value:e.state[t]}}))};if(r.length){var o=function(e){var t={};return Object.keys(e).forEach((function(n){var r=n.split("/");if(r.length>1){var a=t,o=r.pop();r.forEach((function(e){a[e]||(a[e]={_custom:{value:{},display:e,tooltip:"Module",abstract:!0}}),a=a[e]._custom.value})),a[o]=j((function(){return e[n]}))}else t[n]=j((function(){return e[n]}))})),t}(t);a.getters=Object.keys(o).map((function(e){return{key:e.endsWith("/")?N(e):e,editable:!1,value:j((function(){return o[e]}))}}))}return a}((a=t._modules,(i=(o=r).split("/").filter((function(e){return e}))).reduce((function(e,t,n){var r=e[t];if(!r)throw new Error('Missing module "'+t+'" for path "'+o+'".');return n===i.length-1?r:r._children}),"root"===o?a:a.root._children)),"root"===r?t.getters:t._makeLocalGettersCache,r)}var a,o,i})),n.on.editInspectorState((function(n){if(n.app===e&&n.inspectorId===w){var r=n.nodeId,a=n.path;"root"!==r&&(a=r.split("/").filter(Boolean).concat(a)),t._withCommit((function(){n.set(t._state.data,a,n.state.value)}))}})),t.subscribe((function(e,t){var r={};e.payload&&(r.payload=e.payload),r.state=t,n.notifyComponentUpdate(),n.sendInspectorTree(w),n.sendInspectorState(w),n.addTimelineEvent({layerId:y,event:{time:Date.now(),title:e.type,data:r}})})),t.subscribeAction({before:function(e,t){var r={};e.payload&&(r.payload=e.payload),e._id=x++,e._time=Date.now(),r.state=t,n.addTimelineEvent({layerId:_,event:{time:e._time,title:e.type,groupId:e._id,subtitle:"start",data:r}})},after:function(e,t){var r={},a=Date.now()-e._time;r.duration={_custom:{type:"duration",display:a+"ms",tooltip:"Action duration",value:a}},e.payload&&(r.payload=e.payload),r.state=t,n.addTimelineEvent({layerId:_,event:{time:Date.now(),title:e.type,groupId:e._id,subtitle:"end",data:r}})}})}))}var C=8702998,E={label:"namespaced",textColor:16777215,backgroundColor:6710886};function N(e){return e&&"root"!==e?e.split("/").slice(-2,-1)[0]:"Root"}function S(e,t){return{id:t||"root",label:N(t),tags:e.namespaced?[E]:[],children:Object.keys(e._children).map((function(n){return S(e._children[n],t+n+"/")}))}}function O(e,t,n,r){r.includes(n)&&e.push({id:r||"root",label:r.endsWith("/")?r.slice(0,r.length-1):r||"Root",tags:t.namespaced?[E]:[]}),Object.keys(t._children).forEach((function(a){O(e,t._children[a],n,r+a+"/")}))}function j(e){try{return e()}catch(e){return e}}var L=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=("function"==typeof n?n():n)||{}},A={namespaced:{configurable:!0}};A.namespaced.get=function(){return!!this._rawModule.namespaced},L.prototype.addChild=function(e,t){this._children[e]=t},L.prototype.removeChild=function(e){delete this._children[e]},L.prototype.getChild=function(e){return this._children[e]},L.prototype.hasChild=function(e){return e in this._children},L.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},L.prototype.forEachChild=function(e){u(this._children,e)},L.prototype.forEachGetter=function(e){this._rawModule.getters&&u(this._rawModule.getters,e)},L.prototype.forEachAction=function(e){this._rawModule.actions&&u(this._rawModule.actions,e)},L.prototype.forEachMutation=function(e){this._rawModule.mutations&&u(this._rawModule.mutations,e)},Object.defineProperties(L.prototype,A);var M=function(e){this.register([],e,!1)};function I(e,t,n){if(t.update(n),n.modules)for(var r in n.modules){if(!t.getChild(r))return;I(e.concat(r),t.getChild(r),n.modules[r])}}function T(e){return new R(e)}M.prototype.get=function(e){return e.reduce((function(e,t){return e.getChild(t)}),this.root)},M.prototype.getNamespace=function(e){var t=this.root;return e.reduce((function(e,n){return e+((t=t.getChild(n)).namespaced?n+"/":"")}),"")},M.prototype.update=function(e){I([],this.root,e)},M.prototype.register=function(e,t,n){var r=this;void 0===n&&(n=!0);var a=new L(t,n);0===e.length?this.root=a:this.get(e.slice(0,-1)).addChild(e[e.length-1],a),t.modules&&u(t.modules,(function(t,a){r.register(e.concat(a),t,n)}))},M.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1],r=t.getChild(n);r&&r.runtime&&t.removeChild(n)},M.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),n=e[e.length-1];return!!t&&t.hasChild(n)};var R=function(e){var t=this;void 0===e&&(e={});var n=e.plugins;void 0===n&&(n=[]);var r=e.strict;void 0===r&&(r=!1);var a=e.devtools;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new M(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null),this._scope=null,this._devtools=a;var o=this,i=this.dispatch,s=this.commit;this.dispatch=function(e,t){return i.call(o,e,t)},this.commit=function(e,t,n){return s.call(o,e,t,n)},this.strict=r;var c=this._modules.root.state;m(this,c,[],this._modules.root),d(this,c),n.forEach((function(e){return e(t)}))},P={state:{configurable:!0}};R.prototype.install=function(e,t){e.provide(t||"store",this),e.config.globalProperties.$store=this,void 0!==this._devtools&&this._devtools&&k(e,this)},P.state.get=function(){return this._state.data},P.state.set=function(e){},R.prototype.commit=function(e,t,n){var r=this,a=b(e,t,n),o=a.type,i=a.payload,s=(a.options,{type:o,payload:i}),c=this._mutations[o];c&&(this._withCommit((function(){c.forEach((function(e){e(i)}))})),this._subscribers.slice().forEach((function(e){return e(s,r.state)})))},R.prototype.dispatch=function(e,t){var n=this,r=b(e,t),a=r.type,o=r.payload,i={type:a,payload:o},s=this._actions[a];if(s){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(i,n.state)}))}catch(e){}var c=s.length>1?Promise.all(s.map((function(e){return e(o)}))):s[0](o);return new Promise((function(e,t){c.then((function(t){try{n._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(i,n.state)}))}catch(e){}e(t)}),(function(e){try{n._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(i,n.state,e)}))}catch(e){}t(e)}))}))}},R.prototype.subscribe=function(e,t){return p(e,this._subscribers,t)},R.prototype.subscribeAction=function(e,t){return p("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},R.prototype.watch=function(e,t,n){var a=this;return(0,r.YP)((function(){return e(a.state,a.getters)}),t,Object.assign({},n))},R.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._state.data=e}))},R.prototype.registerModule=function(e,t,n){void 0===n&&(n={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),m(this,this.state,e,this._modules.get(e),n.preserveState),d(this,this.state)},R.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){delete g(t.state,e.slice(0,-1))[e[e.length-1]]})),h(this)},R.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},R.prototype.hotUpdate=function(e){this._modules.update(e),h(this,!0)},R.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(R.prototype,P);var z=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,a=t.val;n[r]=function(){var t=this.$store.state,n=this.$store.getters;if(e){var r=U(this.$store,0,e);if(!r)return;t=r.context.state,n=r.context.getters}return"function"==typeof a?a.call(this,t,n):t[a]},n[r].vuex=!0})),n})),F=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,a=t.val;n[r]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var r=this.$store.commit;if(e){var o=U(this.$store,0,e);if(!o)return;r=o.context.commit}return"function"==typeof a?a.apply(this,[r].concat(t)):r.apply(this.$store,[a].concat(t))}})),n})),$=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,a=t.val;a=e+a,n[r]=function(){if(!e||U(this.$store,0,e))return this.$store.getters[a]},n[r].vuex=!0})),n})),H=V((function(e,t){var n={};return D(t).forEach((function(t){var r=t.key,a=t.val;n[r]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var r=this.$store.dispatch;if(e){var o=U(this.$store,0,e);if(!o)return;r=o.context.dispatch}return"function"==typeof a?a.apply(this,[r].concat(t)):r.apply(this.$store,[a].concat(t))}})),n}));function D(e){return function(e){return Array.isArray(e)||f(e)}(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function V(e){return function(t,n){return"string"!=typeof t?(n=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,n)}}function U(e,t,n){return e._modulesNamespaceMap[n]}},47529:e=>{e.exports=function(){for(var e={},n=0;n<arguments.length;n++){var r=arguments[n];for(var a in r)t.call(r,a)&&(e[a]=r[a])}return e};var t=Object.prototype.hasOwnProperty},17061:(e,t,n)=>{var r=n(18698).default;function a(){"use strict";e.exports=a=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,o=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},s="function"==typeof Symbol?Symbol:{},c=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function f(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,n){return e[t]=n}}function p(e,t,n,r){var a=t&&t.prototype instanceof m?t:m,o=Object.create(a.prototype),s=new O(r||[]);return i(o,"_invoke",{value:C(e,n,s)}),o}function h(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=p;var d={};function m(){}function v(){}function g(){}var b={};f(b,c,(function(){return this}));var y=Object.getPrototypeOf,_=y&&y(y(j([])));_&&_!==n&&o.call(_,c)&&(b=_);var w=g.prototype=m.prototype=Object.create(b);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(a,i,s,c){var l=h(e[a],e,i);if("throw"!==l.type){var u=l.arg,f=u.value;return f&&"object"==r(f)&&o.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,s,c)}),(function(e){n("throw",e,s,c)})):t.resolve(f).then((function(e){u.value=e,s(u)}),(function(e){return n("throw",e,s,c)}))}c(l.arg)}var a;i(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(o,o):o()}})}function C(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var s=E(i,n);if(s){if(s===d)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=h(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function E(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var r=h(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,d;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function j(e){if(e){var t=e[c];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(o.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return r.next=r}}return{next:L}}function L(){return{value:void 0,done:!0}}return v.prototype=g,i(w,"constructor",{value:g,configurable:!0}),i(g,"constructor",{value:v,configurable:!0}),v.displayName=f(g,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,f(e,u,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},x(k.prototype),f(k.prototype,l,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new k(p(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(w),f(w,u,"Generator"),f(w,c,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=j,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(s&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var a=r;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,d):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;S(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:j(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},18698:e=>{function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},64687:(e,t,n)=>{var r=n(17061)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},30907:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:()=>r})},83878:(e,t,n)=>{"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:()=>r})},97326:(e,t,n)=>{"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:()=>r})},15861:(e,t,n)=>{"use strict";function r(e,t,n,r,a,o,i){try{var s=e[o](i),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,o){var i=e.apply(t,n);function s(e){r(i,a,o,s,c,"next",e)}function c(e){r(i,a,o,s,c,"throw",e)}s(void 0)}))}}n.d(t,{Z:()=>a})},15671:(e,t,n)=>{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:()=>r})},43144:(e,t,n)=>{"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}n.d(t,{Z:()=>a})},4942:(e,t,n)=>{"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:()=>r})},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},61120:(e,t,n)=>{"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:()=>r})},60136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(89611);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,r.Z)(e,t)}},59199:(e,t,n)=>{"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:()=>r})},25267:(e,t,n)=>{"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:()=>r})},36459:(e,t,n)=>{"use strict";function r(e){if(null==e)throw new TypeError("Cannot destructure "+e)}n.d(t,{Z:()=>r})},44925:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}n.d(t,{Z:()=>r})},82963:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(71002),a=n(97326);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},89611:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:()=>r})},29439:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(83878),a=n(40181),o=n(25267);function i(e,t){return(0,r.Z)(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}}(e,t)||(0,a.Z)(e,t)||(0,o.Z)()}},93433:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(30907),a=n(59199),o=n(40181);function i(e){return function(e){if(Array.isArray(e))return(0,r.Z)(e)}(e)||(0,a.Z)(e)||(0,o.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},71002:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:()=>r})},40181:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(30907);function a(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},72407:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(61120),a=n(89611);function o(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function i(e,t,n){return i=o()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&(0,a.Z)(o,n.prototype),o},i.apply(null,arguments)}function s(e){var t="function"==typeof Map?new Map:void 0;return s=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return i(e,arguments,(0,r.Z)(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),(0,a.Z)(o,e)},s(e)}},73152:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r={};try{r.EventTarget=(new EventTarget).constructor}catch(e){!function(e,t){var n=e.create,a=e.defineProperty,o=i.prototype;function i(){t.set(this,n(null))}function s(e,t,n){a(e,t,{configurable:!0,writable:!0,value:n})}function c(e){var t=e.options;return t&&t.once&&e.target.removeEventListener(this.type,e.listener),"function"==typeof e.listener?e.listener.call(e.target,this):e.listener.handleEvent(this),this._stopImmediatePropagationFlag}s(o,"addEventListener",(function(e,n,r){for(var a=t.get(this),o=a[e]||(a[e]=[]),i=0,s=o.length;i<s;i++)if(o[i].listener===n)return;o.push({target:this,listener:n,options:r})})),s(o,"dispatchEvent",(function(e){var n=t.get(this)[e.type];return n&&(s(e,"target",this),s(e,"currentTarget",this),n.slice(0).some(c,e),delete e.currentTarget,delete e.target),!0})),s(o,"removeEventListener",(function(e,n){for(var r=t.get(this),a=r[e]||(r[e]=[]),o=0,i=a.length;o<i;o++)if(a[o].listener===n)return void a.splice(o,1)})),r.EventTarget=i}(Object,new WeakMap)}const a=r.EventTarget}}]);
-//# sourceMappingURL=9169.335214f6ab57538eae0b.js.map \ No newline at end of file
diff --git a/priv/static/static/js/9169.335214f6ab57538eae0b.js.map b/priv/static/static/js/9169.335214f6ab57538eae0b.js.map
deleted file mode 100644
index 5f306b997..000000000
--- a/priv/static/static/js/9169.335214f6ab57538eae0b.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/9169.335214f6ab57538eae0b.js","mappings":"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","sources":["webpack://pleroma_fe/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://pleroma_fe/./node_modules/@fortawesome/free-regular-svg-icons/index.mjs","webpack://pleroma_fe/./node_modules/@fortawesome/free-solid-svg-icons/index.mjs","webpack://pleroma_fe/./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack://pleroma_fe/./node_modules/pointer-tracker/dist/PointerTracker.mjs","webpack://pleroma_fe/./node_modules/@kazvmoe-infra/pinch-zoom-element/dist/pinch-zoom.es.js","webpack://pleroma_fe/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vuelidate/core/dist/index.esm.js","webpack://pleroma_fe/./node_modules/@vuelidate/validators/dist/index.esm.js","webpack://pleroma_fe/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://pleroma_fe/./node_modules/chromatism/dist/chromatism.cjs.js","webpack://pleroma_fe/./node_modules/click-outside-vue3/dist/v-click-outside.umd.js","webpack://pleroma_fe/./node_modules/custom-event-polyfill/polyfill.js","webpack://pleroma_fe/./node_modules/escape-html/index.js","webpack://pleroma_fe/./node_modules/iso-639-1/src/data.js","webpack://pleroma_fe/./node_modules/iso-639-1/src/index.js","webpack://pleroma_fe/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://pleroma_fe/./node_modules/localforage/dist/localforage.js","webpack://pleroma_fe/./node_modules/lodash.merge/index.js","webpack://pleroma_fe/./node_modules/lodash/_DataView.js","webpack://pleroma_fe/./node_modules/lodash/_Hash.js","webpack://pleroma_fe/./node_modules/lodash/_ListCache.js","webpack://pleroma_fe/./node_modules/lodash/_Map.js","webpack://pleroma_fe/./node_modules/lodash/_MapCache.js","webpack://pleroma_fe/./node_modules/lodash/_Promise.js","webpack://pleroma_fe/./node_modules/lodash/_Set.js","webpack://pleroma_fe/./node_modules/lodash/_SetCache.js","webpack://pleroma_fe/./node_modules/lodash/_Stack.js","webpack://pleroma_fe/./node_modules/lodash/_Symbol.js","webpack://pleroma_fe/./node_modules/lodash/_Uint8Array.js","webpack://pleroma_fe/./node_modules/lodash/_WeakMap.js","webpack://pleroma_fe/./node_modules/lodash/_apply.js","webpack://pleroma_fe/./node_modules/lodash/_arrayAggregator.js","webpack://pleroma_fe/./node_modules/lodash/_arrayEach.js","webpack://pleroma_fe/./node_modules/lodash/_arrayFilter.js","webpack://pleroma_fe/./node_modules/lodash/_arrayIncludes.js","webpack://pleroma_fe/./node_modules/lodash/_arrayIncludesWith.js","webpack://pleroma_fe/./node_modules/lodash/_arrayLikeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_arrayMap.js","webpack://pleroma_fe/./node_modules/lodash/_arrayPush.js","webpack://pleroma_fe/./node_modules/lodash/_arrayReduce.js","webpack://pleroma_fe/./node_modules/lodash/_arrayShuffle.js","webpack://pleroma_fe/./node_modules/lodash/_arraySome.js","webpack://pleroma_fe/./node_modules/lodash/_asciiToArray.js","webpack://pleroma_fe/./node_modules/lodash/_asciiWords.js","webpack://pleroma_fe/./node_modules/lodash/_assignMergeValue.js","webpack://pleroma_fe/./node_modules/lodash/_assignValue.js","webpack://pleroma_fe/./node_modules/lodash/_assocIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseAggregator.js","webpack://pleroma_fe/./node_modules/lodash/_baseAssign.js","webpack://pleroma_fe/./node_modules/lodash/_baseAssignIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseAssignValue.js","webpack://pleroma_fe/./node_modules/lodash/_baseClamp.js","webpack://pleroma_fe/./node_modules/lodash/_baseClone.js","webpack://pleroma_fe/./node_modules/lodash/_baseCreate.js","webpack://pleroma_fe/./node_modules/lodash/_baseEach.js","webpack://pleroma_fe/./node_modules/lodash/_baseExtremum.js","webpack://pleroma_fe/./node_modules/lodash/_baseFilter.js","webpack://pleroma_fe/./node_modules/lodash/_baseFindIndex.js","webpack://pleroma_fe/./node_modules/lodash/_baseFlatten.js","webpack://pleroma_fe/./node_modules/lodash/_baseFor.js","webpack://pleroma_fe/./node_modules/lodash/_baseForOwn.js","webpack://pleroma_fe/./node_modules/lodash/_baseGet.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetTag.js","webpack://pleroma_fe/./node_modules/lodash/_baseGt.js","webpack://pleroma_fe/./node_modules/lodash/_baseHasIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsArguments.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqual.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqualDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsMap.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsMatch.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNaN.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNative.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsSet.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/_baseIteratee.js","webpack://pleroma_fe/./node_modules/lodash/_baseKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseKeysIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseLt.js","webpack://pleroma_fe/./node_modules/lodash/_baseMap.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatches.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatchesProperty.js","webpack://pleroma_fe/./node_modules/lodash/_baseMerge.js","webpack://pleroma_fe/./node_modules/lodash/_baseMergeDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseOrderBy.js","webpack://pleroma_fe/./node_modules/lodash/_basePickBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseProperty.js","webpack://pleroma_fe/./node_modules/lodash/_basePropertyDeep.js","webpack://pleroma_fe/./node_modules/lodash/_basePropertyOf.js","webpack://pleroma_fe/./node_modules/lodash/_basePullAt.js","webpack://pleroma_fe/./node_modules/lodash/_baseRandom.js","webpack://pleroma_fe/./node_modules/lodash/_baseReduce.js","webpack://pleroma_fe/./node_modules/lodash/_baseRest.js","webpack://pleroma_fe/./node_modules/lodash/_baseSet.js","webpack://pleroma_fe/./node_modules/lodash/_baseSetToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseShuffle.js","webpack://pleroma_fe/./node_modules/lodash/_baseSlice.js","webpack://pleroma_fe/./node_modules/lodash/_baseSortBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseSum.js","webpack://pleroma_fe/./node_modules/lodash/_baseTimes.js","webpack://pleroma_fe/./node_modules/lodash/_baseToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseTrim.js","webpack://pleroma_fe/./node_modules/lodash/_baseUnary.js","webpack://pleroma_fe/./node_modules/lodash/_baseUniq.js","webpack://pleroma_fe/./node_modules/lodash/_baseUnset.js","webpack://pleroma_fe/./node_modules/lodash/_baseValues.js","webpack://pleroma_fe/./node_modules/lodash/_cacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_castFunction.js","webpack://pleroma_fe/./node_modules/lodash/_castPath.js","webpack://pleroma_fe/./node_modules/lodash/_castSlice.js","webpack://pleroma_fe/./node_modules/lodash/_charsEndIndex.js","webpack://pleroma_fe/./node_modules/lodash/_charsStartIndex.js","webpack://pleroma_fe/./node_modules/lodash/_cloneArrayBuffer.js","webpack://pleroma_fe/./node_modules/lodash/_cloneBuffer.js","webpack://pleroma_fe/./node_modules/lodash/_cloneDataView.js","webpack://pleroma_fe/./node_modules/lodash/_cloneRegExp.js","webpack://pleroma_fe/./node_modules/lodash/_cloneSymbol.js","webpack://pleroma_fe/./node_modules/lodash/_cloneTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/_compareAscending.js","webpack://pleroma_fe/./node_modules/lodash/_compareMultiple.js","webpack://pleroma_fe/./node_modules/lodash/_copyArray.js","webpack://pleroma_fe/./node_modules/lodash/_copyObject.js","webpack://pleroma_fe/./node_modules/lodash/_copySymbols.js","webpack://pleroma_fe/./node_modules/lodash/_copySymbolsIn.js","webpack://pleroma_fe/./node_modules/lodash/_coreJsData.js","webpack://pleroma_fe/./node_modules/lodash/_createAggregator.js","webpack://pleroma_fe/./node_modules/lodash/_createAssigner.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseEach.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseFor.js","webpack://pleroma_fe/./node_modules/lodash/_createCaseFirst.js","webpack://pleroma_fe/./node_modules/lodash/_createCompounder.js","webpack://pleroma_fe/./node_modules/lodash/_createFind.js","webpack://pleroma_fe/./node_modules/lodash/_createSet.js","webpack://pleroma_fe/./node_modules/lodash/_deburrLetter.js","webpack://pleroma_fe/./node_modules/lodash/_defineProperty.js","webpack://pleroma_fe/./node_modules/lodash/_equalArrays.js","webpack://pleroma_fe/./node_modules/lodash/_equalByTag.js","webpack://pleroma_fe/./node_modules/lodash/_equalObjects.js","webpack://pleroma_fe/./node_modules/lodash/_freeGlobal.js","webpack://pleroma_fe/./node_modules/lodash/_getAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_getAllKeysIn.js","webpack://pleroma_fe/./node_modules/lodash/_getMapData.js","webpack://pleroma_fe/./node_modules/lodash/_getMatchData.js","webpack://pleroma_fe/./node_modules/lodash/_getNative.js","webpack://pleroma_fe/./node_modules/lodash/_getPrototype.js","webpack://pleroma_fe/./node_modules/lodash/_getRawTag.js","webpack://pleroma_fe/./node_modules/lodash/_getSymbols.js","webpack://pleroma_fe/./node_modules/lodash/_getSymbolsIn.js","webpack://pleroma_fe/./node_modules/lodash/_getTag.js","webpack://pleroma_fe/./node_modules/lodash/_getValue.js","webpack://pleroma_fe/./node_modules/lodash/_hasPath.js","webpack://pleroma_fe/./node_modules/lodash/_hasUnicode.js","webpack://pleroma_fe/./node_modules/lodash/_hasUnicodeWord.js","webpack://pleroma_fe/./node_modules/lodash/_hashClear.js","webpack://pleroma_fe/./node_modules/lodash/_hashDelete.js","webpack://pleroma_fe/./node_modules/lodash/_hashGet.js","webpack://pleroma_fe/./node_modules/lodash/_hashHas.js","webpack://pleroma_fe/./node_modules/lodash/_hashSet.js","webpack://pleroma_fe/./node_modules/lodash/_initCloneArray.js","webpack://pleroma_fe/./node_modules/lodash/_initCloneByTag.js","webpack://pleroma_fe/./node_modules/lodash/_initCloneObject.js","webpack://pleroma_fe/./node_modules/lodash/_isFlattenable.js","webpack://pleroma_fe/./node_modules/lodash/_isIndex.js","webpack://pleroma_fe/./node_modules/lodash/_isIterateeCall.js","webpack://pleroma_fe/./node_modules/lodash/_isKey.js","webpack://pleroma_fe/./node_modules/lodash/_isKeyable.js","webpack://pleroma_fe/./node_modules/lodash/_isMasked.js","webpack://pleroma_fe/./node_modules/lodash/_isPrototype.js","webpack://pleroma_fe/./node_modules/lodash/_isStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapToArray.js","webpack://pleroma_fe/./node_modules/lodash/_matchesStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_memoizeCapped.js","webpack://pleroma_fe/./node_modules/lodash/_nativeCreate.js","webpack://pleroma_fe/./node_modules/lodash/_nativeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_nativeKeysIn.js","webpack://pleroma_fe/./node_modules/lodash/_nodeUtil.js","webpack://pleroma_fe/./node_modules/lodash/_objectToString.js","webpack://pleroma_fe/./node_modules/lodash/_overArg.js","webpack://pleroma_fe/./node_modules/lodash/_overRest.js","webpack://pleroma_fe/./node_modules/lodash/_parent.js","webpack://pleroma_fe/./node_modules/lodash/_root.js","webpack://pleroma_fe/./node_modules/lodash/_safeGet.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheAdd.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_setToArray.js","webpack://pleroma_fe/./node_modules/lodash/_setToString.js","webpack://pleroma_fe/./node_modules/lodash/_shortOut.js","webpack://pleroma_fe/./node_modules/lodash/_shuffleSelf.js","webpack://pleroma_fe/./node_modules/lodash/_stackClear.js","webpack://pleroma_fe/./node_modules/lodash/_stackDelete.js","webpack://pleroma_fe/./node_modules/lodash/_stackGet.js","webpack://pleroma_fe/./node_modules/lodash/_stackHas.js","webpack://pleroma_fe/./node_modules/lodash/_stackSet.js","webpack://pleroma_fe/./node_modules/lodash/_strictIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_stringToArray.js","webpack://pleroma_fe/./node_modules/lodash/_stringToPath.js","webpack://pleroma_fe/./node_modules/lodash/_toKey.js","webpack://pleroma_fe/./node_modules/lodash/_toSource.js","webpack://pleroma_fe/./node_modules/lodash/_trimmedEndIndex.js","webpack://pleroma_fe/./node_modules/lodash/_unescapeHtmlChar.js","webpack://pleroma_fe/./node_modules/lodash/_unicodeToArray.js","webpack://pleroma_fe/./node_modules/lodash/_unicodeWords.js","webpack://pleroma_fe/./node_modules/lodash/camelCase.js","webpack://pleroma_fe/./node_modules/lodash/capitalize.js","webpack://pleroma_fe/./node_modules/lodash/clamp.js","webpack://pleroma_fe/./node_modules/lodash/clone.js","webpack://pleroma_fe/./node_modules/lodash/cloneDeep.js","webpack://pleroma_fe/./node_modules/lodash/compact.js","webpack://pleroma_fe/./node_modules/lodash/concat.js","webpack://pleroma_fe/./node_modules/lodash/constant.js","webpack://pleroma_fe/./node_modules/lodash/debounce.js","webpack://pleroma_fe/./node_modules/lodash/deburr.js","webpack://pleroma_fe/./node_modules/lodash/each.js","webpack://pleroma_fe/./node_modules/lodash/eq.js","webpack://pleroma_fe/./node_modules/lodash/filter.js","webpack://pleroma_fe/./node_modules/lodash/find.js","webpack://pleroma_fe/./node_modules/lodash/findIndex.js","webpack://pleroma_fe/./node_modules/lodash/findLastIndex.js","webpack://pleroma_fe/./node_modules/lodash/first.js","webpack://pleroma_fe/./node_modules/lodash/flatten.js","webpack://pleroma_fe/./node_modules/lodash/flattenDeep.js","webpack://pleroma_fe/./node_modules/lodash/forEach.js","webpack://pleroma_fe/./node_modules/lodash/get.js","webpack://pleroma_fe/./node_modules/lodash/groupBy.js","webpack://pleroma_fe/./node_modules/lodash/hasIn.js","webpack://pleroma_fe/./node_modules/lodash/head.js","webpack://pleroma_fe/./node_modules/lodash/identity.js","webpack://pleroma_fe/./node_modules/lodash/includes.js","webpack://pleroma_fe/./node_modules/lodash/isArguments.js","webpack://pleroma_fe/./node_modules/lodash/isArray.js","webpack://pleroma_fe/./node_modules/lodash/isArrayLike.js","webpack://pleroma_fe/./node_modules/lodash/isArrayLikeObject.js","webpack://pleroma_fe/./node_modules/lodash/isBuffer.js","webpack://pleroma_fe/./node_modules/lodash/isEmpty.js","webpack://pleroma_fe/./node_modules/lodash/isEqual.js","webpack://pleroma_fe/./node_modules/lodash/isFunction.js","webpack://pleroma_fe/./node_modules/lodash/isLength.js","webpack://pleroma_fe/./node_modules/lodash/isMap.js","webpack://pleroma_fe/./node_modules/lodash/isObject.js","webpack://pleroma_fe/./node_modules/lodash/isObjectLike.js","webpack://pleroma_fe/./node_modules/lodash/isPlainObject.js","webpack://pleroma_fe/./node_modules/lodash/isSet.js","webpack://pleroma_fe/./node_modules/lodash/isString.js","webpack://pleroma_fe/./node_modules/lodash/isSymbol.js","webpack://pleroma_fe/./node_modules/lodash/isTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/keyBy.js","webpack://pleroma_fe/./node_modules/lodash/keys.js","webpack://pleroma_fe/./node_modules/lodash/keysIn.js","webpack://pleroma_fe/./node_modules/lodash/last.js","webpack://pleroma_fe/./node_modules/lodash/map.js","webpack://pleroma_fe/./node_modules/lodash/maxBy.js","webpack://pleroma_fe/./node_modules/lodash/memoize.js","webpack://pleroma_fe/./node_modules/lodash/merge.js","webpack://pleroma_fe/./node_modules/lodash/mergeWith.js","webpack://pleroma_fe/./node_modules/lodash/minBy.js","webpack://pleroma_fe/./node_modules/lodash/negate.js","webpack://pleroma_fe/./node_modules/lodash/noop.js","webpack://pleroma_fe/./node_modules/lodash/now.js","webpack://pleroma_fe/./node_modules/lodash/omitBy.js","webpack://pleroma_fe/./node_modules/lodash/orderBy.js","webpack://pleroma_fe/./node_modules/lodash/pickBy.js","webpack://pleroma_fe/./node_modules/lodash/property.js","webpack://pleroma_fe/./node_modules/lodash/reduce.js","webpack://pleroma_fe/./node_modules/lodash/reject.js","webpack://pleroma_fe/./node_modules/lodash/remove.js","webpack://pleroma_fe/./node_modules/lodash/set.js","webpack://pleroma_fe/./node_modules/lodash/shuffle.js","webpack://pleroma_fe/./node_modules/lodash/slice.js","webpack://pleroma_fe/./node_modules/lodash/sortBy.js","webpack://pleroma_fe/./node_modules/lodash/stubArray.js","webpack://pleroma_fe/./node_modules/lodash/stubFalse.js","webpack://pleroma_fe/./node_modules/lodash/sumBy.js","webpack://pleroma_fe/./node_modules/lodash/take.js","webpack://pleroma_fe/./node_modules/lodash/takeRight.js","webpack://pleroma_fe/./node_modules/lodash/throttle.js","webpack://pleroma_fe/./node_modules/lodash/toFinite.js","webpack://pleroma_fe/./node_modules/lodash/toInteger.js","webpack://pleroma_fe/./node_modules/lodash/toNumber.js","webpack://pleroma_fe/./node_modules/lodash/toPlainObject.js","webpack://pleroma_fe/./node_modules/lodash/toString.js","webpack://pleroma_fe/./node_modules/lodash/trim.js","webpack://pleroma_fe/./node_modules/lodash/unescape.js","webpack://pleroma_fe/./node_modules/lodash/uniq.js","webpack://pleroma_fe/./node_modules/lodash/uniqBy.js","webpack://pleroma_fe/./node_modules/lodash/uniqWith.js","webpack://pleroma_fe/./node_modules/lodash/uniqueId.js","webpack://pleroma_fe/./node_modules/lodash/upperFirst.js","webpack://pleroma_fe/./node_modules/lodash/values.js","webpack://pleroma_fe/./node_modules/lodash/words.js","webpack://pleroma_fe/./node_modules/lozad/dist/lozad.min.js","webpack://pleroma_fe/./node_modules/parse-link-header/index.js","webpack://pleroma_fe/./node_modules/phoenix/priv/static/phoenix.esm.js","webpack://pleroma_fe/./node_modules/punycode.js/punycode.es6.js","webpack://pleroma_fe/./node_modules/punycode/punycode.js","webpack://pleroma_fe/./node_modules/querystring/decode.js","webpack://pleroma_fe/./node_modules/querystring/encode.js","webpack://pleroma_fe/./node_modules/querystring/index.js","webpack://pleroma_fe/./node_modules/serviceworker-webpack5-plugin/lib/runtime.js","webpack://pleroma_fe/./node_modules/url/url.js","webpack://pleroma_fe/./node_modules/url/util.js","webpack://pleroma_fe/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://pleroma_fe/./node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","webpack://pleroma_fe/./node_modules/vue-loader/dist/exportHelper.js","webpack://pleroma_fe/./node_modules/vue-router/dist/vue-router.mjs","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://pleroma_fe/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://pleroma_fe/./node_modules/xtend/immutable.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/regenerator/index.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://pleroma_fe/./node_modules/@ungap/event-target/esm/index.js"],"sourcesContent":["function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n 'solid': 'fass'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n 'fass': 'fa-solid'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i; // TODO: this needs to support fass\n// TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n '900': 'fass'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.2.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","var prefix = \"far\";\nvar faTrashCan = {\n prefix: 'far',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M160 400C160 408.8 152.8 416 144 416C135.2 416 128 408.8 128 400V192C128 183.2 135.2 176 144 176C152.8 176 160 183.2 160 192V400zM240 400C240 408.8 232.8 416 224 416C215.2 416 208 408.8 208 400V192C208 183.2 215.2 176 224 176C232.8 176 240 183.2 240 192V400zM320 400C320 408.8 312.8 416 304 416C295.2 416 288 408.8 288 400V192C288 183.2 295.2 176 304 176C312.8 176 320 183.2 320 192V400zM317.5 24.94L354.2 80H424C437.3 80 448 90.75 448 104C448 117.3 437.3 128 424 128H416V432C416 476.2 380.2 512 336 512H112C67.82 512 32 476.2 32 432V128H24C10.75 128 0 117.3 0 104C0 90.75 10.75 80 24 80H93.82L130.5 24.94C140.9 9.357 158.4 0 177.1 0H270.9C289.6 0 307.1 9.358 317.5 24.94H317.5zM151.5 80H296.5L277.5 51.56C276 49.34 273.5 48 270.9 48H177.1C174.5 48 171.1 49.34 170.5 51.56L151.5 80zM80 432C80 449.7 94.33 464 112 464H336C353.7 464 368 449.7 368 432V128H80V432z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faMessage = {\n prefix: 'far',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M447.1 0h-384c-35.25 0-64 28.75-64 63.1v287.1c0 35.25 28.75 63.1 64 63.1h96v83.98c0 9.836 11.02 15.55 19.12 9.7l124.9-93.68h144c35.25 0 64-28.75 64-63.1V63.1C511.1 28.75 483.2 0 447.1 0zM464 352c0 8.75-7.25 16-16 16h-160l-80 60v-60H64c-8.75 0-16-7.25-16-16V64c0-8.75 7.25-16 16-16h384c8.75 0 16 7.25 16 16V352z\"]\n};\nvar faCommentAlt = faMessage;\nvar faFileLines = {\n prefix: 'far',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM96 280C96 293.3 106.8 304 120 304h144C277.3 304 288 293.3 288 280S277.3 256 264 256h-144C106.8 256 96 266.8 96 280zM264 352h-144C106.8 352 96 362.8 96 376s10.75 24 24 24h144c13.25 0 24-10.75 24-24S277.3 352 264 352z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faCalendarDays = {\n prefix: 'far',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 248H128V192H48V248zM48 296V360H128V296H48zM176 296V360H272V296H176zM320 296V360H400V296H320zM400 192H320V248H400V192zM400 408H320V464H384C392.8 464 400 456.8 400 448V408zM272 408H176V464H272V408zM128 408H48V448C48 456.8 55.16 464 64 464H128V408zM272 192H176V248H272V192z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M320 408c0-6.428-.8457-12.66-2.434-18.6C338.2 376.7 352 353.9 352 328c0-6.428-.8457-12.66-2.434-18.6C370.2 296.7 384 273.9 384 248c0-2.705-.1484-5.373-.4414-8H440C479.7 240 512 207.7 512 168S479.7 96 440 96H243.7C227.5 76.51 203.2 64 176 64H126.1C94.02 64 64.47 81.1 49 108.6L17.65 164.5C6.104 185.1 0 208.4 0 231.8v107.9C0 417.1 64.6 480 144 480h104C287.7 480 320 447.7 320 408zM280 304c13.23 0 24 10.78 24 24S293.2 352 280 352H232.1C218.9 352 208 341.2 208 328S218.8 304 232 304H280zM312 224c13.23 0 24 10.78 24 24S325.2 272 312 272h-48c-3.029 0-5.875-.7012-8.545-1.73C260.7 259.9 264 248.4 264 236V224H312zM440 144c13.23 0 24 10.78 24 24S453.2 192 440 192h-176V152c0-2.686-.5566-5.217-.793-7.84C263.5 144.2 263.7 144 264 144H440zM48 339.7V231.8c0-15.25 3.984-30.41 11.52-43.88l31.34-55.78C97.84 119.7 111.4 112 126.1 112H176c22.06 0 40 17.94 40 40v84c0 15.44-12.56 28-28 28S160 251.4 160 236V184C160 170.8 149.3 160 136 160S112 170.8 112 184v52c0 33.23 21.58 61.25 51.36 71.54C161.3 314 160 320.9 160 328c0 5.041 1.166 9.836 2.178 14.66C137.4 354 120 378.1 120 408c0 7.684 1.557 14.94 3.836 21.87C80.56 420.9 48 383.9 48 339.7zM192 432c-13.23 0-24-10.78-24-24S178.8 384 192 384h56c13.23 0 24 10.78 24 24s-10.77 24-24 24H192z\"]\n};\nvar faFaceSmileBeam = {\n prefix: 'far',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFaceGrinStars = {\n prefix: 'far',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M199.8 167.3L237.9 172.3C240.1 172.7 243.5 174.8 244.5 177.8C245.4 180.7 244.6 183.9 242.4 186L214.5 212.5L221.5 250.3C222 253.4 220.8 256.4 218.3 258.2C215.8 260.1 212.5 260.3 209.8 258.8L175.1 240.5L142.2 258.8C139.5 260.3 136.2 260.1 133.7 258.2C131.2 256.4 129.1 253.4 130.5 250.3L137.5 212.5L109.6 186C107.4 183.9 106.6 180.7 107.5 177.8C108.5 174.8 111 172.7 114.1 172.3L152.2 167.3L168.8 132.6C170.1 129.8 172.9 128 175.1 128C179.1 128 181.9 129.8 183.2 132.6L199.8 167.3zM359.8 167.3L397.9 172.3C400.1 172.7 403.5 174.8 404.5 177.8C405.4 180.7 404.6 183.9 402.4 186L374.5 212.5L381.5 250.3C382 253.4 380.8 256.4 378.3 258.2C375.8 260.1 372.5 260.3 369.8 258.8L336 240.5L302.2 258.8C299.5 260.3 296.2 260.1 293.7 258.2C291.2 256.4 289.1 253.4 290.5 250.3L297.5 212.5L269.6 186C267.4 183.9 266.6 180.7 267.5 177.8C268.5 174.8 271 172.7 274.1 172.3L312.2 167.3L328.8 132.6C330.1 129.8 332.9 128 336 128C339.1 128 341.9 129.8 343.2 132.6L359.8 167.3zM349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M272 288h-64C163.8 288 128 323.8 128 368C128 376.8 135.2 384 144 384h192c8.836 0 16-7.164 16-16C352 323.8 316.2 288 272 288zM240 256c35.35 0 64-28.65 64-64s-28.65-64-64-64c-35.34 0-64 28.65-64 64S204.7 256 240 256zM496 320H480v96h16c8.836 0 16-7.164 16-16v-64C512 327.2 504.8 320 496 320zM496 64H480v96h16C504.8 160 512 152.8 512 144v-64C512 71.16 504.8 64 496 64zM496 192H480v96h16C504.8 288 512 280.8 512 272v-64C512 199.2 504.8 192 496 192zM384 0H96C60.65 0 32 28.65 32 64v384c0 35.35 28.65 64 64 64h288c35.35 0 64-28.65 64-64V64C448 28.65 419.3 0 384 0zM400 448c0 8.836-7.164 16-16 16H96c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h288c8.836 0 16 7.162 16 16V448z\"]\n};\nvar faContactBook = faAddressBook;\nvar faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 0C322.9 0 416 78.8 416 176C416 273.2 322.9 352 208 352C189.3 352 171.2 349.7 153.9 345.8C123.3 364.8 79.13 384 24.95 384C14.97 384 5.93 378.1 2.018 368.9C-1.896 359.7-.0074 349.1 6.739 341.9C7.26 341.5 29.38 317.4 45.73 285.9C17.18 255.8 0 217.6 0 176C0 78.8 93.13 0 208 0zM164.6 298.1C179.2 302.3 193.8 304 208 304C296.2 304 368 246.6 368 176C368 105.4 296.2 48 208 48C119.8 48 48 105.4 48 176C48 211.2 65.71 237.2 80.57 252.9L104.1 277.8L88.31 308.1C84.74 314.1 80.73 321.9 76.55 328.5C94.26 323.4 111.7 315.5 128.7 304.1L145.4 294.6L164.6 298.1zM441.6 128.2C552 132.4 640 209.5 640 304C640 345.6 622.8 383.8 594.3 413.9C610.6 445.4 632.7 469.5 633.3 469.9C640 477.1 641.9 487.7 637.1 496.9C634.1 506.1 625 512 615 512C560.9 512 516.7 492.8 486.1 473.8C468.8 477.7 450.7 480 432 480C350 480 279.1 439.8 245.2 381.5C262.5 379.2 279.1 375.3 294.9 369.9C322.9 407.1 373.9 432 432 432C446.2 432 460.8 430.3 475.4 426.1L494.6 422.6L511.3 432.1C528.3 443.5 545.7 451.4 563.5 456.5C559.3 449.9 555.3 442.1 551.7 436.1L535.9 405.8L559.4 380.9C574.3 365.3 592 339.2 592 304C592 237.7 528.7 183.1 447.1 176.6L448 176C448 159.5 445.8 143.5 441.6 128.2H441.6z\"]\n};\nvar faPaste = {\n prefix: 'far',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M502.6 198.6l-61.25-61.25C435.4 131.4 427.3 128 418.8 128H256C220.7 128 191.1 156.7 192 192l.0065 255.1C192 483.3 220.7 512 256 512h192c35.2 0 64-28.8 64-64l.0098-226.7C512 212.8 508.6 204.6 502.6 198.6zM464 448c0 8.836-7.164 16-16 16h-192c-8.838 0-16-7.164-16-16L240 192.1c0-8.836 7.164-16 16-16h128L384 224c0 17.67 14.33 32 32 32h48.01V448zM317.7 96C310.6 68.45 285.8 48 256 48H215.2C211.3 20.93 188.1 0 160 0C131.9 0 108.7 20.93 104.8 48H64c-35.35 0-64 28.65-64 64V384c0 35.34 28.65 64 64 64h96v-48H64c-8.836 0-16-7.164-16-16V112C48 103.2 55.18 96 64 96h16v16c0 17.67 14.33 32 32 32h61.35C190 115.4 220.6 96 256 96H317.7zM160 72c-8.822 0-16-7.176-16-16s7.178-16 16-16s16 7.176 16 16S168.8 72 160 72z\"]\n};\nvar faFileClipboard = faPaste;\nvar faFaceGrinTongueSquint = {\n prefix: 'far',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1V157.1zM378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V392.7C135.1 375.1 116.9 351.3 105.2 323.5C100.2 311.7 112.2 301 124.5 304.8C164.1 316.9 208.9 323.8 256.3 323.8C303.7 323.8 348.4 316.9 388.1 304.8C400.4 301 412.4 311.7 407.4 323.5C395.6 351.5 376.3 375.5 352 393.1V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 255.1C464 141.1 370.9 47.1 256 47.1L256 48zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faFaceFlushed = {\n prefix: 'far',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M320 336C333.3 336 344 346.7 344 360C344 373.3 333.3 384 320 384H192C178.7 384 168 373.3 168 360C168 346.7 178.7 336 192 336H320zM136.4 224C136.4 210.7 147.1 200 160.4 200C173.6 200 184.4 210.7 184.4 224C184.4 237.3 173.6 248 160.4 248C147.1 248 136.4 237.3 136.4 224zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 197.5 186.5 176 160 176C133.5 176 112 197.5 112 224C112 250.5 133.5 272 160 272zM376.4 224C376.4 237.3 365.6 248 352.4 248C339.1 248 328.4 237.3 328.4 224C328.4 210.7 339.1 200 352.4 200C365.6 200 376.4 210.7 376.4 224zM432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224zM352 176C325.5 176 304 197.5 304 224C304 250.5 325.5 272 352 272C378.5 272 400 250.5 400 224C400 197.5 378.5 176 352 176zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faSquareCaretRight = {\n prefix: 'far',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M200.3 142.4C193.3 135.9 183.1 134.2 174.4 138C165.7 141.8 160 150.5 160 159.1v192C160 361.5 165.7 370.2 174.4 374c8.719 3.812 18.91 2.094 25.91-4.375l104-96C309.2 269.1 312 262.7 312 256s-2.812-13.09-7.719-17.62L200.3 142.4zM384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faSquareMinus = {\n prefix: 'far',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M312 232C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H312zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M306.7 325.1L162.4 380.6C142.1 388.1 123.9 369 131.4 349.6L186.9 205.3C190.1 196.8 196.8 190.1 205.3 186.9L349.6 131.4C369 123.9 388.1 142.1 380.6 162.4L325.1 306.7C321.9 315.2 315.2 321.9 306.7 325.1V325.1zM255.1 224C238.3 224 223.1 238.3 223.1 256C223.1 273.7 238.3 288 255.1 288C273.7 288 288 273.7 288 256C288 238.3 273.7 224 255.1 224V224zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'far',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M320 192H128C118.5 192 109.8 197.7 105.1 206.4C102.2 215.1 103.9 225.3 110.4 232.3l96 104C210.9 341.2 217.3 344 224 344s13.09-2.812 17.62-7.719l96-104c6.469-7 8.188-17.19 4.375-25.91C338.2 197.7 329.5 192 320 192zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faFaceKissBeam = {\n prefix: 'far',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M304.7 297.7C308.9 302.8 312 309.1 312 316C312 322.9 308.9 329.2 304.7 334.3C300.4 339.5 294.5 344 287.9 347.7C285.2 349.3 282.3 350.7 279.2 352C282.3 353.3 285.2 354.7 287.9 356.3C294.5 359.1 300.4 364.5 304.7 369.7C308.9 374.8 312 381.1 312 388C312 394.9 308.9 401.2 304.7 406.3C300.4 411.5 294.5 416 287.9 419.7C274.7 427.1 257.4 432 240 432C236.4 432 233.2 429.5 232.3 426C231.3 422.5 232.9 418.8 236.1 417L236.1 417L236.3 416.9C236.5 416.8 236.8 416.6 237.2 416.3C238 415.9 239.2 415.1 240.6 414.2C243.4 412.4 247.2 409.7 250.8 406.6C254.6 403.5 258 400 260.5 396.6C262.1 393 264 390.2 264 388C264 385.8 262.1 382.1 260.5 379.4C258 375.1 254.6 372.5 250.8 369.4C247.2 366.3 243.4 363.6 240.6 361.8C239.2 360.9 238 360.1 237.2 359.7C236.8 359.4 236.5 359.2 236.3 359.1L236.1 358.1L236.1 358.1C233.6 357.6 232 354.9 232 352C232 349.1 233.6 346.4 236.1 345L236.1 345L236.3 344.9C236.5 344.8 236.8 344.6 237.2 344.3C238 343.9 239.2 343.1 240.6 342.2C243.4 340.4 247.2 337.7 250.8 334.6C254.6 331.5 258 328.1 260.5 324.6C262.1 321 264 318.2 264 316C264 313.8 262.1 310.1 260.5 307.4C258 303.1 254.6 300.5 250.8 297.4C247.2 294.3 243.4 291.6 240.6 289.8C239.2 288.9 238 288.1 237.2 287.7C236.8 287.4 236.5 287.2 236.3 287.1L236.1 286.1L236.1 286.1C232.9 285.2 231.3 281.5 232.3 277.1C233.2 274.5 236.4 272 240 272C257.4 272 274.7 276.9 287.9 284.3C294.5 287.1 300.4 292.5 304.7 297.7L304.7 297.7zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM192 0C90.02 .3203 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.8 289.2 .0039 192 0zM288.4 260.1c-15.66 17.85-35.04 46.3-49.05 75.89h-94.61c-14.01-29.59-33.39-58.04-49.04-75.88C75.24 236.8 64 206.1 64 175.1C64 113.3 112.1 48.25 191.1 48C262.6 48 320 105.4 320 175.1C320 206.1 308.8 236.8 288.4 260.1zM176 80C131.9 80 96 115.9 96 160c0 8.844 7.156 16 16 16S128 168.8 128 160c0-26.47 21.53-48 48-48c8.844 0 16-7.148 16-15.99S184.8 80 176 80z\"]\n};\nvar faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [512, 512, [127988, 61725], \"f024\", \"M476.3 0c-6.365 0-13.01 1.35-19.34 4.233c-45.69 20.86-79.56 27.94-107.8 27.94c-59.96 0-94.81-31.86-163.9-31.87c-34.63 0-77.87 8.003-137.2 32.05V24C48 10.75 37.25 0 24 0S0 10.75 0 24v464C0 501.3 10.75 512 24 512s24-10.75 24-24v-104c53.59-23.86 96.02-31.81 132.8-31.81c73.63 0 124.9 31.78 198.6 31.78c31.91 0 68.02-5.971 111.1-23.09C504.1 355.9 512 344.4 512 332.1V30.73C512 11.1 495.3 0 476.3 0zM464 319.8c-30.31 10.82-58.08 16.1-84.6 16.1c-30.8 0-58.31-7-87.44-14.41c-32.01-8.141-68.29-17.37-111.1-17.37c-42.35 0-85.99 9.09-132.8 27.73V84.14l18.03-7.301c47.39-19.2 86.38-28.54 119.2-28.54c28.24 .0039 49.12 6.711 73.31 14.48c25.38 8.148 54.13 17.39 90.58 17.39c35.43 0 72.24-8.496 114.9-26.61V319.8z\"]\n};\nvar faSquareCheck = {\n prefix: 'far',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M211.8 339.8C200.9 350.7 183.1 350.7 172.2 339.8L108.2 275.8C97.27 264.9 97.27 247.1 108.2 236.2C119.1 225.3 136.9 225.3 147.8 236.2L192 280.4L300.2 172.2C311.1 161.3 328.9 161.3 339.8 172.2C350.7 183.1 350.7 200.9 339.8 211.8L211.8 339.8zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faCircleDot = {\n prefix: 'far',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M160 256C160 202.1 202.1 160 256 160C309 160 352 202.1 352 256C352 309 309 352 256 352C202.1 352 160 309 160 256zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faFaceDizzy = {\n prefix: 'far',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM103 135C112.4 125.7 127.6 125.7 136.1 135L160 158.1L183 135C192.4 125.7 207.6 125.7 216.1 135C226.3 144.4 226.3 159.6 216.1 168.1L193.9 192L216.1 215C226.3 224.4 226.3 239.6 216.1 248.1C207.6 258.3 192.4 258.3 183 248.1L160 225.9L136.1 248.1C127.6 258.3 112.4 258.3 103 248.1C93.66 239.6 93.66 224.4 103 215L126.1 192L103 168.1C93.66 159.6 93.66 144.4 103 135V135zM295 135C304.4 125.7 319.6 125.7 328.1 135L352 158.1L375 135C384.4 125.7 399.6 125.7 408.1 135C418.3 144.4 418.3 159.6 408.1 168.1L385.9 192L408.1 215C418.3 224.4 418.3 239.6 408.1 248.1C399.6 258.3 384.4 258.3 375 248.1L352 225.9L328.1 248.1C319.6 258.3 304.4 258.3 295 248.1C285.7 239.6 285.7 224.4 295 215L318.1 192L295 168.1C285.7 159.6 285.7 144.4 295 135V135zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M177.1 228.6L207.9 320h96.5l29.62-91.38L256 172.1L177.1 228.6zM255.1 0C114.6 0 .0001 114.6 .0001 256S114.6 512 256 512s255.1-114.6 255.1-255.1S397.4 0 255.1 0zM435.2 361.1l-103.9-1.578l-30.67 99.52C286.2 462.2 271.3 464 256 464s-30.19-1.773-44.56-4.93L180.8 359.6L76.83 361.1c-14.93-25.35-24.79-54.01-27.8-84.72L134.3 216.4L100.7 118.1c19.85-22.34 44.32-40.45 72.04-52.62L256 128l83.29-62.47c27.72 12.17 52.19 30.27 72.04 52.62L377.7 216.4l85.23 59.97C459.1 307.1 450.1 335.8 435.2 361.1z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faPenToSquare = {\n prefix: 'far',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M373.1 24.97C401.2-3.147 446.8-3.147 474.9 24.97L487 37.09C515.1 65.21 515.1 110.8 487 138.9L289.8 336.2C281.1 344.8 270.4 351.1 258.6 354.5L158.6 383.1C150.2 385.5 141.2 383.1 135 376.1C128.9 370.8 126.5 361.8 128.9 353.4L157.5 253.4C160.9 241.6 167.2 230.9 175.8 222.2L373.1 24.97zM440.1 58.91C431.6 49.54 416.4 49.54 407 58.91L377.9 88L424 134.1L453.1 104.1C462.5 95.6 462.5 80.4 453.1 71.03L440.1 58.91zM203.7 266.6L186.9 325.1L245.4 308.3C249.4 307.2 252.9 305.1 255.8 302.2L390.1 168L344 121.9L209.8 256.2C206.9 259.1 204.8 262.6 203.7 266.6zM200 64C213.3 64 224 74.75 224 88C224 101.3 213.3 112 200 112H88C65.91 112 48 129.9 48 152V424C48 446.1 65.91 464 88 464H360C382.1 464 400 446.1 400 424V312C400 298.7 410.7 288 424 288C437.3 288 448 298.7 448 312V424C448 472.6 408.6 512 360 512H88C39.4 512 0 472.6 0 424V152C0 103.4 39.4 64 88 64H200z\"]\n};\nvar faEdit = faPenToSquare;\nvar faHourglassHalf = {\n prefix: 'far',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.75 10.75 0 24 0H360C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24V24zM99.78 384H284.2C281 379.6 277.4 375.4 273.5 371.5L192 289.9L110.5 371.5C106.6 375.4 102.1 379.6 99.78 384H99.78zM284.2 128C296.1 110.4 304 89.03 304 66.98V48H80V66.98C80 89.03 87 110.4 99.78 128H284.2z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM189.8 123.5L235.8 159.5C258.3 139.9 287.8 128 320 128C390.7 128 448 185.3 448 256C448 277.2 442.9 297.1 433.8 314.7L487.6 356.9C521.1 322.8 545.9 283.1 558.6 256C544.1 225.1 518.4 183.5 479.9 147.7C438.8 109.6 385.2 79.1 320 79.1C269.5 79.1 225.1 97.73 189.8 123.5L189.8 123.5zM394.9 284.2C398.2 275.4 400 265.9 400 255.1C400 211.8 364.2 175.1 320 175.1C319.3 175.1 318.7 176 317.1 176C319.3 181.1 320 186.5 320 191.1C320 202.2 317.6 211.8 313.4 220.3L394.9 284.2zM404.3 414.5L446.2 447.5C409.9 467.1 367.8 480 320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L120.8 191.2C102.1 214.5 89.76 237.6 81.45 255.1C95.02 286 121.6 328.5 160.1 364.3C201.2 402.4 254.8 432 320 432C350.7 432 378.8 425.4 404.3 414.5H404.3zM192 255.1C192 253.1 192.1 250.3 192.3 247.5L248.4 291.7C258.9 312.8 278.5 328.6 302 333.1L358.2 378.2C346.1 381.1 333.3 384 319.1 384C249.3 384 191.1 326.7 191.1 255.1H192z\"]\n};\nvar faHand = {\n prefix: 'far',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M408 80c-3.994 0-7.91 .3262-11.73 .9551c-9.586-28.51-36.57-49.11-68.27-49.11c-6.457 0-12.72 .8555-18.68 2.457C296.6 13.73 273.9 0 248 0C222.1 0 199.3 13.79 186.6 34.44C180.7 32.85 174.5 32 168.1 32C128.4 32 96.01 64.3 96.01 104v121.6C90.77 224.6 85.41 224 80.01 224c-.0026 0 .0026 0 0 0C36.43 224 0 259.2 0 304.1c0 20.29 7.558 39.52 21.46 54.45l81.25 87.24C141.9 487.9 197.4 512 254.9 512h33.08C393.9 512 480 425.9 480 320V152C480 112.3 447.7 80 408 80zM432 320c0 79.41-64.59 144-143.1 144H254.9c-44.41 0-86.83-18.46-117.1-50.96l-79.76-85.63c-6.202-6.659-9.406-15.4-9.406-23.1c0-22.16 18.53-31.4 31.35-31.4c8.56 0 17.1 3.416 23.42 10.18l26.72 28.69C131.8 312.7 133.9 313.4 135.9 313.4c4.106 0 8.064-3.172 8.064-8.016V104c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152C192 264.8 199.2 272 208 272s15.1-7.163 15.1-15.1L224 72c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v184C272 264.8 279.2 272 288 272s15.99-7.164 15.99-15.1l.0077-152.2c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152.2C352 264.8 359.2 272 368 272s15.1-7.163 15.1-15.1V152c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24V320z\"]\n};\nvar faHandPaper = faHand;\nvar faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M234.9 48.02c10.43 0 20.72 5.834 24.13 19.17l47.33 184.1c2.142 8.456 9.174 12.62 16.21 12.62c7.326 0 14.66-4.505 16.51-13.37l31.72-155.1c2.921-14.09 13.76-20.57 24.67-20.57c13.01 0 26.14 9.19 26.14 25.62c0 2.19-.2333 4.508-.7313 6.951l-28.48 139.2c-.2389 1.156-.3514 2.265-.3514 3.323c0 8.644 7.504 13.9 14.86 13.9c5.869 0 11.65-3.341 13.46-10.98l24.73-104.2c.2347-.9802 4.12-19.76 24.28-19.76c13.21 0 26.64 9.4 26.64 24.79c0 2.168-.2665 4.455-.8378 6.852l-48.06 204.7c-13.59 57.85-65.15 98.74-124.5 98.74l-48.79-.0234c-40.7-.0196-79.86-15.58-109.5-43.51l-75.93-71.55c-5.938-5.584-8.419-11.1-8.419-18.2c0-13.88 12.45-26.69 26.38-26.69c5.756 0 11.76 2.182 17.26 7.376l51.08 48.14c1.682 1.569 3.599 2.249 5.448 2.249c4.192 0 8.04-3.49 8.04-8.001c0-23.76-3.372-47.39-10.12-70.28L142 161.1C141.2 159.1 140.8 156.3 140.8 153.7c0-15.23 13.48-24.82 26.75-24.82c10.11 0 20.1 5.559 23.94 18.42l31.22 105.8c2.231 7.546 8.029 10.8 13.9 10.8c7.752 0 15.64-5.659 15.64-14.57c0-1.339-.1783-2.752-.562-4.23L209.3 80.06C208.7 77.45 208.3 74.97 208.3 72.62C208.3 57.33 221.7 48.02 234.9 48.02zM234.9 0C201.5 0 160.4 25.24 160.4 72.72c0 2.807 .1579 5.632 .4761 8.463C129.9 83.9 92.84 108.9 92.84 153.8c0 7.175 1.038 14.47 3.148 21.68l24.33 81.94C115.8 256.5 111.1 256 106.4 256C65.74 256 32 290.6 32 330.8c0 19.59 8.162 38.58 23.6 53.1l75.89 71.51c38.68 36.45 89.23 56.53 142.3 56.56L322.6 512c82.1 0 152.5-55.83 171.3-135.8l48.06-204.7C543.3 165.7 544 159.7 544 153.9c0-54.55-49.55-72.95-74.59-72.95c-.7689 0-1.534 .0117-2.297 .0352c-10.49-39.43-46.46-54.11-71.62-54.11c-34.1 0-64.45 24.19-71.63 58.83L319.2 108.5l-13.7-53.29C297.1 22.22 268.7 0 234.9 0z\"]\n};\nvar faFaceKiss = {\n prefix: 'far',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M304.7 281.7C308.9 286.8 312 293.1 312 300C312 306.9 308.9 313.2 304.7 318.3C300.4 323.5 294.5 328 287.9 331.7C285.2 333.3 282.3 334.7 279.2 336C282.3 337.3 285.2 338.7 287.9 340.3C294.5 343.1 300.4 348.5 304.7 353.7C308.9 358.8 312 365.1 312 372C312 378.9 308.9 385.2 304.7 390.3C300.4 395.5 294.5 400 287.9 403.7C274.7 411.1 257.4 416 240 416C236.4 416 233.2 413.5 232.3 410C231.3 406.5 232.9 402.8 236.1 401L236.1 401L236.3 400.9C236.5 400.8 236.8 400.6 237.2 400.3C238 399.9 239.2 399.1 240.6 398.2C243.4 396.4 247.2 393.7 250.8 390.6C254.6 387.5 258 384 260.5 380.6C262.1 377 264 374.2 264 372C264 369.8 262.1 366.1 260.5 363.4C258 359.1 254.6 356.5 250.8 353.4C247.2 350.3 243.4 347.6 240.6 345.8C239.2 344.9 238 344.1 237.2 343.7L236.5 343.2L236.3 343.1L236.1 342.1L236.1 342.1C233.6 341.6 232 338.9 232 336C232 333.1 233.6 330.4 236.1 329L236.1 329L236.3 328.9C236.5 328.8 236.8 328.6 237.2 328.3C238 327.9 239.2 327.1 240.6 326.2C243.4 324.4 247.2 321.7 250.8 318.6C254.6 315.5 258 312.1 260.5 308.6C262.1 305 264 302.2 264 300C264 297.8 262.1 294.1 260.5 291.4C258 287.1 254.6 284.5 250.8 281.4C247.2 278.3 243.4 275.6 240.6 273.8C239.2 272.9 238 272.1 237.2 271.7C236.8 271.4 236.5 271.2 236.3 271.1L236.1 270.1L236.1 270.1C232.9 269.2 231.3 265.5 232.3 261.1C233.2 258.5 236.4 256 240 256C257.4 256 274.7 260.9 287.9 268.3C294.5 271.1 300.4 276.5 304.7 281.7V281.7zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faKiss = faFaceKiss;\nvar faFaceGrinTongue = {\n prefix: 'far',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 255.1 48H256zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faChessBishop = {\n prefix: 'far',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M296 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512h272C309.3 512 320 501.3 320 488S309.3 464 296 464zM0 304c0 51.63 30.12 85.25 64 96v32h48v-67.13l-33.5-10.63C63.75 349.5 48 333.9 48 304c0-84.1 93.2-206.5 112.6-206.5c19.63 0 60.01 67.18 70.28 85.8l-66.13 66.13c-3.125 3.125-4.688 7.219-4.688 11.31S161.6 268.9 164.8 272L176 283.2c3.125 3.125 7.219 4.688 11.31 4.688s8.188-1.562 11.31-4.688L253 229C264.4 256.8 272 283.5 272 304c0 29.88-15.75 45.5-30.5 50.25L208 364.9V432H256v-32c33.88-10.75 64-44.38 64-96c0-73.38-67.75-197.2-120.6-241.5C213.4 59.12 224 47 224 32c0-17.62-14.38-32-32-32H128C110.4 0 96 14.38 96 32c0 15 10.62 27.12 24.62 30.5C67.75 106.8 0 230.6 0 304z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'far',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faFaceGrinWide = {\n prefix: 'far',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM224 192C224 227.3 209.7 256 192 256C174.3 256 160 227.3 160 192C160 156.7 174.3 128 192 128C209.7 128 224 156.7 224 192zM288 192C288 156.7 302.3 128 320 128C337.7 128 352 156.7 352 192C352 227.3 337.7 256 320 256C302.3 256 288 227.3 288 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faFaceFrownOpen = {\n prefix: 'far',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M179.3 369.3C166.1 374.5 153.1 365.1 158.4 352.9C175.1 314.7 214.3 287.8 259.9 287.8C305.6 287.8 344.8 314.7 361.4 352.1C366.7 365.2 352.9 374.5 340.6 369.3C316.2 359 288.8 353.2 259.9 353.2C231 353.2 203.7 358.1 179.3 369.3L179.3 369.3zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [448, 512, [9757], \"f0a6\", \"M376 192c-6.428 0-12.66 .8457-18.6 2.434C344.7 173.8 321.9 160 296 160c-6.428 0-12.66 .8457-18.6 2.434C264.7 141.8 241.9 128 216 128C213.3 128 210.6 128.1 208 128.4V72C208 32.3 175.7 0 136 0S64 32.3 64 72v196.3C44.51 284.5 32 308.8 32 336v49.88c0 32.1 17.1 61.65 44.63 77.12l55.83 31.35C153.1 505.9 176.4 512 199.8 512h107.9C385.1 512 448 447.4 448 368V264C448 224.3 415.7 192 376 192zM272 232c0-13.23 10.78-24 24-24S320 218.8 320 232v47.91C320 293.1 309.2 304 296 304S272 293.2 272 280V232zM192 200C192 186.8 202.8 176 216 176s24 10.77 24 24v48c0 3.029-.7012 5.875-1.73 8.545C227.9 251.3 216.4 248 204 248H192V200zM112 72c0-13.23 10.78-24 24-24S160 58.77 160 72v176H120c-2.686 0-5.217 .5566-7.84 .793C112.2 248.5 112 248.3 112 248V72zM307.7 464H199.8c-15.25 0-30.41-3.984-43.88-11.52l-55.78-31.34C87.72 414.2 80 400.6 80 385.9V336c0-22.06 17.94-40 40-40h84c15.44 0 28 12.56 28 28S219.4 352 204 352H152C138.8 352 128 362.8 128 376s10.75 24 24 24h52c33.23 0 61.25-21.58 71.54-51.36C282 350.7 288.9 352 296 352c5.041 0 9.836-1.166 14.66-2.178C322 374.6 346.1 392 376 392c7.684 0 14.94-1.557 21.87-3.836C388.9 431.4 351.9 464 307.7 464zM400 320c0 13.23-10.78 24-24 24S352 333.2 352 320V264c0-13.23 10.78-24 24-24s24 10.77 24 24V320z\"]\n};\nvar faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M336 0h-288C21.49 0 0 21.49 0 48v431.9c0 24.7 26.79 40.08 48.12 27.64L192 423.6l143.9 83.93C357.2 519.1 384 504.6 384 479.9V48C384 21.49 362.5 0 336 0zM336 452L192 368l-144 84V54C48 50.63 50.63 48 53.1 48h276C333.4 48 336 50.63 336 54V452z\"]\n};\nvar faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [448, 512, [], \"f0a7\", \"M448 248V144C448 64.6 385.1 0 307.7 0H199.8C176.4 0 153.1 6.104 132.5 17.65L76.63 49C49.1 64.47 32 94.02 32 126.1V176c0 27.23 12.51 51.53 32 67.69V440C64 479.7 96.3 512 136 512s72-32.3 72-72v-56.44C210.6 383.9 213.3 384 216 384c25.95 0 48.73-13.79 61.4-34.43C283.3 351.2 289.6 352 296 352c25.95 0 48.73-13.79 61.4-34.43C363.3 319.2 369.6 320 376 320C415.7 320 448 287.7 448 248zM272 232c0-13.23 10.78-24 24-24S320 218.9 320 232.1V280c0 13.23-10.78 24-24 24S272 293.2 272 280V232zM192 264h12c12.39 0 23.93-3.264 34.27-8.545C239.3 258.1 240 260.1 240 264v48c0 13.23-10.78 24-24 24S192 325.2 192 312V264zM112 264c0-.2813 .1504-.5137 .1602-.793C114.8 263.4 117.3 264 120 264H160v176c0 13.23-10.78 24-24 24S112 453.2 112 440V264zM397.9 123.8C390.9 121.6 383.7 120 376 120c-29.04 0-53.96 17.37-65.34 42.18C305.8 161.2 301 160 296 160c-7.139 0-13.96 1.273-20.46 3.355C265.2 133.6 237.2 112 204 112H152C138.8 112 128 122.8 128 136S138.8 160 152 160h52c15.44 0 28 12.56 28 28S219.4 216 204 216H120C97.94 216 80 198.1 80 176V126.1c0-14.77 7.719-28.28 20.16-35.27l55.78-31.34C169.4 51.98 184.6 48 199.8 48h107.9C351.9 48 388.9 80.56 397.9 123.8zM400 248c0 13.23-10.78 24-24 24S352 261.2 352 248V192c0-13.23 10.78-24 24-24S400 178.8 400 192V248z\"]\n};\nvar faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M447.1 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H63.1c-35.35 0-64 28.66-64 64v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C511.1 124.7 483.3 96 447.1 96zM463.1 416c0 8.824-7.178 16-16 16h-384c-8.822 0-16-7.176-16-16V96c0-8.824 7.178-16 16-16h117.5c4.273 0 8.293 1.664 11.31 4.688L255.1 144h192c8.822 0 16 7.176 16 16V416z\"]\n};\nvar faFolderBlank = faFolder;\nvar faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M272 304h-96C78.8 304 0 382.8 0 480c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32C448 382.8 369.2 304 272 304zM48.99 464C56.89 400.9 110.8 352 176 352h96c65.16 0 119.1 48.95 127 112H48.99zM224 256c70.69 0 128-57.31 128-128c0-70.69-57.31-128-128-128S96 57.31 96 128C96 198.7 153.3 256 224 256zM224 48c44.11 0 80 35.89 80 80c0 44.11-35.89 80-80 80S144 172.1 144 128C144 83.89 179.9 48 224 48z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'far',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416zM273.6 138c-8.719-3.812-18.91-2.094-25.91 4.375l-104 96C138.8 242.9 136 249.3 136 256s2.812 13.09 7.719 17.62l104 96c7 6.469 17.19 8.188 25.91 4.375C282.3 370.2 288 361.5 288 352V160C288 150.5 282.3 141.8 273.6 138z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z\"]\n};\nvar faChessKnight = {\n prefix: 'far',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M44 320.6l14.5 6.5c-17.01 20.24-26.44 45.91-26.44 72.35C32.06 399.7 32.12 432 32.12 432h48v-32c0-24.75 14-47.5 36.13-58.63l38.13-23.37c13.25-6.625 21.75-20.25 21.75-35.13v-58.75l-15.37 9C155.6 235.8 151.9 240.4 150.5 245.9L143 271c-2.25 7.625-8 13.88-15.38 16.75L117.1 292C114 293.3 110.7 293.9 107.4 293.9c-3.626 0-7.263-.7514-10.66-2.254L63.5 276.9C54.12 272.6 48 263.2 48 252.9V140.5c0-5.125 2.125-10.12 5.75-13.88l7.375-7.375L49.5 96C48.5 94.12 48 92 48 89.88C48 84.38 52.38 80 57.88 80h105c86.75 0 156.1 70.38 156.1 157.1V432h48.06l-.0625-194.9C367.9 124 276 32 162.9 32H57.88C25.88 32 0 57.88 0 89.88c0 8.5 1.75 16.88 5.125 24.62C1.75 122.8 0 131.6 0 140.5v112.4C0 282.2 17.25 308.8 44 320.6zM80.12 164c0 11 8.875 20 20 20c11 0 20-9 20-20s-9-20-20-20C89 144 80.12 153 80.12 164zM360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'far',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM223.4 178.6C234.1 184.3 234.1 199.7 223.4 205.4L133.5 253.3C125.6 257.6 116 251.8 116 242.9C116 240.1 116.1 237.4 118.8 235.2L154.8 192L118.8 148.8C116.1 146.6 116 143.9 116 141.1C116 132.2 125.6 126.4 133.5 130.7L223.4 178.6zM393.2 148.8L357.2 192L393.2 235.2C395 237.4 396 240.1 396 242.9C396 251.8 386.4 257.6 378.5 253.3L288.6 205.4C277.9 199.7 277.9 184.3 288.6 178.6L378.5 130.7C386.4 126.4 396 132.2 396 141.1C396 143.9 395 146.6 393.2 148.8V148.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faFaceLaugh = {\n prefix: 'far',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM304.4 192C304.4 174.3 318.7 160 336.4 160C354 160 368.4 174.3 368.4 192C368.4 209.7 354 224 336.4 224C318.7 224 304.4 209.7 304.4 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M572.6 270.3l-96 192C471.2 473.2 460.1 480 447.1 480H64c-35.35 0-64-28.66-64-64V96c0-35.34 28.65-64 64-64h117.5c16.97 0 33.25 6.742 45.26 18.75L275.9 96H416c35.35 0 64 28.66 64 64v32h-48V160c0-8.824-7.178-16-16-16H256L192.8 84.69C189.8 81.66 185.8 80 181.5 80H64C55.18 80 48 87.18 48 96v288l71.16-142.3C124.6 230.8 135.7 224 147.8 224h396.2C567.7 224 583.2 249 572.6 270.3z\"]\n};\nvar faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M320 64h-49.61C262.1 27.48 230.7 0 192 0S121 27.48 113.6 64H64C28.65 64 0 92.66 0 128v320c0 35.34 28.65 64 64 64h256c35.35 0 64-28.66 64-64V128C384 92.66 355.3 64 320 64zM192 48c13.23 0 24 10.77 24 24S205.2 96 192 96S168 85.23 168 72S178.8 48 192 48zM336 448c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V128c0-8.82 7.178-16 16-16h18.26C80.93 117.1 80 122.4 80 128v16C80 152.8 87.16 160 96 160h192c8.836 0 16-7.164 16-16V128c0-5.559-.9316-10.86-2.264-16H320c8.822 0 16 7.18 16 16V448z\"]\n};\nvar faChessQueen = {\n prefix: 'far',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 112c30.88 0 56-25.12 56-56S286.9 0 256 0S199.1 25.12 199.1 56S225.1 112 256 112zM511.1 197.4c0-5.178-2.509-10.2-7.096-13.26L476.4 168.2c-2.5-1.75-5.497-2.62-8.497-2.62c-5.501 .125-10.63 2.87-13.75 7.245c-9.001 12-23.16 19.13-38.16 19.13c-3.125 0-6.089-.2528-9.089-.8778c-23.13-4.25-38.88-26.25-38.88-49.75C367.1 134 361.1 128 354.6 128h-38.75c-6.001 0-11.63 4-12.88 9.875C298.2 160.1 278.7 176 255.1 176c-22.75 0-42.25-15.88-47-38.12C207.7 132 202.2 128 196.1 128h-38.75C149.1 128 143.1 134 143.1 141.4c0 18.49-13.66 50.62-47.95 50.62c-15.13 0-29.3-7.118-38.3-19.24C54.6 168.4 49.66 165.7 44.15 165.6c-3 0-5.931 .8951-8.432 2.645l-28.63 16C2.509 187.2 0 192.3 0 197.4c0 2.438 .5583 4.901 1.72 7.185L109.9 432h53.13L69.85 236.4C78.35 238.8 87.11 240 95.98 240c2.432 0 56.83 1.503 84.76-52.5C198.1 210.5 226.6 224 255.9 224c29.38 0 57.01-13.38 75.26-36.25C336.1 197.6 360.6 240 416 240c8.751 0 17.5-1.125 26-3.5L349 432h53.13l108.1-227.4C511.4 202.3 511.1 199.8 511.1 197.4zM424 464H87.98c-13.26 0-24 10.75-24 23.1S74.72 512 87.98 512h336c13.26 0 24-10.75 24-23.1S437.3 464 424 464z\"]\n};\nvar faHandBackFist = {\n prefix: 'far',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M377.1 68.05C364.4 50.65 343.7 40 321.2 40h-13.53c-3.518 0-7.039 .2754-10.53 .8184C284.8 31.33 269.6 26 253.5 26H240c-3.977 0-7.904 .3691-11.75 1.084C216.7 10.71 197.6 0 176 0H160C124.7 0 96 28.65 96 64v49.71L63.04 143.3C43.3 160 32 184.6 32 210.9v78.97c0 32.1 17.11 61.65 44.65 77.12L112 386.9v101.1C112 501.3 122.7 512 135.1 512S160 501.3 160 488v-129.9c-1.316-.6543-2.775-.9199-4.062-1.639l-55.78-31.34C87.72 318.2 80 304.6 80 289.9V210.9c0-12.31 5.281-23.77 14.5-31.39L112 163.8V208C112 216.8 119.2 224 128 224s16-7.156 16-16V64c0-8.828 7.188-16 16-16h16C184.8 48 192 55.17 192 64v16c0 9.578 7.942 16.04 16.15 16.04c6.432 0 12.31-4.018 14.73-10.17C223.3 84.84 228.3 74 240 74h13.53c20.97 0 17.92 19.58 34.27 19.58c8.177 0 9.9-5.584 19.88-5.584h13.53c25.54 0 18.27 28.23 38.66 28.23c.1562 0 .3125-.002 .4668-.0078L375.4 116C388.1 116 400 127.7 400 142V272c0 36.15-19.54 67.32-48 83.69v132.3C352 501.3 362.7 512 375.1 512S400 501.3 400 488v-108.1C430.1 352.8 448 313.6 448 272V142C448 102.1 416.8 69.44 377.1 68.05z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faSquareCaretUp = {\n prefix: 'far',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M241.6 175.7C237.1 170.8 230.7 168 224 168S210.9 170.8 206.4 175.7l-96 104c-6.469 7-8.188 17.19-4.375 25.91C109.8 314.3 118.5 320 127.1 320h192c9.531 0 18.16-5.656 22-14.38c3.813-8.719 2.094-18.91-4.375-25.91L241.6 175.7zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M24 32C37.25 32 48 42.75 48 56V408C48 421.3 58.75 432 72 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H72C32.24 480 0 447.8 0 408V56C0 42.75 10.75 32 24 32zM128 136C128 122.7 138.7 112 152 112H360C373.3 112 384 122.7 384 136C384 149.3 373.3 160 360 160H152C138.7 160 128 149.3 128 136zM296 208C309.3 208 320 218.7 320 232C320 245.3 309.3 256 296 256H152C138.7 256 128 245.3 128 232C128 218.7 138.7 208 152 208H296zM424 304C437.3 304 448 314.7 448 328C448 341.3 437.3 352 424 352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H424z\"]\n};\nvar faBarChart = faChartBar;\nvar faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 48H208C190.3 48 176 62.33 176 80V96H128V80C128 35.82 163.8 0 208 0H432C476.2 0 512 35.82 512 80V304C512 348.2 476.2 384 432 384H416V336H432C449.7 336 464 321.7 464 304V80C464 62.33 449.7 48 432 48zM320 128C355.3 128 384 156.7 384 192V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V192C0 156.7 28.65 128 64 128H320zM64 464H320C328.8 464 336 456.8 336 448V256H48V448C48 456.8 55.16 464 64 464z\"]\n};\nvar faSquarePlus = {\n prefix: 'far',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M200 344V280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H200V168C200 154.7 210.7 144 224 144C237.3 144 248 154.7 248 168V232H312C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H248V344C248 357.3 237.3 368 224 368C210.7 368 200 357.3 200 344zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M152 120c-26.51 0-48 21.49-48 48s21.49 48 48 48s48-21.49 48-48S178.5 120 152 120zM447.1 32h-384C28.65 32-.0091 60.65-.0091 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96C511.1 60.65 483.3 32 447.1 32zM463.1 409.3l-136.8-185.9C323.8 218.8 318.1 216 312 216c-6.113 0-11.82 2.768-15.21 7.379l-106.6 144.1l-37.09-46.1c-3.441-4.279-8.934-6.809-14.77-6.809c-5.842 0-11.33 2.529-14.78 6.809l-75.52 93.81c0-.0293 0 .0293 0 0L47.99 96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V409.3z\"]\n};\nvar faFolderClosed = {\n prefix: 'far',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C512 124.7 483.3 96 448 96zM64 80h117.5c4.273 0 8.293 1.664 11.31 4.688L256 144h192c8.822 0 16 7.176 16 16v32h-416V96C48 87.18 55.18 80 64 80zM448 432H64c-8.822 0-16-7.176-16-16V240h416V416C464 424.8 456.8 432 448 432z\"]\n};\nvar faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M439.9 144.6c15.34-26.38 8.372-62.41-16.96-87.62c-25.21-25.32-61.22-32.26-87.61-16.95c-9.044 5.218-27.15 3.702-48.08 1.968c-50.78-4.327-127.4-10.73-207.6 69.56C-.6501 191.9 5.801 268.5 10.07 319.3c1.749 20.96 3.28 39.07-1.984 48.08c-15.35 26.4-8.357 62.45 16.92 87.57c16.26 16.37 37.05 25.09 56.83 25.09c10.89 0 21.46-2.64 30.83-8.092c9.013-5.249 27.12-3.718 48.08-1.968c50.69 4.233 127.4 10.7 207.6-69.56c80.27-80.28 73.82-156.9 69.56-207.7C436.2 171.8 434.7 153.7 439.9 144.6zM398.4 120.5c-12.87 22.09-10.67 48.41-8.326 76.25c4.155 49.3 8.841 105.2-55.67 169.7c-64.53 64.49-120.5 59.78-169.7 55.68c-27.85-2.328-54.12-4.53-76.26 8.311c-6.139 3.64-19.17 1.031-29.58-9.451c-10.39-10.33-12.95-23.35-9.372-29.49c12.87-22.09 10.67-48.41 8.326-76.25C53.72 265.1 49.04 210.1 113.5 145.5c48.27-48.27 91.71-57.8 131.2-57.8c13.28 0 26.12 1.078 38.52 2.125c27.9 2.359 54.17 4.561 76.26-8.311c6.123-3.577 19.18-1.031 29.49 9.357C399.4 101.2 402 114.4 398.4 120.5zM239.5 124.1c2.156 8.561-3.062 17.25-11.62 19.43C183.6 154.7 122.7 215.6 111.6 259.9C109.7 267.1 103.2 271.1 96.05 271.1c-1.281 0-2.593-.1562-3.905-.4687C83.58 269.3 78.4 260.6 80.52 252.1C94.67 195.8 163.8 126.7 220.1 112.5C228.8 110.4 237.3 115.5 239.5 124.1z\"]\n};\nvar faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M506.1 127.1c-17.97-20.17-61.46-61.65-122.7-71.1c-22.5-3.354-45.39 3.606-63.41 18.21C302 60.47 279.1 53.42 256.5 56.86C176.8 69.17 126.7 136.2 124.6 139.1c-7.844 10.69-5.531 25.72 5.125 33.57c4.281 3.157 9.281 4.657 14.19 4.657c7.406 0 14.69-3.375 19.38-9.782c.4062-.5626 40.19-53.91 100.5-63.23c7.457-.9611 14.98 .67 21.56 4.483L227.2 168.2C214.8 180.5 207.1 196.1 207.1 214.5c0 17.5 6.812 33.94 19.16 46.29C239.5 273.2 255.9 279.1 273.4 279.1s33.94-6.813 46.31-19.19l11.35-11.35l124.2 100.9c2.312 1.875 2.656 5.251 .5 7.97l-27.69 35.75c-1.844 2.25-5.25 2.594-7.156 1.063l-22.22-18.69l-26.19 27.75c-2.344 2.875-5.344 3.563-6.906 3.719c-1.656 .1562-4.562 .125-6.812-1.719l-32.41-27.66L310.7 392.3l-2.812 2.938c-5.844 7.157-14.09 11.66-23.28 12.6c-9.469 .8126-18.25-1.75-24.5-6.782L170.3 319.8H96V128.3L0 128.3v255.6l64 .0404c11.74 0 21.57-6.706 27.14-16.14h60.64l77.06 69.66C243.7 449.6 261.9 456 280.8 456c2.875 0 5.781-.125 8.656-.4376c13.62-1.406 26.41-6.063 37.47-13.5l.9062 .8126c12.03 9.876 27.28 14.41 42.69 12.78c13.19-1.375 25.28-7.032 33.91-15.35c21.09 8.188 46.09 2.344 61.25-16.47l27.69-35.75c18.47-22.82 14.97-56.48-7.844-75.01l-120.3-97.76l8.381-8.382c9.375-9.376 9.375-24.57 0-33.94c-9.375-9.376-24.56-9.376-33.94 0L285.8 226.8C279.2 233.5 267.7 233.5 261.1 226.8c-3.312-3.282-5.125-7.657-5.125-12.31c0-4.688 1.812-9.064 5.281-12.53l85.91-87.64c7.812-7.845 18.53-11.75 28.94-10.03c59.75 9.22 100.2 62.73 100.6 63.29c3.088 4.155 7.264 6.946 11.84 8.376H544v175.1c0 17.67 14.33 32.05 31.1 32.05L640 384V128.1L506.1 127.1zM48 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99S64 327.2 64 336.1C64 344.8 56.75 352 48 352zM592 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99s16 7.117 16 15.99C608 344.8 600.8 352 592 352z\"]\n};\nvar faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M507.9 196.4l-104-153.8C399.4 35.95 391.1 32 384 32H127.1C120 32 112.6 35.95 108.1 42.56l-103.1 153.8c-6.312 9.297-5.281 21.72 2.406 29.89l231.1 246.2C243.1 477.3 249.4 480 256 480s12.94-2.734 17.47-7.547l232-246.2C513.2 218.1 514.2 205.7 507.9 196.4zM382.5 96.59L446.1 192h-140.1L382.5 96.59zM256 178.9L177.6 80h156.7L256 178.9zM129.5 96.59L205.1 192H65.04L129.5 96.59zM256 421L85.42 240h341.2L256 421z\"]\n};\nvar faCirclePlay = {\n prefix: 'far',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M188.3 147.1C195.8 142.8 205.1 142.1 212.5 147.5L356.5 235.5C363.6 239.9 368 247.6 368 256C368 264.4 363.6 272.1 356.5 276.5L212.5 364.5C205.1 369 195.8 369.2 188.3 364.9C180.7 360.7 176 352.7 176 344V167.1C176 159.3 180.7 151.3 188.3 147.1V147.1zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faCircleCheck = {\n prefix: 'far',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M243.8 339.8C232.9 350.7 215.1 350.7 204.2 339.8L140.2 275.8C129.3 264.9 129.3 247.1 140.2 236.2C151.1 225.3 168.9 225.3 179.8 236.2L224 280.4L332.2 172.2C343.1 161.3 360.9 161.3 371.8 172.2C382.7 183.1 382.7 200.9 371.8 211.8L243.8 339.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faCircleStop = {\n prefix: 'far',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M328 160h-144C170.8 160 160 170.8 160 184v144C160 341.2 170.8 352 184 352h144c13.2 0 24-10.8 24-24v-144C352 170.8 341.2 160 328 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M320 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h256c35.35 0 64-28.65 64-64V64C384 28.65 355.3 0 320 0zM336 448c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h64V64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V48h64c8.836 0 16 7.162 16 16V448zM192 288c35.35 0 64-28.65 64-64s-28.65-64-64-64C156.7 160 128 188.7 128 224S156.7 288 192 288zM224 320H160c-44.18 0-80 35.82-80 80C80 408.8 87.16 416 96 416h192c8.836 0 16-7.164 16-16C304 355.8 268.2 320 224 320z\"]\n};\nvar faFaceLaughBeam = {\n prefix: 'far',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM352 208c0-44.13-35.88-80-80-80L184 128c-13.25 0-24 10.75-24 24v208c0 13.25 10.75 24 24 24s24-10.75 24-24v-72h59.79l38.46 82.19C310.3 378.9 319 384 328 384c3.438 0 6.875-.7187 10.19-2.25c12-5.625 17.16-19.91 11.56-31.94l-34.87-74.5C337.1 261.1 352 236.3 352 208zM272 240h-64v-64h64c17.66 0 32 14.34 32 32S289.7 240 272 240z\"]\n};\nvar faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M208 256c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 227.3 172.7 256 208 256zM464 232h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 232 464 232zM240 288h-64C131.8 288 96 323.8 96 368C96 376.8 103.2 384 112 384h192c8.836 0 16-7.164 16-16C320 323.8 284.2 288 240 288zM464 152h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 152 464 152zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faFaceTired = {\n prefix: 'far',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M176.5 320.3C196.1 302.1 223.8 288 256 288C288.2 288 315.9 302.1 335.5 320.3C354.5 338.1 368 362 368 384C368 389.4 365.3 394.4 360.8 397.4C356.2 400.3 350.5 400.8 345.6 398.7L328.4 391.1C305.6 381.2 280.9 376 256 376C231.1 376 206.4 381.2 183.6 391.1L166.4 398.7C161.5 400.8 155.8 400.3 151.2 397.4C146.7 394.4 144 389.4 144 384C144 362 157.5 338.1 176.5 320.3zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faTired = faFaceTired;\nvar faFontAwesome = {\n prefix: 'far',\n iconName: 'font-awesome',\n icon: [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.09 22.54-82.34 32-119.5 32c-62.82 0-86.6-32-149.3-32c-21.69 0-38.48 3.791-53.74 8.766C110.1 397.5 96 386.1 96 371.7v-.7461c0-9.275 5.734-17.6 14.42-20.86C129.1 342.8 150.2 336 179.2 336c62.73 0 86.51 32 149.3 32c25.5 0 42.85-4.604 71.47-14.7v-240C379.2 120.6 357.7 128 328.5 128c-.0039 0 .0039 0 0 0c-62.81 0-86.61-32-149.3-32C122.1 96 98.8 122.1 48 126.1V456C48 469.3 37.25 480 24 480S0 469.3 0 456V56C0 42.74 10.75 32 24 32S48 42.74 48 56v22.99C98.8 74.14 122.1 48 179.2 48c62.77 0 86.45 32 149.3 32C366.1 80 386.8 69.85 448 48z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faFaceSmileWink = {\n prefix: 'far',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM214.6 248C211.3 238.4 202.2 232 192 232s-19.25 6.406-22.62 16L144.7 318.1l-25.89-77.66C114.6 227.8 101 221.2 88.41 225.2C75.83 229.4 69.05 243 73.23 255.6l48 144C124.5 409.3 133.5 415.9 143.8 416c10.17 0 19.45-6.406 22.83-16L192 328.1L217.4 400C220.8 409.6 229.8 416 240 416c10.27-.0938 19.53-6.688 22.77-16.41l48-144c4.188-12.59-2.594-26.16-15.17-30.38c-12.61-4.125-26.2 2.594-30.36 15.19l-25.89 77.66L214.6 248z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM200 224H128C119.2 224 112 231.2 112 240v168c0 13.25 10.75 24 24 24S160 421.3 160 408v-32h44c44.21 0 79.73-37.95 75.69-82.98C276.1 253.2 240 224 200 224zM204 328H160V272h44c15.44 0 28 12.56 28 28S219.4 328 204 328z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M493.6 163c-24.88-19.62-45.5-35.37-164.3-121.6C312.7 29.21 279.7 0 256.4 0H255.6C232.3 0 199.3 29.21 182.6 41.38C63.88 127.6 43.25 143.4 18.38 163C6.75 172 0 186 0 200.8v247.2C0 483.3 28.65 512 64 512h384c35.35 0 64-28.67 64-64.01V200.8C512 186 505.3 172 493.6 163zM464 448c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V276.7l136.1 113.4C204.3 406.8 229.8 416 256 416s51.75-9.211 71.97-26.01L464 276.7V448zM464 214.2l-166.8 138.1c-23.19 19.28-59.34 19.27-82.47 .0156L48 214.2l.1055-13.48c23.24-18.33 42.25-32.97 162.9-120.6c3.082-2.254 6.674-5.027 10.63-8.094C229.4 65.99 246.7 52.59 256 48.62c9.312 3.973 26.62 17.37 34.41 23.41c3.959 3.066 7.553 5.84 10.76 8.186C421.6 167.7 440.7 182.4 464 200.8V214.2z\"]\n};\nvar faFileZipper = {\n prefix: 'far',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h48V64h64V48.13h48.01L224 128c0 17.67 14.33 32 32 32h79.1V448zM176 96h-64v32h64V96zM176 160h-64v32h64V160zM176 224h-64l-30.56 116.5C73.51 379.5 103.7 416 144.3 416c40.26 0 70.45-36.3 62.68-75.15L176 224zM160 368H128c-8.836 0-16-7.164-16-16s7.164-16 16-16h32c8.836 0 16 7.164 16 16S168.8 368 160 368z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM384 80H64C55.16 80 48 87.16 48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80z\"]\n};\nvar faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [512, 512, [10052, 10054], \"f2dc\", \"M484.4 294.4c1.715 6.402 .6758 12.89-2.395 18.21s-8.172 9.463-14.57 11.18l-31.46 8.43l32.96 19.03C480.4 357.8 484.4 372.5 477.8 384s-21.38 15.41-32.86 8.783l-32.96-19.03l8.43 31.46c3.432 12.81-4.162 25.96-16.97 29.39s-25.96-4.162-29.39-16.97l-20.85-77.82L280 297.6v84.49l56.97 56.97c9.375 9.375 9.375 24.56 0 33.94C332.3 477.7 326.1 480 320 480s-12.28-2.344-16.97-7.031L280 449.9V488c0 13.25-10.75 24-24 24s-24-10.75-24-24v-38.06l-23.03 23.03c-9.375 9.375-24.56 9.375-33.94 0s-9.375-24.56 0-33.94L232 382.1V297.6l-73.17 42.25l-20.85 77.82c-3.432 12.81-16.58 20.4-29.39 16.97s-20.4-16.58-16.97-29.39l8.43-31.46l-32.96 19.03C55.61 399.4 40.85 395.5 34.22 384s-2.615-26.16 8.859-32.79l32.96-19.03l-31.46-8.43c-12.81-3.432-20.4-16.58-16.97-29.39s16.58-20.4 29.39-16.97l77.82 20.85L208 255.1L134.8 213.8L57.01 234.6C44.2 238 31.05 230.4 27.62 217.6s4.162-25.96 16.97-29.39l31.46-8.432L43.08 160.8C31.61 154.2 27.6 139.5 34.22 128s21.38-15.41 32.86-8.785l32.96 19.03L91.62 106.8C88.18 93.98 95.78 80.83 108.6 77.39s25.96 4.162 29.39 16.97l20.85 77.82L232 214.4V129.9L175 72.97c-9.375-9.375-9.375-24.56 0-33.94s24.56-9.375 33.94 0L232 62.06V24C232 10.75 242.8 0 256 0s24 10.75 24 24v38.06l23.03-23.03c9.375-9.375 24.56-9.375 33.94 0s9.375 24.56 0 33.94L280 129.9v84.49l73.17-42.25l20.85-77.82c3.432-12.81 16.58-20.4 29.39-16.97c6.402 1.715 11.5 5.861 14.57 11.18s4.109 11.81 2.395 18.21l-8.43 31.46l32.96-19.03C456.4 112.6 471.2 116.5 477.8 128s2.615 26.16-8.859 32.78l-32.96 19.03l31.46 8.432c12.81 3.432 20.4 16.58 16.97 29.39s-16.58 20.4-29.39 16.97l-77.82-20.85L304 255.1l73.17 42.25l77.82-20.85C467.8 273.1 480.1 281.6 484.4 294.4z\"]\n};\nvar faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M456 32h-304C121.1 32 96 57.13 96 88v320c0 13.22-10.77 24-24 24S48 421.2 48 408V112c0-13.25-10.75-24-24-24S0 98.75 0 112v296C0 447.7 32.3 480 72 480h352c48.53 0 88-39.47 88-88v-304C512 57.13 486.9 32 456 32zM464 392c0 22.06-17.94 40-40 40H139.9C142.5 424.5 144 416.4 144 408v-320c0-4.406 3.594-8 8-8h304c4.406 0 8 3.594 8 8V392zM264 272h-64C186.8 272 176 282.8 176 296S186.8 320 200 320h64C277.3 320 288 309.3 288 296S277.3 272 264 272zM408 272h-64C330.8 272 320 282.8 320 296S330.8 320 344 320h64c13.25 0 24-10.75 24-24S421.3 272 408 272zM264 352h-64c-13.25 0-24 10.75-24 24s10.75 24 24 24h64c13.25 0 24-10.75 24-24S277.3 352 264 352zM408 352h-64C330.8 352 320 362.8 320 376s10.75 24 24 24h64c13.25 0 24-10.75 24-24S421.3 352 408 352zM400 112h-192c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64C432 126.3 417.7 112 400 112z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'far',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M345.3 472.1C347.3 479.7 350.9 486.4 355.7 491.8C325.1 504.8 291.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 285.3 507.1 313.4 498 339.7C486.9 334.1 474.5 333.1 461.8 334.6C459.7 329.4 457 324.6 453.9 320.1C460.5 299.9 464 278.4 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C285.4 464 313.5 457.9 338.9 446.8L345.3 472.1zM288.7 334.3C284.4 339.5 278.5 344 271.9 347.7C269.2 349.3 266.3 350.7 263.2 352C266.3 353.3 269.2 354.7 271.9 356.3C278.5 359.1 284.4 364.5 288.7 369.7C292.9 374.8 296 381.1 296 388C296 394.9 292.9 401.2 288.7 406.3C284.4 411.5 278.5 416 271.9 419.7C258.7 427.1 241.4 432 224 432C220.4 432 217.2 429.5 216.3 426C215.3 422.5 216.9 418.8 220.1 417L220.1 417L220.3 416.9C220.5 416.8 220.8 416.6 221.2 416.3C222 415.9 223.2 415.1 224.6 414.2C227.4 412.4 231.2 409.7 234.8 406.6C238.6 403.5 242 400 244.5 396.6C246.1 393 248 390.2 248 388C248 385.8 246.1 382.1 244.5 379.4C242 375.1 238.6 372.5 234.8 369.4C231.2 366.3 227.4 363.6 224.6 361.8C223.2 360.9 222 360.1 221.2 359.7C220.8 359.4 220.5 359.2 220.3 359.1L220.1 358.1L220.1 358.1C217.6 357.6 216 354.9 216 352C216 349.1 217.6 346.4 220.1 345L220.1 345L220.3 344.9C220.5 344.8 220.8 344.6 221.2 344.3C222 343.9 223.2 343.1 224.6 342.2C227.4 340.4 231.2 337.7 234.8 334.6C238.6 331.5 242 328.1 244.5 324.6C246.1 321 248 318.2 248 316C248 313.8 246.1 310.1 244.5 307.4C242 303.1 238.6 300.5 234.8 297.4C231.2 294.3 227.4 291.6 224.6 289.8C223.2 288.9 222 288.1 221.2 287.7C220.8 287.4 220.5 287.2 220.3 287.1L220.1 286.1L220.1 286.1C216.9 285.2 215.3 281.5 216.3 277.1C217.2 274.5 220.4 272 224 272C241.4 272 258.7 276.9 271.9 284.3C278.5 287.1 284.4 292.5 288.7 297.7C292.9 302.8 296 309.1 296 316C296 322.9 292.9 329.2 288.7 334.3V334.3zM144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220zM439.4 373.3L459.5 367.6C481.7 361.4 504.6 375.2 510.6 398.4C516.5 421.7 503.3 445.6 481.1 451.8L396.1 475.6C387.5 478 378.6 472.9 376.3 464.2L353.4 374.9C347.5 351.6 360.7 327.7 382.9 321.5C405.2 315.3 428 329.1 433.1 352.3L439.4 373.3z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faStarHalfStroke = {\n prefix: 'far',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8zM287.1 384.7C291.9 384.7 295.7 385.6 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.1 79.09L287.1 384.7z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM229.1 233.3L192 280.9L154.9 233.3C146.8 222.8 131.8 220.9 121.3 229.1C110.8 237.2 108.9 252.3 117.1 262.8L161.6 320l-44.53 57.25c-8.156 10.47-6.25 25.56 4.188 33.69C125.7 414.3 130.8 416 135.1 416c7.156 0 14.25-3.188 18.97-9.25L192 359.1l37.06 47.65C233.8 412.8 240.9 416 248 416c5.125 0 10.31-1.656 14.72-5.062c10.44-8.125 12.34-23.22 4.188-33.69L222.4 320l44.53-57.25c8.156-10.47 6.25-25.56-4.188-33.69C252.2 220.9 237.2 222.8 229.1 233.3z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'far',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M64 0C90.86 0 113.9 16.55 123.3 40H324.7C334.1 16.55 357.1 0 384 0C419.3 0 448 28.65 448 64C448 90.86 431.5 113.9 408 123.3V228.7C431.5 238.1 448 261.1 448 288C448 323.3 419.3 352 384 352C357.1 352 334.1 335.5 324.7 312H123.3C113.9 335.5 90.86 352 64 352C28.65 352 0 323.3 0 288C0 261.1 16.55 238.1 40 228.7V123.3C16.55 113.9 0 90.86 0 64C0 28.65 28.65 0 64 0V0zM64 80C72.84 80 80 72.84 80 64C80 56.1 74.28 49.54 66.75 48.24C65.86 48.08 64.94 48 64 48C55.16 48 48 55.16 48 64C48 64.07 48 64.14 48 64.21C48.01 65.07 48.09 65.92 48.24 66.75C49.54 74.28 56.1 80 64 80zM384 48C383.1 48 382.1 48.08 381.2 48.24C373.7 49.54 368 56.1 368 64C368 72.84 375.2 80 384 80C391.9 80 398.5 74.28 399.8 66.75C399.9 65.86 400 64.94 400 64C400 55.16 392.8 48 384 48V48zM324.7 88H123.3C116.9 104 104 116.9 88 123.3V228.7C104 235.1 116.9 247.1 123.3 264H324.7C331.1 247.1 343.1 235.1 360 228.7V123.3C343.1 116.9 331.1 104 324.7 88zM400 288C400 287.1 399.9 286.1 399.8 285.2C398.5 277.7 391.9 272 384 272C375.2 272 368 279.2 368 288C368 295.9 373.7 302.5 381.2 303.8C382.1 303.9 383.1 304 384 304C392.8 304 400 296.8 400 288zM64 272C56.1 272 49.54 277.7 48.24 285.2C48.08 286.1 48 287.1 48 288C48 296.8 55.16 304 64 304L64.22 303.1C65.08 303.1 65.93 303.9 66.75 303.8C74.28 302.5 80 295.9 80 288C80 279.2 72.84 272 64 272zM471.3 248C465.8 235.9 457.8 225.2 448 216.4V200H516.7C526.1 176.5 549.1 160 576 160C611.3 160 640 188.7 640 224C640 250.9 623.5 273.9 600 283.3V388.7C623.5 398.1 640 421.1 640 448C640 483.3 611.3 512 576 512C549.1 512 526.1 495.5 516.7 472H315.3C305.9 495.5 282.9 512 256 512C220.7 512 192 483.3 192 448C192 421.1 208.5 398.1 232 388.7V352H280V388.7C296 395.1 308.9 407.1 315.3 424H516.7C523.1 407.1 535.1 395.1 552 388.7V283.3C535.1 276.9 523.1 264 516.7 248H471.3zM592 224C592 215.2 584.8 208 576 208C575.1 208 574.1 208.1 573.2 208.2C565.7 209.5 560 216.1 560 224C560 232.8 567.2 240 576 240C583.9 240 590.5 234.3 591.8 226.8C591.9 225.9 592 224.9 592 224zM240 448C240 456.8 247.2 464 256 464C256.9 464 257.9 463.9 258.8 463.8C266.3 462.5 272 455.9 272 448C272 439.2 264.8 432 256 432C248.1 432 241.5 437.7 240.2 445.2C240.1 446.1 240 447.1 240 448zM573.2 463.8C574.1 463.9 575.1 464 576 464C584.8 464 592 456.8 592 448C592 447.1 591.9 446.2 591.8 445.3L591.8 445.2C590.5 437.7 583.9 432 576 432C567.2 432 560 439.2 560 448C560 455.9 565.7 462.5 573.2 463.8V463.8z\"]\n};\nvar faCircleRight = {\n prefix: 'far',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M280.2 150.2C273.1 143.8 262.1 142.2 254.3 146.1S239.1 158.5 239.1 167.1l.002 56L152 224C138.8 224 128 234.8 128 248v16C128 277.3 138.8 288 152 288L240 287.1v56c0 9.531 5.656 18.16 14.38 22c8.75 3.812 18.91 2.094 25.91-4.375l96-88.75C381.2 268.3 384 261.9 384 255.2c-.3125-7.781-2.875-13.25-7.844-17.75L280.2 150.2zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faFaceRollingEyes = {\n prefix: 'far',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M168 376C168 362.7 178.7 352 192 352H320C333.3 352 344 362.7 344 376C344 389.3 333.3 400 320 400H192C178.7 400 168 389.3 168 376zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 209.7 201.7 196.8 191.8 188C191.9 189.3 192 190.6 192 192C192 209.7 177.7 224 160 224C142.3 224 128 209.7 128 192C128 190.6 128.1 189.3 128.2 188C118.3 196.8 112 209.7 112 224C112 250.5 133.5 272 160 272V272zM272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224zM352 272C378.5 272 400 250.5 400 224C400 209.7 393.7 196.8 383.8 188C383.9 189.3 384 190.6 384 192C384 209.7 369.7 224 352 224C334.3 224 320 209.7 320 192C320 190.6 320.1 189.3 320.2 188C310.3 196.8 304 209.7 304 224C304 250.5 325.5 272 352 272zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM48 115.8C38.18 106.1 32 94.22 32 80C32 53.49 53.49 32 80 32C94.22 32 106.1 38.18 115.8 48H460.2C469 38.18 481.8 32 496 32C522.5 32 544 53.49 544 80C544 94.22 537.8 106.1 528 115.8V396.2C537.8 405 544 417.8 544 432C544 458.5 522.5 480 496 480C481.8 480 469 473.8 460.2 464H115.8C106.1 473.8 94.22 480 80 480C53.49 480 32 458.5 32 432C32 417.8 38.18 405 48 396.2V115.8zM96 125.3V386.7C109.6 391.6 120.4 402.4 125.3 416H450.7C455.6 402.4 466.4 391.6 480 386.7V125.3C466.4 120.4 455.6 109.6 450.7 96H125.3C120.4 109.6 109.6 120.4 96 125.3z\"]\n};\nvar faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M244 84L255.1 96L267.1 84.02C300.6 51.37 347 36.51 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 0 232.4 0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.1C164.1 36.51 211.4 51.37 244 84C243.1 84 244 84.01 244 84L244 84zM255.1 163.9L210.1 117.1C188.4 96.28 157.6 86.4 127.3 91.44C81.55 99.07 48 138.7 48 185.1V190.9C48 219.1 59.71 246.1 80.34 265.3L256 429.3L431.7 265.3C452.3 246.1 464 219.1 464 190.9V185.1C464 138.7 430.4 99.07 384.7 91.44C354.4 86.4 323.6 96.28 301.9 117.1L255.1 163.9z\"]\n};\nvar faFaceSurprise = {\n prefix: 'far',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faCirclePause = {\n prefix: 'far',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M200 160C186.8 160 176 170.8 176 184v144C176 341.3 186.8 352 200 352S224 341.3 224 328v-144C224 170.8 213.3 160 200 160zM312 160C298.8 160 288 170.8 288 184v144c0 13.25 10.75 24 24 24s24-10.75 24-24v-144C336 170.8 325.3 160 312 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faCircleUp = {\n prefix: 'far',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M272.9 135.7C268.3 130.8 261.9 128 255.2 128C247.5 128.3 241.1 130.9 237.5 135.8l-87.25 96C143.8 238.9 142.2 249 146.1 257.7C149.9 266.4 158.5 272 167.1 272h56L224 360c0 13.25 10.75 24 24 24h16c13.25 0 23.1-10.75 23.1-24L287.1 272h56c9.531 0 18.16-5.656 22-14.38c3.811-8.75 2.092-18.91-4.377-25.91L272.9 135.7zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM171.5 259.5L136 296H92C85.38 296 80 301.4 80 308v56C80 370.7 85.38 376 92 376H136l35.5 36.5C179.1 420 192 414.8 192 404v-136C192 257.3 179.1 251.9 171.5 259.5zM235.1 260.7c-6.25 6.25-6.25 16.38 0 22.62C235.3 283.5 256 305.1 256 336c0 30.94-20.77 52.53-20.91 52.69c-6.25 6.25-6.25 16.38 0 22.62C238.2 414.4 242.3 416 246.4 416s8.188-1.562 11.31-4.688C258.1 410.1 288 380.5 288 336s-29.05-74.06-30.28-75.31C251.5 254.4 241.3 254.4 235.1 260.7z\"]\n};\nvar faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM215.3 292c-4.68 0-9.051 2.34-11.65 6.234L164 357.8l-11.68-17.53C149.7 336.3 145.3 334 140.7 334c-4.682 0-9.053 2.34-11.65 6.234l-46.67 70c-2.865 4.297-3.131 9.82-.6953 14.37C84.09 429.2 88.84 432 93.1 432h196c5.163 0 9.907-2.844 12.34-7.395c2.436-4.551 2.17-10.07-.6953-14.37l-74.67-112C224.4 294.3 220 292 215.3 292zM128 288c17.67 0 32-14.33 32-32S145.7 224 128 224S96 238.3 96 256S110.3 288 128 288z\"]\n};\nvar faCircleQuestion = {\n prefix: 'far',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 336c-18 0-32 14-32 32s13.1 32 32 32c17.1 0 32-14 32-32S273.1 336 256 336zM289.1 128h-51.1C199 128 168 159 168 198c0 13 11 24 24 24s24-11 24-24C216 186 225.1 176 237.1 176h51.1C301.1 176 312 186 312 198c0 8-4 14.1-11 18.1L244 251C236 256 232 264 232 272V288c0 13 11 24 24 24S280 301 280 288V286l45.1-28c21-13 34-36 34-60C360 159 329 128 289.1 128z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faFaceMehBlank = {\n prefix: 'far',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M160 256C160 185.3 217.3 128 288 128C358.7 128 416 185.3 416 256C416 326.7 358.7 384 288 384C217.3 384 160 326.7 160 256zM288 336C332.2 336 368 300.2 368 256C368 211.8 332.2 176 288 176C287.3 176 286.7 176 285.1 176C287.3 181.1 288 186.5 288 192C288 227.3 259.3 256 224 256C218.5 256 213.1 255.3 208 253.1C208 254.7 208 255.3 208 255.1C208 300.2 243.8 336 288 336L288 336zM95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6V112.6zM288 80C222.8 80 169.2 109.6 128.1 147.7C89.6 183.5 63.02 225.1 49.44 256C63.02 286 89.6 328.5 128.1 364.3C169.2 402.4 222.8 432 288 432C353.2 432 406.8 402.4 447.9 364.3C486.4 328.5 512.1 286 526.6 256C512.1 225.1 486.4 183.5 447.9 147.7C406.8 109.6 353.2 80 288 80V80z\"]\n};\nvar faFaceSadCry = {\n prefix: 'far',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.1 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM297.9 230.6C289.9 223 289.5 210.4 297 202.3C311.6 186.8 332.3 180 351.6 180C370.1 180 391.7 186.8 406.2 202.3C413.8 210.4 413.4 223 405.3 230.6C397.2 238.1 384.6 237.7 377 229.7C371.6 223.8 362.3 220 351.6 220C340.1 220 331.7 223.8 326.2 229.7C318.7 237.7 306 238.1 297.9 230.6zM208 320C208 293.5 229.5 272 256 272C282.5 272 304 293.5 304 320V352C304 378.5 282.5 400 256 400C229.5 400 208 378.5 208 352V320zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM400 406.1C439.4 368.2 464 314.1 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 314.1 72.55 368.2 112 406.1V288C112 274.7 122.7 264 136 264C149.3 264 160 274.7 160 288V440.6C188.7 455.5 221.4 464 256 464C290.6 464 323.3 455.5 352 440.6V288C352 274.7 362.7 264 376 264C389.3 264 400 274.7 400 288V406.1z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M162.1 257.8c-7.812-7.812-20.47-7.812-28.28 0l-48 48c-7.812 7.812-7.812 20.5 0 28.31l48 48C137.8 386.1 142.9 388 148 388s10.23-1.938 14.14-5.844c7.812-7.812 7.812-20.5 0-28.31L128.3 320l33.86-33.84C169.1 278.3 169.1 265.7 162.1 257.8zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM221.9 257.8c-7.812 7.812-7.812 20.5 0 28.31L255.7 320l-33.86 33.84c-7.812 7.812-7.812 20.5 0 28.31C225.8 386.1 230.9 388 236 388s10.23-1.938 14.14-5.844l48-48c7.812-7.812 7.812-20.5 0-28.31l-48-48C242.3 250 229.7 250 221.9 257.8z\"]\n};\nvar faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M7.724 65.49C13.36 55.11 21.79 46.47 32 40.56C39.63 36.15 48.25 33.26 57.46 32.33C59.61 32.11 61.79 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 93.79 .112 91.61 .3306 89.46C1.204 80.85 3.784 72.75 7.724 65.49V65.49zM48 416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V224H48V416z\"]\n};\nvar faFaceFrown = {\n prefix: 'far',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M143.9 398.6C131.4 394.1 124.9 380.3 129.4 367.9C146.9 319.4 198.9 288 256 288C313.1 288 365.1 319.4 382.6 367.9C387.1 380.3 380.6 394.1 368.1 398.6C355.7 403.1 341.9 396.6 337.4 384.1C328.2 358.5 297.2 336 256 336C214.8 336 183.8 358.5 174.6 384.1C170.1 396.6 156.3 403.1 143.9 398.6V398.6zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faFrown = faFaceFrown;\nvar faFloppyDisk = {\n prefix: 'far',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M224 256c-35.2 0-64 28.8-64 64c0 35.2 28.8 64 64 64c35.2 0 64-28.8 64-64C288 284.8 259.2 256 224 256zM433.1 129.1l-83.9-83.9C341.1 37.06 328.8 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 151.2 442.9 138.9 433.1 129.1zM128 80h144V160H128V80zM400 416c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V96c0-8.838 7.164-16 16-16h16v104c0 13.25 10.75 24 24 24h192C309.3 208 320 197.3 320 184V83.88l78.25 78.25C399.4 163.2 400 164.8 400 166.3V416z\"]\n};\nvar faSave = faFloppyDisk;\nvar faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M144 208C126.3 208 112 222.2 112 239.1C112 257.7 126.3 272 144 272s31.1-14.25 31.1-32S161.8 208 144 208zM256 207.1c-17.75 0-31.1 14.25-31.1 32s14.25 31.1 31.1 31.1s31.1-14.25 31.1-31.1S273.8 207.1 256 207.1zM368 208c-17.75 0-31.1 14.25-31.1 32s14.25 32 31.1 32c17.75 0 31.99-14.25 31.99-32C400 222.2 385.8 208 368 208zM256 31.1c-141.4 0-255.1 93.12-255.1 208c0 47.62 19.91 91.25 52.91 126.3c-14.87 39.5-45.87 72.88-46.37 73.25c-6.624 7-8.373 17.25-4.624 26C5.818 474.2 14.38 480 24 480c61.49 0 109.1-25.75 139.1-46.25c28.87 9 60.16 14.25 92.9 14.25c141.4 0 255.1-93.13 255.1-207.1S397.4 31.1 256 31.1zM256 400c-26.75 0-53.12-4.125-78.36-12.12l-22.75-7.125L135.4 394.5c-14.25 10.12-33.87 21.38-57.49 29c7.374-12.12 14.37-25.75 19.87-40.25l10.62-28l-20.62-21.87C69.81 314.1 48.06 282.2 48.06 240c0-88.25 93.24-160 207.1-160s207.1 71.75 207.1 160S370.8 400 256 400z\"]\n};\nvar faCommenting = faCommentDots;\nvar faFaceGrinSquint = {\n prefix: 'far',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M208 288C199.2 288 192 295.2 192 304v96C192 408.8 199.2 416 208 416s16-7.164 16-16v-96C224 295.2 216.8 288 208 288zM272 288C263.2 288 256 295.2 256 304v96c0 8.836 7.162 16 15.1 16S288 408.8 288 400l-.0013-96C287.1 295.2 280.8 288 272 288zM376.9 201.2c-13.74-17.12-34.8-27.45-56.92-27.45h-13.72c-3.713 0-7.412 .291-11.07 .8652C282.7 165.1 267.4 160 251.4 160h-11.44V72c0-39.7-32.31-72-72.01-72c-39.7 0-71.98 32.3-71.98 72v168.5C84.85 235.1 75.19 235.4 69.83 235.4c-44.35 0-69.83 37.23-69.83 69.85c0 14.99 4.821 29.51 13.99 41.69l78.14 104.2C120.7 489.3 166.2 512 213.7 512h109.7c6.309 0 12.83-.957 18.14-2.645c28.59-5.447 53.87-19.41 73.17-40.44C436.1 446.3 448 416.2 448 384.2V274.3C448 234.6 416.3 202.3 376.9 201.2zM400 384.2c0 19.62-7.219 38.06-20.44 52.06c-12.53 13.66-29.03 22.67-49.69 26.56C327.4 463.6 325.3 464 323.4 464H213.7c-32.56 0-63.65-15.55-83.18-41.59L52.36 318.2C49.52 314.4 48.02 309.8 48.02 305.2c0-16.32 14.5-21.75 21.72-21.75c4.454 0 12.01 1.55 17.34 8.703l28.12 37.5c3.093 4.105 7.865 6.419 12.8 6.419c11.94 0 16.01-10.7 16.01-16.01V72c0-13.23 10.78-24 23.1-24c13.22 0 24 10.77 24 24v130.7c0 6.938 5.451 16.01 16.03 16.01C219.5 218.7 220.1 208 237.7 208h13.72c21.5 0 18.56 19.21 34.7 19.21c8.063 0 9.805-5.487 20.15-5.487h13.72c26.96 0 17.37 27.43 40.77 27.43l14.07-.0037c13.88 0 25.16 11.28 25.16 25.14V384.2zM336 288C327.2 288 320 295.2 320 304v96c0 8.836 7.164 16 16 16s16-7.164 16-16v-96C352 295.2 344.8 288 336 288z\"]\n};\nvar faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M270.1 480h97.92C447.4 480 512 417.1 512 339.7V231.8c0-23.45-6.106-46.73-17.66-67.33l-31.35-55.85C447.5 81.1 417.1 64 385.9 64h-46.97c-26.63 0-51.56 11.63-68.4 31.93l-15.46 18.71L127.3 68.44C119 65.46 110.5 64.05 102.1 64.05c-30.02 0-58.37 18.06-69.41 47.09C15.06 156.8 46.19 194 76.75 204.9l2.146 .7637L68.79 206.4C30.21 209 0 241.2 0 279.3c0 39.7 33.27 72.09 73.92 72.09c1.745 0 3.501-.0605 5.268-.1833l88.79-6.135v8.141c0 22.11 10.55 43.11 28.05 56.74C197.4 448.8 230.2 480 270.1 480zM269.1 432c-14.34 0-26-11.03-26-24.62c0 0 .0403-14.31 .0403-14.71c0-6.894-4.102-14.2-10.67-16.39c-10.39-3.5-17.38-12.78-17.38-23.06v-13.53c0-16.98 13.7-16.4 13.7-29.89c0-9.083-7.392-15.96-15.96-15.96c-.3646 0-.7311 .0125-1.099 .0377c0 0-138.1 9.505-138.7 9.505c-14.32 0-25.93-11.04-25.93-24.49c0-13.28 10.7-23.74 24.1-24.64l163.2-11.28c2.674-.1882 14.92-2.907 14.92-16.18c0-6.675-4.284-12.58-10.65-14.85L92.84 159.7C85.39 156.1 75.97 149.4 75.97 136.7c0-11.14 9.249-24.66 25.97-24.66c3.043 0 6.141 .5115 9.166 1.59l234.1 85.03c1.801 .6581 3.644 .9701 5.456 .9701c8.96 0 16-7.376 16-15.1c0-6.514-4.068-12.69-10.59-15.04l-64.81-23.47l15.34-18.56C315.2 117.3 326.6 112 338.9 112h46.97c14.77 0 28.28 7.719 35.27 20.16L452.5 188c7.531 13.41 11.52 28.56 11.52 43.81v107.9c0 50.91-43.06 92.31-96 92.31H269.1z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'far',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M519.4 334.4C522.7 342.5 527.8 352.1 535.9 361.1C539.9 365 544.1 368.4 548.6 371.4C506.4 454.8 419.9 512 319.1 512C220.1 512 133.6 454.8 91.4 371.4C95.87 368.4 100.1 365 104.1 361.1C112.2 352.1 117.3 342.5 120.6 334.4C121.8 331.5 122.9 328.6 123.9 325.5C152.5 406.2 229.5 464 319.1 464C410.5 464 487.5 406.2 516.1 325.5C517.1 328.6 518.2 331.5 519.4 334.4V334.4zM319.1 47.1C218.6 47.1 134.2 120.5 115.7 216.5C109.1 213.4 101.4 212.2 93.4 213.3C86.59 214.3 77.18 215.7 66.84 217.7C85.31 94.5 191.6 0 319.1 0C448.4 0 554.7 94.5 573.2 217.7C562.8 215.7 553.4 214.3 546.6 213.3C538.6 212.2 530.9 213.4 524.2 216.5C505.8 120.5 421.4 48 319.1 48V47.1zM78.5 341.1C59.98 356.7 32.01 355.5 14.27 337.7C-4.442 319-4.825 288.9 13.55 270.6C22.19 261.9 43.69 255.4 64.05 250.1C77.02 248.2 89.53 246.2 97.94 245C103.3 244.2 107.8 248.7 106.1 254.1C103.9 275.6 95.58 324.3 81.43 338.4C80.49 339.4 79.51 340.3 78.5 341.1V341.1zM561.5 341.1C560.7 340.5 559.1 339.8 559.2 339.1C559 338.9 558.8 338.7 558.6 338.4C544.4 324.3 536.1 275.6 533 254.1C532.2 248.7 536.7 244.2 542.1 245C543.1 245.2 544.2 245.3 545.4 245.5C553.6 246.7 564.6 248.5 575.1 250.1C596.3 255.4 617.8 261.9 626.4 270.6C644.8 288.9 644.4 319 625.7 337.7C607.1 355.5 580 356.7 561.5 341.1L561.5 341.1zM319.9 399.1C269.6 399.1 225.5 374.6 200.9 336.5C190.5 320.4 207.7 303.1 226.3 308.4C255.3 315.1 286.8 318.8 319.9 318.8C353 318.8 384.6 315.1 413.5 308.4C432.2 303.1 449.4 320.4 438.1 336.5C414.4 374.6 370.3 399.1 319.9 399.1zM281.6 228.8L281.4 228.5C281.2 228.3 281 228 280.7 227.6C280 226.8 279.1 225.7 277.9 224.3C275.4 221.4 271.9 217.7 267.7 213.1C258.9 206.2 248.8 200 239.1 200C231.2 200 221.1 206.2 212.3 213.1C208.1 217.7 204.6 221.4 202.1 224.3C200.9 225.7 199.1 226.8 199.3 227.6C198.1 228 198.8 228.3 198.6 228.5L198.4 228.8L198.4 228.8C196.3 231.6 192.7 232.7 189.5 231.6C186.2 230.5 183.1 227.4 183.1 224C183.1 206.1 190.7 188.4 200.6 175.2C210.4 162.2 224.5 152 239.1 152C255.5 152 269.6 162.2 279.4 175.2C289.3 188.4 295.1 206.1 295.1 224C295.1 227.4 293.8 230.5 290.5 231.6C287.3 232.7 283.7 231.6 281.6 228.8L281.6 228.8zM441.6 228.8L441.6 228.8L441.4 228.5C441.2 228.3 441 228 440.7 227.6C440 226.8 439.1 225.7 437.9 224.3C435.4 221.4 431.9 217.7 427.7 213.1C418.9 206.2 408.8 200 400 200C391.2 200 381.1 206.2 372.3 213.1C368.1 217.7 364.6 221.4 362.1 224.3C360.9 225.7 359.1 226.8 359.3 227.6C358.1 228 358.8 228.3 358.6 228.5L358.4 228.8L358.4 228.8C356.3 231.6 352.7 232.7 349.5 231.6C346.2 230.5 344 227.4 344 223.1C344 206.1 350.7 188.4 360.6 175.2C370.4 162.2 384.5 151.1 400 151.1C415.5 151.1 429.6 162.2 439.4 175.2C449.3 188.4 456 206.1 456 223.1C456 227.4 453.8 230.5 450.5 231.6C447.3 232.7 443.7 231.6 441.6 228.8V228.8z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faCalendarXmark = {\n prefix: 'far',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M257.9 328L304.1 375C314.3 384.4 314.3 399.6 304.1 408.1C295.6 418.3 280.4 418.3 271 408.1L224 361.9L176.1 408.1C167.6 418.3 152.4 418.3 143 408.1C133.7 399.6 133.7 384.4 143 375L190.1 328L143 280.1C133.7 271.6 133.7 256.4 143 247C152.4 237.7 167.6 237.7 176.1 247L224 294.1L271 247C280.4 237.7 295.6 237.7 304.1 247C314.3 256.4 314.3 271.6 304.1 280.1L257.9 328zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM240 288c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-16.52l43.84 30.2C292.3 403.5 304 397.6 304 387.4V284.6c0-10.16-11.64-16.16-20.16-10.32L240 304.5V288z\"]\n};\nvar faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M320 464C328.8 464 336 456.8 336 448V416H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V416H48V448C48 456.8 55.16 464 64 464H320zM256 160C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V192H0V64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V192H336V160H256zM88 224C118.9 224 144 249.1 144 280C144 310.9 118.9 336 88 336H80V368C80 376.8 72.84 384 64 384C55.16 384 48 376.8 48 368V240C48 231.2 55.16 224 64 224H88zM112 280C112 266.7 101.3 256 88 256H80V304H88C101.3 304 112 293.3 112 280zM160 240C160 231.2 167.2 224 176 224H200C226.5 224 248 245.5 248 272V336C248 362.5 226.5 384 200 384H176C167.2 384 160 376.8 160 368V240zM192 352H200C208.8 352 216 344.8 216 336V272C216 263.2 208.8 256 200 256H192V352zM336 224C344.8 224 352 231.2 352 240C352 248.8 344.8 256 336 256H304V288H336C344.8 288 352 295.2 352 304C352 312.8 344.8 320 336 320H304V368C304 376.8 296.8 384 288 384C279.2 384 272 376.8 272 368V240C272 231.2 279.2 224 288 224H336z\"]\n};\nvar faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M256 32C114.6 32 .0272 125.1 .0272 240c0 47.63 19.91 91.25 52.91 126.2c-14.88 39.5-45.87 72.88-46.37 73.25c-6.625 7-8.375 17.25-4.625 26C5.818 474.2 14.38 480 24 480c61.5 0 109.1-25.75 139.1-46.25C191.1 442.8 223.3 448 256 448c141.4 0 255.1-93.13 255.1-208S397.4 32 256 32zM256.1 400c-26.75 0-53.12-4.125-78.38-12.12l-22.75-7.125l-19.5 13.75c-14.25 10.12-33.88 21.38-57.5 29c7.375-12.12 14.37-25.75 19.88-40.25l10.62-28l-20.62-21.87C69.82 314.1 48.07 282.2 48.07 240c0-88.25 93.25-160 208-160s208 71.75 208 160S370.8 400 256.1 400z\"]\n};\nvar faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M0 128C0 92.65 28.65 64 64 64H448C483.3 64 512 92.65 512 128V384C512 419.3 483.3 448 448 448H64C28.65 448 0 419.3 0 384V128zM48 128V150.1L220.5 291.7C241.1 308.7 270.9 308.7 291.5 291.7L464 150.1V127.1C464 119.2 456.8 111.1 448 111.1H64C55.16 111.1 48 119.2 48 127.1L48 128zM48 212.2V384C48 392.8 55.16 400 64 400H448C456.8 400 464 392.8 464 384V212.2L322 328.8C283.6 360.3 228.4 360.3 189.1 328.8L48 212.2z\"]\n};\nvar faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M360 0C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24C0 10.75 10.75 0 24 0L360 0zM192 289.9L110.5 371.5C90.96 390.1 80 417.4 80 445V464H304V445C304 417.4 293 390.1 273.5 371.5L192 289.9zM192 222.1L273.5 140.5C293 121 304 94.56 304 66.98V47.1H80V66.98C80 94.56 90.96 121 110.5 140.5L192 222.1z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M216.1 408.1C207.6 418.3 192.4 418.3 183 408.1L119 344.1C109.7 335.6 109.7 320.4 119 311C128.4 301.7 143.6 301.7 152.1 311L200 358.1L295 263C304.4 253.7 319.6 253.7 328.1 263C338.3 272.4 338.3 287.6 328.1 296.1L216.1 408.1zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"]\n};\nvar faHardDrive = {\n prefix: 'far',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M304 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C328 354.7 317.3 344 304 344zM448 32h-384c-35.35 0-64 28.65-64 64v320c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V96C512 60.65 483.3 32 448 32zM464 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h384C456.8 304 464 311.2 464 320V416zM464 258.3C458.9 256.9 453.6 256 448 256H64C58.44 256 53.14 256.9 48 258.3V96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V258.3zM400 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C424 354.7 413.3 344 400 344z\"]\n};\nvar faHdd = faHardDrive;\nvar faFaceGrinSquintTears = {\n prefix: 'far',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.18C446-5.046 477.5-4.646 497.1 14.92C516.6 34.49 517 65.95 497.8 85.18C483 99.97 432.2 108.8 409.6 111.9C403.1 112.8 399.2 108 400.1 102.4C403.3 79.94 412 28.97 426.8 14.18H426.8zM74.98 74.98C158.2-8.253 284.5-22.19 382.2 33.17C380.6 37.96 379.3 42.81 378.1 47.52C375 59.67 372.6 72.08 370.8 82.52C290.1 28.93 180.1 37.74 108.9 108.9C37.75 180.1 28.94 290 82.49 370.8C72.01 372.6 59.6 374.1 47.46 378.1C42.76 379.3 37.93 380.6 33.15 382.1C-22.19 284.5-8.245 158.2 74.98 74.98V74.98zM478.8 129.9C534.2 227.5 520.2 353.8 437 437C353.8 520.3 227.5 534.2 129.8 478.8C131.3 474 132.7 469.2 133.9 464.5C136.1 452.3 139.4 439.9 141.2 429.5C221.9 483.1 331.9 474.3 403.1 403.1C474.3 331.9 483.1 221.1 429.5 141.2C439.1 139.4 452.4 137 464.5 133.9C469.2 132.7 474.1 131.4 478.8 129.9L478.8 129.9zM359.2 226.9C369.3 210.6 393 210 397 228.8C406.6 273.1 393.4 322.3 357.8 357.9C322.2 393.5 273 406.7 228.6 397.1C209.9 393.1 210.5 369.4 226.8 359.3C252 343.6 276.1 323.9 300.4 300.5C323.8 277.1 343.5 252.1 359.2 226.9L359.2 226.9zM189.5 235.7C201.1 232.1 211.1 242.1 208.5 254.6L178.8 352.1C176.2 360.7 165.4 363.4 159 357C157.1 355 155.8 352.5 155.6 349.7L150.5 293.6L94.43 288.5C91.66 288.3 89.07 287.1 87.1 285.1C80.76 278.7 83.46 267.9 92.05 265.3L189.5 235.7zM288.5 94.43L293.6 150.5L349.7 155.6C352.5 155.8 355 157.1 357 159C363.4 165.4 360.7 176.2 352.1 178.8L254.6 208.5C242.1 211.1 232.1 201.1 235.7 189.5L265.3 92.05C267.9 83.46 278.7 80.76 285.1 87.1C287.1 89.07 288.3 91.66 288.5 94.43V94.43zM14.18 426.8C28.97 412 79.85 403.2 102.4 400.1C108 399.2 112.8 403.1 111.9 409.6C108.7 432.1 99.97 483 85.18 497.8C65.95 517 34.5 516.6 14.93 497.1C-4.645 477.5-5.046 446 14.18 426.8H14.18z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faRectangleList = {\n prefix: 'far',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M128 192C110.3 192 96 177.7 96 160C96 142.3 110.3 128 128 128C145.7 128 160 142.3 160 160C160 177.7 145.7 192 128 192zM200 160C200 146.7 210.7 136 224 136H448C461.3 136 472 146.7 472 160C472 173.3 461.3 184 448 184H224C210.7 184 200 173.3 200 160zM200 256C200 242.7 210.7 232 224 232H448C461.3 232 472 242.7 472 256C472 269.3 461.3 280 448 280H224C210.7 280 200 269.3 200 256zM200 352C200 338.7 210.7 328 224 328H448C461.3 328 472 338.7 472 352C472 365.3 461.3 376 448 376H224C210.7 376 200 365.3 200 352zM128 224C145.7 224 160 238.3 160 256C160 273.7 145.7 288 128 288C110.3 288 96 273.7 96 256C96 238.3 110.3 224 128 224zM128 384C110.3 384 96 369.7 96 352C96 334.3 110.3 320 128 320C145.7 320 160 334.3 160 352C160 369.7 145.7 384 128 384zM0 96C0 60.65 28.65 32 64 32H512C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V96C528 87.16 520.8 80 512 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faListAlt = faRectangleList;\nvar faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M224 232C237.3 232 248 242.7 248 256V304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H248V400C248 413.3 237.3 424 224 424C210.7 424 200 413.3 200 400V352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H200V256C200 242.7 210.7 232 224 232zM152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z\"]\n};\nvar faCircleLeft = {\n prefix: 'far',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M360 224L272 224v-56c0-9.531-5.656-18.16-14.38-22C248.9 142.2 238.7 143.9 231.7 150.4l-96 88.75C130.8 243.7 128 250.1 128 256.8c.3125 7.781 2.875 13.25 7.844 17.75l96 87.25c7.031 6.406 17.19 8.031 25.88 4.188s14.28-12.44 14.28-21.94l-.002-56L360 288C373.3 288 384 277.3 384 264v-16C384 234.8 373.3 224 360 224zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faMoneyBill1 = {\n prefix: 'far',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M400 256C400 317.9 349.9 368 288 368C226.1 368 176 317.9 176 256C176 194.1 226.1 144 288 144C349.9 144 400 194.1 400 256zM272 224V288H264C255.2 288 248 295.2 248 304C248 312.8 255.2 320 264 320H312C320.8 320 328 312.8 328 304C328 295.2 320.8 288 312 288H304V208C304 199.2 296.8 192 288 192H272C263.2 192 256 199.2 256 208C256 216.8 263.2 224 272 224zM0 128C0 92.65 28.65 64 64 64H512C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128zM48 176V336C83.35 336 112 364.7 112 400H464C464 364.7 492.7 336 528 336V176C492.7 176 464 147.3 464 112H112C112 147.3 83.35 176 48 176z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M232 120C232 106.7 242.7 96 256 96C269.3 96 280 106.7 280 120V243.2L365.3 300C376.3 307.4 379.3 322.3 371.1 333.3C364.6 344.3 349.7 347.3 338.7 339.1L242.7 275.1C236 271.5 232 264 232 255.1L232 120zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256z\"]\n};\nvar faClockFour = faClock;\nvar faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M512 64H64C28.65 64 0 92.65 0 128v256c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V128C576 92.65 547.3 64 512 64zM528 384c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V128c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V384zM140 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 157.3 146.7 152 140 152zM196 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 194.7 189.3 200 196 200zM276 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 194.7 269.3 200 276 200zM356 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 194.7 349.3 200 356 200zM460 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 157.3 466.7 152 460 152zM140 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 237.3 146.7 232 140 232zM196 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 274.7 189.3 280 196 280zM276 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 274.7 269.3 280 276 280zM356 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 274.7 349.3 280 356 280zM460 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 237.3 466.7 232 460 232zM400 320h-224C167.1 320 160 327.1 160 336V352c0 8.875 7.125 16 16 16h224c8.875 0 16-7.125 16-16v-16C416 327.1 408.9 320 400 320z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416zM236.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C116.5 206.2 106.5 230.4 106.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C159.5 280.9 154.5 268.8 154.5 256s5-24.88 14.06-33.94C187.3 203.3 217.8 203.3 236.5 222.1zM428.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C308.5 206.2 298.5 230.4 298.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C351.5 280.9 346.5 268.8 346.5 256s5-24.88 14.06-33.94C379.3 203.3 409.8 203.3 428.5 222.1z\"]\n};\nvar faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M512 32H160c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64H512c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 320c0 8.822-7.178 16-16 16h-16l-109.3-160.9C383.7 170.7 378.7 168 373.3 168c-5.352 0-10.35 2.672-13.31 7.125l-62.74 94.11L274.9 238.6C271.9 234.4 267.1 232 262 232c-5.109 0-9.914 2.441-12.93 6.574L176 336H160c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16H512c8.822 0 16 7.178 16 16V320zM224 112c-17.67 0-32 14.33-32 32s14.33 32 32 32c17.68 0 32-14.33 32-32S241.7 112 224 112zM456 480H120C53.83 480 0 426.2 0 360v-240C0 106.8 10.75 96 24 96S48 106.8 48 120v240c0 39.7 32.3 72 72 72h336c13.25 0 24 10.75 24 24S469.3 480 456 480z\"]\n};\nvar faFaceGrin = {\n prefix: 'far',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFaceMeh = {\n prefix: 'far',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM328 328C341.3 328 352 338.7 352 352C352 365.3 341.3 376 328 376H184C170.7 376 160 365.3 160 352C160 338.7 170.7 328 184 328H328zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faMeh = faFaceMeh;\nvar faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M368 344h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 344 368 344zM208 320c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 291.3 172.7 320 208 320zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16h-192c0-44.18-35.82-80-80-80h-64C131.8 352 96 387.8 96 432H64c-8.822 0-16-7.178-16-16V160h480V416zM368 264h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 264 368 264z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M505.2 324.8l-47.73-68.78l47.75-68.81c7.359-10.62 8.797-24.12 3.844-36.06c-4.969-11.94-15.52-20.44-28.22-22.72l-82.39-14.88l-14.89-82.41c-2.281-12.72-10.76-23.25-22.69-28.22c-11.97-4.936-25.42-3.498-36.12 3.844L256 54.49L187.2 6.709C176.5-.6016 163.1-2.039 151.1 2.896c-11.92 4.971-20.4 15.5-22.7 28.19l-14.89 82.44L31.15 128.4C18.42 130.7 7.854 139.2 2.9 151.2C-2.051 163.1-.5996 176.6 6.775 187.2l47.73 68.78l-47.75 68.81c-7.359 10.62-8.795 24.12-3.844 36.06c4.969 11.94 15.52 20.44 28.22 22.72l82.39 14.88l14.89 82.41c2.297 12.72 10.78 23.25 22.7 28.22c11.95 4.906 25.44 3.531 36.09-3.844L256 457.5l68.83 47.78C331.3 509.7 338.8 512 346.3 512c4.906 0 9.859-.9687 14.56-2.906c11.92-4.969 20.4-15.5 22.7-28.19l14.89-82.44l82.37-14.88c12.73-2.281 23.3-10.78 28.25-22.75C514.1 348.9 512.6 335.4 505.2 324.8zM456.8 339.2l-99.61 18l-18 99.63L256 399.1L172.8 456.8l-18-99.63l-99.61-18L112.9 255.1L55.23 172.8l99.61-18l18-99.63L256 112.9l83.15-57.75l18.02 99.66l99.61 18L399.1 255.1L456.8 339.2zM256 143.1c-61.85 0-111.1 50.14-111.1 111.1c0 61.85 50.15 111.1 111.1 111.1s111.1-50.14 111.1-111.1C367.1 194.1 317.8 143.1 256 143.1zM256 319.1c-35.28 0-63.99-28.71-63.99-63.99S220.7 192 256 192s63.99 28.71 63.99 63.1S291.3 319.1 256 319.1z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'far',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM281.9 214.6C273.9 207 273.5 194.4 281 186.3C295.6 170.8 316.3 164 335.6 164C354.1 164 375.7 170.8 390.2 186.3C397.8 194.4 397.4 207 389.3 214.6C381.2 222.1 368.6 221.7 361 213.7C355.6 207.8 346.3 204 335.6 204C324.1 204 315.7 207.8 310.2 213.7C302.7 221.7 290 222.1 281.9 214.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faCircleDown = {\n prefix: 'far',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M344 240h-56L287.1 152c0-13.25-10.75-24-24-24h-16C234.7 128 223.1 138.8 223.1 152L224 240h-56c-9.531 0-18.16 5.656-22 14.38C142.2 263.1 143.9 273.3 150.4 280.3l88.75 96C243.7 381.2 250.1 384 256.8 384c7.781-.3125 13.25-2.875 17.75-7.844l87.25-96c6.406-7.031 8.031-17.19 4.188-25.88S353.5 240 344 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M128 288V64.03c0-17.67-14.33-31.1-32-31.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64C113.7 320 128 305.7 128 288zM481.5 229.1c1.234-5.092 1.875-10.32 1.875-15.64c0-22.7-11.44-43.13-29.28-55.28c.4219-3.015 .6406-6.076 .6406-9.122c0-22.32-11.06-42.6-28.83-54.83c-2.438-34.71-31.47-62.2-66.8-62.2h-52.53c-35.94 0-71.55 11.87-100.3 33.41L169.6 92.93c-6.285 4.71-9.596 11.85-9.596 19.13c0 12.76 10.29 24.04 24.03 24.04c5.013 0 10.07-1.565 14.38-4.811l36.66-27.51c20.48-15.34 45.88-23.81 71.5-23.81h52.53c10.45 0 18.97 8.497 18.97 18.95c0 3.5-1.11 4.94-1.11 9.456c0 26.97 29.77 17.91 29.77 40.64c0 9.254-6.392 10.96-6.392 22.25c0 13.97 10.85 21.95 19.58 23.59c8.953 1.671 15.45 9.481 15.45 18.56c0 13.04-11.39 13.37-11.39 28.91c0 12.54 9.702 23.08 22.36 23.94C456.2 266.1 464 275.2 464 284.1c0 10.43-8.516 18.93-18.97 18.93H307.4c-12.44 0-24 10.02-24 23.1c0 4.038 1.02 8.078 3.066 11.72C304.4 371.7 312 403.8 312 411.2c0 8.044-5.984 20.79-22.06 20.79c-12.53 0-14.27-.9059-24.94-28.07c-24.75-62.91-61.74-99.9-80.98-99.9c-13.8 0-24.02 11.27-24.02 23.99c0 7.041 3.083 14.02 9.016 18.76C238.1 402 211.4 480 289.9 480C333.8 480 360 445 360 411.2c0-12.7-5.328-35.21-14.83-59.33h99.86C481.1 351.9 512 321.9 512 284.1C512 261.8 499.9 241 481.5 229.1z\"]\n};\nvar faChessPawn = {\n prefix: 'far',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M296 463.1H23.1c-13.25 0-23.1 10.75-23.1 24s10.75 24 23.1 24h272c13.25 0 23.1-10.75 23.1-23.1S309.3 463.1 296 463.1zM55.1 287.1L80 287.1v29.5c0 40.25-3.5 81.25-23.38 114.5h53.5C125.1 394.1 128 354.6 128 317.5v-29.5h64v29.5c0 37.13 2.875 77.5 17.88 114.5h53.5C243.5 398.7 240 357.7 240 317.5V287.1l24-.0001C277.3 287.1 288 277.3 288 263.1c0-13.25-10.75-24-23.1-24H241c23.75-21.88 38.1-53.12 38.1-87.1c0-9.393-1.106-19.05-3.451-28.86C272.3 105.4 244.9 32 159.1 32C93.75 32 40 85.75 40 151.1c0 34.88 15.12 66.12 39 88H55.1C42.75 239.1 32 250.7 32 263.1C32 277.3 42.75 287.1 55.1 287.1zM160 79.1c39.75 0 72 32.25 72 72S199.8 223.1 160 223.1S88 191.7 88 151.1S120.2 79.1 160 79.1z\"]\n};\nvar faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M168 336C181.3 336 192 346.7 192 360C192 373.3 181.3 384 168 384H120C106.7 384 96 373.3 96 360C96 346.7 106.7 336 120 336H168zM360 336C373.3 336 384 346.7 384 360C384 373.3 373.3 384 360 384H248C234.7 384 224 373.3 224 360C224 346.7 234.7 336 248 336H360zM512 32C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H512zM512 80H64C55.16 80 48 87.16 48 96V128H528V96C528 87.16 520.8 80 512 80zM528 224H48V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V224z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M256 32V49.88C328.5 61.39 384 124.2 384 200V233.4C384 278.8 399.5 322.9 427.8 358.4L442.7 377C448.5 384.2 449.6 394.1 445.6 402.4C441.6 410.7 433.2 416 424 416H24C14.77 416 6.365 410.7 2.369 402.4C-1.628 394.1-.504 384.2 5.26 377L20.17 358.4C48.54 322.9 64 278.8 64 233.4V200C64 124.2 119.5 61.39 192 49.88V32C192 14.33 206.3 0 224 0C241.7 0 256 14.33 256 32V32zM216 96C158.6 96 112 142.6 112 200V233.4C112 281.3 98.12 328 72.31 368H375.7C349.9 328 336 281.3 336 233.4V200C336 142.6 289.4 96 232 96H216zM288 448C288 464.1 281.3 481.3 269.3 493.3C257.3 505.3 240.1 512 224 512C207 512 190.7 505.3 178.7 493.3C166.7 481.3 160 464.1 160 448H288z\"]\n};\nvar faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z\"]\n};\nvar faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M296 96C296 87.16 303.2 80 312 80H328C336.8 80 344 87.16 344 96V120H368C376.8 120 384 127.2 384 136V152C384 160.8 376.8 168 368 168H344V192C344 200.8 336.8 208 328 208H312C303.2 208 296 200.8 296 192V168H272C263.2 168 256 160.8 256 152V136C256 127.2 263.2 120 272 120H296V96zM408 0C447.8 0 480 32.24 480 72V80H568C607.8 80 640 112.2 640 152V440C640 479.8 607.8 512 568 512H71.98C32.19 512 0 479.8 0 440V152C0 112.2 32.24 80 72 80H160V72C160 32.24 192.2 0 232 0L408 0zM480 128V464H568C581.3 464 592 453.3 592 440V336H536C522.7 336 512 325.3 512 312C512 298.7 522.7 288 536 288H592V240H536C522.7 240 512 229.3 512 216C512 202.7 522.7 192 536 192H592V152C592 138.7 581.3 128 568 128H480zM48 152V192H104C117.3 192 128 202.7 128 216C128 229.3 117.3 240 104 240H48V288H104C117.3 288 128 298.7 128 312C128 325.3 117.3 336 104 336H48V440C48 453.3 58.74 464 71.98 464H160V128H72C58.75 128 48 138.7 48 152V152zM208 464H272V400C272 373.5 293.5 352 320 352C346.5 352 368 373.5 368 400V464H432V72C432 58.75 421.3 48 408 48H232C218.7 48 208 58.75 208 72V464z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faChessRook = {\n prefix: 'far',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464zM345.1 32h-308C17 32 0 49 0 70v139.4C0 218.8 4 227.5 11 233.6L48 265.8c0 8.885 .0504 17.64 .0504 26.46c0 39.32-1.001 79.96-11.93 139.8h49C94.95 374.3 96.11 333.3 96.11 285.5C96.11 270.7 96 255.1 96 238.2L48 196.5V80h64V128H160V80h64V128h48V80h64v116.5L288 238.2c0 16.77-.1124 32.25-.1124 47.1c0 47.79 1.164 89.15 10.99 146.7h49c-10.92-59.83-11.93-100.6-11.93-139.9C335.9 283.3 336 274.6 336 265.8l37-32.13C380 227.5 384 218.8 384 209.4V70C384 49 367 32 345.1 32zM192 224C174.4 224 160 238.4 160 256v64h64V256C224 238.4 209.6 224 192 224z\"]\n};\nvar faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M293.3 .6123C304.2 3.118 311.9 12.82 311.9 24V408.7C311.9 417.5 307.1 425.7 299.2 429.8L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.1 115.1 483.9L142.2 328.4L31.11 218.3C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C271.2 3.46 282.4-1.893 293.3 .6127L293.3 .6123zM263.9 128.4L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L263.9 394.3L263.9 128.4z\"]\n};\nvar faChessKing = {\n prefix: 'far',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M391.9 464H55.95c-13.25 0-23.1 10.75-23.1 23.1S42.7 512 55.95 512h335.1c13.25 0 23.1-10.75 23.1-23.1S405.2 464 391.9 464zM448 216c0-11.82-3.783-23.51-11.08-33.17c-10.3-14.39-27-22.88-44.73-22.88L247.9 160V104h31.1c13.2 0 24.06-10.8 24.06-24S293.1 56 279.9 56h-31.1V23.1C247.9 10.8 237.2 0 223.1 0S199.9 10.8 199.9 23.1V56H167.9c-13.2 0-23.97 10.8-23.97 24S154.7 104 167.9 104h31.1V160H55.95C24.72 160 0 185.3 0 215.9C0 221.6 .8893 227.4 2.704 233L68.45 432h50.5L48.33 218.4C48.09 217.6 47.98 216.9 47.98 216.1C47.98 212.3 50.93 208 55.95 208h335.9c6.076 0 8.115 5.494 8.115 8.113c0 .6341-.078 1.269-.2405 1.887L328.8 432h50.62l65.1-199.2C447.2 227.3 448 221.7 448 216z\"]\n};\nvar faCircleUser = {\n prefix: 'far',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M256 112c-48.6 0-88 39.4-88 88C168 248.6 207.4 288 256 288s88-39.4 88-88C344 151.4 304.6 112 256 112zM256 240c-22.06 0-40-17.95-40-40C216 177.9 233.9 160 256 160s40 17.94 40 40C296 222.1 278.1 240 256 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-46.73 0-89.76-15.68-124.5-41.79C148.8 389 182.4 368 220.2 368h71.69c37.75 0 71.31 21.01 88.68 54.21C345.8 448.3 302.7 464 256 464zM416.2 388.5C389.2 346.3 343.2 320 291.8 320H220.2c-51.36 0-97.35 26.25-124.4 68.48C65.96 352.5 48 306.3 48 256c0-114.7 93.31-208 208-208s208 93.31 208 208C464 306.3 446 352.5 416.2 388.5z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [512, 512, [], \"f0c5\", \"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z\"]\n};\nvar faShareFromSquare = {\n prefix: 'far',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M568.5 142.6l-144-135.1c-9.625-9.156-24.81-8.656-33.91 .9687c-9.125 9.625-8.688 24.81 .9687 33.91l100.1 94.56h-163.4C287.5 134.2 249.7 151 221 179.4C192 208.2 176 246.7 176 288v87.1c0 13.25 10.75 23.1 24 23.1S224 389.3 224 376V288c0-28.37 10.94-54.84 30.78-74.5C274.3 194.2 298.9 183 328 184h163.6l-100.1 94.56c-9.656 9.094-10.09 24.28-.9687 33.91c4.719 4.1 11.06 7.531 17.44 7.531c5.906 0 11.84-2.156 16.47-6.562l144-135.1C573.3 172.9 576 166.6 576 160S573.3 147.1 568.5 142.6zM360 384c-13.25 0-24 10.75-24 23.1v47.1c0 4.406-3.594 7.1-8 7.1h-272c-4.406 0-8-3.594-8-7.1V184c0-4.406 3.594-7.1 8-7.1H112c13.25 0 24-10.75 24-23.1s-10.75-23.1-24-23.1H56c-30.88 0-56 25.12-56 55.1v271.1C0 486.9 25.13 512 56 512h272c30.88 0 56-25.12 56-55.1v-47.1C384 394.8 373.3 384 360 384z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM255.1 176C255.1 176 255.1 176 255.1 176c21.06 0 40.92 8.312 55.83 23.38c9.375 9.344 24.53 9.5 33.97 .1562c9.406-9.344 9.469-24.53 .1562-33.97c-24-24.22-55.95-37.56-89.95-37.56c0 0 .0313 0 0 0c-33.97 0-65.95 13.34-89.95 37.56c-49.44 49.88-49.44 131 0 180.9c24 24.22 55.98 37.56 89.95 37.56c.0313 0 0 0 0 0c34 0 65.95-13.34 89.95-37.56c9.312-9.438 9.25-24.62-.1562-33.97c-9.438-9.312-24.59-9.219-33.97 .1562c-14.91 15.06-34.77 23.38-55.83 23.38c0 0 .0313 0 0 0c-21.09 0-40.95-8.312-55.89-23.38c-30.94-31.22-30.94-82.03 0-113.3C214.2 184.3 234 176 255.1 176z\"]\n};\nvar faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M565.6 36.24C572.1 40.72 576 48.11 576 56V392C576 401.1 569.8 410.9 560.5 414.4L392.5 478.4C387.4 480.4 381.7 480.5 376.4 478.8L192.5 417.5L32.54 478.4C25.17 481.2 16.88 480.2 10.38 475.8C3.882 471.3 0 463.9 0 456V120C0 110 6.15 101.1 15.46 97.57L183.5 33.57C188.6 31.6 194.3 31.48 199.6 33.23L383.5 94.52L543.5 33.57C550.8 30.76 559.1 31.76 565.6 36.24H565.6zM48 421.2L168 375.5V90.83L48 136.5V421.2zM360 137.3L216 89.3V374.7L360 422.7V137.3zM408 421.2L528 375.5V90.83L408 136.5V421.2z\"]\n};\nvar faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M183.6 118.6C206.5 82.58 244.1 56.84 288 49.88V32C288 14.33 302.3 .0003 320 .0003C337.7 .0003 352 14.33 352 32V49.88C424.5 61.39 480 124.2 480 200V233.4C480 278.8 495.5 322.9 523.8 358.4L538.7 377C543.1 383.5 545.4 392.2 542.6 400L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L183.6 118.6zM221.7 148.4L450.7 327.1C438.4 298.2 432 266.1 432 233.4V200C432 142.6 385.4 96 328 96H312C273.3 96 239.6 117.1 221.7 148.4V148.4zM160 233.4V222.1L206.7 258.9C202.7 297.7 189.5 335.2 168.3 368H345.2L406.2 416H120C110.8 416 102.4 410.7 98.37 402.4C94.37 394.1 95.5 384.2 101.3 377L116.2 358.4C144.5 322.9 160 278.8 160 233.4V233.4zM384 448C384 464.1 377.3 481.3 365.3 493.3C353.3 505.3 336.1 512 320 512C303 512 286.7 505.3 274.7 493.3C262.7 481.3 256 464.1 256 448H384z\"]\n};\nvar faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M512 331.8V424c0 13.25-10.75 24-24 24c-13.25 0-24-10.75-24-24v-92.17c0-10.09-3.031-19.8-8.766-28.08l-118.6-170.5C327.4 119.1 312.2 112 295.1 112H53.32c-2.5 0-5.25 2.453-5.313 4.172c-.2969 9.5 3.156 18.47 9.75 25.28C64.36 148.3 73.2 152 82.67 152h161.8c17.09 0 33.4 8.281 43.4 22.14c9.984 13.88 12.73 31.83 7.328 48.05l-9.781 29.34C278.2 273.3 257.8 288 234.9 288H138.7C129.2 288 120.4 291.8 113.8 298.5c-6.594 6.812-10.05 15.78-9.75 25.28C104.1 325.5 106.8 328 109.3 328h156.6c5.188 0 10.14 1.688 14.3 4.797l78.22 58.67c6.031 4.531 9.594 11.66 9.594 19.2L367.1 424c0 13.25-10.75 24-24 24s-24-10.75-24-24v-1.328L257.8 376H109.3c-28.48 0-52.39-22.72-53.28-50.64c-.7187-22.61 7.531-43.98 23.23-60.2C94.1 248.9 116.1 240 138.7 240h96.19c2.297 0 4.328-1.469 5.063-3.656l9.781-29.33c.7031-2.141-.0156-3.797-.7344-4.797C248.2 201.2 246.9 200 244.6 200H82.67c-22.58 0-43.67-8.938-59.39-25.16C7.575 158.6-.6755 137.3 .0433 114.6C.9339 86.72 24.84 64 53.32 64h242.7c31.94 0 61.86 15.67 80.05 41.92l118.6 170.5C506 292.8 512 311.9 512 331.8z\"]\n};\nvar faFaceSmile = {\n prefix: 'far',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faSmile = faFaceSmile;\nvar faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M412 160c-8.326 0-16.3 1.51-23.68 4.27C375.1 151.8 358.9 144 340 144c-11.64 0-22.44 3.223-32.03 8.418l11.12-68.95c.6228-3.874 .9243-7.725 .9243-11.53c0-36.08-28.91-71.95-72.09-71.95c-34.68 0-65.31 25.16-71.03 60.54L173.4 82.22L168.9 72.77c-12.4-25.75-38.07-40.78-64.89-40.78c-40.8 0-72.01 33.28-72.01 72.07c0 10.48 2.296 21.11 7.144 31.18L89.05 238.9C64.64 250.4 48 275.7 48 303.1v80c0 22.06 10.4 43.32 27.83 56.86l45.95 35.74c29.35 22.83 65.98 35.41 103.2 35.41l78.81 .0352C400.9 512 480 432.1 480 335.8v-107.5C480 189.6 447.9 160 412 160zM320 212.3C320 201.1 328.1 192 340 192c11.02 0 20 9.078 20 20.25v55.5C360 278.9 351 288 340 288C328.1 288 320 278.9 320 267.8V212.3zM247.9 47.98c12.05 0 24.13 9.511 24.13 23.98c0 1.277-.1022 2.57-.3134 3.871L248.4 220.5C240.7 217.6 232.4 215.1 223.9 215.1c0 0 .002 0 0 0c-4.475 0-8.967 .4199-13.38 1.254l-10.55 1.627l24.32-150.7C226.2 56.42 236.4 47.98 247.9 47.98zM79.1 104c0-13.27 10.79-24.04 24.02-24.04c8.937 0 17.5 5.023 21.61 13.61l61.29 127.3L137.3 228.5L82.38 114.4C80.76 111.1 79.1 107.5 79.1 104zM303.8 464l-78.81-.0352c-26.56 0-52.72-8.984-73.69-25.3l-45.97-35.75C99.47 398.4 96 391.3 96 383.1v-80c0-11.23 7.969-21.11 17.59-23.22l105.3-16.23C220.6 264.2 222.3 263.1 223.9 263.1c11.91 0 24.09 9.521 24.09 24.06c0 11.04-7.513 20.95-17.17 23.09L172.8 319c-12.03 1.633-20.78 11.92-20.78 23.75c0 20.21 18.82 24.08 23.7 24.08c2.645 0 64.61-8.619 65.54-8.826c23.55-5.227 41.51-22.23 49.73-43.64C303.3 327.5 320.6 336 340 336c8.326 0 16.31-1.51 23.69-4.27C376 344.2 393.1 352 412 352c.1992 0 10.08-.4453 18.65-2.92C423.9 413.5 369.9 464 303.8 464zM432 283.8C432 294.9 423 304 412 304c-11.02 0-20-9.078-20-20.25v-55.5C392 217.1 400.1 208 412 208c11.02 0 20 9.078 20 20.25V283.8z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'far',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM238.9 177.1L221.4 243C219.1 251.6 210.4 256.6 201.8 254.3L136.7 236.9C118.9 232.1 108.4 213.8 113.1 196.1C117.9 178.3 136.2 167.7 153.1 172.5L170.1 176.8L174.4 160.7C179.2 142.9 197.5 132.4 215.3 137.1C233.1 141.9 243.6 160.2 238.9 177.1H238.9zM341.9 176.8L358 172.5C375.8 167.7 394.1 178.3 398.9 196.1C403.6 213.8 393.1 232.1 375.3 236.9L310.2 254.3C301.6 256.6 292.9 251.6 290.6 243L273.1 177.1C268.4 160.2 278.9 141.9 296.7 137.1C314.5 132.4 332.8 142.9 337.6 160.7L341.9 176.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M88 104C88 95.16 95.16 88 104 88H152C160.8 88 168 95.16 168 104V152C168 160.8 160.8 168 152 168H104C95.16 168 88 160.8 88 152V104zM280 88C288.8 88 296 95.16 296 104V152C296 160.8 288.8 168 280 168H232C223.2 168 216 160.8 216 152V104C216 95.16 223.2 88 232 88H280zM88 232C88 223.2 95.16 216 104 216H152C160.8 216 168 223.2 168 232V280C168 288.8 160.8 296 152 296H104C95.16 296 88 288.8 88 280V232zM280 216C288.8 216 296 223.2 296 232V280C296 288.8 288.8 296 280 296H232C223.2 296 216 288.8 216 280V232C216 223.2 223.2 216 232 216H280zM0 64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM48 64V448C48 456.8 55.16 464 64 464H144V400C144 373.5 165.5 352 192 352C218.5 352 240 373.5 240 400V464H320C328.8 464 336 456.8 336 448V64C336 55.16 328.8 48 320 48H64C55.16 48 48 55.16 48 64z\"]\n};\nvar faFaceGrinBeamSweat = {\n prefix: 'far',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M464 128C437.5 128 416 107 416 81.01C416 76.01 417.8 69.74 420.6 62.87C420.9 62.17 421.2 61.46 421.6 60.74C430.5 40.51 448.1 15.86 457.6 3.281C460.8-1.094 467.2-1.094 470.4 3.281C483.4 20.65 512 61.02 512 81.01C512 102.7 497.1 120.8 476.8 126.3C472.7 127.4 468.4 128 464 128L464 128zM391.1 50.53C387.8 58.57 384 69.57 384 81.01C384 84.1 384.3 88.91 384.9 92.72C349.4 64.71 304.7 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 219.7 454.7 185.5 438.3 155.8C446.4 158.5 455.1 160 464 160C473.6 160 482.8 158.3 491.4 155.2C504.7 186.2 512 220.2 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 .0002 256 .0002C307.4 .0002 355.3 15.15 395.4 41.23C393.9 44.32 392.4 47.43 391.1 50.53V50.53zM255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.9 255.9 318.9C289 318.9 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1zM217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 119.1 227.4 119.1 224C119.1 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 175.1 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 231.1 206.1 231.1 224C231.1 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8L217.6 228.8zM377.6 228.8L377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8V228.8z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [512, 512, [127769, 9214], \"f186\", \"M421.6 379.9c-.6641 0-1.35 .0625-2.049 .1953c-11.24 2.143-22.37 3.17-33.32 3.17c-94.81 0-174.1-77.14-174.1-175.5c0-63.19 33.79-121.3 88.73-152.6c8.467-4.812 6.339-17.66-3.279-19.44c-11.2-2.078-29.53-3.746-40.9-3.746C132.3 31.1 32 132.2 32 256c0 123.6 100.1 224 223.8 224c69.04 0 132.1-31.45 173.8-82.93C435.3 389.1 429.1 379.9 421.6 379.9zM255.8 432C158.9 432 80 353 80 256c0-76.32 48.77-141.4 116.7-165.8C175.2 125 163.2 165.6 163.2 207.8c0 99.44 65.13 183.9 154.9 212.8C298.5 428.1 277.4 432 255.8 432z\"]\n};\nvar faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z\"]\n};\nvar faFaceGrinTongueWink = {\n prefix: 'far',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.9 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM312.4 208C312.4 194.7 323.1 184 336.4 184C349.6 184 360.4 194.7 360.4 208C360.4 221.3 349.6 232 336.4 232C323.1 232 312.4 221.3 312.4 208zM256 208C256 163.8 291.8 128 336 128C380.2 128 416 163.8 416 208C416 252.2 380.2 288 336 288C291.8 288 256 252.2 256 208zM336 256C362.5 256 384 234.5 384 208C384 181.5 362.5 160 336 160C309.5 160 288 181.5 288 208C288 234.5 309.5 256 336 256zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4H348.3zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M64 464H288C296.8 464 304 456.8 304 448V384H352V448C352 483.3 323.3 512 288 512H64C28.65 512 0 483.3 0 448V224C0 188.7 28.65 160 64 160H128V208H64C55.16 208 48 215.2 48 224V448C48 456.8 55.16 464 64 464zM160 64C160 28.65 188.7 0 224 0H448C483.3 0 512 28.65 512 64V288C512 323.3 483.3 352 448 352H224C188.7 352 160 323.3 160 288V64zM224 304H448C456.8 304 464 296.8 464 288V64C464 55.16 456.8 48 448 48H224C215.2 48 208 55.16 208 64V288C208 296.8 215.2 304 224 304z\"]\n};\nvar faFaceAngry = {\n prefix: 'far',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M328.4 393.5C318.7 402.6 303.5 402.1 294.5 392.4C287.1 384.5 274.4 376 256 376C237.6 376 224.9 384.5 217.5 392.4C208.5 402.1 193.3 402.6 183.6 393.5C173.9 384.5 173.4 369.3 182.5 359.6C196.7 344.3 221.4 328 256 328C290.6 328 315.3 344.3 329.5 359.6C338.6 369.3 338.1 384.5 328.4 393.5zM144.4 240C144.4 231.2 147.9 223.2 153.7 217.4L122.9 207.2C114.6 204.4 110 195.3 112.8 186.9C115.6 178.6 124.7 174 133.1 176.8L229.1 208.8C237.4 211.6 241.1 220.7 239.2 229.1C236.4 237.4 227.3 241.1 218.9 239.2L208.1 235.6C208.3 237 208.4 238.5 208.4 240C208.4 257.7 194 272 176.4 272C158.7 272 144.4 257.7 144.4 240V240zM368.4 240C368.4 257.7 354 272 336.4 272C318.7 272 304.4 257.7 304.4 240C304.4 238.4 304.5 236.8 304.7 235.3L293.1 239.2C284.7 241.1 275.6 237.4 272.8 229.1C270 220.7 274.6 211.6 282.9 208.8L378.9 176.8C387.3 174 396.4 178.6 399.2 186.9C401.1 195.3 397.4 204.4 389.1 207.2L358.9 217.2C364.7 223 368.4 231.1 368.4 240H368.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z\"]\n};\nvar faAngry = faFaceAngry;\nvar faRectangleXmark = {\n prefix: 'far',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM0 96C0 60.65 28.65 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V96C464 87.16 456.8 80 448 80H64C55.16 80 48 87.16 48 96z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M501.6 4.186c-7.594-5.156-17.41-5.594-25.44-1.063L12.12 267.1C4.184 271.7-.5037 280.3 .0431 289.4c.5469 9.125 6.234 17.16 14.66 20.69l153.3 64.38v113.5c0 8.781 4.797 16.84 12.5 21.06C184.1 511 188 512 191.1 512c4.516 0 9.038-1.281 12.99-3.812l111.2-71.46l98.56 41.4c2.984 1.25 6.141 1.875 9.297 1.875c4.078 0 8.141-1.031 11.78-3.094c6.453-3.625 10.88-10.06 11.95-17.38l64-432C513.1 18.44 509.1 9.373 501.6 4.186zM369.3 119.2l-187.1 208.9L78.23 284.7L369.3 119.2zM215.1 444v-49.36l46.45 19.51L215.1 444zM404.8 421.9l-176.6-74.19l224.6-249.5L404.8 421.9z\"]\n};\nvar faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M464.1 431C474.3 440.4 474.3 455.6 464.1 464.1C455.6 474.3 440.4 474.3 431 464.1L419.3 453.2C374.9 489.9 318.1 512 256 512C193.9 512 137.1 489.9 92.74 453.2L80.97 464.1C71.6 474.3 56.4 474.3 47.03 464.1C37.66 455.6 37.66 440.4 47.03 431L58.8 419.3C22.08 374.9 0 318.1 0 256C0 193.9 22.08 137.1 58.8 92.74L47.03 80.97C37.66 71.6 37.66 56.4 47.03 47.03C56.4 37.66 71.6 37.66 80.97 47.03L92.74 58.8C137.1 22.08 193.9 0 256 0C318.1 0 374.9 22.08 419.3 58.8L431 47.03C440.4 37.66 455.6 37.66 464.1 47.03C474.3 56.4 474.3 71.6 464.1 80.97L453.2 92.74C489.9 137.1 512 193.9 512 256C512 318.1 489.9 374.9 453.2 419.3L464.1 431zM304.8 338.7C290.5 347.2 273.8 352 256 352C238.2 352 221.5 347.2 207.2 338.7L126.9 419.1C162.3 447.2 207.2 464 256 464C304.8 464 349.7 447.2 385.1 419.1L304.8 338.7zM464 256C464 207.2 447.2 162.3 419.1 126.9L338.7 207.2C347.2 221.5 352 238.2 352 256C352 273.8 347.2 290.5 338.7 304.8L419.1 385.1C447.2 349.7 464 304.8 464 256V256zM256 48C207.2 48 162.3 64.8 126.9 92.93L207.2 173.3C221.5 164.8 238.2 160 256 160C273.8 160 290.5 164.8 304.8 173.3L385.1 92.93C349.7 64.8 304.8 48 256 48V48zM173.3 304.8C164.8 290.5 160 273.8 160 256C160 238.2 164.8 221.5 173.3 207.2L92.93 126.9C64.8 162.3 48 207.2 48 256C48 304.8 64.8 349.7 92.93 385.1L173.3 304.8zM256 208C229.5 208 208 229.5 208 256C208 282.5 229.5 304 256 304C282.5 304 304 282.5 304 256C304 229.5 282.5 208 256 208z\"]\n};\nvar faFaceGrimace = {\n prefix: 'far',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M344 288C374.9 288 400 313.1 400 344C400 374.9 374.9 400 344 400H168C137.1 400 112 374.9 112 344C112 313.1 137.1 288 168 288H344zM168 320C154.7 320 144 330.7 144 344C144 357.3 154.7 368 168 368H176V320H168zM208 368H240V320H208V368zM304 320H272V368H304V320zM336 368H344C357.3 368 368 357.3 368 344C368 330.7 357.3 320 344 320H336V368zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M152 352C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H152zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\"]\n};\nvar faCircleXmark = {\n prefix: 'far',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M96 191.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64c17.67 0 32-14.33 32-31.1V223.1C128 206.3 113.7 191.1 96 191.1zM512 227c0-36.89-30.05-66.92-66.97-66.92h-99.86C354.7 135.1 360 113.5 360 100.8c0-33.8-26.2-68.78-70.06-68.78c-46.61 0-59.36 32.44-69.61 58.5c-31.66 80.5-60.33 66.39-60.33 93.47c0 12.84 10.36 23.99 24.02 23.99c5.256 0 10.55-1.721 14.97-5.26c76.76-61.37 57.97-122.7 90.95-122.7c16.08 0 22.06 12.75 22.06 20.79c0 7.404-7.594 39.55-25.55 71.59c-2.046 3.646-3.066 7.686-3.066 11.72c0 13.92 11.43 23.1 24 23.1h137.6C455.5 208.1 464 216.6 464 227c0 9.809-7.766 18.03-17.67 18.71c-12.66 .8593-22.36 11.4-22.36 23.94c0 15.47 11.39 15.95 11.39 28.91c0 25.37-35.03 12.34-35.03 42.15c0 11.22 6.392 13.03 6.392 22.25c0 22.66-29.77 13.76-29.77 40.64c0 4.515 1.11 5.961 1.11 9.456c0 10.45-8.516 18.95-18.97 18.95h-52.53c-25.62 0-51.02-8.466-71.5-23.81l-36.66-27.51c-4.315-3.245-9.37-4.811-14.38-4.811c-13.85 0-24.03 11.38-24.03 24.04c0 7.287 3.312 14.42 9.596 19.13l36.67 27.52C235 468.1 270.6 480 306.6 480h52.53c35.33 0 64.36-27.49 66.8-62.2c17.77-12.23 28.83-32.51 28.83-54.83c0-3.046-.2187-6.107-.6406-9.122c17.84-12.15 29.28-32.58 29.28-55.28c0-5.311-.6406-10.54-1.875-15.64C499.9 270.1 512 250.2 512 227z\"]\n};\nvar faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M0 456C0 442.7 10.75 432 24 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H24C10.75 480 0 469.3 0 456z\"]\n};\nvar faSquareFull = {\n prefix: 'far',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M512 0V512H0V0H512zM464 48H48V464H464V48z\"]\n};\nvar faNoteSticky = {\n prefix: 'far',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M384 32H64.01C28.66 32 .0085 60.65 .0065 96L0 415.1C-.002 451.3 28.65 480 64 480h232.1c25.46 0 49.88-10.12 67.89-28.12l55.88-55.89C437.9 377.1 448 353.6 448 328.1V96C448 60.8 419.2 32 384 32zM52.69 427.3C50.94 425.6 48 421.8 48 416l.0195-319.1C48.02 87.18 55.2 80 64.02 80H384c8.674 0 16 7.328 16 16v192h-88C281.1 288 256 313.1 256 344v88H64C58.23 432 54.44 429.1 52.69 427.3zM330.1 417.9C322.9 425.1 313.8 429.6 304 431.2V344c0-4.406 3.594-8 8-8h87.23c-1.617 9.812-6.115 18.88-13.29 26.05L330.1 417.9z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faFaceSadTear = {\n prefix: 'far',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M169.6 291.3C172.8 286.9 179.2 286.9 182.4 291.3C195.6 308.6 223.1 349 223.1 369C223.1 395 202.5 416 175.1 416C149.5 416 127.1 395 127.1 369C127.1 349 156.6 308.6 169.6 291.3H169.6zM368 346.8C377.9 355.6 378.7 370.8 369.9 380.7C361 390.6 345.9 391.4 335.1 382.6C314.7 363.5 286.7 352 256 352C242.7 352 232 341.3 232 328C232 314.7 242.7 304 256 304C299 304 338.3 320.2 368 346.8L368 346.8zM335.6 176C353.3 176 367.6 190.3 367.6 208C367.6 225.7 353.3 240 335.6 240C317.1 240 303.6 225.7 303.6 208C303.6 190.3 317.1 176 335.6 176zM175.6 240C157.1 240 143.6 225.7 143.6 208C143.6 190.3 157.1 176 175.6 176C193.3 176 207.6 190.3 207.6 208C207.6 225.7 193.3 240 175.6 240zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM175.9 448C200.5 458.3 227.6 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 308.7 67.59 356.8 99.88 393.4C110.4 425.4 140.9 447.9 175.9 448V448z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M264 480h104c79.4 0 144-62.95 144-140.3V231.8c0-23.44-6.104-46.73-17.65-67.35L462.1 108.6C447.5 81.1 417.1 64 385.9 64H336c-27.23 0-51.53 12.51-67.69 32H72C32.3 96 0 128.3 0 168S32.3 240 72 240h56.44C128.1 242.6 128 245.3 128 248c0 25.95 13.79 48.73 34.43 61.4C160.8 315.3 160 321.6 160 328c0 25.95 13.79 48.73 34.43 61.4C192.8 395.3 192 401.6 192 408C192 447.7 224.3 480 264 480zM280 304c13.23 0 24 10.78 24 24S293.1 352 279.9 352H232c-13.23 0-24-10.78-24-24S218.8 304 232 304H280zM248 224v12c0 12.39 3.264 23.93 8.545 34.27C253.9 271.3 251 272 248 272h-48C186.8 272 176 261.2 176 248S186.8 224 200 224H248zM248 144c.2813 0 .5137 .1504 .793 .1602C248.6 146.8 248 149.3 248 152V192h-176C58.77 192 48 181.2 48 168S58.77 144 72 144H248zM388.2 429.9C390.4 422.9 392 415.7 392 408c0-29.04-17.37-53.96-42.18-65.34C350.8 337.8 352 333 352 328c0-7.139-1.273-13.96-3.355-20.46C378.4 297.2 400 269.2 400 236V184C400 170.8 389.3 160 376 160S352 170.8 352 184v52c0 15.44-12.56 28-28 28S296 251.4 296 236V152c0-22.06 17.94-40 40-40h49.88c14.77 0 28.28 7.719 35.27 20.16l31.34 55.78C460 201.4 464 216.6 464 231.8v107.9C464 383.9 431.4 420.9 388.2 429.9zM264 432c-13.23 0-24-10.78-24-24S250.8 384 264 384H320c13.23 0 24 10.78 24 24S333.2 432 320 432H264z\"]\n};\nvar icons = {\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faHandPointRight: faHandPointRight,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faComments: faComments,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faCompass: faCompass,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faLightbulb: faLightbulb,\n faFlag: faFlag,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faEyeSlash: faEyeSlash,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faHandSpock: faHandSpock,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faChessBishop: faChessBishop,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faHandPointUp: faHandPointUp,\n faBookmark: faBookmark,\n faHandPointDown: faHandPointDown,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faUser: faUser,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faStar: faStar,\n faChessKnight: faChessKnight,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faFolderOpen: faFolderOpen,\n faClipboard: faClipboard,\n faChessQueen: faChessQueen,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faWindowRestore: faWindowRestore,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faImage: faImage,\n faFolderClosed: faFolderClosed,\n faLemon: faLemon,\n faHandshake: faHandshake,\n faGem: faGem,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faIdBadge: faIdBadge,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faRegistered: faRegistered,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFileWord: faFileWord,\n faFilePowerpoint: faFilePowerpoint,\n faEnvelopeOpen: faEnvelopeOpen,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faSquare: faSquare,\n faSnowflake: faSnowflake,\n faNewspaper: faNewspaper,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faFileExcel: faFileExcel,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faObjectUngroup: faObjectUngroup,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faObjectGroup: faObjectGroup,\n faHeart: faHeart,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faCircle: faCircle,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faFileAudio: faFileAudio,\n faFileImage: faFileImage,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faEye: faEye,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faFileCode: faFileCode,\n faWindowMaximize: faWindowMaximize,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faHandPointer: faHandPointer,\n faHandScissors: faHandScissors,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faFileVideo: faFileVideo,\n faFilePdf: faFilePdf,\n faComment: faComment,\n faEnvelope: faEnvelope,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faCalendarCheck: faCalendarCheck,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faCalendarPlus: faCalendarPlus,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faClock: faClock,\n faClockFour: faClockFour,\n faKeyboard: faKeyboard,\n faClosedCaptioning: faClosedCaptioning,\n faImages: faImages,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faSun: faSun,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faThumbsDown: faThumbsDown,\n faChessPawn: faChessPawn,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faBell: faBell,\n faFile: faFile,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faChessRook: faChessRook,\n faStarHalf: faStarHalf,\n faChessKing: faChessKing,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faCopy: faCopy,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faCopyright: faCopyright,\n faMap: faMap,\n faBellSlash: faBellSlash,\n faHandLizard: faHandLizard,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faHandPeace: faHandPeace,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faBuilding: faBuilding,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faMoon: faMoon,\n faCalendar: faCalendar,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faClone: faClone,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faPaperPlane: faPaperPlane,\n faLifeRing: faLifeRing,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faCalendarMinus: faCalendarMinus,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faThumbsUp: faThumbsUp,\n faWindowMinimize: faWindowMinimize,\n faSquareFull: faSquareFull,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faHandPointLeft: faHandPointLeft\n};\n\nexport { icons as far, prefix, faTrashCan, faTrashAlt, faMessage, faCommentAlt, faFileLines, faFileAlt, faFileText, faCalendarDays, faCalendarAlt, faHandPointRight, faFaceSmileBeam, faSmileBeam, faFaceGrinStars, faGrinStars, faAddressBook, faContactBook, faComments, faPaste, faFileClipboard, faFaceGrinTongueSquint, faGrinTongueSquint, faFaceFlushed, faFlushed, faSquareCaretRight, faCaretSquareRight, faSquareMinus, faMinusSquare, faCompass, faSquareCaretDown, faCaretSquareDown, faFaceKissBeam, faKissBeam, faLightbulb, faFlag, faSquareCheck, faCheckSquare, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faFutbol, faFutbolBall, faSoccerBall, faPenToSquare, faEdit, faHourglassHalf, faHourglass2, faEyeSlash, faHand, faHandPaper, faHandSpock, faFaceKiss, faKiss, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faFaceGrinWide, faGrinAlt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faBookmark, faHandPointDown, faFolder, faFolderBlank, faUser, faSquareCaretLeft, faCaretSquareLeft, faStar, faChessKnight, faFaceLaughSquint, faLaughSquint, faFaceLaugh, faLaugh, faFolderOpen, faClipboard, faChessQueen, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faChartBar, faBarChart, faWindowRestore, faSquarePlus, faPlusSquare, faImage, faFolderClosed, faLemon, faHandshake, faGem, faCirclePlay, faPlayCircle, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faIdBadge, faFaceLaughBeam, faLaughBeam, faRegistered, faAddressCard, faContactCard, faVcard, faFaceTired, faTired, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faEnvelopeOpen, faFileZipper, faFileArchive, faSquare, faSnowflake, faNewspaper, faFaceKissWinkHeart, faKissWinkHeart, faStarHalfStroke, faStarHalfAlt, faFileExcel, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faCircleRight, faArrowAltCircleRight, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faHeart, faFaceSurprise, faSurprise, faCirclePause, faPauseCircle, faCircle, faCircleUp, faArrowAltCircleUp, faFileAudio, faFileImage, faCircleQuestion, faQuestionCircle, faFaceMehBlank, faMehBlank, faEye, faFaceSadCry, faSadCry, faFileCode, faWindowMaximize, faFaceFrown, faFrown, faFloppyDisk, faSave, faCommentDots, faCommenting, faFaceGrinSquint, faGrinSquint, faHandPointer, faHandScissors, faFaceGrinTears, faGrinTears, faCalendarXmark, faCalendarTimes, faFileVideo, faFilePdf, faComment, faEnvelope, faHourglass, faHourglassEmpty, faCalendarCheck, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faRectangleList, faListAlt, faCalendarPlus, faCircleLeft, faArrowAltCircleLeft, faMoneyBill1, faMoneyBillAlt, faClock, faClockFour, faKeyboard, faClosedCaptioning, faImages, faFaceGrin, faGrin, faFaceMeh, faMeh, faIdCard, faDriversLicense, faSun, faFaceLaughWink, faLaughWink, faCircleDown, faArrowAltCircleDown, faThumbsDown, faChessPawn, faCreditCard, faCreditCardAlt, faBell, faFile, faHospital, faHospitalAlt, faHospitalWide, faChessRook, faStarHalf, faChessKing, faCircleUser, faUserCircle, faCopy, faShareFromSquare, faShareSquare, faCopyright, faMap, faBellSlash, faHandLizard, faFaceSmile, faSmile, faHandPeace, faFaceGrinHearts, faGrinHearts, faBuilding, faFaceGrinBeamSweat, faGrinBeamSweat, faMoon, faCalendar, faFaceGrinTongueWink, faGrinTongueWink, faClone, faFaceAngry, faAngry, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faPaperPlane, faLifeRing, faFaceGrimace, faGrimace, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faThumbsUp, faWindowMinimize, faSquareFull, faNoteSticky, faStickyNote, faFaceSadTear, faSadTear, faHandPointLeft };\n","var prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [320, 512, [], \"32\", \"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [448, 512, [], \"33\", \"M64 64c0-17.7 14.3-32 32-32H336c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L226.3 208H248c75.1 0 136 60.9 136 136s-60.9 136-136 136H169.4c-42.4 0-81.2-24-100.2-61.9l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H248c39.8 0 72-32.2 72-72s-32.2-72-72-72H144c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L253.7 96H96C78.3 96 64 81.7 64 64z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [320, 512, [], \"36\", \"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM64 320c0-53 43-96 96-96s96 43 96 96s-43 96-96 96s-96-43-96-96z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [320, 512, [], \"39\", \"M64 192c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"]\n};\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [640, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM384 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H160 32zm470.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [640, 512, [\"user-times\"], \"f235\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faCommentAlt = faMessage;\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M144 80c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M473 7c-9.4-9.4-24.6-9.4-33.9 0l-87 87L313 55c-6.9-6.9-17.2-8.9-26.2-5.2S272 62.3 272 72V216c0 13.3 10.7 24 24 24H440c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-39-39 87-87c9.4-9.4 9.4-24.6 0-33.9L473 7zM216 272H72c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39L7 439c-9.4 9.4-9.4 24.6 0 33.9l32 32c9.4 9.4 24.6 9.4 33.9 0l87-87 39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V296c0-13.3-10.7-24-24-24z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [576, 512, [], \"e4e9\", \"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z\"]\n};\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z\"]\n};\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [384, 512, [], \"e4d9\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [640, 512, [], \"e4d1\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM492.7 300.7c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [640, 512, [], \"e4c2\", \"M64 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C46.3 32 32 46.3 32 64s14.3 32 32 32zM41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 237.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L448 237.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [\"sort-desc\"], \"f0dd\", \"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"]\n};\nvar faSortDesc = faSortDown;\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [576, 512, [], \"f52b\", \"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480v32h32 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z\"]\n};\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96C43 32 0 75 0 128V384c0 53 43 96 96 96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32h64zM504.5 273.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32H320v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [9883], \"f5d2\", \"M258.9 412.3c-16.7 33.8-31 35.7-34.9 35.7s-18.1-1.9-34.9-35.7c11.4-3.9 23.1-8.4 34.9-13.5c11.8 5.1 23.4 9.7 34.9 13.5zM252.8 312c-9.7 5.8-19.3 11.2-28.8 16c-9.4-4.8-19-10.2-28.8-16c-12.1-7.3-23.6-14.8-34.2-22.4c-.7-10.8-1-22-1-33.6s.4-22.7 1-33.6c10.6-7.6 22.1-15.1 34.2-22.4c9.7-5.8 19.3-11.2 28.8-16c9.4 4.8 19 10.2 28.8 16c12.1 7.3 23.6 14.8 34.2 22.4c.7 10.8 1 22 1 33.6s-.4 22.7-1 33.6c-10.6 7.6-22.1 15.1-34.2 22.4zm184.8 72c20.7-37.1 9.4-82.8-23.6-128c33-45.2 44.3-90.9 23.6-128c-20.2-36.3-62.5-49.3-115.2-43.2C300.4 32.7 266.8 0 224 0s-76.4 32.7-98.4 84.8c-52.7-6.1-95 6.8-115.2 43.2C-10.3 165.1 1 210.8 34 256C1 301.2-10.3 346.9 10.4 384c20.2 36.3 62.5 49.3 115.2 43.2c22 52.1 55.7 84.8 98.4 84.8s76.4-32.7 98.4-84.8c52.7 6.1 95-6.8 115.2-43.2zm-67.8-79.2c18.9 30.2 14.2 44 11.9 48.1c-1.6 2.9-8.4 13-40.2 11.7c2.8-13.1 5-26.9 6.7-41.2c7.6-6.1 14.8-12.3 21.6-18.6zm11.9-145.7c2.3 4.2 7 17.9-11.9 48.1c-6.8-6.3-14-12.5-21.6-18.6c-1.7-14.3-3.9-28-6.7-41.2c31.8-1.4 38.6 8.7 40.2 11.7zM224 64c3.9 0 18.1 1.9 34.9 35.7c-11.4 3.9-23.1 8.4-34.9 13.5c-11.8-5.1-23.4-9.7-34.9-13.5C205.9 65.9 220.1 64 224 64zM106.5 147.5c-2.8 13.1-5 26.9-6.7 41.2c-7.6 6.1-14.8 12.3-21.6 18.6C59.4 177 64 163.3 66.3 159.1c1.6-2.9 8.4-13 40.2-11.7zM66.3 352.9c-2.3-4.2-7-17.9 11.9-48.1c6.8 6.3 14 12.5 21.6 18.6c1.7 14.2 3.9 28 6.7 41.2c-31.8 1.4-38.6-8.7-40.2-11.7zM224 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM416 32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [576, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M532.3 7.3C539.7 13.3 544 22.4 544 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L384 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM106.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L245.3 304H272c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48h26.7zM224 408c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM510.7 278.3L472.3 368H528c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L423.7 400H368c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L51.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [640, 512, [\"microphone-alt-slash\"], \"f539\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [640, 512, [], \"e4c9\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [448, 512, [], \"e06a\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256C48 141.1 141.1 48 256 48c69.3 0 130.6 33.8 168.5 86c7.8 10.7 22.8 13.1 33.5 5.3s13.1-22.8 5.3-33.5C416.8 41.7 341.3 0 256 0C114.6 0 0 114.6 0 256v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8c0-18.1-1.9-35.8-5.5-52.9zM222.1 128.2c10.8-2.9 22.1-4.4 33.9-4.4c73 0 132.2 59.2 132.2 132.2c0 31.1-1.9 62.4-3.9 86c-1 11.8-2 21.6-2.7 28.4c-.4 3.4-.7 6.1-.9 7.9l-.2 2-.1 .5 0 .1 0 0 0 0c-1.6 13.2 7.7 25.1 20.8 26.8s25.1-7.7 26.8-20.8l-23.8-3c23.8 3 23.8 3 23.8 3l0 0 0 0 0 0 0-.2 .1-.6 .3-2.2c.2-1.9 .5-4.8 .9-8.3c.8-7.2 1.8-17.4 2.8-29.6c2-24.4 4.1-57.1 4.1-90c0-99.5-80.7-180.2-180.2-180.2c-15.9 0-31.4 2.1-46.2 6c-12.8 3.4-20.5 16.5-17.1 29.3s16.5 20.5 29.3 17.1zm-74.5 52.1c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9C87.9 182 75.8 217.6 75.8 256c0 30.1-3.8 58.6-7.6 79.7c-1.9 10.5-3.8 19.1-5.2 24.9c-.7 2.9-1.3 5.2-1.7 6.7c-.2 .7-.3 1.3-.4 1.6l-.1 .4 0 .1 0 0c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L83.8 376c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 0-.2 .2-.6c.1-.5 .3-1.2 .6-2.1c.5-1.8 1.2-4.4 1.9-7.7c1.6-6.6 3.7-16.1 5.8-27.6c4.2-22.9 8.4-54.4 8.4-88.3c0-28.2 8.8-54.3 23.8-75.7zM256 200c30.9 0 56 25.1 56 56c0 47.1-2.7 86.3-5.5 113.6c-1.4 13.7-2.7 24.3-3.7 31.6c-.5 3.6-.9 6.3-1.2 8.1c-.1 .9-.2 1.6-.3 2l-.1 .5 0 .1 0 0 0 0 0 0c-2.3 13.1 6.5 25.5 19.5 27.8s25.5-6.4 27.8-19.5L324.8 416c23.6 4.1 23.6 4.1 23.6 4.1l0 0 0 0 0-.1 0-.2 .1-.7c.1-.6 .2-1.4 .4-2.4c.3-2.1 .8-5.1 1.3-9c1.1-7.8 2.5-19.1 4-33.4c2.9-28.7 5.7-69.5 5.7-118.4c0-57.4-46.6-104-104-104s-104 46.6-104 104c0 46.7-3.9 83.4-7.7 108.4c-1.9 12.5-3.8 21.9-5.2 28.2c-.7 3.1-1.3 5.5-1.6 6.9c-.2 .7-.3 1.3-.4 1.6l-.1 .3c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L160 408c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 .1-.2 .2-.7c.1-.5 .3-1.3 .6-2.3c.5-2 1.2-4.8 2-8.4c1.6-7.2 3.7-17.8 5.8-31.3c3-19.2 5.9-44.6 7.3-75.3c.6-12.6 .9-26 .9-40.3c0-30.9 25.1-56 56-56zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 45.4-2.6 83.4-6.3 114.5L202 478.3l0 0c-5.3 12.1 .1 26.2 12.2 31.6c12.1 5.4 26.3-.1 31.7-12.2L224 488c21.9 9.7 21.9 9.7 21.9 9.7l0 0 0 0 0-.1 .1-.3 .4-.9c.3-.8 .7-1.8 1.2-3.1c1-2.7 2.4-6.5 4-11.5c3.3-10.1 7.5-24.9 11.7-44.7C271.8 397.3 280 337.6 280 256zM225.7 370.5s0 0 0 0L256 232 225.7 370.5zm0 0c-2.7 22.5-5.9 41.3-9.2 56.6c-3.8 18.2-7.6 31.3-10.3 39.8c-1.4 4.2-2.5 7.3-3.2 9.2c-.4 .9-.6 1.6-.8 2l-.1 .4 23.6-107.9z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm64-64c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h48c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32H160C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64v88c0 22.1-17.9 40-40 40s-40-17.9-40-40V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v56c0 39.8 32.2 72 72 72z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-48 0c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [320, 512, [\"step-forward\"], \"f051\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z\"]\n};\nvar faStepForward = faForwardStep;\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [127937], \"f11e\", \"M32 0C46.3 0 58.4 9.4 62.5 22.3l.1 0-.1 .1 .1 .3 0-.4C89.8 11.5 128.1 0 168 0c38.8 0 74.6 9.1 105.7 17C306 25.2 332.9 32 360 32c26.8 0 52.9-6.8 73-14.1c9.9-3.6 17.9-7.2 23.4-9.8c2.7-1.3 4.8-2.4 6.2-3.1c.7-.4 1.1-.6 1.4-.8l.2-.1c9.9-5.6 22.1-5.6 31.9 .2S512 20.6 512 32V320c0 12.1-6.8 23.2-17.7 28.6L480 320c14.3 28.6 14.3 28.6 14.3 28.6l0 0 0 0-.1 0-.2 .1-.7 .4c-.6 .3-1.5 .7-2.5 1.2c-2.2 1-5.2 2.4-9 4c-7.7 3.3-18.5 7.6-31.5 11.9C424.5 374.9 388.8 384 352 384c-37 0-65.2-9.4-89-17.3l-1-.3c-24-8-43.7-14.4-70-14.4c-27.9 0-64.7 7.2-96.2 15c-12.1 3-23 6-31.8 8.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 72 32C0 14.3 14.3 0 32 0zM64 158.4c17.5-4.9 40.4-10.7 64-15.2V68.8c-15 3.3-29.3 8.1-42 13c-8.5 3.4-16 6.7-22 9.6v67zm0 80v70.8c5.1-1.4 10.6-2.8 16.2-4.2c14.3-3.6 30.8-7.3 47.8-10.4V223.1c21.9-4.2 44.4-7.1 64-7.1c5.6 0 10.9 .2 16 .7v71.9c29.5 2.2 53 10 73.3 16.8l.9 .3c2 .7 3.9 1.3 5.8 1.9v-69-1.4c19 5.9 39.1 10.8 64 10.8c5.3 0 10.7-.2 16-.6v71.9c22-2 43.9-7.6 61.9-13.6c6.8-2.3 12.9-4.6 18.1-6.6V229.2c-20.9 7.5-49.9 15.8-80 18.1v-80c30.1-2.3 59.1-10.6 80-18.1V80.5c-21.6 7.3-49.5 14.3-80 15.4v71.5c-5.3 .4-10.7 .6-16 .6c-24.9 0-45-4.9-64-10.8V86.5c-9.3-2.1-18.3-4.4-27-6.7l-3.1-.8c-17.4-4.4-33.8-8.5-49.9-11.3v69c-5.1-.4-10.4-.7-16-.7c-19.6 0-42.1 3-64 7.1v80c-23.6 4.5-46.5 10.3-64 15.2zM208 136.7v80c24.4 2.1 44.3 8.7 64.2 15.3l0 0c5.2 1.7 10.5 3.5 15.8 5.2v-80c-5.3-1.7-10.6-3.4-15.8-5.2l0 0c-19.9-6.6-39.8-13.2-64.2-15.3z\"]\n};\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faFootballBall = faFootball;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [448, 512, [\"angle-double-down\"], \"f103\", \"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [640, 512, [], \"e594\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [640, 512, [], \"e537\", \"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 240c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zM144 336c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm392-40c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [640, 512, [], \"e534\", \"M360 72c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM144 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [512, 512, [\"beer\"], \"f0fc\", \"M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [512, 512, [], \"e477\", \"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [384, 512, [\"long-arrow-up\"], \"f176\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [320, 512, [129485, \"male\"], \"f183\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z\"]\n};\nvar faMale = faPerson;\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 224H96c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H80c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8H96c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H80c-22.1 0-40-17.9-40-40V264c0-22.1 17.9-40 40-40zm72 46.4c0-25.6 20.8-46.4 46.4-46.4H216c8.8 0 16 7.2 16 16s-7.2 16-16 16H198.4c-7.9 0-14.4 6.4-14.4 14.4c0 5.2 2.8 9.9 7.2 12.5l25.4 14.5c14.4 8.3 23.4 23.6 23.4 40.3c0 25.6-20.8 46.4-46.4 46.4H168c-8.8 0-16-7.2-16-16s7.2-16 16-16h25.6c7.9 0 14.4-6.4 14.4-14.4c0-5.2-2.8-9.9-7.2-12.5l-25.4-14.5C160.9 302.4 152 287 152 270.4zM280 240v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V240c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 400c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM384 376c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm0 32c70.7 0 128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM403 336.5c5.1-11.8-6.9-22.4-19.2-18.7C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [512, 512, [], \"f55c\", \"M192 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H334.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H192V208.5zM320 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L398.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C406 314.1 416 347.9 416 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H108.1c-17.3 0-34.2-7.1-43.8-21.5C43.9 460.1 32 423.4 32 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h16H304h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [576, 512, [], \"e4af\", \"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z\"]\n};\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M96 0C78.3 0 64 14.3 64 32V224h96V192c0-35.3 28.7-64 64-64H448V32c0-17.7-14.3-32-32-32H96zM224 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H544c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H224zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM32 256c-17.7 0-32 14.3-32 32v13L155.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L320 301V288c0-17.7-14.3-32-32-32H32zm288 84.8L184 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L0 340.8V480c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V340.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"]\n};\nvar faContactBook = faAddressBook;\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M421.7 220.3l-11.3 11.3-22.6 22.6-205 205c-6.6 6.6-14.8 11.5-23.8 14.1L30.8 511c-8.4 2.5-17.5 .2-23.7-6.1S-1.5 489.7 1 481.2L38.7 353.1c2.6-9 7.5-17.2 14.1-23.8l205-205 22.6-22.6 11.3-11.3 33.9 33.9 62.1 62.1 33.9 33.9zM96 353.9l-9.3 9.3c-.9 .9-1.6 2.1-2 3.4l-25.3 86 86-25.3c1.3-.4 2.5-1.1 3.4-2l9.3-9.3H112c-8.8 0-16-7.2-16-16V353.9zM453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-14.5 14.5-22.6 22.6-11.3 11.3-33.9-33.9-62.1-62.1L314.3 67.7l11.3-11.3 22.6-22.6 14.5-14.5c25-25 65.5-25 90.5 0z\"]\n};\nvar faPencilAlt = faPencil;\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [9194], \"f04a\", \"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V256H416c-17.7 0-32-14.3-32-32V128H320 272zM160 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm256 40v96h96l-96-96z\"]\n};\nvar faFileClipboard = faPaste;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80c0-13.3-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24s24-10.7 24-24zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm328 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M101.5 64C114.6 26.7 150.2 0 192 0s77.4 26.7 90.5 64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h37.5zM224 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM160 368c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM96 392c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64-120c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM96 296c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [640, 512, [\"truck-loading\"], \"f4de\", \"M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [512, 512, [], \"e597\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-24c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm88 32c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 396 61.3 324.1 142.7 307.6l68.5 91.4c6.4 8.5 19.2 8.5 25.6 0l68.5-91.4C386.7 324.1 448 396 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [640, 512, [], \"e539\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [640, 512, [\"torah\"], \"f6a0\", \"M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z\"]\n};\nvar faTorah = faScrollTorah;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [640, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M633.3 12.4c10.8 14 8.3 34.1-5.6 44.9l-144 112-72 56L403 232l28.3 36.3c3.7 4.8 4.4 11.2 1.8 16.7s-8.1 9-14.1 9.1l-48 .9L292.3 194.2l12.5-46.3c1.6-5.9 6.3-10.3 12.3-11.5s12 1.1 15.8 5.8l30.8 39.4 8.7-6.8 72-56 144-112c13.9-10.9 34.1-8.3 44.9 5.6zM269.1 476.3c-55.5 43.4-215 34.2-252.3 31.4c-5.1-.4-9.7-2.9-12.8-7s-4.5-9.1-3.6-14.1c.5-3.2 1.3-7.2 2.2-12.1c3-16.5 10.8-31.6 21.9-44.1l73.5-82.5c3.1-3.5 3.2-8.6 .4-12.3s-7.9-4.7-12-2.6L47.3 353.5c-6.3 3.3-13.4-2.7-11-9.4c14.3-39.9 32.7-76.9 55.5-94.7c57.7-45.1 175.3-35.5 175.3-35.5l78.8 100.9s-19.1 116.4-76.8 161.5zM496 512c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faArchive = faBoxArchive;\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [576, 512, [], \"e545\", \"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [576, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM352 320c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zm93.7-171.1c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM320 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM512 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM480 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.3-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 64H64V384H384V64z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72zm264-72c0-39.8-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72s72-32.2 72-72zm-240 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm192 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [576, 512, [], \"f80d\", \"M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [640, 512, [], \"e57f\", \"M520.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L521.5 72 118.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [\"legal\"], \"f0e3\", \"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"]\n};\nvar faLegal = faGavel;\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [640, 512, [\"people-arrows-left-right\"], \"e068\", \"M192 64c0 35.3-28.7 64-64 64s-64-28.7-64-64S92.7 0 128 0s64 28.7 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM576 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l24 0H376c0 13.3 10.7 24 24 24s24-10.7 24-24H400l24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 320c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM160 112c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM112 448c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCut = faScissors;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 224c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm32-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z\"]\n};\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [576, 512, [], \"e584\", \"M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [640, 512, [\"digital-tachograph\"], \"f566\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [448, 512, [], \"e139\", \"M173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2C205.1 38.5 189.5 32 173.3 32z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"]\n};\nvar faMailReply = faReply;\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [576, 512, [9770], \"f699\", \"M32 256C32 114.6 146.6 0 288 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C352.6 505.7 321 512 288 512C146.6 512 32 397.4 32 256zM407.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L293 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM453.5 163.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 56.7 24.2 76.9C640 437.9 568.7 512 480 512c-89.7 0-160-74.2-160-161.9c0-26.4 12.7-58.6 32.4-90.6c20-32.4 48.1-66.1 81.4-95.8c5.6-5 14.2-5 19.8 0zM530 433c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15z\"]\n};\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [128641], \"f533\", \"M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 304c-10.1 0-19.6-4.7-25.6-12.8L192 256 47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [640, 512, [], \"e533\", \"M184 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zM568 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm8 157.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V176c0-8.8-7.2-16-16-16H160z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [127902], \"f008\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [640, 512, [], \"f547\", \"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"]\n};\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zm32 224c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [576, 512, [\"sign-out\"], \"f08b\", \"M534.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L434.7 224 224 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-53 0-96 43-96 96l0 256c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [448, 512, [\"unlock-alt\"], \"f13e\", \"M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [576, 512, [], \"f740\", \"M128 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C96.7 126.1 96 119.1 96 112C96 50.1 146.1 0 208 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H128zm-14.5 33.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM345.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"]\n};\nvar faHeadphonesSimple = {\n prefix: 'fas',\n iconName: 'headphones-simple',\n icon: [512, 512, [\"headphones-alt\"], \"f58f\", \"M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faHeadphonesAlt = faHeadphonesSimple;\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [576, 512, [], \"f0e8\", \"M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [512, 512, [\"donate\"], \"f4b9\", \"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V304c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V112c0-11.1-9-20.1-20.1-20.1zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [576, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [640, 512, [], \"e4f1\", \"M293.5 3.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C480 280 408.7 352 320 352c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM370 273c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM192 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [127988, 61725], \"f024\", \"M64 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32C0 14.3 14.3 0 32 0S64 14.3 64 32zm40.8 302.8c-3 .9-6 1.7-8.8 2.6V13.5C121.5 6.4 153 0 184 0c36.5 0 68.3 9.1 95.6 16.9l1.3 .4C309.4 25.4 333.3 32 360 32c26.8 0 52.9-6.8 73-14.1c9.9-3.6 17.9-7.2 23.4-9.8c2.7-1.3 4.8-2.4 6.2-3.1c.7-.4 1.1-.6 1.4-.8l.2-.1c9.9-5.6 22.1-5.6 31.9 .2S512 20.6 512 32V288c0 12.1-6.8 23.2-17.7 28.6L480 288c14.3 28.6 14.3 28.6 14.3 28.6l0 0 0 0-.1 0-.2 .1-.7 .4c-.6 .3-1.5 .7-2.5 1.2c-2.2 1-5.2 2.4-9 4c-7.7 3.3-18.5 7.6-31.5 11.9C424.5 342.9 388.8 352 352 352c-37 0-65.2-9.4-89-17.3l-1-.3c-24-8-43.7-14.4-70-14.4c-27.5 0-60.1 7-87.2 14.8z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zM64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104-17.9L82.9 161.3C70.7 185.6 64 212.2 64 240z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M137.9 3c-4.5-3.2-10.3-3.9-15.4-1.8s-8.8 6.7-9.7 12.2L98.7 98.7 13.4 112.8c-5.5 .9-10.1 4.6-12.2 9.7S-.2 133.4 3 137.9l50.3 70.3L3 278.5c-3.2 4.5-3.9 10.3-1.8 15.4s6.7 8.8 12.2 9.7l85.3 14.1L112.8 403c.9 5.5 4.6 10.1 9.7 12.2s10.9 1.4 15.4-1.8l55.2-39.5c-19.9-21.9-32.3-50.8-33.1-82.6c-17.6-10.2-32.2-26.1-40.6-46.3c-20.3-49 3-105.1 52-125.4c29.4-12.2 61.4-8.7 86.7 6.7c13.1-21.8 32.5-39.4 55.8-50.3L303.6 13.4c-.9-5.5-4.6-10.1-9.7-12.2S282.9-.2 278.5 3L208.2 53.3 137.9 3zM291.4 415.9c-2.5 .6-5.1 .6-7.6-.1c1.4 0 2.8 .1 4.2 .1h3.5zm-46.3-260c-17.3-12.2-40.4-15.6-61.5-6.9c-32.7 13.5-48.2 51-34.6 83.6c3.6 8.7 8.9 16.1 15.3 22.2c10.6-39.7 39.9-71.8 77.8-86.4c.8-4.3 1.8-8.4 3-12.5zM277.4 420c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm74.5-116.1c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C433.3 114.6 402.8 96 368 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H559.9c44.2 0 80-35.8 80-80z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [512, 512, [\"wheat-alt\"], \"e2cd\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320 80c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm44.7 84.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [384, 512, [10033, 61545], \"2a\", \"M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [384, 512, [], \"e221\", \"M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M50.8 452.1L19.2 477.4c-2.1 1.7-4.7 2.6-7.4 2.6C5.3 480 0 474.7 0 468.2V192C0 86 86 0 192 0S384 86 384 192V468.2c0 6.5-5.3 11.8-11.8 11.8c-2.7 0-5.3-.9-7.4-2.6l-31.6-25.3c-3.3-2.7-7.5-4.1-11.8-4.1c-5.9 0-11.5 2.8-15 7.5l-37.6 50.1c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4l-38.4-51.2c-3-4-7.8-6.4-12.8-6.4s-9.8 2.4-12.8 6.4l-38.4 51.2c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L77.6 455.5c-3.6-4.7-9.1-7.5-15-7.5c-4.3 0-8.4 1.5-11.7 4.1zM160 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"]\n};\nvar faListSquares = faList;\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H76.1l60.3 316.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H179.9l-9.1-48h317c14.3 0 26.9-9.5 30.8-23.3l54-192C578.3 52.3 563 32 541.8 32H122l-2.4-12.5C117.4 8.2 107.5 0 96 0H24zM176 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm336-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM252 160c0-11 9-20 20-20h44V96c0-11 9-20 20-20s20 9 20 20v44h44c11 0 20 9 20 20s-9 20-20 20H356v44c0 11-9 20-20 20s-20-9-20-20V180H272c-11 0-20-9-20-20z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 248c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm-24 56c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z\"]\n};\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-160c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-96c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 410 0 304C0 192 96 16 192 16s192 176 192 288c0 106-86 192-192 192zM156.5 138l0 0 0 0 0 0c5.5-6.9 4.4-17-2.5-22.5s-17-4.4-22.5 2.5L144 128c-12.5-10-12.5-10-12.5-10l0 0 0 0-.1 .1-.2 .2-.6 .8c-.5 .7-1.3 1.7-2.2 3c-1.9 2.6-4.5 6.3-7.7 11c-6.3 9.4-14.6 23-23 39.7C81.1 206.1 64 252.6 64 304c0 8.8 7.2 16 16 16s16-7.2 16-16c0-44.6 14.9-86.1 30.3-116.8c7.6-15.3 15.3-27.7 21-36.3c2.8-4.3 5.2-7.6 6.8-9.8c.8-1.1 1.4-1.9 1.8-2.4l.4-.6 .1-.1 0 0z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [576, 512, [9978], \"f6bb\", \"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M371.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L600.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S549.7-4.4 531.1 9.6L294.4 187.2c-24 18-38.2 46.1-38.4 76.1L371.3 367.1zm-19.6 25.4l-116-104.4C175.9 290.3 128 339.6 128 400c0 3.9 .2 7.8 .6 11.6c1.8 17.5-10.2 36.4-27.8 36.4H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H240c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [128274], \"f023\", \"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [512, 512, [\"hot-tub\"], \"f593\", \"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128c35.3 0 64-28.7 64-64S99.3 0 64 0S0 28.7 0 64s28.7 64 64 64z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [576, 512, [\"map-marked\"], \"f59f\", \"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [576, 512, [], \"e50e\", \"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"]\n};\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [640, 512, [], \"e4cc\", \"M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84.1 96c0-11.1-9-20.1-20.1-20.1s-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4.1c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0 0 0c-2.2-.8-4.3-1.5-6.3-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V416c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V224z\"]\n};\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.8 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z\"]\n};\nvar faEdit = faPenToSquare;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zm-2.9 207c-6.6 18.6-24.4 32-45.3 32s-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16zM160 432c-20.9 0-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16c-6.6 18.6-24.4 32-45.3 32z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [448, 512, [\"share-alt\"], \"f1e0\", \"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9H112z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M168 32c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32h8c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32h-8c0 17.7-14.3 32-32 32H200c-17.7 0-32-14.3-32-32h-8c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32l8 0zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 96c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm200-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [576, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M304 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM248 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M144 160c-44.2 0-80-35.8-80-80S99.8 0 144 0s80 35.8 80 80s-35.8 80-80 80zm368 0c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM416 224c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z\"]\n};\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z\"]\n};\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z\"]\n};\nvar faHandPaper = faHand;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [128329], \"f679\", \"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5 0-.1c-2.6-7.8-10.7-12.3-18.7-10.5C4.4 354.2-.9 361.8 .1 370L16 368C.1 370 .1 370 .1 370l0 0 0 0 0 .1 .1 .4c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.3 0 0c0 0 0 0 0 0c-1.9-7.3-8.6-12.4-16.2-12.1c-7.6 .3-13.9 5.9-15.1 13.4L336 368c-15.8-2.6-15.8-2.6-15.8-2.6l0 0 0 0 0 .1-.1 .3c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4zM280.9 66.7c-6-4-14-3.5-19.5 1.3s-7 12.7-3.7 19.2L272 80c-14.3 7.2-14.3 7.2-14.3 7.2l0 0 0 0 0 .1 .1 .2 .4 .7c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .2-.2 .1-.1 0 0 0 0c0 0 0 0-22.6-22.6l22.6 22.6c12.5-12.5 12.5-32.8 0-45.3c-12.4-12.4-32.6-12.5-45.1-.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2 0 0 0 0 0 0z\"]\n};\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96h38.4C407.9 0 448 40.1 448 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H320c-53 0-96-43-96-96zm144-8c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [128268], \"f1e6\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [512, 512, [], \"f077\", \"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiss = faFaceKiss;\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [640, 512, [], \"e4cb\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-16c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V416H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64-64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM352 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm64 120c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [640, 512, [], \"e51b\", \"M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z\"]\n};\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"]\n};\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [384, 512, [129463], \"f5c9\", \"M154.1 52.1C137.3 39.1 116.7 32 95.5 32C42.7 32 0 74.7 0 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2L80.4 460.2c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C160.2 323.7 175 312 192 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [448, 512, [118], \"56\", \"M51.7 34.5c16.3-6.8 35 .9 41.8 17.2L224 364.8 354.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7l-160-384c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [384, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M222.6 43.2l-.2 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.3 319.8c22.3-2.1 39.7-20.8 39.7-43.7c0-10-3.4-19.6-9.6-27.4l-42-52.6c-8.3-10.3-12.8-23-15-36.1C398.2 69.3 319.2 0 224 0H201.7C157 0 115.7 14.5 82.2 39.2L38.8 5.1zM0 201.7c0 44.8 18.3 91.5 46.5 127.7C56.9 342.8 64 358.8 64 375.8V480c0 17.7 14.3 32 32 32H256c17.7 0 32-14.3 32-32h64c32.8 0 59.9-24.7 63.6-56.6l-9.4-7.4H352c-17.7 0-32-14.3-32-32c0-10.5 5.1-19.9 12.9-25.7L20.8 112.4C7.5 139.3 0 169.6 0 201.7zM632 288c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm-88 72c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64 48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [640, 512, [128657, \"ambulance\"], \"f0f9\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM112 144c0-8.8 7.2-16 16-16h48V80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240v48c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V192H128c-8.8 0-16-7.2-16-16V144z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [576, 512, [9731, 9924], \"f7d0\", \"M373.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L440 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C428.7 296.9 448 338.2 448 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H213.3c-13.9 0-27.7-4.2-37.5-13.9C146.3 469 128 428.7 128 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3l-73.6-31.5-56-24c-12.2-5.2-17.8-19.3-12.6-31.5s19.3-17.8 31.5-12.6L88 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L184.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C196 127.2 192 112.1 192 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM256 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm48 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm-16 80c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm16 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM320 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [127979], \"f549\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM256 416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H256V416zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM408 176c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88zm-88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [320, 512, [8250], \"f105\", \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 96c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [512, 512, [113], \"51\", \"M96 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C403.9 325.8 416 292.3 416 256c0-88.4-71.6-160-160-160S96 167.6 96 256zM376.9 444.6C342 467 300.5 480 256 480C132.3 480 32 379.7 32 256S132.3 32 256 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32c0 123.7-100.3 224-224 224S0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V200c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM256 288c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [\"poo-bolt\"], \"f75a\", \"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 44.3-35.8 80.1-80 80.1c-1.4 0-2.8 .2-4 .5H128c-35.3 0-64 28.7-64 64c0 12.4 3.5 24 9.7 33.8C31.6 234.3 0 271.5 0 316c0 49.1 38.5 89.2 86.9 91.9c-1.8-2.9-3.4-6.1-4.5-9.4c-6-17.5-.5-36.9 13.6-48.5L238.2 233.6c15.6-12.8 37.9-12.7 53.5 .1s20.3 35.1 11.3 53.4l-26 53.2h16.3c18.1 0 34.3 11.7 40.3 29.2c4.5 13.1 2.6 27.3-4.6 38.4h27c50.8 0 92-41.2 92-92c0-44.5-31.6-81.7-73.7-90.2c6.1-9.8 9.7-21.4 9.7-33.8c0-35.3-28.7-64-64-64h-5.7c3.7-10.2 5.7-21.1 5.7-32.6c0-48.7-36.1-88.9-83.1-95.2zm34.2 259.2c-6-4.6-14.3-4.4-20.1 .4l-133.4 112c-5.2 4.3-7 11.4-4.7 17.7s8.3 10.5 15 10.5h54.7l-42.5 89.1c-3.2 6.8-1.3 14.9 4.7 19.5s14.3 4.4 20.1-.4l133.4-112c5.1-4.3 7-11.4 4.7-17.7s-8.3-10.5-15-10.5H233.3l42.5-89.1c3.2-6.8 1.3-14.9-4.7-19.5z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-186 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [576, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [576, 512, [127958], \"f5ca\", \"M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192s192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 64c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm32-144c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M64 0C28.7 0 0 28.7 0 64V288H112c6.1 0 11.6 3.4 14.3 8.8L144 332.2l49.7-99.4c2.7-5.4 8.2-8.8 14.3-8.8s11.6 3.4 14.3 8.8L249.9 288H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8L208 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L102.1 320H0V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [512, 512, [], \"f7b9\", \"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 304c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [448, 512, [], \"e473\", \"M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [512, 512, [9894], \"f229\", \"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM320 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm-16 80c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM400 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"]\n};\nvar faPenAlt = faPenClip;\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [640, 512, [], \"e4ca\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z\"]\n};\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [640, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zm40-176c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 21 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [128333], \"f69b\", \"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [320, 512, [], \"e548\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm8 256V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [640, 512, [], \"e563\", \"M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [448, 512, [], \"f124\", \"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 384c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [576, 512, [], \"f53a\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z\"]\n};\nvar faAreaChart = faChartArea;\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z\"]\n};\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [576, 512, [], \"e540\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faCancel = faBan;\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [512, 512, [], \"e0d8\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM384 256c0 8.8-7.2 16-16 16H291.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L307 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L185 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C193.4 172.7 224 160 256 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM128 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L205 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L327 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C318.6 403.3 288 416 256 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z\"]\n};\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [512, 512, [\"air-freshener\"], \"f5d0\", \"M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"]\n};\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M176 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S64 114.1 64 176s50.1 112 112 112zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"]\n};\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [320, 512, [\"mouse-pointer\"], \"f245\", \"M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32H24C10.7 32 0 42.7 0 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79L81 335 41 295c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312V456c0 13.3 10.7 24 24 24H168c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H424c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H280c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512c70.7 0 128-57.3 128-128s-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M336 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM141.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L153.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L254 299l30.9-82.4 5.1 12.3C305 264.7 339.9 288 378.7 288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H378.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L73.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM107.2 352H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L173 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L107.2 352z\"]\n};\nvar faRunning = faPersonRunning;\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [320, 512, [], \"e527\", \"M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [128375], \"f717\", \"M190.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L113.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4-80.4-26.8c-2.4-.8-4.3-2.7-5.1-5.1L78.8 128.4C74.6 115.8 61 109 48.4 113.2S29 131 33.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L148.1 256 87.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L33.2 368.4C29 381 35.8 394.6 48.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8-57.4 57.4c-15.6 15.6-20.6 39-12.7 59.7l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L192 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L462.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L427.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L430.4 15.4C425.6 3 411.8-3.2 399.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L368 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C226.6 100.7 208 128.2 208 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352H96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H256h64H448h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1V320v32H256V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8V96 32zm64 448v32H256V480h64v32H448V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H448 320 256 128 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z\"]\n};\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v16H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H112c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v32H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H152c-8.9 0-17 4.9-21.2 12.7s-3.7 17.3 1.2 24.6l32 48C168.5 412 176 416 184 416H328c8 0 15.5-4 20-10.7l32-48c4.9-7.4 5.4-16.8 1.2-24.6S368.9 320 360 320H272V288h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V224H400c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V160h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 384c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm112-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [640, 512, [], \"f891\", \"M144 0c-12.9 0-24.6 7.8-29.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L98.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C168.6 7.8 156.9 0 144 0zm18.7 160H125.3L144 115.2 162.7 160zM288 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H320c-17.7 0-32 14.3-32 32zm96 64H352V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H352V160zM598.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L384 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z\"]\n};\nvar faMouse = faComputerMouse;\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [640, 512, [\"store-alt-slash\"], \"e070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM344 152c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm96-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zM344 408c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm104-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [640, 512, [], \"e4a9\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M192 352V48c0-26.5 21.5-48 48-48H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H192zm16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [512, 512, [], \"e53a\", \"M256 160c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM468.8 382.8L405.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L59.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2l67.1-100.6c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM352 332c0-24.3-19.7-44-44-44s-44 19.7-44 44s19.7 44 44 44s44-19.7 44-44z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M352 96h64c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c53 0 96-43 96-96V128c0-53-43-96-96-96H352c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-7.5 177.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H160v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192c0-70.7-57.3-128-128-128S96 121.3 96 192s57.3 128 128 128s128-57.3 128-128zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [640, 512, [\"people-carry\"], \"f4ce\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM144 241.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm77.9 252.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 64c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M288 96c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm58.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [512, 512, [\"weight\"], \"f496\", \"M384 176c0 70.7-57.3 128-128 128s-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128zm7.8-112C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"]\n};\nvar faWeight = faWeightScale;\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [640, 512, [128101, \"user-friends\"], \"f500\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [576, 512, [\"sort-alpha-up\"], \"f15e\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M32 391.6V416H352V224c0-106-86-192-192-192H12.9C5.8 32 0 37.8 0 44.9c0 2 .5 4 1.4 5.8L16 80 9.4 86.6c-6 6-9.4 14.1-9.4 22.6V242.3c0 13.1 8 24.9 20.1 29.7l46.5 18.6c8.5 3.4 18 3 26.2-1.1l6.6-3.3c8-4 14-11.2 16.5-19.8l8.3-28.9c2.5-8.6 8.4-15.8 16.5-19.8L160 208v40.4c0 24.2-13.7 46.4-35.4 57.2L67.4 334.3C45.7 345.2 32 367.3 32 391.6zM72 148c0 11-9 20-20 20s-20-9-20-20s9-20 20-20s20 9 20 20zM352 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [576, 512, [], \"f193\", \"M224 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM152.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C75.1 225.1 32 283.5 32 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C272 440 234.8 464 192 464c-61.9 0-112-50.1-112-112c0-47.9 30.1-88.8 72.5-104.8zM291.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L434 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H314.2l-9.6-48H368c17.7 0 32-14.3 32-32s-14.3-32-32-32H291.8z\"]\n};\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V177.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zM384 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [320, 512, [128694, \"walking\"], \"f554\", \"M256 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"]\n};\nvar faWalking = faPersonWalking;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zM176 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faProcedures = faBedPulse;\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [640, 512, [\"space-shuttle\"], \"f197\", \"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [127961], \"f64f\", \"M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [127798], \"f816\", \"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [128275], \"f09c\", \"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.1 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3L365.5 384H160z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [320, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M320 128V49.1L186.6 .3c-11.4-4.2-24 .9-29.5 11.7L71.8 181.1c-30.8 61-8 133.8 48.1 167.4l-28 77.4L32.1 403.9C19.7 399.4 6 405.8 1.4 418.3s1.9 26.3 14.3 30.8l164.6 60.3c12.4 4.5 26.1-1.9 30.6-14.4s-1.9-26.3-14.3-30.8l-59.9-21.9 28-77.3c68.1 11.6 135.7-32.8 150.1-103.6l5.1-24.8 5.1 24.8c14.5 70.8 82 115.2 150.1 103.6l28 77.3-59.9 21.9c-12.4 4.5-18.8 18.3-14.3 30.8s18.2 18.9 30.6 14.4l164.6-60.3c12.4-4.5 18.8-18.3 14.3-30.8s-18.2-18.9-30.6-14.4l-59.9 21.9-28-77.4c56.1-33.6 78.8-106.4 48.1-167.4L482.9 12C477.4 1.1 464.7-3.9 453.4 .3L320 49.1V128h0zm-35.7 44.4L153.9 124.6l36.3-71.9L300.6 93.1l-16.2 79.3zm71.3 0L339.4 93.1 449.8 52.7l36.3 71.9L355.7 172.4z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H48C21.5 64 0 85.5 0 112V464c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-80 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z\"]\n};\nvar faBathtub = faBath;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"]\n};\nvar faUserEdit = faUserPen;\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M256 496c132.5 0 240-107.5 240-240S388.5 16 256 16S16 123.5 16 256s107.5 240 240 240zM235.3 76.7L256 97.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L278.6 120 324 165.4 357.4 132l-16.7-16.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L380 109.4l8.7-8.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-8.7 8.7 16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L380 154.6 346.6 188 392 233.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L414.6 256l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L392 278.6 346.6 324 380 357.4l16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L402.6 380l8.7 8.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-8.7-8.7-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L357.4 380 324 346.6 278.6 392l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L256 414.6l-20.7 20.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L233.4 392 188 346.6 154.6 380l16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L132 402.6l-8.7 8.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l8.7-8.7L92.7 363.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L132 357.4 165.4 324 120 278.6 99.3 299.3c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L97.4 256 76.7 235.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L120 233.4 165.4 188 132 154.6l-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L109.4 132l-8.7-8.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l8.7 8.7 16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L154.6 132 188 165.4 233.4 120 212.7 99.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zM210.6 188L256 233.4 301.4 188 256 142.6 210.6 188zm68 68L324 301.4 369.4 256 324 210.6 278.6 256zM256 278.6L210.6 324 256 369.4 301.4 324 256 278.6zM233.4 256L188 210.6 142.6 256 188 301.4 233.4 256z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [384, 512, [], \"e4d7\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"]\n};\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-96 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [576, 512, [\"map-marked-alt\"], \"f5a0\", \"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [9749], \"f7b6\", \"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M312 56c0-30.9-25.1-56-56-56s-56 25.1-56 56s25.1 56 56 56s56-25.1 56-56zM64 480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM34 169.4L9.2 185.8C3.5 189.7 0 196.2 0 203.1c0 3.2 .7 6.4 2.2 9.3L104 416H408L509.8 212.4c1.4-2.9 2.2-6.1 2.2-9.3c0-6.9-3.5-13.4-9.2-17.3L478 169.4c-8.2-5.4-19-4.4-26 2.6c-12.9 12.9-30.9 21.9-48 15.5c-17.9-6.7-28.1-20.1-32.8-35.8C367.5 139 357.3 128 344 128H328c-13.3 0-23.9 11.2-29.6 23.2C292.6 163.4 280.6 176 256 176s-36.6-12.6-42.4-24.8c-5.7-12-16.3-23.2-29.6-23.2H168c-13.3 0-23.5 11-27.3 23.7c-4.7 15.6-14.9 29.1-32.8 35.8c-17 6.4-35.1-2.7-48-15.5c-6.9-6.9-17.8-8-25.9-2.6z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [640, 512, [], \"e4d2\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M208 368c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [576, 512, [], \"e4e4\", \"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 160c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM128 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM357.1 157.5c-.3 .7-.7 1.5-1.1 2.2l-17.8 30.9c-11-12.6-27.4-19.8-44.4-19.1l20.7-35.8c6.6-11.5 21.3-15.4 32.8-8.8c10.8 6.2 14.9 19.5 9.9 30.6zm-173.6 47C112.3 227.2 64 293.3 64 368c0 1.5 0 3 .1 4.5C24.3 346.9 0 302.8 0 255.1V131.5c0-13.3 10.7-24 24-24s24 10.7 24 24l0 81.7L164.2 12c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-64 110.9c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9l80-138.6c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-80 138.6c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9L275 76c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-44 76.2-89.1 28.3zM448 483.5c0 12.4-9.4 22.6-21.5 23.9c-.8 .1-1.6 .1-2.5 .1H223.3 216c-22.1 0-42.9-6-60.7-16.5c3-8.5 4.7-17.6 4.7-27c0-38.7-27.5-71-64-78.4c0-.6 0-1.1 0-1.7c0-1.2-.1-2.5-.1-3.7c0-68 44-128.3 108.9-148.9l83.9-26.7c12.6-4 26.1 3 30.1 15.6s-3 26.1-15.6 30.1l-53.8 17.1H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8h96c13.3 0 24 10.7 24 24z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [128646], \"f238\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 384c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [640, 512, [\"low-vision\"], \"f2a8\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 112c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [576, 512, [], \"e445\", \"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [9961], \"f6a1\", \"M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V0L440.6 23.8C424.3 29.2 407.2 32 390 32H122c-17.2 0-34.3-2.8-50.6-8.2L0 0V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z\"]\n};\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM592 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [129691], \"f54a\", \"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [576, 512, [], \"e515\", \"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z\"]\n};\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [576, 512, [], \"e4b5\", \"M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [512, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z\"]\n};\nvar faColumns = faTableColumns;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M0 224.2c0-22.2 3.2-43.6 9.2-63.9l227 165.1C228.5 337.8 224 352.4 224 368V512H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm258.6 77.9L21 129.3C56.7 53 134.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 4.1-.6 8.1-1.6 11.9H304c-16.9 0-32.5 5.2-45.4 14.1zM352 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM256 512V368c0-26.5 21.5-48 48-48H512l-16 48H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.3l-10.7 32H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H464l-1.4 4.2c-8.7 26.1-33.2 43.8-60.7 43.8H256z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM96 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.6 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [640, 512, [\"dolly-box\"], \"f472\", \"M32 32C32 14.3 46.3 0 64 0h72.9c27.5 0 52 17.6 60.7 43.8L289.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L384 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L136.9 64H64C46.3 64 32 49.7 32 32zM276.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L343 79.4l19.8 60.9 60.9-19.8L403.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L366.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L276.8 134.5z\"]\n};\nvar faDollyBox = faDolly;\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [128684], \"f48d\", \"M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z\"]\n};\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm216 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm-56-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM200 424c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [512, 512, [187, \"angle-double-right\"], \"f101\", \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"]\n};\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"]\n};\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26H388.7c14.2 0 25.4 12.3 21.7 26C392 382 329.8 432 256 432s-136-50-154.4-118zm116-101.2l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.5 169.9c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v44.5c0 17.4-4.7 34.5-13.7 49.4L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1C136.1 390 144 361.5 144 332.5V288H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM256 144c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM240 248c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 39.5-161.2c77.2 12 136.3 78.8 136.3 159.4c0 17-13.8 30.7-30.7 30.7H265.1 182.9 30.7C13.8 512 0 498.2 0 481.3c0-80.6 59.1-147.4 136.3-159.4l39.5 161.2 33.4-123.9z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [384, 512, [\"long-arrow-down\"], \"f175\", \"M224 402.7V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V402.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [640, 512, [], \"e57e\", \"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h76.8L384 320V448z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.3-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M117.2 160.4L224 64.3V64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144C3.9 190.3 0 198.9 0 208s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2v-.3L117.2 255.6C103.7 243.4 96 226.1 96 208s7.7-35.4 21.2-47.6zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [448, 512, [\"skating\"], \"f7c5\", \"M448 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM408.8 335.4c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM344 304c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [\"arrow-right-to-file\"], \"f56f\", \"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm208-16c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [320, 512, [9208], \"f04c\", \"M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [640, 512, [], \"e507\", \"M471.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C433.2 261.3 448 236.4 448 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C248.3 46.6 229.9 32 208 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L471.7 401.9zM512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM100.3 87C75.1 61.8 32 79.7 32 115.3V432c0 44.2 35.8 80 80 80H428.7c35.6 0 53.5-43.1 28.3-68.3L100.3 87z\"]\n};\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [128163], \"f1e2\", \"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zm396.3 211c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3L435.1 416H588.9L514.2 273.3zM512 224c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 498.6 562.2 512 512 512s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 251c8.7-16.6 25.9-27 44.7-27zM128 144c-.9 0-1.7 .5-2.2 1.3L51.1 288H204.9L130.2 145.3c-.4-.8-1.3-1.3-2.2-1.3zm44.7-21l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 370.6 178.2 384 128 384s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 123C92 106.4 109.2 96 128 96s36 10.4 44.7 27z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"]\n};\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faTired = faFaceTired;\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [640, 512, [], \"e1f3\", \"M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM448 208c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"]\n};\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [640, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [512, 512, [], \"e4c0\", \"M329.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L370.7 160H160c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C32 153.3 89.3 96 160 96H370.7L329.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 416H128c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H274.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"]\n};\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [576, 512, [], \"e4ea\", \"M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [640, 512, [], \"e4b9\", \"M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM184 296c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm312 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 64c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 78.3 364 32 448 32h32c17.7 0 32 14.3 32 32zM0 128c0-17.7 14.3-32 32-32H64c123.7 0 224 100.3 224 224v32 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C100.3 352 0 251.7 0 128z\"]\n};\nvar faSprout = faSeedling;\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [640, 512, [], \"e4c7\", \"M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [640, 512, [\"remove-format\"], \"f87d\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l16-64c2.4-9.6 .2-19.7-5.8-27.5S553.9 32 544 32H376.1h-.3H192c-14.7 0-27.5 10-31 24.2l-9.3 37.3L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12.1 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z\"]\n};\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [512, 512, [\"arrows-h\"], \"f07e\", \"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M384 480c0 11.7 3.1 22.6 8.6 32H384c-17.7 0-32-14.3-32-32V383.7c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32V480c0 17.7-14.3 32-32 32H96.1c-17.7 0-32-14.3-32-32V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [640, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm-8 256v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUserLargeSlash = {\n prefix: 'fas',\n iconName: 'user-large-slash',\n icon: [640, 512, [\"user-alt-slash\"], \"f4fa\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H528L284.3 320z\"]\n};\nvar faUserAltSlash = faUserLargeSlash;\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"]\n};\nvar faHandshakeSimpleSlash = {\n prefix: 'fas',\n iconName: 'handshake-simple-slash',\n icon: [640, 512, [\"handshake-alt-slash\"], \"e05f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSimpleSlash;\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [640, 512, [], \"e525\", \"M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V448c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H176c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM272 224c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [576, 512, [], \"f5fd\", \"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z\"]\n};\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [576, 512, [\"house-damage\"], \"f6f1\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [9962], \"f51d\", \"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [640, 512, [], \"f653\", \"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480c61.4 0 101.6 24 126.2 50c12 12.6 19.9 25.2 24.9 34.9c2.5 4.8 4.3 9 5.5 12.1c.6 1.5 1.1 2.8 1.4 3.8c.2 .5 .3 .9 .4 1.3l.1 .5 .1 .2 0 .1 0 0c0 0 0 0-30.2 9.1l30.2-9.1c5.1 16.9-4.5 34.8-21.5 39.8c-16.8 5-34.5-4.4-39.7-21.1l0 0c-.1-.2-.2-.6-.5-1.2c-.5-1.3-1.4-3.4-2.8-6.1c-2.8-5.4-7.4-12.8-14.4-20.1c-4.2-4.4-9.4-9-15.8-13.2V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zm129.4-70.8c0 0 0 0 30.6-9.2l-30.6 9.2 0 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M508.7 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM34.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L264.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L321.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L44.9 301.3c-11.8-6.1-16.3-20.6-10.2-32.4zM150.9 65.6L169 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L183.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [640, 512, [], \"e567\", \"M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [448, 512, [97], \"41\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM296 320H152l72-172.8L296 320z\"]\n};\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H448V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H352c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M32 32H64h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 320 288 64C0 46.3 14.3 32 32 32zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.7 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H424c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm0 184c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16zM160 400c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [576, 512, [\"ad\"], \"f641\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256c-13.3 0-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"]\n};\nvar faAd = faRectangleAd;\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [640, 512, [], \"e520\", \"M344 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H463.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L247.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L380 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L515.6 400H528c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C608 143 497 32 360 32H344zm50.5 168l17.1 40H365l29.5-40zm-87.7 38.1l-1.4 1.9H257.1l32.7-41.5 16.9 39.5zM120.8 240C89.4 240 64 265.4 64 296.8c0 15.5 6.3 30 16.9 40.4L158.7 240H120.8zM528 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [\"unsorted\"], \"f0dc\", \"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"]\n};\nvar faUnsorted = faSort;\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M528 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [576, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164.1 160v6.3c6.6 1.2 16.6 3.2 21 4.4c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-3.8-1-17.4-3.7-21.7-4.3c-12.2-1.9-22.2-.3-28.6 2.6c-6.3 2.9-7.9 6.2-8.2 8.1c-.6 3.4 0 4.7 .1 5c.3 .5 1 1.8 3.6 3.5c6.1 4.2 15.7 7.2 29.9 11.4l.8 .2c12.1 3.7 28.3 8.5 40.4 17.4c6.7 4.9 13 11.4 16.9 20.5c4 9.1 4.8 19.1 3 29.4c-3.3 19-15.9 32-31.6 38.7c-4.9 2.1-10 3.6-15.4 4.6V352c0 11.1-9 20.1-20.1 20.1s-20.1-9-20.1-20.1v-6.4c-9.5-2.2-21.9-6.4-29.8-9.1c-1.7-.6-3.2-1.1-4.4-1.5c-10.5-3.5-16.1-14.8-12.7-25.3s14.8-16.1 25.3-12.7c2 .7 4.1 1.4 6.4 2.1l0 0 0 0c9.5 3.2 20.2 6.9 26.2 7.9c12.8 2 22.7 .7 28.8-1.9c5.5-2.3 7.4-5.3 8-8.8c.7-4 .1-5.9-.2-6.7c-.4-.9-1.3-2.2-3.7-4c-5.9-4.3-15.3-7.5-29.3-11.7l-2.2-.7c-11.7-3.5-27-8.1-38.6-16c-6.6-4.5-13.2-10.7-17.3-19.5c-4.2-9-5.2-18.8-3.4-29c3.2-18.3 16.2-30.9 31.1-37.7c5-2.3 10.3-4 15.9-5.1v-6c0-11.1 9-20.1 20.1-20.1s20.1 9 20.1 20.1z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [448, 512, [], \"f5cb\", \"M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm194.8-6.4c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M96 96c-17.7 0-32 14.3-32 32s-14.3 32-32 32s-32-14.3-32-32C0 75 43 32 96 32h97c70.1 0 127 56.9 127 127c0 52.4-32.2 99.4-81 118.4l-63 24.5 0 18.1c0 17.7-14.3 32-32 32s-32-14.3-32-32V301.9c0-26.4 16.2-50.1 40.8-59.6l63-24.5C240 208.3 256 185 256 159c0-34.8-28.2-63-63-63H96zm48 384c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [576, 512, [], \"e065\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 288c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [576, 512, [], \"f53c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [512, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [640, 512, [], \"e4d3\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [448, 512, [\"external-link\"], \"f08e\", \"M288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L169.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 141.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H288zM80 64C35.8 64 0 99.8 0 144V400c0 44.2 35.8 80 80 80H336c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [448, 512, [], \"e4e6\", \"M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm64 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z\"]\n};\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [128739], \"f018\", \"M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm352-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCab = faTaxi;\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [576, 512, [], \"e541\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z\"]\n};\nvar faPieChart = faChartPie;\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"]\n};\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM448 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zm-166.2-89l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [128331], \"f66b\", \"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [640, 512, [129531], \"f71e\", \"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm80-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [8594], \"f061\", \"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-216c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm72 24c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [576, 512, [], \"e542\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [576, 512, [], \"e57b\", \"M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [512, 512, [\"tools\"], \"f7d9\", \"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM104 432c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [576, 512, [], \"e55b\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"]\n};\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59.1 146.7-136.1 158.2c0 .6 .1 1.2 .1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l-24 0-24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2 .1-1.8C155.1 370.7 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM256 488h24c0 13.3-10.7 24-24 24s-24-10.7-24-24h24zm96-264c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [\"home-user\"], \"e1b0\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.6-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zm128.4-78.9c-2.8-2.5-6.3-3.7-9.8-3.8c-3.6 0-7.2 1.2-10 3.7c-33.2 29.7-61.4 63.4-81.4 95.8c-19.7 31.9-32.4 66.2-32.4 92.6C320 407.9 390.3 480 480 480c88.7 0 160-72 160-159.8c0-20.2-9.6-50.9-24.2-79c-14.8-28.5-35.7-58.5-60.4-81.1c-5.6-5.1-14.4-5.2-20 0c-9.6 8.8-18.6 19.6-26.5 29.5c-17.3-20.7-35.8-39.9-55.5-57.7zM530 401c-15 10-31 15-49 15c-45 0-81-29-81-78c0-24 15-45 45-82c4 5 62 79 62 79l36-42c3 4 5 8 7 12c18 33 10 75-20 96z\"]\n};\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [576, 512, [], \"e3b1\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z\"]\n};\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [576, 512, [\"cocktail\"], \"f561\", \"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM256 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [256, 512, [], \"e4c5\", \"M88 0h80c13.3 0 24 10.7 24 24V64H64V24C64 10.7 74.7 0 88 0zM0 151.7c0-15.6 9-29.8 23.2-36.5l24.4-11.4c11-5.1 23-7.8 35.1-7.8h90.6c12.1 0 24.1 2.7 35.1 7.8l24.4 11.4c14.2 6.6 23.2 20.8 23.2 36.5c0 14.4-7.5 27-18.9 34.1c11.5 8.8 18.9 22.6 18.9 38.2c0 16.7-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48c0-16.7 8.5-31.4 21.5-40C8.5 415.4 0 400.7 0 384s8.5-31.4 21.5-40C8.5 335.4 0 320.7 0 304s8.5-31.4 21.5-40C8.5 255.4 0 240.7 0 224c0-15.6 7.4-29.4 18.9-38.2C7.5 178.7 0 166.1 0 151.7zM64 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6L66.5 148.4zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 208c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm256 32c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H32zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M96 0C80.7 0 67.6 10.8 64.6 25.7l-64 320c-1.9 9.4 .6 19.1 6.6 26.6S22.4 384 32 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H608c9.6 0 18.7-4.3 24.7-11.7s8.5-17.2 6.6-26.6l-64-320C572.4 10.8 559.3 0 544 0H96zm5.4 168L122.2 64h90.4L202.3 168H101.4zm-9.6 48H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104H235.3l10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l20.8 104zm-149.1 0h-139L260.9 64H379.1l10.4 104z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z\"]\n};\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 192c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zM400 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288 144C288 64.5 223.5 0 144 0S0 64.5 0 144s64.5 144 144 144s144-64.5 144-144zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [576, 512, [9842, 9850, 9851], \"f1b8\", \"M206.7 45.1C224.2 17 255 0 288 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L315 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM461.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L352 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L68 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L214 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3-51.5 82.4c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0c-53.1 0-96.1-43.2-95.8-96.4c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320h73.8c34.2 0 93.7-28 93.7-64c0-35-59.5-64-93.7-64l-116.6 0L297.2 16.1C291.5 6.2 280.9 0 269.4 0H213.2c-10.6 0-18.3 10.2-15.4 20.4l40.3 140.9L38.8 5.1zm2.7 123.6C36 130.6 32 135.9 32 142c0 1.3 .2 2.6 .5 3.9L64 256 32.5 366.1c-.4 1.3-.5 2.6-.5 3.9c0 7.8 6.3 14 14 14H88c5 0 9.8-2.4 12.8-6.4L144 320H246.9l-49 171.6c-2.9 10.2 4.8 20.4 15.4 20.4l56.2 0c11.5 0 22.1-6.2 27.8-16.1l65.3-114.3L41.5 128.7z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M86.6 64C119 35.5 158.6 15 202.3 5.6C206 19.1 208 33.3 208 48c0 38.4-13.5 73.7-36.1 101.3L86.6 64zM64 86.6l85.2 85.2C121.7 194.5 86.4 208 48 208c-14.7 0-28.9-2-42.4-5.7C15 158.6 35.5 119 64 86.6zM256 0c64.9 0 124.2 24.2 169.4 64L256 233.4 194.6 172C222.9 138.5 240 95.3 240 48c0-16.2-2-32-5.8-47.1C241.4 .3 248.7 0 256 0zM48 240c47.3 0 90.5-17.1 124-45.4L233.4 256 64 425.4C24.2 380.2 0 320.9 0 256c0-7.3 .3-14.6 .9-21.8C16 238 31.8 240 48 240zm463.1 37.8C496 274 480.2 272 464 272c-47.3 0-90.5 17.1-124 45.4L278.6 256 448 86.6c39.8 45.1 64 104.4 64 169.4c0 7.3-.3 14.6-.9 21.8zm-4.7 31.9C497 353.4 476.5 393 448 425.4l-85.2-85.2C390.3 317.5 425.6 304 464 304c14.7 0 28.9 2 42.4 5.7zM340.1 362.7L425.4 448C393 476.5 353.4 497 309.7 506.4C306 492.9 304 478.7 304 464c0-38.4 13.5-73.7 36.1-101.3zM317.4 340C289.1 373.5 272 416.7 272 464c0 16.2 2 32 5.8 47.1c-7.2 .6-14.5 .9-21.8 .9c-64.9 0-124.2-24.2-169.4-64L256 278.6 317.4 340z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H144c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM304 64H80V384H304V64z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 336c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM307.8 275.8l-128 128c-10.9 10.9-28.7 10.9-39.6 0l-64-64c-10.9-10.9-10.9-28.7 0-39.6s28.7-10.9 39.6 0L160 344.4 268.2 236.2c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm240 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zM272 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z\"]\n};\nvar faHamburger = faBurger;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [128295], \"f0ad\", \"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [640, 512, [], \"e4d0\", \"M196.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L160 71.7 133.9 14.1C128.4 2 114.1-3.3 102.1 2.1S84.7 21.9 90.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8s-21.4 15.2-18.8 28.2l8 40C42.7 175.9 52.6 184 64 184H96v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C114.7 274.6 135.8 288 160 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L224 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L236.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM528 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L464.8 250c-12.3 1-24.2 5.6-34.1 13.3L416 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L391 322.7 353.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L535.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L598.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s25-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.4-13.4-6.6-28-4.4-43.2c8.5-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"]\n};\nvar faRupee = faRupeeSign;\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM128 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm88 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"]\n};\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [128747], \"f5b0\", \"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM413.6 421.9L128 196.9V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM80 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"]\n};\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [576, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z\"]\n};\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [512, 512, [], \"e2b7\", \"M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [128008], \"f6be\", \"M288 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L248 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1C10.5 157.6-1.9 141.6 .2 124s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C325.3 164 320 146.6 320 128v0V32 12 10.7C320 4.8 324.7 .1 330.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L352 21.3l27.2 36.3L384 64h64l4.8-6.4L480 21.3 492.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C507.3 .1 512 4.8 512 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM400 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 256s96-96 96-160c0-53-43-96-96-96s-96 43-96 96c0 29.4 20.2 65.5 42.1 96H320c-53 0-96 43-96 96s43 96 96 96h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H188.6c-6.2 9.6-12.6 18.8-19 27.2c-10.7 14.2-21.3 26.9-30 36.8H416c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h96zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM149.9 448c21.9-30.5 42.1-66.6 42.1-96c0-53-43-96-96-96s-96 43-96 96c0 64 96 160 96 160s3.5-3.5 9.2-9.6c.4-.4 .7-.8 1.1-1.2c3.3-3.5 7.1-7.8 11.4-12.8c.2-.2 .4-.4 .6-.6c9.4-10.8 20.7-24.6 31.6-39.8zM96 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 416c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [640, 512, [], \"e209\", \"M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM160 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm208 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [576, 512, [], \"f62f\", \"M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [512, 512, [], \"f02c\", \"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM88.1 128l5.3-64H226.6l5.3 64H88.1z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z\"]\n};\nvar faFastForward = faForwardFast;\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM208.4 208c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm128 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M314.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c9.7 8.9 12.9 22.9 8.1 35.2S557.2 256 544 256H512V368c0 26.5-21.5 48-48 48H278.1C259.6 350.8 216.8 295.9 160 261.7V256h-9.9c-16.5-9-34-16.2-52.3-21.6c-4.1-12-.8-25.3 8.5-34l208-192zM304 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H304zM24 256c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM0 376c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [512, 512, [\"tasks-alt\"], \"f828\", \"M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [640, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M41.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 41.4 86.6zM288 416H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm64-96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM432 256c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM288 192c0 35.3-28.7 64-64 64c-11.5 0-22.3-3-31.6-8.4c-.2 2.8-.4 5.5-.4 8.4c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [576, 512, [], \"f29e\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z\"]\n};\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"]\n};\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [512, 512, [], \"e586\", \"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [576, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M544 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM416 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM320 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM160 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM64 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [128653], \"f207\", \"M256 0C390.4 0 480 35.2 480 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C32 35.2 121.6 0 256 0zM96 160v96c0 17.7 14.3 32 32 32H240V128H128c-17.7 0-32 14.3-32 32zM272 288H384c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H272V288zM112 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 80c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [576, 512, [63499, \"home-lg\"], \"e3af\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faFrown = faFaceFrown;\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [640, 512, [\"store-alt\"], \"f54f\", \"M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z\"]\n};\nvar faStoreAlt = faShop;\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSave = faFloppyDisk;\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zm-396.3 211c.4-.8 1.3-1.3 2.2-1.3s1.7 .5 2.2 1.3L204.9 416H51.1l74.7-142.7zM128 224c-18.8 0-36 10.4-44.7 27L5.5 399.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C45.1 498.6 77.8 512 128 512s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L172.7 251c-8.7-16.6-25.9-27-44.7-27zm384-80c.9 0 1.7 .5 2.2 1.3L588.9 288H435.1l74.7-142.7c.4-.8 1.3-1.3 2.2-1.3zm-44.7-21L389.5 271.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C429.1 370.6 461.8 384 512 384s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L556.7 123C548 106.4 530.8 96 512 96s-36 10.4-44.7 27z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [\"sort-asc\"], \"f0de\", \"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faSortAsc = faSortUp;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCommenting = faCommentDots;\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [576, 512, [], \"e05a\", \"M455.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L228 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L135 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L247 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L403 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L471 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zm-331 332.7l0 0L176 368l-51.9-4.7zM240 320c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v32 64c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM336 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"]\n};\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [512, 512, [\"location\"], \"f601\", \"M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128zm128 80c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM288 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zm80 176c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"]\n};\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64c0-35.3-28.7-64-64-64S96 28.7 96 64s28.7 64 64 64s64-28.7 64-64zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z\"]\n};\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [640, 512, [], \"e591\", \"M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM211.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zM563.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM321.6 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.4 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M0 224.2C0 100.6 100.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM240 80c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C161.5 168.1 145 208 112 208c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C184.1 302.5 224 319 224 352c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C318.5 279.9 335 240 368 240c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C295.9 145.5 256 129 256 96c0-8.8-7.2-16-16-16zM216 224c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm72 32c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5c0-26.5-21.5-48-48.1-48s-48.1 21.5-48.1 48s21.5 48 48.1 48s48.1-21.5 48.1-48z\"]\n};\nvar faUserCog = faUserGear;\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [576, 512, [\"sort-numeric-up\"], \"f163\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 64c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H384c-17.7 0-32-14.3-32-32zm93.7 300.9c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [576, 512, [128682], \"f52a\", \"M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z\"]\n};\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [576, 512, [], \"e4ce\", \"M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80c0-26.5-21.5-48-48-48S16 53.5 16 80s21.5 48 48 48s48-21.5 48-48zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H224 32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M304 64c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"]\n};\nvar faDigging = faPersonDigging;\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm0 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [576, 512, [], \"f1b3\", \"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M272 96c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 320c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [127911], \"f025\", \"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"]\n};\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [576, 512, [], \"e1a8\", \"M368 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM167 119c9.4-9.4 24.6-9.4 33.9 0L324.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L39 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L87 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM465.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM456.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [576, 512, [], \"e543\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [512, 512, [128207], \"f545\", \"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M216.3 2c4.8-2.6 10.5-2.6 15.3 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L216.3 2zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L8.3 414C3.2 411.2 0 405.9 0 400V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V400c0 5.9-3.2 11.2-8.3 14l-176 96c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM120 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM560 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [640, 512, [], \"e595\", \"M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80-32c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"]\n};\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [448, 512, [\"external-link-alt\"], \"f35d\", \"M288 32c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L306.7 128 169.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L352 173.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V64c0-17.7-14.3-32-32-32H288zM80 64C35.8 64 0 99.8 0 144V400c0 44.2 35.8 80 80 80H336c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [512, 512, [\"th\"], \"f00a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z\"]\n};\nvar faTh = faTableCells;\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 224H88c30.9 0 56 25.1 56 56s-25.1 56-56 56H80v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V320 240c0-8.8 7.2-16 16-16zm24 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H80v48h8zm72-64c0-8.8 7.2-16 16-16h24c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H176c-8.8 0-16-7.2-16-16V240zm32 112h8c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16h-8v96zm96-128h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V304 240c0-8.8 7.2-16 16-16z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z\"]\n};\nvar faBible = faBookBible;\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160s160-71.6 160-160s-71.6-160-160-160zM0 256C0 132.3 100.3 32 224 32s224 100.3 224 224s-100.3 224-224 224S0 379.7 0 256z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.7 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 160c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm144-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [320, 512, [\"female\"], \"f182\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faFemale = faPersonDress;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [512, 512, [\"th-large\"], \"f009\", \"M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [512, 512, [\"volume-control-phone\"], \"f2a0\", \"M188.8 39.3c13.8 8.5 19.6 26.8 13.6 42.7L174.2 156c-5.3 14-18.5 22.5-32.4 21l-42.6-4.6c-17.4 54.1-17.4 113.2 0 167.3l42.6-4.6c13.9-1.5 27.1 7 32.4 21L202.4 430c6.1 15.9 .3 34.2-13.6 42.7l-56.4 34.8c-12.4 7.7-28 5.4-38.1-5.5C-31.4 366.1-31.4 145.9 94.3 10C104.4-.9 120.1-3.1 132.5 4.5l56.4 34.8zm218.4-5.5C471.2 86.6 512 166.6 512 256s-40.8 169.4-104.7 222.2c-10.2 8.4-25.3 7-33.8-3.2s-7-25.3 3.2-33.8C430.1 397.1 464 330.5 464 256s-33.9-141.1-87.3-185.2c-10.2-8.4-11.7-23.6-3.2-33.8s23.6-11.7 33.8-3.2zm-64.4 71.4C387.4 140.4 416 194.8 416 256s-28.6 115.6-73.1 150.8c-10.4 8.2-25.5 6.4-33.7-4s-6.4-25.5 4-33.7C346.6 342.7 368 301.8 368 256s-21.4-86.7-54.8-113.1c-10.4-8.2-12.2-23.3-4-33.7s23.3-12.2 33.7-4zm-65.4 71C303.1 193.5 320 222.8 320 256s-16.9 62.5-42.5 79.7c-11 7.4-25.9 4.5-33.3-6.5s-4.5-25.9 6.5-33.3c12.9-8.7 21.3-23.3 21.3-39.9s-8.4-31.2-21.3-39.9c-11-7.4-13.9-22.3-6.5-33.3s22.3-13.9 33.3-6.5z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M463.2 71.3c-2.4-12.8-9.8-24.1-20.7-31.3s-24.2-9.7-36.9-6.8l-216 48c-19.8 4.4-34.7 20.8-37.2 40.9l-8.8 70.6c5.3-.4 10.8-.7 16.5-.7c82.9 0 141.9 55.3 197.5 107.5l0 0c3.1 3 6.3 5.9 9.4 8.8C427.1 364.5 486.9 416 576 416c0 0 64 0 64-48c0-96-112-128-144-128h-1.6L463.2 71.3zM576 448c-102.9 0-171.1-60.5-230.9-116.3l-6.5-6C279.9 270.8 229.9 224 160 224c-57.8 0-97.4 28.6-123.1 63.5C10.7 323 0 363.8 0 384c0 35.3 28.7 64 64 64H576z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm64 128c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M224 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [8356], \"f195\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V192H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v32H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H78c-2.2 10.5-6.1 20.6-11.7 29.9L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [448, 512, [127991], \"f02b\", \"M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [448, 512, [\"angle-double-up\"], \"f102\", \"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [512, 512, [128206], \"f0c6\", \"M396.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"]\n};\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [127895], \"f4d6\", \"M224 96c39.5 0 66.8 12.2 81.9 21.5L245.6 184l79.3 87.4 36.3-40c14.7-16.2 22.8-37.3 22.8-59.1v-27c0-15.6-4.1-30.8-12-44.3L337.7 42C326.4 22.7 307 6.8 282.1 3.5C267.8 1.6 248.4 0 224 0s-43.8 1.6-58 3.5C141 6.8 121.7 22.7 110.4 42L76 101c-7.8 13.4-12 28.7-12 44.3v27c0 21.9 8.1 42.9 22.8 59.1l57.9 63.8L224 382.6 334.2 504.1c6.4 7 16.3 9.7 25.4 6.6l72-24c7.7-2.6 13.6-8.8 15.6-16.7s0-16.2-5.4-22.2L303.3 295.2 224 207.8l-81.9-90.3C157.3 108.2 184.5 96 224 96zM202.4 406.5L123.2 319 6.3 447.9c-5.4 6-7.5 14.4-5.4 22.2s7.9 14.1 15.6 16.7l72 24c9 3 19 .4 25.4-6.6l88.6-97.7z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [129729], \"f604\", \"M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [576, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 320c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V352H384c-17.7 0-32-14.3-32-32zm93.7-171.1c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [448, 512, [], \"e1d3\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V213.6L55.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L96 280.1V448c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L160 195.3V64z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm96 64c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-448c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM224 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-320c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 32C14.3 32 0 46.3 0 64S14.3 96 32 96s32-14.3 32-32s-14.3-32-32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM224 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM416 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM208 384c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256 32c12.5 0 24.1 6.4 30.7 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5 208 288l48-64h65z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm416 0c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 384c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faCameraAlt = faCamera;\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm88 32c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128s-57.3 128-128 128zm0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm16 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [512, 512, [], \"e4dd\", \"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 392c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm280-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [576, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M352 64c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM445.7 364.9c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 96c0 35.3-28.7 64-64 64S0 131.3 0 96S28.7 32 64 32s64 28.7 64 64zm96 176c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM80 416c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM224 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM480 96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM576 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM416 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [128666, 9951], \"f0d1\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M272 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z\"]\n};\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [576, 512, [], \"e57d\", \"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H416L288 288V512H32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M374.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 86.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [576, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm128-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faHdd = faHardDrive;\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-18.5 5-38.8 8.3-50.9 10c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.2-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M112 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32V224v64V416c0 17.7-14.3 32-32 32H144c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32h48V96zm416 0v32h48c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H528v32c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z\"]\n};\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32-128c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z\"]\n};\nvar faListAlt = faRectangleList;\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [576, 512, [], \"e57c\", \"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm320 0c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192zM224 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H144c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [128748], \"f5af\", \"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160-80c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [448, 512, [\"subway\"], \"f239\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM128 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm224 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSubway = faTrainSubway;\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM400 256c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [512, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M177.5 98c-8.8-3.8-19-2-26 4.6l-144 136C2.7 243.1 0 249.4 0 256s2.7 12.9 7.5 17.4l144 136c7 6.6 17.2 8.4 26 4.6s14.5-12.5 14.5-22l0-88 288 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-288 0 0-88c0-9.6-5.7-18.2-14.5-22z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [129516], \"f471\", \"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM107.5 224H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7L144.7 210c-9.5 8.5-22.2 14-37.2 14z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faSubtract = faMinus;\nvar faChildRifle = {\n prefix: 'fas',\n iconName: 'child-rifle',\n icon: [576, 512, [], \"e4e0\", \"M176 128c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H59.4C48.7 96 40 104.7 40 115.4c0 3 .7 5.9 2 8.7c6 12.4 23.8 50.8 32.8 83.9H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h7.7C78 302.9 69.4 352.7 63.1 384H192.9c-6.4-31.3-14.9-81.1-16.6-128H184c13.3 0 24-10.7 24-24s-10.7-24-24-24h-2.8c9-33.2 26.8-71.5 32.8-83.9c1.3-2.7 2-5.6 2-8.7c0-10.7-8.7-19.4-19.4-19.4H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM25.2 451.4l-8.8 4.4C6.3 460.8 0 471.1 0 482.3C0 498.7 13.3 512 29.7 512H226.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H56.4C42.9 416 32 426.9 32 440.4c0 4.6-2.6 8.9-6.8 10.9zm279.2 4.4c-10.1 5-16.4 15.3-16.4 26.5c0 16.4 13.3 29.7 29.7 29.7H482.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H344.4c-13.5 0-24.4 10.9-24.4 24.4c0 4.6-2.6 8.9-6.8 10.9l-8.8 4.4zM304 259.9c0 7.8 2.8 15.3 8 21.1l18.9 21.4c5.4 6.1 8.2 14 8 22.1L337 384H462.5l-2.7-58.7c-.4-8.5 2.6-16.9 8.4-23.1l19.3-21c5.4-5.9 8.5-13.6 8.5-21.7V200c0-4.4-3.6-8-8-8H464c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H376c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v59.9zM392 336c-4.4 0-8-3.6-8-8V304c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 4.4-3.6 8-8 8H392z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [512, 512, [\"long-arrow-left\"], \"f177\", \"M109.3 288L480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [576, 512, [], \"e55c\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M320 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"]\n};\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faCog = faGear;\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [640, 512, [\"tint-slash\"], \"f5c7\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L491.5 359.9c3-12.8 4.5-26.2 4.5-39.9c0-74.1-102.3-230.6-150.9-300.7c-12.3-17.7-37.8-17.7-50.1 0c-20.8 30-51.4 75.8-79.6 124.1L38.8 5.1zM144 320c0 97.2 78.8 176 176 176c48.1 0 91.7-19.3 123.5-50.6L170 229.9c-15.6 34.7-26 66.6-26 90.1zm96 0c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [128332], \"f678\", \"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [640, 512, [], \"e52b\", \"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [512, 512, [], \"e54b\", \"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [576, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H76.1l60.3 316.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H179.9l-9.1-48h317c14.3 0 26.9-9.5 30.8-23.3l54-192C578.3 52.3 563 32 541.8 32H122l-2.4-12.5C117.4 8.2 107.5 0 96 0H24zM176 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm336-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [576, 512, [], \"e55f\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M40 352c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zm192 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 320l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40zM232 192c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 160l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40L40 32C17.9 32 0 49.9 0 72l0 48c0 22.1 17.9 40 40 40zM232 32c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z\"]\n};\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M289 24.2C292.5 10 305.3 0 320 0H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H345L239 487.8c-3.2 13-14.2 22.6-27.6 24s-26.1-5.5-32.1-17.5L76.2 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c12.1 0 23.2 6.8 28.6 17.7l73.3 146.6L289 24.2zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [320, 512, [\"step-backward\"], \"f048\", \"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [640, 512, [], \"f432\", \"M550.3 0c-10.9 0-21.4 3.4-30.2 9.8L279.7 184.6c-13.9 10.1-26.8 21.4-38.7 33.8L138.7 325.3c-9.2 9.6-19.3 18.4-30.1 26.3L79.3 372.9c1.3 1.5 2.6 3 3.9 4.7l48 64c1.6 2.2 3.1 4.4 4.4 6.6l27.3-19.9c11.6-8.4 24-15.8 37-21.8l135.3-63.1c16.7-7.8 32.7-17.2 47.6-28.1L619 143.6c13.2-9.6 21-24.9 21-41.2c0-11-3.6-21.8-10.2-30.6L609.6 44.8 591.4 20.6C581.7 7.6 566.5 0 550.3 0zM496 512c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM57.6 396.8c-10.6-14.1-30.7-17-44.8-6.4s-17 30.7-6.4 44.8l48 64c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-48-64z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [384, 512, [115], \"53\", \"M131.1 105.4c-20.1 8.6-30.8 21.8-33.9 39.4c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3c-16.8-5.6-25.8-23.7-20.3-40.5s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5-31.5-5.5c7.3-42.5 35.3-71.7 71.8-87.3c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.1 22.7c-11.2-3-48.2-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [640, 512, [], \"e29c\", \"M128 120c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32 49.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM536 96c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM320 440c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [576, 512, [\"clinic-medical\"], \"f7f2\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V152c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h32l-18.8 75.1c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [576, 512, [\"battery-3\"], \"f242\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm208 32V320H96V192H288z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [576, 512, [9772], \"f66d\", \"M277.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C376.9 97.4 400 134 400 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L304 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L433.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L304 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C229.8 463.3 219.9 472 208 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L144 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C58.4 324.5 32 277.1 32 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29c4.8-3.2 8.9-5.7 11.8-7.3c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C137.2 119 128 149.5 128 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L272 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C199.1 254.6 176 218 176 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM252.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C259 210.2 264 190.9 264 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C317 141.8 312 161.1 312 176s5 34.2 11.8 53.1z\"]\n};\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M0 416c0-17.7 14.3-32 32-32l54.7 0c12.3-28.3 40.5-48 73.3-48s61 19.7 73.3 48L480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-246.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 448c-17.7 0-32-14.3-32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-32-80c32.8 0 61 19.7 73.3 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-54.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l246.7 0c12.3-28.3 40.5-48 73.3-48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm73.3 0L480 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-214.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 128C14.3 128 0 113.7 0 96S14.3 64 32 64l86.7 0C131 35.7 159.2 16 192 16s61 19.7 73.3 48z\"]\n};\nvar faSlidersH = faSliders;\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M320 144c0 79.5-64.5 144-144 144S32 223.5 32 144S96.5 0 176 0s144 64.5 144 144zM176 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM144 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM224 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 360c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zm0-160c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zM120 96c0 30.9-25.1 56-56 56S8 126.9 8 96S33.1 40 64 40s56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128v80c26.5 0 48 21.5 48 48s-21.5 48-48 48v80c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V304c-26.5 0-48-21.5-48-48s21.5-48 48-48V128c0-35.3-28.7-64-64-64H64zm64 96l0 192H448V160H128zm-32 0c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [512, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 88L32 208c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l288 0 0 88c0 9.6 5.7 18.2 14.5 22z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M63 23.9C59.4 10.1 46.9 0 32 0C14.3 0 0 14.3 0 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V380.1c2-.8 4.8-1.8 8.2-3c8-2.8 19.4-6.6 32.6-10.4C131.9 359 164.5 352 192 352c26.3 0 46 6.4 70 14.4l1 .3c23.8 7.9 51.9 17.3 89 17.3c36.8 0 72.5-9.1 98.1-17.6c13-4.3 23.8-8.7 31.5-11.9c3.8-1.6 6.9-3 9-4c1.1-.5 1.9-.9 2.5-1.2l.7-.4 .2-.1 .1 0 0 0 0 0s0 0-14.3-28.6l14.3 28.6c10.8-5.4 17.7-16.5 17.7-28.6V289.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 311.5 402.1 320 368 320c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2C247.5 295.3 221.4 288 192 288c-29.7 0-61.9 7.5-87.3 15.3C92.1 307.2 81.5 311 74 313.9c-3.7 1.4-6.7 2.6-8.6 3.5L64 318V283.5c7.9-3 18.7-6.9 31.3-10.8c26.6-8.2 62.4-16.7 96.7-16.7c34.3 0 64.2 8.5 91.8 16.4l.7 .2c28.3 8.1 54.2 15.4 83.5 15.4c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V193.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 215.5 402.1 224 368 224c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2C247.5 199.3 221.4 192 192 192c-29.7 0-61.9 7.5-87.3 15.3C92.1 211.2 81.5 215 74 217.9c-3.7 1.4-6.7 2.6-8.6 3.5L64 222V187.5c7.9-3 18.7-6.9 31.3-10.8c26.6-8.2 62.4-16.7 96.7-16.7c34.3 0 64.2 8.5 91.8 16.4l0 0 .7 .2c28.3 8.1 54.2 15.4 83.5 15.4c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V97.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 119.5 402.1 128 368 128c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2c-6.7-1.9-13.2-3.8-19.7-5.5V72.8c9.6 2.4 18.8 5 27.8 7.6l.7 .2C312.8 88.7 338.7 96 368 96c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V32c0-11.4-6.1-21.9-15.9-27.7s-22-5.8-31.9-.2l-.2 .1c-.3 .2-.7 .4-1.4 .8c-1.3 .7-3.4 1.8-6.2 3.1c-5.5 2.6-13.6 6.2-23.4 9.8c-20 7.3-46.2 14.1-73 14.1c-26.7 0-50.6-6.6-79.1-14.8l-1.3-.4C252.3 9.1 220.5 0 184 0C147.3 0 109.8 9 82.6 17.4c-7.2 2.2-13.8 4.4-19.6 6.5zM208 48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-64 8c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 72c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-48-8c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [640, 512, [], \"e51d\", \"M192 0H48C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H162.7c6.6-18.6 24.4-32 45.3-32V272c0-44.2 35.8-80 80-80h32V128H224c-17.7 0-32-14.3-32-32V0zm96 224c-26.5 0-48 21.5-48 48v16 96 32H208c-8.8 0-16 7.2-16 16v16c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V432c0-8.8-7.2-16-16-16H592V288c0-35.3-28.7-64-64-64H320 304 288zm32 64H528V416H304V288h16zM224 0V96h96L224 0z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M472.7 188.8c-8.5 13.8-26.8 19.6-42.7 13.6L356 174.2c-14-5.3-22.5-18.5-21-32.4l4.6-42.6c-54.1-17.4-113.2-17.4-167.3 0l4.6 42.6c1.5 13.9-7 27.1-21 32.4L82 202.4c-15.9 6.1-34.2 .3-42.7-13.6L4.5 132.5c-7.7-12.4-5.4-28 5.5-38.1c135.9-125.8 356.1-125.8 492 0c10.9 10.1 13.2 25.7 5.5 38.1l-34.8 56.4zM32 272c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V272zm0 192c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V464zM96 352h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H384c-8.8 0-16-7.2-16-16V368zM336 256h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V272zm16 176h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V464c0-8.8 7.2-16 16-16zM128 464c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V464z\"]\n};\nvar faTeletype = faTty;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [512, 512, [], \"e476\", \"M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z\"]\n};\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [576, 512, [], \"e54e\", \"M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM320 80c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [384, 512, [\"hiking\"], \"f6ec\", \"M288 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM243.3 230.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z\"]\n};\nvar faHiking = faPersonHiking;\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S80 114.1 80 176s50.1 112 112 112zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM256 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zM64 224c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM160 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zM288 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM256 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32H0zM32 64L56.6 43.5C48 33.2 33.8 29.3 21.1 33.9S0 50.5 0 64l32 0zM352 448l-24.6 20.5c8.6 10.3 22.8 14.2 35.5 9.6s21.1-16.6 21.1-30.1H352zM384 64c0-17.7-14.3-32-32-32s-32 14.3-32 32h64zM64 448V64H0V448H64zM7.4 84.5l320 384 49.2-41-320-384L7.4 84.5zM384 448V64H320V448h64z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-64-8c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z\"]\n};\nvar faTram = faCableCar;\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z\"]\n};\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [640, 512, [], \"e4d4\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [576, 512, [128674], \"f21a\", \"M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [640, 512, [], \"e4b8\", \"M576 416L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L512 274.7 512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L192 274.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L86.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zM432 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrin = faFaceGrin;\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [576, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [9193], \"f04e\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMeh = faFaceMeh;\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z\"]\n};\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 128c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"]\n};\nvar faBookDead = faBookSkull;\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM352 208c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [512, 512, [\"dedent\"], \"f03b\", \"M32 64c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 96 32 81.7 32 64zM224 192c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm32 96H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32zM32 448c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L32.2 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [576, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H32zM160 224H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [576, 512, [8644, \"exchange\"], \"f0ec\", \"M422.6 278.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 176H64c-17.7 0-32-14.3-32-32s14.3-32 32-32H434.7L377.4 54.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l112 112c12.5 12.5 12.5 32.8 0 45.3l-112 112zm-269.3 224l-112-112c-12.5-12.5-12.5-32.8 0-45.3l112-112c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L141.3 336H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H141.3l57.4 57.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [448, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"]\n};\nvar faCutlery = faUtensils;\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zM128 368c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zm288 0c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192h88l0 288c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32l0-288h88c9.6 0 18.2-5.7 22-14.5z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [384, 512, [9209], \"f04d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32.4 49.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM392 272c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm-96 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [576, 512, [], \"e52d\", \"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"]\n};\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 224c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zm-96 32c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm96-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z\"]\n};\nvar faZap = faBolt;\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [448, 512, [], \"e4f4\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm41 156.5L98.4 64H349.6L343 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L105 156.5z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [576, 512, [], \"e2c5\", \"M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 80c-88.4 0-160-71.6-160-160s71.6-160 160-160s160 71.6 160 160s-71.6 160-160 160zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [448, 512, [9794], \"f222\", \"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [320, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M58.6 46.2C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM352 256c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zm32 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M0 464V316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5C361.6 7.9 384 23.8 384 46.4c0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H48c-26.5 0-48-21.5-48-48zM328 224c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H352V352c0 53-43 96-96 96s-96-43-96-96V128H48z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64V304v48 80c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L320 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4V64c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [512, 512, [], \"e4c1\", \"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM512 384c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 64c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64S28.7 64 64 64z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [62774], \"3c\", \"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [448, 512, [8964], \"f107\", \"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h64H384h64c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM384 512c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V480c0 17.7-14.3 32-32 32zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm200-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M0 201.7C0 90.3 90.3 0 201.7 0H224c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H416v32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 35.3-28.7 64-64 64H288c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V375.8c0-17-7.1-33-17.5-46.4C18.3 293.2 0 246.5 0 201.7zM336 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm272 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40 24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm-64 48c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm128 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM608 504c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40-72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-25.3-19.5-46-44.3-47.9c7.7-8.5 12.3-19.8 12.3-32.1c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 320H96c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64V288c0 17.7 14.3 32 32 32z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [512, 512, [\"long-arrow-right\"], \"f178\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M120 256c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm160 0c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm104 56c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M264 136c0 37.1-19.4 69.6-48.6 88H224c17.7 0 32 14.3 32 32s-14.3 32-32 32c0 96 24 128 24 128H72s24-32 24-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h8.5C75.4 205.6 56 173.1 56 136C56 78.6 102.6 32 160 32s104 46.6 104 104zM32 448H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [576, 512, [\"first-aid\"], \"f479\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 256c-70.7 0-128-57.3-128-128S249.3 0 320 0s128 57.3 128 128s-57.3 128-128 128zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faAutomobile = faCar;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M352 96c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM240 248V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [640, 512, [], \"e52f\", \"M560 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [640, 512, [], \"e4ba\", \"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M64.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L217.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L63.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM32 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L56.2 158C45.6 151.6 32 159.3 32 171.7zM326.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L338.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM512 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L302.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM249.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM57.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L46.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L418.9 238.1c-6.5-10-21.4-9.6-27.3 .8L306.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H199.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM190.4 176H353.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"]\n};\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [640, 512, [], \"e58c\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"]\n};\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [512, 512, [\"temperature-up\"], \"e040\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM448 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [127941], \"f5a2\", \"M16 0H144c5.3 0 10.3 2.7 13.3 7.1l81.1 121.6c-49.5 4.1-94 25.6-127.6 58.3L2.7 24.9C-.6 20-.9 13.7 1.9 8.5S10.1 0 16 0zM509.3 24.9L401.2 187.1c-33.5-32.7-78.1-54.2-127.6-58.3L354.7 7.1c3-4.5 8-7.1 13.3-7.1H496c5.9 0 11.3 3.2 14.1 8.5s2.5 11.5-.8 16.4zM432 336c0 97.2-78.8 176-176 176s-176-78.8-176-176s78.8-176 176-176s176 78.8 176 176zM264.4 241.1c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zM176 288c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-32c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [576, 512, [], \"e560\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M601.2 5.1c10.4-8.2 25.5-6.3 33.7 4.1s6.3 25.5-4.1 33.7l-592 464c-10.4 8.2-25.5 6.3-33.7-4.1s-6.3-25.5 4.1-33.7l155.6-122C101.8 270 64 171.4 64 64c0-18 12.1-33.8 29.5-38.6l88-24c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L208 207.3c12 25.5 27.2 49.2 45 70.7L601.2 5.1zM325.7 343.7c13.7 9.1 28 17.3 43 24.3L409 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C545.8 499.9 530 512 512 512c-104.9 0-201.3-36-277.7-96.4l91.3-72z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [640, 512, [\"hands-helping\"], \"f4c4\", \"M543.9 251.4c0-1.1 .1-2.2 .1-3.4c0-48.6-39.4-88-88-88l-40 0H320l-16 0 0 0v16 72c0 22.1-17.9 40-40 40s-40-17.9-40-40V128h.4c4-36 34.5-64 71.6-64H408c2.8 0 5.6 .2 8.3 .5l40.1-40.1c21.9-21.9 57.3-21.9 79.2 0l78.1 78.1c21.9 21.9 21.9 57.3 0 79.2l-69.7 69.7zM192 128V248c0 39.8 32.2 72 72 72s72-32.2 72-72V192h80l40 0c30.9 0 56 25.1 56 56c0 27.2-19.4 49.9-45.2 55c8.2 8.6 13.2 20.2 13.2 33c0 26.5-21.5 48-48 48h-2.7c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48H224c-.9 0-1.8 0-2.7-.1l-37.7 37.7c-21.9 21.9-57.3 21.9-79.2 0L26.3 407.6c-21.9-21.9-21.9-57.3 0-79.2L96 258.7V224c0-53 43-96 96-96z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [62769], \"3e\", \"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [576, 512, [127946, \"swimmer\"], \"f5c4\", \"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM32 160c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 496c97.2 0 176-78.8 176-176c0-74.1-102.3-230.6-150.9-300.7c-12.3-17.7-37.8-17.7-50.1 0C118.3 89.4 16 245.9 16 320c0 97.2 78.8 176 176 176zM112 320c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTint = faDroplet;\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M480 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [576, 512, [\"battery-0\"], \"f244\", \"M80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zM64 176c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z\"]\n};\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [320, 512, [], \"e447\", \"M96.9 96c2.1-11.6 8.7-19.8 21.1-25.4c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8c-34.7-5.7-69.4-3.6-98 9.3c-29.8 13.5-52.2 38.6-58 74.1c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C54.3 194.2 38.5 215.1 33.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"]\n};\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M0 204.2V48c0-8.8 7.2-16 16-16H72c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h80c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h56c8.8 0 16 7.2 16 16V204.2c0 12.1-6.8 23.2-17.7 28.6l-28.6 14.3c-10.8 5.4-17.7 16.5-17.5 28.6C322.2 360.7 336 416 336 416H48s13.8-55.3 15.8-140.2c.3-12.1-6.6-23.2-17.5-28.6L17.7 232.8C6.8 227.4 0 216.3 0 204.2zM176 320h32c8.8 0 16-7.2 16-16V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [512, 512, [\"blind\"], \"f29d\", \"M176 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [576, 512, [129345], \"f569\", \"M533.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L402.2 104.5C367.8 98.7 329 96 288 96C146.6 96 32 128 32 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM339.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C490.4 181.8 496 197.4 496 208c0 .8-2.7 17.2-46 35.9C411.1 260.7 354 272 288 272s-123.1-11.3-162-28.1C82.7 225.2 80 208.8 80 208c0-10.6 5.6-26.2 44.4-41.3C162.6 151.9 219.8 144 288 144c18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16C336 64.5 271.5 0 192 0S48 64.5 48 144c0 5.4 .3 10.7 .9 16H48c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H336c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM64 288L168.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L320 288H64z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 448c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-96-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [576, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M160 48c0-26.5 21.5-48 48-48h48V80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V0h48c26.5 0 48 21.5 48 48V176c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48zM48 288H96v80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V288h48c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336c0-26.5 21.5-48 48-48zm320 0h48v80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V288h48c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V336c0-26.5 21.5-48 48-48z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [640, 512, [128279, \"chain\"], \"f0c1\", \"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"]\n};\nvar faChain = faLink;\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM192 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [384, 512, [9654], \"f04b\", \"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z\"]\n};\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z\"]\n};\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H293c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219v-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 512c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [576, 512, [\"diagnoses\"], \"f470\", \"M288 176c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM272 280c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm56 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM96 240c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm368 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M0 24C0 10.7 10.7 0 24 0H96c11.5 0 21.4 8.2 23.6 19.5L122 32H312V134.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V32H541.8c21.2 0 36.5 20.3 30.8 40.7l-54 192c-3.9 13.8-16.5 23.3-30.8 23.3h-317l9.1 48H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H160c-11.5 0-21.4-8.2-23.6-19.5L76.1 48H24C10.7 48 0 37.3 0 24zM224 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm240 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [576, 512, [128221, \"file-edit\"], \"f31c\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V285.7l-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faFileEdit = faFilePen;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.2 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [576, 512, [], \"e53f\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [512, 512, [], \"f078\", \"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [576, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm368 32V320H96V192H448z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [512, 512, [128369, 9760], \"f714\", \"M400 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H208c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C112 57.3 176.5 0 256 0s144 57.3 144 128zM200 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm144-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM35.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L256 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L327.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L256 419.8 78.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L184.4 384 49.7 316.6c-15.8-7.9-22.2-27.1-14.3-42.9z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432c0 13.3 10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M64 144c26.5 0 48-21.5 48-48s-21.5-48-48-48S16 69.5 16 96s21.5 48 48 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48-208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faListDots = faListUl;\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0l139 92.7L602.4 126c22 4.9 37.6 24.4 37.6 46.9V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V172.8c0-22.5 15.6-42 37.6-46.9L163.2 98.1l139-92.7zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M318 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26S14.4 320 24 320h88l0-288c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32l0 288h88c9.6 0 18.2 5.7 22 14.5z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [640, 512, [], \"e561\", \"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H416c10.3 0 19.9 4.9 26 13.3s7.7 19.1 4.4 28.8L375.1 416H72.9L1.6 202.1C-1.6 192.4 0 181.6 6 173.3s15.7-13.3 26-13.3H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM32 480c0-17.7 14.3-32 32-32H83.6 364.4 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128 64c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM216 192c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [576, 512, [\"tasks\"], \"f0ae\", \"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faTasks = faListCheck;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 272c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zM268.3 308.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4s-16.6 20.4-29.4 17zM545 358.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M241.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H504c13.3 0 24 10.7 24 24s-10.7 24-24 24H475.8c-10.8 0-21.4-2-31.5-5.8L92.1 371.3c-11.5-4.4-22-11.2-30.8-20L39 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L224 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM171 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.4-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L171 350.1zM464 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm368-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1z\"]\n};\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M256 448C150 448 64 362 64 256S150 64 256 64s192 86 192 192s-86 192-192 192zm0 64c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [576, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [512, 512, [], \"f0c5\", \"M224 0c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224zM64 160c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64H64V224h64V160H64z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [448, 512, [\"grip-horizontal\"], \"f58d\", \"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V136zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z\"]\n};\nvar faGripHorizontal = faGrip;\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M384 24c0-9.6 5.7-18.2 14.5-22s19-2 26 4.6l144 136c4.8 4.5 7.5 10.8 7.5 17.4s-2.7 12.9-7.5 17.4l-144 136c-7 6.6-17.2 8.4-26 4.6s-14.5-12.5-14.5-22V224H352 337.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C242.8 374.8 160 333.4 160 240c0-79.5 64.5-144 144-144h80V24zM0 144C0 99.8 35.8 64 80 64H96c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V416c0-17.7 14.3-32 32-32s32 14.3 32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V144z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"]\n};\nvar faAdd = faPlus;\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [640, 512, [], \"e4e5\", \"M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 224c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [320, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 256c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm-26.7 32h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [384, 512, [], \"e222\", \"M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [448, 512, [], \"f77c\", \"M296 88c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"]\n};\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [640, 512, [], \"e592\", \"M211.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM321.6 192c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [128668], \"f722\", \"M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256c-44.2 0-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80s-35.8-80-80-80zM528 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [640, 512, [], \"e4b0\", \"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [448, 512, [], \"e51e\", \"M222.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM384 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [576, 512, [], \"f62e\", \"M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [576, 512, [], \"f54e\", \"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [576, 512, [], \"e55e\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-87.5-68.6c.5-1.7 .7-3.5 .7-5.4c0-27.6-11-54.1-30.5-73.7L512 320c-20.5-20.5-32-48.3-32-77.3V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM160 242.7c0 29-11.5 56.8-32 77.3l-1.5 1.5C107 341 96 367.5 96 395.2c0 11.5 9.3 20.8 20.8 20.8H406.2L160 222.1v20.7zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M288 0H400c8.8 0 16 7.2 16 16V64c0 8.8-7.2 16-16 16H320V95.5L410.3 160H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [576, 512, [], \"f575\", \"M118.6 9.4C106.1-3.1 85.9-3.1 73.4 9.4s-12.5 32.8 0 45.3L154.7 136 62.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L180.1 481.4c37.5 37.5 98.3 37.5 135.8 0L506.3 290.9c28.1-28.1 28.1-73.7 0-101.8L354.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L200 90.7 118.6 9.4zM200 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L245.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L461.1 234.3c3.1 3.1 3.1 8.2 0 11.3L418.7 288H99.5c1.4-5.4 4.2-10.4 8.4-14.6L200 181.3z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [448, 512, [8963], \"f106\", \"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [384, 512, [9001], \"f053\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 278.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-3.1 11c-7.4-.3-14.9 .4-22.4 2.1c-9 2.1-17.8 4.4-26.2 7l-4.4-10.3c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l3.6 8.5c-16.5 7.1-31.5 15.1-45.2 23.9L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l5.8 8.7c-13.5 11.2-25.3 23.1-35.5 35.3l-10.1-8.1c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L66 155c-1.6 2.4-3.1 4.8-4.5 7.3c-7.1 11.8-12.8 23.2-17.4 34l-7.4-3c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l8.7 3.5c-.2 .8-.4 1.6-.7 2.3c-2.6 9.4-4.2 17.4-5.3 23.5c-.5 3.1-.9 5.7-1.2 7.7c-.1 1-.2 2-.3 2.7l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.4 2.8l0 0-29.4-2.7c-.3 3.8-.4 7.5-.3 11.2l-11 3.1C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l10.3-2.9c8 15.5 20.7 28.3 36.4 36.4L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l3.1-11c17.8 .8 34.7-4.1 48.8-13.2l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c6.8-10.6 11.3-22.9 12.7-36.2l.1-.6c.2-1.3 .7-3.8 1.7-7.4l.2-.6 9.4 4c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.5-3.6c7.5-11.1 18.7-23.7 36.5-34.5l1.6 5.6c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-3-10.6c5.2-1.7 10.7-3.2 16.6-4.6c9.7-2.2 18.5-6 26.4-11.1l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c9.1-14.3 14-31.2 13.2-48.8l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-10.3 2.9c-8.1-15.9-21-28.5-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3zM106.2 275.8l-37.1-3.4 0 0 37.1 3.4zM128 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm96-112c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm98.7 345c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l3.1-11c7.4 .3 14.9-.4 22.4-2.1c9-2.1 17.8-4.4 26.2-7l4.4 10.3c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-3.6-8.5c16.5-7.1 31.5-15.1 45.2-23.9L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-5.8-8.7c13.5-11.2 25.3-23.1 35.5-35.3l10.1 8.1c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574 357c1.6-2.4 3.1-4.8 4.5-7.3c7.1-11.8 12.8-23.2 17.4-34l7.4 3c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-8.7-3.5c.2-.8 .4-1.6 .7-2.3c2.6-9.4 4.2-17.4 5.3-23.5c.5-3.1 .9-5.7 1.2-7.7c.1-1 .2-2 .3-2.7l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.4-2.8l0 0 29.4 2.7c.3-3.8 .4-7.5 .3-11.2l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-10.3 2.9c-8-15.5-20.7-28.3-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.2 12.4l-3.1 11c-17.8-.8-34.7 4.1-48.8 13.2l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-6.8 10.6-11.3 22.9-12.7 36.2l-.1 .6c-.2 1.3-.7 3.8-1.7 7.4l-.2 .6-9.4-4c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.5 3.6c-7.5 11.1-18.7 23.7-36.5 34.5l-1.6-5.6c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l3 10.6c-5.2 1.7-10.7 3.2-16.6 4.6c-9.7 2.2-18.5 6-26.4 11.1l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-9.1 14.2-14 31.2-13.2 48.8l-11 3.1c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l10.3-2.9c8.1 15.9 21 28.5 36.4 36.4l-3 10.3zM570.9 239.5l0 0-37.1-3.4 37.1 3.4zM384 384c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M238.5 53.1C251 39.6 268.6 32 287 32c28.9 0 54.5 18.7 63.2 46.3L366 128.6c7.3 23 25.2 41 48.2 48.3l62.2 19.9c21.2 6.8 35.6 26.5 35.6 48.7c0 17.5-8.9 33.7-23.6 43.1l-85.9 54.8c-10.6 6.8-16.6 18.8-15.7 31.3l2.5 33.9c2.8 38.5-27.7 71.4-66.4 71.4c-13.6 0-26.9-4.2-38.1-12l-48.2-33.6c-14.8-10.3-32.3-15.8-50.3-15.8H170.2c-4.9 0-9.9 .4-14.8 1.2L83.9 432.1c-21.3 3.6-42.8-5.7-54.6-23.9c-11.8-18.1-11.8-41.4 0-59.4L56.5 307c4.9-7.5 7.5-16.3 7.5-25.3c0-9.9-3.2-19.5-9-27.4L11.3 194.6C-6.5 170.3-.7 136.2 24.2 119.2c9.7-6.6 21.2-9.8 32.9-9.1l80.6 4.6c26.1 1.5 51.5-8.7 69.4-27.9l31.5-33.8zM160 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM288 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 368c-61.9 0-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112s-50.1 112-112 112zm0 64c97.2 0 176-78.8 176-176s-78.8-176-176-176S16 158.8 16 256s78.8 176 176 176z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [384, 512, [9002], \"f054\", \"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [448, 512, [], \"e06b\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM32 128V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [576, 512, [\"battery-2\"], \"f243\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm112 32V320H96V192h96z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 400c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 512c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm336-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 320c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48zm-48-80c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zM160 64c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM224 240c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm256 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [384, 512, [62101, 62785, \"percentage\"], \"25\", \"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128c0-35.3-28.7-64-64-64S0 92.7 0 128s28.7 64 64 64s64-28.7 64-64zM384 384c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faPercentage = faPercent;\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM240 400c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM80 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [448, 512, [], \"e4f5\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm51 297.5L98.4 64H349.6L333 297.5 320 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM288 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C193.7 125.9 160 172 160 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [576, 512, [], \"e163\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSmile = faFaceSmile;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [127942], \"f091\", \"M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [448, 512, [128720, \"pray\"], \"f683\", \"M352 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [128296], \"f6e3\", \"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M320 0c17.7 0 32 14.3 32 32V96H480c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm152 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.7 8.4 166.9 8 160 8s-13.7 .4-20.4 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM208 176c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 400c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCogs = faGears;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [576, 512, [], \"e4b7\", \"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM448 208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm128 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM272 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM144 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM576 336c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-48-80c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M287.6 .1c-19.7 0-38.3 9.1-50.4 24.6L205.9 64.9c-17.9 23-46 35.6-75.1 33.7L59.1 94c-13.5-.9-26.9 3.2-37.7 11.6C-1.3 123.2-6.7 155.2 8.8 179.4l44.5 69.2c7.1 11 10.8 23.8 10.8 36.8c0 11.9-3.1 23.5-9 33.8L27.4 367.7c-10 17.5-10 39.1 0 56.6c12.1 21.2 36.4 32.3 60.4 27.7l67-13c5.5-1.1 11.2-1.6 16.8-1.6H180c20.9 0 41 7.4 56.9 20.9l45 38.2c11.8 10 26.9 15.6 42.4 15.6c37.8 0 67.7-31.9 65.4-69.6l-3.1-50.6c-1-16.8 6.6-32.9 20.1-42.8l82.5-60.2c14.2-10.4 22.7-27 22.7-44.6c0-23.2-14.5-43.9-36.3-51.8l-58.2-21.2c-24.4-8.9-42.9-29.1-49.7-54.2L349.3 47.4C341.8 19.5 316.5 .1 287.6 .1z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [512, 512, [9895, \"transgender-alt\"], \"f225\", \"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224c0 61.9 50.1 112 112 112s112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112z\"]\n};\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [640, 512, [], \"e547\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80c0-26.5-21.5-48-48-48S0 53.5 0 80s21.5 48 48 48s48-21.5 48-48zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"]\n};\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v80c-26.5 0-48 21.5-48 48s21.5 48 48 48v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V304c26.5 0 48-21.5 48-48s-21.5-48-48-48V128z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z\"]\n};\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [512, 512, [171, \"angle-double-left\"], \"f100\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M48 32C21.5 32 0 53.5 0 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm80 64v64H64V96h64zM48 288c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48zm80 64v64H64V352h64zM256 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H304c-26.5 0-48 21.5-48 48zm64 16h64v64H320V96zm32 352v32h32V448H352zm96 0H416v32h32V448zM416 288v32H352V288H256v96 96h64V384h32v32h96V352 320 288H416z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [512, 512, [\"history\"], \"f1da\", \"M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [640, 512, [\"arrow-right-from-file\"], \"f56e\", \"M32 64C32 28.7 60.7 0 96 0H256V128c0 17.7 14.3 32 32 32H416V288H248c-13.3 0-24 10.7-24 24s10.7 24 24 24H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM416 336V288H526.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H416zm0-208H288V0L416 128z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [576, 512, [], \"e3b2\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zm-52.3-49.3c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [576, 512, [], \"e00d\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [640, 512, [], \"e580\", \"M152.1 41.8c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120 488 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L118.5 72l33.5-30.2zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [640, 512, [], \"e582\", \"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H224V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [129365], \"f787\", \"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"]\n};\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm32-352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", \"M320 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M448 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm64 0c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [640, 512, [128692, \"biking\"], \"f84a\", \"M400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM200 384c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128s128-57.3 128-128zm328 0c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [129529], \"f51a\", \"M627.6 57.3c14-10.9 16.5-31 5.6-44.9s-31-16.5-44.9-5.6l-144 112-72 56-8.7 6.8-30.8-39.4c-3.7-4.8-9.8-7-15.8-5.8s-10.7 5.7-12.3 11.5l-12.5 46.3L371.1 295l48-.9c6.1-.1 11.5-3.7 14.1-9.1s1.9-11.9-1.8-16.7L403 231.9l8.6-6.7 72-56 144-112zM16.7 507.7c37.4 2.8 196.8 12 252.3-31.4c57.7-45.1 76.8-161.5 76.8-161.5L267.1 213.9s-117.6-9.6-175.3 35.5C69 267.1 50.5 304.1 36.3 344c-2.4 6.7 4.7 12.8 11 9.4L86.2 333c4.1-2.2 9.2-1.1 12 2.6s2.7 8.8-.4 12.3L24.4 430.4C13.2 442.9 5.5 458.1 2.4 474.5c-.9 4.8-1.6 8.9-2.2 12.1c-.9 5 .5 10.1 3.6 14.1s7.7 6.6 12.8 7z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [62098], \"23\", \"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z\"]\n};\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM184 496H40c-13.3 0-24-10.7-24-24V328c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm88 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM480 144c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM512 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [640, 512, [], \"e538\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 160c44.2 0 80 35.8 80 80s-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80zM263.8 320c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [576, 512, [], \"e554\", \"M432 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"]\n};\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [256, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [640, 512, [], \"f73c\", \"M513.2 0C449 0 395.5 46.5 385.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM399.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C273.3 114.6 242.8 96 208 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H399.9zM117.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"]\n};\nvar faHaykal = faBahai;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z\"]\n};\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 232c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [576, 512, [], \"e55d\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [640, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M0 448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H224c-53 0-96-43-96-96V160H64c-35.3 0-64 28.7-64 64V448zm224-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"]\n};\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"]\n};\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [576, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z\"]\n};\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"]\n};\nvar faQuran = faBookQuran;\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.3 382.1c-5.4 12.3 8.7 21.6 21.1 16.4c22.4-9.5 47.4-14.8 73.7-14.8s51.3 5.3 73.7 14.8c12.4 5.2 26.5-4.1 21.1-16.4c-16-36.6-52.4-62.1-94.8-62.1s-78.8 25.6-94.8 62.1zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM128 416c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zM125.8 177.3L51.1 320H204.9L130.2 177.3c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3zM128 128c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 402.6 178.2 416 128 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 155c8.7-16.6 25.9-27 44.7-27zm384 48c-.9 0-1.7 .5-2.2 1.3L435.1 320H588.9L514.2 177.3c-.4-.8-1.3-1.3-2.2-1.3zm-44.7-21c8.7-16.6 25.9-27 44.7-27s36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 402.6 562.2 416 512 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 155z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm32-32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32H0zM32 64L58.6 46.2c-7.8-11.7-22.4-17-35.9-12.9S0 49.9 0 64l32 0zM224 352l-26.6 17.8c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L224 352zM416 64h32c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L416 64zM384 448c0 17.7 14.3 32 32 32s32-14.3 32-32H384zM64 448V64H0V448H64zM5.4 81.8l192 288 53.3-35.5-192-288L5.4 81.8zm245.3 288l192-288L389.4 46.2l-192 288 53.3 35.5zM384 64V448h64V64H384z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [512, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z\"]\n};\nvar faThList = faTableList;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM202.9 176.8c6.5-2.2 13.7 .1 17.9 5.6L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2zm173.1 38c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.2-.4-23.7-4.4-32.6-7.4l0 0 0 0c-1.4-.5-2.7-.9-4-1.4c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.7 .6 3.3 1.1 4.9 1.6l0 0 0 0c9.1 3.1 15.6 5.3 22.6 5.5c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4c-7.2-2.2-16.7-5-24.3-9.6c-9-5.4-17.7-14.7-17.7-29.4c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c10 .2 19.7 2.3 27.9 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-7.3-1.9-14.1-3.3-20.1-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9zm-272 0c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.3-.4-24.2-4.5-33.2-7.6l0 0 0 0c-1.3-.4-2.5-.8-3.6-1.2c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.4 .5 2.7 .9 4 1.4l0 0 0 0 0 0c9.5 3.2 16.5 5.6 23.7 5.8c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4 0 0c-7.2-2.2-16.7-5-24.3-9.6C80.8 239 72.1 229.7 72 215c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c9.5 .1 22.2 2.1 31.1 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-6.6-1.8-16.8-3.3-23.3-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9z\"]\n};\nvar faSms = faCommentSms;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [10003, 10004], \"f00c\", \"M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [576, 512, [\"battery-4\"], \"f241\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm272 32V320H96V192H352z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [320, 512, [8249], \"f104\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [512, 512, [], \"e47a\", \"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [640, 512, [], \"e58b\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z\"]\n};\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32V144H128V32c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H32V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 128c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM256 192c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm72 80c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [640, 512, [], \"e569\", \"M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z\"]\n};\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.6-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [640, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [128214, 128366], \"f518\", \"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C87.5 32 35.1 48.6 9 59.9c-5.6 2.4-9 8-9 14V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V73.9c0-6.1-3.4-11.6-9-14C540.9 48.6 488.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z\"]\n};\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.3-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.7-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-10-20.7-26.1-38-46.4-49.2c17 27.1 11 62.8-14 82.6c14.1 14.6 19.1 35.9 13.1 55.2c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-6-19.4-1-40.5 13.1-55.2c-25-19.9-31-55.5-14-82.6c-20.1 11.2-36.4 28.5-46.4 49.2l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [640, 512, [], \"e4f8\", \"M304 32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM192 112c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-32 16c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zM368 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"arrow-turn-right\", \"mail-forward\"], \"f064\", \"M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"]\n};\nvar faArrowTurnRight = faShare;\nvar faMailForward = faShare;\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [256, 512, [], \"e4c4\", \"M64 0C50.7 0 40 10.7 40 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C21.7 174.1 0 212.5 0 256V448c0 35.3 28.7 64 64 64H192c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H72l0 0 0 0L64 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C153.9 288.9 176 320.2 176 337c0 24.9-21.5 45-48 45z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L277.3 424.9l-40.1 74.5c-5.2 9.7-16.3 14.6-27 11.9S192 499 192 488V392c0-5.3 1.8-10.5 5.1-14.7L362.4 164.7c2.5-7.1-6.5-14.3-13-8.4L170.4 318.2l-32 28.9 0 0c-9.2 8.3-22.3 10.6-33.8 5.8l-85-35.4C8.4 312.8 .8 302.2 .1 290s5.5-23.7 16.1-29.8l448-256c10.7-6.1 23.9-5.5 34 1.4z\"]\n};\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [576, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm91 .5c33.7-43.3 53.8-97.8 53.8-157s-20.1-113.6-53.8-157l12.4-12.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L413 53.8C369.6 20.1 315.2 0 256 0S142.4 20.1 99 53.8L86.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L53.8 99C20.1 142.4 0 196.8 0 256s20.1 113.6 53.8 157L41.4 425.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L99 458.2c43.3 33.7 97.8 53.8 157 53.8s113.6-20.1 157-53.8l12.4 12.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L458.2 413zm-45.7-45.7l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M154.9 162c.3 .7 .7 1.5 1.1 2.2l17.8 30.9c11.1-12.6 27.4-19.8 44.4-19.1l-20.7-35.8c-6.6-11.5-21.3-15.4-32.8-8.8c-10.8 6.2-14.9 19.5-9.9 30.6zm173.6 47C399.7 231.7 448 297.8 448 372.5c0 1.5 0 3-.1 4.5c39.7-25.6 64.1-69.7 64.1-117.4V136c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 81.7L347.8 16.5C341.2 5 326.5 1.1 315.1 7.7s-15.4 21.3-8.8 32.8l64 110.9c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9l-80-138.6C269.8 9.3 255.1 5.4 243.6 12s-15.4 21.3-8.8 32.8l80 138.6c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9L237 80.5c-6.6-11.5-21.3-15.4-32.8-8.8s-15.4 21.3-8.8 32.8l44 76.2L328.5 209zM64 488c0 12.4 9.4 22.6 21.5 23.9c.8 .1 1.6 .1 2.5 .1H288.7 296c66.3 0 120-53.7 120-120c0-1.2 0-2.4-.1-3.6c0-1.2 .1-2.5 .1-3.7c0-68-44-128.2-108.9-148.9l-83.9-26.7c-12.6-4-26.1 3-30.1 15.6s3 26.1 15.6 30.1L262.6 272H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H88c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [576, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [320, 512, [\"arrows-v\"], \"f07d\", \"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zm40.4-192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M416 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M178.3 506.3L40.3 368.3C35 363 32 355.8 32 348.3C32 332.7 44.7 320 60.3 320H144V112c0-8.8-7.2-16-16-16H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0h96c61.9 0 112 50.1 112 112V320h83.7c15.6 0 28.3 12.7 28.3 28.3c0 7.5-3 14.7-8.3 20L205.7 506.3C202 510 197.1 512 192 512s-10-2-13.7-5.7z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [640, 512, [], \"e552\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [127922], \"f522\", \"M252.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-184 184c-15.6 15.6-15.6 40.9 0 56.6l184 184c15.6 15.6 40.9 15.6 56.6 0l184-184c15.6-15.6 15.6-40.9 0-56.6l-184-184zM248 224c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM96 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm128 80c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm128-80c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM224 72c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm96 392c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H472.5c13.4 26.9 8.8 60.5-13.6 82.9L320 413.8V464zm160-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM240 144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [640, 512, [129657, \"band-aid\"], \"f462\", \"M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM296 208c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-72 72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBandAid = faBandage;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H312z\"]\n};\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H208V448h96v64H480c17.7 0 32-14.3 32-32s-14.3-32-32-32V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V112zM368 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM96 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V208zm144-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V208zm-3 152.2c3.3 12.8-7.8 23.8-21 23.8H184c-13.3 0-24.3-10.9-21-23.8c10.6-41.5 48.2-72.2 93-72.2s82.5 30.7 93 72.2z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM144.5 348.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM496 288c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM272 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 48c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM352 448c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-80-16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faAllergies = faHandDots;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [640, 512, [\"coffee\"], \"f0f4\", \"M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M192 64L160 0H128L96 64 64 0H48C21.5 0 0 21.5 0 48V256H384V48c0-26.5-21.5-48-48-48H224L192 64zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm192 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"]\n};\nvar faUserLarge = {\n prefix: 'fas',\n iconName: 'user-large',\n icon: [512, 512, [\"user-alt\"], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0S112 64.5 112 144s64.5 144 144 144zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z\"]\n};\nvar faUserAlt = faUserLarge;\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [448, 512, [128650], \"e5b4\", \"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.7 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [128137], \"f48e\", \"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M122.4 1.2C127.6-.9 133.4-.2 137.9 3l70.3 50.3L278.5 3c4.5-3.2 10.3-3.9 15.4-1.8s8.8 6.7 9.7 12.2l14.1 85.3L403 112.8c5.4 .9 10.1 4.6 12.2 9.7s1.4 10.9-1.8 15.4l-38.8 54.3c-2.2-.1-4.3-.2-6.5-.2c-23.2 0-45 6.2-63.8 17c.1-12.5-2.2-25.3-7.3-37.6c-20.3-49-76.4-72.2-125.4-52s-72.2 76.4-52 125.4c18.3 44.3 66 67.5 111.1 56.6c-36.3 18.2-62.8 53.3-69.1 94.9l-23.6 16.9c-4.5 3.2-10.3 3.9-15.4 1.8s-8.8-6.7-9.7-12.2L98.7 317.7 13.4 303.6c-5.5-.9-10.1-4.6-12.2-9.7S-.2 282.9 3 278.5l50.3-70.3L3 137.9c-3.2-4.5-3.9-10.3-1.8-15.4s6.7-8.8 12.2-9.7L98.7 98.7l14.1-85.3c.9-5.5 4.6-10.1 9.7-12.2zM149 232.7c-13.5-32.7 2-70.1 34.6-83.6s70.1 2 83.6 34.6s-2 70.1-34.6 83.6s-70.1-2-83.6-34.6zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 0H512V512H0V0z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z\"]\n};\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H290.7c17 0 33.3-6.7 45.3-18.7L429.3 368c12-12 18.7-28.3 18.7-45.3V96c0-35.3-28.7-64-64-64H64zm0 64H384V320H320c-17.7 0-32 14.3-32 32v64H64V96z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [640, 512, [], \"e490\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96zM160.3 256H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7V479.2z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [576, 512, [], \"e4b6\", \"M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [576, 512, [129460], \"f5d7\", \"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM303.6 208c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm-128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [576, 512, [], \"e581\", \"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM64 480c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [448, 512, [], \"e4bb\", \"M224 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H416c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C331.4 52.6 280.1 32 224 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM100.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C20.6 148.6 0 199.9 0 256c0 10.9 .8 21.5 2.3 32H67.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM445.7 224H380.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H416c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C427.4 363.4 448 312.1 448 256c0-10.9-.8-21.5-2.3-32zM224 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H32c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C116.6 459.4 167.9 480 224 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zm-16-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M128 32c17.7 0 32 14.3 32 32V99.3L279.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C410.5 399.8 326.1 480 223.8 480H128c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 117.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c10.6 1.6 42.1 6.7 55.1 10c17.1 4.3 27.5 21.7 23.2 38.9s-21.7 27.5-38.9 23.2c-9.3-2.4-37.6-7-48.9-8.7c-32.1-4.8-59.6-2.4-78.5 4.9c-18.3 7-25.9 16.9-27.9 28c-1.9 10.7-.5 16.8 1.3 20.6c1.9 4 5.6 8.5 12.9 13.4c16.2 10.8 41.1 17.9 73.3 26.7l2.8 .8c28.4 7.7 63.2 17.2 89 34.3c14.1 9.4 27.3 22.1 35.5 39.7c8.3 17.8 10.1 37.8 6.3 59.1c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.2-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.4 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.7 .5-16.8-1.3-20.6c-1.9-4-5.6-8.5-12.9-13.4c-16.2-10.8-41.1-17.9-73.3-26.7l-2.8-.8c-28.4-7.7-63.2-17.2-89-34.3c-14.1-9.4-27.3-22.1-35.5-39.7c-8.3-17.8-10.1-37.8-6.3-59.1C25 114.1 53 89.3 86 76.7c13-5 27.2-8.2 42-10V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M144 160c44.2 0 80-35.8 80-80s-35.8-80-80-80S64 35.8 64 80s35.8 80 80 80zm368 0c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM552 384c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [576, 512, [], \"e54a\", \"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8.1-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zm128-96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [640, 512, [], \"f0e9\", \"M320 0c17.7 0 32 14.3 32 32V49.7C483.8 63.4 589.7 161 605.9 285.9c2 15.6-17.3 24.4-27.8 12.7C564.1 283 536.8 272 512 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C391 299.5 358.7 272 320 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C199 299.5 166.7 272 128 272c-24.8 0-52.1 11-66.1 26.7c-10.5 11.7-29.8 2.9-27.8-12.7C50.3 161 156.2 63.4 288 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [512, 512, [], \"e589\", \"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32H160c123.7 0 224 100.3 224 224s-100.3 224-224 224H32c-17.7 0-32-14.3-32-32V64zM64 96V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160H64z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [640, 512, [127917, \"theater-masks\"], \"f630\", \"M399.3 509.7c-58.2-8.8-108.2-72.8-137.6-119.7c-20-31.9-25.1-70.3-19.6-107.7L266.3 118c1.4-9.8 5.1-19.2 12.9-25.2c20.2-15.6 72.4-41.5 185.1-24.5s155.2 57.4 170 78.3c5.7 8 6.5 18.1 5.1 27.9L615.2 338.8c-5.5 37.3-21.5 72.6-49.8 97.2c-41.7 36.1-108 82.5-166.1 73.7zm17.1-277.7c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8c4.4 3.1 10.8 2 11.8-3.3zm112.6 22.2c4.4 3.1 10.8 2 11.8-3.3c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8zm-11.5 85.2c-28.8 12.8-61.4 17.8-94.9 12.8s-63.2-19.5-87-40.3c-6.3-5.5-16.2-1.7-15.2 6.7c5.9 48.5 43 89.1 93 96.7s97.2-20.2 116.8-64.9c3.4-7.7-5-14.3-12.6-10.9zM240.7 446.9c-58.2 8.8-124.5-37.5-166.1-73.7c-28.3-24.5-44.3-59.8-49.8-97.2L.6 111.8C-.8 102 0 91.9 5.7 83.9C20.5 63 63 22.7 175.7 5.6s164.9 8.9 185.1 24.5c.9 .7 1.7 1.4 2.4 2.1c-52.8 4.8-85.1 21-103.6 35.3c-17 13.1-23 32-25 45.9L215.3 244.7c-2.6 .1-5.2 .4-7.9 .8c-35.2 5.3-61.8 32.7-68.2 66.3c-1.6 8.2 8.3 12.2 14.8 7c15.6-12.4 34.1-21.3 54.7-25.4c-3 38.4 4 78.7 25.9 113.6c6.9 11 15 23.1 24.2 35.4c-5.9 2.1-11.9 3.6-18 4.5zM174.1 157c-1-5.3-7.4-6.4-11.8-3.3c-7.7 5.5-16.8 9.3-26.8 10.8s-19.8 .6-28.7-2.4c-5.1-1.7-10.9 1.3-10.3 6.7c.1 .5 .1 1.1 .2 1.6c3.2 21.8 23.2 36.8 44.7 33.5s36.3-23.5 33.1-45.3c-.1-.5-.2-1.1-.3-1.6z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0V96L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm-64-64c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H224zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32H352c88.4 0 160-71.6 160-160V226.3c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64v88c0 22.1 17.9 40 40 40s40-17.9 40-40V160c0-8.8 7.2-16 16-16s16 7.2 16 16v56c0 39.8-32.2 72-72 72z\"]\n};\nvar faHandshakeSimple = {\n prefix: 'fas',\n iconName: 'handshake-simple',\n icon: [640, 512, [129309, \"handshake-alt\"], \"f4c6\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"]\n};\nvar faHandshakeAlt = faHandshakeSimple;\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [640, 512, [\"fighter-jet\"], \"f0fb\", \"M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"]\n};\nvar faVideoCamera = faVideo;\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [127891, \"mortar-board\"], \"f19d\", \"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [576, 512, [], \"e53e\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M178.3 5.7L40.3 143.7C35 149 32 156.2 32 163.7C32 179.3 44.7 192 60.3 192H144V400c0 8.8-7.2 16-16 16H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96c61.9 0 112-50.1 112-112V192h83.7c15.6 0 28.3-12.7 28.3-28.3c0-7.5-3-14.7-8.3-20L205.7 5.7C202 2 197.1 0 192 0s-10 2-13.7 5.7z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faFillDrip: faFillDrip,\n faArrowsToCircle: faArrowsToCircle,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faAt: faAt,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTextHeight: faTextHeight,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faStethoscope: faStethoscope,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faInfo: faInfo,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faExplosion: faExplosion,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faWaveSquare: faWaveSquare,\n faRing: faRing,\n faBuildingUn: faBuildingUn,\n faDiceThree: faDiceThree,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faArrowsUpToLine: faArrowsUpToLine,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faDoorOpen: faDoorOpen,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faAtom: faAtom,\n faSoap: faSoap,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faPumpMedical: faPumpMedical,\n faFingerprint: faFingerprint,\n faHandPointRight: faHandPointRight,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFlagCheckered: faFlagCheckered,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faCrop: faCrop,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faUsersRectangle: faUsersRectangle,\n faPeopleRoof: faPeopleRoof,\n faPeopleLine: faPeopleLine,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faDiagramPredecessor: faDiagramPredecessor,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faPerson: faPerson,\n faMale: faMale,\n faLaptop: faLaptop,\n faFileCsv: faFileCsv,\n faMenorah: faMenorah,\n faTruckPlane: faTruckPlane,\n faRecordVinyl: faRecordVinyl,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faBong: faBong,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faJarWheat: faJarWheat,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faFileCircleExclamation: faFileCircleExclamation,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faPager: faPager,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faStrikethrough: faStrikethrough,\n faK: faK,\n faLandmarkFlag: faLandmarkFlag,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faBackward: faBackward,\n faCaretRight: faCaretRight,\n faComments: faComments,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faCodePullRequest: faCodePullRequest,\n faClipboardList: faClipboardList,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faUserCheck: faUserCheck,\n faVialVirus: faVialVirus,\n faSheetPlastic: faSheetPlastic,\n faBlog: faBlog,\n faUserNinja: faUserNinja,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faToggleOff: faToggleOff,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faPersonDrowning: faPersonDrowning,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faSprayCan: faSprayCan,\n faTruckMonster: faTruckMonster,\n faW: faW,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faRainbow: faRainbow,\n faCircleNotch: faCircleNotch,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faPaw: faPaw,\n faCloud: faCloud,\n faTrowelBricks: faTrowelBricks,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faHospitalUser: faHospitalUser,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faGavel: faGavel,\n faLegal: faLegal,\n faBinoculars: faBinoculars,\n faMicrophoneSlash: faMicrophoneSlash,\n faBoxTissue: faBoxTissue,\n faMotorcycle: faMotorcycle,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faScissors: faScissors,\n faCut: faCut,\n faSunPlantWilt: faSunPlantWilt,\n faToiletsPortable: faToiletsPortable,\n faHockeyPuck: faHockeyPuck,\n faTable: faTable,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faUsersSlash: faUsersSlash,\n faClover: faClover,\n faReply: faReply,\n faMailReply: faMailReply,\n faStarAndCrescent: faStarAndCrescent,\n faHouseFire: faHouseFire,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faHelicopter: faHelicopter,\n faCompass: faCompass,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faFileCircleQuestion: faFileCircleQuestion,\n faLaptopCode: faLaptopCode,\n faSwatchbook: faSwatchbook,\n faPrescriptionBottle: faPrescriptionBottle,\n faBars: faBars,\n faNavicon: faNavicon,\n faPeopleGroup: faPeopleGroup,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faFilm: faFilm,\n faRulerHorizontal: faRulerHorizontal,\n faPeopleRobbery: faPeopleRobbery,\n faLightbulb: faLightbulb,\n faCaretLeft: faCaretLeft,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faHeadphonesSimple: faHeadphonesSimple,\n faHeadphonesAlt: faHeadphonesAlt,\n faSitemap: faSitemap,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faMemory: faMemory,\n faRoadSpikes: faRoadSpikes,\n faFireBurner: faFireBurner,\n faFlag: faFlag,\n faHanukiah: faHanukiah,\n faFeather: faFeather,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCommentSlash: faCommentSlash,\n faCloudSunRain: faCloudSunRain,\n faCompress: faCompress,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faAnkh: faAnkh,\n faHandsHoldingChild: faHandsHoldingChild,\n faAsterisk: faAsterisk,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faPesetaSign: faPesetaSign,\n faHeading: faHeading,\n faHeader: faHeader,\n faGhost: faGhost,\n faList: faList,\n faListSquares: faListSquares,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faCartPlus: faCartPlus,\n faGamepad: faGamepad,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faEgg: faEgg,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faCampground: faCampground,\n faFolderPlus: faFolderPlus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faLock: faLock,\n faGasPump: faGasPump,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faHouseFloodWater: faHouseFloodWater,\n faTree: faTree,\n faBridgeLock: faBridgeLock,\n faSackDollar: faSackDollar,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faCarSide: faCarSide,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faHeartCircleMinus: faHeartCircleMinus,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faMicroscope: faMicroscope,\n faSink: faSink,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faMitten: faMitten,\n faPersonRays: faPersonRays,\n faUsers: faUsers,\n faEyeSlash: faEyeSlash,\n faFlaskVial: faFlaskVial,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faOm: faOm,\n faWorm: faWorm,\n faHouseCircleXmark: faHouseCircleXmark,\n faPlug: faPlug,\n faChevronUp: faChevronUp,\n faHandSpock: faHandSpock,\n faStopwatch: faStopwatch,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faChessBishop: faChessBishop,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faRoadCircleCheck: faRoadCircleCheck,\n faDiceFive: faDiceFive,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faLandMineOn: faLandMineOn,\n faICursor: faICursor,\n faStamp: faStamp,\n faStairs: faStairs,\n faI: faI,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faPills: faPills,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faTooth: faTooth,\n faV: faV,\n faBicycle: faBicycle,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faSnowman: faSnowman,\n faMortarPestle: faMortarPestle,\n faRoadBarrier: faRoadBarrier,\n faSchool: faSchool,\n faIgloo: faIgloo,\n faJoint: faJoint,\n faAngleRight: faAngleRight,\n faHorse: faHorse,\n faQ: faQ,\n faG: faG,\n faNotesMedical: faNotesMedical,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faDongSign: faDongSign,\n faCapsules: faCapsules,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faHandPointUp: faHandPointUp,\n faMoneyBill: faMoneyBill,\n faBookmark: faBookmark,\n faAlignJustify: faAlignJustify,\n faUmbrellaBeach: faUmbrellaBeach,\n faHelmetUn: faHelmetUn,\n faBullseye: faBullseye,\n faBacon: faBacon,\n faHandPointDown: faHandPointDown,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faRadiation: faRadiation,\n faChartSimple: faChartSimple,\n faMarsStroke: faMarsStroke,\n faVial: faVial,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faE: faE,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faUser: faUser,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faDumpster: faDumpster,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faBuildingUser: faBuildingUser,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faHighlighter: faHighlighter,\n faKey: faKey,\n faBullhorn: faBullhorn,\n faGlobe: faGlobe,\n faSynagogue: faSynagogue,\n faPersonHalfDress: faPersonHalfDress,\n faRoadBridge: faRoadBridge,\n faLocationArrow: faLocationArrow,\n faC: faC,\n faTabletButton: faTabletButton,\n faBuildingLock: faBuildingLock,\n faPizzaSlice: faPizzaSlice,\n faMoneyBillWave: faMoneyBillWave,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faHouseFlag: faHouseFlag,\n faPersonCircleMinus: faPersonCircleMinus,\n faBan: faBan,\n faCancel: faCancel,\n faCameraRotate: faCameraRotate,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faStar: faStar,\n faRepeat: faRepeat,\n faCross: faCross,\n faBox: faBox,\n faVenusMars: faVenusMars,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faChargingStation: faChargingStation,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faMobileRetro: faMobileRetro,\n faGripLinesVertical: faGripLinesVertical,\n faSpider: faSpider,\n faHandsBound: faHandsBound,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faXRay: faXRay,\n faSpellCheck: faSpellCheck,\n faSlash: faSlash,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faServer: faServer,\n faVirusCovidSlash: faVirusCovidSlash,\n faShopLock: faShopLock,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faBlenderPhone: faBlenderPhone,\n faBuildingWheat: faBuildingWheat,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faVenus: faVenus,\n faPassport: faPassport,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faTemperatureHigh: faTemperatureHigh,\n faMicrochip: faMicrochip,\n faCrown: faCrown,\n faWeightHanging: faWeightHanging,\n faXmarksLines: faXmarksLines,\n faFilePrescription: faFilePrescription,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faChessKnight: faChessKnight,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faWheelchair: faWheelchair,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faToggleOn: faToggleOn,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faL: faL,\n faFire: faFire,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faFolderOpen: faFolderOpen,\n faHeartCirclePlus: faHeartCirclePlus,\n faCodeFork: faCodeFork,\n faCity: faCity,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faPepperHot: faPepperHot,\n faUnlock: faUnlock,\n faColonSign: faColonSign,\n faHeadset: faHeadset,\n faStoreSlash: faStoreSlash,\n faRoadCircleXmark: faRoadCircleXmark,\n faUserMinus: faUserMinus,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faClipboard: faClipboard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faBath: faBath,\n faBathtub: faBathtub,\n faUnderline: faUnderline,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faSignature: faSignature,\n faStroopwafel: faStroopwafel,\n faBold: faBold,\n faAnchorLock: faAnchorLock,\n faBuildingNgo: faBuildingNgo,\n faManatSign: faManatSign,\n faNotEqual: faNotEqual,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faJedi: faJedi,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faMugHot: faMugHot,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faGift: faGift,\n faDiceTwo: faDiceTwo,\n faChessQueen: faChessQueen,\n faGlasses: faGlasses,\n faChessBoard: faChessBoard,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faPersonChalkboard: faPersonChalkboard,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faCloudShowersWater: faCloudShowersWater,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faLessThanEqual: faLessThanEqual,\n faTrain: faTrain,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCrow: faCrow,\n faSailboat: faSailboat,\n faWindowRestore: faWindowRestore,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faToriiGate: faToriiGate,\n faFrog: faFrog,\n faBucket: faBucket,\n faImage: faImage,\n faMicrophone: faMicrophone,\n faCow: faCow,\n faCaretUp: faCaretUp,\n faScrewdriver: faScrewdriver,\n faFolderClosed: faFolderClosed,\n faHouseTsunami: faHouseTsunami,\n faSquareNfi: faSquareNfi,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faLemon: faLemon,\n faHeadSideMask: faHeadSideMask,\n faHandshake: faHandshake,\n faGem: faGem,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faSmoking: faSmoking,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faMonument: faMonument,\n faSnowplow: faSnowplow,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faCannabis: faCannabis,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faTablets: faTablets,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faChair: faChair,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faPlateWheat: faPlateWheat,\n faIcicles: faIcicles,\n faPersonShelter: faPersonShelter,\n faNeuter: faNeuter,\n faIdBadge: faIdBadge,\n faMarker: faMarker,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faHelicopterSymbol: faHelicopterSymbol,\n faUniversalAccess: faUniversalAccess,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faLariSign: faLariSign,\n faVolcano: faVolcano,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faViruses: faViruses,\n faSquarePersonConfined: faSquarePersonConfined,\n faUserTie: faUserTie,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faCertificate: faCertificate,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faSuitcase: faSuitcase,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCameraRetro: faCameraRetro,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faBoxOpen: faBoxOpen,\n faScroll: faScroll,\n faSpa: faSpa,\n faLocationPinLock: faLocationPinLock,\n faPause: faPause,\n faHillAvalanche: faHillAvalanche,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBomb: faBomb,\n faRegistered: faRegistered,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faSubscript: faSubscript,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faBurst: faBurst,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faMoneyBills: faMoneyBills,\n faSmog: faSmog,\n faCrutch: faCrutch,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faPalette: faPalette,\n faArrowsTurnRight: faArrowsTurnRight,\n faVest: faVest,\n faFerry: faFerry,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faBoxesPacking: faBoxesPacking,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faBowlFood: faBowlFood,\n faCandyCane: faCandyCane,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFileWord: faFileWord,\n faFilePowerpoint: faFilePowerpoint,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faHouseLock: faHouseLock,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faChildren: faChildren,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUserLargeSlash: faUserLargeSlash,\n faUserAltSlash: faUserAltSlash,\n faEnvelopeOpen: faEnvelopeOpen,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faMattressPillow: faMattressPillow,\n faGuaraniSign: faGuaraniSign,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faFireExtinguisher: faFireExtinguisher,\n faCruzeiroSign: faCruzeiroSign,\n faGreaterThanEqual: faGreaterThanEqual,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faVirus: faVirus,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faLayerGroup: faLayerGroup,\n faArrowsToDot: faArrowsToDot,\n faArchway: faArchway,\n faHeartCircleCheck: faHeartCircleCheck,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faSquare: faSquare,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faCouch: faCouch,\n faCediSign: faCediSign,\n faItalic: faItalic,\n faChurch: faChurch,\n faCommentsDollar: faCommentsDollar,\n faDemocrat: faDemocrat,\n faZ: faZ,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faRoadLock: faRoadLock,\n faA: faA,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faP: faP,\n faSnowflake: faSnowflake,\n faNewspaper: faNewspaper,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faFilterCircleXmark: faFilterCircleXmark,\n faLocust: faLocust,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faPersonDressBurst: faPersonDressBurst,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faVectorSquare: faVectorSquare,\n faBreadSlice: faBreadSlice,\n faLanguage: faLanguage,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFilter: faFilter,\n faQuestion: faQuestion,\n faFileSignature: faFileSignature,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faHouseChimneyUser: faHouseChimneyUser,\n faHandHoldingHeart: faHandHoldingHeart,\n faPuzzlePiece: faPuzzlePiece,\n faMoneyCheck: faMoneyCheck,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faCode: faCode,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faCubesStacked: faCubesStacked,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faVirusCovid: faVirusCovid,\n faAustralSign: faAustralSign,\n faF: faF,\n faLeaf: faLeaf,\n faRoad: faRoad,\n faTaxi: faTaxi,\n faCab: faCab,\n faPersonCirclePlus: faPersonCirclePlus,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faBoltLightning: faBoltLightning,\n faSackXmark: faSackXmark,\n faFileExcel: faFileExcel,\n faFileContract: faFileContract,\n faFishFins: faFishFins,\n faBuildingFlag: faBuildingFlag,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faObjectUngroup: faObjectUngroup,\n faPoop: faPoop,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faKaaba: faKaaba,\n faToiletPaper: faToiletPaper,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faEject: faEject,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faObjectGroup: faObjectGroup,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faMaskVentilator: faMaskVentilator,\n faArrowRight: faArrowRight,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faCashRegister: faCashRegister,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faH: faH,\n faTarp: faTarp,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faArrowsToEye: faArrowsToEye,\n faPlugCircleBolt: faPlugCircleBolt,\n faHeart: faHeart,\n faMarsAndVenus: faMarsAndVenus,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faDumpsterFire: faDumpsterFire,\n faHouseCrack: faHouseCrack,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faBottleWater: faBottleWater,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faToiletPaperSlash: faToiletPaperSlash,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faKitchenSet: faKitchenSet,\n faR: faR,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faCube: faCube,\n faBitcoinSign: faBitcoinSign,\n faShieldDog: faShieldDog,\n faSolarPanel: faSolarPanel,\n faLockOpen: faLockOpen,\n faElevator: faElevator,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faCircle: faCircle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faRecycle: faRecycle,\n faUserAstronaut: faUserAstronaut,\n faPlaneSlash: faPlaneSlash,\n faTrademark: faTrademark,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faSatelliteDish: faSatelliteDish,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faUsersRays: faUsersRays,\n faWallet: faWallet,\n faClipboardCheck: faClipboardCheck,\n faFileAudio: faFileAudio,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faWrench: faWrench,\n faBugs: faBugs,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faFileImage: faFileImage,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faPlaneDeparture: faPlaneDeparture,\n faHandshakeSlash: faHandshakeSlash,\n faBookBookmark: faBookBookmark,\n faCodeBranch: faCodeBranch,\n faHatCowboy: faHatCowboy,\n faBridge: faBridge,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faTruckFront: faTruckFront,\n faCat: faCat,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faTruckField: faTruckField,\n faRoute: faRoute,\n faClipboardQuestion: faClipboardQuestion,\n faPanorama: faPanorama,\n faCommentMedical: faCommentMedical,\n faTeethOpen: faTeethOpen,\n faFileCircleMinus: faFileCircleMinus,\n faTags: faTags,\n faWineGlass: faWineGlass,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHouseSignal: faHouseSignal,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faFaucetDrip: faFaucetDrip,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTerminal: faTerminal,\n faMobileButton: faMobileButton,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faTape: faTape,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faEye: faEye,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faAudioDescription: faAudioDescription,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faFileShield: faFileShield,\n faUserSlash: faUserSlash,\n faPen: faPen,\n faTowerObservation: faTowerObservation,\n faFileCode: faFileCode,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faBus: faBus,\n faHeartCircleXmark: faHeartCircleXmark,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faWindowMaximize: faWindowMaximize,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faPrescription: faPrescription,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faVihara: faVihara,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faPlantWilt: faPlantWilt,\n faDiamond: faDiamond,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faBacterium: faBacterium,\n faHandPointer: faHandPointer,\n faDrumSteelpan: faDrumSteelpan,\n faHandScissors: faHandScissors,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faBiohazard: faBiohazard,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faMarsDouble: faMarsDouble,\n faChildDress: faChildDress,\n faUsersBetweenLines: faUsersBetweenLines,\n faLungsVirus: faLungsVirus,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPhone: faPhone,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faChildReaching: faChildReaching,\n faHeadSideVirus: faHeadSideVirus,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faDoorClosed: faDoorClosed,\n faShieldVirus: faShieldVirus,\n faDiceSix: faDiceSix,\n faMosquitoNet: faMosquitoNet,\n faBridgeWater: faBridgeWater,\n faPersonBooth: faPersonBooth,\n faTextWidth: faTextWidth,\n faHatWizard: faHatWizard,\n faPenFancy: faPenFancy,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faTrash: faTrash,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faBookMedical: faBookMedical,\n faPoo: faPoo,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faCubes: faCubes,\n faDivide: faDivide,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHeadphones: faHeadphones,\n faHandsHolding: faHandsHolding,\n faHandsClapping: faHandsClapping,\n faRepublican: faRepublican,\n faArrowLeft: faArrowLeft,\n faPersonCircleXmark: faPersonCircleXmark,\n faRuler: faRuler,\n faAlignLeft: faAlignLeft,\n faDiceD6: faDiceD6,\n faRestroom: faRestroom,\n faJ: faJ,\n faUsersViewfinder: faUsersViewfinder,\n faFileVideo: faFileVideo,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faFilePdf: faFilePdf,\n faBookBible: faBookBible,\n faBible: faBible,\n faO: faO,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faUserSecret: faUserSecret,\n faOtter: faOtter,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faCommentDollar: faCommentDollar,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faHatCowboySide: faHatCowboySide,\n faClipboardUser: faClipboardUser,\n faChild: faChild,\n faLiraSign: faLiraSign,\n faSatellite: faSatellite,\n faPlaneLock: faPlaneLock,\n faTag: faTag,\n faComment: faComment,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faEnvelope: faEnvelope,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faPaperclip: faPaperclip,\n faArrowRightToCity: faArrowRightToCity,\n faRibbon: faRibbon,\n faLungs: faLungs,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faLitecoinSign: faLitecoinSign,\n faBorderNone: faBorderNone,\n faCircleNodes: faCircleNodes,\n faParachuteBox: faParachuteBox,\n faIndent: faIndent,\n faTruckFieldUn: faTruckFieldUn,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faMountain: faMountain,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faCloudMeatball: faCloudMeatball,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faSquareVirus: faSquareVirus,\n faMeteor: faMeteor,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWater: faWater,\n faCalendarCheck: faCalendarCheck,\n faBraille: faBraille,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faLandmark: faLandmark,\n faTruck: faTruck,\n faCrosshairs: faCrosshairs,\n faPersonCane: faPersonCane,\n faTent: faTent,\n faVestPatches: faVestPatches,\n faCheckDouble: faCheckDouble,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBillWheat: faMoneyBillWheat,\n faCookie: faCookie,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faDumbbell: faDumbbell,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faTarpDroplet: faTarpDroplet,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faCalendarPlus: faCalendarPlus,\n faPlaneArrival: faPlaneArrival,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faChartGantt: faChartGantt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faDna: faDna,\n faVirusSlash: faVirusSlash,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faChildRifle: faChildRifle,\n faChess: faChess,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faPlugCircleCheck: faPlugCircleCheck,\n faStreetView: faStreetView,\n faFrancSign: faFrancSign,\n faVolumeOff: faVolumeOff,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faGear: faGear,\n faCog: faCog,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faMosque: faMosque,\n faMosquito: faMosquito,\n faStarOfDavid: faStarOfDavid,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faVials: faVials,\n faPlugCirclePlus: faPlugCirclePlus,\n faPlaceOfWorship: faPlaceOfWorship,\n faGripVertical: faGripVertical,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faU: faU,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faClock: faClock,\n faClockFour: faClockFour,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faPallet: faPallet,\n faFaucet: faFaucet,\n faBaseballBatBall: faBaseballBatBall,\n faS: faS,\n faTimeline: faTimeline,\n faKeyboard: faKeyboard,\n faCaretDown: faCaretDown,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faPlaneUp: faPlaneUp,\n faPiggyBank: faPiggyBank,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faMountainCity: faMountainCity,\n faCoins: faCoins,\n faKhanda: faKhanda,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faFolderTree: faFolderTree,\n faNetworkWired: faNetworkWired,\n faMapPin: faMapPin,\n faHamsa: faHamsa,\n faCentSign: faCentSign,\n faFlask: faFlask,\n faPersonPregnant: faPersonPregnant,\n faWandSparkles: faWandSparkles,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faTicket: faTicket,\n faPowerOff: faPowerOff,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faFlagUsa: faFlagUsa,\n faLaptopFile: faLaptopFile,\n faTty: faTty,\n faTeletype: faTeletype,\n faDiagramNext: faDiagramNext,\n faPersonRifle: faPersonRifle,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faClosedCaptioning: faClosedCaptioning,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faVenusDouble: faVenusDouble,\n faImages: faImages,\n faCalculator: faCalculator,\n faPeoplePulling: faPeoplePulling,\n faN: faN,\n faCableCar: faCableCar,\n faTram: faTram,\n faCloudRain: faCloudRain,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faShip: faShip,\n faArrowsDownToLine: faArrowsDownToLine,\n faDownload: faDownload,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faFileCircleCheck: faFileCircleCheck,\n faForward: faForward,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faAlignCenter: faAlignCenter,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faCalendarWeek: faCalendarWeek,\n faLaptopMedical: faLaptopMedical,\n faB: faB,\n faFileMedical: faFileMedical,\n faDiceOne: faDiceOne,\n faKiwiBird: faKiwiBird,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faMillSign: faMillSign,\n faBowlRice: faBowlRice,\n faSkull: faSkull,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faTruckPickup: faTruckPickup,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faStop: faStop,\n faCodeMerge: faCodeMerge,\n faUpload: faUpload,\n faHurricane: faHurricane,\n faMound: faMound,\n faToiletPortable: faToiletPortable,\n faCompactDisc: faCompactDisc,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faCaravan: faCaravan,\n faShieldCat: faShieldCat,\n faBolt: faBolt,\n faZap: faZap,\n faGlassWater: faGlassWater,\n faOilWell: faOilWell,\n faVault: faVault,\n faMars: faMars,\n faToilet: faToilet,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faSun: faSun,\n faGuitar: faGuitar,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faHorseHead: faHorseHead,\n faBoreHole: faBoreHole,\n faIndustry: faIndustry,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faFlorinSign: faFlorinSign,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faLessThan: faLessThan,\n faAngleDown: faAngleDown,\n faCarTunnel: faCarTunnel,\n faHeadSideCough: faHeadSideCough,\n faGripLines: faGripLines,\n faThumbsDown: faThumbsDown,\n faUserLock: faUserLock,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faChessPawn: faChessPawn,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faPersonThroughWindow: faPersonThroughWindow,\n faToolbox: faToolbox,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faBug: faBug,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faHandHoldingHand: faHandHoldingHand,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faMountainSun: faMountainSun,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faDiceD20: faDiceD20,\n faTruckDroplet: faTruckDroplet,\n faFileCircleXmark: faFileCircleXmark,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faMedal: faMedal,\n faBed: faBed,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faPodcast: faPodcast,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faBell: faBell,\n faSuperscript: faSuperscript,\n faPlugCircleXmark: faPlugCircleXmark,\n faStarOfLife: faStarOfLife,\n faPhoneSlash: faPhoneSlash,\n faPaintRoller: faPaintRoller,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faFile: faFile,\n faGreaterThan: faGreaterThan,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faArrowDown: faArrowDown,\n faDroplet: faDroplet,\n faTint: faTint,\n faEraser: faEraser,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faPersonBurst: faPersonBurst,\n faDove: faDove,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faSocks: faSocks,\n faInbox: faInbox,\n faSection: faSection,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faWineBottle: faWineBottle,\n faChessRook: faChessRook,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faDharmachakra: faDharmachakra,\n faHotdog: faHotdog,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faDrum: faDrum,\n faIceCream: faIceCream,\n faHeartCircleBolt: faHeartCircleBolt,\n faFax: faFax,\n faParagraph: faParagraph,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faStarHalf: faStarHalf,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faLink: faLink,\n faChain: faChain,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faTreeCity: faTreeCity,\n faPlay: faPlay,\n faFont: faFont,\n faRupiahSign: faRupiahSign,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faNairaSign: faNairaSign,\n faCartArrowDown: faCartArrowDown,\n faWalkieTalkie: faWalkieTalkie,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faReceipt: faReceipt,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faSuitcaseRolling: faSuitcaseRolling,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faChevronDown: faChevronDown,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faSkullCrossbones: faSkullCrossbones,\n faCodeCompare: faCodeCompare,\n faListUl: faListUl,\n faListDots: faListDots,\n faSchoolLock: faSchoolLock,\n faTowerCell: faTowerCell,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faRankingStar: faRankingStar,\n faChessKing: faChessKing,\n faPersonHarassing: faPersonHarassing,\n faBrazilianRealSign: faBrazilianRealSign,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faArrowUp: faArrowUp,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faShrimp: faShrimp,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faJugDetergent: faJugDetergent,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faUserShield: faUserShield,\n faWind: faWind,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faY: faY,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faFish: faFish,\n faUserGraduate: faUserGraduate,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faClapperboard: faClapperboard,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faJetFighterUp: faJetFighterUp,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faCopy: faCopy,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faHandSparkles: faHandSparkles,\n faGrip: faGrip,\n faGripHorizontal: faGripHorizontal,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faGun: faGun,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faPlus: faPlus,\n faAdd: faAdd,\n faExpand: faExpand,\n faComputer: faComputer,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faPesoSign: faPesoSign,\n faBuildingShield: faBuildingShield,\n faBaby: faBaby,\n faUsersLine: faUsersLine,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faTractor: faTractor,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faArrowDownUpLock: faArrowDownUpLock,\n faLinesLeaning: faLinesLeaning,\n faRulerCombined: faRulerCombined,\n faCopyright: faCopyright,\n faEquals: faEquals,\n faBlender: faBlender,\n faTeeth: faTeeth,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faMap: faMap,\n faRocket: faRocket,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faFolderMinus: faFolderMinus,\n faStore: faStore,\n faArrowTrendUp: faArrowTrendUp,\n faPlugCircleMinus: faPlugCircleMinus,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faBezierCurve: faBezierCurve,\n faBellSlash: faBellSlash,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faSchoolFlag: faSchoolFlag,\n faFill: faFill,\n faAngleUp: faAngleUp,\n faDrumstickBite: faDrumstickBite,\n faHollyBerry: faHollyBerry,\n faChevronLeft: faChevronLeft,\n faBacteria: faBacteria,\n faHandLizard: faHandLizard,\n faDisease: faDisease,\n faBriefcaseMedical: faBriefcaseMedical,\n faGenderless: faGenderless,\n faChevronRight: faChevronRight,\n faRetweet: faRetweet,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faPumpSoap: faPumpSoap,\n faVideoSlash: faVideoSlash,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faRadio: faRadio,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faTrafficLight: faTrafficLight,\n faThermometer: faThermometer,\n faVrCardboard: faVrCardboard,\n faHandMiddleFinger: faHandMiddleFinger,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faTruckMoving: faTruckMoving,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faDisplay: faDisplay,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faTrophy: faTrophy,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faHammer: faHammer,\n faHandPeace: faHandPeace,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSpinner: faSpinner,\n faRobot: faRobot,\n faPeace: faPeace,\n faGears: faGears,\n faCogs: faCogs,\n faWarehouse: faWarehouse,\n faArrowUpRightDots: faArrowUpRightDots,\n faSplotch: faSplotch,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faDiceFour: faDiceFour,\n faSimCard: faSimCard,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faMercury: faMercury,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faPersonFallingBurst: faPersonFallingBurst,\n faAward: faAward,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faBuilding: faBuilding,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faQrcode: faQrcode,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faHouseMedical: faHouseMedical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faPenNib: faPenNib,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTents: faTents,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faDog: faDog,\n faCarrot: faCarrot,\n faMoon: faMoon,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faCheese: faCheese,\n faYinYang: faYinYang,\n faMusic: faMusic,\n faCodeCommit: faCodeCommit,\n faTemperatureLow: faTemperatureLow,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBroom: faBroom,\n faShieldHeart: faShieldHeart,\n faGopuram: faGopuram,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHashtag: faHashtag,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faOilCan: faOilCan,\n faT: faT,\n faHippo: faHippo,\n faChartColumn: faChartColumn,\n faInfinity: faInfinity,\n faVialCircleCheck: faVialCircleCheck,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faVoicemail: faVoicemail,\n faFan: faFan,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faCloudMoonRain: faCloudMoonRain,\n faCalendar: faCalendar,\n faTrailer: faTrailer,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faSdCard: faSdCard,\n faDragon: faDragon,\n faShoePrints: faShoePrints,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faHandHolding: faHandHolding,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faClone: faClone,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faTornado: faTornado,\n faFileCirclePlus: faFileCirclePlus,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faAnchor: faAnchor,\n faBorderAll: faBorderAll,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faCookieBite: faCookieBite,\n faArrowTrendDown: faArrowTrendDown,\n faRss: faRss,\n faFeed: faFeed,\n faDrawPolygon: faDrawPolygon,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faShower: faShower,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faM: faM,\n faTableList: faTableList,\n faThList: faThList,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faBook: faBook,\n faUserPlus: faUserPlus,\n faCheck: faCheck,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faHouseCircleCheck: faHouseCircleCheck,\n faAngleLeft: faAngleLeft,\n faDiagramSuccessor: faDiagramSuccessor,\n faTruckArrowRight: faTruckArrowRight,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCloudMoon: faCloudMoon,\n faBriefcase: faBriefcase,\n faPersonFalling: faPersonFalling,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faUserTag: faUserTag,\n faRug: faRug,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faBahtSign: faBahtSign,\n faBookOpen: faBookOpen,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faHandcuffs: faHandcuffs,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faDatabase: faDatabase,\n faShare: faShare,\n faArrowTurnRight: faArrowTurnRight,\n faMailForward: faMailForward,\n faBottleDroplet: faBottleDroplet,\n faMaskFace: faMaskFace,\n faHillRockslide: faHillRockslide,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPaperPlane: faPaperPlane,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faDungeon: faDungeon,\n faAlignRight: faAlignRight,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLifeRing: faLifeRing,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faCalendarDay: faCalendarDay,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faDice: faDice,\n faBowlingBall: faBowlingBall,\n faBrain: faBrain,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faCalendarMinus: faCalendarMinus,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faGifts: faGifts,\n faHotel: faHotel,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faThumbsUp: faThumbsUp,\n faUserClock: faUserClock,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faFileInvoice: faFileInvoice,\n faWindowMinimize: faWindowMinimize,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faBrush: faBrush,\n faMask: faMask,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faRulerVertical: faRulerVertical,\n faUserLarge: faUserLarge,\n faUserAlt: faUserAlt,\n faTrainTram: faTrainTram,\n faUserNurse: faUserNurse,\n faSyringe: faSyringe,\n faCloudSun: faCloudSun,\n faStopwatch20: faStopwatch20,\n faSquareFull: faSquareFull,\n faMagnet: faMagnet,\n faJar: faJar,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faBugSlash: faBugSlash,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faBone: faBone,\n faUserInjured: faUserInjured,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faPlane: faPlane,\n faTentArrowsDown: faTentArrowsDown,\n faExclamation: faExclamation,\n faArrowsSpin: faArrowsSpin,\n faPrint: faPrint,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faX: faX,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faUmbrella: faUmbrella,\n faTrowel: faTrowel,\n faD: faD,\n faStapler: faStapler,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faKipSign: faKipSign,\n faHandPointLeft: faHandPointLeft,\n faHandshakeSimple: faHandshakeSimple,\n faHandshakeAlt: faHandshakeAlt,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faBarcode: faBarcode,\n faPlusMinus: faPlusMinus,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faHandHoldingMedical: faHandHoldingMedical,\n faPersonCircleCheck: faPersonCircleCheck,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faFillDrip, faArrowsToCircle, faCircleChevronRight, faChevronCircleRight, faAt, faTrashCan, faTrashAlt, faTextHeight, faUserXmark, faUserTimes, faStethoscope, faMessage, faCommentAlt, faInfo, faDownLeftAndUpRightToCenter, faCompressAlt, faExplosion, faFileLines, faFileAlt, faFileText, faWaveSquare, faRing, faBuildingUn, faDiceThree, faCalendarDays, faCalendarAlt, faAnchorCircleCheck, faBuildingCircleArrowRight, faVolleyball, faVolleyballBall, faArrowsUpToLine, faSortDown, faSortDesc, faCircleMinus, faMinusCircle, faDoorOpen, faRightFromBracket, faSignOutAlt, faAtom, faSoap, faIcons, faHeartMusicCameraBolt, faMicrophoneLinesSlash, faMicrophoneAltSlash, faBridgeCircleCheck, faPumpMedical, faFingerprint, faHandPointRight, faMagnifyingGlassLocation, faSearchLocation, faForwardStep, faStepForward, faFaceSmileBeam, faSmileBeam, faFlagCheckered, faFootball, faFootballBall, faSchoolCircleExclamation, faCrop, faAnglesDown, faAngleDoubleDown, faUsersRectangle, faPeopleRoof, faPeopleLine, faBeerMugEmpty, faBeer, faDiagramPredecessor, faArrowUpLong, faLongArrowUp, faFireFlameSimple, faBurn, faPerson, faMale, faLaptop, faFileCsv, faMenorah, faTruckPlane, faRecordVinyl, faFaceGrinStars, faGrinStars, faBong, faSpaghettiMonsterFlying, faPastafarianism, faArrowDownUpAcrossLine, faSpoon, faUtensilSpoon, faJarWheat, faEnvelopesBulk, faMailBulk, faFileCircleExclamation, faCircleH, faHospitalSymbol, faPager, faAddressBook, faContactBook, faStrikethrough, faK, faLandmarkFlag, faPencil, faPencilAlt, faBackward, faCaretRight, faComments, faPaste, faFileClipboard, faCodePullRequest, faClipboardList, faTruckRampBox, faTruckLoading, faUserCheck, faVialVirus, faSheetPlastic, faBlog, faUserNinja, faPersonArrowUpFromLine, faScrollTorah, faTorah, faBroomBall, faQuidditch, faQuidditchBroomBall, faToggleOff, faBoxArchive, faArchive, faPersonDrowning, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faSprayCan, faTruckMonster, faW, faEarthAfrica, faGlobeAfrica, faRainbow, faCircleNotch, faTabletScreenButton, faTabletAlt, faPaw, faCloud, faTrowelBricks, faFaceFlushed, faFlushed, faHospitalUser, faTentArrowLeftRight, faGavel, faLegal, faBinoculars, faMicrophoneSlash, faBoxTissue, faMotorcycle, faBellConcierge, faConciergeBell, faPenRuler, faPencilRuler, faPeopleArrows, faPeopleArrowsLeftRight, faMarsAndVenusBurst, faSquareCaretRight, faCaretSquareRight, faScissors, faCut, faSunPlantWilt, faToiletsPortable, faHockeyPuck, faTable, faMagnifyingGlassArrowRight, faTachographDigital, faDigitalTachograph, faUsersSlash, faClover, faReply, faMailReply, faStarAndCrescent, faHouseFire, faSquareMinus, faMinusSquare, faHelicopter, faCompass, faSquareCaretDown, faCaretSquareDown, faFileCircleQuestion, faLaptopCode, faSwatchbook, faPrescriptionBottle, faBars, faNavicon, faPeopleGroup, faHourglassEnd, faHourglass3, faHeartCrack, faHeartBroken, faSquareUpRight, faExternalLinkSquareAlt, faFaceKissBeam, faKissBeam, faFilm, faRulerHorizontal, faPeopleRobbery, faLightbulb, faCaretLeft, faCircleExclamation, faExclamationCircle, faSchoolCircleXmark, faArrowRightFromBracket, faSignOut, faCircleChevronDown, faChevronCircleDown, faUnlockKeyhole, faUnlockAlt, faCloudShowersHeavy, faHeadphonesSimple, faHeadphonesAlt, faSitemap, faCircleDollarToSlot, faDonate, faMemory, faRoadSpikes, faFireBurner, faFlag, faHanukiah, faFeather, faVolumeLow, faVolumeDown, faCommentSlash, faCloudSunRain, faCompress, faWheatAwn, faWheatAlt, faAnkh, faHandsHoldingChild, faAsterisk, faSquareCheck, faCheckSquare, faPesetaSign, faHeading, faHeader, faGhost, faList, faListSquares, faSquarePhoneFlip, faPhoneSquareAlt, faCartPlus, faGamepad, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faEgg, faHouseMedicalCircleXmark, faCampground, faFolderPlus, faFutbol, faFutbolBall, faSoccerBall, faPaintbrush, faPaintBrush, faLock, faGasPump, faHotTubPerson, faHotTub, faMapLocation, faMapMarked, faHouseFloodWater, faTree, faBridgeLock, faSackDollar, faPenToSquare, faEdit, faCarSide, faShareNodes, faShareAlt, faHeartCircleMinus, faHourglassHalf, faHourglass2, faMicroscope, faSink, faBagShopping, faShoppingBag, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faMitten, faPersonRays, faUsers, faEyeSlash, faFlaskVial, faHand, faHandPaper, faOm, faWorm, faHouseCircleXmark, faPlug, faChevronUp, faHandSpock, faStopwatch, faFaceKiss, faKiss, faBridgeCircleXmark, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faRoadCircleCheck, faDiceFive, faSquareRss, faRssSquare, faLandMineOn, faICursor, faStamp, faStairs, faI, faHryvniaSign, faHryvnia, faPills, faFaceGrinWide, faGrinAlt, faTooth, faV, faBicycle, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faHeadSideCoughSlash, faTruckMedical, faAmbulance, faWheatAwnCircleExclamation, faSnowman, faMortarPestle, faRoadBarrier, faSchool, faIgloo, faJoint, faAngleRight, faHorse, faQ, faG, faNotesMedical, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faDongSign, faCapsules, faPooStorm, faPooBolt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faMoneyBill, faBookmark, faAlignJustify, faUmbrellaBeach, faHelmetUn, faBullseye, faBacon, faHandPointDown, faArrowUpFromBracket, faFolder, faFolderBlank, faFileWaveform, faFileMedicalAlt, faRadiation, faChartSimple, faMarsStroke, faVial, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faWandMagicSparkles, faMagicWandSparkles, faE, faPenClip, faPenAlt, faBridgeCircleExclamation, faUser, faSchoolCircleCheck, faDumpster, faVanShuttle, faShuttleVan, faBuildingUser, faSquareCaretLeft, faCaretSquareLeft, faHighlighter, faKey, faBullhorn, faGlobe, faSynagogue, faPersonHalfDress, faRoadBridge, faLocationArrow, faC, faTabletButton, faBuildingLock, faPizzaSlice, faMoneyBillWave, faChartArea, faAreaChart, faHouseFlag, faPersonCircleMinus, faBan, faCancel, faCameraRotate, faSprayCanSparkles, faAirFreshener, faStar, faRepeat, faCross, faBox, faVenusMars, faArrowPointer, faMousePointer, faMaximize, faExpandArrowsAlt, faChargingStation, faShapes, faTriangleCircleSquare, faShuffle, faRandom, faPersonRunning, faRunning, faMobileRetro, faGripLinesVertical, faSpider, faHandsBound, faFileInvoiceDollar, faPlaneCircleExclamation, faXRay, faSpellCheck, faSlash, faComputerMouse, faMouse, faArrowRightToBracket, faSignIn, faShopSlash, faStoreAltSlash, faServer, faVirusCovidSlash, faShopLock, faHourglassStart, faHourglass1, faBlenderPhone, faBuildingWheat, faPersonBreastfeeding, faRightToBracket, faSignInAlt, faVenus, faPassport, faHeartPulse, faHeartbeat, faPeopleCarryBox, faPeopleCarry, faTemperatureHigh, faMicrochip, faCrown, faWeightHanging, faXmarksLines, faFilePrescription, faWeightScale, faWeight, faUserGroup, faUserFriends, faArrowUpAZ, faSortAlphaUp, faChessKnight, faFaceLaughSquint, faLaughSquint, faWheelchair, faCircleArrowUp, faArrowCircleUp, faToggleOn, faPersonWalking, faWalking, faL, faFire, faBedPulse, faProcedures, faShuttleSpace, faSpaceShuttle, faFaceLaugh, faLaugh, faFolderOpen, faHeartCirclePlus, faCodeFork, faCity, faMicrophoneLines, faMicrophoneAlt, faPepperHot, faUnlock, faColonSign, faHeadset, faStoreSlash, faRoadCircleXmark, faUserMinus, faMarsStrokeUp, faMarsStrokeV, faChampagneGlasses, faGlassCheers, faClipboard, faHouseCircleExclamation, faFileArrowUp, faFileUpload, faWifi, faWifi3, faWifiStrong, faBath, faBathtub, faUnderline, faUserPen, faUserEdit, faSignature, faStroopwafel, faBold, faAnchorLock, faBuildingNgo, faManatSign, faNotEqual, faBorderTopLeft, faBorderStyle, faMapLocationDot, faMapMarkedAlt, faJedi, faSquarePollVertical, faPoll, faMugHot, faCarBattery, faBatteryCar, faGift, faDiceTwo, faChessQueen, faGlasses, faChessBoard, faBuildingCircleCheck, faPersonChalkboard, faMarsStrokeRight, faMarsStrokeH, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faCloudShowersWater, faChartBar, faBarChart, faHandsBubbles, faHandsWash, faLessThanEqual, faTrain, faEyeLowVision, faLowVision, faCrow, faSailboat, faWindowRestore, faSquarePlus, faPlusSquare, faToriiGate, faFrog, faBucket, faImage, faMicrophone, faCow, faCaretUp, faScrewdriver, faFolderClosed, faHouseTsunami, faSquareNfi, faArrowUpFromGroundWater, faMartiniGlass, faGlassMartiniAlt, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faTableColumns, faColumns, faLemon, faHeadSideMask, faHandshake, faGem, faDolly, faDollyBox, faSmoking, faMinimize, faCompressArrowsAlt, faMonument, faSnowplow, faAnglesRight, faAngleDoubleRight, faCannabis, faCirclePlay, faPlayCircle, faTablets, faEthernet, faEuroSign, faEur, faEuro, faChair, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faCompassDrafting, faDraftingCompass, faPlateWheat, faIcicles, faPersonShelter, faNeuter, faIdBadge, faMarker, faFaceLaughBeam, faLaughBeam, faHelicopterSymbol, faUniversalAccess, faCircleChevronUp, faChevronCircleUp, faLariSign, faVolcano, faPersonWalkingDashedLineArrowRight, faSterlingSign, faGbp, faPoundSign, faViruses, faSquarePersonConfined, faUserTie, faArrowDownLong, faLongArrowDown, faTentArrowDownToLine, faCertificate, faReplyAll, faMailReplyAll, faSuitcase, faPersonSkating, faSkating, faFilterCircleDollar, faFunnelDollar, faCameraRetro, faCircleArrowDown, faArrowCircleDown, faFileImport, faArrowRightToFile, faSquareArrowUpRight, faExternalLinkSquare, faBoxOpen, faScroll, faSpa, faLocationPinLock, faPause, faHillAvalanche, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBomb, faRegistered, faAddressCard, faContactCard, faVcard, faScaleUnbalancedFlip, faBalanceScaleRight, faSubscript, faDiamondTurnRight, faDirections, faBurst, faHouseLaptop, faLaptopHouse, faFaceTired, faTired, faMoneyBills, faSmog, faCrutch, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faPalette, faArrowsTurnRight, faVest, faFerry, faArrowsDownToPeople, faSeedling, faSprout, faLeftRight, faArrowsAltH, faBoxesPacking, faCircleArrowLeft, faArrowCircleLeft, faGroupArrowsRotate, faBowlFood, faCandyCane, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCloudBolt, faThunderstorm, faTextSlash, faRemoveFormat, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faArrowsLeftRight, faArrowsH, faHouseLock, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faChildren, faChalkboard, faBlackboard, faUserLargeSlash, faUserAltSlash, faEnvelopeOpen, faHandshakeSimpleSlash, faHandshakeAltSlash, faMattressPillow, faGuaraniSign, faArrowsRotate, faRefresh, faSync, faFireExtinguisher, faCruzeiroSign, faGreaterThanEqual, faShieldHalved, faShieldAlt, faBookAtlas, faAtlas, faVirus, faEnvelopeCircleCheck, faLayerGroup, faArrowsToDot, faArchway, faHeartCircleCheck, faHouseChimneyCrack, faHouseDamage, faFileZipper, faFileArchive, faSquare, faMartiniGlassEmpty, faGlassMartini, faCouch, faCediSign, faItalic, faChurch, faCommentsDollar, faDemocrat, faZ, faPersonSkiing, faSkiing, faRoadLock, faA, faTemperatureArrowDown, faTemperatureDown, faFeatherPointed, faFeatherAlt, faP, faSnowflake, faNewspaper, faRectangleAd, faAd, faCircleArrowRight, faArrowCircleRight, faFilterCircleXmark, faLocust, faSort, faUnsorted, faListOl, faList12, faListNumeric, faPersonDressBurst, faMoneyCheckDollar, faMoneyCheckAlt, faVectorSquare, faBreadSlice, faLanguage, faFaceKissWinkHeart, faKissWinkHeart, faFilter, faQuestion, faFileSignature, faUpDownLeftRight, faArrowsAlt, faHouseChimneyUser, faHandHoldingHeart, faPuzzlePiece, faMoneyCheck, faStarHalfStroke, faStarHalfAlt, faCode, faWhiskeyGlass, faGlassWhiskey, faBuildingCircleExclamation, faMagnifyingGlassChart, faArrowUpRightFromSquare, faExternalLink, faCubesStacked, faWonSign, faKrw, faWon, faVirusCovid, faAustralSign, faF, faLeaf, faRoad, faTaxi, faCab, faPersonCirclePlus, faChartPie, faPieChart, faBoltLightning, faSackXmark, faFileExcel, faFileContract, faFishFins, faBuildingFlag, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faPoop, faLocationPin, faMapMarker, faKaaba, faToiletPaper, faHelmetSafety, faHardHat, faHatHard, faEject, faCircleRight, faArrowAltCircleRight, faPlaneCircleCheck, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faChartLine, faLineChart, faMaskVentilator, faArrowRight, faSignsPost, faMapSigns, faCashRegister, faPersonCircleQuestion, faH, faTarp, faScrewdriverWrench, faTools, faArrowsToEye, faPlugCircleBolt, faHeart, faMarsAndVenus, faHouseUser, faHomeUser, faDumpsterFire, faHouseCrack, faMartiniGlassCitrus, faCocktail, faFaceSurprise, faSurprise, faBottleWater, faCirclePause, faPauseCircle, faToiletPaperSlash, faAppleWhole, faAppleAlt, faKitchenSet, faR, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faCube, faBitcoinSign, faShieldDog, faSolarPanel, faLockOpen, faElevator, faMoneyBillTransfer, faMoneyBillTrendUp, faHouseFloodWaterCircleArrowRight, faSquarePollHorizontal, faPollH, faCircle, faBackwardFast, faFastBackward, faRecycle, faUserAstronaut, faPlaneSlash, faTrademark, faBasketball, faBasketballBall, faSatelliteDish, faCircleUp, faArrowAltCircleUp, faMobileScreenButton, faMobileAlt, faVolumeHigh, faVolumeUp, faUsersRays, faWallet, faClipboardCheck, faFileAudio, faBurger, faHamburger, faWrench, faBugs, faRupeeSign, faRupee, faFileImage, faCircleQuestion, faQuestionCircle, faPlaneDeparture, faHandshakeSlash, faBookBookmark, faCodeBranch, faHatCowboy, faBridge, faPhoneFlip, faPhoneAlt, faTruckFront, faCat, faAnchorCircleExclamation, faTruckField, faRoute, faClipboardQuestion, faPanorama, faCommentMedical, faTeethOpen, faFileCircleMinus, faTags, faWineGlass, faForwardFast, faFastForward, faFaceMehBlank, faMehBlank, faSquareParking, faParking, faHouseSignal, faBarsProgress, faTasksAlt, faFaucetDrip, faCartFlatbed, faDollyFlatbed, faBanSmoking, faSmokingBan, faTerminal, faMobileButton, faHouseMedicalFlag, faBasketShopping, faShoppingBasket, faTape, faBusSimple, faBusAlt, faEye, faFaceSadCry, faSadCry, faAudioDescription, faPersonMilitaryToPerson, faFileShield, faUserSlash, faPen, faTowerObservation, faFileCode, faSignal, faSignal5, faSignalPerfect, faBus, faHeartCircleXmark, faHouseChimney, faHomeLg, faWindowMaximize, faFaceFrown, faFrown, faPrescription, faShop, faStoreAlt, faFloppyDisk, faSave, faVihara, faScaleUnbalanced, faBalanceScaleLeft, faSortUp, faSortAsc, faCommentDots, faCommenting, faPlantWilt, faDiamond, faFaceGrinSquint, faGrinSquint, faHandHoldingDollar, faHandHoldingUsd, faBacterium, faHandPointer, faDrumSteelpan, faHandScissors, faHandsPraying, faPrayingHands, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faBiohazard, faLocationCrosshairs, faLocation, faMarsDouble, faChildDress, faUsersBetweenLines, faLungsVirus, faFaceGrinTears, faGrinTears, faPhone, faCalendarXmark, faCalendarTimes, faChildReaching, faHeadSideVirus, faUserGear, faUserCog, faArrowUp19, faSortNumericUp, faDoorClosed, faShieldVirus, faDiceSix, faMosquitoNet, faBridgeWater, faPersonBooth, faTextWidth, faHatWizard, faPenFancy, faPersonDigging, faDigging, faTrash, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faBookMedical, faPoo, faQuoteRight, faQuoteRightAlt, faShirt, faTShirt, faTshirt, faCubes, faDivide, faTengeSign, faTenge, faHeadphones, faHandsHolding, faHandsClapping, faRepublican, faArrowLeft, faPersonCircleXmark, faRuler, faAlignLeft, faDiceD6, faRestroom, faJ, faUsersViewfinder, faFileVideo, faUpRightFromSquare, faExternalLinkAlt, faTableCells, faTh, faFilePdf, faBookBible, faBible, faO, faSuitcaseMedical, faMedkit, faUserSecret, faOtter, faPersonDress, faFemale, faCommentDollar, faBusinessTime, faBriefcaseClock, faTableCellsLarge, faThLarge, faBookTanakh, faTanakh, faPhoneVolume, faVolumeControlPhone, faHatCowboySide, faClipboardUser, faChild, faLiraSign, faSatellite, faPlaneLock, faTag, faComment, faCakeCandles, faBirthdayCake, faCake, faEnvelope, faAnglesUp, faAngleDoubleUp, faPaperclip, faArrowRightToCity, faRibbon, faLungs, faArrowUp91, faSortNumericUpAlt, faLitecoinSign, faBorderNone, faCircleNodes, faParachuteBox, faIndent, faTruckFieldUn, faHourglass, faHourglassEmpty, faMountain, faUserDoctor, faUserMd, faCircleInfo, faInfoCircle, faCloudMeatball, faCamera, faCameraAlt, faSquareVirus, faMeteor, faCarOn, faSleigh, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandHoldingDroplet, faHandHoldingWater, faWater, faCalendarCheck, faBraille, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faLandmark, faTruck, faCrosshairs, faPersonCane, faTent, faVestPatches, faCheckDouble, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBillWheat, faCookie, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faDumbbell, faRectangleList, faListAlt, faTarpDroplet, faHouseMedicalCircleCheck, faPersonSkiingNordic, faSkiingNordic, faCalendarPlus, faPlaneArrival, faCircleLeft, faArrowAltCircleLeft, faTrainSubway, faSubway, faChartGantt, faIndianRupeeSign, faIndianRupee, faInr, faCropSimple, faCropAlt, faMoneyBill1, faMoneyBillAlt, faLeftLong, faLongArrowAltLeft, faDna, faVirusSlash, faMinus, faSubtract, faChildRifle, faChess, faArrowLeftLong, faLongArrowLeft, faPlugCircleCheck, faStreetView, faFrancSign, faVolumeOff, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faGear, faCog, faDropletSlash, faTintSlash, faMosque, faMosquito, faStarOfDavid, faPersonMilitaryRifle, faCartShopping, faShoppingCart, faVials, faPlugCirclePlus, faPlaceOfWorship, faGripVertical, faArrowTurnUp, faLevelUp, faU, faSquareRootVariable, faSquareRootAlt, faClock, faClockFour, faBackwardStep, faStepBackward, faPallet, faFaucet, faBaseballBatBall, faS, faTimeline, faKeyboard, faCaretDown, faHouseChimneyMedical, faClinicMedical, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faMobileScreen, faMobileAndroidAlt, faPlaneUp, faPiggyBank, faBatteryHalf, faBattery3, faMountainCity, faCoins, faKhanda, faSliders, faSlidersH, faFolderTree, faNetworkWired, faMapPin, faHamsa, faCentSign, faFlask, faPersonPregnant, faWandSparkles, faEllipsisVertical, faEllipsisV, faTicket, faPowerOff, faRightLong, faLongArrowAltRight, faFlagUsa, faLaptopFile, faTty, faTeletype, faDiagramNext, faPersonRifle, faHouseMedicalCircleExclamation, faClosedCaptioning, faPersonHiking, faHiking, faVenusDouble, faImages, faCalculator, faPeoplePulling, faN, faCableCar, faTram, faCloudRain, faBuildingCircleXmark, faShip, faArrowsDownToLine, faDownload, faFaceGrin, faGrin, faDeleteLeft, faBackspace, faEyeDropper, faEyeDropperEmpty, faEyedropper, faFileCircleCheck, faForward, faMobile, faMobileAndroid, faMobilePhone, faFaceMeh, faMeh, faAlignCenter, faBookSkull, faBookDead, faIdCard, faDriversLicense, faOutdent, faDedent, faHeartCircleExclamation, faHouse, faHome, faHomeAlt, faHomeLgAlt, faCalendarWeek, faLaptopMedical, faB, faFileMedical, faDiceOne, faKiwiBird, faArrowRightArrowLeft, faExchange, faRotateRight, faRedoAlt, faRotateForward, faUtensils, faCutlery, faArrowUpWideShort, faSortAmountUp, faMillSign, faBowlRice, faSkull, faTowerBroadcast, faBroadcastTower, faTruckPickup, faUpLong, faLongArrowAltUp, faStop, faCodeMerge, faUpload, faHurricane, faMound, faToiletPortable, faCompactDisc, faFileArrowDown, faFileDownload, faCaravan, faShieldCat, faBolt, faZap, faGlassWater, faOilWell, faVault, faMars, faToilet, faPlaneCircleXmark, faYenSign, faCny, faJpy, faRmb, faYen, faRubleSign, faRouble, faRub, faRuble, faSun, faGuitar, faFaceLaughWink, faLaughWink, faHorseHead, faBoreHole, faIndustry, faCircleDown, faArrowAltCircleDown, faArrowsTurnToDots, faFlorinSign, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faLessThan, faAngleDown, faCarTunnel, faHeadSideCough, faGripLines, faThumbsDown, faUserLock, faArrowRightLong, faLongArrowRight, faAnchorCircleXmark, faEllipsis, faEllipsisH, faChessPawn, faKitMedical, faFirstAid, faPersonThroughWindow, faToolbox, faHandsHoldingCircle, faBug, faCreditCard, faCreditCardAlt, faCar, faAutomobile, faHandHoldingHand, faBookOpenReader, faBookReader, faMountainSun, faArrowsLeftRightToLine, faDiceD20, faTruckDroplet, faFileCircleXmark, faTemperatureArrowUp, faTemperatureUp, faMedal, faBed, faSquareH, faHSquare, faPodcast, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faBell, faSuperscript, faPlugCircleXmark, faStarOfLife, faPhoneSlash, faPaintRoller, faHandshakeAngle, faHandsHelping, faLocationDot, faMapMarkerAlt, faFile, faGreaterThan, faPersonSwimming, faSwimmer, faArrowDown, faDroplet, faTint, faEraser, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faPersonBurst, faDove, faBatteryEmpty, faBattery0, faSocks, faInbox, faSection, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faEnvelopeOpenText, faHospital, faHospitalAlt, faHospitalWide, faWineBottle, faChessRook, faBarsStaggered, faReorder, faStream, faDharmachakra, faHotdog, faPersonWalkingWithCane, faBlind, faDrum, faIceCream, faHeartCircleBolt, faFax, faParagraph, faCheckToSlot, faVoteYea, faStarHalf, faBoxesStacked, faBoxes, faBoxesAlt, faLink, faChain, faEarListen, faAssistiveListeningSystems, faTreeCity, faPlay, faFont, faRupiahSign, faMagnifyingGlass, faSearch, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faPersonDotsFromLine, faDiagnoses, faTrashCanArrowUp, faTrashRestoreAlt, faNairaSign, faCartArrowDown, faWalkieTalkie, faFilePen, faFileEdit, faReceipt, faSquarePen, faPenSquare, faPencilSquare, faSuitcaseRolling, faPersonCircleExclamation, faChevronDown, faBatteryFull, faBattery, faBattery5, faSkullCrossbones, faCodeCompare, faListUl, faListDots, faSchoolLock, faTowerCell, faDownLong, faLongArrowAltDown, faRankingStar, faChessKing, faPersonHarassing, faBrazilianRealSign, faLandmarkDome, faLandmarkAlt, faArrowUp, faTv, faTelevision, faTvAlt, faShrimp, faListCheck, faTasks, faJugDetergent, faCircleUser, faUserCircle, faUserShield, faWind, faCarBurst, faCarCrash, faY, faPersonSnowboarding, faSnowboarding, faTruckFast, faShippingFast, faFish, faUserGraduate, faCircleHalfStroke, faAdjust, faClapperboard, faCircleRadiation, faRadiationAlt, faBaseball, faBaseballBall, faJetFighterUp, faDiagramProject, faProjectDiagram, faCopy, faVolumeXmark, faVolumeMute, faVolumeTimes, faHandSparkles, faGrip, faGripHorizontal, faShareFromSquare, faShareSquare, faGun, faSquarePhone, faPhoneSquare, faPlus, faAdd, faExpand, faComputer, faXmark, faClose, faMultiply, faRemove, faTimes, faArrowsUpDownLeftRight, faArrows, faChalkboardUser, faChalkboardTeacher, faPesoSign, faBuildingShield, faBaby, faUsersLine, faQuoteLeft, faQuoteLeftAlt, faTractor, faTrashArrowUp, faTrashRestore, faArrowDownUpLock, faLinesLeaning, faRulerCombined, faCopyright, faEquals, faBlender, faTeeth, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faMap, faRocket, faPhotoFilm, faPhotoVideo, faFolderMinus, faStore, faArrowTrendUp, faPlugCircleMinus, faSignHanging, faSign, faBezierCurve, faBellSlash, faTablet, faTabletAndroid, faSchoolFlag, faFill, faAngleUp, faDrumstickBite, faHollyBerry, faChevronLeft, faBacteria, faHandLizard, faDisease, faBriefcaseMedical, faGenderless, faChevronRight, faRetweet, faCarRear, faCarAlt, faPumpSoap, faVideoSlash, faBatteryQuarter, faBattery2, faRadio, faBabyCarriage, faCarriageBaby, faTrafficLight, faThermometer, faVrCardboard, faHandMiddleFinger, faPercent, faPercentage, faTruckMoving, faGlassWaterDroplet, faDisplay, faFaceSmile, faSmile, faThumbtack, faThumbTack, faTrophy, faPersonPraying, faPray, faHammer, faHandPeace, faRotate, faSyncAlt, faSpinner, faRobot, faPeace, faGears, faCogs, faWarehouse, faArrowUpRightDots, faSplotch, faFaceGrinHearts, faGrinHearts, faDiceFour, faSimCard, faTransgender, faTransgenderAlt, faMercury, faArrowTurnDown, faLevelDown, faPersonFallingBurst, faAward, faTicketSimple, faTicketAlt, faBuilding, faAnglesLeft, faAngleDoubleLeft, faQrcode, faClockRotateLeft, faHistory, faFaceGrinBeamSweat, faGrinBeamSweat, faFileExport, faArrowRightFromFile, faShield, faShieldBlank, faArrowUpShortWide, faSortAmountUpAlt, faHouseMedical, faGolfBallTee, faGolfBall, faCircleChevronLeft, faChevronCircleLeft, faHouseChimneyWindow, faPenNib, faTentArrowTurnLeft, faTents, faWandMagic, faMagic, faDog, faCarrot, faMoon, faWineGlassEmpty, faWineGlassAlt, faCheese, faYinYang, faMusic, faCodeCommit, faTemperatureLow, faPersonBiking, faBiking, faBroom, faShieldHeart, faGopuram, faEarthOceania, faGlobeOceania, faSquareXmark, faTimesSquare, faXmarkSquare, faHashtag, faUpRightAndDownLeftFromCenter, faExpandAlt, faOilCan, faT, faHippo, faChartColumn, faInfinity, faVialCircleCheck, faPersonArrowDownToLine, faVoicemail, faFan, faPersonWalkingLuggage, faUpDown, faArrowsAltV, faCloudMoonRain, faCalendar, faTrailer, faBahai, faHaykal, faSdCard, faDragon, faShoePrints, faCirclePlus, faPlusCircle, faFaceGrinTongueWink, faGrinTongueWink, faHandHolding, faPlugCircleExclamation, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faClone, faPersonWalkingArrowLoopLeft, faArrowUpZA, faSortAlphaUpAlt, faFireFlameCurved, faFireAlt, faTornado, faFileCirclePlus, faBookQuran, faQuran, faAnchor, faBorderAll, faFaceAngry, faAngry, faCookieBite, faArrowTrendDown, faRss, faFeed, faDrawPolygon, faScaleBalanced, faBalanceScale, faGaugeSimpleHigh, faTachometer, faTachometerFast, faShower, faDesktop, faDesktopAlt, faM, faTableList, faThList, faCommentSms, faSms, faBook, faUserPlus, faCheck, faBatteryThreeQuarters, faBattery4, faHouseCircleCheck, faAngleLeft, faDiagramSuccessor, faTruckArrowRight, faArrowsSplitUpAndLeft, faHandFist, faFistRaised, faCloudMoon, faBriefcase, faPersonFalling, faImagePortrait, faPortrait, faUserTag, faRug, faEarthEurope, faGlobeEurope, faCartFlatbedSuitcase, faLuggageCart, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faBahtSign, faBookOpen, faBookJournalWhills, faJournalWhills, faHandcuffs, faTriangleExclamation, faExclamationTriangle, faWarning, faDatabase, faShare, faArrowTurnRight, faMailForward, faBottleDroplet, faMaskFace, faHillRockslide, faRightLeft, faExchangeAlt, faPaperPlane, faRoadCircleExclamation, faDungeon, faAlignRight, faMoneyBill1Wave, faMoneyBillWaveAlt, faLifeRing, faHands, faSignLanguage, faSigning, faCalendarDay, faWaterLadder, faLadderWater, faSwimmingPool, faArrowsUpDown, faArrowsV, faFaceGrimace, faGrimace, faWheelchairMove, faWheelchairAlt, faTurnDown, faLevelDownAlt, faPersonWalkingArrowRight, faSquareEnvelope, faEnvelopeSquare, faDice, faBowlingBall, faBrain, faBandage, faBandAid, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faGifts, faHotel, faEarthAsia, faGlobeAsia, faIdCardClip, faIdCardAlt, faMagnifyingGlassPlus, faSearchPlus, faThumbsUp, faUserClock, faHandDots, faAllergies, faFileInvoice, faWindowMinimize, faMugSaucer, faCoffee, faBrush, faMask, faMagnifyingGlassMinus, faSearchMinus, faRulerVertical, faUserLarge, faUserAlt, faTrainTram, faUserNurse, faSyringe, faCloudSun, faStopwatch20, faSquareFull, faMagnet, faJar, faNoteSticky, faStickyNote, faBugSlash, faArrowUpFromWaterPump, faBone, faUserInjured, faFaceSadTear, faSadTear, faPlane, faTentArrowsDown, faExclamation, faArrowsSpin, faPrint, faTurkishLiraSign, faTry, faTurkishLira, faDollarSign, faDollar, faUsd, faX, faMagnifyingGlassDollar, faSearchDollar, faUsersGear, faUsersCog, faPersonMilitaryPointing, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faUmbrella, faTrowel, faD, faStapler, faMasksTheater, faTheaterMasks, faKipSign, faHandPointLeft, faHandshakeSimple, faHandshakeAlt, faJetFighter, faFighterJet, faSquareShareNodes, faShareAltSquare, faBarcode, faPlusMinus, faVideo, faVideoCamera, faGraduationCap, faMortarBoard, faHandHoldingMedical, faPersonCircleCheck, faTurnUp, faLevelUpAlt };\n","import { parse, icon, config, text } from '@fortawesome/fontawesome-svg-core';\nimport { h, defineComponent, computed, watch } from 'vue';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar humps$1 = {exports: {}};\n\n(function (module) {\n(function(global) {\n\n\t var _processKeys = function(convert, obj, options) {\n\t if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n\t return obj;\n\t }\n\n\t var output,\n\t i = 0,\n\t l = 0;\n\n\t if(_isArray(obj)) {\n\t output = [];\n\t for(l=obj.length; i<l; i++) {\n\t output.push(_processKeys(convert, obj[i], options));\n\t }\n\t }\n\t else {\n\t output = {};\n\t for(var key in obj) {\n\t if(Object.prototype.hasOwnProperty.call(obj, key)) {\n\t output[convert(key, options)] = _processKeys(convert, obj[key], options);\n\t }\n\t }\n\t }\n\t return output;\n\t };\n\n\t // String conversion methods\n\n\t var separateWords = function(string, options) {\n\t options = options || {};\n\t var separator = options.separator || '_';\n\t var split = options.split || /(?=[A-Z])/;\n\n\t return string.split(split).join(separator);\n\t };\n\n\t var camelize = function(string) {\n\t if (_isNumerical(string)) {\n\t return string;\n\t }\n\t string = string.replace(/[\\-_\\s]+(.)?/g, function(match, chr) {\n\t return chr ? chr.toUpperCase() : '';\n\t });\n\t // Ensure 1st char is always lowercase\n\t return string.substr(0, 1).toLowerCase() + string.substr(1);\n\t };\n\n\t var pascalize = function(string) {\n\t var camelized = camelize(string);\n\t // Ensure 1st char is always uppercase\n\t return camelized.substr(0, 1).toUpperCase() + camelized.substr(1);\n\t };\n\n\t var decamelize = function(string, options) {\n\t return separateWords(string, options).toLowerCase();\n\t };\n\n\t // Utilities\n\t // Taken from Underscore.js\n\n\t var toString = Object.prototype.toString;\n\n\t var _isFunction = function(obj) {\n\t return typeof(obj) === 'function';\n\t };\n\t var _isObject = function(obj) {\n\t return obj === Object(obj);\n\t };\n\t var _isArray = function(obj) {\n\t return toString.call(obj) == '[object Array]';\n\t };\n\t var _isDate = function(obj) {\n\t return toString.call(obj) == '[object Date]';\n\t };\n\t var _isRegExp = function(obj) {\n\t return toString.call(obj) == '[object RegExp]';\n\t };\n\t var _isBoolean = function(obj) {\n\t return toString.call(obj) == '[object Boolean]';\n\t };\n\n\t // Performant way to determine if obj coerces to a number\n\t var _isNumerical = function(obj) {\n\t obj = obj - 0;\n\t return obj === obj;\n\t };\n\n\t // Sets up function which handles processing keys\n\t // allowing the convert function to be modified by a callback\n\t var _processor = function(convert, options) {\n\t var callback = options && 'process' in options ? options.process : options;\n\n\t if(typeof(callback) !== 'function') {\n\t return convert;\n\t }\n\n\t return function(string, options) {\n\t return callback(string, convert, options);\n\t }\n\t };\n\n\t var humps = {\n\t camelize: camelize,\n\t decamelize: decamelize,\n\t pascalize: pascalize,\n\t depascalize: decamelize,\n\t camelizeKeys: function(object, options) {\n\t return _processKeys(_processor(camelize, options), object);\n\t },\n\t decamelizeKeys: function(object, options) {\n\t return _processKeys(_processor(decamelize, options), object, options);\n\t },\n\t pascalizeKeys: function(object, options) {\n\t return _processKeys(_processor(pascalize, options), object);\n\t },\n\t depascalizeKeys: function () {\n\t return this.decamelizeKeys.apply(this, arguments);\n\t }\n\t };\n\n\t if (module.exports) {\n\t module.exports = humps;\n\t } else {\n\t global.humps = humps;\n\t }\n\n\t})(commonjsGlobal);\n} (humps$1));\n\nvar humps = humps$1.exports;\n\nvar _excluded = [\"class\", \"style\"];\n/**\n * Converts a CSS style into a plain Javascript object.\n * @param {String} style The style to converts into a plain Javascript object.\n * @returns {Object}\n */\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (output, pair) {\n var idx = pair.indexOf(':');\n var prop = humps.camelize(pair.slice(0, idx));\n var value = pair.slice(idx + 1).trim();\n output[prop] = value;\n return output;\n }, {});\n}\n/**\n * Converts a CSS class list into a plain Javascript object.\n * @param {Array<String>} classes The class list to convert.\n * @returns {Object}\n */\n\n\nfunction classToObject(classes) {\n return classes.split(/\\s+/).reduce(function (output, className) {\n output[className] = true;\n return output;\n }, {});\n}\n/**\n * Converts a FontAwesome abstract element of an icon into a Vue VNode.\n * @param {AbstractElement | String} abstractElement The element to convert.\n * @param {Object} props The user-defined props.\n * @param {Object} attrs The user-defined native HTML attributes.\n * @returns {VNode}\n */\n\n\nfunction convert(abstractElement) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var attrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // If the abstract element is a string, we'll just return a string render function\n if (typeof abstractElement === 'string') {\n return abstractElement;\n } // Converting abstract element children into Vue VNodes\n\n\n var children = (abstractElement.children || []).map(function (child) {\n return convert(child);\n }); // Converting abstract element attributes into valid Vue format\n\n var mixins = Object.keys(abstractElement.attributes || {}).reduce(function (mixins, key) {\n var value = abstractElement.attributes[key];\n\n switch (key) {\n case 'class':\n mixins.class = classToObject(value);\n break;\n\n case 'style':\n mixins.style = styleToObject(value);\n break;\n\n default:\n mixins.attrs[key] = value;\n }\n\n return mixins;\n }, {\n attrs: {},\n class: {},\n style: {}\n }); // Now, we'll return the VNode\n\n attrs.class;\n var _attrs$style = attrs.style,\n aStyle = _attrs$style === void 0 ? {} : _attrs$style,\n otherAttrs = _objectWithoutProperties(attrs, _excluded);\n\n return h(abstractElement.tag, _objectSpread2(_objectSpread2(_objectSpread2({}, props), {}, {\n class: mixins.class,\n style: _objectSpread2(_objectSpread2({}, mixins.style), aStyle)\n }, mixins.attrs), otherAttrs), children);\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction objectWithKey(key, value) {\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\nfunction classList(props) {\n var _classes;\n\n var classes = (_classes = {\n 'fa-spin': props.spin,\n 'fa-pulse': props.pulse,\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-li': props.listItem,\n 'fa-inverse': props.inverse,\n 'fa-flip': props.flip === true,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(props.size), props.size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(props.rotation), props.rotation !== null), _defineProperty(_classes, \"fa-pull-\".concat(props.pull), props.pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _defineProperty(_classes, 'fa-bounce', props.bounce), _defineProperty(_classes, 'fa-shake', props.shake), _defineProperty(_classes, 'fa-beat', props.beat), _defineProperty(_classes, 'fa-fade', props.fade), _defineProperty(_classes, 'fa-beat-fade', props.beatFade), _defineProperty(_classes, 'fa-flash', props.flash), _defineProperty(_classes, 'fa-spin-pulse', props.spinPulse), _defineProperty(_classes, 'fa-spin-reverse', props.spinReverse), _classes);\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\nfunction normalizeIconArgs(icon) {\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n }\n\n if (icon === null) {\n return null;\n }\n\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n }\n\n if (Array.isArray(icon) && icon.length === 2) {\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n }\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\nvar FontAwesomeIcon = defineComponent({\n name: 'FontAwesomeIcon',\n props: {\n border: {\n type: Boolean,\n default: false\n },\n fixedWidth: {\n type: Boolean,\n default: false\n },\n flip: {\n type: [Boolean, String],\n default: false,\n validator: function validator(value) {\n return [true, false, 'horizontal', 'vertical', 'both'].indexOf(value) > -1;\n }\n },\n icon: {\n type: [Object, Array, String],\n required: true\n },\n mask: {\n type: [Object, Array, String],\n default: null\n },\n listItem: {\n type: Boolean,\n default: false\n },\n pull: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['right', 'left'].indexOf(value) > -1;\n }\n },\n pulse: {\n type: Boolean,\n default: false\n },\n rotation: {\n type: [String, Number],\n default: null,\n validator: function validator(value) {\n return [90, 180, 270].indexOf(Number.parseInt(value, 10)) > -1;\n }\n },\n swapOpacity: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x'].indexOf(value) > -1;\n }\n },\n spin: {\n type: Boolean,\n default: false\n },\n transform: {\n type: [String, Object],\n default: null\n },\n symbol: {\n type: [Boolean, String],\n default: false\n },\n title: {\n type: String,\n default: null\n },\n inverse: {\n type: Boolean,\n default: false\n },\n bounce: {\n type: Boolean,\n default: false\n },\n shake: {\n type: Boolean,\n default: false\n },\n beat: {\n type: Boolean,\n default: false\n },\n fade: {\n type: Boolean,\n default: false\n },\n beatFade: {\n type: Boolean,\n default: false\n },\n flash: {\n type: Boolean,\n default: false\n },\n spinPulse: {\n type: Boolean,\n default: false\n },\n spinReverse: {\n type: Boolean,\n default: false\n }\n },\n setup: function setup(props, _ref) {\n var attrs = _ref.attrs;\n var icon$1 = computed(function () {\n return normalizeIconArgs(props.icon);\n });\n var classes = computed(function () {\n return objectWithKey('classes', classList(props));\n });\n var transform = computed(function () {\n return objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n });\n var mask = computed(function () {\n return objectWithKey('mask', normalizeIconArgs(props.mask));\n });\n var renderedIcon = computed(function () {\n return icon(icon$1.value, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes.value), transform.value), mask.value), {}, {\n symbol: props.symbol,\n title: props.title\n }));\n });\n watch(renderedIcon, function (value) {\n if (!value) {\n return log('Could not find one or more icon(s)', icon$1.value, mask.value);\n }\n }, {\n immediate: true\n });\n var vnode = computed(function () {\n return renderedIcon.value ? convert(renderedIcon.value.abstract[0], {}, attrs) : null;\n });\n return function () {\n return vnode.value;\n };\n }\n});\n\nvar FontAwesomeLayers = defineComponent({\n name: 'FontAwesomeLayers',\n props: {\n fixedWidth: {\n type: Boolean,\n default: false\n }\n },\n setup: function setup(props, _ref) {\n var slots = _ref.slots;\n var familyPrefix = config.familyPrefix;\n var className = computed(function () {\n return [\"\".concat(familyPrefix, \"-layers\")].concat(_toConsumableArray(props.fixedWidth ? [\"\".concat(familyPrefix, \"-fw\")] : []));\n });\n return function () {\n return h('div', {\n class: className.value\n }, slots.default ? slots.default() : []);\n };\n }\n});\n\nvar FontAwesomeLayersText = defineComponent({\n name: 'FontAwesomeLayersText',\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n transform: {\n type: [String, Object],\n default: null\n },\n counter: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['bottom-left', 'bottom-right', 'top-left', 'top-right'].indexOf(value) > -1;\n }\n }\n },\n setup: function setup(props, _ref) {\n var attrs = _ref.attrs;\n var familyPrefix = config.familyPrefix;\n var classes = computed(function () {\n return objectWithKey('classes', [].concat(_toConsumableArray(props.counter ? [\"\".concat(familyPrefix, \"-layers-counter\")] : []), _toConsumableArray(props.position ? [\"\".concat(familyPrefix, \"-layers-\").concat(props.position)] : [])));\n });\n var transform = computed(function () {\n return objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n });\n var abstractElement = computed(function () {\n var _text = text(props.value.toString(), _objectSpread2(_objectSpread2({}, transform.value), classes.value)),\n abstract = _text.abstract;\n\n if (props.counter) {\n abstract[0].attributes.class = abstract[0].attributes.class.replace('fa-layers-text', '');\n }\n\n return abstract[0];\n });\n var vnode = computed(function () {\n return convert(abstractElement.value, {}, attrs);\n });\n return function () {\n return vnode.value;\n };\n }\n});\n\nexport { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText };\n","class Pointer {\r\n constructor(nativePointer) {\r\n /** Unique ID for this pointer */\r\n this.id = -1;\r\n this.nativePointer = nativePointer;\r\n this.pageX = nativePointer.pageX;\r\n this.pageY = nativePointer.pageY;\r\n this.clientX = nativePointer.clientX;\r\n this.clientY = nativePointer.clientY;\r\n if (self.Touch && nativePointer instanceof Touch) {\r\n this.id = nativePointer.identifier;\r\n }\r\n else if (isPointerEvent(nativePointer)) {\r\n // is PointerEvent\r\n this.id = nativePointer.pointerId;\r\n }\r\n }\r\n /**\r\n * Returns an expanded set of Pointers for high-resolution inputs.\r\n */\r\n getCoalesced() {\r\n if ('getCoalescedEvents' in this.nativePointer) {\r\n return this.nativePointer.getCoalescedEvents().map((p) => new Pointer(p));\r\n }\r\n return [this];\r\n }\r\n}\r\nconst isPointerEvent = (event) => self.PointerEvent && event instanceof PointerEvent;\r\nconst noop = () => { };\r\n/**\r\n * Track pointers across a particular element\r\n */\r\nclass PointerTracker {\r\n /**\r\n * Track pointers across a particular element\r\n *\r\n * @param element Element to monitor.\r\n * @param options\r\n */\r\n constructor(_element, { start = () => true, move = noop, end = noop, rawUpdates = false, } = {}) {\r\n this._element = _element;\r\n /**\r\n * State of the tracked pointers when they were pressed/touched.\r\n */\r\n this.startPointers = [];\r\n /**\r\n * Latest state of the tracked pointers. Contains the same number of pointers, and in the same\r\n * order as this.startPointers.\r\n */\r\n this.currentPointers = [];\r\n /**\r\n * Listener for mouse/pointer starts.\r\n *\r\n * @param event This will only be a MouseEvent if the browser doesn't support pointer events.\r\n */\r\n this._pointerStart = (event) => {\r\n if (event.button !== 0 /* Left */)\r\n return;\r\n if (!this._triggerPointerStart(new Pointer(event), event))\r\n return;\r\n // Add listeners for additional events.\r\n // The listeners may already exist, but no harm in adding them again.\r\n if (isPointerEvent(event)) {\r\n const capturingElement = event.target && 'setPointerCapture' in event.target\r\n ? event.target\r\n : this._element;\r\n capturingElement.setPointerCapture(event.pointerId);\r\n this._element.addEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move);\r\n this._element.addEventListener('pointerup', this._pointerEnd);\r\n this._element.addEventListener('pointercancel', this._pointerEnd);\r\n }\r\n else {\r\n // MouseEvent\r\n window.addEventListener('mousemove', this._move);\r\n window.addEventListener('mouseup', this._pointerEnd);\r\n }\r\n };\r\n /**\r\n * Listener for touchstart.\r\n * Only used if the browser doesn't support pointer events.\r\n */\r\n this._touchStart = (event) => {\r\n for (const touch of Array.from(event.changedTouches)) {\r\n this._triggerPointerStart(new Pointer(touch), event);\r\n }\r\n };\r\n /**\r\n * Listener for pointer/mouse/touch move events.\r\n */\r\n this._move = (event) => {\r\n const previousPointers = this.currentPointers.slice();\r\n const changedPointers = 'changedTouches' in event // Shortcut for 'is touch event'.\r\n ? Array.from(event.changedTouches).map((t) => new Pointer(t))\r\n : [new Pointer(event)];\r\n const trackedChangedPointers = [];\r\n for (const pointer of changedPointers) {\r\n const index = this.currentPointers.findIndex((p) => p.id === pointer.id);\r\n if (index === -1)\r\n continue; // Not a pointer we're tracking\r\n trackedChangedPointers.push(pointer);\r\n this.currentPointers[index] = pointer;\r\n }\r\n if (trackedChangedPointers.length === 0)\r\n return;\r\n this._moveCallback(previousPointers, trackedChangedPointers, event);\r\n };\r\n /**\r\n * Call the end callback for this pointer.\r\n *\r\n * @param pointer Pointer\r\n * @param event Related event\r\n */\r\n this._triggerPointerEnd = (pointer, event) => {\r\n const index = this.currentPointers.findIndex((p) => p.id === pointer.id);\r\n // Not a pointer we're interested in?\r\n if (index === -1)\r\n return false;\r\n this.currentPointers.splice(index, 1);\r\n this.startPointers.splice(index, 1);\r\n const cancelled = event.type === 'touchcancel' || event.type === 'pointercancel';\r\n this._endCallback(pointer, event, cancelled);\r\n return true;\r\n };\r\n /**\r\n * Listener for mouse/pointer ends.\r\n *\r\n * @param event This will only be a MouseEvent if the browser doesn't support pointer events.\r\n */\r\n this._pointerEnd = (event) => {\r\n if (!this._triggerPointerEnd(new Pointer(event), event))\r\n return;\r\n if (isPointerEvent(event)) {\r\n if (this.currentPointers.length)\r\n return;\r\n this._element.removeEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move);\r\n this._element.removeEventListener('pointerup', this._pointerEnd);\r\n this._element.removeEventListener('pointercancel', this._pointerEnd);\r\n }\r\n else {\r\n // MouseEvent\r\n window.removeEventListener('mousemove', this._move);\r\n window.removeEventListener('mouseup', this._pointerEnd);\r\n }\r\n };\r\n /**\r\n * Listener for touchend.\r\n * Only used if the browser doesn't support pointer events.\r\n */\r\n this._touchEnd = (event) => {\r\n for (const touch of Array.from(event.changedTouches)) {\r\n this._triggerPointerEnd(new Pointer(touch), event);\r\n }\r\n };\r\n this._startCallback = start;\r\n this._moveCallback = move;\r\n this._endCallback = end;\r\n this._rawUpdates = rawUpdates && 'onpointerrawupdate' in window;\r\n // Add listeners\r\n if (self.PointerEvent) {\r\n this._element.addEventListener('pointerdown', this._pointerStart);\r\n }\r\n else {\r\n this._element.addEventListener('mousedown', this._pointerStart);\r\n this._element.addEventListener('touchstart', this._touchStart);\r\n this._element.addEventListener('touchmove', this._move);\r\n this._element.addEventListener('touchend', this._touchEnd);\r\n this._element.addEventListener('touchcancel', this._touchEnd);\r\n }\r\n }\r\n /**\r\n * Remove all listeners.\r\n */\r\n stop() {\r\n this._element.removeEventListener('pointerdown', this._pointerStart);\r\n this._element.removeEventListener('mousedown', this._pointerStart);\r\n this._element.removeEventListener('touchstart', this._touchStart);\r\n this._element.removeEventListener('touchmove', this._move);\r\n this._element.removeEventListener('touchend', this._touchEnd);\r\n this._element.removeEventListener('touchcancel', this._touchEnd);\r\n this._element.removeEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move);\r\n this._element.removeEventListener('pointerup', this._pointerEnd);\r\n this._element.removeEventListener('pointercancel', this._pointerEnd);\r\n window.removeEventListener('mousemove', this._move);\r\n window.removeEventListener('mouseup', this._pointerEnd);\r\n }\r\n /**\r\n * Call the start callback for this pointer, and track it if the user wants.\r\n *\r\n * @param pointer Pointer\r\n * @param event Related event\r\n * @returns Whether the pointer is being tracked.\r\n */\r\n _triggerPointerStart(pointer, event) {\r\n if (!this._startCallback(pointer, event))\r\n return false;\r\n this.currentPointers.push(pointer);\r\n this.startPointers.push(pointer);\r\n return true;\r\n }\r\n}\n\nexport default PointerTracker;\n","import PointerTracker from 'pointer-tracker';\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css = \"pinch-zoom {\\n display: block;\\n overflow: hidden;\\n touch-action: none;\\n --scale: 1;\\n --x: 0;\\n --y: 0;\\n}\\n\\npinch-zoom > * {\\n transform: translate(var(--x), var(--y)) scale(var(--scale));\\n transform-origin: 0 0;\\n will-change: transform;\\n}\\n\";\nstyleInject(css);\n\nconst minScaleAttr = 'min-scale';\r\nconst allowPanMinScaleAttr = 'allow-pan-min-scale';\r\nconst resetToMinScaleLimitAttr = 'reset-to-min-scale-limit';\r\nconst reachMinScaleStrategyAttr = 'reach-min-scale-strategy';\r\nconst stopPropagateHandledAttr = 'stop-propagate-handled';\r\nconst reachMinScaleStrategyDefault = 'none';\r\nfunction getDistance(a, b) {\r\n if (!b)\r\n return 0;\r\n return Math.sqrt((b.clientX - a.clientX) ** 2 + (b.clientY - a.clientY) ** 2);\r\n}\r\nfunction getMidpoint(a, b) {\r\n if (!b)\r\n return a;\r\n return {\r\n clientX: (a.clientX + b.clientX) / 2,\r\n clientY: (a.clientY + b.clientY) / 2,\r\n };\r\n}\r\nfunction getAbsoluteValue(value, max) {\r\n if (typeof value === 'number')\r\n return value;\r\n if (value.trimRight().endsWith('%')) {\r\n return max * parseFloat(value) / 100;\r\n }\r\n return parseFloat(value);\r\n}\r\n// I'd rather use DOMMatrix/DOMPoint here, but the browser support isn't good enough.\r\n// Given that, better to use something everything supports.\r\nlet cachedSvg;\r\nfunction getSVG() {\r\n return cachedSvg || (cachedSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'));\r\n}\r\nfunction createMatrix() {\r\n return getSVG().createSVGMatrix();\r\n}\r\nfunction createPoint() {\r\n return getSVG().createSVGPoint();\r\n}\r\nconst MIN_SCALE = 0.01;\r\nconst ALLOW_PAN_MIN_SCALE = -1;\r\nconst RESET_TO_MIN_SCALE_LIMIT = -1;\r\nconst BUTTON_LEFT = 0;\r\nconst roundedCmp = (a, b) => {\r\n return Math.round(a * 100) - Math.round(b * 100);\r\n};\r\nclass PinchZoom extends HTMLElement {\r\n constructor() {\r\n super();\r\n // Current transform.\r\n this._transform = createMatrix();\r\n // Watch for children changes.\r\n // Note this won't fire for initial contents,\r\n // so _stageElChange is also called in connectedCallback.\r\n new MutationObserver(() => this._stageElChange())\r\n .observe(this, { childList: true });\r\n // Watch for pointers\r\n const pointerTracker = new PointerTracker(this, {\r\n start: (pointer, event) => {\r\n // We only want to track 2 pointers at most\r\n if (pointerTracker.currentPointers.length === 2 || !this._positioningEl)\r\n return false;\r\n const isPan = pointerTracker.currentPointers.length + 1 === 1;\r\n const handled = !(isPan && !this._allowPan());\r\n if (handled) {\r\n this._maybeStopPropagate(event);\r\n if (!isPan) { // only cancel if something was propagated\r\n this._maybeEmitCancel([pointer, ...pointerTracker.currentPointers]);\r\n }\r\n }\r\n event.preventDefault();\r\n return true;\r\n },\r\n move: (previousPointers, _, event) => {\r\n this._onPointerMove(previousPointers, pointerTracker.currentPointers, event);\r\n },\r\n end: (pointer, event) => {\r\n this._onPointerEnd(pointer, pointerTracker.currentPointers, event);\r\n },\r\n });\r\n this.addEventListener('wheel', event => this._onWheel(event));\r\n this.addEventListener('click', event => this._onClick(event, pointerTracker));\r\n }\r\n static get observedAttributes() { return [minScaleAttr]; }\r\n attributeChangedCallback(name, oldValue, newValue) {\r\n if (name === minScaleAttr) {\r\n if (this.scale < this.minScale) {\r\n this.setTransform({ scale: this.minScale });\r\n }\r\n }\r\n }\r\n get minScale() {\r\n const attrValue = this.getAttribute(minScaleAttr);\r\n if (!attrValue)\r\n return MIN_SCALE;\r\n const value = parseFloat(attrValue);\r\n if (Number.isFinite(value))\r\n return Math.max(MIN_SCALE, value);\r\n return MIN_SCALE;\r\n }\r\n set minScale(value) {\r\n this.setAttribute(minScaleAttr, String(value));\r\n }\r\n get reachMinScaleStrategy() {\r\n const attrValue = this.getAttribute(reachMinScaleStrategyAttr);\r\n const v = attrValue;\r\n return v || reachMinScaleStrategyDefault;\r\n }\r\n set reachMinScaleStrategy(value) {\r\n this.setAttribute(reachMinScaleStrategyAttr, value);\r\n }\r\n get allowPanMinScale() {\r\n const attrValue = this.getAttribute(allowPanMinScaleAttr);\r\n if (!attrValue)\r\n return ALLOW_PAN_MIN_SCALE;\r\n const value = parseFloat(attrValue);\r\n if (Number.isFinite(value))\r\n return Math.max(ALLOW_PAN_MIN_SCALE, value);\r\n return ALLOW_PAN_MIN_SCALE;\r\n }\r\n set allowPanMinScale(value) {\r\n this.setAttribute(allowPanMinScaleAttr, String(value));\r\n }\r\n get resetToMinScaleLimit() {\r\n const attrValue = this.getAttribute(resetToMinScaleLimitAttr);\r\n if (!attrValue)\r\n return RESET_TO_MIN_SCALE_LIMIT;\r\n const value = parseFloat(attrValue);\r\n if (Number.isFinite(value))\r\n return Math.max(RESET_TO_MIN_SCALE_LIMIT, value);\r\n return RESET_TO_MIN_SCALE_LIMIT;\r\n }\r\n set resetToMinScaleLimit(value) {\r\n this.setAttribute(resetToMinScaleLimitAttr, String(value));\r\n }\r\n get stopPropagateHandled() {\r\n return this.hasAttribute(stopPropagateHandledAttr);\r\n }\r\n set stopPropagateHandled(value) {\r\n if (value) {\r\n this.setAttribute(stopPropagateHandledAttr, '');\r\n }\r\n else {\r\n this.removeAttribute(stopPropagateHandledAttr);\r\n }\r\n }\r\n connectedCallback() {\r\n this._stageElChange();\r\n }\r\n get x() {\r\n return this._transform.e;\r\n }\r\n get y() {\r\n return this._transform.f;\r\n }\r\n get scale() {\r\n return this._transform.a;\r\n }\r\n /**\r\n * Change the scale, adjusting x/y by a given transform origin.\r\n */\r\n scaleTo(scale, opts = {}) {\r\n let { originX = 0, originY = 0, } = opts;\r\n const { relativeTo = 'content', allowChangeEvent = false, } = opts;\r\n const relativeToEl = (relativeTo === 'content' ? this._positioningEl : this);\r\n // No content element? Fall back to just setting scale\r\n if (!relativeToEl || !this._positioningEl) {\r\n this.setTransform({ scale, allowChangeEvent });\r\n return;\r\n }\r\n const rect = relativeToEl.getBoundingClientRect();\r\n originX = getAbsoluteValue(originX, rect.width);\r\n originY = getAbsoluteValue(originY, rect.height);\r\n if (relativeTo === 'content') {\r\n originX += this.x;\r\n originY += this.y;\r\n }\r\n else {\r\n const currentRect = this._positioningEl.getBoundingClientRect();\r\n originX -= currentRect.left;\r\n originY -= currentRect.top;\r\n }\r\n this._applyChange({\r\n allowChangeEvent,\r\n originX,\r\n originY,\r\n scaleDiff: scale / this.scale,\r\n });\r\n }\r\n /**\r\n * Update the stage with a given scale/x/y.\r\n */\r\n setTransform(opts = {}) {\r\n const { scale = this.scale, allowChangeEvent = false, } = opts;\r\n let { x = this.x, y = this.y, } = opts;\r\n // If we don't have an element to position, just set the value as given.\r\n // We'll check bounds later.\r\n if (!this._positioningEl) {\r\n this._updateTransform(scale, x, y, allowChangeEvent);\r\n return;\r\n }\r\n // Get current layout\r\n const thisBounds = this.getBoundingClientRect();\r\n const positioningElBounds = this._positioningEl.getBoundingClientRect();\r\n // Not displayed. May be disconnected or display:none.\r\n // Just take the values, and we'll check bounds later.\r\n if (!thisBounds.width || !thisBounds.height) {\r\n this._updateTransform(scale, x, y, allowChangeEvent);\r\n return;\r\n }\r\n // Create points for _positioningEl.\r\n let topLeft = createPoint();\r\n topLeft.x = positioningElBounds.left - thisBounds.left;\r\n topLeft.y = positioningElBounds.top - thisBounds.top;\r\n let bottomRight = createPoint();\r\n bottomRight.x = positioningElBounds.width + topLeft.x;\r\n bottomRight.y = positioningElBounds.height + topLeft.y;\r\n // Calculate the intended position of _positioningEl.\r\n const matrix = createMatrix()\r\n .translate(x, y)\r\n .scale(scale)\r\n // Undo current transform\r\n .multiply(this._transform.inverse());\r\n topLeft = topLeft.matrixTransform(matrix);\r\n bottomRight = bottomRight.matrixTransform(matrix);\r\n // Ensure _positioningEl can't move beyond out-of-bounds.\r\n // Correct for x\r\n if (topLeft.x > thisBounds.width) {\r\n x += thisBounds.width - topLeft.x;\r\n }\r\n else if (bottomRight.x < 0) {\r\n x += -bottomRight.x;\r\n }\r\n // Correct for y\r\n if (topLeft.y > thisBounds.height) {\r\n y += thisBounds.height - topLeft.y;\r\n }\r\n else if (bottomRight.y < 0) {\r\n y += -bottomRight.y;\r\n }\r\n this._updateTransform(scale, x, y, allowChangeEvent);\r\n }\r\n /**\r\n * Update transform values without checking bounds. This is only called in setTransform.\r\n */\r\n _updateTransform(scale, x, y, allowChangeEvent) {\r\n // Avoid scaling to zero\r\n if (scale < this.minScale) {\r\n scale = this.minScale;\r\n }\r\n // Return if there's no change\r\n if (scale === this.scale &&\r\n x === this.x &&\r\n y === this.y)\r\n return;\r\n this._transform.e = x;\r\n this._transform.f = y;\r\n this._transform.d = this._transform.a = scale;\r\n this.style.setProperty('--x', this.x + 'px');\r\n this.style.setProperty('--y', this.y + 'px');\r\n this.style.setProperty('--scale', this.scale + '');\r\n if (allowChangeEvent) {\r\n const event = new Event('change', { bubbles: true });\r\n this.dispatchEvent(event);\r\n }\r\n }\r\n /**\r\n * Called when the direct children of this element change.\r\n * Until we have have shadow dom support across the board, we\r\n * require a single element to be the child of <pinch-zoom>, and\r\n * that's the element we pan/scale.\r\n */\r\n _stageElChange() {\r\n this._positioningEl = undefined;\r\n if (this.children.length === 0)\r\n return;\r\n this._positioningEl = this.children[0];\r\n if (this.children.length > 1) {\r\n console.warn('<pinch-zoom> must not have more than one child.');\r\n }\r\n // Do a bounds check\r\n this.setTransform({ allowChangeEvent: true });\r\n }\r\n _onWheel(event) {\r\n if (!this._positioningEl)\r\n return;\r\n event.preventDefault();\r\n const currentRect = this._positioningEl.getBoundingClientRect();\r\n let { deltaY } = event;\r\n const { ctrlKey, deltaMode } = event;\r\n if (deltaMode === 1) { // 1 is \"lines\", 0 is \"pixels\"\r\n // Firefox uses \"lines\" for some types of mouse\r\n deltaY *= 15;\r\n }\r\n // ctrlKey is true when pinch-zooming on a trackpad.\r\n const divisor = ctrlKey ? 100 : 300;\r\n const scaleDiff = 1 - deltaY / divisor;\r\n const isZoomOut = scaleDiff < 1;\r\n this._applyChange({\r\n scaleDiff,\r\n originX: event.clientX - currentRect.left,\r\n originY: event.clientY - currentRect.top,\r\n allowChangeEvent: true,\r\n });\r\n if (isZoomOut) {\r\n this._maybeResetScale();\r\n }\r\n }\r\n _onPointerMove(previousPointers, currentPointers, event) {\r\n if (!this._positioningEl)\r\n return;\r\n const isPan = previousPointers.length < 2;\r\n if (isPan && !this._allowPan()) {\r\n return;\r\n }\r\n // Combine next points with previous points\r\n const currentRect = this._positioningEl.getBoundingClientRect();\r\n // For calculating panning movement\r\n const prevMidpoint = getMidpoint(previousPointers[0], previousPointers[1]);\r\n const newMidpoint = getMidpoint(currentPointers[0], currentPointers[1]);\r\n // Midpoint within the element\r\n const originX = prevMidpoint.clientX - currentRect.left;\r\n const originY = prevMidpoint.clientY - currentRect.top;\r\n // Calculate the desired change in scale\r\n const prevDistance = getDistance(previousPointers[0], previousPointers[1]);\r\n const newDistance = getDistance(currentPointers[0], currentPointers[1]);\r\n const scaleDiff = prevDistance ? newDistance / prevDistance : 1;\r\n this._applyChange({\r\n originX, originY, scaleDiff,\r\n panX: newMidpoint.clientX - prevMidpoint.clientX,\r\n panY: newMidpoint.clientY - prevMidpoint.clientY,\r\n allowChangeEvent: true,\r\n });\r\n this._maybeStopPropagate(event);\r\n }\r\n _maybeResetScale() {\r\n if (roundedCmp(this.scale, this.resetToMinScaleLimit) <= 0) {\r\n this._resetToMinScale();\r\n }\r\n }\r\n _onPointerEnd(pointer, currentPointers, event) {\r\n if (!this._positioningEl)\r\n return;\r\n const totalPointers = 1 + currentPointers.length;\r\n const isPinch = totalPointers >= 2;\r\n const isPan = totalPointers == 1;\r\n if (isPinch) {\r\n this._maybeResetScale();\r\n }\r\n if (isPan && !this._allowPan()) {\r\n return;\r\n }\r\n this._maybeStopPropagate(event);\r\n }\r\n _resetToMinScale() {\r\n if (this.reachMinScaleStrategy === 'reset') {\r\n this.setTransform({ scale: this.minScale, x: 0, y: 0 });\r\n }\r\n else {\r\n this.setTransform({ scale: this.minScale });\r\n }\r\n }\r\n /** Transform the view & fire a change event */\r\n _applyChange(opts = {}) {\r\n const { panX = 0, panY = 0, originX = 0, originY = 0, scaleDiff = 1, allowChangeEvent = false, } = opts;\r\n const matrix = createMatrix()\r\n // Translate according to panning.\r\n .translate(panX, panY)\r\n // Scale about the origin.\r\n .translate(originX, originY)\r\n // Apply current translate\r\n .translate(this.x, this.y)\r\n .scale(scaleDiff)\r\n .translate(-originX, -originY)\r\n // Apply current scale.\r\n .scale(this.scale);\r\n // Convert the transform into basic translate & scale.\r\n this.setTransform({\r\n allowChangeEvent,\r\n scale: matrix.a,\r\n x: matrix.e,\r\n y: matrix.f,\r\n });\r\n }\r\n _maybeStopPropagate(event) {\r\n if (this.stopPropagateHandled) {\r\n event.stopPropagation();\r\n }\r\n }\r\n _allowPan() {\r\n return (this.allowPanMinScale > 0\r\n && roundedCmp(this.scale, this.allowPanMinScale) > 0);\r\n }\r\n _maybeEmitCancel(pointers) {\r\n const makeCancelEvent = (pointer) => (new PointerEvent('pointercancel', {\r\n pointerId: pointer.id,\r\n clientX: pointer.clientX,\r\n clientY: pointer.clientY,\r\n }));\r\n if (this.stopPropagateHandled) {\r\n pointers.forEach(p => {\r\n if (this.parentElement && typeof this.parentElement.dispatchEvent === 'function') {\r\n this.parentElement.dispatchEvent(makeCancelEvent(p));\r\n }\r\n });\r\n }\r\n }\r\n _onClick(event, pointerTracker) {\r\n // We never handle non-left-clicks\r\n if (event.button !== BUTTON_LEFT) {\r\n return;\r\n }\r\n const wasPanning = pointerTracker.currentPointers.length === 0;\r\n const handled = !(wasPanning && !this._allowPan());\r\n if (handled) {\r\n this._maybeStopPropagate(event);\r\n }\r\n }\r\n}\n\ncustomElements.define('pinch-zoom', PinchZoom);\n\nexport default PinchZoom;\n","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`onScopeDispose() is called when there is no active effect scope` +\n ` to be associated with.`);\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit; // set was tracked\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n }\n else {\n deps[ptr++] = dep;\n }\n // clear bits\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = new WeakMap();\n// The number of effects currently being tracked recursively.\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\n/**\n * The bitwise track markers support at most 30 levels of recursion.\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\n * When recursion depth is greater, fall back to using a full cleanup.\n */\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = undefined;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n }\n else {\n cleanupEffect(this);\n }\n return this.fn();\n }\n finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = undefined;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n // stopped while running itself - defer the cleanup\n if (activeEffect === this) {\n this.deferStop = true;\n }\n else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === undefined ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, (depsMap = new Map()));\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, (dep = createDep()));\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { effect: activeEffect, target, type, key }\n : undefined;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit; // set newly tracked\n shouldTrack = !wasTracked(dep);\n }\n }\n else {\n // Full cleanup mode.\n shouldTrack = !dep.has(activeEffect);\n }\n if (shouldTrack) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n // never been tracked\n return;\n }\n let deps = [];\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\n // collection being cleared\n // trigger all effects for target\n deps = [...depsMap.values()];\n }\n else if (key === 'length' && isArray(target)) {\n depsMap.forEach((dep, key) => {\n if (key === 'length' || key >= newValue) {\n deps.push(dep);\n }\n });\n }\n else {\n // schedule runs for SET | ADD | DELETE\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n // also run for iteration key on ADD | DELETE | Map.SET\n switch (type) {\n case \"add\" /* TriggerOpTypes.ADD */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n else if (isIntegerKey(key)) {\n // new index added to array -> length changes\n deps.push(depsMap.get('length'));\n }\n break;\n case \"delete\" /* TriggerOpTypes.DELETE */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\" /* TriggerOpTypes.SET */:\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { target, type, key, newValue, oldValue, oldTarget }\n : undefined;\n if (deps.length === 1) {\n if (deps[0]) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(deps[0], eventInfo);\n }\n else {\n triggerEffects(deps[0]);\n }\n }\n }\n else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(createDep(effects), eventInfo);\n }\n else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n // spread into array for stabilization\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\n }\n if (effect.scheduler) {\n effect.scheduler();\n }\n else {\n effect.run();\n }\n }\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n/*#__PURE__*/\nObject.getOwnPropertyNames(Symbol)\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\n // function\n .filter(key => key !== 'arguments' && key !== 'caller')\n .map(key => Symbol[key])\n .filter(isSymbol));\nconst get = /*#__PURE__*/ createGetter();\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\n }\n // we run the method using the original args first (which may be reactive)\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n // if that didn't work, run it again using raw values.\n return arr[key](...args.map(toRaw));\n }\n else {\n return res;\n }\n };\n });\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\n instrumentations[key] = function (...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get(target, key, receiver) {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\n return shallow;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\n receiver ===\n (isReadonly\n ? shallow\n ? shallowReadonlyMap\n : readonlyMap\n : shallow\n ? shallowReactiveMap\n : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\" /* TrackOpTypes.GET */, key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n // ref unwrapping - skip unwrap for Array + integer key.\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n // Convert returned value into a proxy as well. we do the isObject check\n // here to avoid invalid value warning. Also need to lazy access readonly\n // and reactive here to avoid circular dependency.\n return isReadonly ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set = /*#__PURE__*/ createSetter();\nconst shallowSet = /*#__PURE__*/ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key)\n ? Number(key) < target.length\n : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n // don't trigger if target is something up in the prototype chain of original\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get,\n set,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\n// Props handlers are special in the sense that it should not unwrap top-level\n// refs (in order to allow refs to be explicitly passed down), but should\n// retain the reactivity of the normal readonly object.\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n});\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\n // of the value\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\n }\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n }\n else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n }\n else if (target !== rawTarget) {\n // #3602 readonly(reactive(Map))\n // ensure that the nested reactive `Map` can do tracking for itself\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\n }\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\n }\n return key === rawKey\n ? target.has(key)\n : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return Reflect.get(target, 'size', target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : undefined;\n // forward the operation before queueing reactions\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = (process.env.NODE_ENV !== 'production')\n ? isMap(target)\n ? new Map(target)\n : new Set(target)\n : undefined;\n // forward the operation before queueing reactions\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return target.forEach((value, key) => {\n // important: make sure the callback is\n // 1. invoked with the reactive map as `this` and 3rd arg\n // 2. the value received should be a corresponding reactive/readonly.\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function (...args) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\n const isKeyOnly = method === 'keys' && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly &&\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n // return a wrapped iterator which returns observed versions of the\n // values emitted from the real iterator\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done\n ? { value, done }\n : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function (...args) {\n if ((process.env.NODE_ENV !== 'production')) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\n iteratorMethods.forEach(method => {\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow\n ? isReadonly\n ? shallowReadonlyInstrumentations\n : shallowInstrumentations\n : isReadonly\n ? readonlyInstrumentations\n : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target\n ? instrumentations\n : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\n `which can lead to inconsistencies. ` +\n `Avoid differentiating between the raw and reactive versions ` +\n `of an object and only use the reactive version if possible.`);\n }\n}\n\nconst reactiveMap = new WeakMap();\nconst shallowReactiveMap = new WeakMap();\nconst readonlyMap = new WeakMap();\nconst shallowReadonlyMap = new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return 1 /* TargetType.COMMON */;\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n return 2 /* TargetType.COLLECTION */;\n default:\n return 0 /* TargetType.INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\n ? 0 /* TargetType.INVALID */\n : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\n/**\n * Creates a readonly copy of the original object. Note the returned copy is not\n * made reactive, but `readonly` can be called on an already reactive object.\n */\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n // target is already a Proxy, return it.\n // exception: calling readonly() on a reactive object\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\n return target;\n }\n // target already has corresponding Proxy\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n // only specific value types can be observed.\n const targetType = getTargetType(target);\n if (targetType === 0 /* TargetType.INVALID */) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n if ((process.env.NODE_ENV !== 'production')) {\n trackEffects(ref.dep || (ref.dep = createDep()), {\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(ref.dep, {\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value',\n newValue: newVal\n });\n }\n else {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = undefined;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref) {\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs)\n ? objectWithRefs\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = undefined;\n this.__v_isRef = true;\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === undefined ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n}\nfunction toRef(object, key, defaultValue) {\n const val = object[key];\n return isRef(val)\n ? val\n : new ObjectRefImpl(object, key, defaultValue);\n}\n\nvar _a;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = undefined;\n this.__v_isRef = true;\n this[_a] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\n }\n get value() {\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = (process.env.NODE_ENV !== 'production')\n ? () => {\n console.warn('Write operation failed: computed value is readonly');\n }\n : NOOP;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nvar _a$1;\nconst tick = /*#__PURE__*/ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = undefined;\n this._dirty = true;\n this.__v_isRef = true;\n this[_a$1] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n }\n else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n // chained upstream computeds are notified synchronously to ensure\n // value invalidation in case of sync access; normal effects are\n // deferred to be triggered in scheduler.\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(true /* computedTrigger */);\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return (this._value = this.effect.run());\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n return toRaw(this)._get();\n }\n}\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n // avoid props formatting or warn handler tracking deps that might be mutated\n // during patch, leading to infinite recursion.\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\n msg + args.join(''),\n instance && instance.proxy,\n trace\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\n .join('\\n'),\n trace\n ]);\n }\n else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n /* istanbul ignore if */\n if (trace.length &&\n // avoid spamming console during tests\n !false) {\n warnArgs.push(`\\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n // we can't just use the stack because it will be incomplete during updates\n // that did not start from the root. Re-construct the parent chain using\n // instance parent pointers.\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n }\n else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\n/* istanbul ignore next */\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\n const close = `>` + postfix;\n return vnode.props\n ? [open, ...formatProps(vnode.props), close]\n : [open + close];\n}\n/* istanbul ignore next */\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach(key => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\n/* istanbul ignore next */\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n }\n else if (typeof value === 'number' ||\n typeof value === 'boolean' ||\n value == null) {\n return raw ? value : [`${key}=${value}`];\n }\n else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n }\n else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n }\n else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if ((process.env.NODE_ENV !== 'production')) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n // crash in dev by default so it's more noticeable\n if (throwInDev) {\n throw err;\n }\n else {\n console.error(err);\n }\n }\n else {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if ((process.env.NODE_ENV !== 'production') &&\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = (process.env.NODE_ENV !== 'production')\n ? (job) => checkRecursiveUpdates(seen, job)\n : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n }\n else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`);\n return true;\n }\n else {\n seen.set(fn, count + 1);\n }\n }\n}\n\n/* eslint-disable no-restricted-globals */\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = new Set();\n// Expose the HMR runtime on the global object\n// This makes it entirely tree-shakable without polluting the exports and makes\n// it easier to be used in toolings like vue-loader\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\n// to be set so that its instances can be registered / removed.\nif ((process.env.NODE_ENV !== 'production')) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n // update initial record (for not-yet-rendered component)\n record.initialDef.render = newRender;\n [...record.instances].forEach(instance => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n // this flag forces child components with slot content to update\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n // update initial def (for not-yet-rendered components)\n updateComponentDef(record.initialDef, newComp);\n // create a snapshot which avoids the set being mutated during updates\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n // 1. Update existing comp definition to match new one\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n // 2. mark definition dirty. This forces the renderer to replace the\n // component on patch.\n hmrDirtyComponents.add(oldComp);\n }\n // 3. invalidate options resolution cache\n instance.appContext.optionsCache.delete(instance.type);\n // 4. actually update\n if (instance.ceReload) {\n // custom element\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n }\n else if (instance.parent) {\n // 4. Force the parent instance to re-render. This will cause all updated\n // components to be unmounted and re-mounted. Queue the update so that we\n // don't end up forcing the same parent to re-render multiple times.\n queueJob(instance.parent.update);\n // instance is the inner component of an async custom element\n // invoke to reset styles\n if (instance.parent.type.__asyncLoader &&\n instance.parent.ceReload) {\n instance.parent.ceReload(newComp.styles);\n }\n }\n else if (instance.appContext.reload) {\n // root instance mounted via createApp() has a reload method\n instance.appContext.reload();\n }\n else if (typeof window !== 'undefined') {\n // root instance inside tree created via raw render(). Force reload.\n window.location.reload();\n }\n else {\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\n }\n }\n // 5. make sure to cleanup dirty hmr components after update\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== '__file' && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n }\n catch (e) {\n console.error(e);\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\n `Full reload required.`);\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n }\n else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3000);\n }\n else {\n // non-browser env, assume not installed\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = \n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools &&\n typeof devtools.cleanupBuffer === 'function' &&\n // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\n };\n}\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if ((process.env.NODE_ENV !== 'production')) {\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) &&\n !(false )) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\n }\n }\n else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => a.trim());\n }\n if (number) {\n args = rawArgs.map(toNumber);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\n `Note that HTML attributes are case-insensitive and you cannot use ` +\n `v-on to listen to camelCase events when using in-DOM templates. ` +\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\n }\n }\n let handlerName;\n let handler = props[(handlerName = toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = toHandlerKey(camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n hasOwn(options, hyphenate(key)) ||\n hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled `<slot>`, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\n/**\n * dev only flag to track whether $attrs was used during render.\n * If $attrs was used during render then the warning for failed attrs\n * fallthrough can be suppressed.\n */\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(render.length > 1\n ? render(props, (process.env.NODE_ENV !== 'production')\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n let setRoot = undefined;\n if ((process.env.NODE_ENV !== 'production') &&\n result.patchFlag > 0 &&\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n // ignore v-model handlers when they fail to fallthrough\n if (!isModelListener(key)) {\n // remove `on`, lowercase first letter to reflect event casing\n // accurately\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n }\n else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(`Extraneous non-props attributes (` +\n `${extraAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes.`);\n }\n if (eventAttrs.length) {\n warn(`Extraneous non-emits event listeners (` +\n `${eventAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes. ` +\n `If the listener is intended to be a component custom event listener only, ` +\n `declare it using the \"emits\" option.`);\n }\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Runtime directive used on component with non-element root node. ` +\n `The directives will not function as intended.`);\n }\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Component inside <Transition> renders non-element root node ` +\n `that cannot be animated.`);\n }\n root.transition = vnode.transition;\n }\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\n setRoot(root);\n }\n else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\n/**\n * dev only\n * In dev mode, template root level comments are rendered, which turns the\n * template into a fragment root, but we need to locate the single element\n * root for attrs and scope id processing.\n */\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, undefined];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n }\n else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\n vnode.type === Comment // potential v-if branch switch\n );\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // Parent component's render function was hot-updated. Since this may have\n // caused the child component's slots content to have changed, we need to\n // force the child to update as well.\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\n hasWarned = true;\n // @ts-ignore `console.info` cannot be null error\n console[console.info ? 'info' : 'log'](`<Suspense> is an experimental feature and its API will likely change.`);\n }\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = toNumber(vnode.props && vnode.props.timeout);\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n if ((process.env.NODE_ENV !== 'production')) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(`suspense.resolve() is called without a pending branch.`);\n }\n if (suspense.isUnmounted) {\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\n }\n }\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(vnode);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\n warn(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`provide() can only be used inside setup().`);\n }\n }\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`injection \"${String(key)}\" not found.`);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\n `supports \\`watch(source, cb, options?) signature.`);\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n if ((process.env.NODE_ENV !== 'production') && !cb) {\n if (immediate !== undefined) {\n warn(`watch() \"immediate\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n if (deep !== undefined) {\n warn(`watch() \"deep\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n }\n const warnInvalidSource = (s) => {\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\n `a reactive object, or an array of these types.`);\n };\n const instance = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n }\n else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\n getter = () => source.map(s => {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\n }\n });\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = NOOP;\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return NOOP;\n }\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\n : hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n return () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\n // warn more than one non-comment child\n warn('<transition> can only be used on a single element or component. ' +\n 'Use <transition-group> for lists.');\n break;\n }\n child = c;\n hasFound = true;\n if (!(process.env.NODE_ENV !== 'production'))\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n // check mode\n if ((process.env.NODE_ENV !== 'production') &&\n mode &&\n mode !== 'in-out' &&\n mode !== 'out-in' &&\n mode !== 'default') {\n warn(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of <transition><keep-alive/></transition>, we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n instance.update();\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of <template v-for>\n const key = parentKey == null\n ? child.key\n : String(parentKey) + String(child.key != null ? child.key : i);\n // handle fragment children case, e.g. v-for\n if (child.type === Fragment) {\n if (child.patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n }\n // comment placeholders should be skipped, e.g. v-if\n else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n // #1126 if a transition children list contains multiple sub fragments, these\n // fragments will be merged into a flat children array. Since each v-for\n // fragment may contain different static bindings inside, we need to de-op\n // these children to force full diffs to ensure correct behavior.\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2 /* PatchFlags.BAIL */;\n }\n }\n return ret;\n}\n\n// implementation, close to no-op\nfunction defineComponent(options) {\n return isFunction(options) ? { setup: options, name: options.name } : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\n suspensible = true, onError: userOnError } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return (pendingRequest ||\n (thisRequest = pendingRequest =\n loader()\n .catch(err => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n }\n else {\n throw err;\n }\n })\n .then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if ((process.env.NODE_ENV !== 'production') && !comp) {\n warn(`Async component loader resolved to undefined. ` +\n `If you are using retry(), make sure to return its return value.`);\n }\n // interop module default\n if (comp &&\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n })));\n };\n return defineComponent({\n name: 'AsyncComponentWrapper',\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n // already resolved\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(err, instance, 13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\n };\n // suspense-controlled or SSR.\n if ((suspensible && instance.suspense) ||\n (isInSSRComponentSetup)) {\n return load()\n .then(comp => {\n return () => createInnerComp(comp, instance);\n })\n .catch(err => {\n onError(err);\n return () => errorComponent\n ? createVNode(errorComponent, {\n error: err\n })\n : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(`Async component timed out after ${timeout}ms.`);\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load()\n .then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n // parent is keep-alive, force update so the loaded component's\n // name is taken into account\n queueJob(instance.parent.update);\n }\n })\n .catch(err => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n }\n else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n }\n else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, { vnode: { ref, props, children, shapeFlag }, parent }) {\n const vnode = createVNode(comp, props, children);\n // ensure inner component inherits the async wrapper's ref owner\n vnode.ref = ref;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n // KeepAlive communicates with the instantiated renderer via the\n // ctx where the renderer passes in its internals,\n // and the KeepAlive instance exposes activate/deactivate implementations.\n // The whole point of this is to avoid importing KeepAlive directly in the\n // renderer to facilitate tree-shaking.\n const sharedContext = instance.ctx;\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\n // for KeepAlive, we just need to render its children\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = new Map();\n const keys = new Set();\n let current = null;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\n const storageContainer = createElement('div');\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance = vnode.component;\n move(vnode, container, anchor, 0 /* MoveType.ENTER */, parentSuspense);\n // in case props have changed\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\n queuePostRenderEffect(() => {\n instance.isDeactivated = false;\n if (instance.a) {\n invokeArrayFns(instance.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance = vnode.component;\n move(vnode, storageContainer, null, 1 /* MoveType.LEAVE */, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance.da) {\n invokeArrayFns(instance.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n instance.isDeactivated = true;\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n function unmount(vnode) {\n // reset the shapeFlag so it can be properly unmounted\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || cached.type !== current.type) {\n unmount(cached);\n }\n else if (current) {\n // current active instance should no longer be kept-alive.\n // we can't unmount it now but it might be later, so reset its flag now.\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n // prune cache on include/exclude prop change\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\n include && pruneCache(name => matches(include, name));\n exclude && pruneCache(name => !matches(exclude, name));\n }, \n // prune post-render after `current` has been updated\n { flush: 'post', deep: true });\n // cache sub tree after render\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n // fix #1621, the pendingCacheKey could be 0\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach(cached => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type) {\n // current instance will be unmounted as part of keep-alive's unmount\n resetShapeFlag(vnode);\n // but invoke its deactivated hook here\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n }\n else if (!isVNode(rawVNode) ||\n (!(rawVNode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) &&\n !(rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */))) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n // for async components, name check should be based in its loaded\n // inner component if available\n const name = getComponentName(isAsyncWrapper(vnode)\n ? vnode.type.__asyncResolved || {}\n : comp);\n const { include, exclude, max } = props;\n if ((include && (!name || !matches(include, name))) ||\n (exclude && name && matches(exclude, name))) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n // clone vnode if it's reused because we are going to mutate it\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n rawVNode.ssContent = vnode;\n }\n }\n // #1513 it's possible for the returned vnode to be cloned due to attr\n // fallthrough or scopeId, so the vnode here may not be the final vnode\n // that is mounted. Instead of caching it directly, we store the pending\n // key and cache `instance.subTree` (the normalized vnode) in\n // beforeMount/beforeUpdate hooks.\n pendingCacheKey = key;\n if (cachedVNode) {\n // copy over mounted state\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n // recursively update transition hooks on subTree\n setTransitionHooks(vnode, vnode.transition);\n }\n // avoid vnode being mounted as fresh\n vnode.shapeFlag |= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n // make this key the freshest\n keys.delete(key);\n keys.add(key);\n }\n else {\n keys.add(key);\n // prune oldest entry\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n // avoid vnode being unmounted\n vnode.shapeFlag |= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n }\n else if (isString(pattern)) {\n return pattern.split(',').includes(name);\n }\n else if (pattern.test) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\" /* LifecycleHooks.ACTIVATED */, target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\" /* LifecycleHooks.DEACTIVATED */, target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n // cache the deactivate branch check wrapper for injected hooks so the same\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\n // deactivation check\".\n const wrappedHook = hook.__wdc ||\n (hook.__wdc = () => {\n // only fire the hook if the target instance is NOT in a deactivated branch.\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n // In addition to registering it on the target instance, we walk up the parent\n // chain and register it on all ancestor instances that are keep-alive roots.\n // This avoids the need to walk the entire component tree when invoking these\n // hooks, and more importantly, avoids the need to track child components in\n // arrays.\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n // injectHook wraps the original for error handling, so make sure to remove\n // the wrapped version.\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n let shapeFlag = vnode.shapeFlag;\n if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {\n shapeFlag -= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n }\n if (shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {\n shapeFlag -= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n }\n vnode.shapeFlag = shapeFlag;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */ ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n // cache the error handling wrapper for injected hooks so the same hook\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\n // handling\".\n const wrappedHook = hook.__weh ||\n (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n // Set currentInstance during hook invocation.\n // This assumes the hook does not synchronously trigger other hooks, which\n // can only be false when the user does something really funky.\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n }\n else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\n warn(`${apiName} is called when there is no active component instance to be ` +\n `associated with. ` +\n `Lifecycle injection APIs can only be used during execution of setup().` +\n (` If you are using async setup(), make sure to register lifecycle ` +\n `hooks before the first await statement.`\n ));\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* LifecycleHooks.SERVER_PREFETCH */) &&\n injectHook(lifecycle, (...args) => hook(...args), target);\nconst onBeforeMount = createHook(\"bm\" /* LifecycleHooks.BEFORE_MOUNT */);\nconst onMounted = createHook(\"m\" /* LifecycleHooks.MOUNTED */);\nconst onBeforeUpdate = createHook(\"bu\" /* LifecycleHooks.BEFORE_UPDATE */);\nconst onUpdated = createHook(\"u\" /* LifecycleHooks.UPDATED */);\nconst onBeforeUnmount = createHook(\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */);\nconst onUnmounted = createHook(\"um\" /* LifecycleHooks.UNMOUNTED */);\nconst onServerPrefetch = createHook(\"sp\" /* LifecycleHooks.SERVER_PREFETCH */);\nconst onRenderTriggered = createHook(\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */);\nconst onRenderTracked = createHook(\"rtc\" /* LifecycleHooks.RENDER_TRACKED */);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\" /* LifecycleHooks.ERROR_CAPTURED */, hook, target);\n}\n\n/**\nRuntime helper for applying directives to a vnode. Example usage:\n\nconst comp = resolveComponent('comp')\nconst foo = resolveDirective('foo')\nconst bar = resolveDirective('bar')\n\nreturn withDirectives(h(comp), [\n [foo, this.x],\n [bar, this.y]\n])\n*/\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn('Do not use built-in directive ids as custom directive id: ' + name);\n }\n}\n/**\n * Adds directives to a VNode.\n */\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) ||\n internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8 /* ErrorCodes.DIRECTIVE_HOOK */, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst COMPONENTS = 'components';\nconst DIRECTIVES = 'directives';\n/**\n * @private\n */\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\n/**\n * @private\n */\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n }\n else {\n // invalid types will fallthrough to createVNode and raise warning\n return (component || NULL_DYNAMIC_COMPONENT);\n }\n}\n/**\n * @private\n */\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\n// implementation\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n // explicit self name has highest priority\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false /* do not include inferred name to avoid breaking existing code */);\n if (selfName &&\n (selfName === name ||\n selfName === camelize(name) ||\n selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = \n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) ||\n // global registration\n resolve(instance.appContext[type], name);\n if (!res && maybeSelfReference) {\n // fallback to implicit self-reference\n return Component;\n }\n if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {\n const extra = type === COMPONENTS\n ? `\\nIf this is a native custom element, make sure to exclude it from ` +\n `component resolution via compilerOptions.isCustomElement.`\n : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`resolve${capitalize(type.slice(0, -1))} ` +\n `can only be used in render() or setup().`);\n }\n}\nfunction resolve(registry, name) {\n return (registry &&\n (registry[name] ||\n registry[camelize(name)] ||\n registry[capitalize(camelize(name))]));\n}\n\n/**\n * Actual implementation\n */\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = (cache && cache[index]);\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, undefined, cached && cached[i]);\n }\n }\n else if (typeof source === 'number') {\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, undefined, cached && cached[i]);\n }\n }\n else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, undefined, cached && cached[i]));\n }\n else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n }\n else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\n/**\n * Compiler runtime helper for creating dynamic slots object\n * @private\n */\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n // array of dynamic slot generated by <template v-for=\"...\" #[...]>\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n }\n else if (slot) {\n // conditional single slot generated by <template v-if=\"...\" #foo>\n slots[slot.name] = slot.key\n ? (...args) => {\n const res = slot.fn(...args);\n // attach branch key so each conditional branch is considered a\n // different fragment\n if (res)\n res.key = slot.key;\n return res;\n }\n : slot.fn;\n }\n }\n return slots;\n}\n\n/**\n * Compiler runtime helper for rendering `<slot/>`\n * @private\n */\nfunction renderSlot(slots, name, props = {}, \n// this is not a user-facing function, so the fallback is always generated by\n// the compiler and guaranteed to be a function returning an array\nfallback, noSlotted) {\n if (currentRenderingInstance.isCE ||\n (currentRenderingInstance.parent &&\n isAsyncWrapper(currentRenderingInstance.parent) &&\n currentRenderingInstance.parent.isCE)) {\n return createVNode('slot', name === 'default' ? null : { name }, fallback && fallback());\n }\n let slot = slots[name];\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\n `function. You need to mark this component with $dynamic-slots in the ` +\n `parent template.`);\n slot = () => [];\n }\n // a compiled slot disables block tracking by default to avoid manual\n // invocation interfering with template-based block tracking, but in\n // `renderSlot` we can be sure that it's template-based so we can force\n // enable it.\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, {\n key: props.key ||\n // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n (validSlotContent && validSlotContent.key) ||\n `_${name}`\n }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* SlotFlags.STABLE */\n ? 64 /* PatchFlags.STABLE_FRAGMENT */\n : -2 /* PatchFlags.BAIL */);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + '-s'];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment &&\n !ensureValidVNode(child.children))\n return false;\n return true;\n })\n ? vnodes\n : null;\n}\n\n/**\n * For prefixing keys in v-on=\"obj\" with \"on\"\n * @private\n */\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if ((process.env.NODE_ENV !== 'production') && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key)\n ? `on:${key}`\n : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\n/**\n * #2437 In Vue 3, functional components do not have a public instance proxy but\n * they exist in the internal parent chain. For code that relies on traversing\n * public $parent chains, skip functional ones and go to the parent instead.\n */\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = \n// Move PURE marker to new line to workaround compiler discarding it\n// due to type annotation\n/*#__PURE__*/ extend(Object.create(null), {\n $: i => i,\n $el: i => i.vnode.el,\n $data: i => i.data,\n $props: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.props) : i.props),\n $attrs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.attrs) : i.attrs),\n $slots: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.slots) : i.slots),\n $refs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.refs) : i.refs),\n $parent: i => getPublicInstance(i.parent),\n $root: i => getPublicInstance(i.root),\n $emit: i => i.emit,\n $options: i => (__VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type),\n $forceUpdate: i => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: i => (__VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP)\n});\nconst isReservedPrefix = (key) => key === '_' || key === '$';\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n // for internal formatters to know that this is a Vue instance\n if ((process.env.NODE_ENV !== 'production') && key === '__isVue') {\n return true;\n }\n // prioritize <script setup> bindings during dev.\n // this allows even properties that start with _ or $ to be used - so that\n // it aligns with the production behavior where the render fn is inlined and\n // indeed has access to all declared variables.\n if ((process.env.NODE_ENV !== 'production') &&\n setupState !== EMPTY_OBJ &&\n setupState.__isScriptSetup &&\n hasOwn(setupState, key)) {\n return setupState[key];\n }\n // data / props / ctx\n // This getter gets called for every property access on the render context\n // during render and is a major hotspot. The most expensive part of this\n // is the multiple hasOwn() calls. It's much faster to do a simple property\n // access on a plain object, so we use an accessCache object (with null\n // prototype) to memoize what access type a key corresponds to.\n let normalizedProps;\n if (key[0] !== '$') {\n const n = accessCache[key];\n if (n !== undefined) {\n switch (n) {\n case 1 /* AccessTypes.SETUP */:\n return setupState[key];\n case 2 /* AccessTypes.DATA */:\n return data[key];\n case 4 /* AccessTypes.CONTEXT */:\n return ctx[key];\n case 3 /* AccessTypes.PROPS */:\n return props[key];\n // default: just fallthrough\n }\n }\n else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n accessCache[key] = 1 /* AccessTypes.SETUP */;\n return setupState[key];\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* AccessTypes.DATA */;\n return data[key];\n }\n else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) &&\n hasOwn(normalizedProps, key)) {\n accessCache[key] = 3 /* AccessTypes.PROPS */;\n return props[key];\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* AccessTypes.OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n // public $xxx properties\n if (publicGetter) {\n if (key === '$attrs') {\n track(instance, \"get\" /* TrackOpTypes.GET */, key);\n (process.env.NODE_ENV !== 'production') && markAttrsAccessed();\n }\n return publicGetter(instance);\n }\n else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) &&\n (cssModule = cssModule[key])) {\n return cssModule;\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n // user may set custom properties to `this` that start with `$`\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (\n // global properties\n ((globalProperties = appContext.config.globalProperties),\n hasOwn(globalProperties, key))) {\n {\n return globalProperties[key];\n }\n }\n else if ((process.env.NODE_ENV !== 'production') &&\n currentRenderingInstance &&\n (!isString(key) ||\n // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf('__v') !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(`Property ${JSON.stringify(key)} must be accessed via $data because it starts with a reserved ` +\n `character (\"$\" or \"_\") and is not proxied on the render context.`);\n }\n else if (instance === currentRenderingInstance) {\n warn(`Property ${JSON.stringify(key)} was accessed during render ` +\n `but is not defined on instance.`);\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n setupState[key] = value;\n return true;\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n }\n else if (hasOwn(instance.props, key)) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to mutate prop \"${key}\". Props are readonly.`, instance);\n return false;\n }\n if (key[0] === '$' && key.slice(1) in instance) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to mutate public property \"${key}\". ` +\n `Properties starting with $ are reserved and readonly.`, instance);\n return false;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n }\n else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n let normalizedProps;\n return (!!accessCache[key] ||\n (data !== EMPTY_OBJ && hasOwn(data, key)) ||\n (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) ||\n ((normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key)) ||\n hasOwn(ctx, key) ||\n hasOwn(publicPropertiesMap, key) ||\n hasOwn(appContext.config.globalProperties, key));\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n // invalidate key cache of a getter based property #5417\n target._.accessCache[key] = 0;\n }\n else if (hasOwn(descriptor, 'value')) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif ((process.env.NODE_ENV !== 'production') && !false) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn(`Avoid app logic that relies on enumerating keys on a component instance. ` +\n `The keys will be empty in production mode to avoid performance overhead.`);\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /*#__PURE__*/ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n // fast path for unscopables when using `with` block\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== '_' && !isGloballyWhitelisted(key);\n if ((process.env.NODE_ENV !== 'production') && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn(`Property ${JSON.stringify(key)} should not start with _ which is a reserved prefix for Vue internals.`);\n }\n return has;\n }\n});\n// dev only\n// In dev mode, the proxy target exposes the same properties as seen on `this`\n// for easier console inspection. In prod mode it will be an empty object so\n// these properties definitions can be skipped.\nfunction createDevRenderContext(instance) {\n const target = {};\n // expose internal instance for proxy handlers\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n // expose public properties\n Object.keys(publicPropertiesMap).forEach(key => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\n// dev only\nfunction exposePropsOnRenderContext(instance) {\n const { ctx, propsOptions: [propsOptions] } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach(key => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\n// dev only\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach(key => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn(`setup() return property ${JSON.stringify(key)} should not start with \"$\" or \"_\" ` +\n `which are reserved prefixes for Vue internals.`);\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nfunction createDuplicateChecker() {\n const cache = Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n }\n else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n // do not cache property access on public proxy during state initialization\n shouldCacheAccess = false;\n // call beforeCreate first before accessing other options since\n // the hook may mutate resolved options (#2791)\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\" /* LifecycleHooks.BEFORE_CREATE */);\n }\n const { \n // state\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \n // lifecycle\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \n // public API\n expose, inheritAttrs, \n // assets\n components, directives, filters } = options;\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\n if ((process.env.NODE_ENV !== 'production')) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* OptionTypes.PROPS */, key);\n }\n }\n }\n // options initialization order (to be consistent with Vue 2):\n // - props (already done outside of this function)\n // - inject\n // - methods\n // - data (deferred since it relies on `this` access)\n // - computed\n // - watch (deferred since it relies on `this` access)\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n // In dev mode, we use the `createRenderContext` function to define\n // methods to the proxy target, and those are read-only but\n // reconfigurable, so it needs to be redefined here\n if ((process.env.NODE_ENV !== 'production')) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n }\n else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Methods\" /* OptionTypes.METHODS */, key);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\n `Did you reference the function correctly?`);\n }\n }\n }\n if (dataOptions) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\n warn(`The data option must be a function. ` +\n `Plain object usage is no longer supported.`);\n }\n const data = dataOptions.call(publicThis, publicThis);\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\n `intend to perform data fetching before component renders, use ` +\n `async setup() + <Suspense>.`);\n }\n if (!isObject(data)) {\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\n }\n else {\n instance.data = reactive(data);\n if ((process.env.NODE_ENV !== 'production')) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* OptionTypes.DATA */, key);\n // expose data on ctx during dev\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n // state initialization complete at this point - start caching access\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt)\n ? opt.bind(publicThis, publicThis)\n : isFunction(opt.get)\n ? opt.get.bind(publicThis, publicThis)\n : NOOP;\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\n warn(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set)\n ? opt.set.bind(publicThis)\n : (process.env.NODE_ENV !== 'production')\n ? () => {\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\n }\n : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: v => (c.value = v)\n });\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Computed\" /* OptionTypes.COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions)\n ? provideOptions.call(publicThis)\n : provideOptions;\n Reflect.ownKeys(provides).forEach(key => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\" /* LifecycleHooks.CREATED */);\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach(_hook => register(_hook.bind(publicThis)));\n }\n else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach(key => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: val => (publicThis[key] = val)\n });\n });\n }\n else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n // options that are handled when creating the instance but also need to be\n // applied from mixins\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n // asset options.\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if ('default' in opt) {\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\n }\n else {\n injected = inject(opt.from || key);\n }\n }\n else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n // TODO remove the check in 3.3\n if (unwrapRef) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: v => (injected.value = v)\n });\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\n `and no longer needs \\`.value\\` in the next minor release. ` +\n `To opt-in to the new behavior now, ` +\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\n `temporary and will not be needed in the future.)`);\n }\n ctx[key] = injected;\n }\n }\n else {\n ctx[key] = injected;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Inject\" /* OptionTypes.INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(isArray(hook)\n ? hook.map(h => h.bind(instance.proxy))\n : hook.bind(instance.proxy), instance, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes('.')\n ? createPathGetter(publicThis, key)\n : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n }\n else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n }\n else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\n }\n else {\n const handler = isFunction(raw.handler)\n ? raw.handler.bind(publicThis)\n : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch option: \"${key}\"`, raw);\n }\n}\n/**\n * Resolve merged options and cache it on the component.\n * This is done only once per-component since the merging does not involve\n * instances.\n */\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n }\n else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n }\n else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\n }\n for (const key in from) {\n if (asMixin && key === 'expose') {\n (process.env.NODE_ENV !== 'production') &&\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\n `It should only be declared in the base component itself.`);\n }\n else {\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeObjectOptions,\n emits: mergeObjectOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(extend(Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\nisSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance.propsDefaults = Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n // ensure all declared prop keys are present\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = undefined;\n }\n }\n // validation\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n // stateful\n instance.props = isSSR ? props : shallowReactive(props);\n }\n else {\n if (!instance.type.props) {\n // functional w/ optional props, props === attrs\n instance.props = attrs;\n }\n else {\n // functional w/ declared props\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const { props, attrs, vnode: { patchFlag } } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !((process.env.NODE_ENV !== 'production') && isInHmrContext(instance)) &&\n (optimized || patchFlag > 0) &&\n !(patchFlag & 16 /* PatchFlags.FULL_PROPS */)) {\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // Compiler-generated props & no keys change, just set the updated\n // the props.\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n // skip if the prop key is a declared emit event listener\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n // PROPS flag guarantees rawProps to be non-null\n const value = rawProps[key];\n if (options) {\n // attr / props separation was done on init and will be consistent\n // in this code path, so just check if attrs have it.\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\n }\n }\n else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n }\n else {\n // full props update.\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n // in case of dynamic props, check if we need to delete keys from\n // the props object\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps ||\n // for camelCase\n (!hasOwn(rawProps, key) &&\n // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\n if (options) {\n if (rawPrevProps &&\n // for camelCase\n (rawPrevProps[key] !== undefined ||\n // for kebab-case\n rawPrevProps[kebabKey] !== undefined)) {\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\n }\n }\n else {\n delete props[key];\n }\n }\n }\n // in the case of functional component w/o props declaration, props and\n // attrs point to the same object so it should already have been updated.\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps ||\n (!hasOwn(rawProps, key) &&\n (!false ))) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n // trigger updates for $attrs in case it's used in component slots\n if (hasAttrsChanged) {\n trigger(instance, \"set\" /* TriggerOpTypes.SET */, '$attrs');\n }\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n // key, ref are reserved and never passed down\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n // prop option names are camelized during normalization, so to support\n // kebab -> camel conversion here we need to camelize the key.\n let camelKey;\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n }\n else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n }\n else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, 'default');\n // default values\n if (hasDefault && value === undefined) {\n const defaultValue = opt.default;\n if (opt.type !== Function && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n }\n else {\n setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(null, props);\n unsetCurrentInstance();\n }\n }\n else {\n value = defaultValue;\n }\n }\n // boolean casting\n if (opt[0 /* BooleanFlags.shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n }\n else if (opt[1 /* BooleanFlags.shouldCastTrue */] &&\n (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\n warn(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n }\n else if (raw) {\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\n warn(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = (normalized[normalizedKey] =\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* BooleanFlags.shouldCast */] = booleanIndex > -1;\n prop[1 /* BooleanFlags.shouldCastTrue */] =\n stringIndex < 0 || booleanIndex < stringIndex;\n // if the prop needs boolean casting or default value\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== '$') {\n return true;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\n// use function string name to check type constructors\n// so that it works across vms / iframes.\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ctor === null ? 'null' : '';\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex(t => isSameType(t, type));\n }\n else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\n/**\n * dev only\n */\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\n }\n}\n/**\n * dev only\n */\nfunction validateProp(name, value, prop, isAbsent) {\n const { type, required, validator } = prop;\n // required!\n if (required && isAbsent) {\n warn('Missing required prop: \"' + name + '\"');\n return;\n }\n // missing but optional\n if (value == null && !prop.required) {\n return;\n }\n // type check\n if (type != null && type !== true) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n // value is valid as long as one of the specified types match\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || '');\n isValid = valid;\n }\n if (!isValid) {\n warn(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n // custom validator\n if (validator && !validator(value)) {\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\n/**\n * dev only\n */\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else if (expectedType === 'null') {\n valid = value === null;\n }\n else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\n/**\n * dev only\n */\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\n/**\n * dev only\n */\nfunction styleValue(value, type) {\n if (type === 'String') {\n return `\"${value}\"`;\n }\n else if (type === 'Number') {\n return `${Number(value)}`;\n }\n else {\n return `${value}`;\n }\n}\n/**\n * dev only\n */\nfunction isExplicable(type) {\n const explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(elem => type.toLowerCase() === elem);\n}\n/**\n * dev only\n */\nfunction isBoolean(...args) {\n return args.some(elem => elem.toLowerCase() === 'boolean');\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\nconst normalizeSlotValue = (value) => isArray(value)\n ? value.map(normalizeVNode)\n : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n // already normalized - #5353\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\n `this will not track dependencies used in the slot. ` +\n `Invoke the slot function inside the render function instead.`);\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n }\n else if (value != null) {\n if ((process.env.NODE_ENV !== 'production') &&\n !(false )) {\n warn(`Non-function value encountered for slot \"${key}\". ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if ((process.env.NODE_ENV !== 'production') &&\n !isKeepAlive(instance.vnode) &&\n !(false )) {\n warn(`Non-function value encountered for default slot. ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n if (instance.vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // users can get the shallow readonly version of the slots object through `this.$slots`,\n // we should avoid the proxy object polluting the slots of the internal instance\n instance.slots = toRaw(children);\n // make compiler marker non-enumerable\n def(children, '_', type);\n }\n else {\n normalizeObjectSlots(children, (instance.slots = {}));\n }\n }\n else {\n instance.slots = {};\n if (children) {\n normalizeVNodeSlots(instance, children);\n }\n }\n def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // compiled slots.\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // Parent was HMR updated so slot content may have changed.\n // force update slots and mark instance for hmr as well\n extend(slots, children);\n }\n else if (optimized && type === 1 /* SlotFlags.STABLE */) {\n // compiled AND stable.\n // no need to update, and skip stale slots removal.\n needDeletionCheck = false;\n }\n else {\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\n // normalization.\n extend(slots, children);\n // #2893\n // when rendering the optimized slots by manually written render function,\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\n // i.e. let the `renderSlot` create the bailed Fragment\n if (!optimized && type === 1 /* SlotFlags.STABLE */) {\n delete slots._;\n }\n }\n }\n else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n }\n else if (children) {\n // non slot object children (direct value) passed to a component\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n // delete stale slots\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n delete slots[key];\n }\n }\n }\n};\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: undefined,\n warnHandler: undefined,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: Object.create(null),\n optionsCache: new WeakMap(),\n propsCache: new WeakMap(),\n emitsCache: new WeakMap()\n };\n}\nlet uid = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = Object.assign({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = new Set();\n let isMounted = false;\n const app = (context.app = {\n _uid: uid++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`app.config cannot be replaced. Modify individual options instead.`);\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\n }\n else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n }\n else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`A plugin must either be a function or an object with an \"install\" ` +\n `function.`);\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixin has already been applied to target app' +\n (mixin.name ? `: ${mixin.name}` : ''));\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixins are only available in builds supporting Options API');\n }\n return app;\n },\n component(name, component) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\n warn(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\n warn(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, isSVG) {\n if (!isMounted) {\n // #5571\n if ((process.env.NODE_ENV !== 'production') && rootContainer.__vue_app__) {\n warn(`There is already an app instance mounted on the host container.\\n` +\n ` If you want to mount another app on the same host container,` +\n ` you need to unmount the previous app by calling \\`app.unmount()\\` first.`);\n }\n const vnode = createVNode(rootComponent, rootProps);\n // store app context on the root VNode.\n // this will be set on the root instance on initial mount.\n vnode.appContext = context;\n // HMR root reload\n if ((process.env.NODE_ENV !== 'production')) {\n context.reload = () => {\n render(cloneVNode(vnode), rootContainer, isSVG);\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n }\n else {\n render(vnode, rootContainer, isSVG);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`App has already been mounted.\\n` +\n `If you want to remount the same app, move your app creation logic ` +\n `into a factory function and create fresh app instances for each ` +\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\n }\n },\n unmount() {\n if (isMounted) {\n render(null, app._container);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\n warn(`App already provides property with key \"${String(key)}\". ` +\n `It will be overwritten with the new value.`);\n }\n context.provides[key] = value;\n return app;\n }\n });\n return app;\n };\n}\n\n/**\n * Function for handling a template ref\n */\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n // when mounting async components, nothing needs to be done,\n // because the template ref is forwarded to inner component\n return;\n }\n const refValue = vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */\n ? getExposeProxy(vnode.component) || vnode.component.proxy\n : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if ((process.env.NODE_ENV !== 'production') && !owner) {\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\n `A vnode with ref must be created inside the render function.`);\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\n const setupState = owner.setupState;\n // dynamic ref changed. unset old ref\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n }\n else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12 /* ErrorCodes.FUNCTION_REF */, [value, refs]);\n }\n else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString\n ? hasOwn(setupState, ref)\n ? setupState[ref]\n : refs[ref]\n : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n }\n else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n }\n else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n }\n else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n }\n else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n }\n else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n }\n else {\n doSet();\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\nconst isComment = (node) => node.nodeType === 8 /* DOMNodeTypes.COMMENT */;\n// Note: hydration is DOM-specific\n// But we have to place it in core due to tight coupling with core - splitting\n// it out creates a ton of unnecessary complexity.\n// Hydration also depends on some renderer internal logic which needs to be\n// passed in via arguments.\nfunction createHydrationFunctions(rendererInternals) {\n const { mt: mountComponent, p: patch, o: { patchProp, createText, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to hydrate existing markup but container is empty. ` +\n `Performing full mount instead.`);\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hasMismatch = false;\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n if (hasMismatch && !false) {\n // this error should show up in production\n console.error(`Hydration completed but contains mismatches.`);\n }\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n const isFragmentStart = isComment(node) && node.data === '[';\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3 /* DOMNodeTypes.TEXT */) {\n // #5728 empty text node inside a slot can cause hydration failure\n // because the server rendered HTML won't contain a text node\n if (vnode.children === '') {\n insert((vnode.el = createText('')), parentNode(node), node);\n nextNode = node;\n }\n else {\n nextNode = onMismatch();\n }\n }\n else {\n if (node.data !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text mismatch:` +\n `\\n- Client: ${JSON.stringify(node.data)}` +\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (domType !== 8 /* DOMNodeTypes.COMMENT */ || isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n // entire template is static but SSRed as a fragment\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 /* DOMNodeTypes.ELEMENT */ || domType === 3 /* DOMNodeTypes.TEXT */) {\n // determine anchor, adopt content\n nextNode = node;\n // if the static vnode has its content stripped during build,\n // adopt it from the server-rendered HTML.\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children +=\n nextNode.nodeType === 1 /* DOMNodeTypes.ELEMENT */\n ? nextNode.outerHTML\n : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n }\n else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n if (domType !== 1 /* DOMNodeTypes.ELEMENT */ ||\n vnode.type.toLowerCase() !==\n node.tagName.toLowerCase()) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n // when setting up the render effect, if the initial vnode already\n // has .el set, the component will perform hydration instead of mount\n // on its sub-tree.\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\n // component may be async, so in the case of fragments we cannot rely\n // on component's rendered output to determine the end of the fragment\n // instead, we do a lookahead to find the end anchor node.\n nextNode = isFragmentStart\n ? locateClosingAsyncAnchor(node)\n : nextSibling(node);\n // #4293 teleport as component root\n if (nextNode &&\n isComment(nextNode) &&\n nextNode.data === 'teleport end') {\n nextNode = nextSibling(nextNode);\n }\n // #3787\n // if component is async, it may get moved / unmounted before its\n // inner component is loaded, so we need to give it a placeholder\n // vnode that matches its adopted DOM.\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode\n ? nextNode.previousSibling\n : container.lastChild;\n }\n else {\n subTree =\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n if (domType !== 8 /* DOMNodeTypes.COMMENT */) {\n nextNode = onMismatch();\n }\n else {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\n }\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\n // #4006 for form elements with non-string v-model value bindings\n // e.g. <option :value=\"obj\">, <input type=\"checkbox\" :true-value=\"1\">\n const forcePatchValue = (type === 'input' && dirs) || type === 'option';\n // skip props & children if this is hoisted static nodes\n // #5405 in dev, always hydrate children for HMR\n if ((process.env.NODE_ENV !== 'production') || forcePatchValue || patchFlag !== -1 /* PatchFlags.HOISTED */) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n if (forcePatchValue ||\n !optimized ||\n patchFlag & (16 /* PatchFlags.FULL_PROPS */ | 32 /* PatchFlags.HYDRATE_EVENTS */)) {\n for (const key in props) {\n if ((forcePatchValue && key.endsWith('value')) ||\n (isOn(key) && !isReservedProp(key))) {\n patchProp(el, key, null, props[key], false, undefined, parentComponent);\n }\n }\n }\n else if (props.onClick) {\n // Fast path for click listeners (which is most often) to avoid\n // iterating through props.\n patchProp(el, 'onClick', null, props.onClick, false, undefined, parentComponent);\n }\n }\n // vnode / directive hooks\n let vnodeHooks;\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n // children\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */ &&\n // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);\n let hasWarned = false;\n while (next) {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\n `server rendered element contains more child nodes than client vdom.`);\n hasWarned = true;\n }\n // The SSRed DOM contains more nodes than it should. Remove them.\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n }\n else if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n if (el.textContent !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\n `- Client: ${el.textContent}\\n` +\n `- Server: ${vnode.children}`);\n el.textContent = vnode.children;\n }\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized\n ? children[i]\n : (children[i] = normalizeVNode(children[i]));\n if (node) {\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n else if (vnode.type === Text && !vnode.children) {\n continue;\n }\n else {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\n `server rendered element contains fewer child nodes than client vdom.`);\n hasWarned = true;\n }\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);\n if (next && isComment(next) && next.data === ']') {\n return nextSibling((vnode.anchor = next));\n }\n else {\n // fragment didn't hydrate successfully, since we didn't get a end anchor\n // back. This should have led to node/children mismatch warnings.\n hasMismatch = true;\n // since the anchor is missing, we need to create one and insert it\n insert((vnode.anchor = createComment(`]`)), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* DOMNodeTypes.TEXT */\n ? `(text)`\n : isComment(node) && node.data === '['\n ? `(start of fragment)`\n : ``);\n vnode.el = null;\n if (isFragment) {\n // remove excessive fragment nodes\n const end = locateClosingAsyncAnchor(node);\n while (true) {\n const next = nextSibling(node);\n if (next && next !== end) {\n remove(next);\n }\n else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n return next;\n };\n const locateClosingAsyncAnchor = (node) => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === '[')\n match++;\n if (node.data === ']') {\n if (match === 0) {\n return nextSibling(node);\n }\n else {\n match--;\n }\n }\n }\n }\n return node;\n };\n return [hydrate, hydrateNode];\n}\n\n/* eslint-disable no-restricted-globals */\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\n\n/**\n * This is only called in esm-bundler builds.\n * It is called when a renderer is created, in `baseCreateRenderer` so that\n * importing runtime-core is side-effects free.\n *\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if ((process.env.NODE_ENV !== 'production') && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(`Feature flag${multi ? `s` : ``} ${needWarn.join(', ')} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, ` +\n `which expects these compile-time feature flags to be globally injected ` +\n `via the bundler config in order to get better tree-shaking in the ` +\n `production bundle.\\n\\n` +\n `For more details, see https://link.vuejs.org/feature-flags.`);\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense\n ;\n/**\n * The createRenderer function accepts two generic arguments:\n * HostNode and HostElement, corresponding to Node and Element types in the\n * host environment. For example, for runtime-dom, HostNode would be the DOM\n * `Node` interface and HostElement would be the DOM `Element` interface.\n *\n * Custom renderers can pass in the platform specific types like this:\n *\n * ``` js\n * const { render, createApp } = createRenderer<Node, Element>({\n * patchProp,\n * ...nodeOps\n * })\n * ```\n */\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\n// Separate API for creating hydration-enabled renderer.\n// Hydration logic is only used when calling this function, making it\n// tree-shakable.\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\n// implementation\nfunction baseCreateRenderer(options, createHydrationFns) {\n // compile-time feature flags check\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options;\n // Note: functions inside this closure should use `const xxx = () => {}`\n // style in order to prevent being inlined by minifiers.\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = (process.env.NODE_ENV !== 'production') && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n // patching & not same type, unmount old tree\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, isSVG);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n patchStaticNode(n1, n2, container, isSVG);\n }\n break;\n case Fragment:\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid VNode type:', type, `(${typeof type})`);\n }\n }\n // set ref\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\n }\n else {\n const el = (n2.el = n1.el);\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\n }\n else {\n // there's no support for dynamic comments\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, isSVG) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n };\n /**\n * Dev / HMR only\n */\n const patchStaticNode = (n1, n2, container, isSVG) => {\n // static nodes are only patched during dev for HMR\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n // remove existing\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\n }\n else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n isSVG = isSVG || n2.type === 'svg';\n if (n1 == null) {\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { type, props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n // mount children first, since some props may rely on child content\n // being already rendered, e.g. `<select value>`\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(el, vnode.children);\n }\n else if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== 'foreignObject', slotScopeIds, optimized);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n for (const key in props) {\n if (key !== 'value' && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n /**\n * Special case for setting value on DOM elements:\n * - it can be order-sensitive (e.g. should be set *after* min/max, #2325, #4024)\n * - it needs to be forced (#1471)\n * #2353 proposes adding another renderer option to configure this, but\n * the properties affects are so finite it is worth special casing it\n * here to reduce the complexity. (Special casing it also should not\n * affect non-DOM renderers)\n */\n if ('value' in props) {\n hostPatchProp(el, 'value', null, props.value);\n }\n if ((vnodeHook = props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n // scopeId\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n Object.defineProperty(el, '__vnode', {\n value: vnode,\n enumerable: false\n });\n Object.defineProperty(el, '__vueParentComponent', {\n value: parentComponent,\n enumerable: false\n });\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n // #1583 For inside suspense + suspense not resolved case, enter hook should call when suspense resolved\n // #1689 For inside suspense + suspense resolved case, just call it\n const needCallTransitionHooks = (!parentSuspense || (parentSuspense && !parentSuspense.pendingBranch)) &&\n transition &&\n !transition.persisted;\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) ||\n needCallTransitionHooks ||\n dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if ((process.env.NODE_ENV !== 'production') &&\n subTree.patchFlag > 0 &&\n subTree.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n subTree =\n filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = (children[i] = optimized\n ? cloneIfMounted(children[i])\n : normalizeVNode(children[i]));\n patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const el = (n2.el = n1.el);\n let { patchFlag, dynamicChildren, dirs } = n2;\n // #1426 take the old vnode's patch flag into account since user may clone a\n // compiler-generated vnode, which de-opts to FULL_PROPS\n patchFlag |= n1.patchFlag & 16 /* PatchFlags.FULL_PROPS */;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n // disable recurse in beforeUpdate hooks\n parentComponent && toggleRecurse(parentComponent, false);\n if ((vnodeHook = newProps.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate');\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // HMR updated, force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n const areChildrenSVG = isSVG && n2.type !== 'foreignObject';\n if (dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n }\n else if (!optimized) {\n // full diff\n patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n }\n if (patchFlag > 0) {\n // the presence of a patchFlag means this element's render code was\n // generated by the compiler and can take the fast path.\n // in this path old node and new node are guaranteed to have the same shape\n // (i.e. at the exact same position in the source template)\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n // element props contain dynamic keys, full diff needed\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n else {\n // class\n // this flag is matched when the element has dynamic class bindings.\n if (patchFlag & 2 /* PatchFlags.CLASS */) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, 'class', null, newProps.class, isSVG);\n }\n }\n // style\n // this flag is matched when the element has dynamic style bindings\n if (patchFlag & 4 /* PatchFlags.STYLE */) {\n hostPatchProp(el, 'style', oldProps.style, newProps.style, isSVG);\n }\n // props\n // This flag is matched when the element has dynamic prop/attr bindings\n // other than class and style. The keys of dynamic prop/attrs are saved for\n // faster iteration.\n // Note dynamic keys like :[foo]=\"bar\" will cause this optimization to\n // bail out and go through a full diff because we need to unset the old key\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // if the flag is present then dynamicProps must be non-null\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n // #1471 force patch value\n if (next !== prev || key === 'value') {\n hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n }\n // text\n // This flag is matched when the element has only dynamic text children.\n if (patchFlag & 1 /* PatchFlags.TEXT */) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n }\n else if (!optimized && dynamicChildren == null) {\n // unoptimized, full diff\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, 'updated');\n }, parentSuspense);\n }\n };\n // The fast path for blocks.\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n // Determine the container (parent element) for the patch.\n const container = \n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el &&\n // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment ||\n // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) ||\n // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 64 /* ShapeFlags.TELEPORT */))\n ? hostParentNode(oldVNode.el)\n : // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer;\n patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n for (const key in newProps) {\n // empty string is not valid prop\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n // defer patching value\n if (next !== prev && key !== 'value') {\n hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if ('value' in newProps) {\n hostPatchProp(el, 'value', oldProps.value, newProps.value);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const fragmentStartAnchor = (n2.el = n1 ? n1.el : hostCreateText(''));\n const fragmentEndAnchor = (n2.anchor = n1 ? n1.anchor : hostCreateText(''));\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if ((process.env.NODE_ENV !== 'production') &&\n // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */)) {\n // HMR updated / Dev root fragment (w/ comments), force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n // check if this is a slot fragment with :slotted scope ids\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n // a fragment can only have array children\n // since they are either generated by the compiler, or implicitly created\n // from arrays.\n mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n if (patchFlag > 0 &&\n patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */ &&\n dynamicChildren &&\n // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n // a stable fragment (template root or <template v-for>) doesn't need to\n // patch children order, but it may contain dynamicChildren.\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null ||\n (parentComponent && n2 === parentComponent.subTree)) {\n traverseStaticChildren(n1, n2, true /* shallow */);\n }\n }\n else {\n // keyed / unkeyed, or manual fragments.\n // for keyed & unkeyed, since they are compiler generated from v-for,\n // each child is guaranteed to be a block so the fragment will never\n // have dynamicChildren.\n patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {\n parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n }\n else {\n mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n }\n }\n else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense));\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n // inject renderer internals for keepAlive\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n // resolve props and slots for setup context\n {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `init`);\n }\n }\n // setup() is async. This component relies on async logic to be resolved\n // before proceeding\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n // Give it a placeholder if this is not hydration\n // TODO handle self-defined fallback\n if (!initialVNode.el) {\n const placeholder = (instance.subTree = createVNode(Comment));\n processCommentNode(null, placeholder, container, anchor);\n }\n return;\n }\n setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = (n2.component = n1.component);\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep &&\n !instance.asyncResolved) {\n // async & still pending - just update props and slots\n // since the component's reactive effect for render isn't set-up yet\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n return;\n }\n else {\n // normal update\n instance.next = n2;\n // in case the child component is also queued, remove it to avoid\n // double updating the same child component in the same flush.\n invalidateJob(instance.update);\n // instance.update is the reactive effect.\n instance.update();\n }\n }\n else {\n // no update needed. just copy over properties\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n // beforeMount hook\n if (bm) {\n invokeArrayFns(bm);\n }\n // onVnodeBeforeMount\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n // vnode has adopted host node - perform hydration instead of mount.\n const hydrateSubTree = () => {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(el, instance.subTree, instance, parentSuspense, null);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n // note: we are moving the render call into an async callback,\n // which means it won't track dependencies - but it's ok because\n // a server-rendered async wrapper is already in resolved state\n // and it will never need to change.\n () => !instance.isUnmounted && hydrateSubTree());\n }\n else {\n hydrateSubTree();\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const subTree = (instance.subTree = renderComponentRoot(instance));\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(null, subTree, container, anchor, instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n // mounted hook\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n // onVnodeMounted\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n }\n // activated hook for keep-alive roots.\n // #1742 activated hook must be accessed after first render\n // since the hook may be injected by a child keep-alive\n if (initialVNode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */ ||\n (parent &&\n isAsyncWrapper(parent.vnode) &&\n parent.vnode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */)) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n // #2458: deference mount-only object parameters to prevent memleaks\n initialVNode = container = anchor = null;\n }\n else {\n // updateComponent\n // This is triggered by mutation of component's own state (next: null)\n // OR parent calling processComponent (next: VNode)\n let { next, bu, u, parent, vnode } = instance;\n let originNext = next;\n let vnodeHook;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(next || instance.vnode);\n }\n // Disallow component effect recursion during pre-lifecycle hooks.\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n else {\n next = vnode;\n }\n // beforeUpdate hook\n if (bu) {\n invokeArrayFns(bu);\n }\n // onVnodeBeforeUpdate\n if ((vnodeHook = next.props && next.props.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n // render\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(prevTree, nextTree, \n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el), \n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree), instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n // self-triggered update. In case of HOC, update parent component\n // vnode el. HOC is indicated by parent instance's subTree pointing\n // to child component's vnode\n updateHOCHostEl(instance, nextTree.el);\n }\n // updated hook\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n // onVnodeUpdated\n if ((vnodeHook = next.props && next.props.onVnodeUpdated)) {\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n }\n };\n // create reactive effect for rendering\n const effect = (instance.effect = new ReactiveEffect(componentUpdateFn, () => queueJob(update), instance.scope // track it in component's effect scope\n ));\n const update = (instance.update = () => effect.run());\n update.id = instance.uid;\n // allowRecurse\n // #1801, #2043 component render effects should allow recursive updates\n toggleRecurse(instance, true);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = instance.rtc\n ? e => invokeArrayFns(instance.rtc, e)\n : void 0;\n effect.onTrigger = instance.rtg\n ? e => invokeArrayFns(instance.rtg, e)\n : void 0;\n update.ownerInstance = instance;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n // props update may have triggered pre-flush watchers.\n // flush them before the render update.\n flushPreFlushCbs();\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n // fast path\n if (patchFlag > 0) {\n if (patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */) {\n // this could be either fully-keyed or mixed (some keyed some not)\n // presence of patchFlag means children are guaranteed to be arrays\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n else if (patchFlag & 256 /* PatchFlags.UNKEYED_FRAGMENT */) {\n // unkeyed\n patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n }\n // children has 3 possibilities: text, array or no children.\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n // text children fast path\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n }\n else {\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // prev children was array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // two arrays, cannot assume anything, do full diff\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n // no new children, just unmount old\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n }\n else {\n // prev children was text OR null\n // new children is array OR null\n if (prevShapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(container, '');\n }\n // mount new if array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n if (oldLength > newLength) {\n // remove old\n unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n }\n else {\n // mount new\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n }\n };\n // can be all-keyed or mixed\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n i++;\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = (c2[e2] = optimized\n ? cloneIfMounted(c2[e2])\n : normalizeVNode(c2[e2]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n e1--;\n e2--;\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(null, (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i])), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n i++;\n }\n }\n }\n // 4. common sequence + unmount\n // (a b) c\n // (a b)\n // i = 2, e1 = 2, e2 = 1\n // a (b c)\n // (b c)\n // i = 0, e1 = 0, e2 = -1\n else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n }\n // 5. unknown sequence\n // [i ... e1 + 1]: a b [c d e] f g\n // [i ... e2 + 1]: a b [e d c h] f g\n // i = 2, e1 = 4, e2 = 5\n else {\n const s1 = i; // prev starting index\n const s2 = i; // next starting index\n // 5.1 build key:index map for newChildren\n const keyToNewIndexMap = new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (nextChild.key != null) {\n if ((process.env.NODE_ENV !== 'production') && keyToNewIndexMap.has(nextChild.key)) {\n warn(`Duplicate keys found during update:`, JSON.stringify(nextChild.key), `Make sure keys are unique.`);\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n // 5.2 loop through old children left to be patched and try to patch\n // matching nodes & remove nodes that are no longer present\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n // used to track whether any node has moved\n let maxNewIndexSoFar = 0;\n // works as Map<newIndex, oldIndex>\n // Note that oldIndex is offset by +1\n // and oldIndex = 0 is a special value indicating the new node has\n // no corresponding old node.\n // used for determining longest stable subsequence\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n // all new children have been patched so this can only be a removal\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n }\n else {\n // key-less node, try to locate a key-less node of the same type\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 &&\n isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === undefined) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n }\n else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n patched++;\n }\n }\n // 5.3 move and mount\n // generate longest stable subsequence only when nodes have moved\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n // looping backwards so that we can use last patched node as anchor\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n // mount new\n patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (moved) {\n // move if:\n // There is no stable subsequence (e.g. a reverse)\n // OR current node is not among the stable sequence\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2 /* MoveType.REORDER */);\n }\n else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n // single nodes\n const needTransition = moveType !== 2 /* MoveType.REORDER */ &&\n shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition;\n if (needTransition) {\n if (moveType === 0 /* MoveType.ENTER */) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n }\n else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove, performLeave);\n }\n else {\n performLeave();\n }\n }\n }\n else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n // unset ref\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 /* ShapeFlags.ELEMENT */ && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n }\n else {\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeUnmount');\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n }\n else if (dynamicChildren &&\n // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment ||\n (patchFlag > 0 && patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */))) {\n // fast path for block nodes: only need to unmount dynamic children.\n unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n }\n else if ((type === Fragment &&\n patchFlag &\n (128 /* PatchFlags.KEYED_FRAGMENT */ | 256 /* PatchFlags.UNKEYED_FRAGMENT */)) ||\n (!optimized && shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */)) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if ((shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeUnmounted)) ||\n shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs &&\n invokeDirectiveHook(vnode, null, parentComponent, 'unmounted');\n }, parentSuspense);\n }\n };\n const remove = vnode => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if ((process.env.NODE_ENV !== 'production') &&\n vnode.patchFlag > 0 &&\n vnode.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */ &&\n transition &&\n !transition.persisted) {\n vnode.children.forEach(child => {\n if (child.type === Comment) {\n hostRemove(child.el);\n }\n else {\n remove(child);\n }\n });\n }\n else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition &&\n !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n }\n else {\n performLeave();\n }\n }\n else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n // For fragments, directly remove all contained DOM nodes.\n // (fragment child nodes cannot have transition)\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, update, subTree, um } = instance;\n // beforeUnmount hook\n if (bum) {\n invokeArrayFns(bum);\n }\n // stop effects in component scope\n scope.stop();\n // update may be null if a component is unmounted before its async\n // setup has resolved.\n if (update) {\n // so that scheduler will no longer invoke it\n update.active = false;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n // unmounted hook\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n // A component with async dep inside a pending suspense is unmounted before\n // its async dep resolves. This should remove the dep from the suspense, and\n // cause the suspense to resolve immediately if that was the last dep.\n if (parentSuspense &&\n parentSuspense.pendingBranch &&\n !parentSuspense.isUnmounted &&\n instance.asyncDep &&\n !instance.asyncResolved &&\n instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = vnode => {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n return vnode.suspense.next();\n }\n return hostNextSibling((vnode.anchor || vnode.el));\n };\n const render = (vnode, container, isSVG) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n }\n else {\n patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n }\n flushPreFlushCbs();\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(internals);\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\n/**\n * #1156\n * When a component is HMR-enabled, we need to make sure that all static nodes\n * inside a block also inherit the DOM element from the previous tree so that\n * HMR updates (which are full updates) can retrieve the element for patching.\n *\n * #2080\n * Inside keyed `template` fragment static children, if a fragment is moved,\n * the children will always be moved. Therefore, in order to ensure correct move\n * position, el should be inherited from previous nodes.\n */\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n // this is only called in the optimized path so array children are\n // guaranteed to be vnodes\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32 /* PatchFlags.HYDRATE_EVENTS */) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n // also inherit for comment nodes, but not placeholders (e.g. v-if which\n // would have received .el during block patch)\n if ((process.env.NODE_ENV !== 'production') && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === '');\nconst isTargetSVG = (target) => typeof SVGElement !== 'undefined' && target instanceof SVGElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Current renderer does not support string target for Teleports. ` +\n `(missing querySelector renderer option)`);\n return null;\n }\n else {\n const target = select(targetSelector);\n if (!target) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Failed to locate Teleport target with selector \"${targetSelector}\". ` +\n `Note the target element must exist before the component is mounted - ` +\n `i.e. the target cannot be rendered by the component itself, and ` +\n `ideally should be outside of the entire Vue component tree.`);\n }\n return target;\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !targetSelector && !isTeleportDisabled(props)) {\n warn(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {\n const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n // #3302\n // HMR updated, force full diff\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n // insert anchors in the main view\n const placeholder = (n2.el = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport start')\n : createText(''));\n const mainAnchor = (n2.anchor = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport end')\n : createText(''));\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const target = (n2.target = resolveTarget(n2.props, querySelector));\n const targetAnchor = (n2.targetAnchor = createText(''));\n if (target) {\n insert(targetAnchor, target);\n // #2652 we could be teleporting from a non-SVG tree into an SVG tree\n isSVG = isSVG || isTargetSVG(target);\n }\n else if ((process.env.NODE_ENV !== 'production') && !disabled) {\n warn('Invalid Teleport target on mount:', target, `(${typeof target})`);\n }\n const mount = (container, anchor) => {\n // Teleport *always* has Array children. This is enforced in both the\n // compiler and vnode children normalization.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n }\n else if (target) {\n mount(target, targetAnchor);\n }\n }\n else {\n // update content\n n2.el = n1.el;\n const mainAnchor = (n2.anchor = n1.anchor);\n const target = (n2.target = n1.target);\n const targetAnchor = (n2.targetAnchor = n1.targetAnchor);\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n isSVG = isSVG || isTargetSVG(target);\n if (dynamicChildren) {\n // fast path when the teleport happens to be a block root\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, isSVG, slotScopeIds);\n // even in block tree mode we need to make sure all root-level nodes\n // in the teleport inherit previous DOM references so that they can\n // be moved in future patches.\n traverseStaticChildren(n1, n2, true);\n }\n else if (!optimized) {\n patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, false);\n }\n if (disabled) {\n if (!wasDisabled) {\n // enabled -> disabled\n // move into main container\n moveTeleport(n2, container, mainAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n else {\n // target changed\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = (n2.target = resolveTarget(n2.props, querySelector));\n if (nextTarget) {\n moveTeleport(n2, nextTarget, null, internals, 0 /* TeleportMoveTypes.TARGET_CHANGE */);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid Teleport target on update:', target, `(${typeof target})`);\n }\n }\n else if (wasDisabled) {\n // disabled -> enabled\n // move into teleport target\n moveTeleport(n2, target, targetAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n }\n },\n remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n if (target) {\n hostRemove(targetAnchor);\n }\n // an unmounted teleport should always remove its children if not disabled\n if (doRemove || !isTeleportDisabled(props)) {\n hostRemove(anchor);\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(child, parentComponent, parentSuspense, true, !!child.dynamicChildren);\n }\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* TeleportMoveTypes.REORDER */) {\n // move target anchor if this is a target change.\n if (moveType === 0 /* TeleportMoveTypes.TARGET_CHANGE */) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2 /* TeleportMoveTypes.REORDER */;\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n // if this is a re-order and teleport is enabled (content is in target)\n // do not move children. So the opposite is: only move children if this\n // is not a reorder, or the teleport is disabled\n if (!isReorder || isTeleportDisabled(props)) {\n // Teleport has either Array children or no children.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, parentAnchor, 2 /* MoveType.REORDER */);\n }\n }\n }\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector } }, hydrateChildren) {\n const target = (vnode.target = resolveTarget(vnode.props, querySelector));\n if (target) {\n // if multiple teleports rendered to the same target element, we need to\n // pick up from where the last teleport finished instead of the first node\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);\n vnode.targetAnchor = targetNode;\n }\n else {\n vnode.anchor = nextSibling(node);\n // lookahead until we find the target anchor\n // we cannot rely on return value of hydrateChildren() because there\n // could be nested teleports\n let targetAnchor = targetNode;\n while (targetAnchor) {\n targetAnchor = nextSibling(targetAnchor);\n if (targetAnchor &&\n targetAnchor.nodeType === 8 &&\n targetAnchor.data === 'teleport anchor') {\n vnode.targetAnchor = targetAnchor;\n target._lpa =\n vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n hydrateChildren(targetNode, vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\n// Force-casted public typing for h and TSX props inference\nconst Teleport = TeleportImpl;\n\nconst Fragment = Symbol((process.env.NODE_ENV !== 'production') ? 'Fragment' : undefined);\nconst Text = Symbol((process.env.NODE_ENV !== 'production') ? 'Text' : undefined);\nconst Comment = Symbol((process.env.NODE_ENV !== 'production') ? 'Comment' : undefined);\nconst Static = Symbol((process.env.NODE_ENV !== 'production') ? 'Static' : undefined);\n// Since v-if and v-for are the two possible ways node structure can dynamically\n// change, once we consider v-if branches and each v-for fragment a block, we\n// can divide a template into nested blocks, and within each block the node\n// structure would be stable. This allows us to skip most children diffing\n// and only worry about the dynamic nodes (indicated by patch flags).\nconst blockStack = [];\nlet currentBlock = null;\n/**\n * Open a block.\n * This must be called before `createBlock`. It cannot be part of `createBlock`\n * because the children of the block are evaluated before `createBlock` itself\n * is called. The generated code typically looks like this:\n *\n * ```js\n * function render() {\n * return (openBlock(),createBlock('div', null, [...]))\n * }\n * ```\n * disableTracking is true when creating a v-for fragment block, since a v-for\n * fragment always diffs its children.\n *\n * @private\n */\nfunction openBlock(disableTracking = false) {\n blockStack.push((currentBlock = disableTracking ? null : []));\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\n// Whether we should be tracking dynamic child nodes inside a block.\n// Only tracks when this value is > 0\n// We are not using a simple boolean because this value may need to be\n// incremented/decremented by nested usage of v-once (see below)\nlet isBlockTreeEnabled = 1;\n/**\n * Block tracking sometimes needs to be disabled, for example during the\n * creation of a tree that needs to be cached by v-once. The compiler generates\n * code like this:\n *\n * ``` js\n * _cache[1] || (\n * setBlockTracking(-1),\n * _cache[1] = createVNode(...),\n * setBlockTracking(1),\n * _cache[1]\n * )\n * ```\n *\n * @private\n */\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n // save current block children on the block vnode\n vnode.dynamicChildren =\n isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n // close block\n closeBlock();\n // a block is always going to be patched, so track it as a child of its\n // parent block\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\n/**\n * @private\n */\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true /* isBlock */));\n}\n/**\n * Create a block root vnode. Takes the same exact arguments as `createVNode`.\n * A block root keeps track of dynamic nodes within the block in the\n * `dynamicChildren` array.\n *\n * @private\n */\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */));\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if ((process.env.NODE_ENV !== 'production') &&\n n2.shapeFlag & 6 /* ShapeFlags.COMPONENT */ &&\n hmrDirtyComponents.has(n2.type)) {\n // HMR only: if the component has been hot-updated, force a reload.\n return false;\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\n/**\n * Internal API for registering an arguments transform for createVNode\n * used for creating stubs in the test-utils\n * It is *internal* but needs to be exposed for test-utils to pick up proper\n * typings\n */\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(...(vnodeArgsTransformer\n ? vnodeArgsTransformer(args, currentRenderingInstance)\n : args));\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n return (ref != null\n ? isString(ref) || isRef(ref) || isFunction(ref)\n ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for }\n : ref\n : null);\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1 /* ShapeFlags.ELEMENT */, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n // normalize suspense children\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.normalize(vnode);\n }\n }\n else if (children) {\n // compiled element vnode - if children is passed, only possible types are\n // string or Array.\n vnode.shapeFlag |= isString(children)\n ? 8 /* ShapeFlags.TEXT_CHILDREN */\n : 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n // validate key\n if ((process.env.NODE_ENV !== 'production') && vnode.key !== vnode.key) {\n warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n // track vnode for block tree\n if (isBlockTreeEnabled > 0 &&\n // avoid a block node from tracking itself\n !isBlockNode &&\n // has current parent block\n currentBlock &&\n // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6 /* ShapeFlags.COMPONENT */) &&\n // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32 /* PatchFlags.HYDRATE_EVENTS */) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = ((process.env.NODE_ENV !== 'production') ? createVNodeWithArgsTransform : _createVNode);\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if ((process.env.NODE_ENV !== 'production') && !type) {\n warn(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n // createVNode receiving an existing vnode. This happens in cases like\n // <component :is=\"vnode\"/>\n // #2078 make sure to merge refs during the clone instead of overwriting it\n const cloned = cloneVNode(type, props, true /* mergeRef: true */);\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n }\n else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2 /* PatchFlags.BAIL */;\n return cloned;\n }\n // class component normalization.\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n // class & style normalization.\n if (props) {\n // for reactive or proxy objects, we need to clone it to enable mutation.\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n // reactive state objects need to be cloned since they are likely to be\n // mutated\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n // encode the vnode type information into a bitmap\n const shapeFlag = isString(type)\n ? 1 /* ShapeFlags.ELEMENT */\n : isSuspense(type)\n ? 128 /* ShapeFlags.SUSPENSE */\n : isTeleport(type)\n ? 64 /* ShapeFlags.TELEPORT */\n : isObject(type)\n ? 4 /* ShapeFlags.STATEFUL_COMPONENT */\n : isFunction(type)\n ? 2 /* ShapeFlags.FUNCTIONAL_COMPONENT */\n : 0;\n if ((process.env.NODE_ENV !== 'production') && shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */ && isProxy(type)) {\n type = toRaw(type);\n warn(`Vue received a Component which was made a reactive object. This can ` +\n `lead to unnecessary performance overhead, and should be avoided by ` +\n `marking the component with \\`markRaw\\` or using \\`shallowRef\\` ` +\n `instead of \\`ref\\`.`, `\\nComponent that was made reactive: `, type);\n }\n return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props\n ? extend({}, props)\n : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n // This is intentionally NOT using spread or extend to avoid the runtime\n // key enumeration cost.\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref\n ? // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref\n ? isArray(ref)\n ? ref.concat(normalizeRef(extraProps))\n : [ref, normalizeRef(extraProps)]\n : normalizeRef(extraProps)\n : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: (process.env.NODE_ENV !== 'production') && patchFlag === -1 /* PatchFlags.HOISTED */ && isArray(children)\n ? children.map(deepCloneVNode)\n : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment\n ? patchFlag === -1 // hoisted node\n ? 16 /* PatchFlags.FULL_PROPS */\n : patchFlag | 16 /* PatchFlags.FULL_PROPS */\n : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor\n };\n return cloned;\n}\n/**\n * Dev only, for HMR of hoisted vnodes reused in v-for\n * https://github.com/vitejs/vite/issues/2022\n */\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\n/**\n * @private\n */\nfunction createTextVNode(text = ' ', flag = 0) {\n return createVNode(Text, null, text, flag);\n}\n/**\n * @private\n */\nfunction createStaticVNode(content, numberOfNodes) {\n // A static vnode can contain multiple stringified elements, and the number\n // of elements is necessary for hydration.\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\n/**\n * @private\n */\nfunction createCommentVNode(text = '', \n// when used as the v-else branch, the comment node must be created as a\n// block to ensure correct updates.\nasBlock = false) {\n return asBlock\n ? (openBlock(), createBlock(Comment, null, text))\n : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === 'boolean') {\n // empty placeholder\n return createVNode(Comment);\n }\n else if (isArray(child)) {\n // fragment\n return createVNode(Fragment, null, \n // #3666, avoid reference pollution when reusing vnode\n child.slice());\n }\n else if (typeof child === 'object') {\n // already vnode, this should be the most common since compiled templates\n // always produce all-vnode children arrays\n return cloneIfMounted(child);\n }\n else {\n // strings and numbers\n return createVNode(Text, null, String(child));\n }\n}\n// optimized normalization for template-compiled render fns\nfunction cloneIfMounted(child) {\n return (child.el === null && child.patchFlag !== -1 /* PatchFlags.HOISTED */) ||\n child.memo\n ? child\n : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n }\n else if (isArray(children)) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n else if (typeof children === 'object') {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 64 /* ShapeFlags.TELEPORT */)) {\n // Normalize slot to plain children for plain element and Teleport\n const slot = children.default;\n if (slot) {\n // _c marker is added by withCtx() indicating this is a compiled slot\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n }\n else {\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n }\n else if (slotFlag === 3 /* SlotFlags.FORWARDED */ && currentRenderingInstance) {\n // a child component receives forwarded slots from the parent.\n // its slot type is determined by its parent's slot type.\n if (currentRenderingInstance.slots._ === 1 /* SlotFlags.STABLE */) {\n children._ = 1 /* SlotFlags.STABLE */;\n }\n else {\n children._ = 2 /* SlotFlags.DYNAMIC */;\n vnode.patchFlag |= 1024 /* PatchFlags.DYNAMIC_SLOTS */;\n }\n }\n }\n }\n else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n }\n else {\n children = String(children);\n // force teleport children to array so it can be moved around\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n children = [createTextVNode(children)];\n }\n else {\n type = 8 /* ShapeFlags.TEXT_CHILDREN */;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === 'class') {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n }\n else if (key === 'style') {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n }\n else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming &&\n existing !== incoming &&\n !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing\n ? [].concat(existing, incoming)\n : incoming;\n }\n }\n else if (key !== '') {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7 /* ErrorCodes.VNODE_HOOK */, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n // inherit parent app context - or - if root, adopt from root vnode\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid$1++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n next: null,\n subTree: null,\n effect: null,\n update: null,\n scope: new EffectScope(true /* detached */),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if ((process.env.NODE_ENV !== 'production')) {\n instance.ctx = createDevRenderContext(instance);\n }\n else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit$1.bind(null, instance);\n // apply custom element special handling\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance) => {\n currentInstance = instance;\n instance.scope.on();\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n currentInstance = null;\n};\nconst isBuiltInTag = /*#__PURE__*/ makeMap('slot,component');\nfunction validateComponentName(name, config) {\n const appIsNativeTag = config.isNativeTag || NO;\n if (isBuiltInTag(name) || appIsNativeTag(name)) {\n warn('Do not use built-in or reserved HTML elements as component id: ' + name);\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isInSSRComponentSetup = isSSR;\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children);\n const setupResult = isStateful\n ? setupStatefulComponent(instance, isSSR)\n : undefined;\n isInSSRComponentSetup = false;\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if ((process.env.NODE_ENV !== 'production')) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn(`\"compilerOptions\" is only supported when using a build of Vue that ` +\n `includes the runtime compiler. Since you are using a runtime-only ` +\n `build, the options should be passed via your build tool config instead.`);\n }\n }\n // 0. create render proxy property access cache\n instance.accessCache = Object.create(null);\n // 1. create public instance / render proxy\n // also mark it raw so it's never observed\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if ((process.env.NODE_ENV !== 'production')) {\n exposePropsOnRenderContext(instance);\n }\n // 2. call setup()\n const { setup } = Component;\n if (setup) {\n const setupContext = (instance.setupContext =\n setup.length > 1 ? createSetupContext(instance) : null);\n setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(setup, instance, 0 /* ErrorCodes.SETUP_FUNCTION */, [(process.env.NODE_ENV !== 'production') ? shallowReadonly(instance.props) : instance.props, setupContext]);\n resetTracking();\n unsetCurrentInstance();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n // return the promise so server-renderer can wait on it\n return setupResult\n .then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n })\n .catch(e => {\n handleError(e, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n });\n }\n else {\n // async setup returned Promise.\n // bail here and wait for re-entry.\n instance.asyncDep = setupResult;\n if ((process.env.NODE_ENV !== 'production') && !instance.suspense) {\n const name = (_a = Component.name) !== null && _a !== void 0 ? _a : 'Anonymous';\n warn(`Component <${name}>: setup function returned a promise, but no ` +\n `<Suspense> boundary was found in the parent component tree. ` +\n `A component with async setup() must be nested in a <Suspense> ` +\n `in order to be rendered.`);\n }\n }\n }\n else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n }\n else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n // setup returned an inline render function\n if (instance.type.__ssrInlineRender) {\n // when the function's name is `ssrRender` (compiled by SFC inline mode),\n // set it as ssrRender instead.\n instance.ssrRender = setupResult;\n }\n else {\n instance.render = setupResult;\n }\n }\n else if (isObject(setupResult)) {\n if ((process.env.NODE_ENV !== 'production') && isVNode(setupResult)) {\n warn(`setup() should not return VNodes directly - ` +\n `return a render function instead.`);\n }\n // setup returned bindings.\n // assuming a render function compiled from template is present.\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if ((process.env.NODE_ENV !== 'production')) {\n exposeSetupStateOnRenderContext(instance);\n }\n }\n else if ((process.env.NODE_ENV !== 'production') && setupResult !== undefined) {\n warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\n/**\n * For runtime-dom to register the compiler.\n * Note the exported method uses any to avoid d.ts relying on the compiler types.\n */\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = i => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\n// dev only\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n // template / render function normalization\n // could be already set when returned from setup()\n if (!instance.render) {\n // only do on-the-fly compile if not in SSR - SSR on-the-fly compilation\n // is done by server-renderer\n if (!isSSR && compile && !Component.render) {\n const template = Component.template ||\n resolveMergedOptions(instance).template;\n if (template) {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(extend({\n isCustomElement,\n delimiters\n }, compilerOptions), componentCompilerOptions);\n Component.render = compile(template, finalCompilerOptions);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = (Component.render || NOOP);\n // for runtime-compiled render functions using `with` blocks, the render\n // proxy used needs a different `has` handler which is more performant and\n // also only allows a whitelist of globals to fallthrough.\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n // support for 2.x options\n if (__VUE_OPTIONS_API__ && !(false )) {\n setCurrentInstance(instance);\n pauseTracking();\n applyOptions(instance);\n resetTracking();\n unsetCurrentInstance();\n }\n // warn missing template/render\n // the runtime compilation of template in SSR is done by server-render\n if ((process.env.NODE_ENV !== 'production') && !Component.render && instance.render === NOOP && !isSSR) {\n /* istanbul ignore if */\n if (!compile && Component.template) {\n warn(`Component provided template option but ` +\n `runtime compilation is not supported in this build of Vue.` +\n (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".`\n ) /* should not happen */);\n }\n else {\n warn(`Component is missing template or render function.`);\n }\n }\n}\nfunction createAttrsProxy(instance) {\n return new Proxy(instance.attrs, (process.env.NODE_ENV !== 'production')\n ? {\n get(target, key) {\n markAttrsAccessed();\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n },\n set() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n }\n }\n : {\n get(target, key) {\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = exposed => {\n if ((process.env.NODE_ENV !== 'production') && instance.exposed) {\n warn(`expose() should be called only once per setup().`);\n }\n instance.exposed = exposed || {};\n };\n let attrs;\n if ((process.env.NODE_ENV !== 'production')) {\n // We use getters in dev in case libs like test-utils overwrite instance\n // properties (overwrites should not be done in prod)\n return Object.freeze({\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n get slots() {\n return shallowReadonly(instance.slots);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n }\n else {\n return {\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return (instance.exposeProxy ||\n (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n }\n })));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component)\n ? Component.displayName || Component.name\n : Component.name || (includeInferred && Component.__name);\n}\n/* istanbul ignore next */\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n // try to infer the name based on reverse resolution\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name =\n inferFromRegistry(instance.components ||\n instance.parent.type.components) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && '__vccOpts' in value;\n}\n\nconst computed = ((getterOrOptions, debugOptions) => {\n // @ts-ignore\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n});\n\n// dev only\nconst warnRuntimeUsage = (method) => warn(`${method}() is a compiler-hint helper that is only usable inside ` +\n `<script setup> of a single file component. Its arguments should be ` +\n `compiled away and passing it at runtime has no effect.`);\n// implementation\nfunction defineProps() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\n// implementation\nfunction defineEmits() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\n/**\n * Vue `<script setup>` compiler macro for declaring a component's exposed\n * instance properties when it is accessed by a parent component via template\n * refs.\n *\n * `<script setup>` components are closed by default - i.e. variables inside\n * the `<script setup>` scope is not exposed to parent unless explicitly exposed\n * via `defineExpose`.\n *\n * This is only usable inside `<script setup>`, is compiled away in the\n * output and should **not** be actually called at runtime.\n */\nfunction defineExpose(exposed) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\n/**\n * Vue `<script setup>` compiler macro for providing props default values when\n * using type-based `defineProps` declaration.\n *\n * Example usage:\n * ```ts\n * withDefaults(defineProps<{\n * size?: number\n * labels?: string[]\n * }>(), {\n * size: 3,\n * labels: () => ['default label']\n * })\n * ```\n *\n * This is only usable inside `<script setup>`, is compiled away in the output\n * and should **not** be actually called at runtime.\n */\nfunction withDefaults(props, defaults) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !i) {\n warn(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\n/**\n * Runtime helper for merging default declarations. Imported by compiled code\n * only.\n * @internal\n */\nfunction mergeDefaults(raw, defaults) {\n const props = isArray(raw)\n ? raw.reduce((normalized, p) => ((normalized[p] = {}), normalized), {})\n : raw;\n for (const key in defaults) {\n const opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n props[key] = { type: opt, default: defaults[key] };\n }\n else {\n opt.default = defaults[key];\n }\n }\n else if (opt === null) {\n props[key] = { default: defaults[key] };\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`props default key \"${key}\" has no corresponding declaration.`);\n }\n }\n return props;\n}\n/**\n * Used to create a proxy for the rest element when destructuring props with\n * defineProps().\n * @internal\n */\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\n/**\n * `<script setup>` helper for persisting the current instance context over\n * async/await flows.\n *\n * `@vue/compiler-sfc` converts the following:\n *\n * ```ts\n * const x = await foo()\n * ```\n *\n * into:\n *\n * ```ts\n * let __temp, __restore\n * const x = (([__temp, __restore] = withAsyncContext(() => foo())),__temp=await __temp,__restore(),__temp)\n * ```\n * @internal\n */\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !ctx) {\n warn(`withAsyncContext called without active current instance. ` +\n `This is likely a bug.`);\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch(e => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\n// Actual implementation\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n // single vnode without props\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n // props without children\n return createVNode(type, propsOrChildren);\n }\n else {\n // omit props\n return createVNode(type, null, propsOrChildren);\n }\n }\n else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n }\n else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nconst ssrContextKey = Symbol((process.env.NODE_ENV !== 'production') ? `ssrContext` : ``);\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n warn(`Server rendering context not provided. Make sure to only call ` +\n `useSSRContext() conditionally in the server build.`);\n }\n return ctx;\n }\n};\n\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\n\nfunction initCustomFormatter() {\n /* eslint-disable no-restricted-globals */\n if (!(process.env.NODE_ENV !== 'production') || typeof window === 'undefined') {\n return;\n }\n const vueStyle = { style: 'color:#3ba776' };\n const numberStyle = { style: 'color:#0b1bc9' };\n const stringStyle = { style: 'color:#b62e24' };\n const keywordStyle = { style: 'color:#9d288c' };\n // custom formatter for Chrome\n // https://www.mattzeunert.com/2016/02/19/custom-chrome-devtools-object-formatters.html\n const formatter = {\n header(obj) {\n // TODO also format ComponentPublicInstance & ctx.slots/attrs in setup\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return ['div', vueStyle, `VueInstance`];\n }\n else if (isRef(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, genRefFlag(obj)],\n '<',\n formatValue(obj.value),\n `>`\n ];\n }\n else if (isReactive(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReactive' : 'Reactive'],\n '<',\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n }\n else if (isReadonly(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],\n '<',\n formatValue(obj),\n '>'\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n 'div',\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock('props', toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('setup', instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('data', toRaw(instance.data)));\n }\n const computed = extractKeys(instance, 'computed');\n if (computed) {\n blocks.push(createInstanceBlock('computed', computed));\n }\n const injected = extractKeys(instance, 'inject');\n if (injected) {\n blocks.push(createInstanceBlock('injected', injected));\n }\n blocks.push([\n 'div',\n {},\n [\n 'span',\n {\n style: keywordStyle.style + ';opacity:0.66'\n },\n '$ (internal): '\n ],\n ['object', { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return ['span', {}];\n }\n return [\n 'div',\n { style: 'line-height:1.25em;margin-bottom:0.6em' },\n [\n 'div',\n {\n style: 'color:#476582'\n },\n type\n ],\n [\n 'div',\n {\n style: 'padding-left:1.25em'\n },\n ...Object.keys(target).map(key => {\n return [\n 'div',\n {},\n ['span', keywordStyle, key + ': '],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === 'number') {\n return ['span', numberStyle, v];\n }\n else if (typeof v === 'string') {\n return ['span', stringStyle, JSON.stringify(v)];\n }\n else if (typeof v === 'boolean') {\n return ['span', keywordStyle, v];\n }\n else if (isObject(v)) {\n return ['object', { object: asRaw ? toRaw(v) : v }];\n }\n else {\n return ['span', stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if ((isArray(opts) && opts.includes(key)) ||\n (isObject(opts) && key in opts)) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some(m => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n }\n else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n // shallow clone\n ret.memo = memo.slice();\n return (cache[index] = ret);\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n // make sure to let parent block track it when returning cached\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\n// Core API ------------------------------------------------------------------\nconst version = \"3.2.41\";\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode,\n normalizeVNode\n};\n/**\n * SSR utils for \\@vue/server-renderer. Only exposed in ssr-possible builds.\n * @internal\n */\nconst ssrUtils = (_ssrUtils );\n/**\n * @internal only exposed in compat builds\n */\nconst resolveFilter = null;\n/**\n * @internal only exposed in compat builds.\n */\nconst compatUtils = (null);\n\nexport { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","import { camelize, warn, callWithAsyncErrorHandling, defineComponent, nextTick, createVNode, getCurrentInstance, watchPostEffect, onMounted, onUnmounted, Fragment, Static, h, BaseTransition, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, createRenderer, isRuntimeOnly, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { isString, isArray, hyphenate, capitalize, isSpecialBooleanAttr, includeBooleanAttr, isOn, isModelListener, isFunction, toNumber, camelize as camelize$1, extend, EMPTY_OBJ, isObject, invokeArrayFns, looseIndexOf, isSet, looseEqual, isHTMLTag, isSVGTag } from '@vue/shared';\n\nconst svgNS = 'http://www.w3.org/2000/svg';\nconst doc = (typeof document !== 'undefined' ? document : null);\nconst templateContainer = doc && /*#__PURE__*/ doc.createElement('template');\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: child => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, isSVG, is, props) => {\n const el = isSVG\n ? doc.createElementNS(svgNS, tag)\n : doc.createElement(tag, is ? { is } : undefined);\n if (tag === 'select' && props && props.multiple != null) {\n el.setAttribute('multiple', props.multiple);\n }\n return el;\n },\n createText: text => doc.createTextNode(text),\n createComment: text => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: node => node.parentNode,\n nextSibling: node => node.nextSibling,\n querySelector: selector => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, '');\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, isSVG, start, end) {\n // <parent> before | first ... last | anchor </parent>\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n // #5308 can only take cached path if:\n // - has a single root node\n // - nextSibling info is still available\n if (start && (start === end || start.nextSibling)) {\n // cached\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling))\n break;\n }\n }\n else {\n // fresh insert\n templateContainer.innerHTML = isSVG ? `<svg>${content}</svg>` : content;\n const template = templateContainer.content;\n if (isSVG) {\n // remove outer svg wrapper\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\n// compiler should normalize class + :class bindings on the same element\n// into a single binding ['staticClass', dynamic]\nfunction patchClass(el, value, isSVG) {\n // directly setting className should be faster than setAttribute in theory\n // if this is an element during a transition, take the temporary transition\n // classes into account.\n const transitionClasses = el._vtc;\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(' ');\n }\n if (value == null) {\n el.removeAttribute('class');\n }\n else if (isSVG) {\n el.setAttribute('class', value);\n }\n else {\n el.className = value;\n }\n}\n\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n if (next && !isCssString) {\n for (const key in next) {\n setStyle(style, key, next[key]);\n }\n if (prev && !isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, '');\n }\n }\n }\n }\n else {\n const currentDisplay = style.display;\n if (isCssString) {\n if (prev !== next) {\n style.cssText = next;\n }\n }\n else if (prev) {\n el.removeAttribute('style');\n }\n // indicates that the `display` of the element is controlled by `v-show`,\n // so we always keep the current `display` value regardless of the `style`\n // value, thus handing over control to `v-show`.\n if ('_vod' in el) {\n style.display = currentDisplay;\n }\n }\n}\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach(v => setStyle(style, name, v));\n }\n else {\n if (val == null)\n val = '';\n if (name.startsWith('--')) {\n // custom property definition\n style.setProperty(name, val);\n }\n else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n // !important\n style.setProperty(hyphenate(prefixed), val.replace(importantRE, ''), 'important');\n }\n else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = ['Webkit', 'Moz', 'ms'];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== 'filter' && name in style) {\n return (prefixCache[rawName] = name);\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return (prefixCache[rawName] = prefixed);\n }\n }\n return rawName;\n}\n\nconst xlinkNS = 'http://www.w3.org/1999/xlink';\nfunction patchAttr(el, key, value, isSVG, instance) {\n if (isSVG && key.startsWith('xlink:')) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n }\n else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n }\n else {\n // note we are only checking boolean attributes that don't have a\n // corresponding dom prop of the same name here.\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || (isBoolean && !includeBooleanAttr(value))) {\n el.removeAttribute(key);\n }\n else {\n el.setAttribute(key, isBoolean ? '' : value);\n }\n }\n}\n\n// __UNSAFE__\n// functions. The user is responsible for using them with only trusted content.\nfunction patchDOMProp(el, key, value, \n// the following args are passed only due to potential innerHTML/textContent\n// overriding existing VNodes, in which case the old tree must be properly\n// unmounted.\nprevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === 'innerHTML' || key === 'textContent') {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? '' : value;\n return;\n }\n if (key === 'value' &&\n el.tagName !== 'PROGRESS' &&\n // custom elements may use _value internally\n !el.tagName.includes('-')) {\n // store value as _value as well since\n // non-string values will be stringified.\n el._value = value;\n const newValue = value == null ? '' : value;\n if (el.value !== newValue ||\n // #4956: always set for OPTION elements because its value falls back to\n // textContent if no value attribute is present. And setting .value for\n // OPTION has no side effect\n el.tagName === 'OPTION') {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n return;\n }\n let needRemove = false;\n if (value === '' || value == null) {\n const type = typeof el[key];\n if (type === 'boolean') {\n // e.g. <select multiple> compiles to { multiple: '' }\n value = includeBooleanAttr(value);\n }\n else if (value == null && type === 'string') {\n // e.g. <div :id=\"null\">\n value = '';\n needRemove = true;\n }\n else if (type === 'number') {\n // e.g. <img :width=\"null\">\n value = 0;\n needRemove = true;\n }\n }\n // some properties perform value validation and throw,\n // some properties has getter, no setter, will error in 'use strict'\n // eg. <select :type=\"null\"></select> <select :willValidate=\"null\"></select>\n try {\n el[key] = value;\n }\n catch (e) {\n // do not warn if value is auto-coerced from nullish values\n if ((process.env.NODE_ENV !== 'production') && !needRemove) {\n warn(`Failed setting prop \"${key}\" on <${el.tagName.toLowerCase()}>: ` +\n `value ${value} is invalid.`, e);\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n // vei = vue event invokers\n const invokers = el._vei || (el._vei = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n // patch\n existingInvoker.value = nextValue;\n }\n else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n // add\n const invoker = (invokers[rawName] = createInvoker(nextValue, instance));\n addEventListener(el, name, invoker, options);\n }\n else if (existingInvoker) {\n // remove\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = undefined;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while ((m = name.match(optionsModifierRE))) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === ':' ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\n// To avoid the overhead of repeatedly calling Date.now(), we cache\n// and use the same timestamp for all event listeners attached in the same tick.\nlet cachedNow = 0;\nconst p = /*#__PURE__*/ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => (cachedNow = 0)), (cachedNow = Date.now()));\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n // async edge case vuejs/vue#6566\n // inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // this no longer happens for templates in Vue 3, but could still be\n // theoretically possible for hand-written render functions.\n // the solution: we save the timestamp when a handler is attached,\n // and also attach the timestamp to any event that was handled by vue\n // for the first time (to avoid inconsistent event timestamp implementations\n // or events fired from iframes, e.g. #2513)\n // The handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (!e._vts) {\n e._vts = Date.now();\n }\n else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5 /* ErrorCodes.NATIVE_EVENT_HANDLER */, [e]);\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map(fn => (e) => !e._stopped && fn && fn(e));\n }\n else {\n return value;\n }\n}\n\nconst nativeOnRE = /^on[a-z]/;\nconst patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n if (key === 'class') {\n patchClass(el, nextValue, isSVG);\n }\n else if (key === 'style') {\n patchStyle(el, prevValue, nextValue);\n }\n else if (isOn(key)) {\n // ignore v-model listeners\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n }\n else if (key[0] === '.'\n ? ((key = key.slice(1)), true)\n : key[0] === '^'\n ? ((key = key.slice(1)), false)\n : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);\n }\n else {\n // special case for <input v-model type=\"checkbox\"> with\n // :true-value & :false-value\n // store value as dom properties since non-string values will be\n // stringified.\n if (key === 'true-value') {\n el._trueValue = nextValue;\n }\n else if (key === 'false-value') {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n // most keys must be set as attribute on svg elements to work\n // ...except innerHTML & textContent\n if (key === 'innerHTML' || key === 'textContent') {\n return true;\n }\n // or native onclick with function values\n if (key in el && nativeOnRE.test(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n // these are enumerated attrs, however their corresponding DOM properties\n // are actually booleans - this leads to setting it with a string \"false\"\n // value leading it to be coerced to `true`, so we need to always treat\n // them as attributes.\n // Note that `contentEditable` doesn't have this problem: its DOM\n // property is also enumerated string values.\n if (key === 'spellcheck' || key === 'draggable' || key === 'translate') {\n return false;\n }\n // #1787, #2840 form property on form elements is readonly and must be set as\n // attribute.\n if (key === 'form') {\n return false;\n }\n // #1526 <input list> must be set as attribute\n if (key === 'list' && el.tagName === 'INPUT') {\n return false;\n }\n // #2766 <textarea type> must be set as attribute\n if (key === 'type' && el.tagName === 'TEXTAREA') {\n return false;\n }\n // native onclick with string value, must be set as attribute\n if (nativeOnRE.test(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\n\nfunction defineCustomElement(options, hydrate) {\n const Comp = defineComponent(options);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\nconst defineSSRCustomElement = ((options) => {\n // @ts-ignore\n return defineCustomElement(options, hydrate);\n});\nconst BaseClass = (typeof HTMLElement !== 'undefined' ? HTMLElement : class {\n});\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate) {\n super();\n this._def = _def;\n this._props = _props;\n /**\n * @internal\n */\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n if (this.shadowRoot && hydrate) {\n hydrate(this._createVNode(), this.shadowRoot);\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && this.shadowRoot) {\n warn(`Custom element has pre-rendered declarative shadow root but is not ` +\n `defined as hydratable. Use \\`defineSSRCustomElement\\`.`);\n }\n this.attachShadow({ mode: 'open' });\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n this._resolveDef();\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n if (this._resolved) {\n return;\n }\n this._resolved = true;\n // set initial attrs\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n // watch future attr changes\n new MutationObserver(mutations => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n }).observe(this, { attributes: true });\n const resolve = (def) => {\n const { props, styles } = def;\n const hasOptions = !isArray(props);\n const rawKeys = props ? (hasOptions ? Object.keys(props) : props) : [];\n // cast Number-type props set before resolve\n let numberProps;\n if (hasOptions) {\n for (const key in this._props) {\n const opt = props[key];\n if (opt === Number || (opt && opt.type === Number)) {\n this._props[key] = toNumber(this._props[key]);\n (numberProps || (numberProps = Object.create(null)))[key] = true;\n }\n }\n }\n this._numberProps = numberProps;\n // check if there are props set pre-upgrade or connect\n for (const key of Object.keys(this)) {\n if (key[0] !== '_') {\n this._setProp(key, this[key], true, false);\n }\n }\n // defining getter/setters on prototype\n for (const key of rawKeys.map(camelize$1)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n // apply CSS\n this._applyStyles(styles);\n // initial render\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then(resolve);\n }\n else {\n resolve(this._def);\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n if (this._numberProps && this._numberProps[key]) {\n value = toNumber(value);\n }\n this._setProp(camelize$1(key), value, false);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n // reflect\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), '');\n }\n else if (typeof val === 'string' || typeof val === 'number') {\n this.setAttribute(hyphenate(key), val + '');\n }\n else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = instance => {\n this._instance = instance;\n instance.isCE = true;\n // HMR\n if ((process.env.NODE_ENV !== 'production')) {\n instance.ceReload = newStyles => {\n // always reset styles\n if (this._styles) {\n this._styles.forEach(s => this.shadowRoot.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n // if this is an async component, ceReload is called from the inner\n // component so no need to reload the async wrapper\n if (!this._def.__asyncLoader) {\n // reload\n this._instance = null;\n this._update();\n }\n };\n }\n // intercept emit\n instance.emit = (event, ...args) => {\n this.dispatchEvent(new CustomEvent(event, {\n detail: args\n }));\n };\n // locate nearest Vue custom element parent for provide/inject\n let parent = this;\n while ((parent =\n parent && (parent.parentNode || parent.host))) {\n if (parent instanceof VueElement) {\n instance.parent = parent._instance;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach(css => {\n const s = document.createElement('style');\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n // record for HMR\n if ((process.env.NODE_ENV !== 'production')) {\n (this._styles || (this._styles = [])).push(s);\n }\n });\n }\n }\n}\n\nfunction useCssModule(name = '$style') {\n /* istanbul ignore else */\n {\n const instance = getCurrentInstance();\n if (!instance) {\n (process.env.NODE_ENV !== 'production') && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n (process.env.NODE_ENV !== 'production') && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\n/**\n * Runtime helper for SFC's CSS variable injection feature.\n * @private\n */\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n /* istanbul ignore next */\n if (!instance) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const setVars = () => setVarsOnVNode(instance.subTree, getter(instance.proxy));\n watchPostEffect(setVars);\n onMounted(() => {\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n // drill down HOCs until it's a non-component vnode\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n }\n else if (vnode.type === Fragment) {\n vnode.children.forEach(c => setVarsOnVNode(c, vars));\n }\n else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor)\n break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n }\n }\n}\n\nconst TRANSITION = 'transition';\nconst ANIMATION = 'animation';\n// DOM Transition is a higher-order-component based on the platform-agnostic\n// base Transition component, with DOM-specific logic.\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = 'Transition';\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = (Transition.props =\n /*#__PURE__*/ extend({}, BaseTransition.props, DOMTransitionPropsValidators));\n/**\n * #3227 Incoming hooks may be merged into arrays when wrapping Transition\n * with custom HOCs.\n */\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach(h => h(...args));\n }\n else if (hook) {\n hook(...args);\n }\n};\n/**\n * Check if a hook expects a callback (2nd arg), which means the user\n * intends to explicitly control the end of the transition.\n */\nconst hasExplicitCallback = (hook) => {\n return hook\n ? isArray(hook)\n ? hook.some(h => h.length > 1)\n : hook.length > 1\n : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const { name = 'v', type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n // force reflow so *-leave-from classes immediately take effect (#2593)\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n // cancelled\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n }\n else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n }\n else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if ((process.env.NODE_ENV !== 'production'))\n validateDuration(res);\n return res;\n}\nfunction validateDuration(val) {\n if (typeof val !== 'number') {\n warn(`<transition> explicit duration is not a valid number - ` +\n `got ${JSON.stringify(val)}.`);\n }\n else if (isNaN(val)) {\n warn(`<transition> explicit duration is NaN - ` +\n 'the duration expression might be incorrect.');\n }\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach(c => c && el.classList.add(c));\n (el._vtc ||\n (el._vtc = new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach(c => c && el.classList.remove(c));\n const { _vtc } = el;\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el._vtc = undefined;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = (el._endId = ++endId);\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + 'end';\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n const getStyleProperties = (key) => (styles[key] || '').split(', ');\n const transitionDelays = getStyleProperties(TRANSITION + 'Delay');\n const transitionDurations = getStyleProperties(TRANSITION + 'Duration');\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(ANIMATION + 'Delay');\n const animationDurations = getStyleProperties(ANIMATION + 'Duration');\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n }\n else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n }\n else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type =\n timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n const hasTransform = type === TRANSITION &&\n /\\b(transform|all)(,|$)/.test(styles[TRANSITION + 'Property']);\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer\n// numbers in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down\n// (i.e. acting as a floor function) causing unexpected behaviors\nfunction toMs(s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000;\n}\n// synchronously force layout to put elements into a certain state\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nconst positionMap = new WeakMap();\nconst newPositionMap = new WeakMap();\nconst TransitionGroupImpl = {\n name: 'TransitionGroup',\n props: /*#__PURE__*/ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n // children is guaranteed to exist after initial render\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || 'v'}-move`;\n if (!hasCSSTransform(prevChildren[0].el, instance.vnode.el, moveClass)) {\n return;\n }\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n // force reflow to put everything in position\n forceReflow();\n movedChildren.forEach(c => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = '';\n const cb = (el._moveCb = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener('transitionend', cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n el.addEventListener('transitionend', cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el._moveCb) {\n el._moveCb();\n }\n if (el._enterCb) {\n el._enterCb();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = '0s';\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n const clone = el.cloneNode();\n if (el._vtc) {\n el._vtc.forEach(cls => {\n cls.split(/\\s+/).forEach(c => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach(c => c && clone.classList.add(c));\n clone.style.display = 'none';\n const container = (root.nodeType === 1 ? root : root.parentNode);\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props['onUpdate:modelValue'] ||\n (false );\n return isArray(fn) ? value => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event('input'));\n }\n}\n// We are exporting the v-model runtime directly as vnode hooks so that it can\n// be tree-shaken in case v-model is never used.\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el._assign = getModelAssigner(vnode);\n const castToNumber = number || (vnode.props && vnode.props.type === 'number');\n addEventListener(el, lazy ? 'change' : 'input', e => {\n if (e.target.composing)\n return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = toNumber(domValue);\n }\n el._assign(domValue);\n });\n if (trim) {\n addEventListener(el, 'change', () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, 'compositionstart', onCompositionStart);\n addEventListener(el, 'compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n addEventListener(el, 'change', onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? '' : value;\n },\n beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {\n el._assign = getModelAssigner(vnode);\n // avoid clearing unresolved text. #2302\n if (el.composing)\n return;\n if (document.activeElement === el && el.type !== 'range') {\n if (lazy) {\n return;\n }\n if (trim && el.value.trim() === value) {\n return;\n }\n if ((number || el.type === 'number') && toNumber(el.value) === value) {\n return;\n }\n }\n const newValue = value == null ? '' : value;\n if (el.value !== newValue) {\n el.value = newValue;\n }\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el._assign = getModelAssigner(vnode);\n addEventListener(el, 'change', () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el._assign;\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n }\n else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n }\n else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n }\n else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n }\n else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el._assign = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n if (isArray(value)) {\n el.checked = looseIndexOf(value, vnode.props.value) > -1;\n }\n else if (isSet(value)) {\n el.checked = value.has(vnode.props.value);\n }\n else if (value !== oldValue) {\n el.checked = looseEqual(value, getCheckboxValue(el, true));\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el._assign = getModelAssigner(vnode);\n addEventListener(el, 'change', () => {\n el._assign(getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el._assign = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, 'change', () => {\n const selectedVal = Array.prototype.filter\n .call(el.options, (o) => o.selected)\n .map((o) => number ? toNumber(getValue(o)) : getValue(o));\n el._assign(el.multiple\n ? isSetModel\n ? new Set(selectedVal)\n : selectedVal\n : selectedVal[0]);\n });\n el._assign = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value }) {\n setSelected(el, value);\n },\n beforeUpdate(el, _binding, vnode) {\n el._assign = getModelAssigner(vnode);\n },\n updated(el, { value }) {\n setSelected(el, value);\n }\n};\nfunction setSelected(el, value) {\n const isMultiple = el.multiple;\n if (isMultiple && !isArray(value) && !isSet(value)) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`<select multiple v-model> expects an Array or Set value for its binding, ` +\n `but got ${Object.prototype.toString.call(value).slice(8, -1)}.`);\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArray(value)) {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n else {\n option.selected = value.has(optionValue);\n }\n }\n else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i)\n el.selectedIndex = i;\n return;\n }\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\n// retrieve raw value set via :value bindings\nfunction getValue(el) {\n return '_value' in el ? el._value : el.value;\n}\n// retrieve raw value for true-value and false-value set via :true-value or :false-value bindings\nfunction getCheckboxValue(el, checked) {\n const key = checked ? '_trueValue' : '_falseValue';\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, 'created');\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, 'mounted');\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, 'beforeUpdate');\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, 'updated');\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case 'SELECT':\n return vModelSelect;\n case 'TEXTAREA':\n return vModelText;\n default:\n switch (type) {\n case 'checkbox':\n return vModelCheckbox;\n case 'radio':\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(el.tagName, vnode.props && vnode.props.type);\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\n// SSR vnode transforms, only used when user includes client-oriented render\n// function in SSR\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n }\n else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n }\n else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== 'string') {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(), vnode.props && vnode.props.type);\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = ['ctrl', 'shift', 'alt', 'meta'];\nconst modifierGuards = {\n stop: e => e.stopPropagation(),\n prevent: e => e.preventDefault(),\n self: e => e.target !== e.currentTarget,\n ctrl: e => !e.ctrlKey,\n shift: e => !e.shiftKey,\n alt: e => !e.altKey,\n meta: e => !e.metaKey,\n left: e => 'button' in e && e.button !== 0,\n middle: e => 'button' in e && e.button !== 1,\n right: e => 'button' in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some(m => e[`${m}Key`] && !modifiers.includes(m))\n};\n/**\n * @private\n */\nconst withModifiers = (fn, modifiers) => {\n return (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n };\n};\n// Kept for 2.x compat.\n// Note: IE11 compat for `spacebar` and `del` is removed for now.\nconst keyNames = {\n esc: 'escape',\n space: ' ',\n up: 'arrow-up',\n left: 'arrow-left',\n right: 'arrow-right',\n down: 'arrow-down',\n delete: 'backspace'\n};\n/**\n * @private\n */\nconst withKeys = (fn, modifiers) => {\n return (event) => {\n if (!('key' in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some(k => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n };\n};\n\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el._vod = el.style.display === 'none' ? '' : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n }\n else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n }\n else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n }\n else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nfunction setDisplay(el, value) {\n el.style.display = value ? el._vod : 'none';\n}\n// SSR vnode transforms, only used when user includes client-oriented render\n// function in SSR\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: 'none' } };\n }\n };\n}\n\nconst rendererOptions = /*#__PURE__*/ extend({ patchProp }, nodeOps);\n// lazy create the renderer - this makes core renderer logic tree-shakable\n// in case the user only imports reactivity utilities from Vue.\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return (renderer ||\n (renderer = createRenderer(rendererOptions)));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration\n ? renderer\n : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\n// use explicit type casts here to avoid import() calls in rolled-up d.ts\nconst render = ((...args) => {\n ensureRenderer().render(...args);\n});\nconst hydrate = ((...args) => {\n ensureHydrationRenderer().hydrate(...args);\n});\nconst createApp = ((...args) => {\n const app = ensureRenderer().createApp(...args);\n if ((process.env.NODE_ENV !== 'production')) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container)\n return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n // __UNSAFE__\n // Reason: potential execution of JS expressions in in-DOM template.\n // The user must make sure the in-DOM template is trusted. If it's\n // rendered by the server, the template should not contain any user data.\n component.template = container.innerHTML;\n }\n // clear content before mounting\n container.innerHTML = '';\n const proxy = mount(container, false, container instanceof SVGElement);\n if (container instanceof Element) {\n container.removeAttribute('v-cloak');\n container.setAttribute('data-v-app', '');\n }\n return proxy;\n };\n return app;\n});\nconst createSSRApp = ((...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if ((process.env.NODE_ENV !== 'production')) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, container instanceof SVGElement);\n }\n };\n return app;\n});\nfunction injectNativeTagCheck(app) {\n // Inject `isNativeTag`\n // this is used for component name validation (dev only)\n Object.defineProperty(app.config, 'isNativeTag', {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag),\n writable: false\n });\n}\n// dev only\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, 'isCustomElement', {\n get() {\n return isCustomElement;\n },\n set() {\n warn(`The \\`isCustomElement\\` config option is deprecated. Use ` +\n `\\`compilerOptions.isCustomElement\\` instead.`);\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using ` +\n `a build of Vue.js that includes the runtime compiler (aka \"full build\"). ` +\n `Since you are using the runtime-only build, \\`compilerOptions\\` ` +\n `must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\\n` +\n `- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\\n` +\n `- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\\n` +\n `- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-dom`;\n Object.defineProperty(app.config, 'compilerOptions', {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if ((process.env.NODE_ENV !== 'production') && !res) {\n warn(`Failed to mount app: mount target selector \"${container}\" returned null.`);\n }\n return res;\n }\n if ((process.env.NODE_ENV !== 'production') &&\n window.ShadowRoot &&\n container instanceof window.ShadowRoot &&\n container.mode === 'closed') {\n warn(`mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`);\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\n/**\n * @internal\n */\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n }\n ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\n */\nfunction includeBooleanAttr(value) {\n return !!value || value === '';\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return (attrValidationCache[name] = !isUnsafe);\n}\nconst propsToAttrMap = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n};\n/**\n * CSS properties that accept plain numbers\n */\nconst isNoUnitNumericStyleProp = /*#__PURE__*/ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +\n `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +\n `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +\n `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +\n `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +\n `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +\n // SVG\n `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +\n `stroke-miterlimit,stroke-opacity,stroke-width`);\n/**\n * Known attributes, this is used for stringification of runtime static nodes\n * so that we don't stringify bindings that cannot be set from HTML.\n * Don't also forget to allow `data-*` and `aria-*`!\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n */\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\n `value,width,wrap`);\n/**\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n */\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\n `color-interpolation-filters,color-profile,color-rendering,` +\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:(.+)/;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) ||\n (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = '' + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = '';\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escaped = '&quot;';\n break;\n case 38: // &\n escaped = '&amp;';\n break;\n case 39: // '\n escaped = '&#39;';\n break;\n case 60: // <\n escaped = '&lt;';\n break;\n case 62: // >\n escaped = '&gt;';\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\n// https://www.w3.org/TR/html52/syntax.html#comments\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, '');\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if ((aHasKey && !bHasKey) ||\n (!aHasKey && bHasKey) ||\n !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex(item => looseEqual(item, val));\n}\n\n/**\n * For converting {{ interpolation }} values to displayed strings.\n * @private\n */\nconst toDisplayString = (val) => {\n return isString(val)\n ? val\n : val == null\n ? ''\n : isArray(val) ||\n (isObject(val) &&\n (val.toString === objectToString || !isFunction(val.toString)))\n ? JSON.stringify(val, replacer, 2)\n : String(val);\n};\nconst replacer = (_key, val) => {\n // can't use isRef here since @vue/shared has no deps\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n }\n else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\n entries[`${key} =>`] = val;\n return entries;\n }, {})\n };\n }\n else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n }\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\n ? Object.freeze({})\n : {};\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\nconst NOOP = () => { };\n/**\n * Always return false.\n */\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith('onUpdate:');\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === '[object Map]';\nconst isSet = (val) => toTypeString(val) === '[object Set]';\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isSymbol = (val) => typeof val === 'symbol';\nconst isObject = (val) => val !== null && typeof val === 'object';\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n // extract \"RawType\" from strings like \"[object RawType]\"\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\nconst isIntegerKey = (key) => isString(key) &&\n key !== 'NaN' &&\n key[0] !== '-' &&\n '' + parseInt(key, 10) === key;\nconst isReservedProp = /*#__PURE__*/ makeMap(\n// the leading comma is intentional so empty string \"\" is also included\n',key,ref,ref_for,ref_key,' +\n 'onVnodeBeforeMount,onVnodeMounted,' +\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\nconst cacheStringFunction = (fn) => {\n const cache = Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-(\\w)/g;\n/**\n * @private\n */\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\n});\nconst hyphenateRE = /\\B([A-Z])/g;\n/**\n * @private\n */\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\n/**\n * @private\n */\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n/**\n * @private\n */\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n// compare whether a value has changed, accounting for NaN.\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name)\n ? `__props.${name}`\n : `__props[${JSON.stringify(name)}]`;\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isNoUnitNumericStyleProp, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { isReactive, isReadonly, computed, unref, ref, watch, reactive, isRef, nextTick, inject, provide, getCurrentInstance, onBeforeMount, onBeforeUnmount } from 'vue-demi';\n\nfunction unwrapObj(obj) {\n let ignoreKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return Object.keys(obj).reduce((o, k) => {\n if (ignoreKeys.includes(k)) return o;\n o[k] = unref(obj[k]);\n return o;\n }, {});\n}\nfunction isFunction(val) {\n return typeof val === 'function';\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction get(obj, stringPath, def) {\n // Cache the current object\n let current = obj;\n const path = stringPath.split('.'); // For each item in the path, dig into the object\n\n for (let i = 0; i < path.length; i++) {\n // If the item isn't found, return the default (or null)\n if (!current[path[i]]) return def; // Otherwise, update the current value\n\n current = current[path[i]];\n }\n\n return current;\n}\nfunction gatherBooleanGroupProperties(group, nestedResults, property) {\n return computed(() => {\n return group.some(path => {\n return get(nestedResults, path, {\n [property]: false\n })[property];\n });\n });\n}\nfunction gatherArrayGroupProperties(group, nestedResults, property) {\n return computed(() => {\n return group.reduce((all, path) => {\n const fetchedProperty = get(nestedResults, path, {\n [property]: false\n })[property] || [];\n return all.concat(fetchedProperty);\n }, []);\n });\n}\n\n/**\n * Response form a raw Validator function.\n * Should return a Boolean or an object with $invalid property.\n * @typedef {Boolean | { $valid: Boolean }} ValidatorResponse\n */\n\n/**\n * Calls a validation rule by unwrapping its value first from a ref.\n * @param {Validator} rule\n * @param {Ref} value\n * @param {VueInstance} instance\n * @param {Object} siblingState\n * @return {Promise<ValidatorResponse> | ValidatorResponse}\n */\n\nfunction callRule(rule, value, siblingState, instance) {\n return rule.call(instance, unref(value), unref(siblingState), instance);\n}\n/**\n * Normalizes the validator result\n * Allows passing a boolean of an object like `{ $valid: Boolean }`\n * @param {ValidatorResponse} result - Validator result\n * @return {boolean}\n */\n\n\nfunction normalizeValidatorResponse(result) {\n return result.$valid !== undefined ? !result.$valid : !result;\n}\n/**\n * Returns the result of an async validator.\n * @param {Validator} rule\n * @param {Ref<*>} model\n * @param {Ref<Boolean>} $pending\n * @param {Ref<Boolean>} $dirty\n * @param {GlobalConfig} config\n * @param {boolean} config.$lazy\n * @param {Ref<*>} $response\n * @param {VueInstance} instance\n * @param {Ref<*>[]} watchTargets\n * @param {Object} siblingState\n * @param {Ref<Boolean>} $lastInvalidState\n * @param {Ref<Number>} $lastCommittedOn\n * @return {{ $invalid: Ref<Boolean>, $unwatch: WatchStopHandle }}\n */\n\n\nfunction createAsyncResult(rule, model, $pending, $dirty, _ref, $response, instance) {\n let {\n $lazy,\n $rewardEarly\n } = _ref;\n let watchTargets = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : [];\n let siblingState = arguments.length > 8 ? arguments[8] : undefined;\n let $lastInvalidState = arguments.length > 9 ? arguments[9] : undefined;\n let $lastCommittedOn = arguments.length > 10 ? arguments[10] : undefined;\n const $invalid = ref(!!$dirty.value);\n const $pendingCounter = ref(0);\n $pending.value = false;\n const $unwatch = watch([model, $dirty].concat(watchTargets, $lastCommittedOn), () => {\n if ( // if $lazy and not dirty, return\n $lazy && !$dirty.value || // if in $rewardEarly mode and no previous errors, nothing pending, return\n $rewardEarly && !$lastInvalidState.value && !$pending.value) {\n return;\n }\n\n let ruleResult; // make sure we dont break if a validator throws\n\n try {\n ruleResult = callRule(rule, model, siblingState, instance);\n } catch (err) {\n // convert to a promise, so we can handle it async\n ruleResult = Promise.reject(err);\n }\n\n $pendingCounter.value++;\n $pending.value = !!$pendingCounter.value; // ensure $invalid is false, while validator is resolving\n\n $invalid.value = false;\n Promise.resolve(ruleResult).then(data => {\n $pendingCounter.value--;\n $pending.value = !!$pendingCounter.value;\n $response.value = data;\n $invalid.value = normalizeValidatorResponse(data);\n }).catch(error => {\n $pendingCounter.value--;\n $pending.value = !!$pendingCounter.value;\n $response.value = error;\n $invalid.value = true;\n });\n }, {\n immediate: true,\n deep: typeof model === 'object'\n });\n return {\n $invalid,\n $unwatch\n };\n}\n/**\n * Returns the result of a sync validator\n * @param {Validator} rule\n * @param {Ref<*>} model\n * @param {Ref<Boolean>} $dirty\n * @param {GlobalConfig} config\n * @param {Boolean} config.$lazy\n * @param {Ref<*>} $response\n * @param {VueInstance} instance\n * @param {Object} siblingState\n * @param {Ref<Boolean>} $lastInvalidState\n * @return {{$unwatch: (function(): {}), $invalid: ComputedRef<boolean>}}\n */\n\n\nfunction createSyncResult(rule, model, $dirty, _ref2, $response, instance, siblingState, $lastInvalidState) {\n let {\n $lazy,\n $rewardEarly\n } = _ref2;\n\n const $unwatch = () => ({});\n\n const $invalid = computed(() => {\n if ( // return early if $lazy mode and not touched\n $lazy && !$dirty.value || // If $rewardEarly mode is ON and last invalid was false (no error), return it.\n // If we want to invalidate, we just flip the last state to true, causing the computed to run again\n $rewardEarly && !$lastInvalidState.value) {\n return false;\n }\n\n let returnValue = true;\n\n try {\n const result = callRule(rule, model, siblingState, instance);\n $response.value = result;\n returnValue = normalizeValidatorResponse(result);\n } catch (err) {\n $response.value = err;\n }\n\n return returnValue;\n });\n return {\n $unwatch,\n $invalid\n };\n}\n/**\n * Returns the validation result.\n * Detects async and sync validators.\n * @param {NormalizedValidator} rule\n * @param {Ref<*>} model\n * @param {Ref<boolean>} $dirty\n * @param {GlobalConfig} config - Vuelidate config\n * @param {VueInstance} instance - component instance\n * @param {string} validatorName - name of the current validator\n * @param {string} propertyKey - the current property we are validating\n * @param {string} propertyPath - the deep path to the validated property\n * @param {Object} siblingState\n * @param {Ref<Boolean>} $lastInvalidState - the last invalid state\n * @param {Ref<Number>} $lastCommittedOn - the last time $commit was called\n * @return {{ $params: *, $message: Ref<String>, $pending: Ref<Boolean>, $invalid: Ref<Boolean>, $response: Ref<*>, $unwatch: WatchStopHandle }}\n */\n\n\nfunction createValidatorResult(rule, model, $dirty, config, instance, validatorName, propertyKey, propertyPath, siblingState, $lastInvalidState, $lastCommittedOn) {\n const $pending = ref(false);\n const $params = rule.$params || {};\n const $response = ref(null);\n let $invalid;\n let $unwatch;\n\n if (rule.$async) {\n ({\n $invalid,\n $unwatch\n } = createAsyncResult(rule.$validator, model, $pending, $dirty, config, $response, instance, rule.$watchTargets, siblingState, $lastInvalidState, $lastCommittedOn));\n } else {\n ({\n $invalid,\n $unwatch\n } = createSyncResult(rule.$validator, model, $dirty, config, $response, instance, siblingState, $lastInvalidState));\n }\n\n const message = rule.$message;\n const $message = isFunction(message) ? computed(() => message(unwrapObj({\n $pending,\n $invalid,\n $params: unwrapObj($params),\n // $params can hold refs, so we unwrap them for easy access\n $model: model,\n $response,\n $validator: validatorName,\n $propertyPath: propertyPath,\n $property: propertyKey\n }))) : message || '';\n return {\n $message,\n $params,\n $pending,\n $invalid,\n $response,\n $unwatch\n };\n}\n\n/**\n * Sorts a validation definition into rules, configs and nested validators.\n * @param {Object<NormalizedValidator|Function>} validationsRaw\n * @return {{ rules: Object<NormalizedValidator>, nestedValidators: Object, config: GlobalConfig }}\n */\n\nfunction sortValidations() {\n let validationsRaw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const validations = unref(validationsRaw);\n const validationKeys = Object.keys(validations);\n const rules = {};\n const nestedValidators = {};\n const config = {};\n let validationGroups = null;\n validationKeys.forEach(key => {\n const v = validations[key];\n\n switch (true) {\n // If it is already normalized, use it\n case isFunction(v.$validator):\n rules[key] = v;\n break;\n // If it is just a function, normalize it first\n // into { $validator: <Fun> }\n\n case isFunction(v):\n rules[key] = {\n $validator: v\n };\n break;\n\n case key === '$validationGroups':\n validationGroups = v;\n break;\n // Catch $-prefixed properties as config\n\n case key.startsWith('$'):\n config[key] = v;\n break;\n // If it doesn’t match any of the above,\n // treat as nestedValidators state property\n\n default:\n nestedValidators[key] = v;\n }\n });\n return {\n rules,\n nestedValidators,\n config,\n validationGroups\n };\n}\n\nfunction _empty() {}\n\nconst ROOT_PATH = '__root';\n/** @typedef {import('vue-demi').ComponentPublicInstance} VueInstance */\n\n/** @typedef {import('vue-demi').ComputedRef} ComputedRef */\n\n/** @typedef {import('vue-demi').UnwrapRef} UnwrapRef */\n\n/** @typedef {import('vue-demi').WatchStopHandle} WatchStopHandle */\n\n/** @typedef {import('vue-demi').WritableComputedRef} WritableComputedRef */\n\n/** @typedef {import('vue-demi').UnwrapNestedRefs} UnwrapNestedRefs */\n\n/**\n * @typedef NormalizedValidator\n * @property {Validator} $validator\n * @property {String | Ref<String> | function(*): string} [$message]\n * @property {Object | Ref<Object>} [$params]\n * @property {Object | Ref<Object>} [$async]\n * @property {Ref<*>[]} [$watchTargets]\n */\n\n/**\n * Raw validator function, before being normalized\n * Can return a Promise or a {@see ValidatorResponse}\n * @typedef {function(*): ((Promise<ValidatorResponse> | ValidatorResponse))} Validator\n */\n\n/**\n * @typedef ErrorObject\n * @property {Ref<String>} $message - Reactive error message\n * @property {Ref<Object>} $params - Params passed from withParams\n * @property {Ref<Boolean>} $pending - If validation is pending\n * @property {String} $property - State key\n * @property {String} $propertyPath - Dot notation path to state\n * @property {String} $validator - Validator name\n * @property {String} $uid - Unique identifier\n */\n\n/**\n * @typedef ValidationResult\n * @property {Ref<Boolean>} $pending\n * @property {Ref<Boolean>} $dirty\n * @property {Ref<Boolean>} $invalid\n * @property {Ref<Boolean>} $error\n * @property {Ref<String>} $path\n * @property {Function} $touch\n * @property {Function} $reset\n * @property {ComputedRef<ErrorObject[]>} $errors\n * @property {ComputedRef<ErrorObject[]>} $silentErrors\n * @property {Function} $commit\n */\n\n/**\n * Creates the main Validation Results object for a state tree\n * Walks the tree's top level branches\n * @param {Object<NormalizedValidator>} rules - Rules for the current state tree\n * @param {Object} model - Current state value\n * @param {String} key - Key for the current state tree\n * @param {ResultsStorage} [resultsCache] - A cache map of all the validators\n * @param {String} [path] - the current property path\n * @param {GlobalConfig} [config] - the config object\n * @param {VueInstance} instance\n * @param {ComputedRef<Object>} externalResults\n * @param {Object} siblingState\n * @return {ValidationResult | {}}\n */\n\nfunction _call(body, then, direct) {\n if (direct) {\n return then ? then(body()) : body();\n }\n\n try {\n var result = Promise.resolve(body());\n return then ? result.then(then) : result;\n } catch (e) {\n return Promise.reject(e);\n }\n}\n/**\n * Collects the validation results of all nested state properties\n * @param {Object<NormalizedValidator|Function>} validations - The validation\n * @param {Object} nestedState - Current state\n * @param {String} path - Path to current property\n * @param {ResultsStorage} resultsCache - Validations cache map\n * @param {GlobalConfig} config - The config object\n * @param {VueInstance} instance - The current Vue instance\n * @param {ComputedRef<object>} nestedExternalResults - The external results for this nested collection\n * @return {Object<string, VuelidateState>}\n */\n\n\nfunction _callIgnored(body, direct) {\n return _call(body, _empty, direct);\n}\n\nfunction _invoke(body, then) {\n var result = body();\n\n if (result && result.then) {\n return result.then(then);\n }\n\n return then(result);\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nfunction createValidationResults(rules, model, key, resultsCache, path, config, instance, externalResults, siblingState) {\n // collect the property keys\n const ruleKeys = Object.keys(rules);\n const cachedResult = resultsCache.get(path, rules);\n const $dirty = ref(false); // state for the $rewardEarly option\n\n /** The last invalid state of this property */\n\n const $lastInvalidState = ref(false);\n /** The last time $commit was called. Used to re-trigger async calls */\n\n const $lastCommittedOn = ref(0);\n\n if (cachedResult) {\n // if the rules are the same as before, use the cached results\n if (!cachedResult.$partial) return cachedResult; // remove old watchers\n\n cachedResult.$unwatch(); // use the `$dirty.value`, so we dont save references by accident\n\n $dirty.value = cachedResult.$dirty.value;\n }\n\n const result = {\n // restore $dirty from cache\n $dirty,\n $path: path,\n $touch: () => {\n if (!$dirty.value) $dirty.value = true;\n },\n $reset: () => {\n if ($dirty.value) $dirty.value = false;\n },\n $commit: () => {}\n };\n /**\n * If there are no validation rules, it is most likely\n * a top level state, aka root\n */\n\n if (!ruleKeys.length) {\n // if there are cached results, we should overwrite them with the new ones\n cachedResult && resultsCache.set(path, rules, result);\n return result;\n }\n\n ruleKeys.forEach(ruleKey => {\n result[ruleKey] = createValidatorResult(rules[ruleKey], model, result.$dirty, config, instance, ruleKey, key, path, siblingState, $lastInvalidState, $lastCommittedOn);\n });\n result.$externalResults = computed(() => {\n if (!externalResults.value) return [];\n return [].concat(externalResults.value).map((stringError, index) => ({\n $propertyPath: path,\n $property: key,\n $validator: '$externalResults',\n $uid: `${path}-externalResult-${index}`,\n $message: stringError,\n $params: {},\n $response: null,\n $pending: false\n }));\n });\n result.$invalid = computed(() => {\n const r = ruleKeys.some(ruleKey => unref(result[ruleKey].$invalid)); // cache the last invalid state\n\n $lastInvalidState.value = r;\n return !!result.$externalResults.value.length || r;\n });\n result.$pending = computed(() => ruleKeys.some(ruleKey => unref(result[ruleKey].$pending)));\n result.$error = computed(() => result.$dirty.value ? result.$pending.value || result.$invalid.value : false);\n result.$silentErrors = computed(() => ruleKeys.filter(ruleKey => unref(result[ruleKey].$invalid)).map(ruleKey => {\n const res = result[ruleKey];\n return reactive({\n $propertyPath: path,\n $property: key,\n $validator: ruleKey,\n $uid: `${path}-${ruleKey}`,\n $message: res.$message,\n $params: res.$params,\n $response: res.$response,\n $pending: res.$pending\n });\n }).concat(result.$externalResults.value));\n result.$errors = computed(() => result.$dirty.value ? result.$silentErrors.value : []);\n\n result.$unwatch = () => ruleKeys.forEach(ruleKey => {\n result[ruleKey].$unwatch();\n });\n\n result.$commit = () => {\n $lastInvalidState.value = true;\n $lastCommittedOn.value = Date.now();\n };\n\n resultsCache.set(path, rules, result);\n return result;\n}\n\nfunction collectNestedValidationResults(validations, nestedState, path, resultsCache, config, instance, nestedExternalResults) {\n const nestedValidationKeys = Object.keys(validations); // if we have no state, return empty object\n\n if (!nestedValidationKeys.length) return {};\n return nestedValidationKeys.reduce((results, nestedKey) => {\n // build validation results for nested state\n results[nestedKey] = setValidations({\n validations: validations[nestedKey],\n state: nestedState,\n key: nestedKey,\n parentKey: path,\n resultsCache,\n globalConfig: config,\n instance,\n externalResults: nestedExternalResults\n });\n return results;\n }, {});\n}\n/**\n * Generates the Meta fields from the results\n * @param {ValidationResult|{}} results\n * @param {Object.<string, VuelidateState>} nestedResults\n * @param {Object.<string, ValidationResult>} childResults\n * @return {{$anyDirty: Ref<Boolean>, $error: Ref<Boolean>, $invalid: Ref<Boolean>, $errors: Ref<ErrorObject[]>, $dirty: Ref<Boolean>, $touch: Function, $reset: Function }}\n */\n\n\nfunction createMetaFields(results, nestedResults, childResults) {\n const allResults = computed(() => [nestedResults, childResults].filter(res => res).reduce((allRes, res) => {\n return allRes.concat(Object.values(unref(res)));\n }, [])); // returns `$dirty` as true, if all children are dirty\n\n const $dirty = computed({\n get() {\n return results.$dirty.value || (allResults.value.length ? allResults.value.every(r => r.$dirty) : false);\n },\n\n set(v) {\n results.$dirty.value = v;\n }\n\n });\n const $silentErrors = computed(() => {\n // current state level errors, fallback to empty array if root\n const modelErrors = unref(results.$silentErrors) || []; // collect all nested and child $silentErrors\n\n const nestedErrors = allResults.value.filter(result => (unref(result).$silentErrors || []).length).reduce((errors, result) => {\n return errors.concat(...result.$silentErrors);\n }, []); // merge the $silentErrors\n\n return modelErrors.concat(nestedErrors);\n });\n const $errors = computed(() => {\n // current state level errors, fallback to empty array if root\n const modelErrors = unref(results.$errors) || []; // collect all nested and child $errors\n\n const nestedErrors = allResults.value.filter(result => (unref(result).$errors || []).length).reduce((errors, result) => {\n return errors.concat(...result.$errors);\n }, []); // merge the $errors\n\n return modelErrors.concat(nestedErrors);\n });\n const $invalid = computed(() => // if any of the nested values is invalid\n allResults.value.some(r => r.$invalid) || // or if the current state is invalid\n unref(results.$invalid) || // fallback to false if is root\n false);\n const $pending = computed(() => // if any of the nested values is pending\n allResults.value.some(r => unref(r.$pending)) || // if any of the current state validators is pending\n unref(results.$pending) || // fallback to false if is root\n false);\n const $anyDirty = computed(() => allResults.value.some(r => r.$dirty) || allResults.value.some(r => r.$anyDirty) || $dirty.value);\n const $error = computed(() => $dirty.value ? $pending.value || $invalid.value : false);\n\n const $touch = () => {\n // call the root $touch\n results.$touch(); // call all nested level $touch\n\n allResults.value.forEach(result => {\n result.$touch();\n });\n };\n\n const $commit = () => {\n // call the root $touch\n results.$commit(); // call all nested level $touch\n\n allResults.value.forEach(result => {\n result.$commit();\n });\n };\n\n const $reset = () => {\n // reset the root $dirty state\n results.$reset(); // reset all the children $dirty states\n\n allResults.value.forEach(result => {\n result.$reset();\n });\n }; // Ensure that if all child and nested results are $dirty, this also becomes $dirty\n\n\n if (allResults.value.length && allResults.value.every(nr => nr.$dirty)) $touch();\n return {\n $dirty,\n $errors,\n $invalid,\n $anyDirty,\n $error,\n $pending,\n $touch,\n $reset,\n $silentErrors,\n $commit\n };\n}\n/**\n * @typedef VuelidateState\n * @property {WritableComputedRef<any>} $model\n * @property {ComputedRef<Boolean>} $dirty\n * @property {ComputedRef<Boolean>} $error\n * @property {ComputedRef<ErrorObject[]>} $errors\n * @property {ComputedRef<Boolean>} $invalid\n * @property {ComputedRef<Boolean>} $anyDirty\n * @property {ComputedRef<Boolean>} $pending\n * @property {Function} $touch\n * @property {Function} $reset\n * @property {String} $path\n * @property {ComputedRef<ErrorObject[]>} $silentErrors\n * @property {Function} [$validate]\n * @property {Function} [$getResultsForChild]\n * @property {Object.<string, VuelidateState>}\n */\n\n/**\n * Main Vuelidate bootstrap function.\n * Used both for Composition API in `setup` and for Global App usage.\n * Used to collect validation state, when walking recursively down the state tree\n * @param {Object} params\n * @param {Object<NormalizedValidator|Function>} params.validations\n * @param {Object} params.state\n * @param {String} [params.key] - Current state property key. Used when being called on nested items\n * @param {String} [params.parentKey] - Parent state property key. Used when being called recursively\n * @param {Object<string, ValidationResult>} [params.childResults] - Used to collect child results.\n * @param {ResultsStorage} params.resultsCache - The cached validation results\n * @param {VueInstance} params.instance - The current Vue instance\n * @param {GlobalConfig} params.globalConfig - The validation config, passed to this setValidations instance.\n * @param {UnwrapNestedRefs<object> | Ref<Object>} params.externalResults - External validation results\n * @return {UnwrapNestedRefs<VuelidateState>}\n */\n\n\nfunction setValidations(_ref) {\n /**\n * Executes the validators and returns the result.\n * @return {Promise<boolean>}\n */\n const $validate = _async(function () {\n $touch();\n return _invoke(function () {\n if (mergedConfig.$rewardEarly) {\n $commit(); // await the watchers\n\n return _callIgnored(nextTick);\n }\n }, function () {\n // await the watchers\n return _call(nextTick, function () {\n return new Promise(resolve => {\n // return whether it is valid or not\n if (!$pending.value) return resolve(!$invalid.value);\n const unwatch = watch($pending, () => {\n resolve(!$invalid.value);\n unwatch();\n });\n });\n });\n });\n });\n /**\n * Returns a child component's results, based on registration name\n * @param {string} key\n * @return {VuelidateState}\n */\n\n\n let {\n validations,\n state,\n key,\n parentKey,\n childResults,\n resultsCache,\n globalConfig = {},\n instance,\n externalResults\n } = _ref;\n const path = parentKey ? `${parentKey}.${key}` : key; // Sort out the validation object into:\n // – rules = validators for current state tree fragment\n // — nestedValidators = nested state fragments keys that might contain more validators\n // – config = configuration properties that affect this state fragment\n\n const {\n rules,\n nestedValidators,\n config,\n validationGroups\n } = sortValidations(validations);\n const mergedConfig = Object.assign({}, globalConfig, config); // create protected state for cases when the state branch does not exist yet.\n // This protects when using the OptionsAPI as the data is bound after the setup method\n\n const nestedState = key ? computed(() => {\n const s = unref(state);\n return s ? unref(s[key]) : undefined;\n }) : state; // cache the external results, so we can revert back to them\n\n const cachedExternalResults = Object.assign({}, unref(externalResults) || {});\n const nestedExternalResults = computed(() => {\n const results = unref(externalResults);\n if (!key) return results;\n return results ? unref(results[key]) : undefined;\n }); // Use rules for the current state fragment and validate it\n\n const results = createValidationResults(rules, nestedState, key, resultsCache, path, mergedConfig, instance, nestedExternalResults, state); // Use nested keys to repeat the process\n // *WARN*: This is recursive\n\n const nestedResults = collectNestedValidationResults(nestedValidators, nestedState, path, resultsCache, mergedConfig, instance, nestedExternalResults);\n const $validationGroups = {};\n\n if (validationGroups) {\n Object.entries(validationGroups).forEach(_ref2 => {\n let [key, group] = _ref2;\n $validationGroups[key] = {\n $invalid: gatherBooleanGroupProperties(group, nestedResults, '$invalid'),\n $error: gatherBooleanGroupProperties(group, nestedResults, '$error'),\n $pending: gatherBooleanGroupProperties(group, nestedResults, '$pending'),\n $errors: gatherArrayGroupProperties(group, nestedResults, '$errors'),\n $silentErrors: gatherArrayGroupProperties(group, nestedResults, '$silentErrors')\n };\n });\n } // Collect and merge this level validation results\n // with all nested validation results\n\n\n const {\n $dirty,\n $errors,\n $invalid,\n $anyDirty,\n $error,\n $pending,\n $touch,\n $reset,\n $silentErrors,\n $commit\n } = createMetaFields(results, nestedResults, childResults);\n /**\n * If we have no `key`, this is the top level state\n * We dont need `$model` there.\n */\n\n const $model = key ? computed({\n get: () => unref(nestedState),\n set: val => {\n $dirty.value = true;\n const s = unref(state);\n const external = unref(externalResults);\n\n if (external) {\n external[key] = cachedExternalResults[key];\n }\n\n if (isRef(s[key])) {\n s[key].value = val;\n } else {\n s[key] = val;\n }\n }\n }) : null;\n\n if (key && mergedConfig.$autoDirty) {\n watch(nestedState, () => {\n if (!$dirty.value) $touch();\n const external = unref(externalResults);\n\n if (external) {\n external[key] = cachedExternalResults[key];\n }\n }, {\n flush: 'sync'\n });\n }\n\n function $getResultsForChild(key) {\n return (childResults.value || {})[key];\n }\n\n function $clearExternalResults() {\n if (isRef(externalResults)) {\n externalResults.value = cachedExternalResults;\n } else {\n // if the external results state was empty, we need to delete every property, one by one\n if (Object.keys(cachedExternalResults).length === 0) {\n Object.keys(externalResults).forEach(k => {\n delete externalResults[k];\n });\n } else {\n // state was not empty, so we just assign it back into the current state\n Object.assign(externalResults, cachedExternalResults);\n }\n }\n }\n\n return reactive(Object.assign({}, results, {\n // NOTE: The order here is very important, since we want to override\n // some of the *results* meta fields with the collective version of it\n // that includes the results of nested state validation results\n $model,\n $dirty,\n $error,\n $errors,\n $invalid,\n $anyDirty,\n $pending,\n $touch,\n $reset,\n $path: path || ROOT_PATH,\n $silentErrors,\n $validate,\n $commit\n }, childResults && {\n $getResultsForChild,\n $clearExternalResults,\n $validationGroups\n }, nestedResults));\n}\n\nclass ResultsStorage {\n constructor() {\n this.storage = new Map();\n }\n /**\n * Stores a validation result, and its rules by its path\n * @param {String} path\n * @param {Object<NormalizedValidator>} rules\n * @param {ValidationResult} result\n */\n\n\n set(path, rules, result) {\n this.storage.set(path, {\n rules,\n result\n });\n }\n /**\n * Check if the stored `results` for the provided `path` have the same `rules` compared to 'storedRules'\n * @param {String} path\n * @param {Object<NormalizedValidator>} rules\n * @param {Object<NormalizedValidator>} storedRules\n * @return {Boolean}\n */\n\n\n checkRulesValidity(path, rules, storedRules) {\n const storedRulesKeys = Object.keys(storedRules);\n const newRulesKeys = Object.keys(rules);\n if (newRulesKeys.length !== storedRulesKeys.length) return false;\n const hasAllValidators = newRulesKeys.every(ruleKey => storedRulesKeys.includes(ruleKey));\n if (!hasAllValidators) return false;\n return newRulesKeys.every(ruleKey => {\n if (!rules[ruleKey].$params) return true;\n return Object.keys(rules[ruleKey].$params).every(paramKey => {\n // make sure to unwrap before comparing\n return unref(storedRules[ruleKey].$params[paramKey]) === unref(rules[ruleKey].$params[paramKey]);\n });\n });\n }\n /**\n * Returns the matched result if catche is valid\n * @param {String} path\n * @param {Object<NormalizedValidator>} rules\n * @return {{$partial: boolean, $dirty: Ref<Boolean>, $unwatch: function}|undefined|ValidationResult}\n */\n\n\n get(path, rules) {\n const storedRuleResultPair = this.storage.get(path);\n if (!storedRuleResultPair) return undefined;\n const {\n rules: storedRules,\n result\n } = storedRuleResultPair;\n const isValidCache = this.checkRulesValidity(path, rules, storedRules);\n const $unwatch = result.$unwatch ? result.$unwatch : () => ({});\n if (!isValidCache) return {\n $dirty: result.$dirty,\n $partial: true,\n $unwatch\n };\n return result;\n }\n\n}\n\nconst CollectFlag = {\n COLLECT_ALL: true,\n COLLECT_NONE: false\n};\nconst VuelidateInjectChildResults = Symbol('vuelidate#injectChildResults');\nconst VuelidateRemoveChildResults = Symbol('vuelidate#removeChildResults');\n/**\n * Create helpers to collect validation state from child components\n * @param {Object} params\n * @param {String | Number | Boolean} params.$scope - Parent component scope\n * @return {{sendValidationResultsToParent: function[], childResults: ComputedRef<Object>, removeValidationResultsFromParent: function[]}}\n */\n\nfunction nestedValidations(_ref) {\n let {\n $scope,\n instance\n } = _ref;\n const childResultsRaw = {};\n const childResultsKeys = ref([]);\n const childResults = computed(() => childResultsKeys.value.reduce((results, key) => {\n results[key] = unref(childResultsRaw[key]);\n return results;\n }, {}));\n /**\n * Allows children to send validation data up to their parent.\n * @param {Object} results - the results\n * @param {Object} args\n * @param {String} args.$registerAs - the $registeredAs key\n * @param {String | Number | Boolean} args.$scope - the $scope key\n */\n\n function injectChildResultsIntoParent(results, _ref2) {\n let {\n $registerAs: key,\n $scope: childScope,\n $stopPropagation\n } = _ref2;\n if ($stopPropagation || $scope === CollectFlag.COLLECT_NONE || childScope === CollectFlag.COLLECT_NONE || $scope !== CollectFlag.COLLECT_ALL && $scope !== childScope) return;\n childResultsRaw[key] = results;\n childResultsKeys.value.push(key);\n } // combine with other `injectChildResultsIntoParent` from vuelidate instances in this Vue component instance\n\n\n instance.__vuelidateInjectInstances = [].concat(instance.__vuelidateInjectInstances || [], injectChildResultsIntoParent);\n /**\n * Allows children to remove the validation data from their parent, before getting destroyed.\n * @param {String} key - the registeredAs key\n */\n\n function removeChildResultsFromParent(key) {\n // remove the key\n childResultsKeys.value = childResultsKeys.value.filter(childKey => childKey !== key); // remove the stored data for the key\n\n delete childResultsRaw[key];\n } // combine with other `removeChildResultsFromParent` from vuelidate instances in this Vue component instance\n\n\n instance.__vuelidateRemoveInstances = [].concat(instance.__vuelidateRemoveInstances || [], removeChildResultsFromParent); // inject the `injectChildResultsIntoParent` method, into the current scope\n\n const sendValidationResultsToParent = inject(VuelidateInjectChildResults, []); // provide to all of its children the send results to parent function\n\n provide(VuelidateInjectChildResults, instance.__vuelidateInjectInstances);\n const removeValidationResultsFromParent = inject(VuelidateRemoveChildResults, []); // provide to all of its children the remove results function\n\n provide(VuelidateRemoveChildResults, instance.__vuelidateRemoveInstances);\n return {\n childResults,\n sendValidationResultsToParent,\n removeValidationResultsFromParent\n };\n}\n\n/**\n * Helper proxy for instance property access. It makes every reference\n * reactive for the validation function\n * @param target\n * @return {*|ComputedRef<*>}\n */\n\nfunction ComputedProxyFactory(target) {\n return new Proxy(target, {\n get(target, prop) {\n return typeof target[prop] === 'object' ? ComputedProxyFactory(target[prop]) : computed(() => target[prop]);\n }\n\n });\n}\n\n/**\n * @typedef GlobalConfig\n * @property {String} [$registerAs] - Config Object\n * @property {String | Number | Symbol} [$scope] - A scope to limit child component registration\n * @property {Boolean} [$stopPropagation] - Tells a Vue component to stop sending its results up to the parent\n * @property {Ref<Object>} [$externalResults] - External error messages, like from server validation.\n * @property {Boolean} [$autoDirty] - Should the form watch for state changed, and automatically set `$dirty` to true.\n * @property {Boolean} [$lazy] - Should the validations be lazy, and run only after they are dirty\n * @property {Boolean} [$rewardEarly] - Once valid, re-runs property validators only on manual calls of $commit\n */\n\n/**\n * Composition API compatible Vuelidate\n * Use inside the `setup` lifecycle hook\n * @param {Object | GlobalConfig} [validations] - Validations Object or the globalConfig.\n * @param {Object} [state] - State object - required if `validations` is a validation object.\n * @param {GlobalConfig} [globalConfig] - Config Object\n * @return {ComputedRef<*>}\n */\n\nlet uid = 0;\nfunction useVuelidate(validations, state) {\n var _getCurrentInstance;\n\n let globalConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // if we pass only one argument, its most probably the globalConfig.\n // This use case is so parents can just collect results of child forms.\n if (arguments.length === 1) {\n globalConfig = validations;\n validations = undefined;\n state = undefined;\n }\n\n let {\n $registerAs,\n $scope = CollectFlag.COLLECT_ALL,\n $stopPropagation,\n $externalResults,\n currentVueInstance\n } = globalConfig;\n const instance = currentVueInstance || ((_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy);\n const componentOptions = instance ? instance.$options : {}; // if there is no registration name, add one.\n\n if (!$registerAs) {\n uid += 1;\n $registerAs = `_vuelidate_${uid}`;\n }\n\n const validationResults = ref({});\n const resultsCache = new ResultsStorage();\n const {\n childResults,\n sendValidationResultsToParent,\n removeValidationResultsFromParent\n } = instance ? nestedValidations({\n $scope,\n instance\n }) : {\n childResults: ref({})\n }; // Options API\n\n if (!validations && componentOptions.validations) {\n const rules = componentOptions.validations;\n state = ref({});\n onBeforeMount(() => {\n // Delay binding state to validations defined with the Options API until mounting, when the data\n // has been attached to the component instance. From that point on it will be reactive.\n state.value = instance;\n watch(() => isFunction(rules) ? rules.call(state.value, new ComputedProxyFactory(state.value)) : rules, validations => {\n validationResults.value = setValidations({\n validations,\n state,\n childResults,\n resultsCache,\n globalConfig,\n instance,\n externalResults: $externalResults || instance.vuelidateExternalResults\n });\n }, {\n immediate: true\n });\n });\n globalConfig = componentOptions.validationsConfig || globalConfig;\n } else {\n const validationsWatchTarget = isRef(validations) || isProxy(validations) ? validations // wrap plain objects in a reactive, so we can track changes if they have computed in them.\n : reactive(validations || {});\n watch(validationsWatchTarget, newValidationRules => {\n validationResults.value = setValidations({\n validations: newValidationRules,\n state,\n childResults,\n resultsCache,\n globalConfig,\n instance: instance !== null && instance !== void 0 ? instance : {},\n externalResults: $externalResults\n });\n }, {\n immediate: true\n });\n }\n\n if (instance) {\n // send all the data to the parent when the function is invoked inside setup.\n sendValidationResultsToParent.forEach(f => f(validationResults, {\n $registerAs,\n $scope,\n $stopPropagation\n })); // before this component is destroyed, remove all the data from the parent.\n\n onBeforeUnmount(() => removeValidationResultsFromParent.forEach(f => f($registerAs)));\n }\n\n return computed(() => {\n return Object.assign({}, unref(validationResults.value), childResults.value);\n });\n}\n\nexport { CollectFlag, useVuelidate as default, useVuelidate };\n","import { unref } from 'vue-demi';\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\nfunction isObject(o) {\n return o !== null && typeof o === 'object' && !Array.isArray(o);\n}\n/**\n * Returns a standard ValidatorObject\n * Wraps a plain function into a ValidatorObject\n * @param {NormalizedValidator|Function} validator\n * @return {NormalizedValidator}\n */\n\nfunction normalizeValidatorObject(validator) {\n return isFunction(validator.$validator) ? Object.assign({}, validator) : {\n $validator: validator\n };\n}\nfunction isPromise(object) {\n return isObject(object) && isFunction(object.then);\n}\n/**\n * Unwraps a ValidatorResponse object, into a boolean.\n * @param {ValidatorResponse} result\n * @return {boolean}\n */\n\nfunction unwrapValidatorResponse(result) {\n if (typeof result === 'object') return result.$valid;\n return result;\n}\n/**\n * Unwraps a `NormalizedValidator` object, returning its validator function.\n * @param {NormalizedValidator | Function} validator\n * @return {function}\n */\n\nfunction unwrapNormalizedValidator(validator) {\n return validator.$validator || validator;\n}\n\n/**\n * Allows attaching parameters to a validator\n * @param {Object} $params\n * @param {NormalizedValidator|Function} $validator\n * @return {NormalizedValidator}\n */\n\nfunction withParams($params, $validator) {\n if (!isObject($params)) throw new Error(`[@vuelidate/validators]: First parameter to \"withParams\" should be an object, provided ${typeof $params}`);\n if (!isObject($validator) && !isFunction($validator)) throw new Error(`[@vuelidate/validators]: Validator must be a function or object with $validator parameter`);\n const validatorObj = normalizeValidatorObject($validator);\n validatorObj.$params = Object.assign({}, validatorObj.$params || {}, $params);\n return validatorObj;\n}\n\n/**\n * @callback MessageCallback\n * @param {Object} params\n * @return String\n */\n\n/**\n * Attaches a message to a validator\n * @param {MessageCallback | String} $message\n * @param {NormalizedValidator|Function} $validator\n * @return {NormalizedValidator}\n */\n\nfunction withMessage($message, $validator) {\n if (!isFunction($message) && typeof unref($message) !== 'string') throw new Error(`[@vuelidate/validators]: First parameter to \"withMessage\" should be string or a function returning a string, provided ${typeof $message}`);\n if (!isObject($validator) && !isFunction($validator)) throw new Error(`[@vuelidate/validators]: Validator must be a function or object with $validator parameter`);\n const validatorObj = normalizeValidatorObject($validator);\n validatorObj.$message = $message;\n return validatorObj;\n}\n\n/**\n * @typedef {function(*): Promise<boolean|ValidatorResponse>} asyncValidator\n */\n\n/**\n * @typedef {Ref<*>[]|function(*): *} watchTargets\n */\n\n/**\n * Wraps validators that returns a Promise.\n * @param {asyncValidator} $validator\n * @param {watchTargets} $watchTargets\n * @return {{$async: boolean, $validator: asyncValidator, $watchTargets: watchTargets}}\n */\n\nfunction withAsync($validator) {\n let $watchTargets = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n const validatorObj = normalizeValidatorObject($validator);\n return Object.assign({}, validatorObj, {\n $async: true,\n $watchTargets\n });\n}\n\nfunction forEach(validators) {\n return {\n $validator(collection) {\n for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n others[_key - 1] = arguments[_key];\n }\n\n // go over the collection. It can be a ref as well.\n return unref(collection).reduce((previous, collectionItem, index) => {\n // go over each property\n const collectionEntryResult = Object.entries(collectionItem).reduce((all, _ref) => {\n let [property, $model] = _ref;\n // get the validators for this property\n const innerValidators = validators[property] || {}; // go over each validator and run it\n\n const propertyResult = Object.entries(innerValidators).reduce((all, _ref2) => {\n let [validatorName, currentValidator] = _ref2;\n // extract the validator. Supports simple and extended validators.\n const validatorFunction = unwrapNormalizedValidator(currentValidator); // Call the validator, passing the VM as this, the value, current iterated object and the rest.\n\n const $response = validatorFunction.call(this, $model, collectionItem, index, ...others); // extract the valid from the result\n\n const $valid = unwrapValidatorResponse($response); // store the entire response for later\n\n all.$data[validatorName] = $response;\n all.$data.$invalid = !$valid || !!all.$data.$invalid;\n all.$data.$error = all.$data.$invalid; // if not valid, get the $message\n\n if (!$valid) {\n let $message = currentValidator.$message || '';\n const $params = currentValidator.$params || {}; // If $message is a function, we call it with the appropriate parameters\n\n if (typeof $message === 'function') {\n $message = $message({\n $pending: false,\n $invalid: !$valid,\n $params,\n $model,\n $response\n });\n } // save the error object\n\n\n all.$errors.push({\n $property: property,\n $message,\n $params,\n $response,\n $model,\n $pending: false,\n $validator: validatorName\n });\n }\n\n return {\n $valid: all.$valid && $valid,\n $data: all.$data,\n $errors: all.$errors\n };\n }, {\n $valid: true,\n $data: {},\n $errors: []\n });\n all.$data[property] = propertyResult.$data;\n all.$errors[property] = propertyResult.$errors;\n return {\n $valid: all.$valid && propertyResult.$valid,\n $data: all.$data,\n $errors: all.$errors\n };\n }, {\n $valid: true,\n $data: {},\n $errors: {}\n });\n return {\n $valid: previous.$valid && collectionEntryResult.$valid,\n $data: previous.$data.concat(collectionEntryResult.$data),\n $errors: previous.$errors.concat(collectionEntryResult.$errors)\n };\n }, {\n $valid: true,\n $data: [],\n $errors: []\n });\n },\n\n // collect all the validation errors into a 2 dimensional array, for each entry in the collection, you have an array of error messages.\n $message: _ref3 => {\n let {\n $response\n } = _ref3;\n return $response ? $response.$errors.map(context => {\n return Object.values(context).map(errors => errors.map(error => error.$message)).reduce((a, b) => a.concat(b), []);\n }) : [];\n }\n };\n}\n\n// \"required\" core, used in almost every validator to allow empty values\nconst req = value => {\n value = unref(value);\n if (Array.isArray(value)) return !!value.length;\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value === false) {\n return true;\n }\n\n if (value instanceof Date) {\n // invalid date won't pass\n return !isNaN(value.getTime());\n }\n\n if (typeof value === 'object') {\n for (let _ in value) return true;\n\n return false;\n }\n\n return !!String(value).length;\n};\n/**\n * Returns the length of an arbitrary value\n * @param {Array|Object|String} value\n * @return {number}\n */\n\nconst len = value => {\n value = unref(value);\n if (Array.isArray(value)) return value.length;\n\n if (typeof value === 'object') {\n return Object.keys(value).length;\n }\n\n return String(value).length;\n};\n/**\n * Regex based validator template\n * @param {RegExp} expr\n * @return {function(*=): boolean}\n */\n\nfunction regex() {\n for (var _len = arguments.length, expr = new Array(_len), _key = 0; _key < _len; _key++) {\n expr[_key] = arguments[_key];\n }\n\n return value => {\n value = unref(value);\n return !req(value) || expr.every(reg => reg.test(value));\n };\n}\n\nvar common = /*#__PURE__*/Object.freeze({\n __proto__: null,\n withParams: withParams,\n withMessage: withMessage,\n withAsync: withAsync,\n forEach: forEach,\n req: req,\n len: len,\n regex: regex,\n unwrap: unref,\n unwrapNormalizedValidator: unwrapNormalizedValidator,\n unwrapValidatorResponse: unwrapValidatorResponse,\n normalizeValidatorObject: normalizeValidatorObject\n});\n\nvar alpha$1 = regex(/^[a-zA-Z]*$/);\n\n/**\n * Validate if value is alphabetical string.\n * @type {NormalizedValidator}\n */\n\nvar alpha = {\n $validator: alpha$1,\n $message: 'The value is not alphabetical',\n $params: {\n type: 'alpha'\n }\n};\n\nvar alphaNum$1 = regex(/^[a-zA-Z0-9]*$/);\n\n/**\n * Validate if value is alpha-numeric string.\n * @type {NormalizedValidator}\n */\n\nvar alphaNum = {\n $validator: alphaNum$1,\n $message: 'The value must be alpha-numeric',\n $params: {\n type: 'alphaNum'\n }\n};\n\nvar numeric$1 = regex(/^\\d*(\\.\\d+)?$/);\n\n/**\n * Check whether a value is numeric.\n * @type NormalizedValidator\n */\n\nvar numeric = {\n $validator: numeric$1,\n $message: 'Value must be numeric',\n $params: {\n type: 'numeric'\n }\n};\n\n/**\n * Check if a numeric value is between two values.\n * @param {Ref<Number> | Number} min\n * @param {Ref<Number> | Number} max\n * @return {function(*=): boolean}\n */\n\nfunction between$1 (min, max) {\n return value => !req(value) || (!/\\s/.test(value) || value instanceof Date) && +unref(min) <= +value && +unref(max) >= +value;\n}\n\n/**\n * Checks if a value is between two values.\n * @param {Ref<Number> | Number} min\n * @param {Ref<Number> | Number} max\n * @return {NormalizedValidator}\n */\n\nfunction between (min, max) {\n return {\n $validator: between$1(min, max),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The value must be between ${$params.min} and ${$params.max}`;\n },\n $params: {\n min,\n max,\n type: 'between'\n }\n };\n}\n\nconst emailRegex = /^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nvar email$1 = regex(emailRegex);\n\n/**\n * Validate if value is an email.\n * @type {NormalizedValidator}\n */\n\nvar email = {\n $validator: email$1,\n $message: 'Value is not a valid email address',\n $params: {\n type: 'email'\n }\n};\n\n/**\n * Check if a string is an IP Address\n * @param {String} value\n * @returns {boolean}\n */\n\nfunction ipAddress$1 (value) {\n if (!req(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n const nibbles = value.split('.');\n return nibbles.length === 4 && nibbles.every(nibbleValid);\n}\n\nconst nibbleValid = nibble => {\n if (nibble.length > 3 || nibble.length === 0) {\n return false;\n }\n\n if (nibble[0] === '0' && nibble !== '0') {\n return false;\n }\n\n if (!nibble.match(/^\\d+$/)) {\n return false;\n }\n\n const numeric = +nibble | 0;\n return numeric >= 0 && numeric <= 255;\n};\n\n/**\n * Validate if value is an ipAddress string.\n * @type {NormalizedValidator}\n */\n\nvar ipAddress = {\n $validator: ipAddress$1,\n $message: 'The value is not a valid IP address',\n $params: {\n type: 'ipAddress'\n }\n};\n\n/**\n * Check if value is a properly formatted Mac Address.\n * @param {String | Ref<String>} [separator]\n * @returns {function(*): boolean}\n */\n\nfunction macAddress$1 () {\n let separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ':';\n return value => {\n separator = unref(separator);\n\n if (!req(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n const parts = typeof separator === 'string' && separator !== '' ? value.split(separator) : value.length === 12 || value.length === 16 ? value.match(/.{2}/g) : null;\n return parts !== null && (parts.length === 6 || parts.length === 8) && parts.every(hexValid);\n };\n}\n\nconst hexValid = hex => hex.toLowerCase().match(/^[0-9a-f]{2}$/);\n\n/**\n * Validate if value is a valid Mac Address string.\n * @returns {NormalizedValidator}\n */\n\nfunction macAddress (separator) {\n return {\n $validator: macAddress$1(separator),\n $message: 'The value is not a valid MAC Address',\n $params: {\n type: 'macAddress'\n }\n };\n}\n\n/**\n * Check if provided value has a maximum length\n * @param {Number | Ref<Number>} length\n * @returns {function(Array|Object|String): boolean}\n */\n\nfunction maxLength$1 (length) {\n return value => !req(value) || len(value) <= unref(length);\n}\n\n/**\n * Validate the max length of a string.\n * @param {Number} max\n * @return {NormalizedValidator}\n */\n\nfunction maxLength (max) {\n return {\n $validator: maxLength$1(max),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The maximum length allowed is ${$params.max}`;\n },\n $params: {\n max,\n type: 'maxLength'\n }\n };\n}\n\n/**\n * Check if value is above a threshold.\n * @param {Number | Ref<Number>} length\n * @returns {function(Array|Object|String): boolean}\n */\n\nfunction minLength$1 (length) {\n return value => !req(value) || len(value) >= unref(length);\n}\n\n/**\n * Check if value is above a threshold.\n * @param {Number | Ref<Number>} min\n * @returns {NormalizedValidator}\n */\n\nfunction minLength (min) {\n return {\n $validator: minLength$1(min),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `This field should be at least ${$params.min} characters long`;\n },\n $params: {\n min,\n type: 'minLength'\n }\n };\n}\n\n/**\n * Validates if a value is empty.\n * @param {String | Array | Date | Object} value\n * @returns {boolean}\n */\n\nfunction required$1 (value) {\n if (typeof value === 'string') {\n value = value.trim();\n }\n\n return req(value);\n}\n\n/**\n * Check if a value is empty or not.\n * @type {NormalizedValidator}\n */\n\nvar required = {\n $validator: required$1,\n $message: 'Value is required',\n $params: {\n type: 'required'\n }\n};\n\nconst validate$1 = (prop, val) => prop ? req(typeof val === 'string' ? val.trim() : val) : true;\n/**\n * Returns required if the passed property is truthy\n * @param {Boolean | String | function(any): Boolean | Ref<string | boolean>} propOrFunction\n * @return {function(value: *, parentVM: object): Boolean}\n */\n\n\nfunction requiredIf$1(propOrFunction) {\n return function (value, parentVM) {\n if (typeof propOrFunction !== 'function') {\n return validate$1(unref(propOrFunction), value);\n }\n\n const result = propOrFunction.call(this, value, parentVM);\n return validate$1(result, value);\n };\n}\n\n/**\n * Returns required if the passed property is truthy\n * @param {Boolean | String | function(): (Boolean | Promise<boolean>)} prop\n * @return {NormalizedValidator}\n */\n\nfunction requiredIf (prop) {\n return {\n $validator: requiredIf$1(prop),\n $message: 'The value is required',\n $params: {\n type: 'requiredIf',\n prop\n }\n };\n}\n\nconst validate = (prop, val) => !prop ? req(typeof val === 'string' ? val.trim() : val) : true;\n/**\n * Returns required if the passed property is falsy.\n * @param {Boolean | String | function(any): Boolean | Ref<string | boolean>} propOrFunction\n * @return {function(value: *, parentVM: object): Boolean}\n */\n\n\nfunction requiredUnless$1(propOrFunction) {\n return function (value, parentVM) {\n if (typeof propOrFunction !== 'function') {\n return validate(unref(propOrFunction), value);\n }\n\n const result = propOrFunction.call(this, value, parentVM);\n return validate(result, value);\n };\n}\n\n/**\n * Returns required unless the passed property is truthy\n * @param {Boolean | String | function(): (Boolean | Promise<boolean>)} prop\n * @return {NormalizedValidator}\n */\n\nfunction requiredUnless (prop) {\n return {\n $validator: requiredUnless$1(prop),\n $message: 'The value is required',\n $params: {\n type: 'requiredUnless',\n prop\n }\n };\n}\n\n/**\n * Check if two values are identical.\n * @param {*} equalTo\n * @return {function(*=): boolean}\n */\n\nfunction sameAs$1 (equalTo) {\n return value => unref(value) === unref(equalTo);\n}\n\n/**\n * Check if two values are identical\n * @param {*} equalTo\n * @param {String} [otherName]\n * @return {NormalizedValidator}\n */\n\nfunction sameAs (equalTo) {\n let otherName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'other';\n return {\n $validator: sameAs$1(equalTo),\n $message: _ref => {\n return `The value must be equal to the ${otherName} value`;\n },\n $params: {\n equalTo,\n otherName,\n type: 'sameAs'\n }\n };\n}\n\n/**\n * Regex taken from {@link https://gist.github.com/dperini/729294}\n */\n\nconst urlRegex = /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i;\nvar url$1 = regex(urlRegex);\n\n/**\n * Check if a value is a url\n * @type {NormalizedValidator}\n */\n\nvar url = {\n $validator: url$1,\n $message: 'The value is not a valid URL address',\n $params: {\n type: 'url'\n }\n};\n\nfunction _await$1(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction syncOr(validators) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validators.reduce((valid, fn) => {\n if (unwrapValidatorResponse(valid)) return valid;\n return unwrapNormalizedValidator(fn).apply(this, args);\n }, false);\n };\n}\n\nfunction asyncOr(validators) {\n return function () {\n const _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.reduce(function (valid, fn) {\n return _await$1(valid, function (r) {\n return unwrapValidatorResponse(r) ? r : unwrapNormalizedValidator(fn).apply(_this, args);\n });\n }, Promise.resolve(false));\n };\n}\n/**\n * Returns true when one of the provided functions returns true.\n * @param {...(NormalizedValidator|Function)} validators\n * @return {{$validator: function(...[*]=): (boolean | Promise<boolean>), $async: boolean, $watchTargets: any[]}}\n */\n\n\nfunction or$1() {\n for (var _len3 = arguments.length, validators = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n validators[_key3] = arguments[_key3];\n }\n\n const $async = validators.some(v => v.$async);\n const $watchTargets = validators.reduce((all, v) => {\n if (!v.$watchTargets) return all;\n return all.concat(v.$watchTargets);\n }, []);\n\n let $validator = () => false;\n\n if (validators.length) $validator = $async ? asyncOr(validators) : syncOr(validators);\n return {\n $async,\n $validator,\n $watchTargets\n };\n}\n\n/**\n * Returns true when one of the provided functions returns true.\n * @param {...(NormalizedValidator|Function)} validators\n * @return {NormalizedValidator}\n */\n\nfunction or () {\n return withParams({\n type: 'or'\n }, withMessage('The value does not match any of the provided validators', or$1(...arguments)));\n}\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n/**\n *\n * @param validators\n * @return {function(...[*]=): Promise<boolean>}\n */\n\n\nfunction syncAnd(validators) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validators.reduce((valid, fn) => {\n if (!unwrapValidatorResponse(valid)) return valid;\n return unwrapNormalizedValidator(fn).apply(this, args);\n }, true);\n };\n}\n\nfunction asyncAnd(validators) {\n return function () {\n const _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.reduce(function (valid, fn) {\n return _await(valid, function (r) {\n return unwrapValidatorResponse(r) ? unwrapNormalizedValidator(fn).apply(_this, args) : r;\n });\n }, Promise.resolve(true));\n };\n}\n/**\n * Returns true when all validators are truthy\n * @param {...(NormalizedValidator | Function)} validators\n * @return {{$validator: function(...[*]=): (boolean | Promise<boolean>), $async: boolean, $watchTargets: any[]}}\n */\n\n\nfunction and$1() {\n for (var _len3 = arguments.length, validators = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n validators[_key3] = arguments[_key3];\n }\n\n const $async = validators.some(v => v.$async);\n const $watchTargets = validators.reduce((all, v) => {\n if (!v.$watchTargets) return all;\n return all.concat(v.$watchTargets);\n }, []);\n\n let $validator = () => false;\n\n if (validators.length) $validator = $async ? asyncAnd(validators) : syncAnd(validators);\n return {\n $async,\n $validator,\n $watchTargets\n };\n}\n\n/**\n * Validate if all validators match.\n * @param {...*} validators\n * @returns {NormalizedValidator}\n */\n\nfunction and () {\n return withParams({\n type: 'and'\n }, withMessage('The value does not match all of the provided validators', and$1(...arguments)));\n}\n\n/**\n * Swaps the result of a value\n * @param {NormalizedValidator|Function} validator\n * @returns {function(*=, *=): boolean}\n */\n\nfunction not$1 (validator) {\n return function (value, vm) {\n if (!req(value)) return true;\n const response = unwrapNormalizedValidator(validator).call(this, value, vm);\n if (!isPromise(response)) return !unwrapValidatorResponse(response);\n return response.then(r => !unwrapValidatorResponse(r));\n };\n}\n\n/**\n * Swaps the result of a value\n * @param {NormalizedValidator|Function} validator\n * @returns {NormalizedValidator}\n */\n\nfunction not (validator) {\n return {\n $validator: not$1(validator),\n $message: `The value does not match the provided validator`,\n $params: {\n type: 'not'\n }\n };\n}\n\n/**\n * Check if a value is above a threshold.\n * @param {String | Number | Ref<Number> | Ref<String>} min\n * @returns {function(*=): boolean}\n */\n\nfunction minValue$1 (min) {\n return value => !req(value) || (!/\\s/.test(value) || value instanceof Date) && +value >= +unref(min);\n}\n\n/**\n * Check if a value is above a threshold.\n * @param {String | Number | Ref<Number> | Ref<String>} min\n * @returns {NormalizedValidator}\n */\n\nfunction minValue (min) {\n return {\n $validator: minValue$1(min),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The minimum value allowed is ${$params.min}`;\n },\n $params: {\n min,\n type: 'minValue'\n }\n };\n}\n\n/**\n * Check if value is below a threshold.\n * @param {Number | Ref<Number> | Ref<String>} max\n * @returns {function(*=): boolean}\n */\n\nfunction maxValue$1 (max) {\n return value => !req(value) || (!/\\s/.test(value) || value instanceof Date) && +value <= +unref(max);\n}\n\n/**\n * Check if value is below a threshold.\n * @param {Number | Ref<Number> | Ref<String>} max\n * @return {NormalizedValidator}\n */\n\nvar maxValue = (max => ({\n $validator: maxValue$1(max),\n $message: _ref => {\n let {\n $params\n } = _ref;\n return `The maximum value allowed is ${$params.max}`;\n },\n $params: {\n max,\n type: 'maxValue'\n }\n}));\n\n// ^-[0-9]+$ - only for negative integer (minus sign without at least 1 digit is not a number)\n\nvar integer$1 = regex(/(^[0-9]*$)|(^-[0-9]+$)/);\n\n/**\n * Validate if value is integer.\n * @type {NormalizedValidator}\n */\n\nvar integer = {\n $validator: integer$1,\n $message: 'Value is not an integer',\n $params: {\n type: 'integer'\n }\n};\n\nvar decimal$1 = regex(/^[-]?\\d*(\\.\\d+)?$/);\n\n/**\n * Validate if value is decimal number.\n * @type {NormalizedValidator}\n */\n\nvar decimal = {\n $validator: decimal$1,\n $message: 'Value must be decimal',\n $params: {\n type: 'decimal'\n }\n};\n\n/**\n * Creates a translatable version of `withMessage` helper.\n * @param {function} t - the translation function of your choice\n * @param {function} [messagePath] - a function to generate the message path, passed to `t` for each message. By default it is `validations.${$validator}`\n * @param {function} [messageParams] - a function to augment the params, passed to `t` for each message.\n */\n\nfunction createI18nMessage(_ref) {\n let {\n t,\n messagePath = _ref2 => {\n let {\n $validator\n } = _ref2;\n return `validations.${$validator}`;\n },\n messageParams = params => params\n } = _ref;\n return function withI18nMessage(validator) {\n let {\n withArguments = false,\n messagePath: localMessagePath = messagePath,\n messageParams: localMessageParams = messageParams\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n function message(props) {\n return t(localMessagePath(props), localMessageParams(Object.assign({\n model: props.$model,\n property: props.$property,\n pending: props.$pending,\n invalid: props.$invalid,\n response: props.$response,\n validator: props.$validator,\n propertyPath: props.$propertyPath\n }, props.$params)));\n }\n\n if (withArguments && typeof validator === 'function') {\n return function () {\n return withMessage(message, validator(...arguments));\n };\n }\n\n return withMessage(message, validator);\n };\n}\n\nexport { alpha, alphaNum, and, between, createI18nMessage, decimal, email, common as helpers, integer, ipAddress, macAddress, maxLength, maxValue, minLength, minValue, not, numeric, or, required, requiredIf, requiredUnless, sameAs, url };\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","\"use strict\";function getIlluminant(r){return ILLUMINANTS[r]}function matrixMultiply(r,t){for(var n=[],e=0;e<r.length;e++){n[e]=[];for(var o=0;o<t[0].length;o++){for(var u=0,a=0;a<r[0].length;a++)u+=r[e][a]*t[a][o];n[e][o]=u}}return n}function getTransform(r){return TRANSFORMS[r]}function determineType(r){var t=types.find(function(t){return testColorType[t](r)});if(!t)throw new Error(\"No type found for color \"+r);return t}function toRadian(r){return r*(Math.PI/180)}function toDegree(r){return r*(180/Math.PI)}function negativeModulo(r,t){return(r%t+t)%t}function bounded(r,t){return r<t[0]?r=t[0]:r>t[1]&&(r=t[1]),r}function boundedRgb(r){return{r:bounded255(r.r),g:bounded255(r.g),b:bounded255(r.b)}}function cubeRoot(r){if(Math.cbrt)return Math.cbrt(r);var t=Math.pow(Math.abs(r),1/3);return r<0?-t:t}function convert(r,t,n){if(void 0===t)throw new Error(\"No value provided\");var e=n||determineType(t);if(e===r)return t;if(conversions[e][r])return convertNow(e,r,t);var o=conversionSteps[e],u=\"string\"==typeof o?o:o[r]||o.default;return convert(r,convertNow(e,u,t),u)}function makeColourObject(r){var t={};return types$1.forEach(function(n){Object.defineProperty(t,n,{get:function(){return convertArrayOrColour(n,r)},enumerable:!0})}),t}function adapt(r,t,n){var e=convert(\"XYZ\",r),o=convert(\"lms\",getIlluminant(t)||getIlluminant(\"D65\")),u=convert(\"lms\",getIlluminant(n)||getIlluminant(\"D65\")),a=getTransform(\"BRADFORD\"),c=matrixMultiply(matrixMultiply(matrixMultiply(getTransform(\"INVERSE_BRADFORD\"),[[o.rho/u.rho,0,0],[0,o.gamma/u.gamma,0],[0,0,o.beta/u.beta]]),a),[[e.X],[e.Y],[e.Z]]);return makeColourObject({X:c[0][0],Y:c[1][0],Z:c[2][0]})}function adjacent(r,t,n){for(var e=convert(\"hsl\",n),o=[{h:e.h,s:e.s,l:e.l}],u=0;u<t-1;u++)e.h=negativeModulo(e.h+r,360),o.push({h:e.h,s:e.s,l:e.l});return makeColourObject(o)}function brightness(r,t){var n=convert(\"hsl\",t);return n.l+=r,n.l<0?n.l=0:n.l>100&&(n.l=100),makeColourObject(n)}function complementary(r){var t=convert(\"hsl\",r);return t.h=(t.h+180)%360,makeColourObject(t)}function contrast(r,t){var n=convert(\"rgb\",t);return n.r=255*((n.r/255-.5)*r+.5),n.r<0?n.r=0:n.r>255&&(n.r=255),n.g=255*((n.g/255-.5)*r+.5),n.g<0?n.g=0:n.g>255&&(n.g=255),n.b=255*((n.b/255-.5)*r+.5),n.b<0?n.b=0:n.b>255&&(n.b=255),makeColourObject(n)}function contrastRatio(r){var t=convert(\"rgb\",r);return t=(299*t.r+587*t.g+114*t.b)/1e3>=128?{r:0,g:0,b:0}:{r:255,g:255,b:255},makeColourObject(t)}function difference(r,t,n,e){n=n||1,e=e||1;var o=convert(\"cielab\",r),u=convert(\"cielab\",t),a=Math.sqrt(Math.pow(o.a,2)+Math.pow(o.b,2)),c=a-Math.sqrt(Math.pow(u.a,2)+Math.pow(u.b,2)),i=o.L-u.L,s=o.a-u.a,l=o.b-u.b,h=Math.sqrt(Math.pow(s,2)+Math.pow(l,2)-Math.pow(c,2)),f=o.L<16?.511:.040975*o.L/(1.01765*o.L),v=.0638*a/(1.0131*a),b=Math.atan2(o.b,o.a),g=b>=0?b:b+360,p=g>=164&&g<=345?.56+Math.abs(.2*Math.cos(toRadian(g+168))):.36+Math.abs(.4*Math.cos(toRadian(g+35))),m=Math.pow(a,4)/(Math.pow(a,4)+1900),d=v*(m*p+1-m),Y=Math.pow(i/(n*f),2),M=Math.pow(c/(e*v),2),y=Math.pow(h/d,2);return Math.sqrt(Y+M+y)}function slopeMod(r,t){return r>2*t?slopeMod(r-2*t,t):r>t?2*t-r:r<0?slopeMod(r+2*t,t):r}function fade(r,t,n){var e=convert(\"rgb\",t),o=convert(\"rgb\",n),u=[e];r-=1;for(var a=(o.r-e.r)/r,c=(o.g-e.g)/r,i=(o.b-e.b)/r,s={r:e.r,g:e.g,b:e.b},l=0;l<r-1;l++)s.r=slopeMod(s.r+a,255),s.g=slopeMod(s.g+c,255),s.b=slopeMod(s.b+i,255),u.push({r:s.r,g:s.g,b:s.b});return u.push(o),makeColourObject(u)}function greyscale(r){var t=convert(\"rgb\",r),n=(t.r+t.g+t.b)/3;return t={r:n,g:n,b:n},makeColourObject(t)}function hue(r,t){var n=convert(\"hsl\",t);return n.h=negativeModulo(n.h+r,360),makeColourObject(n)}function invert(r){var t=convert(\"rgb\",r);return t.r=negativeModulo(255-t.r,255),t.g=negativeModulo(255-t.g,255),t.b=negativeModulo(255-t.b,255),makeColourObject(t)}function invertLightness(r){var t=convert(\"hsl\",r);return t.l=100-t.l,makeColourObject(t)}function mid(r,t){var n=convert(\"hsl\",r),e=convert(\"hsl\",t);return makeColourObject({h:(n.h+e.h)/2,s:(n.s+e.s)/2,l:(n.l+e.l)/2})}function multiply(r,t){var n=convert(\"hsl\",r),e=convert(\"hsl\",t),o={h:n.h,s:n.s,l:n.l/100*(e.l/100)*100};return o.l=o.l>100?100:o.l,o.l=o.l<0?0:o.l,makeColourObject(o)}function saturation(r,t){var n=convert(\"hsl\",t);return n.s+=r,n.s<0?n.s=0:n.s>100&&(n.s=100),makeColourObject(n)}function sepia(r){var t=convert(\"rgb\",r),n={};return n.r=.393*t.r+.769*t.g+.189*t.b,n.g=.349*t.r+.686*t.g+.168*t.b,n.b=.272*t.r+.534*t.g+.131*t.b,makeColourObject(n)}function shade(r,t){var n=convert(\"hsv\",t);return console.log(n),n.v+=r,n.v<0?n.v=0:n.v>100&&(n.v=100),console.log(n),makeColourObject(n)}function temperature(r){var t=convert(\"xyY\",r),n=(t.x-.332)/(t.y-.1858);return-449*Math.pow(n,3)+3525*Math.pow(n,2)-6823.3*n+5520.33}function tetrad(r){for(var t=convert(\"hsl\",r),n=[{h:t.h,s:t.s,l:t.l}],e=0;e<3;e++)t.h=(t.h+90)%360,n.push({h:t.h,s:t.s,l:t.l});return makeColourObject(n)}function triad(r){for(var t=convert(\"hsl\",r),n=[{h:t.h,s:t.s,l:t.l}],e=0;e<2;e++)t.h=(t.h+120)%360,n.push({h:t.h,s:t.s,l:t.l});return makeColourObject(n)}function complementary$1(r){var t=convert(\"hsluv\",r);return t.hu=(t.hu+180)%360,makeColourObject(t)}function triad$1(r){for(var t=convert(\"hsluv\",r),n=[{hu:t.hu,s:t.s,l:t.l}],e=0;e<2;e++)t.hu=(t.hu+120)%360,n.push({h:t.hu,s:t.s,l:t.l});return makeColourObject(n)}function tetrad$1(r){for(var t=convert(\"hsluv\",r),n=[{hu:t.hu,s:t.s,l:t.l}],e=0;e<3;e++)t.hu=(t.hu+90)%360,n.push({h:t.hu,s:t.s,l:t.l});return makeColourObject(n)}Object.defineProperty(exports,\"__esModule\",{value:!0});var ILLUMINANTS={A:{X:1.0985*100,Y:100,Z:35.585},B:{X:99.072,Y:100,Z:85.223},C:{X:98.074,Y:100,Z:118.232},D50:{X:96.422,Y:100,Z:82.521},D55:{X:95.682,Y:100,Z:92.149},D65:{X:95.047,Y:100,Z:108.883},D75:{X:94.972,Y:100,Z:122.638},E:{X:100,Y:100,Z:100},F2:{X:.99186*100,Y:100,Z:67.393},F7:{X:95.041,Y:100,Z:108.747},F11:{X:1.00962*100,Y:100,Z:64.35}},TRANSFORMS={BRADFORD:[[.8951,.2664,-.1614],[-.7502,1.7135,.0367],[.0389,-.0685,1.0296]],INVERSE_BRADFORD:[[.9869929,-.1470543,.1599627],[.4323053,.5183603,.0492912],[-.0085287,.0400428,.9684867]],SRGB_XYZ:[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],INVERSE_SRGB_XYZ:[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]]},contains=function(r,t){var n=new Set(Object.keys(r));return t.every(function(r){return n.has(r)})},stringStartsWith=function(r,t){return\"string\"==typeof r&&r.slice(0,t.length)===t},testColorType={hex:function(r){return stringStartsWith(r,\"#\")},rgb:function(r){return contains(r,[\"r\",\"g\",\"b\"])},cssrgb:function(r){return stringStartsWith(r,\"rgb(\")},hsl:function(r){return contains(r,[\"h\",\"s\",\"l\"])},csshsl:function(r){return stringStartsWith(r,\"hsl(\")},hsv:function(r){return contains(r,[\"h\",\"s\",\"v\"])},cmyk:function(r){return contains(r,[\"c\",\"m\",\"y\",\"k\"])},yiq:function(r){return contains(r,[\"y\",\"i\",\"q\"])},XYZ:function(r){return contains(r,[\"X\",\"Y\",\"Z\"])},xyY:function(r){return contains(r,[\"x\",\"y\",\"Y\"])},lms:function(r){return contains(r,[\"rho\",\"gamma\",\"beta\"])},cielab:function(r){return contains(r,[\"L\",\"a\",\"b\"])},cieluv:function(r){return contains(r,[\"L\",\"u\",\"v\"])},cielch:function(r){return contains(r,[\"L\",\"C\",\"h\"])},hsluv:function(r){return contains(r,[\"hu\",\"s\",\"l\"])}},types=Object.keys(testColorType),epsilon=.008856,kappa=903.3,white=getIlluminant(\"D65\"),toR=function(r){return Math.pow(r,3)>epsilon?Math.pow(r,3):(116*r-16)/kappa},cielab={XYZ:function(r){var t=(r.L+16)/116,n=r.a/500+t,e=t-r.b/200,o=toR(n),u=toR(e),a=r.L>kappa*epsilon?Math.pow(t,3):r.L/kappa;return{X:o*white.X,Y:a*white.Y,Z:u*white.Z}}},cielch={cieluv:function(r){var t=toRadian(r.h),n=r.C*Math.cos(t),e=r.C*Math.sin(t);return{L:r.L,u:n,v:e}},hsluv:function(r){if(r.L>99.9999999)return{hu:r.h,s:0,l:100};if(r.L<1e-8)return{hu:r.h,s:0,l:0};for(var t=(r.L+16)/1560896,n=t>.008856?t:r.L/903.3,e=getTransform(\"INVERSE_SRGB_XYZ\"),o=[],u=0;u<3;u++)for(var a=e[u][0],c=e[u][1],i=e[u][2],s=0;s<2;s++){var l=(284517*a-94839*i)*n,h=(838422*i+769860*c+731718*a)*r.L*n-769860*s*r.L,f=(632260*i-126452*c)*n+126452*s;o.push({m:l/f,b:h/f})}var v=Number.MAX_VALUE,b=toRadian(r.h);o.forEach(function(r){var t=r.b/(Math.sin(b)-r.m*Math.cos(b));t>=0&&(v=Math.min(v,t))});var g=v;return{hu:r.h,s:r.C/g*100,l:r.L}}},cieluv={XYZ:function(r){var t=getIlluminant(\"D65\"),n=function(r){return 4*r.X/(r.X+15*r.Y+3*r.Z)}(t),e=function(r){return 9*r.Y/(r.X+15*r.Y+3*r.Z)}(t),o=1/3*(52*r.L/(r.u+13*r.L*n)-1),u=r.L>903.3*.008856?Math.pow((r.L+16)/116,3):r.L/903.3,a=-5*u,c=(u*(39*r.L/(r.v+13*r.L*e)-5)-a)/(o- -1/3);return{X:100*c,Y:100*u,Z:100*(c*o+a)}},cielch:function(r){var t=Math.sqrt(Math.pow(r.u,2)+Math.pow(r.v,2)),n=Math.atan2(r.v,r.u);return n<0&&(n+=2*Math.PI),n=toDegree(n),{L:r.L,C:t,h:n}}},rgb=function(r){return{r:255*(1-r.c)*(1-r.k),g:255*(1-r.m)*(1-r.k),b:255*(1-r.y)*(1-r.k)}},cmyk={rgb:rgb,cssrgb:function(r){var t=rgb(r),n=t.r,e=t.g,o=t.b;return\"rgb(\"+Math.round(n)+\",\"+Math.round(e)+\",\"+Math.round(o)+\")\"}},csshsl={hsl:function(r){var t=r.replace(/(hsl\\(|\\)|%|[\\s]*)/g,\"\").split(\",\").map(function(r){return parseInt(r,10)});return{h:t[0],s:t[1],l:t[2]}}},cssrgb={rgb:function(r){var t=r.replace(/((rgb\\(|\\))|[\\s]*)/g,\"\").split(\",\").map(function(r){return parseInt(r,10)});return{r:t[0],g:t[1],b:t[2]}}},hex={rgb:function(r){var t=r.replace(\"#\",\"\").match(/.{2}/g).map(function(r){return parseInt(r,16)});return{r:t[0],g:t[1],b:t[2]}}},hsl={rgb:function(r){if(0===r.s){var t=r.l/100*255;return{r:t,g:t,b:t}}var n,e,o;n=r.l>=50?r.l/100+r.s/100-r.l/100*(r.s/100):r.l/100*(1+r.s/100),e=r.l/100*2-n;var u,a,c,i=((o=r.h/360)+.333)%1,s=o,l=negativeModulo(o-.333,1);return u=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+6*(.666-i)*(n-e):e,a=6*s<1?e+6*(n-e)*s:2*s<1?n:3*s<2?e+6*(.666-s)*(n-e):e,c=6*l<1?e+6*(n-e)*l:2*l<1?n:3*l<2?e+6*(.666-l)*(n-e):e,u<0&&(u=0),a<0&&(a=0),c<0&&(c=0),{r:255*u,g:255*a,b:255*c}},csshsl:function(r){return\"hsl(\"+Math.round(r.h)+\",\"+Math.round(r.s)+\"%,\"+Math.round(r.l)+\"%)\"},hsv:function(r){var t=Object.assign({},r,{s:r.s/100,l:r.l/100}),n=t.s*(t.l<.5?t.l:1-t.l);return{h:t.h,s:100*(2*n/(t.l+n)),v:100*(t.l+n)}}},hsluv={cielch:function(r){if(r.L>99.9999999)return{L:100,C:0,h:r.hu};if(r.L<1e-8)return{L:0,C:0,h:r.hu};for(var t=(r.l+16)/1560896,n=t>.008856?t:r.l/903.3,e=getTransform(\"INVERSE_SRGB_XYZ\"),o=[],u=0;u<3;u++)for(var a=e[u][0],c=e[u][1],i=e[u][2],s=0;s<2;s++){var l=(284517*a-94839*i)*n,h=(838422*i+769860*c+731718*a)*r.l*n-769860*s*r.l,f=(632260*i-126452*c)*n+126452*s;o.push({m:l/f,b:h/f})}var v=Number.MAX_VALUE,b=toRadian(r.hu);o.forEach(function(r){var t=r.b/(Math.sin(b)-r.m*Math.cos(b));t>=0&&(v=Math.min(v,t))});var g=v;return{L:r.l,C:g/100*r.s,h:r.hu}}},hsv={hsl:function(r){var t=Object.assign({},r,{h:r.h/360,s:r.s/100,v:r.v/100});return{h:360*t.h,s:100*((2-t.s)*t.v<1?t.s*t.v/((2-t.s)*t.v):t.s*t.v/(2-(2-t.s)*t.v)),l:100*((2-t.s)*t.v/2)}}},lms={XYZ:function(r){var t=[r.rho,r.gamma,r.beta],n=getTransform(\"INVERSE_BRADFORD\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)});return{X:100*n[0],Y:100*n[1],Z:100*n[2]}}},bounded255=function(r){return bounded(r,[0,255])},slicedToArray=function(){function r(r,t){var n=[],e=!0,o=!1,u=void 0;try{for(var a,c=r[Symbol.iterator]();!(e=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);e=!0);}catch(r){o=!0,u=r}finally{try{!e&&c.return&&c.return()}finally{if(o)throw u}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return r(t,n);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),epsilon$1=.008856,kappa$1=903.3,white$1=getIlluminant(\"D65\"),fromXYZ={rgb:function(r){var t=[r.X,r.Y,r.Z].map(function(r){return r/100}),n=getTransform(\"INVERSE_SRGB_XYZ\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)}).map(function(r){return r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055}).map(function(r){return 255*r}),e=slicedToArray(n,3);return boundedRgb({r:e[0],g:e[1],b:e[2]})},lms:function(r){var t=[r.X,r.Y,r.Z].map(function(r){return r/100}),n=getTransform(\"BRADFORD\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)});return{rho:n[0],gamma:n[1],beta:n[2]}},cielab:function(r){var t=r.X/white$1.X,n=r.Y/white$1.Y,e=r.Z/white$1.Z,o=function(r){return r>epsilon$1?cubeRoot(r):(kappa$1*r+16)/116},u=o(t),a=o(n);return{L:116*a-16,a:500*(u-a),b:200*(a-o(e))}},cieluv:function(r){var t=r.Y/white$1.Y,n=t>epsilon$1?116*cubeRoot(t)-16:kappa$1*t,e=function(r){return 4*r.X/(r.X+15*r.Y+3*r.Z)},o=function(r){return 9*r.Y/(r.X+15*r.Y+3*r.Z)};return{L:n,u:13*n*(e(r)-e(white$1)),v:13*n*(o(r)-o(white$1))}},xyY:function(r){return{x:r.X/(r.X+r.Y+r.Z),y:r.Y/(r.X+r.Y+r.Z),Y:r.Y}}},fromXYZTolms=fromXYZ.lms,fromXYZTocielab=fromXYZ.cielab,fromXYZTocieluv=fromXYZ.cieluv,fromXYZToxyY=fromXYZ.xyY,hsl$1=function(r){var t,n,e=r.r/255,o=r.g/255,u=r.b/255,a=[e,o,u].sort(),c=(a[0]+a[2])/2*100;return a[0]===a[2]?(t=0,n=0):(t=c>=50?(a[2]-a[0])/(2-a[2]-a[0])*100:(a[2]-a[0])/(a[2]+a[0])*100,(n=a[2]===e?(o-u)/(a[2]-a[0])*60:a[2]===o?60*(2+(u-e)/(a[2]-a[0])):60*(4+(e-o)/(a[2]-a[0])))<0?n+=360:n>360&&(n%=360)),{h:n,s:t,l:c}},cieluv$1=function(r){return fromXYZTocieluv(XYZ(r))},XYZ=function(r){var t=[r.r,r.g,r.b].map(function(r){return r/255}).map(function(r){return r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}),n=getTransform(\"SRGB_XYZ\").map(function(r){return t.reduce(function(t,n,e){return r[e]*n+t},0)}).map(function(r){return 100*r}),e=slicedToArray(n,3);return{X:e[0],Y:e[1],Z:e[2]}},rgb$1={hex:function(r){var t=Math.round(r.r).toString(16);1===t.length&&(t=\"0\"+t);var n=Math.round(r.g).toString(16);1===n.length&&(n=\"0\"+n);var e=Math.round(r.b).toString(16);return 1===e.length&&(e=\"0\"+e),\"#\"+t+n+e},cssrgb:function(r){return\"rgb(\"+Math.round(r.r)+\",\"+Math.round(r.g)+\",\"+Math.round(r.b)+\")\"},hsl:hsl$1,csshsl:function(r){var t=hsl$1(r),n=t.h,e=t.s,o=t.l;return\"hsl(\"+Math.round(n)+\",\"+Math.round(e)+\"%,\"+Math.round(o)+\"%)\"},cmyk:function(r){var t=r.r/255,n=r.g/255,e=r.b/255,o=1-Math.max(t,n,e);return 1!==o?{c:(1-t-o)/(1-o),m:(1-n-o)/(1-o),y:(1-e-o)/(1-o),k:o}:{c:0,m:0,y:0,k:o}},yiq:function(r){var t=r.r/255*.299+r.g/255*.587+r.b/255*.114,n=r.r/255*.596+r.g/255*-.274+r.b/255*-.322,e=r.r/255*.211+r.g/255*-.523+r.b/255*.312;return n=bounded(n,[-.5957,.5957]),e=bounded(e,[-.5226,.5226]),{y:t,i:n,q:e}},XYZ:XYZ,lms:function(r){return fromXYZTolms(XYZ(r))},cielab:function(r){return fromXYZTocielab(XYZ(r))},cieluv:cieluv$1,xyY:function(r){return fromXYZToxyY(XYZ(r))}},xyY={XYZ:function(r){var t=r.x,n=r.y,e=r.Y;return{X:e/n*t,Y:e,Z:e/n*(1-t-n)}}},bound=function(r){return bounded(r,[0,255])},yiq={rgb:function(r){var t=bounded(r.i,[-.5957,.5957]),n=bounded(r.q,[-.5226,.5226]);return{r:255*bound(r.y+.956*t+.621*n),g:255*bound(r.y+-.272*t+-.647*n),b:255*bound(r.y+-1.106*t+-1.703*n)}}},conversions=Object.freeze({cielab:cielab,cielch:cielch,cieluv:cieluv,cmyk:cmyk,csshsl:csshsl,cssrgb:cssrgb,hex:hex,hsl:hsl,hsluv:hsluv,hsv:hsv,lms:lms,rgb:rgb$1,xyY:xyY,XYZ:fromXYZ,yiq:yiq}),conversionSteps={rgb:{default:\"XYZ\",csshsl:\"hsl\",hsv:\"hsl\"},hex:\"rgb\",hsl:\"rgb\",hsv:\"hsl\",csshsl:\"hsl\",cssrgb:\"rgb\",cmyk:\"rgb\",XYZ:{default:\"rgb\",cielch:\"cieluv\",hsluv:\"cieluv\"},xyY:\"XYZ\",lms:\"XYZ\",cieluv:{default:\"XYZ\",hsluv:\"cielch\"},cielch:\"cieluv\",cielab:\"XYZ\",yiq:\"rgb\",hsluv:\"cielch\"},convertNow=function(r,t,n){return conversions[r][t](n)},types$1=Object.keys(testColorType),convertArrayOrColour=function(r,t){return Array.isArray(t)?t.map(function(t){return convert(r,t)}):convert(r,t)};exports.adapt=adapt,exports.adjacent=adjacent,exports.brightness=brightness,exports.complementary=complementary,exports.contrast=contrast,exports.contrastRatio=contrastRatio,exports.convert=makeColourObject,exports.difference=difference,exports.fade=fade,exports.greyscale=greyscale,exports.hue=hue,exports.invert=invert,exports.invertLightness=invertLightness,exports.mid=mid,exports.multiply=multiply,exports.saturation=saturation,exports.sepia=sepia,exports.shade=shade,exports.temperature=temperature,exports.tetrad=tetrad,exports.triad=triad,exports.uniformComplementary=complementary$1,exports.uniformTriad=triad$1,exports.uniformTetrad=tetrad$1;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e||self)[\"v-click-outside\"]=n()}(this,function(){var e=\"__v-click-outside\",n=\"undefined\"!=typeof window,t=\"undefined\"!=typeof navigator,r=n&&(\"ontouchstart\"in window||t&&navigator.msMaxTouchPoints>0)?[\"touchstart\"]:[\"click\"],i=function(e){var n=e.event,t=e.handler;(0,e.middleware)(n)&&t(n)},a=function(n,t){var a=function(e){var n=\"function\"==typeof e;if(!n&&\"object\"!=typeof e)throw new Error(\"v-click-outside: Binding value must be a function or an object\");return{handler:n?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||r,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe),capture:Boolean(e.capture)}}(t.value),o=a.handler,d=a.middleware,c=a.detectIframe,u=a.capture;if(a.isActive){if(n[e]=a.events.map(function(e){return{event:e,srcTarget:document.documentElement,handler:function(e){return function(e){var n=e.el,t=e.event,r=e.handler,a=e.middleware,o=t.path||t.composedPath&&t.composedPath();(o?o.indexOf(n)<0:!n.contains(t.target))&&i({event:t,handler:r,middleware:a})}({el:n,event:e,handler:o,middleware:d})},capture:u}}),c){var l={event:\"blur\",srcTarget:window,handler:function(e){return function(e){var n=e.el,t=e.event,r=e.handler,a=e.middleware;setTimeout(function(){var e=document.activeElement;e&&\"IFRAME\"===e.tagName&&!n.contains(e)&&i({event:t,handler:r,middleware:a})},0)}({el:n,event:e,handler:o,middleware:d})},capture:u};n[e]=[].concat(n[e],[l])}n[e].forEach(function(t){var r=t.event,i=t.srcTarget,a=t.handler;return setTimeout(function(){n[e]&&i.addEventListener(r,a,u)},0)})}},o=function(n){(n[e]||[]).forEach(function(e){return e.srcTarget.removeEventListener(e.event,e.handler,e.capture)}),delete n[e]},d=n?{beforeMount:a,updated:function(e,n){var t=n.value,r=n.oldValue;JSON.stringify(t)!==JSON.stringify(r)&&(o(e),a(e,{value:t}))},unmounted:o}:{};return{install:function(e){e.directive(\"click-outside\",d)},directive:d}});\n//# sourceMappingURL=v-click-outside.umd.js.map\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&#39;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","const LANGUAGES_LIST = {\n aa: {\n name: 'Afar',\n nativeName: 'Afaraf',\n },\n ab: {\n name: 'Abkhaz',\n nativeName: 'аҧсуа бызшәа',\n },\n ae: {\n name: 'Avestan',\n nativeName: 'avesta',\n },\n af: {\n name: 'Afrikaans',\n nativeName: 'Afrikaans',\n },\n ak: {\n name: 'Akan',\n nativeName: 'Akan',\n },\n am: {\n name: 'Amharic',\n nativeName: 'አማርኛ',\n },\n an: {\n name: 'Aragonese',\n nativeName: 'aragonés',\n },\n ar: {\n name: 'Arabic',\n nativeName: 'اَلْعَرَبِيَّةُ',\n },\n as: {\n name: 'Assamese',\n nativeName: 'অসমীয়া',\n },\n av: {\n name: 'Avaric',\n nativeName: 'авар мацӀ',\n },\n ay: {\n name: 'Aymara',\n nativeName: 'aymar aru',\n },\n az: {\n name: 'Azerbaijani',\n nativeName: 'azərbaycan dili',\n },\n ba: {\n name: 'Bashkir',\n nativeName: 'башҡорт теле',\n },\n be: {\n name: 'Belarusian',\n nativeName: 'беларуская мова',\n },\n bg: {\n name: 'Bulgarian',\n nativeName: 'български език',\n },\n bi: {\n name: 'Bislama',\n nativeName: 'Bislama',\n },\n bm: {\n name: 'Bambara',\n nativeName: 'bamanankan',\n },\n bn: {\n name: 'Bengali',\n nativeName: 'বাংলা',\n },\n bo: {\n name: 'Tibetan',\n nativeName: 'བོད་ཡིག',\n },\n br: {\n name: 'Breton',\n nativeName: 'brezhoneg',\n },\n bs: {\n name: 'Bosnian',\n nativeName: 'bosanski jezik',\n },\n ca: {\n name: 'Catalan',\n nativeName: 'Català',\n },\n ce: {\n name: 'Chechen',\n nativeName: 'нохчийн мотт',\n },\n ch: {\n name: 'Chamorro',\n nativeName: 'Chamoru',\n },\n co: {\n name: 'Corsican',\n nativeName: 'corsu',\n },\n cr: {\n name: 'Cree',\n nativeName: 'ᓀᐦᐃᔭᐍᐏᐣ',\n },\n cs: {\n name: 'Czech',\n nativeName: 'čeština',\n },\n cu: {\n name: 'Old Church Slavonic',\n nativeName: 'ѩзыкъ словѣньскъ',\n },\n cv: {\n name: 'Chuvash',\n nativeName: 'чӑваш чӗлхи',\n },\n cy: {\n name: 'Welsh',\n nativeName: 'Cymraeg',\n },\n da: {\n name: 'Danish',\n nativeName: 'dansk',\n },\n de: {\n name: 'German',\n nativeName: 'Deutsch',\n },\n dv: {\n name: 'Divehi',\n nativeName: 'ދިވެހި',\n },\n dz: {\n name: 'Dzongkha',\n nativeName: 'རྫོང་ཁ',\n },\n ee: {\n name: 'Ewe',\n nativeName: 'Eʋegbe',\n },\n el: {\n name: 'Greek',\n nativeName: 'Ελληνικά',\n },\n en: {\n name: 'English',\n nativeName: 'English',\n },\n eo: {\n name: 'Esperanto',\n nativeName: 'Esperanto',\n },\n es: {\n name: 'Spanish',\n nativeName: 'Español',\n },\n et: {\n name: 'Estonian',\n nativeName: 'eesti',\n },\n eu: {\n name: 'Basque',\n nativeName: 'euskara',\n },\n fa: {\n name: 'Persian',\n nativeName: 'فارسی',\n },\n ff: {\n name: 'Fula',\n nativeName: 'Fulfulde',\n },\n fi: {\n name: 'Finnish',\n nativeName: 'suomi',\n },\n fj: {\n name: 'Fijian',\n nativeName: 'vosa Vakaviti',\n },\n fo: {\n name: 'Faroese',\n nativeName: 'føroyskt',\n },\n fr: {\n name: 'French',\n nativeName: 'Français',\n },\n fy: {\n name: 'Western Frisian',\n nativeName: 'Frysk',\n },\n ga: {\n name: 'Irish',\n nativeName: 'Gaeilge',\n },\n gd: {\n name: 'Scottish Gaelic',\n nativeName: 'Gàidhlig',\n },\n gl: {\n name: 'Galician',\n nativeName: 'galego',\n },\n gn: {\n name: 'Guaraní',\n nativeName: \"Avañe'ẽ\",\n },\n gu: {\n name: 'Gujarati',\n nativeName: 'ગુજરાતી',\n },\n gv: {\n name: 'Manx',\n nativeName: 'Gaelg',\n },\n ha: {\n name: 'Hausa',\n nativeName: 'هَوُسَ',\n },\n he: {\n name: 'Hebrew',\n nativeName: 'עברית',\n },\n hi: {\n name: 'Hindi',\n nativeName: 'हिन्दी',\n },\n ho: {\n name: 'Hiri Motu',\n nativeName: 'Hiri Motu',\n },\n hr: {\n name: 'Croatian',\n nativeName: 'Hrvatski',\n },\n ht: {\n name: 'Haitian',\n nativeName: 'Kreyòl ayisyen',\n },\n hu: {\n name: 'Hungarian',\n nativeName: 'magyar',\n },\n hy: {\n name: 'Armenian',\n nativeName: 'Հայերեն',\n },\n hz: {\n name: 'Herero',\n nativeName: 'Otjiherero',\n },\n ia: {\n name: 'Interlingua',\n nativeName: 'Interlingua',\n },\n id: {\n name: 'Indonesian',\n nativeName: 'Bahasa Indonesia',\n },\n ie: {\n name: 'Interlingue',\n nativeName: 'Interlingue',\n },\n ig: {\n name: 'Igbo',\n nativeName: 'Asụsụ Igbo',\n },\n ii: {\n name: 'Nuosu',\n nativeName: 'ꆈꌠ꒿ Nuosuhxop',\n },\n ik: {\n name: 'Inupiaq',\n nativeName: 'Iñupiaq',\n },\n io: {\n name: 'Ido',\n nativeName: 'Ido',\n },\n is: {\n name: 'Icelandic',\n nativeName: 'Íslenska',\n },\n it: {\n name: 'Italian',\n nativeName: 'Italiano',\n },\n iu: {\n name: 'Inuktitut',\n nativeName: 'ᐃᓄᒃᑎᑐᑦ',\n },\n ja: {\n name: 'Japanese',\n nativeName: '日本語',\n },\n jv: {\n name: 'Javanese',\n nativeName: 'basa Jawa',\n },\n ka: {\n name: 'Georgian',\n nativeName: 'ქართული',\n },\n kg: {\n name: 'Kongo',\n nativeName: 'Kikongo',\n },\n ki: {\n name: 'Kikuyu',\n nativeName: 'Gĩkũyũ',\n },\n kj: {\n name: 'Kwanyama',\n nativeName: 'Kuanyama',\n },\n kk: {\n name: 'Kazakh',\n nativeName: 'қазақ тілі',\n },\n kl: {\n name: 'Kalaallisut',\n nativeName: 'kalaallisut',\n },\n km: {\n name: 'Khmer',\n nativeName: 'ខេមរភាសា',\n },\n kn: {\n name: 'Kannada',\n nativeName: 'ಕನ್ನಡ',\n },\n ko: {\n name: 'Korean',\n nativeName: '한국어',\n },\n kr: {\n name: 'Kanuri',\n nativeName: 'Kanuri',\n },\n ks: {\n name: 'Kashmiri',\n nativeName: 'कश्मीरी',\n },\n ku: {\n name: 'Kurdish',\n nativeName: 'Kurdî',\n },\n kv: {\n name: 'Komi',\n nativeName: 'коми кыв',\n },\n kw: {\n name: 'Cornish',\n nativeName: 'Kernewek',\n },\n ky: {\n name: 'Kyrgyz',\n nativeName: 'Кыргызча',\n },\n la: {\n name: 'Latin',\n nativeName: 'latine',\n },\n lb: {\n name: 'Luxembourgish',\n nativeName: 'Lëtzebuergesch',\n },\n lg: {\n name: 'Ganda',\n nativeName: 'Luganda',\n },\n li: {\n name: 'Limburgish',\n nativeName: 'Limburgs',\n },\n ln: {\n name: 'Lingala',\n nativeName: 'Lingála',\n },\n lo: {\n name: 'Lao',\n nativeName: 'ພາສາລາວ',\n },\n lt: {\n name: 'Lithuanian',\n nativeName: 'lietuvių kalba',\n },\n lu: {\n name: 'Luba-Katanga',\n nativeName: 'Kiluba',\n },\n lv: {\n name: 'Latvian',\n nativeName: 'latviešu valoda',\n },\n mg: {\n name: 'Malagasy',\n nativeName: 'fiteny malagasy',\n },\n mh: {\n name: 'Marshallese',\n nativeName: 'Kajin M̧ajeļ',\n },\n mi: {\n name: 'Māori',\n nativeName: 'te reo Māori',\n },\n mk: {\n name: 'Macedonian',\n nativeName: 'македонски јазик',\n },\n ml: {\n name: 'Malayalam',\n nativeName: 'മലയാളം',\n },\n mn: {\n name: 'Mongolian',\n nativeName: 'Монгол хэл',\n },\n mr: {\n name: 'Marathi',\n nativeName: 'मराठी',\n },\n ms: {\n name: 'Malay',\n nativeName: 'Bahasa Melayu',\n },\n mt: {\n name: 'Maltese',\n nativeName: 'Malti',\n },\n my: {\n name: 'Burmese',\n nativeName: 'ဗမာစာ',\n },\n na: {\n name: 'Nauru',\n nativeName: 'Dorerin Naoero',\n },\n nb: {\n name: 'Norwegian Bokmål',\n nativeName: 'Norsk bokmål',\n },\n nd: {\n name: 'Northern Ndebele',\n nativeName: 'isiNdebele',\n },\n ne: {\n name: 'Nepali',\n nativeName: 'नेपाली',\n },\n ng: {\n name: 'Ndonga',\n nativeName: 'Owambo',\n },\n nl: {\n name: 'Dutch',\n nativeName: 'Nederlands',\n },\n nn: {\n name: 'Norwegian Nynorsk',\n nativeName: 'Norsk nynorsk',\n },\n no: {\n name: 'Norwegian',\n nativeName: 'Norsk',\n },\n nr: {\n name: 'Southern Ndebele',\n nativeName: 'isiNdebele',\n },\n nv: {\n name: 'Navajo',\n nativeName: 'Diné bizaad',\n },\n ny: {\n name: 'Chichewa',\n nativeName: 'chiCheŵa',\n },\n oc: {\n name: 'Occitan',\n nativeName: 'occitan',\n },\n oj: {\n name: 'Ojibwe',\n nativeName: 'ᐊᓂᔑᓈᐯᒧᐎᓐ',\n },\n om: {\n name: 'Oromo',\n nativeName: 'Afaan Oromoo',\n },\n or: {\n name: 'Oriya',\n nativeName: 'ଓଡ଼ିଆ',\n },\n os: {\n name: 'Ossetian',\n nativeName: 'ирон æвзаг',\n },\n pa: {\n name: 'Panjabi',\n nativeName: 'ਪੰਜਾਬੀ',\n },\n pi: {\n name: 'Pāli',\n nativeName: 'पाऴि',\n },\n pl: {\n name: 'Polish',\n nativeName: 'Polski',\n },\n ps: {\n name: 'Pashto',\n nativeName: 'پښتو',\n },\n pt: {\n name: 'Portuguese',\n nativeName: 'Português',\n },\n qu: {\n name: 'Quechua',\n nativeName: 'Runa Simi',\n },\n rm: {\n name: 'Romansh',\n nativeName: 'rumantsch grischun',\n },\n rn: {\n name: 'Kirundi',\n nativeName: 'Ikirundi',\n },\n ro: {\n name: 'Romanian',\n nativeName: 'Română',\n },\n ru: {\n name: 'Russian',\n nativeName: 'Русский',\n },\n rw: {\n name: 'Kinyarwanda',\n nativeName: 'Ikinyarwanda',\n },\n sa: {\n name: 'Sanskrit',\n nativeName: 'संस्कृतम्',\n },\n sc: {\n name: 'Sardinian',\n nativeName: 'sardu',\n },\n sd: {\n name: 'Sindhi',\n nativeName: 'सिन्धी',\n },\n se: {\n name: 'Northern Sami',\n nativeName: 'Davvisámegiella',\n },\n sg: {\n name: 'Sango',\n nativeName: 'yângâ tî sängö',\n },\n si: {\n name: 'Sinhala',\n nativeName: 'සිංහල',\n },\n sk: {\n name: 'Slovak',\n nativeName: 'slovenčina',\n },\n sl: {\n name: 'Slovenian',\n nativeName: 'slovenščina',\n },\n sm: {\n name: 'Samoan',\n nativeName: \"gagana fa'a Samoa\",\n },\n sn: {\n name: 'Shona',\n nativeName: 'chiShona',\n },\n so: {\n name: 'Somali',\n nativeName: 'Soomaaliga',\n },\n sq: {\n name: 'Albanian',\n nativeName: 'Shqip',\n },\n sr: {\n name: 'Serbian',\n nativeName: 'српски језик',\n },\n ss: {\n name: 'Swati',\n nativeName: 'SiSwati',\n },\n st: {\n name: 'Southern Sotho',\n nativeName: 'Sesotho',\n },\n su: {\n name: 'Sundanese',\n nativeName: 'Basa Sunda',\n },\n sv: {\n name: 'Swedish',\n nativeName: 'Svenska',\n },\n sw: {\n name: 'Swahili',\n nativeName: 'Kiswahili',\n },\n ta: {\n name: 'Tamil',\n nativeName: 'தமிழ்',\n },\n te: {\n name: 'Telugu',\n nativeName: 'తెలుగు',\n },\n tg: {\n name: 'Tajik',\n nativeName: 'тоҷикӣ',\n },\n th: {\n name: 'Thai',\n nativeName: 'ไทย',\n },\n ti: {\n name: 'Tigrinya',\n nativeName: 'ትግርኛ',\n },\n tk: {\n name: 'Turkmen',\n nativeName: 'Türkmençe',\n },\n tl: {\n name: 'Tagalog',\n nativeName: 'Wikang Tagalog',\n },\n tn: {\n name: 'Tswana',\n nativeName: 'Setswana',\n },\n to: {\n name: 'Tonga',\n nativeName: 'faka Tonga',\n },\n tr: {\n name: 'Turkish',\n nativeName: 'Türkçe',\n },\n ts: {\n name: 'Tsonga',\n nativeName: 'Xitsonga',\n },\n tt: {\n name: 'Tatar',\n nativeName: 'татар теле',\n },\n tw: {\n name: 'Twi',\n nativeName: 'Twi',\n },\n ty: {\n name: 'Tahitian',\n nativeName: 'Reo Tahiti',\n },\n ug: {\n name: 'Uyghur',\n nativeName: 'ئۇيغۇرچە‎',\n },\n uk: {\n name: 'Ukrainian',\n nativeName: 'Українська',\n },\n ur: {\n name: 'Urdu',\n nativeName: 'اردو',\n },\n uz: {\n name: 'Uzbek',\n nativeName: 'Ўзбек',\n },\n ve: {\n name: 'Venda',\n nativeName: 'Tshivenḓa',\n },\n vi: {\n name: 'Vietnamese',\n nativeName: 'Tiếng Việt',\n },\n vo: {\n name: 'Volapük',\n nativeName: 'Volapük',\n },\n wa: {\n name: 'Walloon',\n nativeName: 'walon',\n },\n wo: {\n name: 'Wolof',\n nativeName: 'Wollof',\n },\n xh: {\n name: 'Xhosa',\n nativeName: 'isiXhosa',\n },\n yi: {\n name: 'Yiddish',\n nativeName: 'ייִדיש',\n },\n yo: {\n name: 'Yoruba',\n nativeName: 'Yorùbá',\n },\n za: {\n name: 'Zhuang',\n nativeName: 'Saɯ cueŋƅ',\n },\n zh: {\n name: 'Chinese',\n nativeName: '中文',\n },\n zu: {\n name: 'Zulu',\n nativeName: 'isiZulu',\n },\n};\n\nexport default LANGUAGES_LIST;\n","import LANGUAGES_LIST from './data';\n\nexport default class ISO6391 {\n static getLanguages(codes = []) {\n return codes.map(code => ({\n code,\n name: ISO6391.getName(code),\n nativeName: ISO6391.getNativeName(code),\n }));\n }\n\n static getName(code) {\n return ISO6391.validate(code) ? LANGUAGES_LIST[code].name : '';\n }\n\n static getAllNames() {\n return Object.values(LANGUAGES_LIST).map(l => l.name);\n }\n\n static getNativeName(code) {\n return ISO6391.validate(code) ? LANGUAGES_LIST[code].nativeName : '';\n }\n\n static getAllNativeNames() {\n return Object.values(LANGUAGES_LIST).map(l => l.nativeName);\n }\n\n static getCode(name) {\n const code = Object.keys(LANGUAGES_LIST).find(code => {\n const language = LANGUAGES_LIST[code];\n\n return (\n language.name.toLowerCase() === name.toLowerCase() ||\n language.nativeName.toLowerCase() === name.toLowerCase()\n );\n });\n return code || '';\n }\n\n static getAllCodes() {\n return Object.keys(LANGUAGES_LIST);\n }\n\n static validate(code) {\n return LANGUAGES_LIST.hasOwnProperty(code);\n }\n}\n","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","var copyArray = require('./_copyArray'),\n shuffleSelf = require('./_shuffleSelf');\n\n/**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n}\n\nmodule.exports = arrayShuffle;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","var baseUnset = require('./_baseUnset'),\n isIndex = require('./_isIndex');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nmodule.exports = basePullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nmodule.exports = baseRandom;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","var shuffleSelf = require('./_shuffleSelf'),\n values = require('./values');\n\n/**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction baseShuffle(collection) {\n return shuffleSelf(values(collection));\n}\n\nmodule.exports = baseShuffle;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nmodule.exports = charsEndIndex;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nmodule.exports = charsStartIndex;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseRandom = require('./_baseRandom');\n\n/**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\nfunction shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n}\n\nmodule.exports = shuffleSelf;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map HTML entities to characters. */\nvar htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\"\n};\n\n/**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\nvar unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\nmodule.exports = unescapeHtmlChar;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","var arrayPush = require('./_arrayPush'),\n baseFlatten = require('./_baseFlatten'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray');\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nmodule.exports = concat;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","module.exports = require('./forEach');\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nmodule.exports = findLastIndex;\n","module.exports = require('./head');\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nmodule.exports = keyBy;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","var baseExtremum = require('./_baseExtremum'),\n baseIteratee = require('./_baseIteratee'),\n baseLt = require('./_baseLt');\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nmodule.exports = minBy;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var arrayReduce = require('./_arrayReduce'),\n baseEach = require('./_baseEach'),\n baseIteratee = require('./_baseIteratee'),\n baseReduce = require('./_baseReduce'),\n isArray = require('./isArray');\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n negate = require('./negate');\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nmodule.exports = reject;\n","var baseIteratee = require('./_baseIteratee'),\n basePullAt = require('./_basePullAt');\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nmodule.exports = remove;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","var arrayShuffle = require('./_arrayShuffle'),\n baseShuffle = require('./_baseShuffle'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\nfunction shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n}\n\nmodule.exports = shuffle;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nmodule.exports = slice;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseIteratee = require('./_baseIteratee'),\n baseSum = require('./_baseSum');\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nmodule.exports = sumBy;\n","var baseSlice = require('./_baseSlice'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\nfunction take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nmodule.exports = take;\n","var baseSlice = require('./_baseSlice'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\nfunction takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nmodule.exports = takeRight;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseToString = require('./_baseToString'),\n baseTrim = require('./_baseTrim'),\n castSlice = require('./_castSlice'),\n charsEndIndex = require('./_charsEndIndex'),\n charsStartIndex = require('./_charsStartIndex'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nmodule.exports = trim;\n","var toString = require('./toString'),\n unescapeHtmlChar = require('./_unescapeHtmlChar');\n\n/** Used to match HTML entities and HTML characters. */\nvar reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source);\n\n/**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, &amp; pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n}\n\nmodule.exports = unescape;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","/*! lozad.js - v1.16.0 - 2020-09-06\n* https://github.com/ApoorvSaxena/lozad.js\n* Copyright (c) 2020 Apoorv Saxena; Licensed MIT */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):t.lozad=e()}(this,function(){\"use strict\";\n/**\n * Detect IE browser\n * @const {boolean}\n * @private\n */var g=\"undefined\"!=typeof document&&document.documentMode,f={rootMargin:\"0px\",threshold:0,load:function(t){if(\"picture\"===t.nodeName.toLowerCase()){var e=t.querySelector(\"img\"),r=!1;null===e&&(e=document.createElement(\"img\"),r=!0),g&&t.getAttribute(\"data-iesrc\")&&(e.src=t.getAttribute(\"data-iesrc\")),t.getAttribute(\"data-alt\")&&(e.alt=t.getAttribute(\"data-alt\")),r&&t.append(e)}if(\"video\"===t.nodeName.toLowerCase()&&!t.getAttribute(\"data-src\")&&t.children){for(var a=t.children,o=void 0,i=0;i<=a.length-1;i++)(o=a[i].getAttribute(\"data-src\"))&&(a[i].src=o);t.load()}t.getAttribute(\"data-poster\")&&(t.poster=t.getAttribute(\"data-poster\")),t.getAttribute(\"data-src\")&&(t.src=t.getAttribute(\"data-src\")),t.getAttribute(\"data-srcset\")&&t.setAttribute(\"srcset\",t.getAttribute(\"data-srcset\"));var n=\",\";if(t.getAttribute(\"data-background-delimiter\")&&(n=t.getAttribute(\"data-background-delimiter\")),t.getAttribute(\"data-background-image\"))t.style.backgroundImage=\"url('\"+t.getAttribute(\"data-background-image\").split(n).join(\"'),url('\")+\"')\";else if(t.getAttribute(\"data-background-image-set\")){var d=t.getAttribute(\"data-background-image-set\").split(n),u=d[0].substr(0,d[0].indexOf(\" \"))||d[0];// Substring before ... 1x\nu=-1===u.indexOf(\"url(\")?\"url(\"+u+\")\":u,1===d.length?t.style.backgroundImage=u:t.setAttribute(\"style\",(t.getAttribute(\"style\")||\"\")+\"background-image: \"+u+\"; background-image: -webkit-image-set(\"+d+\"); background-image: image-set(\"+d+\")\")}t.getAttribute(\"data-toggle-class\")&&t.classList.toggle(t.getAttribute(\"data-toggle-class\"))},loaded:function(){}};function A(t){t.setAttribute(\"data-loaded\",!0)}var m=function(t){return\"true\"===t.getAttribute(\"data-loaded\")},v=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:document;return t instanceof Element?[t]:t instanceof NodeList?t:e.querySelectorAll(t)};return function(){var r,a,o=0<arguments.length&&void 0!==arguments[0]?arguments[0]:\".lozad\",t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=Object.assign({},f,t),i=e.root,n=e.rootMargin,d=e.threshold,u=e.load,g=e.loaded,s=void 0;\"undefined\"!=typeof window&&window.IntersectionObserver&&(s=new IntersectionObserver((r=u,a=g,function(t,e){t.forEach(function(t){(0<t.intersectionRatio||t.isIntersecting)&&(e.unobserve(t.target),m(t.target)||(r(t.target),A(t.target),a(t.target)))})}),{root:i,rootMargin:n,threshold:d}));for(var c,l=v(o,i),b=0;b<l.length;b++)(c=l[b]).getAttribute(\"data-placeholder-background\")&&(c.style.background=c.getAttribute(\"data-placeholder-background\"));return{observe:function(){for(var t=v(o,i),e=0;e<t.length;e++)m(t[e])||(s?s.observe(t[e]):(u(t[e]),A(t[e]),g(t[e])))},triggerLoad:function(t){m(t)||(u(t),A(t),g(t))},observer:s}}});\n","'use strict';\n\nvar qs = require('querystring')\n , url = require('url')\n , xtend = require('xtend');\n\nconst PARSE_LINK_HEADER_MAXLEN = parseInt(process.env.PARSE_LINK_HEADER_MAXLEN) || 2000;\nconst PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED = process.env.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED != null\n\nfunction hasRel(x) {\n return x && x.rel;\n}\n\nfunction intoRels (acc, x) {\n function splitRel (rel) {\n acc[rel] = xtend(x, { rel: rel });\n }\n\n x.rel.split(/\\s+/).forEach(splitRel);\n\n return acc;\n}\n\nfunction createObjects (acc, p) {\n // rel=\"next\" => 1: rel 2: next\n var m = p.match(/\\s*(.+)\\s*=\\s*\"?([^\"]+)\"?/)\n if (m) acc[m[1]] = m[2];\n return acc;\n}\n\nfunction parseLink(link) {\n try {\n var m = link.match(/<?([^>]*)>(.*)/)\n , linkUrl = m[1]\n , parts = m[2].split(';')\n , parsedUrl = url.parse(linkUrl)\n , qry = qs.parse(parsedUrl.query);\n\n parts.shift();\n\n var info = parts\n .reduce(createObjects, {});\n \n info = xtend(qry, info);\n info.url = linkUrl;\n return info;\n } catch (e) {\n return null;\n }\n}\n\nfunction checkHeader(linkHeader){\n if (!linkHeader) return false;\n\n if (linkHeader.length > PARSE_LINK_HEADER_MAXLEN) {\n if (PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED) {\n throw new Error('Input string too long, it should be under ' + PARSE_LINK_HEADER_MAXLEN + ' characters.');\n } else {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = function (linkHeader) {\n if (!checkHeader(linkHeader)) return null;\n\n return linkHeader.split(/,\\s*</)\n .map(parseLink)\n .filter(hasRel)\n .reduce(intoRels, {});\n};\n","// js/phoenix/utils.js\nvar closure = (value) => {\n if (typeof value === \"function\") {\n return value;\n } else {\n let closure2 = function() {\n return value;\n };\n return closure2;\n }\n};\n\n// js/phoenix/constants.js\nvar globalSelf = typeof self !== \"undefined\" ? self : null;\nvar phxWindow = typeof window !== \"undefined\" ? window : null;\nvar global = globalSelf || phxWindow || void 0;\nvar DEFAULT_VSN = \"2.0.0\";\nvar SOCKET_STATES = { connecting: 0, open: 1, closing: 2, closed: 3 };\nvar DEFAULT_TIMEOUT = 1e4;\nvar WS_CLOSE_NORMAL = 1e3;\nvar CHANNEL_STATES = {\n closed: \"closed\",\n errored: \"errored\",\n joined: \"joined\",\n joining: \"joining\",\n leaving: \"leaving\"\n};\nvar CHANNEL_EVENTS = {\n close: \"phx_close\",\n error: \"phx_error\",\n join: \"phx_join\",\n reply: \"phx_reply\",\n leave: \"phx_leave\"\n};\nvar TRANSPORTS = {\n longpoll: \"longpoll\",\n websocket: \"websocket\"\n};\nvar XHR_STATES = {\n complete: 4\n};\n\n// js/phoenix/push.js\nvar Push = class {\n constructor(channel, event, payload, timeout) {\n this.channel = channel;\n this.event = event;\n this.payload = payload || function() {\n return {};\n };\n this.receivedResp = null;\n this.timeout = timeout;\n this.timeoutTimer = null;\n this.recHooks = [];\n this.sent = false;\n }\n resend(timeout) {\n this.timeout = timeout;\n this.reset();\n this.send();\n }\n send() {\n if (this.hasReceived(\"timeout\")) {\n return;\n }\n this.startTimeout();\n this.sent = true;\n this.channel.socket.push({\n topic: this.channel.topic,\n event: this.event,\n payload: this.payload(),\n ref: this.ref,\n join_ref: this.channel.joinRef()\n });\n }\n receive(status, callback) {\n if (this.hasReceived(status)) {\n callback(this.receivedResp.response);\n }\n this.recHooks.push({ status, callback });\n return this;\n }\n reset() {\n this.cancelRefEvent();\n this.ref = null;\n this.refEvent = null;\n this.receivedResp = null;\n this.sent = false;\n }\n matchReceive({ status, response, _ref }) {\n this.recHooks.filter((h) => h.status === status).forEach((h) => h.callback(response));\n }\n cancelRefEvent() {\n if (!this.refEvent) {\n return;\n }\n this.channel.off(this.refEvent);\n }\n cancelTimeout() {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = null;\n }\n startTimeout() {\n if (this.timeoutTimer) {\n this.cancelTimeout();\n }\n this.ref = this.channel.socket.makeRef();\n this.refEvent = this.channel.replyEventName(this.ref);\n this.channel.on(this.refEvent, (payload) => {\n this.cancelRefEvent();\n this.cancelTimeout();\n this.receivedResp = payload;\n this.matchReceive(payload);\n });\n this.timeoutTimer = setTimeout(() => {\n this.trigger(\"timeout\", {});\n }, this.timeout);\n }\n hasReceived(status) {\n return this.receivedResp && this.receivedResp.status === status;\n }\n trigger(status, response) {\n this.channel.trigger(this.refEvent, { status, response });\n }\n};\n\n// js/phoenix/timer.js\nvar Timer = class {\n constructor(callback, timerCalc) {\n this.callback = callback;\n this.timerCalc = timerCalc;\n this.timer = null;\n this.tries = 0;\n }\n reset() {\n this.tries = 0;\n clearTimeout(this.timer);\n }\n scheduleTimeout() {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.tries = this.tries + 1;\n this.callback();\n }, this.timerCalc(this.tries + 1));\n }\n};\n\n// js/phoenix/channel.js\nvar Channel = class {\n constructor(topic, params, socket) {\n this.state = CHANNEL_STATES.closed;\n this.topic = topic;\n this.params = closure(params || {});\n this.socket = socket;\n this.bindings = [];\n this.bindingRef = 0;\n this.timeout = this.socket.timeout;\n this.joinedOnce = false;\n this.joinPush = new Push(this, CHANNEL_EVENTS.join, this.params, this.timeout);\n this.pushBuffer = [];\n this.stateChangeRefs = [];\n this.rejoinTimer = new Timer(() => {\n if (this.socket.isConnected()) {\n this.rejoin();\n }\n }, this.socket.rejoinAfterMs);\n this.stateChangeRefs.push(this.socket.onError(() => this.rejoinTimer.reset()));\n this.stateChangeRefs.push(this.socket.onOpen(() => {\n this.rejoinTimer.reset();\n if (this.isErrored()) {\n this.rejoin();\n }\n }));\n this.joinPush.receive(\"ok\", () => {\n this.state = CHANNEL_STATES.joined;\n this.rejoinTimer.reset();\n this.pushBuffer.forEach((pushEvent) => pushEvent.send());\n this.pushBuffer = [];\n });\n this.joinPush.receive(\"error\", () => {\n this.state = CHANNEL_STATES.errored;\n if (this.socket.isConnected()) {\n this.rejoinTimer.scheduleTimeout();\n }\n });\n this.onClose(() => {\n this.rejoinTimer.reset();\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `close ${this.topic} ${this.joinRef()}`);\n this.state = CHANNEL_STATES.closed;\n this.socket.remove(this);\n });\n this.onError((reason) => {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `error ${this.topic}`, reason);\n if (this.isJoining()) {\n this.joinPush.reset();\n }\n this.state = CHANNEL_STATES.errored;\n if (this.socket.isConnected()) {\n this.rejoinTimer.scheduleTimeout();\n }\n });\n this.joinPush.receive(\"timeout\", () => {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `timeout ${this.topic} (${this.joinRef()})`, this.joinPush.timeout);\n let leavePush = new Push(this, CHANNEL_EVENTS.leave, closure({}), this.timeout);\n leavePush.send();\n this.state = CHANNEL_STATES.errored;\n this.joinPush.reset();\n if (this.socket.isConnected()) {\n this.rejoinTimer.scheduleTimeout();\n }\n });\n this.on(CHANNEL_EVENTS.reply, (payload, ref) => {\n this.trigger(this.replyEventName(ref), payload);\n });\n }\n join(timeout = this.timeout) {\n if (this.joinedOnce) {\n throw new Error(\"tried to join multiple times. 'join' can only be called a single time per channel instance\");\n } else {\n this.timeout = timeout;\n this.joinedOnce = true;\n this.rejoin();\n return this.joinPush;\n }\n }\n onClose(callback) {\n this.on(CHANNEL_EVENTS.close, callback);\n }\n onError(callback) {\n return this.on(CHANNEL_EVENTS.error, (reason) => callback(reason));\n }\n on(event, callback) {\n let ref = this.bindingRef++;\n this.bindings.push({ event, ref, callback });\n return ref;\n }\n off(event, ref) {\n this.bindings = this.bindings.filter((bind) => {\n return !(bind.event === event && (typeof ref === \"undefined\" || ref === bind.ref));\n });\n }\n canPush() {\n return this.socket.isConnected() && this.isJoined();\n }\n push(event, payload, timeout = this.timeout) {\n payload = payload || {};\n if (!this.joinedOnce) {\n throw new Error(`tried to push '${event}' to '${this.topic}' before joining. Use channel.join() before pushing events`);\n }\n let pushEvent = new Push(this, event, function() {\n return payload;\n }, timeout);\n if (this.canPush()) {\n pushEvent.send();\n } else {\n pushEvent.startTimeout();\n this.pushBuffer.push(pushEvent);\n }\n return pushEvent;\n }\n leave(timeout = this.timeout) {\n this.rejoinTimer.reset();\n this.joinPush.cancelTimeout();\n this.state = CHANNEL_STATES.leaving;\n let onClose = () => {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", `leave ${this.topic}`);\n this.trigger(CHANNEL_EVENTS.close, \"leave\");\n };\n let leavePush = new Push(this, CHANNEL_EVENTS.leave, closure({}), timeout);\n leavePush.receive(\"ok\", () => onClose()).receive(\"timeout\", () => onClose());\n leavePush.send();\n if (!this.canPush()) {\n leavePush.trigger(\"ok\", {});\n }\n return leavePush;\n }\n onMessage(_event, payload, _ref) {\n return payload;\n }\n isMember(topic, event, payload, joinRef) {\n if (this.topic !== topic) {\n return false;\n }\n if (joinRef && joinRef !== this.joinRef()) {\n if (this.socket.hasLogger())\n this.socket.log(\"channel\", \"dropping outdated message\", { topic, event, payload, joinRef });\n return false;\n } else {\n return true;\n }\n }\n joinRef() {\n return this.joinPush.ref;\n }\n rejoin(timeout = this.timeout) {\n if (this.isLeaving()) {\n return;\n }\n this.socket.leaveOpenTopic(this.topic);\n this.state = CHANNEL_STATES.joining;\n this.joinPush.resend(timeout);\n }\n trigger(event, payload, ref, joinRef) {\n let handledPayload = this.onMessage(event, payload, ref, joinRef);\n if (payload && !handledPayload) {\n throw new Error(\"channel onMessage callbacks must return the payload, modified or unmodified\");\n }\n let eventBindings = this.bindings.filter((bind) => bind.event === event);\n for (let i = 0; i < eventBindings.length; i++) {\n let bind = eventBindings[i];\n bind.callback(handledPayload, ref, joinRef || this.joinRef());\n }\n }\n replyEventName(ref) {\n return `chan_reply_${ref}`;\n }\n isClosed() {\n return this.state === CHANNEL_STATES.closed;\n }\n isErrored() {\n return this.state === CHANNEL_STATES.errored;\n }\n isJoined() {\n return this.state === CHANNEL_STATES.joined;\n }\n isJoining() {\n return this.state === CHANNEL_STATES.joining;\n }\n isLeaving() {\n return this.state === CHANNEL_STATES.leaving;\n }\n};\n\n// js/phoenix/ajax.js\nvar Ajax = class {\n static request(method, endPoint, accept, body, timeout, ontimeout, callback) {\n if (global.XDomainRequest) {\n let req = new global.XDomainRequest();\n this.xdomainRequest(req, method, endPoint, body, timeout, ontimeout, callback);\n } else {\n let req = new global.XMLHttpRequest();\n this.xhrRequest(req, method, endPoint, accept, body, timeout, ontimeout, callback);\n }\n }\n static xdomainRequest(req, method, endPoint, body, timeout, ontimeout, callback) {\n req.timeout = timeout;\n req.open(method, endPoint);\n req.onload = () => {\n let response = this.parseJSON(req.responseText);\n callback && callback(response);\n };\n if (ontimeout) {\n req.ontimeout = ontimeout;\n }\n req.onprogress = () => {\n };\n req.send(body);\n }\n static xhrRequest(req, method, endPoint, accept, body, timeout, ontimeout, callback) {\n req.open(method, endPoint, true);\n req.timeout = timeout;\n req.setRequestHeader(\"Content-Type\", accept);\n req.onerror = () => {\n callback && callback(null);\n };\n req.onreadystatechange = () => {\n if (req.readyState === XHR_STATES.complete && callback) {\n let response = this.parseJSON(req.responseText);\n callback(response);\n }\n };\n if (ontimeout) {\n req.ontimeout = ontimeout;\n }\n req.send(body);\n }\n static parseJSON(resp) {\n if (!resp || resp === \"\") {\n return null;\n }\n try {\n return JSON.parse(resp);\n } catch (e) {\n console && console.log(\"failed to parse JSON response\", resp);\n return null;\n }\n }\n static serialize(obj, parentKey) {\n let queryStr = [];\n for (var key in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n continue;\n }\n let paramKey = parentKey ? `${parentKey}[${key}]` : key;\n let paramVal = obj[key];\n if (typeof paramVal === \"object\") {\n queryStr.push(this.serialize(paramVal, paramKey));\n } else {\n queryStr.push(encodeURIComponent(paramKey) + \"=\" + encodeURIComponent(paramVal));\n }\n }\n return queryStr.join(\"&\");\n }\n static appendParams(url, params) {\n if (Object.keys(params).length === 0) {\n return url;\n }\n let prefix = url.match(/\\?/) ? \"&\" : \"?\";\n return `${url}${prefix}${this.serialize(params)}`;\n }\n};\n\n// js/phoenix/longpoll.js\nvar LongPoll = class {\n constructor(endPoint) {\n this.endPoint = null;\n this.token = null;\n this.skipHeartbeat = true;\n this.onopen = function() {\n };\n this.onerror = function() {\n };\n this.onmessage = function() {\n };\n this.onclose = function() {\n };\n this.pollEndpoint = this.normalizeEndpoint(endPoint);\n this.readyState = SOCKET_STATES.connecting;\n this.poll();\n }\n normalizeEndpoint(endPoint) {\n return endPoint.replace(\"ws://\", \"http://\").replace(\"wss://\", \"https://\").replace(new RegExp(\"(.*)/\" + TRANSPORTS.websocket), \"$1/\" + TRANSPORTS.longpoll);\n }\n endpointURL() {\n return Ajax.appendParams(this.pollEndpoint, { token: this.token });\n }\n closeAndRetry() {\n this.close();\n this.readyState = SOCKET_STATES.connecting;\n }\n ontimeout() {\n this.onerror(\"timeout\");\n this.closeAndRetry();\n }\n poll() {\n if (!(this.readyState === SOCKET_STATES.open || this.readyState === SOCKET_STATES.connecting)) {\n return;\n }\n Ajax.request(\"GET\", this.endpointURL(), \"application/json\", null, this.timeout, this.ontimeout.bind(this), (resp) => {\n if (resp) {\n var { status, token, messages } = resp;\n this.token = token;\n } else {\n status = 0;\n }\n switch (status) {\n case 200:\n messages.forEach((msg) => {\n setTimeout(() => {\n this.onmessage({ data: msg });\n }, 0);\n });\n this.poll();\n break;\n case 204:\n this.poll();\n break;\n case 410:\n this.readyState = SOCKET_STATES.open;\n this.onopen();\n this.poll();\n break;\n case 403:\n this.onerror();\n this.close();\n break;\n case 0:\n case 500:\n this.onerror();\n this.closeAndRetry();\n break;\n default:\n throw new Error(`unhandled poll status ${status}`);\n }\n });\n }\n send(body) {\n Ajax.request(\"POST\", this.endpointURL(), \"application/json\", body, this.timeout, this.onerror.bind(this, \"timeout\"), (resp) => {\n if (!resp || resp.status !== 200) {\n this.onerror(resp && resp.status);\n this.closeAndRetry();\n }\n });\n }\n close(_code, _reason) {\n this.readyState = SOCKET_STATES.closed;\n this.onclose();\n }\n};\n\n// js/phoenix/presence.js\nvar Presence = class {\n constructor(channel, opts = {}) {\n let events = opts.events || { state: \"presence_state\", diff: \"presence_diff\" };\n this.state = {};\n this.pendingDiffs = [];\n this.channel = channel;\n this.joinRef = null;\n this.caller = {\n onJoin: function() {\n },\n onLeave: function() {\n },\n onSync: function() {\n }\n };\n this.channel.on(events.state, (newState) => {\n let { onJoin, onLeave, onSync } = this.caller;\n this.joinRef = this.channel.joinRef();\n this.state = Presence.syncState(this.state, newState, onJoin, onLeave);\n this.pendingDiffs.forEach((diff) => {\n this.state = Presence.syncDiff(this.state, diff, onJoin, onLeave);\n });\n this.pendingDiffs = [];\n onSync();\n });\n this.channel.on(events.diff, (diff) => {\n let { onJoin, onLeave, onSync } = this.caller;\n if (this.inPendingSyncState()) {\n this.pendingDiffs.push(diff);\n } else {\n this.state = Presence.syncDiff(this.state, diff, onJoin, onLeave);\n onSync();\n }\n });\n }\n onJoin(callback) {\n this.caller.onJoin = callback;\n }\n onLeave(callback) {\n this.caller.onLeave = callback;\n }\n onSync(callback) {\n this.caller.onSync = callback;\n }\n list(by) {\n return Presence.list(this.state, by);\n }\n inPendingSyncState() {\n return !this.joinRef || this.joinRef !== this.channel.joinRef();\n }\n static syncState(currentState, newState, onJoin, onLeave) {\n let state = this.clone(currentState);\n let joins = {};\n let leaves = {};\n this.map(state, (key, presence) => {\n if (!newState[key]) {\n leaves[key] = presence;\n }\n });\n this.map(newState, (key, newPresence) => {\n let currentPresence = state[key];\n if (currentPresence) {\n let newRefs = newPresence.metas.map((m) => m.phx_ref);\n let curRefs = currentPresence.metas.map((m) => m.phx_ref);\n let joinedMetas = newPresence.metas.filter((m) => curRefs.indexOf(m.phx_ref) < 0);\n let leftMetas = currentPresence.metas.filter((m) => newRefs.indexOf(m.phx_ref) < 0);\n if (joinedMetas.length > 0) {\n joins[key] = newPresence;\n joins[key].metas = joinedMetas;\n }\n if (leftMetas.length > 0) {\n leaves[key] = this.clone(currentPresence);\n leaves[key].metas = leftMetas;\n }\n } else {\n joins[key] = newPresence;\n }\n });\n return this.syncDiff(state, { joins, leaves }, onJoin, onLeave);\n }\n static syncDiff(state, diff, onJoin, onLeave) {\n let { joins, leaves } = this.clone(diff);\n if (!onJoin) {\n onJoin = function() {\n };\n }\n if (!onLeave) {\n onLeave = function() {\n };\n }\n this.map(joins, (key, newPresence) => {\n let currentPresence = state[key];\n state[key] = this.clone(newPresence);\n if (currentPresence) {\n let joinedRefs = state[key].metas.map((m) => m.phx_ref);\n let curMetas = currentPresence.metas.filter((m) => joinedRefs.indexOf(m.phx_ref) < 0);\n state[key].metas.unshift(...curMetas);\n }\n onJoin(key, currentPresence, newPresence);\n });\n this.map(leaves, (key, leftPresence) => {\n let currentPresence = state[key];\n if (!currentPresence) {\n return;\n }\n let refsToRemove = leftPresence.metas.map((m) => m.phx_ref);\n currentPresence.metas = currentPresence.metas.filter((p) => {\n return refsToRemove.indexOf(p.phx_ref) < 0;\n });\n onLeave(key, currentPresence, leftPresence);\n if (currentPresence.metas.length === 0) {\n delete state[key];\n }\n });\n return state;\n }\n static list(presences, chooser) {\n if (!chooser) {\n chooser = function(key, pres) {\n return pres;\n };\n }\n return this.map(presences, (key, presence) => {\n return chooser(key, presence);\n });\n }\n static map(obj, func) {\n return Object.getOwnPropertyNames(obj).map((key) => func(key, obj[key]));\n }\n static clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n};\n\n// js/phoenix/serializer.js\nvar serializer_default = {\n HEADER_LENGTH: 1,\n META_LENGTH: 4,\n KINDS: { push: 0, reply: 1, broadcast: 2 },\n encode(msg, callback) {\n if (msg.payload.constructor === ArrayBuffer) {\n return callback(this.binaryEncode(msg));\n } else {\n let payload = [msg.join_ref, msg.ref, msg.topic, msg.event, msg.payload];\n return callback(JSON.stringify(payload));\n }\n },\n decode(rawPayload, callback) {\n if (rawPayload.constructor === ArrayBuffer) {\n return callback(this.binaryDecode(rawPayload));\n } else {\n let [join_ref, ref, topic, event, payload] = JSON.parse(rawPayload);\n return callback({ join_ref, ref, topic, event, payload });\n }\n },\n binaryEncode(message) {\n let { join_ref, ref, event, topic, payload } = message;\n let metaLength = this.META_LENGTH + join_ref.length + ref.length + topic.length + event.length;\n let header = new ArrayBuffer(this.HEADER_LENGTH + metaLength);\n let view = new DataView(header);\n let offset = 0;\n view.setUint8(offset++, this.KINDS.push);\n view.setUint8(offset++, join_ref.length);\n view.setUint8(offset++, ref.length);\n view.setUint8(offset++, topic.length);\n view.setUint8(offset++, event.length);\n Array.from(join_ref, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n Array.from(ref, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n Array.from(topic, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n Array.from(event, (char) => view.setUint8(offset++, char.charCodeAt(0)));\n var combined = new Uint8Array(header.byteLength + payload.byteLength);\n combined.set(new Uint8Array(header), 0);\n combined.set(new Uint8Array(payload), header.byteLength);\n return combined.buffer;\n },\n binaryDecode(buffer) {\n let view = new DataView(buffer);\n let kind = view.getUint8(0);\n let decoder = new TextDecoder();\n switch (kind) {\n case this.KINDS.push:\n return this.decodePush(buffer, view, decoder);\n case this.KINDS.reply:\n return this.decodeReply(buffer, view, decoder);\n case this.KINDS.broadcast:\n return this.decodeBroadcast(buffer, view, decoder);\n }\n },\n decodePush(buffer, view, decoder) {\n let joinRefSize = view.getUint8(1);\n let topicSize = view.getUint8(2);\n let eventSize = view.getUint8(3);\n let offset = this.HEADER_LENGTH + this.META_LENGTH - 1;\n let joinRef = decoder.decode(buffer.slice(offset, offset + joinRefSize));\n offset = offset + joinRefSize;\n let topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n let event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n let data = buffer.slice(offset, buffer.byteLength);\n return { join_ref: joinRef, ref: null, topic, event, payload: data };\n },\n decodeReply(buffer, view, decoder) {\n let joinRefSize = view.getUint8(1);\n let refSize = view.getUint8(2);\n let topicSize = view.getUint8(3);\n let eventSize = view.getUint8(4);\n let offset = this.HEADER_LENGTH + this.META_LENGTH;\n let joinRef = decoder.decode(buffer.slice(offset, offset + joinRefSize));\n offset = offset + joinRefSize;\n let ref = decoder.decode(buffer.slice(offset, offset + refSize));\n offset = offset + refSize;\n let topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n let event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n let data = buffer.slice(offset, buffer.byteLength);\n let payload = { status: event, response: data };\n return { join_ref: joinRef, ref, topic, event: CHANNEL_EVENTS.reply, payload };\n },\n decodeBroadcast(buffer, view, decoder) {\n let topicSize = view.getUint8(1);\n let eventSize = view.getUint8(2);\n let offset = this.HEADER_LENGTH + 2;\n let topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n let event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n let data = buffer.slice(offset, buffer.byteLength);\n return { join_ref: null, ref: null, topic, event, payload: data };\n }\n};\n\n// js/phoenix/socket.js\nvar Socket = class {\n constructor(endPoint, opts = {}) {\n this.stateChangeCallbacks = { open: [], close: [], error: [], message: [] };\n this.channels = [];\n this.sendBuffer = [];\n this.ref = 0;\n this.timeout = opts.timeout || DEFAULT_TIMEOUT;\n this.transport = opts.transport || global.WebSocket || LongPoll;\n this.establishedConnections = 0;\n this.defaultEncoder = serializer_default.encode.bind(serializer_default);\n this.defaultDecoder = serializer_default.decode.bind(serializer_default);\n this.closeWasClean = false;\n this.binaryType = opts.binaryType || \"arraybuffer\";\n this.connectClock = 1;\n if (this.transport !== LongPoll) {\n this.encode = opts.encode || this.defaultEncoder;\n this.decode = opts.decode || this.defaultDecoder;\n } else {\n this.encode = this.defaultEncoder;\n this.decode = this.defaultDecoder;\n }\n let awaitingConnectionOnPageShow = null;\n if (phxWindow && phxWindow.addEventListener) {\n phxWindow.addEventListener(\"pagehide\", (_e) => {\n if (this.conn) {\n this.disconnect();\n awaitingConnectionOnPageShow = this.connectClock;\n }\n });\n phxWindow.addEventListener(\"pageshow\", (_e) => {\n if (awaitingConnectionOnPageShow === this.connectClock) {\n awaitingConnectionOnPageShow = null;\n this.connect();\n }\n });\n }\n this.heartbeatIntervalMs = opts.heartbeatIntervalMs || 3e4;\n this.rejoinAfterMs = (tries) => {\n if (opts.rejoinAfterMs) {\n return opts.rejoinAfterMs(tries);\n } else {\n return [1e3, 2e3, 5e3][tries - 1] || 1e4;\n }\n };\n this.reconnectAfterMs = (tries) => {\n if (opts.reconnectAfterMs) {\n return opts.reconnectAfterMs(tries);\n } else {\n return [10, 50, 100, 150, 200, 250, 500, 1e3, 2e3][tries - 1] || 5e3;\n }\n };\n this.logger = opts.logger || null;\n this.longpollerTimeout = opts.longpollerTimeout || 2e4;\n this.params = closure(opts.params || {});\n this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`;\n this.vsn = opts.vsn || DEFAULT_VSN;\n this.heartbeatTimer = null;\n this.pendingHeartbeatRef = null;\n this.reconnectTimer = new Timer(() => {\n this.teardown(() => this.connect());\n }, this.reconnectAfterMs);\n }\n replaceTransport(newTransport) {\n this.disconnect();\n this.transport = newTransport;\n }\n protocol() {\n return location.protocol.match(/^https/) ? \"wss\" : \"ws\";\n }\n endPointURL() {\n let uri = Ajax.appendParams(Ajax.appendParams(this.endPoint, this.params()), { vsn: this.vsn });\n if (uri.charAt(0) !== \"/\") {\n return uri;\n }\n if (uri.charAt(1) === \"/\") {\n return `${this.protocol()}:${uri}`;\n }\n return `${this.protocol()}://${location.host}${uri}`;\n }\n disconnect(callback, code, reason) {\n this.connectClock++;\n this.closeWasClean = true;\n this.reconnectTimer.reset();\n this.teardown(callback, code, reason);\n }\n connect(params) {\n this.connectClock++;\n if (params) {\n console && console.log(\"passing params to connect is deprecated. Instead pass :params to the Socket constructor\");\n this.params = closure(params);\n }\n if (this.conn) {\n return;\n }\n this.closeWasClean = false;\n this.conn = new this.transport(this.endPointURL());\n this.conn.binaryType = this.binaryType;\n this.conn.timeout = this.longpollerTimeout;\n this.conn.onopen = () => this.onConnOpen();\n this.conn.onerror = (error) => this.onConnError(error);\n this.conn.onmessage = (event) => this.onConnMessage(event);\n this.conn.onclose = (event) => this.onConnClose(event);\n }\n log(kind, msg, data) {\n this.logger(kind, msg, data);\n }\n hasLogger() {\n return this.logger !== null;\n }\n onOpen(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.open.push([ref, callback]);\n return ref;\n }\n onClose(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.close.push([ref, callback]);\n return ref;\n }\n onError(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.error.push([ref, callback]);\n return ref;\n }\n onMessage(callback) {\n let ref = this.makeRef();\n this.stateChangeCallbacks.message.push([ref, callback]);\n return ref;\n }\n onConnOpen() {\n if (this.hasLogger())\n this.log(\"transport\", `connected to ${this.endPointURL()}`);\n this.closeWasClean = false;\n this.establishedConnections++;\n this.flushSendBuffer();\n this.reconnectTimer.reset();\n this.resetHeartbeat();\n this.stateChangeCallbacks.open.forEach(([, callback]) => callback());\n }\n heartbeatTimeout() {\n if (this.pendingHeartbeatRef) {\n this.pendingHeartbeatRef = null;\n if (this.hasLogger()) {\n this.log(\"transport\", \"heartbeat timeout. Attempting to re-establish connection\");\n }\n this.abnormalClose(\"heartbeat timeout\");\n }\n }\n resetHeartbeat() {\n if (this.conn && this.conn.skipHeartbeat) {\n return;\n }\n this.pendingHeartbeatRef = null;\n clearTimeout(this.heartbeatTimer);\n setTimeout(() => this.sendHeartbeat(), this.heartbeatIntervalMs);\n }\n teardown(callback, code, reason) {\n if (!this.conn) {\n return callback && callback();\n }\n this.waitForBufferDone(() => {\n if (this.conn) {\n if (code) {\n this.conn.close(code, reason || \"\");\n } else {\n this.conn.close();\n }\n }\n this.waitForSocketClosed(() => {\n if (this.conn) {\n this.conn.onclose = function() {\n };\n this.conn = null;\n }\n callback && callback();\n });\n });\n }\n waitForBufferDone(callback, tries = 1) {\n if (tries === 5 || !this.conn || !this.conn.bufferedAmount) {\n callback();\n return;\n }\n setTimeout(() => {\n this.waitForBufferDone(callback, tries + 1);\n }, 150 * tries);\n }\n waitForSocketClosed(callback, tries = 1) {\n if (tries === 5 || !this.conn || this.conn.readyState === SOCKET_STATES.closed) {\n callback();\n return;\n }\n setTimeout(() => {\n this.waitForSocketClosed(callback, tries + 1);\n }, 150 * tries);\n }\n onConnClose(event) {\n if (this.hasLogger())\n this.log(\"transport\", \"close\", event);\n this.triggerChanError();\n clearTimeout(this.heartbeatTimer);\n if (!this.closeWasClean) {\n this.reconnectTimer.scheduleTimeout();\n }\n this.stateChangeCallbacks.close.forEach(([, callback]) => callback(event));\n }\n onConnError(error) {\n if (this.hasLogger())\n this.log(\"transport\", error);\n let transportBefore = this.transport;\n let establishedBefore = this.establishedConnections;\n this.stateChangeCallbacks.error.forEach(([, callback]) => {\n callback(error, transportBefore, establishedBefore);\n });\n if (transportBefore === this.transport || establishedBefore > 0) {\n this.triggerChanError();\n }\n }\n triggerChanError() {\n this.channels.forEach((channel) => {\n if (!(channel.isErrored() || channel.isLeaving() || channel.isClosed())) {\n channel.trigger(CHANNEL_EVENTS.error);\n }\n });\n }\n connectionState() {\n switch (this.conn && this.conn.readyState) {\n case SOCKET_STATES.connecting:\n return \"connecting\";\n case SOCKET_STATES.open:\n return \"open\";\n case SOCKET_STATES.closing:\n return \"closing\";\n default:\n return \"closed\";\n }\n }\n isConnected() {\n return this.connectionState() === \"open\";\n }\n remove(channel) {\n this.off(channel.stateChangeRefs);\n this.channels = this.channels.filter((c) => c.joinRef() !== channel.joinRef());\n }\n off(refs) {\n for (let key in this.stateChangeCallbacks) {\n this.stateChangeCallbacks[key] = this.stateChangeCallbacks[key].filter(([ref]) => {\n return refs.indexOf(ref) === -1;\n });\n }\n }\n channel(topic, chanParams = {}) {\n let chan = new Channel(topic, chanParams, this);\n this.channels.push(chan);\n return chan;\n }\n push(data) {\n if (this.hasLogger()) {\n let { topic, event, payload, ref, join_ref } = data;\n this.log(\"push\", `${topic} ${event} (${join_ref}, ${ref})`, payload);\n }\n if (this.isConnected()) {\n this.encode(data, (result) => this.conn.send(result));\n } else {\n this.sendBuffer.push(() => this.encode(data, (result) => this.conn.send(result)));\n }\n }\n makeRef() {\n let newRef = this.ref + 1;\n if (newRef === this.ref) {\n this.ref = 0;\n } else {\n this.ref = newRef;\n }\n return this.ref.toString();\n }\n sendHeartbeat() {\n if (this.pendingHeartbeatRef && !this.isConnected()) {\n return;\n }\n this.pendingHeartbeatRef = this.makeRef();\n this.push({ topic: \"phoenix\", event: \"heartbeat\", payload: {}, ref: this.pendingHeartbeatRef });\n this.heartbeatTimer = setTimeout(() => this.heartbeatTimeout(), this.heartbeatIntervalMs);\n }\n abnormalClose(reason) {\n this.closeWasClean = false;\n if (this.isConnected()) {\n this.conn.close(WS_CLOSE_NORMAL, reason);\n }\n }\n flushSendBuffer() {\n if (this.isConnected() && this.sendBuffer.length > 0) {\n this.sendBuffer.forEach((callback) => callback());\n this.sendBuffer = [];\n }\n }\n onConnMessage(rawMessage) {\n this.decode(rawMessage.data, (msg) => {\n let { topic, event, payload, ref, join_ref } = msg;\n if (ref && ref === this.pendingHeartbeatRef) {\n clearTimeout(this.heartbeatTimer);\n this.pendingHeartbeatRef = null;\n setTimeout(() => this.sendHeartbeat(), this.heartbeatIntervalMs);\n }\n if (this.hasLogger())\n this.log(\"receive\", `${payload.status || \"\"} ${topic} ${event} ${ref && \"(\" + ref + \")\" || \"\"}`, payload);\n for (let i = 0; i < this.channels.length; i++) {\n const channel = this.channels[i];\n if (!channel.isMember(topic, event, payload, join_ref)) {\n continue;\n }\n channel.trigger(event, payload, ref, join_ref);\n }\n for (let i = 0; i < this.stateChangeCallbacks.message.length; i++) {\n let [, callback] = this.stateChangeCallbacks.message[i];\n callback(msg);\n }\n });\n }\n leaveOpenTopic(topic) {\n let dupChannel = this.channels.find((c) => c.topic === topic && (c.isJoined() || c.isJoining()));\n if (dupChannel) {\n if (this.hasLogger())\n this.log(\"transport\", `leaving duplicate topic \"${topic}\"`);\n dupChannel.leave();\n }\n }\n};\nexport {\n Channel,\n LongPoll,\n Presence,\n serializer_default as Serializer,\n Socket\n};\n//# sourceMappingURL=phoenix.esm.js.map\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","var serviceWorkerOption = {\"scriptURL\":\"/sw-pleroma.js\"};\n \"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* eslint-disable flowtype/require-valid-file-annotation */\n/* global serviceWorkerOption */\n\nexports.default = {\n register: function register() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (navigator.serviceWorker) {\n return navigator.serviceWorker.register(serviceWorkerOption.scriptURL, options);\n }\n\n return false;\n }\n};\nmodule.exports = exports[\"default\"];","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&apos;');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function detectModuloStart(scnr) {\r\n const spaces = peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n scnr.peek() === \"{\" /* BraceLeft */;\r\n scnr.resetPeek();\r\n return {\r\n isModulo: ret,\r\n hasSpace: spaces.length > 0\r\n };\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readModulo(scnr) {\r\n skipSpaces(scnr);\r\n const ch = scnr.currentChar();\r\n if (ch !== \"%\" /* Modulo */) {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n }\r\n scnr.next();\r\n return \"%\" /* Modulo */;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n if (isModulo) {\r\n return hasSpace\r\n ? getToken(context, 0 /* Text */, readText(scnr))\r\n : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n transformer.helper(\"type\" /* TYPE */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n generator.push(`, _type`);\r\n }\r\n else {\r\n generator.push(`, undefined, _type`);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, isString, hasOwn, isObject, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CompileErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, ref, computed, watch, getCurrentInstance, Fragment, h, effectScope, inject, onMounted, onUnmounted, shallowRef, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.2.2';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nlet code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\nconst inc$1 = () => ++code$1;\r\nconst I18nWarnCodes = {\r\n FALLBACK_TO_ROOT: code$1,\r\n NOT_SUPPORTED_PRESERVE: inc$1(),\r\n NOT_SUPPORTED_FORMATTER: inc$1(),\r\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n};\r\nconst warnMessages = {\r\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst I18nErrorCodes = {\r\n // composer module errors\r\n UNEXPECTED_RETURN_TYPE: code,\r\n // legacy module errors\r\n INVALID_ARGUMENT: inc(),\r\n // i18n module errors\r\n MUST_BE_CALL_SETUP_TOP: inc(),\r\n NOT_INSLALLED: inc(),\r\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n // directive module errors\r\n REQUIRED_VALUE: inc(),\r\n INVALID_VALUE: inc(),\r\n // vue-devtools errors\r\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n // unexpected error\r\n UNEXPECTED_ERROR: inc(),\r\n // not compatible legacy vue-i18n constructor\r\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n // bridge support vue 2.x only\r\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n // for enhancement\r\n __EXTEND_POINT__: inc() // 29\r\n};\r\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\r\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\r\n};\n\nconst TransrateVNodeSymbol = \r\n/* #__PURE__*/ makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes('.')) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split('.');\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n, messageResolver, flatJson } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(custom => {\r\n if ('locale' in custom && 'resource' in custom) {\r\n const { locale, resource } = custom;\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n }\r\n else {\r\n isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (messageResolver == null && flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getComponentOptions(instance) {\r\n return instance.type ;\r\n}\r\nfunction adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in componentOptions) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: componentOptions.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n {\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n }\r\n}\r\nfunction createTextNode(key) {\r\n return createVNode(Text, null, key, 0)\r\n ;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// extend VNode interface\r\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = () => {\r\n const instance = getCurrentInstance();\r\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createComposer(options = {}, VueI18nLegacy) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n let _warnHtmlMessage = __root\r\n ? __root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n const getCoreContext = () => {\r\n _isGlobal && setFallbackContext(null);\r\n const ctxOptions = {\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n messageResolver: options.messageResolver,\r\n __meta: { framework: 'vue' }\r\n };\r\n {\r\n ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n ctxOptions.numberFormats = _numberFormats.value;\r\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined;\r\n ctxOptions.__numberFormatters = isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ctxOptions.__v_emitter = isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined;\r\n }\r\n const ctx = createCoreContext(ctxOptions);\r\n _isGlobal && setFallbackContext(ctx);\r\n return ctx;\r\n };\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ]\r\n ;\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !arg.resolvedMessage;\r\n }\r\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n if (!_isGlobal) {\r\n _context.fallbackContext = __root\r\n ? getFallbackContext()\r\n : undefined;\r\n }\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n if (!_isGlobal) {\r\n _context.fallbackContext = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n }\r\n };\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n ? createTextNode(String(val))\r\n : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = Reflect.apply(translate, null, [_context, ...args]);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return _context.messageResolver(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root && inBrowser) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define basic composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [SetPluralRulesSymbol]: setPluralRules\r\n };\r\n {\r\n composer.datetimeFormats = datetimeFormats;\r\n composer.numberFormats = numberFormats;\r\n composer.rt = rt;\r\n composer.te = te;\r\n composer.tm = tm;\r\n composer.d = d;\r\n composer.n = n;\r\n composer.getDateTimeFormat = getDateTimeFormat;\r\n composer.setDateTimeFormat = setDateTimeFormat;\r\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n composer.getNumberFormat = getNumberFormat;\r\n composer.setNumberFormat = setNumberFormat;\r\n composer.mergeNumberFormat = mergeNumberFormat;\r\n composer[InejctWithOption] = options.__injectWithOption;\r\n composer[TransrateVNodeSymbol] = transrateVNode;\r\n composer[DatetimePartsSymbol] = datetimeParts;\r\n composer[NumberPartsSymbol] = numberParts;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageResolver: options.messageResolver,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createVueI18n(options = {}, VueI18nLegacy) {\r\n {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n rt(...args) {\r\n return Reflect.apply(composer.rt, composer, [...args]);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return Reflect.apply(composer.d, composer, [...args]);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return Reflect.apply(composer.n, composer, [...args]);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n }\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n default: 'parent' /* ComponetI18nScope */\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\nfunction getInterpolateArg(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n{ slots }, // SetupContext,\r\nkeys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot with list\r\n const ret = slots.default ? slots.default() : [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return ret.reduce((slot, current) => {\r\n return (slot = [\r\n ...slot,\r\n ...(isArray(current.children) ? current.children : [current])\r\n ]);\r\n }, []);\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getFragmentableTag(tag) {\r\n return Fragment ;\r\n}\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n * <div id=\"app\">\r\n * <!-- ... -->\r\n * <i18n path=\"term\" tag=\"label\" for=\"tos\">\r\n * <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\r\n * </i18n>\r\n * <!-- ... -->\r\n * </div>\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n return () => {\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n }\r\n};\n\nfunction isVNode(target) {\r\n return isArray(target) && !isString(target[0]);\r\n}\r\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n const node = slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n if (isVNode(node)) {\r\n node[0].key = `${part.type}-${index}`;\r\n }\r\n return node;\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n}\n\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = /*defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const _process = (binding) => {\r\n const { instance, modifiers, value } = binding;\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n }\r\n const parsedValue = parseValue(value);\r\n return [\r\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n composer\r\n ];\r\n };\r\n const register = (el, binding) => {\r\n const [textContent, composer] = _process(binding);\r\n if (inBrowser && i18n.global === composer) {\r\n // global scope only\r\n el.__i18nWatcher = watch(composer.locale, () => {\r\n binding.instance && binding.instance.$forceUpdate();\r\n });\r\n }\r\n el.__composer = composer;\r\n el.textContent = textContent;\r\n };\r\n const unregister = (el) => {\r\n if (inBrowser && el.__i18nWatcher) {\r\n el.__i18nWatcher();\r\n el.__i18nWatcher = undefined;\r\n delete el.__i18nWatcher;\r\n }\r\n if (el.__composer) {\r\n el.__composer = undefined;\r\n delete el.__composer;\r\n }\r\n };\r\n const update = (el, { value }) => {\r\n if (el.__composer) {\r\n const composer = el.__composer;\r\n const parsedValue = parseValue(value);\r\n el.textContent = Reflect.apply(composer.t, composer, [\r\n ...makeParams(parsedValue)\r\n ]);\r\n }\r\n };\r\n const getSSRProps = (binding) => {\r\n const [textContent] = _process(binding);\r\n return { textContent };\r\n };\r\n return {\r\n created: register,\r\n unmounted: unregister,\r\n beforeUpdate: update,\r\n getSSRProps\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n {\r\n app.directive('t', vTDirective(i18n));\r\n }\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el &&\r\n componentInstance.vnode.el.__VUE_I18N__ &&\r\n instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n const roots = new Map();\r\n api.on.getInspectorState(async (payload) => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n api.unhighlightElement();\r\n inspectScope(payload, i18n);\r\n if (payload.nodeId === 'global') {\r\n if (!roots.has(payload.app)) {\r\n const [root] = await api.getComponentInstances(payload.app);\r\n roots.set(payload.app, root);\r\n }\r\n api.highlightElement(roots.get(payload.app));\r\n }\r\n else {\r\n const instance = getComponentInstance(payload.nodeId, i18n);\r\n instance && api.highlightElement(instance);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getI18nScopeLable(instance) {\r\n return (instance.type.name ||\r\n instance.type.displayName ||\r\n instance.type.__file ||\r\n 'Anonymous');\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const tag = {\r\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n {\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '&lt;',\r\n '>': '&gt;',\r\n '\"': '&quot;',\r\n '&': '&amp;'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `<span>ƒ</span> ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${getI18nScopeLable(keyInstance)} Scope`\r\n });\r\n }\r\n}\r\nfunction getComponentInstance(nodeId, i18n) {\r\n let instance = null;\r\n if (nodeId !== 'global') {\r\n for (const [component, composer] of i18n.__instances.entries()) {\r\n if (composer.id.toString() === nodeId) {\r\n instance = component;\r\n break;\r\n }\r\n }\r\n }\r\n return instance;\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n // TODO:\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n return null;\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n {\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n }\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n/**\r\n * Supports compatibility for legacy vue-i18n APIs\r\n * This mixin is used when we use vue-i18n@v9.x or later\r\n */\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n if (options.__i18nGlobal) {\r\n adjustI18nResources(composer, options, options);\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$i18n) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter =\r\n createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n unmounted() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$el.__VUE_I18N__) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n if (this.$i18n) {\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Injection key for {@link useI18n}\r\n *\r\n * @remarks\r\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst I18nInjectionKey = \r\n/* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction createI18n(options = {}, VueI18nLegacy) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n // prettier-ignore\r\n const __globalInjection = isBoolean(options.globalInjection)\r\n ? options.globalInjection\r\n : true;\r\n // prettier-ignore\r\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? !!options.allowComposition\r\n : true;\r\n const __instances = new Map();\r\n const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n function __getInstance(component) {\r\n return __instances.get(component) || null;\r\n }\r\n function __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n }\r\n function __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n {\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n return __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? 'legacy'\r\n : 'composition';\r\n },\r\n // allowComposition\r\n get allowComposition() {\r\n return __allowComposition;\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // release global scope\r\n const unmountApp = app.unmount;\r\n app.unmount = () => {\r\n i18n.dispose();\r\n unmountApp();\r\n };\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n dispose() {\r\n globalScope.stop();\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance,\r\n // @internal\r\n __setInstance,\r\n // @internal\r\n __deleteInstance\r\n };\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n }\r\n if (!instance.isCE &&\r\n instance.appContext.app != null &&\r\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n }\r\n const i18n = getI18nInstance(instance);\r\n const global = getGlobalComposer(i18n);\r\n const componentOptions = getComponentOptions(instance);\r\n const scope = getScope(options, componentOptions);\r\n if (__VUE_I18N_LEGACY_API__) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n if (!i18n.allowComposition) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n }\r\n return useI18nForLegacy(instance, scope, global, options);\r\n }\r\n }\r\n if (scope === 'global') {\r\n adjustI18nResources(global, options, componentOptions);\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const composerOptions = assign({}, options);\r\n if ('__i18n' in componentOptions) {\r\n composerOptions.__i18n = componentOptions.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\n/**\r\n * Cast to VueI18n legacy compatible type\r\n *\r\n * @remarks\r\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n *\r\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\r\n *\r\n * @param i18n - An instance of {@link I18n}\r\n * @returns A i18n instance which is casted to {@link VueI18n} type\r\n *\r\n * @VueI18nTip\r\n * :new: provided by **vue-i18n-bridge only**\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst castToVueI18n = (i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) => {\r\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n }\r\n return i18n;\r\n};\r\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const scope = effectScope();\r\n {\r\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\r\n ? scope.run(() => createVueI18n(options))\r\n : scope.run(() => createComposer(options));\r\n if (obj == null) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n return [scope, obj];\r\n }\r\n}\r\nfunction getI18nInstance(instance) {\r\n {\r\n const i18n = inject(!instance.isCE\r\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n : I18nInjectionKey);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(!instance.isCE\r\n ? I18nErrorCodes.UNEXPECTED_ERROR\r\n : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n }\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getScope(options, componentOptions) {\r\n // prettier-ignore\r\n return isEmptyObject(options)\r\n ? ('__i18n' in componentOptions)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n}\r\nfunction getGlobalComposer(i18n) {\r\n // prettier-ignore\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer\r\n ;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n if (__VUE_I18N_LEGACY_API__) {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n if (useComponent &&\r\n composer &&\r\n !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n composer = null;\r\n }\r\n }\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n {\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n }\r\n}\r\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const isLocale = scope === 'local';\r\n const _composer = shallowRef(null);\r\n if (isLocale &&\r\n instance.proxy &&\r\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n }\r\n const _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _missingWarn = isLocale\r\n ? root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackWarn = isLocale\r\n ? root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackRoot = isLocale\r\n ? root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n const _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n const _missing = isFunction(options.missing) ? options.missing : null;\r\n // postTranslation handler\r\n const _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n const _warnHtmlMessage = isLocale\r\n ? root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const _escapeParameter = !!options.escapeParameter;\r\n // prettier-ignore\r\n const _modifiers = isLocale\r\n ? root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => {\r\n return _composer.value ? _composer.value.locale.value : _locale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.locale.value = val;\r\n }\r\n _locale.value = val;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => {\r\n return _composer.value\r\n ? _composer.value.fallbackLocale.value\r\n : _fallbackLocale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.fallbackLocale.value = val;\r\n }\r\n _fallbackLocale.value = val;\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => {\r\n if (_composer.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _composer.value.messages.value;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _messages.value;\r\n }\r\n });\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n const numberFormats = computed(() => _numberFormats.value);\r\n function getPostTranslationHandler() {\r\n return _composer.value\r\n ? _composer.value.getPostTranslationHandler()\r\n : _postTranslation;\r\n }\r\n function setPostTranslationHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setPostTranslationHandler(handler);\r\n }\r\n }\r\n function getMissingHandler() {\r\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n }\r\n function setMissingHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setMissingHandler(handler);\r\n }\r\n }\r\n function warpWithDeps(fn) {\r\n trackReactivityValues();\r\n return fn();\r\n }\r\n function t(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function rt(...args) {\r\n return _composer.value\r\n ? Reflect.apply(_composer.value.rt, null, [...args])\r\n : '';\r\n }\r\n function d(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function n(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function tm(key) {\r\n return _composer.value ? _composer.value.tm(key) : {};\r\n }\r\n function te(key, locale) {\r\n return _composer.value ? _composer.value.te(key, locale) : false;\r\n }\r\n function getLocaleMessage(locale) {\r\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n }\r\n function setLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.setLocaleMessage(locale, message);\r\n _messages.value[locale] = message;\r\n }\r\n }\r\n function mergeLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.mergeLocaleMessage(locale, message);\r\n }\r\n }\r\n function getDateTimeFormat(locale) {\r\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n }\r\n function setDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setDateTimeFormat(locale, format);\r\n _datetimeFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeDateTimeFormat(locale, format);\r\n }\r\n }\r\n function getNumberFormat(locale) {\r\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n }\r\n function setNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setNumberFormat(locale, format);\r\n _numberFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeNumberFormat(locale, format);\r\n }\r\n }\r\n const wrapper = {\r\n get id() {\r\n return _composer.value ? _composer.value.id : -1;\r\n },\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get inheritLocale() {\r\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n if (_composer.value) {\r\n _composer.value.inheritLocale = val;\r\n }\r\n },\r\n get availableLocales() {\r\n return _composer.value\r\n ? _composer.value.availableLocales\r\n : Object.keys(_messages.value);\r\n },\r\n get modifiers() {\r\n return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n },\r\n get pluralRules() {\r\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n },\r\n get isGlobal() {\r\n return _composer.value ? _composer.value.isGlobal : false;\r\n },\r\n get missingWarn() {\r\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackWarn() {\r\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackRoot() {\r\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackRoot = val;\r\n }\r\n },\r\n get fallbackFormat() {\r\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackFormat = val;\r\n }\r\n },\r\n get warnHtmlMessage() {\r\n return _composer.value\r\n ? _composer.value.warnHtmlMessage\r\n : _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n if (_composer.value) {\r\n _composer.value.warnHtmlMessage = val;\r\n }\r\n },\r\n get escapeParameter() {\r\n return _composer.value\r\n ? _composer.value.escapeParameter\r\n : _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n if (_composer.value) {\r\n _composer.value.escapeParameter = val;\r\n }\r\n },\r\n t,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n rt,\r\n d,\r\n n,\r\n tm,\r\n te,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat\r\n };\r\n function sync(composer) {\r\n composer.locale.value = _locale.value;\r\n composer.fallbackLocale.value = _fallbackLocale.value;\r\n Object.keys(_messages.value).forEach(locale => {\r\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n });\r\n Object.keys(_datetimeFormats.value).forEach(locale => {\r\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n });\r\n Object.keys(_numberFormats.value).forEach(locale => {\r\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n });\r\n composer.escapeParameter = _escapeParameter;\r\n composer.fallbackFormat = _fallbackFormat;\r\n composer.fallbackRoot = _fallbackRoot;\r\n composer.fallbackWarn = _fallbackWarn;\r\n composer.missingWarn = _missingWarn;\r\n composer.warnHtmlMessage = _warnHtmlMessage;\r\n }\r\n onBeforeMount(() => {\r\n if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const composer = (_composer.value = instance.proxy.$i18n\r\n .__composer);\r\n if (scope === 'global') {\r\n _locale.value = composer.locale.value;\r\n _fallbackLocale.value = composer.fallbackLocale.value;\r\n _messages.value = composer.messages.value;\r\n _datetimeFormats.value = composer.datetimeFormats.value;\r\n _numberFormats.value = composer.numberFormats.value;\r\n }\r\n else if (isLocale) {\r\n sync(composer);\r\n }\r\n });\r\n return wrapper;\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'] ;\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message resolver at vue-i18n\r\nregisterMessageResolver(resolveValue);\r\n// register fallback locale at vue-i18n\r\nregisterLocaleFallbacker(fallbackWithLocaleChain);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nInjectionKey, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","/*!\n * vue-router v4.1.6\n * (c) 2022 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || obj[Symbol.toStringTag] === 'Module';\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = isArray(value)\r\n ? value.map(fn)\r\n : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\r\n/**\r\n * Typesafe alternative to Array.isArray\r\n * https://github.com/microsoft/TypeScript/pull/48228\r\n */\r\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms a URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n // TODO: move to new URL()\r\n const hashPos = location.indexOf('#');\r\n let searchPos = location.indexOf('?');\r\n // the hash appears before the search, so it's not part of the search string\r\n if (hashPos < searchPos && hashPos >= 0) {\r\n searchPos = -1;\r\n }\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // we stay on the same position\r\n if (segment === '.')\r\n continue;\r\n // go up in the from array\r\n if (segment === '..') {\r\n // we can't go below zero, but we still need to increment toPosition\r\n if (position > 1)\r\n position--;\r\n // continue\r\n }\r\n // we reached a non-relative path, we stop here\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n // ensure we use at least the last element in the toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect <base> tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler<ScrollPosition> = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // set up the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // set up the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor, and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided, and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/router/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `<base>` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/router/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\r\n * handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `<base>` tag\r\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\r\n * calls**, meaning that if you use a `<base>` tag, it's `href` value **has to match this parameter** (ignoring anything\r\n * after the `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non-greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub-segment /:a-other-:b\r\n let subSegmentScore = 40 /* PathScore.Segment */ +\r\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* TokenType.Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* PathScore.Static */;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* PathScore.Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* PathScore.BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* TokenType.Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* TokenType.Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (isArray(param) && !repeatable) {\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n }\r\n const text = isArray(param)\r\n ? param.join('/')\r\n : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n // avoid empty path when we have multiple optional params\r\n return path || '/';\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n if (Math.abs(bScore.length - aScore.length) === 1) {\r\n if (isLastScoreNegative(aScore))\r\n return 1;\r\n if (isLastScoreNegative(bScore))\r\n return -1;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\r\n/**\r\n * This allows detecting splats at the end of a path: /home/:id(.*)*\r\n *\r\n * @param score - score to check\r\n * @returns true if the last entry is negative\r\n */\r\nfunction isLastScoreNegative(score) {\r\n const last = score[score.length - 1];\r\n return score.length > 0 && last[last.length - 1] < 0;\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* TokenType.Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map<string, Token[][]>()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* TokenizerState.Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* TokenizerState.Static */) {\r\n segment.push({\r\n type: 0 /* TokenType.Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* TokenizerState.Param */ ||\r\n state === 2 /* TokenizerState.ParamRegExp */ ||\r\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* TokenType.Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* TokenizerState.EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* TokenizerState.Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* TokenizerState.Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* TokenizerState.EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* TokenizerState.Param */:\r\n if (char === '(') {\r\n state = 2 /* TokenizerState.ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* TokenizerState.ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* TokenizerState.ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* TokenizerState.ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* TokenizerState.Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* TokenizerState.ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\r\n }\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object beforehand, so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist,\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if (mainNormalizedRecord.children) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other aliases (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\r\n // not be reached and pass through the catch all route\r\n if ((matcher.record.components &&\r\n Object.keys(matcher.record.components).length) ||\r\n matcher.record.name ||\r\n matcher.record.redirect) {\r\n insertMatcher(matcher);\r\n }\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\r\n // Adding children with empty path should still appear before the parent\r\n // https://github.com/vuejs/router/issues/1124\r\n (matcher.record.path !== matchers[i].record.path ||\r\n !isRecordChildOf(matcher, matchers[i])))\r\n i++;\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n // warn if the user is passing invalid params so they can debug it better when they get removed\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\r\n if (invalidParams.length) {\r\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\r\n }\r\n }\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), \r\n // discard any existing params in the current location that do not exist here\r\n // #1497 this ensures better active/exact matching\r\n location.params &&\r\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || null\r\n : record.component && { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records, but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\n/**\r\n * A route with a name and a child with an empty path without a name should warn when adding the route\r\n *\r\n * @param mainNormalizedRecord - RouteRecordNormalized\r\n * @param parent - RouteRecordMatcher\r\n */\r\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\r\n if (parent &&\r\n parent.record.name &&\r\n !mainNormalizedRecord.name &&\r\n !mainNormalizedRecord.path) {\r\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\r\nfunction isRecordChildOf(record, parent) {\r\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query, but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false) {\r\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n }\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function') {\r\n enterCallbackArray.push(valid);\r\n }\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\r\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\r\n ` or \"children\" property.`);\r\n }\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n * @internal\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\r\n/**\r\n * Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\r\n *\r\n * @param route - resolved route to load\r\n */\r\nfunction loadRouteLocation(route) {\r\n return route.matched.every(record => record.redirect)\r\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\r\n : Promise.all(route.matched.map(record => record.components &&\r\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\r\n const rawComponent = record.components[name];\r\n if (typeof rawComponent === 'function' &&\r\n !('displayName' in rawComponent)) {\r\n promises.push(rawComponent().then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n // cannot be null or undefined because we went into the for loop\r\n record.components[name] = resolvedComponent;\r\n return;\r\n }));\r\n }\r\n return promises;\r\n }, [])))).then(() => route);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n /**\r\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\r\n */\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n compatConfig: { MODE: 3 },\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener, so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n // Better compat for @vue/compat users\r\n // https://github.com/vuejs/router/issues/1315\r\n compatConfig: { MODE: 3 },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const injectedDepth = inject(viewDepthKey, 0);\r\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\r\n // that are used to reuse the `path` property\r\n const depth = computed(() => {\r\n let initialDepth = unref(injectedDepth);\r\n const { matched } = routeToDisplay.value;\r\n let matchedRoute;\r\n while ((matchedRoute = matched[initialDepth]) &&\r\n !matchedRoute.components) {\r\n initialDepth++;\r\n }\r\n return initialDepth;\r\n });\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\r\n provide(viewDepthKey, computed(() => depth.value + 1));\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name, so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[currentName];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth: depth.value,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and <component :is=\"...\"> both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with <transition> & <keep-alive>\r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `<router-view v-slot=\"{ Component }\">\\n` +\r\n ` <${comp}>\\n` +\r\n ` <component :is=\"Component\" />\\n` +\r\n ` </${comp}>\\n` +\r\n `</router-view>`);\r\n }\r\n}\n\n/**\r\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\r\n *\r\n * @param routeLocation - routeLocation to format\r\n * @param tooltip - optional tooltip\r\n * @returns a copy of the routeLocation\r\n */\r\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://router.vuejs.org',\r\n logo: 'https://router.vuejs.org/logo.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n if (typeof api.now !== 'function') {\r\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\r\n }\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by &lt;router-view&gt;',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: api.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: api.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: api.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n if (Object.keys(route.record.meta).length) {\r\n fields.push({\r\n editable: false,\r\n key: 'meta',\r\n value: route.record.meta,\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: typeof record.redirect === 'string'\r\n ? `redirect: ${record.redirect}`\r\n : 'redirects',\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // the matcher might have merged current location params, so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n // avoid transferring params if the redirect has a path\r\n params: 'path' in newTargetLocation ? {} : to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: typeof shouldRedirect === 'object'\r\n ? assign({}, data, shouldRedirect.state)\r\n : data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? // navigation redirects still mark the router as ready\r\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\r\n ? error\r\n : markAsReady(error) // also returns the error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign({\r\n // preserve an existing replacement but allow the redirect to override it\r\n replace,\r\n }, locationAsObject(failure.to), {\r\n state: typeof failure.to === 'object'\r\n ? assign({}, data, failure.to.state)\r\n : data,\r\n force,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise<Component>\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n // avoid setting up listeners twice due to an invalid first navigation\r\n if (removeHistoryListener)\r\n return;\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n if (!router.listening)\r\n return;\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is no guarantee for\r\n // it to work on every browser. So instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing, but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\r\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta &&\r\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\r\n // entry while a different route is displayed\r\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n function markAsReady(err) {\r\n if (!ready) {\r\n // still not ready if an error happened\r\n ready = !err;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n return err;\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n listening: true,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n removeHistoryListener = null;\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n // TODO: this probably needs to be updated so it can be used by vue-termui\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","export function getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n // @ts-ignore\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = global.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const';\nimport { now } from './time';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","/*!\n * vuex v4.1.0\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { inject, effectScope, reactive, watch, computed } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nvar storeKey = 'store';\n\nfunction useStore (key) {\n if ( key === void 0 ) key = null;\n\n return inject(key !== null ? key : storeKey)\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset state\n resetStoreState(store, state, hot);\n}\n\nfunction resetStoreState (store, state, hot) {\n var oldState = store._state;\n var oldScope = store._scope;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computedObj = {};\n var computedCache = {};\n\n // create a new effect scope and create computed object inside it to avoid\n // getters (computed) getting destroyed on component unmount.\n var scope = effectScope(true);\n\n scope.run(function () {\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldState.\n // using partial to return function with only arguments preserved in closure environment.\n computedObj[key] = partial(fn, store);\n computedCache[key] = computed(function () { return computedObj[key](); });\n Object.defineProperty(store.getters, key, {\n get: function () { return computedCache[key].value; },\n enumerable: true // for local getters\n });\n });\n });\n\n store._state = reactive({\n data: state\n });\n\n // register the newly created effect scope to the store so that we can\n // dispose the effects when this method runs again in the future.\n store._scope = scope;\n\n // enable strict mode for new state\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldState) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldState.data = null;\n });\n }\n }\n\n // dispose previously registered effect scope if there is one.\n if (oldScope) {\n oldScope.stop();\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n parentState[moduleName] = module.state;\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by state update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n watch(function () { return store._state.data; }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, flush: 'sync' });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nvar LABEL_VUEX_BINDINGS = 'vuex bindings';\nvar MUTATIONS_LAYER_ID = 'vuex:mutations';\nvar ACTIONS_LAYER_ID = 'vuex:actions';\nvar INSPECTOR_ID = 'vuex';\n\nvar actionId = 0;\n\nfunction addDevtools (app, store) {\n setupDevtoolsPlugin(\n {\n id: 'org.vuejs.vuex',\n app: app,\n label: 'Vuex',\n homepage: 'https://next.vuex.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n packageName: 'vuex',\n componentStateTypes: [LABEL_VUEX_BINDINGS]\n },\n function (api) {\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: 'Vuex Mutations',\n color: COLOR_LIME_500\n });\n\n api.addTimelineLayer({\n id: ACTIONS_LAYER_ID,\n label: 'Vuex Actions',\n color: COLOR_LIME_500\n });\n\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Vuex',\n icon: 'storage',\n treeFilterPlaceholder: 'Filter stores...'\n });\n\n api.on.getInspectorTree(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n if (payload.filter) {\n var nodes = [];\n flattenStoreForInspectorTree(nodes, store._modules.root, payload.filter, '');\n payload.rootNodes = nodes;\n } else {\n payload.rootNodes = [\n formatStoreForInspectorTree(store._modules.root, '')\n ];\n }\n }\n });\n\n api.on.getInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n makeLocalGetters(store, modulePath);\n payload.state = formatStoreForInspectorState(\n getStoreModule(store._modules, modulePath),\n modulePath === 'root' ? store.getters : store._makeLocalGettersCache,\n modulePath\n );\n }\n });\n\n api.on.editInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n var path = payload.path;\n if (modulePath !== 'root') {\n path = modulePath.split('/').filter(Boolean).concat( path);\n }\n store._withCommit(function () {\n payload.set(store._state.data, path, payload.state.value);\n });\n }\n });\n\n store.subscribe(function (mutation, state) {\n var data = {};\n\n if (mutation.payload) {\n data.payload = mutation.payload;\n }\n\n data.state = state;\n\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: mutation.type,\n data: data\n }\n });\n });\n\n store.subscribeAction({\n before: function (action, state) {\n var data = {};\n if (action.payload) {\n data.payload = action.payload;\n }\n action._id = actionId++;\n action._time = Date.now();\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: action._time,\n title: action.type,\n groupId: action._id,\n subtitle: 'start',\n data: data\n }\n });\n },\n after: function (action, state) {\n var data = {};\n var duration = Date.now() - action._time;\n data.duration = {\n _custom: {\n type: 'duration',\n display: (duration + \"ms\"),\n tooltip: 'Action duration',\n value: duration\n }\n };\n if (action.payload) {\n data.payload = action.payload;\n }\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: action.type,\n groupId: action._id,\n subtitle: 'end',\n data: data\n }\n });\n }\n });\n }\n );\n}\n\n// extracted from tailwind palette\nvar COLOR_LIME_500 = 0x84cc16;\nvar COLOR_DARK = 0x666666;\nvar COLOR_WHITE = 0xffffff;\n\nvar TAG_NAMESPACED = {\n label: 'namespaced',\n textColor: COLOR_WHITE,\n backgroundColor: COLOR_DARK\n};\n\n/**\n * @param {string} path\n */\nfunction extractNameFromPath (path) {\n return path && path !== 'root' ? path.split('/').slice(-2, -1)[0] : 'Root'\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorNode}\n */\nfunction formatStoreForInspectorTree (module, path) {\n return {\n id: path || 'root',\n // all modules end with a `/`, we want the last segment only\n // cart/ -> cart\n // nested/cart/ -> cart\n label: extractNameFromPath(path),\n tags: module.namespaced ? [TAG_NAMESPACED] : [],\n children: Object.keys(module._children).map(function (moduleName) { return formatStoreForInspectorTree(\n module._children[moduleName],\n path + moduleName + '/'\n ); }\n )\n }\n}\n\n/**\n * @param {import('@vue/devtools-api').CustomInspectorNode[]} result\n * @param {*} module\n * @param {string} filter\n * @param {string} path\n */\nfunction flattenStoreForInspectorTree (result, module, filter, path) {\n if (path.includes(filter)) {\n result.push({\n id: path || 'root',\n label: path.endsWith('/') ? path.slice(0, path.length - 1) : path || 'Root',\n tags: module.namespaced ? [TAG_NAMESPACED] : []\n });\n }\n Object.keys(module._children).forEach(function (moduleName) {\n flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + '/');\n });\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorState}\n */\nfunction formatStoreForInspectorState (module, getters, path) {\n getters = path === 'root' ? getters : getters[path];\n var gettersKeys = Object.keys(getters);\n var storeState = {\n state: Object.keys(module.state).map(function (key) { return ({\n key: key,\n editable: true,\n value: module.state[key]\n }); })\n };\n\n if (gettersKeys.length) {\n var tree = transformPathsToObjectTree(getters);\n storeState.getters = Object.keys(tree).map(function (key) { return ({\n key: key.endsWith('/') ? extractNameFromPath(key) : key,\n editable: false,\n value: canThrow(function () { return tree[key]; })\n }); });\n }\n\n return storeState\n}\n\nfunction transformPathsToObjectTree (getters) {\n var result = {};\n Object.keys(getters).forEach(function (key) {\n var path = key.split('/');\n if (path.length > 1) {\n var target = result;\n var leafKey = path.pop();\n path.forEach(function (p) {\n if (!target[p]) {\n target[p] = {\n _custom: {\n value: {},\n display: p,\n tooltip: 'Module',\n abstract: true\n }\n };\n }\n target = target[p]._custom.value;\n });\n target[leafKey] = canThrow(function () { return getters[key]; });\n } else {\n result[key] = canThrow(function () { return getters[key]; });\n }\n });\n return result\n}\n\nfunction getStoreModule (moduleMap, path) {\n var names = path.split('/').filter(function (n) { return n; });\n return names.reduce(\n function (module, moduleName, i) {\n var child = module[moduleName];\n if (!child) {\n throw new Error((\"Missing module \\\"\" + moduleName + \"\\\" for path \\\"\" + path + \"\\\".\"))\n }\n return i === names.length - 1 ? child : child._children\n },\n path === 'root' ? moduleMap : moduleMap.root._children\n )\n}\n\nfunction canThrow (cb) {\n try {\n return cb()\n } catch (e) {\n return e\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nfunction createStore (options) {\n return new Store(options)\n}\n\nvar Store = function Store (options) {\n var this$1$1 = this;\n if ( options === void 0 ) options = {};\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n var devtools = options.devtools;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._makeLocalGettersCache = Object.create(null);\n\n // EffectScope instance. when registering new getters, we wrap them inside\n // EffectScope so that getters (computed) would not be destroyed on\n // component unmount.\n this._scope = null;\n\n this._devtools = devtools;\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store state, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreState(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1$1); });\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nStore.prototype.install = function install (app, injectKey) {\n app.provide(injectKey || storeKey, this);\n app.config.globalProperties.$store = this;\n\n var useDevtools = this._devtools !== undefined\n ? this._devtools\n : (process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__;\n\n if (useDevtools) {\n addDevtools(app, this);\n }\n};\n\nprototypeAccessors.state.get = function () {\n return this._state.data\n};\n\nprototypeAccessors.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch$1 (getter, cb, options) {\n var this$1$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return watch(function () { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options))\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1$1 = this;\n\n this._withCommit(function () {\n this$1$1._state.data = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreState(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1$1.state, path.slice(0, -1));\n delete parentState[path[path.length - 1]];\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n version: '4.1.0',\n Store: Store,\n storeKey: storeKey,\n createStore: createStore,\n useStore: useStore,\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, storeKey, useStore };\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env';\nimport { HOOK_SETUP } from './const';\nimport { ApiProxy } from './proxy';\nexport * from './api';\nexport * from './plugin';\nexport * from './time';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\ntry {\n self.EventTarget = (new EventTarget).constructor;\n} catch(EventTarget) {\n (function (Object, wm) {\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var proto = EventTarget.prototype;\n define(proto, 'addEventListener', function (type, listener, options) {\n for (var\n secret = wm.get(this),\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener)\n return;\n }\n listeners.push({target: this, listener: listener, options: options});\n });\n define(proto, 'dispatchEvent', function (event) {\n var secret = wm.get(this);\n var listeners = secret[event.type];\n if (listeners) {\n define(event, 'target', this);\n define(event, 'currentTarget', this);\n listeners.slice(0).some(dispatch, event);\n delete event.currentTarget;\n delete event.target;\n }\n return true;\n });\n define(proto, 'removeEventListener', function (type, listener) {\n for (var\n secret = wm.get(this),\n /* istanbul ignore next */\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener) {\n listeners.splice(i, 1);\n return;\n }\n }\n });\n self.EventTarget = EventTarget;\n function EventTarget() {'use strict';\n wm.set(this, create(null));\n }\n function define(target, name, value) {\n defineProperty(\n target,\n name,\n {\n configurable: true,\n writable: true,\n value: value\n }\n );\n }\n function dispatch(info) {\n var options = info.options;\n if (options && options.once)\n info.target.removeEventListener(this.type, info.listener);\n if (typeof info.listener === 'function')\n info.listener.call(info.target, this);\n else\n info.listener.handleEvent(this);\n return this._stopImmediatePropagationFlag;\n }\n }(Object, new WeakMap));\n}\nexport default self.EventTarget;\n"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","props","descriptor","configurable","writable","value","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","done","err","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","o","minLen","n","toString","slice","name","test","len","arr2","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","Proxy","get","prop","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","concat","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","Set","map","add","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","set","_onChangeCb","cb","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","htmlEscape","str","replace","joinStyles","styles","reduce","acc","styleName","trim","transformIsMeaningful","transform","css","dcp","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","_cssInserted","ensureCss","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","loaded","domready","fn","setTimeout","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","children","attributeName","joinAttributes","join","iconFromMapping","mapping","prefix","iconName","icon","doScroll","readyState","listener","removeEventListener","subject","initialValue","thisContext","result","undefined","func","a","b","c","bindInternal4","toHex","unicode","decoded","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","params","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","values","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","some","v","canonical","rest","aliasIconName","Library","instance","Constructor","_classCallCheck","this","definitions","protoProps","_this","_len","_key","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","args","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","Promise","reject","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","parse","_icon","match","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","mask","symbol","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","resolve","console","error","maybeNotifyMissing","noop$1","p","preamble","perf","end","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","options","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","type","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","contains","childList","characterData","subtree","styleParser","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","data","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","f","prefixesDomQuery","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","toLowerCase","_hexValueFromContent","second","first","cleaned","codePoint","index","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","startsWith","iconIdentifier","iconName4","meta","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","isNaN","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","r","opacity","mixoutsTo","pseudoElements2svg","unwatch","bootstrap","disconnect","symbolData","k","plugin","tk","sk","config$1","library$1","parse$1","faSmileBeam","faFlag","faBookmark","faStar","faWindowMinimize","faAt","faTrashAlt","faInfo","faCompressAlt","faSignOutAlt","faAngleDoubleDown","faPencilAlt","faComments","faCircleNotch","faPaw","faReply","faCompass","faBars","faLightbulb","faList","faPaintBrush","faLock","faEdit","faShareAlt","faUsers","faEyeSlash","faChevronUp","faUser","faBullhorn","faGlobe","faBan","faServer","faSignInAlt","faFileUpload","faPlusSquare","faImage","faAngleDoubleRight","faPlayCircle","faBoxOpen","faFilter","faCode","faLockOpen","faPollH","faBasketballBall","faWrench","faEye","faPen","faBus","faExternalLinkAlt","faEnvelope","faInfoCircle","faMinus","faCog","faFolderTree","faEllipsisV","faDownload","faHome","faStop","faUpload","faFileDownload","faEllipsisH","faBell","faFile","faTachometerAlt","faStream","faIceCream","faLink","faFont","faSearch","faSuitcaseRolling","faChevronDown","faArrowUp","faAdjust","faPlus","faTimes","faChevronLeft","faChevronRight","faRetweet","faSmile","faThumbtack","faRobot","faAngleDoubleLeft","faHistory","faMusic","faExpandAlt","faCirclePlus","faRss","faUserPlus","faCheck","faExclamationTriangle","faAlignRight","faSearchPlus","faThumbsUp","faStickyNote","faVideo","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","module","commonjsGlobal","globalThis","g","self","humps$1","exports","global","_processKeys","convert","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","l","_isArray","hasOwnProperty","camelize","_isNumerical","chr","substr","pascalize","camelized","decamelize","separator","separateWords","_processor","process","humps","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_excluded","styleToObject","pair","idx","classToObject","className","abstractElement","attrs","mixins","_attrs$style","aStyle","otherAttrs","h","objectWithKey","normalizeIconArgs","FontAwesomeIcon","border","Boolean","default","fixedWidth","flip","String","validator","required","listItem","pull","pulse","rotation","Number","swapOpacity","spin","inverse","bounce","shake","beat","fade","beatFade","flash","spinPulse","spinReverse","setup","icon$1","_classes","renderedIcon","_console","log","immediate","vnode","FontAwesomeLayers","slots","Pointer","nativePointer","pageX","pageY","clientX","clientY","Touch","identifier","isPointerEvent","pointerId","getCoalesced","getCoalescedEvents","event","PointerEvent","ref","insertAt","getElementsByTagName","styleSheet","cssText","styleInject","minScaleAttr","allowPanMinScaleAttr","resetToMinScaleLimitAttr","reachMinScaleStrategyAttr","stopPropagateHandledAttr","getDistance","sqrt","getMidpoint","getAbsoluteValue","max","trimRight","endsWith","cachedSvg","getSVG","createMatrix","createSVGMatrix","createPoint","createSVGPoint","MIN_SCALE","roundedCmp","round","PinchZoom","HTMLElement","super","_transform","_stageElChange","pointerTracker","_element","start","move","rawUpdates","startPointers","currentPointers","_pointerStart","button","_triggerPointerStart","setPointerCapture","_rawUpdates","_move","_pointerEnd","_touchStart","touch","changedTouches","previousPointers","changedPointers","t","trackedChangedPointers","pointer","findIndex","_moveCallback","_triggerPointerEnd","splice","cancelled","_endCallback","_touchEnd","_startCallback","stop","_positioningEl","isPan","_allowPan","_maybeStopPropagate","_maybeEmitCancel","preventDefault","_","_onPointerMove","_onPointerEnd","_onWheel","_onClick","observedAttributes","attributeChangedCallback","oldValue","newValue","scale","minScale","setTransform","attrValue","isFinite","reachMinScaleStrategy","allowPanMinScale","resetToMinScaleLimit","stopPropagateHandled","hasAttribute","connectedCallback","scaleTo","opts","originX","originY","relativeTo","allowChangeEvent","relativeToEl","rect","currentRect","left","top","_applyChange","scaleDiff","_updateTransform","thisBounds","positioningElBounds","topLeft","bottomRight","matrix","translate","multiply","matrixTransform","setProperty","Event","bubbles","dispatchEvent","warn","deltaY","ctrlKey","deltaMode","isZoomOut","_maybeResetScale","prevMidpoint","newMidpoint","prevDistance","newDistance","panX","panY","_resetToMinScale","totalPointers","stopPropagation","pointers","parentElement","customElements","define","activeEffectScope","EffectScope","detached","active","effects","cleanups","parent","scopes","run","currentEffectScope","on","off","fromParent","last","pop","effectScope","createDep","dep","wasTracked","trackOpBit","newTracked","targetMap","WeakMap","activeEffect","effectTrackDepth","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","scope","deps","effect","recordEffectScope","lastShouldTrack","shouldTrack","initDepMarkers","cleanupEffect","ptr","delete","finalizeDepMarkers","deferStop","onStop","trackStack","pauseTracking","resetTracking","track","depsMap","Map","trackEffects","debuggerEventExtraInfo","has","trigger","oldTarget","triggerEffects","computed","triggerEffect","allowRecurse","isNonTrackableKeys","builtInSymbols","getOwnPropertyNames","createGetter","shallowGet","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","res","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","readonly","reactive","createSetter","shallowSet","isShallow","hadKey","mutableHandlers","deleteProperty","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","getPrototypeOf","get$1","rawTarget","rawKey","wrap","toReadonly","toReactive","has$1","set$1","deleteEntry","clear","hadItems","createForEach","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","rawType","targetTypeMap","proxy","isReactive","isProxy","raw","markRaw","trackRefValue","triggerRefValue","newVal","__v_isRef","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","_rawValue","_value","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","_a","ComputedRefImpl","getter","_setter","isSSR","_dirty","_cacheable","getterOrOptions","debugOptions","setter","onlyGetter","callWithErrorHandling","handleError","callWithAsyncErrorHandling","throwInDev","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","contextVNode","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","queueJob","job","middle","getId","findInsertionIndex","queueFlush","flushJobs","flushPreFlushCbs","seen","pre","flushPostFlushCbs","deduped","sort","Infinity","comparator","diff","emit$1","rawArgs","isUnmounted","isModelListener","modelArg","modifiersKey","number","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","comp","asMixin","cache","emitsCache","cached","emits","hasExtends","extendEmits","normalizedFromExtend","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","_c","renderComponentRoot","Component","withProxy","propsOptions","emit","renderCache","setupState","inheritAttrs","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","blockStack","createVNode","Comment","filterModelListeners","cloneVNode","dirs","transition","hasPropsChanged","prevProps","nextProps","emitsOptions","nextKeys","isSuspense","__isSuspense","provide","currentInstance","parentProvides","create","inject","defaultValue","treatDefaultAsFactory","INITIAL_WATCHER_VALUE","doWatch","deep","flush","onTrack","onTrigger","cleanup","forceTrigger","isMultiSource","traverse","onCleanup","baseGetter","isInSSRComponentSetup","queuePostRenderEffect","suspense","uid","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","segments","useTransitionState","state","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","Function","BaseTransition","mode","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","hasFound","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","subTree","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","el","earlyRemove","delayedLeave","getLeavingNodesForType","_leaveCb","leavingVNodesCache","callHook","callAsyncHook","every","beforeEnter","leavingVNode","enter","afterHook","cancelHook","called","_enterCb","leave","clone","isKeepAlive","component","ssContent","ssFallback","keepComment","parentKey","ret","keyedFragmentCount","Fragment","patchFlag","defineComponent","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","timeout","suspensible","onError","userOnError","resolvedComp","pendingRequest","retries","load","thisRequest","Error","__esModule","toStringTag","__asyncResolved","createInnerComp","delayed","__isKeepAlive","KeepAlive","include","exclude","sharedContext","renderer","current","parentSuspense","patch","m","um","_unmount","storageContainer","unmount","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","anchor","isSVG","optimized","slotScopeIds","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","isVNode","cachedVNode","pattern","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","unshift","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","withDirectives","directives","internalInstance","getExposeProxy","bindings","dir","arg","modifiers","mounted","updated","invokeDirectiveHook","prevVNode","oldBindings","binding","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","registry","renderList","renderItem","item","renderSlot","fallback","noSlotted","isCE","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","scopeId","vnodes","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","$slots","$refs","refs","$parent","$root","$emit","$options","resolveMergedOptions","$forceUpdate","$nextTick","$watch","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","__cssModules","createWatcher","base","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","to","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","methods","beforeCreate","mergeAsArray","created","beforeMount","beforeUpdate","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","merged","normalizeInject","setFullProps","needCastKeys","rawCastValues","hasAttrsChanged","camelKey","rawCurrentProps","castValues","resolvePropValue","isAbsent","opt","hasDefault","propsDefaults","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","createAppContext","app","isNativeTag","NO","warnHandler","compilerOptions","createAppAPI","hydrate","rootComponent","rootProps","assign","context","installedPlugins","_uid","_component","_props","_container","_context","_instance","version","use","install","mixin","directive","mount","rootContainer","isHydrate","__vue_app__","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","_isString","_isRef","doSet","existing","pendingBranch","createRenderer","createHydrationFns","__VUE__","insert","hostInsert","hostRemove","patchProp","hostPatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","nextSibling","hostNextSibling","setScopeId","hostSetScopeId","insertStaticContent","hostInsertStaticContent","n1","n2","parentComponent","dynamicChildren","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","removeStaticNode","mountElement","patchElement","is","mountChildren","unmountChildren","onVnodeBeforeMount","needCallTransitionHooks","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","propsToUpdate","dynamicProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","emptyAppContext","uid$1","exposed","exposeProxy","setupContext","suspenseId","pendingId","asyncDep","asyncResolved","bc","bm","bu","u","bum","rtg","rtc","sp","ce","createComponentInstance","isStateful","InternalObjectKey","initProps","initSlots","setupResult","expose","createAttrsProxy","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","setupStatefulComponent","setupComponent","registerDep","setupRenderEffect","placeholder","nextVNode","prevChildren","nextChildren","$stable","shouldUpdateComponent","updateComponentPreRender","invalidateJob","originNext","nextTree","prevTree","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","rawPrevProps","kebabKey","camelizedKey","updateProps","needDeletionCheck","deletionComparisonTarget","updateSlots","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","min","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","arrI","getSequence","nextIndex","moveType","performLeave","moveStaticNode","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","_vnode","mt","mc","pc","pbc","createApp","baseCreateRenderer","allowed","ch1","ch2","isTeleportDisabled","isTargetSVG","SVGElement","resolveTarget","select","targetSelector","moveTeleport","targetAnchor","isReorder","Teleport","__isTeleport","mainAnchor","wasDisabled","currentContainer","currentAnchor","nextTarget","hydrateChildren","targetNode","_lpa","currentBlock","disableTracking","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","staticCount","normalizeChildren","normalize","cloned","__vccOpts","guardReactiveProps","klass","isTeleport","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","flag","createCommentVNode","asBlock","memo","slotFlag","toMerge","incoming","__ssrInlineRender","ssrRender","skipOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","filters","checkDuplicateProperties","unwrapRef","resolveInjections","unwrapInjectedRef","methodHandler","registerLifecycleHook","register","_hook","applyOptions","includeInferred","displayName","__name","propsOrChildren","doc","templateContainer","nodeOps","multiple","nodeValue","textContent","selector","before","previousSibling","lastChild","cloneNode","template","wrapper","importantRE","setStyle","prefixed","rawName","prefixCache","autoPrefix","xlinkNS","optionsModifierRE","cachedNow","nativeOnRE","TRANSITION","ANIMATION","Transition","baseProps","DOMTransitionPropsValidators","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","NumberOf","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","addTransitionClass","hasExplicitCallback","whenTransitionEnds","body","offsetHeight","resolveTransitionProps","_vtc","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","getTransitionInfo","endEvent","ended","onEnd","delays","toMs","getModelAssigner","onCompositionStart","composing","onCompositionEnd","vModelText","lazy","_assign","castToNumber","domValue","activeElement","vModelCheckbox","modelValue","_modelValue","elementValue","getValue","checked","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","selected","setSelected","_binding","isMultiple","option","optionValue","selectedIndex","vModelDynamic","callModelHook","resolveDynamicModel","systemModifiers","modifierGuards","prevent","currentTarget","ctrl","shift","shiftKey","alt","altKey","metaKey","right","exact","withModifiers","guard","keyNames","esc","space","up","down","withKeys","eventKey","vShow","_vod","display","setDisplay","rendererOptions","prevValue","nextValue","transitionClasses","patchClass","isCssString","currentDisplay","patchStyle","invokers","_vei","existingInvoker","parseName","invoker","_vts","attached","Date","now","originalStop","stopImmediatePropagation","_stopped","patchStopImmediatePropagation","createInvoker","patchEvent","shouldSetAsProp","needRemove","patchDOMProp","_trueValue","_falseValue","removeAttributeNS","setAttributeNS","isBoolean","patchAttr","containerOrSelector","normalizeContainer","Element","makeMap","expectsLowerCase","list","isGloballyWhitelisted","isSpecialBooleanAttr","includeBooleanAttr","normalizeStyle","isString","parseStringStyle","isObject","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","normalizeProps","looseEqual","aValidType","isDate","bValidType","getTime","isSymbol","equal","looseCompareArrays","aHasKey","bHasKey","looseIndexOf","toDisplayString","objectToString","isFunction","JSON","stringify","replacer","isMap","entries","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","onRE","isOn","extend","hasOwn","toTypeString","isPromise","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","camelizeRE","hyphenateRE","hyphenate","capitalize","charAt","toHandlerKey","hasChanged","invokeArrayFns","fns","def","toNumber","_globalThis","getGlobalThis","unwrapObj","ignoreKeys","stringPath","gatherBooleanGroupProperties","group","nestedResults","property","gatherArrayGroupProperties","fetchedProperty","callRule","rule","siblingState","normalizeValidatorResponse","$valid","_empty","_call","direct","setValidations","$validate","$touch","$pending","$invalid","mergedConfig","$rewardEarly","$commit","validations","childResults","resultsCache","globalConfig","externalResults","rules","nestedValidators","validationGroups","validationsRaw","validationKeys","$validator","sortValidations","nestedState","cachedExternalResults","nestedExternalResults","results","model","ruleKeys","cachedResult","$dirty","$lastInvalidState","$lastCommittedOn","$partial","$unwatch","$path","$reset","ruleKey","validatorName","propertyKey","propertyPath","$params","$response","$async","$lazy","watchTargets","$pendingCounter","ruleResult","createAsyncResult","$watchTargets","returnValue","createSyncResult","message","$message","$model","$propertyPath","$property","createValidatorResult","$externalResults","stringError","$uid","$error","$silentErrors","$errors","createValidationResults","nestedValidationKeys","nestedKey","collectNestedValidationResults","$validationGroups","$anyDirty","allResults","allRes","modelErrors","nestedErrors","errors","nr","createMetaFields","external","$autoDirty","$getResultsForChild","$clearExternalResults","ResultsStorage","storage","checkRulesValidity","storedRules","storedRulesKeys","newRulesKeys","paramKey","storedRuleResultPair","isValidCache","CollectFlag","COLLECT_ALL","COLLECT_NONE","VuelidateInjectChildResults","VuelidateRemoveChildResults","nestedValidations","$scope","childResultsRaw","childResultsKeys","__vuelidateInjectInstances","$registerAs","childScope","$stopPropagation","__vuelidateRemoveInstances","childKey","sendValidationResultsToParent","removeValidationResultsFromParent","ComputedProxyFactory","useVuelidate","_getCurrentInstance","currentVueInstance","componentOptions","validationResults","vuelidateExternalResults","validationsConfig","validationsWatchTarget","newValidationRules","req","regex","expr","reg","validate$1","requiredIf","propOrFunction","parentVM","sameAs$1","equalTo","sameAs","otherName","hasPassiveEvents","passiveTestOptions","passive","isIosDevice","platform","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","lock","rawEvent","touches","disableBodyScroll","targetElement","ontouchstart","targetTouches","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","handleScroll","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","clientWidth","paddingRight","overflow","setOverflowHidden","enableBodyScroll","getIlluminant","ILLUMINANTS","getTransform","TRANSFORMS","toRadian","PI","bounded","cubeRoot","cbrt","pow","abs","types","find","testColorType","determineType","conversions","convertNow","conversionSteps","makeColourObject","types$1","convertArrayOrColour","A","X","Y","Z","B","C","D50","D55","D65","D75","E","F2","F7","F11","BRADFORD","INVERSE_BRADFORD","SRGB_XYZ","INVERSE_SRGB_XYZ","stringStartsWith","hex","rgb","cssrgb","hsl","csshsl","hsv","cmyk","yiq","XYZ","xyY","lms","cielab","cieluv","cielch","hsluv","epsilon","kappa","white","toR","L","cos","sin","hu","MAX_VALUE","atan2","toDegree","negativeModulo","rho","gamma","beta","bounded255","slicedToArray","return","epsilon$1","white$1","fromXYZ","boundedRgb","fromXYZTolms","fromXYZTocielab","fromXYZTocieluv","fromXYZToxyY","hsl$1","rgb$1","q","bound","freeze","msMaxTouchPoints","middleware","events","isActive","detectIframe","capture","srcTarget","composedPath","CustomEvent","cancelable","defaultPrevented","evt","origPrevent","createEvent","initCustomEvent","detail","matchHtmlRegExp","escape","exec","lastIndex","substring","aa","nativeName","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bi","bn","bo","br","bs","ca","ch","co","cr","cs","cu","cv","de","dv","dz","ee","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hy","hz","ia","ie","ig","ii","ik","io","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","my","na","nb","nd","ne","ng","nl","nn","no","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tl","tn","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu","ISO6391","static","codes","code","getName","getNativeName","validate","language","init","converter","defaultAttributes","expires","toUTCString","encodeURIComponent","decodeURIComponent","stringifiedAttributes","cookie","write","cookies","jar","foundKey","read","withAttributes","withConverter","amd","localforage","require","_dereq_","scheduleDrain","draining","Mutation","WebKitMutationObserver","observer","setImmediate","MessageChannel","scriptEl","onreadystatechange","channel","port1","onmessage","port2","postMessage","oldQueue","task","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","getThen","thenable","onSuccess","tryCatch","status","out","reason","iterable","allResolver","outValue","race","response","idb","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","getIDB","createBlob","properties","Blob","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","append","getBlob","Promise$1","executeCallback","executeTwoCallbacks","errorCallback","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","forages","db","close","dbArgs","openreq","open","onupgradeneeded","createObjectStore","storeName","oldVersion","ex","newVersion","onerror","onsuccess","onversionchange","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","isDowngrade","isUpgrade","incVersion","_decodeBlob","encodedBlob","bin","buf","ArrayBuffer","Uint8Array","_binStringToArrayBuffer","atob","_isEncodedBlob","__local_forage_encoded_blob","_fullyReady","_initReady","_dbInfo","createTransaction","tx","transaction","forage","_tryReconnect","asyncStorage","_driver","_initStorage","ready","initPromises","ignoreErrors","_defaultConfig","_support","isSafari","openDatabase","hasFetch","fetch","IDBKeyRange","isIndexedDBValid","iterate","objectStore","openCursor","iterationNumber","cursor","getItem","setItem","txn","blob","put","onabort","oncomplete","matchedChrome","matchedEdge","_checkBlobSupportWithoutCaching","_checkBlobSupport","blobSupport","reader","FileReader","onloadend","base64","btoa","readAsBinaryString","store","removeItem","count","advanced","openKeyCursor","advance","dropInstance","currentConfig","isCurrentDb","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","BASE_CHARS","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","buffer","bytes","bufferToString","base64String","localforageSerializer","serialize","valueType","marker","fileReader","onload","readAsArrayBuffer","deserialize","blobType","matcher","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","createDbTable","executeSql","tryExecuteSql","sqlStatement","SYNTAX_ERR","rows","_setItem","retriesLeft","originalValue","serializer","sqlError","QUOTA_ERR","getAllStoreNames","storeNames","webSQLStorage","dbInfoPromise","description","operationInfo","dropTable","_getKeyPrefix","defaultConfig","keyPrefix","localStorageWrapper","localStorageTestKey","localStorage","checkIfLocalStorageThrows","isLocalStorageValid","keyPrefixLength","itemKey","searchElement","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","LocalForage","driverTypeKey","driverName","defineDriver","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","driverObject","complianceError","driverMethods","driverMethodName","methodNotImplementedFactory","methodName","optionalDriverMethod","configureMissingMethods","setDriverSupport","support","info","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","oldDriverSetDone","currentDriverIndex","driverPromiseLoop","initDriver","supports","libraryMethodsAndProperties","createInstance","localforage_js","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","funcTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","reIsNative","Buffer","getPrototype","allocUnsafe","objectCreate","symToStringTag","getNative","nativeIsBuffer","isBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","proto","Hash","entry","ListCache","MapCache","Stack","__data__","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","getMapData","pairs","LARGE_ARRAY_SIZE","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","isObjectLike","baseMerge","srcIndex","customizer","stack","iteratee","keysFunc","baseFor","srcValue","mergeFunc","safeGet","stacked","typedArray","arrayBuffer","isCommon","isArr","isBuff","isTyped","isArrayLike","copyArray","isDeep","cloneBuffer","byteLength","byteOffset","Ctor","isArguments","isNew","copyObject","keysIn","toPlainObject","isPrototype","initCloneObject","baseMergeDeep","baseSetToString","identity","isMasked","toSource","baseIsNative","isIndex","setToString","lastCalled","stamp","remaining","shortOut","other","isLength","baseUnary","inherited","isArg","isType","skipIndexes","baseTimes","arrayLikeKeys","nativeKeysIn","isProto","baseKeysIn","assigner","merge","otherArgs","overRest","baseRest","sources","isIterateeCall","DataView","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","setCacheAdd","setCacheHas","SetCache","stackClear","stackDelete","stackGet","stackHas","stackSet","predicate","resIndex","baseIndexOf","initAccum","shuffleSelf","reAsciiWord","baseEach","collection","lower","upper","arrayEach","baseAssign","baseAssignIn","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","subValue","baseForOwn","createBaseEach","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","createBaseFor","castPath","toKey","symbolsFunc","baseFindIndex","baseIsNaN","strictIndexOf","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseMatches","baseMatchesProperty","nativeKeys","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","cloneTypedArray","isArrayLikeObject","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","compareMultiple","iteratees","orders","baseSet","paths","baseUnset","indexes","previous","nativeFloor","floor","nativeRandom","eachFunc","nested","constant","comparer","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","seenIndex","stringToPath","baseSlice","strSymbols","chrSymbols","copy","cloneArrayBuffer","dataView","reFlags","regexp","symbolValueOf","valueOf","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","getSymbols","getSymbolsIn","arrayAggregator","baseAggregator","initializer","castSlice","hasUnicode","stringToArray","trailing","arrayReduce","deburr","words","reApos","findIndexFunc","deburrLetter","basePropertyOf","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","isKeyable","overArg","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","reHasUnicode","reHasUnicodeWord","input","cloneDataView","cloneRegExp","cloneSymbol","spreadableSymbol","isConcatSpreadable","reIsDeepProp","reIsPlainProp","memoize","baseRandom","rand","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","quote","subString","reWhitespace","unescapeHtmlChar","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsEmoji","reUnicodeWord","camelCase","createCompounder","word","upperFirst","baseClamp","CLONE_DEEP_FLAG","nativeMin","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","reLatin","reComboMark","baseFilter","createFind","toInteger","castFunction","createAggregator","groupBy","baseHasIn","hasPath","stubFalse","baseKeys","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","baseIsTypedArray","keyBy","baseExtremum","baseGt","memoized","Cache","createAssigner","mergeWith","baseLt","negate","pickBy","baseOrderBy","basePickBy","baseProperty","basePropertyDeep","baseReduce","basePullAt","arrayShuffle","baseShuffle","sortBy","baseSum","debounce","toFinite","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","charsEndIndex","charsStartIndex","chars","reEscapedHtml","reHasEscapedHtml","baseUniq","idCounter","createCaseFirst","baseValues","asciiWords","hasUnicodeWord","unicodeWords","documentMode","rootMargin","threshold","nodeName","src","poster","backgroundImage","toggle","NodeList","IntersectionObserver","intersectionRatio","isIntersecting","unobserve","background","triggerLoad","qs","url","xtend","PARSE_LINK_HEADER_MAXLEN","PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED","hasRel","rel","intoRels","createObjects","parseLink","link","linkUrl","parsedUrl","qry","query","linkHeader","checkHeader","closure","globalSelf","phxWindow","CHANNEL_STATES","CHANNEL_EVENTS","Push","payload","receivedResp","timeoutTimer","recHooks","sent","resend","reset","send","hasReceived","startTimeout","socket","topic","join_ref","joinRef","receive","cancelRefEvent","refEvent","matchReceive","cancelTimeout","makeRef","replyEventName","Timer","timerCalc","timer","tries","scheduleTimeout","Ajax","endPoint","accept","ontimeout","XDomainRequest","xdomainRequest","XMLHttpRequest","xhrRequest","parseJSON","responseText","onprogress","setRequestHeader","resp","queryStr","paramVal","LongPoll","token","skipHeartbeat","onopen","onclose","pollEndpoint","normalizeEndpoint","poll","endpointURL","appendParams","closeAndRetry","request","messages","msg","_code","_reason","serializer_default","HEADER_LENGTH","META_LENGTH","KINDS","reply","broadcast","encode","binaryEncode","decode","rawPayload","binaryDecode","metaLength","header","view","setUint8","char","combined","kind","getUint8","decoder","TextDecoder","decodePush","decodeReply","decodeBroadcast","joinRefSize","topicSize","eventSize","refSize","Socket","stateChangeCallbacks","channels","sendBuffer","transport","WebSocket","establishedConnections","defaultEncoder","defaultDecoder","closeWasClean","binaryType","connectClock","awaitingConnectionOnPageShow","conn","connect","heartbeatIntervalMs","rejoinAfterMs","reconnectAfterMs","logger","longpollerTimeout","vsn","heartbeatTimer","pendingHeartbeatRef","reconnectTimer","teardown","replaceTransport","newTransport","protocol","location","endPointURL","uri","host","onConnOpen","onConnError","onConnMessage","onConnClose","hasLogger","onOpen","onClose","onMessage","flushSendBuffer","resetHeartbeat","heartbeatTimeout","abnormalClose","sendHeartbeat","waitForBufferDone","waitForSocketClosed","bufferedAmount","triggerChanError","transportBefore","establishedBefore","isErrored","isClosed","connectionState","isConnected","stateChangeRefs","chanParams","chan","bindingRef","joinedOnce","joinPush","pushBuffer","rejoinTimer","rejoin","pushEvent","isJoining","canPush","isJoined","leavePush","_event","isMember","leaveOpenTopic","handledPayload","eventBindings","newRef","rawMessage","dupChannel","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","fromCharCode","RangeError","mapDomain","encoded","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","inputLength","bias","basic","lastIndexOf","oldi","baseMinusT","fromCodePoint","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","punycode","ucs2encode","sep","maxKeys","kstr","vstr","stringifyPrimitive","serviceWorkerOption","serviceWorker","util","Url","slashes","auth","port","hostname","hash","search","pathname","href","urlParse","relative","resolveObject","format","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","toASCII","qm","tkeys","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","hasTrailingSlash","isAbsolute","inBrowser","hasSymbol","isNumber","isRegExp","isEmptyObject","escapeHtml","rawText","createCompileError","loc","domain","SyntaxError","pathStateMachine","literalValueRE","getPathCharType","resolveWithKeyValue","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","devtools","translateDevTools","createDevToolsHook","payloads","fallbackWithSimple","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","__localeChainCache","chain","block","appendBlockToChain","defaults","blocks","follow","locale","appendLocaleToChain","tokens","appendItemToChain","toLocaleUpperCase","_resolver","_fallbacker","_additionalMeta","setAdditionalMeta","_fallbackContext","setFallbackContext","_cid","handleMissing","missingWarn","missing","onWarn","updateFallbackLocale","localeFallbacker","inc","CoreErrorCodes","INVALID_ARGUMENT","INVALID_DATE_ARGUMENT","INVALID_ISO_DATE_ARGUMENT","__EXTEND_POINT__","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","fallbackFormat","postTranslation","unresolving","messageCompiler","fallbackLocale","parseTranslateArgs","escapeParameter","fallbackWarn","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","named","escapeParams","formatScope","targetLocale","resolveMessageFormat","cacheBaseKey","occurred","compileMessageFormat","ctxOptions","pluralRules","messageResolver","resolveValue","fallbackContext","processor","plural","pluralIndex","getMessageContextOptions","messaged","msgCtx","evaluateMessage","getPluralIndex","pluralRule","orgPluralRule","_list","_named","normalizeNamed","interpolate","arg1","arg2","modifier","createMessageContext","__INTLIFY_PROD_DEVTOOLS__","timestamp","__meta","locales","missingRet","errorDetector","warnHtmlMessage","onCacheKey","friendlyJSONstringify","json","generateFormatCacheKey","getCompileOptions","arg3","intlDefined","Intl","datetime","datetimeFormats","__datetimeFormatters","overrides","parseDateTimeArgs","DateTimeFormat","datetimeFormat","formatter","formatToParts","NumberFormat","DATETIME_FORMAT_OPTIONS_KEYS","arg4","dateTime","toISOString","clearDateTimeFormat","numberFormats","__numberFormatters","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","code$1","inc$1","I18nErrorCodes","UNEXPECTED_RETURN_TYPE","MUST_BE_CALL_SETUP_TOP","NOT_INSLALLED","NOT_AVAILABLE_IN_LEGACY_MODE","REQUIRED_VALUE","INVALID_VALUE","CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN","NOT_INSLALLED_WITH_PROVIDE","UNEXPECTED_ERROR","NOT_COMPATIBLE_LEGACY_VUE_I18N","BRIDGE_SUPPORT_VUE_2_ONLY","MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION","NOT_AVAILABLE_COMPOSITION_IN_LEGACY","createI18nError","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOption","handleFlatJson","subKeys","currentObj","getLocaleMessages","__i18n","flatJson","custom","resource","deepCopy","isNotObjectOrIsArray","des","getComponentOptions","adjustI18nResources","__i18nGlobal","mergeLocaleMessage","mergeDateTimeFormat","mergeNumberFormat","DEVTOOLS_META","composerID","defineCoreMissingHandler","createComposer","VueI18nLegacy","__root","_isGlobal","_inheritLocale","inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","framework","_compiler","internalOptions","cid","i18n","initI18nDevTools","createCoreContext","getCoreContext","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","getMetaInfo","getLocaleMessage","composer","availableLocales","isGlobal","setLocaleMessage","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","rt","tm","targetLocaleMessages","messageValue","resolveMessages","getDateTimeFormat","setDateTimeFormat","getNumberFormat","setNumberFormat","__injectWithOption","createVueI18n","silentTranslationWarn","silentFallbackWarn","formatFallbackMessages","pluralizationRules","warnHtmlInMessage","escapeParameterHtml","sync","sharedMessages","convertComposerOptions","vueI18n","preserveDirectiveContent","__composer","tc","getChoiceIndex","__onComponentInstanceCreated","componentInstanceCreatedListener","baseFormatProps","getFragmentableTag","Translation","keypath","useI18n","useScope","__useComponent","getInterpolateArg","assignedAttrs","renderFormatter","slotKeys","partFormatter","DatetimeFormat","parseValue","makeParams","mergeToRoot","I18nInjectionKey","createI18n","__legacyMode","__VUE_I18N_LEGACY_API__","legacy","__globalInjection","globalInjection","__allowComposition","allowComposition","__instances","globalScope","__global","legacyMode","createGlobal","async","__VUE_I18N_SYMBOL__","globalExportProps","desc","$i18n","globalExportMethods","injectGlobalFields","__VUE_I18N_FULL_INSTALL__","pluginOptions","useI18nComponentName","globalInstall","_process","i18nInternal","__getInstance","getComposer$2","parsedValue","__i18nWatcher","getSSRProps","vTDirective","vuei18n","optionsI18n","__setInstance","$t","$rt","$tc","$te","$d","$n","$tm","__deleteInstance","defineMixin","unmountApp","dispose","getI18nInstance","getGlobalComposer","getScope","isLocale","_composer","warpWithDeps","useI18nForLegacy","useComponent","getComposer","composerOptions","setupLifeCycle","hit","newChar","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","trimmed","exp","stripQuotes","formatSubPath","needWarn","initFeatureFlags","__INTLIFY__","__INTLIFY_DEVTOOLS_GLOBAL_HOOK__","sfc","isBrowser","applyToParams","newParams","TRAILING_SLASH_RE","parseURL","parseQuery","currentLocation","searchString","hashPos","searchPos","fromSegments","toSegments","toPosition","segment","resolveRelativePath","fullPath","stripBase","isSameRouteRecord","aliasOf","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","NavigationType","NavigationDirection","BEFORE_HASH_RE","createHref","computeScrollPosition","pageXOffset","pageYOffset","getScrollKey","history","scrollPositions","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","buildState","back","forward","replaced","computeScroll","scroll","createWebHistory","historyNavigation","historyState","changeLocation","hashIndex","currentState","useHistoryStateNavigation","baseEl","normalizeBase","historyListeners","listeners","teardowns","pauseState","popStateHandler","fromState","direction","unknown","beforeUnloadListener","replaceState","pauseListeners","listen","destroy","useHistoryListeners","routerHistory","go","triggerListeners","isRouteName","START_LOCATION_NORMALIZED","matched","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","strict","REGEX_CHARS_RE","compareScoreArray","comparePathParserScore","aScore","score","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","createRouteRecordMatcher","record","extraOptions","segmentScores","tokenIndex","subSegmentScore","repeatable","optional","re","subPattern","avoidDuplicatedSlash","param","tokensToParser","crash","previousState","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","tokenizePath","paramsFromLocation","normalizeRecordProps","propsObject","isAliasRecord","mergeMetaFields","partialOptions","isRecordChildOf","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeQueryValue","encodeParam","encodePath","searchParams","searchParam","eqPos","stringifyQuery","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","guardToPromiseFn","enterCallbackArray","enterCallbacks","valid","route","guardReturn","instances","guardCall","extractComponentsGuards","guardType","guards","rawComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","innerValue","outerValue","includesParams","isExactActive","navigate","guardEvent","RouterLink","compatConfig","MODE","activeClass","exactActiveClass","ariaCurrentValue","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","onClick","propClass","globalClass","defaultClass","slotContent","RouterView","injectedRoute","routeToDisplay","injectedDepth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","leaveGuards","updateGuards","currentName","ViewComponent","routePropsOption","routeProps","createRouter","routes","globalOptions","matchers","matcherMap","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","redirect","normalizeRouteRecord","normalizedRecords","originalMatcher","normalizedRecord","parentPath","connectingSlash","removeRoute","insertMatcher","matcherRef","parentMatcher","getRoutes","getRecordMatcher","createRouterMatcher","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","rawLocation","locationNormalized","matcherLocation","targetParams","stringifyURL","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","shouldRedirect","toLocation","failure","aLastIndex","bLastIndex","isSameRouteLocation","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","recordFrom","recordTo","extractChangingRecords","reverse","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","removeHistoryListener","readyHandlers","errorHandlers","_from","listening","scrollPosition","getSavedScrollPosition","scrollToOptions","positionEl","isIdSelector","getElementById","docRect","elRect","behavior","getElementPosition","scrollTo","scrollToPosition","started","installedApps","parentOrRoute","recordMatcher","hasRoute","routeMatcher","beforeEach","beforeResolve","afterEach","isReady","$router","reactiveRoute","getTarget","isProxyAvailable","supported","ApiProxy","targetQueue","onQueue","defaultSettings","settings","localSettingsSaveId","currentSettings","fallbacks","getSettings","setSettings","perf_hooks","pluginId","proxiedOn","_target","proxiedTarget","forEachValue","genericSubscribe","subs","resetStore","hot","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","installModule","_modules","resetStoreState","oldState","_state","oldScope","_scope","getters","_makeLocalGettersCache","wrappedGetters","computedObj","computedCache","partial","enableStrictMode","_withCommit","rootState","isRoot","getNamespace","namespaced","parentState","getNestedState","moduleName","local","noNamespace","dispatch","_type","_payload","_options","unifyObjectStyle","commit","makeLocalGetters","makeLocalContext","forEachMutation","registerMutation","forEachAction","rootGetters","_devtoolHook","registerAction","forEachGetter","rawGetter","registerGetter","forEachChild","gettersProxy","splitPos","localType","MUTATIONS_LAYER_ID","ACTIONS_LAYER_ID","INSPECTOR_ID","actionId","addDevtools","pluginDescriptor","setupFn","__VUE_DEVTOOLS_GLOBAL_HOOK__","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","__VUE_DEVTOOLS_PLUGINS__","setupDevtoolsPlugin","label","homepage","logo","packageName","componentStateTypes","addTimelineLayer","color","COLOR_LIME_500","addInspector","treeFilterPlaceholder","getInspectorTree","inspectorId","nodes","flattenStoreForInspectorTree","rootNodes","formatStoreForInspectorTree","getInspectorState","modulePath","nodeId","gettersKeys","storeState","editable","tree","leafKey","_custom","tooltip","canThrow","transformPathsToObjectTree","extractNameFromPath","formatStoreForInspectorState","moduleMap","_children","editInspectorState","subscribe","notifyComponentUpdate","sendInspectorTree","sendInspectorState","addTimelineEvent","layerId","subscribeAction","_id","_time","groupId","subtitle","after","TAG_NAMESPACED","textColor","backgroundColor","tags","Module","rawModule","runtime","_rawModule","rawState","prototypeAccessors$1","addChild","getChild","hasChild","ModuleCollection","rawRootModule","targetModule","newModule","modules","createStore","Store","this$1$1","rawChildModule","unregister","isRegistered","plugins","_committing","_actionSubscribers","_subscribers","_devtools","prototypeAccessors","injectKey","$store","sub","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","doneResult","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","skipTempReset","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_assertThisInitialized","ReferenceError","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_createClass","staticProps","_extends","_getPrototypeOf","_inherits","subClass","superClass","_objectDestructuringEmpty","_possibleConstructorReturn","_setPrototypeOf","arrayWithHoles","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","iterableToArray","_isNativeReflectConstruct","construct","sham","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","EventTarget","wm","once","handleEvent","_stopImmediatePropagationFlag","secret"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/app.4c23e08cf351a54f4177.js b/priv/static/static/js/app.4c23e08cf351a54f4177.js
deleted file mode 100644
index a4227294f..000000000
--- a/priv/static/static/js/app.4c23e08cf351a54f4177.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(()=>{var e,t,n,r,o,i,s,a={88797:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={about:{mrf:{federation:e=>{const{normalize:t}=e;return t(["Federation"])},keyword:{keyword_policies:e=>{const{normalize:t}=e;return t(["Keyword policies"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "The Whole Known Network" Timeline'])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},replace:e=>{const{normalize:t}=e;return t(["Replace"])},is_replaced_by:e=>{const{normalize:t}=e;return t(["→"])}},mrf_policies:e=>{const{normalize:t}=e;return t(["Enabled MRF policies"])},mrf_policies_desc:e=>{const{normalize:t}=e;return t(["MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:"])},simple:{simple_policies:e=>{const{normalize:t}=e;return t(["Instance-specific policies"])},instance:e=>{const{normalize:t}=e;return t(["Instance"])},reason:e=>{const{normalize:t}=e;return t(["Reason"])},not_applicable:e=>{const{normalize:t}=e;return t(["N/A"])},accept:e=>{const{normalize:t}=e;return t(["Accept"])},accept_desc:e=>{const{normalize:t}=e;return t(["This instance only accepts messages from the following instances:"])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},reject_desc:e=>{const{normalize:t}=e;return t(["This instance will not accept messages from the following instances:"])},quarantine:e=>{const{normalize:t}=e;return t(["Quarantine"])},quarantine_desc:e=>{const{normalize:t}=e;return t(["This instance will send only public posts to the following instances:"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "Known Network" Timeline'])},ftl_removal_desc:e=>{const{normalize:t}=e;return t(['This instance removes these instances from "Known Network" timeline:'])},media_removal:e=>{const{normalize:t}=e;return t(["Media Removal"])},media_removal_desc:e=>{const{normalize:t}=e;return t(["This instance removes media from posts on the following instances:"])},media_nsfw:e=>{const{normalize:t}=e;return t(["Media force-set as sensitive"])},media_nsfw_desc:e=>{const{normalize:t}=e;return t(["This instance forces media to be set sensitive in posts on the following instances:"])}}},staff:e=>{const{normalize:t}=e;return t(["Staff"])}},announcements:{page_header:e=>{const{normalize:t}=e;return t(["Announcements"])},title:e=>{const{normalize:t}=e;return t(["Announcement"])},mark_as_read_action:e=>{const{normalize:t}=e;return t(["Mark as read"])},post_form_header:e=>{const{normalize:t}=e;return t(["Post announcement"])},post_placeholder:e=>{const{normalize:t}=e;return t(["Type your announcement content here..."])},post_action:e=>{const{normalize:t}=e;return t(["Post"])},post_error:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Error: ",n(r("error"))])},close_error:e=>{const{normalize:t}=e;return t(["Close"])},delete_action:e=>{const{normalize:t}=e;return t(["Delete"])},start_time_prompt:e=>{const{normalize:t}=e;return t(["Start time: "])},end_time_prompt:e=>{const{normalize:t}=e;return t(["End time: "])},all_day_prompt:e=>{const{normalize:t}=e;return t(["This is an all-day event"])},published_time_display:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Published at ",n(r("time"))])},start_time_display:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Starts at ",n(r("time"))])},end_time_display:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Ends at ",n(r("time"))])},edit_action:e=>{const{normalize:t}=e;return t(["Edit"])},submit_edit_action:e=>{const{normalize:t}=e;return t(["Submit"])},cancel_edit_action:e=>{const{normalize:t}=e;return t(["Cancel"])},inactive_message:e=>{const{normalize:t}=e;return t(["This announcement is inactive"])}},shoutbox:{title:e=>{const{normalize:t}=e;return t(["Shoutbox"])}},domain_mute_card:{mute:e=>{const{normalize:t}=e;return t(["Mute"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])}},exporter:{export:e=>{const{normalize:t}=e;return t(["Export"])},processing:e=>{const{normalize:t}=e;return t(["Processing, you'll soon be asked to download your file"])}},features_panel:{shout:e=>{const{normalize:t}=e;return t(["Shoutbox"])},pleroma_chat_messages:e=>{const{normalize:t}=e;return t(["Pleroma Chat"])},gopher:e=>{const{normalize:t}=e;return t(["Gopher"])},media_proxy:e=>{const{normalize:t}=e;return t(["Media proxy"])},scope_options:e=>{const{normalize:t}=e;return t(["Scope options"])},text_limit:e=>{const{normalize:t}=e;return t(["Text limit"])},title:e=>{const{normalize:t}=e;return t(["Features"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},upload_limit:e=>{const{normalize:t}=e;return t(["Upload limit"])}},finder:{error_fetching_user:e=>{const{normalize:t}=e;return t(["Error fetching user"])},find_user:e=>{const{normalize:t}=e;return t(["Find user"])}},general:{apply:e=>{const{normalize:t}=e;return t(["Apply"])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},more:e=>{const{normalize:t}=e;return t(["More"])},loading:e=>{const{normalize:t}=e;return t(["Loading…"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occured"])},generic_error_message:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["An error occured: ",n(r(0))])},error_retry:e=>{const{normalize:t}=e;return t(["Please try again"])},retry:e=>{const{normalize:t}=e;return t(["Try again"])},optional:e=>{const{normalize:t}=e;return t(["optional"])},show_more:e=>{const{normalize:t}=e;return t(["Show more"])},show_less:e=>{const{normalize:t}=e;return t(["Show less"])},never_show_again:e=>{const{normalize:t}=e;return t(["Never show again"])},dismiss:e=>{const{normalize:t}=e;return t(["Dismiss"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])},disable:e=>{const{normalize:t}=e;return t(["Disable"])},enable:e=>{const{normalize:t}=e;return t(["Enable"])},confirm:e=>{const{normalize:t}=e;return t(["Confirm"])},verify:e=>{const{normalize:t}=e;return t(["Verify"])},close:e=>{const{normalize:t}=e;return t(["Close"])},undo:e=>{const{normalize:t}=e;return t(["Undo"])},yes:e=>{const{normalize:t}=e;return t(["Yes"])},no:e=>{const{normalize:t}=e;return t(["No"])},peek:e=>{const{normalize:t}=e;return t(["Peek"])},scroll_to_top:e=>{const{normalize:t}=e;return t(["Scroll to top"])},role:{admin:e=>{const{normalize:t}=e;return t(["Admin"])},moderator:e=>{const{normalize:t}=e;return t(["Moderator"])}},unpin:e=>{const{normalize:t}=e;return t(["Unpin item"])},pin:e=>{const{normalize:t}=e;return t(["Pin item"])},flash_content:e=>{const{normalize:t}=e;return t(["Click to show Flash content using Ruffle (Experimental, may not work)."])},flash_security:e=>{const{normalize:t}=e;return t(["Note that this can be potentially dangerous since Flash content is still arbitrary code."])},flash_fail:e=>{const{normalize:t}=e;return t(["Failed to load flash content, see console for details."])},scope_in_timeline:{direct:e=>{const{normalize:t}=e;return t(["Direct"])},private:e=>{const{normalize:t}=e;return t(["Followers-only"])},public:e=>{const{normalize:t}=e;return t(["Public"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted"])}}},image_cropper:{crop_picture:e=>{const{normalize:t}=e;return t(["Crop picture"])},save:e=>{const{normalize:t}=e;return t(["Save"])},save_without_cropping:e=>{const{normalize:t}=e;return t(["Save without cropping"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},importer:{submit:e=>{const{normalize:t}=e;return t(["Submit"])},success:e=>{const{normalize:t}=e;return t(["Imported successfully."])},error:e=>{const{normalize:t}=e;return t(["An error occured while importing this file."])}},login:{login:e=>{const{normalize:t}=e;return t(["Log in"])},description:e=>{const{normalize:t}=e;return t(["Log in with OAuth"])},logout:e=>{const{normalize:t}=e;return t(["Log out"])},password:e=>{const{normalize:t}=e;return t(["Password"])},placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},register:e=>{const{normalize:t}=e;return t(["Register"])},username:e=>{const{normalize:t}=e;return t(["Username"])},hint:e=>{const{normalize:t}=e;return t(["Log in to join the discussion"])},authentication_code:e=>{const{normalize:t}=e;return t(["Authentication code"])},enter_recovery_code:e=>{const{normalize:t}=e;return t(["Enter a recovery code"])},enter_two_factor_code:e=>{const{normalize:t}=e;return t(["Enter a two-factor code"])},recovery_code:e=>{const{normalize:t}=e;return t(["Recovery code"])},heading:{totp:e=>{const{normalize:t}=e;return t(["Two-factor authentication"])},recovery:e=>{const{normalize:t}=e;return t(["Two-factor recovery"])}}},media_modal:{previous:e=>{const{normalize:t}=e;return t(["Previous"])},next:e=>{const{normalize:t}=e;return t(["Next"])},counter:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("current"))," / ",n(r("total"))])},hide:e=>{const{normalize:t}=e;return t(["Close media viewer"])}},nav:{about:e=>{const{normalize:t}=e;return t(["About"])},administration:e=>{const{normalize:t}=e;return t(["Administration"])},back:e=>{const{normalize:t}=e;return t(["Back"])},friend_requests:e=>{const{normalize:t}=e;return t(["Follow requests"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},interactions:e=>{const{normalize:t}=e;return t(["Interactions"])},dms:e=>{const{normalize:t}=e;return t(["Direct messages"])},public_tl:e=>{const{normalize:t}=e;return t(["Public timeline"])},timeline:e=>{const{normalize:t}=e;return t(["Timeline"])},home_timeline:e=>{const{normalize:t}=e;return t(["Home timeline"])},twkn:e=>{const{normalize:t}=e;return t(["Known Network"])},bookmarks:e=>{const{normalize:t}=e;return t(["Bookmarks"])},user_search:e=>{const{normalize:t}=e;return t(["User Search"])},search:e=>{const{normalize:t}=e;return t(["Search"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},preferences:e=>{const{normalize:t}=e;return t(["Preferences"])},timelines:e=>{const{normalize:t}=e;return t(["Timelines"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},lists:e=>{const{normalize:t}=e;return t(["Lists"])},edit_nav_mobile:e=>{const{normalize:t}=e;return t(["Customize navigation bar"])},edit_pinned:e=>{const{normalize:t}=e;return t(["Edit pinned items"])},edit_finish:e=>{const{normalize:t}=e;return t(["Done editing"])},mobile_sidebar:e=>{const{normalize:t}=e;return t(["Toggle mobile sidebar"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications (there are unread ones)"])},mobile_notifications_close:e=>{const{normalize:t}=e;return t(["Close notifications"])},announcements:e=>{const{normalize:t}=e;return t(["Announcements"])}},notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Error fetching notifications: ",n(r(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["reacted with ",n(r(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["submitted a report"])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}},polls:{add_poll:e=>{const{normalize:t}=e;return t(["Add poll"])},add_option:e=>{const{normalize:t}=e;return t(["Add option"])},option:e=>{const{normalize:t}=e;return t(["Option"])},votes:e=>{const{normalize:t}=e;return t(["votes"])},people_voted_count:e=>{const{normalize:t,interpolate:n,named:r,plural:o}=e;return o([t([n(r("count"))," person voted"]),t([n(r("count"))," people voted"])])},votes_count:e=>{const{normalize:t,interpolate:n,named:r,plural:o}=e;return o([t([n(r("count"))," vote"]),t([n(r("count"))," votes"])])},vote:e=>{const{normalize:t}=e;return t(["Vote"])},type:e=>{const{normalize:t}=e;return t(["Poll type"])},single_choice:e=>{const{normalize:t}=e;return t(["Single choice"])},multiple_choices:e=>{const{normalize:t}=e;return t(["Multiple choices"])},expiry:e=>{const{normalize:t}=e;return t(["Poll age"])},expires_in:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Poll ends in ",n(r(0))])},expired:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Poll ended ",n(r(0))," ago"])},not_enough_options:e=>{const{normalize:t}=e;return t(["Too few unique options in poll"])}},emoji:{stickers:e=>{const{normalize:t}=e;return t(["Stickers"])},emoji:e=>{const{normalize:t}=e;return t(["Emoji"])},keep_open:e=>{const{normalize:t}=e;return t(["Keep picker open"])},search_emoji:e=>{const{normalize:t}=e;return t(["Search for an emoji"])},add_emoji:e=>{const{normalize:t}=e;return t(["Insert emoji"])},custom:e=>{const{normalize:t}=e;return t(["Custom emoji"])},unicode:e=>{const{normalize:t}=e;return t(["Unicode emoji"])},unicode_groups:{activities:e=>{const{normalize:t}=e;return t(["Activities"])},"animals-and-nature":e=>{const{normalize:t}=e;return t(["Animals & Nature"])},flags:e=>{const{normalize:t}=e;return t(["Flags"])},"food-and-drink":e=>{const{normalize:t}=e;return t(["Food & Drink"])},objects:e=>{const{normalize:t}=e;return t(["Objects"])},"people-and-body":e=>{const{normalize:t}=e;return t(["People & Body"])},"smileys-and-emotion":e=>{const{normalize:t}=e;return t(["Smileys & Emotion"])},symbols:e=>{const{normalize:t}=e;return t(["Symbols"])},"travel-and-places":e=>{const{normalize:t}=e;return t(["Travel & Places"])}},load_all_hint:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Loaded first ",n(r("saneAmount"))," emoji, loading all emoji may cause performance issues."])},load_all:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Loading all ",n(r("emojiAmount"))," emoji"])},regional_indicator:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Regional indicator ",n(r("letter"))])}},errors:{storage_unavailable:e=>{const{normalize:t}=e;return t(["Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."])}},interactions:{favs_repeats:e=>{const{normalize:t}=e;return t(["Repeats and favorites"])},follows:e=>{const{normalize:t}=e;return t(["New follows"])},emoji_reactions:e=>{const{normalize:t}=e;return t(["Emoji Reactions"])},reports:e=>{const{normalize:t}=e;return t(["Reports"])},moves:e=>{const{normalize:t}=e;return t(["User migrates"])},load_older:e=>{const{normalize:t}=e;return t(["Load older interactions"])}},post_status:{edit_status:e=>{const{normalize:t}=e;return t(["Edit status"])},new_status:e=>{const{normalize:t}=e;return t(["Post new status"])},account_not_locked_warning:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your account is not ",n(r(0)),". Anyone can follow you to view your follower-only posts."])},account_not_locked_warning_link:e=>{const{normalize:t}=e;return t(["locked"])},attachments_sensitive:e=>{const{normalize:t}=e;return t(["Mark attachments as sensitive"])},media_description:e=>{const{normalize:t}=e;return t(["Media description"])},content_type:{"text/plain":e=>{const{normalize:t}=e;return t(["Plain text"])},"text/html":e=>{const{normalize:t}=e;return t(["HTML"])},"text/markdown":e=>{const{normalize:t}=e;return t(["Markdown"])},"text/bbcode":e=>{const{normalize:t}=e;return t(["BBCode"])}},content_warning:e=>{const{normalize:t}=e;return t(["Subject (optional)"])},default:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},direct_warning_to_all:e=>{const{normalize:t}=e;return t(["This post will be visible to all the mentioned users."])},direct_warning_to_first_only:e=>{const{normalize:t}=e;return t(["This post will only be visible to the mentioned users at the beginning of the message."])},edit_remote_warning:e=>{const{normalize:t}=e;return t(["Other remote instances may not support editing and unable to receive the latest version of your post."])},edit_unsupported_warning:e=>{const{normalize:t}=e;return t(["Pleroma does not support editing mentions or polls."])},posting:e=>{const{normalize:t}=e;return t(["Posting"])},post:e=>{const{normalize:t}=e;return t(["Post"])},preview:e=>{const{normalize:t}=e;return t(["Preview"])},preview_empty:e=>{const{normalize:t}=e;return t(["Empty"])},empty_status_error:e=>{const{normalize:t}=e;return t(["Can't post an empty status with no files"])},media_description_error:e=>{const{normalize:t}=e;return t(["Failed to update media, try again"])},scope_notice:{public:e=>{const{normalize:t}=e;return t(["This post will be visible to everyone"])},private:e=>{const{normalize:t}=e;return t(["This post will be visible to your followers only"])},unlisted:e=>{const{normalize:t}=e;return t(["This post will not be visible in Public Timeline and The Whole Known Network"])}},scope:{direct:e=>{const{normalize:t}=e;return t(["Direct - post to mentioned users only"])},private:e=>{const{normalize:t}=e;return t(["Followers-only - post to followers only"])},public:e=>{const{normalize:t}=e;return t(["Public - post to public timelines"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted - do not post to public timelines"])}}},registration:{bio_optional:e=>{const{normalize:t}=e;return t(["Bio (optional)"])},email:e=>{const{normalize:t}=e;return t(["Email"])},email_optional:e=>{const{normalize:t}=e;return t(["Email (optional)"])},fullname:e=>{const{normalize:t}=e;return t(["Display name"])},password_confirm:e=>{const{normalize:t}=e;return t(["Password confirmation"])},registration:e=>{const{normalize:t}=e;return t(["Registration"])},token:e=>{const{normalize:t}=e;return t(["Invite token"])},captcha:e=>{const{normalize:t}=e;return t(["CAPTCHA"])},new_captcha:e=>{const{normalize:t}=e;return t(["Click the image to get a new captcha"])},username_placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},fullname_placeholder:e=>{const{normalize:t}=e;return t(["e.g. Lain Iwakura"])},bio_placeholder:e=>{const{normalize:t}=e;return t(["e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired."])},reason:e=>{const{normalize:t}=e;return t(["Reason to register"])},reason_placeholder:e=>{const{normalize:t}=e;return t(["This instance approves registrations manually.\nLet the administration know why you want to register."])},register:e=>{const{normalize:t}=e;return t(["Register"])},validations:{username_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},fullname_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},email_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_match:e=>{const{normalize:t}=e;return t(["should be the same as password"])}},email_language:e=>{const{normalize:t}=e;return t(["In which language do you want to receive emails from the server?"])}},remote_user_resolver:{remote_user_resolver:e=>{const{normalize:t}=e;return t(["Remote user resolver"])},searching_for:e=>{const{normalize:t}=e;return t(["Searching for"])},error:e=>{const{normalize:t}=e;return t(["Not found."])}},report:{reporter:e=>{const{normalize:t}=e;return t(["Reporter:"])},reported_user:e=>{const{normalize:t}=e;return t(["Reported user:"])},reported_statuses:e=>{const{normalize:t}=e;return t(["Reported statuses:"])},notes:e=>{const{normalize:t}=e;return t(["Notes:"])},state:e=>{const{normalize:t}=e;return t(["State:"])},state_open:e=>{const{normalize:t}=e;return t(["Open"])},state_closed:e=>{const{normalize:t}=e;return t(["Closed"])},state_resolved:e=>{const{normalize:t}=e;return t(["Resolved"])}},selectable_list:{select_all:e=>{const{normalize:t}=e;return t(["Select all"])}},settings:{app_name:e=>{const{normalize:t}=e;return t(["App name"])},expert_mode:e=>{const{normalize:t}=e;return t(["Show advanced"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},security:e=>{const{normalize:t}=e;return t(["Security"])},setting_changed:e=>{const{normalize:t}=e;return t(["Setting is different from default"])},setting_server_side:e=>{const{normalize:t}=e;return t(["This setting is tied to your profile and affects all sessions and clients"])},enter_current_password_to_confirm:e=>{const{normalize:t}=e;return t(["Enter your current password to confirm your identity"])},post_look_feel:e=>{const{normalize:t}=e;return t(["Posts Look & Feel"])},mention_links:e=>{const{normalize:t}=e;return t(["Mention links"])},mfa:{otp:e=>{const{normalize:t}=e;return t(["OTP"])},setup_otp:e=>{const{normalize:t}=e;return t(["Setup OTP"])},wait_pre_setup_otp:e=>{const{normalize:t}=e;return t(["presetting OTP"])},confirm_and_enable:e=>{const{normalize:t}=e;return t(["Confirm & enable OTP"])},title:e=>{const{normalize:t}=e;return t(["Two-factor Authentication"])},generate_new_recovery_codes:e=>{const{normalize:t}=e;return t(["Generate new recovery codes"])},warning_of_generate_new_codes:e=>{const{normalize:t}=e;return t(["When you generate new recovery codes, your old codes won’t work anymore."])},recovery_codes:e=>{const{normalize:t}=e;return t(["Recovery codes."])},waiting_a_recovery_codes:e=>{const{normalize:t}=e;return t(["Receiving backup codes…"])},recovery_codes_warning:e=>{const{normalize:t}=e;return t(["Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account."])},authentication_methods:e=>{const{normalize:t}=e;return t(["Authentication methods"])},scan:{title:e=>{const{normalize:t}=e;return t(["Scan"])},desc:e=>{const{normalize:t}=e;return t(["Using your two-factor app, scan this QR code or enter text key:"])},secret_code:e=>{const{normalize:t}=e;return t(["Key"])}},verify:{desc:e=>{const{normalize:t}=e;return t(["To enable two-factor authentication, enter the code from your two-factor app:"])}}},lists_navigation:e=>{const{normalize:t}=e;return t(["Show lists in navigation"])},allow_following_move:e=>{const{normalize:t}=e;return t(["Allow auto-follow when following account moves"])},attachmentRadius:e=>{const{normalize:t}=e;return t(["Attachments"])},attachments:e=>{const{normalize:t}=e;return t(["Attachments"])},avatar:e=>{const{normalize:t}=e;return t(["Avatar"])},avatarAltRadius:e=>{const{normalize:t}=e;return t(["Avatars (notifications)"])},avatarRadius:e=>{const{normalize:t}=e;return t(["Avatars"])},background:e=>{const{normalize:t}=e;return t(["Background"])},bio:e=>{const{normalize:t}=e;return t(["Bio"])},email_language:e=>{const{normalize:t}=e;return t(["Language for receiving emails from the server"])},block_export:e=>{const{normalize:t}=e;return t(["Block export"])},block_export_button:e=>{const{normalize:t}=e;return t(["Export your blocks to a csv file"])},block_import:e=>{const{normalize:t}=e;return t(["Block import"])},block_import_error:e=>{const{normalize:t}=e;return t(["Error importing blocks"])},blocks_imported:e=>{const{normalize:t}=e;return t(["Blocks imported! Processing them will take a while."])},mute_export:e=>{const{normalize:t}=e;return t(["Mute export"])},mute_export_button:e=>{const{normalize:t}=e;return t(["Export your mutes to a csv file"])},mute_import:e=>{const{normalize:t}=e;return t(["Mute import"])},mute_import_error:e=>{const{normalize:t}=e;return t(["Error importing mutes"])},mutes_imported:e=>{const{normalize:t}=e;return t(["Mutes imported! Processing them will take a while."])},import_mutes_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import mutes from a csv file"])},account_backup:e=>{const{normalize:t}=e;return t(["Account backup"])},account_backup_description:e=>{const{normalize:t}=e;return t(["This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account."])},account_backup_table_head:e=>{const{normalize:t}=e;return t(["Backup"])},download_backup:e=>{const{normalize:t}=e;return t(["Download"])},backup_not_ready:e=>{const{normalize:t}=e;return t(["This backup is not ready yet."])},remove_backup:e=>{const{normalize:t}=e;return t(["Remove"])},list_backups_error:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Error fetching backup list: ",n(r("error"))])},add_backup:e=>{const{normalize:t}=e;return t(["Create a new backup"])},added_backup:e=>{const{normalize:t}=e;return t(["Added a new backup."])},add_backup_error:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Error adding a new backup: ",n(r("error"))])},blocks_tab:e=>{const{normalize:t}=e;return t(["Blocks"])},bot:e=>{const{normalize:t}=e;return t(["This is a bot account"])},btnRadius:e=>{const{normalize:t}=e;return t(["Buttons"])},cBlue:e=>{const{normalize:t}=e;return t(["Blue (Reply, follow)"])},cGreen:e=>{const{normalize:t}=e;return t(["Green (Retweet)"])},cOrange:e=>{const{normalize:t}=e;return t(["Orange (Favorite)"])},cRed:e=>{const{normalize:t}=e;return t(["Red (Cancel)"])},change_email:e=>{const{normalize:t}=e;return t(["Change email"])},change_email_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your email."])},changed_email:e=>{const{normalize:t}=e;return t(["Email changed successfully!"])},change_password:e=>{const{normalize:t}=e;return t(["Change password"])},change_password_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your password."])},changed_password:e=>{const{normalize:t}=e;return t(["Password changed successfully!"])},chatMessageRadius:e=>{const{normalize:t}=e;return t(["Chat message"])},collapse_subject:e=>{const{normalize:t}=e;return t(["Collapse posts with subjects"])},composing:e=>{const{normalize:t}=e;return t(["Composing"])},confirm_new_password:e=>{const{normalize:t}=e;return t(["Confirm new password"])},current_password:e=>{const{normalize:t}=e;return t(["Current password"])},mutes_and_blocks:e=>{const{normalize:t}=e;return t(["Mutes and Blocks"])},data_import_export_tab:e=>{const{normalize:t}=e;return t(["Data import / export"])},default_vis:e=>{const{normalize:t}=e;return t(["Default visibility scope"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},delete_account_description:e=>{const{normalize:t}=e;return t(["Permanently delete your data and deactivate your account."])},delete_account_error:e=>{const{normalize:t}=e;return t(["There was an issue deleting your account. If this persists please contact your instance administrator."])},delete_account_instructions:e=>{const{normalize:t}=e;return t(["Type your password in the input below to confirm account deletion."])},account_alias:e=>{const{normalize:t}=e;return t(["Account aliases"])},account_alias_table_head:e=>{const{normalize:t}=e;return t(["Alias"])},list_aliases_error:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Error fetching aliases: ",n(r("error"))])},hide_list_aliases_error_action:e=>{const{normalize:t}=e;return t(["Close"])},remove_alias:e=>{const{normalize:t}=e;return t(["Remove this alias"])},new_alias_target:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Add a new alias (e.g. ",n(r("example")),")"])},added_alias:e=>{const{normalize:t}=e;return t(["Alias is added."])},add_alias_error:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Error adding alias: ",n(r("error"))])},move_account:e=>{const{normalize:t}=e;return t(["Move account"])},move_account_notes:e=>{const{normalize:t}=e;return t(["If you want to move the account somewhere else, you must go to your target account and add an alias pointing here."])},move_account_target:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Target account (e.g. ",n(r("example")),")"])},moved_account:e=>{const{normalize:t}=e;return t(["Account is moved."])},move_account_error:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Error moving account: ",n(r("error"))])},discoverable:e=>{const{normalize:t}=e;return t(["Allow discovery of this account in search results and other services"])},domain_mutes:e=>{const{normalize:t}=e;return t(["Domains"])},avatar_size_instruction:e=>{const{normalize:t}=e;return t(["The recommended minimum size for avatar images is 150x150 pixels."])},pad_emoji:e=>{const{normalize:t}=e;return t(["Pad emoji with spaces when adding from picker"])},emoji_reactions_on_timeline:e=>{const{normalize:t}=e;return t(["Show emoji reactions on timeline"])},export_theme:e=>{const{normalize:t}=e;return t(["Save preset"])},filtering:e=>{const{normalize:t}=e;return t(["Filtering"])},wordfilter:e=>{const{normalize:t}=e;return t(["Wordfilter"])},filtering_explanation:e=>{const{normalize:t}=e;return t(["All statuses containing these words will be muted, one per line"])},word_filter_and_more:e=>{const{normalize:t}=e;return t(["Word filter and more..."])},follow_export:e=>{const{normalize:t}=e;return t(["Follow export"])},follow_export_button:e=>{const{normalize:t}=e;return t(["Export your follows to a csv file"])},follow_import:e=>{const{normalize:t}=e;return t(["Follow import"])},follow_import_error:e=>{const{normalize:t}=e;return t(["Error importing followers"])},follows_imported:e=>{const{normalize:t}=e;return t(["Follows imported! Processing them will take a while."])},accent:e=>{const{normalize:t}=e;return t(["Accent"])},foreground:e=>{const{normalize:t}=e;return t(["Foreground"])},general:e=>{const{normalize:t}=e;return t(["General"])},hide_attachments_in_convo:e=>{const{normalize:t}=e;return t(["Hide attachments in conversations"])},hide_attachments_in_tl:e=>{const{normalize:t}=e;return t(["Hide attachments in timeline"])},hide_media_previews:e=>{const{normalize:t}=e;return t(["Hide media previews"])},hide_muted_posts:e=>{const{normalize:t}=e;return t(["Hide posts of muted users"])},mute_bot_posts:e=>{const{normalize:t}=e;return t(["Mute bot posts"])},hide_bot_indication:e=>{const{normalize:t}=e;return t(["Hide bot indication in posts"])},hide_all_muted_posts:e=>{const{normalize:t}=e;return t(["Hide muted posts"])},max_thumbnails:e=>{const{normalize:t}=e;return t(["Maximum amount of thumbnails per post (empty = no limit)"])},hide_isp:e=>{const{normalize:t}=e;return t(["Hide instance-specific panel"])},hide_shoutbox:e=>{const{normalize:t}=e;return t(["Hide instance shoutbox"])},right_sidebar:e=>{const{normalize:t}=e;return t(["Reverse order of columns"])},navbar_column_stretch:e=>{const{normalize:t}=e;return t(["Stretch navbar to columns width"])},always_show_post_button:e=>{const{normalize:t}=e;return t(["Always show floating New Post button"])},hide_wallpaper:e=>{const{normalize:t}=e;return t(["Hide instance wallpaper"])},preload_images:e=>{const{normalize:t}=e;return t(["Preload images"])},use_one_click_nsfw:e=>{const{normalize:t}=e;return t(["Open NSFW attachments with just one click"])},hide_post_stats:e=>{const{normalize:t}=e;return t(["Hide post statistics (e.g. the number of favorites)"])},hide_user_stats:e=>{const{normalize:t}=e;return t(["Hide user statistics (e.g. the number of followers)"])},hide_filtered_statuses:e=>{const{normalize:t}=e;return t(["Hide all filtered posts"])},hide_wordfiltered_statuses:e=>{const{normalize:t}=e;return t(["Hide word-filtered statuses"])},hide_muted_threads:e=>{const{normalize:t}=e;return t(["Hide muted threads"])},import_blocks_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import blocks from a csv file"])},import_followers_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import follows from a csv file"])},import_theme:e=>{const{normalize:t}=e;return t(["Load preset"])},inputRadius:e=>{const{normalize:t}=e;return t(["Input fields"])},checkboxRadius:e=>{const{normalize:t}=e;return t(["Checkboxes"])},instance_default:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["(default: ",n(r("value")),")"])},instance_default_simple:e=>{const{normalize:t}=e;return t(["(default)"])},interface:e=>{const{normalize:t}=e;return t(["Interface"])},interfaceLanguage:e=>{const{normalize:t}=e;return t(["Interface language"])},invalid_theme_imported:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma theme. No changes to your theme were made."])},limited_availability:e=>{const{normalize:t}=e;return t(["Unavailable in your browser"])},links:e=>{const{normalize:t}=e;return t(["Links"])},lock_account_description:e=>{const{normalize:t}=e;return t(["Restrict your account to approved followers only"])},loop_video:e=>{const{normalize:t}=e;return t(["Loop videos"])},loop_video_silent_only:e=>{const{normalize:t}=e;return t(['Loop only videos without sound (i.e. Mastodon\'s "gifs")'])},mutes_tab:e=>{const{normalize:t}=e;return t(["Mutes"])},play_videos_in_modal:e=>{const{normalize:t}=e;return t(["Play videos in a popup frame"])},file_export_import:{backup_restore:e=>{const{normalize:t}=e;return t(["Settings backup"])},backup_settings:e=>{const{normalize:t}=e;return t(["Backup settings to file"])},backup_settings_theme:e=>{const{normalize:t}=e;return t(["Backup settings and theme to file"])},restore_settings:e=>{const{normalize:t}=e;return t(["Restore settings from file"])},errors:{invalid_file:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma settings backup. No changes were made."])},file_too_new:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Incompatile major version: ",n(r("fileMajor")),", this PleromaFE (settings ver ",n(r("feMajor")),") is too old to handle it"])},file_too_old:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Incompatile major version: ",n(r("fileMajor")),", file version is too old and not supported (min. set. ver. ",n(r("feMajor")),")"])},file_slightly_new:e=>{const{normalize:t}=e;return t(["File minor version is different, some settings might not load"])}}},profile_fields:{label:e=>{const{normalize:t}=e;return t(["Profile metadata"])},add_field:e=>{const{normalize:t}=e;return t(["Add field"])},name:e=>{const{normalize:t}=e;return t(["Label"])},value:e=>{const{normalize:t}=e;return t(["Content"])}},account_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},use_contain_fit:e=>{const{normalize:t}=e;return t(["Don't crop the attachment in thumbnails"])},name:e=>{const{normalize:t}=e;return t(["Name"])},name_bio:e=>{const{normalize:t}=e;return t(["Name & bio"])},new_email:e=>{const{normalize:t}=e;return t(["New email"])},new_password:e=>{const{normalize:t}=e;return t(["New password"])},posts:e=>{const{normalize:t}=e;return t(["Posts"])},user_profiles:e=>{const{normalize:t}=e;return t(["User Profiles"])},notification_visibility:e=>{const{normalize:t}=e;return t(["Types of notifications to show"])},notification_visibility_follows:e=>{const{normalize:t}=e;return t(["Follows"])},notification_visibility_likes:e=>{const{normalize:t}=e;return t(["Favorites"])},notification_visibility_mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},notification_visibility_repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},notification_visibility_moves:e=>{const{normalize:t}=e;return t(["User Migrates"])},notification_visibility_emoji_reactions:e=>{const{normalize:t}=e;return t(["Reactions"])},notification_visibility_polls:e=>{const{normalize:t}=e;return t(["Ends of polls you voted in"])},no_rich_text_description:e=>{const{normalize:t}=e;return t(["Strip rich text formatting from all posts"])},no_blocks:e=>{const{normalize:t}=e;return t(["No blocks"])},no_mutes:e=>{const{normalize:t}=e;return t(["No mutes"])},hide_favorites_description:e=>{const{normalize:t}=e;return t(["Don't show list of my favorites (people still get notified)"])},hide_follows_description:e=>{const{normalize:t}=e;return t(["Don't show who I'm following"])},hide_followers_description:e=>{const{normalize:t}=e;return t(["Don't show who's following me"])},hide_follows_count_description:e=>{const{normalize:t}=e;return t(["Don't show follow count"])},hide_followers_count_description:e=>{const{normalize:t}=e;return t(["Don't show follower count"])},show_admin_badge:e=>{const{normalize:t}=e;return t(['Show "Admin" badge in my profile'])},show_moderator_badge:e=>{const{normalize:t}=e;return t(['Show "Moderator" badge in my profile'])},nsfw_clickthrough:e=>{const{normalize:t}=e;return t(["Hide sensitive/NSFW media"])},oauth_tokens:e=>{const{normalize:t}=e;return t(["OAuth tokens"])},token:e=>{const{normalize:t}=e;return t(["Token"])},refresh_token:e=>{const{normalize:t}=e;return t(["Refresh token"])},valid_until:e=>{const{normalize:t}=e;return t(["Valid until"])},revoke_token:e=>{const{normalize:t}=e;return t(["Revoke"])},panelRadius:e=>{const{normalize:t}=e;return t(["Panels"])},pause_on_unfocused:e=>{const{normalize:t}=e;return t(["Pause when tab is not focused"])},presets:e=>{const{normalize:t}=e;return t(["Presets"])},profile_background:e=>{const{normalize:t}=e;return t(["Profile background"])},profile_banner:e=>{const{normalize:t}=e;return t(["Profile banner"])},profile_tab:e=>{const{normalize:t}=e;return t(["Profile"])},radii_help:e=>{const{normalize:t}=e;return t(["Set up interface edge rounding (in pixels)"])},replies_in_timeline:e=>{const{normalize:t}=e;return t(["Replies in timeline"])},reply_visibility_all:e=>{const{normalize:t}=e;return t(["Show all replies"])},reply_visibility_following:e=>{const{normalize:t}=e;return t(["Only show replies directed at me or users I'm following"])},reply_visibility_self:e=>{const{normalize:t}=e;return t(["Only show replies directed at me"])},reply_visibility_following_short:e=>{const{normalize:t}=e;return t(["Show replies to my follows"])},reply_visibility_self_short:e=>{const{normalize:t}=e;return t(["Show replies to self only"])},autohide_floating_post_button:e=>{const{normalize:t}=e;return t(["Automatically hide New Post button (mobile)"])},saving_err:e=>{const{normalize:t}=e;return t(["Error saving settings"])},saving_ok:e=>{const{normalize:t}=e;return t(["Settings saved"])},search_user_to_block:e=>{const{normalize:t}=e;return t(["Search whom you want to block"])},search_user_to_mute:e=>{const{normalize:t}=e;return t(["Search whom you want to mute"])},security_tab:e=>{const{normalize:t}=e;return t(["Security"])},scope_copy:e=>{const{normalize:t}=e;return t(["Copy scope when replying (DMs are always copied)"])},minimal_scopes_mode:e=>{const{normalize:t}=e;return t(["Minimize post scope selection options"])},set_new_avatar:e=>{const{normalize:t}=e;return t(["Set new avatar"])},set_new_profile_background:e=>{const{normalize:t}=e;return t(["Set new profile background"])},set_new_profile_banner:e=>{const{normalize:t}=e;return t(["Set new profile banner"])},reset_avatar:e=>{const{normalize:t}=e;return t(["Reset avatar"])},reset_profile_background:e=>{const{normalize:t}=e;return t(["Reset profile background"])},reset_profile_banner:e=>{const{normalize:t}=e;return t(["Reset profile banner"])},reset_avatar_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the avatar?"])},reset_banner_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the banner?"])},reset_background_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the background?"])},settings:e=>{const{normalize:t}=e;return t(["Settings"])},subject_input_always_show:e=>{const{normalize:t}=e;return t(["Always show subject field"])},subject_line_behavior:e=>{const{normalize:t}=e;return t(["Copy subject when replying"])},subject_line_email:e=>{const{normalize:t}=e;return t(['Like email: "re: subject"'])},subject_line_mastodon:e=>{const{normalize:t}=e;return t(["Like mastodon: copy as is"])},subject_line_noop:e=>{const{normalize:t}=e;return t(["Do not copy"])},conversation_display:e=>{const{normalize:t}=e;return t(["Conversation display style"])},conversation_display_tree:e=>{const{normalize:t}=e;return t(["Tree-style"])},conversation_display_tree_quick:e=>{const{normalize:t}=e;return t(["Tree view"])},disable_sticky_headers:e=>{const{normalize:t}=e;return t(["Don't stick column headers to top of the screen"])},show_scrollbars:e=>{const{normalize:t}=e;return t(["Show side column's scrollbars"])},third_column_mode:e=>{const{normalize:t}=e;return t(["When there's enough space, show third column containing"])},third_column_mode_none:e=>{const{normalize:t}=e;return t(["Don't show third column at all"])},third_column_mode_notifications:e=>{const{normalize:t}=e;return t(["Notifications column"])},third_column_mode_postform:e=>{const{normalize:t}=e;return t(["Main post form and navigation"])},columns:e=>{const{normalize:t}=e;return t(["Columns"])},column_sizes:e=>{const{normalize:t}=e;return t(["Column sizes"])},column_sizes_sidebar:e=>{const{normalize:t}=e;return t(["Sidebar"])},column_sizes_content:e=>{const{normalize:t}=e;return t(["Content"])},column_sizes_notifs:e=>{const{normalize:t}=e;return t(["Notifications"])},tree_advanced:e=>{const{normalize:t}=e;return t(["Allow more flexible navigation in tree view"])},tree_fade_ancestors:e=>{const{normalize:t}=e;return t(["Display ancestors of the current status in faint text"])},conversation_display_linear:e=>{const{normalize:t}=e;return t(["Linear-style"])},conversation_display_linear_quick:e=>{const{normalize:t}=e;return t(["Linear view"])},conversation_other_replies_button:e=>{const{normalize:t}=e;return t(['Show the "other replies" button'])},conversation_other_replies_button_below:e=>{const{normalize:t}=e;return t(["Below statuses"])},conversation_other_replies_button_inside:e=>{const{normalize:t}=e;return t(["Inside statuses"])},max_depth_in_thread:e=>{const{normalize:t}=e;return t(["Maximum number of levels in thread to display by default"])},post_status_content_type:e=>{const{normalize:t}=e;return t(["Post status content type"])},sensitive_by_default:e=>{const{normalize:t}=e;return t(["Mark posts as sensitive by default"])},stop_gifs:e=>{const{normalize:t}=e;return t(["Pause animated images until you hover on them"])},streaming:e=>{const{normalize:t}=e;return t(["Automatically show new posts when scrolled to the top"])},auto_update:e=>{const{normalize:t}=e;return t(["Show new posts automatically"])},user_mutes:e=>{const{normalize:t}=e;return t(["Users"])},useStreamingApi:e=>{const{normalize:t}=e;return t(["Receive posts and notifications real-time"])},use_websockets:e=>{const{normalize:t}=e;return t(["Use websockets (Realtime updates)"])},text:e=>{const{normalize:t}=e;return t(["Text"])},theme:e=>{const{normalize:t}=e;return t(["Theme"])},theme_help:e=>{const{normalize:t}=e;return t(["Use hex color codes (#rrggbb) to customize your color theme."])},theme_help_v2_1:e=>{const{normalize:t}=e;return t(['You can also override certain component\'s colors and opacity by toggling the checkbox, use "Clear all" button to clear all overrides.'])},theme_help_v2_2:e=>{const{normalize:t}=e;return t(["Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case."])},tooltipRadius:e=>{const{normalize:t}=e;return t(["Tooltips/alerts"])},type_domains_to_mute:e=>{const{normalize:t}=e;return t(["Search domains to mute"])},upload_a_photo:e=>{const{normalize:t}=e;return t(["Upload a photo"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},values:{false:e=>{const{normalize:t}=e;return t(["no"])},true:e=>{const{normalize:t}=e;return t(["yes"])}},virtual_scrolling:e=>{const{normalize:t}=e;return t(["Optimize timeline rendering"])},use_at_icon:e=>{const{normalize:t}=e;return t(["Display ","@"," symbol as an icon instead of text"])},mention_link_display:e=>{const{normalize:t}=e;return t(["Display mention links"])},mention_link_display_short:e=>{const{normalize:t}=e;return t(["always as short names (e.g. ","@","foo)"])},mention_link_display_full_for_remote:e=>{const{normalize:t}=e;return t(["as full names only for remote users (e.g. ","@","foo","@","example.org)"])},mention_link_display_full:e=>{const{normalize:t}=e;return t(["always as full names (e.g. ","@","foo","@","example.org)"])},mention_link_use_tooltip:e=>{const{normalize:t}=e;return t(["Show user card when clicking mention links"])},mention_link_show_avatar:e=>{const{normalize:t}=e;return t(["Show user avatar beside the link"])},mention_link_show_avatar_quick:e=>{const{normalize:t}=e;return t(["Show user avatar next to mentions"])},mention_link_fade_domain:e=>{const{normalize:t}=e;return t(["Fade domains (e.g. ","@","example.org in ","@","foo","@","example.org)"])},mention_link_bolden_you:e=>{const{normalize:t}=e;return t(["Highlight mention of you when you are mentioned"])},user_popover_avatar_action:e=>{const{normalize:t}=e;return t(["Popover avatar click action"])},user_popover_avatar_action_zoom:e=>{const{normalize:t}=e;return t(["Zoom the avatar"])},user_popover_avatar_action_close:e=>{const{normalize:t}=e;return t(["Close the popover"])},user_popover_avatar_action_open:e=>{const{normalize:t}=e;return t(["Open profile"])},user_popover_avatar_overlay:e=>{const{normalize:t}=e;return t(["Show user popover over user avatar"])},fun:e=>{const{normalize:t}=e;return t(["Fun"])},greentext:e=>{const{normalize:t}=e;return t(["Meme arrows"])},show_yous:e=>{const{normalize:t}=e;return t(["Show (You)s"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},notification_setting_filters:e=>{const{normalize:t}=e;return t(["Filters"])},notification_setting_block_from_strangers:e=>{const{normalize:t}=e;return t(["Block notifications from users who you do not follow"])},notification_setting_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},notification_setting_hide_notification_contents:e=>{const{normalize:t}=e;return t(["Hide the sender and contents of push notifications"])},notification_mutes:e=>{const{normalize:t}=e;return t(["To stop receiving notifications from a specific user, use a mute."])},notification_blocks:e=>{const{normalize:t}=e;return t(["Blocking a user stops all notifications as well as unsubscribes them."])},enable_web_push_notifications:e=>{const{normalize:t}=e;return t(["Enable web push notifications"])},more_settings:e=>{const{normalize:t}=e;return t(["More settings"])},style:{switcher:{keep_color:e=>{const{normalize:t}=e;return t(["Keep colors"])},keep_shadows:e=>{const{normalize:t}=e;return t(["Keep shadows"])},keep_opacity:e=>{const{normalize:t}=e;return t(["Keep opacity"])},keep_roundness:e=>{const{normalize:t}=e;return t(["Keep roundness"])},keep_fonts:e=>{const{normalize:t}=e;return t(["Keep fonts"])},save_load_hint:e=>{const{normalize:t}=e;return t(['"Keep" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.'])},reset:e=>{const{normalize:t}=e;return t(["Reset"])},clear_all:e=>{const{normalize:t}=e;return t(["Clear all"])},clear_opacity:e=>{const{normalize:t}=e;return t(["Clear opacity"])},load_theme:e=>{const{normalize:t}=e;return t(["Load theme"])},keep_as_is:e=>{const{normalize:t}=e;return t(["Keep as is"])},use_snapshot:e=>{const{normalize:t}=e;return t(["Old version"])},use_source:e=>{const{normalize:t}=e;return t(["New version"])},help:{upgraded_from_v2:e=>{const{normalize:t}=e;return t(["PleromaFE has been upgraded, theme could look a little bit different than you remember."])},v2_imported:e=>{const{normalize:t}=e;return t(["File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."])},future_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in newer version of FE."])},older_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in older version of FE."])},snapshot_present:e=>{const{normalize:t}=e;return t(["Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead."])},snapshot_missing:e=>{const{normalize:t}=e;return t(["No theme snapshot was in the file so it could look different than originally envisioned."])},fe_upgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's theme engine upgraded after version update."])},fe_downgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's version rolled back."])},migration_snapshot_ok:e=>{const{normalize:t}=e;return t(["Just to be safe, theme snapshot loaded. You can try loading theme data."])},migration_napshot_gone:e=>{const{normalize:t}=e;return t(["For whatever reason snapshot was missing, some stuff could look different than you remember."])},snapshot_source_mismatch:e=>{const{normalize:t}=e;return t(["Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version."])}}},common:{color:e=>{const{normalize:t}=e;return t(["Color"])},opacity:e=>{const{normalize:t}=e;return t(["Opacity"])},contrast:{hint:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Contrast ratio is ",n(r("ratio")),", it ",n(r("level"))," ",n(r("context"))])},level:{aa:e=>{const{normalize:t}=e;return t(["meets Level AA guideline (minimal)"])},aaa:e=>{const{normalize:t}=e;return t(["meets Level AAA guideline (recommended)"])},bad:e=>{const{normalize:t}=e;return t(["doesn't meet any accessibility guidelines"])}},context:{"18pt":e=>{const{normalize:t}=e;return t(["for large (18pt+) text"])},text:e=>{const{normalize:t}=e;return t(["for text"])}}}},common_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Common"])},main:e=>{const{normalize:t}=e;return t(["Common colors"])},foreground_hint:e=>{const{normalize:t}=e;return t(['See "Advanced" tab for more detailed control'])},rgbo:e=>{const{normalize:t}=e;return t(["Icons, accents, badges"])}},advanced_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Advanced"])},alert:e=>{const{normalize:t}=e;return t(["Alert background"])},alert_error:e=>{const{normalize:t}=e;return t(["Error"])},alert_warning:e=>{const{normalize:t}=e;return t(["Warning"])},alert_neutral:e=>{const{normalize:t}=e;return t(["Neutral"])},post:e=>{const{normalize:t}=e;return t(["Posts/User bios"])},badge:e=>{const{normalize:t}=e;return t(["Badge background"])},popover:e=>{const{normalize:t}=e;return t(["Tooltips, menus, popovers"])},badge_notification:e=>{const{normalize:t}=e;return t(["Notification"])},panel_header:e=>{const{normalize:t}=e;return t(["Panel header"])},top_bar:e=>{const{normalize:t}=e;return t(["Top bar"])},borders:e=>{const{normalize:t}=e;return t(["Borders"])},buttons:e=>{const{normalize:t}=e;return t(["Buttons"])},inputs:e=>{const{normalize:t}=e;return t(["Input fields"])},faint_text:e=>{const{normalize:t}=e;return t(["Faded text"])},underlay:e=>{const{normalize:t}=e;return t(["Underlay"])},wallpaper:e=>{const{normalize:t}=e;return t(["Wallpaper"])},poll:e=>{const{normalize:t}=e;return t(["Poll graph"])},icons:e=>{const{normalize:t}=e;return t(["Icons"])},highlight:e=>{const{normalize:t}=e;return t(["Highlighted elements"])},pressed:e=>{const{normalize:t}=e;return t(["Pressed"])},selectedPost:e=>{const{normalize:t}=e;return t(["Selected post"])},selectedMenu:e=>{const{normalize:t}=e;return t(["Selected menu item"])},disabled:e=>{const{normalize:t}=e;return t(["Disabled"])},toggled:e=>{const{normalize:t}=e;return t(["Toggled"])},tabs:e=>{const{normalize:t}=e;return t(["Tabs"])},chat:{incoming:e=>{const{normalize:t}=e;return t(["Incoming"])},outgoing:e=>{const{normalize:t}=e;return t(["Outgoing"])},border:e=>{const{normalize:t}=e;return t(["Border"])}}},radii:{_tab_label:e=>{const{normalize:t}=e;return t(["Roundness"])}},shadows:{_tab_label:e=>{const{normalize:t}=e;return t(["Shadow and lighting"])},component:e=>{const{normalize:t}=e;return t(["Component"])},override:e=>{const{normalize:t}=e;return t(["Override"])},shadow_id:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Shadow #",n(r("value"))])},blur:e=>{const{normalize:t}=e;return t(["Blur"])},spread:e=>{const{normalize:t}=e;return t(["Spread"])},inset:e=>{const{normalize:t}=e;return t(["Inset"])},hintV3:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["For shadows you can also use the ",n(r(0))," notation to use other color slot."])},filter_hint:{always_drop_shadow:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Warning, this shadow always uses ",n(r(0))," when browser supports it."])},drop_shadow_syntax:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," does not support ",n(r(1))," parameter and ",n(r(2))," keyword."])},avatar_inset:e=>{const{normalize:t}=e;return t(["Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars."])},spread_zero:e=>{const{normalize:t}=e;return t(["Shadows with spread > 0 will appear as if it was set to zero"])},inset_classic:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Inset shadows will be using ",n(r(0))])}},components:{panel:e=>{const{normalize:t}=e;return t(["Panel"])},panelHeader:e=>{const{normalize:t}=e;return t(["Panel header"])},topBar:e=>{const{normalize:t}=e;return t(["Top bar"])},avatar:e=>{const{normalize:t}=e;return t(["User avatar (in profile view)"])},avatarStatus:e=>{const{normalize:t}=e;return t(["User avatar (in post display)"])},popup:e=>{const{normalize:t}=e;return t(["Popups and tooltips"])},button:e=>{const{normalize:t}=e;return t(["Button"])},buttonHover:e=>{const{normalize:t}=e;return t(["Button (hover)"])},buttonPressed:e=>{const{normalize:t}=e;return t(["Button (pressed)"])},buttonPressedHover:e=>{const{normalize:t}=e;return t(["Button (pressed+hover)"])},input:e=>{const{normalize:t}=e;return t(["Input field"])}}},fonts:{_tab_label:e=>{const{normalize:t}=e;return t(["Fonts"])},help:e=>{const{normalize:t}=e;return t(['Select font to use for elements of UI. For "custom" you have to enter exact font name as it appears in system.'])},components:{interface:e=>{const{normalize:t}=e;return t(["Interface"])},input:e=>{const{normalize:t}=e;return t(["Input fields"])},post:e=>{const{normalize:t}=e;return t(["Post text"])},postCode:e=>{const{normalize:t}=e;return t(["Monospaced text in a post (rich text)"])}},family:e=>{const{normalize:t}=e;return t(["Font name"])},size:e=>{const{normalize:t}=e;return t(["Size (in px)"])},weight:e=>{const{normalize:t}=e;return t(["Weight (boldness)"])},custom:e=>{const{normalize:t}=e;return t(["Custom"])}},preview:{header:e=>{const{normalize:t}=e;return t(["Preview"])},content:e=>{const{normalize:t}=e;return t(["Content"])},error:e=>{const{normalize:t}=e;return t(["Example error"])},button:e=>{const{normalize:t}=e;return t(["Button"])},text:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["A bunch of more ",n(r(0))," and ",n(r(1))])},mono:e=>{const{normalize:t}=e;return t(["content"])},input:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},faint_link:e=>{const{normalize:t}=e;return t(["helpful manual"])},fine_print:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Read our ",n(r(0))," to learn nothing useful!"])},header_faint:e=>{const{normalize:t}=e;return t(["This is fine"])},checkbox:e=>{const{normalize:t}=e;return t(["I have skimmed over terms and conditions"])},link:e=>{const{normalize:t}=e;return t(["a nice lil' link"])}}},version:{title:e=>{const{normalize:t}=e;return t(["Version"])},backend_version:e=>{const{normalize:t}=e;return t(["Backend version"])},frontend_version:e=>{const{normalize:t}=e;return t(["Frontend version"])}}},time:{unit:{days:e=>{const{normalize:t,interpolate:n,list:r,plural:o}=e;return o([t([n(r(0))," day"]),t([n(r(0))," days"])])},days_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"d"])},hours:e=>{const{normalize:t,interpolate:n,list:r,plural:o}=e;return o([t([n(r(0))," hour"]),t([n(r(0))," hours"])])},hours_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"h"])},minutes:e=>{const{normalize:t,interpolate:n,list:r,plural:o}=e;return o([t([n(r(0))," minute"]),t([n(r(0))," minutes"])])},minutes_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"min"])},months:e=>{const{normalize:t,interpolate:n,list:r,plural:o}=e;return o([t([n(r(0))," month"]),t([n(r(0))," months"])])},months_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"mo"])},seconds:e=>{const{normalize:t,interpolate:n,list:r,plural:o}=e;return o([t([n(r(0))," second"]),t([n(r(0))," seconds"])])},seconds_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"s"])},weeks:e=>{const{normalize:t,interpolate:n,list:r,plural:o}=e;return o([t([n(r(0))," week"]),t([n(r(0))," weeks"])])},weeks_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"w"])},years:e=>{const{normalize:t,interpolate:n,list:r,plural:o}=e;return o([t([n(r(0))," year"]),t([n(r(0))," years"])])},years_short:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0)),"y"])}},in_future:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["in ",n(r(0))])},in_past:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," ago"])},now:e=>{const{normalize:t}=e;return t(["just now"])},now_short:e=>{const{normalize:t}=e;return t(["now"])}},timeline:{collapse:e=>{const{normalize:t}=e;return t(["Collapse"])},conversation:e=>{const{normalize:t}=e;return t(["Conversation"])},error:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Error fetching timeline: ",n(r(0))])},load_older:e=>{const{normalize:t}=e;return t(["Load older statuses"])},no_retweet_hint:e=>{const{normalize:t}=e;return t(["Post is marked as followers-only or direct and cannot be repeated"])},repeated:e=>{const{normalize:t}=e;return t(["repeated"])},show_new:e=>{const{normalize:t}=e;return t(["Show new"])},reload:e=>{const{normalize:t}=e;return t(["Reload"])},up_to_date:e=>{const{normalize:t}=e;return t(["Up-to-date"])},no_more_statuses:e=>{const{normalize:t}=e;return t(["No more statuses"])},no_statuses:e=>{const{normalize:t}=e;return t(["No statuses"])},socket_reconnected:e=>{const{normalize:t}=e;return t(["Realtime connection established"])},socket_broke:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Realtime connection lost: CloseEvent code ",n(r(0))])},quick_view_settings:e=>{const{normalize:t}=e;return t(["Quick view settings"])},quick_filter_settings:e=>{const{normalize:t}=e;return t(["Quick filter settings"])}},status:{favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},delete:e=>{const{normalize:t}=e;return t(["Delete status"])},edit:e=>{const{normalize:t}=e;return t(["Edit status"])},edited_at:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["(last edited ",n(r("time")),")"])},pin:e=>{const{normalize:t}=e;return t(["Pin on profile"])},unpin:e=>{const{normalize:t}=e;return t(["Unpin from profile"])},pinned:e=>{const{normalize:t}=e;return t(["Pinned"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},unbookmark:e=>{const{normalize:t}=e;return t(["Unbookmark"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this status?"])},reply_to:e=>{const{normalize:t}=e;return t(["Reply to"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},replies_list:e=>{const{normalize:t}=e;return t(["Replies:"])},replies_list_with_others:e=>{const{normalize:t,interpolate:n,named:r,plural:o}=e;return o([t(["Replies (+",n(r("numReplies"))," other):"]),t(["Replies (+",n(r("numReplies"))," others):"])])},mute_conversation:e=>{const{normalize:t}=e;return t(["Mute conversation"])},unmute_conversation:e=>{const{normalize:t}=e;return t(["Unmute conversation"])},status_unavailable:e=>{const{normalize:t}=e;return t(["Status unavailable"])},copy_link:e=>{const{normalize:t}=e;return t(["Copy link to status"])},external_source:e=>{const{normalize:t}=e;return t(["External source"])},thread_muted:e=>{const{normalize:t}=e;return t(["Thread muted"])},thread_muted_and_words:e=>{const{normalize:t}=e;return t([", has words:"])},show_full_subject:e=>{const{normalize:t}=e;return t(["Show full subject"])},hide_full_subject:e=>{const{normalize:t}=e;return t(["Hide full subject"])},show_content:e=>{const{normalize:t}=e;return t(["Show content"])},hide_content:e=>{const{normalize:t}=e;return t(["Hide content"])},status_deleted:e=>{const{normalize:t}=e;return t(["This post was deleted"])},nsfw:e=>{const{normalize:t}=e;return t(["NSFW"])},expand:e=>{const{normalize:t}=e;return t(["Expand"])},you:e=>{const{normalize:t}=e;return t(["(You)"])},plus_more:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["+",n(r("number"))," more"])},many_attachments:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Post has ",n(r("number"))," attachment(s)"])},collapse_attachments:e=>{const{normalize:t}=e;return t(["Collapse attachments"])},show_all_attachments:e=>{const{normalize:t}=e;return t(["Show all attachments"])},show_attachment_in_modal:e=>{const{normalize:t}=e;return t(["Show in media modal"])},show_attachment_description:e=>{const{normalize:t}=e;return t(["Preview description (open attachment for full description)"])},hide_attachment:e=>{const{normalize:t}=e;return t(["Hide attachment"])},remove_attachment:e=>{const{normalize:t}=e;return t(["Remove attachment"])},attachment_stop_flash:e=>{const{normalize:t}=e;return t(["Stop Flash player"])},move_up:e=>{const{normalize:t}=e;return t(["Shift attachment left"])},move_down:e=>{const{normalize:t}=e;return t(["Shift attachment right"])},open_gallery:e=>{const{normalize:t}=e;return t(["Open gallery"])},thread_hide:e=>{const{normalize:t}=e;return t(["Hide this thread"])},thread_show:e=>{const{normalize:t}=e;return t(["Show this thread"])},thread_show_full:e=>{const{normalize:t,interpolate:n,named:r,plural:o}=e;return o([t(["Show everything under this thread (",n(r("numStatus"))," status in total, max depth ",n(r("depth")),")"]),t(["Show everything under this thread (",n(r("numStatus"))," statuses in total, max depth ",n(r("depth")),")"])])},thread_show_full_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},thread_follow:e=>{const{normalize:t,interpolate:n,named:r,plural:o}=e;return o([t(["See the remaining part of this thread (",n(r("numStatus"))," status in total)"]),t(["See the remaining part of this thread (",n(r("numStatus"))," statuses in total)"])])},thread_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},ancestor_follow:e=>{const{normalize:t,interpolate:n,named:r,plural:o}=e;return o([t(["See ",n(r("numReplies"))," other reply under this status"]),t(["See ",n(r("numReplies"))," other replies under this status"])])},ancestor_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},show_all_conversation_with_icon:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("icon"))," ",n(r("text"))])},show_all_conversation:e=>{const{normalize:t,interpolate:n,named:r,plural:o}=e;return o([t(["Show full conversation (",n(r("numStatus"))," other status)"]),t(["Show full conversation (",n(r("numStatus"))," other statuses)"])])},show_only_conversation_under_this:e=>{const{normalize:t}=e;return t(["Only show replies to this status"])},status_history:e=>{const{normalize:t}=e;return t(["Status history"])}},user_card:{approve:e=>{const{normalize:t}=e;return t(["Approve"])},block:e=>{const{normalize:t}=e;return t(["Block"])},blocked:e=>{const{normalize:t}=e;return t(["Blocked!"])},deactivated:e=>{const{normalize:t}=e;return t(["Deactivated"])},deny:e=>{const{normalize:t}=e;return t(["Deny"])},edit_profile:e=>{const{normalize:t}=e;return t(["Edit profile"])},favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},follow:e=>{const{normalize:t}=e;return t(["Follow"])},follow_cancel:e=>{const{normalize:t}=e;return t(["Cancel request"])},follow_sent:e=>{const{normalize:t}=e;return t(["Request sent!"])},follow_progress:e=>{const{normalize:t}=e;return t(["Requesting…"])},follow_unfollow:e=>{const{normalize:t}=e;return t(["Unfollow"])},followees:e=>{const{normalize:t}=e;return t(["Following"])},followers:e=>{const{normalize:t}=e;return t(["Followers"])},following:e=>{const{normalize:t}=e;return t(["Following!"])},follows_you:e=>{const{normalize:t}=e;return t(["Follows you!"])},hidden:e=>{const{normalize:t}=e;return t(["Hidden"])},its_you:e=>{const{normalize:t}=e;return t(["It's you!"])},media:e=>{const{normalize:t}=e;return t(["Media"])},mention:e=>{const{normalize:t}=e;return t(["Mention"])},message:e=>{const{normalize:t}=e;return t(["Message"])},mute:e=>{const{normalize:t}=e;return t(["Mute"])},muted:e=>{const{normalize:t}=e;return t(["Muted"])},per_day:e=>{const{normalize:t}=e;return t(["per day"])},remote_follow:e=>{const{normalize:t}=e;return t(["Remote follow"])},remove_follower:e=>{const{normalize:t}=e;return t(["Remove follower"])},report:e=>{const{normalize:t}=e;return t(["Report"])},statuses:e=>{const{normalize:t}=e;return t(["Statuses"])},subscribe:e=>{const{normalize:t}=e;return t(["Subscribe"])},unsubscribe:e=>{const{normalize:t}=e;return t(["Unsubscribe"])},unblock:e=>{const{normalize:t}=e;return t(["Unblock"])},unblock_progress:e=>{const{normalize:t}=e;return t(["Unblocking…"])},block_progress:e=>{const{normalize:t}=e;return t(["Blocking…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},hide_repeats:e=>{const{normalize:t}=e;return t(["Hide repeats"])},show_repeats:e=>{const{normalize:t}=e;return t(["Show repeats"])},bot:e=>{const{normalize:t}=e;return t(["Bot"])},admin_menu:{moderation:e=>{const{normalize:t}=e;return t(["Moderation"])},grant_admin:e=>{const{normalize:t}=e;return t(["Grant Admin"])},revoke_admin:e=>{const{normalize:t}=e;return t(["Revoke Admin"])},grant_moderator:e=>{const{normalize:t}=e;return t(["Grant Moderator"])},revoke_moderator:e=>{const{normalize:t}=e;return t(["Revoke Moderator"])},activate_account:e=>{const{normalize:t}=e;return t(["Activate account"])},deactivate_account:e=>{const{normalize:t}=e;return t(["Deactivate account"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},force_nsfw:e=>{const{normalize:t}=e;return t(["Mark all posts as NSFW"])},strip_media:e=>{const{normalize:t}=e;return t(["Remove media from posts"])},force_unlisted:e=>{const{normalize:t}=e;return t(["Force posts to be unlisted"])},sandbox:e=>{const{normalize:t}=e;return t(["Force posts to be followers-only"])},disable_remote_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user from remote instances"])},disable_any_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user at all"])},quarantine:e=>{const{normalize:t}=e;return t(["Disallow user posts from federating"])},delete_user:e=>{const{normalize:t}=e;return t(["Delete user"])},delete_user_data_and_deactivate_confirmation:e=>{const{normalize:t}=e;return t(["This will permanently delete the data from this account and deactivate it. Are you absolutely sure?"])}},highlight:{disabled:e=>{const{normalize:t}=e;return t(["No highlight"])},solid:e=>{const{normalize:t}=e;return t(["Solid bg"])},striped:e=>{const{normalize:t}=e;return t(["Striped bg"])},side:e=>{const{normalize:t}=e;return t(["Side stripe"])}},note:e=>{const{normalize:t}=e;return t(["Note"])},note_blank:e=>{const{normalize:t}=e;return t(["(None)"])},edit_note:e=>{const{normalize:t}=e;return t(["Edit note"])},edit_note_apply:e=>{const{normalize:t}=e;return t(["Apply"])},edit_note_cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},user_profile:{timeline_title:e=>{const{normalize:t}=e;return t(["User timeline"])},profile_does_not_exist:e=>{const{normalize:t}=e;return t(["Sorry, this profile does not exist."])},profile_loading_error:e=>{const{normalize:t}=e;return t(["Sorry, there was an error loading this profile."])}},user_reporting:{title:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Reporting ",n(r(0))])},add_comment_description:e=>{const{normalize:t}=e;return t(["The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:"])},additional_comments:e=>{const{normalize:t}=e;return t(["Additional comments"])},forward_description:e=>{const{normalize:t}=e;return t(["The account is from another server. Send a copy of the report there as well?"])},forward_to:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Forward to ",n(r(0))])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occurred while processing your request."])}},who_to_follow:{more:e=>{const{normalize:t}=e;return t(["More"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])}},tool_tip:{media_upload:e=>{const{normalize:t}=e;return t(["Upload media"])},repeat:e=>{const{normalize:t}=e;return t(["Repeat"])},reply:e=>{const{normalize:t}=e;return t(["Reply"])},favorite:e=>{const{normalize:t}=e;return t(["Favorite"])},add_reaction:e=>{const{normalize:t}=e;return t(["Add Reaction"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},accept_follow_request:e=>{const{normalize:t}=e;return t(["Accept follow request"])},reject_follow_request:e=>{const{normalize:t}=e;return t(["Reject follow request"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},toggle_expand:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to show post in full"])},toggle_mute:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to reveal muted content"])}},upload:{error:{base:e=>{const{normalize:t}=e;return t(["Upload failed."])},message:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Upload failed: ",n(r(0))])},file_too_big:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["File too big [",n(r("filesize")),n(r("filesizeunit"))," / ",n(r("allowedsize")),n(r("allowedsizeunit")),"]"])},default:e=>{const{normalize:t}=e;return t(["Try again later"])}},file_size_units:{B:e=>{const{normalize:t}=e;return t(["B"])},KiB:e=>{const{normalize:t}=e;return t(["KiB"])},MiB:e=>{const{normalize:t}=e;return t(["MiB"])},GiB:e=>{const{normalize:t}=e;return t(["GiB"])},TiB:e=>{const{normalize:t}=e;return t(["TiB"])}}},search:{people:e=>{const{normalize:t}=e;return t(["People"])},hashtags:e=>{const{normalize:t}=e;return t(["Hashtags"])},person_talking:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("count"))," person talking"])},people_talking:e=>{const{normalize:t,interpolate:n,named:r}=e;return t([n(r("count"))," people talking"])},no_results:e=>{const{normalize:t}=e;return t(["No results"])},no_more_results:e=>{const{normalize:t}=e;return t(["No more results"])},load_more:e=>{const{normalize:t}=e;return t(["Load more results"])}},password_reset:{forgot_password:e=>{const{normalize:t}=e;return t(["Forgot password?"])},password_reset:e=>{const{normalize:t}=e;return t(["Password reset"])},instruction:e=>{const{normalize:t}=e;return t(["Enter your email address or username. We will send you a link to reset your password."])},placeholder:e=>{const{normalize:t}=e;return t(["Your email or username"])},check_email:e=>{const{normalize:t}=e;return t(["Check your email for a link to reset your password."])},return_home:e=>{const{normalize:t}=e;return t(["Return to the home page"])},too_many_requests:e=>{const{normalize:t}=e;return t(["You have reached the limit of attempts, try again later."])},password_reset_disabled:e=>{const{normalize:t}=e;return t(["Password reset is disabled. Please contact your instance administrator."])},password_reset_required:e=>{const{normalize:t}=e;return t(["You must reset your password to log in."])},password_reset_required_but_mailer_is_disabled:e=>{const{normalize:t}=e;return t(["You must reset your password, but password reset is disabled. Please contact your instance administrator."])}},chats:{you:e=>{const{normalize:t}=e;return t(["You:"])},message_user:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Message ",n(r("nickname"))])},delete:e=>{const{normalize:t}=e;return t(["Delete"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},new:e=>{const{normalize:t}=e;return t(["New Chat"])},empty_message_error:e=>{const{normalize:t}=e;return t(["Cannot post empty message"])},more:e=>{const{normalize:t}=e;return t(["More"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this message?"])},error_loading_chat:e=>{const{normalize:t}=e;return t(["Something went wrong when loading the chat."])},error_sending_message:e=>{const{normalize:t}=e;return t(["Something went wrong when sending the message."])},empty_chat_list_placeholder:e=>{const{normalize:t}=e;return t(["You don't have any chats yet. Start a new chat!"])}},lists:{lists:e=>{const{normalize:t}=e;return t(["Lists"])},new:e=>{const{normalize:t}=e;return t(["New List"])},title:e=>{const{normalize:t}=e;return t(["List title"])},search:e=>{const{normalize:t}=e;return t(["Search users"])},create:e=>{const{normalize:t}=e;return t(["Create"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},delete:e=>{const{normalize:t}=e;return t(["Delete list"])},following_only:e=>{const{normalize:t}=e;return t(["Limit to Following"])},manage_lists:e=>{const{normalize:t}=e;return t(["Manage lists"])},manage_members:e=>{const{normalize:t}=e;return t(["Manage list members"])},add_members:e=>{const{normalize:t}=e;return t(["Search for more users"])},remove_from_list:e=>{const{normalize:t}=e;return t(["Remove from list"])},add_to_list:e=>{const{normalize:t}=e;return t(["Add to list"])},is_in_list:e=>{const{normalize:t}=e;return t(["Already in list"])},editing_list:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Editing list ",n(r("listTitle"))])},creating_list:e=>{const{normalize:t}=e;return t(["Creating new list"])},update_title:e=>{const{normalize:t}=e;return t(["Save Title"])},really_delete:e=>{const{normalize:t}=e;return t(["Really delete list?"])},error:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Error manipulating lists: ",n(r(0))])}},file_type:{audio:e=>{const{normalize:t}=e;return t(["Audio"])},video:e=>{const{normalize:t}=e;return t(["Video"])},image:e=>{const{normalize:t}=e;return t(["Image"])},file:e=>{const{normalize:t}=e;return t(["File"])}},display_date:{today:e=>{const{normalize:t}=e;return t(["Today"])}},update:{big_update_title:e=>{const{normalize:t}=e;return t(["Please bear with us"])},big_update_content:e=>{const{normalize:t}=e;return t(["We haven't had a release in a while, so things might look and feel different than what you're used to."])},update_bugs:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Please report any issues and bugs on ",n(r("pleromaGitlab")),", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE."])},update_bugs_gitlab:e=>{const{normalize:t}=e;return t(["Pleroma GitLab"])},update_changelog:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["For more details on what's changed, see ",n(r("theFullChangelog")),"."])},update_changelog_here:e=>{const{normalize:t}=e;return t(["the full changelog"])},art_by:e=>{const{normalize:t,interpolate:n,named:r}=e;return t(["Art by ",n(r("linkToArtist"))])}},unicode_domain_indicator:{tooltip:e=>{const{normalize:t}=e;return t(["This domain contains non-ascii characters."])}}}},1395:(e,t,n)=>{var r={"./af.json":[44919,6355],"./am.json":[53139,5119],"./ar.json":[44557,9873],"./ar_SA.json":[23450,7360],"./as.json":[44359,3377],"./ast.json":[13764,7569],"./az.json":[86459,2342],"./be.json":[50866,7304],"./bg.json":[26219,3974],"./bn.json":[69178,9064],"./br.json":[67871,6148],"./bs.json":[75340,8134],"./ca.json":[86914,4691],"./ccp.json":[73872,1162],"./ceb.json":[64478,9790],"./chr.json":[61017,6869],"./ckb.json":[56412,2656],"./cs.json":[8888,4710],"./cy.json":[25392,6272],"./da.json":[35042,1596],"./de.json":[35169,6226],"./de_CH.json":[28246,7164],"./doi.json":[59784,4209],"./dsb.json":[60634,1790],"./el.json":[98338,7879],"./en.json":[74990,5728],"./en_001.json":[62736,577],"./en_AU.json":[2597,9360],"./en_CA.json":[1516,4879],"./en_GB.json":[84830,50],"./en_IN.json":[71809,8988],"./es.json":[61148,6831],"./es_419.json":[25696,8873],"./es_MX.json":[11915,2699],"./es_US.json":[87826,3313],"./et.json":[66641,3276],"./eu.json":[6541,2992],"./fa.json":[43305,5521],"./fi.json":[40752,420],"./fil.json":[26843,1236],"./fo.json":[43032,8995],"./fr.json":[80898,2223],"./fr_CA.json":[54515,1821],"./ga.json":[66572,4571],"./gd.json":[9185,6116],"./gl.json":[23840,6126],"./gu.json":[85811,7261],"./ha.json":[91566,227],"./ha_NE.json":[3400,5304],"./he.json":[26260,5548],"./hi.json":[18136,5968],"./hi_Latn.json":[95638,3056],"./hr.json":[77435,2861],"./hsb.json":[15758,8015],"./hu.json":[2727,4902],"./hy.json":[8397,6344],"./ia.json":[49796,6936],"./id.json":[56635,9465],"./ig.json":[26406,9895],"./is.json":[51391,7300],"./it.json":[54879,8970],"./ja.json":[2971,1290],"./jv.json":[18644,2479],"./ka.json":[71255,6068],"./kab.json":[92892,9780],"./kk.json":[46419,2873],"./kl.json":[2227,2397],"./km.json":[65729,1404],"./kn.json":[65611,278],"./ko.json":[67080,2966],"./kok.json":[47209,2599],"./ku.json":[18738,2883],"./ky.json":[89690,4785],"./lb.json":[3929,4770],"./lo.json":[19778,7464],"./lt.json":[41683,7169],"./lv.json":[54873,8898],"./mai.json":[11781,1613],"./mi.json":[11569,6701],"./mk.json":[67589,9921],"./ml.json":[24415,2685],"./mn.json":[50512,4718],"./mni.json":[81597,5401],"./mr.json":[97747,1911],"./ms.json":[81588,9924],"./mt.json":[25081,9399],"./my.json":[8608,6790],"./ne.json":[8572,9377],"./nl.json":[52355,6773],"./nn.json":[52874,9414],"./no.json":[48005,9979],"./or.json":[26728,1012],"./pa.json":[15042,6946],"./pa_Arab.json":[43578,9994],"./pcm.json":[91163,5104],"./pl.json":[61335,1095],"./ps.json":[51828,678],"./pt.json":[38543,5041],"./pt_PT.json":[8063,1546],"./qu.json":[15821,8031],"./rm.json":[5014,5887],"./ro.json":[34064,9864],"./ru.json":[95222,8395],"./rw.json":[12710,346],"./sa.json":[69343,2243],"./sat.json":[51243,7855],"./sc.json":[1319,2874],"./sd.json":[67728,6826],"./si.json":[5044,4354],"./sk.json":[45626,2350],"./sl.json":[76091,1553],"./so.json":[93761,625],"./sq.json":[1230,4368],"./sr.json":[60445,3887],"./sr_Cyrl_BA.json":[38940,6060],"./sr_Latn.json":[21650,8681],"./sr_Latn_BA.json":[78328,5115],"./su.json":[54395,1959],"./sv.json":[3418,3241],"./sw.json":[11958,7585],"./sw_KE.json":[35001,3994],"./ta.json":[92930,7897],"./te.json":[8748,4786],"./tg.json":[20999,313],"./th.json":[23900,3951],"./ti.json":[368,3568],"./tk.json":[88770,1780],"./to.json":[95781,1584],"./tr.json":[92619,9978],"./tt.json":[87782,2569],"./ug.json":[19005,9757],"./uk.json":[82057,9871],"./ur.json":[13889,6797],"./uz.json":[45108,1056],"./vi.json":[97099,5224],"./wo.json":[9923,7303],"./xh.json":[29064,786],"./yo.json":[11971,8732],"./yo_BJ.json":[64533,9926],"./yue.json":[40648,1452],"./yue_Hans.json":[24800,4424],"./zh.json":[34626,457],"./zh_Hant.json":[82560,2767],"./zh_Hant_HK.json":[47677,1044],"./zu.json":[73784,9319]};function o(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],o=t[0];return n.e(t[1]).then((()=>n.t(o,19)))}o.keys=()=>Object.keys(r),o.id=1395,e.exports=o},19003:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>u});var r=n(15861),o=n(93433),i=n(4942),s=n(64687),a=n.n(s);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const u=function(e){var t=d(e.emoji),n=e.store&&p(e.store);return function(r,o){var i=r[0];return":"===i&&e.emoji?t(r,o):"@"===i&&n?n(r):[]}};var d=function(e){return function(t,n){var r=t.toLowerCase().substr(1);return e.map((function(e){return l(l({},e),n(e))})).filter((function(e){return e.names.concat(e.keywords).filter((function(e){return e.toLowerCase().match(r)})).length})).map((function(e){var t=0;return t+=Math.max.apply(Math,(0,o.Z)(e.names.map((function(e){return e.toLowerCase()===r?200:0}))).concat([0])),t+=e.imageUrl?100:0,t+=Math.max.apply(Math,(0,o.Z)(e.names.map((function(e){return e.toLowerCase().startsWith(r)?10:0}))).concat([0])),t-=e.displayText.length,e.score=t,e})).sort((function(e,t){var n=e.displayText>t.displayText?.5:-.5;return t.score-e.score+n}))}},p=function(e){var t=e.dispatch,n=e.state,o=[],i="",s=null,c=null,l=function(e){return c&&c(),new Promise((function(n,r){s=setTimeout((function(){(function(e){return t("searchUsers",{query:e})})(e).then(n).catch(r)}),300),c=function(){clearTimeout(s),n([])}}))};return function(){var e=(0,r.Z)(a().mark((function e(t){var r,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.toLowerCase().substr(1),i!==r){e.next=3;break}return e.abrupt("return",o);case 3:if(o=[],i=r,r.includes("@")){e.next=8;break}return e.next=8,l(r);case 8:return s=n.users.users.filter((function(e){return e.screen_name.toLowerCase().startsWith(r)||e.name.toLowerCase().startsWith(r)})).slice(0,20).sort((function(e,t){var n=0,o=0;return n+=e.screen_name.toLowerCase().startsWith(r)?2:0,o+=t.screen_name.toLowerCase().startsWith(r)?2:0,n+=e.name.toLowerCase().startsWith(r)?1:0,10*((o+=t.name.toLowerCase().startsWith(r)?1:0)-n)+(e.name>t.name?1:-1)+(e.screen_name>t.screen_name?1:-1)})).map((function(e){return{user:e,displayText:e.screen_name_ui,detailText:e.name,imageUrl:e.profile_image_url_original,replacement:"@"+e.screen_name+" "}})),o=s||[],e.abrupt("return",o);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}},92820:(e,t,n)=>{"use strict";n.d(t,{Z:()=>C});var r=n(93433),o=n(29439),i=n(44925),s=n(42348),a=n.n(s),c=n(27955),l=n.n(c),u=n(66252);function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var h=function(e){var t=/(?:<\/(\w+)>|<(\w+)\s?.*?\/?>)/gi.exec(e);return t&&(t[1]||t[2])},m=function(e,t){var n=e.substring(1,e.length-1).replace(new RegExp("^"+h(e)),"").replace(/\/?$/,"").trim(),r=Array.from(n.matchAll(/([a-z0-9-]+)(?:=("[^"]+?"|'[^']+?'))?/gi)).map((function(e){var t=(0,o.Z)(e,3);return t[0],[t[1],t[2]]})).map((function(e){var t=(0,o.Z)(e,2),n=t[0],r=t[1];return r?[n,r.substring(1,r.length-1)]:[n,!0]}));return Object.fromEntries(r.filter(t||function(e){var t=(0,o.Z)(e,2),n=t[0],r=t[1],i=n.toLowerCase();return"style"!==i&&("class"!==i||"greentext"===r||"cyantext"===r)}))},f=function(e,t,n){for(var r=[],o="",i=0;i<e.length;i++){var s=e[i];if(":"===s){var a,c=e.slice(i+1),l=!1,u=d(t);try{for(u.s();!(a=u.n()).done;){var p=a.value;if(c.slice(0,p.shortcode.length+1)===p.shortcode+":"){l=p;break}}}catch(e){u.e(e)}finally{u.f()}l?(r.push(o),o="",r.push(n(l)),i+=l.shortcode.length+1):o+=s}else o+=s}return o&&r.push(o),r};function g(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var w=n(19236),b=n(21268),y=n(49963),_={class:"HashtagLink"},k=["href","innerHTML"];const S={name:"HashtagLink",props:{url:{required:!0,type:String},content:{required:!0,type:String},tag:{required:!1,type:String,default:""}},methods:{onClick:function(){var e,t,n=this.tag||(e=this.url,!!(t=/tag[s]*\/(\w+)$/g.exec(e))&&t[1]);if(n){var r=this.generateTagLink(n);this.$router.push(r)}else window.open(this.url,"_blank")},generateTagLink:function(e){return"/tag/".concat(e)}}},j=(0,n(83744).Z)(S,[["render",function(e,t,n,r,o,i){return(0,u.wg)(),(0,u.iD)("span",_,[(0,u._)("a",{href:e.url,class:"original",target:"_blank",onClick:t[0]||(t[0]=(0,y.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"])),innerHTML:e.content},null,8,k)])}]]);var O=["index"];const C={name:"RichContent",components:{MentionsLine:b.Z,HashtagLink:j},props:{html:{required:!0,type:String},attentions:{required:!1,default:function(){return[]}},emoji:{required:!0,type:Array},handleLinks:{required:!1,type:Boolean,default:!1},greentext:{required:!1,type:Boolean,default:!1}},render:function(){var e=this,t=z(this.html,this.greentext).newHtml,n=null,s="",a=[],c=[],d=[],p=[],g=0,v=0,y=!1,_=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),n=[],r=[["",n]],o="",i=null,s=function(){return r[r.length-1][1]},a=function(){""!==o&&(s().push(o),o="")},c=function(e){s().push([e])},u=function(e){var t=s(),n=[l()(e),[]];r.push(n),t.push(n)},d=function(e){var t=r[r.length-1];h(r[r.length-1][0])===h(e)?(t.push(e),r.pop()):s().push(e)},p=0;p<e.length;p++){var m=e[p];if("<"===m&&null===i)a(),i=m;else if(">"!==m&&null!==i)i+=m;else if(">"===m&&null!==i){var f=i+=m;i=null;var g=h(f);"/"===f[1]?d(f):t.has(g)||"/"===f[f.length-2]?c(f):u(f)}else o+=m}return i&&(o+=i),a(),n}(t).map((function t(r,i,a,l){if("string"==typeof r){var p=""===r.trim();return r.includes("\n")&&(n=null),p?(s=r,i!==a.length-1&&null!==n?r.trim():r):(n=null,r.includes(":")&&(r=["",f(r,e.emoji,(function(e){var t=e.shortcode,n=e.url;return(0,u.Wm)(w.Z,{class:"emoji img",src:n,title:":".concat(t,":"),alt:":".concat(t,":")},null)}))]),r)}if(Array.isArray(r)){var v=r,y=(0,o.Z)(v,3),_=y[0],k=y[1],S=y[2],j=h(_),O=m(_,(function(){return!0})),C=m(_),z=null===n||k&&"string"==typeof k[0]&&k[0].match(/^\s/)?"":s;switch(j){case"br":n=null;break;case"img":return["",[z,(I=_,(0,u.Wm)(w.Z,(0,u.dG)(m(I),{class:"img"}),null))],""];case"a":if(!e.handleLinks)break;if(O.class&&O.class.includes("mention"))return function(t,r){var o=P(t,r,g++);return o.notifying=e.attentions.some((function(e){return e.statusnet_profile_url===o.url})),c.push(o),null===n&&(n=[]),n.push(o),n.length>b.d&&d.push(o),1===n.length?(0,u.Wm)(b.Z,{mentions:n},null):""}(C,k);n=null;break;case"span":if(e.handleLinks&&O.class&&O.class.includes("h-card"))return["",k.map(t),""]}return void 0!==k?["",[z,[_,k.map(t),S]],""]:["",[z,r],""]}var I})),k=(0,r.Z)(_).reverse().map((function t(n,s,c,d){var f;if("string"==typeof n)return""===n.trim()?n:(y||(y=!0),l()(n));if(Array.isArray(n)){var g=(0,o.Z)(n,2),w=g[0],b=g[1],_=""===w?"":h(w);switch(_){case"a":if(!e.handleLinks)break;var k=m(w,(function(){return!0})),S=m(w,(function(){return!0}));if(k.class&&k.class.includes("hashtag")||"tag"===k.rel)return function(e,t,n){var r=P(e,t,v++),o=(r.index,(0,i.Z)(r,O));p.push(o),n||a.push(o);var s=o.url,c=o.tag,l=o.content;return(0,u.Wm)(j,{url:s,tag:c,content:l},null)}(S,b,y);S.target="_blank";var C=(0,r.Z)(b).reverse().map(t).reverse();return(0,u.Wm)("a",S,[C]);case"":return(0,r.Z)(b).reverse().map(t).reverse()}if(void 0!==b){var z=Array.isArray(b)?(0,r.Z)(b).reverse().map(t).reverse():b;return(0,u.Wm)(_,m(w),"function"==typeof(f=z)||"[object Object]"===Object.prototype.toString.call(f)&&!(0,u.lA)(f)?z:{default:function(){return[z]}})}return(0,u.Wm)(_,null,null)}return n})).reverse(),S=(0,u.Wm)("span",{class:"RichContent"},[k]),C={lastTags:a,writtenMentions:c,writtenTags:p,invisibleMentions:d};return this.$emit("parseReady",C),S}};var P=function(e,t,n){var r=t.map((function e(t){return"string"==typeof t?t:t[1].map(e).join("")})).join("");return{index:n,url:e.href,tag:e["data-tag"],content:a()(t).join(""),textContent:r}},z=function(e,t){var n=new Set(["p","div"]),o=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),o=new Set(["address","article","aside","blockquote","details","dialog","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","ol","p","pre","section","table","ul"]),i=new Set(["br"]),s=new Set([].concat((0,r.Z)(o.values()),(0,r.Z)(i.values()))),a=new Set(s),c=g(n);try{for(c.s();!(e=c.n()).done;){var l=e.value;a.delete(l)}}catch(e){c.e(e)}finally{c.f()}for(var u=new Set([].concat((0,r.Z)(a.values()),(0,r.Z)(n.values()))),d=[],p=[],m="",f=null,v=function(){m.trim().length>0?d.push({level:[].concat(p),text:m}):d.push(m),m=""},w=function(e){v(),d.push(e)},b=function(e){v(),d.push(e),p.unshift(h(e))},y=function(e){p[0]===h(e)?(v(),d.push(e),p.shift()):m+=e},_=0;_<t.length;_++){var k=t[_];if("<"===k&&null===f)f=k;else if(">"!==k&&null!==f)f+=k;else if(">"===k&&null!==f){var S=f+=k;f=null;var j=h(S);u.has(j)?i.has(j)?w(S):a.has(j)?"/"===S[1]?y(S):"/"===S[S.length-2]?w(S):b(S):m+=S:m+=S}else"\n"===k?w(k):m+=k}return f&&(m+=f),v(),d}(e);return{newHtml:o.reverse().map((function(e,r,o){if(!e.text)return e;var i=e.text;if(t&&e.level.every((function(e){return n.has(e)}))&&(i.includes("&gt;")||i.includes("&lt;"))){var s=i.replace(/<[^>]+?>/gi,"").replace(/@\w+/gi,"").trim();if(s.startsWith("&gt;"))return"<span class='greentext'>".concat(i,"</span>");if(s.startsWith("&lt;"))return"<span class='cyantext'>".concat(i,"</span>")}return i})).reverse().join("")}}},79354:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(4942),o=n(66252),i=n(989),s=n(57810);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var c=function(e){return e.findIndex((function(e){return e.props}))};const l={name:"TabSwitcher",props:{renderOnlyFocused:{required:!1,type:Boolean,default:!1},onSwitch:{required:!1,type:Function,default:void 0},activeTab:{required:!1,type:String,default:void 0},scrollableTabs:{required:!1,type:Boolean,default:!1},sideTabBar:{required:!1,type:Boolean,default:!1},bodyScrollLock:{required:!1,type:Boolean,default:!1}},data:function(){return{active:c(this.slots())}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({activeIndex:function(){var e=this;return this.activeTab?this.slots().findIndex((function(t){return t&&t.props&&e.activeTab===t.props.key})):this.active},isActive:function(){var e=this;return function(t){return e.$slots.default().findIndex((function(e){return e.props&&e.props["data-tab-name"]===t}))===e.activeIndex}},settingsModalVisible:function(){return"visible"===this.settingsModalState}},(0,i.rn)({settingsModalState:function(e){return e.interface.settingsModalState}})),beforeUpdate:function(){this.slots()[this.active].props||(this.active=c(this.slots()))},methods:{clickTab:function(e){var t=this;return function(n){n.preventDefault(),t.setTab(e)}},slots:function(){return this.$slots.default()[0].type===o.HY?this.$slots.default()[0].children:this.$slots.default()},setTab:function(e){"function"==typeof this.onSwitch&&this.onSwitch.call(null,this.slots()[e].key),this.active=e,this.scrollableTabs&&(this.$refs.contents.scrollTop=0)}},render:function(){var e=this,t=this.slots().map((function(t,n){var r=t.props;if(r){var i=["tab","button-default"],a=["tab-wrapper"];return e.activeIndex===n&&(i.push("active"),a.push("active")),r.image?(0,o.Wm)("div",{class:a.join(" ")},[(0,o.Wm)("button",{disabled:r.disabled,onClick:e.clickTab(n),class:i.join(" "),type:"button"},[(0,o.Wm)("img",{src:r.image,title:r["image-tooltip"]},null),r.label?"":r.label])]):(0,o.Wm)("div",{class:a.join(" ")},[(0,o.Wm)("button",{disabled:r.disabled,onClick:e.clickTab(n),class:i.join(" "),type:"button"},[r.icon?(0,o.Wm)(s.GN,{class:"tab-icon",size:"2x","fixed-width":!0,icon:r.icon},null):"",(0,o.Wm)("span",{class:"text"},[r.label])])])}})),n=this.slots().map((function(t,n){var r=t.props;if(r){var i=e.activeIndex===n,s=[i?"active":"hidden"];r.fullHeight&&s.push("full-height");var a=!e.renderOnlyFocused||i?t:"";return(0,o.Wm)("div",{class:s},[e.sideTabBar?(0,o.Wm)("h1",{class:"mobile-label"},[r.label]):"",a])}}));return(0,o.Wm)("div",{class:"tab-switcher "+(this.sideTabBar?"side-tabs":"top-tabs")},[(0,o.Wm)("div",{class:"tabs"},[t]),(0,o.wy)((0,o.Wm)("div",{ref:"contents",class:"contents"+(this.scrollableTabs?" scrollable-tabs":"")},[n]),[[(0,o.Q2)("body-scroll-lock"),this.bodyScrollLock]])])}}},8312:e=>{var t={ja:"ja_pedantic"};e.exports={languages:["ar","ca","cs","de","eo","en","es","et","eu","fi","fr","ga","he","hu","it","ja","ja_easy","ko","nb","nl","oc","pl","pt","ro","ru","sk","te","uk","zh","zh_Hant"],langCodeToJsonName:function(e){return t[e]||e},langCodeToCldrName:function(e){return e},ensureFinalFallback:function(e){var t=Array.isArray(e)?e:[e];return t.includes("en")?t:t.concat(["en"])}}},72617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r,o=n(15861),i=n(64687),s=n.n(i),a=n(8312),c=function(e){return n(27650)("./".concat((0,a.langCodeToJsonName)(e),".json"))};const l={languages:a.languages,default:{en:n(88797).default},setLanguage:(r=(0,o.Z)(s().mark((function e(t,n){var r;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n,!a.languages.includes(o)){e.next=5;break}return e.next=3,c(n);case 3:r=e.sent,t.setLocaleMessage(n,r.default);case 5:t.locale=n;case 6:case"end":return e.stop()}var o}),e)}))),function(e,t){return r.apply(this,arguments)})}},78892:(e,t,n)=>{"use strict";var r=n(15861),o=n(64687),i=n.n(o),s=n(989),a=(n(67810),n(73152));try{new EventTarget}catch(e){window.EventTarget=a.Z}const c={state:{settingsModalState:"hidden",settingsModalLoaded:!1,settingsModalTargetTab:null,settings:{currentSaveStateNotice:null,noticeClearTimeout:null,notificationPermission:null},browserSupport:{cssFilter:window.CSS&&window.CSS.supports&&(window.CSS.supports("filter","drop-shadow(0 0)")||window.CSS.supports("-webkit-filter","drop-shadow(0 0)"))},layoutType:"normal",globalNotices:[],layoutHeight:0,lastTimeline:null},mutations:{settingsSaved:function(e,t){var n=t.success,r=t.error;n?(e.noticeClearTimeout&&clearTimeout(e.noticeClearTimeout),e.settings.currentSaveStateNotice={error:!1,data:n},e.settings.noticeClearTimeout=setTimeout((function(){return delete e.settings.currentSaveStateNotice}),2e3)):e.settings.currentSaveStateNotice={error:!0,errorData:r}},setNotificationPermission:function(e,t){e.notificationPermission=t},setLayoutType:function(e,t){e.layoutType=t},closeSettingsModal:function(e){e.settingsModalState="hidden"},togglePeekSettingsModal:function(e){switch(e.settingsModalState){case"minimized":return void(e.settingsModalState="visible");case"visible":return void(e.settingsModalState="minimized");default:throw new Error("Illegal minimization state of settings modal")}},openSettingsModal:function(e){e.settingsModalState="visible",e.settingsModalLoaded||(e.settingsModalLoaded=!0)},setSettingsModalTargetTab:function(e,t){e.settingsModalTargetTab=t},pushGlobalNotice:function(e,t){e.globalNotices.push(t)},removeGlobalNotice:function(e,t){e.globalNotices=e.globalNotices.filter((function(e){return e!==t}))},setLayoutHeight:function(e,t){e.layoutHeight=t},setLayoutWidth:function(e,t){e.layoutWidth=t},setLastTimeline:function(e,t){e.lastTimeline=t}},actions:{setPageTitle:function(e){var t=e.rootState,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";document.title="".concat(n," ").concat(t.instance.name)},settingsSaved:function(e,t){var n=e.commit;e.dispatch,n("settingsSaved",{success:t.success,error:t.error})},setNotificationPermission:function(e,t){(0,e.commit)("setNotificationPermission",t)},closeSettingsModal:function(e){(0,e.commit)("closeSettingsModal")},openSettingsModal:function(e){(0,e.commit)("openSettingsModal")},togglePeekSettingsModal:function(e){(0,e.commit)("togglePeekSettingsModal")},clearSettingsModalTargetTab:function(e){(0,e.commit)("setSettingsModalTargetTab",null)},openSettingsModalTab:function(e,t){var n=e.commit;n("setSettingsModalTargetTab",t),n("openSettingsModal")},pushGlobalNotice:function(e,t){var n=e.commit,r=e.dispatch,o=e.state,i=t.messageKey,s=t.messageArgs,a=void 0===s?{}:s,c=t.level,l=void 0===c?"error":c,u=t.timeout,d=void 0===u?0:u;n("pushGlobalNotice",{messageKey:i,messageArgs:a,level:l});var p=o.globalNotices[o.globalNotices.length-1];return d&&setTimeout((function(){return r("removeGlobalNotice",p)}),d),p},removeGlobalNotice:function(e,t){(0,e.commit)("removeGlobalNotice",t)},setLayoutHeight:function(e,t){(0,e.commit)("setLayoutHeight",t)},setLayoutWidth:function(e,t){var n=e.commit,r=e.state,o=e.rootGetters,i=e.rootState,s=t;void 0!==t?n("setLayoutWidth",t):s=r.layoutWidth;var a=s<=800?"mobile":"normal";"none"!==o.mergedConfig.thirdColumnMode&&i.users.currentUser?n("setLayoutType",s>=1300?"wide":a):n("setLayoutType",a)},setLastTimeline:function(e,t){(0,e.commit)("setLastTimeline",t)}}};var l=n(29439),u=n(93433),d=n(4942),p=n(77394),h=n(40454),m=n(77776),f=n(85565),g=n(8312);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=["smileys-and-emotion","people-and-body","animals-and-nature","food-and-drink","travel-and-places","activities","objects","symbols","flags"],y=function(){for(var e=127462,t="A".codePointAt(0),n=new Array(26),r=e;r<=127487;++r){var o=String.fromCodePoint(t+r-e);n[r-e]={replacement:String.fromCodePoint(r),imageUrl:!1,displayText:"regional_indicator_"+o,displayTextI18n:{key:"emoji.regional_indicator",args:{letter:o}}}}return n}(),_=function(e){return n(1395)("./".concat((0,g.langCodeToCldrName)(e),".json")).then((function(e){return e.default}))},k=function(e,t){var n=Object.keys(t);return w(w({},e),{},{annotations:n.reduce((function(n,r){return n[r]=t[r][e.replacement],n}),{})})};const S={state:{name:"Pleroma FE",registrationOpen:!0,server:"http://localhost:4040/",textlimit:5e3,themeData:void 0,vapidPublicKey:void 0,alwaysShowSubjectInput:!0,defaultAvatar:"/images/avi.png",defaultBanner:"/images/banner.png",background:"/static/aurora_borealis.jpg",collapseMessageWithSubject:!1,greentext:!1,useAtIcon:!1,mentionLinkDisplay:"short",mentionLinkShowTooltip:!0,mentionLinkShowAvatar:!1,mentionLinkFadeDomain:!0,mentionLinkShowYous:!1,mentionLinkBoldenYou:!0,hideFilteredStatuses:!1,hideMutedPosts:!1,hideMutedThreads:!0,hideWordFilteredPosts:!1,hidePostStats:!1,hideBotIndication:!1,hideSitename:!1,hideUserStats:!1,muteBotStatuses:!1,loginMethod:"password",logo:"/static/logo.svg",logoMargin:".2em",logoMask:!0,logoLeft:!1,disableUpdateNotification:!1,minimalScopesMode:!1,nsfwCensorImage:void 0,postContentType:"text/plain",redirectRootLogin:"/main/friends",redirectRootNoLogin:"/main/all",scopeCopy:!0,showFeaturesPanel:!0,showInstanceSpecificPanel:!1,sidebarRight:!1,subjectLineBehavior:"email",theme:"pleroma-dark",virtualScrolling:!0,sensitiveByDefault:!1,conversationDisplay:"linear",conversationTreeAdvanced:!1,conversationOtherRepliesButton:"below",conversationTreeFadeAncestors:!1,maxDepthInThread:6,customEmoji:[],customEmojiFetched:!1,emoji:{},emojiFetched:!1,unicodeEmojiAnnotations:{},pleromaBackend:!0,postFormats:[],restrictedNicknames:[],safeDM:!0,knownDomains:[],shoutAvailable:!1,pleromaChatMessagesAvailable:!1,gopherAvailable:!1,mediaProxyAvailable:!1,suggestionsEnabled:!1,suggestionsWeb:"",instanceSpecificPanelContent:"",tos:"",backendVersion:"",frontendVersion:"",pollsAvailable:!1,pollLimits:{max_options:4,max_option_chars:255,min_expiration:60,max_expiration:86400}},mutations:{setInstanceOption:function(e,t){var n=t.name,r=t.value;void 0!==r&&(e[n]=r)},setKnownDomains:function(e,t){e.knownDomains=t},setUnicodeEmojiAnnotations:function(e,t){var n=t.lang,r=t.annotations;e.unicodeEmojiAnnotations[n]=r}},getters:{instanceDefaultConfig:function(e){return f.Oi.map((function(t){return[t,e[t]]})).reduce((function(e,t){var n=(0,l.Z)(t,2),r=n[0],o=n[1];return w(w({},e),{},(0,d.Z)({},r,o))}),{})},groupedCustomEmojis:function(e){return e.customEmoji.reduce((function(e,t){return function(e){return e.tags.filter((function(e){return e.startsWith("pack:")})).map((function(e){return e.slice(5)}))}(t).forEach((function(n){var r="custom-".concat(n);e[r]||(e[r]={id:r,text:n,image:t.imageUrl,emojis:[]}),e[r].emojis.push(t)})),e}),{})},standardEmojiList:function(e){return b.map((function(t){return(e.emoji[t]||[]).map((function(t){return k(t,e.unicodeEmojiAnnotations)}))})).reduce((function(e,t){return e.concat(t)}),[])},standardEmojiGroupList:function(e){return b.map((function(t){return{id:t,emojis:(e.emoji[t]||[]).map((function(t){return k(t,e.unicodeEmojiAnnotations)}))}}))},instanceDomain:function(e){return new URL(e.server).hostname},remoteInteractionLink:function(e){var t=(e.server.endsWith("/")?e.server.slice(0,-1):e.server)+"/main/ostatus";return function(e){var n=e.statusId,r=e.nickname;return n?"".concat(t,"?status_id=").concat(n):"".concat(t,"?nickname=").concat(r)}}},actions:{setInstanceOption:function(e,t){var n=e.commit,r=e.dispatch,o=t.name,i=t.value;switch(n("setInstanceOption",{name:o,value:i}),o){case"name":r("setPageTitle");break;case"shoutAvailable":i&&r("initializeSocket");break;case"theme":r("setTheme",i)}},getStaticEmoji:function(e){return(0,r.Z)(i().mark((function t(){var r,o,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.commit,t.prev=1,t.next=4,n.e(3687).then(n.t.bind(n,13315,19));case 4:o=t.sent.default,s=Object.keys(o).reduce((function(e,t){return e[t]=o[t].map((function(e){return{displayText:e.slug,imageUrl:!1,replacement:e.emoji}})),e}),{}),r("setInstanceOption",{name:"emoji",value:(i=s,a=void 0,(a=i.symbols).push.apply(a,(0,u.Z)(y)),i)}),t.next=13;break;case 9:t.prev=9,t.t0=t.catch(1),console.warn("Can't load static emoji"),console.warn(t.t0);case 13:case"end":return t.stop()}var i,a}),t,null,[[1,9]])})))()},loadUnicodeEmojiData:function(e,t){var n=e.commit,o=e.state,s=(0,g.ensureFinalFallback)(t);return Promise.all(s.map(function(){var e=(0,r.Z)(i().mark((function e(t){var r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o.unicodeEmojiAnnotations[t]){e.next=5;break}return e.next=3,_(t);case 3:r=e.sent,n("setUnicodeEmojiAnnotations",{lang:t,annotations:r});case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()))},getCustomEmoji:function(e){return(0,r.Z)(i().mark((function t(){var n,r,o,s,a,c,d,p;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,r=e.state,t.prev=1,t.next=4,window.fetch("/api/pleroma/emoji.json");case 4:if(!(o=t.sent).ok){t.next=16;break}return t.next=8,o.json();case 8:s=t.sent,a=Array.isArray(s)?Object.assign.apply(Object,[{}].concat((0,u.Z)(s))):s,c=function(e,t){var n=e.toLowerCase(),r=t.toLowerCase();return n>r?1:n<r?-1:0},d=function(e,t){var n=function(e){return(e.tags.filter((function(e){return e.startsWith("pack:")}))[0]||"").slice(5)};return c(n(e),n(t))||c(e.displayText,t.displayText)},p=Object.entries(a).map((function(e){var t=(0,l.Z)(e,2),n=t[0],o=t[1],i=o.image_url;return{displayText:n,imageUrl:i?r.server+i:o,tags:i?o.tags.sort((function(e,t){return e>t?1:0})):["utf"],replacement:":".concat(n,": ")}})).sort(d),n("setInstanceOption",{name:"customEmoji",value:p}),t.next=17;break;case 16:throw o;case 17:t.next=23;break;case 19:t.prev=19,t.t0=t.catch(1),console.warn("Can't load custom emojis"),console.warn(t.t0);case 23:case"end":return t.stop()}}),t,null,[[1,19]])})))()},setTheme:function(e,t){var n=e.commit,r=e.rootState;n("setInstanceOption",{name:"theme",value:t}),(0,p.I3)(t).then((function(e){if(n("setInstanceOption",{name:"themeData",value:e}),!r.config.customTheme){var t=e.source;!e.theme||t&&t.themeEngineVersion===h.we?(0,p._v)(t):(0,p._v)(e.theme)}}))},fetchEmoji:function(e){var t=e.dispatch,n=e.state;n.customEmojiFetched||(n.customEmojiFetched=!0,t("getCustomEmoji")),n.emojiFetched||(n.emojiFetched=!0,t("getStaticEmoji"))},getKnownDomains:function(e){return(0,r.Z)(i().mark((function t(){var n,r,o;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,r=e.rootState,t.prev=1,t.next=4,m.ZP.fetchKnownDomains({credentials:r.users.currentUser.credentials});case 4:o=t.sent,n("setKnownDomains",o),t.next=12;break;case 8:t.prev=8,t.t0=t.catch(1),console.warn("Can't load known domains"),console.warn(t.t0);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})))()}}};var j=n(14176),O=n.n(j),C=n(1469),P=n.n(C),z=n(10928),I=n.n(z),D=n(8804),x=n.n(D),T=n(82492),$=n.n(T),U=n(22762),M=n.n(U),A=n(84753),L=n.n(A),E=n(13311),F=n.n(E),R=n(30998),N=n.n(R),q=n(66073),Z=n.n(q),W=n(12571),B=n.n(W),H=n(82729),V=n.n(H),K=n(52230);function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?G(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return{statuses:[],statusesObject:{},faves:[],visibleStatuses:[],visibleStatusesObject:{},newStatusCount:0,maxId:0,minId:0,minVisibleId:0,loading:!1,followers:[],friends:[],userId:e,flushMarker:0}},Q=function(){return{desktopNotificationSilence:!0,maxId:0,minId:Number.POSITIVE_INFINITY,data:[],idStore:{},loading:!1}},X=function(){return{allStatuses:[],allStatusesObject:{},conversationsObject:{},maxId:0,notifications:Q(),favorites:new Set,timelines:{mentions:J(),public:J(),user:J(),favorites:J(),media:J(),publicAndExternal:J(),friends:J(),tag:J(),dms:J(),bookmarks:J(),list:J()}}},ee=function(e,t,n){var r=t[n.id];return r?($()(r,O()(n,(function(e,t){return null===e||"user"===t}))),r.attachments.splice(r.attachments.length),{item:r,new:!1}):(function(e){e.deleted=!1,e.attachments=e.attachments||[]}(n),e.push(n),t[n.id]=n,{item:n,new:!0})},te=function(e,t){var n=Number(e.id),r=Number(t.id),o=!Number.isNaN(n),i=!Number.isNaN(r);return o&&i?n>r?-1:1:o&&!i?1:!o&&i||e.id>t.id?-1:1},ne=function(e){return e.visibleStatuses=e.visibleStatuses.sort(te),e.statuses=e.statuses.sort(te),e.minVisibleId=(I()(e.visibleStatuses)||{}).id,e},re=function(e,t){var n=ee(e.allStatuses,e.allStatusesObject,t);if(n.new){var r=n.item,o=e.conversationsObject,i=r.statusnet_conversation_id;o[i]?o[i].push(r):o[i]=[r]}return n},oe=function(e,t){e.notifications.maxId=t.id>e.notifications.maxId?t.id:e.notifications.maxId,e.notifications.minId=t.id<e.notifications.minId?t.id:e.notifications.minId},ie={addNewStatuses:function(e,t){var n=t.statuses,r=t.showImmediately,o=void 0!==r&&r,i=t.timeline,s=t.user,a=void 0===s?{}:s,c=t.noIdUpdate,l=void 0!==c&&c,u=t.userId,d=t.pagination,p=void 0===d?{}:d;if(!P()(n))return!1;var h=e.allStatuses,m=e.timelines[i],f=p.maxId||(n.length>0?M()(n,"id").id:0),g=p.minId||(n.length>0?L()(n,"id").id:0),v=i&&(g>m.maxId||0===m.maxId)&&n.length>0,w=i&&(f<m.minId||0===m.minId)&&n.length>0;if(!l&&v&&(m.maxId=g),!l&&w&&(m.minId=f),"user"!==i&&"media"!==i||m.userId===u){var b=function(t,n){var r,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=re(e,t),c=s.item;if(s.new){if("status"===c.type&&F()(c.attentions,{id:a.id})){var l=e.timelines.mentions;m!==l&&(ee(l.statuses,l.statusesObject,c),l.newStatusCount+=1,ne(l))}if("direct"===c.visibility){var u=e.timelines.dms;ee(u.statuses,u.statusesObject,c),u.newStatusCount+=1,ne(u)}}return i&&o&&(r=ee(m.statuses,m.statusesObject,c)),i&&n?ee(m.visibleStatuses,m.visibleStatusesObject,c):i&&o&&r.new&&(m.newStatusCount+=1),c},y={status:function(e){b(e,o)},edit:function(e){b(e,o)},retweet:function(e){var t=b(e.retweeted_status,!1,!1);(i&&F()(m.statuses,(function(e){return e.retweeted_status?e.id===t.id||e.retweeted_status.id===t.id:e.id===t.id}))?b(e,!1,!1):b(e,o)).retweeted_status=t},favorite:function(t){e.favorites.has(t.id)||(e.favorites.add(t.id),function(e,t){var n=F()(h,{id:e.in_reply_to_status_id});n&&(e.user.id===a.id?n.favorited=!0:n.fave_num+=1)}(t))},deletion:function(t){var n=t.uri,r=F()(h,{uri:n});r&&(function(e,t){V()(e.allStatuses,{id:t.id}),V()(e.notifications.data,(function(e){return e.action.id===t.id}));var n=t.statusnet_conversation_id;e.conversationsObject[n]&&V()(e.conversationsObject[n],{id:t.id})}(e,r),i&&(V()(m.statuses,{uri:n}),V()(m.visibleStatuses,{uri:n})))},follow:function(e){},default:function(e){console.log("unknown status type"),console.log(e)}};Z()(n,(function(e){var t=e.type;(y[t]||y.default)(e)})),i&&"bookmarks"!==i&&ne(m)}},addNewNotifications:function(e,t){var n=t.dispatch,r=t.notifications,o=(t.older,t.visibleNotificationTypes,t.rootGetters,t.newNotificationSideEffects);Z()(r,(function(t){if(!(0,K.nU)(t))return console.error("Invalid notification:",t),void oe(e,t);(0,K.Gr)(t.type)&&(t.action=re(e,t.action).item,t.status=t.status&&re(e,t.status).item),"pleroma:report"===t.type&&n("addReport",t.report),"pleroma:emoji_reaction"===t.type&&n("fetchEmojiReactionsBy",t.status.id),e.notifications.idStore.hasOwnProperty(t.id)?t.seen&&(e.notifications.idStore[t.id].seen=!0):(oe(e,t),e.notifications.data.push(t),e.notifications.idStore[t.id]=t,o(t))}))},removeStatus:function(e,t){var n=t.timeline,r=t.userId,o=e.timelines[n];r&&(V()(o.statuses,{user:{id:r}}),V()(o.visibleStatuses,{user:{id:r}}),o.minVisibleId=o.visibleStatuses.length>0?I()(o.visibleStatuses).id:0,o.maxId=o.statuses.length>0?x()(o.statuses).id:0)},showNewStatuses:function(e,t){var n=t.timeline,r=e.timelines[n];r.newStatusCount=0,r.visibleStatuses=B()(r.statuses,0,50),r.minVisibleId=I()(r.visibleStatuses).id,r.minId=r.minVisibleId,r.visibleStatusesObject={},Z()(r.visibleStatuses,(function(e){r.visibleStatusesObject[e.id]=e}))},resetStatuses:function(e){var t=X();Object.entries(t).forEach((function(t){var n=(0,l.Z)(t,2),r=n[0],o=n[1];e[r]=o}))},clearTimeline:function(e,t){var n=t.timeline,r=t.excludeUserId,o=void 0!==r&&r?e.timelines[n].userId:void 0;e.timelines[n]=J(o)},clearNotifications:function(e){e.notifications=Q()},setFavorited:function(e,t){var n=t.status,r=t.value,o=e.allStatusesObject[n.id];o.favorited!==r&&(r?o.fave_num++:o.fave_num--),o.favorited=r},setFavoritedConfirm:function(e,t){var n=t.status,r=t.user,o=e.allStatusesObject[n.id];o.favorited=n.favorited,o.fave_num=n.fave_num;var i=N()(o.favoritedBy,{id:r.id});-1===i||o.favorited?-1===i&&o.favorited&&o.favoritedBy.push(r):o.favoritedBy.splice(i,1)},setMutedStatus:function(e,t){var n=e.allStatusesObject[t.id];n.thread_muted=t.thread_muted,void 0!==n.thread_muted&&e.conversationsObject[n.statusnet_conversation_id].forEach((function(e){e.thread_muted=n.thread_muted}))},setRetweeted:function(e,t){var n=t.status,r=t.value,o=e.allStatusesObject[n.id];o.repeated!==r&&(r?o.repeat_num++:o.repeat_num--),o.repeated=r},setRetweetedConfirm:function(e,t){var n=t.status,r=t.user,o=e.allStatusesObject[n.id];o.repeated=n.repeated,o.repeat_num=n.repeat_num;var i=N()(o.rebloggedBy,{id:r.id});-1===i||o.repeated?-1===i&&o.repeated&&o.rebloggedBy.push(r):o.rebloggedBy.splice(i,1)},setBookmarked:function(e,t){var n=t.status,r=t.value;e.allStatusesObject[n.id].bookmarked=r},setBookmarkedConfirm:function(e,t){var n=t.status;e.allStatusesObject[n.id].bookmarked=n.bookmarked},setDeleted:function(e,t){var n=t.status,r=e.allStatusesObject[n.id];r&&(r.deleted=!0)},setManyDeleted:function(e,t){Object.values(e.allStatusesObject).forEach((function(e){t(e)&&(e.deleted=!0)}))},setLoading:function(e,t){var n=t.timeline,r=t.value;e.timelines[n].loading=r},setNsfw:function(e,t){var n=t.id,r=t.nsfw;e.allStatusesObject[n].nsfw=r},setNotificationsLoading:function(e,t){var n=t.value;e.notifications.loading=n},setNotificationsSilence:function(e,t){var n=t.value;e.notifications.desktopNotificationSilence=n},markNotificationsAsSeen:function(e){Z()(e.notifications.data,(function(e){e.seen=!0}))},markSingleNotificationAsSeen:function(e,t){var n=t.id,r=F()(e.notifications.data,(function(e){return e.id===n}));r&&(r.seen=!0)},dismissNotification:function(e,t){var n=t.id;e.notifications.data=e.notifications.data.filter((function(e){return e.id!==n}))},dismissNotifications:function(e,t){var n=t.finder;e.notifications.data=e.notifications.data.filter((function(e){return n}))},updateNotification:function(e,t){var n=t.id,r=t.updater,o=F()(e.notifications.data,(function(e){return e.id===n}));o&&r(o)},queueFlush:function(e,t){var n=t.timeline,r=t.id;e.timelines[n].flushMarker=r},queueFlushAll:function(e){Object.keys(e.timelines).forEach((function(t){e.timelines[t].flushMarker=e.timelines[t].maxId}))},addRepeats:function(e,t){var n=t.id,r=t.rebloggedByUsers,o=t.currentUser,i=e.allStatusesObject[n];i.rebloggedBy=r.filter((function(e){return e})),i.repeat_num=i.rebloggedBy.length,i.repeated=!!i.rebloggedBy.find((function(e){var t=e.id;return o.id===t}))},addFavs:function(e,t){var n=t.id,r=t.favoritedByUsers,o=t.currentUser,i=e.allStatusesObject[n];i.favoritedBy=r.filter((function(e){return e})),i.fave_num=i.favoritedBy.length,i.favorited=!!i.favoritedBy.find((function(e){var t=e.id;return o.id===t}))},addEmojiReactionsBy:function(e,t){var n=t.id,r=t.emojiReactions;t.currentUser,e.allStatusesObject[n].emoji_reactions=r},addOwnReaction:function(e,t){var n=t.id,r=t.emoji,o=t.currentUser,i=e.allStatusesObject[n],s=N()(i.emoji_reactions,{name:r}),a=i.emoji_reactions[s]||{name:r,count:0,accounts:[]},c=Y(Y({},a),{},{count:a.count+1,me:!0,accounts:[].concat((0,u.Z)(a.accounts),[o])});s>=0?i.emoji_reactions[s]=c:i.emoji_reactions=[].concat((0,u.Z)(i.emoji_reactions),[c])},removeOwnReaction:function(e,t){var n=t.id,r=t.emoji,o=t.currentUser,i=e.allStatusesObject[n],s=N()(i.emoji_reactions,{name:r});if(!(s<0)){var a=i.emoji_reactions[s],c=a.accounts||[],l=Y(Y({},a),{},{count:a.count-1,me:!1,accounts:c.filter((function(e){return e.id!==o.id}))});l.count>0?i.emoji_reactions[s]=l:i.emoji_reactions=i.emoji_reactions.filter((function(e){return e.name!==r}))}},updateStatusWithPoll:function(e,t){var n=t.id,r=t.poll;e.allStatusesObject[n].poll=r},setVirtualHeight:function(e,t){var n=t.statusId,r=t.height;e.allStatusesObject[n].virtualHeight=r}},se={state:X(),actions:{addNewStatuses:function(e,t){var n=e.rootState,r=e.commit,o=t.statuses,i=t.showImmediately,s=void 0!==i&&i,a=t.timeline,c=void 0!==a&&a,l=t.noIdUpdate,u=void 0!==l&&l,d=t.userId,p=t.pagination;r("addNewStatuses",{statuses:o,showImmediately:s,timeline:c,noIdUpdate:u,user:n.users.currentUser,userId:d,pagination:p})},addNewNotifications:function(e,t){var n=t.notifications,r=t.older;(0,e.commit)("addNewNotifications",{dispatch:e.dispatch,notifications:n,older:r,rootGetters:e.rootGetters,newNotificationSideEffects:function(t){(0,K.nJ)(e,t)}})},setNotificationsLoading:function(e,t){e.rootState,(0,e.commit)("setNotificationsLoading",{value:t.value})},setNotificationsSilence:function(e,t){e.rootState,(0,e.commit)("setNotificationsSilence",{value:t.value})},fetchStatus:function(e,t){var n=e.rootState,r=e.dispatch;return n.api.backendInteractor.fetchStatus({id:t}).then((function(e){return r("addNewStatuses",{statuses:[e]})}))},fetchStatusSource:function(e,t){var n=e.rootState;return e.dispatch,m.ZP.fetchStatusSource({id:t.id,credentials:n.users.currentUser.credentials})},fetchStatusHistory:function(e,t){return e.rootState,e.dispatch,m.ZP.fetchStatusHistory({status:t})},deleteStatus:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:t}),m.ZP.deleteStatus({id:t.id,credentials:n.users.currentUser.credentials})},deleteStatusById:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:n.statuses.allStatusesObject[t]})},markStatusesAsDeleted:function(e,t){(0,e.commit)("setManyDeleted",t)},favorite:function(e,t){var n=e.rootState,r=e.commit;r("setFavorited",{status:t,value:!0}),n.api.backendInteractor.favorite({id:t.id}).then((function(e){return r("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},unfavorite:function(e,t){var n=e.rootState,r=e.commit;r("setFavorited",{status:t,value:!1}),n.api.backendInteractor.unfavorite({id:t.id}).then((function(e){return r("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},fetchPinnedStatuses:function(e,t){var n=e.rootState,r=e.dispatch;n.api.backendInteractor.fetchPinnedStatuses({id:t}).then((function(e){return r("addNewStatuses",{statuses:e,timeline:"user",userId:t,showImmediately:!0,noIdUpdate:!0})}))},pinStatus:function(e,t){var n=e.rootState,r=e.dispatch;return n.api.backendInteractor.pinOwnStatus({id:t}).then((function(e){return r("addNewStatuses",{statuses:[e]})}))},unpinStatus:function(e,t){var n=e.rootState,r=e.dispatch;n.api.backendInteractor.unpinOwnStatus({id:t}).then((function(e){return r("addNewStatuses",{statuses:[e]})}))},muteConversation:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.muteConversation({id:t}).then((function(e){return r("setMutedStatus",e)}))},unmuteConversation:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.unmuteConversation({id:t}).then((function(e){return r("setMutedStatus",e)}))},retweet:function(e,t){var n=e.rootState,r=e.commit;r("setRetweeted",{status:t,value:!0}),n.api.backendInteractor.retweet({id:t.id}).then((function(e){return r("setRetweetedConfirm",{status:e.retweeted_status,user:n.users.currentUser})}))},unretweet:function(e,t){var n=e.rootState,r=e.commit;r("setRetweeted",{status:t,value:!1}),n.api.backendInteractor.unretweet({id:t.id}).then((function(e){return r("setRetweetedConfirm",{status:e,user:n.users.currentUser})}))},bookmark:function(e,t){var n=e.rootState,r=e.commit;r("setBookmarked",{status:t,value:!0}),n.api.backendInteractor.bookmarkStatus({id:t.id}).then((function(e){r("setBookmarkedConfirm",{status:e})}))},unbookmark:function(e,t){var n=e.rootState,r=e.commit;r("setBookmarked",{status:t,value:!1}),n.api.backendInteractor.unbookmarkStatus({id:t.id}).then((function(e){r("setBookmarkedConfirm",{status:e})}))},queueFlush:function(e,t){e.rootState,(0,e.commit)("queueFlush",{timeline:t.timeline,id:t.id})},queueFlushAll:function(e){e.rootState,(0,e.commit)("queueFlushAll")},markNotificationsAsSeen:function(e){var t=e.rootState;(0,e.commit)("markNotificationsAsSeen"),m.ZP.markNotificationsAsSeen({id:t.statuses.notifications.maxId,credentials:t.users.currentUser.credentials})},markSingleNotificationAsSeen:function(e,t){var n=e.rootState,r=e.commit,o=t.id;r("markSingleNotificationAsSeen",{id:o}),m.ZP.markNotificationsAsSeen({single:!0,id:o,credentials:n.users.currentUser.credentials})},dismissNotificationLocal:function(e,t){e.rootState,(0,e.commit)("dismissNotification",{id:t.id})},dismissNotification:function(e,t){var n=e.rootState,r=e.commit,o=t.id;r("dismissNotification",{id:o}),n.api.backendInteractor.dismissNotification({id:o})},updateNotification:function(e,t){e.rootState,(0,e.commit)("updateNotification",{id:t.id,updater:t.updater})},fetchFavsAndRepeats:function(e,t){var n=e.rootState,r=e.commit;Promise.all([n.api.backendInteractor.fetchFavoritedByUsers({id:t}),n.api.backendInteractor.fetchRebloggedByUsers({id:t})]).then((function(e){var o=(0,l.Z)(e,2),i=o[0],s=o[1];r("addFavs",{id:t,favoritedByUsers:i,currentUser:n.users.currentUser}),r("addRepeats",{id:t,rebloggedByUsers:s,currentUser:n.users.currentUser})}))},reactWithEmoji:function(e,t){var n=e.rootState,r=e.dispatch,o=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(o("addOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.reactWithEmoji({id:i,emoji:s}).then((function(e){r("fetchEmojiReactionsBy",i)})))},unreactWithEmoji:function(e,t){var n=e.rootState,r=e.dispatch,o=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(o("removeOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.unreactWithEmoji({id:i,emoji:s}).then((function(e){r("fetchEmojiReactionsBy",i)})))},fetchEmojiReactionsBy:function(e,t){var n=e.rootState,r=e.commit;n.api.backendInteractor.fetchEmojiReactions({id:t}).then((function(e){r("addEmojiReactionsBy",{id:t,emojiReactions:e,currentUser:n.users.currentUser})}))},fetchFavs:function(e,t){var n=e.rootState,r=e.commit;n.api.backendInteractor.fetchFavoritedByUsers({id:t}).then((function(e){return r("addFavs",{id:t,favoritedByUsers:e,currentUser:n.users.currentUser})}))},fetchRepeats:function(e,t){var n=e.rootState,r=e.commit;n.api.backendInteractor.fetchRebloggedByUsers({id:t}).then((function(e){return r("addRepeats",{id:t,rebloggedByUsers:e,currentUser:n.users.currentUser})}))},search:function(e,t){var n=t.q,r=t.resolve,o=t.limit,i=t.offset,s=t.following,a=t.type;return e.rootState.api.backendInteractor.search2({q:n,resolve:r,limit:o,offset:i,following:s,type:a}).then((function(t){return e.commit("addNewUsers",t.accounts),e.commit("addNewStatuses",{statuses:t.statuses}),t}))},setVirtualHeight:function(e,t){(0,e.commit)("setVirtualHeight",{statusId:t.statusId,height:t.height})}},mutations:ie};const ae=se;var ce={setLists:function(e,t){e.allLists=t},setList:function(e,t){var n=t.listId,r=t.title;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].title=r;var o=F()(e.allLists,{id:n});o?o.title=r:e.allLists.push({id:n,title:r})},setListAccounts:function(e,t){var n=t.listId,r=t.accountIds;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds=r},addListAccount:function(e,t){var n=t.listId,r=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds.push(r)},removeListAccount:function(e,t){var n=t.listId,r=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]});var o=e.allListsObject[n].accountIds,i=new Set(o);i.delete(r),e.allListsObject[n].accountIds=(0,u.Z)(i)},deleteList:function(e,t){var n=t.listId;delete e.allListsObject[n],V()(e.allLists,(function(e){return e.id===n}))}},le={state:{allLists:[],allListsObject:{}},mutations:ce,actions:{setLists:function(e,t){(0,e.commit)("setLists",t)},createList:function(e,t){var n=e.rootState,r=e.commit,o=t.title;return n.api.backendInteractor.createList({title:o}).then((function(e){return r("setList",{listId:e.id,title:o}),e}))},fetchList:function(e,t){var n=e.rootState,r=e.commit,o=t.listId;return n.api.backendInteractor.getList({listId:o}).then((function(e){return r("setList",{listId:e.id,title:e.title})}))},fetchListAccounts:function(e,t){var n=e.rootState,r=e.commit,o=t.listId;return n.api.backendInteractor.getListAccounts({listId:o}).then((function(e){return r("setListAccounts",{listId:o,accountIds:e})}))},setList:function(e,t){var n=e.rootState,r=e.commit,o=t.listId,i=t.title;n.api.backendInteractor.updateList({listId:o,title:i}),r("setList",{listId:o,title:i})},setListAccounts:function(e,t){var n=e.rootState,r=e.commit,o=t.listId,i=t.accountIds,s=n.lists.allListsObject[o].accountIds||[],a=i.filter((function(e){return!s.includes(e)})),c=s.filter((function(e){return!i.includes(e)}));r("setListAccounts",{listId:o,accountIds:i}),a.length>0&&n.api.backendInteractor.addAccountsToList({listId:o,accountIds:a}),c.length>0&&n.api.backendInteractor.removeAccountsFromList({listId:o,accountIds:c})},addListAccount:function(e,t){var n=e.rootState,r=e.commit,o=t.listId,i=t.accountId;return n.api.backendInteractor.addAccountsToList({listId:o,accountIds:[i]}).then((function(e){return r("addListAccount",{listId:o,accountId:i}),e}))},removeListAccount:function(e,t){var n=e.rootState,r=e.commit,o=t.listId,i=t.accountId;return n.api.backendInteractor.removeAccountsFromList({listId:o,accountIds:[i]}).then((function(e){return r("removeListAccount",{listId:o,accountId:i}),e}))},deleteList:function(e,t){var n=e.rootState,r=e.commit,o=t.listId;n.api.backendInteractor.deleteList({listId:o}),r("deleteList",{listId:o})}},getters:{findListTitle:function(e){return function(t){if(e.allListsObject[t])return e.allListsObject[t].title}},findListAccounts:function(e){return function(t){return(0,u.Z)(e.allListsObject[t].accountIds)}}}};const ue=le;var de=n(44908),pe=n.n(de),he=n(57043),me=n.n(he),fe=n(30236),ge=n.n(fe),ve=n(35161),we=n.n(ve),be=n(39693),ye=n.n(be),_e=n(68929),ke=n.n(_e),Se=n(22626),je=function(e){var t=e.store,n=e.credentials,r=e.timeline,o=void 0===r?"friends":r,i=e.older,s=void 0!==i&&i,a=e.showImmediately,c=void 0!==a&&a,l=e.userId,u=void 0!==l&&l,d=e.listId,p=void 0!==d&&d,h=e.tag,f=void 0!==h&&h,g=e.until,v=e.since,w={timeline:o,credentials:n},b=t.rootState||t.state,y=t.getters,_=b.statuses.timelines[ke()(o)],k=y.mergedConfig,S=k.hideMutedPosts,j=k.replyVisibility,O=!!b.users.currentUser;s?w.until=g||_.minId:void 0===v?w.since=_.maxId:null!==v&&(w.since=v),w.userId=u,w.listId=p,w.tag=f,w.withMuted=!S,O&&["friends","public","publicAndExternal"].includes(o)&&(w.replyVisibility=j);var C=_.statuses.length;return m.ZP.fetchTimeline(w).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data,r=e.pagination;return!s&&n.length>=20&&!_.loading&&C>0&&t.dispatch("queueFlush",{timeline:o,id:_.maxId}),function(e){var t=e.store,n=e.statuses,r=e.timeline,o=e.showImmediately,i=e.userId,s=e.listId,a=e.pagination,c=ke()(r);t.dispatch("addNewStatuses",{timeline:c,userId:i,listId:s,statuses:n,showImmediately:o,pagination:a})}({store:t,statuses:n,timeline:o,showImmediately:c,userId:u,listId:p,pagination:r}),{statuses:n,pagination:r}})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"timeline.error",messageArgs:[e.message],timeout:5e3})}))},Oe={fetchAndUpdate:je,startFetching:function(e){var t=e.timeline,n=void 0===t?"friends":t,r=e.credentials,o=e.store,i=e.userId,s=void 0!==i&&i,a=e.listId,c=void 0!==a&&a,l=e.tag,u=void 0!==l&&l,d=(o.rootState||o.state).statuses.timelines[ke()(n)],p=0===d.visibleStatuses.length;return d.userId=s,d.listId=c,je({timeline:n,credentials:r,store:o,showImmediately:p,userId:s,listId:c,tag:u}),(0,Se.F)((function(){return je({timeline:n,credentials:r,store:o,userId:s,listId:c,tag:u})}),1e4)}};const Ce=Oe;var Pe=n(15568);const ze=function(e){var t=e.credentials,n=e.store,r=function(){return function(e){var t=e.store,n=e.credentials;return m.ZP.fetchFollowRequests({credentials:n}).then((function(e){t.commit("setFollowRequests",e),t.commit("addNewUsers",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return r(),(0,Se.F)(r,1e4)};var Ie={startFetching:function(e){var t=e.credentials,n=e.store,r=function(){return function(e){var t=e.store,n=e.credentials;return m.ZP.fetchLists({credentials:n}).then((function(e){t.commit("setLists",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return r(),(0,Se.F)(r,24e4)}};const De=Ie;function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xe(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const $e=function(e){return Te(Te({startFetchingTimeline:function(t){var n=t.timeline,r=t.store,o=t.userId,i=void 0!==o&&o,s=t.listId,a=void 0!==s&&s,c=t.tag;return Ce.startFetching({timeline:n,store:r,credentials:e,userId:i,listId:a,tag:c})},fetchTimeline:function(t){return Ce.fetchAndUpdate(Te(Te({},t),{},{credentials:e}))},startFetchingNotifications:function(t){var n=t.store;return Pe.Z.startFetching({store:n,credentials:e})},fetchNotifications:function(t){return Pe.Z.fetchAndUpdate(Te(Te({},t),{},{credentials:e}))},startFetchingFollowRequests:function(t){var n=t.store;return ze({store:n,credentials:e})},startFetchingLists:function(t){var n=t.store;return De.startFetching({store:n,credentials:e})},startUserSocket:function(t){var n=t.store.rootState.instance.server.replace("http","ws")+(0,m.pR)({credentials:e,stream:"user"});return(0,m.ro)({url:n,id:"User"})}},Object.entries(m.ZP).reduce((function(t,n){var r=(0,l.Z)(n,2),o=r[0],i=r[1];return Te(Te({},t),{},(0,d.Z)({},o,(function(t){return i(Te({credentials:e},t))})))}),{})),{},{verifyCredentials:m.ZP.verifyCredentials})};var Ue=function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth},Me=function(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},Ae=n(54061),Le=n.n(Ae),Ee="".concat(window.location.origin,"/oauth-callback"),Fe=function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,o=e.commit;if(t&&n)return Promise.resolve({clientId:t,clientSecret:n});var i="".concat(r,"/api/v1/apps"),s=new window.FormData;return s.append("client_name","PleromaFE_".concat(window.___pleromafe_commit_hash,"_").concat((new Date).toISOString())),s.append("redirect_uris",Ee),s.append("scopes","read write follow push admin"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()})).then((function(e){return{clientId:e.client_id,clientSecret:e.client_secret}})).then((function(e){return o("setClientData",e)||e}))},Re=function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,o="".concat(r,"/oauth/token"),i=new window.FormData;return i.append("client_id",t),i.append("client_secret",n),i.append("grant_type","client_credentials"),i.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(o,{method:"POST",body:i}).then((function(e){return e.json()}))},Ne={login:function(e){var t=e.instance,n={response_type:"code",client_id:e.clientId,redirect_uri:Ee,scope:"read write follow push admin"},r=Le()(n,(function(e,t,n){var r="".concat(n,"=").concat(encodeURIComponent(t));return e?"".concat(e,"&").concat(r):r}),!1),o="".concat(t,"/oauth/authorize?").concat(r);window.location.href=o},getToken:function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,o=e.code,i="".concat(r,"/oauth/token"),s=new window.FormData;return s.append("client_id",t),s.append("client_secret",n),s.append("grant_type","authorization_code"),s.append("code",o),s.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},getTokenWithCredentials:function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,o=e.username,i=e.password,s="".concat(r,"/oauth/token"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("grant_type","password"),a.append("username",o),a.append("password",i),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},getOrCreateApp:Fe,verifyOTPCode:function(e){var t=e.app,n=e.instance,r=e.mfaToken,o=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",r),s.append("code",o),s.append("challenge_type","totp"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.app,n=e.instance,r=e.mfaToken,o=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",r),s.append("code",o),s.append("challenge_type","recovery"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},revokeToken:function(e){var t=e.app,n=e.instance,r=e.token,o="".concat(n,"/oauth/revoke"),i=new window.FormData;return i.append("client_id",t.clientId),i.append("client_secret",t.clientSecret),i.append("token",r),window.fetch(o,{method:"POST",body:i}).then((function(e){return e.json()}))}};const qe=Ne;var Ze=n(56012),We=n.n(Ze);function Be(){return"serviceWorker"in navigator&&"PushManager"in window}function He(){return We().register().catch((function(e){return console.error("Unable to get or create a service worker.",e)}))}function Ve(e){return window.fetch("/api/v1/push/subscription/",{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(e)}}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e}))}function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ge(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ke(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ye=function e(t,n){if(P()(t)&&P()(n))return t.length=n.length,ge()(t,n,e)},Je=function(e,t){return e.rootState.api.backendInteractor.blockUser({id:t}).then((function(n){e.commit("updateUserRelationship",[n]),e.commit("addBlockId",t),e.commit("removeStatus",{timeline:"friends",userId:t}),e.commit("removeStatus",{timeline:"public",userId:t}),e.commit("removeStatus",{timeline:"publicAndExternal",userId:t})}))},Qe=function(e,t){return e.rootState.api.backendInteractor.unblockUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},Xe=function(e,t){var n=e.state.relationships[t]||{id:t};return n.muting=!0,e.commit("updateUserRelationship",[n]),e.commit("addMuteId",t),e.rootState.api.backendInteractor.muteUser({id:t}).then((function(n){e.commit("updateUserRelationship",[n]),e.commit("addMuteId",t)}))},et=function(e,t){var n=e.state.relationships[t]||{id:t};return n.muting=!1,e.commit("updateUserRelationship",[n]),e.rootState.api.backendInteractor.unmuteUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},tt=function(e,t){return e.rootState.api.backendInteractor.muteDomain({domain:t}).then((function(){return e.commit("addDomainMute",t)}))},nt=function(e,t){return e.rootState.api.backendInteractor.unmuteDomain({domain:t}).then((function(){return e.commit("removeDomainMute",t)}))},rt={tagUser:function(e,t){var n=t.user.id,r=t.tag,o=e.usersObject[n],i=(o.tags||[]).concat([r]);o.tags=i},untagUser:function(e,t){var n=t.user.id,r=t.tag,o=e.usersObject[n],i=(o.tags||[]).filter((function(e){return e!==r}));o.tags=i},updateRight:function(e,t){var n=t.user.id,r=t.right,o=t.value,i=e.usersObject[n],s=i.rights;s[r]=o,i.rights=s},updateActivationStatus:function(e,t){var n=t.user.id,r=t.deactivated;e.usersObject[n].deactivated=r},setCurrentUser:function(e,t){e.lastLoginName=t.screen_name,e.currentUser=ge()(e.currentUser||{},t,Ye)},clearCurrentUser:function(e){e.currentUser=!1,e.lastLoginName=!1},beginLogin:function(e){e.loggingIn=!0},endLogin:function(e){e.loggingIn=!1},saveFriendIds:function(e,t){var n=t.id,r=t.friendIds,o=e.usersObject[n];o.friendIds=pe()(me()(o.friendIds||[],r))},saveFollowerIds:function(e,t){var n=t.id,r=t.followerIds,o=e.usersObject[n];o.followerIds=pe()(me()(o.followerIds||[],r))},clearFriends:function(e,t){var n=e.usersObject[t];n&&(n.friendIds=[])},clearFollowers:function(e,t){var n=e.usersObject[t];n&&(n.followerIds=[])},addNewUsers:function(e,t){Z()(t,(function(t){t.relationship&&(e.relationships[t.relationship.id]=t.relationship);var n=function(e,t,n){if(!n)return!1;var r=t[n.id];return r?(ge()(r,n,Ye),{item:r,new:!1}):(e.push(n),t[n.id]=n,{item:n,new:!0})}(e.users,e.usersObject,t),r=n.item;n.new&&r.screen_name&&!r.screen_name.includes("@")&&(e.usersByNameObject[r.screen_name.toLowerCase()]=r)}))},updateUserRelationship:function(e,t){t.forEach((function(t){e.relationships[t.id]=t}))},updateUserInLists:function(e,t){var n=t.id,r=t.inLists;e.usersObject[n].inLists=r},saveBlockIds:function(e,t){e.currentUser.blockIds=t},addBlockId:function(e,t){-1===e.currentUser.blockIds.indexOf(t)&&e.currentUser.blockIds.push(t)},saveMuteIds:function(e,t){e.currentUser.muteIds=t},addMuteId:function(e,t){-1===e.currentUser.muteIds.indexOf(t)&&e.currentUser.muteIds.push(t)},saveDomainMutes:function(e,t){e.currentUser.domainMutes=t},addDomainMute:function(e,t){-1===e.currentUser.domainMutes.indexOf(t)&&e.currentUser.domainMutes.push(t)},removeDomainMute:function(e,t){var n=e.currentUser.domainMutes.indexOf(t);-1!==n&&e.currentUser.domainMutes.splice(n,1)},setPinnedToUser:function(e,t){var n=e.usersObject[t.user.id];n.pinnedStatusIds=n.pinnedStatusIds||[];var r=n.pinnedStatusIds.indexOf(t.id);t.pinned&&-1===r?n.pinnedStatusIds.push(t.id):t.pinned||-1===r||n.pinnedStatusIds.splice(r,1)},setUserForStatus:function(e,t){t.user=e.usersObject[t.user.id]},setUserForNotification:function(e,t){"follow"!==t.type&&(t.action.user=e.usersObject[t.action.user.id]),t.from_profile=e.usersObject[t.from_profile.id]},setColor:function(e,t){var n=t.user.id,r=t.highlighted;e.usersObject[n].highlight=r},signUpPending:function(e){e.signUpPending=!0,e.signUpErrors=[]},signUpSuccess:function(e){e.signUpPending=!1},signUpFailure:function(e,t){e.signUpPending=!1,e.signUpErrors=t}},ot={state:{loggingIn:!1,lastLoginName:!1,currentUser:!1,users:[],usersObject:{},usersByNameObject:{},signUpPending:!1,signUpErrors:[],relationships:{}},mutations:rt,getters:{findUser:function(e){return function(t){return e.usersObject[t]}},findUserByName:function(e){return function(t){return e.usersByNameObject[t.toLowerCase()]}},findUserByUrl:function(e){return function(t){return e.users.find((function(e){return e.statusnet_profile_url&&e.statusnet_profile_url.toLowerCase()===t.toLowerCase()}))}},relationship:function(e){return function(t){return t&&e.relationships[t]||{id:t,loading:!0}}}},actions:{fetchUserIfMissing:function(e,t){e.getters.findUser(t)||e.dispatch("fetchUser",t)},fetchUser:function(e,t){return e.rootState.api.backendInteractor.fetchUser({id:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserByName:function(e,t){return e.rootState.api.backendInteractor.fetchUserByName({name:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserRelationship:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserRelationship({id:t}).then((function(t){return e.commit("updateUserRelationship",t)}))},fetchUserInLists:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserInLists({id:t}).then((function(n){return e.commit("updateUserInLists",{id:t,inLists:n})}))},fetchBlocks:function(e){return e.rootState.api.backendInteractor.fetchBlocks().then((function(t){return e.commit("saveBlockIds",we()(t,"id")),e.commit("addNewUsers",t),t}))},blockUser:function(e,t){return Je(e,t)},unblockUser:function(e,t){return Qe(e,t)},removeUserFromFollowers:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.removeUserFromFollowers({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},blockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Je(e,t)})))},unblockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Qe(e,t)})))},editUserNote:function(e,t){return function(e,t){var n=t.id,r=t.comment;return e.rootState.api.backendInteractor.editUserNote({id:n,comment:r}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},fetchMutes:function(e){return e.rootState.api.backendInteractor.fetchMutes().then((function(t){return e.commit("saveMuteIds",we()(t,"id")),e.commit("addNewUsers",t),t}))},muteUser:function(e,t){return Xe(e,t)},unmuteUser:function(e,t){return et(e,t)},hideReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!1}).then((function(t){e.commit("updateUserRelationship",[t])}))}(e,t)},showReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!0}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},muteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Xe(e,t)})))},unmuteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return et(e,t)})))},fetchDomainMutes:function(e){return e.rootState.api.backendInteractor.fetchDomainMutes().then((function(t){return e.commit("saveDomainMutes",t),t}))},muteDomain:function(e,t){return tt(e,t)},unmuteDomain:function(e,t){return nt(e,t)},muteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return tt(e,t)})))},unmuteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return nt(e,t)})))},fetchFriends:function(e,t){var n=e.rootState,r=e.commit,o=n.users.usersObject[t],i=I()(o.friendIds);return n.api.backendInteractor.fetchFriends({id:t,maxId:i}).then((function(e){return r("addNewUsers",e),r("saveFriendIds",{id:t,friendIds:we()(e,"id")}),e}))},fetchFollowers:function(e,t){var n=e.rootState,r=e.commit,o=n.users.usersObject[t],i=I()(o.followerIds);return n.api.backendInteractor.fetchFollowers({id:t,maxId:i}).then((function(e){return r("addNewUsers",e),r("saveFollowerIds",{id:t,followerIds:we()(e,"id")}),e}))},clearFriends:function(e,t){(0,e.commit)("clearFriends",t)},clearFollowers:function(e,t){(0,e.commit)("clearFollowers",t)},subscribeUser:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.subscribeUser({id:t}).then((function(e){return r("updateUserRelationship",[e])}))},unsubscribeUser:function(e,t){var n=e.rootState,r=e.commit;return n.api.backendInteractor.unsubscribeUser({id:t}).then((function(e){return r("updateUserRelationship",[e])}))},toggleActivationStatus:function(e,t){var n=e.rootState,r=e.commit,o=t.user;(o.deactivated?n.api.backendInteractor.activateUser:n.api.backendInteractor.deactivateUser)({user:o}).then((function(e){var t=!e.is_active;r("updateActivationStatus",{user:e,deactivated:t})}))},registerPushNotifications:function(e){var t=e.state.currentUser.credentials,n=e.rootState.instance.vapidPublicKey;!function(e,t,n,r){Be()&&He().then((function(n){return function(e,t,n){if(!t)return Promise.reject(new Error("Web Push is disabled in config"));if(!n)return Promise.reject(new Error("VAPID public key is not found"));var r,o,i,s={userVisibleOnly:!0,applicationServerKey:(r=n,o=(r+"=".repeat((4-r.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),i=window.atob(o),Uint8Array.from((0,u.Z)(i).map((function(e){return e.charCodeAt(0)}))))};return e.pushManager.subscribe(s)}(n,e,t)})).then((function(e){return function(e,t,n){return window.fetch("/api/v1/push/subscription/",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(t)},body:JSON.stringify({subscription:e,data:{alerts:{follow:n.follows,favourite:n.likes,mention:n.mentions,reblog:n.repeats,move:n.moves}}})}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e.json()})).then((function(e){if(!e.id)throw new Error("Bad response from server.");return e}))}(e,n,r)})).catch((function(e){return console.warn("Failed to setup Web Push Notifications: ".concat(e.message))}))}(e.rootState.config.webPushNotifications,n,t,e.rootState.config.notificationVisibility)},unregisterPushNotifications:function(e){var t;t=e.state.currentUser.credentials,Be()&&Promise.all([Ve(t),He().then((function(e){return function(e){return e.pushManager.getSubscription().then((function(e){if(null!==e)return e.unsubscribe()}))}(e).then((function(t){return[e,t]}))})).then((function(e){var t=(0,l.Z)(e,2),n=t[0];return t[1]||console.warn("Push subscription cancellation wasn't successful, killing SW anyway..."),n.unregister().then((function(e){e||console.warn("Failed to kill SW")}))}))]).catch((function(e){return console.warn("Failed to disable Web Push Notifications: ".concat(e.message))}))},addNewUsers:function(e,t){(0,e.commit)("addNewUsers",t)},addNewStatuses:function(e,t){var n=t.statuses,r=we()(n,"user"),o=ye()(we()(n,"retweeted_status.user"));e.commit("addNewUsers",r),e.commit("addNewUsers",o),Z()(n,(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)})),Z()(ye()(we()(n,"retweeted_status")),(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)}))},addNewNotifications:function(e,t){var n=t.notifications,r=we()(n,"from_profile"),o=we()(n,"target").filter((function(e){return e})),i=n.map((function(e){return e.id}));e.commit("addNewUsers",r),e.commit("addNewUsers",o);var s=e.rootState.statuses.notifications.idStore,a=Object.entries(s).filter((function(e){var t=(0,l.Z)(e,2),n=t[0];return t[1],i.includes(n)})).map((function(e){var t=(0,l.Z)(e,2);return t[0],t[1]}));Z()(a,(function(t){e.commit("setUserForNotification",t)}))},searchUsers:function(e,t){var n=e.rootState,r=e.commit,o=t.query;return n.api.backendInteractor.searchUsers({query:o}).then((function(e){return r("addNewUsers",e),e}))},signUp:function(e,t){return(0,r.Z)(i().mark((function n(){var r,o,s;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.commit("signUpPending"),r=e.rootState,n.prev=2,n.next=5,r.api.backendInteractor.register({params:Ge({},t)});case 5:o=n.sent,e.commit("signUpSuccess"),e.commit("setToken",o.access_token),e.dispatch("loginUser",o.access_token),n.next=16;break;case 11:throw n.prev=11,n.t0=n.catch(2),s=n.t0.message,e.commit("signUpFailure",s),n.t0;case 16:case"end":return n.stop()}}),n,null,[[2,11]])})))()},getCaptcha:function(e){return(0,r.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.rootState.api.backendInteractor.getCaptcha());case 1:case"end":return t.stop()}}),t)})))()},logout:function(e){var t=e.rootState,n=t.oauth,r=t.instance,o=Ge(Ge({},n),{},{commit:e.commit,instance:r.server});return qe.getOrCreateApp(o).then((function(e){var t={app:e,instance:o.instance,token:n.userToken};return qe.revokeToken(t)})).then((function(){e.commit("clearCurrentUser"),e.dispatch("disconnectFromSocket"),e.commit("clearToken"),e.dispatch("stopFetchingTimeline","friends"),e.commit("setBackendInteractor",$e(e.getters.getToken())),e.dispatch("stopFetchingNotifications"),e.dispatch("stopFetchingLists"),e.dispatch("stopFetchingFollowRequests"),e.commit("clearNotifications"),e.commit("resetStatuses"),e.dispatch("resetChats"),e.dispatch("setLastTimeline","public-timeline"),e.dispatch("setLayoutWidth",Ue()),e.dispatch("setLayoutHeight",Me()),e.commit("clearServerSideStorage")}))},loginUser:function(e,t){return new Promise((function(n,r){var o=e.commit;o("beginLogin"),e.rootState.api.backendInteractor.verifyCredentials(t).then((function(i){if(i.error){var s=i.error;o("endLogin"),401===s.status?r(new Error("Wrong username or password")):r(new Error("An error occurred, please try again"))}else{var a=i;a.credentials=t,a.blockIds=[],a.muteIds=[],a.domainMutes=[],o("setCurrentUser",a),o("setServerSideStorage",a),o("addNewUsers",[a]),e.dispatch("fetchEmoji"),(c=window.Notification,c?"default"===c.permission?c.requestPermission():Promise.resolve(c.permission):Promise.resolve(null)).then((function(e){return o("setNotificationPermission",e)})),o("setBackendInteractor",$e(t)),e.dispatch("pushServerSideStorage"),a.token&&(e.dispatch("setWsToken",a.token),e.dispatch("initializeSocket")),e.dispatch("startFetchingLists"),a.locked&&e.dispatch("startFetchingFollowRequests"),e.getters.mergedConfig.useStreamingApi?(e.dispatch("fetchTimeline",{timeline:"friends",since:null}),e.dispatch("fetchNotifications",{since:null}),e.dispatch("enableMastoSockets",!0).catch((function(e){console.error("Failed initializing MastoAPI Streaming socket",e)})).then((function(){e.dispatch("fetchChats",{latest:!0}),setTimeout((function(){return e.dispatch("setNotificationsSilence",!1)}),1e4)}))):(e.dispatch("startFetchingTimeline",{timeline:"friends"}),e.dispatch("startFetchingNotifications"),e.dispatch("startFetchingChats")),e.dispatch("fetchMutes"),e.dispatch("setLayoutWidth",Ue()),e.dispatch("setLayoutHeight",Me()),e.rootState.api.backendInteractor.fetchFriends({id:a.id}).then((function(e){return o("addNewUsers",e)}))}var c;o("endLogin"),n()})).catch((function(e){console.log(e),o("endLogin"),r(new Error("Failed to connect to server, try again"))}))}))}}};const it=ot;var st=n(36459),at=n(87462),ct=n(44925),lt=n(64689),ut=function(e,t){if(t.lastMessage&&(e.rootState.chats.currentChatId!==t.id||document.hidden)&&e.rootState.users.currentUser.id!==t.lastMessage.account_id){var n={tag:t.lastMessage.id,title:t.account.name,icon:t.account.profile_image_url,body:t.lastMessage.content};t.lastMessage.attachment&&"image"===t.lastMessage.attachment.type&&(n.image=t.lastMessage.attachment.preview_url),(0,lt.w)(e.rootState,n)}},dt=n(90837),pt=["timeline"];function ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ft={state:{retryMultiplier:1,backendInteractor:$e(),fetchers:{},socket:null,mastoUserSocket:null,mastoUserSocketStatus:null,followRequests:[]},getters:{followRequestCount:function(e){return e.followRequests.length}},mutations:{setBackendInteractor:function(e,t){e.backendInteractor=t},addFetcher:function(e,t){var n=t.fetcherName,r=t.fetcher;e.fetchers[n]=r},removeFetcher:function(e,t){var n=t.fetcherName;t.fetcher,e.fetchers[n].stop(),delete e.fetchers[n]},setWsToken:function(e,t){e.wsToken=t},setSocket:function(e,t){e.socket=t},setFollowRequests:function(e,t){e.followRequests=t},setMastoUserSocketStatus:function(e,t){e.mastoUserSocketStatus=t},incrementRetryMultiplier:function(e){e.retryMultiplier=Math.max(++e.retryMultiplier,3)},resetRetryMultiplier:function(e){e.retryMultiplier=1}},actions:{enableMastoSockets:function(e,t){var n=e.state,r=e.dispatch,o=e.commit;if(!n.mastoUserSocket||[WebSocket.CLOSED,WebSocket.CLOSING].includes(n.mastoUserSocket.getState()))return o("setMastoUserSocketStatus",t?m._z.STARTING_INITIAL:m._z.STARTING),r("startMastoUserSocket")},disableMastoSockets:function(e){var t=e.state,n=e.dispatch,r=e.commit;if(t.mastoUserSocket)return r("setMastoUserSocketStatus",m._z.DISABLED),n("stopMastoUserSocket")},startMastoUserSocket:function(e){return new Promise((function(t,n){try{var r=e.state,o=e.commit,i=e.dispatch,s=e.rootState.statuses.timelines.friends;r.mastoUserSocket=r.backendInteractor.startUserSocket({store:e}),r.mastoUserSocket.addEventListener("message",(function(t){var n=t.detail;n&&("notification"===n.event?i("addNewNotifications",{notifications:[n.notification],older:!1}):"update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:0===s.visibleStatuses.length,timeline:"friends"}):"status.update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:n.status.id in s.visibleStatusesObject,timeline:"friends"}):"delete"===n.event?i("deleteStatusById",n.id):"pleroma:chat_update"===n.event&&setTimeout((function(){i("addChatMessages",{chatId:n.chatUpdate.id,messages:[n.chatUpdate.lastMessage]}),i("updateChat",{chat:n.chatUpdate}),ut(e,n.chatUpdate)}),100))})),r.mastoUserSocket.addEventListener("open",(function(){r.mastoUserSocketStatus!==m._z.STARTING_INITIAL&&i("pushGlobalNotice",{level:"success",messageKey:"timeline.socket_reconnected",timeout:5e3}),new Set([m._z.ERROR,m._z.DISABLED]).has(r.mastoUserSocketStatus)&&(i("stopFetchingTimeline",{timeline:"friends"}),i("stopFetchingNotifications"),i("stopFetchingChats")),o("resetRetryMultiplier"),o("setMastoUserSocketStatus",m._z.JOINED)})),r.mastoUserSocket.addEventListener("error",(function(e){var t=e.detail;console.error("Error in MastoAPI websocket:",t),i("clearOpenedChats")})),r.mastoUserSocket.addEventListener("close",(function(e){var t=e.detail,n=new Set([1e3,1001]),s=t.code;n.has(s)?(console.debug("Not restarting socket becasue of closure code ".concat(s," is in ignore list")),o("setMastoUserSocketStatus",m._z.CLOSED)):(console.warn("MastoAPI websocket disconnected, restarting. CloseEvent code: ".concat(s)),setTimeout((function(){i("startMastoUserSocket")}),1e3*r.retryMultiplier),o("incrementRetryMultiplier"),r.mastoUserSocketStatus!==m._z.ERROR&&(i("startFetchingTimeline",{timeline:"friends"}),i("startFetchingNotifications"),i("startFetchingChats"),i("pushGlobalNotice",{level:"error",messageKey:"timeline.socket_broke",messageArgs:[s],timeout:5e3})),o("setMastoUserSocketStatus",m._z.ERROR)),i("clearOpenedChats")})),t()}catch(e){n(e)}}))},stopMastoUserSocket:function(e){var t=e.state,n=e.dispatch;n("startFetchingTimeline",{timeline:"friends"}),n("startFetchingNotifications"),n("startFetchingChats"),t.mastoUserSocket.close()},startFetchingTimeline:function(e,t){var n=t.timeline,r=void 0===n?"friends":n,o=t.tag,i=void 0!==o&&o,s=t.userId,a=void 0!==s&&s,c=t.listId,l=void 0!==c&&c;if(!e.state.fetchers[r]){var u=e.state.backendInteractor.startFetchingTimeline({timeline:r,store:e,userId:a,listId:l,tag:i});e.commit("addFetcher",{fetcherName:r,fetcher:u})}},stopFetchingTimeline:function(e,t){var n=e.state.fetchers[t];n&&e.commit("removeFetcher",{fetcherName:t,fetcher:n})},fetchTimeline:function(e,t){var n=t.timeline,r=(0,ct.Z)(t,pt);e.state.backendInteractor.fetchTimeline(mt({store:e,timeline:n},r))},startFetchingNotifications:function(e){if(!e.state.fetchers.notifications){var t=e.state.backendInteractor.startFetchingNotifications({store:e});e.commit("addFetcher",{fetcherName:"notifications",fetcher:t})}},stopFetchingNotifications:function(e){var t=e.state.fetchers.notifications;t&&e.commit("removeFetcher",{fetcherName:"notifications",fetcher:t})},fetchNotifications:function(e,t){var n=(0,at.Z)({},((0,st.Z)(t),t));e.state.backendInteractor.fetchNotifications(mt({store:e},n))},startFetchingFollowRequests:function(e){if(!e.state.fetchers.followRequests){var t=e.state.backendInteractor.startFetchingFollowRequests({store:e});e.commit("addFetcher",{fetcherName:"followRequests",fetcher:t})}},stopFetchingFollowRequests:function(e){var t=e.state.fetchers.followRequests;t&&e.commit("removeFetcher",{fetcherName:"followRequests",fetcher:t})},removeFollowRequest:function(e,t){var n=e.state.followRequests.filter((function(e){return e!==t}));e.commit("setFollowRequests",n)},startFetchingLists:function(e){if(!e.state.fetchers.lists){var t=e.state.backendInteractor.startFetchingLists({store:e});e.commit("addFetcher",{fetcherName:"lists",fetcher:t})}},stopFetchingLists:function(e){var t=e.state.fetchers.lists;t&&e.commit("removeFetcher",{fetcherName:"lists",fetcher:t})},setWsToken:function(e,t){e.commit("setWsToken",t)},initializeSocket:function(e){var t=e.dispatch,n=e.commit,r=e.state,o=e.rootState,i=r.wsToken;if(o.instance.shoutAvailable&&void 0!==i&&null===r.socket){var s=new dt.sk("/socket",{params:{token:i}});s.connect(),n("setSocket",s),t("initializeShout",s)}},disconnectFromSocket:function(e){var t=e.commit,n=e.state;n.socket&&n.socket.disconnect(),t("setSocket",null)}}};const gt=ft;var vt=n(65405),wt=n(87185),bt=n.n(wt),yt=n(69579),_t=n.n(yt),kt=n(7436),St=n.n(kt),jt=n(7739),Ot=n.n(jt),Ct=n(85564),Pt=n.n(Ct),zt=n(74691),It=n.n(zt),Dt=n(27361),xt=n.n(Dt),Tt=n(36968),$t=n.n(Tt),Ut=n(50361),Mt=n.n(Ut),At=n(18446),Lt=n.n(At),Et=n(2262),Ft=n(58312),Rt=n(9382),Nt=(n(31934),n(95326),n(43011),n(68789),n(84131));Rt.vI.add(Nt.NBC),Ft.Z;var qt=["_journal"],Zt=["_timestamp","_version"],Wt=["_timestamp","_version"];function Bt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ht(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Bt(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Vt=new Date("2022-08-04"),Kt=1001,Gt={dirty:!1,flagStorage:{updateCounter:0,reset:0},prefsStorage:{_journal:[],simple:{dontShowUpdateNotifs:!1,collapseNav:!1},collections:{pinnedNavItems:["home","dms","chats"]}},raw:null,cache:null},Yt=Ht(Ht({},Gt.flagStorage),{},{updateCounter:1}),Jt=function(e,t,n){var r=e.indexOf(t),o=r+n,i=(0,u.Z)(e);return i.splice(r,1),i.splice(It()(o,0,i.length+1),0,t),i},Qt=function(e,t){return Ht(Ht({},e),{},{_user:t,_timestamp:Date.now(),_version:1})},Xt=function(e){return e._timestamp>0&&e._version>0},en=function(e){e.prefsStorage=e.prefsStorage||{simple:{},collections:{}},Object.entries(Gt.prefsStorage.simple).forEach((function(t){var n=(0,l.Z)(t,2),r=n[0],o=n[1];"number"!=typeof o&&"boolean"!=typeof o&&(console.warn("Preference simple.".concat(r," as invalid type, reinitializing")),$t()(e.prefsStorage.simple,r,Gt.prefsStorage.simple[r]))})),Object.entries(Gt.prefsStorage.collections).forEach((function(t){var n=(0,l.Z)(t,2),r=n[0],o=n[1];Array.isArray(o)||(console.warn("Preference collections.".concat(r," as invalid type, reinitializing")),$t()(e.prefsStorage.collections,r,Gt.prefsStorage.collections[r]))}))},tn=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=Pt()(t.map((function(e){return Array.isArray(e)?e:[]}))).filter((function(e){return Object.prototype.hasOwnProperty.call(e,"path")&&Object.prototype.hasOwnProperty.call(e,"operation")&&Object.prototype.hasOwnProperty.call(e,"args")&&Object.prototype.hasOwnProperty.call(e,"timestamp")})),o=Ot()(r,"path"),i=Object.entries(o).map((function(e){var t=(0,l.Z)(e,2),n=t[0],r=t[1];if(r.sort((function(e,t){return e.timestamp>t.timestamp?1:-1})),n.startsWith("collections")){var o,i=St()(r,(function(e){return"removeFromCollection"===e.operation}));return o=i>0?r.slice(i):r,bt()(o,(function(e,t){return e.path===t.path&&e.operation===t.operation&&"addToCollection"===e.operation&&e.args[0]===t.args[0]}))}return n.startsWith("simple")?_t()(r):r}));return Pt()(i).sort((function(e,t){return e.timestamp>t.timestamp?1:-1}))},nn={clearServerSideStorage:function(e,t){Ht({},Mt()(Gt))},setServerSideStorage:function(e,t){var n=t.storage;e.raw=n;var r=e.cache;r&&r._user!==t.fqn&&(console.warn("cache belongs to another user! reinitializing local cache!"),r=null);var o=function(e,t){var n={recent:null,stale:null,needUpload:!1},r=Xt(e||{}),o=Xt(t||{});return!o&&r?(n.needUpload=!0,console.debug("Nothing valid stored on server, assuming cache to be source of truth"),n.recent=e,n.stale=t):!r&&o?(console.debug("Valid storage on server found, no local cache found, using live as source of truth"),n.recent=t,n.stale=e):r&&o?(console.debug("Both sources have valid data, figuring things out..."),t._timestamp===e._timestamp&&t._version===e._version?(console.debug("Same version/timestamp on both source, source of truth irrelevant"),n.recent=e,n.stale=t):(console.debug("Different timestamp, figuring out which one is more recent"),t._timestamp<e._timestamp?(n.recent=e,n.stale=t):(n.recent=t,n.stale=e))):(console.debug("Both sources are invalid, start from scratch"),n.needUpload=!0),n}(r=function(e){return e?(e._version<1&&(console.debug("Local cached data has older version, seeing if there any migrations that can be applied"),console.debug("No migrations found")),e._version>1&&(console.debug("Local cached data has newer version, seeing if there any reverse migrations that can be applied"),window._PLEROMA_HOTPATCH&&window._PLEROMA_HOTPATCH.reverseMigrations)?(console.debug("Found hotpatch migration, applying"),window._PLEROMA_HOTPATCH.reverseMigrations.call({},"serverSideStorage",{from:e._version,to:1},e)):e):e}(r),n),i=o.recent,s=o.stale,a=o.needsUpload,c=t.created_at>Vt,d=c?Yt:Gt.flagStorage,p=!1;if(null===i&&(console.debug("Data is empty, initializing for ".concat(c?"new":"existing"," user")),i=Qt({flagStorage:Ht({},d),prefsStorage:Ht({},Gt.prefsStorage)})),!a&&i&&s){console.debug("Checking if data needs merging...");var h=i,m=(h._timestamp,h._version,(0,ct.Z)(h,Zt)),f=(s._timestamp,s._version,(0,ct.Z)(s,Wt));p=!Lt()(m,f),console.debug("Data ".concat(p?"needs":"doesn't need"," merging"))}var g,v,w=function(e,t){return Array.from(new Set([].concat((0,u.Z)(Object.keys((0,Et.IU)((e||{}).flagStorage||{}))),(0,u.Z)(Object.keys((0,Et.IU)((t||{}).flagStorage||{}))))))}(i,s);p?(console.debug("Merging the data..."),g=function(e,t,n){return t.flagStorage?e.flagStorage?Object.fromEntries(n.map((function(n){var r=e.flagStorage[n],o=t.flagStorage[n];return[n,Number((r>o?r:o)||0)]}))):t.flagStorage:e.flagStorage}(i,s,w),en(i),en(s),v=function(e,t,n){if(!t)return e;if(!e)return t;var r=e._journal,o=(0,ct.Z)(e,qt),i=t._journal,s=Ht({},o),a=tn(i,r);return a.forEach((function(e){var t=e.path,n=(e.timestamp,e.operation),r=(e.command,e.args);if(t.startsWith("_"))console.error("journal contains entry to edit internal (starts with _) field '".concat(t,"', something is incorrect here, ignoring."));else switch(n){case"set":$t()(s,t,r[0]);break;case"addToCollection":$t()(s,t,Array.from(new Set(xt()(s,t)).add(r[0])));break;case"removeFromCollection":var o=new Set(xt()(s,t));o.delete(r[0]),$t()(s,t,Array.from(o));break;case"reorderCollection":var i=(0,l.Z)(r,2),a=i[0],c=i[1];$t()(s,t,Jt(xt()(s,t),a,c));break;default:console.error("Unknown journal operation: '".concat(n,"', did we forget to run reverse migrations beforehand?"))}})),Ht(Ht({},s),{},{_journal:a})}(i.prefsStorage,s.prefsStorage)):(g=i.flagStorage,v=i.prefsStorage),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Gt.flagStorage,n=Ht({},e),r=Object.keys(e);if(e.reset>=1e3&&e.reset<=Kt){console.debug("Received command to trim the flags");var o=new Set(Object.keys(t));n={},r.forEach((function(t){o.has(t)&&(n[t]=e[t])})),e.reset===Kt&&(console.debug("Received command to reset the flags"),Object.keys(t).forEach((function(e){n[e]=0})))}else e.reset>0&&e.reset<9e3&&(console.debug("Received command to reset the flags"),r.forEach((function(e){n[e]=0})));return n.reset=0,n}(g),i.flagStorage=Ht(Ht({},d),g),i.prefsStorage=Ht(Ht({},Gt.prefsStorage),v),e.dirty=p||a,e.cache=i,s&&i&&!e.dirty&&(e.cache._timestamp=Math.min(s._timestamp,i._timestamp)),e.flagStorage=e.cache.flagStorage,e.prefsStorage=e.cache.prefsStorage},setFlag:function(e,t){var n=t.flag,r=t.value;e.flagStorage[n]=r,e.dirty=!0},setPreference:function(e,t){var n=t.path,r=t.value;n.startsWith("_")?console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring.")):($t()(e.prefsStorage,n,r),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"set",path:n,args:[r],timestamp:Date.now()}]),e.dirty=!0)},addCollectionPreference:function(e,t){var n=t.path,r=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var o=new Set(xt()(e.prefsStorage,n));o.add(r),$t()(e.prefsStorage,n,(0,u.Z)(o)),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"addToCollection",path:n,args:[r],timestamp:Date.now()}]),e.dirty=!0}},removeCollectionPreference:function(e,t){var n=t.path,r=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var o=new Set(xt()(e.prefsStorage,n));o.delete(r),$t()(e.prefsStorage,n,(0,u.Z)(o)),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"removeFromCollection",path:n,args:[r],timestamp:Date.now()}]),e.dirty=!0}},reorderCollectionPreference:function(e,t){var n=t.path,r=t.value,o=t.movement;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var i=xt()(e.prefsStorage,n),s=Jt(i,r,o);$t()(e.prefsStorage,n,s),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"arrangeCollection",path:n,args:[r],timestamp:Date.now()}]),e.dirty=!0}},updateCache:function(e,t){var n=t.username;e.prefsStorage._journal=tn(e.prefsStorage._journal),e.cache=Qt({flagStorage:(0,Et.IU)(e.flagStorage),prefsStorage:(0,Et.IU)(e.prefsStorage)},n)}};const rn={state:Ht({},Mt()(Gt)),mutations:nn,actions:{pushServerSideStorage:function(e){var t=e.state,n=e.rootState,r=e.commit,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=o.force,s=void 0!==i&&i,a=t.dirty||s;if(console.log(a),a){r("updateCache",{username:n.users.currentUser.fqn});var c={pleroma_settings_store:{"pleroma-fe":t.cache}};n.api.backendInteractor.updateProfile({params:c}).then((function(e){r("setServerSideStorage",e),t.dirty=!1}))}}}},on={state:{messages:[],channel:{state:""},joined:!1},mutations:{setChannel:function(e,t){e.channel=t},addMessage:function(e,t){e.messages.push(t),e.messages=e.messages.slice(-19,20)},setMessages:function(e,t){e.messages=t.slice(-19,20)},setJoined:function(e,t){e.joined=t}},actions:{initializeShout:function(e,t){var n=t.channel("chat:public");n.joinPush.receive("ok",(function(){e.commit("setJoined",!0)})),n.onClose((function(){e.commit("setJoined",!1)})),n.onError((function(){e.commit("setJoined",!1)})),n.on("new_msg",(function(t){e.commit("addMessage",t)})),n.on("messages",(function(t){var n=t.messages;e.commit("setMessages",n)})),n.join(),e.commit("setChannel",n)}}},sn={state:{clientId:!1,clientSecret:!1,appToken:!1,userToken:!1},mutations:{setClientData:function(e,t){var n=t.clientId,r=t.clientSecret;e.clientId=n,e.clientSecret=r},setAppToken:function(e,t){e.appToken=t},setToken:function(e,t){e.userToken=t},clearToken:function(e){e.userToken=!1,delete e.token}},getters:{getToken:function(e){return function(){return e.userToken||e.token||e.appToken}},getUserToken:function(e){return function(){return e.userToken||e.token}}}};var an="password",cn="token",ln="totp",un="recovery",dn=function(e){e.strategy=e.initStrategy,e.settings={}};const pn={namespaced:!0,state:{settings:{},strategy:an,initStrategy:an},getters:{settings:function(e,t){return e.settings},requiredPassword:function(e,t,n){return e.strategy===an},requiredToken:function(e,t,n){return e.strategy===cn},requiredTOTP:function(e,t,n){return e.strategy===ln},requiredRecovery:function(e,t,n){return e.strategy===un}},mutations:{setInitialStrategy:function(e,t){t&&(e.initStrategy=t,e.strategy=t)},requirePassword:function(e){e.strategy=an},requireToken:function(e){e.strategy=cn},requireMFA:function(e,t){var n=t.settings;e.settings=n,e.strategy=ln},requireRecovery:function(e){e.strategy=un},requireTOTP:function(e){e.strategy=ln},abortMFA:function(e){dn(e)}},actions:{login:function(e,t){return(0,r.Z)(i().mark((function n(){var r,o,s,a;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.state,o=e.dispatch,s=e.commit,a=t.access_token,s("setToken",a,{root:!0}),n.next=5,o("loginUser",a,{root:!0});case 5:dn(r);case 6:case"end":return n.stop()}}),n)})))()}}};var hn=n(58394),mn=new Set(["image","video","audio","flash"]),fn={state:{media:[],currentIndex:0,activated:!1},mutations:{setMedia:function(e,t){e.media=t},setCurrentMedia:function(e,t){e.activated=!0,e.currentIndex=t},close:function(e){e.activated=!1}},actions:{setMedia:function(e,t){var n=e.commit,r=t.filter((function(e){var t=hn.Z.fileType(e.mimetype);return mn.has(t)}));n("setMedia",r)},setCurrentMedia:function(e,t){(0,e.commit)("setCurrentMedia",e.state.media.indexOf(t)||0)},closeMediaViewer:function(e){(0,e.commit)("close")}}};const gn=fn,vn={state:{tokens:[]},actions:{fetchTokens:function(e){var t=e.rootState,n=e.commit;t.api.backendInteractor.fetchOAuthTokens().then((function(e){n("swapTokens",e)}))},revokeToken:function(e,t){var n=e.rootState,r=e.commit,o=e.state;n.api.backendInteractor.revokeOAuthToken({id:t}).then((function(e){201===e.status&&r("swapTokens",o.tokens.filter((function(e){return e.id!==t})))}))}},mutations:{swapTokens:function(e,t){e.tokens=t}}};var wn=n(63105),bn=n.n(wn),yn={state:{reportModal:{userId:null,statuses:[],preTickedIds:[],activated:!1},reports:{}},mutations:{openUserReportingModal:function(e,t){var n=t.userId,r=t.statuses,o=t.preTickedIds;e.reportModal.userId=n,e.reportModal.statuses=r,e.reportModal.preTickedIds=o,e.reportModal.activated=!0},closeUserReportingModal:function(e){e.reportModal.activated=!1},setReportState:function(e,t){var n=t.id,r=t.state;e.reports[n].state=r},addReport:function(e,t){e.reports[t.id]=t}},actions:{openUserReportingModal:function(e,t){var n=e.rootState,r=e.commit,o=t.userId,i=t.statusIds,s=void 0===i?[]:i,a=s.map((function(e){return n.statuses.allStatusesObject[e]})),c=s,l=a.concat(bn()(n.statuses.allStatuses,(function(e){return e.user.id===o&&!c.includes(e.id)})));r("openUserReportingModal",{userId:o,statuses:l,preTickedIds:c})},closeUserReportingModal:function(e){(0,e.commit)("closeUserReportingModal")},setReportState:function(e,t){var n=e.commit,r=e.dispatch,o=e.rootState,i=t.id,s=t.state,a=o.reports.reports[i].state;n("setReportState",{id:i,state:s}),o.api.backendInteractor.setReportState({id:i,state:s}).catch((function(e){console.error("Failed to set report state",e),r("pushGlobalNotice",{level:"error",messageKey:"general.generic_error_message",messageArgs:[e.message],timeout:5e3}),n("setReportState",{id:i,state:a})}))},addReport:function(e,t){(0,e.commit)("addReport",t)}}};const _n=yn;const kn={state:{trackedPolls:{},pollsObject:{}},mutations:{mergeOrAddPoll:function(e,t){var n=e.pollsObject[t.id];t.expired=Date.now()>Date.parse(t.expires_at),e.pollsObject[t.id]=n?$()(n,t):t},trackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n+1:1},untrackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n-1:0}},actions:{mergeOrAddPoll:function(e,t){(0,e.commit)("mergeOrAddPoll",t)},updateTrackedPoll:function(e,t){var n=e.rootState,r=e.dispatch,o=e.commit;n.api.backendInteractor.fetchPoll({pollId:t}).then((function(e){setTimeout((function(){n.polls.trackedPolls[t]&&r("updateTrackedPoll",t)}),3e4),o("mergeOrAddPoll",e)}))},trackPoll:function(e,t){var n=e.rootState,r=e.commit,o=e.dispatch;n.polls.trackedPolls[t]||setTimeout((function(){return o("updateTrackedPoll",t)}),3e4),r("trackPoll",t)},untrackPoll:function(e,t){(0,e.commit)("untrackPoll",t)},votePoll:function(e,t){var n=e.rootState,r=e.commit,o=(t.id,t.pollId),i=t.choices;return n.api.backendInteractor.vote({pollId:o,choices:i}).then((function(e){return r("mergeOrAddPoll",e),e}))}}},Sn={state:{params:null,modalActivated:!1},mutations:{openPostStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closePostStatusModal:function(e){e.modalActivated=!1}},actions:{openPostStatusModal:function(e,t){(0,e.commit)("openPostStatusModal",t)},closePostStatusModal:function(e){(0,e.commit)("closePostStatusModal")}}},jn={state:{params:null,modalActivated:!1},mutations:{openEditStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closeEditStatusModal:function(e){e.modalActivated=!1}},actions:{openEditStatusModal:function(e,t){(0,e.commit)("openEditStatusModal",t)},closeEditStatusModal:function(e){(0,e.commit)("closeEditStatusModal")}}},On={state:{params:{},modalActivated:!1},mutations:{openStatusHistoryModal:function(e,t){e.params=t,e.modalActivated=!0},closeStatusHistoryModal:function(e){e.modalActivated=!1}},actions:{openStatusHistoryModal:function(e,t){(0,e.commit)("openStatusHistoryModal",t)},closeStatusHistoryModal:function(e){(0,e.commit)("closeStatusHistoryModal")}}};var Cn=n(73303),Pn=n.n(Cn),zn=n(75472),In=n.n(zn),Dn=n(71002),xn=n(73955),Tn=n.n(xn),$n=n(89734),Un=n.n($n);function Mn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return An(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?An(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function An(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ln={add:function(e,t){var n=t.messages,r=t.updateMaxId,o=void 0===r||r;if(e)for(var i=function(t){var r=n[t];if(r.chat_id!==e.chatId)return{v:void 0};if(r.fakeId){var i=e.idIndex[r.fakeId];if(i)return e.idIndex[r.id]&&(delete e.idIndex[r.id],e.messages=e.messages.filter((function(e){return e.id!==r.id}))),Object.assign(i,r,{error:!1}),delete i.fakeId,e.idIndex[i.id]=i,delete e.idIndex[r.fakeId],{v:void 0}}(!e.minId||!r.pending&&r.id<e.minId)&&(e.minId=r.id),(!e.maxId||r.id>e.maxId)&&o&&(e.maxId=r.id),e.idIndex[r.id]||function(e,t){if(t.idempotency_key)return e.idempotencyKeyIndex[t.idempotency_key]}(e,r)||(e.lastSeenMessageId<r.id&&e.newMessageCount++,e.idIndex[r.id]=r,e.messages.push(e.idIndex[r.id]),e.idempotencyKeyIndex[r.idempotency_key]=!0)},s=0;s<n.length;s++){var a=i(s);if("object"===(0,Dn.Z)(a))return a.v}},empty:function(e){return{idIndex:{},idempotencyKeyIndex:{},messages:[],newMessageCount:0,lastSeenMessageId:"0",chatId:e,minId:void 0,maxId:void 0}},getView:function(e){if(!e)return[];var t,n=[],r=In()(e.messages,["pending","id"],["asc","asc"]),o=r[0],i=r[r.length-1];if(o){var s=new Date(o.created_at);s.setHours(0,0,0,0),n.push({type:"date",date:s,id:s.getTime().toString()})}for(var a=!1,c=0;c<r.length;c++){var l=r[c],u=r[c+1],d=new Date(l.created_at);d.setHours(0,0,0,0),i&&i.date<d&&(n.push({type:"date",date:d,id:d.getTime().toString()}),i.isTail=!0,t=void 0,a=!0);var p={type:"message",data:l,date:d,id:l.id,messageChainId:t};(u&&u.account_id)!==l.account_id&&(p.isTail=!0,t=void 0),((i&&i.data&&i.data.account_id)!==l.account_id||a)&&(t=Tn()(),p.isHead=!0,p.messageChainId=t),n.push(p),i=p,a=!1}return n},deleteMessage:function(e,t){if(e){if(e.messages=e.messages.filter((function(e){return e.id!==t})),delete e.idIndex[t],e.maxId===t){var n=L()(e.messages,"id");e.maxId=n.id}if(e.minId===t){var r=M()(e.messages,"id");e.minId=r.id}}},cullOlderMessages:function(e){var t=e.messages.length,n=t-50;if(!(t<=50)){e.messages=Un()(e.messages,["id"]),e.minId=e.messages[n].id;var r,o=Mn(e.messages);try{for(o.s();!(r=o.n()).done;){var i=r.value;i.id<e.minId&&(delete e.idIndex[i.id],delete e.idempotencyKeyIndex[i.idempotency_key])}}catch(e){o.e(e)}finally{o.f()}e.messages=e.messages.slice(n,t)}},resetNewMessageCount:function(e){e&&(e.newMessageCount=0,e.lastSeenMessageId=e.maxId)},clear:function(e){var t,n=[],r=Mn(e.messages);try{for(r.s();!(t=r.n()).done;){var o=t.value;o.error?n.push(o.id):(delete e.idIndex[o.id],delete e.idempotencyKeyIndex[o.idempotency_key])}}catch(e){r.e(e)}finally{r.f()}e.messages=e.messages.filter((function(e){return n.includes(e.id)})),e.newMessageCount=0,e.lastSeenMessageId="0",e.minId=void 0,e.maxId=void 0},handleMessageError:function(e,t,n){if(e){var r=e.idIndex[t];if(r&&(r.error=!0,r.pending=!1,!n)){var o=In()(e.messages,["pending","id"],["asc","desc"])[0];if(o){var i=r.id;r.id="".concat(o.id,"-").concat((new Date).getTime()),e.idIndex[r.id]=r,delete e.idIndex[i]}}}}};const En=Ln;var Fn=n(27742);function Rn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rn(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var qn={chatList:{data:[],idStore:{}},chatListFetcher:null,openedChats:(0,Et.qj)({}),openedChatMessageServices:(0,Et.qj)({}),fetcher:void 0,currentChatId:null,lastReadMessageId:null},Zn=function(e,t){return F()(e.chatList.data,{id:t})},Wn={state:Nn({},qn),getters:{currentChat:function(e){return e.openedChats[e.currentChatId]},currentChatMessageService:function(e){return e.openedChatMessageServices[e.currentChatId]},findOpenedChatByRecipientId:function(e){return function(t){return F()(e.openedChats,(function(e){return e.account.id===t}))}},sortedChatList:function(e){return In()(e.chatList.data,["updated_at"],["desc"])},unreadChatCount:function(e){return Pn()(e.chatList.data,"unread")}},actions:{startFetchingChats:function(e){var t=e.dispatch,n=e.commit,r=function(){return t("fetchChats",{latest:!0})};r(),n("setChatListFetcher",{fetcher:function(){return(0,Se.F)(r,5e3)}})},stopFetchingChats:function(e){(0,e.commit)("setChatListFetcher",{fetcher:void 0})},fetchChats:function(e){var t=e.dispatch,n=e.rootState;return e.commit,n.api.backendInteractor.chats().then((function(e){var n=e.chats;return t("addNewChats",{chats:n}),n}))},addNewChats:function(e,t){var n=t.chats;(0,e.commit)("addNewChats",{dispatch:e.dispatch,chats:n,rootGetters:e.rootGetters,newChatMessageSideEffects:function(t){ut(e,t)}})},updateChat:function(e,t){(0,e.commit)("updateChat",{chat:t.chat})},startFetchingCurrentChat:function(e,t){e.commit,(0,e.dispatch)("setCurrentChatFetcher",{fetcher:t.fetcher})},setCurrentChatFetcher:function(e,t){e.rootState,(0,e.commit)("setCurrentChatFetcher",{fetcher:t.fetcher})},addOpenedChat:function(e,t){e.rootState;var n=e.commit,r=e.dispatch,o=t.chat;n("addOpenedChat",{dispatch:r,chat:(0,Fn._J)(o)}),r("addNewUsers",[o.account])},addChatMessages:function(e,t){var n=e.commit;n("addChatMessages",Nn({commit:n},t))},resetChatNewMessageCount:function(e,t){(0,e.commit)("resetChatNewMessageCount",t)},clearCurrentChat:function(e,t){e.rootState;var n=e.commit;e.dispatch,n("setCurrentChatId",{chatId:void 0}),n("setCurrentChatFetcher",{fetcher:void 0})},readChat:function(e,t){var n=e.rootState,r=e.commit,o=e.dispatch,i=t.id,s=t.lastReadId,a=n.chats.lastReadMessageId!==s;o("resetChatNewMessageCount"),r("readChat",{id:i,lastReadId:s}),a&&n.api.backendInteractor.readChat({id:i,lastReadId:s})},deleteChatMessage:function(e,t){var n=e.rootState,r=e.commit;n.api.backendInteractor.deleteChatMessage(t),r("deleteChatMessage",Nn({commit:r},t))},resetChats:function(e){var t=e.commit;(0,e.dispatch)("clearCurrentChat"),t("resetChats",{commit:t})},clearOpenedChats:function(e){e.rootState;var t=e.commit;e.dispatch,e.rootGetters,t("clearOpenedChats",{commit:t})},handleMessageError:function(e,t){var n=e.commit;n("handleMessageError",Nn({commit:n},t))},cullOlderMessages:function(e,t){(0,e.commit)("cullOlderMessages",t)}},mutations:{setChatListFetcher:function(e,t){t.commit;var n=t.fetcher,r=e.chatListFetcher;r&&r.stop(),e.chatListFetcher=n&&n()},setCurrentChatFetcher:function(e,t){var n=t.fetcher,r=e.fetcher;r&&r.stop(),e.fetcher=n&&n()},addOpenedChat:function(e,t){t._dispatch;var n=t.chat;e.currentChatId=n.id,e.openedChats[n.id]=n,e.openedChatMessageServices[n.id]||(e.openedChatMessageServices[n.id]=En.empty(n.id))},setCurrentChatId:function(e,t){var n=t.chatId;e.currentChatId=n},addNewChats:function(e,t){var n=t.chats,r=t.newChatMessageSideEffects;n.forEach((function(t){var n=Zn(e,t.id);if(n){var o=(n.lastMessage&&n.lastMessage.id)!==(t.lastMessage&&t.lastMessage.id);n.lastMessage=t.lastMessage,n.unread=t.unread,n.updated_at=t.updated_at,o&&n.unread&&r(t)}else e.chatList.data.push(t),e.chatList.idStore[t.id]=t}))},updateChat:function(e,t){t._dispatch;var n=t.chat,r=(t._rootGetters,Zn(e,n.id));r&&(r.lastMessage=n.lastMessage,r.unread=n.unread,r.updated_at=n.updated_at),r||e.chatList.data.unshift(n),e.chatList.idStore[n.id]=n},deleteChat:function(e,t){t._dispatch;var n=t.id;t._rootGetters,e.chats.data=e.chats.data.filter((function(e){return e.last_status.id!==n})),e.chats.idStore=O()(e.chats.idStore,(function(e){return e.last_status.id===n}))},resetChats:function(e,t){var n=t.commit;for(var r in e.chatList={data:[],idStore:{}},e.currentChatId=null,n("setChatListFetcher",{fetcher:void 0}),e.openedChats)En.clear(e.openedChatMessageServices[r]),delete e.openedChats[r],delete e.openedChatMessageServices[r]},setChatsLoading:function(e,t){var n=t.value;e.chats.loading=n},addChatMessages:function(e,t){var n=t.chatId,r=t.messages,o=t.updateMaxId,i=e.openedChatMessageServices[n];i&&En.add(i,{messages:r.map(Fn.UB),updateMaxId:o})},deleteChatMessage:function(e,t){var n=t.chatId,r=t.messageId,o=e.openedChatMessageServices[n];o&&En.deleteMessage(o,r)},resetChatNewMessageCount:function(e,t){var n=e.openedChatMessageServices[e.currentChatId];En.resetNewMessageCount(n)},clearOpenedChats:function(e){var t=e.currentChatId;for(var n in e.openedChats)t!==n&&(En.clear(e.openedChatMessageServices[n]),delete e.openedChats[n],delete e.openedChatMessageServices[n])},readChat:function(e,t){var n=t.id,r=t.lastReadId;e.lastReadMessageId=r;var o=Zn(e,n);o&&(o.unread=0)},handleMessageError:function(e,t){var n=t.chatId,r=t.fakeId,o=t.isRetry,i=e.openedChatMessageServices[n];En.handleMessageError(i,r,o)},cullOlderMessages:function(e,t){En.cullOlderMessages(e.openedChatMessageServices[t])}}};const Bn=Wn;const Hn={state:{announcements:[],supportsAnnouncements:!0,fetchAnnouncementsTimer:void 0},mutations:{setAnnouncements:function(e,t){e.announcements=t},setAnnouncementRead:function(e,t){var n=t.id,r=t.read,o=e.announcements.findIndex((function(e){return e.id===n}));o<0||(e.announcements[o].read=r)},setFetchAnnouncementsTimer:function(e,t){e.fetchAnnouncementsTimer=t},setSupportsAnnouncements:function(e,t){e.supportsAnnouncements=t}},getters:{unreadAnnouncementCount:function(e,t,n){return n.users.currentUser?e.announcements.filter((function(e){return!(e.inactive||e.read)})).length:0}},actions:{fetchAnnouncements:function(e){if(!e.state.supportsAnnouncements)return Promise.resolve();var t=e.rootState.users.currentUser,n=t&&"admin"===t.role,o=function(){var t=(0,r.Z)(i().mark((function t(){var r,o,s,a;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n){t.next=2;break}return t.abrupt("return",e.rootState.api.backendInteractor.fetchAnnouncements());case 2:return t.next=4,e.rootState.api.backendInteractor.adminFetchAnnouncements();case 4:return r=t.sent,t.next=7,e.rootState.api.backendInteractor.fetchAnnouncements();case 7:return o=t.sent,s=o.reduce((function(e,t){return e[t.id]=t,e}),{}),a=function(e){return s[e.id]},r.forEach((function(e){var t=a(e);t?e.read=t.read:e.inactive=!0})),t.abrupt("return",r);case 12:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();return o().then((function(t){e.commit("setAnnouncements",t)})).catch((function(t){if(!t||404!==t.statusCode)throw t;e.commit("setSupportsAnnouncements",!1)}))},markAnnouncementAsRead:function(e,t){return e.rootState.api.backendInteractor.dismissAnnouncement({id:t}).then((function(){e.commit("setAnnouncementRead",{id:t,read:!0})}))},startFetchingAnnouncements:function(e){if(!e.state.fetchAnnouncementsTimer){var t=setInterval((function(){return e.dispatch("fetchAnnouncements")}),3e5);return e.commit("setFetchAnnouncementsTimer",t),e.dispatch("fetchAnnouncements")}},stopFetchingAnnouncements:function(e){var t=e.state.fetchAnnouncementsTimer;e.commit("setFetchAnnouncementsTimer",void 0),clearInterval(t)},postAnnouncement:function(e,t){var n=t.content,r=t.startsAt,o=t.endsAt,i=t.allDay;return e.rootState.api.backendInteractor.postAnnouncement({content:n,startsAt:r,endsAt:o,allDay:i}).then((function(){return e.dispatch("fetchAnnouncements")}))},editAnnouncement:function(e,t){var n=t.id,r=t.content,o=t.startsAt,i=t.endsAt,s=t.allDay;return e.rootState.api.backendInteractor.editAnnouncement({id:n,content:r,startsAt:o,endsAt:i,allDay:s}).then((function(){return e.dispatch("fetchAnnouncements")}))},deleteAnnouncement:function(e,t){return e.rootState.api.backendInteractor.deleteAnnouncement({id:t}).then((function(){return e.dispatch("fetchAnnouncements")}))}}};var Vn=n(90308),Kn=n(72378),Gn=n.n(Kn),Yn=n(69483),Jn=!1,Qn=function(e,t){return 0===t.length?e:t.reduce((function(t,n){return $t()(t,n,xt()(e,n)),t}),{})},Xn=["markNotificationsAsSeen","clearCurrentUser","setCurrentUser","setServerSideStorage","setHighlight","setOption","setClientData","setToken","clearToken"],er=n.n(Yn)();function tr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=void 0===t?"vuex-lz":t,r=e.paths,o=void 0===r?[]:r,i=e.getState,s=void 0===i?function(e,t){return t.getItem(e)}:i,a=e.setState,c=void 0===a?function(e,t,n){return Jn?n.setItem(e,t):(console.log("waiting for old state to be loaded..."),Promise.resolve())}:a,l=e.reducer,u=void 0===l?Qn:l,d=e.storage,p=void 0===d?er:d,h=e.subscriber,m=void 0===h?function(e){return function(t){return e.subscribe(t)}}:h;return s(n,p).then((function(e){return function(t){try{if(null!==e&&"object"===(0,Dn.Z)(e)){var r=e.users||{};r.usersObject={};var i=r.users||[];Z()(i,(function(e){r.usersObject[e.id]=e})),e.users=r,t.replaceState(Gn()({},t.state,e))}Jn=!0}catch(e){console.log("Couldn't load state"),console.error(e),Jn=!0}m(t)((function(e,r){try{Xn.includes(e.type)&&c(n,u(Mt()(r),o),p).then((function(n){void 0!==n&&("setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{success:n}))}),(function(n){"setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{error:n})}))}catch(e){console.log("Couldn't persist state:"),console.log(e)}}))}}))}const nr=function(e){e.subscribe((function(t,n){var r=n.instance.vapidPublicKey,o=n.config.webPushNotifications,i="granted"===n.interface.notificationPermission,s=n.users.currentUser,a="setCurrentUser"===t.type,c="setInstanceOption"===t.type&&"vapidPublicKey"===t.payload.name,l="setNotificationPermission"===t.type&&"granted"===t.payload,u="setOption"===t.type&&"webPushNotifications"===t.payload.name,d="setOption"===t.type&&"notificationVisibility"===t.payload.name;if(a||c||l||u||d){if(s&&r&&i&&o)return e.dispatch("registerPushNotifications");if(u&&!o)return e.dispatch("unregisterPushNotifications")}}))};var rr=n(72617),or=n(49963),ir=n(28339),sr=n(20425),ar=n.n(sr),cr=n(57810),lr=n(66252),ur=n(3577),dr=(0,lr._)("div",{id:"app_bg_wrapper",class:"app-bg-wrapper"},null,-1),pr=(0,lr._)("div",{class:"underlay"},null,-1),hr=(0,lr._)("div",{id:"notifs-sidebar"},null,-1),mr={key:0,class:"login-hint panel panel-default"},fr=(0,lr._)("div",{id:"modal"},null,-1),gr={class:"user-panel"},vr={key:"user-panel-signed",class:"panel panel-default signed-in"},wr={class:"login panel panel-default"},br={class:"panel-heading"},yr={class:"panel-body"},_r={class:"form-group"},kr={for:"username"},Sr=["disabled","placeholder"],jr={class:"form-group"},Or={for:"password"},Cr=["disabled"],Pr={class:"form-group"},zr={key:1,class:"form-group"},Ir={class:"form-group"},Dr={class:"login-bottom"},xr=["disabled"],Tr={key:0,class:"form-group"},$r={class:"alert error"};function Ur(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ur(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ur(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.NBC);const Ar={data:function(){return{user:{},error:!1}},computed:Mr(Mr({isPasswordAuth:function(){return this.requiredPassword},isTokenAuth:function(){return this.requiredToken}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},instance:function(e){return e.instance},loggingIn:function(e){return e.users.loggingIn},oauth:function(e){return e.oauth}})),(0,s.Se)("authFlow",["requiredPassword","requiredToken","requiredMFA"])),methods:Mr(Mr(Mr({},(0,s.OI)("authFlow",["requireMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{submit:function(){this.isTokenAuth?this.submitToken():this.submitPassword()},submitToken:function(){var e=this.oauth,t={clientId:e.clientId,clientSecret:e.clientSecret,instance:this.instance.server,commit:this.$store.commit};qe.getOrCreateApp(t).then((function(e){qe.login(Mr(Mr({},e),t))}))},submitPassword:function(){var e=this,t={clientId:this.oauth.clientId,oauth:this.oauth,instance:this.instance.server,commit:this.$store.commit};this.error=!1,qe.getOrCreateApp(t).then((function(n){qe.getTokenWithCredentials(Mr(Mr({},n),{},{instance:t.instance,username:e.user.username,password:e.user.password})).then((function(t){t.error?"mfa_required"===t.error?e.requireMFA({settings:t}):"password_reset_required"===t.identifier?e.$router.push({name:"password-reset",params:{passwordResetRequested:!0}}):(e.error=t.error,e.focusOnPasswordInput()):e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}))},clearError:function(){this.error=!1},focusOnPasswordInput:function(){var e=this.$refs.passwordInput;e.focus(),e.setSelectionRange(0,e.value.length)}})};var Lr=n(83744);const Er=(0,Lr.Z)(Ar,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("router-link"),a=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",wr,[(0,lr._)("div",br,(0,ur.zw)(e.$t("login.login")),1),(0,lr._)("div",yr,[(0,lr._)("form",{class:"login-form",onSubmit:t[2]||(t[2]=(0,or.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[e.isPasswordAuth?((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:0},[(0,lr._)("div",_r,[(0,lr._)("label",kr,(0,ur.zw)(e.$t("login.username")),1),(0,lr.wy)((0,lr._)("input",{id:"username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.username=t}),disabled:e.loggingIn,class:"form-control",placeholder:e.$t("login.placeholder")},null,8,Sr),[[or.nr,e.user.username]])]),(0,lr._)("div",jr,[(0,lr._)("label",Or,(0,ur.zw)(e.$t("login.password")),1),(0,lr.wy)((0,lr._)("input",{id:"password",ref:"passwordInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.user.password=t}),disabled:e.loggingIn,class:"form-control",type:"password"},null,8,Cr),[[or.nr,e.user.password]])]),(0,lr._)("div",Pr,[(0,lr.Wm)(s,{to:{name:"password-reset"}},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("password_reset.forgot_password")),1)]})),_:1})])],64)):(0,lr.kq)("",!0),e.isTokenAuth?((0,lr.wg)(),(0,lr.iD)("div",zr,[(0,lr._)("p",null,(0,ur.zw)(e.$t("login.description")),1)])):(0,lr.kq)("",!0),(0,lr._)("div",Ir,[(0,lr._)("div",Dr,[(0,lr._)("div",null,[e.registrationOpen?((0,lr.wg)(),(0,lr.j4)(s,{key:0,to:{name:"registration"},class:"register"},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("login.register")),1)]})),_:1})):(0,lr.kq)("",!0)]),(0,lr._)("button",{disabled:e.loggingIn,type:"submit",class:"btn button-default"},(0,ur.zw)(e.$t("login.login")),9,xr)])])],32)]),e.error?((0,lr.wg)(),(0,lr.iD)("div",Tr,[(0,lr._)("div",$r,[(0,lr.Uk)((0,ur.zw)(e.error)+" ",1),(0,lr._)("button",{class:"button-unstyled",onClick:t[3]||(t[3]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,lr.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,lr.kq)("",!0)])}]]);var Fr={class:"login panel panel-default"},Rr={class:"panel-heading"},Nr={class:"panel-body"},qr={class:"form-group"},Zr={for:"code"},Wr={class:"form-group"},Br={class:"login-bottom"},Hr=(0,lr._)("br",null,null,-1),Vr={type:"submit",class:"btn button-default"},Kr={key:0,class:"form-group"},Gr={class:"alert error"},Yr={verifyOTPCode:function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,o=e.mfaToken,i=e.code,s="".concat(r,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",o),a.append("code",i),a.append("challenge_type","totp"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.clientId,n=e.clientSecret,r=e.instance,o=e.mfaToken,i=e.code,s="".concat(r,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",o),a.append("code",i),a.append("challenge_type","recovery"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))}};const Jr=Yr;function Qr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.NBC);const eo={data:function(){return{code:null,error:!1}},computed:Xr(Xr({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:Xr(Xr(Xr({},(0,s.OI)("authFlow",["requireTOTP","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};Jr.verifyRecoveryCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},to=(0,Lr.Z)(eo,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",Fr,[(0,lr._)("div",Rr,(0,ur.zw)(e.$t("login.heading.recovery")),1),(0,lr._)("div",Nr,[(0,lr._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,or.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,lr._)("div",qr,[(0,lr._)("label",Zr,(0,ur.zw)(e.$t("login.recovery_code")),1),(0,lr.wy)((0,lr._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[or.nr,e.code]])]),(0,lr._)("div",Wr,[(0,lr._)("div",Br,[(0,lr._)("div",null,[(0,lr._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,or.iM)((function(){return e.requireTOTP&&e.requireTOTP.apply(e,arguments)}),["prevent"]))},(0,ur.zw)(e.$t("login.enter_two_factor_code")),1),Hr,(0,lr._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,or.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,ur.zw)(e.$t("general.cancel")),1)]),(0,lr._)("button",Vr,(0,ur.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,lr.wg)(),(0,lr.iD)("div",Kr,[(0,lr._)("div",Gr,[(0,lr.Uk)((0,ur.zw)(e.error)+" ",1),(0,lr._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,lr.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,lr.kq)("",!0)])}]]);var no={class:"login panel panel-default"},ro={class:"panel-heading"},oo={class:"panel-body"},io={class:"form-group"},so={for:"code"},ao={class:"form-group"},co={class:"login-bottom"},lo=(0,lr._)("br",null,null,-1),uo={type:"submit",class:"btn button-default"},po={key:0,class:"form-group"},ho={class:"alert error"};function mo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mo(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.NBC);const go={data:function(){return{code:null,error:!1}},computed:fo(fo({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:fo(fo(fo({},(0,s.OI)("authFlow",["requireRecovery","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};Jr.verifyOTPCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},vo=(0,Lr.Z)(go,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",no,[(0,lr._)("div",ro,(0,ur.zw)(e.$t("login.heading.totp")),1),(0,lr._)("div",oo,[(0,lr._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,or.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,lr._)("div",io,[(0,lr._)("label",so,(0,ur.zw)(e.$t("login.authentication_code")),1),(0,lr.wy)((0,lr._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[or.nr,e.code]])]),(0,lr._)("div",ao,[(0,lr._)("div",co,[(0,lr._)("div",null,[(0,lr._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,or.iM)((function(){return e.requireRecovery&&e.requireRecovery.apply(e,arguments)}),["prevent"]))},(0,ur.zw)(e.$t("login.enter_recovery_code")),1),lo,(0,lr._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,or.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,ur.zw)(e.$t("general.cancel")),1)]),(0,lr._)("button",uo,(0,ur.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,lr.wg)(),(0,lr.iD)("div",po,[(0,lr._)("div",ho,[(0,lr.Uk)((0,ur.zw)(e.error)+" ",1),(0,lr._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,lr.Wm)(s,{size:"lg",class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,lr.kq)("",!0)])}]]);function wo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const bo={name:"AuthForm",render:function(){return(0,lr.h)((0,lr.up)(this.authForm))},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wo(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({authForm:function(){return this.requiredTOTP?"MFATOTPForm":this.requiredRecovery?"MFARecoveryForm":"LoginForm"}},(0,s.Se)("authFlow",["requiredTOTP","requiredRecovery"])),components:{MFARecoveryForm:to,MFATOTPForm:vo,LoginForm:Er}};var yo=n(33580),_o=n(27073);function ko(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const So={computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ko(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ko(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({signedIn:function(){return this.user}},(0,s.rn)({user:function(e){return e.users.currentUser}})),components:{AuthForm:bo,PostStatusForm:yo.Z,UserCard:_o.Z}},jo=(0,Lr.Z)(So,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("UserCard"),a=(0,lr.up)("PostStatusForm"),c=(0,lr.up)("auth-form");return(0,lr.wg)(),(0,lr.iD)("aside",gr,[e.signedIn?((0,lr.wg)(),(0,lr.iD)("div",vr,[(0,lr.Wm)(s,{"user-id":e.user.id,"hide-bio":!0,rounded:"top"},null,8,["user-id"]),(0,lr.Wm)(a)])):((0,lr.wg)(),(0,lr.j4)(c,{key:"user-panel"}))])}]]);var Oo={class:"NavPanel"},Co={class:"panel panel-default"},Po={key:0,class:"panel-heading nav-panel-heading"},zo=(0,lr._)("div",{class:"spacer"},null,-1),Io={key:1,class:"panel-body"},Do={class:"timelines-background"},xo={class:"timelines"},To={class:"timelines-background"},$o={key:0,class:"icon iconLetter fa-scale-110 menu-icon"},Uo={class:"label"},Mo={key:0,class:"badge badge-notification"},Ao=["title","aria-pressed"],Lo=new Set(["bookmarks","dms","interactions","notifications","chat","chats","user-profile"]),Eo={home:{route:"friends",icon:"home",label:"nav.home_timeline",criteria:["!private"]},public:{route:"public-timeline",anon:!0,icon:"users",label:"nav.public_tl",criteria:["!private"]},twkn:{route:"public-external-timeline",anon:!0,icon:"globe",label:"nav.twkn",criteria:["!private","federating"]},bookmarks:{route:"bookmarks",icon:"bookmark",label:"nav.bookmarks"},favorites:{routeObject:{name:"user-profile",query:{tab:"favorites"}},icon:"star",label:"user_card.favorites"},dms:{route:"dms",icon:"envelope",label:"nav.dms"}},Fo={interactions:{route:"interactions",icon:"bell",label:"nav.interactions"},chats:{route:"chats",icon:"comments",label:"nav.chats",badgeGetter:"unreadChatCount",criteria:["chats"]},friendRequests:{route:"friend-requests",icon:"user-plus",label:"nav.friend_requests",criteria:["lockedUser"],badgeGetter:"followRequestCount"},about:{route:"about",anon:!0,icon:"info-circle",label:"nav.about"},announcements:{route:"announcements",icon:"bullhorn",label:"nav.announcements",badgeGetter:"unreadAnnouncementCount",criteria:["announcements"]}};const Ro={props:["to"]},No=(0,Lr.Z)(Ro,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("router-link");return n.to?((0,lr.wg)(),(0,lr.j4)(s,{key:0,to:n.to,custom:""},{default:(0,lr.w5)((function(t){return[(0,lr.WI)(e.$slots,"default",(0,ur.vs)((0,lr.F4)(t)))]})),_:3},8,["to"])):(0,lr.WI)(e.$slots,"default",(0,ur.vs)((0,lr.dG)({key:1},{})))}]]);function qo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}Rt.vI.add(Nt.RP7);const Zo={props:["item","showPin"],components:{OptionalRouterLink:No},methods:{isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qo(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({routeTo:function(){return this.item.route||this.item.routeObject?(e=this.item.routeObject?this.item.routeObject:{name:this.item.anon||this.currentUser?this.item.route:this.item.anonRoute},Lo.has(e.name)&&(e.params={username:this.currentUser.screen_name,name:this.currentUser.screen_name}),e):null;var e},getters:function(){return this.$store.getters}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}}))},Wo=(0,Lr.Z)(Zo,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("OptionalRouterLink");return(0,lr.wg)(),(0,lr.j4)(a,{ass:"ass",to:e.routeTo},{default:(0,lr.w5)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.isActive,o=n.href,i=n.navigate;return[(0,lr._)("li",(0,lr.dG)({class:["NavigationEntry menu-item",{"-active":r}]},e.$attrs),[((0,lr.wg)(),(0,lr.j4)((0,lr.LL)(e.routeTo?"a":"button"),{class:"main-link button-unstyled",href:o,onClick:i},{default:(0,lr.w5)((function(){return[(0,lr._)("span",null,[e.item.icon?((0,lr.wg)(),(0,lr.j4)(s,{key:0,"fixed-width":"",class:"fa-scale-110 menu-icon",icon:e.item.icon},null,8,["icon"])):(0,lr.kq)("",!0)]),e.item.iconLetter?((0,lr.wg)(),(0,lr.iD)("span",$o,(0,ur.zw)(e.item.iconLetter),1)):(0,lr.kq)("",!0),(0,lr._)("span",Uo,(0,ur.zw)(e.item.labelRaw||e.$t(e.item.label)),1)]})),_:2},1032,["href","onClick"])),(0,lr.WI)(e.$slots,"default"),e.item.badgeGetter&&e.getters[e.item.badgeGetter]?((0,lr.wg)(),(0,lr.iD)("div",Mo,(0,ur.zw)(e.getters[e.item.badgeGetter]),1)):(0,lr.kq)("",!0),e.showPin&&e.currentUser?((0,lr.wg)(),(0,lr.iD)("button",{key:1,type:"button",class:"button-unstyled extra-button",title:e.$t(e.isPinned?"general.unpin":"general.pin"),"aria-pressed":!!e.isPinned,onClick:t[0]||(t[0]=(0,or.iM)((function(t){return e.togglePin(e.item.name)}),["stop","prevent"]))},[e.showPin&&e.currentUser?((0,lr.wg)(),(0,lr.j4)(s,{key:0,"fixed-width":"",class:(0,ur.C_)(["fa-scale-110",{veryfaint:!e.isPinned(e.item.name)}]),transform:e.isPinned(e.item.name)?"":"rotate-45",icon:"thumbtack"},null,8,["class","transform"])):(0,lr.kq)("",!0)],8,Ao)):(0,lr.kq)("",!0)],16)]})),_:3},8,["to"])}]]);var Bo=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=t.hasChats,r=t.hasAnnouncements,o=t.isFederating,i=t.isPrivate,s=t.currentUser;return e.filter((function(e){var t=e.criteria,a=e.anon,c=e.anonRoute,l=new Set(t||[]);return!(!o&&l.has("federating")||!s&&i&&l.has("!private")||!(s||a||c)||!(s&&s.locked||!l.has("lockedUser"))||!n&&l.has("chats")||!r&&l.has("announcements"))}))},Ho=function(e){return e.lists.allLists.map((function(e){return{name:"list-"+e.id,routeObject:{name:"lists-timeline",params:{id:e.id}},labelRaw:e.title,iconLetter:e.title[0]}}))};function Vo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Ko={props:["showPin"],components:{NavigationEntry:Wo},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vo(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},(0,s.rn)({lists:Ho,currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}}))};const Go=Ko,Yo=(0,Lr.Z)(Go,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("NavigationEntry");return(0,lr.wg)(),(0,lr.iD)("ul",null,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.lists,(function(t){return(0,lr.wg)(),(0,lr.j4)(s,{key:t.name,"show-pin":e.showPin,item:t},null,8,["show-pin","item"])})),128))])}]]);var Jo={class:"NavigationPins"},Qo={key:1,class:"iconLetter fa-scale-110 fa-old-padding"},Xo={key:2,class:"alert-dot"};function ei(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ti(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ei(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ei(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.FVb,Nt.g4A,Nt.xVw,Nt.FU$,Nt.lXL,Nt.qmU,Nt.sqG,Nt.aC2,Nt.Zrf);const ni={props:["limit"],methods:{getRouteTo:function(e){if(e.routeObject)return e.routeObject;var t={name:e.anon||this.currentUser?e.route:e.anonRoute};return Lo.has(t.name)&&(t.params={username:this.currentUser.screen_name}),t}},computed:ti(ti({getters:function(){return this.$store.getters}},(0,s.rn)({lists:Ho,currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}})),{},{pinnedList:function(){var e=this;return this.currentUser?Bo([].concat((0,u.Z)(Object.entries(ti({},Eo)).filter((function(t){var n=(0,l.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return ti(ti({},t[1]),{},{name:n})}))),(0,u.Z)(this.lists.filter((function(t){return e.pinnedItems.has(t.name)}))),(0,u.Z)(Object.entries(ti({},Fo)).filter((function(t){var n=(0,l.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return ti(ti({},t[1]),{},{name:n})})))),{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser}).slice(0,this.limit):Bo([ti(ti({},Eo.public),{},{name:"public"}),ti(ti({},Eo.twkn),{},{name:"twkn"}),ti(ti({},Fo.about),{},{name:"about"})],{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}})},ri=(0,Lr.Z)(ni,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("router-link");return(0,lr.wg)(),(0,lr.iD)("span",Jo,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.pinnedList,(function(t){return(0,lr.wg)(),(0,lr.j4)(a,{key:t.name,class:"pinned-item",to:e.getRouteTo(t),title:t.labelRaw||e.$t(t.label)},{default:(0,lr.w5)((function(){return[t.icon?((0,lr.wg)(),(0,lr.j4)(s,{key:0,"fixed-width":"",icon:t.icon},null,8,["icon"])):(0,lr.kq)("",!0),t.iconLetter?((0,lr.wg)(),(0,lr.iD)("span",Qo,(0,ur.zw)(t.iconLetter),1)):(0,lr.kq)("",!0),t.badgeGetter&&e.getters[t.badgeGetter]?((0,lr.wg)(),(0,lr.iD)("div",Xo)):(0,lr.kq)("",!0)]})),_:2},1032,["to","title"])})),128))])}]]);var oi=n(40151);function ii(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function si(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ii(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ii(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.FVb,Nt.g4A,Nt.xVw,Nt.FU$,Nt.ptq,Nt.mTx,Nt.lXL,Nt.qmU,Nt.sqG,Nt.aC2,Nt.Zrf,Nt.Acd);const ai={props:["forceExpand","forceEditMode"],created:function(){},components:{ListsMenuContent:Yo,NavigationEntry:Wo,NavigationPins:ri,Checkbox:oi.Z},data:function(){return{editMode:!1,showTimelines:!1,showLists:!1,timelinesList:Object.entries(Eo).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})})),rootList:Object.entries(Fo).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})}))}},methods:{toggleTimelines:function(){this.showTimelines=!this.showTimelines},toggleLists:function(){this.showLists=!this.showLists},toggleEditMode:function(){this.editMode=!this.editMode},toggleCollapse:function(){this.$store.commit("setPreference",{path:"simple.collapseNav",value:!this.collapsed}),this.$store.dispatch("pushServerSideStorage")},isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:si(si({},(0,s.rn)({currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)},collapsed:function(e){return e.serverSideStorage.prefsStorage.simple.collapseNav}})),{},{timelinesItems:function(){return Bo(Object.entries(si({},Eo)).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})},rootItems:function(){return Bo(Object.entries(si({},Fo)).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"]))},ci=(0,Lr.Z)(ai,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("NavigationPins"),a=(0,lr.up)("FAIcon"),c=(0,lr.up)("NavigationEntry"),l=(0,lr.up)("router-link"),u=(0,lr.up)("ListsMenuContent");return(0,lr.wg)(),(0,lr.iD)("div",Oo,[(0,lr._)("div",Co,[e.forceExpand?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",Po,[(0,lr.Wm)(s,{limit:6}),zo,(0,lr._)("button",{class:"button-unstyled",onClick:t[0]||(t[0]=function(){return e.toggleCollapse&&e.toggleCollapse.apply(e,arguments)})},[(0,lr.Wm)(a,{class:"navigation-chevron","fixed-width":"",icon:e.collapsed?"chevron-down":"chevron-up"},null,8,["icon"])])])),!e.collapsed||e.forceExpand?((0,lr.wg)(),(0,lr.iD)("ul",Io,[e.currentUser||!e.privateMode?((0,lr.wg)(),(0,lr.j4)(c,{key:0,"show-pin":!1,item:{icon:"stream",label:"nav.timelines"},"aria-expanded":e.showTimelines?"true":"false",onClick:e.toggleTimelines},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showTimelines?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,lr.kq)("",!0),(0,lr.wy)((0,lr._)("div",Do,[(0,lr._)("div",xo,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.timelinesItems,(function(t){return(0,lr.wg)(),(0,lr.j4)(c,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128))])],512),[[or.F8,e.showTimelines]]),e.currentUser?((0,lr.wg)(),(0,lr.j4)(c,{key:1,"show-pin":!1,item:{icon:"list",label:"nav.lists"},"aria-expanded":e.showLists?"true":"false",onClick:e.toggleLists},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(l,{title:e.$t("lists.manage_lists"),class:"extra-button",to:{name:"lists"},onClick:t[1]||(t[1]=(0,or.iM)((function(){}),["stop"]))},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{class:"extra-button","fixed-width":"",icon:"wrench"})]})),_:1},8,["title"]),(0,lr.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showLists?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,lr.kq)("",!0),(0,lr.wy)((0,lr._)("div",To,[(0,lr.Wm)(u,{"show-pin":e.editMode||e.forceEditMode,class:"timelines"},null,8,["show-pin"])],512),[[or.F8,e.showLists]]),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.rootItems,(function(t){return(0,lr.wg)(),(0,lr.j4)(c,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128)),!e.forceEditMode&&e.currentUser?((0,lr.wg)(),(0,lr.j4)(c,{key:2,"show-pin":!1,item:{label:e.editMode?e.$t("nav.edit_finish"):e.$t("nav.edit_pinned"),icon:e.editMode?"check":"wrench"},onClick:e.toggleEditMode},null,8,["item","onClick"])):(0,lr.kq)("",!0)])):(0,lr.kq)("",!0)])])}]]);var li={class:"instance-specific-panel"},ui={class:"panel panel-default"},di={class:"panel-body"},pi=["innerHTML"];const hi={computed:{instanceSpecificPanelContent:function(){return this.$store.state.instance.instanceSpecificPanelContent}}},mi=(0,Lr.Z)(hi,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("div",li,[(0,lr._)("div",ui,[(0,lr._)("div",di,[(0,lr._)("div",{innerHTML:e.instanceSpecificPanelContent},null,8,pi)])])])}]]);var fi={class:"features-panel"},gi={class:"panel panel-default base01-background"},vi={class:"panel-heading timeline-heading base02-background base04"},wi={class:"title"},bi={class:"panel-body features-panel"},yi={key:0},_i={key:1},ki={key:2},Si={key:3},ji={key:4},Oi=n(65079);const Ci={computed:{shout:function(){return this.$store.state.instance.shoutAvailable},pleromaChatMessages:function(){return this.$store.state.instance.pleromaChatMessagesAvailable},gopher:function(){return this.$store.state.instance.gopherAvailable},whoToFollow:function(){return this.$store.state.instance.suggestionsEnabled},mediaProxy:function(){return this.$store.state.instance.mediaProxyAvailable},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},textlimit:function(){return this.$store.state.instance.textlimit},uploadlimit:function(){return Oi.Z.fileSizeFormat(this.$store.state.instance.uploadlimit)}}},Pi=(0,Lr.Z)(Ci,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("div",fi,[(0,lr._)("div",gi,[(0,lr._)("div",vi,[(0,lr._)("div",wi,(0,ur.zw)(e.$t("features_panel.title")),1)]),(0,lr._)("div",bi,[(0,lr._)("ul",null,[e.shout?((0,lr.wg)(),(0,lr.iD)("li",yi,(0,ur.zw)(e.$t("features_panel.shout")),1)):(0,lr.kq)("",!0),e.pleromaChatMessages?((0,lr.wg)(),(0,lr.iD)("li",_i,(0,ur.zw)(e.$t("features_panel.pleroma_chat_messages")),1)):(0,lr.kq)("",!0),e.gopher?((0,lr.wg)(),(0,lr.iD)("li",ki,(0,ur.zw)(e.$t("features_panel.gopher")),1)):(0,lr.kq)("",!0),e.whoToFollow?((0,lr.wg)(),(0,lr.iD)("li",Si,(0,ur.zw)(e.$t("features_panel.who_to_follow")),1)):(0,lr.kq)("",!0),e.mediaProxy?((0,lr.wg)(),(0,lr.iD)("li",ji,(0,ur.zw)(e.$t("features_panel.media_proxy")),1)):(0,lr.kq)("",!0),(0,lr._)("li",null,(0,ur.zw)(e.$t("features_panel.scope_options")),1),(0,lr._)("li",null,(0,ur.zw)(e.$t("features_panel.text_limit"))+" = "+(0,ur.zw)(e.textlimit),1),(0,lr._)("li",null,(0,ur.zw)(e.$t("features_panel.upload_limit"))+" = "+(0,ur.zw)(e.uploadlimit.num)+" "+(0,ur.zw)(e.$t("upload.file_size_units."+e.uploadlimit.unit)),1)])])])])}]]);var zi={class:"who-to-follow-panel"},Ii={class:"panel panel-default base01-background"},Di={class:"panel-heading timeline-heading base02-background base04"},xi={class:"title"},Ti={class:"who-to-follow"},$i=["src"],Ui=(0,lr._)("br",null,null,-1),Mi={class:"who-to-follow-more"},Ai=n(69983),Li=n.n(Ai),Ei=n(4493);function Fi(e){var t=e.$store.state.users.currentUser.credentials;t&&(e.usersToFollow.forEach((function(e){e.name="Loading..."})),m.ZP.suggestions({credentials:t}).then((function(t){!function(e,t){var n=this,r=Li()(t);e.usersToFollow.forEach((function(t,o){var i=r[o],s=i.avatar||n.$store.state.instance.defaultAvatar,a=i.acct;t.img=s,t.name=a,e.$store.state.api.backendInteractor.fetchUser({id:a}).then((function(n){n.error||(e.$store.commit("addNewUsers",[n]),t.id=n.id)}))}))}(e,t)})))}const Ri={data:function(){return{usersToFollow:[]}},computed:{user:function(){return this.$store.state.users.currentUser.screen_name},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled}},methods:{userProfileLink:function(e,t){return(0,Ei.Z)(e,t,this.$store.state.instance.restrictedNicknames)}},watch:{user:function(e,t){this.suggestionsEnabled&&Fi(this)}},mounted:function(){var e=this;this.usersToFollow=new Array(3).fill().map((function(t){return{img:e.$store.state.instance.defaultAvatar,name:"",id:0}})),this.suggestionsEnabled&&Fi(this)}},Ni=(0,Lr.Z)(Ri,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("router-link");return(0,lr.wg)(),(0,lr.iD)("div",zi,[(0,lr._)("div",Ii,[(0,lr._)("div",Di,[(0,lr._)("div",xi,(0,ur.zw)(e.$t("who_to_follow.who_to_follow")),1)]),(0,lr._)("div",Ti,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.usersToFollow,(function(t){return(0,lr.wg)(),(0,lr.iD)("p",{key:t.id,class:"who-to-follow-items"},[(0,lr._)("img",{src:t.img},null,8,$i),(0,lr.Wm)(s,{to:e.userProfileLink(t.id,t.name)},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(t.name),1)]})),_:2},1032,["to"]),Ui])})),128)),(0,lr._)("p",Mi,[(0,lr.Wm)(s,{to:{name:"who-to-follow"}},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("who_to_follow.more")),1)]})),_:1})])])])])}]]);var qi={key:0,class:"shout-panel"},Zi={class:"panel panel-default"},Wi={class:"title"},Bi={class:"shout-window"},Hi={class:"shout-avatar"},Vi=["src"],Ki={class:"shout-content"},Gi=(0,lr._)("br",null,null,-1),Yi={class:"shout-text"},Ji={class:"shout-input"},Qi={key:1,class:"shout-panel"},Xi={class:"panel panel-default"},es={class:"title"};Rt.vI.add(Nt.Acd,Nt.NBC);const ts={props:["floating"],data:function(){return{currentMessage:"",channel:null,collapsed:!0}},computed:{messages:function(){return this.$store.state.shout.messages}},methods:{submit:function(e){this.$store.state.shout.channel.push("new_msg",{text:e},1e4),this.currentMessage=""},togglePanel:function(){this.collapsed=!this.collapsed},userProfileLink:function(e){return(0,Ei.Z)(e.id,e.username,this.$store.state.instance.restrictedNicknames)}},watch:{messages:function(e){var t=this.$el.querySelector(".chat-window");t&&t.scrollTop+t.offsetHeight+20>t.scrollHeight&&this.$nextTick((function(){t&&(t.scrollTop=t.scrollHeight-t.offsetHeight)}))}}},ns=(0,Lr.Z)(ts,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("router-link");return e.collapsed&&e.floating?((0,lr.wg)(),(0,lr.iD)("div",Qi,[(0,lr._)("div",Xi,[(0,lr._)("div",{class:"panel-heading -stub timeline-heading shout-heading",onClick:t[3]||(t[3]=(0,or.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,lr._)("div",es,[(0,lr.Wm)(s,{class:"icon",icon:"bullhorn"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("shoutbox.title")),1)])])])])):((0,lr.wg)(),(0,lr.iD)("div",qi,[(0,lr._)("div",Zi,[(0,lr._)("div",{class:(0,ur.C_)(["panel-heading timeline-heading",{"shout-heading":e.floating}]),onClick:t[0]||(t[0]=(0,or.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,lr._)("div",Wi,[(0,lr.Uk)((0,ur.zw)(e.$t("shoutbox.title"))+" ",1),e.floating?((0,lr.wg)(),(0,lr.j4)(s,{key:0,icon:"times",class:"close-icon"})):(0,lr.kq)("",!0)])],2),(0,lr._)("div",Bi,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.messages,(function(t){return(0,lr.wg)(),(0,lr.iD)("div",{key:t.id,class:"shout-message"},[(0,lr._)("span",Hi,[(0,lr._)("img",{src:t.author.avatar},null,8,Vi)]),(0,lr._)("div",Ki,[(0,lr.Wm)(a,{class:"shout-name",to:e.userProfileLink(t.author)},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(t.author.username),1)]})),_:2},1032,["to"]),Gi,(0,lr._)("span",Yi,(0,ur.zw)(t.text),1)])])})),128))]),(0,lr._)("div",Ji,[(0,lr.wy)((0,lr._)("textarea",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.currentMessage=t}),class:"shout-input-textarea",rows:"1",onKeyup:t[2]||(t[2]=(0,or.D2)((function(t){return e.submit(e.currentMessage)}),["enter"]))},null,544),[[or.nr,e.currentMessage]])])])]))}]]);var rs=["src","alt","title"],os=["src","alt","title"],is=["title"],ss=["title"],as=["title"],cs={key:6,class:"description"},ls={class:"counter"},us={key:7,class:"loading-spinner"},ds=n(19236),ps=n(34133),hs=n(782);const ms={methods:{setTransform:function(e){var t=e.scale,n=e.x,r=e.y;this.$el.setTransform({scale:t,x:n,y:r})}},created:function(){hs.Z}},fs=(0,Lr.Z)(ms,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("pinch-zoom",(0,lr.dG)({class:"pinch-zoom-parent"},e.$attrs,(0,lr.mx)(e.$listeners,!0)),[(0,lr.WI)(e.$slots,"default")],16)}]]);var gs=n(15671),vs=n(43144),ws=function(e,t){return[t[0]-e[0],t[1]-e[1]]},bs=function(e){return[(t=e.touches[0]).screenX,t.screenY];var t},ys=function(e){return[e.clientX,e.clientY]},_s=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},ks=function(e){return[e[1],-e[0]]},Ss=function(e,t){return e[0]*t[0]+e[1]*t[1]},js=function(e,t){var n=Ss(e,t)/Ss(t,t);return[n*t[0],n*t[1]]};const Os={DIRECTION_LEFT:[-1,0],DIRECTION_RIGHT:[1,0],DIRECTION_UP:[0,-1],DIRECTION_DOWN:[0,1],swipeGesture:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{direction:e,onSwipe:t,threshold:n,perpendicularTolerance:r,_startPos:[0,0],_swiping:!1}},beginSwipe:function(e,t){t._startPos=bs(e),t._swiping=!0},updateSwipe:function(e,t){if(t._swiping){var n=ws(t._startPos,bs(e));if(!(_s(n)<t.threshold||Ss(n,t.direction)<0)){var r=js(n,t.direction),o=ks(t.direction),i=js(n,o);_s(r)*t.perpendicularTolerance<_s(i)||(t.onSwipe(),t._swiping=!1)}}},SwipeAndClickGesture:function(){function e(t){var n=t.direction,r=t.swipePreviewCallback,o=t.swipeEndCallback,i=t.swipeCancelCallback,s=t.swipelessClickCallback,a=t.threshold,c=void 0===a?30:a,l=t.perpendicularTolerance,u=void 0===l?1:l,d=t.disableClickThreshold,p=void 0===d?1:d;(0,gs.Z)(this,e);var h=function(){};this.direction=n,this.swipePreviewCallback=r||h,this.swipeEndCallback=o||h,this.swipeCancelCallback=i||h,this.swipelessClickCallback=s||h,this.threshold="function"==typeof c?c:function(){return c},this.disableClickThreshold="function"==typeof p?p:function(){return p},this.perpendicularTolerance=u,this._reset()}return(0,vs.Z)(e,[{key:"_reset",value:function(){this._startPos=[0,0],this._pointerId=-1,this._swiping=!1,this._swiped=!1,this._preventNextClick=!1}},{key:"start",value:function(e){0===e.button&&(this._startPos=ys(e),this._pointerId=e.pointerId,this._swiping=!0,this._swiped=!1)}},{key:"move",value:function(e){if(this._swiping&&this._pointerId===e.pointerId){this._swiped=!0;var t=ys(e),n=ws(this._startPos,t);this.swipePreviewCallback(n)}}},{key:"cancel",value:function(e){this._swiping&&this._pointerId===e.pointerId&&this.swipeCancelCallback()}},{key:"end",value:function(e){var t=this;if(this._swiping&&this._pointerId===e.pointerId){this._swiping=!1;var n=ys(e),r=ws(this._startPos,n),o=function(){if(_s(r)<t.threshold())return 0;var e=Ss(r,t.direction)>0,n=js(r,t.direction),o=ks(t.direction),i=js(r,o);return _s(n)*t.perpendicularTolerance<_s(i)?0:e?1:-1}();this._swiped&&this.swipeEndCallback(o),this._reset(),_s(r)>=this.disableClickThreshold()&&"mouse"===e.pointerType&&(this._preventNextClick=!0)}}},{key:"click",value:function(e){this._preventNextClick||this.swipelessClickCallback(),this._reset()}}]),e}()},Cs={props:{direction:{type:Array},threshold:{type:Function,default:function(){return 30}},perpendicularTolerance:{type:Number,default:1}},methods:{handlePointerDown:function(e){this.$gesture.start(e)},handlePointerMove:function(e){this.$gesture.move(e)},handlePointerUp:function(e){this.$gesture.end(e)},handlePointerCancel:function(e){this.$gesture.cancel(e)},handleNativeClick:function(e){this.$gesture.click(e)},preview:function(e){this.$emit("preview-requested",e)},end:function(e){this.$emit("swipe-finished",e)},click:function(){this.$emit("swipeless-clicked")},cancel:function(){this.$emit("swipe-canceled")}},created:function(){this.$gesture=new Os.SwipeAndClickGesture({direction:this.direction,threshold:this.threshold,perpendicularTolerance:this.perpendicularTolerance,swipePreviewCallback:this.preview,swipeEndCallback:this.end,swipeCancelCallback:this.cancel,swipelessClickCallback:this.click})}},Ps=(0,Lr.Z)(Cs,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("div",(0,lr.dG)(e.$attrs,{onPointerdown:t[0]||(t[0]=function(){return e.handlePointerDown&&e.handlePointerDown.apply(e,arguments)}),onPointermove:t[1]||(t[1]=function(){return e.handlePointerMove&&e.handlePointerMove.apply(e,arguments)}),onPointerup:t[2]||(t[2]=function(){return e.handlePointerUp&&e.handlePointerUp.apply(e,arguments)}),onPointercancel:t[3]||(t[3]=function(){return e.handlePointerCancel&&e.handlePointerCancel.apply(e,arguments)}),onClick:t[4]||(t[4]=function(){return e.handleNativeClick&&e.handleNativeClick.apply(e,arguments)})}),[(0,lr.WI)(e.$slots,"default")],16)}]]);var zs=n(12394);Rt.vI.add(Nt.A35,Nt._tD,Nt.IJ7,Nt.NBC);const Is={components:{StillImage:ds.Z,VideoAttachment:ps.Z,PinchZoom:fs,SwipeClick:Ps,Modal:Ft.Z,Flash:zs.Z},data:function(){return{loading:!1,swipeDirection:Os.DIRECTION_LEFT,swipeThreshold:function(){return window.innerWidth*(1/4)},pinchZoomMinScale:1,pinchZoomScaleResetLimit:1.2}},computed:{showing:function(){return this.$store.state.mediaViewer.activated},media:function(){return this.$store.state.mediaViewer.media},description:function(){return this.currentMedia.description},currentIndex:function(){return this.$store.state.mediaViewer.currentIndex},currentMedia:function(){return this.media[this.currentIndex]},canNavigate:function(){return this.media.length>1},type:function(){return this.currentMedia?this.getType(this.currentMedia):null}},methods:{getType:function(e){return hn.Z.fileType(e.mimetype)},hide:function(){var e=this;setTimeout((function(){e.$store.dispatch("closeMediaViewer")}),100)},hideIfNotSwiped:function(e){var t=this.$refs.swipeClick;t?t.$gesture.click(e):this.hide()},goPrev:function(){if(this.canNavigate){var e=0===this.currentIndex?this.media.length-1:this.currentIndex-1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},goNext:function(){if(this.canNavigate){var e=this.currentIndex===this.media.length-1?0:this.currentIndex+1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},onImageLoaded:function(){this.loading=!1},handleSwipePreview:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:e[0],y:0})},handleSwipeEnd:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:0,y:0}),e>0?this.goNext():e<0&&this.goPrev()},handleKeyupEvent:function(e){this.showing&&27===e.keyCode&&this.hide()},handleKeydownEvent:function(e){this.showing&&(39===e.keyCode?this.goNext():37===e.keyCode&&this.goPrev())}},mounted:function(){window.addEventListener("popstate",this.hide),document.addEventListener("keyup",this.handleKeyupEvent),document.addEventListener("keydown",this.handleKeydownEvent)},unmounted:function(){window.removeEventListener("popstate",this.hide),document.removeEventListener("keyup",this.handleKeyupEvent),document.removeEventListener("keydown",this.handleKeydownEvent)}},Ds=(0,Lr.Z)(Is,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("PinchZoom"),a=(0,lr.up)("SwipeClick"),c=(0,lr.up)("VideoAttachment"),l=(0,lr.up)("Flash"),u=(0,lr.up)("FAIcon"),d=(0,lr.up)("Modal");return e.showing?((0,lr.wg)(),(0,lr.j4)(d,{key:0,class:"media-modal-view",onBackdropClicked:e.hideIfNotSwiped},{default:(0,lr.w5)((function(){return["image"===e.type?((0,lr.wg)(),(0,lr.j4)(a,{key:0,ref:"swipeClick",class:"modal-image-container",direction:e.swipeDirection,threshold:e.swipeThreshold,onPreviewRequested:e.handleSwipePreview,onSwipeFinished:e.handleSwipeEnd,onSwipelessClicked:e.hide},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(s,{ref:"pinchZoom",class:"modal-image-container-inner",selector:".modal-image","reach-min-scale-strategy":"reset","stop-propagate-handled":"stop-propgate-handled","allow-pan-min-scale":e.pinchZoomMinScale,"min-scale":e.pinchZoomMinScale,"reset-to-min-scale-limit":e.pinchZoomScaleResetLimit},{default:(0,lr.w5)((function(){return[(0,lr._)("img",{class:(0,ur.C_)([{loading:e.loading},"modal-image"]),src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,onLoad:t[0]||(t[0]=function(){return e.onImageLoaded&&e.onImageLoaded.apply(e,arguments)})},null,42,rs)]})),_:1},8,["allow-pan-min-scale","min-scale","reset-to-min-scale-limit"])]})),_:1},8,["direction","threshold","onPreviewRequested","onSwipeFinished","onSwipelessClicked"])):(0,lr.kq)("",!0),"video"===e.type?((0,lr.wg)(),(0,lr.j4)(c,{key:1,class:"modal-image",attachment:e.currentMedia,controls:!0},null,8,["attachment"])):(0,lr.kq)("",!0),"audio"===e.type?((0,lr.wg)(),(0,lr.iD)("audio",{key:2,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,controls:""},null,8,os)):(0,lr.kq)("",!0),"flash"===e.type?((0,lr.wg)(),(0,lr.j4)(l,{key:3,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description},null,8,["src","alt","title"])):(0,lr.kq)("",!0),e.canNavigate?((0,lr.wg)(),(0,lr.iD)("button",{key:4,title:e.$t("media_modal.previous"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev",onClick:t[1]||(t[1]=(0,or.iM)((function(){return e.goPrev&&e.goPrev.apply(e,arguments)}),["stop","prevent"]))},[(0,lr.Wm)(u,{class:"button-icon arrow-icon",icon:"chevron-left"})],8,is)):(0,lr.kq)("",!0),e.canNavigate?((0,lr.wg)(),(0,lr.iD)("button",{key:5,title:e.$t("media_modal.next"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--next",onClick:t[2]||(t[2]=(0,or.iM)((function(){return e.goNext&&e.goNext.apply(e,arguments)}),["stop","prevent"]))},[(0,lr.Wm)(u,{class:"button-icon arrow-icon",icon:"chevron-right"})],8,ss)):(0,lr.kq)("",!0),(0,lr._)("button",{class:"modal-view-button modal-view-button-hide",title:e.$t("media_modal.hide"),onClick:t[3]||(t[3]=(0,or.iM)((function(){return e.hide&&e.hide.apply(e,arguments)}),["stop","prevent"]))},[(0,lr.Wm)(u,{class:"button-icon",icon:"times"})],8,as),e.description?((0,lr.wg)(),(0,lr.iD)("span",cs,(0,ur.zw)(e.description),1)):(0,lr.kq)("",!0),(0,lr._)("span",ls,(0,ur.zw)(e.$tc("media_modal.counter",e.currentIndex+1,{current:e.currentIndex+1,total:e.media.length})),1),e.loading?((0,lr.wg)(),(0,lr.iD)("span",us,[(0,lr.Wm)(u,{spin:"",icon:"circle-notch",size:"5x"})])):(0,lr.kq)("",!0)]})),_:1},8,["onBackdropClicked"])):(0,lr.kq)("",!0)}]]);var xs={key:1,class:"side-drawer-logo-wrapper"},Ts=["src"],$s={key:0},Us={key:0,class:"badge badge-notification"},Ms={key:0},As={key:0,class:"badge badge-notification"},Ls={href:"/pleroma/admin/#/login-pleroma",target:"_blank"},Es={key:0,class:"badge badge-notification"};function Fs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Rs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Fs(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.$Wj,Nt.jLD,Nt.J9Y,Nt.lXL,Nt.qmU,Nt.FKd,Nt.Acd,Nt.wn1,Nt.HLz,Nt.b7W,Nt.sqG,Nt.GTN,Nt.Zrf);const Ns={props:["logout"],data:function(){return{closed:!0,closeGesture:void 0}},created:function(){this.closeGesture=Os.swipeGesture(Os.DIRECTION_LEFT,this.toggleDrawer),this.currentUser&&this.currentUser.locked&&this.$store.dispatch("startFetchingFollowRequests")},components:{UserCard:_o.Z},computed:Rs(Rs({currentUser:function(){return this.$store.state.users.currentUser},shout:function(){return this.$store.state.shout.joined},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},logo:function(){return this.$store.state.instance.logo},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},followRequestCount:function(){return this.$store.state.api.followRequests.length},privateMode:function(){return this.$store.state.instance.private},federating:function(){return this.$store.state.instance.federating},timelinesRoute:function(){var e;return this.$store.state.interface.lastTimeline&&(e=this.$store.state.interface.lastTimeline),e=this.currentUser?"friends":"public-timeline",Lo.has(e)?{name:e,params:{username:this.currentUser.screen_name}}:{name:e}}},(0,s.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements}})),(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),methods:{toggleDrawer:function(){this.closed=!this.closed},doLogout:function(){this.logout(),this.toggleDrawer()},touchStart:function(e){Os.beginSwipe(e,this.closeGesture)},touchMove:function(e){Os.updateSwipe(e,this.closeGesture)},openSettingsModal:function(){this.$store.dispatch("openSettingsModal")}}},qs=(0,Lr.Z)(Ns,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("UserCard"),a=(0,lr.up)("FAIcon"),c=(0,lr.up)("router-link");return(0,lr.wg)(),(0,lr.iD)("div",{class:(0,ur.C_)(["side-drawer-container",{"side-drawer-container-closed":e.closed,"side-drawer-container-open":!e.closed}])},[(0,lr._)("div",{class:(0,ur.C_)(["side-drawer-darken",{"side-drawer-darken-closed":e.closed}])},null,2),(0,lr._)("div",{class:(0,ur.C_)(["side-drawer",{"side-drawer-closed":e.closed}]),onTouchstart:t[18]||(t[18]=function(){return e.touchStart&&e.touchStart.apply(e,arguments)}),onTouchmove:t[19]||(t[19]=function(){return e.touchMove&&e.touchMove.apply(e,arguments)})},[(0,lr._)("div",{class:"side-drawer-heading",onClick:t[0]||(t[0]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[e.currentUser?((0,lr.wg)(),(0,lr.j4)(s,{key:0,"user-id":e.currentUser.id,"hide-bio":!0},null,8,["user-id"])):((0,lr.wg)(),(0,lr.iD)("div",xs,[(0,lr._)("img",{src:e.logo},null,8,Ts),e.hideSitename?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("span",$s,(0,ur.zw)(e.sitename),1))]))]),(0,lr._)("ul",null,[e.currentUser?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("li",{key:0,onClick:t[1]||(t[1]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"login"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-in-alt"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("login.login")),1)]})),_:1})])),e.currentUser||!e.privateMode?((0,lr.wg)(),(0,lr.iD)("li",{key:1,onClick:t[2]||(t[2]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:e.timelinesRoute},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"home"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.timelines")),1)]})),_:1},8,["to"])])):(0,lr.kq)("",!0),e.currentUser?((0,lr.wg)(),(0,lr.iD)("li",{key:2,onClick:t[3]||(t[3]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"lists"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"list"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.lists")),1)]})),_:1})])):(0,lr.kq)("",!0),e.currentUser&&e.pleromaChatMessagesAvailable?((0,lr.wg)(),(0,lr.iD)("li",{key:3,onClick:t[4]||(t[4]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"chats",params:{username:e.currentUser.screen_name}},style:{position:"relative"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"comments"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.chats"))+" ",1),e.unreadChatCount?((0,lr.wg)(),(0,lr.iD)("span",Us,(0,ur.zw)(e.unreadChatCount),1)):(0,lr.kq)("",!0)]})),_:1},8,["to"])])):(0,lr.kq)("",!0)]),e.currentUser?((0,lr.wg)(),(0,lr.iD)("ul",Ms,[(0,lr._)("li",{onClick:t[5]||(t[5]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"interactions",params:{username:e.currentUser.screen_name}}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bell"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.interactions")),1)]})),_:1},8,["to"])]),e.currentUser.locked?((0,lr.wg)(),(0,lr.iD)("li",{key:0,onClick:t[6]||(t[6]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:"/friend-requests"},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.friend_requests"))+" ",1),e.followRequestCount>0?((0,lr.wg)(),(0,lr.iD)("span",As,(0,ur.zw)(e.followRequestCount),1)):(0,lr.kq)("",!0)]})),_:1})])):(0,lr.kq)("",!0),e.shout?((0,lr.wg)(),(0,lr.iD)("li",{key:1,onClick:t[7]||(t[7]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"shout-panel"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("shoutbox.title")),1)]})),_:1})])):(0,lr.kq)("",!0)])):(0,lr.kq)("",!0),(0,lr._)("ul",null,[e.currentUser||!e.privateMode?((0,lr.wg)(),(0,lr.iD)("li",{key:0,onClick:t[8]||(t[8]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"search"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.search")),1)]})),_:1})])):(0,lr.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,lr.wg)(),(0,lr.iD)("li",{key:1,onClick:t[9]||(t[9]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"who-to-follow"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.who_to_follow")),1)]})),_:1})])):(0,lr.kq)("",!0),(0,lr._)("li",{onClick:t[11]||(t[11]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[10]||(t[10]=function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)})},[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("settings.settings")),1)])]),(0,lr._)("li",{onClick:t[12]||(t[12]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"about"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"info-circle"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.about")),1)]})),_:1})]),e.currentUser&&"admin"===e.currentUser.role?((0,lr.wg)(),(0,lr.iD)("li",{key:2,onClick:t[13]||(t[13]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr._)("a",Ls,[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.administration")),1)])])):(0,lr.kq)("",!0),e.currentUser&&e.supportsAnnouncements?((0,lr.wg)(),(0,lr.iD)("li",{key:3,onClick:t[14]||(t[14]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"announcements"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.announcements"))+" ",1),e.unreadAnnouncementCount?((0,lr.wg)(),(0,lr.iD)("span",Es,(0,ur.zw)(e.unreadAnnouncementCount),1)):(0,lr.kq)("",!0)]})),_:1})])):(0,lr.kq)("",!0),e.currentUser?((0,lr.wg)(),(0,lr.iD)("li",{key:4,onClick:t[15]||(t[15]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr.Wm)(c,{to:{name:"edit-navigation"}},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"compass"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("nav.edit_nav_mobile")),1)]})),_:1})])):(0,lr.kq)("",!0),e.currentUser?((0,lr.wg)(),(0,lr.iD)("li",{key:5,onClick:t[17]||(t[17]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,lr._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[16]||(t[16]=function(){return e.doLogout&&e.doLogout.apply(e,arguments)})},[(0,lr.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("login.logout")),1)])])):(0,lr.kq)("",!0)])],34),(0,lr._)("div",{class:(0,ur.C_)(["side-drawer-click-outside",{"side-drawer-click-outside-closed":e.closed}]),onClick:t[20]||(t[20]=(0,or.iM)((function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)}),["stop","prevent"]))},null,2)],2)}]]);var Zs=["title"],Ws=n(23279),Bs=n.n(Ws);Rt.vI.add(Nt.IwR);var Hs=new Set(["chats","chat","lists-edit"]);const Vs={data:function(){return{hidden:!1,scrollingDown:!1,inputActive:!1,oldScrollPos:0,amountScrolled:0}},created:function(){this.autohideFloatingPostButton&&this.activateFloatingPostButtonAutohide(),window.addEventListener("resize",this.handleOSK)},unmounted:function(){this.autohideFloatingPostButton&&this.deactivateFloatingPostButtonAutohide(),window.removeEventListener("resize",this.handleOSK)},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},isHidden:function(){return!!Hs.has(this.$route.name)||this.autohideFloatingPostButton&&(this.hidden||this.inputActive)},isPersistent:function(){return!!this.$store.getters.mergedConfig.alwaysShowNewPostButton},autohideFloatingPostButton:function(){return!!this.$store.getters.mergedConfig.autohideFloatingPostButton}},watch:{autohideFloatingPostButton:function(e){e?this.activateFloatingPostButtonAutohide():this.deactivateFloatingPostButtonAutohide()}},methods:{activateFloatingPostButtonAutohide:function(){window.addEventListener("scroll",this.handleScrollStart),window.addEventListener("scroll",this.handleScrollEnd)},deactivateFloatingPostButtonAutohide:function(){window.removeEventListener("scroll",this.handleScrollStart),window.removeEventListener("scroll",this.handleScrollEnd)},openPostForm:function(){this.$store.dispatch("openPostStatusModal")},handleOSK:function(){var e=window.innerWidth<350,t=e&&window.innerHeight<345,n=!e&&window.innerWidth<450&&window.innerHeight<560;this.inputActive=!(!t&&!n)},handleScrollStart:Bs()((function(){window.scrollY>this.oldScrollPos?this.hidden=!0:this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!0,trailing:!1}),handleScrollEnd:Bs()((function(){this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!1,trailing:!0})}},Ks=(0,Lr.Z)(Vs,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon");return e.isLoggedIn?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:(0,ur.C_)(["MobilePostButton button-default new-status-button",{hidden:e.isHidden,"always-show":e.isPersistent}]),title:e.$t("post_status.new_status"),onClick:t[0]||(t[0]=function(){return e.openPostForm&&e.openPostForm.apply(e,arguments)})},[(0,lr.Wm)(s,{icon:"pen"})],10,Zs)):(0,lr.kq)("",!0)}]]);var Gs={class:"MobileNav"},Ys={class:"item"},Js=["title","aria-expanaded"],Qs={key:0,class:"alert-dot"},Xs={class:"item right"},ea=["title"],ta={key:0,class:"alert-dot"},na={class:"mobile-notifications-header"},ra={class:"title"},oa=(0,lr._)("span",{class:"spacer"},null,-1),ia=["title"],sa=["title"],aa=n(2302);function ca(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function la(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ca(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ca(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.NBC,Nt.qmU,Nt.xiG,Nt.FPD,Nt.Kl4);const ua={components:{SideDrawer:qs,Notifications:aa.default,NavigationPins:ri},data:function(){return{notificationsCloseGesture:void 0,notificationsOpen:!1,notificationsAtTop:!0}},created:function(){var e=this;this.notificationsCloseGesture=Os.swipeGesture(Os.DIRECTION_RIGHT,(function(){return e.closeMobileNotifications(!0)}),50)},computed:la(la({currentUser:function(){return this.$store.state.users.currentUser},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},isChat:function(){return"chat"===this.$route.name}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),{},{chatsPinned:function(){return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has("chats")}}),methods:{toggleMobileSidebar:function(){this.$refs.sideDrawer.toggleDrawer()},openMobileNotifications:function(){this.notificationsOpen=!0},closeMobileNotifications:function(e){this.notificationsOpen&&(this.notificationsOpen=!1,e&&this.markNotificationsAsSeen())},notificationsTouchStart:function(e){Os.beginSwipe(e,this.notificationsCloseGesture)},notificationsTouchMove:function(e){Os.updateSwipe(e,this.notificationsCloseGesture)},scrollToTop:function(){window.scrollTo(0,0)},scrollMobileNotificationsToTop:function(){this.$refs.mobileNotifications.scrollTo(0,0)},logout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout")},markNotificationsAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen")},onScroll:function(e){var t=e.target,n=t.scrollTop,r=t.clientHeight,o=t.scrollHeight;this.notificationsAtTop=n>0,n+r>=o&&this.$refs.notifications.fetchOlderNotifications()}},watch:{$route:function(){this.closeMobileNotifications()}}},da=(0,Lr.Z)(ua,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("NavigationPins"),c=(0,lr.up)("FALayers"),l=(0,lr.up)("SideDrawer");return(0,lr.wg)(),(0,lr.iD)("div",Gs,[(0,lr._)("nav",{id:"nav",class:"mobile-nav",onClick:t[2]||(t[2]=function(t){return e.scrollToTop()})},[(0,lr._)("div",Ys,[(0,lr._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_sidebar"),"aria-expanaded":e.$refs.sideDrawer&&!e.$refs.sideDrawer.closed,onClick:t[0]||(t[0]=(0,or.iM)((function(t){return e.toggleMobileSidebar()}),["stop","prevent"]))},[(0,lr.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bars"}),e.unreadChatCount&&!e.chatsPinned||e.unreadAnnouncementCount?((0,lr.wg)(),(0,lr.iD)("div",Qs)):(0,lr.kq)("",!0)],8,Js),(0,lr.Wm)(a,{class:"pins"})]),(0,lr.Uk)(),(0,lr._)("div",Xs,[e.currentUser?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.unseenNotificationsCount?e.$t("nav.mobile_notifications_unread_active"):e.$t("nav.mobile_notifications"),onClick:t[1]||(t[1]=(0,or.iM)((function(t){return e.openMobileNotifications()}),["stop","prevent"]))},[(0,lr.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bell"}),e.unseenNotificationsCount?((0,lr.wg)(),(0,lr.iD)("div",ta)):(0,lr.kq)("",!0)],8,ea)):(0,lr.kq)("",!0)])]),e.currentUser?((0,lr.wg)(),(0,lr.iD)("aside",{key:0,class:(0,ur.C_)(["mobile-notifications-drawer",{"-closed":!e.notificationsOpen}]),onTouchstart:t[6]||(t[6]=(0,or.iM)((function(){return e.notificationsTouchStart&&e.notificationsTouchStart.apply(e,arguments)}),["stop"])),onTouchmove:t[7]||(t[7]=(0,or.iM)((function(){return e.notificationsTouchMove&&e.notificationsTouchMove.apply(e,arguments)}),["stop"]))},[(0,lr._)("div",na,[(0,lr._)("span",ra,(0,ur.zw)(e.$t("notifications.notifications")),1),oa,e.notificationsAtTop?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.$t("general.scroll_to_top"),onClick:t[3]||(t[3]=(0,or.iM)((function(){return e.scrollMobileNotificationsToTop&&e.scrollMobileNotificationsToTop.apply(e,arguments)}),["stop","prevent"]))},[(0,lr.Wm)(c,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(s,{icon:"arrow-up"}),(0,lr.Wm)(s,{icon:"minus",transform:"up-7"})]})),_:1})],8,ia)):(0,lr.kq)("",!0),(0,lr._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_notifications_close"),onClick:t[4]||(t[4]=(0,or.iM)((function(t){return e.closeMobileNotifications(!0)}),["stop","prevent"]))},[(0,lr.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,sa)]),(0,lr._)("div",{id:"mobile-notifications",ref:"mobileNotifications",class:"mobile-notifications",onScroll:t[5]||(t[5]=function(){return e.onScroll&&e.onScroll.apply(e,arguments)})},null,544)],34)):(0,lr.kq)("",!0),(0,lr.Wm)(l,{ref:"sideDrawer",logout:e.logout},null,8,["logout"])])}]]);var pa={class:"inner-nav"},ha={class:"item sitename"},ma=["src"],fa={class:"item right actions"},ga=(0,lr._)("span",{class:"spacer"},null,-1),va=["title"],wa=["placeholder"],ba=(0,lr._)("span",{class:"spacer"},null,-1),ya=(0,lr._)("span",{class:"spacer"},null,-1);Rt.vI.add(Nt.NBC,Nt.wn1);const _a={data:function(){return{searchTerm:void 0,hidden:!0,error:!1}},watch:{$route:function(e){"search"===e.name&&(this.searchTerm=e.query.query)}},methods:{find:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},toggleHidden:function(){var e=this;this.hidden=!this.hidden,this.$emit("toggled",this.hidden),this.$nextTick((function(){e.hidden||e.$refs.searchInput.focus()}))}}},ka=(0,Lr.Z)(_a,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",{class:(0,ur.C_)(["SearchBar",{"-expanded":!e.hidden}])},[e.hidden?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"button-unstyled nav-icon",title:e.$t("nav.search"),type:"button",onClick:t[0]||(t[0]=(0,or.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,lr.Wm)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"})],8,va)):((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:1},[(0,lr.wy)((0,lr._)("input",{id:"search-bar-input",ref:"searchInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),class:"search-bar-input",placeholder:e.$t("nav.search"),type:"text",onKeyup:t[2]||(t[2]=(0,or.D2)((function(t){return e.find(e.searchTerm)}),["enter"]))},null,40,wa),[[or.nr,e.searchTerm]]),(0,lr._)("button",{class:"button-default search-button",type:"submit",onClick:t[3]||(t[3]=function(t){return e.find(e.searchTerm)})},[(0,lr.Wm)(s,{"fixed-width":"",icon:"search"})]),(0,lr._)("button",{class:"button-unstyled cancel-search",type:"button",onClick:t[4]||(t[4]=(0,or.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,lr.Wm)(s,{"fixed-width":"",icon:"times",class:"cancel-icon fa-scale-110 fa-old-padding"})]),ba,ya],64))],2)}]]);Rt.vI.add(Nt.$Wj,Nt.jLD,Nt.J9Y,Nt.lXL,Nt.qmU,Nt.FKd,Nt.Acd,Nt.wn1,Nt.HLz,Nt.b7W,Nt.sqG);const Sa={components:{SearchBar:ka},data:function(){return{searchBarHidden:!0,supportsMask:window.CSS&&window.CSS.supports&&(window.CSS.supports("mask-size","contain")||window.CSS.supports("-webkit-mask-size","contain")||window.CSS.supports("-moz-mask-size","contain")||window.CSS.supports("-ms-mask-size","contain")||window.CSS.supports("-o-mask-size","contain"))}},computed:{enableMask:function(){return this.supportsMask&&this.$store.state.instance.logoMask},logoStyle:function(){return{visibility:this.enableMask?"hidden":"visible"}},logoMaskStyle:function(){return this.enableMask?{"mask-image":"url(".concat(this.$store.state.instance.logo,")")}:{"background-color":this.enableMask?"":"transparent"}},logoBgStyle:function(){return Object.assign({margin:"".concat(this.$store.state.instance.logoMargin," 0"),opacity:this.searchBarHidden?1:0},this.enableMask?{}:{"background-color":this.enableMask?"":"transparent"})},logo:function(){return this.$store.state.instance.logo},sitename:function(){return this.$store.state.instance.name},hideSitename:function(){return this.$store.state.instance.hideSitename},logoLeft:function(){return this.$store.state.instance.logoLeft},currentUser:function(){return this.$store.state.users.currentUser},privateMode:function(){return this.$store.state.instance.private}},methods:{scrollToTop:function(){window.scrollTo(0,0)},logout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout")},onSearchBarToggled:function(e){this.searchBarHidden=e},openSettingsModal:function(){this.$store.dispatch("openSettingsModal")}}},ja=(0,Lr.Z)(Sa,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("router-link"),a=(0,lr.up)("search-bar"),c=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("nav",{id:"nav",class:(0,ur.C_)(["DesktopNav",{"-logoLeft":e.logoLeft}]),onClick:t[4]||(t[4]=function(t){return e.scrollToTop()})},[(0,lr._)("div",pa,[(0,lr._)("div",ha,[e.hideSitename?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.j4)(s,{key:0,class:"site-name",to:{name:"root"},"active-class":"home"},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.sitename),1)]})),_:1}))]),(0,lr.Wm)(s,{class:"logo",to:{name:"root"},style:(0,ur.j5)(e.logoBgStyle)},{default:(0,lr.w5)((function(){return[(0,lr._)("div",{class:"mask",style:(0,ur.j5)(e.logoMaskStyle)},null,4),(0,lr._)("img",{src:e.logo,style:(0,ur.j5)(e.logoStyle)},null,12,ma)]})),_:1},8,["style"]),(0,lr._)("div",fa,[e.currentUser||!e.privateMode?((0,lr.wg)(),(0,lr.j4)(a,{key:0,onToggled:e.onSearchBarToggled,onClick:t[0]||(t[0]=(0,or.iM)((function(){}),["stop"]))},null,8,["onToggled"])):(0,lr.kq)("",!0),(0,lr._)("button",{class:"button-unstyled nav-icon",onClick:t[1]||(t[1]=function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)})},[(0,lr.Wm)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog",title:e.$t("nav.preferences")},null,8,["title"])]),e.currentUser&&"admin"===e.currentUser.role?((0,lr.wg)(),(0,lr.iD)("a",{key:1,href:"/pleroma/admin/#/login-pleroma",class:"nav-icon",target:"_blank",onClick:t[2]||(t[2]=(0,or.iM)((function(){}),["stop"]))},[(0,lr.Wm)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt",title:e.$t("nav.administration")},null,8,["title"])])):(0,lr.kq)("",!0),ga,e.currentUser?((0,lr.wg)(),(0,lr.iD)("button",{key:2,class:"button-unstyled nav-icon",onClick:t[3]||(t[3]=(0,or.iM)((function(){return e.logout&&e.logout.apply(e,arguments)}),["prevent"]))},[(0,lr.Wm)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt",title:e.$t("login.logout")},null,8,["title"])])):(0,lr.kq)("",!0)])])],2)}]]);var Oa={class:"user-reporting-panel panel"},Ca={class:"panel-heading"},Pa={class:"panel-body"},za={class:"user-reporting-panel-left"},Ia=["placeholder"],Da={key:0},xa=["disabled"],Ta={key:0,class:"alert error"},$a={class:"user-reporting-panel-right"},Ua={class:"status-fadein user-reporting-panel-sitem"},Ma=n(87482),Aa=n(83293),La=n(12061);function Ea(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const Fa={components:{Status:Ma.default,List:Aa.Z,Checkbox:oi.Z,Modal:Ft.Z,UserLink:La.Z},data:function(){return{comment:"",forward:!1,statusIdsToReport:[],processing:!1,error:!1}},computed:{reportModal:function(){return this.$store.state.reports.reportModal},isLoggedIn:function(){return!!this.$store.state.users.currentUser},isOpen:function(){return this.isLoggedIn&&this.reportModal.activated},userId:function(){return this.reportModal.userId},user:function(){return this.$store.getters.findUser(this.userId)},remoteInstance:function(){return!this.user.is_local&&this.user.screen_name.substr(this.user.screen_name.indexOf("@")+1)},statuses:function(){return this.reportModal.statuses},preTickedIds:function(){return this.reportModal.preTickedIds}},watch:{userId:"resetState",preTickedIds:function(e){this.statusIdsToReport=e}},methods:{resetState:function(){this.comment="",this.forward=!1,this.statusIdsToReport=this.preTickedIds,this.processing=!1,this.error=!1},closeModal:function(){this.$store.dispatch("closeUserReportingModal")},reportUser:function(){var e=this;this.processing=!0,this.error=!1;var t={userId:this.userId,comment:this.comment,forward:this.forward,statusIds:this.statusIdsToReport};this.$store.state.api.backendInteractor.reportUser(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ea(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ea(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t)).then((function(){e.processing=!1,e.resetState(),e.closeModal()})).catch((function(){e.processing=!1,e.error=!0}))},clearError:function(){this.error=!1},isChecked:function(e){return-1!==this.statusIdsToReport.indexOf(e)},toggleStatus:function(e,t){e!==this.isChecked(t)&&(e?this.statusIdsToReport.push(t):this.statusIdsToReport.splice(this.statusIdsToReport.indexOf(t),1))},resize:function(e){var t=e.target||e;t instanceof window.Element&&(t.style.height="auto",t.style.height="".concat(t.scrollHeight,"px"),""===t.value&&(t.style.height=null))}}},Ra=(0,Lr.Z)(Fa,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("UserLink"),a=(0,lr.up)("i18n-t"),c=(0,lr.up)("Checkbox"),l=(0,lr.up)("Status"),u=(0,lr.up)("List"),d=(0,lr.up)("Modal");return e.isOpen?((0,lr.wg)(),(0,lr.j4)(d,{key:0,onBackdropClicked:e.closeModal},{default:(0,lr.w5)((function(){return[(0,lr._)("div",Oa,[(0,lr._)("div",Ca,[(0,lr.Wm)(a,{tag:"div",keypath:"user_reporting.title",class:"title"},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(s,{user:e.user},null,8,["user"])]})),_:1})]),(0,lr._)("div",Pa,[(0,lr._)("div",za,[(0,lr._)("div",null,[(0,lr._)("p",null,(0,ur.zw)(e.$t("user_reporting.add_comment_description")),1),(0,lr.wy)((0,lr._)("textarea",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.comment=t}),class:"form-control",placeholder:e.$t("user_reporting.additional_comments"),rows:"1",onInput:t[1]||(t[1]=function(){return e.resize&&e.resize.apply(e,arguments)})},null,40,Ia),[[or.nr,e.comment]])]),e.user.is_local?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",Da,[(0,lr._)("p",null,(0,ur.zw)(e.$t("user_reporting.forward_description")),1),(0,lr.Wm)(c,{modelValue:e.forward,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.forward=t})},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("user_reporting.forward_to",[e.remoteInstance])),1)]})),_:1},8,["modelValue"])])),(0,lr._)("div",null,[(0,lr._)("button",{class:"btn button-default",disabled:e.processing,onClick:t[3]||(t[3]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,ur.zw)(e.$t("user_reporting.submit")),9,xa),e.error?((0,lr.wg)(),(0,lr.iD)("div",Ta,(0,ur.zw)(e.$t("user_reporting.generic_error")),1)):(0,lr.kq)("",!0)])]),(0,lr._)("div",$a,[(0,lr.Wm)(u,{items:e.statuses},{item:(0,lr.w5)((function(t){var n=t.item;return[(0,lr._)("div",Ua,[(0,lr.Wm)(l,{"in-conversation":!1,focused:!1,statusoid:n},null,8,["statusoid"]),(0,lr.Wm)(c,{"model-value":e.isChecked(n.id),"onUpdate:modelValue":function(t){return e.toggleStatus(t,n.id)}},null,8,["model-value","onUpdate:modelValue"])])]})),_:1},8,["items"])])])])]})),_:1},8,["onBackdropClicked"])):(0,lr.kq)("",!0)}]]);var Na={class:"edit-form-modal-panel panel"},qa={class:"panel-heading"},Za=n(7257);const Wa={components:{PostStatusForm:yo.Z,Modal:Ft.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.editStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.editStatus.params||{}}},watch:{params:function(e,t){var n=this;xt()(e,"statusId")!==xt()(t,"statusId")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{doEditStatus:function(e){var t=e.status,n=e.spoilerText,r=e.sensitive,o=e.media,i=e.contentType,s=e.poll,a={store:this.$store,statusId:this.$store.state.editStatus.params.statusId,status:t,spoilerText:n,sensitive:r,poll:s,media:o,contentType:i};return Za.Z.editStatus(a).then((function(e){return e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},closeModal:function(){this.$store.dispatch("closeEditStatusModal")}}},Ba=(0,Lr.Z)(Wa,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("PostStatusForm"),a=(0,lr.up)("Modal");return e.isFormVisible?((0,lr.wg)(),(0,lr.j4)(a,{key:0,class:"edit-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,lr.w5)((function(){return[(0,lr._)("div",Na,[(0,lr._)("div",qa,(0,ur.zw)(e.$t("post_status.edit_status")),1),(0,lr.Wm)(s,(0,lr.dG)({class:"panel-body"},e.params,{"post-handler":e.doEditStatus,"disable-polls":!0,"disable-visibility-selector":!0,onPosted:e.closeModal}),null,16,["post-handler","onPosted"])])]})),_:1},8,["onBackdropClicked"])):(0,lr.kq)("",!0)}]]);var Ha={class:"post-form-modal-panel panel"},Va={class:"panel-heading"};const Ka={components:{PostStatusForm:yo.Z,Modal:Ft.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.postStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.postStatus.params||{}}},watch:{params:function(e,t){var n=this;xt()(e,"repliedUser.id")!==xt()(t,"repliedUser.id")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{closeModal:function(){this.$store.dispatch("closePostStatusModal")}}},Ga=(0,Lr.Z)(Ka,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("PostStatusForm"),a=(0,lr.up)("Modal");return e.isLoggedIn&&!e.resettingForm?((0,lr.wg)(),(0,lr.j4)(a,{key:0,"is-open":e.modalActivated,class:"post-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,lr.w5)((function(){return[(0,lr._)("div",Ha,[(0,lr._)("div",Va,(0,ur.zw)(e.$t("post_status.new_status")),1),(0,lr.Wm)(s,(0,lr.dG)({class:"panel-body"},e.params,{onPosted:e.closeModal}),null,16,["onPosted"])])]})),_:1},8,["is-open","onBackdropClicked"])):(0,lr.kq)("",!0)}]]);var Ya={class:"status-history-modal-panel panel"},Ja={class:"panel-heading"},Qa={class:"panel-body"},Xa={key:0,class:"history-body"};const ec={components:{Modal:Ft.Z,Status:Ma.default},data:function(){return{statuses:[]}},computed:{modalActivated:function(){return this.$store.state.statusHistory.modalActivated},params:function(){return this.$store.state.statusHistory.params},statusId:function(){return this.params.id},historyCount:function(){return this.statuses.length},history:function(){return this.statuses}},watch:{params:function(e,t){var n=xt()(e,"id")!==xt()(t,"id");n&&this.resetHistory(),(n||xt()(e,"edited_at")!==xt()(t,"edited_at"))&&this.fetchStatusHistory()}},methods:{resetHistory:function(){this.statuses=[]},fetchStatusHistory:function(){var e=this;this.$store.dispatch("fetchStatusHistory",this.params).then((function(t){e.statuses=t}))},closeModal:function(){this.$store.dispatch("closeStatusHistoryModal")}}},tc=(0,Lr.Z)(ec,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("status"),a=(0,lr.up)("Modal");return e.modalActivated?((0,lr.wg)(),(0,lr.j4)(a,{key:0,class:"status-history-modal-view",onBackdropClicked:e.closeModal},{default:(0,lr.w5)((function(){return[(0,lr._)("div",Ya,[(0,lr._)("div",Ja,(0,ur.zw)(e.$t("status.status_history"))+" ("+(0,ur.zw)(e.historyCount)+") ",1),(0,lr._)("div",Qa,[e.historyCount>0?((0,lr.wg)(),(0,lr.iD)("div",Xa,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.history,(function(e){return(0,lr.wg)(),(0,lr.j4)(s,{key:e.id,statusoid:e,"is-preview":!0,class:"conversation-status status-fadein panel-body"},null,8,["statusoid"])})),128))])):(0,lr.kq)("",!0)])])]})),_:1},8,["onBackdropClicked"])):(0,lr.kq)("",!0)}]]);var nc={class:"global-notice-list"},rc={class:"notice-message"},oc=["onClick"];Rt.vI.add(Nt.NBC);const ic={computed:{notices:function(){return this.$store.state.interface.globalNotices}},methods:{closeNotice:function(e){this.$store.dispatch("removeGlobalNotice",e)}}},sc=(0,Lr.Z)(ic,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",nc,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.notices,(function(t,n){return(0,lr.wg)(),(0,lr.iD)("div",{key:n,class:(0,ur.C_)(["alert global-notice",(0,d.Z)({},"global-"+t.level,!0)])},[(0,lr._)("div",rc,(0,ur.zw)(e.$t(t.messageKey,t.messageArgs)),1),(0,lr._)("button",{class:"button-unstyled close-notice",onClick:function(n){return e.closeNotice(t)}},[(0,lr.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,oc)],2)})),128))])}]]);function ac(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const cc={name:"app",components:{UserPanel:jo,NavPanel:ci,Notifications:(0,lr.RC)((function(){return Promise.resolve().then(n.bind(n,2302))})),InstanceSpecificPanel:mi,FeaturesPanel:Pi,WhoToFollowPanel:Ni,ShoutPanel:ns,MediaModal:Ds,SideDrawer:qs,MobilePostStatusButton:Ks,MobileNav:da,DesktopNav:ja,SettingsModal:(0,lr.RC)((function(){return n.e(1325).then(n.bind(n,51325))})),UpdateNotification:(0,lr.RC)((function(){return n.e(6464).then(n.bind(n,16464))})),UserReportingModal:Ra,PostStatusModal:Ga,EditStatusModal:Ba,StatusHistoryModal:tc,GlobalNoticeList:sc},data:function(){return{mobileActivePanel:"timeline"}},created:function(){var e=this.$store.getters.mergedConfig.interfaceLanguage;this.$store.dispatch("setOption",{name:"interfaceLanguage",value:e}),window.addEventListener("resize",this.updateMobileState)},unmounted:function(){window.removeEventListener("resize",this.updateMobileState)},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ac(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ac(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classes:function(){return[{"-reverse":this.reverseLayout,"-no-sticky-headers":this.noSticky,"-has-new-post-button":this.newPostButtonShown},"-"+this.layoutType]},navClasses:function(){var e=this.$store.getters.mergedConfig.navbarColumnStretch;return["-"+this.layoutType].concat((0,u.Z)(e?["-column-stretch"]:[]))},currentUser:function(){return this.$store.state.users.currentUser},userBackground:function(){return this.currentUser.background_image},instanceBackground:function(){return this.mergedConfig.hideInstanceWallpaper?null:this.$store.state.instance.background},background:function(){return this.userBackground||this.instanceBackground},bgStyle:function(){if(this.background)return{"--body-background-image":"url(".concat(this.background,")")}},shout:function(){return this.$store.state.shout.joined},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent},isChats:function(){return"chat"===this.$route.name||"chats"===this.$route.name},isListEdit:function(){return"lists-edit"===this.$route.name},newPostButtonShown:function(){return!this.isChats&&!this.isListEdit&&(this.$store.getters.mergedConfig.alwaysShowNewPostButton||"mobile"===this.layoutType)},showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},editingAvailable:function(){return this.$store.state.instance.editingAvailable},shoutboxPosition:function(){return this.$store.getters.mergedConfig.alwaysShowNewPostButton||!1},hideShoutbox:function(){return this.$store.getters.mergedConfig.hideShoutbox},layoutType:function(){return this.$store.state.interface.layoutType},privateMode:function(){return this.$store.state.instance.private},reverseLayout:function(){var e=this.$store.getters.mergedConfig,t=e.thirdColumnMode,n=e.sidebarRight;return"wide"!==this.layoutType||"notifications"===t?n:!n},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders},showScrollbars:function(){return this.$store.getters.mergedConfig.showScrollbars}},(0,s.Se)(["mergedConfig"])),methods:{updateMobileState:function(){this.$store.dispatch("setLayoutWidth",Ue()),this.$store.dispatch("setLayoutHeight",Me())}}},lc=(0,Lr.Z)(cc,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("MobileNav"),a=(0,lr.up)("DesktopNav"),c=(0,lr.up)("Notifications"),l=(0,lr.up)("user-panel"),u=(0,lr.up)("nav-panel"),d=(0,lr.up)("instance-specific-panel"),p=(0,lr.up)("features-panel"),h=(0,lr.up)("who-to-follow-panel"),m=(0,lr.up)("router-link"),f=(0,lr.up)("router-view"),g=(0,lr.up)("MediaModal"),v=(0,lr.up)("shout-panel"),w=(0,lr.up)("MobilePostStatusButton"),b=(0,lr.up)("UserReportingModal"),y=(0,lr.up)("PostStatusModal"),_=(0,lr.up)("EditStatusModal"),k=(0,lr.up)("StatusHistoryModal"),S=(0,lr.up)("SettingsModal"),j=(0,lr.up)("UpdateNotification"),O=(0,lr.up)("GlobalNoticeList");return(0,lr.wg)(),(0,lr.iD)("div",{id:"app-loaded",style:(0,ur.j5)(e.bgStyle)},[dr,"mobile"===e.layoutType?((0,lr.wg)(),(0,lr.j4)(s,{key:0})):((0,lr.wg)(),(0,lr.j4)(a,{key:1,class:(0,ur.C_)(e.navClasses)},null,8,["class"])),e.currentUser?((0,lr.wg)(),(0,lr.j4)(c,{key:2})):(0,lr.kq)("",!0),(0,lr._)("div",{id:"content",class:(0,ur.C_)(["app-layout container",e.classes])},[pr,(0,lr._)("div",{id:"sidebar",class:(0,ur.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},[(0,lr.Wm)(l),"mobile"!==e.layoutType?((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:0},[(0,lr.Wm)(u),e.showInstanceSpecificPanel?((0,lr.wg)(),(0,lr.j4)(d,{key:0})):(0,lr.kq)("",!0),!e.currentUser&&e.showFeaturesPanel?((0,lr.wg)(),(0,lr.j4)(p,{key:1})):(0,lr.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,lr.wg)(),(0,lr.j4)(h,{key:2})):(0,lr.kq)("",!0),hr],64)):(0,lr.kq)("",!0)],2),(0,lr._)("main",{id:"main-scroller",class:(0,ur.C_)(["column main",{"-full-height":e.isChats||e.isListEdit}])},[e.currentUser?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",mr,[(0,lr.Wm)(m,{to:{name:"login"},class:"panel-body"},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("login.hint")),1)]})),_:1})])),(0,lr.Wm)(f)],2),(0,lr._)("div",{id:"notifs-column",class:(0,ur.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},null,2)],2),(0,lr.Wm)(g),e.currentUser&&e.shout&&!e.hideShoutbox?((0,lr.wg)(),(0,lr.j4)(v,{key:3,floating:!0,class:(0,ur.C_)(["floating-shout mobile-hidden",{"-left":e.shoutboxPosition}])},null,8,["class"])):(0,lr.kq)("",!0),(0,lr.Wm)(w),(0,lr.Wm)(b),(0,lr.Wm)(y),e.editingAvailable?((0,lr.wg)(),(0,lr.j4)(_,{key:4})):(0,lr.kq)("",!0),e.editingAvailable?((0,lr.wg)(),(0,lr.j4)(k,{key:5})):(0,lr.kq)("",!0),(0,lr.Wm)(S),(0,lr.Wm)(j),fr,(0,lr.Wm)(O)],4)}]]);var uc={key:1,class:"rightside-button"},dc=["title"],pc={key:0,class:"rightside-button"},hc=["title"],mc={class:"alert-badge"},fc=["title"],gc={ref:"timeline",class:"timeline",role:"feed"},vc={key:0,class:"new-status-notification text-center faint"},wc={key:1,class:"new-status-notification text-center faint"},bc={class:"new-status-notification text-center"},yc={key:3,class:"new-status-notification text-center"},_c=n(24350),kc=n.n(_c),Sc=n(23493),jc=n.n(Sc),Oc={key:0,class:"panel-heading conversation-heading -sticky"},Cc={class:"title"},Pc={class:"conversation-body panel-body"},zc={key:0,class:"thread-body"},Ic={key:0,class:"conversation-dive-to-top-level-box"},Dc={key:1,class:"thread-ancestors"},xc={key:0,class:"thread-ancestor-dive-box"},Tc={class:"thread-ancestor-dive-box-inner"},$c={key:1,class:"thread-body"},Uc=n(66678),Mc=n.n(Uc),Ac={class:"thread-tree"},Lc={key:0,class:"thread-tree-replies"},Ec={key:1,class:"thread-tree-replies thread-tree-replies-hidden"};Rt.vI.add(Nt.Sbq,Nt.cLY);const Fc={components:{Status:Ma.default},name:"ThreadTree",props:{depth:Number,status:Object,inProfile:Boolean,conversation:Array,collapsable:Boolean,isExpanded:Boolean,pinnedStatusIdsObject:Object,profileUserId:String,focused:Function,highlight:String,getReplies:Function,setHighlight:Function,toggleExpanded:Function,simple:Boolean,toggleThreadDisplay:Function,threadDisplayStatus:Object,showThreadRecursively:Function,totalReplyCount:Object,totalReplyDepth:Object,statusContentProperties:Object,setStatusContentProperty:Function,toggleStatusContentProperty:Function,dive:Function},computed:{suspendable:function(){var e=!this.$refs.statusComponent||this.$refs.statusComponent.suspendable;return this.$refs.childComponent?e&&this.$refs.childComponent.every((function(e){return e.suspendable})):e},reverseLookupTable:function(){return this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{})},currentReplies:function(){var e=this;return this.getReplies(this.status.id).map((function(t){var n=t.id;return e.statusById(n)}))},threadShowing:function(){return"showing"===this.threadDisplayStatus[this.status.id]},currentProp:function(){return this.statusContentProperties[this.status.id]}},methods:{statusById:function(e){return this.conversation[this.reverseLookupTable[e]]},collapseThread:function(){},showThread:function(){},showAllSubthreads:function(){},toggleCurrentProp:function(e){this.toggleStatusContentProperty(this.status.id,e)},setCurrentProp:function(e,t){this.setStatusContentProperty(this.status.id,e)}}},Rc=(0,Lr.Z)(Fc,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("status"),a=(0,lr.up)("thread-tree"),c=(0,lr.up)("FAIcon"),l=(0,lr.up)("i18n-t");return(0,lr.wg)(),(0,lr.iD)("article",Ac,[((0,lr.wg)(),(0,lr.j4)(s,{key:e.status.id,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:e.status,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[e.status.id],focused:e.focused(e.status.id),"in-conversation":e.isExpanded,highlight:e.highlight,replies:e.getReplies(e.status.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status conversation-status-treeview status-fadein panel-body","simple-tree":e.simple,"controlled-thread-display-status":e.threadDisplayStatus[e.status.id],"controlled-toggle-thread-display":function(){return e.toggleThreadDisplay(e.status.id)},"controlled-showing-tall":e.currentProp.showingTall,"controlled-expanding-subject":e.currentProp.expandingSubject,"controlled-showing-long-subject":e.currentProp.showingLongSubject,"controlled-replying":e.currentProp.replying,"controlled-media-playing":e.currentProp.mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleCurrentProp("showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleCurrentProp("expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleCurrentProp("showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleCurrentProp("replying")},"controlled-set-media-playing":function(t){return e.setCurrentProp("mediaPlaying",t)},dive:e.dive?function(){return e.dive(e.status.id)}:void 0,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","controlled-thread-display-status","controlled-toggle-thread-display","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","dive","onGoto","onToggleExpanded"])),e.currentReplies.length&&e.threadShowing?((0,lr.wg)(),(0,lr.iD)("div",Lc,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.currentReplies,(function(t){return(0,lr.wg)(),(0,lr.j4)(a,{key:t.id,ref_for:!0,ref:"childComponent",depth:e.depth+1,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.highlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.simple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.dive},null,8,["depth","status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,lr.kq)("",!0),e.currentReplies.length&&!e.threadShowing?((0,lr.wg)(),(0,lr.iD)("div",Ec,[e.simple?((0,lr.wg)(),(0,lr.j4)(l,{key:0,scope:"global",tag:"button",keypath:"status.thread_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[0]||(t[0]=(0,or.iM)((function(t){return e.dive(e.status.id)}),["prevent"]))},{icon:(0,lr.w5)((function(){return[(0,lr.Wm)(c,{icon:"angle-double-right"})]})),text:(0,lr.w5)((function(){return[(0,lr._)("span",null,(0,ur.zw)(e.$tc("status.thread_follow",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id]})),1)]})),_:1})):((0,lr.wg)(),(0,lr.j4)(l,{key:1,scope:"global",tag:"button",keypath:"status.thread_show_full_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[1]||(t[1]=(0,or.iM)((function(t){return e.showThreadRecursively(e.status.id)}),["prevent"]))},{icon:(0,lr.w5)((function(){return[(0,lr.Wm)(c,{icon:"angle-double-down"})]})),text:(0,lr.w5)((function(){return[(0,lr._)("span",null,(0,ur.zw)(e.$tc("status.thread_show_full",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id],depth:e.totalReplyDepth[e.status.id]})),1)]})),_:1}))])):(0,lr.kq)("",!0)])}]]);var Nc={class:"dropdown-menu"},qc={key:0},Zc={key:3,role:"separator",class:"dropdown-divider"},Wc=n(49874);function Bc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Hc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Bc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.G_j,Nt.yGG,Nt.klh);const Vc={props:{conversation:Boolean},components:{Popover:Wc.default},methods:{setReplyVisibility:function(e){this.$store.dispatch("setOption",{name:"replyVisibility",value:e}),this.$store.dispatch("queueFlushAll")},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:Hc(Hc({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},replyVisibilitySelf:{get:function(){return"self"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("self")}},replyVisibilityFollowing:{get:function(){return"following"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("following")}},replyVisibilityAll:{get:function(){return"all"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("all")}},hideMedia:{get:function(){return this.mergedConfig.hideAttachments||this.mergedConfig.hideAttachmentsInConv},set:function(){var e=!this.hideMedia;this.$store.dispatch("setOption",{name:"hideAttachments",value:e}),this.$store.dispatch("setOption",{name:"hideAttachmentsInConv",value:e})}},hideMutedPosts:{get:function(){return this.mergedConfig.hideFilteredStatuses},set:function(){var e=!this.hideMutedPosts;this.$store.dispatch("setOption",{name:"hideFilteredStatuses",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},Kc=(0,Lr.Z)(Vc,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("Popover");return(0,lr.wg)(),(0,lr.j4)(a,{trigger:"click",class:"QuickFilterSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_filter_settings")}},{content:(0,lr.w5)((function(){return[(0,lr._)("div",Nc,[e.loggedIn?((0,lr.wg)(),(0,lr.iD)("div",qc,[e.conversation?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(t){return e.replyVisibilityAll=!0})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityAll}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.reply_visibility_all")),1)])),e.conversation?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(t){return e.replyVisibilityFollowing=!0})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityFollowing}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.reply_visibility_following_short")),1)])),e.conversation?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(t){return e.replyVisibilitySelf=!0})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilitySelf}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.reply_visibility_self_short")),1)])),e.conversation?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",Zc))])):(0,lr.kq)("",!0),(0,lr._)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(t){return e.muteBotStatuses=!e.muteBotStatuses})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox",{"menu-checkbox-checked":e.muteBotStatuses}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.mute_bot_posts")),1)]),(0,lr._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(t){return e.hideMedia=!e.hideMedia})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMedia}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.hide_media_previews")),1)]),(0,lr._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(t){return e.hideMutedPosts=!e.hideMutedPosts})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMutedPosts}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.hide_all_muted_posts")),1)]),(0,lr._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[6]||(t[6]=function(t){return e.openTab("filtering")})},[(0,lr.Wm)(s,{icon:"font"}),(0,lr.Uk)((0,ur.zw)(e.$t("settings.word_filter_and_more")),1)])])]})),trigger:(0,lr.w5)((function(){return[(0,lr.Wm)(s,{icon:"filter"})]})),_:1},8,["trigger-attrs"])}]]);var Gc={class:"dropdown-menu"},Yc=(0,lr._)("div",{role:"separator",class:"dropdown-divider"},null,-1);function Jc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Qc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.Zrf,Nt.lCn,Nt.xiG,Nt.klh);const Xc={props:{conversation:Boolean},components:{Popover:Wc.default},methods:{setConversationDisplay:function(e){this.$store.dispatch("setOption",{name:"conversationDisplay",value:e})},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:Qc(Qc({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},conversationDisplay:{get:function(){return this.mergedConfig.conversationDisplay},set:function(e){this.setConversationDisplay(e)}},autoUpdate:{get:function(){return this.mergedConfig.streaming},set:function(){var e=!this.autoUpdate;this.$store.dispatch("setOption",{name:"streaming",value:e})}},collapseWithSubjects:{get:function(){return this.mergedConfig.collapseMessageWithSubject},set:function(){var e=!this.collapseWithSubjects;this.$store.dispatch("setOption",{name:"collapseMessageWithSubject",value:e})}},showUserAvatars:{get:function(){return this.mergedConfig.mentionLinkShowAvatar},set:function(){var e=!this.showUserAvatars;console.log(e),this.$store.dispatch("setOption",{name:"mentionLinkShowAvatar",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},el=(0,Lr.Z)(Xc,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("Popover");return(0,lr.wg)(),(0,lr.j4)(a,{trigger:"click",class:"QuickViewSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_view_settings")}},{content:(0,lr.w5)((function(){return[(0,lr._)("div",Gc,[(0,lr._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(t){return e.conversationDisplay="tree"})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"tree"===e.conversationDisplay}])},null,2),(0,lr.Wm)(s,{icon:"folder-tree"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("settings.conversation_display_tree_quick")),1)]),(0,lr._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(t){return e.conversationDisplay="linear"})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"linear"===e.conversationDisplay}])},null,2),(0,lr.Wm)(s,{icon:"list"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("settings.conversation_display_linear_quick")),1)]),Yc,(0,lr._)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(t){return e.showUserAvatars=!e.showUserAvatars})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox",{"menu-checkbox-checked":e.showUserAvatars}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.mention_link_show_avatar_quick")),1)]),e.conversation?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(t){return e.autoUpdate=!e.autoUpdate})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox",{"menu-checkbox-checked":e.autoUpdate}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.auto_update")),1)])),e.conversation?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(t){return e.collapseWithSubjects=!e.collapseWithSubjects})},[(0,lr._)("span",{class:(0,ur.C_)(["menu-checkbox",{"menu-checkbox-checked":e.collapseWithSubjects}])},null,2),(0,lr.Uk)((0,ur.zw)(e.$t("settings.collapse_subject")),1)])),(0,lr._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[5]||(t[5]=function(t){return e.openTab("general")})},[(0,lr.Wm)(s,{icon:"wrench"}),(0,lr.Uk)((0,ur.zw)(e.$t("settings.more_settings")),1)])])]})),trigger:(0,lr.w5)((function(){return[(0,lr.Wm)(s,{icon:"bars"})]})),_:1},8,["trigger-attrs"])}]]);function tl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.Sbq,Nt.UXu,Nt.A35);var rl=function(e,t){var n="retweet"===e.type?e.retweeted_status.id:e.id,r="retweet"===t.type?t.retweeted_status.id:t.id,o=Number(n),i=Number(r),s=!Number.isNaN(o),a=!Number.isNaN(i);return s&&a?o<i?-1:1:s&&!a?-1:!s&&a?1:n<r?-1:1};const ol={data:function(){return{highlight:null,expanded:!1,threadDisplayStatusObject:{},statusContentPropertiesObject:{},inlineDivePosition:null}},props:["statusId","collapsable","isPage","pinnedStatusIdsObject","inProfile","profileUserId","virtualHidden"],created:function(){this.isPage&&this.fetchConversation()},computed:nl(nl({maxDepthToShowByDefault:function(){var e=this.$store.getters.mergedConfig.maxDepthInThread-2;return e>=1?e:1},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===m._z.JOINED},displayStyle:function(){return this.$store.getters.mergedConfig.conversationDisplay},isTreeView:function(){return!this.isLinearView},treeViewIsSimple:function(){return!this.$store.getters.mergedConfig.conversationTreeAdvanced},isLinearView:function(){return"linear"===this.displayStyle},shouldFadeAncestors:function(){return this.$store.getters.mergedConfig.conversationTreeFadeAncestors},otherRepliesButtonPosition:function(){return this.$store.getters.mergedConfig.conversationOtherRepliesButton},showOtherRepliesButtonBelowStatus:function(){return"below"===this.otherRepliesButtonPosition},showOtherRepliesButtonInsideStatus:function(){return"inside"===this.otherRepliesButtonPosition},suspendable:function(){return this.isTreeView?Object.entries(this.statusContentProperties).every((function(e){var t=(0,l.Z)(e,2),n=(t[0],t[1]);return!n.replying&&0===n.mediaPlaying.length})):!this.$refs.statusComponent||!this.$refs.statusComponent[0]||this.$refs.statusComponent.every((function(e){return e.suspendable}))},hideStatus:function(){return this.virtualHidden&&this.suspendable},status:function(){return this.$store.state.statuses.allStatusesObject[this.statusId]},originalStatusId:function(){return this.status.retweeted_status?this.status.retweeted_status.id:this.statusId},conversationId:function(){return this.getConversationId(this.statusId)},conversation:function(){if(!this.status)return[];if(!this.isExpanded)return[this.status];var e=Mc()(this.$store.state.statuses.conversationsObject[this.conversationId]),t=N()(e,{id:this.originalStatusId});return-1!==t&&(e[t]=this.status),function(e,t){return(e="retweet"===t.type?bn()(e,(function(e){return"retweet"===e.type||e.id!==t.retweeted_status.id})):bn()(e,(function(e){return"retweet"!==e.type}))).filter((function(e){return e})).sort(rl)}(e,this.status)},statusMap:function(){return this.conversation.reduce((function(e,t){return e[t.id]=t,e}),{})},threadTree:function(){var e=this,t=this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{}),n=function n(r,o){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return o.map((function(o){return s[o]?[]:(s[o]=!0,[{status:e.conversation[t[o]],id:o,depth:i},n(r,r[o],i+1,s)].reduce((function(e,t){return e.concat(t)}),[]))})).reduce((function(e,t){return e.concat(t)}),[])}(this.conversation.reduce((function(t,n){var r=n.id;return t.forest[r]=e.getReplies(r).map((function(e){return e.id})),t}),{forest:{}}).forest,this.topLevel.map((function(e){return e.id})));return n},replyIds:function(){var e=this;return this.conversation.map((function(e){return e.id})).reduce((function(t,n){return t[n]=(e.replies[n]||[]).map((function(e){return e.id})),t}),{})},totalReplyCount:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(r){return t[r]||(t[r]=1+e.replyIds[r].map((function(e){return n(e)})).reduce((function(e,t){return e+t}),0)),t[r]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},totalReplyDepth:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(r){return t[r]||(t[r]=1+e.replyIds[r].map((function(e){return n(e)})).reduce((function(e,t){return e>t?e:t}),0)),t[r]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},depths:function(){return this.threadTree.reduce((function(e,t){return e[t.id]=t.depth,e}),{})},topLevel:function(){var e=this;return this.conversation.reduce((function(t,n){return t.filter((function(t){return-1===e.getReplies(n.id).map((function(e){return e.id})).indexOf(t.id)}))}),this.conversation)},otherTopLevelCount:function(){return this.topLevel.length-1},showingTopLevel:function(){return this.canDive&&this.diveRoot?[this.statusMap[this.diveRoot]]:this.topLevel},diveRoot:function(){var e=this.inlineDivePosition||this.statusId;return this.parentOf(e)?e:null},diveDepth:function(){return this.canDive&&this.diveRoot?this.depths[this.diveRoot]:0},diveMode:function(){return this.canDive&&!!this.diveRoot},shouldShowAllConversationButton:function(){return this.isTreeView&&this.isExpanded&&this.diveMode&&this.topLevel.length>1},shouldShowAncestors:function(){return this.isTreeView&&this.isExpanded&&this.ancestorsOf(this.diveRoot).length},replies:function(){var e=1;return Le()(this.conversation,(function(t,n){var r=n.id,o=n.in_reply_to_status_id;return o&&(t[o]=t[o]||[],t[o].push({name:"#".concat(e),id:r})),e++,t}),{})},isExpanded:function(){return!(!this.expanded&&!this.isPage)},hiddenStyle:function(){var e=this.status&&this.status.virtualHeight||"120px";return this.virtualHidden?{height:e}:{}},threadDisplayStatus:function(){var e=this;return this.conversation.reduce((function(t,n){var r=n.id,o=e.depths[r],i=e.threadDisplayStatusObject[r]?e.threadDisplayStatusObject[r]:o-e.diveDepth<=e.maxDepthToShowByDefault?"showing":"hidden";return t[r]=i,t}),{})},statusContentProperties:function(){var e=this;return this.conversation.reduce((function(t,n){var r,o=n.id,i=(r={showingTall:!1,expandingSubject:!1,showingLongSubject:!1,isReplying:!1,mediaPlaying:[]},e.statusContentPropertiesObject[o]?nl(nl({},r),e.statusContentPropertiesObject[o]):r);return t[o]=i,t}),{})},canDive:function(){return this.isTreeView&&this.isExpanded},focused:function(){var e=this;return function(t){return e.isExpanded&&t===e.highlight}},maybeHighlight:function(){return this.isExpanded?this.highlight:null}},(0,s.Se)(["mergedConfig"])),(0,s.rn)({mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus}})),components:{Status:Ma.default,ThreadTree:Rc,QuickFilterSettings:Kc,QuickViewSettings:el},watch:{statusId:function(e,t){var n=this.getConversationId(e),r=this.getConversationId(t);n&&r&&n===r?this.setHighlight(this.originalStatusId):this.fetchConversation()},expanded:function(e){e?this.fetchConversation():this.resetDisplayState()},virtualHidden:function(e){this.$store.dispatch("setVirtualHeight",{statusId:this.statusId,height:"".concat(this.$el.clientHeight,"px")})}},methods:{fetchConversation:function(){var e=this;this.status?this.$store.state.api.backendInteractor.fetchConversation({id:this.statusId}).then((function(t){var n=t.ancestors,r=t.descendants;e.$store.dispatch("addNewStatuses",{statuses:n}),e.$store.dispatch("addNewStatuses",{statuses:r}),e.setHighlight(e.originalStatusId)})):this.$store.state.api.backendInteractor.fetchStatus({id:this.statusId}).then((function(t){e.$store.dispatch("addNewStatuses",{statuses:[t]}),e.fetchConversation()}))},getReplies:function(e){return this.replies[e]||[]},getHighlight:function(){return this.isExpanded?this.highlight:null},setHighlight:function(e){e&&(this.highlight=e,this.streamingEnabled||this.$store.dispatch("fetchStatus",e),this.$store.dispatch("fetchFavsAndRepeats",e),this.$store.dispatch("fetchEmojiReactionsBy",e))},toggleExpanded:function(){this.expanded=!this.expanded},getConversationId:function(e){var t=this.$store.state.statuses.allStatusesObject[e];return xt()(t,"retweeted_status.statusnet_conversation_id",xt()(t,"statusnet_conversation_id"))},setThreadDisplay:function(e,t){this.threadDisplayStatusObject=nl(nl({},this.threadDisplayStatusObject),{},(0,d.Z)({},e,t))},toggleThreadDisplay:function(e){var t="showing"===this.threadDisplayStatus[e]?"hidden":"showing";this.setThreadDisplay(e,t)},setThreadDisplayRecursively:function(e,t){var n=this;this.setThreadDisplay(e,t),this.getReplies(e).map((function(e){return e.id})).map((function(e){return n.setThreadDisplayRecursively(e,t)}))},showThreadRecursively:function(e){this.setThreadDisplayRecursively(e,"showing")},setStatusContentProperty:function(e,t,n){this.statusContentPropertiesObject=nl(nl({},this.statusContentPropertiesObject),{},(0,d.Z)({},e,nl(nl({},this.statusContentPropertiesObject[e]),{},(0,d.Z)({},t,n))))},toggleStatusContentProperty:function(e,t){this.setStatusContentProperty(e,t,!this.statusContentProperties[e][t])},leastVisibleAncestor:function(e){for(var t=e,n=this.parentOf(t);t;){if("showing"===this.threadDisplayStatus[n])return t;n=this.parentOf(n),t=this.parentOf(t)}return this.topLevel[0]?this.topLevel[0].id:void 0},diveIntoStatus:function(e,t){this.tryScrollTo(e)},diveToTopLevel:function(){this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot)||this.topLevel[0].id)},undive:function(){this.inlineDivePosition=null,this.setHighlight(this.statusId)},tryScrollTo:function(e){var t=this;e&&(this.isPage?this.$router.push({name:"conversation",params:{id:e}}):this.inlineDivePosition=e,this.$nextTick((function(){t.setHighlight(e)})))},goToCurrent:function(){this.tryScrollTo(this.diveRoot||this.topLevel[0].id)},statusById:function(e){return this.statusMap[e]},parentOf:function(e){var t=this.statusById(e);if(t){var n=t.in_reply_to_status_id;if(this.statusMap[n])return n}},parentOrSelf:function(e){return this.parentOf(e)||e},ancestorsOf:function(e){for(var t=[],n=this.parentOf(e);n;)t.unshift(this.statusMap[n]),n=this.parentOf(n);return t},topLevelAncestorOrSelfId:function(e){for(var t=e,n=this.parentOf(e);n;)t=this.parentOf(t),n=this.parentOf(n);return t},resetDisplayState:function(){this.undive(),this.threadDisplayStatusObject={}}}},il=(0,Lr.Z)(ol,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("QuickFilterSettings"),a=(0,lr.up)("QuickViewSettings"),c=(0,lr.up)("FAIcon"),l=(0,lr.up)("i18n-t"),u=(0,lr.up)("status"),d=(0,lr.up)("thread-tree");return e.hideStatus?((0,lr.wg)(),(0,lr.iD)("div",{key:1,style:(0,ur.j5)(e.hiddenStyle)},null,4)):((0,lr.wg)(),(0,lr.iD)("div",{key:0,style:(0,ur.j5)(e.hiddenStyle),class:(0,ur.C_)(["Conversation",{"-expanded":e.isExpanded,panel:e.isExpanded}])},[e.isExpanded?((0,lr.wg)(),(0,lr.iD)("div",Oc,[(0,lr._)("span",Cc,(0,ur.zw)(e.$t("timeline.conversation")),1),e.collapsable?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"button-unstyled -link",onClick:t[0]||(t[0]=(0,or.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},(0,ur.zw)(e.$t("timeline.collapse")),1)):(0,lr.kq)("",!0),e.collapsable?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.j4)(s,{key:1,conversation:!0,class:"rightside-button"})),e.collapsable?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.j4)(a,{key:2,conversation:!0,class:"rightside-button"}))])):(0,lr.kq)("",!0),(0,lr._)("div",Pc,[e.isTreeView?((0,lr.wg)(),(0,lr.iD)("div",zc,[e.shouldShowAllConversationButton?((0,lr.wg)(),(0,lr.iD)("div",Ic,[(0,lr.Wm)(l,{keypath:"status.show_all_conversation_with_icon",tag:"button",class:"button-unstyled -link",scope:"global",onClick:(0,or.iM)(e.diveToTopLevel,["prevent"])},{icon:(0,lr.w5)((function(){return[(0,lr.Wm)(c,{icon:"angle-double-left"})]})),text:(0,lr.w5)((function(){return[(0,lr._)("span",null,(0,ur.zw)(e.$tc("status.show_all_conversation",e.otherTopLevelCount,{numStatus:e.otherTopLevelCount})),1)]})),_:1},8,["onClick"])])):(0,lr.kq)("",!0),e.shouldShowAncestors?((0,lr.wg)(),(0,lr.iD)("div",Dc,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.ancestorsOf(e.diveRoot),(function(t){return(0,lr.wg)(),(0,lr.iD)("article",{key:t.id,class:(0,ur.C_)(["thread-ancestor",{"thread-ancestor-has-other-replies":e.getReplies(t.id).length>1,"-faded":e.shouldFadeAncestors}])},[(0,lr.Wm)(u,{ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","simple-tree":e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"show-other-replies-as-button":e.showOtherRepliesButtonInsideStatus,dive:function(){return e.diveIntoStatus(t.id)},"controlled-showing-tall":e.statusContentProperties[t.id].showingTall,"controlled-expanding-subject":e.statusContentProperties[t.id].expandingSubject,"controlled-showing-long-subject":e.statusContentProperties[t.id].showingLongSubject,"controlled-replying":e.statusContentProperties[t.id].replying,"controlled-media-playing":e.statusContentProperties[t.id].mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleStatusContentProperty(t.id,"showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleStatusContentProperty(t.id,"expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleStatusContentProperty(t.id,"showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleStatusContentProperty(t.id,"replying")},"controlled-set-media-playing":function(n){return e.toggleStatusContentProperty(t.id,"mediaPlaying",n)},onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","show-other-replies-as-button","dive","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","onGoto","onToggleExpanded"]),e.showOtherRepliesButtonBelowStatus&&e.getReplies(t.id).length>1?((0,lr.wg)(),(0,lr.iD)("div",xc,[(0,lr._)("div",Tc,[(0,lr.Wm)(l,{tag:"button",scope:"global",keypath:"status.ancestor_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:(0,or.iM)((function(n){return e.diveIntoStatus(t.id)}),["prevent"])},{icon:(0,lr.w5)((function(){return[(0,lr.Wm)(c,{icon:"angle-double-right"})]})),text:(0,lr.w5)((function(){return[(0,lr._)("span",null,(0,ur.zw)(e.$tc("status.ancestor_follow",e.getReplies(t.id).length-1,{numReplies:e.getReplies(t.id).length-1})),1)]})),_:2},1032,["onClick"])])])):(0,lr.kq)("",!0)],2)})),128))])):(0,lr.kq)("",!0),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.showingTopLevel,(function(t){return(0,lr.wg)(),(0,lr.j4)(d,{key:t.id,ref_for:!0,ref:"statusComponent",depth:0,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.maybeHighlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.canDive?e.diveIntoStatus:void 0},null,8,["status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,lr.kq)("",!0),e.isLinearView?((0,lr.wg)(),(0,lr.iD)("div",$c,[(0,lr._)("article",null,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.conversation,(function(t){return(0,lr.wg)(),(0,lr.j4)(u,{key:t.id,ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","onGoto","onToggleExpanded"])})),128))])])):(0,lr.kq)("",!0)])],6))}]]);var sl={key:1},al={class:"button-unstyled title timeline-menu-title"},cl={class:"timeline-title"};function ll(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ul(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ll(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ll(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.ptq);const dl={components:{Popover:Wc.default,NavigationEntry:Wo,ListsMenuContent:Ko},data:function(){return{isOpen:!1}},created:function(){({friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"})[this.$route.name]&&this.$store.dispatch("setLastTimeline",this.$route.name)},computed:ul(ul({useListsMenu:function(){return"lists-timeline"===this.$route.name}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}})),{},{timelinesList:function(){return Bo(Object.entries(Eo).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return ul(ul({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}}),methods:{openMenu:function(){var e=this;setTimeout((function(){e.isOpen=!0}),25)},blockOpen:function(e){this.isOpen||e.stopPropagation()},timelineName:function(){var e=this.$route.name;if("tag-timeline"===e)return"#"+this.$route.params.tag;if("lists-timeline"===e)return this.$store.getters.findListTitle(this.$route.params.id);var t={friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"}[this.$route.name];return t?this.$t(t):e}}},pl=(0,Lr.Z)(dl,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("ListsMenuContent"),a=(0,lr.up)("NavigationEntry"),c=(0,lr.up)("FAIcon"),l=(0,lr.up)("Popover");return(0,lr.wg)(),(0,lr.j4)(l,{trigger:"click",class:(0,ur.C_)(["TimelineMenu",{open:e.isOpen}]),"bound-to":{x:"container"},"bound-to-selector":".Timeline","popover-class":"timeline-menu-popover popover-default",onShow:e.openMenu,onClose:t[1]||(t[1]=function(){return e.isOpen=!1})},{content:(0,lr.w5)((function(){return[e.useListsMenu?((0,lr.wg)(),(0,lr.j4)(s,{key:0,"show-pin":!1,class:"timelines"})):((0,lr.wg)(),(0,lr.iD)("ul",sl,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.timelinesList,(function(e){return(0,lr.wg)(),(0,lr.j4)(a,{key:e.name,"show-pin":!1,item:e},null,8,["item"])})),128))]))]})),trigger:(0,lr.w5)((function(){return[(0,lr._)("span",al,[(0,lr._)("span",cl,(0,ur.zw)(e.timelineName()),1),(0,lr._)("span",null,[(0,lr.Wm)(c,{size:"sm",icon:"chevron-down"})]),(0,lr._)("span",{class:"click-blocker",onClick:t[0]||(t[0]=function(){return e.blockOpen&&e.blockOpen.apply(e,arguments)})})])]})),_:1},8,["class","onShow"])}]]);function hl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}Rt.vI.add(Nt.IJ7,Nt.b7W,Nt.Kl4,Nt.FPD,Nt.EQ8,Nt.LEp);var ml={props:["timeline","timelineName","title","userId","listId","tag","embedded","count","pinnedStatusIds","inProfile","footerSlipgate"],data:function(){return{showScrollTop:!1,paused:!1,unfocused:!1,bottomedOut:!1,virtualScrollIndex:0,blockingClicks:!1}},components:{Status:Ma.default,Conversation:il,TimelineMenu:pl,QuickFilterSettings:Kc,QuickViewSettings:el},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({filteredVisibleStatuses:function(){var e=this;return this.timeline.visibleStatuses.filter((function(t){return"user"!==e.timelineName||t.id>=e.timeline.minId&&t.id<=e.timeline.maxId}))},filteredPinnedStatusIds:function(){var e=this;return(this.pinnedStatusIds||[]).filter((function(t){return e.timeline.statusesObject[t]}))},newStatusCount:function(){return this.timeline.newStatusCount},showLoadButton:function(){return this.timeline.newStatusCount>0||0!==this.timeline.flushMarker},loadButtonString:function(){return 0!==this.timeline.flushMarker?this.$t("timeline.reload"):"".concat(this.$t("timeline.show_new")," (").concat(this.newStatusCount,")")},mobileLoadButtonString:function(){return 0!==this.timeline.flushMarker?"+":this.newStatusCount>99?"∞":this.newStatusCount},classes:function(){var e=this.embedded?["-nonpanel"]:["panel","panel-default"];return this.blockingClicks&&(e=e.concat(["-blocked","_misclick-prevention"])),{root:e,header:["timeline-heading"].concat(this.embedded?[]:["panel-heading","-sticky"]),body:["timeline-body"].concat(this.embedded?[]:["panel-body"]),footer:["timeline-footer"].concat(this.embedded?[]:["panel-footer"])}},pinnedStatusIdsObject:function(){return kc()(this.pinnedStatusIds)},statusesToDisplay:function(){var e=this.timeline.visibleStatuses.length,t=Math.ceil(Math.max(3,window.innerHeight/80)),n=this.virtualScrollIndex-this.filteredPinnedStatusIds.length,r=Math.max(0,n-t),o=Math.min(e,n+t);return this.timeline.visibleStatuses.slice(r,o).map((function(e){return e.id}))},virtualScrollingEnabled:function(){return this.$store.getters.mergedConfig.virtualScrolling}},(0,s.rn)({mobileLayout:function(e){return"mobile"===e.interface.layoutType}})),created:function(){var e=this.$store,t=e.state.users.currentUser.credentials,n=0===this.timeline.visibleStatuses.length;if(window.addEventListener("scroll",this.handleScroll),e.state.api.fetchers[this.timelineName])return!1;Ce.fetchAndUpdate({store:e,credentials:t,timeline:this.timelineName,showImmediately:n,userId:this.userId,listId:this.listId,tag:this.tag})},mounted:function(){void 0!==document.hidden&&(document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.unfocused=document.hidden),window.addEventListener("keydown",this.handleShortKey),setTimeout(this.determineVisibleStatuses,250)},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("keydown",this.handleShortKey),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.commit("setLoading",{timeline:this.timelineName,value:!1})},methods:{scrollToTop:function(){window.scrollTo({top:this.$el.offsetTop})},stopBlockingClicks:Bs()((function(){this.blockingClicks=!1}),1e3),blockClicksTemporarily:function(){this.blockingClicks||(this.blockingClicks=!0),this.stopBlockingClicks()},handleShortKey:function(e){["textarea","input"].includes(e.target.tagName.toLowerCase())||"."===e.key&&this.showNewStatuses()},showNewStatuses:function(){0!==this.timeline.flushMarker?(this.$store.commit("clearTimeline",{timeline:this.timelineName,excludeUserId:!0}),this.$store.commit("queueFlush",{timeline:this.timelineName,id:0}),this.fetchOlderStatuses()):(this.blockClicksTemporarily(),this.$store.commit("showNewStatuses",{timeline:this.timelineName}),this.paused=!1),window.scrollTo({top:0})},fetchOlderStatuses:jc()((function(){var e=this,t=this.$store,n=t.state.users.currentUser.credentials;t.commit("setLoading",{timeline:this.timelineName,value:!0}),Ce.fetchAndUpdate({store:t,credentials:n,timeline:this.timelineName,older:!0,showImmediately:!0,userId:this.userId,listId:this.listId,tag:this.tag}).then((function(t){var n=t.statuses;n&&0===n.length&&(e.bottomedOut=!0)})).finally((function(){return t.commit("setLoading",{timeline:e.timelineName,value:!1})}))}),1e3,void 0),determineVisibleStatuses:function(){if(this.$refs.timeline&&this.virtualScrollingEnabled){var e=this.$refs.timeline.children,t=Math.max(0,Math.min(this.virtualScrollIndex,e.length-1));if(0!==e.length){var n=Math.max(document.body.offsetHeight,window.pageYOffset),r=window.pageYOffset+.5*window.innerHeight,o=Math.floor(e.length*(r/n)),i=e[o].getBoundingClientRect().y,s=e[t].getBoundingClientRect().y;for(Math.abs(i)>s&&(o=t,i=s);i<-20&&o<e.length-1;)i+=e[o].offsetHeight,o++;for(;i>window.innerHeight+100&&o>0;)i-=e[--o].offsetHeight;this.virtualScrollIndex=o}}},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.timeline.loading&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchOlderStatuses()},handleScroll:jc()((function(e){this.showScrollTop=this.$el.offsetTop<window.scrollY,this.determineVisibleStatuses(),this.scrollLoad(e)}),200),handleVisibilityChange:function(){this.unfocused=document.hidden}},watch:{newStatusCount:function(e){if(this.$store.getters.mergedConfig.streaming&&e>0){var t=document.documentElement;!((window.pageYOffset||t.scrollTop)-(t.clientTop||0)<15)||this.paused||this.unfocused&&this.$store.getters.mergedConfig.pauseOnUnfocused?this.paused=!0:this.showNewStatuses()}}}};const fl=ml,gl=(0,Lr.Z)(fl,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("TimelineMenu"),a=(0,lr.up)("FAIcon"),c=(0,lr.up)("FALayers"),l=(0,lr.up)("QuickFilterSettings"),u=(0,lr.up)("QuickViewSettings"),d=(0,lr.up)("conversation");return(0,lr.wg)(),(0,lr.iD)("div",{class:(0,ur.C_)(["Timeline",e.classes.root])},[(0,lr._)("div",{class:(0,ur.C_)(e.classes.header)},[e.embedded?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.j4)(s,{key:0,"timeline-name":e.timelineName},null,8,["timeline-name"])),e.showScrollTop&&!e.embedded?((0,lr.wg)(),(0,lr.iD)("div",uc,[(0,lr._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,lr.Wm)(c,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{icon:"arrow-up"}),(0,lr.Wm)(a,{icon:"minus",transform:"up-7"})]})),_:1})],8,dc)])):(0,lr.kq)("",!0),e.mobileLayout&&!e.embedded?((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:2},[e.showLoadButton?((0,lr.wg)(),(0,lr.iD)("div",pc,[(0,lr._)("button",{class:"button-unstyled loadmore-button",title:e.loadButtonString,onClick:t[1]||(t[1]=(0,or.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},[(0,lr.Wm)(a,{"fixed-width":"",icon:"circle-plus"}),(0,lr._)("div",mc,(0,ur.zw)(e.mobileLoadButtonString),1)],8,hc)])):e.embedded?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",{key:1,class:"loadmore-text faint veryfaint rightside-icon",title:e.$t("timeline.up_to_date"),"aria-disabled":!0,onClick:t[2]||(t[2]=(0,or.iM)((function(){}),["prevent"]))},[(0,lr.Wm)(a,{"fixed-width":"",icon:"check"})],8,fc))],64)):((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:3},[e.showLoadButton?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"button-default loadmore-button",onClick:t[3]||(t[3]=(0,or.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},(0,ur.zw)(e.loadButtonString),1)):e.embedded?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",{key:1,class:"loadmore-text faint",onClick:t[4]||(t[4]=(0,or.iM)((function(){}),["prevent"]))},(0,ur.zw)(e.$t("timeline.up_to_date")),1))],64)),e.embedded?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.j4)(l,{key:4,class:"rightside-button"})),e.embedded?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.j4)(u,{key:5,class:"rightside-button"}))],2),(0,lr._)("div",{class:(0,ur.C_)(e.classes.body)},[(0,lr._)("div",gc,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.filteredPinnedStatusIds,(function(t){return(0,lr.wg)(),(0,lr.j4)(d,{key:t+"-pinned",role:"listitem",class:"status-fadein","status-id":t,collapsable:!0,"pinned-status-ids-object":e.pinnedStatusIdsObject,"in-profile":e.inProfile,"profile-user-id":e.userId},null,8,["status-id","pinned-status-ids-object","in-profile","profile-user-id"])})),128)),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.filteredVisibleStatuses,(function(t){return(0,lr.wg)(),(0,lr.j4)(d,{key:t.id,role:"listitem",class:"status-fadein","status-id":t.id,collapsable:!0,"in-profile":e.inProfile,"profile-user-id":e.userId,"virtual-hidden":e.virtualScrollingEnabled&&!e.statusesToDisplay.includes(t.id)},null,8,["status-id","in-profile","profile-user-id","virtual-hidden"])})),128))],512)],2),(0,lr._)("div",{class:(0,ur.C_)(e.classes.footer)},[((0,lr.wg)(),(0,lr.j4)(lr.lR,{to:e.footerSlipgate,disabled:!e.embedded||!e.footerSlipgate},[0===e.count?((0,lr.wg)(),(0,lr.iD)("div",vc,(0,ur.zw)(e.$t("timeline.no_statuses")),1)):e.bottomedOut?((0,lr.wg)(),(0,lr.iD)("div",wc,(0,ur.zw)(e.$t("timeline.no_more_statuses")),1)):e.timeline.loading?((0,lr.wg)(),(0,lr.iD)("div",yc,[(0,lr.Wm)(a,{icon:"circle-notch",spin:"",size:"lg"})])):((0,lr.wg)(),(0,lr.iD)("button",{key:2,class:"button-unstyled -link",onClick:t[5]||(t[5]=(0,or.iM)((function(t){return e.fetchOlderStatuses()}),["prevent"]))},[(0,lr._)("div",bc,(0,ur.zw)(e.$t("timeline.load_older")),1)]))],8,["to","disabled"]))],2)],2)}]]),vl={components:{Timeline:gl},computed:{timeline:function(){return this.$store.state.statuses.timelines.public}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"public"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","public")}},wl=(0,Lr.Z)(vl,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Timeline");return(0,lr.wg)(),(0,lr.j4)(s,{title:e.$t("nav.public_tl"),timeline:e.timeline,"timeline-name":"public"},null,8,["title","timeline"])}]]),bl={components:{Timeline:gl},computed:{timeline:function(){return this.$store.state.statuses.timelines.publicAndExternal}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"publicAndExternal"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","publicAndExternal")}},yl=(0,Lr.Z)(bl,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Timeline");return(0,lr.wg)(),(0,lr.j4)(s,{title:e.$t("nav.twkn"),timeline:e.timeline,"timeline-name":"publicAndExternal"},null,8,["title","timeline"])}]]),_l={components:{Timeline:gl},computed:{timeline:function(){return this.$store.state.statuses.timelines.friends}}},kl=(0,Lr.Z)(_l,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Timeline");return(0,lr.wg)(),(0,lr.j4)(s,{title:e.$t("nav.timeline"),timeline:e.timeline,"timeline-name":"friends"},null,8,["title","timeline"])}]]),Sl={created:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})},components:{Timeline:gl},computed:{tag:function(){return this.$route.params.tag},timeline:function(){return this.$store.state.statuses.timelines.tag}},watch:{tag:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})}},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","tag")}},jl=(0,Lr.Z)(Sl,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Timeline");return(0,lr.wg)(),(0,lr.j4)(s,{title:e.tag,timeline:e.timeline,"timeline-name":"tag",tag:e.tag},null,8,["title","timeline","tag"])}]]),Ol={computed:{timeline:function(){return this.$store.state.statuses.timelines.bookmarks}},components:{Timeline:gl},unmounted:function(){this.$store.commit("clearTimeline",{timeline:"bookmarks"})}},Cl=(0,Lr.Z)(Ol,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Timeline");return(0,lr.wg)(),(0,lr.j4)(s,{title:e.$t("nav.bookmarks"),timeline:e.timeline,"timeline-name":"bookmarks"},null,8,["title","timeline"])}]]),Pl={components:{Conversation:il},computed:{statusId:function(){return this.$route.params.id}}},zl=(0,Lr.Z)(Pl,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("conversation");return(0,lr.wg)(),(0,lr.j4)(s,{collapsable:!1,"is-page":"true","status-id":e.statusId},null,8,["status-id"])}]]);var Il={class:"panel panel-default"},Dl={class:"panel-heading"},xl={class:"title"},Tl=["label"],$l=["label"],Ul=["label"],Ml=["label"],Al=["label"],Ll=["label"],El=n(79354),Fl={mentions:["mention"],"likes+repeats":["repeat","like"],follows:["follow"],reactions:["pleroma:emoji_reaction"],reports:["pleroma:report"],moves:["move"]};const Rl={data:function(){return{allowFollowingMove:this.$store.state.users.currentUser.allow_following_move,filterMode:Fl.mentions,canSeeReports:this.$store.state.users.currentUser.privileges.includes("reports_manage_reports")}},methods:{onModeSwitch:function(e){this.filterMode=Fl[e]}},components:{Notifications:aa.default,TabSwitcher:El.Z}},Nl=(0,Lr.Z)(Rl,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("tab-switcher"),a=(0,lr.up)("Notifications");return(0,lr.wg)(),(0,lr.iD)("div",Il,[(0,lr._)("div",Dl,[(0,lr._)("div",xl,(0,ur.zw)(e.$t("nav.interactions")),1)]),(0,lr.Wm)(s,{ref:"tabSwitcher","on-switch":e.onModeSwitch},{default:(0,lr.w5)((function(){return[(0,lr._)("span",{key:"mentions",label:e.$t("nav.mentions")},null,8,Tl),(0,lr._)("span",{key:"likes+repeats",label:e.$t("interactions.favs_repeats")},null,8,$l),(0,lr._)("span",{key:"follows",label:e.$t("interactions.follows")},null,8,Ul),(0,lr._)("span",{key:"reactions",label:e.$t("interactions.emoji_reactions")},null,8,Ml),e.canSeeReports?((0,lr.wg)(),(0,lr.iD)("span",{key:"reports",label:e.$t("interactions.reports")},null,8,Al)):(0,lr.kq)("",!0),e.allowFollowingMove?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("span",{key:"moves",label:e.$t("interactions.moves")},null,8,Ll))]})),_:1},8,["on-switch"]),(0,lr.Wm)(a,{ref:"notifications","no-heading":!0,"minimal-mode":!0,"filter-mode":e.filterMode},null,8,["filter-mode"])])}]]),ql={computed:{timeline:function(){return this.$store.state.statuses.timelines.dms}},components:{Timeline:gl}},Zl=(0,Lr.Z)(ql,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Timeline");return(0,lr.wg)(),(0,lr.j4)(s,{title:e.$t("nav.dms"),timeline:e.timeline,"timeline-name":"dms"},null,8,["title","timeline"])}]]);var Wl={key:0},Bl={key:1,class:"chat-list panel panel-default"},Hl={class:"panel-heading -sticky"},Vl={class:"title"},Kl={class:"panel-body"},Gl={key:0,class:"timeline"},Yl={key:1,class:"emtpy-chat-list-alert"},Jl={class:"chat-list-item-left"},Ql={class:"chat-list-item-center"},Xl={class:"heading"},eu={key:0,class:"name-and-account-name"},tu=(0,lr._)("span",{class:"heading-right"},null,-1),nu={class:"time-wrapper"},ru={class:"chat-preview"},ou={key:0,class:"badge badge-notification unread-chat-count"},iu=n(33288),su=n(62312),au=n(55432),cu=n(1840),lu=["title"],uu=n(92820);const du={name:"ChatTitle",components:{UserAvatar:su.default,RichContent:uu.Z,UserPopover:(0,lr.RC)((function(){return Promise.resolve().then(n.bind(n,78873))}))},props:["user","withAvatar"],computed:{title:function(){return this.user?this.user.screen_name_ui:""},htmlTitle:function(){return this.user?this.user.name_html:""}}},pu=(0,Lr.Z)(du,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("UserAvatar"),a=(0,lr.up)("UserPopover"),c=(0,lr.up)("RichContent");return(0,lr.wg)(),(0,lr.iD)("div",{class:"chat-title",title:e.title},[e.withAvatar&&e.user?((0,lr.wg)(),(0,lr.j4)(a,{key:0,class:"avatar-container","user-id":e.user.id},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(s,{class:"titlebar-avatar",user:e.user},null,8,["user"])]})),_:1},8,["user-id"])):(0,lr.kq)("",!0),e.user?((0,lr.wg)(),(0,lr.j4)(c,{key:1,class:"username",title:"@"+(e.user&&e.user.screen_name_ui),html:e.htmlTitle,emoji:e.user.emoji||[]},null,8,["title","html","emoji"])):(0,lr.kq)("",!0)],8,lu)}]]);function hu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hu(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const fu={name:"ChatListItem",props:["chat"],components:{UserAvatar:su.default,AvatarList:au.Z,Timeago:cu.Z,ChatTitle:pu,StatusBody:iu.Z},computed:mu(mu({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{attachmentInfo:function(){if(0!==this.chat.lastMessage.attachments.length){var e=this.chat.lastMessage.attachments.map((function(e){return hn.Z.fileType(e.mimetype)}));return e.includes("video")?this.$t("file_type.video"):e.includes("audio")?this.$t("file_type.audio"):e.includes("image")?this.$t("file_type.image"):this.$t("file_type.file")}},messageForStatusContent:function(){var e=this.chat.lastMessage,t=e?e.emojis:[],n=e&&e.account_id===this.currentUser.id,r=e?this.attachmentInfo||e.content:"",o=n?"<i>".concat(this.$t("chats.you"),"</i> ").concat(r):r;return{summary:"",emojis:t,raw_html:o,text:o,attachments:[]}}}),methods:{openChat:function(e){this.chat.id&&this.$router.push({name:"chat",params:{username:this.currentUser.screen_name,recipient_id:this.chat.account.id}})}}},gu=(0,Lr.Z)(fu,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("UserAvatar"),a=(0,lr.up)("ChatTitle"),c=(0,lr.up)("Timeago"),l=(0,lr.up)("StatusBody");return(0,lr.wg)(),(0,lr.iD)("div",{class:"chat-list-item",onClickCapture:t[0]||(t[0]=(0,or.iM)((function(){return e.openChat&&e.openChat.apply(e,arguments)}),["prevent"]))},[(0,lr._)("div",Jl,[(0,lr.Wm)(s,{user:e.chat.account,height:"48px",width:"48px"},null,8,["user"])]),(0,lr._)("div",Ql,[(0,lr._)("div",Xl,[e.chat.account?((0,lr.wg)(),(0,lr.iD)("span",eu,[(0,lr.Wm)(a,{user:e.chat.account},null,8,["user"])])):(0,lr.kq)("",!0),tu,(0,lr._)("div",nu,[(0,lr.Wm)(c,{time:e.chat.updated_at,"auto-update":60},null,8,["time"])])]),(0,lr._)("div",ru,[(0,lr.Wm)(l,{class:"chat-preview-body",status:e.messageForStatusContent,"single-line":!0},null,8,["status"]),e.chat.unread>0?((0,lr.wg)(),(0,lr.iD)("div",ou,(0,ur.zw)(e.chat.unread),1)):(0,lr.kq)("",!0)])])],32)}]]);var vu={class:"panel-default panel chat-new"},wu={ref:"header",class:"panel-heading"},bu={class:"input-wrap"},yu={class:"input-search"},_u={class:"member-list"},ku=["onClickCapture"],Su=n(85267);function ju(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ou(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ju(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ju(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.wn1,Nt.A35);var Cu={components:{BasicUserCard:Su.Z,UserAvatar:su.default},data:function(){return{suggestions:[],userIds:[],loading:!1,query:""}},created:function(){var e=this;return(0,r.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.backendInteractor.chats();case 2:t.sent.chats.forEach((function(t){return e.suggestions.push(t.account)}));case 5:case"end":return t.stop()}}),t)})))()},computed:Ou(Ou({users:function(){var e=this;return this.userIds.map((function(t){return e.findUser(t)}))},availableUsers:function(){return 0!==this.query.length?this.users:this.suggestions}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},backendInteractor:function(e){return e.api.backendInteractor}})),(0,s.Se)(["findUser"])),methods:{goBack:function(){this.$emit("cancel")},goToChat:function(e){this.$router.push({name:"chat",params:{recipient_id:e.id}})},onInput:function(){this.search(this.query)},addUser:function(e){this.selectedUserIds.push(e.id),this.query=""},removeUser:function(e){this.selectedUserIds=this.selectedUserIds.filter((function(t){return t!==e}))},search:function(e){var t=this;e?(this.loading=!0,this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts"}).then((function(e){t.loading=!1,t.userIds=e.accounts.map((function(e){return e.id}))}))):this.loading=!1}}};const Pu=Cu,zu=(0,Lr.Z)(Pu,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("BasicUserCard");return(0,lr.wg)(),(0,lr.iD)("div",vu,[(0,lr._)("div",wu,[(0,lr._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,lr.Wm)(s,{size:"lg",icon:"chevron-left"})])],512),(0,lr._)("div",bu,[(0,lr._)("div",yu,[(0,lr.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,lr.wy)((0,lr._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.query=t}),placeholder:"Search people",onInput:t[2]||(t[2]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,544),[[or.nr,e.query]])]),(0,lr._)("div",_u,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.availableUsers,(function(t){return(0,lr.wg)(),(0,lr.iD)("div",{key:t.id,class:"member"},[(0,lr._)("div",{onClickCapture:(0,or.iM)((function(n){return e.goToChat(t)}),["prevent"])},[(0,lr.Wm)(a,{user:t},null,8,["user"])],40,ku)])})),128))])])}]]);function Iu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Du(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Iu(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Iu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const xu={components:{ChatListItem:gu,List:Aa.Z,ChatNew:zu},computed:Du(Du({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["sortedChatList"])),data:function(){return{isNew:!1}},created:function(){this.$store.dispatch("fetchChats",{latest:!0})},methods:{cancelNewChat:function(){this.isNew=!1,this.$store.dispatch("fetchChats",{latest:!0})},newChat:function(){this.isNew=!0}}},Tu=(0,Lr.Z)(xu,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("ChatNew"),a=(0,lr.up)("ChatListItem"),c=(0,lr.up)("List");return e.isNew?((0,lr.wg)(),(0,lr.iD)("div",Wl,[(0,lr.Wm)(s,{onCancel:e.cancelNewChat},null,8,["onCancel"])])):((0,lr.wg)(),(0,lr.iD)("div",Bl,[(0,lr._)("div",Hl,[(0,lr._)("span",Vl,(0,ur.zw)(e.$t("chats.chats")),1),(0,lr._)("button",{class:"button-default",onClick:t[0]||(t[0]=function(){return e.newChat&&e.newChat.apply(e,arguments)})},(0,ur.zw)(e.$t("chats.new")),1)]),(0,lr._)("div",Kl,[e.sortedChatList.length>0?((0,lr.wg)(),(0,lr.iD)("div",Gl,[(0,lr.Wm)(c,{items:e.sortedChatList},{item:(0,lr.w5)((function(e){var t=e.item;return[((0,lr.wg)(),(0,lr.j4)(a,{key:t.id,compact:!1,chat:t},null,8,["chat"]))]})),_:1},8,["items"])])):((0,lr.wg)(),(0,lr.iD)("div",Yl,[(0,lr._)("span",null,(0,ur.zw)(e.$t("chats.empty_chat_list_placeholder")),1)]))])]))}]]);var $u={class:"chat-view"},Uu={class:"chat-view-inner"},Mu={ref:"inner",class:"panel-default panel chat-view-body"},Au={ref:"header",class:"panel-heading -sticky chat-view-heading"},Lu={class:"title text-center"},Eu={key:1,class:"chat-loading-error"},Fu={class:"alert error"},Ru={ref:"footer",class:"panel-body footer"},Nu={key:0,class:"badge badge-notification unread-chat-count unread-message-count"},qu={key:0,class:"avatar-wrapper"},Zu={class:"chat-message-inner"},Wu={class:"dropdown-menu"},Bu=["title"],Hu={class:"created-at"},Vu={key:1,class:"chat-message-date-separator"},Ku=n(74722),Gu=n(99822),Yu=n(87887),Ju=n(39776);const Qu={name:"Timeago",props:["date"],computed:{displayDate:function(){var e=new Date;return e.setHours(0,0,0,0),this.date.getTime()===e.getTime()?this.$t("display_date.today"):this.date.toLocaleDateString(Ju.Z.internalToBrowserLocale(this.$i18n.locale),{day:"numeric",month:"long"})}}},Xu=(0,Lr.Z)(Qu,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("time",null,(0,ur.zw)(i.displayDate),1)}]]);function ed(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function td(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ed(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ed(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.NBC,Nt.cNd);const nd={name:"ChatMessage",props:["author","edited","noHeading","chatViewItem","hoveredMessageChain"],emits:["hover"],components:{Popover:Wc.default,Attachment:Ku.Z,StatusContent:iu.Z,UserAvatar:su.default,Gallery:Gu.Z,LinkPreview:Yu.Z,ChatMessageDate:Xu,UserPopover:(0,lr.RC)((function(){return Promise.resolve().then(n.bind(n,78873))}))},computed:td(td({createdAt:function(){return this.chatViewItem.data.created_at.toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit",hour12:!1})},isCurrentUser:function(){return this.message.account_id===this.currentUser.id},message:function(){return this.chatViewItem.data},isMessage:function(){return"message"===this.chatViewItem.type},messageForStatusContent:function(){return{summary:"",emojis:this.message.emojis,raw_html:this.message.content||"",text:this.message.content||"",attachments:this.message.attachments}},hasAttachment:function(){return this.message.attachments.length>0}},(0,s.rn)({betterShadow:function(e){return e.interface.browserSupport.cssFilter},currentUser:function(e){return e.users.currentUser},restrictedNicknames:function(e){return e.instance.restrictedNicknames}})),{},{popoverMarginStyle:function(){return this.isCurrentUser?{}:{left:50}}},(0,s.Se)(["mergedConfig","findUser"])),data:function(){return{hovered:!1,menuOpened:!1}},methods:{onHover:function(e){this.$emit("hover",{isHovered:e,messageChainId:this.chatViewItem.messageChainId})},deleteMessage:function(){var e=this;return(0,r.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!window.confirm(e.$t("chats.delete_confirm"))){t.next=4;break}return t.next=4,e.$store.dispatch("deleteChatMessage",{messageId:e.chatViewItem.data.id,chatId:e.chatViewItem.data.chat_id});case 4:e.hovered=!1,e.menuOpened=!1;case 6:case"end":return t.stop()}}),t)})))()}}},rd=(0,Lr.Z)(nd,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("UserAvatar"),a=(0,lr.up)("UserPopover"),c=(0,lr.up)("FAIcon"),l=(0,lr.up)("Popover"),u=(0,lr.up)("StatusContent"),d=(0,lr.up)("ChatMessageDate");return e.isMessage?((0,lr.wg)(),(0,lr.iD)("div",{key:0,class:(0,ur.C_)(["chat-message-wrapper",{"hovered-message-chain":e.hoveredMessageChain}]),onMouseover:t[5]||(t[5]=function(t){return e.onHover(!0)}),onMouseleave:t[6]||(t[6]=function(t){return e.onHover(!1)})},[(0,lr._)("div",{class:(0,ur.C_)(["chat-message",[{outgoing:e.isCurrentUser,incoming:!e.isCurrentUser}]])},[e.isCurrentUser?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",qu,[e.chatViewItem.isHead?((0,lr.wg)(),(0,lr.j4)(a,{key:0,"user-id":e.author.id},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(s,{compact:!0,"better-shadow":e.betterShadow,user:e.author},null,8,["better-shadow","user"])]})),_:1},8,["user-id"])):(0,lr.kq)("",!0)])),(0,lr._)("div",Zu,[(0,lr._)("div",{class:"status-body",style:(0,ur.j5)({"min-width":e.message.attachment?"80%":""})},[(0,lr._)("div",{class:(0,ur.C_)(["media status",{"without-attachment":!e.hasAttachment,pending:e.chatViewItem.data.pending,error:e.chatViewItem.data.error}]),style:{position:"relative"},onMouseenter:t[3]||(t[3]=function(t){return e.hovered=!0}),onMouseleave:t[4]||(t[4]=function(t){return e.hovered=!1})},[(0,lr._)("div",{class:(0,ur.C_)(["chat-message-menu",{visible:e.hovered||e.menuOpened}])},[(0,lr.Wm)(l,{trigger:"click",placement:"top","bound-to-selector":".chat-view-inner","bound-to":{x:"container"},margin:e.popoverMarginStyle,onShow:t[1]||(t[1]=function(t){return e.menuOpened=!0}),onClose:t[2]||(t[2]=function(t){return e.menuOpened=!1})},{content:(0,lr.w5)((function(){return[(0,lr._)("div",Wu,[(0,lr._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=function(){return e.deleteMessage&&e.deleteMessage.apply(e,arguments)})},[(0,lr.Wm)(c,{icon:"times"}),(0,lr.Uk)(" "+(0,ur.zw)(e.$t("chats.delete")),1)])])]})),trigger:(0,lr.w5)((function(){return[(0,lr._)("button",{class:"button-default menu-icon",title:e.$t("chats.more")},[(0,lr.Wm)(c,{icon:"ellipsis-h"})],8,Bu)]})),_:1},8,["margin"])],2),(0,lr.Wm)(u,{class:"message-content",status:e.messageForStatusContent,"full-content":!0},{footer:(0,lr.w5)((function(){return[(0,lr._)("span",Hu,(0,ur.zw)(e.createdAt),1)]})),_:1},8,["status"])],34)],4)])],2)],34)):((0,lr.wg)(),(0,lr.iD)("div",Vu,[(0,lr.Wm)(d,{date:e.chatViewItem.date},null,8,["date"])]))}]]);var od=function(){return{scrollTop:window.scrollY,scrollHeight:document.documentElement.scrollHeight,offsetHeight:window.innerHeight}};function id(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?id(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):id(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.ptq,Nt.A35);var ad={components:{ChatMessage:rd,ChatTitle:pu,PostStatusForm:yo.Z},data:function(){return{jumpToBottomButtonVisible:!1,hoveredMessageChainId:void 0,lastScrollPosition:{},scrollableContainerHeight:"100%",errorLoadingChat:!1,messageRetriers:{}}},created:function(){this.startFetching(),window.addEventListener("resize",this.handleResize)},mounted:function(){var e=this;window.addEventListener("scroll",this.handleScroll),void 0!==document.hidden&&document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$nextTick((function(){e.handleResize()}))},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("resize",this.handleResize),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.dispatch("clearCurrentChat")},computed:sd(sd({recipient:function(){return this.currentChat&&this.currentChat.account},recipientId:function(){return this.$route.params.recipient_id},formPlaceholder:function(){return this.recipient?this.$t("chats.message_user",{nickname:this.recipient.screen_name_ui}):""},chatViewItems:function(){return En.getView(this.currentChatMessageService)},newMessageCount:function(){return this.currentChatMessageService&&this.currentChatMessageService.newMessageCount},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===m._z.JOINED}},(0,s.Se)(["currentChat","currentChatMessageService","findOpenedChatByRecipientId","mergedConfig"])),(0,s.rn)({backendInteractor:function(e){return e.api.backendInteractor},mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus},mobileLayout:function(e){return"mobile"===e.interface.layoutType},currentUser:function(e){return e.users.currentUser}})),watch:{chatViewItems:function(){var e=this,t=this.bottomedOut(10);this.$nextTick((function(){t&&e.scrollDown()}))},$route:function(){this.startFetching()},mastoUserSocketStatus:function(e){e===m._z.JOINED&&this.fetchChat({isFirstFetch:!0})}},methods:{onMessageHover:function(e){var t=e.isHovered,n=e.messageChainId;this.hoveredMessageChainId=t?n:void 0},onFilesDropped:function(){var e=this;this.$nextTick((function(){e.handleResize()}))},handleVisibilityChange:function(){var e=this;this.$nextTick((function(){!document.hidden&&e.bottomedOut(10)&&e.scrollDown({forceRead:!0})}))},handleResize:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.delayed,r=void 0!==n&&n;r?setTimeout((function(){e.handleResize(sd(sd({},t),{},{delayed:!1}))}),100):this.$nextTick((function(){var t=od().offsetHeight,n=(void 0===t?void 0:t)-e.lastScrollPosition.offsetHeight;0===n||e.bottomedOut()||e.$nextTick((function(){window.scrollBy({top:-Math.trunc(n)})})),e.lastScrollPosition=od()}))},scrollDown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.behavior,n=void 0===t?"auto":t,r=e.forceRead,o=void 0!==r&&r;this.$nextTick((function(){window.scrollTo({top:document.documentElement.scrollHeight,behavior:n})})),o&&this.readChat()},readChat:function(){if(this.currentChatMessageService&&this.currentChatMessageService.maxId&&!document.hidden){var e=this.currentChatMessageService.maxId;this.$store.dispatch("readChat",{id:this.currentChat.id,lastReadId:e})}},bottomedOut:function(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=window.scrollY+e;return document.documentElement.scrollHeight-window.innerHeight<=t}(e)},reachedTop:function(){return window.scrollY<=0},cullOlderCheck:function(){var e=this;window.setTimeout((function(){e.bottomedOut(10)&&e.$store.dispatch("cullOlderMessages",e.currentChatMessageService.chatId)}),5e3)},handleScroll:jc()((function(){var e=this;this.lastScrollPosition=od(),this.currentChat&&(this.reachedTop()?this.fetchChat({maxId:this.currentChatMessageService.minId}):this.bottomedOut(10)?(this.jumpToBottomButtonVisible=!1,this.cullOlderCheck(),this.newMessageCount>0&&window.setTimeout((function(){e.$el&&e.readChat()}),1500)):this.jumpToBottomButtonVisible=!0)}),200),handleScrollUp:function(e){var t,n,r=od();window.scrollTo({top:(t=e,n=r,t.scrollTop+(n.scrollHeight-t.scrollHeight))})},fetchChat:function(e){var t=this,n=e.isFirstFetch,r=void 0!==n&&n,o=e.fetchLatest,i=void 0!==o&&o,s=e.maxId,a=this.currentChatMessageService;if(a&&(!i||!this.streamingEnabled)){var c=a.chatId,l=!!s,u=i&&a.maxId;return this.backendInteractor.chatMessages({id:c,maxId:s,sinceId:u}).then((function(e){r&&En.clear(a);var n=od();t.$store.dispatch("addChatMessages",{chatId:c,messages:e}).then((function(){t.$nextTick((function(){l&&t.handleScrollUp(n),!(document.documentElement.scrollHeight>window.innerHeight)&&e.length>0&&t.fetchChat({maxId:t.currentChatMessageService.minId})}))}))}))}},startFetching:function(){var e=this;return(0,r.Z)(i().mark((function t(){var n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.findOpenedChatByRecipientId(e.recipientId)){t.next=12;break}return t.prev=2,t.next=5,e.backendInteractor.getOrCreateChat({accountId:e.recipientId});case 5:n=t.sent,t.next=12;break;case 8:t.prev=8,t.t0=t.catch(2),console.error("Error creating or getting a chat",t.t0),e.errorLoadingChat=!0;case 12:n&&(e.$nextTick((function(){e.scrollDown({forceRead:!0})})),e.$store.dispatch("addOpenedChat",{chat:n}),e.doStartFetching());case 13:case"end":return t.stop()}}),t,null,[[2,8]])})))()},doStartFetching:function(){var e=this;this.$store.dispatch("startFetchingCurrentChat",{fetcher:function(){return(0,Se.F)((function(){return e.fetchChat({fetchLatest:!0})}),5e3)}}),this.fetchChat({isFirstFetch:!0})},handleAttachmentPosting:function(){var e=this;this.$nextTick((function(){e.handleResize(),e.scrollDown({forceRead:!0})}))},sendMessage:function(e){var t=this,n=e.status,r=e.media,o=e.idempotencyKey,i={id:this.currentChat.id,content:n,idempotencyKey:o};r[0]&&(i.mediaId=r[0].id);var s=function(e){var t=e.attachments,n=e.userId,r=e.idempotencyKey,o={content:e.content,chat_id:e.chatId,created_at:new Date,id:"".concat((new Date).getTime()),attachments:t,account_id:n,idempotency_key:r,emojis:[],pending:!0,isNormalized:!0};return t[0]&&(o.attachment=t[0]),o}({attachments:r,chatId:this.currentChat.id,content:n,userId:this.currentUser.id,idempotencyKey:o});return this.$store.dispatch("addChatMessages",{chatId:this.currentChat.id,messages:[s]}).then((function(){t.handleAttachmentPosting()})),this.doSendMessage({params:i,fakeMessage:s,retriesLeft:10})},doSendMessage:function(e){var t=this,n=e.params,r=e.fakeMessage,o=e.retriesLeft,i=void 0===o?10:o;if(!(i<=0))return this.backendInteractor.sendChatMessage(n).then((function(e){return t.$store.dispatch("addChatMessages",{chatId:t.currentChat.id,updateMaxId:!1,messages:[sd(sd({},e),{},{fakeId:r.id})]}),e})).catch((function(e){return console.error("Error sending message",e),t.$store.dispatch("handleMessageError",{chatId:t.currentChat.id,fakeId:r.id,isRetry:10!==i}),(e.statusCode>=500&&e.statusCode<600||"Failed to fetch"===e.message)&&(t.messageRetriers[r.id]=setTimeout((function(){t.doSendMessage({params:n,fakeMessage:r,retriesLeft:i-1})}),1e3*Math.pow(2,10-i))),{}})),Promise.resolve(r)},goBack:function(){this.$router.push({name:"chats",params:{username:this.currentUser.screen_name}})}}};const cd=ad,ld=(0,Lr.Z)(cd,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("ChatTitle"),c=(0,lr.up)("ChatMessage"),l=(0,lr.up)("PostStatusForm");return(0,lr.wg)(),(0,lr.iD)("div",$u,[(0,lr._)("div",Uu,[(0,lr._)("div",Mu,[(0,lr._)("div",Au,[(0,lr._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,lr.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,lr._)("div",Lu,[(0,lr.Wm)(a,{user:e.recipient,"with-avatar":!0},null,8,["user"])])],512),(0,lr._)("div",{class:"message-list",style:(0,ur.j5)({height:e.scrollableContainerHeight})},[e.errorLoadingChat?((0,lr.wg)(),(0,lr.iD)("div",Eu,[(0,lr._)("div",Fu,(0,ur.zw)(e.$t("chats.error_loading_chat")),1)])):((0,lr.wg)(!0),(0,lr.iD)(lr.HY,{key:0},(0,lr.Ko)(e.chatViewItems,(function(t){return(0,lr.wg)(),(0,lr.j4)(c,{key:t.id,author:e.recipient,"chat-view-item":t,"hovered-message-chain":t.messageChainId===e.hoveredMessageChainId,onHover:e.onMessageHover},null,8,["author","chat-view-item","hovered-message-chain","onHover"])})),128))],4),(0,lr._)("div",Ru,[(0,lr._)("div",{class:(0,ur.C_)(["jump-to-bottom-button",{visible:e.jumpToBottomButtonVisible}]),onClick:t[1]||(t[1]=function(t){return e.scrollDown({behavior:"smooth"})})},[(0,lr._)("span",null,[(0,lr.Wm)(s,{icon:"chevron-down"}),e.newMessageCount?((0,lr.wg)(),(0,lr.iD)("div",Nu,(0,ur.zw)(e.newMessageCount),1)):(0,lr.kq)("",!0)])],2),(0,lr.Wm)(l,{"disable-subject":!0,"disable-scope-selector":!0,"disable-notice":!0,"disable-lock-warning":!0,"disable-polls":!0,"disable-sensitivity-checkbox":!0,"disable-submit":e.errorLoadingChat||!e.currentChat,"disable-preview":!0,"optimistic-posting":!0,"post-handler":e.sendMessage,"submit-on-enter":!e.mobileLayout,"preserve-focus":!e.mobileLayout,"auto-focus":!e.mobileLayout,placeholder:e.formPlaceholder,"file-limit":1,"max-height":"160","emoji-picker-placement":"top",onResize:e.handleResize},null,8,["disable-submit","post-handler","submit-on-enter","preserve-focus","auto-focus","placeholder","onResize"])],512)],512)])])}]]);var ud={key:0,class:"user-profile panel panel-default"},dd={key:0,class:"user-profile-fields"},pd=["title"],hd=["title"],md=["label","disabled"],fd=["label","disabled"],gd={key:1,class:"panel user-profile-placeholder"},vd={class:"panel-heading"},wd={class:"title"},bd={class:"panel-body"},yd={key:0},_d={class:"follow-card-content-container"},kd={key:0,class:"faint"},Sd={key:0,class:"follow-card-follow-button"},jd=n(72895),Od=n(13046),Cd=["disabled","title"];const Pd={props:["relationship"],data:function(){return{inProgress:!1}},computed:{label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.$t("user_card.remove_follower")}},methods:{onClick:function(){var e=this;this.inProgress=!0,this.$store.dispatch("removeUserFromFollowers",this.relationship.id).then((function(){e.inProgress=!1}))}}},zd=(0,Lr.Z)(Pd,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("button",{class:(0,ur.C_)(["btn button-default follow-button",{toggled:e.inProgress}]),disabled:e.inProgress,title:e.$t("user_card.remove_follower"),onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},(0,ur.zw)(e.label),11,Cd)}]]),Id={props:["user","noFollowsYou"],components:{BasicUserCard:Su.Z,RemoteFollow:jd.Z,FollowButton:Od.Z,RemoveFollowerButton:zd},computed:{isMe:function(){return this.$store.state.users.currentUser.id===this.user.id},loggedIn:function(){return this.$store.state.users.currentUser},relationship:function(){return this.$store.getters.relationship(this.user.id)}}},Dd=(0,Lr.Z)(Id,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("RemoteFollow"),a=(0,lr.up)("FollowButton"),c=(0,lr.up)("RemoveFollowerButton"),l=(0,lr.up)("basic-user-card");return(0,lr.wg)(),(0,lr.j4)(l,{user:e.user},{default:(0,lr.w5)((function(){return[(0,lr._)("div",_d,[e.isMe||!e.noFollowsYou&&e.relationship.followed_by?((0,lr.wg)(),(0,lr.iD)("span",kd,(0,ur.zw)(e.isMe?e.$t("user_card.its_you"):e.$t("user_card.follows_you")),1)):(0,lr.kq)("",!0),e.loggedIn?e.isMe?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:2},[(0,lr.Wm)(a,{relationship:e.relationship,"label-following":e.$t("user_card.follow_unfollow"),class:"follow-card-follow-button",user:e.user},null,8,["relationship","label-following","user"]),e.noFollowsYou&&e.relationship.followed_by?((0,lr.wg)(),(0,lr.j4)(c,{key:0,relationship:e.relationship,class:"follow-card-button"},null,8,["relationship"])):(0,lr.kq)("",!0)],64)):((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:1},[e.relationship.following?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",Sd,[(0,lr.Wm)(s,{user:e.user},null,8,["user"])]))],64))])]})),_:1},8,["user"])}]]);var xd=n(41609),Td=n.n(xd),$d=n(13562);function Ud(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Md(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ud(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ud(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.IJ7);const Ad=function(e){var t=e.fetch,n=e.select,r=e.unmounted,o=e.childPropName,i=void 0===o?"entries":o,s=e.additionalPropNames,a=void 0===s?[]:s;return function(e){return{props:Object.keys((0,$d.g)(e)).filter((function(e){return e!==i})).concat(a),data:function(){return{loading:!1,bottomedOut:!1,error:!1,entries:[]}},created:function(){window.addEventListener("scroll",this.scrollLoad),0===this.entries.length&&this.fetchEntries()},unmounted:function(){window.removeEventListener("scroll",this.scrollLoad),r&&r(this.$props,this.$store)},methods:{updateEntries:function(){this.entries=n(this.$props,this.$store)||[]},fetchEntries:function(){var e=this;this.loading||(this.loading=!0,this.error=!1,t(this.$props,this.$store).then((function(t){e.loading=!1,e.bottomedOut=Td()(t)})).catch((function(){e.loading=!1,e.error=!0})).finally((function(){e.updateEntries()})))},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.loading&&!1===this.bottomedOut&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchEntries()}},render:function(){var t,n=Md(Md({},this.$props),{},(0,d.Z)({},i,this.entries)),r=this.$slots;return(0,lr.Wm)("div",{class:"with-load-more"},[(0,lr.Wm)(e,n,(t=r,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!(0,lr.lA)(t)?r:{default:function(){return[r]}})),(0,lr.Wm)("div",{class:"with-load-more-footer"},[this.error&&(0,lr.Wm)("button",{onClick:this.fetchEntries,class:"button-unstyled -link -fullwidth alert error"},[this.$t("general.generic_error")]),!this.error&&this.loading&&(0,lr.Wm)(cr.GN,{spin:!0,icon:"circle-notch"},null),!this.error&&!this.loading&&!this.bottomedOut&&(0,lr.Wm)("a",{onClick:this.fetchEntries},[this.$t("general.more")])])])}}}};Rt.vI.add(Nt.IJ7);var Ld=Ad({fetch:function(e,t){return t.dispatch("fetchFollowers",e.userId)},select:function(e,t){return xt()(t.getters.findUser(e.userId),"followerIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFollowers",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(Aa.Z),Ed=Ad({fetch:function(e,t){return t.dispatch("fetchFriends",e.userId)},select:function(e,t){return xt()(t.getters.findUser(e.userId),"friendIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFriends",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(Aa.Z),Fd="statuses";const Rd={data:function(){return{error:!1,userId:null,tab:Fd,footerRef:null}},created:function(){var e=this.$route.params;this.load({name:e.name,id:e.id}),this.tab=xt()(this.$route,"query.tab",Fd)},unmounted:function(){this.stopFetching()},computed:{timeline:function(){return this.$store.state.statuses.timelines.user},favorites:function(){return this.$store.state.statuses.timelines.favorites},media:function(){return this.$store.state.statuses.timelines.media},isUs:function(){return this.userId&&this.$store.state.users.currentUser.id&&this.userId===this.$store.state.users.currentUser.id},user:function(){return this.$store.getters.findUser(this.userId)},isExternal:function(){return"external-user-profile"===this.$route.name},followsTabVisible:function(){return this.isUs||!this.user.hide_follows},followersTabVisible:function(){return this.isUs||!this.user.hide_followers}},methods:{setFooterRef:function(e){this.footerRef=e},load:function(e){var t=this,n=function(e,n){n!==t.$store.state.statuses.timelines[e].userId&&t.$store.commit("clearTimeline",{timeline:e}),t.$store.dispatch("startFetchingTimeline",{timeline:e,userId:n})},r=function(e){t.userId=e,n("user",e),n("media",e),t.isUs&&n("favorites",e),t.$store.dispatch("fetchPinnedStatuses",e)};this.userId=null,this.error=!1;var o=e.id,i=e.name,s=o?this.$store.getters.findUser(o):this.$store.getters.findUserByName(i);s?r(s.id):(o?this.$store.dispatch("fetchUser",o):this.$store.dispatch("fetchUserByName",i)).then((function(e){var t=e.id;return r(t)})).catch((function(e){var n=xt()(e,"error.error");t.error="No user with such user_id"===n?t.$t("user_profile.profile_does_not_exist"):n||t.$t("user_profile.profile_loading_error")}))},stopFetching:function(){this.$store.dispatch("stopFetchingTimeline","user"),this.$store.dispatch("stopFetchingTimeline","favorites"),this.$store.dispatch("stopFetchingTimeline","media")},switchUser:function(e){this.stopFetching(),this.load(e)},onTabSwitch:function(e){this.tab=e,this.$router.replace({query:{tab:e}})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")}},watch:{"$route.params.id":function(e){e&&this.switchUser({id:e})},"$route.params.name":function(e){e&&this.switchUser({name:e})},"$route.query":function(e){this.tab=e.tab||Fd}},components:{UserCard:_o.Z,Timeline:gl,FollowerList:Ld,FriendList:Ed,FollowCard:Dd,TabSwitcher:El.Z,Conversation:il,RichContent:uu.Z}},Nd=(0,Lr.Z)(Rd,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("UserCard"),a=(0,lr.up)("RichContent"),c=(0,lr.up)("Timeline"),l=(0,lr.up)("FollowCard"),u=(0,lr.up)("FriendList"),d=(0,lr.up)("FollowerList"),p=(0,lr.up)("tab-switcher"),h=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",null,[e.user?((0,lr.wg)(),(0,lr.iD)("div",ud,[(0,lr.Wm)(s,{"user-id":e.userId,switcher:!0,selected:e.timeline.viewing,"avatar-action":"zoom",rounded:"top","has-note-editor":!0},null,8,["user-id","selected"]),e.user.fields_html&&e.user.fields_html.length>0?((0,lr.wg)(),(0,lr.iD)("div",dd,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.user.fields_html,(function(t,n){return(0,lr.wg)(),(0,lr.iD)("dl",{key:n,class:"user-profile-field"},[(0,lr._)("dt",{title:e.user.fields_text[n].name,class:"user-profile-field-name"},[(0,lr.Wm)(a,{html:t.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,pd),(0,lr._)("dd",{title:e.user.fields_text[n].value,class:"user-profile-field-value"},[(0,lr.Wm)(a,{html:t.value,emoji:e.user.emoji},null,8,["html","emoji"])],8,hd)])})),128))])):(0,lr.kq)("",!0),(0,lr.Wm)(p,{"active-tab":e.tab,"render-only-focused":!0,"on-switch":e.onTabSwitch},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(c,{key:"statuses",label:e.$t("user_card.statuses"),count:e.user.statuses_count,embedded:!0,title:e.$t("user_profile.timeline_title"),timeline:e.timeline,"timeline-name":"user","user-id":e.userId,"pinned-status-ids":e.user.pinnedStatusIds,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","count","title","timeline","user-id","pinned-status-ids","footer-slipgate"]),e.followsTabVisible?((0,lr.wg)(),(0,lr.iD)("div",{key:"followees",label:e.$t("user_card.followees"),disabled:!e.user.friends_count},[(0,lr.Wm)(u,{"user-id":e.userId},{item:(0,lr.w5)((function(e){var t=e.item;return[(0,lr.Wm)(l,{user:t},null,8,["user"])]})),_:1},8,["user-id"])],8,md)):(0,lr.kq)("",!0),e.followersTabVisible?((0,lr.wg)(),(0,lr.iD)("div",{key:"followers",label:e.$t("user_card.followers"),disabled:!e.user.followers_count},[(0,lr.Wm)(d,{"user-id":e.userId},{item:(0,lr.w5)((function(t){var n=t.item;return[(0,lr.Wm)(l,{user:n,"no-follows-you":e.isUs},null,8,["user","no-follows-you"])]})),_:1},8,["user-id"])],8,fd)):(0,lr.kq)("",!0),(0,lr.Wm)(c,{key:"media",label:e.$t("user_card.media"),disabled:!e.media.visibleStatuses.length,embedded:!0,title:e.$t("user_card.media"),"timeline-name":"media",timeline:e.media,"user-id":e.userId,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","user-id","footer-slipgate"]),e.isUs?((0,lr.wg)(),(0,lr.j4)(c,{key:"favorites",label:e.$t("user_card.favorites"),disabled:!e.favorites.visibleStatuses.length,embedded:!0,title:e.$t("user_card.favorites"),"timeline-name":"favorites",timeline:e.favorites,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","footer-slipgate"])):(0,lr.kq)("",!0)]})),_:1},8,["active-tab","on-switch"]),(0,lr._)("div",{ref:e.setFooterRef,class:"panel-footer"},null,512)])):((0,lr.wg)(),(0,lr.iD)("div",gd,[(0,lr._)("div",vd,[(0,lr._)("div",wd,(0,ur.zw)(e.$t("settings.profile_tab")),1)]),(0,lr._)("div",bd,[e.error?((0,lr.wg)(),(0,lr.iD)("span",yd,(0,ur.zw)(e.error),1)):((0,lr.wg)(),(0,lr.j4)(h,{key:1,spin:"",icon:"circle-notch"}))])]))])}]]);var qd={class:"panel panel-default"},Zd={class:"panel-heading"},Wd={class:"title"},Bd={class:"search-input-container"},Hd=["placeholder"],Vd={key:0,class:"text-center loading-icon"},Kd={key:1},Gd={class:"search-nav-heading"},Yd=["label"],Jd=["label"],Qd=["label"],Xd={class:"panel-body"},ep={key:0},tp={class:"new-status-notification text-center"},np={key:1,class:"text-center loading-icon"},rp={key:2,class:"search-result-heading"},op={key:1},ip={key:0,class:"search-result-heading"},sp={key:2},ap={key:0,class:"search-result-heading"},cp={class:"hashtag"},lp={key:0},up={key:0},dp={key:1},pp={key:0,class:"count"},hp=(0,lr._)("div",{class:"search-result-footer text-center panel-footer faint"},null,-1),mp=n(45578),fp=n.n(mp);Rt.vI.add(Nt.IJ7,Nt.wn1);const gp={components:{FollowCard:Dd,Conversation:il,Status:Ma.default,TabSwitcher:El.Z},props:["query"],data:function(){return{loaded:!1,loading:!1,searchTerm:this.query||"",userIds:[],statuses:[],hashtags:[],currenResultTab:"statuses",statusesOffset:0,lastStatusFetchCount:0,lastQuery:""}},computed:{users:function(){var e=this;return this.userIds.map((function(t){return e.$store.getters.findUser(t)}))},visibleStatuses:function(){var e=this.$store.state.statuses.allStatusesObject;return this.statuses.filter((function(t){return e[t.id]&&!e[t.id].deleted}))}},mounted:function(){this.search(this.query)},watch:{query:function(e){this.searchTerm=e,this.search(e)}},methods:{newQuery:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},search:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e?(this.loading=!0,this.$refs.searchInput.blur(),this.lastQuery!==e&&(this.userIds=[],this.hashtags=[],this.statuses=[],this.statusesOffset=0,this.lastStatusFetchCount=0),this.$store.dispatch("search",{q:e,resolve:!0,offset:this.statusesOffset,type:n}).then((function(n){t.loading=!1;var r=t.statuses.length;t.userIds=t.userIds.concat(we()(n.accounts,"id")),t.statuses=fp()(t.statuses.concat(n.statuses),"id"),t.hashtags=t.hashtags.concat(n.hashtags),t.currenResultTab=t.getActiveTab(),t.loaded=!0,t.statusesOffset=t.statuses.length,t.lastStatusFetchCount=t.statuses.length-r,t.lastQuery=e}))):this.loading=!1},resultCount:function(e){var t=this[e].length;return 0===t?"":" (".concat(t,")")},onResultTabSwitch:function(e){this.currenResultTab=e},getActiveTab:function(){return this.visibleStatuses.length>0?"statuses":this.users.length>0?"people":this.hashtags.length>0?"hashtags":"statuses"},lastHistoryRecord:function(e){return e.history&&e.history[0]}}},vp=(0,Lr.Z)(gp,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("tab-switcher"),c=(0,lr.up)("Status"),l=(0,lr.up)("FollowCard"),u=(0,lr.up)("router-link");return(0,lr.wg)(),(0,lr.iD)("div",qd,[(0,lr._)("div",Zd,[(0,lr._)("div",Wd,(0,ur.zw)(e.$t("nav.search")),1)]),(0,lr._)("div",Bd,[(0,lr.wy)((0,lr._)("input",{ref:"searchInput","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.searchTerm=t}),class:"search-input",placeholder:e.$t("nav.search"),onKeyup:t[1]||(t[1]=(0,or.D2)((function(t){return e.newQuery(e.searchTerm)}),["enter"]))},null,40,Hd),[[or.nr,e.searchTerm]]),(0,lr._)("button",{class:"btn button-default search-button",type:"submit",onClick:t[2]||(t[2]=function(t){return e.newQuery(e.searchTerm)})},[(0,lr.Wm)(s,{icon:"search"})])]),e.loading&&0==e.statusesOffset?((0,lr.wg)(),(0,lr.iD)("div",Vd,[(0,lr.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):e.loaded?((0,lr.wg)(),(0,lr.iD)("div",Kd,[(0,lr._)("div",Gd,[(0,lr.Wm)(a,{ref:"tabSwitcher","on-switch":e.onResultTabSwitch,"active-tab":e.currenResultTab},{default:(0,lr.w5)((function(){return[(0,lr._)("span",{key:"statuses",label:e.$t("user_card.statuses")+e.resultCount("visibleStatuses")},null,8,Yd),(0,lr._)("span",{key:"people",label:e.$t("search.people")+e.resultCount("users")},null,8,Jd),(0,lr._)("span",{key:"hashtags",label:e.$t("search.hashtags")+e.resultCount("hashtags")},null,8,Qd)]})),_:1},8,["on-switch","active-tab"])])])):(0,lr.kq)("",!0),(0,lr._)("div",Xd,["statuses"===e.currenResultTab?((0,lr.wg)(),(0,lr.iD)("div",ep,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.visibleStatuses,(function(e){return(0,lr.wg)(),(0,lr.j4)(c,{key:e.id,collapsable:!1,expandable:!1,compact:!1,class:"search-result",statusoid:e,"no-heading":!1},null,8,["statusoid"])})),128)),!e.loading&&e.loaded&&e.lastStatusFetchCount>0?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"more-statuses-button button-unstyled -link -fullwidth",onClick:t[3]||(t[3]=(0,or.iM)((function(t){return e.search(e.searchTerm,"statuses")}),["prevent"]))},[(0,lr._)("div",tp,(0,ur.zw)(e.$t("search.load_more")),1)])):e.loading&&e.statusesOffset>0?((0,lr.wg)(),(0,lr.iD)("div",np,[(0,lr.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):(0,lr.kq)("",!0),0!==e.visibleStatuses.length&&0!==e.lastStatusFetchCount||e.loading||!e.loaded?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",rp,[(0,lr._)("h4",null,(0,ur.zw)(0===e.visibleStatuses.length?e.$t("search.no_results"):e.$t("search.no_more_results")),1)]))])):"people"===e.currenResultTab?((0,lr.wg)(),(0,lr.iD)("div",op,[0===e.users.length&&!e.loading&&e.loaded?((0,lr.wg)(),(0,lr.iD)("div",ip,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("search.no_results")),1)])):(0,lr.kq)("",!0),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.users,(function(e){return(0,lr.wg)(),(0,lr.j4)(l,{key:e.id,user:e,class:"list-item search-result"},null,8,["user"])})),128))])):"hashtags"===e.currenResultTab?((0,lr.wg)(),(0,lr.iD)("div",sp,[0===e.hashtags.length&&!e.loading&&e.loaded?((0,lr.wg)(),(0,lr.iD)("div",ap,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("search.no_results")),1)])):(0,lr.kq)("",!0),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.hashtags,(function(t){return(0,lr.wg)(),(0,lr.iD)("div",{key:t.url,class:"status trend search-result"},[(0,lr._)("div",cp,[(0,lr.Wm)(u,{to:{name:"tag-timeline",params:{tag:t.name}}},{default:(0,lr.w5)((function(){return[(0,lr.Uk)(" #"+(0,ur.zw)(t.name),1)]})),_:2},1032,["to"]),e.lastHistoryRecord(t)?((0,lr.wg)(),(0,lr.iD)("div",lp,[1==e.lastHistoryRecord(t).accounts?((0,lr.wg)(),(0,lr.iD)("span",up,(0,ur.zw)(e.$t("search.person_talking",{count:e.lastHistoryRecord(t).accounts})),1)):((0,lr.wg)(),(0,lr.iD)("span",dp,(0,ur.zw)(e.$t("search.people_talking",{count:e.lastHistoryRecord(t).accounts})),1))])):(0,lr.kq)("",!0)]),e.lastHistoryRecord(t)?((0,lr.wg)(),(0,lr.iD)("div",pp,(0,ur.zw)(e.lastHistoryRecord(t).uses),1)):(0,lr.kq)("",!0)])})),128))])):(0,lr.kq)("",!0)]),hp])}]]);var wp={class:"settings panel panel-default"},bp={class:"panel-heading"},yp={class:"panel-body"},_p={class:"container"},kp={class:"text-fields"},Sp={class:"form--label",for:"sign-up-username"},jp=["disabled","placeholder"],Op={key:0,class:"form-error"},Cp={key:0},Pp={class:"form--label",for:"sign-up-fullname"},zp=["disabled","placeholder"],Ip={key:1,class:"form-error"},Dp={key:0},xp={class:"form--label",for:"email"},Tp=["disabled","aria-required"],$p={key:2,class:"form-error"},Up={key:0},Mp={class:"form-group"},Ap={class:"form--label",for:"bio"},Lp=["disabled","placeholder"],Ep={class:"form--label",for:"sign-up-password"},Fp=["disabled"],Rp={key:3,class:"form-error"},Np={key:0},qp={class:"form--label",for:"sign-up-password-confirmation"},Zp=["disabled"],Wp={key:4,class:"form-error"},Bp={key:0},Hp={key:1},Vp={key:5,class:"form-group"},Kp={class:"form--label",for:"reason"},Gp=["disabled","placeholder"],Yp={key:6,id:"captcha-group",class:"form-group"},Jp={class:"form--label",for:"captcha-label"},Qp=["src"],Xp=["disabled"],eh={key:7,class:"form-group"},th={for:"token"},nh={class:"form-group"},rh=["disabled"],oh=["innerHTML"],ih={key:0,class:"form-group"},sh={class:"alert error"},ah=n(54028),ch=n(35332);function lh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const dh={setup:function(){return{v$:(0,ah.ZP)()}},data:function(){return{user:{email:"",fullname:"",username:"",password:"",confirm:"",reason:"",language:""},captcha:{}}},components:{InterfaceLanguageSwitcher:n(80034).Z},validations:function(){var e=this;return{user:{email:{required:(0,ch.CF)((function(){return e.accountActivationRequired}))},username:{required:ch.C1},fullname:{required:ch.C1},password:{required:ch.C1},confirm:{required:ch.C1,sameAs:(0,ch.sH)(this.user.password)},reason:{required:(0,ch.CF)((function(){return e.accountApprovalRequired}))},language:{}}}},created:function(){(!this.registrationOpen&&!this.token||this.signedIn)&&this.$router.push({name:"root"}),this.setCaptcha()},computed:uh({token:function(){return this.$route.params.token},bioPlaceholder:function(){return this.replaceNewlines(this.$t("registration.bio_placeholder"))},reasonPlaceholder:function(){return this.replaceNewlines(this.$t("registration.reason_placeholder"))}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},signedIn:function(e){return!!e.users.currentUser},isPending:function(e){return e.users.signUpPending},serverValidationErrors:function(e){return e.users.signUpErrors},termsOfService:function(e){return e.instance.tos},accountActivationRequired:function(e){return e.instance.accountActivationRequired},accountApprovalRequired:function(e){return e.instance.accountApprovalRequired}})),methods:uh(uh({},(0,s.nv)(["signUp","getCaptcha"])),{},{submit:function(){var e=this;return(0,r.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.user.nickname=e.user.username,e.user.token=e.token,e.user.captcha_solution=e.captcha.solution,e.user.captcha_token=e.captcha.token,e.user.captcha_answer_data=e.captcha.answer_data,e.user.language&&(e.user.language=Ju.Z.internalToBackendLocale(e.user.language)),e.v$.$touch(),e.v$.$invalid){t.next=18;break}return t.prev=8,t.next=11,e.signUp(e.user);case 11:e.$router.push({name:"friends"}),t.next=18;break;case 14:t.prev=14,t.t0=t.catch(8),console.warn("Registration failed: ",t.t0),e.setCaptcha();case 18:case"end":return t.stop()}}),t,null,[[8,14]])})))()},setCaptcha:function(){var e=this;this.getCaptcha().then((function(t){e.captcha=t}))},replaceNewlines:function(e){return e.replace(/\s*\n\s*/g," \n")}})},ph=(0,Lr.Z)(dh,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("interface-language-switcher");return(0,lr.wg)(),(0,lr.iD)("div",wp,[(0,lr._)("div",bp,(0,ur.zw)(e.$t("registration.registration")),1),(0,lr._)("div",yp,[(0,lr._)("form",{class:"registration-form",onSubmit:t[10]||(t[10]=(0,or.iM)((function(t){return e.submit(e.user)}),["prevent"]))},[(0,lr._)("div",_p,[(0,lr._)("div",kp,[(0,lr._)("div",{class:(0,ur.C_)(["form-group",{"form-group--error":e.v$.user.username.$error}])},[(0,lr._)("label",Sp,(0,ur.zw)(e.$t("login.username")),1),(0,lr.wy)((0,lr._)("input",{id:"sign-up-username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.v$.user.username.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.username_placeholder")},null,8,jp),[[or.nr,e.v$.user.username.$model,void 0,{trim:!0}]])],2),e.v$.user.username.$dirty?((0,lr.wg)(),(0,lr.iD)("div",Op,[(0,lr._)("ul",null,[e.v$.user.username.required?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("li",Cp,[(0,lr._)("span",null,(0,ur.zw)(e.$t("registration.validations.username_required")),1)]))])])):(0,lr.kq)("",!0),(0,lr._)("div",{class:(0,ur.C_)(["form-group",{"form-group--error":e.v$.user.fullname.$error}])},[(0,lr._)("label",Pp,(0,ur.zw)(e.$t("registration.fullname")),1),(0,lr.wy)((0,lr._)("input",{id:"sign-up-fullname","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.v$.user.fullname.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.fullname_placeholder")},null,8,zp),[[or.nr,e.v$.user.fullname.$model,void 0,{trim:!0}]])],2),e.v$.user.fullname.$dirty?((0,lr.wg)(),(0,lr.iD)("div",Ip,[(0,lr._)("ul",null,[e.v$.user.fullname.required?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("li",Dp,[(0,lr._)("span",null,(0,ur.zw)(e.$t("registration.validations.fullname_required")),1)]))])])):(0,lr.kq)("",!0),(0,lr._)("div",{class:(0,ur.C_)(["form-group",{"form-group--error":e.v$.user.email.$error}])},[(0,lr._)("label",xp,(0,ur.zw)(e.accountActivationRequired?e.$t("registration.email"):e.$t("registration.email_optional")),1),(0,lr.wy)((0,lr._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.v$.user.email.$model=t}),disabled:e.isPending,class:"form-control",type:"email","aria-required":e.accountActivationRequired},null,8,Tp),[[or.nr,e.v$.user.email.$model]])],2),e.v$.user.email.$dirty?((0,lr.wg)(),(0,lr.iD)("div",$p,[(0,lr._)("ul",null,[e.v$.user.email.required?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("li",Up,[(0,lr._)("span",null,(0,ur.zw)(e.$t("registration.validations.email_required")),1)]))])])):(0,lr.kq)("",!0),(0,lr._)("div",Mp,[(0,lr._)("label",Ap,(0,ur.zw)(e.$t("registration.bio_optional")),1),(0,lr.wy)((0,lr._)("textarea",{id:"bio","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.user.bio=t}),disabled:e.isPending,class:"form-control",placeholder:e.bioPlaceholder},null,8,Lp),[[or.nr,e.user.bio]])]),(0,lr._)("div",{class:(0,ur.C_)(["form-group",{"form-group--error":e.v$.user.password.$error}])},[(0,lr._)("label",Ep,(0,ur.zw)(e.$t("login.password")),1),(0,lr.wy)((0,lr._)("input",{id:"sign-up-password","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.user.password=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,Fp),[[or.nr,e.user.password]])],2),e.v$.user.password.$dirty?((0,lr.wg)(),(0,lr.iD)("div",Rp,[(0,lr._)("ul",null,[e.v$.user.password.required?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("li",Np,[(0,lr._)("span",null,(0,ur.zw)(e.$t("registration.validations.password_required")),1)]))])])):(0,lr.kq)("",!0),(0,lr._)("div",{class:(0,ur.C_)(["form-group",{"form-group--error":e.v$.user.confirm.$error}])},[(0,lr._)("label",qp,(0,ur.zw)(e.$t("registration.password_confirm")),1),(0,lr.wy)((0,lr._)("input",{id:"sign-up-password-confirmation","onUpdate:modelValue":t[5]||(t[5]=function(t){return e.user.confirm=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,Zp),[[or.nr,e.user.confirm]])],2),e.v$.user.confirm.$dirty?((0,lr.wg)(),(0,lr.iD)("div",Wp,[(0,lr._)("ul",null,[e.v$.user.confirm.required.$invalid?((0,lr.wg)(),(0,lr.iD)("li",Bp,[(0,lr._)("span",null,(0,ur.zw)(e.$t("registration.validations.password_confirmation_required")),1)])):(0,lr.kq)("",!0),e.v$.user.confirm.sameAs.$invalid?((0,lr.wg)(),(0,lr.iD)("li",Hp,[(0,lr._)("span",null,(0,ur.zw)(e.$t("registration.validations.password_confirmation_match")),1)])):(0,lr.kq)("",!0)])])):(0,lr.kq)("",!0),(0,lr._)("div",{class:(0,ur.C_)(["form-group",{"form-group--error":e.v$.user.language.$error}])},[(0,lr.Wm)(s,{for:"email-language","prompt-text":e.$t("registration.email_language"),language:e.v$.user.language.$model,"set-language":function(t){return e.v$.user.language.$model=t}},null,8,["prompt-text","language","set-language"])],2),e.accountApprovalRequired?((0,lr.wg)(),(0,lr.iD)("div",Vp,[(0,lr._)("label",Kp,(0,ur.zw)(e.$t("registration.reason")),1),(0,lr.wy)((0,lr._)("textarea",{id:"reason","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.user.reason=t}),disabled:e.isPending,class:"form-control",placeholder:e.reasonPlaceholder},null,8,Gp),[[or.nr,e.user.reason]])])):(0,lr.kq)("",!0),"none"!=e.captcha.type?((0,lr.wg)(),(0,lr.iD)("div",Yp,[(0,lr._)("label",Jp,(0,ur.zw)(e.$t("registration.captcha")),1),["kocaptcha","native"].includes(e.captcha.type)?((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:0},[(0,lr._)("img",{src:e.captcha.url,onClick:t[7]||(t[7]=function(){return e.setCaptcha&&e.setCaptcha.apply(e,arguments)})},null,8,Qp),(0,lr._)("sub",null,(0,ur.zw)(e.$t("registration.new_captcha")),1),(0,lr.wy)((0,lr._)("input",{id:"captcha-answer","onUpdate:modelValue":t[8]||(t[8]=function(t){return e.captcha.solution=t}),disabled:e.isPending,class:"form-control",type:"text",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false"},null,8,Xp),[[or.nr,e.captcha.solution]])],64)):(0,lr.kq)("",!0)])):(0,lr.kq)("",!0),e.token?((0,lr.wg)(),(0,lr.iD)("div",eh,[(0,lr._)("label",th,(0,ur.zw)(e.$t("registration.token")),1),(0,lr.wy)((0,lr._)("input",{id:"token","onUpdate:modelValue":t[9]||(t[9]=function(t){return e.token=t}),disabled:"true",class:"form-control",type:"text"},null,512),[[or.nr,e.token]])])):(0,lr.kq)("",!0),(0,lr._)("div",nh,[(0,lr._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default"},(0,ur.zw)(e.$t("registration.register")),9,rh)])]),(0,lr._)("div",{class:"terms-of-service",innerHTML:e.termsOfService},null,8,oh)]),e.serverValidationErrors.length?((0,lr.wg)(),(0,lr.iD)("div",ih,[(0,lr._)("div",sh,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.serverValidationErrors,(function(e){return(0,lr.wg)(),(0,lr.iD)("span",{key:e},(0,ur.zw)(e),1)})),128))])])):(0,lr.kq)("",!0)],32)])])}]]);var hh={class:"settings panel panel-default"},mh={class:"panel-heading"},fh={class:"panel-body"},gh={class:"container"},vh={key:0},wh={key:0},bh={key:1},yh={key:1},_h={key:0},kh={class:"form-group text-center"},Sh={key:2},jh={key:0,class:"password-reset-required error"},Oh={class:"form-group"},Ch=["disabled","placeholder"],Ph={class:"form-group"},zh=["disabled"],Ih={key:3,class:"alert error notice-dismissible"};function Dh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.NBC);var Th={data:function(){return{user:{email:""},isPending:!1,success:!1,throttled:!1,error:null}},computed:xh(xh({},(0,s.rn)({signedIn:function(e){return!!e.users.currentUser},instance:function(e){return e.instance}})),{},{mailerEnabled:function(){return this.instance.mailerEnabled}}),created:function(){this.signedIn&&this.$router.push({name:"root"})},props:{passwordResetRequested:{default:!1,type:Boolean}},methods:{dismissError:function(){this.error=null},submit:function(){var e=this;this.isPending=!0;var t=this.user.email;(function(e){var t=e.instance,n={email:e.email},r=Le()(n,(function(e,t,n){var r="".concat(n,"=").concat(encodeURIComponent(t));return"".concat(e,"&").concat(r)}),""),o="".concat(t).concat("/auth/password","?").concat(r);return window.fetch(o,{method:"POST"})})({instance:this.instance.server,email:t}).then((function(t){var n=t.status;e.isPending=!1,e.user.email="",204===n?(e.success=!0,e.error=null):429===n&&(e.throttled=!0,e.error=e.$t("password_reset.too_many_requests"))})).catch((function(){e.isPending=!1,e.user.email="",e.error=e.$t("general.generic_error")}))}}};const $h=Th,Uh=(0,Lr.Z)($h,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("router-link"),a=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",hh,[(0,lr._)("div",mh,(0,ur.zw)(e.$t("password_reset.password_reset")),1),(0,lr._)("div",fh,[(0,lr._)("form",{class:"password-reset-form",onSubmit:t[2]||(t[2]=(0,or.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,lr._)("div",gh,[e.mailerEnabled?e.success||e.throttled?((0,lr.wg)(),(0,lr.iD)("div",yh,[e.success?((0,lr.wg)(),(0,lr.iD)("p",_h,(0,ur.zw)(e.$t("password_reset.check_email")),1)):(0,lr.kq)("",!0),(0,lr._)("div",kh,[(0,lr.Wm)(s,{to:{name:"root"}},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("password_reset.return_home")),1)]})),_:1})])])):((0,lr.wg)(),(0,lr.iD)("div",Sh,[e.passwordResetRequested?((0,lr.wg)(),(0,lr.iD)("p",jh,(0,ur.zw)(e.$t("password_reset.password_reset_required")),1)):(0,lr.kq)("",!0),(0,lr._)("p",null,(0,ur.zw)(e.$t("password_reset.instruction")),1),(0,lr._)("div",Oh,[(0,lr.wy)((0,lr._)("input",{ref:"email","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.email=t}),disabled:e.isPending,placeholder:e.$t("password_reset.placeholder"),class:"form-control",type:"input"},null,8,Ch),[[or.nr,e.user.email]])]),(0,lr._)("div",Ph,[(0,lr._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default btn-block"},(0,ur.zw)(e.$t("settings.save")),9,zh)])])):((0,lr.wg)(),(0,lr.iD)("div",vh,[e.passwordResetRequested?((0,lr.wg)(),(0,lr.iD)("p",wh,(0,ur.zw)(e.$t("password_reset.password_reset_required_but_mailer_is_disabled")),1)):((0,lr.wg)(),(0,lr.iD)("p",bh,(0,ur.zw)(e.$t("password_reset.password_reset_disabled")),1))])),e.error?((0,lr.wg)(),(0,lr.iD)("p",Ih,[(0,lr._)("span",null,(0,ur.zw)(e.error),1),(0,lr._)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[1]||(t[1]=(0,or.iM)((function(t){return e.dismissError()}),["prevent"]))},[(0,lr.Wm)(a,{icon:"times"})])])):(0,lr.kq)("",!0)])],32)])])}]]);var Mh={class:"settings panel panel-default"},Ah={class:"panel-heading"},Lh={class:"title"},Eh={class:"panel-body"},Fh={class:"follow-request-card-content-container"};const Rh={props:["user"],components:{BasicUserCard:Su.Z},methods:{findFollowRequestNotificationId:function(){var e=this,t=(0,K.Bt)(this.$store).find((function(t){return t.from_profile.id===e.user.id&&"follow_request"===t.type}));return t&&t.id},approveUser:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user);var e=this.findFollowRequestNotificationId();this.$store.dispatch("markSingleNotificationAsSeen",{id:e}),this.$store.dispatch("updateNotification",{id:e,updater:function(e){e.type="follow"}})},denyUser:function(){var e=this,t=this.findFollowRequestNotificationId();this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:t}),e.$store.dispatch("removeFollowRequest",e.user)}))}}},Nh={components:{FollowRequestCard:(0,Lr.Z)(Rh,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("basic-user-card");return(0,lr.wg)(),(0,lr.j4)(s,{user:e.user},{default:(0,lr.w5)((function(){return[(0,lr._)("div",Fh,[(0,lr._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.approveUser&&e.approveUser.apply(e,arguments)})},(0,ur.zw)(e.$t("user_card.approve")),1),(0,lr._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.denyUser&&e.denyUser.apply(e,arguments)})},(0,ur.zw)(e.$t("user_card.deny")),1)])]})),_:1},8,["user"])}]])},computed:{requests:function(){return this.$store.state.api.followRequests}}},qh=(0,Lr.Z)(Nh,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FollowRequestCard");return(0,lr.wg)(),(0,lr.iD)("div",Mh,[(0,lr._)("div",Ah,[(0,lr._)("div",Lh,(0,ur.zw)(e.$t("nav.friend_requests")),1)]),(0,lr._)("div",Eh,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.requests,(function(e){return(0,lr.wg)(),(0,lr.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]),Zh={props:["code"],mounted:function(){var e=this;if(this.code){var t=this.$store.state.oauth,n=t.clientId,r=t.clientSecret;qe.getToken({clientId:n,clientSecret:r,instance:this.$store.state.instance.server,code:this.code}).then((function(t){e.$store.commit("setToken",t.access_token),e.$store.dispatch("loginUser",t.access_token),e.$router.push({name:"friends"})}))}}},Wh=(0,Lr.Z)(Zh,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("h1",null,"...")}]]);var Bh={class:"panel panel-default"},Hh={class:"panel-heading"},Vh={class:"panel-body"};const Kh={components:{FollowCard:Dd},data:function(){return{users:[]}},mounted:function(){this.getWhoToFollow()},methods:{showWhoToFollow:function(e){var t=this;e.forEach((function(e,n){t.$store.state.api.backendInteractor.fetchUser({id:e.acct}).then((function(e){e.error||(t.$store.commit("addNewUsers",[e]),t.users.push(e))}))}))},getWhoToFollow:function(){var e=this,t=this.$store.state.users.currentUser.credentials;t&&m.ZP.suggestions({credentials:t}).then((function(t){e.showWhoToFollow(t)}))}}},Gh=(0,Lr.Z)(Kh,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FollowCard");return(0,lr.wg)(),(0,lr.iD)("div",Bh,[(0,lr._)("div",Hh,(0,ur.zw)(e.$t("who_to_follow.who_to_follow")),1),(0,lr._)("div",Vh,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.users,(function(e){return(0,lr.wg)(),(0,lr.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]);var Yh={class:"column-inner"},Jh={class:"panel panel-default"},Qh={class:"panel-body"},Xh=["innerHTML"];const em={computed:{content:function(){return this.$store.state.instance.tos}}},tm=(0,Lr.Z)(em,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("div",null,[(0,lr._)("div",Jh,[(0,lr._)("div",Qh,[(0,lr._)("div",{class:"tos-content",innerHTML:e.content},null,8,Xh)])])])}]]);var nm={class:"staff-panel"},rm={class:"panel panel-default base01-background"},om={class:"panel-heading timeline-heading base02-background"},im={class:"title"},sm={class:"panel-body"};function am(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?am(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):am(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const lm={created:function(){var e=this;this.$store.state.instance.staffAccounts.forEach((function(t){return e.$store.dispatch("fetchUserIfMissing",t)}))},components:{BasicUserCard:Su.Z},computed:cm(cm({groupedStaffAccounts:function(){var e=we()(this.staffAccounts,this.findUserByName).filter((function(e){return e})),t=Ot()(e,"role");return[{role:"admin",users:t.admin},{role:"moderator",users:t.moderator}].filter((function(e){return e.users}))}},(0,s.Se)(["findUserByName"])),(0,s.rn)({staffAccounts:function(e){return e.instance.staffAccounts}}))},um=(0,Lr.Z)(lm,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("basic-user-card");return(0,lr.wg)(),(0,lr.iD)("div",nm,[(0,lr._)("div",rm,[(0,lr._)("div",om,[(0,lr._)("div",im,(0,ur.zw)(e.$t("about.staff")),1)]),(0,lr._)("div",sm,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.groupedStaffAccounts,(function(t){return(0,lr.wg)(),(0,lr.iD)("div",{key:t.role,class:"staff-group"},[(0,lr._)("h4",null,(0,ur.zw)(e.$t("general.role."+t.role)),1),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(t.users,(function(e){return(0,lr.wg)(),(0,lr.j4)(s,{key:e.screen_name,user:e},null,8,["user"])})),128))])})),128))])])])}]]);var dm={key:0,class:"mrf-transparency-panel"},pm={class:"panel panel-default base01-background"},hm={class:"panel-heading timeline-heading base02-background"},mm={class:"title"},fm={class:"panel-body"},gm={class:"mrf-section"},vm=["textContent"],wm={key:0},bm={key:1},ym={key:0},_m={key:1},km={key:2},Sm={key:0},jm={key:1},Om={key:3},Cm={key:0},Pm={key:1},zm={key:4},Im={key:0},Dm={key:1},xm={key:5},Tm={key:0},$m={key:1},Um={key:6},Mm={key:0},Am={key:1},Lm={key:7},Em={key:8},Fm=["textContent"],Rm={key:9},Nm=["textContent"],qm={key:10};function Zm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zm(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zm(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Bm=function(e,t,n){return e.map((function(e){return t[n]&&t[n][e]&&t[n][e].reason?{instance:e,reason:t[n][e].reason}:{instance:e,reason:""}}))};const Hm={computed:Wm(Wm({},(0,s.rn)({federationPolicy:function(e){return xt()(e,"instance.federationPolicy")},mrfPolicies:function(e){return xt()(e,"instance.federationPolicy.mrf_policies",[])},quarantineInstances:function(e){return Bm(xt()(e,"instance.federationPolicy.quarantined_instances",[]),xt()(e,"instance.federationPolicy.quarantined_instances_info",[]),"quarantined_instances")},acceptInstances:function(e){return Bm(xt()(e,"instance.federationPolicy.mrf_simple.accept",[]),xt()(e,"instance.federationPolicy.mrf_simple_info",[]),"accept")},rejectInstances:function(e){return Bm(xt()(e,"instance.federationPolicy.mrf_simple.reject",[]),xt()(e,"instance.federationPolicy.mrf_simple_info",[]),"reject")},ftlRemovalInstances:function(e){return Bm(xt()(e,"instance.federationPolicy.mrf_simple.federated_timeline_removal",[]),xt()(e,"instance.federationPolicy.mrf_simple_info",[]),"federated_timeline_removal")},mediaNsfwInstances:function(e){return Bm(xt()(e,"instance.federationPolicy.mrf_simple.media_nsfw",[]),xt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_nsfw")},mediaRemovalInstances:function(e){return Bm(xt()(e,"instance.federationPolicy.mrf_simple.media_removal",[]),xt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_removal")},keywordsFtlRemoval:function(e){return xt()(e,"instance.federationPolicy.mrf_keyword.federated_timeline_removal",[])},keywordsReject:function(e){return xt()(e,"instance.federationPolicy.mrf_keyword.reject",[])},keywordsReplace:function(e){return xt()(e,"instance.federationPolicy.mrf_keyword.replace",[])}})),{},{hasInstanceSpecificPolicies:function(){return this.quarantineInstances.length||this.acceptInstances.length||this.rejectInstances.length||this.ftlRemovalInstances.length||this.mediaNsfwInstances.length||this.mediaRemovalInstances.length},hasKeywordPolicies:function(){return this.keywordsFtlRemoval.length||this.keywordsReject.length||this.keywordsReplace.length}})},Vm={components:{InstanceSpecificPanel:mi,FeaturesPanel:Pi,TermsOfServicePanel:tm,StaffPanel:um,MRFTransparencyPanel:(0,Lr.Z)(Hm,[["render",function(e,t,n,r,o,i){return e.federationPolicy?((0,lr.wg)(),(0,lr.iD)("div",dm,[(0,lr._)("div",pm,[(0,lr._)("div",hm,[(0,lr._)("div",mm,(0,ur.zw)(e.$t("about.mrf.federation")),1)]),(0,lr._)("div",fm,[(0,lr._)("div",gm,[(0,lr._)("h2",null,(0,ur.zw)(e.$t("about.mrf.mrf_policies")),1),(0,lr._)("p",null,(0,ur.zw)(e.$t("about.mrf.mrf_policies_desc")),1),(0,lr._)("ul",null,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.mrfPolicies,(function(e){return(0,lr.wg)(),(0,lr.iD)("li",{key:e,textContent:(0,ur.zw)(e)},null,8,vm)})),128))]),e.hasInstanceSpecificPolicies?((0,lr.wg)(),(0,lr.iD)("h2",wm,(0,ur.zw)(e.$t("about.mrf.simple.simple_policies")),1)):(0,lr.kq)("",!0),e.acceptInstances.length?((0,lr.wg)(),(0,lr.iD)("div",bm,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.simple.accept")),1),(0,lr._)("p",null,(0,ur.zw)(e.$t("about.mrf.simple.accept_desc")),1),(0,lr._)("table",null,[(0,lr._)("tr",null,[(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.instance")),1),(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.acceptInstances,(function(t){return(0,lr.wg)(),(0,lr.iD)("tr",{key:t.instance+"_accept"},[(0,lr._)("td",null,(0,ur.zw)(t.instance),1),""===t.reason?((0,lr.wg)(),(0,lr.iD)("td",ym,(0,ur.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,lr.wg)(),(0,lr.iD)("td",_m,(0,ur.zw)(t.reason),1))])})),128))])])):(0,lr.kq)("",!0),e.rejectInstances.length?((0,lr.wg)(),(0,lr.iD)("div",km,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.simple.reject")),1),(0,lr._)("p",null,(0,ur.zw)(e.$t("about.mrf.simple.reject_desc")),1),(0,lr._)("table",null,[(0,lr._)("tr",null,[(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.instance")),1),(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.rejectInstances,(function(t){return(0,lr.wg)(),(0,lr.iD)("tr",{key:t.instance+"_reject"},[(0,lr._)("td",null,(0,ur.zw)(t.instance),1),""===t.reason?((0,lr.wg)(),(0,lr.iD)("td",Sm,(0,ur.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,lr.wg)(),(0,lr.iD)("td",jm,(0,ur.zw)(t.reason),1))])})),128))])])):(0,lr.kq)("",!0),e.quarantineInstances.length?((0,lr.wg)(),(0,lr.iD)("div",Om,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.simple.quarantine")),1),(0,lr._)("p",null,(0,ur.zw)(e.$t("about.mrf.simple.quarantine_desc")),1),(0,lr._)("table",null,[(0,lr._)("tr",null,[(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.instance")),1),(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.quarantineInstances,(function(t){return(0,lr.wg)(),(0,lr.iD)("tr",{key:t.instance+"_quarantine"},[(0,lr._)("td",null,(0,ur.zw)(t.instance),1),""===t.reason?((0,lr.wg)(),(0,lr.iD)("td",Cm,(0,ur.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,lr.wg)(),(0,lr.iD)("td",Pm,(0,ur.zw)(t.reason),1))])})),128))])])):(0,lr.kq)("",!0),e.ftlRemovalInstances.length?((0,lr.wg)(),(0,lr.iD)("div",zm,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.simple.ftl_removal")),1),(0,lr._)("p",null,(0,ur.zw)(e.$t("about.mrf.simple.ftl_removal_desc")),1),(0,lr._)("table",null,[(0,lr._)("tr",null,[(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.instance")),1),(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.ftlRemovalInstances,(function(t){return(0,lr.wg)(),(0,lr.iD)("tr",{key:t.instance+"_ftl_removal"},[(0,lr._)("td",null,(0,ur.zw)(t.instance),1),""===t.reason?((0,lr.wg)(),(0,lr.iD)("td",Im,(0,ur.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,lr.wg)(),(0,lr.iD)("td",Dm,(0,ur.zw)(t.reason),1))])})),128))])])):(0,lr.kq)("",!0),e.mediaNsfwInstances.length?((0,lr.wg)(),(0,lr.iD)("div",xm,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.simple.media_nsfw")),1),(0,lr._)("p",null,(0,ur.zw)(e.$t("about.mrf.simple.media_nsfw_desc")),1),(0,lr._)("table",null,[(0,lr._)("tr",null,[(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.instance")),1),(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.mediaNsfwInstances,(function(t){return(0,lr.wg)(),(0,lr.iD)("tr",{key:t.instance+"_media_nsfw"},[(0,lr._)("td",null,(0,ur.zw)(t.instance),1),""===t.reason?((0,lr.wg)(),(0,lr.iD)("td",Tm,(0,ur.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,lr.wg)(),(0,lr.iD)("td",$m,(0,ur.zw)(t.reason),1))])})),128))])])):(0,lr.kq)("",!0),e.mediaRemovalInstances.length?((0,lr.wg)(),(0,lr.iD)("div",Um,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.simple.media_removal")),1),(0,lr._)("p",null,(0,ur.zw)(e.$t("about.mrf.simple.media_removal_desc")),1),(0,lr._)("table",null,[(0,lr._)("tr",null,[(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.instance")),1),(0,lr._)("th",null,(0,ur.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.mediaRemovalInstances,(function(t){return(0,lr.wg)(),(0,lr.iD)("tr",{key:t.instance+"_media_removal"},[(0,lr._)("td",null,(0,ur.zw)(t.instance),1),""===t.reason?((0,lr.wg)(),(0,lr.iD)("td",Mm,(0,ur.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,lr.wg)(),(0,lr.iD)("td",Am,(0,ur.zw)(t.reason),1))])})),128))])])):(0,lr.kq)("",!0),e.hasKeywordPolicies?((0,lr.wg)(),(0,lr.iD)("h2",Lm,(0,ur.zw)(e.$t("about.mrf.keyword.keyword_policies")),1)):(0,lr.kq)("",!0),e.keywordsFtlRemoval.length?((0,lr.wg)(),(0,lr.iD)("div",Em,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.keyword.ftl_removal")),1),(0,lr._)("ul",null,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.keywordsFtlRemoval,(function(e){return(0,lr.wg)(),(0,lr.iD)("li",{key:e,textContent:(0,ur.zw)(e)},null,8,Fm)})),128))])])):(0,lr.kq)("",!0),e.keywordsReject.length?((0,lr.wg)(),(0,lr.iD)("div",Rm,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.keyword.reject")),1),(0,lr._)("ul",null,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.keywordsReject,(function(e){return(0,lr.wg)(),(0,lr.iD)("li",{key:e,textContent:(0,ur.zw)(e)},null,8,Nm)})),128))])])):(0,lr.kq)("",!0),e.keywordsReplace.length?((0,lr.wg)(),(0,lr.iD)("div",qm,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("about.mrf.keyword.replace")),1),(0,lr._)("ul",null,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.keywordsReplace,(function(t){return(0,lr.wg)(),(0,lr.iD)("li",{key:t},(0,ur.zw)(t.pattern)+" "+(0,ur.zw)(e.$t("about.mrf.keyword.is_replaced_by"))+" "+(0,ur.zw)(t.replacement),1)})),128))])])):(0,lr.kq)("",!0)])])])])):(0,lr.kq)("",!0)}]])},computed:{showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent}}},Km=(0,Lr.Z)(Vm,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("instance-specific-panel"),a=(0,lr.up)("staff-panel"),c=(0,lr.up)("terms-of-service-panel"),l=(0,lr.up)("MRFTransparencyPanel"),u=(0,lr.up)("features-panel");return(0,lr.wg)(),(0,lr.iD)("div",Yh,[e.showInstanceSpecificPanel?((0,lr.wg)(),(0,lr.j4)(s,{key:0})):(0,lr.kq)("",!0),(0,lr.Wm)(a),(0,lr.Wm)(c),(0,lr.Wm)(l),e.showFeaturesPanel?((0,lr.wg)(),(0,lr.j4)(u,{key:1})):(0,lr.kq)("",!0)])}]]);var Gm={class:"panel panel-default"},Ym={class:"panel-heading"},Jm={class:"panel-body"},Qm={key:0};const Xm={data:function(){return{error:!1}},mounted:function(){this.redirect()},methods:{redirect:function(){var e=this,t=this.$route.params.username+"@"+this.$route.params.hostname;this.$store.state.api.backendInteractor.fetchUser({id:t}).then((function(t){if(t.error)e.error=!0;else{e.$store.commit("addNewUsers",[t]);var n=t.id;e.$router.replace({name:"external-user-profile",params:{id:n}})}})).catch((function(){e.error=!0}))}}},ef=(0,Lr.Z)(Xm,[["render",function(e,t,n,r,o,i){return(0,lr.wg)(),(0,lr.iD)("div",Gm,[(0,lr._)("div",Ym,(0,ur.zw)(e.$t("remote_user_resolver.remote_user_resolver")),1),(0,lr._)("div",Jm,[(0,lr._)("p",null,(0,ur.zw)(e.$t("remote_user_resolver.searching_for"))+" @"+(0,ur.zw)(e.$route.params.username)+"@"+(0,ur.zw)(e.$route.params.hostname),1),e.error?((0,lr.wg)(),(0,lr.iD)("p",Qm,(0,ur.zw)(e.$t("remote_user_resolver.error")),1)):(0,lr.kq)("",!0)])])}]]);var tf={class:"Lists panel panel-default"},nf={class:"panel-heading"},rf={class:"title"},of={class:"panel-body"},sf={class:"list-card"};Rt.vI.add(Nt.cNd);const af={props:["list"]},cf={data:function(){return{isNew:!1}},components:{ListsCard:(0,Lr.Z)(af,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("router-link"),a=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",sf,[(0,lr.Wm)(s,{to:{name:"lists-timeline",params:{id:e.list.id}},class:"list-name"},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.list.title),1)]})),_:1},8,["to"]),(0,lr.Wm)(s,{to:{name:"lists-edit",params:{id:e.list.id}},class:"button-list-edit"},{default:(0,lr.w5)((function(){return[(0,lr.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"ellipsis-h"})]})),_:1},8,["to"])])}]])},computed:{lists:function(){return this.$store.state.lists.allLists}},methods:{cancelNewList:function(){this.isNew=!1},newList:function(){this.isNew=!0}}},lf=(0,Lr.Z)(cf,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("router-link"),a=(0,lr.up)("ListsCard");return(0,lr.wg)(),(0,lr.iD)("div",tf,[(0,lr._)("div",nf,[(0,lr._)("div",rf,(0,ur.zw)(e.$t("lists.lists")),1),(0,lr.Wm)(s,{to:{name:"lists-new"},class:"button-default btn new-list-button"},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("lists.new")),1)]})),_:1})]),(0,lr._)("div",of,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.lists.slice().reverse(),(function(e){return(0,lr.wg)(),(0,lr.j4)(a,{key:e,list:e,class:"list-item"},null,8,["list"])})),128))])])}]]),uf=lf,df={data:function(){return{listId:null}},components:{Timeline:gl},computed:{timeline:function(){return this.$store.state.statuses.timelines.list}},watch:{$route:function(e){"lists-timeline"===e.name&&e.params.id!==this.listId&&(this.listId=e.params.id,this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"}),this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId}))}},created:function(){this.listId=this.$route.params.id,this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"})}},pf=(0,Lr.Z)(df,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Timeline");return(0,lr.wg)(),(0,lr.j4)(s,{title:"list.name",timeline:e.timeline,"list-id":e.listId,"timeline-name":"list"},null,8,["timeline","list-id"])}]]);var hf={class:"panel-default panel ListEdit"},mf={ref:"header",class:"panel-heading list-edit-heading"},ff={class:"title"},gf={class:"panel-body"},vf={class:"input-wrap"},wf={for:"list-edit-title"},bf=["label"],yf={class:"users-list"},_f=["onClick"],kf=["label"],Sf={key:0,class:"loading"},jf={key:1,class:"users-list"},Of={key:0},Cf=["onClick"],Pf=["onClick"],zf={class:"panel-footer"},If=(0,lr._)("span",{class:"spacer"},null,-1),Df={class:"ListsUserSearch"},xf={class:"input-wrap"},Tf={class:"input-search"},$f=["placeholder"],Uf={class:"input-wrap"};Rt.vI.add(Nt.wn1,Nt.A35);const Mf={components:{Checkbox:oi.Z},emits:["loading","loadingDone","results"],data:function(){return{loading:!1,query:"",followingOnly:!0}},methods:{onInput:Bs()((function(){this.search(this.query)}),2e3),search:function(e){var t=this;e?(this.loading=!0,this.$emit("loading"),this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts",following:this.followingOnly}).then((function(e){t.$emit("results",e.accounts.map((function(e){return e.id})))})).finally((function(){t.loading=!1,t.$emit("loadingDone")}))):this.loading=!1}}},Af=(0,Lr.Z)(Mf,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("Checkbox");return(0,lr.wg)(),(0,lr.iD)("div",Df,[(0,lr._)("div",xf,[(0,lr._)("div",Tf,[(0,lr.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,lr.wy)((0,lr._)("input",{ref:"search","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.query=t}),placeholder:e.$t("lists.search"),onInput:t[1]||(t[1]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,40,$f),[[or.nr,e.query]])]),(0,lr._)("div",Uf,[(0,lr.Wm)(a,{modelValue:e.followingOnly,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.followingOnly=t}),onChange:e.onInput},{default:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.$t("lists.following_only")),1)]})),_:1},8,["modelValue","onChange"])])])}]]);var Lf=n(96786);function Ef(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ff(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ef(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ef(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Rt.vI.add(Nt.wn1,Nt.A35);var Rf={components:{BasicUserCard:Su.Z,UserAvatar:su.default,ListsUserSearch:Af,TabSwitcher:El.Z,PanelLoading:Lf.Z},data:function(){return{title:"",titleDraft:"",membersUserIds:[],removedUserIds:new Set([]),searchUserIds:[],addedUserIds:new Set([]),searchLoading:!1,reallyDelete:!1}},created:function(){var e=this;this.id&&(this.$store.dispatch("fetchList",{listId:this.id}).then((function(){e.title=e.findListTitle(e.id),e.titleDraft=e.title})),this.$store.dispatch("fetchListAccounts",{listId:this.id}).then((function(){e.membersUserIds=e.findListAccounts(e.id),e.membersUserIds.forEach((function(t){e.$store.dispatch("fetchUserIfMissing",t)}))})))},computed:Ff(Ff({id:function(){return this.$route.params.id},membersUsers:function(){var e=this;return[].concat((0,u.Z)(this.membersUserIds),(0,u.Z)(this.addedUserIds)).map((function(t){return e.findUser(t)})).filter((function(e){return e}))},searchUsers:function(){var e=this;return this.searchUserIds.map((function(t){return e.findUser(t)})).filter((function(e){return e}))}},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["findUser","findListTitle","findListAccounts"])),methods:{onInput:function(){this.search(this.query)},toggleRemoveMember:function(e){this.removedUserIds.has(e.id)?(this.id&&this.addUser(e),this.removedUserIds.delete(e.id)):(this.id&&this.removeUser(e.id),this.removedUserIds.add(e.id))},toggleAddFromSearch:function(e){this.addedUserIds.has(e.id)?(this.id&&this.removeUser(e.id),this.addedUserIds.delete(e.id)):(this.id&&this.addUser(e),this.addedUserIds.add(e.id))},isRemoved:function(e){return this.removedUserIds.has(e.id)},isAdded:function(e){return this.addedUserIds.has(e.id)},addUser:function(e){this.$store.dispatch("addListAccount",{accountId:this.user.id,listId:this.id})},removeUser:function(e){this.$store.dispatch("removeListAccount",{accountId:this.user.id,listId:this.id})},onSearchLoading:function(e){this.searchLoading=!0},onSearchLoadingDone:function(e){this.searchLoading=!1},onSearchResults:function(e){this.searchLoading=!1,this.searchUserIds=e},updateListTitle:function(){var e=this;this.$store.dispatch("setList",{listId:this.id,title:this.titleDraft}).then((function(){e.title=e.findListTitle(e.id)}))},createList:function(){var e=this;this.$store.dispatch("createList",{title:this.titleDraft}).then((function(t){return e.$store.dispatch("setListAccounts",{listId:t.id,accountIds:(0,u.Z)(e.addedUserIds)}).then((function(){return t.id}))})).then((function(t){e.$router.push({name:"lists-timeline",params:{id:t}})})).catch((function(t){e.$store.dispatch("pushGlobalNotice",{messageKey:"lists.error",messageArgs:[t.message],level:"error"})}))},deleteList:function(){this.$store.dispatch("deleteList",{listId:this.id}),this.$router.push({name:"lists"})}}};const Nf=Rf,qf=(0,Lr.Z)(Nf,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("FAIcon"),a=(0,lr.up)("i18n-t"),c=(0,lr.up)("BasicUserCard"),l=(0,lr.up)("ListsUserSearch"),u=(0,lr.up)("PanelLoading"),d=(0,lr.up)("tab-switcher");return(0,lr.wg)(),(0,lr.iD)("div",hf,[(0,lr._)("div",mf,[(0,lr._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){var t;return e.$router.back&&(t=e.$router).back.apply(t,arguments)})},[(0,lr.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,lr._)("div",ff,[e.id?((0,lr.wg)(),(0,lr.j4)(a,{key:0,keypath:"lists.editing_list"},{listTitle:(0,lr.w5)((function(){return[(0,lr.Uk)((0,ur.zw)(e.title),1)]})),_:1})):((0,lr.wg)(),(0,lr.j4)(a,{key:1,keypath:"lists.creating_list"}))])],512),(0,lr._)("div",gf,[(0,lr._)("div",vf,[(0,lr._)("label",wf,(0,ur.zw)(e.$t("lists.title")),1),(0,lr.Uk)(" "+(0,ur.zw)(" ")+" "),(0,lr.wy)((0,lr._)("input",{id:"list-edit-title",ref:"title","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.titleDraft=t})},null,512),[[or.nr,e.titleDraft]]),e.id?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"btn button-default follow-button",onClick:t[2]||(t[2]=function(){return e.updateListTitle&&e.updateListTitle.apply(e,arguments)})},(0,ur.zw)(e.$t("lists.update_title")),1)):(0,lr.kq)("",!0)]),(0,lr.Wm)(d,{class:"list-member-management","scrollable-tabs":!0},{default:(0,lr.w5)((function(){return[e.id||e.addedUserIds.size>0?((0,lr.wg)(),(0,lr.iD)("div",{key:0,label:e.$t("lists.manage_members"),class:"members-list"},[(0,lr._)("div",yf,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.membersUsers,(function(t){return(0,lr.wg)(),(0,lr.iD)("div",{key:t.id,class:"member"},[(0,lr.Wm)(c,{user:t},{default:(0,lr.w5)((function(){return[(0,lr._)("button",{class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,ur.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,_f)]})),_:2},1032,["user"])])})),128))])],8,bf)):(0,lr.kq)("",!0),(0,lr._)("div",{class:"search-list",label:e.$t("lists.add_members")},[(0,lr.Wm)(l,{onResults:e.onSearchResults,onLoading:e.onSearchLoading,onLoadingDone:e.onSearchLoadingDone},null,8,["onResults","onLoading","onLoadingDone"]),e.searchLoading?((0,lr.wg)(),(0,lr.iD)("div",Sf,[(0,lr.Wm)(u)])):((0,lr.wg)(),(0,lr.iD)("div",jf,[((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.searchUsers,(function(t){return(0,lr.wg)(),(0,lr.iD)("div",{key:t.id,class:"member"},[(0,lr.Wm)(c,{user:t},{default:(0,lr.w5)((function(){return[e.membersUserIds.includes(t.id)?((0,lr.wg)(),(0,lr.iD)("span",Of,(0,ur.zw)(e.$t("lists.is_in_list")),1)):(0,lr.kq)("",!0),e.membersUserIds.includes(t.id)?((0,lr.wg)(),(0,lr.iD)("button",{key:2,class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,ur.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,Pf)):((0,lr.wg)(),(0,lr.iD)("button",{key:1,class:"btn button-default follow-button",onClick:function(n){return e.toggleAddFromSearch(t)}},(0,ur.zw)(e.isAdded(t)?e.$t("general.undo"):e.$t("lists.add_to_list")),9,Cf))]})),_:2},1032,["user"])])})),128))]))],8,kf)]})),_:1})]),(0,lr._)("div",zf,[If,e.id?e.reallyDelete?((0,lr.wg)(),(0,lr.iD)(lr.HY,{key:2},[(0,lr.Uk)((0,ur.zw)(e.$t("lists.really_delete"))+" ",1),(0,lr._)("button",{class:"btn button-default footer-button",onClick:t[5]||(t[5]=function(){return e.deleteList&&e.deleteList.apply(e,arguments)})},(0,ur.zw)(e.$t("general.yes")),1),(0,lr._)("button",{class:"btn button-default footer-button",onClick:t[6]||(t[6]=function(t){return e.reallyDelete=!1})},(0,ur.zw)(e.$t("general.no")),1)],64)):((0,lr.wg)(),(0,lr.iD)("button",{key:1,class:"btn button-default footer-button",onClick:t[4]||(t[4]=function(t){return e.reallyDelete=!0})},(0,ur.zw)(e.$t("lists.delete")),1)):((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:"btn button-default footer-button",onClick:t[3]||(t[3]=function(){return e.createList&&e.createList.apply(e,arguments)})},(0,ur.zw)(e.$t("lists.create")),1))])])}]]);var Zf={class:"panel panel-default announcements-page"},Wf={class:"panel-heading"},Bf={class:"panel-body"},Hf={key:0},Vf={class:"post-form"},Kf={class:"heading"},Gf={class:"body"},Yf={class:"footer"},Jf=["disabled"],Qf={key:0,class:"alert error"},Xf={class:"announcement"},eg={class:"heading"},tg={class:"body"},ng={class:"footer"},rg={key:0,class:"times"},og={key:0},ig={key:1},sg={key:2},ag={key:1,class:"actions"},cg=["disabled","title"],lg={key:2,class:"actions"},ug={key:0,class:"alert error"},dg={class:"announcement-editor"},pg=["placeholder","disabled"],hg={class:"announcement-metadata"},mg={for:"announcement-start-time"},fg=["type","disabled"],gg={class:"announcement-metadata"},vg={for:"announcement-end-time"},wg=["type","disabled"],bg={class:"announcement-metadata"},yg={for:"announcement-all-day"};const _g={components:{Checkbox:oi.Z},props:{announcement:Object,disabled:Boolean}},kg=(0,Lr.Z)(_g,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("Checkbox");return(0,lr.wg)(),(0,lr.iD)("div",dg,[(0,lr.wy)((0,lr._)("textarea",{ref:"textarea","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.announcement.content=t}),class:"post-textarea",rows:"1",cols:"1",placeholder:e.$t("announcements.post_placeholder"),disabled:e.disabled},null,8,pg),[[or.nr,e.announcement.content]]),(0,lr._)("span",hg,[(0,lr._)("label",mg,(0,ur.zw)(e.$t("announcements.start_time_prompt")),1),(0,lr.wy)((0,lr._)("input",{id:"announcement-start-time","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.announcement.startsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,fg),[[or.YZ,e.announcement.startsAt]])]),(0,lr._)("span",gg,[(0,lr._)("label",vg,(0,ur.zw)(e.$t("announcements.end_time_prompt")),1),(0,lr.wy)((0,lr._)("input",{id:"announcement-end-time","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.announcement.endsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,wg),[[or.YZ,e.announcement.endsAt]])]),(0,lr._)("span",bg,[(0,lr.Wm)(s,{id:"announcement-all-day",modelValue:e.announcement.allDay,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.announcement.allDay=t}),disabled:e.disabled},null,8,["modelValue","disabled"]),(0,lr._)("label",yg,(0,ur.zw)(e.$t("announcements.all_day_prompt")),1)])])}]]);function Sg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Og={components:{AnnouncementEditor:kg,RichContent:uu.Z},data:function(){return{editing:!1,editedAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:void 0},editError:""}},props:{announcement:Object},computed:jg(jg({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{content:function(){return this.announcement.content},isRead:function(){return this.announcement.read},publishedAt:function(){var e=this.announcement.published_at;if(e)return this.formatTimeOrDate(e,Ju.Z.internalToBrowserLocale(this.$i18n.locale))},startsAt:function(){var e=this.announcement.starts_at;if(e)return this.formatTimeOrDate(e,Ju.Z.internalToBrowserLocale(this.$i18n.locale))},endsAt:function(){var e=this.announcement.ends_at;if(e)return this.formatTimeOrDate(e,Ju.Z.internalToBrowserLocale(this.$i18n.locale))},inactive:function(){return this.announcement.inactive}}),methods:{markAsRead:function(){if(!this.isRead)return this.$store.dispatch("markAnnouncementAsRead",this.announcement.id)},deleteAnnouncement:function(){return this.$store.dispatch("deleteAnnouncement",this.announcement.id)},formatTimeOrDate:function(e,t){var n=new Date(e);return this.announcement.all_day?n.toLocaleDateString(t):n.toLocaleString(t)},enterEditMode:function(){this.editedAnnouncement.content=this.announcement.pleroma.raw_content,this.editedAnnouncement.startsAt=this.announcement.starts_at,this.editedAnnouncement.endsAt=this.announcement.ends_at,this.editedAnnouncement.allDay=this.announcement.all_day,this.editing=!0},submitEdit:function(){var e=this;this.$store.dispatch("editAnnouncement",jg({id:this.announcement.id},this.editedAnnouncement)).then((function(){e.editing=!1})).catch((function(t){e.editError=t.error}))},cancelEdit:function(){this.editing=!1},clearError:function(){this.editError=void 0}}};function Cg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const zg={components:{Announcement:(0,Lr.Z)(Og,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("rich-content"),a=(0,lr.up)("announcement-editor"),c=(0,lr.up)("FAIcon");return(0,lr.wg)(),(0,lr.iD)("div",Xf,[(0,lr._)("div",eg,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("announcements.title")),1)]),(0,lr._)("div",tg,[e.editing?((0,lr.wg)(),(0,lr.j4)(a,{key:1,announcement:e.editedAnnouncement},null,8,["announcement"])):((0,lr.wg)(),(0,lr.j4)(s,{key:0,html:e.content,emoji:e.announcement.emojis,"handle-links":!0},null,8,["html","emoji"]))]),(0,lr._)("div",ng,[e.editing?(0,lr.kq)("",!0):((0,lr.wg)(),(0,lr.iD)("div",rg,[e.publishedAt?((0,lr.wg)(),(0,lr.iD)("span",og,(0,ur.zw)(e.$t("announcements.published_time_display",{time:e.publishedAt})),1)):(0,lr.kq)("",!0),e.startsAt?((0,lr.wg)(),(0,lr.iD)("span",ig,(0,ur.zw)(e.$t("announcements.start_time_display",{time:e.startsAt})),1)):(0,lr.kq)("",!0),e.endsAt?((0,lr.wg)(),(0,lr.iD)("span",sg,(0,ur.zw)(e.$t("announcements.end_time_display",{time:e.endsAt})),1)):(0,lr.kq)("",!0)])),e.editing?((0,lr.wg)(),(0,lr.iD)("div",lg,[(0,lr._)("button",{class:"btn button-default",onClick:t[3]||(t[3]=function(){return e.submitEdit&&e.submitEdit.apply(e,arguments)})},(0,ur.zw)(e.$t("announcements.submit_edit_action")),1),(0,lr._)("button",{class:"btn button-default",onClick:t[4]||(t[4]=function(){return e.cancelEdit&&e.cancelEdit.apply(e,arguments)})},(0,ur.zw)(e.$t("announcements.cancel_edit_action")),1),e.editing&&e.editError?((0,lr.wg)(),(0,lr.iD)("div",ug,[(0,lr.Uk)((0,ur.zw)(e.$t("announcements.edit_error",{error:e.error}))+" ",1),(0,lr._)("button",{class:"button-unstyled",onClick:t[5]||(t[5]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,lr.Wm)(c,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,lr.kq)("",!0)])):((0,lr.wg)(),(0,lr.iD)("div",ag,[e.currentUser?((0,lr.wg)(),(0,lr.iD)("button",{key:0,class:(0,ur.C_)(["btn button-default",{toggled:e.isRead}]),disabled:e.inactive,title:e.inactive?e.$t("announcements.inactive_message"):"",onClick:t[0]||(t[0]=function(){return e.markAsRead&&e.markAsRead.apply(e,arguments)})},(0,ur.zw)(e.$t("announcements.mark_as_read_action")),11,cg)):(0,lr.kq)("",!0),e.currentUser&&"admin"===e.currentUser.role?((0,lr.wg)(),(0,lr.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.enterEditMode&&e.enterEditMode.apply(e,arguments)})},(0,ur.zw)(e.$t("announcements.edit_action")),1)):(0,lr.kq)("",!0),e.currentUser&&"admin"===e.currentUser.role?((0,lr.wg)(),(0,lr.iD)("button",{key:2,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.deleteAnnouncement&&e.deleteAnnouncement.apply(e,arguments)})},(0,ur.zw)(e.$t("announcements.delete_action")),1)):(0,lr.kq)("",!0)]))])])}]]),AnnouncementEditor:kg},data:function(){return{newAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:!1},posting:!1,error:void 0}},mounted:function(){this.$store.dispatch("fetchAnnouncements")},computed:Pg(Pg({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{announcements:function(){return this.$store.state.announcements.announcements}}),methods:{postAnnouncement:function(){var e=this;this.posting=!0,this.$store.dispatch("postAnnouncement",this.newAnnouncement).then((function(){e.newAnnouncement.content="",e.startsAt=void 0,e.endsAt=void 0})).catch((function(t){e.error=t.error})).finally((function(){e.posting=!1}))},clearError:function(){this.error=void 0}}},Ig=(0,Lr.Z)(zg,[["render",function(e,t,n,r,o,i){var s=(0,lr.up)("announcement-editor"),a=(0,lr.up)("FAIcon"),c=(0,lr.up)("announcement");return(0,lr.wg)(),(0,lr.iD)("div",Zf,[(0,lr._)("div",Wf,[(0,lr._)("span",null,(0,ur.zw)(e.$t("announcements.page_header")),1)]),(0,lr._)("div",Bf,[e.currentUser&&"admin"===e.currentUser.role?((0,lr.wg)(),(0,lr.iD)("section",Hf,[(0,lr._)("div",Vf,[(0,lr._)("div",Kf,[(0,lr._)("h4",null,(0,ur.zw)(e.$t("announcements.post_form_header")),1)]),(0,lr._)("div",Gf,[(0,lr.Wm)(s,{announcement:e.newAnnouncement,disabled:e.posting},null,8,["announcement","disabled"])]),(0,lr._)("div",Yf,[(0,lr._)("button",{class:"btn button-default post-button",disabled:e.posting,onClick:t[0]||(t[0]=(0,or.iM)((function(){return e.postAnnouncement&&e.postAnnouncement.apply(e,arguments)}),["prevent"]))},(0,ur.zw)(e.$t("announcements.post_action")),9,Jf),e.error?((0,lr.wg)(),(0,lr.iD)("div",Qf,[(0,lr.Uk)((0,ur.zw)(e.$t("announcements.post_error",{error:e.error}))+" ",1),(0,lr._)("button",{class:"button-unstyled",onClick:t[1]||(t[1]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,lr.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,lr.kq)("",!0)])])])):(0,lr.kq)("",!0),((0,lr.wg)(!0),(0,lr.iD)(lr.HY,null,(0,lr.Ko)(e.announcements,(function(e){return(0,lr.wg)(),(0,lr.iD)("section",{key:e.id},[(0,lr.Wm)(c,{announcement:e},null,8,["announcement"])])})),128))])])}]]),Dg=function(e){var t=function(t,n,r){e.state.users.currentUser?r():r(e.state.instance.redirectRootNoLogin||"/main/all")},n=[{name:"root",path:"/",redirect:function(t){return(e.state.users.currentUser?e.state.instance.redirectRootLogin:e.state.instance.redirectRootNoLogin)||"/main/all"}},{name:"public-external-timeline",path:"/main/all",component:yl},{name:"public-timeline",path:"/main/public",component:wl},{name:"friends",path:"/main/friends",component:kl,beforeEnter:t},{name:"tag-timeline",path:"/tag/:tag",component:jl},{name:"bookmarks",path:"/bookmarks",component:Cl},{name:"conversation",path:"/notice/:id",component:zl,meta:{dontScroll:!0}},{name:"remote-user-profile-acct",path:"/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)",component:ef,beforeEnter:t},{name:"remote-user-profile",path:"/remote-users/:hostname/:username",component:ef,beforeEnter:t},{name:"external-user-profile",path:"/users/$:id",component:Nd},{name:"interactions",path:"/users/:username/interactions",component:Nl,beforeEnter:t},{name:"dms",path:"/users/:username/dms",component:Zl,beforeEnter:t},{name:"registration",path:"/registration",component:ph},{name:"password-reset",path:"/password-reset",component:Uh,props:!0},{name:"registration-token",path:"/registration/:token",component:ph},{name:"friend-requests",path:"/friend-requests",component:qh,beforeEnter:t},{name:"notifications",path:"/:username/notifications",component:aa.default,props:function(){return{disableTeleport:!0}},beforeEnter:t},{name:"login",path:"/login",component:bo},{name:"shout-panel",path:"/shout-panel",component:ns,props:function(){return{floating:!1}}},{name:"oauth-callback",path:"/oauth-callback",component:Wh,props:function(e){return{code:e.query.code}}},{name:"search",path:"/search",component:vp,props:function(e){return{query:e.query.query}}},{name:"who-to-follow",path:"/who-to-follow",component:Gh,beforeEnter:t},{name:"about",path:"/about",component:Km},{name:"announcements",path:"/announcements",component:Ig},{name:"user-profile",path:"/users/:name",component:Nd},{name:"legacy-user-profile",path:"/:name",component:Nd},{name:"lists",path:"/lists",component:uf},{name:"lists-timeline",path:"/lists/:id",component:pf},{name:"lists-edit",path:"/lists/:id/edit",component:qf},{name:"lists-new",path:"/lists/new",component:qf},{name:"edit-navigation",path:"/nav-edit",component:ci,props:function(){return{forceExpand:!0,forceEditMode:!0}},beforeEnter:t}];return e.state.instance.pleromaChatMessagesAvailable&&(n=n.concat([{name:"chat",path:"/users/:username/chats/:recipient_id",component:ld,meta:{dontScroll:!1},beforeEnter:t},{name:"chats",path:"/users/:username/chats",component:Tu,meta:{dontScroll:!1},beforeEnter:t}])),n};var xg,Tg,$g=n(58509),Ug=new Set([]),Mg=function(e){var t=window.innerWidth-document.documentElement.clientWidth;$g.Qp(e,{reserveScrollBarGap:!0}),Ug.add(e),setTimeout((function(){if(Ug.size<=1){if(void 0===xg){var e=document.getElementById("nav");xg=window.getComputedStyle(e).getPropertyValue("padding-right"),e.style.paddingRight=xg?"calc(".concat(xg," + ").concat(t,"px)"):"".concat(t,"px")}if(void 0===Tg){var n=document.getElementById("app_bg_wrapper");Tg=window.getComputedStyle(n).getPropertyValue("right"),n.style.right=Tg?"calc(".concat(Tg," + ").concat(t,"px)"):"".concat(t,"px")}document.body.classList.add("scroll-locked")}}))},Ag=function(e){Ug.delete(e),setTimeout((function(){0===Ug.size&&(void 0!==xg&&(document.getElementById("nav").style.paddingRight=xg,xg=void 0),void 0!==Tg&&(document.getElementById("app_bg_wrapper").style.right=Tg,Tg=void 0),document.body.classList.remove("scroll-locked"))})),$g.tG(e)},Lg={mounted:function(e,t){t.value&&Mg(e)},updated:function(e,t){t.oldValue!==t.value&&(t.value?Mg(e):Ag(e))},unmounted:function(e){Ag(e)}};const Eg=function(e){e.directive("body-scroll-lock",Lg)};var Fg=n(49753);function Rg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ng(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var qg=null,Zg=function(e){var t=atob(e),n=Uint8Array.from((0,u.Z)(t).map((function(e){return e.charCodeAt(0)})));return(new TextDecoder).decode(n)},Wg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=document.getElementById("initial-results")?(qg||(qg=JSON.parse(document.getElementById("initial-results").textContent)),qg):null)&&n[t]){e.next=3;break}return e.abrupt("return",window.fetch(t));case 3:return r=Zg(n[t]),o=JSON.parse(r),e.abrupt("return",{ok:!0,json:function(){return o},text:function(){return o}});case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Bg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Wg("/api/v1/instance");case 4:if(!(r=e.sent).ok){e.next=16;break}return e.next=8,r.json();case 8:o=e.sent,s=o.max_toot_chars,a=o.pleroma.vapid_public_key,n.dispatch("setInstanceOption",{name:"textlimit",value:s}),n.dispatch("setInstanceOption",{name:"accountApprovalRequired",value:o.approval_required}),a&&n.dispatch("setInstanceOption",{name:"vapidPublicKey",value:a}),e.next=17;break;case 16:throw r;case 17:e.next=23;break;case 19:e.prev=19,e.t0=e.catch(1),console.error("Could not load instance config, potentially fatal"),console.error(e.t0);case 23:case"end":return e.stop()}}),e,null,[[1,19]])})));return function(t){return e.apply(this,arguments)}}(),Hg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.store,e.prev=1,e.next=4,window.fetch("/api/pleroma/frontend_configurations");case 4:if(!(n=e.sent).ok){e.next=12;break}return e.next=8,n.json();case 8:return r=e.sent,e.abrupt("return",r.pleroma_fe);case 12:throw n;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.error("Could not load backend-provided frontend config, potentially fatal"),console.error(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Vg=function(){var e=(0,r.Z)(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,window.fetch("/static/config.json");case 3:if(!(t=e.sent).ok){e.next=8;break}return e.abrupt("return",t.json());case 8:throw t;case 9:e.next=16;break;case 11:return e.prev=11,e.t0=e.catch(0),console.warn("Failed to load static/config.json, continuing without it."),console.warn(e.t0),e.abrupt("return",{});case 16:case"end":return e.stop()}}),e,null,[[0,11]])})));return function(){return e.apply(this,arguments)}}(),Kg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o,s,a,c,l;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.apiConfig,r=t.staticConfig,o=t.store,s=window.___pleromafe_dev_overrides||{},a=window.___pleromafe_mode.NODE_ENV,c={},s.staticConfigPreference&&"development"===a?(console.warn("OVERRIDING API CONFIG WITH STATIC CONFIG"),c=Object.assign({},n,r)):c=Object.assign({},r,n),(l=function(e){o.dispatch("setInstanceOption",{name:e,value:c[e]})})("nsfwCensorImage"),l("background"),l("hidePostStats"),l("hideBotIndication"),l("hideUserStats"),l("hideFilteredStatuses"),l("logo"),o.dispatch("setInstanceOption",{name:"logoMask",value:void 0===c.logoMask||c.logoMask}),o.dispatch("setInstanceOption",{name:"logoMargin",value:void 0===c.logoMargin?0:c.logoMargin}),l("logoLeft"),o.commit("authFlow/setInitialStrategy",c.loginMethod),l("redirectRootNoLogin"),l("redirectRootLogin"),l("showInstanceSpecificPanel"),l("minimalScopesMode"),l("hideMutedPosts"),l("collapseMessageWithSubject"),l("scopeCopy"),l("subjectLineBehavior"),l("postContentType"),l("alwaysShowSubjectInput"),l("showFeaturesPanel"),l("hideSitename"),l("sidebarRight"),e.abrupt("return",o.dispatch("setTheme",c.theme));case 31:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Gg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/terms-of-service.html");case 4:if(!(r=e.sent).ok){e.next=12;break}return e.next=8,r.text();case 8:o=e.sent,n.dispatch("setInstanceOption",{name:"tos",value:o}),e.next=13;break;case 12:throw r;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load TOS"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Yg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Wg("/instance/panel.html");case 4:if(!(r=e.sent).ok){e.next=12;break}return e.next=8,r.text();case 8:o=e.sent,n.dispatch("setInstanceOption",{name:"instanceSpecificPanelContent",value:o}),e.next=13;break;case 12:throw r;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load instance panel"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Jg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,o,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/stickers.json");case 4:if(!(o=e.sent).ok){e.next=15;break}return e.next=8,o.json();case 8:return s=e.sent,e.next=11,Promise.all(Object.entries(s).map(function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(0,l.Z)(t,2),r=n[0],o=n[1],e.next=3,window.fetch(o+"pack.json");case 3:if(s=e.sent,a={},!s.ok){e.next=9;break}return e.next=8,s.json();case 8:a=e.sent;case 9:return e.abrupt("return",{pack:r,path:o,meta:a});case 10:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 11:a=e.sent.sort((function(e,t){return e.meta.title.localeCompare(t.meta.title)})),n.dispatch("setInstanceOption",{name:"stickers",value:a}),e.next=16;break;case 15:throw o;case 16:e.next=22;break;case 18:e.prev=18,e.t0=e.catch(1),console.warn("Can't load stickers"),console.warn(e.t0);case 22:case"end":return e.stop()}}),e,null,[[1,18]])})));return function(t){return e.apply(this,arguments)}}(),Qg=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,r=n.state,o=n.commit,s=r.oauth,a=r.instance,e.abrupt("return",Fe(Ng(Ng({},s),{},{instance:a.server,commit:o})).then((function(e){return Re(Ng(Ng({},e),{},{instance:a.server}))})).then((function(e){o("setAppToken",e.access_token),o("setBackendInteractor",$e(n.getters.getToken()))})));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Xg=function(e){var t=e.store,n=e.accounts.map((function(e){return e.split("/").pop()}));t.dispatch("setInstanceOption",{name:"staffAccounts",value:n})},ev=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o,s,a,c,l,u,d,p,h,m,f;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Wg("/nodeinfo/2.0.json");case 4:if(!(r=e.sent).ok){e.next=50;break}return e.next=8,r.json();case 8:o=e.sent,s=o.metadata,a=s.features,n.dispatch("setInstanceOption",{name:"name",value:s.nodeName}),n.dispatch("setInstanceOption",{name:"registrationOpen",value:o.openRegistrations}),n.dispatch("setInstanceOption",{name:"mediaProxyAvailable",value:a.includes("media_proxy")}),n.dispatch("setInstanceOption",{name:"safeDM",value:a.includes("safe_dm_mentions")}),n.dispatch("setInstanceOption",{name:"shoutAvailable",value:a.includes("chat")}),n.dispatch("setInstanceOption",{name:"pleromaChatMessagesAvailable",value:a.includes("pleroma_chat_messages")}),n.dispatch("setInstanceOption",{name:"gopherAvailable",value:a.includes("gopher")}),n.dispatch("setInstanceOption",{name:"pollsAvailable",value:a.includes("polls")}),n.dispatch("setInstanceOption",{name:"editingAvailable",value:a.includes("editing")}),n.dispatch("setInstanceOption",{name:"pollLimits",value:s.pollLimits}),n.dispatch("setInstanceOption",{name:"mailerEnabled",value:s.mailerEnabled}),c=s.uploadLimits,n.dispatch("setInstanceOption",{name:"uploadlimit",value:parseInt(c.general)}),n.dispatch("setInstanceOption",{name:"avatarlimit",value:parseInt(c.avatar)}),n.dispatch("setInstanceOption",{name:"backgroundlimit",value:parseInt(c.background)}),n.dispatch("setInstanceOption",{name:"bannerlimit",value:parseInt(c.banner)}),n.dispatch("setInstanceOption",{name:"fieldsLimits",value:s.fieldsLimits}),n.dispatch("setInstanceOption",{name:"restrictedNicknames",value:s.restrictedNicknames}),n.dispatch("setInstanceOption",{name:"postFormats",value:s.postFormats}),l=s.suggestions,n.dispatch("setInstanceOption",{name:"suggestionsEnabled",value:l.enabled}),n.dispatch("setInstanceOption",{name:"suggestionsWeb",value:l.web}),u=o.software,n.dispatch("setInstanceOption",{name:"backendVersion",value:u.version}),n.dispatch("setInstanceOption",{name:"pleromaBackend",value:"pleroma"===u.name}),d=s.private,n.dispatch("setInstanceOption",{name:"private",value:d}),p=window.___pleromafe_commit_hash,n.dispatch("setInstanceOption",{name:"frontendVersion",value:p}),h=s.federation,n.dispatch("setInstanceOption",{name:"tagPolicyAvailable",value:void 0!==h.mrf_policies&&s.federation.mrf_policies.includes("TagPolicy")}),n.dispatch("setInstanceOption",{name:"federationPolicy",value:h}),n.dispatch("setInstanceOption",{name:"federating",value:void 0===h.enabled||h.enabled}),m=s.accountActivationRequired,n.dispatch("setInstanceOption",{name:"accountActivationRequired",value:m}),f=s.staffAccounts,Xg({store:n,accounts:f}),e.next=51;break;case 50:throw r;case 51:e.next=57;break;case 53:e.prev=53,e.t0=e.catch(1),console.warn("Could not load nodeinfo"),console.warn(e.t0);case 57:case"end":return e.stop()}}),e,null,[[1,53]])})));return function(t){return e.apply(this,arguments)}}(),tv=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.next=3,Promise.all([Hg({store:n}),Vg()]);case 3:return r=e.sent,o=r[0],s=r[1],e.next=8,Kg({store:n,apiConfig:o,staticConfig:s}).then(Qg({store:n}));case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),nv=function(){var e=(0,r.Z)(i().mark((function e(t){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.abrupt("return",new Promise(function(){var e=(0,r.Z)(i().mark((function e(t,r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.getters.getUserToken()){e.next=9;break}return e.prev=1,e.next=4,n.dispatch("loginUser",n.getters.getUserToken());case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(1),console.error(e.t0);case 9:t();case 10:case"end":return e.stop()}}),e,null,[[1,6]])})));return function(t,n){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();const rv=function(){var e=(0,r.Z)(i().mark((function e(t){var n,r,o,s,a,c,l,u,d,m;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,r=t.i18n,n.dispatch("setLayoutWidth",Ue()),n.dispatch("setLayoutHeight",Me()),Fg.Z.initFaviconService(),o=window.___pleromafe_dev_overrides||{},s=void 0!==o.target?o.target:window.location.origin,n.dispatch("setInstanceOption",{name:"server",value:s}),e.next=9,tv({store:n});case 9:return a=n.state.config,c=a.customTheme,l=a.customThemeSource,u=n.state.instance.theme,l||c?l&&l.themeEngineVersion===h.we?(0,p._v)(l):(0,p._v)(c):u||console.error("Failed to load any theme!"),(0,p.mg)(n.state.config),e.next=16,Promise.all([nv({store:n}),Yg({store:n}),ev({store:n}),Bg({store:n})]);case 16:return n.dispatch("fetchMutes"),n.dispatch("startFetchingAnnouncements"),Gg({store:n}),Jg({store:n}),d=(0,ir.p7)({history:(0,ir.PO)(),routes:Dg(n),scrollBehavior:function(e,t,n){return!e.matched.some((function(e){return e.meta.dontScroll}))&&(n||{left:0,top:0})}}),(m=(0,or.ri)(lc)).use(d),m.use(n),m.use(r),m.use(ar()),m.use(Eg),m.component("FAIcon",cr.GN),m.component("FALayers",cr.NH),m.config.unwrapInjectedRef=!0,m.mount("#app"),e.abrupt("return",m);case 32:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();var ov=(window.navigator.language||"en").split("-")[0],iv=(0,Vn.o)({locale:"en",fallbackLocale:"en",messages:rr.Z.default});rr.Z.setLanguage(iv,ov);var sv={paths:["serverSideStorage.cache","config","users.lastLoginName","oauth"]};(0,r.Z)(i().mark((function e(){var t,n,r,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,n=[nr],e.prev=2,e.next=5,tr(sv);case 5:r=e.sent,n.push(r),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0),t=!0;case 13:o=(0,s.MT)({modules:{i18n:{getters:{i18n:function(){return iv.global}}},interface:c,instance:S,users:it,statuses:ae,lists:ue,api:gt,config:f.ZP,serverSideConfig:vt.ZP,serverSideStorage:rn,shout:on,oauth:sn,authFlow:pn,mediaViewer:gn,oauthTokens:vn,reports:_n,polls:kn,postStatus:Sn,editStatus:jn,statusHistory:On,chats:Bn,announcements:Hn},plugins:n,strict:!1}),t&&o.dispatch("pushGlobalNotice",{messageKey:"errors.storage_unavailable",level:"error"}),rv({store:o,i18n:iv});case 16:case"end":return e.stop()}}),e,null,[[2,9]])})))(),window.___pleromafe_mode={NODE_ENV:"production"},window.___pleromafe_commit_hash="3a507ba9b\n",window.___pleromafe_dev_overrides=void 0},85565:(e,t,n)=>{"use strict";n.d(t,{Oi:()=>h,W2:()=>p,ZP:()=>m});var r=n(4942),o=n(29439),i=n(6258),s=n(77394),a=n(72617),c=n(39776);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p={expertLevel:0,colors:{},theme:void 0,customTheme:void 0,customThemeSource:void 0,hideISP:!1,hideInstanceWallpaper:!1,hideShoutbox:!1,hideMutedPosts:void 0,hideMutedThreads:void 0,hideWordFilteredPosts:void 0,muteBotStatuses:void 0,collapseMessageWithSubject:void 0,padEmoji:!0,hideAttachments:!1,hideAttachmentsInConv:!1,maxThumbnails:16,hideNsfw:!0,preloadImage:!0,loopVideo:!0,loopVideoSilentOnly:!0,streaming:!1,emojiReactionsOnTimeline:!0,alwaysShowNewPostButton:!1,autohideFloatingPostButton:!1,pauseOnUnfocused:!0,stopGifs:!0,replyVisibility:"all",thirdColumnMode:"notifications",notificationVisibility:{follows:!0,mentions:!0,likes:!0,repeats:!0,moves:!0,emojiReactions:!0,followRequest:!0,reports:!0,chatMention:!0,polls:!0},webPushNotifications:!1,muteWords:[],highlight:{},interfaceLanguage:(window.navigator.language||"en").split("-")[0],hideScopeNotice:!1,useStreamingApi:!1,sidebarRight:void 0,scopeCopy:void 0,subjectLineBehavior:void 0,alwaysShowSubjectInput:void 0,postContentType:void 0,minimalScopesMode:void 0,hideFilteredStatuses:void 0,playVideosInModal:!1,useOneClickNsfw:!1,useContainFit:!0,disableStickyHeaders:!1,showScrollbars:!1,userPopoverAvatarAction:"open",userPopoverOverlay:!1,sidebarColumnWidth:"25rem",contentColumnWidth:"45rem",notifsColumnWidth:"25rem",navbarColumnStretch:!1,greentext:void 0,useAtIcon:void 0,mentionLinkDisplay:void 0,mentionLinkShowTooltip:void 0,mentionLinkShowAvatar:void 0,mentionLinkFadeDomain:void 0,mentionLinkShowYous:void 0,mentionLinkBoldenYou:void 0,hidePostStats:void 0,hideBotIndication:void 0,hideUserStats:void 0,virtualScrolling:void 0,sensitiveByDefault:void 0,conversationDisplay:void 0,conversationTreeAdvanced:void 0,conversationOtherRepliesButton:void 0,conversationTreeFadeAncestors:void 0,maxDepthInThread:void 0},h=Object.entries(p).filter((function(e){var t=(0,o.Z)(e,2);return t[0],void 0===t[1]})).map((function(e){var t=(0,o.Z)(e,2),n=t[0];return t[1],n}));const m={state:d({},p),getters:{defaultConfig:function(e,t,n,r){var o=n.instance;return d(d({},p),Object.fromEntries(h.map((function(e){return[e,o[e]]}))))},mergedConfig:function(e,t,n,r){return d(d({},r.defaultConfig),Object.fromEntries(Object.entries(e).filter((function(e){var t=(0,o.Z)(e,2);return t[0],void 0!==t[1]}))))}},mutations:{setOption:function(e,t){var n=t.name,r=t.value;e[n]=r},setHighlight:function(e,t){var n=t.user,r=t.color,o=t.type,i=this.state.config.highlight[n];r||o?e.highlight[n]={color:r||i.color,type:o||i.type}:delete e.highlight[n]}},actions:{loadSettings:function(e,t){var n,r=e.dispatch,o=new Set(Object.keys(p)),i=new Set(Object.keys(t)),s=new Set,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(i);try{for(a.s();!(n=a.n()).done;){var c=n.value;o.has(c)&&s.add(c)}}catch(e){a.e(e)}finally{a.f()}s.forEach((function(e){return r("setOption",{name:e,value:t[e]})}))},setHighlight:function(e,t){var n=e.commit;e.dispatch,n("setHighlight",{user:t.user,color:t.color,type:t.type})},setOption:function(e,t){var n=e.commit,r=e.dispatch,o=e.state,l=t.name,u=t.value;switch(n("setOption",{name:l,value:u}),l){case"theme":(0,s.bY)(u);break;case"sidebarColumnWidth":case"contentColumnWidth":case"notifsColumnWidth":(0,s.mg)(o);break;case"customTheme":case"customThemeSource":(0,s._v)(u);break;case"interfaceLanguage":a.Z.setLanguage(this.getters.i18n,u),r("loadUnicodeEmojiData",u),i.Z.set("userLanguage",c.Z.internalToBackendLocale(u));break;case"thirdColumnMode":r("setLayoutWidth",void 0)}}}}},65405:(e,t,n)=>{"use strict";n.d(t,{W2:()=>h,ZP:()=>m});var r=n(29439),o=n(4942),i=n(36968),s=n.n(i),a=n(27361),c=n.n(a);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var u=function(e,t){var n=e.rootState,r=e.commit,o=t.path,i=t.value,a={};return s()(a,o,i),n.api.backendInteractor.updateProfile({params:a}).then((function(e){r("addNewUsers",[e]),r("setCurrentUser",e)}))},d=function(e,t){var n=e.rootState,r=e.commit,o=t.path,i=t.value,a=t.oldValue,c={};return s()(c,o,i),n.api.backendInteractor.updateNotificationSettings({settings:c}).then((function(e){"success"===e.status?r("confirmServerSideOption",{name,value:i}):r("confirmServerSideOption",{name,value:a})}))},p={defaultScope:"source.privacy",defaultNSFW:"source.sensitive",stripRichContent:{get:"source.pleroma.no_rich_text",set:"no_rich_text"},locked:"locked",acceptChatMessages:{get:"pleroma.accepts_chat_messages",set:"accepts_chat_messages"},allowFollowingMove:{get:"pleroma.allow_following_move",set:"allow_following_move"},discoverable:{get:"source.pleroma.discoverable",set:"discoverable"},hideFavorites:{get:"pleroma.hide_favorites",set:"hide_favorites"},hideFollowers:{get:"pleroma.hide_followers",set:"hide_followers"},hideFollows:{get:"pleroma.hide_follows",set:"hide_follows"},hideFollowersCount:{get:"pleroma.hide_followers_count",set:"hide_followers_count"},hideFollowsCount:{get:"pleroma.hide_follows_count",set:"hide_follows_count"},webPushHideContents:{get:"pleroma.notification_settings.hide_notification_contents",set:"hide_notification_contents",api:d},blockNotificationsFromStrangers:{get:"pleroma.notification_settings.block_from_strangers",set:"block_from_strangers",api:d}},h=Object.fromEntries(Object.keys(p).map((function(e){return[e,null]})));const m={state:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},h),mutations:{confirmServerSideOption:function(e,t){var n=t.name,r=t.value;s()(e,n,r)},wipeServerSideOption:function(e,t){var n=t.name;s()(e,n,null)},wipeAllServerSideOptions:function(e){Object.keys(p).forEach((function(t){s()(e,t,null)}))},setCurrentUser:function(e,t){Object.entries(p).forEach((function(n){var o=(0,r.Z)(n,2),i=o[0],a=o[1],l=a.get,u=void 0===l?a:l;s()(e,i,c()(t._original,u))}))}},actions:{setServerSideOption:function(e,t){var n=e.rootState,r=e.state,o=e.commit,i=(e.dispatch,t.name),s=t.value,a=c()(r,i),l=p[i];if(!l)throw new Error("Invalid server-side setting");var d=l.set,h=void 0===d?l:d,m=l.api,f=void 0===m?u:m;o("wipeServerSideOption",{name:i}),f({rootState:n,commit:o},{path:h,value:s,oldValue:a}).catch((function(e){console.warn("Error setting server-side option:",e),o("confirmServerSideOption",{name:i,value:a})}))},logout:function(e){(0,e.commit)("wipeAllServerSideOptions")}}}},77776:(e,t,n)=>{"use strict";n.d(t,{ro:()=>Ue,_z:()=>Ae,ZP:()=>Le,pR:()=>xe});var r=n(15861),o=n(44925),i=n(29439),s=n(4942),a=n(27361),c=n.n(a),l=n(10928),u=n.n(l),d=n(57043),p=n.n(d),h=n(35161),m=n.n(h),f=n(66073),g=n.n(f),v=n(64687),w=n.n(v),b=n(27742),y=n(71002),_=n(43144),k=n(15671),S=n(97326),j=n(60136),O=n(82963),C=n(61120),P=n(72407),z=n(93433),I=n(48403),D=n.n(I);function x(e,t,n,r){this.name="StatusCodeError",this.statusCode=e,this.message=e+" - "+(JSON&&JSON.stringify?JSON.stringify(t):t),this.error=t,this.options=n,this.response=r,Error.captureStackTrace&&Error.captureStackTrace(this)}x.prototype=Object.create(Error.prototype),x.prototype.constructor=x;var T=function(e){(0,j.Z)(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,C.Z)(t);if(n){var o=(0,C.Z)(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return(0,O.Z)(this,e)});function o(e){var t,n;(0,k.Z)(this,o),t=r.call(this),Error.captureStackTrace&&Error.captureStackTrace((0,S.Z)(t));try{if("string"==typeof e&&(e=JSON.parse(e)).hasOwnProperty("error")&&(e=JSON.parse(e.error)),"object"===(0,y.Z)(e)){var s=JSON.parse(e.error);s.ap_id&&(s.username=s.ap_id,delete s.ap_id),t.message=(n=s,Object.entries(n).reduce((function(e,t){var n=(0,i.Z)(t,2),r=n[0],o=n[1].reduce((function(e,t){return e+[D()(r.replace(/_/g," ")),t].join(" ")+". "}),"");return[].concat((0,z.Z)(e),[o])}),[]))}else t.message=e}catch(n){t.message=e}return t}return(0,_.Z)(o)}((0,P.Z)(Error)),$=["nickname"],U=["id","credentials"];function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function A(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var L="/api/pleroma/aliases",E="/api/pleroma/admin/users/tag",F=function(e,t){return"/api/pleroma/admin/users/".concat(e,"/permission_group/").concat(t)},R=function(e){return"/api/v1/notifications/".concat(e,"/dismiss")},N=function(e){return"/api/v1/statuses/".concat(e,"/favourite")},q=function(e){return"/api/v1/statuses/".concat(e,"/unfavourite")},Z=function(e){return"/api/v1/statuses/".concat(e,"/reblog")},W=function(e){return"/api/v1/statuses/".concat(e,"/unreblog")},B="/api/v1/timelines/public",H=function(e){return"/api/v1/statuses/".concat(e)},V=function(e){return"/api/v1/accounts/".concat(e,"/statuses")},K=function(e){return"/api/v1/lists/".concat(e)},G=function(e){return"/api/v1/timelines/list/".concat(e)},Y=function(e){return"/api/v1/lists/".concat(e,"/accounts")},J=function(e){return"/api/v1/timelines/tag/".concat(e)},Q=function(e){return"/api/v1/accounts/".concat(e,"/mute")},X=function(e){return"/api/v1/accounts/".concat(e,"/unmute")},ee=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/subscribe")},te=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/unsubscribe")},ne=function(e){return"/api/v1/accounts/".concat(e,"/note")},re=function(e){return"/api/v1/statuses/".concat(e,"/bookmark")},oe=function(e){return"/api/v1/statuses/".concat(e,"/unbookmark")},ie="/api/v1/media",se=function(e){return"/api/v1/statuses/".concat(e,"/favourited_by")},ae=function(e){return"/api/v1/statuses/".concat(e,"/reblogged_by")},ce="/api/v1/accounts/update_credentials",le=function(e){return"/api/v1/statuses/".concat(e,"/pin")},ue=function(e){return"/api/v1/statuses/".concat(e,"/unpin")},de=function(e){return"/api/v1/statuses/".concat(e,"/mute")},pe=function(e){return"/api/v1/statuses/".concat(e,"/unmute")},he="/api/v1/domain_blocks",me=function(e){return"/api/v1/announcements/".concat(e,"/dismiss")},fe=function(e){return"/api/v1/pleroma/statuses/".concat(e,"/reactions")},ge=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},ve=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},we=function(e){return"/api/v1/pleroma/chats/".concat(e,"/messages")},be=function(e){return"/api/v1/pleroma/chats/".concat(e,"/read")},ye=function(e,t){return"/api/v1/pleroma/chats/".concat(e,"/messages/").concat(t)},_e="/api/v1/pleroma/backups",ke=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},Se=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},je=window.fetch,Oe=function(e,t){var n=""+e;return(t=t||{}).credentials="same-origin",je(n,t)},Ce=function(e){var t=e.method,n=e.url,r=e.params,o=e.payload,s=e.credentials,a=e.headers,c={method:t,headers:A({Accept:"application/json","Content-Type":"application/json"},void 0===a?{}:a)};return r&&(n+="?"+Object.entries(r).map((function(e){var t=(0,i.Z)(e,2),n=t[0],r=t[1];return encodeURIComponent(n)+"="+encodeURIComponent(r)})).join("&")),o&&(c.body=JSON.stringify(o)),s&&(c.headers=A(A({},c.headers),Pe(s))),Oe(n,c).then((function(e){return new Promise((function(t,r){return e.json().then((function(o){return e.ok?t(o):r(new x(e.status,o,{url:n,options:c},e))})).catch((function(t){return r(new x(e.status,t,{url:n,options:c},e))}))}))}))},Pe=function(e){return e?{Authorization:"Bearer ".concat(e)}:{}},ze=function(e){var t=e.id,n=e.credentials,r="".concat("/api/v1/accounts","/").concat(t);return Ce({url:r,credentials:n}).then((function(e){return(0,b.nL)(e)}))},Ie=function(e){var t=e.id,n=e.maxId,r=e.sinceId,o=e.limit,i=void 0===o?20:o,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/following")}(t),c=[n&&"max_id=".concat(n),r&&"since_id=".concat(r),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Oe(a+=c?"?"+c:"",{headers:Pe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},De=function(e){var t=e.content,n=e.startsAt,r=e.endsAt,o=e.allDay,i={content:t};return void 0!==n&&(i.starts_at=n?new Date(n).toISOString():null),void 0!==r&&(i.ends_at=r?new Date(r).toISOString():null),void 0!==o&&(i.all_day=o),i},xe=function(e){var t=e.credentials,n=e.stream,r=e.args,o=void 0===r?{}:r;return Object.entries(A(A({},t?{access_token:t}:{}),{},{stream:n},o)).reduce((function(e,t){var n=(0,i.Z)(t,2),r=n[0],o=n[1];return e+"".concat(r,"=").concat(o,"&")}),"/api/v1/streaming?")},Te=new Set(["update","notification","delete","filters_changed","status.update"]),$e=new Set(["pleroma:chat_update"]),Ue=function(e){var t=e.url,n=e.preprocessor,r=void 0===n?Me:n,o=e.id,i=void 0===o?"Unknown":o,s=new EventTarget,a=new WebSocket(t);if(!a)throw new Error("Failed to create socket ".concat(i));var c=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e};e.addEventListener(t,(function(e){s.dispatchEvent(new CustomEvent(t,{detail:n(e)}))}))};return a.addEventListener("open",(function(e){console.debug("[WS][".concat(i,"] Socket connected"),e)})),a.addEventListener("error",(function(e){console.debug("[WS][".concat(i,"] Socket errored"),e)})),a.addEventListener("close",(function(e){console.debug("[WS][".concat(i,"] Socket disconnected with code ").concat(e.code),e)})),c(a,"open"),c(a,"close"),c(a,"message",r),c(a,"error"),s.close=function(){a.close(1e3,"Shutting down socket")},s.getState=function(){return a.readyState},s},Me=function(e){var t=e.data;if(t){var n=JSON.parse(t),r=n.event,o=n.payload;if(!Te.has(r)&&!$e.has(r))return console.warn("Unknown event",e),null;if("delete"===r)return{event:r,id:o};var i=o?JSON.parse(o):null;return"update"===r||"status.update"===r?{event:r,status:(0,b.Wn)(i)}:"notification"===r?{event:r,notification:(0,b.eM)(i)}:"pleroma:chat_update"===r?{event:r,chatUpdate:(0,b._J)(i)}:void 0}},Ae=Object.freeze({JOINED:1,CLOSED:2,ERROR:3,DISABLED:4,STARTING:5,STARTING_INITIAL:6});const Le={verifyCredentials:function(e){return Oe("/api/v1/accounts/verify_credentials",{headers:Pe(e)}).then((function(e){return e.ok?e.json():{error:e}})).then((function(e){return e.error?e:(0,b.nL)(e)}))},fetchTimeline:function(e){var t=e.timeline,n=e.credentials,r=e.since,o=void 0!==r&&r,i=e.until,s=void 0!==i&&i,a=e.userId,c=void 0!==a&&a,l=e.listId,u=void 0!==l&&l,d=e.tag,p=void 0!==d&&d,h=e.withMuted,f=void 0!==h&&h,g=e.replyVisibility,v=void 0===g?"all":g,w=e.includeTypes,y=void 0===w?[]:w,_="notifications"===t,k=[],S={public:B,friends:"/api/v1/timelines/home",dms:"/api/v1/timelines/direct",notifications:"/api/v1/notifications",publicAndExternal:B,user:V,media:V,list:G,favorites:"/api/v1/favourites",tag:J,bookmarks:"/api/v1/bookmarks"}[t];"user"!==t&&"media"!==t||(S=S(c)),"list"===t&&(S=S(u)),o&&k.push(["since_id",o]),s&&k.push(["max_id",s]),p&&(S=S(p)),"media"===t&&k.push(["only_media",1]),"public"===t&&k.push(["local",!0]),"public"!==t&&"publicAndExternal"!==t||k.push(["only_media",!1]),"favorites"!==t&&"bookmarks"!==t&&k.push(["with_muted",f]),"all"!==v&&k.push(["reply_visibility",v]),y.length>0&&y.forEach((function(e){k.push(["include_types[]",e])})),k.push(["limit",20]);var j=m()(k,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");S+="?".concat(j);var O="",C="",P={};return Oe(S,{headers:Pe(n)}).then((function(e){return O=e.status,C=e.statusText,P=(0,b.Nw)(e.headers.get("Link"),{flakeId:"bookmarks"!==t&&"notifications"!==t}),e})).then((function(e){return e.json()})).then((function(e){return e.errors?(e.status=O,e.statusText=C,e):{data:e.map(_?b.eM:b.Wn),pagination:P}}))},fetchPinnedStatuses:function(e){var t=e.id,n=e.credentials,r=V(t)+"?pinned=true";return Ce({url:r,credentials:n}).then((function(e){return e.map(b.Wn)}))},fetchConversation:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/statuses/".concat(e,"/context")}(t);return Oe(r,{headers:Pe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){var t=e.ancestors,n=e.descendants;return{ancestors:t.map(b.Wn),descendants:n.map(b.Wn)}}))},fetchStatus:function(e){var t=e.id,n=e.credentials,r=H(t);return Oe(r,{headers:Pe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.Wn)(e)}))},fetchStatusSource:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/statuses/".concat(e,"/source")}(t);return Oe(r,{headers:Pe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching source",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.P7)(e)}))},fetchStatusHistory:function(e){var t,n=e.status,r=e.credentials,o=(t=n.id,"/api/v1/statuses/".concat(t,"/history"));return Ce({url:o,credentials:r}).then((function(e){return e.reverse(),e.map((function(e){return e.originalStatus=n,(0,b.Wn)(e)}))}))},fetchFriends:Ie,exportFriends:function(e){var t=e.id,n=e.credentials;return new Promise(function(){var e=(0,r.Z)(w().mark((function e(r,o){var i,s,a,c;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,i=[],s=!0;case 3:if(!s){e.next=12;break}return a=i.length>0?u()(i).id:void 0,e.next=7,Ie({id:t,maxId:a,credentials:n});case 7:c=e.sent,i=p()(i,c),0===c.length&&(s=!1),e.next=3;break;case 12:r(i),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),o(e.t0);case 18:case"end":return e.stop()}}),e,null,[[0,15]])})));return function(t,n){return e.apply(this,arguments)}}())},fetchFollowers:function(e){var t=e.id,n=e.maxId,r=e.sinceId,o=e.limit,i=void 0===o?20:o,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/followers")}(t),c=[n&&"max_id=".concat(n),r&&"since_id=".concat(r),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Oe(a+=c?"?"+c:"",{headers:Pe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},followUser:function(e){var t=e.id,n=e.credentials,r=(0,o.Z)(e,U),i=function(e){return"/api/v1/accounts/".concat(e,"/follow")}(t),s={};return void 0!==r.reblogs&&(s.reblogs=r.reblogs),Oe(i,{body:JSON.stringify(s),headers:A(A({},Pe(n)),{},{"Content-Type":"application/json"}),method:"POST"}).then((function(e){return e.json()}))},unfollowUser:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/accounts/".concat(e,"/unfollow")}(t);return Oe(r,{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},pinOwnStatus:function(e){var t=e.id,n=e.credentials;return Ce({url:le(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unpinOwnStatus:function(e){var t=e.id,n=e.credentials;return Ce({url:ue(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},muteConversation:function(e){var t=e.id,n=e.credentials;return Ce({url:de(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unmuteConversation:function(e){var t=e.id,n=e.credentials;return Ce({url:pe(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},blockUser:function(e){var t=e.id,n=e.credentials;return Oe(function(e){return"/api/v1/accounts/".concat(e,"/block")}(t),{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},unblockUser:function(e){var t=e.id,n=e.credentials;return Oe(function(e){return"/api/v1/accounts/".concat(e,"/unblock")}(t),{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},removeUserFromFollowers:function(e){var t=e.id,n=e.credentials;return Oe(function(e){return"/api/v1/accounts/".concat(e,"/remove_from_followers")}(t),{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},editUserNote:function(e){var t=e.id,n=e.credentials,r=e.comment;return Ce({url:ne(t),credentials:n,payload:{comment:r},method:"POST"})},fetchUser:ze,fetchUserByName:function(e){var t=e.name,n=e.credentials;return Ce({url:"/api/v1/accounts/lookup",credentials:n,params:{acct:t}}).then((function(e){return e.id})).catch((function(e){if(e&&404===e.statusCode)return t;throw e})).then((function(e){return ze({id:e,credentials:n})}))},fetchUserRelationship:function(e){var t=e.id,n=e.credentials,r="".concat("/api/v1/accounts/relationships","/?id=").concat(t);return Oe(r,{headers:Pe(n)}).then((function(e){return new Promise((function(t,n){return e.json().then((function(o){return e.ok?t(o):n(new x(e.status,o,{url:r},e))}))}))}))},favorite:function(e){var t=e.id,n=e.credentials;return Ce({url:N(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unfavorite:function(e){var t=e.id,n=e.credentials;return Ce({url:q(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},retweet:function(e){var t=e.id,n=e.credentials;return Ce({url:Z(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unretweet:function(e){var t=e.id,n=e.credentials;return Ce({url:W(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},bookmarkStatus:function(e){var t=e.id,n=e.credentials;return Ce({url:re(t),headers:Pe(n),method:"POST"})},unbookmarkStatus:function(e){var t=e.id,n=e.credentials;return Ce({url:oe(t),headers:Pe(n),method:"POST"})},postStatus:function(e){var t=e.credentials,n=e.status,r=e.spoilerText,o=e.visibility,i=e.sensitive,s=e.poll,a=e.mediaIds,c=void 0===a?[]:a,l=e.inReplyToStatusId,u=e.contentType,d=e.preview,p=e.idempotencyKey,h=new FormData,m=s.options||[];if(h.append("status",n),h.append("source","Pleroma FE"),r&&h.append("spoiler_text",r),o&&h.append("visibility",o),i&&h.append("sensitive",i),u&&h.append("content_type",u),c.forEach((function(e){h.append("media_ids[]",e)})),m.some((function(e){return""!==e}))){var f={expires_in:s.expiresIn,multiple:s.multiple};Object.keys(f).forEach((function(e){h.append("poll[".concat(e,"]"),f[e])})),m.forEach((function(e){h.append("poll[options][]",e)}))}l&&h.append("in_reply_to_id",l),d&&h.append("preview","true");var g=Pe(t);return p&&(g["idempotency-key"]=p),Oe("/api/v1/statuses",{body:h,method:"POST",headers:g}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},editStatus:function(e){var t=e.id,n=e.credentials,r=e.status,o=e.spoilerText,i=e.sensitive,s=e.poll,a=e.mediaIds,c=void 0===a?[]:a,l=e.contentType,u=new FormData,d=s.options||[];if(u.append("status",r),o&&u.append("spoiler_text",o),i&&u.append("sensitive",i),l&&u.append("content_type",l),c.forEach((function(e){u.append("media_ids[]",e)})),d.some((function(e){return""!==e}))){var p={expires_in:s.expiresIn,multiple:s.multiple};Object.keys(p).forEach((function(e){u.append("poll[".concat(e,"]"),p[e])})),d.forEach((function(e){u.append("poll[options][]",e)}))}var h=Pe(n);return Oe(H(t),{body:u,method:"PUT",headers:h}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},deleteStatus:function(e){var t=e.id,n=e.credentials;return Oe(function(e){return"/api/v1/statuses/".concat(e)}(t),{headers:Pe(n),method:"DELETE"})},uploadMedia:function(e){var t=e.formData,n=e.credentials;return Oe(ie,{body:t,method:"POST",headers:Pe(n)}).then((function(e){return e.json()})).then((function(e){return(0,b.cO)(e)}))},setMediaDescription:function(e){var t=e.id,n=e.description,r=e.credentials;return Ce({url:"".concat(ie,"/").concat(t),method:"PUT",headers:Pe(r),payload:{description:n}}).then((function(e){return(0,b.cO)(e)}))},fetchMutes:function(e){var t=e.credentials;return Ce({url:"/api/v1/mutes/",credentials:t}).then((function(e){return e.map(b.nL)}))},muteUser:function(e){var t=e.id,n=e.credentials;return Ce({url:Q(t),credentials:n,method:"POST"})},unmuteUser:function(e){var t=e.id,n=e.credentials;return Ce({url:X(t),credentials:n,method:"POST"})},subscribeUser:function(e){var t=e.id,n=e.credentials;return Ce({url:ee(t),credentials:n,method:"POST"})},unsubscribeUser:function(e){var t=e.id,n=e.credentials;return Ce({url:te(t),credentials:n,method:"POST"})},fetchBlocks:function(e){var t=e.credentials;return Ce({url:"/api/v1/blocks/",credentials:t}).then((function(e){return e.map(b.nL)}))},fetchOAuthTokens:function(e){var t=e.credentials;return Oe("/api/oauth_tokens.json",{headers:Pe(t)}).then((function(e){if(e.ok)return e.json();throw new Error("Error fetching auth tokens",e)}))},revokeOAuthToken:function(e){var t=e.id,n=e.credentials,r="/api/oauth_tokens/".concat(t);return Oe(r,{headers:Pe(n),method:"DELETE"})},tagUser:function(e){var t=e.tag,n=e.credentials,r={nicknames:[e.user.screen_name],tags:[t]},o=Pe(n);return o["Content-Type"]="application/json",Oe(E,{method:"PUT",headers:o,body:JSON.stringify(r)})},untagUser:function(e){var t=e.tag,n=e.credentials,r={nicknames:[e.user.screen_name],tags:[t]},o=Pe(n);return o["Content-Type"]="application/json",Oe(E,{method:"DELETE",headers:o,body:JSON.stringify(r)})},deleteUser:function(e){var t=e.credentials,n=e.user.screen_name,r=Pe(t);return Oe("".concat("/api/pleroma/admin/users","?nickname=").concat(n),{method:"DELETE",headers:r})},addRight:function(e){var t=e.right,n=e.credentials,r=e.user.screen_name;return Oe(F(r,t),{method:"POST",headers:Pe(n),body:{}})},deleteRight:function(e){var t=e.right,n=e.credentials,r=e.user.screen_name;return Oe(F(r,t),{method:"DELETE",headers:Pe(n),body:{}})},activateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Ce({url:"/api/pleroma/admin/users/activate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return c()(e,"users.0")}))},deactivateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Ce({url:"/api/pleroma/admin/users/deactivate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return c()(e,"users.0")}))},register:function(e){var t=e.params,n=e.credentials,r=t.nickname,i=(0,o.Z)(t,$);return Oe("/api/v1/accounts",{method:"POST",headers:A(A({},Pe(n)),{},{"Content-Type":"application/json"}),body:JSON.stringify(A({nickname:r,locale:"en_US",agreement:!0},i))}).then((function(e){return e.ok?e.json():e.json().then((function(e){throw new T(e)}))}))},getCaptcha:function(){return Oe("/api/pleroma/captcha").then((function(e){return e.json()}))},updateProfileImages:function(e){var t=e.credentials,n=e.avatar,r=void 0===n?null:n,o=e.avatarName,i=void 0===o?null:o,s=e.banner,a=void 0===s?null:s,c=e.background,l=void 0===c?null:c,u=new FormData;return null!==r&&(null!==i?u.append("avatar",r,i):u.append("avatar",r)),null!==a&&u.append("header",a),null!==l&&u.append("pleroma_background_image",l),Oe(ce,{headers:Pe(t),method:"PATCH",body:u}).then((function(e){return e.json()})).then((function(e){if(e.error)throw new Error(e.error);return(0,b.nL)(e)}))},updateProfile:function(e){var t=e.credentials,n=e.params;return Ce({url:ce,method:"PATCH",payload:n,credentials:t}).then((function(e){return(0,b.nL)(e)}))},importMutes:function(e){var t=e.file,n=e.credentials,r=new FormData;return r.append("list",t),Oe("/api/pleroma/mutes_import",{body:r,method:"POST",headers:Pe(n)}).then((function(e){return e.ok}))},importBlocks:function(e){var t=e.file,n=e.credentials,r=new FormData;return r.append("list",t),Oe("/api/pleroma/blocks_import",{body:r,method:"POST",headers:Pe(n)}).then((function(e){return e.ok}))},importFollows:function(e){var t=e.file,n=e.credentials,r=new FormData;return r.append("list",t),Oe("/api/pleroma/follow_import",{body:r,method:"POST",headers:Pe(n)}).then((function(e){return e.ok}))},deleteAccount:function(e){var t=e.credentials,n=e.password,r=new FormData;return r.append("password",n),Oe("/api/pleroma/delete_account",{body:r,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},changeEmail:function(e){var t=e.credentials,n=e.email,r=e.password,o=new FormData;return o.append("email",n),o.append("password",r),Oe("/api/pleroma/change_email",{body:o,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},moveAccount:function(e){var t=e.credentials,n=e.password,r=e.targetAccount,o=new FormData;return o.append("password",n),o.append("target_account",r),Oe("/api/pleroma/move_account",{body:o,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},addAlias:function(e){var t=e.credentials,n=e.alias;return Ce({url:L,method:"PUT",credentials:t,payload:{alias:n}})},deleteAlias:function(e){var t=e.credentials,n=e.alias;return Ce({url:L,method:"DELETE",credentials:t,payload:{alias:n}})},listAliases:function(e){var t=e.credentials;return Ce({url:L,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},changePassword:function(e){var t=e.credentials,n=e.password,r=e.newPassword,o=e.newPasswordConfirmation,i=new FormData;return i.append("password",n),i.append("new_password",r),i.append("new_password_confirmation",o),Oe("/api/pleroma/change_password",{body:i,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},settingsMFA:function(e){var t=e.credentials;return Oe("/api/pleroma/accounts/mfa",{headers:Pe(t),method:"GET"}).then((function(e){return e.json()}))},mfaDisableOTP:function(e){var t=e.credentials,n=e.password,r=new FormData;return r.append("password",n),Oe("/api/pleroma/accounts/mfa/totp",{body:r,method:"DELETE",headers:Pe(t)}).then((function(e){return e.json()}))},generateMfaBackupCodes:function(e){var t=e.credentials;return Oe("/api/pleroma/accounts/mfa/backup_codes",{headers:Pe(t),method:"GET"}).then((function(e){return e.json()}))},mfaSetupOTP:function(e){var t=e.credentials;return Oe("/api/pleroma/accounts/mfa/setup/totp",{headers:Pe(t),method:"GET"}).then((function(e){return e.json()}))},mfaConfirmOTP:function(e){var t=e.credentials,n=e.password,r=e.token,o=new FormData;return o.append("password",n),o.append("code",r),Oe("/api/pleroma/accounts/mfa/confirm/totp",{body:o,headers:Pe(t),method:"POST"}).then((function(e){return e.json()}))},addBackup:function(e){var t=e.credentials;return Ce({url:_e,method:"POST",credentials:t})},listBackups:function(e){var t=e.credentials;return Ce({url:_e,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},fetchFollowRequests:function(e){var t=e.credentials;return Oe("/api/v1/follow_requests",{headers:Pe(t)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},fetchLists:function(e){var t=e.credentials;return Oe("/api/v1/lists",{headers:Pe(t)}).then((function(e){return e.json()}))},createList:function(e){var t=e.title,n=e.credentials,r=Pe(n);return r["Content-Type"]="application/json",Oe("/api/v1/lists",{headers:r,method:"POST",body:JSON.stringify({title:t})}).then((function(e){return e.json()}))},getList:function(e){var t=e.listId,n=e.credentials,r=K(t);return Oe(r,{headers:Pe(n)}).then((function(e){return e.json()}))},updateList:function(e){var t=e.listId,n=e.title,r=e.credentials,o=K(t),i=Pe(r);return i["Content-Type"]="application/json",Oe(o,{headers:i,method:"PUT",body:JSON.stringify({title:n})})},getListAccounts:function(e){var t=e.listId,n=e.credentials,r=Y(t);return Oe(r,{headers:Pe(n)}).then((function(e){return e.json()})).then((function(e){return e.map((function(e){return e.id}))}))},addAccountsToList:function(e){var t=e.listId,n=e.accountIds,r=e.credentials,o=Y(t),i=Pe(r);return i["Content-Type"]="application/json",Oe(o,{headers:i,method:"POST",body:JSON.stringify({account_ids:n})})},removeAccountsFromList:function(e){var t=e.listId,n=e.accountIds,r=e.credentials,o=Y(t),i=Pe(r);return i["Content-Type"]="application/json",Oe(o,{headers:i,method:"DELETE",body:JSON.stringify({account_ids:n})})},deleteList:function(e){var t=e.listId,n=e.credentials,r=K(t);return Oe(r,{method:"DELETE",headers:Pe(n)})},approveUser:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/follow_requests/".concat(e,"/authorize")}(t);return Oe(r,{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},denyUser:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/follow_requests/".concat(e,"/reject")}(t);return Oe(r,{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},suggestions:function(e){var t=e.credentials;return Oe("/api/v1/suggestions",{headers:Pe(t)}).then((function(e){return e.json()}))},markNotificationsAsSeen:function(e){var t=e.id,n=e.credentials,r=e.single,o=void 0!==r&&r,i=new FormData;return o?i.append("id",t):i.append("max_id",t),Oe("/api/v1/pleroma/notifications/read",{body:i,headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},dismissNotification:function(e){var t=e.credentials,n=e.id;return Ce({url:R(n),method:"POST",payload:{id:n},credentials:t})},vote:function(e){var t,n=e.pollId,r=e.choices,o=e.credentials;return(new FormData).append("choices",r),Ce({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t,"/votes")),method:"POST",credentials:o,payload:{choices:r}})},fetchPoll:function(e){var t,n=e.pollId,r=e.credentials;return Ce({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t)),method:"GET",credentials:r})},fetchFavoritedByUsers:function(e){var t=e.id,n=e.credentials;return Ce({url:se(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchRebloggedByUsers:function(e){var t=e.id,n=e.credentials;return Ce({url:ae(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchEmojiReactions:function(e){var t=e.id,n=e.credentials;return Ce({url:fe(t),credentials:n}).then((function(e){return e.map((function(e){return e.accounts=e.accounts.map(b.nL),e}))}))},reactWithEmoji:function(e){var t=e.id,n=e.emoji,r=e.credentials;return Ce({url:ge(t,n),method:"PUT",credentials:r}).then(b.Wn)},unreactWithEmoji:function(e){var t=e.id,n=e.emoji,r=e.credentials;return Ce({url:ve(t,n),method:"DELETE",credentials:r}).then(b.Wn)},reportUser:function(e){var t=e.credentials,n=e.userId,r=e.statusIds,o=e.comment,i=e.forward;return Ce({url:"/api/v1/reports",method:"POST",payload:{account_id:n,status_ids:r,comment:o,forward:i},credentials:t})},updateNotificationSettings:function(e){var t=e.credentials,n=e.settings,r=new FormData;return g()(n,(function(e,t){r.append(t,e)})),Oe("/api/pleroma/notification_settings",{headers:Pe(t),method:"PUT",body:r}).then((function(e){return e.json()}))},search2:function(e){var t=e.credentials,n=e.q,r=e.resolve,o=e.limit,i=e.offset,s=e.following,a=e.type,c="/api/v2/search",l=[];n&&l.push(["q",encodeURIComponent(n)]),r&&l.push(["resolve",r]),o&&l.push(["limit",o]),i&&l.push(["offset",i]),s&&l.push(["following",!0]),a&&l.push(["following",a]),l.push(["with_relationships",!0]);var u=m()(l,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return c+="?".concat(u),Oe(c,{headers:Pe(t)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching search result",e)})).then((function(e){return e.json()})).then((function(e){return e.accounts=e.accounts.slice(0,o).map((function(e){return(0,b.nL)(e)})),e.statuses=e.statuses.slice(0,o).map((function(e){return(0,b.Wn)(e)})),e}))},searchUsers:function(e){var t=e.credentials,n=e.query;return Ce({url:"/api/v1/accounts/search",params:{q:n,resolve:!0},credentials:t}).then((function(e){return e.map(b.nL)}))},fetchKnownDomains:function(e){var t=e.credentials;return Ce({url:"/api/v1/instance/peers",credentials:t})},fetchDomainMutes:function(e){var t=e.credentials;return Ce({url:he,credentials:t})},muteDomain:function(e){var t=e.domain,n=e.credentials;return Ce({url:he,method:"POST",payload:{domain:t},credentials:n})},unmuteDomain:function(e){var t=e.domain,n=e.credentials;return Ce({url:he,method:"DELETE",payload:{domain:t},credentials:n})},chats:function(e){var t=e.credentials;return Oe("/api/v1/pleroma/chats",{headers:Pe(t)}).then((function(e){return e.json()})).then((function(e){return{chats:e.map(b._J).filter((function(e){return e}))}}))},getOrCreateChat:function(e){var t,n=e.accountId,r=e.credentials;return Ce({url:(t=n,"/api/v1/pleroma/chats/by-account-id/".concat(t)),method:"POST",credentials:r})},chatMessages:function(e){var t=e.id,n=e.credentials,r=e.maxId,o=e.sinceId,i=e.limit,s=void 0===i?20:i,a=we(t),c=[r&&"max_id=".concat(r),o&&"since_id=".concat(o),s&&"limit=".concat(s)].filter((function(e){return e})).join("&");return Ce({url:a+=c?"?"+c:"",method:"GET",credentials:n})},sendChatMessage:function(e){var t=e.id,n=e.content,r=e.mediaId,o=void 0===r?null:r,i=e.idempotencyKey,s=e.credentials,a={content:n};o&&(a.media_id=o);var c={};return i&&(c["idempotency-key"]=i),Ce({url:we(t),method:"POST",payload:a,credentials:s,headers:c})},readChat:function(e){var t=e.id,n=e.lastReadId,r=e.credentials;return Ce({url:be(t),method:"POST",payload:{last_read_id:n},credentials:r})},deleteChatMessage:function(e){var t=e.chatId,n=e.messageId,r=e.credentials;return Ce({url:ye(t,n),method:"DELETE",credentials:r})},setReportState:function(e){var t=e.id,n=e.state,r=e.credentials;return Oe("/api/pleroma/admin/reports",{headers:A(A({},Pe(r)),{},{Accept:"application/json","Content-Type":"application/json"}),method:"PATCH",body:JSON.stringify({reports:[{id:t,state:n}]})}).then((function(e){if(e.status>=500)throw Error(e.statusText);return e.status>=400?e.json():e})).then((function(e){if(e.errors)throw Error(e.errors[0].message)}))},fetchUserInLists:function(e){var t=e.id,n=e.credentials,r=function(e){return"/api/v1/accounts/".concat(e,"/lists")}(t);return Oe(r,{headers:Pe(n)}).then((function(e){return e.json()}))},fetchAnnouncements:function(e){var t=e.credentials;return Ce({url:"/api/v1/announcements",credentials:t})},dismissAnnouncement:function(e){var t=e.id,n=e.credentials;return Ce({url:me(t),credentials:n,method:"POST"})},postAnnouncement:function(e){var t=e.credentials,n=e.content,r=e.startsAt,o=e.endsAt,i=e.allDay;return Ce({url:"/api/v1/pleroma/admin/announcements",credentials:t,method:"POST",payload:De({content:n,startsAt:r,endsAt:o,allDay:i})})},editAnnouncement:function(e){var t=e.id,n=e.credentials,r=e.content,o=e.startsAt,i=e.endsAt,s=e.allDay;return Ce({url:ke(t),credentials:n,method:"PATCH",payload:De({content:r,startsAt:o,endsAt:i,allDay:s})})},deleteAnnouncement:function(e){var t=e.id,n=e.credentials;return Ce({url:Se(t),credentials:n,method:"DELETE"})},adminFetchAnnouncements:function(e){var t=e.credentials;return Ce({url:"/api/v1/pleroma/admin/announcements",credentials:t})}}},21865:(e,t,n)=>{"use strict";n.d(t,{CO:()=>l,Rx:()=>m,Tj:()=>h,_I:()=>v,a4:()=>g,aj:()=>p,ov:()=>u,pP:()=>b,uu:()=>w,wK:()=>f});var r=n(4942),o=n(29439),i=n(71002),s=n(97332);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l=function(e,t,n){if(null!=e){if("#"===e[0]||"transparent"===e)return e;if("object"===(0,i.Z)(e)){var r=e;e=r.r,t=r.g,n=r.b}var s=[e,t,n].map((function(e){return(e=(e=Math.ceil(e))<0?0:e)>255?255:e})),a=(0,o.Z)(s,3);return e=a[0],t=a[1],n=a[2],"#".concat(((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1))}},u=function(e){var t=function(e){return"rgb".split("").reduce((function(t,n){return t[n]=function(e){var t=e/255;return t<.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}(e[n]),t}),{})}(e);return.2126*t.r+.7152*t.g+.0722*t.b},d=function(e,t){var n=u(e),r=u(t),i=n>r?[n,r]:[r,n],s=(0,o.Z)(i,2);return(s[0]+.05)/(s[1]+.05)},p=function(e,t,n){return d(m(n,t),e)},h=function(e,t,n){return 1===t||void 0===t?e:"rgb".split("").reduce((function(r,o){return r[o]=e[o]*t+n[o]*(1-t),r}),{})},m=function(e,t){return t.reduce((function(e,t){var n=(0,o.Z)(t,2),r=n[0],i=n[1];return h(r,i,e)}),e)},f=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},g=function(e,t){return"rgb".split("").reduce((function(n,r){return n[r]=(e[r]+t[r])/2,n}),{})},v=function(e){return"rgba(".concat(Math.floor(e.r),", ").concat(Math.floor(e.g),", ").concat(Math.floor(e.b),", ").concat(e.a,")")},w=function(e,t,n){if(d(e,t)<4.5){var r=void 0!==t.a?{a:t.a}:{},o=Object.assign(r,(0,s.Xp)(t).rgb);return!n&&d(e,o)<4.5?(0,s.wo)(e,t).rgb:o}return t},b=function(e,t){var n={};if("object"===(0,i.Z)(e))n=e;else if("string"==typeof e){if(!e.startsWith("#"))return e;n=f(e)}return v(c(c({},n),{},{a:t}))}},13562:(e,t,n)=>{"use strict";n.d(t,{g:()=>i});var r=n(23560),o=n.n(r),i=function(e){return function(e){return o()(e)?e.options:e}(e).props}},27483:(e,t,n)=>{"use strict";n.d(t,{EB:()=>o,GV:()=>u,_F:()=>d,kr:()=>i,x4:()=>s});var r=1e3,o=6e4,i=60*o,s=24*i,a=7*s,c=30*s,l=365.25*s,u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;"string"==typeof e&&(e=Date.parse(e));var n=Date.now()>e?Math.floor:Math.ceil,u=Math.abs(Date.now()-e),d={num:n(u/l),key:"time.unit.years"};return u<t*r?(d.num=0,d.key="time.now"):u<o?(d.num=n(u/r),d.key="time.unit.seconds"):u<i?(d.num=n(u/o),d.key="time.unit.minutes"):u<s?(d.num=n(u/i),d.key="time.unit.hours"):u<a?(d.num=n(u/s),d.key="time.unit.days"):u<c?(d.num=n(u/a),d.key="time.unit.weeks"):u<l&&(d.num=n(u/c),d.key="time.unit.months"),d},d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=u(e,t);return n.key+="_short",n}},64689:(e,t,n)=>{"use strict";n.d(t,{w:()=>r});var r=function(e,t){if("Notification"in window&&"granted"===window.Notification.permission&&!e.statuses.notifications.desktopNotificationSilence){var n=new window.Notification(t.title,t);setTimeout(n.close.bind(n),5e3)}}},27742:(e,t,n)=>{"use strict";n.d(t,{Nw:()=>w,P7:()=>m,UB:()=>y,Wn:()=>f,_J:()=>b,cO:()=>h,eM:()=>g,nL:()=>p});var r=n(4942),o=n(95573),i=n.n(o),s=n(28490),a=n.n(s),c=n(52230),l=n(35748);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=function(e){var t={},n=Object.prototype.hasOwnProperty.call(e,"acct"),r=n&&!Object.prototype.hasOwnProperty.call(e,"avatar");if(t.inLists=null,t.id=String(e.id),t._original=e,n){if(t.screen_name=e.acct,t.fqn=e.fqn,t.statusnet_profile_url=e.url,r)return t;if(t.emoji=e.emojis,t.name=i()(e.display_name),t.name_html=t.name,t.name_unescaped=e.display_name,t.description=e.note,t.description_html=e.note,t.fields=e.fields,t.fields_html=e.fields.map((function(e){return{name:i()(e.name),value:e.value}})),t.fields_text=e.fields.map((function(e){return{name:unescape(e.name.replace(/<[^>]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){e.pleroma.settings_store&&(t.storage=e.pleroma.settings_store["pleroma-fe"]);var o=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,o&&(t.relationship=o),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member",e.pleroma.privileges?t.privileges=e.pleroma.privileges:e.pleroma.is_admin?t.privileges=["users_read","users_manage_invites","users_manage_activation_state","users_manage_tags","users_manage_credentials","users_delete","messages_read","messages_delete","instances_delete","reports_manage_reports","moderation_log_read","announcements_manage_announcements","emoji_manage_emoji","statistics_read"]:e.pleroma.is_moderator?t.privileges=["messages_delete","reports_manage_reports"]:t.privileges=[]}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var s=t.screen_name.split("@"),a=l.Z.toUnicode(s[1]);a!==s[1]?(t.screen_name_ui_contains_non_ascii=!0,t.screen_name_ui=[s[0],a].join("@")):t.screen_name_ui_contains_non_ascii=!1}return t},h=function(e){var t={};return Object.prototype.hasOwnProperty.call(e,"oembed")?t.mimetype=e.mimetype:(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id),t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},m=function(e){var t={};return t.text=e.text,t.spoiler_text=e.spoiler_text,t.content_type=e.content_type,t},f=function e(t){var n={},r=Object.prototype.hasOwnProperty.call(t,"account");if(r){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,n.edited_at=t.edited_at,t.pleroma){var o=t.pleroma;n.text=o.content?t.pleroma.content["text/plain"]:t.content,n.summary=o.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=o.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=o.thread_muted,n.emoji_reactions=o.emoji_reactions,n.parent_visible=void 0===o.parent_visible||o.parent_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=i()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return d(d({},e),{},{title_html:i()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=function(e){return e.is_post_verb?"status":e.retweeted_status?"retweet":"string"==typeof e.uri&&e.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof e.text&&e.text.match(/favorited/)?"favorite":e.text.match(/deleted notice {{tag/)||e.qvitter_delete_notice?"deletion":e.text.match(/started following/)||"follow"===e.activity_type?"follow":"unknown"}(t),void 0===t.nsfw?(n.nsfw=v(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=p(r?t.account:t.user),n.attentions=((r?t.mentions:t.attentions)||[]).map(p),n.attachments=((r?t.media_attachments:t.attachments)||[]).map(h);var s=r?t.reblog:t.retweeted_status;return s&&(n.retweeted_status=e(s)),n.favoritedBy=[],n.rebloggedBy=[],Object.prototype.hasOwnProperty.call(t,"originalStatus")&&Object.assign(n,t.originalStatus),n},g=function(e){var t={};if(Object.prototype.hasOwnProperty.call(e,"ntype")){var n=f(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?f(e.notice.favorited_status):n,t.action=n,t.from_profile="pleroma:chat_mention"===t.type?p(e.account):p(e.from_profile)}else t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=(0,c.Gr)(t.type)?f(e.status):null,t.action=t.status,t.target="move"!==t.type?null:p(e.target),t.from_profile=p(e.account),t.emoji=e.emoji,e.report&&(t.report=e.report,t.report.content=e.report.content,t.report.acct=p(e.report.account),t.report.actor=p(e.report.actor),t.report.statuses=e.report.statuses.map(f));return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},v=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.flakeId,r=a()(e);if(r){var o=r.next.max_id,i=r.prev.min_id;return{maxId:n?o:parseInt(o,10),minId:n?i:parseInt(i,10)}}},b=function(e){var t={};return t.id=e.id,t.account=p(e.account),t.unread=e.unread,t.lastMessage=y(e.last_message),t.updated_at=new Date(e.updated_at),t},y=function(e){if(e){if(e.isNormalized)return e;var t=e;return t.id=e.id,t.created_at=new Date(e.created_at),t.chat_id=e.chat_id,t.emojis=e.emojis,t.content=e.content,e.attachment?t.attachments=[h(e.attachment)]:t.attachments=[],t.pending=!!e.pending,t.error=!1,t.idempotency_key=e.idempotency_key,t.isNormalized=!0,t}}},49753:(e,t,n)=>{"use strict";var r,o,i,s,a;n.d(t,{Z:()=>c});const c=(r=[],o=128,i=128,s=function(e){return e.complete&&0!==e.naturalHeight},{initFaviconService:function(){document.querySelectorAll('link[rel="icon"]').forEach((function(e){if(e){var t=document.createElement("canvas");t.width=o,t.height=i;var n=new Image;n.crossOrigin="anonymous",n.src=e.href;var s=t.getContext("2d");r.push({favcanvas:t,favimg:n,favcontext:s,favicon:e})}}))},clearFaviconBadge:a=function(){0!==r.length&&r.forEach((function(e){var t=e.favimg,n=e.favcanvas,r=e.favcontext,a=e.favicon;t&&r&&a&&(r.clearRect(0,0,o,i),s(t)&&r.drawImage(t,0,0,t.width,t.height,0,0,o,i),a.href=n.toDataURL("image/png"))}))},drawFaviconBadge:function(){0!==r.length&&(a(),r.forEach((function(e){var t=e.favimg,n=e.favcanvas,r=e.favcontext,a=e.favicon;if(t&&r&&r){var c=getComputedStyle(document.body),l="".concat(c.getPropertyValue("--badgeNotification")||"rgb(240, 100, 100)");s(t)&&r.drawImage(t,0,0,t.width,t.height,0,0,o,i),r.fillStyle=l,r.beginPath(),r.arc(96,32,32,0,2*Math.PI,!1),r.fill(),a.href=n.toDataURL("image/png")}})))}})},65079:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={fileSizeFormat:function(e){var t=["B","KiB","MiB","GiB","TiB"],n=e;if(n<1)return n+" "+t[0];var r=Math.min(Math.floor(Math.log(n)/Math.log(1024)),t.length-1);return{num:n=1*(n/Math.pow(1024,r)).toFixed(2),unit:t[r]}}}},58394:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(e){return e.match(/flash/)?"flash":e.match(/text\/html/)?"html":e.match(/image/)?"image":e.match(/video/)?"video":e.match(/audio/)?"audio":"unknown"};const o={fileType:r,fileMatchesSomeType:function(e,t){return e.some((function(e){return r(t.mimetype)===e}))}}},39776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(35161),o=n.n(r),i=n(72617),s=n(2900),a={ja_easy:"ja",zh_Hant:"zh-HANT",zh:"zh-Hans"},c=function(e){return a[e]||e},l=function(e){var t={ja_easy:"やさしいにほんご",zh:"简体中文",zh_Hant:"繁體中文"}[e]||s.Z.getNativeName(e),n=c(e);return t.charAt(0).toLocaleUpperCase(n)+t.slice(1)},u=o()(i.Z.languages,(function(e){return{code:e,name:l(e)}})).sort((function(e,t){return e.name.localeCompare(t.name)}));const d={internalToBrowserLocale:c,internalToBackendLocale:function(e){return c(e).replace("_","-")},languages:u,getLanguageName:l}},52230:(e,t,n)=>{"use strict";n.d(t,{Bt:()=>d,G2:()=>w,Gr:()=>m,Km:()=>b,nJ:()=>v,nU:()=>f});var r=n(64721),o=n.n(r),i=n(89734),s=n.n(i),a=n(63105),c=n.n(a),l=n(67828),u=n(64689),d=function(e){return e.state.statuses.notifications.data},p=function(e){var t=e.rootState||e.state;return[t.config.notificationVisibility.likes&&"like",t.config.notificationVisibility.mentions&&"mention",t.config.notificationVisibility.repeats&&"repeat",t.config.notificationVisibility.follows&&"follow",t.config.notificationVisibility.followRequest&&"follow_request",t.config.notificationVisibility.moves&&"move",t.config.notificationVisibility.emojiReactions&&"pleroma:emoji_reaction",t.config.notificationVisibility.reports&&"pleroma:report",t.config.notificationVisibility.polls&&"poll"].filter((function(e){return e}))},h=["like","mention","repeat","pleroma:emoji_reaction","poll"],m=function(e){return o()(h,e)},f=function(e){return!(m(e.type)&&!e.status)},g=function(e,t){var n=Number(e.id),r=Number(t.id),o=!Number.isNaN(n),i=!Number.isNaN(r);return o&&i?n>r?-1:1:o&&!i?1:!o&&i||e.id>t.id?-1:1},v=function(e,t){var n=e.rootState||e.state;if(!t.seen&&p(e).includes(t.type)&&("mention"!==t.type||!function(e,t){if(t.status)return t.status.muted||(0,l.u)(t.status,e.rootGetters.mergedConfig.muteWords).length>0}(e,t))){var r=y(t,e.rootGetters.i18n);(0,u.w)(n,r)}},w=function(e,t){var n=d(e).map((function(e){return e})).sort(g);return(n=s()(n,"seen")).filter((function(n){return(t||p(e)).includes(n.type)}))},b=function(e){return c()(w(e),(function(e){return!e.seen}))},y=function(e,t){var n,r={tag:e.id},o=e.status,i=e.from_profile.name;switch(r.title=i,r.icon=e.from_profile.profile_image_url,e.type){case"like":n="favorited_you";break;case"repeat":n="repeated_you";break;case"follow":n="followed_you";break;case"move":n="migrated_to";break;case"follow_request":n="follow_request";break;case"pleroma:report":n="submitted_report";break;case"poll":n="poll_ended"}return"pleroma:emoji_reaction"===e.type?r.body=t.t("notifications.reacted_with",[e.emoji]):n?r.body=t.t("notifications."+n):m(e.type)&&(r.body=e.status.text),o&&o.attachments&&o.attachments.length>0&&!o.nsfw&&o.attachments[0].mimetype.startsWith("image/")&&(r.image=o.attachments[0].url),r}},15568:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(93433),o=n(77776),i=n(22626),s=["mention","favourite","reblog","follow","move","pleroma:emoji_reaction","pleroma:report"],a=function(e){var t=e.store,n=e.credentials,o=e.older,i=void 0!==o&&o,a=e.since,l={credentials:n},u=t.getters,d=(t.rootState||t.state).statuses.notifications,p=u.mergedConfig.hideMutedPosts;if(l.includeTypes=s,l.withMuted=!p,l.timeline="notifications",i)return d.minId!==Number.POSITIVE_INFINITY&&(l.until=d.minId),c({store:t,args:l,older:i});void 0===a&&d.maxId!==Number.POSITIVE_INFINITY?l.since=d.maxId:null!==a&&(l.since=a);var h=c({store:t,args:l,older:i}),m=d.data,f=m.filter((function(e){return e.seen})).map((function(e){return e.id}));return m.length-f.length>0&&f.length>0&&(l.since=Math.max.apply(Math,(0,r.Z)(f)),c({store:t,args:l,older:i})),h},c=function(e){var t=e.store,n=e.args,r=e.older;return o.ZP.fetchTimeline(n).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data;return function(e){var t=e.notifications,n=e.older;e.store.dispatch("addNewNotifications",{notifications:t,older:n})}({store:t,notifications:n,older:r}),n})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"notifications.error",messageArgs:[e.message],timeout:5e3}),console.error(e)}))};const l={fetchAndUpdate:a,startFetching:function(e){var t=e.credentials,n=e.store;setTimeout((function(){return n.dispatch("setNotificationsSilence",!1)}),1e4);var r=function(){return a({credentials:t,store:n})};return r(),(0,i.F)(r,1e4)}}},67952:(e,t,n)=>{"use strict";n.d(t,{y:()=>r});var r=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.top,s=void 0===i?0:i,a=r.left,c=void 0===a?0:a,l=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u={top:s+t.offsetTop,left:c+t.offsetLeft};if(!l&&t!==window){var d=o(t),p=d.topPadding,h=d.leftPadding;u.top+=l?0:p,u.left+=l?0:h}if(t.offsetParent&&"sticky"!==window.getComputedStyle(t.offsetParent).position&&(n===window||n.contains(t.offsetParent)||n===t.offsetParent))return e(t.offsetParent,n,u,!1);if(n!==window){var m=o(n),f=m.topPadding,g=m.leftPadding;u.top+=f,u.left+=g}return u},o=function(e){var t=window.getComputedStyle(e)["padding-top"],n=Number(t.substring(0,t.length-2)),r=window.getComputedStyle(e)["padding-left"];return{topPadding:n,leftPadding:Number(r.substring(0,r.length-2))}}},22626:(e,t,n)=>{"use strict";n.d(t,{F:()=>r});var r=function(e,t){var n=!1,r=null;return r=window.setTimeout((function o(){var i=e();i&&i.finally?i.finally((function(){n||(r=window.setTimeout(o,t))})):console.warn("promiseInterval: promise call did not return a promise, stopping interval.")}),t),{stop:function(){n=!0,window.clearTimeout(r)}}}},67828:(e,t,n)=>{"use strict";n.d(t,{u:()=>i});var r=n(63105),o=n.n(r),i=function(e,t){var n=e.text.toLowerCase(),r=e.summary.toLowerCase();return o()(t,(function(e){return n.includes(e.toLowerCase())||r.includes(e.toLowerCase())}))}},7257:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(35161),o=n.n(r),i=n(77776);const s={postStatus:function(e){var t=e.store,n=e.status,r=e.spoilerText,s=e.visibility,a=e.sensitive,c=e.poll,l=e.media,u=void 0===l?[]:l,d=e.inReplyToStatusId,p=void 0===d?void 0:d,h=e.contentType,m=void 0===h?"text/plain":h,f=e.preview,g=void 0!==f&&f,v=e.idempotencyKey,w=void 0===v?"":v,b=o()(u,"id");return i.ZP.postStatus({credentials:t.state.users.currentUser.credentials,status:n,spoilerText:r,visibility:s,sensitive:a,mediaIds:b,inReplyToStatusId:p,contentType:m,poll:c,preview:g,idempotencyKey:w}).then((function(e){return e.error||g||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return{error:e.message}}))},editStatus:function(e){var t=e.store,n=e.statusId,r=e.status,s=e.spoilerText,a=e.sensitive,c=e.poll,l=e.media,u=void 0===l?[]:l,d=e.contentType,p=void 0===d?"text/plain":d,h=o()(u,"id");return i.ZP.editStatus({id:n,credentials:t.state.users.currentUser.credentials,status:r,spoilerText:s,sensitive:a,poll:c,mediaIds:h,contentType:p}).then((function(e){return e.error||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},uploadMedia:function(e){var t=e.store,n=e.formData,r=t.state.users.currentUser.credentials;return i.ZP.uploadMedia({credentials:r,formData:n})},setMediaDescription:function(e){var t=e.store,n=e.id,r=e.description,o=t.state.users.currentUser.credentials;return i.ZP.setMediaDescription({credentials:o,id:n,description:r})}}},77394:(e,t,n)=>{"use strict";n.d(t,{H2:()=>P,I3:()=>$,LP:()=>b,Ot:()=>v,RC:()=>D,_v:()=>h,bY:()=>U,dE:()=>x,gm:()=>z,l9:()=>T,lD:()=>y,m:()=>_,mg:()=>g,vp:()=>C});var r=n(71002),o=n(93433),i=n(4942),s=n(29439),a=n(97332),c=n(21865),l=n(40454),u=n(85565);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=function(e){var t=I(e).rules,n=document.head,r=document.body;r.classList.add("hidden");var o=document.createElement("style");n.appendChild(o);var i=o.sheet;i.toString(),i.insertRule(":root { ".concat(t.radii," }"),"index-max"),i.insertRule(":root { ".concat(t.colors," }"),"index-max"),i.insertRule(":root { ".concat(t.shadows," }"),"index-max"),i.insertRule(":root { ".concat(t.fonts," }"),"index-max"),r.classList.remove("hidden")},m=function(e){return{sidebarColumnWidth:e.sidebarColumnWidth,contentColumnWidth:e.contentColumnWidth,notifsColumnWidth:e.notifsColumnWidth}},f=m(u.W2),g=function(e){var t=m(e);if(t!==f){var n=document.head,r=document.body;r.classList.add("hidden");var o=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],r=t[1];return"--".concat(n,": ").concat(r)})).join(";"),i=document.createElement("style");n.appendChild(i);var a=i.sheet;a.toString(),a.insertRule(":root { ".concat(o," }"),"index-max"),r.classList.remove("hidden")}},v=function(e,t){return 0===e.length?"none":e.filter((function(e){return t?e.inset:e})).map((function(e){return[e.x,e.y,e.blur,e.spread].map((function(e){return e+"px"})).concat([(0,c.pP)(e.color,e.alpha),e.inset?"inset":""]).join(" ")})).join(", ")},w=function(e){return 0===e.length?"none":e.filter((function(e){return!e.inset&&0===Number(e.spread)})).map((function(e){return[e.x,e.y,e.blur/2].map((function(e){return e+"px"})).concat([(0,c.pP)(e.color,e.alpha)]).join(" ")})).map((function(e){return"drop-shadow(".concat(e,")")})).join(" ")},b=function(e){var t=e.themeEngineVersion?e.colors||e:x(e.colors||e),n=(0,l.EC)(t,e.opacity||{}),r=n.colors,o=n.opacity,i=Object.entries(r).reduce((function(e,t){var n=(0,s.Z)(t,2),r=n[0],o=n[1];return o?(e.solid[r]=(0,c.CO)(o),e.complete[r]=void 0===o.a?(0,c.CO)(o):(0,c._I)(o),e):e}),{complete:{},solid:{}});return{rules:{colors:Object.entries(i.complete).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],r=t[1];return"--".concat(n,": ").concat(r)})).join(";")},theme:{colors:i.solid,opacity:o}}},y=function(e){var t=e.radii||{};void 0!==e.btnRadius&&(t=Object.entries(e).filter((function(e){var t=(0,s.Z)(e,2),n=t[0];return t[1],n.endsWith("Radius")})).reduce((function(e,t){return e[t[0].split("Radius")[0]]=t[1],e}),{}));var n=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),r=n[0],o=n[1];return e[r]=o,e}),{btn:4,input:4,checkbox:2,panel:10,avatar:5,avatarAlt:50,tooltip:2,attachment:5,chatMessage:t.panel});return{rules:{radii:Object.entries(n).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],r=t[1];return"--".concat(n,"Radius: ").concat(r,"px")})).join(";")},theme:{radii:n}}},_=function(e){var t=Object.entries(e.fonts||{}).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),r=n[0],o=n[1];return e[r]=Object.entries(o).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),r=n[0],o=n[1];return e[r]=o,e}),e[r]),e}),{interface:{family:"sans-serif"},input:{family:"inherit"},post:{family:"inherit"},postCode:{family:"monospace"}});return{rules:{fonts:Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],r=t[1];return"--".concat(n,"Font: ").concat(r.family)})).join(";")},theme:{fonts:t}}},k=function(e,t){return{x:0,y:e?1:-1,blur:0,spread:0,color:t?"#000000":"#FFFFFF",alpha:.2,inset:!0}},S=[k(!0,!1),k(!1,!0)],j=[k(!0,!0),k(!1,!1)],O={x:0,y:0,blur:4,spread:0,color:"--faint",alpha:1},C={panel:[{x:1,y:1,blur:4,spread:0,color:"#000000",alpha:.6}],topBar:[{x:0,y:0,blur:4,spread:0,color:"#000000",alpha:.6}],popup:[{x:2,y:2,blur:3,spread:0,color:"#000000",alpha:.5}],avatar:[{x:0,y:1,blur:8,spread:0,color:"#000000",alpha:.7}],avatarStatus:[],panelHeader:[],button:[{x:0,y:0,blur:2,spread:0,color:"#000000",alpha:1}].concat(S),buttonHover:[O].concat(S),buttonPressed:[O].concat(j),input:[].concat(j,[{x:0,y:0,blur:2,inset:!0,spread:0,color:"#000000",alpha:1}])},P=function(e,t){var n={button:"btn",panel:"bg",top:"topBar",popup:"popover",avatar:"bg",panelHeader:"panel",input:"input"},r=Object.fromEntries(Object.entries(e.shadows||{}).map((function(e){var t=(0,s.Z)(e,2);return[t[0],t[1].map((function(e){return p({color:"#000000"},e)}))]}))),u=r&&!e.themeEngineVersion?T(r,e.opacity):r||{},d=Object.entries(p(p({},C),u)).reduce((function(e,r){var u=(0,s.Z)(r,2),d=u[0],h=u[1],m=d.replace(/[A-Z].*$/,""),f=n[m],g=(0,c.ov)((0,a.OQ)(t[f]).rgb)<.5?1:-1,v=h.reduce((function(e,n){return[].concat((0,o.Z)(e),[p(p({},n),{},{color:(0,c.CO)((0,l.NI)(n.color,(function(e){return(0,a.OQ)(t[e]).rgb}),g))})])}),[]);return p(p({},e),{},(0,i.Z)({},d,v))}),{});return{rules:{shadows:Object.entries(d).map((function(e){var t=(0,s.Z)(e,2),n=t[0],r=t[1];return["--".concat(n,"Shadow: ").concat(v(r)),"--".concat(n,"ShadowFilter: ").concat(w(r)),"--".concat(n,"ShadowInset: ").concat(v(r,!0))].join(";")})).join(";")},theme:{shadows:d}}},z=function(e,t,n,r){return{rules:p(p(p(p({},n.rules),e.rules),t.rules),r.rules),theme:p(p(p(p({},n.theme),e.theme),t.theme),r.theme)}},I=function(e){var t=b(e);return z(t,y(e),P(e,t.theme.colors,t.mod),_(e))},D=function(){var e="no-store";return window.fetch("/static/styles.json",{cache:e}).then((function(e){return e.json()})).then((function(t){return Object.entries(t).map((function(t){var n=(0,s.Z)(t,2),o=n[0],i=n[1],a=null;return"object"===(0,r.Z)(i)?a=Promise.resolve(i):"string"==typeof i&&(a=window.fetch(i,{cache:e}).then((function(e){return e.json()})).catch((function(e){return console.error(e),null}))),[o,a]}))})).then((function(e){return e.reduce((function(e,t){var n=(0,s.Z)(t,2),r=n[0],o=n[1];return e[r]=o,e}),{})}))},x=function(e){return Object.entries(e).reduce((function(e,t){var n=(0,s.Z)(t,2),r=n[0],o=n[1];switch(r){case"lightBg":return p(p({},e),{},{highlight:o});case"btnText":return p(p({},e),["","Panel","TopBar"].reduce((function(e,t){return p(p({},e),{},(0,i.Z)({},"btn"+t+"Text",o))}),{}));default:return p(p({},e),{},(0,i.Z)({},r,o))}}),{})},T=function(e,t){return Object.entries(e).reduce((function(e,n){var r=(0,s.Z)(n,2),a=r[0],c=r[1].reduce((function(e,n){return[].concat((0,o.Z)(e),[p(p({},n),{},{alpha:(s=n,a=s.color,(void 0===a?"#000000":a).startsWith("--")?(r=n,i=r.color,t[(0,l.AV)(i.substring(2).split(",")[0])]||1):n.alpha)})]);var r,i,s,a}),[]);return p(p({},e),{},(0,i.Z)({},a,c))}),{})},$=function(e){return D().then((function(t){return t[e]?t[e]:t["pleroma-dark"]})).then((function(e){var t=Array.isArray(e),n=t?{}:e.theme;if(t){var r=(0,c.wK)(e[1]),o=(0,c.wK)(e[2]),i=(0,c.wK)(e[3]),s=(0,c.wK)(e[4]),a=(0,c.wK)(e[5]||"#FF0000"),l=(0,c.wK)(e[6]||"#00FF00"),u=(0,c.wK)(e[7]||"#0000FF"),d=(0,c.wK)(e[8]||"#E3FF00");n.colors={bg:r,fg:o,text:i,link:s,cRed:a,cBlue:u,cGreen:l,cOrange:d}}return{theme:n,source:e.source}}))},U=function(e){return $(e).then((function(e){return h(e.theme)}))}},44551:(e,t,n)=>{"use strict";n.d(t,{em:()=>a,k0:()=>i,wB:()=>s});var r=n(97332),o=n(21865),i={undelay:null,topBar:null,badge:null,profileTint:null,fg:null,bg:"underlay",highlight:"bg",panel:"bg",popover:"bg",selectedMenu:"popover",btn:"bg",btnPanel:"panel",btnTopBar:"topBar",input:"bg",inputPanel:"panel",inputTopBar:"topBar",alert:"bg",alertPanel:"panel",poll:"bg",chatBg:"underlay",chatMessage:"chatBg"},s={profileTint:.5,alert:.5,input:.5,faint:.5,underlay:.15,alertPopup:.95},a={bg:{depends:[],opacity:"bg",priority:1},wallpaper:{depends:["bg"],color:function(e,t){return(0,r.Xu)(-2*e,t).rgb}},fg:{depends:[],priority:1},text:{depends:[],layer:"bg",opacity:null,priority:1},underlay:{default:"#000000",opacity:"underlay"},link:{depends:["accent"],priority:1},accent:{depends:["link"],priority:1},faint:{depends:["text"],opacity:"faint"},faintLink:{depends:["link"],opacity:"faint"},postFaintLink:{depends:["postLink"],opacity:"faint"},cBlue:"#0000ff",cRed:"#FF0000",cGreen:"#00FF00",cOrange:"#E3FF00",profileBg:{depends:["bg"],color:function(e,t){return{r:Math.floor(.53*t.r),g:Math.floor(.56*t.g),b:Math.floor(.59*t.b)}}},profileTint:{depends:["bg"],layer:"profileTint",opacity:"profileTint"},highlight:{depends:["bg"],color:function(e,t){return(0,r.Xu)(5*e,t).rgb}},highlightLightText:{depends:["lightText"],layer:"highlight",textColor:!0},highlightPostLink:{depends:["postLink"],layer:"highlight",textColor:"preserve"},highlightFaintText:{depends:["faint"],layer:"highlight",textColor:!0},highlightFaintLink:{depends:["faintLink"],layer:"highlight",textColor:"preserve"},highlightPostFaintLink:{depends:["postFaintLink"],layer:"highlight",textColor:"preserve"},highlightText:{depends:["text"],layer:"highlight",textColor:!0},highlightLink:{depends:["link"],layer:"highlight",textColor:"preserve"},highlightIcon:{depends:["highlight","highlightText"],color:function(e,t,n){return(0,o.a4)(t,n)}},popover:{depends:["bg"],opacity:"popover"},popoverLightText:{depends:["lightText"],layer:"popover",textColor:!0},popoverPostLink:{depends:["postLink"],layer:"popover",textColor:"preserve"},popoverFaintText:{depends:["faint"],layer:"popover",textColor:!0},popoverFaintLink:{depends:["faintLink"],layer:"popover",textColor:"preserve"},popoverPostFaintLink:{depends:["postFaintLink"],layer:"popover",textColor:"preserve"},popoverText:{depends:["text"],layer:"popover",textColor:!0},popoverLink:{depends:["link"],layer:"popover",textColor:"preserve"},popoverIcon:{depends:["popover","popoverText"],color:function(e,t,n){return(0,o.a4)(t,n)}},selectedPost:"--highlight",selectedPostFaintText:{depends:["highlightFaintText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLightText:{depends:["highlightLightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostPostLink:{depends:["highlightPostLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostFaintLink:{depends:["highlightFaintLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostText:{depends:["highlightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLink:{depends:["highlightLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostIcon:{depends:["selectedPost","selectedPostText"],color:function(e,t,n){return(0,o.a4)(t,n)}},selectedMenu:{depends:["bg"],color:function(e,t){return(0,r.Xu)(5*e,t).rgb}},selectedMenuLightText:{depends:["highlightLightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintText:{depends:["highlightFaintText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintLink:{depends:["highlightFaintLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuText:{depends:["highlightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuLink:{depends:["highlightLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuIcon:{depends:["selectedMenu","selectedMenuText"],color:function(e,t,n){return(0,o.a4)(t,n)}},selectedMenuPopover:{depends:["popover"],color:function(e,t){return(0,r.Xu)(5*e,t).rgb}},selectedMenuPopoverLightText:{depends:["selectedMenuLightText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintText:{depends:["selectedMenuFaintText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintLink:{depends:["selectedMenuFaintLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverText:{depends:["selectedMenuText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverLink:{depends:["selectedMenuLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverIcon:{depends:["selectedMenuPopover","selectedMenuText"],color:function(e,t,n){return(0,o.a4)(t,n)}},lightText:{depends:["text"],layer:"bg",textColor:"preserve",color:function(e,t){return(0,r.Xu)(20*e,t).rgb}},postLink:{depends:["link"],layer:"bg",textColor:"preserve"},postGreentext:{depends:["cGreen"],layer:"bg",textColor:"preserve"},postCyantext:{depends:["cBlue"],layer:"bg",textColor:"preserve"},border:{depends:["fg"],opacity:"border",color:function(e,t){return(0,r.Xu)(2*e,t).rgb}},poll:{depends:["accent","bg"],copacity:"poll",color:function(e,t,n){return(0,o.Tj)(t,.4,n)}},pollText:{depends:["text"],layer:"poll",textColor:!0},icon:{depends:["bg","text"],inheritsOpacity:!1,color:function(e,t,n){return(0,o.a4)(t,n)}},fgText:{depends:["text"],layer:"fg",textColor:!0},fgLink:{depends:["link"],layer:"fg",textColor:"preserve"},panel:{depends:["fg"],opacity:"panel"},panelText:{depends:["text"],layer:"panel",textColor:!0},panelFaint:{depends:["fgText"],layer:"panel",opacity:"faint",textColor:!0},panelLink:{depends:["fgLink"],layer:"panel",textColor:"preserve"},topBar:"--fg",topBarText:{depends:["fgText"],layer:"topBar",textColor:!0},topBarLink:{depends:["fgLink"],layer:"topBar",textColor:"preserve"},tab:{depends:["btn"]},tabText:{depends:["btnText"],layer:"btn",textColor:!0},tabActiveText:{depends:["text"],layer:"bg",textColor:!0},btn:{depends:["fg"],variant:"btn",opacity:"btn"},btnText:{depends:["fgText"],layer:"btn",textColor:!0},btnPanelText:{depends:["btnText"],layer:"btnPanel",variant:"btn",textColor:!0},btnTopBarText:{depends:["btnText"],layer:"btnTopBar",variant:"btn",textColor:!0},btnPressed:{depends:["btn"],layer:"btn"},btnPressedText:{depends:["btnText"],layer:"btn",variant:"btnPressed",textColor:!0},btnPressedPanel:{depends:["btnPressed"],layer:"btn"},btnPressedPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnPressed",textColor:!0},btnPressedTopBar:{depends:["btnPressed"],layer:"btn"},btnPressedTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnPressed",textColor:!0},btnToggled:{depends:["btn"],layer:"btn",color:function(e,t){return(0,r.Xu)(20*e,t).rgb}},btnToggledText:{depends:["btnText"],layer:"btn",variant:"btnToggled",textColor:!0},btnToggledPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnToggled",textColor:!0},btnToggledTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnToggled",textColor:!0},btnDisabled:{depends:["btn","bg"],color:function(e,t,n){return(0,o.Tj)(t,.25,n)}},btnDisabledText:{depends:["btnText","btnDisabled"],layer:"btn",variant:"btnDisabled",color:function(e,t,n){return(0,o.Tj)(t,.25,n)}},btnDisabledPanelText:{depends:["btnPanelText","btnDisabled"],layer:"btnPanel",variant:"btnDisabled",color:function(e,t,n){return(0,o.Tj)(t,.25,n)}},btnDisabledTopBarText:{depends:["btnTopBarText","btnDisabled"],layer:"btnTopBar",variant:"btnDisabled",color:function(e,t,n){return(0,o.Tj)(t,.25,n)}},input:{depends:["fg"],opacity:"input"},inputText:{depends:["text"],layer:"input",textColor:!0},inputPanelText:{depends:["panelText"],layer:"inputPanel",variant:"input",textColor:!0},inputTopbarText:{depends:["topBarText"],layer:"inputTopBar",variant:"input",textColor:!0},alertError:{depends:["cRed"],opacity:"alert"},alertErrorText:{depends:["text"],layer:"alert",variant:"alertError",textColor:!0},alertErrorPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertError",textColor:!0},alertWarning:{depends:["cOrange"],opacity:"alert"},alertWarningText:{depends:["text"],layer:"alert",variant:"alertWarning",textColor:!0},alertWarningPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertWarning",textColor:!0},alertSuccess:{depends:["cGreen"],opacity:"alert"},alertSuccessText:{depends:["text"],layer:"alert",variant:"alertSuccess",textColor:!0},alertSuccessPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertSuccess",textColor:!0},alertNeutral:{depends:["text"],opacity:"alert"},alertNeutralText:{depends:["text"],layer:"alert",variant:"alertNeutral",color:function(e,t){return(0,r.Xp)(t).rgb},textColor:!0},alertNeutralPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertNeutral",textColor:!0},alertPopupError:{depends:["alertError"],opacity:"alertPopup"},alertPopupErrorText:{depends:["alertErrorText"],layer:"popover",variant:"alertPopupError",textColor:!0},alertPopupWarning:{depends:["alertWarning"],opacity:"alertPopup"},alertPopupWarningText:{depends:["alertWarningText"],layer:"popover",variant:"alertPopupWarning",textColor:!0},alertPopupSuccess:{depends:["alertSuccess"],opacity:"alertPopup"},alertPopupSuccessText:{depends:["alertSuccessText"],layer:"popover",variant:"alertPopupSuccess",textColor:!0},alertPopupNeutral:{depends:["alertNeutral"],opacity:"alertPopup"},alertPopupNeutralText:{depends:["alertNeutralText"],layer:"popover",variant:"alertPopupNeutral",textColor:!0},badgeNotification:"--cRed",badgeNotificationText:{depends:["text","badgeNotification"],layer:"badge",variant:"badgeNotification",textColor:"bw"},badgeNeutral:"--cGreen",badgeNeutralText:{depends:["text","badgeNeutral"],layer:"badge",variant:"badgeNeutral",textColor:"bw"},chatBg:{depends:["bg"]},chatMessageIncomingBg:{depends:["chatBg"]},chatMessageIncomingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:!0},chatMessageIncomingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:"preserve"},chatMessageIncomingBorder:{depends:["border"],opacity:"border",color:function(e,t){return(0,r.Xu)(2*e,t).rgb}},chatMessageOutgoingBg:{depends:["chatMessageIncomingBg"],color:function(e,t){return(0,r.Xu)(5*e,t).rgb}},chatMessageOutgoingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:!0},chatMessageOutgoingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:"preserve"},chatMessageOutgoingBorder:{depends:["chatMessageOutgoingBg"],opacity:"border",color:function(e,t){return(0,r.Xu)(2*e,t).rgb}}}},40454:(e,t,n)=>{"use strict";n.d(t,{AQ:()=>y,AV:()=>v,EC:()=>k,NI:()=>_,we:()=>p,xb:()=>m});var r=n(4942),o=n(29439),i=n(71002),s=n(93433),a=n(97332),c=n(21865),l=n(44551);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=3,h=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.k0,n=[e],r=t[e];r;)n.unshift(r),r=t[r];return n},m=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;return h(e).map((function(i){return[i===e?r[t]:r[i],i===e?o[n]||1:o[i]]}))},f=function(e,t){var n=t[e];if("string"==typeof n&&n.startsWith("--"))return[n.substring(2)];if(null===n)return[];var r=n.depends,o=n.layer,i=n.variant,a=o?h(o).map((function(e){return e===o?i||o:e})):[];return Array.isArray(r)?[].concat((0,s.Z)(r),(0,s.Z)(a)):(0,s.Z)(a)},g=function(e){return"object"===(0,i.Z)(e)?e:{depends:e.startsWith("--")?[e.substring(2)]:[],default:e.startsWith("#")?e:void 0}},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,r=g(t[e]);if(null!==r.opacity){if(r.opacity)return r.opacity;var o=function r(o){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(o,t)[0];if(void 0!==a){var c=t[a];if(void 0!==c)return c.opacity||null===c?c.opacity:c.depends&&i.includes(a)?r(a,[].concat((0,s.Z)(i),[a])):null}};return r.depends?o(e):void 0}},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,r=g(t[e]);if(l.k0[e])return e;if(null!==r.layer){if(r.layer)return r.layer;var o=function r(o){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(o,t)[0];if(void 0!==a){var c=t[a];if(void 0!==c)return c.layer||null===c?c.layer:c.depends?r(c,[].concat((0,s.Z)(i),[a])):null}};return r.depends?o(e):void 0}},b=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.em,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f,n=Object.keys(e),r=new Set(n),o=new Set,i=new Set,s=[].concat(n),a=[],c=function n(s){if(r.has(s))r.delete(s),o.add(s),t(s,e).forEach(n),o.delete(s),i.add(s),a.push(s);else if(o.has(s))console.debug("Cyclic depenency in topoSort, ignoring"),a.push(s);else if(!i.has(s))throw new Error("Unintended condition in topoSort!")};s.length>0;)c(s.pop());return a.map((function(e,t){return{data:e,index:t}})).sort((function(n,r){var o=n.data,i=n.index,s=r.data,a=r.index,c=t(o,e).length,l=t(s,e).length;return c===l||0!==l&&0!==c?i-a:0===c&&0!==l?-1:0===l&&0!==c?1:0})).map((function(e){return e.data}))}(Object.entries(l.em).sort((function(e,t){var n=(0,o.Z)(e,2),r=(n[0],n[1]),i=(0,o.Z)(t,2),s=(i[0],i[1]);return(r&&r.priority||0)-(s&&s.priority||0)})).reduce((function(e,t){var n=(0,o.Z)(t,2),i=n[0],s=n[1];return d(d({},e),{},(0,r.Z)({},i,s))}),{})),y=Object.entries(l.em).reduce((function(e,t){var n=(0,o.Z)(t,2),i=n[0],a=(n[1],v(i,l.em,f));return a?d(d({},e),{},(0,r.Z)({},a,{defaultValue:l.wB[a]||1,affectedSlots:[].concat((0,s.Z)(e[a]&&e[a].affectedSlots||[]),[i])})):e}),{}),_=function(e,t,n){if("string"!=typeof e||!e.startsWith("--"))return e;var r=null,i=e.split(/,/g).map((function(e){return e.trim()})),s=(0,o.Z)(i,2),c=s[0],l=s[1];return r=t(c.substring(2)),l&&(r=(0,a.Xu)(Number.parseFloat(l)*n,r).rgb),r},k=function(e,t){return b.reduce((function(n,o){var i,u=n.colors,p=n.opacity,h=e[o],b=g(l.em[o]),k=f(o,l.em),S=!!b.textColor,j=b.variant||b.layer;i=S?(0,c.Rx)(d({},u[k[0]]||(0,a.OQ)(e[o]||"#FF00FF").rgb),m(w(o)||"bg",j||"bg",v(j),u,p)):j&&j!==o?u[j]||(0,a.OQ)(e[j]).rgb:u.bg||(0,a.OQ)(e.bg);var O=(0,c.ov)(i)<.5?1:-1,C=null;if(h){var P=h;if("transparent"===P){var z=m(w(o),o,v(o)||o,u,p).slice(0,-1);P=d(d({},(0,c.Rx)((0,a.OQ)("#FF00FF").rgb,z)),{},{a:0})}else"string"==typeof h&&h.startsWith("--")?P=_(h,(function(t){return u[t]||e[t]}),O):"string"==typeof h&&h.startsWith("#")&&(P=(0,a.OQ)(P).rgb);C=d({},P)}else if(b.default)C=(0,a.OQ)(b.default).rgb;else{var I=b.color||function(e,t){return d({},t)};if(b.textColor)if("bw"===b.textColor)C=(0,a.wo)(i).rgb;else{var D=d({},u[k[0]]);b.color&&(D=I.apply(void 0,[O].concat((0,s.Z)(k.map((function(e){return d({},u[e])})))))),C=(0,c.uu)(i,d({},D),"preserve"===b.textColor)}else C=I.apply(void 0,[O].concat((0,s.Z)(k.map((function(e){return d({},u[e])})))))}if(!C)throw new Error("Couldn't generate color for "+o);var x=b.opacity||v(o),T=b.opacity;if(null===T)C.a=1;else if("transparent"===h)C.a=0;else{var $=T&&void 0!==t[x],U=k[0],M=U&&u[U];T||!M||b.textColor||null===T?M||x?M&&0===M.a?C.a=0:C.a=Number($?t[x]:(y[x]||{}).defaultValue):delete C.a:C.a=M.a}return(Number.isNaN(C.a)||void 0===C.a)&&(C.a=1),x?{colors:d(d({},u),{},(0,r.Z)({},o,C)),opacity:d(d({},p),{},(0,r.Z)({},x,C.a))}:{colors:d(d({},u),{},(0,r.Z)({},o,C)),opacity:p}}),{colors:{},opacity:{}})}},95052:(e,t,n)=>{"use strict";n.d(t,{M:()=>c,q:()=>a});var r=n(4942),o=n(21865);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=function(e){if(void 0!==e){var t=e.color,n=e.type;if("string"==typeof t){var r=(0,o.wK)(t);if(null!=r){var i="rgb(".concat(Math.floor(r.r),", ").concat(Math.floor(r.g),", ").concat(Math.floor(r.b),")"),a="rgba(".concat(Math.floor(r.r),", ").concat(Math.floor(r.g),", ").concat(Math.floor(r.b),", .1)"),c="rgba(".concat(Math.floor(r.r),", ").concat(Math.floor(r.g),", ").concat(Math.floor(r.b),", .2)"),l={"--____highlight-solidColor":i,"--____highlight-tintColor":a,"--____highlight-tintColor2":c};return"striped"===n?s({backgroundImage:["repeating-linear-gradient(135deg,","".concat(a," ,"),"".concat(a," 20px,"),"".concat(c," 20px,"),"".concat(c," 40px")].join(" "),backgroundPosition:"0 0"},l):"solid"===n?s({backgroundColor:c},l):"side"===n?s({backgroundImage:["linear-gradient(to right,","".concat(i," ,"),"".concat(i," 2px,"),"transparent 6px"].join(" "),backgroundPosition:"0 0"},l):void 0}}}},c=function(e){return"USER____"+e.screen_name.replace(/\./g,"_").replace(/@/g,"_AT_")}},4493:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(64721),o=n.n(r);const i=function(e,t,n){var r=!t||function(e){return e&&e.includes("@")}(t)||o()(n,t);return{name:r?"external-user-profile":"user-profile",params:r?{id:e}:{name:t}}}},74722:(e,t,n)=>{"use strict";n.d(t,{Z:()=>W});var r=n(66252),o=n(3577),i=n(49963),s=["href","alt","title"],a={key:1,class:"attachment-buttons"},c=["placeholder"],l={key:1},u={class:"attachment-wrapper"},d=["href","alt","title"],p=["src"],h={key:1,class:"attachment-buttons"},m=["title"],f=["title"],g=["title"],v=["title"],w=["title"],b=["title"],y=["title"],_=["href"],k=["href"],S=["href"],j=["src","alt","title"],O={key:0,class:"image"},C=["src"],P={class:"text"},z=["href"],I=["innerHTML"],D=["href"],x=["placeholder"],T={key:1},$=n(4942),U=n(19236),M=n(12394),A=n(34133);const L=n.p+"static/img/nsfw.2958239.png";var E=n(58394),F=n(989),R=n(9382),N=n(84131);function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}R.vI.add(N.gMD,N.Xig,N.VmB,N.IyC,N.aQp,N.NBC,N.Bg$,N.N7g,N.I7k,N.UJf,N.S3c);const Z={props:["attachment","description","hideDescription","nsfw","size","setMedia","remove","shiftUp","shiftDn","edit"],data:function(){return{localDescription:this.description||this.attachment.description,nsfwImage:this.$store.state.instance.nsfwCensorImage||L,hideNsfwLocal:this.$store.getters.mergedConfig.hideNsfw,preloadImage:this.$store.getters.mergedConfig.preloadImage,loading:!1,img:"image"===E.Z.fileType(this.attachment.mimetype)&&document.createElement("img"),modalOpen:!1,showHidden:!1,flashLoaded:!1,showDescription:!1}},components:{Flash:M.Z,StillImage:U.Z,VideoAttachment:A.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){(0,$.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classNames:function(){return[{"-loading":this.loading,"-nsfw-placeholder":this.hidden,"-editable":void 0!==this.edit},"-type-"+this.type,this.size&&"-size-"+this.size,"-".concat(this.useContainFit?"contain":"cover","-fit")]},usePlaceholder:function(){return"hide"===this.size},useContainFit:function(){return this.$store.getters.mergedConfig.useContainFit},placeholderName:function(){return""!==this.attachment.description&&this.attachment.description?this.attachment.description:this.type.toUpperCase()},placeholderIconClass:function(){return"image"===this.type?"image":"video"===this.type?"video":"audio"===this.type?"music":"file"},referrerpolicy:function(){return this.$store.state.instance.mediaProxyAvailable?"":"no-referrer"},type:function(){return E.Z.fileType(this.attachment.mimetype)},hidden:function(){return this.nsfw&&this.hideNsfwLocal&&!this.showHidden},isEmpty:function(){return"html"===this.type&&!this.attachment.oembed},useModal:function(){var e=[];switch(this.size){case"hide":case"small":e=["image","video","audio","flash"];break;default:e=this.mergedConfig.playVideosInModal?["image","video","flash"]:["image"]}return e.includes(this.type)},videoTag:function(){return this.useModal?"button":"span"}},(0,F.Se)(["mergedConfig"])),watch:{"attachment.description":function(e){this.localDescription=e},localDescription:function(e){this.onEdit(e)}},methods:{linkClicked:function(e){var t=e.target;"A"===t.tagName&&window.open(t.href,"_blank")},openModal:function(e){this.useModal?(this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)):"unknown"===this.type&&window.open(this.attachment.url)},openModalForce:function(e){this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)},onEdit:function(e){this.edit&&this.edit(this.attachment,e)},onRemove:function(){this.remove&&this.remove(this.attachment)},onShiftUp:function(){this.shiftUp&&this.shiftUp(this.attachment)},onShiftDn:function(){this.shiftDn&&this.shiftDn(this.attachment)},stopFlash:function(){this.$refs.flash.closePlayer()},setFlashLoaded:function(e){this.flashLoaded=e},toggleDescription:function(){this.showDescription=!this.showDescription},toggleHidden:function(e){var t=this;!this.mergedConfig.useOneClickNsfw||this.showHidden||"video"===this.type&&!this.mergedConfig.playVideosInModal?this.img&&!this.preloadImage?this.img.onload?this.img.onload():(this.loading=!0,this.img.src=this.attachment.url,this.img.onload=function(){t.loading=!1,t.showHidden=!t.showHidden}):this.showHidden=!this.showHidden:this.openModal(e)},onImageLoad:function(e){var t=e.naturalWidth,n=e.naturalHeight;this.$emit("naturalSizeLoad",{id:this.attachment.id,width:t,height:n})}}},W=(0,n(83744).Z)(Z,[["render",function(e,t,n,$,U,M){var A=(0,r.up)("FAIcon"),L=(0,r.up)("StillImage"),E=(0,r.up)("VideoAttachment"),F=(0,r.up)("Flash");return e.usePlaceholder?((0,r.wg)(),(0,r.iD)("button",{key:0,class:(0,o.C_)(["Attachment -placeholder button-unstyled",e.classNames]),onClick:t[4]||(t[4]=function(){return e.openModal&&e.openModal.apply(e,arguments)})},["html"!==e.type?((0,r.wg)(),(0,r.iD)("a",{key:0,class:"placeholder",target:"_blank",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["prevent"]))},[(0,r.Wm)(A,{icon:e.placeholderIconClass},null,8,["icon"]),(0,r._)("b",null,(0,o.zw)(e.nsfw?"NSFW / ":""),1),(0,r.Uk)((0,o.zw)(e.edit?"":e.placeholderName),1)],8,s)):(0,r.kq)("",!0),e.edit||e.remove?((0,r.wg)(),(0,r.iD)("div",a,[e.remove?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-unstyled attachment-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"trash-alt"})])):(0,r.kq)("",!0)])):(0,r.kq)("",!0),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription||e.showDescription)?((0,r.wg)(),(0,r.iD)("div",{key:2,class:(0,o.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[3]||(t[3]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,c)),[[i.nr,e.localDescription]]):((0,r.wg)(),(0,r.iD)("p",l,(0,o.zw)(e.localDescription),1))],2)):(0,r.kq)("",!0)],2)):((0,r.wg)(),(0,r.iD)("div",{key:1,class:(0,o.C_)(["Attachment",e.classNames])},[(0,r.wy)((0,r._)("div",u,[e.hidden?((0,r.wg)(),(0,r.iD)("a",{key:0,class:"image-container",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[((0,r.wg)(),(0,r.iD)("img",{key:e.nsfwImage,class:"nsfw",src:e.nsfwImage},null,8,p)),"video"===e.type?((0,r.wg)(),(0,r.j4)(A,{key:0,class:"play-icon",icon:"play-circle"})):(0,r.kq)("",!0)],8,d)):(0,r.kq)("",!0),e.hidden?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",h,["flash"===e.type&&e.flashLoaded?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-unstyled attachment-button",title:e.$t("status.attachment_stop_flash"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.stopFlash&&e.stopFlash.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"stop"})],8,m)):(0,r.kq)("",!0),e.attachment.description&&"small"!==e.size&&!e.edit&&"unknown"!==e.type?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_description"),onClick:t[7]||(t[7]=(0,i.iM)((function(){return e.toggleDescription&&e.toggleDescription.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"align-right"})],8,f)):(0,r.kq)("",!0),e.useModal||"unknown"===e.type?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:2,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_in_modal"),onClick:t[8]||(t[8]=(0,i.iM)((function(){return e.openModalForce&&e.openModalForce.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"search-plus"})],8,g)),e.nsfw&&e.hideNsfwLocal?((0,r.wg)(),(0,r.iD)("button",{key:3,class:"button-unstyled attachment-button",title:e.$t("status.hide_attachment"),onClick:t[9]||(t[9]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"times"})],8,v)):(0,r.kq)("",!0),e.shiftUp?((0,r.wg)(),(0,r.iD)("button",{key:4,class:"button-unstyled attachment-button",title:e.$t("status.move_up"),onClick:t[10]||(t[10]=(0,i.iM)((function(){return e.onShiftUp&&e.onShiftUp.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"chevron-left"})],8,w)):(0,r.kq)("",!0),e.shiftDn?((0,r.wg)(),(0,r.iD)("button",{key:5,class:"button-unstyled attachment-button",title:e.$t("status.move_down"),onClick:t[11]||(t[11]=(0,i.iM)((function(){return e.onShiftDn&&e.onShiftDn.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"chevron-right"})],8,b)):(0,r.kq)("",!0),e.remove?((0,r.wg)(),(0,r.iD)("button",{key:6,class:"button-unstyled attachment-button",title:e.$t("status.remove_attachment"),onClick:t[12]||(t[12]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(A,{icon:"trash-alt"})],8,y)):(0,r.kq)("",!0)])),"image"!==e.type||e.hidden&&!e.preloadImage?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("a",{key:2,class:(0,o.C_)(["image-container",{"-hidden":e.hidden&&e.preloadImage}]),href:e.attachment.url,target:"_blank",onClick:t[13]||(t[13]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,r.Wm)(L,{class:"image",referrerpolicy:e.referrerpolicy,mimetype:e.attachment.mimetype,src:e.attachment.large_thumb_url||e.attachment.url,"image-load-handler":e.onImageLoad,alt:e.attachment.description},null,8,["referrerpolicy","mimetype","src","image-load-handler","alt"])],10,_)),"unknown"!==e.type||e.hidden?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("a",{key:3,class:"placeholder-container",href:e.attachment.url,target:"_blank"},[(0,r.Wm)(A,{size:"5x",icon:e.placeholderIconClass},null,8,["icon"]),(0,r._)("p",null,(0,o.zw)(e.localDescription),1)],8,k)),"video"!==e.type||e.hidden?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)((0,r.LL)(e.videoTag),{key:4,class:(0,o.C_)(["video-container",{"button-unstyled":"isModal"}]),href:e.attachment.url,onClick:(0,i.iM)(e.openModal,["stop","prevent"])},{default:(0,r.w5)((function(){return[(0,r.Wm)(E,{class:"video",attachment:e.attachment,controls:!e.useModal,onPlay:t[14]||(t[14]=function(t){return e.$emit("play")}),onPause:t[15]||(t[15]=function(t){return e.$emit("pause")})},null,8,["attachment","controls"]),e.useModal?((0,r.wg)(),(0,r.j4)(A,{key:0,class:"play-icon",icon:"play-circle"})):(0,r.kq)("",!0)]})),_:1},8,["href","onClick"])),"audio"!==e.type||e.hidden?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",{key:5,class:"audio-container",href:e.attachment.url,onClick:t[18]||(t[18]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},["audio"===e.type?((0,r.wg)(),(0,r.iD)("audio",{key:0,src:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,controls:"",onPlay:t[16]||(t[16]=function(t){return e.$emit("play")}),onPause:t[17]||(t[17]=function(t){return e.$emit("pause")})},null,40,j)):(0,r.kq)("",!0)],8,S)),"html"===e.type&&e.attachment.oembed?((0,r.wg)(),(0,r.iD)("div",{key:6,class:"oembed-container",onClick:t[19]||(t[19]=(0,i.iM)((function(){return e.linkClicked&&e.linkClicked.apply(e,arguments)}),["prevent"]))},[e.attachment.thumb_url?((0,r.wg)(),(0,r.iD)("div",O,[(0,r._)("img",{src:e.attachment.thumb_url},null,8,C)])):(0,r.kq)("",!0),(0,r._)("div",P,[(0,r._)("h1",null,[(0,r._)("a",{href:e.attachment.url},(0,o.zw)(e.attachment.oembed.title),9,z)]),(0,r._)("div",{innerHTML:e.attachment.oembed.oembedHTML},null,8,I)])])):(0,r.kq)("",!0),"flash"!==e.type||e.hidden?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",{key:7,class:"flash-container",href:e.attachment.url,onClick:t[22]||(t[22]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,r.Wm)(F,{ref:"flash",class:"flash",src:e.attachment.large_thumb_url||e.attachment.url,onPlayerOpened:t[20]||(t[20]=function(t){return e.setFlashLoaded(!0)}),onPlayerClosed:t[21]||(t[21]=function(t){return e.setFlashLoaded(!1)})},null,8,["src"])],8,D))],512),[[i.F8,!e.isEmpty]]),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription&&e.showDescription)?((0,r.wg)(),(0,r.iD)("div",{key:0,class:(0,o.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,"onUpdate:modelValue":t[23]||(t[23]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[24]||(t[24]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,x)),[[i.nr,e.localDescription]]):((0,r.wg)(),(0,r.iD)("p",T,(0,o.zw)(e.localDescription),1))],2)):(0,r.kq)("",!0)],2))}]])},55432:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(66252),o={class:"avatars"},i=n(62312),s=n(4493);const a={props:["users"],computed:{slicedUsers:function(){return this.users?this.users.slice(0,15):[]}},components:{UserAvatar:i.default},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},c=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("UserAvatar"),l=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",o,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.slicedUsers,(function(t){return(0,r.wg)(),(0,r.j4)(l,{key:t.id,to:e.userProfileLink(t),class:"avatars-item"},{default:(0,r.w5)((function(){return[(0,r.Wm)(c,{user:t,class:"avatar-small"},null,8,["user"])]})),_:2},1032,["to"])})),128))])}]])},85267:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(66252),o=n(49963),i={class:"basic-user-card"},s={class:"basic-user-card-collapsed-content"},a=["title"],c=n(78873),l=n(62312),u=n(12061),d=n(92820),p=n(4493);const h={props:["user"],components:{UserPopover:c.default,UserAvatar:l.default,RichContent:d.Z,UserLink:u.Z},methods:{userProfileLink:function(e){return(0,p.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},m=(0,n(83744).Z)(h,[["render",function(e,t,n,c,l,u){var d=(0,r.up)("UserAvatar"),p=(0,r.up)("UserPopover"),h=(0,r.up)("router-link"),m=(0,r.up)("RichContent"),f=(0,r.up)("user-link");return(0,r.wg)(),(0,r.iD)("div",i,[(0,r.Wm)(h,{to:e.userProfileLink(e.user),onClick:t[1]||(t[1]=(0,o.iM)((function(){}),["prevent"]))},{default:(0,r.w5)((function(){return[(0,r.Wm)(p,{"user-id":e.user.id,"overlay-centers":!0,"overlay-centers-selector":".avatar"},{default:(0,r.w5)((function(){return[(0,r.Wm)(d,{class:"user-avatar avatar",user:e.user,onClick:t[0]||(t[0]=(0,o.iM)((function(){}),["prevent"]))},null,8,["user"])]})),_:1},8,["user-id"])]})),_:1},8,["to"]),(0,r._)("div",s,[(0,r._)("div",{title:e.user.name,class:"basic-user-card-user-name"},[(0,r.Wm)(m,{class:"basic-user-card-user-name-value",html:e.user.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,a),(0,r._)("div",null,[(0,r.Wm)(f,{class:"basic-user-card-screen-name",user:e.user},null,8,["user"])]),(0,r.WI)(e.$slots,"default")])])}]])},40151:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(66252),o=n(3577),i=["disabled","checked","indeterminate"],s=(0,r._)("i",{class:"checkbox-indicator"},null,-1),a={key:0,class:"label"};const c={props:["modelValue","indeterminate","disabled"],emits:["update:modelValue"]},l=(0,n(83744).Z)(c,[["render",function(e,t,n,c,l,u){return(0,r.wg)(),(0,r.iD)("label",{class:(0,o.C_)(["checkbox",{disabled:n.disabled,indeterminate:n.indeterminate}])},[(0,r._)("input",{type:"checkbox",disabled:n.disabled,checked:n.modelValue,indeterminate:n.indeterminate,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.checked)})},null,40,i),s,e.$slots.default?((0,r.wg)(),(0,r.iD)("span",a,[(0,r.WI)(e.$slots,"default")])):(0,r.kq)("",!0)],2)}]])},38658:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ke});var r=n(66252),o=n(3577),i=n(49963),s={ref:"hiddenOverlayCaret",class:"caret"},a={ref:"panel-body",class:"autocomplete-panel-body"},c=["onClick"],l={class:"image"},u=["src"],d={key:1},p={class:"label"},h={key:0,class:"displayText"},m={key:1,class:"displayText"},f={class:"detailText"},g=n(4942),v=n(44925),w=n(15861),b=n(93433),y=n(69572),_=n.n(y),k=n(64687),S=n.n(k),j=n(13311),O=n.n(j),C=n(54061),P=n.n(C),z=function(e){return P()(e,(function(e,t){var n={word:t,start:0,end:t.length};if(e.length>0){var r=e.pop();n.start+=r.end,n.end+=r.end,e.push(r)}return e.push(n),e}),[])},I=function(e){for(var t=[],n="",r=0;r<e.length;r++){var o=e[r];n?!!o.trim()==!!n.trim()?n+=o:(t.push(n),n=o):n=o}return n&&t.push(n),t};const D=function(e,t){var n=I(e),r=z(n);return O()(r,(function(e){var n=e.start,r=e.end;return n<=t&&r>t}))},x=function(e,t,n){return e.slice(0,t.start)+n+e.slice(t.end)};var T={class:"heading"},$={ref:"header",class:"emoji-tabs"},U=["title","onClick"],M={key:0,class:"emoji-picker-header-image"},A={key:0,class:"additional-tabs"},L=["title"],E={key:0,class:"content"},F={class:"emoji-search"},R=["placeholder"],N=["title","onClick"],q={key:0,class:"emoji-picker-emoji -unicode"},Z={class:"keep-open"},W={key:0,class:"stickers-content"},B=n(29439),H=n(92742),V=n.n(H),K=n(23279),G=n.n(K),Y=n(40151),J=n(49874),Q=n(19236),X=n(8312),ee=n(7059),te=n.n(ee),ne=n(9382),re=n(84131);function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){(0,g.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function se(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ae(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ae(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}ne.vI.add(re.IA$,re.L4e,re.RKn,re.ctA,re.ILF,re.kQp,re.E1P,re.k0d,re.Elv,re.X8G,re.dT$,re.RrC);var ce={"smileys-and-emotion":"smile","people-and-body":"user","animals-and-nature":"paw","food-and-drink":"ice-cream","travel-and-places":"bus",activities:"basketball-ball",objects:"lightbulb",symbols:"code",flags:"flag"},le=function(e,t,n){var r=[e.displayText,n(e)];return e.annotations&&t.forEach((function(t){var n,o,i=(null===(n=e.annotations[t])||void 0===n?void 0:n.keywords)||[],s=null===(o=e.annotations[t])||void 0===o?void 0:o.name;r.push.apply(r,(0,b.Z)(i.concat([s]).filter((function(e){return e}))))})),r};const ue={props:{enableStickerPicker:{required:!1,type:Boolean,default:!1}},data:function(){return{keyword:"",activeGroup:"custom",showingStickers:!1,groupsScrolledClass:"scrolled-top",keepOpen:!1,customEmojiTimeout:null,contentLoaded:!1,groupRefs:{},emojiRefs:{},filteredEmojiGroups:[]}},components:{StickerPicker:(0,r.RC)((function(){return n.e(8532).then(n.bind(n,68532))})),Checkbox:Y.Z,StillImage:Q.Z,Popover:J.default},methods:{showPicker:function(){this.$refs.popover.showPopover(),this.onShowing()},hidePicker:function(){this.$refs.popover.hidePopover()},setAnchorEl:function(e){this.$refs.popover.setAnchorEl(e)},setGroupRef:function(e){var t=this;return function(n){t.groupRefs[e]=n}},setEmojiRef:function(e){var t=this;return function(n){t.emojiRefs[e]=n}},onPopoverShown:function(){this.$emit("show")},onPopoverClosed:function(){this.$emit("close")},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-failed",e)},onEmoji:function(e){var t=e.imageUrl?":".concat(e.displayText,":"):e.replacement;this.keepOpen||this.$refs.popover.hidePopover(),this.$emit("emoji",{insertion:t,keepOpen:this.keepOpen})},onScroll:function(e){var t=e&&e.target||this.$refs["emoji-groups"];this.updateScrolledClass(t),this.scrolledGroup(t)},scrolledGroup:function(e){var t=this,n=e.scrollTop+5;this.$nextTick((function(){t.allEmojiGroups.forEach((function(e){var r=t.groupRefs["group-"+e.id];r&&r.offsetTop<=n&&(t.activeGroup=e.id)})),t.scrollHeader()}))},scrollHeader:function(){var e=this.groupRefs["group-header-"+this.activeGroup],t=e.offsetLeft,n=t+e.offsetWidth,r=this.$refs.header,o=r.scrollLeft,i=o+r.clientWidth,s=function(e){r.scrollLeft=e};t-7<o?s(t-7):n+7>i&&s(n+7-r.clientWidth)},highlight:function(e){var t=this,n=this.groupRefs["group-"+e].offsetTop;this.setShowStickers(!1),this.activeGroup=e,this.$nextTick((function(){t.$refs["emoji-groups"].scrollTop=n+1}))},updateScrolledClass:function(e){e.scrollTop<=5?this.groupsScrolledClass="scrolled-top":e.scrollTop>=e.scrollTopMax-5?this.groupsScrolledClass="scrolled-bottom":this.groupsScrolledClass="scrolled-middle"},toggleStickers:function(){this.showingStickers=!this.showingStickers},setShowStickers:function(e){this.showingStickers=e},filterByKeyword:function(e,t){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;if(""===t)return e;var o,i=t.toLowerCase(),s=[],a=se(e);try{for(a.s();!(o=a.n()).done;){var c=o.value,l=le(c,n,r).map((function(e){return e.toLowerCase().indexOf(i)})).filter((function(e){return e>-1})),u=l.length?Math.min.apply(Math,(0,b.Z)(l)):-1;u>-1&&(Array.isArray(s[u])||(s[u]=[]),s[u].push(c))}}catch(e){a.e(e)}finally{a.f()}return s.flat()}(e,t,this.languages,this.maybeLocalizedEmojiName)},initializeLazyLoad:function(){var e=this;this.destroyLazyLoad(),this.$nextTick((function(){e.$lozad=te()(".still-image.emoji-picker-emoji",{load:function(t){var n=t.getAttribute("data-emoji-name"),r=e.emojiRefs[n];r&&r.loadLazy()}}),e.$lozad.observe()}))},waitForDomAndInitializeLazyLoad:function(){var e=this;this.$nextTick((function(){return e.initializeLazyLoad()}))},destroyLazyLoad:function(){this.$lozad&&(this.$lozad.observer&&this.$lozad.observer.disconnect(),this.$lozad.mutationObserver&&this.$lozad.mutationObserver.disconnect())},onShowing:function(){var e=this,t=this.contentLoaded;this.$nextTick((function(){e.$refs.search.focus()})),this.contentLoaded=!0,this.waitForDomAndInitializeLazyLoad(),this.filteredEmojiGroups=this.getFilteredEmojiGroups(),t||this.$nextTick((function(){e.defaultGroup&&e.highlight(e.defaultGroup)}))},getFilteredEmojiGroups:function(){var e=this;return this.allEmojiGroups.map((function(t){return ie(ie({},t),{},{emojis:e.filterByKeyword(t.emojis,V()(e.keyword))})})).filter((function(e){return e.emojis.length>0}))}},watch:{keyword:function(){this.onScroll(),this.debouncedHandleKeywordChange()},allCustomGroups:function(){this.waitForDomAndInitializeLazyLoad(),this.filteredEmojiGroups=this.getFilteredEmojiGroups()}},destroyed:function(){this.destroyLazyLoad()},computed:{activeGroupView:function(){return this.showingStickers?"":this.activeGroup},stickersAvailable:function(){return this.$store.state.instance.stickers?this.$store.state.instance.stickers.length>0:0},allCustomGroups:function(){return this.$store.getters.groupedCustomEmojis},defaultGroup:function(){return Object.keys(this.allCustomGroups)[0]},unicodeEmojiGroups:function(){var e=this;return this.$store.getters.standardEmojiGroupList.map((function(t){return{id:"standard-".concat(t.id),text:e.$t("emoji.unicode_groups.".concat(t.id)),icon:ce[t.id],emojis:t.emojis}}))},allEmojiGroups:function(){return Object.entries(this.allCustomGroups).map((function(e){var t=(0,B.Z)(e,2);return t[0],t[1]})).concat(this.unicodeEmojiGroups)},stickerPickerEnabled:function(){return 0!==(this.$store.state.instance.stickers||[]).length},debouncedHandleKeywordChange:function(){var e=this;return G()((function(){e.waitForDomAndInitializeLazyLoad(),e.filteredEmojiGroups=e.getFilteredEmojiGroups()}),500)},languages:function(){return(0,X.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,r=se(e.languages);try{for(r.s();!(n=r.n()).done;){var o,i=n.value;if(null!==(o=t.annotations[i])&&void 0!==o&&o.name)return t.annotations[i].name}}catch(e){r.e(e)}finally{r.f()}return t.displayText}}}};var de=n(83744);const pe=(0,de.Z)(ue,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("still-image"),u=(0,r.up)("FAIcon"),d=(0,r.up)("Checkbox"),p=(0,r.up)("sticker-picker"),h=(0,r.up)("Popover");return(0,r.wg)(),(0,r.j4)(h,{ref:"popover",trigger:"click","popover-class":"emoji-picker popover-default",onShow:e.onPopoverShown,onClose:e.onPopoverClosed},{content:(0,r.w5)((function(){return[(0,r._)("div",T,[(0,r._)("span",$,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.filteredEmojiGroups,(function(t){return(0,r.wg)(),(0,r.iD)("span",{ref_for:!0,ref:e.setGroupRef("group-header-"+t.id),key:t.id,class:(0,o.C_)(["emoji-tabs-item",{active:e.activeGroupView===t.id}]),title:t.text,onClick:(0,i.iM)((function(n){return e.highlight(t.id)}),["prevent"])},[t.image?((0,r.wg)(),(0,r.iD)("span",M,[(0,r.Wm)(l,{alt:t.text,src:t.image},null,8,["alt","src"])])):((0,r.wg)(),(0,r.j4)(u,{key:1,icon:t.icon,"fixed-width":""},null,8,["icon"]))],10,U)})),128))],512),e.stickerPickerEnabled?((0,r.wg)(),(0,r.iD)("span",A,[(0,r._)("span",{class:(0,o.C_)(["stickers-tab-icon additional-tabs-item",{active:e.showingStickers}]),title:e.$t("emoji.stickers"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleStickers&&e.toggleStickers.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(u,{icon:"sticky-note","fixed-width":""})],10,L)])):(0,r.kq)("",!0)]),e.contentLoaded?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("div",{class:(0,o.C_)(["emoji-content",{hidden:e.showingStickers}])},[(0,r._)("div",F,[(0,r.wy)((0,r._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.keyword=t}),type:"text",class:"form-control",placeholder:e.$t("emoji.search_emoji"),onInput:t[2]||(t[2]=function(e){return e.target.composing=!1})},null,40,R),[[i.nr,e.keyword]])]),(0,r._)("div",{ref:"emoji-groups",class:(0,o.C_)(["emoji-groups",e.groupsScrolledClass]),onScroll:t[3]||(t[3]=function(){return e.onScroll&&e.onScroll.apply(e,arguments)})},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.filteredEmojiGroups,(function(t){return(0,r.wg)(),(0,r.iD)("div",{key:t.id,class:"emoji-group"},[(0,r._)("h6",{ref_for:!0,ref:e.setGroupRef("group-"+t.id),class:"emoji-group-title"},(0,o.zw)(t.text),513),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.emojis,(function(n){return(0,r.wg)(),(0,r.iD)("span",{key:t.id+n.displayText,title:e.maybeLocalizedEmojiName(n),class:"emoji-item",onClick:(0,i.iM)((function(t){return e.onEmoji(n)}),["stop","prevent"])},[n.imageUrl?((0,r.wg)(),(0,r.j4)(l,{key:1,ref_for:!0,ref:e.setEmojiRef(t.id+n.displayText),class:"emoji-picker-emoji -custom","data-src":n.imageUrl,"data-emoji-name":t.id+n.displayText},null,8,["data-src","data-emoji-name"])):((0,r.wg)(),(0,r.iD)("span",q,(0,o.zw)(n.replacement),1))],8,N)})),128)),(0,r._)("span",{ref_for:!0,ref:e.setGroupRef("group-end-"+t.id)},null,512)])})),128))],34),(0,r._)("div",Z,[(0,r.Wm)(d,{modelValue:e.keepOpen,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.keepOpen=t})},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.$t("emoji.keep_open")),1)]})),_:1},8,["modelValue"])])],2),e.showingStickers?((0,r.wg)(),(0,r.iD)("div",W,[(0,r.Wm)(p,{onUploaded:e.onStickerUploaded,onUploadFailed:e.onStickerUploadFailed},null,8,["onUploaded","onUploadFailed"])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]})),_:1},8,["onShow","onClose"])}]]);var he,me=n(42262),fe=n(67952),ge=n(5737),ve=["imageUrl"];function we(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?we(Object(n),!0).forEach((function(t){(0,g.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):we(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}ne.vI.add(ge.RKn);const _e={emits:["update:modelValue","shown"],props:{suggest:{required:!0,type:Function},modelValue:{required:!0,type:String},enableEmojiPicker:{required:!1,type:Boolean,default:!1},hideEmojiButton:{required:!1,type:Boolean,default:!1},enableStickerPicker:{required:!1,type:Boolean,default:!1},placement:{required:!1,type:String,default:"auto"},newlineOnCtrlEnter:{required:!1,type:Boolean,default:!1}},data:function(){return{input:void 0,caretEl:void 0,highlighted:0,caret:0,focused:!1,blurTimeout:null,temporarilyHideSuggestions:!1,disableClickOutside:!1,suggestions:[],overlayStyle:{},pickerShown:!1}},components:{Popover:J.default,EmojiPicker:pe,UnicodeDomainIndicator:me.Z},computed:{padEmoji:function(){return this.$store.getters.mergedConfig.padEmoji},preText:function(){return this.modelValue.slice(0,this.caret)},postText:function(){return this.modelValue.slice(this.caret)},showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length>0&&!this.pickerShown&&!this.temporarilyHideSuggestions},textAtCaret:function(){var e;return null===(e=this.wordAtCaret)||void 0===e?void 0:e.word},wordAtCaret:function(){if(this.modelValue&&this.caret)return D(this.modelValue,this.caret-1)||{}},languages:function(){return(0,X.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiNamesAndKeywords:function(){var e=this;return function(t){var n=[t.displayText],r=[];return t.displayTextI18n&&n.push(e.$t(t.displayTextI18n.key,t.displayTextI18n.args)),t.annotations&&e.languages.forEach((function(e){var o,i;n.push(null===(o=t.annotations[e])||void 0===o?void 0:o.name),r.push.apply(r,(0,b.Z)((null===(i=t.annotations[e])||void 0===i?void 0:i.keywords)||[]))})),{names:n.filter((function(e){return e})),keywords:r.filter((function(e){return e}))}}},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,r=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ye(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ye(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e.languages);try{for(r.s();!(n=r.n()).done;){var o,i=n.value;if(null!==(o=t.annotations[i])&&void 0!==o&&o.name)return t.annotations[i].name}}catch(e){r.e(e)}finally{r.f()}return t.displayText}},onInputScroll:function(){this.$refs.hiddenOverlay.scrollTo({top:this.input.scrollTop,left:this.input.scrollLeft})}},mounted:function(){var e=this.$refs,t=e.root,n=e.hiddenOverlayCaret,r=e.suggestorPopover,o=t.querySelector(".emoji-input > input")||t.querySelector(".emoji-input > textarea");if(o){this.input=o,this.caretEl=n,r.setAnchorEl?(r.setAnchorEl(this.caretEl),this.$refs.picker.setAnchorEl(this.caretEl)):console.warn("setAnchorEl not found, are we in a unit test?");var i=getComputedStyle(this.input);this.overlayStyle.padding=i.padding,this.overlayStyle.border=i.border,this.overlayStyle.margin=i.margin,this.overlayStyle.lineHeight=i.lineHeight,this.overlayStyle.fontFamily=i.fontFamily,this.overlayStyle.fontSize=i.fontSize,this.overlayStyle.wordWrap=i.wordWrap,this.overlayStyle.whiteSpace=i.whiteSpace,this.resize(),o.addEventListener("blur",this.onBlur),o.addEventListener("focus",this.onFocus),o.addEventListener("paste",this.onPaste),o.addEventListener("keyup",this.onKeyUp),o.addEventListener("keydown",this.onKeyDown),o.addEventListener("click",this.onClickInput),o.addEventListener("transitionend",this.onTransition),o.addEventListener("input",this.onInput),o.addEventListener("scroll",this.onInputScroll)}},unmounted:function(){var e=this.input;e&&(e.removeEventListener("blur",this.onBlur),e.removeEventListener("focus",this.onFocus),e.removeEventListener("paste",this.onPaste),e.removeEventListener("keyup",this.onKeyUp),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("click",this.onClickInput),e.removeEventListener("transitionend",this.onTransition),e.removeEventListener("input",this.onInput),e.removeEventListener("scroll",this.onInputScroll))},watch:{showSuggestions:function(e,t){this.$emit("shown",e),e?this.$refs.suggestorPopover.showPopover():this.$refs.suggestorPopover.hidePopover()},textAtCaret:(he=(0,w.Z)(S().mark((function e(t){var n,r;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==t){e.next=2;break}return e.abrupt("return");case 2:if(n=t.charAt(0),t!==n){e.next=6;break}return this.suggestions=[],e.abrupt("return");case 6:return e.next=8,this.suggest(t,this.maybeLocalizedEmojiNamesAndKeywords);case 8:if(r=e.sent,!(this.textAtCaret!==t||r.length<=0)){e.next=12;break}return this.suggestions=[],e.abrupt("return");case 12:this.suggestions=_()(r,5).map((function(e){var t=e.imageUrl;return be(be({},(0,v.Z)(e,ve)),{},{img:t||""})}));case 13:case"end":return e.stop()}}),e,this)}))),function(e){return he.apply(this,arguments)})},methods:{triggerShowPicker:function(){var e=this;this.$nextTick((function(){e.$refs.picker.showPicker(),e.scrollIntoView()})),this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0)},togglePicker:function(){this.input.focus(),this.pickerShown?this.$refs.picker.hidePicker():(this.scrollIntoView(),this.$refs.picker.showPicker(),this.$refs.picker.startEmojiLoad())},replace:function(e){var t=x(this.modelValue,this.wordAtCaret,e);this.$emit("update:modelValue",t),this.caret=0},insert:function(e){var t=e.insertion,n=e.keepOpen,r=e.surroundingSpace,o=void 0===r||r,i=this.modelValue.substring(0,this.caret)||"",s=this.modelValue.substring(this.caret)||"",a=/\s/,c=o&&!a.exec(i.slice(-1))&&i.length&&this.padEmoji>0?" ":"",l=o&&!a.exec(s[0])&&this.padEmoji?" ":"",u=[i,c,t,l,s].join("");this.$emit("update:modelValue",u);var d=this.caret+(t+l+c).length;n||this.input.focus(),this.$nextTick((function(){this.input.setSelectionRange(d,d),this.caret=d}))},replaceText:function(e,t){var n=this.suggestions.length||0;if(1!==this.textAtCaret.length&&(n>0||t)){var r=(t||this.suggestions[this.highlighted]).replacement,o=x(this.modelValue,this.wordAtCaret,r);this.$emit("update:modelValue",o),this.highlighted=0;var i=this.wordAtCaret.start+r.length;this.$nextTick((function(){this.input.focus(),this.input.setSelectionRange(i,i),this.caret=i})),e.preventDefault()}},cycleBackward:function(e){(this.suggestions.length||0)>1?(this.highlighted-=1,this.highlighted<0&&(this.highlighted=this.suggestions.length-1),e.preventDefault()):this.highlighted=0},cycleForward:function(e){var t=this.suggestions.length||0;t>1?(this.highlighted+=1,this.highlighted>=t&&(this.highlighted=0),e.preventDefault()):this.highlighted=0},scrollIntoView:function(){var e=this,t=this.$refs.picker.$el,n=this.$el.closest(".sidebar-scroller")||this.$el.closest(".post-form-modal-view")||window,r=n===window?n.scrollY:n.scrollTop,o=r+(n===window?n.innerHeight:n.offsetHeight),i=t.offsetHeight+(0,fe.y)(t,n).top,s=r+Math.max(0,i-o);n===window?n.scroll(0,s):n.scrollTop=s,this.$nextTick((function(){var t=e.input.offsetHeight,n=e.$refs.picker;n.$el.getBoundingClientRect().bottom>window.innerHeight&&(n.$el.style.top="auto",n.$el.style.bottom=t+"px")}))},onPickerShown:function(){this.pickerShown=!0},onPickerClosed:function(){this.pickerShown=!1},onBlur:function(e){var t=this;this.blurTimeout=setTimeout((function(){t.focused=!1,t.setCaret(e)}),200)},onClick:function(e,t){this.replaceText(e,t)},onFocus:function(e){this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),this.focused=!0,this.setCaret(e),this.temporarilyHideSuggestions=!1},onKeyUp:function(e){var t=e.key;this.setCaret(e),this.temporarilyHideSuggestions="Escape"===t},onPaste:function(e){this.setCaret(e)},onKeyDown:function(e){var t=this,n=e.ctrlKey,r=e.shiftKey,o=e.key;this.newlineOnCtrlEnter&&n&&"Enter"===o&&(this.insert({insertion:"\n",surroundingSpace:!1}),e.stopPropagation(),e.preventDefault(),this.$nextTick((function(){t.input.blur(),t.input.focus()}))),this.temporarilyHideSuggestions||("Tab"===o&&(r?this.cycleBackward(e):this.cycleForward(e)),"ArrowUp"===o?this.cycleBackward(e):"ArrowDown"===o&&this.cycleForward(e),"Enter"===o&&(n||this.replaceText(e))),"Escape"===o&&(this.temporarilyHideSuggestions||this.input.focus())},onInput:function(e){this.setCaret(e),this.$emit("update:modelValue",e.target.value)},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-Failed",e)},setCaret:function(e){var t=this,n=e.target.selectionStart;this.caret=n,this.$nextTick((function(){t.$refs.suggestorPopover.updateStyles()}))},resize:function(){}}},ke=(0,de.Z)(_e,[["render",function(e,t,n,g,v,w){var b=(0,r.up)("FAIcon"),y=(0,r.up)("EmojiPicker"),_=(0,r.up)("UnicodeDomainIndicator"),k=(0,r.up)("Popover");return(0,r.wg)(),(0,r.iD)("div",{ref:"root",class:(0,o.C_)(["emoji-input",{"with-picker":!e.hideEmojiButton}])},[(0,r.WI)(e.$slots,"default"),(0,r._)("div",{ref:"hiddenOverlay",class:"hidden-overlay",style:(0,o.j5)(e.overlayStyle)},[(0,r._)("span",null,(0,o.zw)(e.preText),1),(0,r._)("span",s,"x",512),(0,r._)("span",null,(0,o.zw)(e.postText),1)],4),e.enableEmojiPicker?((0,r.wg)(),(0,r.iD)(r.HY,{key:0},[e.hideEmojiButton?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-unstyled emoji-picker-icon",type:"button",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.togglePicker&&e.togglePicker.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(b,{icon:["far","smile-beam"]})])),e.enableEmojiPicker?((0,r.wg)(),(0,r.j4)(y,{key:1,ref:"picker","enable-sticker-picker":e.enableStickerPicker,class:"emoji-picker-panel",onEmoji:e.insert,onStickerUploaded:e.onStickerUploaded,onStickerUploadFailed:e.onStickerUploadFailed,onShow:e.onPickerShown,onClose:e.onPickerClosed},null,8,["enable-sticker-picker","onEmoji","onStickerUploaded","onStickerUploadFailed","onShow","onClose"])):(0,r.kq)("",!0)],64)):(0,r.kq)("",!0),(0,r.Wm)(k,{ref:"suggestorPopover",class:"autocomplete-panel",placement:"bottom"},{content:(0,r.w5)((function(){return[(0,r._)("div",a,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.suggestions,(function(t,n){return(0,r.wg)(),(0,r.iD)("div",{key:n,class:(0,o.C_)(["autocomplete-item",{highlighted:n===e.highlighted}]),onClick:(0,i.iM)((function(n){return e.onClick(n,t)}),["stop","prevent"])},[(0,r._)("span",l,[t.img?((0,r.wg)(),(0,r.iD)("img",{key:0,src:t.img},null,8,u)):((0,r.wg)(),(0,r.iD)("span",d,(0,o.zw)(t.replacement),1))]),(0,r._)("div",p,[t.user?((0,r.wg)(),(0,r.iD)("span",h,[(0,r.Uk)((0,o.zw)(t.displayText),1),(0,r.Wm)(_,{user:t.user,at:!1},null,8,["user"])])):(0,r.kq)("",!0),t.user?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",m,(0,o.zw)(e.maybeLocalizedEmojiName(t)),1)),(0,r._)("span",f,(0,o.zw)(t.detailText),1)])],10,c)})),128))],512)]})),_:1},512)],2)}]])},12394:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r,o=n(66252),i=n(3577),s={class:"Flash"},a={key:0,class:"label"},c={key:1,class:"label"},l={key:2,class:"label"};const u=(r=null,{getRuffle:function(){return new Promise((function(e,t){if(r)e(r);else{window.RufflePlayer={},window.RufflePlayer.config={polyfills:!1,publicPath:"/static/ruffle"};var n=document.createElement("script");n.src="/static/ruffle/ruffle.js",n.type="text/javascript",n.onerror=function(e){t(e)},n.onabort=function(e){t(e)},n.oncancel=function(e){t(e)},n.onload=function(){r=window.RufflePlayer,e(r)},document.body.appendChild(n)}}))}});var d=n(9382),p=n(84131);d.vI.add(p.Bg$,p.eHv);const h={props:["src"],data:function(){return{player:!1,loaded:!1,ruffleInstance:null}},methods:{openPlayer:function(){var e=this;this.player||(this.player="hidden",u.getRuffle().then((function(t){var n=t.newest().createPlayer();n.config={letterbox:"on"},e.$refs.container.appendChild(n),n.style.width="100%",n.style.height="100%",n.load(e.src).then((function(){e.player=!0})).catch((function(t){console.error("Error loading ruffle",t),e.player="error"})),e.ruffleInstance=n,e.$emit("playerOpened")})))},closePlayer:function(){this.ruffleInstance&&this.ruffleInstance.remove(),this.player=!1,this.$emit("playerClosed")}}},m=(0,n(83744).Z)(h,[["render",function(e,t,n,r,u,d){var p=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("div",s,[!0===e.player||"hidden"===e.player?((0,o.wg)(),(0,o.iD)("div",{key:0,ref:"container",class:(0,i.C_)(["player",{hidden:"hidden"===e.player}])},null,2)):(0,o.kq)("",!0),!0!==e.player?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled placeholder",onClick:t[0]||(t[0]=function(){return e.openPlayer&&e.openPlayer.apply(e,arguments)})},["hidden"===e.player?((0,o.wg)(),(0,o.iD)("span",a,(0,i.zw)(e.$t("general.loading")),1)):(0,o.kq)("",!0),"error"===e.player?((0,o.wg)(),(0,o.iD)("span",c,(0,i.zw)(e.$t("general.flash_fail")),1)):((0,o.wg)(),(0,o.iD)("span",l,[(0,o._)("p",null,(0,i.zw)(e.$t("general.flash_content")),1),(0,o._)("p",null,[(0,o.Wm)(p,{icon:"exclamation-triangle"}),(0,o.Uk)(" "+(0,i.zw)(e.$t("general.flash_security")),1)])]))])):(0,o.kq)("",!0)])}]])},13046:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(66252),o=n(3577),i=["disabled","title"],s=n(29439),a=function e(t,n,r){return new Promise((function(e,o){setTimeout((function(){r.state.api.backendInteractor.fetchUserRelationship({id:n}).then((function(e){return r.commit("updateUserRelationship",[e]),e})).then((function(n){return e([n.following,n.requested,n.locked,t])})).catch((function(e){return o(e)}))}),500)})).then((function(t){var o=(0,s.Z)(t,4),i=o[0],a=o[1],c=o[2],l=o[3];i||c&&a||!(l<=3)||e(++l,n,r)}))},c=function(e,t){return new Promise((function(n,r){t.state.api.backendInteractor.followUser({id:e}).then((function(e){if(t.commit("updateUserRelationship",[e]),!(e.following||e.locked&&e.requested))return a(1,e,t).then((function(){n()}));n()}))}))};const l={props:["relationship","user","labelFollowing","buttonClass"],data:function(){return{inProgress:!1}},computed:{isPressed:function(){return this.inProgress||this.relationship.following},title:function(){return this.inProgress||this.relationship.following?this.$t("user_card.follow_unfollow"):this.relationship.requested?this.$t("user_card.follow_cancel"):this.$t("user_card.follow")},label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.relationship.following?this.labelFollowing||this.$t("user_card.following"):this.relationship.requested?this.$t("user_card.follow_sent"):this.$t("user_card.follow")},disabled:function(){return this.inProgress||this.user.deactivated}},methods:{onClick:function(){this.relationship.following||this.relationship.requested?this.unfollow():this.follow()},follow:function(){var e=this;this.inProgress=!0,c(this.relationship.id,this.$store).then((function(){e.inProgress=!1}))},unfollow:function(){var e=this,t=this.$store;this.inProgress=!0,function(e,t){return new Promise((function(n,r){t.state.api.backendInteractor.unfollowUser({id:e}).then((function(e){t.commit("updateUserRelationship",[e]),n({updated:e})}))}))}(this.relationship.id,t).then((function(){e.inProgress=!1,t.commit("removeStatus",{timeline:"friends",userId:e.relationship.id})}))}}},u=(0,n(83744).Z)(l,[["render",function(e,t,n,s,a,c){return(0,r.wg)(),(0,r.iD)("button",{class:(0,o.C_)(["btn button-default follow-button",{toggled:e.isPressed}]),disabled:e.disabled,title:e.title,onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},(0,o.zw)(e.label),11,i)}]])},99822:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});var r=n(66252),o=n(3577),i={class:"gallery-rows"},s={key:0,class:"many-attachments"},a={class:"many-attachments-text"},c={class:"many-attachments-buttons"},l={key:0,class:"many-attachments-button"},u={key:1,class:"many-attachments-button"},d={key:2,class:"many-attachments-button"},p=n(93433),h=n(36968),m=n.n(h),f=n(73303),g=n.n(f);const v={props:["attachments","limitRows","descriptions","limit","nsfw","setMedia","size","editable","removeAttachment","shiftUpAttachment","shiftDnAttachment","editAttachment","grid"],data:function(){return{sizes:{},hidingLong:!0}},components:{Attachment:n(74722).Z},computed:{rows:function(){var e=this;if(!this.attachments)return[];var t=this.limit>0?this.attachments.slice(0,this.limit):this.attachments;return"hide"===this.size?t.map((function(e){return{minimal:!0,items:[e]}})):this.grid?[{grid:!0,items:t}]:t.reduce((function(t,n,r){if(n.mimetype.includes("audio"))return[].concat((0,p.Z)(t),[{audio:!0,items:[n]},{items:[]}]);if(!(n.mimetype.includes("image")||n.mimetype.includes("video")||n.mimetype.includes("flash")))return[].concat((0,p.Z)(t),[{minimal:!0,items:[n]},{items:[]}]);var o=e.attachments.length-r+1,i=t[t.length-1].items;return i.push(n),i.length>=3&&o>3?[].concat((0,p.Z)(t),[{items:[]}]):t}),[{items:[]}]).filter((function(e){return e.items.length>0}))},attachmentsDimensionalScore:function(){return this.rows.reduce((function(e,t){var n=0;return t.minimal?n+=1/8:t.audio?n+=1/4:n+=1/(t.items.length+.6),e+n}),0)},tooManyAttachments:function(){return!this.editable&&"small"!==this.size&&("hide"===this.size?this.attachments.length>8:this.attachmentsDimensionalScore>1)}},methods:{onNaturalSizeLoad:function(e){var t=e.id,n=e.width,r=e.height;m()(this.sizes,t,{width:n,height:r})},rowStyle:function(e){return e.audio?{"padding-bottom":"25%"}:e.minimal||e.grid?void 0:{"padding-bottom":"".concat(100/(e.items.length+.6),"%")}},itemStyle:function(e,t){var n=this,r=g()(t,(function(e){return n.getAspectRatio(e.id)}));return{flex:"".concat(this.getAspectRatio(e)/r," 1 0%")}},getAspectRatio:function(e){var t=this.sizes[e];return t?t.width/t.height:1},toggleHidingLong:function(e){this.hidingLong=e},openGallery:function(){this.$store.dispatch("setMedia",this.attachments),this.$store.dispatch("setCurrentMedia",this.attachments[0])},onMedia:function(){this.$store.dispatch("setMedia",this.attachments)}}},w=(0,n(83744).Z)(v,[["render",function(e,t,n,p,h,m){var f=(0,r.up)("Attachment");return(0,r.wg)(),(0,r.iD)("div",{ref:"galleryContainer",class:(0,o.C_)(["Gallery",{"-long":e.tooManyAttachments&&e.hidingLong}])},[(0,r._)("div",i,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.rows,(function(t,n){return(0,r.wg)(),(0,r.iD)("div",{key:n,class:(0,o.C_)(["gallery-row",{"-audio":t.audio,"-minimal":t.minimal,"-grid":e.grid}]),style:(0,o.j5)(e.rowStyle(t))},[(0,r._)("div",{class:(0,o.C_)(["gallery-row-inner",{"-grid":e.grid}])},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.items,(function(i,s){return(0,r.wg)(),(0,r.j4)(f,{key:i.id,class:"gallery-item",nsfw:e.nsfw,attachment:i,size:e.size,editable:e.editable,remove:e.removeAttachment,"shift-up":!(0===s&&0===n)&&e.shiftUpAttachment,"shift-dn":!(s===t.items.length-1&&n===e.rows.length-1)&&e.shiftDnAttachment,edit:e.editAttachment,description:e.descriptions&&e.descriptions[i.id],"hide-description":"small"===e.size||e.tooManyAttachments&&e.hidingLong,style:(0,o.j5)(e.itemStyle(i.id,t.items)),onSetMedia:e.onMedia,onNaturalSizeLoad:e.onNaturalSizeLoad},null,8,["nsfw","attachment","size","editable","remove","shift-up","shift-dn","edit","description","hide-description","style","onSetMedia","onNaturalSizeLoad"])})),128))],2)],6)})),128))]),e.tooManyAttachments?((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",a,(0,o.zw)(e.$t("status.many_attachments",{number:e.attachments.length})),1),(0,r._)("div",c,[e.hidingLong?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",l,[(0,r._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(t){return e.toggleHidingLong(!0)})},(0,o.zw)(e.$t("status.collapse_attachments")),1)])),e.hidingLong?((0,r.wg)(),(0,r.iD)("span",u,[(0,r._)("button",{class:"button-unstyled -link",onClick:t[1]||(t[1]=function(t){return e.toggleHidingLong(!1)})},(0,o.zw)(e.$t("status.show_all_attachments")),1)])):(0,r.kq)("",!0),e.hidingLong?((0,r.wg)(),(0,r.iD)("span",d,[(0,r._)("button",{class:"button-unstyled -link",onClick:t[2]||(t[2]=function(){return e.openGallery&&e.openGallery.apply(e,arguments)})},(0,o.zw)(e.$t("status.open_gallery")),1)])):(0,r.kq)("",!0)])])):(0,r.kq)("",!0)],2)}]])},80034:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(66252),o=n(3577),i={for:"interface-language-switcher"},s=["value"],a=n(39776);const c={components:{Select:n(44313).Z},props:{promptText:{type:String,required:!0},language:{type:String,required:!0},setLanguage:{type:Function,required:!0}},computed:{languages:function(){return a.Z.languages},controlledLanguage:{get:function(){return this.language},set:function(e){this.setLanguage(e)}}},methods:{getLanguageName:function(e){return a.Z.getLanguageName(e)}}},l=(0,n(83744).Z)(c,[["render",function(e,t,n,a,c,l){var u=(0,r.up)("Select");return(0,r.wg)(),(0,r.iD)("div",null,[(0,r._)("label",i,(0,o.zw)(n.promptText),1),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r.Wm)(u,{id:"interface-language-switcher",modelValue:l.controlledLanguage,"onUpdate:modelValue":t[0]||(t[0]=function(e){return l.controlledLanguage=e})},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(l.languages,(function(e){return(0,r.wg)(),(0,r.iD)("option",{key:e.code,value:e.code},(0,o.zw)(e.name),9,s)})),128))]})),_:1},8,["modelValue"])])}]])},87887:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var r=n(66252),o=n(3577),i=["href"],s={key:0,class:"card-image"},a=["src"],c={class:"card-content"},l={class:"card-host faint"},u={key:0,class:"nsfw-alert alert warning"},d={class:"card-title"},p={key:0,class:"card-description"},h=n(4942);function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const f={name:"LinkPreview",props:["card","size","nsfw"],data:function(){return{imageLoaded:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({useImage:function(){return this.card.image&&!this.censored&&"hide"!==this.size},censored:function(){return this.nsfw&&this.hideNsfwConfig},useDescription:function(){return this.card.description&&/\S/.test(this.card.description)},hideNsfwConfig:function(){return this.mergedConfig.hideNsfw}},(0,n(989).Se)(["mergedConfig"])),created:function(){var e=this;if(this.useImage){var t=new Image;t.onload=function(){e.imageLoaded=!0},t.src=this.card.image}}},g=(0,n(83744).Z)(f,[["render",function(e,t,n,h,m,f){return(0,r.wg)(),(0,r.iD)("div",null,[(0,r._)("a",{class:"link-preview-card",href:e.card.url,target:"_blank",rel:"noopener"},[e.useImage&&e.imageLoaded?((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("img",{src:e.card.image},null,8,a)])):(0,r.kq)("",!0),(0,r._)("div",c,[(0,r._)("span",l,[e.censored?((0,r.wg)(),(0,r.iD)("span",u,(0,o.zw)(e.$t("status.nsfw")),1)):(0,r.kq)("",!0),(0,r.Uk)(" "+(0,o.zw)(e.card.provider_name),1)]),(0,r._)("h4",d,(0,o.zw)(e.card.title),1),e.useDescription?((0,r.wg)(),(0,r.iD)("p",p,(0,o.zw)(e.card.description),1)):(0,r.kq)("",!0)])],8,i)])}]])},83293:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(66252),o={class:"list"},i={key:0,class:"list-empty-content faint"};const s={props:{items:{type:Array,default:function(){return[]}},getKey:{type:Function,default:function(e){return e.id}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,c){return(0,r.wg)(),(0,r.iD)("div",o,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(n.items,(function(t){return(0,r.wg)(),(0,r.iD)("div",{key:n.getKey(t),class:"list-item"},[(0,r.WI)(e.$slots,"item",{item:t})])})),128)),0===n.items.length&&e.$slots.empty?((0,r.wg)(),(0,r.iD)("div",i,[(0,r.WI)(e.$slots,"empty")])):(0,r.kq)("",!0)])}]])},20460:(e,t,n)=>{"use strict";n.d(t,{Z:()=>z});var r=n(66252),o=n(3577),i=n(49963),s={class:"MentionLink"},a=["href","innerHTML"],c=["href"],l={class:"shortName"},u=["innerHTML"],d=["innerHTML"],p={ref:"full",class:"full"},h=["innerHTML"],m=["innerHTML"],f=n(44925),g=n(4942),v=n(4493),w=n(989),b=n(95052),y=n(62312),_=n(42262),k=n(9382),S=n(84131),j=["backgroundColor","backgroundPosition","backgroundImage"];function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){(0,g.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}k.vI.add(S.IBq);const P={name:"MentionLink",components:{UserAvatar:y.default,UnicodeDomainIndicator:_.Z,UserPopover:(0,r.RC)((function(){return Promise.resolve().then(n.bind(n,78873))}))},props:{url:{required:!0,type:String},content:{required:!0,type:String},userId:{required:!1,type:String},userScreenName:{required:!1,type:String}},data:function(){return{hasSelection:!1}},methods:{onClick:function(){if(!this.shouldShowTooltip){var e=(0,v.Z)(this.userId||this.user.id,this.userScreenName||this.user.screen_name);this.$router.push(e)}},handleSelection:function(){this.hasSelection=document.getSelection().containsNode(this.$refs.full,!0)}},mounted:function(){document.addEventListener("selectionchange",this.handleSelection)},unmounted:function(){document.removeEventListener("selectionchange",this.handleSelection)},computed:C(C({user:function(){return this.url&&this.$store&&this.$store.getters.findUserByUrl(this.url)},isYou:function(){return this.user&&this.user.id===this.currentUser.id},userName:function(){return this.user&&this.userNameFullUi.split("@")[0]},serverName:function(){return this.user&&(this.userNameFullUi.split("@")[1]||this.$store.getters.instanceDomain)},userNameFull:function(){return this.user&&this.user.screen_name},userNameFullUi:function(){return this.user&&this.user.screen_name_ui},highlight:function(){return this.user&&this.mergedConfig.highlight[this.user.screen_name]},highlightType:function(){return this.highlight&&"-"+this.highlight.type},highlightClass:function(){if(this.highlight)return(0,b.M)(this.user)},style:function(){if(this.highlight){var e=(0,b.q)(this.highlight);return e.backgroundColor,e.backgroundPosition,e.backgroundImage,(0,f.Z)(e,j)}},classnames:function(){return[{"-you":this.isYou&&this.shouldBoldenYou,"-highlighted":this.highlight,"-has-selection":this.hasSelection},this.highlightType]},useAtIcon:function(){return this.mergedConfig.useAtIcon},isRemote:function(){return this.userName!==this.userNameFull},shouldShowFullUserName:function(){var e=this.mergedConfig.mentionLinkDisplay;return"short"!==e&&("full"===e||this.isRemote)},shouldShowTooltip:function(){return this.mergedConfig.mentionLinkShowTooltip},shouldShowAvatar:function(){return this.mergedConfig.mentionLinkShowAvatar},shouldShowYous:function(){return this.mergedConfig.mentionLinkShowYous},shouldBoldenYou:function(){return this.mergedConfig.mentionLinkBoldenYou},shouldFadeDomain:function(){return this.mergedConfig.mentionLinkFadeDomain}},(0,w.Se)(["mergedConfig"])),(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))},z=(0,n(83744).Z)(P,[["render",function(e,t,n,f,g,v){var w=(0,r.up)("UserAvatar"),b=(0,r.up)("FAIcon"),y=(0,r.up)("UnicodeDomainIndicator"),_=(0,r.up)("UserPopover");return(0,r.wg)(),(0,r.iD)("span",s,[e.user?((0,r.wg)(),(0,r.j4)(_,{key:1,"user-id":e.user.id,disabled:!e.shouldShowTooltip},{default:(0,r.w5)((function(){return[e.user?((0,r.wg)(),(0,r.iD)("span",{key:0,class:(0,o.C_)(["new",e.classnames]),style:(0,o.j5)(e.style)},[(0,r._)("a",{class:(0,o.C_)(["short button-unstyled",{"-with-tooltip":e.shouldShowTooltip}]),href:e.url,onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"]))},[e.shouldShowAvatar?((0,r.wg)(),(0,r.j4)(w,{key:0,class:"mention-avatar",user:e.user},null,8,["user"])):(0,r.kq)("",!0),(0,r._)("span",l,[e.useAtIcon?((0,r.wg)(),(0,r.j4)(b,{key:0,size:"sm",icon:"at",class:"at"})):(0,r.kq)("",!0),(0,r.Uk)((0,o.zw)(e.useAtIcon?"":"@"),1),(0,r._)("span",{class:"userName",innerHTML:e.userName},null,8,u),e.shouldShowFullUserName?((0,r.wg)(),(0,r.iD)("span",{key:1,class:(0,o.C_)(["serverName",{"-faded":e.shouldFadeDomain}]),innerHTML:"@"+e.serverName},null,10,d)):(0,r.kq)("",!0),e.shouldShowFullUserName?((0,r.wg)(),(0,r.j4)(y,{key:2,user:e.user},null,8,["user"])):(0,r.kq)("",!0)]),e.isYou&&e.shouldShowYous?((0,r.wg)(),(0,r.iD)("span",{key:1,class:(0,o.C_)({"-you":e.shouldBoldenYou})},(0,o.zw)(" "+e.$t("status.you")),3)):(0,r.kq)("",!0)],10,c),(0,r._)("span",p,[(0,r.Uk)(" @"),(0,r._)("span",{innerHTML:e.userName},null,8,h),(0,r._)("span",{innerHTML:"@"+e.serverName},null,8,m)],512)],6)):(0,r.kq)("",!0)]})),_:1},8,["user-id","disabled"])):((0,r.wg)(),(0,r.iD)("a",{key:0,href:e.url,class:"original",target:"_blank",innerHTML:e.content},null,8,a))])}]])},21268:(e,t,n)=>{"use strict";n.d(t,{d:()=>p,Z:()=>m});var r=n(66252),o=n(3577),i={class:"MentionsLine"},s={key:0,class:"extraMentions"},a={key:0,class:"fullExtraMentions"},c=n(4942),l=n(20460),u=n(989);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var p=5;const h={name:"MentionsLine",props:{mentions:{required:!0,type:Array}},data:function(){return{expanded:!1}},components:{MentionLink:l.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mentionsComputed:function(){return this.mentions.slice(0,p)},extraMentions:function(){return this.mentions.slice(p)},manyMentions:function(){return this.extraMentions.length>0}},(0,u.Se)(["mergedConfig"])),methods:{toggleShowMore:function(){this.expanded=!this.expanded}}},m=(0,n(83744).Z)(h,[["render",function(e,t,n,c,l,u){var d=(0,r.up)("MentionLink");return(0,r.wg)(),(0,r.iD)("span",i,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.mentionsComputed,(function(e){return(0,r.wg)(),(0,r.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128)),e.manyMentions?((0,r.wg)(),(0,r.iD)("span",s,[e.expanded?((0,r.wg)(),(0,r.iD)("span",a,[(0,r.Uk)((0,o.zw)(" ")),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.extraMentions,(function(e){return(0,r.wg)(),(0,r.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128))])):(0,r.kq)("",!0),e.expanded?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-unstyled showMoreLess",onClick:t[0]||(t[0]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,o.zw)(e.$t("status.plus_more",{number:e.extraMentions.length})),1)),e.expanded?((0,r.wg)(),(0,r.iD)("button",{key:2,class:"button-unstyled showMoreLess",onClick:t[1]||(t[1]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,o.zw)(e.$t("general.show_less")),1)):(0,r.kq)("",!0)])):(0,r.kq)("",!0)])}]])},58312:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(66252),o=n(3577),i=n(49963);const s={provide:{popoversZLayer:"modals"},props:{isOpen:{type:Boolean,default:!0},noBackground:{type:Boolean,default:!1}},computed:{classes:function(){return{"modal-background":!this.noBackground,open:this.isOpen}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,c){var l=(0,r.Q2)("body-scroll-lock");return(0,r.wy)(((0,r.wg)(),(0,r.iD)("div",{class:(0,o.C_)(["modal-view",c.classes]),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("backdropClicked")}),["self"]))},[(0,r.WI)(e.$slots,"default")],2)),[[i.F8,n.isOpen],[l,n.isOpen&&!n.noBackground]])}]])},2302:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Me});var r=n(66252),o=n(3577),i=n(49963),s={key:0,class:"notifications-heading panel-heading -sticky"},a={class:"title"},c={key:0,class:"badge badge-notification unseen-count"},l={key:0,class:"rightside-button"},u=["title"],d={class:"panel-body",role:"feed"},p=(0,r._)("div",{class:"notification-overlay"},null,-1),h={class:"panel-footer"},m={key:0,class:"new-status-notification text-center faint"},f={class:"new-status-notification text-center"},g={key:2,class:"new-status-notification text-center"},v=n(4942),w=n(989),b={key:0},y={key:1},_={key:0,class:"Notification container -muted"},k=["href"],S={class:"notification-right"},j={class:"notification-details"},O={class:"name-and-action"},C={key:0},P=["title"],z={key:2},I={key:3},D={key:4},x={key:5},T={key:6},$={key:7},U={class:"emoji-reaction-emoji"},M={key:8},A={key:9},L={key:0,class:"timeago"},E=["title","aria-expanded"],F={key:1,class:"timeago"},R={class:"faint"},N=["title","aria-expanded"],q={key:0,class:"follow-text"},Z={key:0,style:{"white-space":"nowrap"}},W=["title"],B=["title"],H={key:1,class:"move-text"},V=n(33288),K=n(87482),G=n(62312),Y=n(27073),J=n(1840),Q={class:"Report"},X={class:"reported-user"},ee={class:"reporter"},te={class:"report-state"},ne=["value"],re={key:0},oe={class:"reported-status-heading"},ie={class:"reported-status-name"},se={key:1},ae=n(44313),ce=n(4493);const le={props:["reportId"],components:{Select:ae.Z,StatusContent:V.Z,Timeago:J.Z},computed:{report:function(){return this.$store.state.reports.reports[this.reportId]||{}},state:{get:function(){return this.report.state},set:function(e){this.setReportState(e)}}},methods:{generateUserProfileLink:function(e){return(0,ce.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},setReportState:function(e){return this.$store.dispatch("setReportState",{id:this.report.id,state:e})}}};var ue=n(83744);const de=(0,ue.Z)(le,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("router-link"),l=(0,r.up)("Select"),u=(0,r.up)("RichContent"),d=(0,r.up)("Timeago"),p=(0,r.up)("status-content");return(0,r.wg)(),(0,r.iD)("div",Q,[(0,r._)("div",X,[(0,r._)("span",null,(0,o.zw)(e.$t("report.reported_user")),1),(0,r.Wm)(c,{to:e.generateUserProfileLink(e.report.acct)},{default:(0,r.w5)((function(){return[(0,r.Uk)(" @"+(0,o.zw)(e.report.acct.screen_name),1)]})),_:1},8,["to"])]),(0,r._)("div",ee,[(0,r._)("span",null,(0,o.zw)(e.$t("report.reporter")),1),(0,r.Wm)(c,{to:e.generateUserProfileLink(e.report.actor)},{default:(0,r.w5)((function(){return[(0,r.Uk)(" @"+(0,o.zw)(e.report.actor.screen_name),1)]})),_:1},8,["to"])]),(0,r._)("div",te,[(0,r._)("span",null,(0,o.zw)(e.$t("report.state")),1),(0,r.Wm)(l,{id:e.report-e.state,modelValue:e.state,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.state=t}),class:"form-control"},{default:(0,r.w5)((function(){return[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(["open","closed","resolved"],(function(t){return(0,r._)("option",{key:t,value:t},(0,o.zw)(e.$t("report.state_"+t)),9,ne)})),64))]})),_:1},8,["id","modelValue"])]),(0,r.Wm)(u,{class:"report-content",html:e.report.content,emoji:[]},null,8,["html"]),e.report.statuses.length?((0,r.wg)(),(0,r.iD)("div",re,[(0,r._)("small",null,(0,o.zw)(e.$t("report.reported_statuses")),1),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.report.statuses,(function(e){return(0,r.wg)(),(0,r.j4)(c,{key:e.id,to:{name:"conversation",params:{id:e.id}},class:"reported-status"},{default:(0,r.w5)((function(){return[(0,r._)("div",oe,[(0,r._)("span",ie,(0,o.zw)(e.user.name),1),(0,r.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])]),(0,r.Wm)(p,{status:e},null,8,["status"])]})),_:2},1032,["to"])})),128))])):(0,r.kq)("",!0),e.report.notes.length?((0,r.wg)(),(0,r.iD)("div",se,[(0,r._)("small",null,(0,o.zw)(e.$t("report.notes")),1),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.report.notes,(function(e){return(0,r.wg)(),(0,r.iD)("div",{key:e.id,class:"note"},[(0,r._)("span",null,(0,o.zw)(e.content),1),(0,r.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])])})),128))])):(0,r.kq)("",!0)])}]]);var pe=n(12061),he=n(92820),me=n(78873),fe=n(52230),ge=n(95052),ve=n(9382),we=n(84131);function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}ve.vI.add(we.LEp,we.NBC,we.Tab,we.x5v,we.FKd,we.ILF,we.Aq,we.gmr,we.TTL,we.V9$);var ye={data:function(){return{statusExpanded:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter,unmuted:!1}},props:["notification"],components:{StatusContent:V.Z,UserAvatar:G.default,UserCard:Y.Z,Timeago:J.Z,Status:K.default,Report:de,RichContent:he.Z,UserPopover:me.default,UserLink:pe.Z},methods:{toggleStatusExpanded:function(){this.statusExpanded=!this.statusExpanded},generateUserProfileLink:function(e){return(0,ce.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},getUser:function(e){return this.$store.state.users.usersObject[e.from_profile.id]},toggleMute:function(){this.unmuted=!this.unmuted},approveUser:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user),this.$store.dispatch("markSingleNotificationAsSeen",{id:this.notification.id}),this.$store.dispatch("updateNotification",{id:this.notification.id,updater:function(e){e.type="follow"}})},denyUser:function(){var e=this;this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:e.notification.id}),e.$store.dispatch("removeFollowRequest",e.user)}))}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({userClass:function(){return(0,ge.M)(this.notification.from_profile)},userStyle:function(){var e=this.$store.getters.mergedConfig.highlight,t=this.notification.from_profile;return(0,ge.q)(e[t.screen_name])},user:function(){return this.$store.getters.findUser(this.notification.from_profile.id)},userProfileLink:function(){return this.generateUserProfileLink(this.user)},targetUser:function(){return this.$store.getters.findUser(this.notification.target.id)},targetUserProfileLink:function(){return this.generateUserProfileLink(this.targetUser)},needMute:function(){return this.$store.getters.relationship(this.user.id).muting},isStatusNotification:function(){return(0,fe.Gr)(this.notification.type)}},(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))};const _e=ye,ke=(0,ue.Z)(_e,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("Status"),u=(0,r.up)("user-link"),d=(0,r.up)("FAIcon"),p=(0,r.up)("UserAvatar"),h=(0,r.up)("UserPopover"),m=(0,r.up)("RichContent"),f=(0,r.up)("i18n-t"),g=(0,r.up)("Timeago"),v=(0,r.up)("router-link"),w=(0,r.up)("Report"),V=(0,r.up)("StatusContent");return"mention"===e.notification.type?((0,r.wg)(),(0,r.iD)("article",b,[(0,r.Wm)(l,{class:"Notification",compact:!0,statusoid:e.notification.status},null,8,["statusoid"])])):((0,r.wg)(),(0,r.iD)("article",y,[e.needMute&&!e.unmuted?((0,r.wg)(),(0,r.iD)("div",_,[(0,r._)("small",null,[(0,r.Wm)(u,{user:e.notification.from_profile,at:!1},null,8,["user"])]),(0,r._)("button",{class:"button-unstyled unmute",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})])])):((0,r.wg)(),(0,r.iD)("div",{key:1,class:(0,o.C_)(["Notification non-mention",[e.userClass,{highlighted:e.userStyle},"-type--"+e.notification.type]]),style:(0,o.j5)([e.userStyle])},[(0,r._)("a",{class:"avatar-container",href:e.$router.resolve(e.userProfileLink).href,onClick:t[1]||(t[1]=(0,i.iM)((function(){}),["prevent"]))},[(0,r.Wm)(h,{"user-id":e.notification.from_profile.id,"overlay-centers":!0},{default:(0,r.w5)((function(){return[(0,r.Wm)(p,{class:"post-avatar",bot:e.botIndicator,compact:!0,"better-shadow":e.betterShadow,user:e.notification.from_profile},null,8,["bot","better-shadow","user"])]})),_:1},8,["user-id"])],8,k),(0,r._)("div",S,[(0,r._)("span",j,[(0,r._)("div",O,[e.notification.from_profile.name_html?((0,r.wg)(),(0,r.iD)("bdi",C,[(0,r.Wm)(m,{class:"username",title:"@"+e.notification.from_profile.screen_name_ui,html:e.notification.from_profile.name_html,emoji:e.notification.from_profile.emoji},null,8,["title","html","emoji"])])):((0,r.wg)(),(0,r.iD)("span",{key:1,class:"username",title:"@"+e.notification.from_profile.screen_name_ui},(0,o.zw)(e.notification.from_profile.name),9,P)),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),"like"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",z,[(0,r.Wm)(d,{class:"type-icon",icon:"star"}),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("small",null,(0,o.zw)(e.$t("notifications.favorited_you")),1)])):(0,r.kq)("",!0),"repeat"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",I,[(0,r.Wm)(d,{class:"type-icon",icon:"retweet",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("small",null,(0,o.zw)(e.$t("notifications.repeated_you")),1)])):(0,r.kq)("",!0),"follow"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",D,[(0,r.Wm)(d,{class:"type-icon",icon:"user-plus"}),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("small",null,(0,o.zw)(e.$t("notifications.followed_you")),1)])):(0,r.kq)("",!0),"follow_request"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",x,[(0,r.Wm)(d,{class:"type-icon",icon:"user"}),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("small",null,(0,o.zw)(e.$t("notifications.follow_request")),1)])):(0,r.kq)("",!0),"move"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",T,[(0,r.Wm)(d,{class:"type-icon",icon:"suitcase-rolling"}),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("small",null,(0,o.zw)(e.$t("notifications.migrated_to")),1)])):(0,r.kq)("",!0),"pleroma:emoji_reaction"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",$,[(0,r._)("small",null,[(0,r.Wm)(f,{scope:"global",keypath:"notifications.reacted_with"},{default:(0,r.w5)((function(){return[(0,r._)("span",U,(0,o.zw)(e.notification.emoji),1)]})),_:1})])])):(0,r.kq)("",!0),"pleroma:report"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",M,[(0,r._)("small",null,(0,o.zw)(e.$t("notifications.submitted_report")),1)])):(0,r.kq)("",!0),"poll"===e.notification.type?((0,r.wg)(),(0,r.iD)("span",A,[(0,r.Wm)(d,{class:"type-icon",icon:"poll-h"}),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("small",null,(0,o.zw)(e.$t("notifications.poll_ended")),1)])):(0,r.kq)("",!0)]),e.isStatusNotification?((0,r.wg)(),(0,r.iD)("div",L,[e.notification.status?((0,r.wg)(),(0,r.j4)(v,{key:0,to:{name:"conversation",params:{id:e.notification.status.id}},class:"timeago-link faint-link"},{default:(0,r.w5)((function(){return[(0,r.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])]})),_:1},8,["to"])):(0,r.kq)("",!0),(0,r._)("button",{class:"button-unstyled expand-icon",onClick:t[2]||(t[2]=(0,i.iM)((function(){return e.toggleStatusExpanded&&e.toggleStatusExpanded.apply(e,arguments)}),["prevent"])),title:e.$t("tool_tip.toggle_expand"),"aria-expanded":e.statusExpanded},[(0,r.Wm)(d,{class:"fa-scale-110","fixed-width":"",icon:e.statusExpanded?"compress-alt":"expand-alt"},null,8,["icon"])],8,E)])):((0,r.wg)(),(0,r.iD)("div",F,[(0,r._)("span",R,[(0,r.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])])])),e.needMute?((0,r.wg)(),(0,r.iD)("button",{key:2,class:"button-unstyled",title:e.$t("tool_tip.toggle_mute"),"aria-expanded":!e.unmuted,onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})],8,N)):(0,r.kq)("",!0)]),"follow"===e.notification.type||"follow_request"===e.notification.type?((0,r.wg)(),(0,r.iD)("div",q,[(0,r.Wm)(u,{class:"follow-name",user:e.notification.from_profile},null,8,["user"]),"follow_request"===e.notification.type?((0,r.wg)(),(0,r.iD)("div",Z,[(0,r._)("button",{class:"button-unstyled",title:e.$t("tool_tip.accept_follow_request"),onClick:t[4]||(t[4]=function(t){return e.approveUser()})},[(0,r.Wm)(d,{icon:"check",class:"fa-scale-110 fa-old-padding follow-request-accept"})],8,W),(0,r._)("button",{class:"button-unstyled",title:e.$t("tool_tip.reject_follow_request"),onClick:t[5]||(t[5]=function(t){return e.denyUser()})},[(0,r.Wm)(d,{icon:"times",class:"fa-scale-110 fa-old-padding follow-request-reject"})],8,B)])):(0,r.kq)("",!0)])):"move"===e.notification.type?((0,r.wg)(),(0,r.iD)("div",H,[(0,r.Wm)(u,{user:e.notification.target},null,8,["user"])])):"pleroma:report"===e.notification.type?((0,r.wg)(),(0,r.j4)(w,{key:2,"report-id":e.notification.report.id},null,8,["report-id"])):((0,r.wg)(),(0,r.j4)(V,{key:3,class:(0,o.C_)({faint:!e.statusExpanded}),compact:!e.statusExpanded,status:e.notification.action},null,8,["class","compact","status"]))])],6))]))}]]);var Se={class:"dropdown-menu"},je={class:"filter-trigger-button button-unstyled"},Oe=n(49874);function Ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ce(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ce(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}ve.vI.add(we.G_j);const ze={components:{Popover:Oe.default},computed:{filters:function(){return this.$store.getters.mergedConfig.notificationVisibility}},methods:{toggleNotificationFilter:function(e){this.$store.dispatch("setOption",{name:"notificationVisibility",value:Pe(Pe({},this.filters),{},(0,v.Z)({},e,!this.filters[e]))})}}},Ie=(0,ue.Z)(ze,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("FAIcon"),l=(0,r.up)("Popover");return(0,r.wg)(),(0,r.j4)(l,{trigger:"click",class:"NotificationFilters",placement:"bottom","bound-to":{x:"container"}},{content:(0,r.w5)((function(){return[(0,r._)("div",Se,[(0,r._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(e){return a.toggleNotificationFilter("likes")})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.likes}])},null,2),(0,r.Uk)((0,o.zw)(e.$t("settings.notification_visibility_likes")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(e){return a.toggleNotificationFilter("repeats")})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.repeats}])},null,2),(0,r.Uk)((0,o.zw)(e.$t("settings.notification_visibility_repeats")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(e){return a.toggleNotificationFilter("follows")})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.follows}])},null,2),(0,r.Uk)((0,o.zw)(e.$t("settings.notification_visibility_follows")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(e){return a.toggleNotificationFilter("mentions")})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.mentions}])},null,2),(0,r.Uk)((0,o.zw)(e.$t("settings.notification_visibility_mentions")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(e){return a.toggleNotificationFilter("emojiReactions")})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.emojiReactions}])},null,2),(0,r.Uk)((0,o.zw)(e.$t("settings.notification_visibility_emoji_reactions")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(e){return a.toggleNotificationFilter("moves")})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.moves}])},null,2),(0,r.Uk)((0,o.zw)(e.$t("settings.notification_visibility_moves")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(e){return a.toggleNotificationFilter("polls")})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.polls}])},null,2),(0,r.Uk)((0,o.zw)(e.$t("settings.notification_visibility_polls")),1)])])]})),trigger:(0,r.w5)((function(){return[(0,r._)("button",je,[(0,r.Wm)(c,{icon:"filter"})])]})),_:1})}]]);var De=n(15568),xe=n(49753);function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}ve.vI.add(we.IJ7,we.FPD,we.Kl4);const $e={components:{Notification:ke,NotificationFilters:Ie},props:{minimalMode:Boolean,filterMode:Array,disableTeleport:Boolean},data:function(){return{showScrollTop:!1,bottomedOut:!1,seenToDisplayCount:30}},provide:function(){var e=this;return{popoversZLayer:(0,r.Fl)((function(){return e.popoversZLayer}))}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mainClass:function(){return this.minimalMode?"":"panel panel-default"},notifications:function(){return(0,fe.Bt)(this.$store)},error:function(){return this.$store.state.statuses.notifications.error},unseenNotifications:function(){return(0,fe.Km)(this.$store)},filteredNotifications:function(){return(0,fe.G2)(this.$store,this.filterMode)},unseenCount:function(){return this.unseenNotifications.length},unseenCountTitle:function(){return this.unseenCount+this.unreadChatCount+this.unreadAnnouncementCount},loading:function(){return this.$store.state.statuses.notifications.loading},noHeading:function(){var e=this.$store.state.interface.layoutType;return this.minimalMode||"mobile"===e},teleportTarget:function(){return{wide:"#notifs-column",mobile:"#mobile-notifications"}[this.$store.state.interface.layoutType]||"#notifs-sidebar"},popoversZLayer:function(){return"mobile"===this.$store.state.interface.layoutType?"navbar":null},notificationsToDisplay:function(){return this.filteredNotifications.slice(0,this.unseenCount+this.seenToDisplayCount)},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders}},(0,w.Se)(["unreadChatCount","unreadAnnouncementCount"])),mounted:function(){this.scrollerRef=this.$refs.root.closest(".column.-scrollable"),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".mobile-notifications")),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".column.main")),this.scrollerRef.addEventListener("scroll",this.updateScrollPosition)},unmounted:function(){this.scrollerRef&&this.scrollerRef.removeEventListener("scroll",this.updateScrollPosition)},watch:{unseenCountTitle:function(e){e>0?(xe.Z.drawFaviconBadge(),this.$store.dispatch("setPageTitle","(".concat(e,")"))):(xe.Z.clearFaviconBadge(),this.$store.dispatch("setPageTitle",""))},teleportTarget:function(){var e=this;this.$nextTick((function(){e.scrollerRef.removeEventListener("scroll",e.updateScrollPosition),e.scrollerRef=e.$refs.root.closest(".column.-scrollable"),e.scrollerRef||(e.scrollerRef=e.$refs.root.closest(".mobile-notifications")),e.scrollerRef.addEventListener("scroll",e.updateScrollPosition),e.updateScrollPosition()}))}},methods:{scrollToTop:function(){this.scrollerRef.scrollTo({top:this.$refs.root.offsetTop})},updateScrollPosition:function(){this.showScrollTop=this.$refs.root.offsetTop<this.scrollerRef.scrollTop},markAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen"),this.seenToDisplayCount=30},fetchOlderNotifications:function(){var e=this;if(!this.loading){var t=this.filteredNotifications.length-this.unseenCount;if(this.seenToDisplayCount<t)this.seenToDisplayCount=Math.min(this.seenToDisplayCount+20,t);else{this.seenToDisplayCount>t&&(this.seenToDisplayCount=t);var n=this.$store,r=n.state.users.currentUser.credentials;n.commit("setNotificationsLoading",{value:!0}),De.Z.fetchAndUpdate({store:n,credentials:r,older:!0}).then((function(t){n.commit("setNotificationsLoading",{value:!1}),0===t.length&&(e.bottomedOut=!0),e.seenToDisplayCount+=t.length}))}}}}},Ue=(0,ue.Z)($e,[["render",function(e,t,n,v,w,b){var y=(0,r.up)("FAIcon"),_=(0,r.up)("FALayers"),k=(0,r.up)("NotificationFilters"),S=(0,r.up)("notification");return(0,r.wg)(),(0,r.j4)(r.lR,{disabled:e.minimalMode||e.disableTeleport,to:e.teleportTarget},[((0,r.wg)(),(0,r.j4)((0,r.LL)(e.noHeading?"div":"aside"),{ref:"root",class:(0,o.C_)([{minimal:e.minimalMode},"Notifications"])},{default:(0,r.w5)((function(){return[(0,r._)("div",{class:(0,o.C_)(e.mainClass)},[e.noHeading?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",a,[(0,r.Uk)((0,o.zw)(e.$t("notifications.notifications"))+" ",1),e.unseenCount?((0,r.wg)(),(0,r.iD)("span",c,(0,o.zw)(e.unseenCount),1)):(0,r.kq)("",!0)]),e.showScrollTop?((0,r.wg)(),(0,r.iD)("div",l,[(0,r._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,r.Wm)(_,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{icon:"arrow-up"}),(0,r.Wm)(y,{icon:"minus",transform:"up-7"})]})),_:1})],8,u)])):(0,r.kq)("",!0),e.unseenCount?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-default read-button",type:"button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.markAsSeen&&e.markAsSeen.apply(e,arguments)}),["prevent"]))},(0,o.zw)(e.$t("notifications.read")),1)):(0,r.kq)("",!0),(0,r.Wm)(k,{class:"rightside-button"})])),(0,r._)("div",d,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.notificationsToDisplay,(function(t){return(0,r.wg)(),(0,r.iD)("div",{key:t.id,role:"listitem",class:(0,o.C_)(["notification",{unseen:!e.minimalMode&&!t.seen}])},[p,(0,r.Wm)(S,{notification:t},null,8,["notification"])],2)})),128))]),(0,r._)("div",h,[e.bottomedOut?((0,r.wg)(),(0,r.iD)("div",m,(0,o.zw)(e.$t("notifications.no_more_notifications")),1)):e.loading?((0,r.wg)(),(0,r.iD)("div",g,[(0,r.Wm)(y,{icon:"circle-notch",spin:"",size:"lg"})])):((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-unstyled -link -fullwidth",onClick:t[2]||(t[2]=(0,i.iM)((function(t){return e.fetchOlderNotifications()}),["prevent"]))},[(0,r._)("div",f,(0,o.zw)(e.minimalMode?e.$t("interactions.load_older"):e.$t("notifications.load_older")),1)]))])],2)]})),_:1},8,["class"]))],8,["disabled","to"])}]]),Me=Ue},96786:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(66252),o=n(3577),i={class:"panel-loading"},s={class:"loading-text"},a=n(9382),c=n(84131);a.vI.add(c.IJ7);const l={},u=(0,n(83744).Z)(l,[["render",function(e,t,n,a,c,l){var u=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("span",s,[(0,r.Wm)(u,{icon:"circle-notch",spin:"",size:"3x"}),(0,r.Uk)(" "+(0,o.zw)(e.$t("general.loading")),1)])])}]])},49874:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(66252),o=n(49963),i=n(3577);const s={name:"Popover",props:{trigger:String,placement:String,boundTo:Object,boundToSelector:String,margin:Object,offset:Object,popoverClass:String,removePadding:Boolean,disabled:Boolean,overlayCenters:Boolean,overlayCentersSelector:String,stayOnClick:Boolean,triggerAttrs:{type:Object,default:{}}},inject:["popoversZLayer"],data:function(){return{anchorEl:null,teleport:!1,lockReEntry:!1,hidden:!0,styles:{},oldSize:{width:0,height:0},scrollable:null,graceTimeout:null,parentPopover:null,disableClickOutside:!1,childrenShown:new Set}},methods:{setAnchorEl:function(e){this.anchorEl=e,this.updateStyles()},containerBoundingClientRect:function(){return(this.boundToSelector?this.$el.closest(this.boundToSelector):this.$el.offsetParent).getBoundingClientRect()},updateStyles:function(){if(this.hidden)this.styles={};else{var e=this.anchorEl||this.$refs.trigger&&this.$refs.trigger.children[0]||this.$el,t=e.offsetHeight||e.clientHeight,n=e.offsetWidth||e.clientWidth,r=e.getBoundingClientRect(),o=getComputedStyle(e),i=parseFloat(o.paddingTop),s=parseFloat(o.paddingBottom),a=parseFloat(o.paddingRight),c=parseFloat(o.paddingLeft),l=r.left+.5*n,u=r.top+.5*t,d=this.$refs.content,p=this.overlayCenters?this.$refs.content.querySelector(this.overlayCentersSelector):null,h=this.boundTo&&("container"===this.boundTo.x||"container"===this.boundTo.y)&&this.containerBoundingClientRect(),m=this.margin||{},f=this.boundTo&&"container"===this.boundTo.x?{min:h.left+(m.left||0),max:h.right-(m.right||0)}:{min:0+(m.left||10),max:window.innerWidth-(m.right||10)},g=this.boundTo&&"container"===this.boundTo.y?{min:h.top+(m.top||0),max:h.bottom-(m.bottom||0)}:{min:0+(m.top||50),max:window.innerHeight-(m.bottom||5)},v=0,w=0;if(p){var b=d.getBoundingClientRect(),y=p.getBoundingClientRect(),_=y.left-b.left,k=y.top-b.top;v=-_-.5*p.offsetWidth,w=-k-.5*p.offsetHeight}else v=-.5*d.offsetWidth,w=-.5*d.offsetHeight;var S=l+v,j=S+d.offsetWidth,O=u+w,C=O+d.offsetHeight;S<f.min&&(v+=f.min-S),j>f.max&&(v-=j-f.max),O<g.min&&(w+=g.min-O),C>g.max&&(w-=C-g.max);var P=0,z=0;if(p)P=l+v,z=u+w;else if("right"!==this.placement&&"left"!==this.placement){var I="bottom"!==this.placement,D=u-.5*t+(this.removePadding?i:0),x=u+.5*t-(this.removePadding?s:0);x+d.offsetHeight>g.max&&(I=!0),D-d.offsetHeight<g.min&&(I=!1);var T=this.offset&&this.offset.y||0;z=I?D-T-d.offsetHeight:x+T,P=l+v+(this.offset&&this.offset.x||0)}else{var $="left"!==this.placement,U=l-.5*n+(this.removePadding?a:0),M=l+.5*n-(this.removePadding?c:0);M+d.offsetWidth>f.max&&($=!0),U-d.offsetWidth<f.min&&($=!1);var A=this.offset&&this.offset.x||0;P=$?U-A-d.offsetWidth:M+A,z=u+w+(this.offset&&this.offset.y||0)}this.styles={left:"".concat(Math.round(P),"px"),top:"".concat(Math.round(z),"px")},this.popoversZLayer&&(this.styles["--ZI_popover_override"]="var(--ZI_".concat(this.popoversZLayer,"_popovers)")),h&&(this.styles.maxWidth="".concat(Math.round(h.width),"px"))}},showPopover:function(){var e=this;if(!this.disabled){this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0);var t=this.hidden;this.hidden=!1,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!0),("click"===this.trigger||this.stayOnClick)&&document.addEventListener("click",this.onClickOutside),this.scrollable.addEventListener("scroll",this.onScroll),this.scrollable.addEventListener("resize",this.onResize),this.$nextTick((function(){t&&e.$emit("show"),e.updateStyles()}))}},hidePopover:function(){this.disabled||(this.hidden||this.$emit("close"),this.hidden=!0,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!1),"click"===this.trigger&&document.removeEventListener("click",this.onClickOutside),this.scrollable.removeEventListener("scroll",this.onScroll),this.scrollable.removeEventListener("resize",this.onResize))},onMouseenter:function(e){"hover"===this.trigger&&(this.lockReEntry=!1,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleave:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onMouseenterContent:function(e){"hover"!==this.trigger||this.lockReEntry||(this.lockReEntry=!0,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleaveContent:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onClick:function(e){"click"===this.trigger&&(this.hidden?this.showPopover():this.hidePopover())},onClickOutside:function(e){this.disableClickOutside||this.hidden||this.$refs.content&&this.$refs.content.contains(e.target)||this.$el.contains(e.target)||this.childrenShown.size>0||(this.hidePopover(),this.parentPopover&&this.parentPopover.onClickOutside(e))},onScroll:function(e){this.updateStyles()},onResize:function(e){this.updateStyles()},onChildPopoverState:function(e,t){t?this.childrenShown.add(e):this.childrenShown.delete(e)}},updated:function(){var e=this.$refs.content;e&&(this.oldSize.width===e.offsetWidth&&this.oldSize.height===e.offsetHeight||(this.updateStyles(),this.oldSize={width:e.offsetWidth,height:e.offsetHeight}))},mounted:function(){this.teleport=!0;var e=this.$refs.trigger.closest(".column.-scrollable")||this.$refs.trigger.closest(".mobile-notifications");e||(e=window),this.scrollable=e;for(var t=this.$parent;t&&"Popover"!==t.$.type.name;)t=t.$parent;this.parentPopover=t},beforeUnmount:function(){this.hidePopover()}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,c){return(0,r.wg)(),(0,r.iD)("span",{onMouseenter:t[4]||(t[4]=function(){return e.onMouseenter&&e.onMouseenter.apply(e,arguments)}),onMouseleave:t[5]||(t[5]=function(){return e.onMouseleave&&e.onMouseleave.apply(e,arguments)})},[(0,r._)("button",(0,r.dG)({ref:"trigger",class:"button-unstyled popover-trigger-button",type:"button"},e.triggerAttrs,{onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})}),[(0,r.WI)(e.$slots,"trigger")],16),((0,r.wg)(),(0,r.j4)(r.lR,{disabled:!e.teleport,to:"#popovers"},[(0,r.Wm)(o.uT,{name:"fade"},{default:(0,r.w5)((function(){return[e.hidden?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",{key:0,ref:"content",style:(0,i.j5)(e.styles),class:(0,i.C_)(["popover",e.popoverClass||"popover-default"]),onMouseenter:t[1]||(t[1]=function(){return e.onMouseenterContent&&e.onMouseenterContent.apply(e,arguments)}),onMouseleave:t[2]||(t[2]=function(){return e.onMouseleaveContent&&e.onMouseleaveContent.apply(e,arguments)}),onClick:t[3]||(t[3]=function(){return e.onClickContent&&e.onClickContent.apply(e,arguments)})},[(0,r.WI)(e.$slots,"content",{class:"popover-inner",close:e.hidePopover})],38))]})),_:3})],8,["disabled"]))],32)}]])},33580:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ae});var r=n(66252),o=n(49963),i=n(3577),s={ref:"form",class:"post-status-form"},a={class:"form-group"},c={key:1,class:"visibility-notice notice-dismissible"},l={key:2,class:"visibility-notice notice-dismissible"},u={key:3,class:"visibility-notice notice-dismissible"},d={key:4,class:"visibility-notice"},p={key:0},h={key:1},m={key:5,class:"visibility-notice edit-warning"},f={key:6,class:"preview-heading faint"},g={class:"preview-spinner"},v={key:7,class:"preview-container"},w={key:0,class:"preview-status"},b={key:1,class:"preview-status preview-error"},y=["placeholder","disabled"],_=["placeholder","disabled"],k={key:9,class:"visibility-tray"},S={key:1,class:"text-format"},j=["value"],O={key:2,class:"text-format"},C={class:"only-format"},P={ref:"bottom",class:"form-bottom"},z={class:"form-bottom-left"},I=["title"],D=["title"],x={key:0,disabled:"",class:"btn button-default"},T={key:1,disabled:"",class:"btn button-default"},$=["disabled"],U={key:1,class:"alert error"},M={key:3,class:"upload_settings"},A=n(15861),L=n(4942),E=n(93433),F=n(23279),R=n.n(F),N=n(45578),q=n.n(N),Z=n(35161),W=n.n(Z),B=n(43063),H=n.n(B),V=n(64687),K=n.n(V),G=n(7257),Y=["title"],J=["disabled"],Q=n(65079),X=n(9382),ee=n(84131);function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}X.vI.add(ee.cf$,ee.IJ7);const ne={data:function(){return{uploadCount:0,uploadReady:!0}},computed:{uploading:function(){return this.uploadCount>0}},methods:{uploadFile:function(e){var t=this,n=this.$store;if(e.size>n.state.instance.uploadlimit){var r=Q.Z.fileSizeFormat(e.size),o=Q.Z.fileSizeFormat(n.state.instance.uploadlimit);t.$emit("upload-failed","file_too_big",{filesize:r.num,filesizeunit:r.unit,allowedsize:o.num,allowedsizeunit:o.unit})}else{var i=new FormData;i.append("file",e),t.$emit("uploading"),t.uploadCount++,G.Z.uploadMedia({store:n,formData:i}).then((function(e){t.$emit("uploaded",e),t.decreaseUploadCount()}),(function(e){console.error("Error uploading file",e),t.$emit("upload-failed","default"),t.decreaseUploadCount()}))}},decreaseUploadCount:function(){this.uploadCount--,0===this.uploadCount&&this.$emit("all-uploaded")},clearFile:function(){var e=this;this.uploadReady=!1,this.$nextTick((function(){e.uploadReady=!0}))},multiUpload:function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return te(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?te(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.uploadFile(r)}}catch(e){n.e(e)}finally{n.f()}},change:function(e){var t=e.target;this.multiUpload(t.files)}},props:["dropFiles","disabled"],watch:{dropFiles:function(e){this.uploading||this.multiUpload(e)}}};var re=n(83744);const oe=(0,re.Z)(ne,[["render",function(e,t,n,o,s,a){var c=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("label",{class:(0,i.C_)(["media-upload",{disabled:e.disabled}]),title:e.$t("tool_tip.media_upload")},[e.uploading?((0,r.wg)(),(0,r.j4)(c,{key:0,class:"progress-icon",icon:"circle-notch",spin:""})):(0,r.kq)("",!0),e.uploading?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(c,{key:1,class:"new-icon",icon:"upload"})),e.uploadReady?((0,r.wg)(),(0,r.iD)("input",{key:2,class:"hidden-input-file",disabled:e.disabled,type:"file",multiple:"true",onChange:t[0]||(t[0]=function(){return e.change&&e.change.apply(e,arguments)})},null,40,J)):(0,r.kq)("",!0)],10,Y)}]]);var ie=n(4078),se=n(38658),ae={key:0,class:"poll-form"},ce={class:"input-container"},le=["id","onUpdate:modelValue","placeholder","maxlength","onKeydown"],ue=["onClick"],de={class:"poll-type-expiry"},pe=["title"],he={value:"single"},me={value:"multiple"},fe=["title"],ge=["min","max"],ve=["value"],we=n(44908),be=n.n(we),ye=n(27483),_e=n(44313);X.vI.add(ee.NBC,ee.r8p);const ke={components:{Select:_e.Z},name:"PollForm",props:["visible"],data:function(){return{pollType:"single",options:["",""],expiryAmount:10,expiryUnit:"minutes"}},computed:{pollLimits:function(){return this.$store.state.instance.pollLimits},maxOptions:function(){return this.pollLimits.max_options},maxLength:function(){return this.pollLimits.max_option_chars},expiryUnits:function(){var e=this,t=this.convertExpiryFromUnit;return["minutes","hours","days"].filter((function(n){return e.pollLimits.max_expiration>=t(n,1)}))},minExpirationInCurrentUnit:function(){return Math.ceil(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.min_expiration))},maxExpirationInCurrentUnit:function(){return Math.floor(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.max_expiration))}},methods:{clear:function(){this.pollType="single",this.options=["",""],this.expiryAmount=10,this.expiryUnit="minutes"},nextOption:function(e){var t=this.$el.querySelector("#poll-".concat(e+1));t?t.focus():this.addOption()&&this.$nextTick((function(){this.nextOption(e)}))},addOption:function(){return this.options.length<this.maxOptions&&(this.options.push(""),!0)},deleteOption:function(e,t){this.options.length>2&&(this.options.splice(e,1),this.updatePollToParent())},convertExpiryToUnit:function(e,t){switch(e){case"minutes":return 1e3*t/ye.EB;case"hours":return 1e3*t/ye.kr;case"days":return 1e3*t/ye.x4}},convertExpiryFromUnit:function(e,t){switch(e){case"minutes":return.001*t*ye.EB;case"hours":return.001*t*ye.kr;case"days":return.001*t*ye.x4}},expiryAmountChange:function(){this.expiryAmount=Math.max(this.minExpirationInCurrentUnit,this.expiryAmount),this.expiryAmount=Math.min(this.maxExpirationInCurrentUnit,this.expiryAmount),this.updatePollToParent()},updatePollToParent:function(){var e=this.convertExpiryFromUnit(this.expiryUnit,this.expiryAmount),t=be()(this.options.filter((function(e){return""!==e})));t.length<2?this.$emit("update-poll",{error:this.$t("polls.not_enough_options")}):this.$emit("update-poll",{options:t,multiple:"multiple"===this.pollType,expiresIn:e})}}},Se=(0,re.Z)(ke,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("FAIcon"),u=(0,r.up)("Select");return e.visible?((0,r.wg)(),(0,r.iD)("div",ae,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.options,(function(n,i){return(0,r.wg)(),(0,r.iD)("div",{key:i,class:"poll-option"},[(0,r._)("div",ce,[(0,r.wy)((0,r._)("input",{id:"poll-".concat(i),"onUpdate:modelValue":function(t){return e.options[i]=t},size:"1",class:"poll-option-input",type:"text",placeholder:e.$t("polls.option"),maxlength:e.maxLength,onChange:t[0]||(t[0]=function(){return e.updatePollToParent&&e.updatePollToParent.apply(e,arguments)}),onKeydown:(0,o.D2)((0,o.iM)((function(t){return e.nextOption(i)}),["stop","prevent"]),["enter"])},null,40,le),[[o.nr,e.options[i]]])]),e.options.length>2?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"delete-option button-unstyled -hover-highlight",onClick:function(t){return e.deleteOption(i)}},[(0,r.Wm)(l,{icon:"times"})],8,ue)):(0,r.kq)("",!0)])})),128)),e.options.length<e.maxOptions?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"add-option faint button-unstyled -hover-highlight",onClick:t[1]||(t[1]=function(){return e.addOption&&e.addOption.apply(e,arguments)})},[(0,r.Wm)(l,{icon:"plus",size:"sm"}),(0,r.Uk)(" "+(0,i.zw)(e.$t("polls.add_option")),1)])):(0,r.kq)("",!0),(0,r._)("div",de,[(0,r._)("div",{class:"poll-type",title:e.$t("polls.type")},[(0,r.Wm)(u,{modelValue:e.pollType,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.pollType=t}),class:"poll-type-select",unstyled:"true",onChange:e.updatePollToParent},{default:(0,r.w5)((function(){return[(0,r._)("option",he,(0,i.zw)(e.$t("polls.single_choice")),1),(0,r._)("option",me,(0,i.zw)(e.$t("polls.multiple_choices")),1)]})),_:1},8,["modelValue","onChange"])],8,pe),(0,r._)("div",{class:"poll-expiry",title:e.$t("polls.expiry")},[(0,r.wy)((0,r._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.expiryAmount=t}),type:"number",class:"expiry-amount hide-number-spinner",min:e.minExpirationInCurrentUnit,max:e.maxExpirationInCurrentUnit,onChange:t[4]||(t[4]=function(){return e.expiryAmountChange&&e.expiryAmountChange.apply(e,arguments)})},null,40,ge),[[o.nr,e.expiryAmount]]),(0,r.Uk)(" "+(0,i.zw)(" ")+" "),(0,r.Wm)(u,{modelValue:e.expiryUnit,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.expiryUnit=t}),unstyled:"true",class:"expiry-unit",onChange:e.expiryAmountChange},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.expiryUnits,(function(t){return(0,r.wg)(),(0,r.iD)("option",{key:t,value:t},(0,i.zw)(e.$tc("time.unit.".concat(t,"_short"),e.expiryAmount,[""])),9,ve)})),128))]})),_:1},8,["modelValue","onChange"])],8,fe)])])):(0,r.kq)("",!0)}]]);var je=n(74722),Oe=n(99822),Ce=n(33288),Pe=n(58394),ze=n(67952),Ie=n(19003),De=n(989),xe=n(40151);function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(n),!0).forEach((function(t){(0,L.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}X.vI.add(ee.RKn,ee.Mm7,ee.cf$,ee.gPx,ee.NBC,ee.IJ7);var Ue=function(e){return Number(e.substring(0,e.length-2))};const Me={props:["statusId","statusText","statusIsSensitive","statusPoll","statusFiles","statusMediaDescriptions","statusScope","statusContentType","replyTo","repliedUser","attentions","copyMessageScope","subject","disableSubject","disableScopeSelector","disableVisibilitySelector","disableNotice","disableLockWarning","disablePolls","disableSensitivityCheckbox","disableSubmit","disablePreview","placeholder","maxHeight","postHandler","preserveFocus","autoFocus","fileLimit","submitOnEnter","emojiPickerPlacement","optimisticPosting"],emits:["posted","resize","mediaplay","mediapause"],components:{MediaUpload:oe,EmojiInput:se.Z,PollForm:Se,ScopeSelector:ie.Z,Checkbox:xe.Z,Select:_e.Z,Attachment:je.Z,StatusContent:Ce.Z,Gallery:Oe.Z},mounted:function(){if(this.updateIdempotencyKey(),this.resize(this.$refs.textarea),this.replyTo){var e=this.$refs.textarea.value.length;this.$refs.textarea.setSelectionRange(e,e)}(this.replyTo||this.autoFocus)&&this.$refs.textarea.focus()},data:function(){var e=this.$route.query.message||"",t=this.$store.getters.mergedConfig.scopeCopy;if(this.replyTo){var n=this.$store.state.users.currentUser;e=function(e,t){var n=e.user,r=e.attentions,o=void 0===r?[]:r,i=(0,E.Z)(o);i.unshift(n),i=q()(i,"id"),i=H()(i,{id:t.id});var s=W()(i,(function(e){return"@".concat(e.screen_name)}));return s.length>0?s.join(" ")+" ":""}({user:this.repliedUser,attentions:this.attentions},n)}var r=this.copyMessageScope&&t||"direct"===this.copyMessageScope?this.copyMessageScope:this.$store.state.users.currentUser.default_scope,o=this.$store.getters.mergedConfig,i=o.postContentType,s=o.sensitiveByDefault,a={spoilerText:this.subject||"",status:e,nsfw:!!s,files:[],poll:{},mediaDescriptions:{},visibility:r,contentType:i};if(this.statusId){var c=this.statusContentType||i;a={spoilerText:this.subject||"",status:this.statusText||"",nsfw:this.statusIsSensitive||!!s,files:this.statusFiles||[],poll:this.statusPoll||{},mediaDescriptions:this.statusMediaDescriptions||{},visibility:this.statusScope||r,contentType:c}}return{dropFiles:[],uploadingFiles:!1,error:null,posting:!1,highlighted:0,newStatus:a,caret:0,pollFormVisible:!1,showDropIcon:"hide",dropStopTimeout:null,preview:null,previewLoading:!1,emojiInputShown:!1,idempotencyKey:""}},computed:$e($e({users:function(){return this.$store.state.users.users},userDefaultScope:function(){return this.$store.state.users.currentUser.default_scope},showAllScopes:function(){return!this.mergedConfig.minimalScopesMode},emojiUserSuggestor:function(){return(0,Ie.ZP)({emoji:[].concat((0,E.Z)(this.$store.getters.standardEmojiList),(0,E.Z)(this.$store.state.instance.customEmoji)),store:this.$store})},emojiSuggestor:function(){return(0,Ie.ZP)({emoji:[].concat((0,E.Z)(this.$store.getters.standardEmojiList),(0,E.Z)(this.$store.state.instance.customEmoji))})},emoji:function(){return this.$store.getters.standardEmojiList||[]},customEmoji:function(){return this.$store.state.instance.customEmoji||[]},statusLength:function(){return this.newStatus.status.length},spoilerTextLength:function(){return this.newStatus.spoilerText.length},statusLengthLimit:function(){return this.$store.state.instance.textlimit},hasStatusLengthLimit:function(){return this.statusLengthLimit>0},charactersLeft:function(){return this.statusLengthLimit-(this.statusLength+this.spoilerTextLength)},isOverLengthLimit:function(){return this.hasStatusLengthLimit&&this.charactersLeft<0},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},alwaysShowSubject:function(){return this.mergedConfig.alwaysShowSubjectInput},postFormats:function(){return this.$store.state.instance.postFormats||[]},safeDMEnabled:function(){return this.$store.state.instance.safeDM},pollsAvailable:function(){return this.$store.state.instance.pollsAvailable&&this.$store.state.instance.pollLimits.max_options>=2&&!0!==this.disablePolls},hideScopeNotice:function(){return this.disableNotice||this.$store.getters.mergedConfig.hideScopeNotice},pollContentError:function(){return this.pollFormVisible&&this.newStatus.poll&&this.newStatus.poll.error},showPreview:function(){return!this.disablePreview&&(!!this.preview||this.previewLoading)},emptyStatus:function(){return""===this.newStatus.status.trim()&&0===this.newStatus.files.length},uploadFileLimitReached:function(){return this.newStatus.files.length>=this.fileLimit},isEdit:function(){return void 0!==this.statusId&&""!==this.statusId.trim()}},(0,De.Se)(["mergedConfig"])),(0,De.rn)({mobileLayout:function(e){return e.interface.mobileLayout}})),watch:{newStatus:{deep:!0,handler:function(){this.statusChanged()}}},methods:{statusChanged:function(){this.autoPreview(),this.updateIdempotencyKey()},clearStatus:function(){var e=this,t=this.newStatus;this.newStatus={status:"",spoilerText:"",files:[],visibility:t.visibility,contentType:t.contentType,poll:{},mediaDescriptions:{}},this.pollFormVisible=!1,this.$refs.mediaUpload&&this.$refs.mediaUpload.clearFile(),this.clearPollForm(),this.preserveFocus&&this.$nextTick((function(){e.$refs.textarea.focus()}));var n=this.$el.querySelector("textarea");n.style.height="auto",n.style.height=void 0,this.error=null,this.preview&&this.previewStatus()},postStatus:function(e,t){var n=arguments,r=this;return(0,A.Z)(K().mark((function o(){var i,s;return K().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(n.length>2&&void 0!==n[2]&&n[2],!r.posting||r.optimisticPosting){o.next=3;break}return o.abrupt("return");case 3:if(!r.disableSubmit){o.next=5;break}return o.abrupt("return");case 5:if(!r.emojiInputShown){o.next=7;break}return o.abrupt("return");case 7:if(r.submitOnEnter&&(e.stopPropagation(),e.preventDefault()),!r.optimisticPosting||!r.emptyStatus&&!r.isOverLengthLimit){o.next=10;break}return o.abrupt("return");case 10:if(!r.emptyStatus){o.next=13;break}return r.error=r.$t("post_status.empty_status_error"),o.abrupt("return");case 13:if(i=r.pollFormVisible?r.newStatus.poll:{},!r.pollContentError){o.next=17;break}return r.error=r.pollContentError,o.abrupt("return");case 17:return r.posting=!0,o.prev=18,o.next=21,r.setAllMediaDescriptions();case 21:o.next=28;break;case 23:return o.prev=23,o.t0=o.catch(18),r.error=r.$t("post_status.media_description_error"),r.posting=!1,o.abrupt("return");case 28:s={status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw,media:t.files,store:r.$store,inReplyToStatusId:r.replyTo,contentType:t.contentType,poll:i,idempotencyKey:r.idempotencyKey},(r.postHandler?r.postHandler:G.Z.postStatus)(s).then((function(e){e.error?r.error=e.error:(r.clearStatus(),r.$emit("posted",e)),r.posting=!1}));case 31:case"end":return o.stop()}}),o,null,[[18,23]])})))()},previewStatus:function(){var e=this;if(this.emptyStatus&&""===this.newStatus.spoilerText.trim())return this.preview={error:this.$t("post_status.preview_empty")},void(this.previewLoading=!1);var t=this.newStatus;this.previewLoading=!0,G.Z.postStatus({status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw,media:[],store:this.$store,inReplyToStatusId:this.replyTo,contentType:t.contentType,poll:{},preview:!0}).then((function(t){e.previewLoading&&(t.error?e.preview={error:t.error}:e.preview=t)})).catch((function(t){e.preview={error:t}})).finally((function(){e.previewLoading=!1}))},debouncePreviewStatus:R()((function(){this.previewStatus()}),500),autoPreview:function(){this.preview&&(this.previewLoading=!0,this.debouncePreviewStatus())},closePreview:function(){this.preview=null,this.previewLoading=!1},togglePreview:function(){this.showPreview?this.closePreview():this.previewStatus()},addMediaFile:function(e){this.newStatus.files.push(e),this.$emit("resize",{delayed:!0})},removeMediaFile:function(e){var t=this.newStatus.files.indexOf(e);this.newStatus.files.splice(t,1),this.$emit("resize")},editAttachment:function(e,t){this.newStatus.mediaDescriptions[e.id]=t},shiftUpMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n-1,0,e)},shiftDnMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n+1,0,e)},uploadFailed:function(e,t){t=t||{},this.error=this.$t("upload.error.base")+" "+this.$t("upload.error."+e,t)},startedUploadingFiles:function(){this.uploadingFiles=!0},finishedUploadingFiles:function(){this.$emit("resize"),this.uploadingFiles=!1},type:function(e){return Pe.Z.fileType(e.mimetype)},paste:function(e){this.autoPreview(),this.resize(e),e.clipboardData.files.length>0&&(e.preventDefault(),this.dropFiles=[e.clipboardData.files[0]])},fileDrop:function(e){e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),this.dropFiles=e.dataTransfer.files,clearTimeout(this.dropStopTimeout),this.showDropIcon="hide")},fileDragStop:function(e){var t=this;clearTimeout(this.dropStopTimeout),this.showDropIcon="fade",this.dropStopTimeout=setTimeout((function(){return t.showDropIcon="hide"}),500)},fileDrag:function(e){e.dataTransfer.dropEffect=this.uploadFileLimitReached?"none":"copy",e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(clearTimeout(this.dropStopTimeout),this.showDropIcon="show")},onEmojiInputInput:function(e){var t=this;this.$nextTick((function(){t.resize(t.$refs.textarea)}))},resize:function(e){var t=e.target||e;if(t instanceof window.Element){if(""===t.value)return t.style.height=null,void this.$emit("resize");var n=this.$refs.form,r=this.$refs.bottom,o=window.getComputedStyle(r)["padding-bottom"],i=Ue(o),s=this.$el.closest(".column.-scrollable")||this.$el.closest(".post-form-modal-view")||window,a=window.getComputedStyle(t)["padding-top"],c=window.getComputedStyle(t)["padding-bottom"],l=Ue(a)+Ue(c),u=Ue(t.style.height),d=s===window?s.scrollY:s.scrollTop,p=s===window?s.innerHeight:s.offsetHeight,h=d+p;t.style.height="auto";var m=Math.floor(t.scrollHeight-l),f=this.maxHeight?Math.min(m,this.maxHeight):m;Math.abs(f-u)<=1&&(f=u),t.style.height="".concat(f,"px"),this.$emit("resize",f);var g=r.offsetHeight+(0,ze.y)(r,s).top+i,v=h<g,w=p<n.offsetHeight,b=g-h,y=!v||w&&this.$refs.textarea.selectionStart!==this.$refs.textarea.value.length?0:b,_=Math.round(d+y);s===window?s.scroll(0,_):s.scrollTop=_}},showEmojiPicker:function(){this.$refs.textarea.focus(),this.$refs["emoji-input"].triggerShowPicker()},clearError:function(){this.error=null},changeVis:function(e){this.newStatus.visibility=e},togglePollForm:function(){this.pollFormVisible=!this.pollFormVisible},setPoll:function(e){this.newStatus.poll=e},clearPollForm:function(){this.$refs.pollForm&&this.$refs.pollForm.clear()},dismissScopeNotice:function(){this.$store.dispatch("setOption",{name:"hideScopeNotice",value:!0})},setMediaDescription:function(e){var t=this.newStatus.mediaDescriptions[e];if(t&&""!==t.trim())return G.Z.setMediaDescription({store:this.$store,id:e,description:t})},setAllMediaDescriptions:function(){var e=this,t=this.newStatus.files.map((function(e){return e.id}));return Promise.all(t.map((function(t){return e.setMediaDescription(t)})))},handleEmojiInputShow:function(e){this.emojiInputShown=e},updateIdempotencyKey:function(){this.idempotencyKey=Date.now().toString()},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")}}},Ae=(0,re.Z)(Me,[["render",function(e,t,n,A,L,E){var F=(0,r.up)("i18n-t"),R=(0,r.up)("FAIcon"),N=(0,r.up)("StatusContent"),q=(0,r.up)("EmojiInput"),Z=(0,r.up)("scope-selector"),W=(0,r.up)("Select"),B=(0,r.up)("poll-form"),H=(0,r.up)("media-upload"),V=(0,r.up)("gallery"),K=(0,r.up)("Checkbox");return(0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("form",{autocomplete:"off",onSubmit:t[26]||(t[26]=(0,o.iM)((function(){}),["prevent"])),onDragover:t[27]||(t[27]=(0,o.iM)((function(){return e.fileDrag&&e.fileDrag.apply(e,arguments)}),["prevent"]))},[(0,r._)("div",a,[e.$store.state.users.currentUser.locked||"private"!=e.newStatus.visibility||e.disableLockWarning?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(F,{key:0,keypath:"post_status.account_not_locked_warning",tag:"p",class:"visibility-notice",scope:"global"},{default:(0,r.w5)((function(){return[(0,r._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)})},(0,i.zw)(e.$t("post_status.account_not_locked_warning_link")),1)]})),_:1})),e.hideScopeNotice||"public"!==e.newStatus.visibility?e.hideScopeNotice||"unlisted"!==e.newStatus.visibility?!e.hideScopeNotice&&"private"===e.newStatus.visibility&&e.$store.state.users.currentUser.locked?((0,r.wg)(),(0,r.iD)("p",u,[(0,r._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.private")),1),(0,r._)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[3]||(t[3]=(0,o.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,r.Wm)(R,{icon:"times"})])])):"direct"===e.newStatus.visibility?((0,r.wg)(),(0,r.iD)("p",d,[e.safeDMEnabled?((0,r.wg)(),(0,r.iD)("span",p,(0,i.zw)(e.$t("post_status.direct_warning_to_first_only")),1)):((0,r.wg)(),(0,r.iD)("span",h,(0,i.zw)(e.$t("post_status.direct_warning_to_all")),1))])):(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("p",l,[(0,r._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.unlisted")),1),(0,r._)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[2]||(t[2]=(0,o.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,r.Wm)(R,{icon:"times"})])])):((0,r.wg)(),(0,r.iD)("p",c,[(0,r._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.public")),1),(0,r._)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[1]||(t[1]=(0,o.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,r.Wm)(R,{icon:"times"})])])),e.isEdit?((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("p",null,(0,i.zw)(e.$t("post_status.edit_remote_warning")),1),(0,r._)("p",null,(0,i.zw)(e.$t("post_status.edit_unsupported_warning")),1)])):(0,r.kq)("",!0),e.disablePreview?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",f,[(0,r._)("a",{class:"preview-toggle faint",onClick:t[4]||(t[4]=(0,o.iM)((function(){return e.togglePreview&&e.togglePreview.apply(e,arguments)}),["stop","prevent"]))},[(0,r.Uk)((0,i.zw)(e.$t("post_status.preview"))+" ",1),(0,r.Wm)(R,{icon:e.showPreview?"chevron-left":"chevron-right"},null,8,["icon"])]),(0,r.wy)((0,r._)("div",g,[(0,r.Wm)(R,{class:"fa-old-padding",spin:"",icon:"circle-notch"})],512),[[o.F8,e.previewLoading]])])),e.showPreview?((0,r.wg)(),(0,r.iD)("div",v,[e.preview?e.preview.error?((0,r.wg)(),(0,r.iD)("div",b,(0,i.zw)(e.preview.error),1)):((0,r.wg)(),(0,r.j4)(N,{key:2,status:e.preview,class:"preview-status"},null,8,["status"])):((0,r.wg)(),(0,r.iD)("div",w,(0,i.zw)(e.$t("general.loading")),1))])):(0,r.kq)("",!0),e.disableSubject||!e.newStatus.spoilerText&&!e.alwaysShowSubject?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(q,{key:8,modelValue:e.newStatus.spoilerText,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.newStatus.spoilerText=t}),"enable-emoji-picker":"",suggest:e.emojiSuggestor,class:"form-control"},{default:(0,r.w5)((function(){return[(0,r.wy)((0,r._)("input",{"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.newStatus.spoilerText=t}),type:"text",placeholder:e.$t("post_status.content_warning"),disabled:e.posting&&!e.optimisticPosting,size:"1",class:"form-post-subject"},null,8,y),[[o.nr,e.newStatus.spoilerText]])]})),_:1},8,["modelValue","suggest"])),(0,r.Wm)(q,{ref:"emoji-input",modelValue:e.newStatus.status,"onUpdate:modelValue":t[14]||(t[14]=function(t){return e.newStatus.status=t}),suggest:e.emojiUserSuggestor,placement:e.emojiPickerPlacement,class:"form-control main-input","enable-emoji-picker":"","hide-emoji-button":"","newline-on-ctrl-enter":e.submitOnEnter,"enable-sticker-picker":"",onInput:e.onEmojiInputInput,onStickerUploaded:e.addMediaFile,onStickerUploadFailed:e.uploadFailed,onShown:e.handleEmojiInputShow},{default:(0,r.w5)((function(){return[(0,r.wy)((0,r._)("textarea",{ref:"textarea","onUpdate:modelValue":t[7]||(t[7]=function(t){return e.newStatus.status=t}),placeholder:e.placeholder||e.$t("post_status.default"),rows:"1",cols:"1",disabled:e.posting&&!e.optimisticPosting,class:(0,i.C_)(["form-post-body",{"scrollable-form":!!e.maxHeight}]),onKeydown:[t[8]||(t[8]=(0,o.D2)((0,o.iM)((function(t){return e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["exact"]),["enter"])),t[9]||(t[9]=(0,o.D2)((0,o.iM)((function(t){return e.postStatus(t,e.newStatus)}),["meta"]),["enter"])),t[10]||(t[10]=(0,o.D2)((0,o.iM)((function(t){return!e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["ctrl"]),["enter"]))],onInput:t[11]||(t[11]=function(){return e.resize&&e.resize.apply(e,arguments)}),onCompositionupdate:t[12]||(t[12]=function(){return e.resize&&e.resize.apply(e,arguments)}),onPaste:t[13]||(t[13]=function(){return e.paste&&e.paste.apply(e,arguments)})},null,42,_),[[o.nr,e.newStatus.status]]),e.hasStatusLengthLimit?((0,r.wg)(),(0,r.iD)("p",{key:0,class:(0,i.C_)(["character-counter faint",{error:e.isOverLengthLimit}])},(0,i.zw)(e.charactersLeft),3)):(0,r.kq)("",!0)]})),_:1},8,["modelValue","suggest","placement","newline-on-ctrl-enter","onInput","onStickerUploaded","onStickerUploadFailed","onShown"]),e.disableScopeSelector?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",k,[e.disableVisibilitySelector?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(Z,{key:0,"show-all":e.showAllScopes,"user-default":e.userDefaultScope,"original-scope":e.copyMessageScope,"initial-scope":e.newStatus.visibility,"on-scope-change":e.changeVis},null,8,["show-all","user-default","original-scope","initial-scope","on-scope-change"])),e.postFormats.length>1?((0,r.wg)(),(0,r.iD)("div",S,[(0,r.Wm)(W,{id:"post-content-type",modelValue:e.newStatus.contentType,"onUpdate:modelValue":t[15]||(t[15]=function(t){return e.newStatus.contentType=t}),class:"form-control"},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.postFormats,(function(t){return(0,r.wg)(),(0,r.iD)("option",{key:t,value:t},(0,i.zw)(e.$t('post_status.content_type["'.concat(t,'"]'))),9,j)})),128))]})),_:1},8,["modelValue"])])):(0,r.kq)("",!0),1===e.postFormats.length&&"text/plain"!==e.postFormats[0]?((0,r.wg)(),(0,r.iD)("div",O,[(0,r._)("span",C,(0,i.zw)(e.$t('post_status.content_type["'.concat(e.postFormats[0],'"]'))),1)])):(0,r.kq)("",!0)]))]),e.pollsAvailable?((0,r.wg)(),(0,r.j4)(B,{key:0,ref:"pollForm",visible:e.pollFormVisible,onUpdatePoll:e.setPoll},null,8,["visible","onUpdatePoll"])):(0,r.kq)("",!0),(0,r._)("div",P,[(0,r._)("div",z,[(0,r.Wm)(H,{ref:"mediaUpload",class:"media-upload-icon","drop-files":e.dropFiles,disabled:e.uploadFileLimitReached,onUploading:e.startedUploadingFiles,onUploaded:e.addMediaFile,onUploadFailed:e.uploadFailed,onAllUploaded:e.finishedUploadingFiles},null,8,["drop-files","disabled","onUploading","onUploaded","onUploadFailed","onAllUploaded"]),(0,r._)("button",{class:"emoji-icon button-unstyled",title:e.$t("emoji.add_emoji"),onClick:t[16]||(t[16]=function(){return e.showEmojiPicker&&e.showEmojiPicker.apply(e,arguments)})},[(0,r.Wm)(R,{icon:"smile-beam"})],8,I),e.pollsAvailable?((0,r.wg)(),(0,r.iD)("button",{key:0,class:(0,i.C_)(["poll-icon button-unstyled",{selected:e.pollFormVisible}]),title:e.$t("polls.add_poll"),onClick:t[17]||(t[17]=function(){return e.togglePollForm&&e.togglePollForm.apply(e,arguments)})},[(0,r.Wm)(R,{icon:"poll-h"})],10,D)):(0,r.kq)("",!0)]),e.posting?((0,r.wg)(),(0,r.iD)("button",x,(0,i.zw)(e.$t("post_status.posting")),1)):e.isOverLengthLimit?((0,r.wg)(),(0,r.iD)("button",T,(0,i.zw)(e.$t("post_status.post")),1)):((0,r.wg)(),(0,r.iD)("button",{key:2,disabled:e.uploadingFiles||e.disableSubmit,class:"btn button-default",onTouchstart:t[18]||(t[18]=(0,o.iM)((function(t){return e.postStatus(t,e.newStatus)}),["stop","prevent"])),onClick:t[19]||(t[19]=(0,o.iM)((function(t){return e.postStatus(t,e.newStatus)}),["stop","prevent"]))},(0,i.zw)(e.$t("post_status.post")),41,$))],512),(0,r.wy)((0,r._)("div",{style:(0,i.j5)({animation:"show"===e.showDropIcon?"fade-in 0.25s":"fade-out 0.5s"}),class:"drop-indicator",onDragleave:t[20]||(t[20]=function(){return e.fileDragStop&&e.fileDragStop.apply(e,arguments)}),onDrop:t[21]||(t[21]=(0,o.iM)((function(){return e.fileDrop&&e.fileDrop.apply(e,arguments)}),["stop"]))},[(0,r.Wm)(R,{icon:e.uploadFileLimitReached?"ban":"upload"},null,8,["icon"])],36),[[o.F8,"hide"!==e.showDropIcon]]),e.error?((0,r.wg)(),(0,r.iD)("div",U,[(0,r.Uk)(" Error: "+(0,i.zw)(e.error)+" ",1),(0,r._)("button",{class:"button-unstyled",onClick:t[22]||(t[22]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,r.Wm)(R,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])):(0,r.kq)("",!0),e.newStatus.files&&e.newStatus.files.length>0?((0,r.wg)(),(0,r.j4)(V,{key:2,class:"attachments",grid:!0,nsfw:!1,attachments:e.newStatus.files,descriptions:e.newStatus.mediaDescriptions,"set-media":function(){return e.$store.dispatch("setMedia",e.newStatus.files)},editable:!0,"edit-attachment":e.editAttachment,"remove-attachment":e.removeMediaFile,"shift-up-attachment":e.newStatus.files.length>1&&e.shiftUpMediaFile,"shift-dn-attachment":e.newStatus.files.length>1&&e.shiftDnMediaFile,onPlay:t[23]||(t[23]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[24]||(t[24]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["attachments","descriptions","set-media","edit-attachment","remove-attachment","shift-up-attachment","shift-dn-attachment"])):(0,r.kq)("",!0),e.newStatus.files.length>0&&!e.disableSensitivityCheckbox?((0,r.wg)(),(0,r.iD)("div",M,[(0,r.Wm)(K,{modelValue:e.newStatus.nsfw,"onUpdate:modelValue":t[25]||(t[25]=function(t){return e.newStatus.nsfw=t})},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,i.zw)(e.$t("post_status.attachments_sensitive")),1)]})),_:1},8,["modelValue"])])):(0,r.kq)("",!0)],32)],512)}]])},99507:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(66252),o=["disabled"];const i={props:{disabled:{type:Boolean},click:{type:Function,default:function(){return Promise.resolve()}}},data:function(){return{progress:!1}},methods:{onClick:function(){var e=this;this.progress=!0,this.click().then((function(){e.progress=!1}))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,r.wg)(),(0,r.iD)("button",{disabled:s.progress||n.disabled,onClick:t[0]||(t[0]=function(){return a.onClick&&a.onClick.apply(a,arguments)})},[s.progress&&e.$slots.progress?(0,r.WI)(e.$slots,"progress",{key:0}):(0,r.WI)(e.$slots,"default",{key:1})],8,o)}]])},72895:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(66252),o=n(3577),i={class:"remote-follow"},s=["action"],a=["value"],c=(0,r._)("input",{type:"hidden",name:"profile",value:""},null,-1),l={click:"submit",class:"button-default remote-button"};const u={props:["user"],computed:{subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")}}},d=(0,n(83744).Z)(u,[["render",function(e,t,n,u,d,p){return(0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("form",{method:"POST",action:e.subscribeUrl},[(0,r._)("input",{type:"hidden",name:"nickname",value:e.user.screen_name},null,8,a),c,(0,r._)("button",l,(0,o.zw)(e.$t("user_card.remote_follow")),1)],8,s)])}]])},4078:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(66252),o=n(3577),i={key:0,class:"ScopeSelector"},s=["title"],a=["title"],c=["title"],l=["title"],u=n(9382),d=n(84131);u.vI.add(d.FU$,d.g4A,d.byT,d._1N);const p={props:["showAll","userDefault","originalScope","initialScope","onScopeChange"],data:function(){return{currentScope:this.initialScope}},computed:{showNothing:function(){return!(this.showPublic||this.showUnlisted||this.showPrivate||this.showDirect)},showPublic:function(){return"direct"!==this.originalScope&&this.shouldShow("public")},showUnlisted:function(){return"direct"!==this.originalScope&&this.shouldShow("unlisted")},showPrivate:function(){return"direct"!==this.originalScope&&this.shouldShow("private")},showDirect:function(){return this.shouldShow("direct")},css:function(){return{public:{selected:"public"===this.currentScope},unlisted:{selected:"unlisted"===this.currentScope},private:{selected:"private"===this.currentScope},direct:{selected:"direct"===this.currentScope}}}},methods:{shouldShow:function(e){return this.showAll||this.currentScope===e||this.originalScope===e||this.userDefault===e||"direct"===e},changeVis:function(e){this.currentScope=e,this.onScopeChange&&this.onScopeChange(e)}}},h=(0,n(83744).Z)(p,[["render",function(e,t,n,u,d,p){var h=(0,r.up)("FAIcon");return e.showNothing?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",i,[e.showDirect?((0,r.wg)(),(0,r.iD)("button",{key:0,class:(0,o.C_)(["button-unstyled scope",e.css.direct]),title:e.$t("post_status.scope.direct"),type:"button",onClick:t[0]||(t[0]=function(t){return e.changeVis("direct")})},[(0,r.Wm)(h,{icon:"envelope",class:"fa-scale-110 fa-old-padding"})],10,s)):(0,r.kq)("",!0),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),e.showPrivate?((0,r.wg)(),(0,r.iD)("button",{key:1,class:(0,o.C_)(["button-unstyled scope",e.css.private]),title:e.$t("post_status.scope.private"),type:"button",onClick:t[1]||(t[1]=function(t){return e.changeVis("private")})},[(0,r.Wm)(h,{icon:"lock",class:"fa-scale-110 fa-old-padding"})],10,a)):(0,r.kq)("",!0),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),e.showUnlisted?((0,r.wg)(),(0,r.iD)("button",{key:2,class:(0,o.C_)(["button-unstyled scope",e.css.unlisted]),title:e.$t("post_status.scope.unlisted"),type:"button",onClick:t[2]||(t[2]=function(t){return e.changeVis("unlisted")})},[(0,r.Wm)(h,{icon:"lock-open",class:"fa-scale-110 fa-old-padding"})],10,c)):(0,r.kq)("",!0),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),e.showPublic?((0,r.wg)(),(0,r.iD)("button",{key:3,class:(0,o.C_)(["button-unstyled scope",e.css.public]),title:e.$t("post_status.scope.public"),type:"button",onClick:t[3]||(t[3]=function(t){return e.changeVis("public")})},[(0,r.Wm)(h,{icon:"globe",class:"fa-scale-110 fa-old-padding"})],10,l)):(0,r.kq)("",!0)]))}]])},44313:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(66252),o=n(3577),i=["disabled","value"],s=n(9382),a=n(84131);s.vI.add(a.ptq);const c={emits:["update:modelValue"],props:["modelValue","disabled","unstyled","kind"]},l=(0,n(83744).Z)(c,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("label",{class:(0,o.C_)(["Select input",{disabled:e.disabled,unstyled:e.unstyled}])},[(0,r._)("select",{disabled:e.disabled,value:e.modelValue,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.value)})},[(0,r.WI)(e.$slots,"default")],40,i),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r.Wm)(l,{class:"select-down-icon",icon:"chevron-down"})],2)}]])},87482:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Qt});var r=n(66252),o=n(3577),i=n(49963),s={key:0,class:"alert error"},a={key:1,class:"status-container muted"},c={class:"status-username"},l={key:0,class:"mute-thread"},u={key:1,class:"mute-thread"},d=["title"],p={key:0,class:"pin"},h={class:"faint"},m={class:"right-side faint"},f=["title"],g=["data-tags"],v={key:0,class:"left-side"},w=["href"],b={class:"right-side"},y={key:0,class:"status-heading"},_={class:"heading-name-row"},k={class:"heading-left"},S=["title"],j=["title"],O=["src"],C={class:"heading-right"},P=["title"],z=["title"],I=["title","aria-expanded"],D=["title"],x={key:0,class:"heading-reply-row"},T={key:0,class:"glued-label reply-glued-label"},$=["aria-label"],U={class:"reply-to-text"},M={key:1,class:"reply-to-no-popover"},A={class:"reply-to-text"},L={key:1,class:"glued-label"},E=["aria-label"],F={class:"mentions-text"},R={key:1,class:"heading-edited-row"},N={key:1,class:"replies"},q=["title"],Z={key:1,class:"faint"},W=["onClick"],B={key:0,class:"favs-repeated-users"},H={class:"stats"},V={class:"stat-count"},K={class:"stat-title"},G={class:"stat-number"},Y={class:"stat-count"},J={class:"stat-title"},Q={class:"stat-number"},X={class:"avatar-row"},ee={key:3,class:"status-actions"},te={key:3,class:"gravestone"},ne={class:"left-side"},re={class:"right-side"},oe={class:"deleted-text"},ie={key:4,class:"status-container reply-form"},se=n(4942),ae=n(45578),ce=n.n(ae),le=n(27955),ue=n.n(le),de={class:"ReplyButton"},pe=["title"],he=["href"],me={key:2,class:"action-counter"},fe=n(9382),ge=n(84131);fe.vI.add(ge.Lh7,ge.r8p,ge.NBC);const ve={name:"ReplyButton",props:["status","replying"],computed:{loggedIn:function(){return!!this.$store.state.users.currentUser},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}}};var we=n(83744);const be=(0,we.Z)(ve,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("FAIcon"),u=(0,r.up)("FALayers");return(0,r.wg)(),(0,r.iD)("div",de,[e.loggedIn?((0,r.wg)(),(0,r.iD)("button",{key:0,class:(0,o.C_)(["button-unstyled interactive",{"-active":e.replying}]),title:e.$t("tool_tip.reply"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("toggle")}),["prevent"]))},[(0,r.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,r.w5)((function(){return[(0,r.Wm)(l,{class:"fa-scale-110",icon:"reply"}),e.replying?((0,r.wg)(),(0,r.j4)(l,{key:1,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"times"})):((0,r.wg)(),(0,r.j4)(l,{key:0,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"plus"}))]})),_:1})],10,pe)):((0,r.wg)(),(0,r.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",href:e.remoteInteractionLink},[(0,r.Wm)(l,{icon:"reply",class:"fa-scale-110 fa-old-padding",title:e.$t("tool_tip.reply")},null,8,["title"])],8,he)),e.status.replies_count>0?((0,r.wg)(),(0,r.iD)("span",me,(0,o.zw)(e.status.replies_count),1)):(0,r.kq)("",!0)])}]]);var ye={class:"FavoriteButton"},_e=["title"],ke=["href"],Se={key:2,class:"action-counter"},je=n(989),Oe=n(5737);function Ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ce(Object(n),!0).forEach((function(t){(0,se.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ce(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}fe.vI.add(ge.Tab,Oe.Tab,ge.r8p,ge.Kl4,ge.LEp);const ze={props:["status","loggedIn"],data:function(){return{animated:!1}},methods:{favorite:function(){var e=this;this.status.favorited?this.$store.dispatch("unfavorite",{id:this.status.id}):this.$store.dispatch("favorite",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500)}},computed:Pe(Pe({},(0,je.Se)(["mergedConfig"])),{},{remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}})},Ie=(0,we.Z)(ze,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("FAIcon"),u=(0,r.up)("FALayers");return(0,r.wg)(),(0,r.iD)("div",ye,[e.loggedIn?((0,r.wg)(),(0,r.iD)("button",{key:0,class:(0,o.C_)(["button-unstyled interactive",e.status.favorited&&"-favorited"]),title:e.$t("tool_tip.favorite"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.favorite()}),["prevent"]))},[(0,r.Wm)(u,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,r.w5)((function(){return[(0,r.Wm)(l,{class:"fa-scale-110",icon:[e.status.favorited?"fas":"far","star"],spin:e.animated},null,8,["icon","spin"]),e.status.favorited?((0,r.wg)(),(0,r.j4)(l,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,r.kq)("",!0),e.status.favorited?((0,r.wg)(),(0,r.j4)(l,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,r.wg)(),(0,r.j4)(l,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,_e)):((0,r.wg)(),(0,r.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",href:e.remoteInteractionLink},[(0,r.Wm)(l,{class:"fa-scale-110 fa-old-padding",title:e.$t("tool_tip.favorite"),icon:["far","star"]},null,8,["title"])],8,ke)),!e.mergedConfig.hidePostStats&&e.status.fave_num>0?((0,r.wg)(),(0,r.iD)("span",Se,(0,o.zw)(e.status.fave_num),1)):(0,r.kq)("",!0)])}]]);var De={class:"reaction-picker-filter"},xe=["placeholder"],Te={class:"reaction-picker"},$e=["title","onClick"],Ue=(0,r._)("div",{class:"reaction-picker-divider"},null,-1),Me=["title","onClick"],Ae=(0,r._)("div",{class:"reaction-bottom-fader"},null,-1),Le=["title"],Ee=n(71002),Fe=n(93433),Re=n(92742),Ne=n.n(Re),qe=n(49874),Ze=n(8312);function We(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Be(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Be(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function Be(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}fe.vI.add(ge.r8p,ge.NBC,Oe.RKn);const He={props:["status"],data:function(){return{filterWord:"",expanded:!1}},components:{Popover:qe.default},methods:{addReaction:function(e,t,n){var r=this.status.emoji_reactions.find((function(e){return e.name===t}));r&&r.me?this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:t}):this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:t}),n()},onShow:function(){this.expanded=!0,this.focusInput()},onClose:function(){this.expanded=!1},focusInput:function(){var e=this;this.$nextTick((function(){var t=e.$el.querySelector("input");t&&t.focus()}))},maybeLocalizedEmojiNamesAndKeywords:function(e){var t=[e.displayText],n=[];return e.displayTextI18n&&t.push(this.$t(e.displayTextI18n.key,e.displayTextI18n.args)),e.annotations&&this.languages.forEach((function(r){var o,i;t.push(null===(o=e.annotations[r])||void 0===o?void 0:o.name),n.push.apply(n,(0,Fe.Z)((null===(i=e.annotations[r])||void 0===i?void 0:i.keywords)||[]))})),{names:t.filter((function(e){return e})),keywords:n.filter((function(e){return e}))}},maybeLocalizedEmojiName:function(e){if(!e.annotations)return e.displayText;if(e.displayTextI18n)return this.$t(e.displayTextI18n.key,e.displayTextI18n.args);var t,n=We(this.languages);try{for(n.s();!(t=n.n()).done;){var r,o=t.value;if(null!==(r=e.annotations[o])&&void 0!==r&&r.name)return e.annotations[o].name}}catch(e){n.e(e)}finally{n.f()}return e.displayText}},computed:{commonEmojis:function(){var e=new Set(["👍","😠","👀","😂","🔥"]);return this.$store.getters.standardEmojiList.filter((function(t){return e.has(t.replacement)}))},languages:function(){return(0,Ze.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},emojis:function(){var e=this;if(""!==this.filterWord){var t=function(){var t,n=Ne()(e.filterWord.toLowerCase()),r=[],o=We(e.$store.getters.standardEmojiList);try{for(o.s();!(t=o.n()).done;){var i=t.value,s=e.maybeLocalizedEmojiNamesAndKeywords(i).keywords.map((function(e){return e.toLowerCase().indexOf(n)})).filter((function(e){return e>-1})),a=s.length?Math.min.apply(Math,(0,Fe.Z)(s)):-1;a>-1&&(Array.isArray(r[a])||(r[a]=[]),r[a].push(i))}}catch(e){o.e(e)}finally{o.f()}return{v:r.flat()}}();if("object"===(0,Ee.Z)(t))return t.v}return this.$store.getters.standardEmojiList||[]},mergedConfig:function(){return this.$store.getters.mergedConfig}}},Ve=(0,we.Z)(He,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("FAIcon"),u=(0,r.up)("FALayers"),d=(0,r.up)("Popover");return(0,r.wg)(),(0,r.j4)(d,{trigger:"click",class:"ReactButton",placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":"","popover-class":"ReactButton popover-default",onShow:e.onShow,onClose:e.onClose},{content:(0,r.w5)((function(n){var s=n.close;return[(0,r._)("div",De,[(0,r.wy)((0,r._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.filterWord=t}),size:"1",placeholder:e.$t("emoji.search_emoji"),onInput:t[1]||(t[1]=function(e){return e.target.composing=!1})},null,40,xe),[[i.nr,e.filterWord]])]),(0,r._)("div",Te,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.commonEmojis,(function(t){return(0,r.wg)(),(0,r.iD)("span",{key:t.replacement,class:"emoji-button",title:e.maybeLocalizedEmojiName(t),onClick:function(n){return e.addReaction(n,t.replacement,s)}},(0,o.zw)(t.replacement),9,$e)})),128)),Ue,((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.emojis,(function(t,n){return(0,r.wg)(),(0,r.iD)("span",{key:n,class:"emoji-button",title:e.maybeLocalizedEmojiName(t),onClick:function(n){return e.addReaction(n,t.replacement,s)}},(0,o.zw)(t.replacement),9,Me)})),128)),Ae])]})),trigger:(0,r.w5)((function(){return[(0,r._)("span",{class:"button-unstyled popover-trigger",title:e.$t("tool_tip.add_reaction")},[(0,r.Wm)(u,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(l,{class:"fa-scale-110 fa-old-padding",icon:["far","smile-beam"]}),(0,r.wy)((0,r.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,r.wy)((0,r.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})],8,Le)]})),_:1},8,["onShow","onClose"])}]]);var Ke={class:"RetweetButton"},Ge=["title"],Ye={key:1},Je=["href"],Qe={key:3,class:"no-event"};fe.vI.add(ge.x5v,ge.r8p,ge.Kl4,ge.LEp);const Xe={props:["status","loggedIn","visibility"],data:function(){return{animated:!1}},methods:{retweet:function(){var e=this;this.status.repeated?this.$store.dispatch("unretweet",{id:this.status.id}):this.$store.dispatch("retweet",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500)}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}}},et=(0,we.Z)(Xe,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("FAIcon"),u=(0,r.up)("FALayers");return(0,r.wg)(),(0,r.iD)("div",Ke,["private"!==e.visibility&&"direct"!==e.visibility&&e.loggedIn?((0,r.wg)(),(0,r.iD)("button",{key:0,class:(0,o.C_)(["button-unstyled interactive",e.status.repeated&&"-repeated"]),title:e.$t("tool_tip.repeat"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.retweet()}),["prevent"]))},[(0,r.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,r.w5)((function(){return[(0,r.Wm)(l,{class:"fa-scale-110",icon:"retweet",spin:e.animated},null,8,["spin"]),e.status.repeated?((0,r.wg)(),(0,r.j4)(l,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,r.kq)("",!0),e.status.repeated?((0,r.wg)(),(0,r.j4)(l,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,r.wg)(),(0,r.j4)(l,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,Ge)):e.loggedIn?((0,r.wg)(),(0,r.iD)("span",Ye,[(0,r.Wm)(l,{class:"fa-scale-110 fa-old-padding",icon:"lock",title:e.$t("timeline.no_retweet_hint")},null,8,["title"])])):((0,r.wg)(),(0,r.iD)("a",{key:2,class:"button-unstyled interactive",target:"_blank",role:"button",href:e.remoteInteractionLink},[(0,r.Wm)(l,{class:"fa-scale-110 fa-old-padding",icon:"retweet",title:e.$t("tool_tip.repeat")},null,8,["title"])],8,Je)),!e.mergedConfig.hidePostStats&&e.status.repeat_num>0?((0,r.wg)(),(0,r.iD)("span",Qe,(0,o.zw)(e.status.repeat_num),1)):(0,r.kq)("",!0)])}]]);var tt={class:"dropdown-menu"},nt=["onClick"],rt=["onClick"],ot=["onClick"],it=["onClick"],st=["onClick"],at=["onClick"],ct=["onClick"],lt=["onClick"],ut=["href"],dt=["onClick"],pt={class:"button-unstyled popover-trigger"};function ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}fe.vI.add(ge.cNd,ge.xVw,Oe.xVw,ge.Aq,ge.RP7,ge.EfQ,ge.Xjp,Oe.RrC,ge.qO$,ge.r8p,ge.NBC);const mt={props:["status"],components:{Popover:qe.default},data:function(){return{expanded:!1}},methods:{onShow:function(){this.expanded=!0},onClose:function(){this.expanded=!1},deleteStatus:function(){window.confirm(this.$t("status.delete_confirm"))&&this.$store.dispatch("deleteStatus",{id:this.status.id})},pinStatus:function(){var e=this;this.$store.dispatch("pinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unpinStatus:function(){var e=this;this.$store.dispatch("unpinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},muteConversation:function(){var e=this;this.$store.dispatch("muteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unmuteConversation:function(){var e=this;this.$store.dispatch("unmuteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},copyLink:function(){var e=this;navigator.clipboard.writeText(this.statusLink).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},bookmarkStatus:function(){var e=this;this.$store.dispatch("bookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unbookmarkStatus:function(){var e=this;this.$store.dispatch("unbookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},reportStatus:function(){this.$store.dispatch("openUserReportingModal",{userId:this.status.user.id,statusIds:[this.status.id]})},editStatus:function(){var e=this;this.$store.dispatch("fetchStatusSource",{id:this.status.id}).then((function(t){return e.$store.dispatch("openEditStatusModal",{statusId:e.status.id,subject:t.spoiler_text,statusText:t.text,statusIsSensitive:e.status.nsfw,statusPoll:e.status.poll,statusFiles:(0,Fe.Z)(e.status.attachments),visibility:e.status.visibility,statusContentType:t.content_type})}))},showStatusHistory:function(){var e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(n),!0).forEach((function(t){(0,se.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},this.status);["attachments","created_at","emojis","text","raw_html","nsfw","poll","summary","summary_raw_html"].forEach((function(t){return delete e[t]})),this.$store.dispatch("openStatusHistoryModal",e)}},computed:{currentUser:function(){return this.$store.state.users.currentUser},canDelete:function(){if(this.currentUser)return this.currentUser.privileges.includes("messages_delete")||this.status.user.id===this.currentUser.id},ownStatus:function(){return this.status.user.id===this.currentUser.id},canPin:function(){return this.ownStatus&&("public"===this.status.visibility||"unlisted"===this.status.visibility)},canMute:function(){return!!this.currentUser},canBookmark:function(){return!!this.currentUser},statusLink:function(){return"".concat(this.$store.state.instance.server).concat(this.$router.resolve({name:"conversation",params:{id:this.status.id}}).href)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable}}},ft=(0,we.Z)(mt,[["render",function(e,t,n,s,a,c){var l=(0,r.up)("FAIcon"),u=(0,r.up)("FALayers"),d=(0,r.up)("Popover");return(0,r.wg)(),(0,r.j4)(d,{class:"ExtraButtons",trigger:"click",placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":"",onShow:e.onShow,onClose:e.onClose},{content:(0,r.w5)((function(n){var s=n.close;return[(0,r._)("div",tt,[e.canMute&&!e.status.thread_muted?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.muteConversation&&e.muteConversation.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(l,{"fixed-width":"",icon:"eye-slash"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.mute_conversation")),1)])):(0,r.kq)("",!0),e.canMute&&e.status.thread_muted?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.unmuteConversation&&e.unmuteConversation.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(l,{"fixed-width":"",icon:"eye-slash"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.unmute_conversation")),1)])):(0,r.kq)("",!0),!e.status.pinned&&e.canPin?((0,r.wg)(),(0,r.iD)("button",{key:2,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[2]||(t[2]=(0,i.iM)((function(){return e.pinStatus&&e.pinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:"thumbtack"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.pin")),1)],8,nt)):(0,r.kq)("",!0),e.status.pinned&&e.canPin?((0,r.wg)(),(0,r.iD)("button",{key:3,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[3]||(t[3]=(0,i.iM)((function(){return e.unpinStatus&&e.unpinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:"thumbtack"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.unpin")),1)],8,rt)):(0,r.kq)("",!0),e.canBookmark?((0,r.wg)(),(0,r.iD)(r.HY,{key:4},[e.status.bookmarked?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[4]||(t[4]=(0,i.iM)((function(){return e.bookmarkStatus&&e.bookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:["far","bookmark"]}),(0,r._)("span",null,(0,o.zw)(e.$t("status.bookmark")),1)],8,ot)),e.status.bookmarked?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[5]||(t[5]=(0,i.iM)((function(){return e.unbookmarkStatus&&e.unbookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:"bookmark"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.unbookmark")),1)],8,it)):(0,r.kq)("",!0)],64)):(0,r.kq)("",!0),e.ownStatus&&e.editingAvailable?((0,r.wg)(),(0,r.iD)("button",{key:5,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[6]||(t[6]=(0,i.iM)((function(){return e.editStatus&&e.editStatus.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:"pen"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.edit")),1)],8,st)):(0,r.kq)("",!0),e.isEdited&&e.editingAvailable?((0,r.wg)(),(0,r.iD)("button",{key:6,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[7]||(t[7]=(0,i.iM)((function(){return e.showStatusHistory&&e.showStatusHistory.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:"history"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.status_history")),1)],8,at)):(0,r.kq)("",!0),e.canDelete?((0,r.wg)(),(0,r.iD)("button",{key:7,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[8]||(t[8]=(0,i.iM)((function(){return e.deleteStatus&&e.deleteStatus.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:"times"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.delete")),1)],8,ct)):(0,r.kq)("",!0),(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[9]||(t[9]=(0,i.iM)((function(){return e.copyLink&&e.copyLink.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:"share-alt"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.copy_link")),1)],8,lt),e.status.is_local?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("a",{key:8,class:"button-default dropdown-item dropdown-item-icon",title:"Source",href:e.status.external_url,target:"_blank"},[(0,r.Wm)(l,{"fixed-width":"",icon:"external-link-alt"}),(0,r._)("span",null,(0,o.zw)(e.$t("status.external_source")),1)],8,ut)),(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[10]||(t[10]=(0,i.iM)((function(){return e.reportStatus&&e.reportStatus.apply(e,arguments)}),["prevent"])),s]},[(0,r.Wm)(l,{"fixed-width":"",icon:["far","flag"]}),(0,r._)("span",null,(0,o.zw)(e.$t("user_card.report")),1)],8,dt)])]})),trigger:(0,r.w5)((function(){return[(0,r._)("span",pt,[(0,r.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,r.w5)((function(){return[(0,r.Wm)(l,{class:"fa-scale-110",icon:"ellipsis-h"}),(0,r.wy)((0,r.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,r.wy)((0,r.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})])]})),_:1},8,["onShow","onClose"])}]]);var gt=n(33580),vt=n(62312),wt=n(55432),bt=n(1840),yt=n(33288),_t=n(92820),kt={key:1,class:"status-preview-no-content faint"},St={key:2,class:"status-preview-no-content"},jt=n(13311),Ot=n.n(jt);fe.vI.add(ge.IJ7);const Ct={name:"StatusPopover",props:["statusId"],data:function(){return{error:!1}},computed:{status:function(){return Ot()(this.$store.state.statuses.allStatuses,{id:this.statusId})}},components:{Status:(0,r.RC)((function(){return Promise.resolve().then(n.bind(n,87482))})),Popover:(0,r.RC)((function(){return Promise.resolve().then(n.bind(n,49874))}))},methods:{enter:function(){var e=this;if(!this.status){if(!this.statusId)return void(this.error=!0);this.$store.dispatch("fetchStatus",this.statusId).then((function(t){return e.error=!1})).catch((function(t){return e.error=!0}))}}},watch:{status:function(e,t){var n=this;e!==t&&this.$nextTick((function(){return n.$refs.popover.updateStyles()}))}}},Pt=(0,we.Z)(Ct,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("Status"),l=(0,r.up)("FAIcon"),u=(0,r.up)("Popover");return(0,r.wg)(),(0,r.j4)(u,{ref:"popover",trigger:"hover","stay-on-click":!0,"popover-class":"popover-default status-popover","bound-to":{x:"container"},onShow:e.enter},{trigger:(0,r.w5)((function(){return[(0,r.WI)(e.$slots,"default")]})),content:(0,r.w5)((function(){return[e.status?((0,r.wg)(),(0,r.j4)(c,{key:0,"is-preview":!0,statusoid:e.status,compact:!0},null,8,["statusoid"])):e.error?((0,r.wg)(),(0,r.iD)("div",kt,(0,o.zw)(e.$t("status.status_unavailable")),1)):((0,r.wg)(),(0,r.iD)("div",St,[(0,r.Wm)(l,{icon:"circle-notch",spin:"",size:"2x"})]))]})),_:3},8,["onShow"])}]]);var zt=n(78873),It={class:"user-list-popover"},Dt={class:"user-list-names"},xt={class:"user-list-screen-name"},Tt=n(42262);fe.vI.add(ge.IJ7);const $t={name:"UserListPopover",props:["users"],components:{RichContent:_t.Z,UnicodeDomainIndicator:Tt.Z,Popover:(0,r.RC)((function(){return Promise.resolve().then(n.bind(n,49874))})),UserAvatar:(0,r.RC)((function(){return Promise.resolve().then(n.bind(n,62312))}))},computed:{usersCapped:function(){return this.users.slice(0,16)}}},Ut=(0,we.Z)($t,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("UserAvatar"),l=(0,r.up)("RichContent"),u=(0,r.up)("UnicodeDomainIndicator"),d=(0,r.up)("FAIcon"),p=(0,r.up)("Popover");return(0,r.wg)(),(0,r.j4)(p,{trigger:"hover",placement:"top",offset:{y:5}},{trigger:(0,r.w5)((function(){return[(0,r.WI)(e.$slots,"default")]})),content:(0,r.w5)((function(){return[(0,r._)("div",It,[e.users.length?((0,r.wg)(!0),(0,r.iD)(r.HY,{key:0},(0,r.Ko)(e.usersCapped,(function(e){return(0,r.wg)(),(0,r.iD)("div",{key:e.id,class:"user-list-row"},[(0,r.Wm)(c,{user:e,class:"avatar-small",compact:!0},null,8,["user"]),(0,r._)("div",Dt,[(0,r.Wm)(l,{class:"username",title:"@"+e.screen_name_ui,html:e.name_html,emoji:e.emoji},null,8,["title","html","emoji"]),(0,r._)("span",xt,(0,o.zw)(e.screen_name_ui),1),(0,r.Wm)(u,{user:e},null,8,["user"])])])})),128)):((0,r.wg)(),(0,r.j4)(d,{key:1,icon:"circle-notch",spin:"",size:"3x"}))])]})),_:3})}]]);var Mt={class:"EmojiReactions"},At=["onClick"],Lt={class:"reaction-emoji"};const Et={name:"EmojiReactions",components:{UserAvatar:vt.default,UserListPopover:Ut},props:["status"],data:function(){return{showAll:!1}},computed:{tooManyReactions:function(){return this.status.emoji_reactions.length>12},emojiReactions:function(){return this.showAll?this.status.emoji_reactions:this.status.emoji_reactions.slice(0,12)},showMoreString:function(){return"+".concat(this.status.emoji_reactions.length-12)},accountsForEmoji:function(){return this.status.emoji_reactions.reduce((function(e,t){return e[t.name]=t.accounts||[],e}),{})},loggedIn:function(){return!!this.$store.state.users.currentUser}},methods:{toggleShowAll:function(){this.showAll=!this.showAll},reactedWith:function(e){return this.status.emoji_reactions.find((function(t){return t.name===e})).me},fetchEmojiReactionsByIfMissing:function(){this.status.emoji_reactions.find((function(e){return!e.accounts}))&&this.$store.dispatch("fetchEmojiReactionsBy",this.status.id)},reactWith:function(e){this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:e})},unreact:function(e){this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:e})},emojiOnClick:function(e,t){this.loggedIn&&(this.reactedWith(e)?this.unreact(e):this.reactWith(e))}}},Ft=(0,we.Z)(Et,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("UserListPopover");return(0,r.wg)(),(0,r.iD)("div",Mt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.emojiReactions,(function(n){return(0,r.wg)(),(0,r.j4)(c,{key:n.name,users:e.accountsForEmoji[n.name]},{default:(0,r.w5)((function(){return[(0,r._)("button",{class:(0,o.C_)(["emoji-reaction btn button-default",{"-picked-reaction":e.reactedWith(n.name),"not-clickable":!e.loggedIn}]),onClick:function(t){return e.emojiOnClick(n.name,t)},onMouseenter:t[0]||(t[0]=function(t){return e.fetchEmojiReactionsByIfMissing()})},[(0,r._)("span",Lt,(0,o.zw)(n.name),1),(0,r._)("span",null,(0,o.zw)(n.count),1)],42,At)]})),_:2},1032,["users"])})),128)),e.tooManyReactions?((0,r.wg)(),(0,r.iD)("a",{key:0,class:"emoji-reaction-expand faint",href:"javascript:void(0)",onClick:t[1]||(t[1]=function(){return e.toggleShowAll&&e.toggleShowAll.apply(e,arguments)})},(0,o.zw)(e.showAll?e.$t("general.show_less"):e.showMoreString),1)):(0,r.kq)("",!0)])}]]);var Rt=n(12061),Nt=n(21268),qt=n(20460),Zt=n(4493),Wt=n(95052),Bt=n(67828);function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(n),!0).forEach((function(t){(0,se.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}fe.vI.add(ge.FU$,ge.g4A,ge.byT,ge._1N,ge.NBC,ge.x5v,ge.Lh7,ge.CPW,ge.Tab,ge.RKn,ge.cNd,ge.Aq,ge.Mdf,ge.RP7,ge.mTx,ge.ptq,ge.cLY);var Kt,Gt=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Yt=function(e,t,n){var r=Gt(t),o="controlledSet".concat(r),i="uncontrolled".concat(r);e[o]?e[o](n):e[i]=n};const Jt={name:"Status",components:{ReplyButton:be,FavoriteButton:Ie,ReactButton:Ve,RetweetButton:et,ExtraButtons:ft,PostStatusForm:gt.Z,UserAvatar:vt.default,AvatarList:wt.Z,Timeago:bt.Z,StatusPopover:Pt,UserListPopover:Ut,EmojiReactions:Ft,StatusContent:yt.Z,RichContent:_t.Z,MentionLink:qt.Z,MentionsLine:Nt.Z,UserPopover:zt.default,UserLink:Rt.Z},props:["statusoid","expandable","inConversation","focused","highlight","compact","replies","isPreview","noHeading","inlineExpanded","showPinned","inProfile","profileUserId","simpleTree","controlledThreadDisplayStatus","controlledToggleThreadDisplay","showOtherRepliesAsButton","controlledShowingTall","controlledToggleShowingTall","controlledExpandingSubject","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject","controlledReplying","controlledToggleReplying","controlledMediaPlaying","controlledSetMediaPlaying","dive"],data:function(){return{uncontrolledReplying:!1,unmuted:!1,userExpanded:!1,uncontrolledMediaPlaying:[],suspendable:!0,error:null,headTailLinks:null}},computed:Vt(Vt({},(Kt=["replying","mediaPlaying"],Kt.reduce((function(e,t){var n=Gt(t),r="controlledToggle".concat(n),o="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[r]&&void 0===this.$props[r]||!this[r]?this[i]:this[o]},e}),{}))),{},{muteWords:function(){return this.mergedConfig.muteWords},showReasonMutedThread:function(){return(this.status.thread_muted||this.status.reblog&&this.status.reblog.thread_muted)&&!this.inConversation},repeaterClass:function(){var e=this.statusoid.user;return(0,Wt.M)(e)},userClass:function(){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user;return(0,Wt.M)(e)},deleted:function(){return this.statusoid.deleted},repeaterStyle:function(){var e=this.statusoid.user,t=this.mergedConfig.highlight;return(0,Wt.q)(t[e.screen_name])},userStyle:function(){if(!this.noHeading){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user,t=this.mergedConfig.highlight;return(0,Wt.q)(t[e.screen_name])}},userProfileLink:function(){return this.generateUserProfileLink(this.status.user.id,this.status.user.screen_name)},replyProfileLink:function(){if(this.isReply){var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e?e.statusnet_profile_url:"NOT_FOUND"}},retweet:function(){return!!this.statusoid.retweeted_status},retweeterUser:function(){return this.statusoid.user},retweeter:function(){return this.statusoid.user.name||this.statusoid.user.screen_name_ui},retweeterHtml:function(){return this.statusoid.user.name},retweeterProfileLink:function(){return this.generateUserProfileLink(this.statusoid.user.id,this.statusoid.user.screen_name)},status:function(){return this.retweet?this.statusoid.retweeted_status:this.statusoid},statusFromGlobalRepository:function(){return this.$store.state.statuses.allStatusesObject[this.status.id]},loggedIn:function(){return!!this.currentUser},muteWordHits:function(){return(0,Bt.u)(this.status,this.muteWords)},rtBotStatus:function(){return this.statusoid.user.bot},botStatus:function(){return this.status.user.bot},botIndicator:function(){return this.botStatus&&!this.hideBotIndication},rtBotIndicator:function(){return this.rtBotStatus&&!this.hideBotIndication},mentionsLine:function(){var e=this;if(!this.headTailLinks)return[];var t=new Set(this.headTailLinks.writtenMentions.map((function(e){return e.url})));return this.status.attentions.filter((function(n){return n.id!==e.status.in_reply_to_user_id&&n.statusnet_profile_url!==e.status.user.statusnet_profile_url&&!t.has(n.statusnet_profile_url)})).map((function(e){return{url:e.statusnet_profile_url,content:e.screen_name,userId:e.id}}))},hasMentionsLine:function(){return this.mentionsLine.length>0},muted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.userIsMuted||status.thread_muted||this.muteWordHits.length>0||this.muteBotStatuses&&this.botStatus&&!this.compact;return!this.unmuted&&!this.shouldNotMute&&e},userIsMuted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.status,t=e.reblog,n=this.$store.getters.relationship(e.user.id),r=t&&this.$store.getters.relationship(t.user.id);return e.muted||t&&t.muted||n.muting||r&&r.muting},shouldNotMute:function(){var e=this.status,t=e.reblog;return(this.inProfile&&(!t&&e.user.id===this.profileUserId||t&&t.user.id===this.profileUserId)||this.inConversation&&e.thread_muted)&&!this.muteWordHits.length>0},hideMutedUsers:function(){return this.mergedConfig.hideMutedPosts},hideMutedThreads:function(){return this.mergedConfig.hideMutedThreads},hideFilteredStatuses:function(){return this.mergedConfig.hideFilteredStatuses},hideWordFilteredPosts:function(){return this.mergedConfig.hideWordFilteredPosts},hideStatus:function(){return!this.shouldNotMute&&(this.muted&&this.hideFilteredStatuses||this.userIsMuted&&this.hideMutedUsers||this.status.thread_muted&&this.hideMutedThreads||this.muteWordHits.length>0&&this.hideWordFilteredPosts)},isFocused:function(){return!!this.focused||!!this.inConversation&&this.status.id===this.highlight},isReply:function(){return!(!this.status.in_reply_to_status_id||!this.status.in_reply_to_user_id)},replyToName:function(){if(this.status.in_reply_to_screen_name)return this.status.in_reply_to_screen_name;var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e&&e.screen_name_ui},replySubject:function(){if(!this.status.summary)return"";var e=ue()(this.status.summary),t=this.mergedConfig.subjectLineBehavior,n=e.match(/^re[: ]/i);return"noop"!==t&&n||"masto"===t?e:"email"===t?"re: ".concat(e):"noop"===t?"":void 0},combinedFavsAndRepeatsUsers:function(){var e=[].concat(this.statusFromGlobalRepository.favoritedBy,this.statusFromGlobalRepository.rebloggedBy);return ce()(e,"id")},tags:function(){return this.status.tags.filter((function(e){return e.hasOwnProperty("name")})).map((function(e){return e.name})).join(" ")},hidePostStats:function(){return this.mergedConfig.hidePostStats},muteBotStatuses:function(){return this.mergedConfig.muteBotStatuses},hideBotIndication:function(){return this.mergedConfig.hideBotIndication},currentUser:function(){return this.$store.state.users.currentUser},betterShadow:function(){return this.$store.state.interface.browserSupport.cssFilter},mergedConfig:function(){return this.$store.getters.mergedConfig},isSuspendable:function(){return!this.replying&&0===this.mediaPlaying.length},inThreadForest:function(){return!!this.controlledThreadDisplayStatus},threadShowing:function(){return"showing"===this.controlledThreadDisplayStatus},visibilityLocalized:function(){return this.$i18n.t("general.scope_in_timeline."+this.status.visibility)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable}}),methods:{visibilityIcon:function(e){switch(e){case"private":return"lock";case"unlisted":return"lock-open";case"direct":return"envelope";default:return"globe"}},showError:function(e){this.error=e},clearError:function(){this.error=void 0},toggleReplying:function(){var e,t,n,r;e=this,t=Gt("replying"),n="controlledToggle".concat(t),r="uncontrolled".concat(t),e[n]?e[n]():e[r]=!e[r]},gotoOriginal:function(e){this.inConversation&&this.$emit("goto",e)},toggleExpanded:function(){this.$emit("toggleExpanded")},toggleMute:function(){this.unmuted=!this.unmuted},toggleUserExpanded:function(){this.userExpanded=!this.userExpanded},generateUserProfileLink:function(e,t){return(0,Zt.Z)(e,t,this.$store.state.instance.restrictedNicknames)},addMediaPlaying:function(e){Yt(this,"mediaPlaying",this.mediaPlaying.concat(e))},removeMediaPlaying:function(e){Yt(this,"mediaPlaying",this.mediaPlaying.filter((function(t){return t!==e})))},setHeadTailLinks:function(e){this.headTailLinks=e},toggleThreadDisplay:function(){this.controlledToggleThreadDisplay()},scrollIfHighlighted:function(e){var t=e;if(this.status.id===t){var n=this.$el.getBoundingClientRect();n.top<100||n.height>=window.innerHeight-50?window.scrollBy(0,n.top-100):n.bottom>window.innerHeight-50&&window.scrollBy(0,n.bottom-window.innerHeight+50)}}},watch:{highlight:function(e){this.scrollIfHighlighted(e)},"status.repeat_num":function(e){this.isFocused&&this.statusFromGlobalRepository.rebloggedBy&&this.statusFromGlobalRepository.rebloggedBy.length!==e&&this.$store.dispatch("fetchRepeats",this.status.id)},"status.fave_num":function(e){this.isFocused&&this.statusFromGlobalRepository.favoritedBy&&this.statusFromGlobalRepository.favoritedBy.length!==e&&this.$store.dispatch("fetchFavs",this.status.id)},isSuspendable:function(e){this.suspendable=e}}},Qt=(0,we.Z)(Jt,[["render",function(e,t,n,se,ae,ce){var le=(0,r.up)("FAIcon"),ue=(0,r.up)("user-link"),de=(0,r.up)("UserAvatar"),pe=(0,r.up)("RichContent"),he=(0,r.up)("router-link"),me=(0,r.up)("UserPopover"),fe=(0,r.up)("Timeago"),ge=(0,r.up)("StatusPopover"),ve=(0,r.up)("MentionLink"),we=(0,r.up)("MentionsLine"),be=(0,r.up)("i18n-t"),ye=(0,r.up)("StatusContent"),_e=(0,r.up)("UserListPopover"),ke=(0,r.up)("AvatarList"),Se=(0,r.up)("EmojiReactions"),je=(0,r.up)("reply-button"),Oe=(0,r.up)("retweet-button"),Ce=(0,r.up)("favorite-button"),Pe=(0,r.up)("ReactButton"),ze=(0,r.up)("extra-buttons"),Ie=(0,r.up)("PostStatusForm");return e.hideStatus?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",{key:0,ref:"root",class:(0,o.C_)(["Status",[{"-focused":e.isFocused},{"-conversation":e.inlineExpanded}]])},[e.error?((0,r.wg)(),(0,r.iD)("div",s,[(0,r.Uk)((0,o.zw)(e.error)+" ",1),(0,r._)("span",{class:"fa-scale-110 fa-old-padding",onClick:t[0]||(t[0]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,r.Wm)(le,{icon:"times"})])])):(0,r.kq)("",!0),e.muted&&!e.isPreview?((0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("small",c,[e.muted&&e.retweet?((0,r.wg)(),(0,r.j4)(le,{key:0,class:"fa-scale-110 fa-old-padding repeat-icon",icon:"retweet"})):(0,r.kq)("",!0),(0,r.Wm)(ue,{user:e.status.user,at:!1},null,8,["user"])]),e.showReasonMutedThread?((0,r.wg)(),(0,r.iD)("small",l,(0,o.zw)(e.$t("status.thread_muted")),1)):(0,r.kq)("",!0),e.showReasonMutedThread&&e.muteWordHits.length>0?((0,r.wg)(),(0,r.iD)("small",u,(0,o.zw)(e.$t("status.thread_muted_and_words")),1)):(0,r.kq)("",!0),(0,r._)("small",{class:"mute-words",title:e.muteWordHits.join(", ")},(0,o.zw)(e.muteWordHits.join(", ")),9,d),(0,r._)("button",{class:"unmute button-unstyled",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(le,{icon:"eye-slash",class:"fa-scale-110 fa-old-padding"})])])):((0,r.wg)(),(0,r.iD)(r.HY,{key:2},[e.showPinned?((0,r.wg)(),(0,r.iD)("div",p,[(0,r.Wm)(le,{icon:"thumbtack",class:"faint"}),(0,r._)("span",h,(0,o.zw)(e.$t("status.pinned")),1)])):(0,r.kq)("",!0),!e.retweet||e.noHeading||e.inConversation?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",{key:1,class:(0,o.C_)([[e.repeaterClass,{highlighted:e.repeaterStyle}],"status-container repeat-info"]),style:(0,o.j5)([e.repeaterStyle])},[e.retweet?((0,r.wg)(),(0,r.j4)(de,{key:0,class:"left-side repeater-avatar",bot:e.rtBotIndicator,"better-shadow":e.betterShadow,user:e.statusoid.user},null,8,["bot","better-shadow","user"])):(0,r.kq)("",!0),(0,r._)("div",m,[(0,r._)("span",{class:"status-username repeater-name",title:e.retweeter},[e.retweeterHtml?((0,r.wg)(),(0,r.j4)(he,{key:0,to:e.retweeterProfileLink},{default:(0,r.w5)((function(){return[(0,r.Wm)(pe,{html:e.retweeterHtml,emoji:e.retweeterUser.emoji},null,8,["html","emoji"])]})),_:1},8,["to"])):((0,r.wg)(),(0,r.j4)(he,{key:1,to:e.retweeterProfileLink},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.retweeter),1)]})),_:1},8,["to"]))],8,f),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r.Wm)(le,{icon:"retweet",class:"repeat-icon",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,r.Uk)(" "+(0,o.zw)(e.$t("timeline.repeated")),1)])],6)),e.deleted?((0,r.wg)(),(0,r.iD)("div",te,[(0,r._)("div",ne,[(0,r.Wm)(de,{class:"post-avatar",compact:e.compact,bot:e.botIndicator},null,8,["compact","bot"])]),(0,r._)("div",re,[(0,r._)("div",oe,(0,o.zw)(e.$t("status.status_deleted")),1),e.replying?((0,r.wg)(),(0,r.j4)(je,{key:0,replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"])):(0,r.kq)("",!0)])])):((0,r.wg)(),(0,r.iD)("div",{key:2,class:(0,o.C_)([[e.userClass,{highlighted:e.userStyle,"-repeat":e.retweet&&!e.inConversation}],"status-container"]),style:(0,o.j5)([e.userStyle]),"data-tags":e.tags},[e.noHeading?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",v,[(0,r._)("a",{href:e.$router.resolve(e.userProfileLink).href,onClick:t[2]||(t[2]=(0,i.iM)((function(){}),["prevent"]))},[(0,r.Wm)(me,{"user-id":e.status.user.id,"overlay-centers":!0},{default:(0,r.w5)((function(){return[(0,r.Wm)(de,{class:"post-avatar",bot:e.botIndicator,compact:e.compact,"better-shadow":e.betterShadow,user:e.status.user},null,8,["bot","compact","better-shadow","user"])]})),_:1},8,["user-id"])],8,w)])),(0,r._)("div",b,[e.noHeading?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",y,[(0,r._)("div",_,[(0,r._)("div",k,[e.status.user.name_html?((0,r.wg)(),(0,r.iD)("h4",{key:0,class:"status-username",title:e.status.user.name},[(0,r.Wm)(pe,{html:e.status.user.name,emoji:e.status.user.emoji},null,8,["html","emoji"])],8,S)):((0,r.wg)(),(0,r.iD)("h4",{key:1,class:"status-username",title:e.status.user.name},(0,o.zw)(e.status.user.name),9,j)),(0,r.Wm)(ue,{class:"account-name",title:e.status.user.screen_name_ui,user:e.status.user,at:!1},null,8,["title","user"]),e.status.user&&e.status.user.favicon?((0,r.wg)(),(0,r.iD)("img",{key:2,class:"status-favicon",src:e.status.user.favicon},null,8,O)):(0,r.kq)("",!0)]),(0,r._)("span",C,[(0,r.Wm)(he,{class:"timeago faint-link",to:{name:"conversation",params:{id:e.status.id}}},{default:(0,r.w5)((function(){return[(0,r.Wm)(fe,{time:e.status.created_at,"auto-update":60},null,8,["time"])]})),_:1},8,["to"]),e.status.visibility?((0,r.wg)(),(0,r.iD)("span",{key:0,class:"visibility-icon",title:e.visibilityLocalized},[(0,r.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:e.visibilityIcon(e.status.visibility)},null,8,["icon"])],8,P)):(0,r.kq)("",!0),e.expandable&&!e.isPreview?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-unstyled",title:e.$t("status.expand"),onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:"plus-square"})],8,z)):(0,r.kq)("",!0),e.unmuted?((0,r.wg)(),(0,r.iD)("button",{key:2,class:"button-unstyled",onClick:t[4]||(t[4]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(le,{"fixed-width":"",icon:"eye-slash",class:"fa-scale-110"})])):(0,r.kq)("",!0),e.inThreadForest&&e.replies&&e.replies.length&&!e.simpleTree?((0,r.wg)(),(0,r.iD)("button",{key:3,class:"button-unstyled",title:e.threadShowing?e.$t("status.thread_hide"):e.$t("status.thread_show"),"aria-expanded":e.threadShowing?"true":"false",onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleThreadDisplay&&e.toggleThreadDisplay.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:e.threadShowing?"chevron-up":"chevron-down"},null,8,["icon"])],8,I)):(0,r.kq)("",!0),e.dive&&!e.simpleTree?((0,r.wg)(),(0,r.iD)("button",{key:4,class:"button-unstyled",title:e.$t("status.show_only_conversation_under_this"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},[(0,r.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:"angle-double-right"})],8,D)):(0,r.kq)("",!0)])]),e.isReply||e.hasMentionsLine?((0,r.wg)(),(0,r.iD)("div",x,[e.isReply?((0,r.wg)(),(0,r.iD)("span",T,[e.isPreview?((0,r.wg)(),(0,r.iD)("span",M,[(0,r._)("span",A,(0,o.zw)(e.$t("status.reply_to")),1)])):((0,r.wg)(),(0,r.j4)(ge,{key:0,"status-id":e.status.parent_visible&&e.status.in_reply_to_status_id,class:(0,o.C_)(["reply-to-popover",{"-strikethrough":!e.status.parent_visible}]),style:{"min-width":"0"}},{default:(0,r.w5)((function(){return[(0,r._)("button",{class:"button-unstyled reply-to","aria-label":e.$t("tool_tip.reply"),onClick:t[7]||(t[7]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,r.Wm)(le,{class:"fa-scale-110 fa-old-padding",icon:"reply",flip:"horizontal"}),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("span",U,(0,o.zw)(e.$t("status.reply_to")),1)],8,$)]})),_:1},8,["status-id","class"])),(0,r.Wm)(ve,{content:e.replyToName,url:e.replyProfileLink,"user-id":e.status.in_reply_to_user_id,"user-screen-name":e.status.in_reply_to_screen_name},null,8,["content","url","user-id","user-screen-name"])])):(0,r.kq)("",!0),e.hasMentionsLine?((0,r.wg)(),(0,r.iD)("span",L,[(0,r._)("span",{class:"mentions","aria-label":e.$t("tool_tip.mentions"),onClick:t[8]||(t[8]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,r._)("span",F,(0,o.zw)(e.$t("status.mentions")),1)],8,E),e.hasMentionsLine?((0,r.wg)(),(0,r.j4)(we,{key:0,mentions:e.mentionsLine.slice(0,1),class:"mentions-line-first"},null,8,["mentions"])):(0,r.kq)("",!0)])):(0,r.kq)("",!0),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),e.hasMentionsLine?((0,r.wg)(),(0,r.j4)(we,{key:2,mentions:e.mentionsLine.slice(1),class:"mentions-line"},null,8,["mentions"])):(0,r.kq)("",!0)])):(0,r.kq)("",!0),e.isEdited&&e.editingAvailable&&!e.isPreview?((0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(be,{keypath:"status.edited_at",tag:"span"},{time:(0,r.w5)((function(){return[(0,r.Wm)(fe,{"template-key":"time.in_past",time:e.status.edited_at,"auto-update":60,"long-format":!0},null,8,["time"])]})),_:1})])):(0,r.kq)("",!0)])),(0,r.Wm)(ye,{ref:"content",status:e.status,"no-heading":e.noHeading,highlight:e.highlight,focused:e.isFocused,"controlled-showing-tall":e.controlledShowingTall,"controlled-expanding-subject":e.controlledExpandingSubject,"controlled-showing-long-subject":e.controlledShowingLongSubject,"controlled-toggle-showing-tall":e.controlledToggleShowingTall,"controlled-toggle-expanding-subject":e.controlledToggleExpandingSubject,"controlled-toggle-showing-long-subject":e.controlledToggleShowingLongSubject,onMediaplay:t[9]||(t[9]=function(t){return e.addMediaPlaying(t)}),onMediapause:t[10]||(t[10]=function(t){return e.removeMediaPlaying(t)}),onParseReady:e.setHeadTailLinks},null,8,["status","no-heading","highlight","focused","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","onParseReady"]),e.inConversation&&!e.isPreview&&e.replies&&e.replies.length?((0,r.wg)(),(0,r.iD)("div",N,[e.showOtherRepliesAsButton&&e.replies.length>1?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-unstyled -link faint",title:e.$tc("status.ancestor_follow",e.replies.length-1,{numReplies:e.replies.length-1}),onClick:t[11]||(t[11]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},(0,o.zw)(e.$tc("status.replies_list_with_others",e.replies.length-1,{numReplies:e.replies.length-1})),9,q)):((0,r.wg)(),(0,r.iD)("span",Z,(0,o.zw)(e.$t("status.replies_list")),1)),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.replies,(function(t){return(0,r.wg)(),(0,r.j4)(ge,{key:t.id,"status-id":t.id},{default:(0,r.w5)((function(){return[(0,r._)("button",{class:"button-unstyled -link reply-link",onClick:(0,i.iM)((function(n){return e.gotoOriginal(t.id)}),["prevent"])},(0,o.zw)(t.name),9,W)]})),_:2},1032,["status-id"])})),128))])):(0,r.kq)("",!0),(0,r.Wm)(i.uT,{name:"fade"},{default:(0,r.w5)((function(){return[!e.hidePostStats&&e.isFocused&&e.combinedFavsAndRepeatsUsers.length>0?((0,r.wg)(),(0,r.iD)("div",B,[(0,r._)("div",H,[e.statusFromGlobalRepository.rebloggedBy&&e.statusFromGlobalRepository.rebloggedBy.length>0?((0,r.wg)(),(0,r.j4)(_e,{key:0,users:e.statusFromGlobalRepository.rebloggedBy},{default:(0,r.w5)((function(){return[(0,r._)("div",V,[(0,r._)("a",K,(0,o.zw)(e.$t("status.repeats")),1),(0,r._)("div",G,(0,o.zw)(e.statusFromGlobalRepository.rebloggedBy.length),1)])]})),_:1},8,["users"])):(0,r.kq)("",!0),e.statusFromGlobalRepository.favoritedBy&&e.statusFromGlobalRepository.favoritedBy.length>0?((0,r.wg)(),(0,r.j4)(_e,{key:1,users:e.statusFromGlobalRepository.favoritedBy},{default:(0,r.w5)((function(){return[(0,r._)("div",Y,[(0,r._)("a",J,(0,o.zw)(e.$t("status.favorites")),1),(0,r._)("div",Q,(0,o.zw)(e.statusFromGlobalRepository.favoritedBy.length),1)])]})),_:1},8,["users"])):(0,r.kq)("",!0),(0,r._)("div",X,[(0,r.Wm)(ke,{users:e.combinedFavsAndRepeatsUsers},null,8,["users"])])])])):(0,r.kq)("",!0)]})),_:1}),!e.mergedConfig.emojiReactionsOnTimeline&&!e.isFocused||e.noHeading||e.isPreview?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(Se,{key:2,status:e.status},null,8,["status"])),e.noHeading||e.isPreview?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",ee,[(0,r.Wm)(je,{replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"]),(0,r.Wm)(Oe,{visibility:e.status.visibility,"logged-in":e.loggedIn,status:e.status},null,8,["visibility","logged-in","status"]),(0,r.Wm)(Ce,{"logged-in":e.loggedIn,status:e.status},null,8,["logged-in","status"]),e.loggedIn?((0,r.wg)(),(0,r.j4)(Pe,{key:0,status:e.status},null,8,["status"])):(0,r.kq)("",!0),(0,r.Wm)(ze,{status:e.status,onOnError:e.showError,onOnSuccess:e.clearError},null,8,["status","onOnError","onOnSuccess"])]))])],14,g)),e.replying?((0,r.wg)(),(0,r.iD)("div",ie,[(0,r.Wm)(Ie,{class:"reply-body","reply-to":e.status.id,attentions:e.status.attentions,"replied-user":e.status.user,"copy-message-scope":e.status.visibility,subject:e.replySubject,onPosted:e.toggleReplying},null,8,["reply-to","attentions","replied-user","copy-message-scope","subject","onPosted"])])):(0,r.kq)("",!0)],64))],2))}]])},33288:(e,t,n)=>{"use strict";n.d(t,{Z:()=>H});var r=n(66252),o=n(3577),i={key:0},s={key:1},a={key:3,class:"link-preview media-body"},c=n(4942),l=n(74722),u=["title"],d={class:"option-result-label"},p={class:"result-percentage"},h=["onClick"],m=["disabled","value"],f=["disabled","value"],g={class:"option-vote"},v={class:"footer faint"},w=["disabled"],b={class:"total"},y=n(35161),_=n.n(y),k=n(84486),S=n.n(k),j=n(1840),O=n(92820);const C={name:"Poll",props:["basePoll","emoji"],components:{Timeago:j.Z,RichContent:O.Z},data:function(){return{loading:!1,choices:[]}},created:function(){this.$store.state.polls.pollsObject[this.pollId]||this.$store.dispatch("mergeOrAddPoll",this.basePoll),this.$store.dispatch("trackPoll",this.pollId)},unmounted:function(){this.$store.dispatch("untrackPoll",this.pollId)},computed:{pollId:function(){return this.basePoll.id},poll:function(){return this.$store.state.polls.pollsObject[this.pollId]||{}},options:function(){return this.poll&&this.poll.options||[]},expiresAt:function(){return this.poll&&this.poll.expires_at||0},expired:function(){return this.poll&&this.poll.expired||!1},loggedIn:function(){return this.$store.state.users.currentUser},showResults:function(){return this.poll.voted||this.expired||!this.loggedIn},totalVotesCount:function(){return this.poll.votes_count},containerClass:function(){return{loading:this.loading}},choiceIndices:function(){return this.choices.map((function(e,t){return e&&t})).filter((function(e){return"number"==typeof e}))},isDisabled:function(){var e=0===this.choiceIndices.length;return this.loading||e}},methods:{percentageForOption:function(e){return 0===this.totalVotesCount?0:Math.round(e/this.totalVotesCount*100)},resultTitle:function(e){return"".concat(e.votes_count,"/").concat(this.totalVotesCount," ").concat(this.$t("polls.votes"))},fetchPoll:function(){this.$store.dispatch("refreshPoll",{id:this.statusId,pollId:this.poll.id})},activateOption:function(e){var t=this.$el.querySelectorAll("input"),n=this.$el.querySelector('input[value="'.concat(e,'"]'));this.poll.multiple?n.checked=!n.checked:(S()(t,(function(e){e.checked=!1})),n.checked=!0),this.choices=_()(t,(function(e){return e.checked}))},optionId:function(e){return"poll".concat(this.poll.id,"-").concat(e)},vote:function(){var e=this;0!==this.choiceIndices.length&&(this.loading=!0,this.$store.dispatch("votePoll",{id:this.statusId,pollId:this.poll.id,choices:this.choiceIndices}).then((function(t){e.loading=!1})))}}};var P=n(83744);const z=(0,P.Z)(C,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("RichContent"),l=(0,r.up)("Timeago"),y=(0,r.up)("i18n-t");return(0,r.wg)(),(0,r.iD)("div",{class:(0,o.C_)(["poll",e.containerClass])},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.options,(function(t,n){return(0,r.wg)(),(0,r.iD)("div",{key:n,class:"poll-option"},[e.showResults?((0,r.wg)(),(0,r.iD)("div",{key:0,title:e.resultTitle(t),class:"option-result"},[(0,r._)("div",d,[(0,r._)("span",p,(0,o.zw)(e.percentageForOption(t.votes_count))+"% ",1),(0,r.Wm)(c,{html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["html","emoji"])]),(0,r._)("div",{class:"result-fill",style:(0,o.j5)({width:"".concat(e.percentageForOption(t.votes_count),"%")})},null,4)],8,u)):((0,r.wg)(),(0,r.iD)("div",{key:1,onClick:function(t){return e.activateOption(n)}},[e.poll.multiple?((0,r.wg)(),(0,r.iD)("input",{key:0,type:"checkbox",disabled:e.loading,value:n},null,8,m)):((0,r.wg)(),(0,r.iD)("input",{key:1,type:"radio",disabled:e.loading,value:n},null,8,f)),(0,r._)("label",g,[(0,r.Wm)(c,{html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["html","emoji"])])],8,h))])})),128)),(0,r._)("div",v,[e.showResults?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:0,class:"btn button-default poll-vote-button",type:"button",disabled:e.isDisabled,onClick:t[0]||(t[0]=function(){return e.vote&&e.vote.apply(e,arguments)})},(0,o.zw)(e.$t("polls.vote")),9,w)),(0,r._)("div",b,["number"==typeof e.poll.voters_count?((0,r.wg)(),(0,r.iD)(r.HY,{key:0},[(0,r.Uk)((0,o.zw)(e.$tc("polls.people_voted_count",e.poll.voters_count,{count:e.poll.voters_count}))+" ·  ",1)],64)):((0,r.wg)(),(0,r.iD)(r.HY,{key:1},[(0,r.Uk)((0,o.zw)(e.$tc("polls.votes_count",e.poll.votes_count,{count:e.poll.votes_count}))+" ·  ",1)],64))]),(0,r._)("span",null,[(0,r.Wm)(y,{scope:"global",keypath:e.expired?"polls.expired":"polls.expires_in"},{default:(0,r.w5)((function(){return[(0,r.Wm)(l,{time:e.expiresAt,"auto-update":60,"now-threshold":0},null,8,["time"])]})),_:1},8,["keypath"])])])],2)}]]);var I=n(99822),D=n(49963),x={class:"body"},T=n(58394),$=n(989),U=n(9382),M=n(84131);function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}U.vI.add(M.gMD,M.Xig,M.VmB,M.nNP,M.Mm7);const L={name:"StatusContent",props:["compact","status","focused","noHeading","fullContent","singleLine","showingTall","expandingSubject","showingLongSubject","toggleShowingTall","toggleExpandingSubject","toggleShowingLongSubject"],data:function(){return{postLength:this.status.text.length,parseReadyDone:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?A(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({localCollapseSubjectDefault:function(){return this.mergedConfig.collapseMessageWithSubject},tallStatus:function(){return!this.singleLine&&!this.compact&&this.status.raw_html.split(/<p|<br/).length+this.postLength/80>20},longSubject:function(){return this.status.summary.length>240},mightHideBecauseSubject:function(){return!!this.status.summary&&this.localCollapseSubjectDefault},mightHideBecauseTall:function(){return this.tallStatus&&!(this.status.summary&&this.localCollapseSubjectDefault)},hideSubjectStatus:function(){return this.mightHideBecauseSubject&&!this.expandingSubject},hideTallStatus:function(){return this.mightHideBecauseTall&&!this.showingTall},showingMore:function(){return this.mightHideBecauseTall&&this.showingTall||this.mightHideBecauseSubject&&this.expandingSubject},attachmentTypes:function(){return this.status.attachments.map((function(e){return T.Z.fileType(e.mimetype)}))}},(0,$.Se)(["mergedConfig"])),components:{RichContent:O.Z},mounted:function(){var e=this;this.status.attentions&&this.status.attentions.forEach((function(t){var n=t.id;e.$store.dispatch("fetchUserIfMissing",n)}))},methods:{onParseReady:function(e){var t=this;if(!this.parseReadyDone){this.parseReadyDone=!0,this.$emit("parseReady",e);var n=e.writtenMentions,r=e.invisibleMentions;n.filter((function(e){return!e.notifying})).forEach((function(e){var n=e.content,r=e.url,o=n.replace(/<[^>]+?>/gi,"");if(o.startsWith("@")){var i=o.slice(1),s=r.replace(/^https?:\/\//,"").replace(/\/.+?$/,"");t.$store.dispatch("fetchUserIfMissing","".concat(i,"@").concat(s))}})),this.postLength=r.reduce((function(e,t){return e-t.textContent.length-1}),this.postLength)}},toggleShowMore:function(){this.mightHideBecauseTall?this.toggleShowingTall():this.mightHideBecauseSubject&&this.toggleExpandingSubject()},generateTagLink:function(e){return"/tag/".concat(e)}}},E=(0,P.Z)(L,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("RichContent"),l=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("div",{class:(0,o.C_)(["StatusBody",{"-compact":e.compact}])},[(0,r._)("div",x,[e.status.summary_raw_html?((0,r.wg)(),(0,r.iD)("div",{key:0,class:(0,o.C_)(["summary-wrapper",{"-tall":e.longSubject&&!e.showingLongSubject}])},[(0,r.Wm)(c,{class:"media-body summary",html:e.status.summary_raw_html,emoji:e.status.emojis},null,8,["html","emoji"]),(0,r.wy)((0,r._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[0]||(t[0]=(0,D.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,o.zw)(e.$t("status.hide_full_subject")),513),[[D.F8,e.longSubject&&e.showingLongSubject]]),(0,r.wy)((0,r._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[1]||(t[1]=(0,D.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,o.zw)(e.$t("status.show_full_subject")),513),[[D.F8,e.longSubject&&!e.showingLongSubject]])],2)):(0,r.kq)("",!0),(0,r._)("div",{class:(0,o.C_)([{"-tall-status":e.hideTallStatus},"text-wrapper"])},[(0,r.wy)((0,r._)("button",{class:(0,o.C_)(["button-unstyled -link tall-status-hider",{"-focused":e.focused}]),onClick:t[2]||(t[2]=(0,D.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,o.zw)(e.$t("general.show_more")),3),[[D.F8,e.hideTallStatus]]),e.hideSubjectStatus||e.singleLine&&e.status.summary_raw_html?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(c,{key:0,class:(0,o.C_)([{"-single-line":e.singleLine},"text media-body"]),html:e.status.raw_html,emoji:e.status.emojis,"handle-links":!0,greentext:e.mergedConfig.greentext,attentions:e.status.attentions,onParseReady:e.onParseReady},null,8,["class","html","emoji","greentext","attentions","onParseReady"])),(0,r.wy)((0,r._)("button",{class:"button-unstyled -link cw-status-hider",onClick:t[3]||(t[3]=(0,D.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},[(0,r.Uk)((0,o.zw)(e.$t("status.show_content"))+" ",1),e.attachmentTypes.includes("image")?((0,r.wg)(),(0,r.j4)(l,{key:0,icon:"image"})):(0,r.kq)("",!0),e.attachmentTypes.includes("video")?((0,r.wg)(),(0,r.j4)(l,{key:1,icon:"video"})):(0,r.kq)("",!0),e.attachmentTypes.includes("audio")?((0,r.wg)(),(0,r.j4)(l,{key:2,icon:"music"})):(0,r.kq)("",!0),e.attachmentTypes.includes("unknown")?((0,r.wg)(),(0,r.j4)(l,{key:3,icon:"file"})):(0,r.kq)("",!0),e.status.poll&&e.status.poll.options?((0,r.wg)(),(0,r.j4)(l,{key:4,icon:"poll-h"})):(0,r.kq)("",!0),e.status.card?((0,r.wg)(),(0,r.j4)(l,{key:5,icon:"link"})):(0,r.kq)("",!0)],512),[[D.F8,e.hideSubjectStatus]]),(0,r.wy)((0,r._)("button",{class:"button-unstyled -link status-unhider",onClick:t[4]||(t[4]=(0,D.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,o.zw)(e.tallStatus?e.$t("general.show_less"):e.$t("status.hide_content")),513),[[D.F8,e.showingMore&&!e.fullContent]])],2)]),e.hideSubjectStatus?(0,r.kq)("",!0):(0,r.WI)(e.$slots,"default",{key:0})],2)}]]);var F=n(87887);function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?R(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}U.vI.add(M.IJ7,M.gMD,M.Xig,M.VmB,M.nNP,M.Mm7);var q,Z=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},W=function(e,t){var n=Z(t),r="controlledToggle".concat(n),o="uncontrolled".concat(n);e[r]?e[r]():e[o]=!e[o]};const B={name:"StatusContent",props:["status","compact","focused","noHeading","fullContent","singleLine","controlledShowingTall","controlledExpandingSubject","controlledToggleShowingTall","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject"],data:function(){return{uncontrolledShowingTall:this.fullContent||this.inConversation&&this.focused,uncontrolledShowingLongSubject:!1,uncontrolledExpandingSubject:!this.$store.getters.mergedConfig.collapseMessageWithSubject}},computed:N(N(N({},(q=["showingTall","expandingSubject","showingLongSubject"],q.reduce((function(e,t){var n=Z(t),r="controlledToggle".concat(n),o="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[r]&&void 0===this.$props[r]||!this[r]?this[i]:this[o]},e}),{}))),{},{hideAttachments:function(){return this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation},nsfwClickthrough:function(){return!(!this.status.nsfw||this.status.summary&&this.localCollapseSubjectDefault)},attachmentSize:function(){return this.compact?"small":this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation||this.status.attachments.length>this.maxThumbnails?"hide":"normal"},maxThumbnails:function(){return this.mergedConfig.maxThumbnails}},(0,$.Se)(["mergedConfig"])),(0,$.rn)({currentUser:function(e){return e.users.currentUser}})),components:{Attachment:l.Z,Poll:z,Gallery:I.Z,LinkPreview:F.Z,StatusBody:E},methods:{toggleShowingTall:function(){W(this,"showingTall")},toggleExpandingSubject:function(){W(this,"expandingSubject")},toggleShowingLongSubject:function(){W(this,"showingLongSubject")},setMedia:function(){var e=this,t="hide"===this.attachmentSize?this.status.attachments:this.galleryAttachments;return function(){return e.$store.dispatch("setMedia",t)}}}},H=(0,P.Z)(B,[["render",function(e,t,n,c,l,u){var d=(0,r.up)("Poll"),p=(0,r.up)("FAIcon"),h=(0,r.up)("gallery"),m=(0,r.up)("link-preview"),f=(0,r.up)("StatusBody");return(0,r.wg)(),(0,r.iD)("div",{class:(0,o.C_)(["StatusContent",{"-compact":e.compact}])},[(0,r.WI)(e.$slots,"header"),(0,r.Wm)(f,{status:e.status,compact:e.compact,"single-line":e.singleLine,"showing-tall":e.showingTall,"expanding-subject":e.expandingSubject,"showing-long-subject":e.showingLongSubject,"toggle-showing-tall":e.toggleShowingTall,"toggle-expanding-subject":e.toggleExpandingSubject,"toggle-showing-long-subject":e.toggleShowingLongSubject,onParseReady:t[2]||(t[2]=function(t){return e.$emit("parseReady",t)})},{default:(0,r.w5)((function(){return[e.status.poll&&e.status.poll.options&&!e.compact?((0,r.wg)(),(0,r.iD)("div",i,[(0,r.Wm)(d,{"base-poll":e.status.poll,emoji:e.status.emojis},null,8,["base-poll","emoji"])])):e.status.poll&&e.status.poll.options&&e.compact?((0,r.wg)(),(0,r.iD)("div",s,[(0,r.Wm)(p,{icon:"poll-h",size:"2x"})])):(0,r.kq)("",!0),0!==e.status.attachments.length?((0,r.wg)(),(0,r.j4)(h,{key:2,class:"attachments media-body",nsfw:e.nsfwClickthrough,attachments:e.status.attachments,limit:e.compact?1:0,size:e.attachmentSize,onPlay:t[0]||(t[0]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[1]||(t[1]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["nsfw","attachments","limit","size"])):(0,r.kq)("",!0),!e.status.card||e.noHeading||e.compact?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",a,[(0,r.Wm)(m,{card:e.status.card,size:e.attachmentSize,nsfw:e.nsfwClickthrough},null,8,["card","size","nsfw"])]))]})),_:1},8,["status","compact","single-line","showing-tall","expanding-subject","showing-long-subject","toggle-showing-tall","toggle-expanding-subject","toggle-showing-long-subject"]),(0,r.WI)(e.$slots,"footer")],2)}]])},19236:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(66252),o=n(3577),i={key:0,ref:"canvas"},s=["alt","title","data-src","src","referrerpolicy"];const a={props:["src","referrerpolicy","mimetype","imageLoadError","imageLoadHandler","alt","height","width","dataSrc"],data:function(){return{realSrc:this.src,stopGifs:this.$store.getters.mergedConfig.stopGifs}},computed:{animated:function(){return!!this.realSrc&&this.stopGifs&&("image/gif"===this.mimetype||this.realSrc.endsWith(".gif"))},style:function(){var e=function(e){return/\d$/.test(e)?e+"px":e};return{height:this.height?e(this.height):null,width:this.width?e(this.width):null}}},methods:{loadLazy:function(){this.dataSrc&&(this.realSrc=this.dataSrc)},onLoad:function(){if(this.realSrc){var e=this.$refs.src;if(e){this.imageLoadHandler&&this.imageLoadHandler(e);var t=this.$refs.canvas;if(t){var n=e.naturalWidth,r=e.naturalHeight;t.width=n,t.height=r,t.getContext("2d").drawImage(e,0,0,n,r)}}}},onError:function(){this.imageLoadError&&this.imageLoadError()}},watch:{src:function(){this.realSrc=this.src},dataSrc:function(){this.$el.removeAttribute("data-loaded")}}},c=(0,n(83744).Z)(a,[["render",function(e,t,n,a,c,l){return(0,r.wg)(),(0,r.iD)("div",{class:(0,o.C_)(["still-image",{animated:e.animated}]),style:(0,o.j5)(e.style)},[e.animated?((0,r.wg)(),(0,r.iD)("canvas",i,null,512)):(0,r.kq)("",!0),((0,r.wg)(),(0,r.iD)("img",{ref:"src",key:e.realSrc,alt:e.alt,title:e.alt,"data-src":e.dataSrc,src:e.realSrc,referrerpolicy:e.referrerpolicy,onLoad:t[0]||(t[0]=function(){return e.onLoad&&e.onLoad.apply(e,arguments)}),onError:t[1]||(t[1]=function(){return e.onError&&e.onError.apply(e,arguments)})},null,40,s)),(0,r.WI)(e.$slots,"default")],6)}]])},1840:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(66252),o=n(3577),i=["datetime","title"],s=n(27483),a=n(39776);const c={name:"Timeago",props:["time","autoUpdate","longFormat","nowThreshold","templateKey"],data:function(){return{relativeTime:{key:"time.now",num:0},interval:null}},computed:{localeDateString:function(){var e=a.Z.internalToBrowserLocale(this.$i18n.locale);return"string"==typeof this.time?new Date(Date.parse(this.time)).toLocaleString(e):this.time.toLocaleString(e)},relativeTimeString:function(){var e=this.$i18n.tc(this.relativeTime.key,this.relativeTime.num,[this.relativeTime.num]);return"string"==typeof this.templateKey&&"time.now"!==this.relativeTime.key?this.$i18n.t(this.templateKey,[e]):e}},watch:{time:function(e,t){t!==e&&(clearTimeout(this.interval),this.refreshRelativeTimeObject())}},created:function(){this.refreshRelativeTimeObject()},unmounted:function(){clearTimeout(this.interval)},methods:{refreshRelativeTimeObject:function(){var e="number"==typeof this.nowThreshold?this.nowThreshold:1;this.relativeTime=this.longFormat?s.GV(this.time,e):s._F(this.time,e),this.autoUpdate&&(this.interval=setTimeout(this.refreshRelativeTimeObject,1e3*this.autoUpdate))}}},l=(0,n(83744).Z)(c,[["render",function(e,t,n,s,a,c){return(0,r.wg)(),(0,r.iD)("time",{datetime:n.time,title:c.localeDateString},(0,o.zw)(c.relativeTimeString),9,i)}]])},42262:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(66252),o=n(9382),i=n(84131);o.vI.add(i.dT$);const s={props:{user:Object}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,o,i,s){var a=(0,r.up)("FAIcon");return e.user&&e.user.screen_name_ui_contains_non_ascii?((0,r.wg)(),(0,r.j4)(a,{key:0,icon:"code",title:e.$t("unicode_domain_indicator.tooltip")},null,8,["title"])):(0,r.kq)("",!0)}]])},62312:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(66252),o=n(3577),i=n(19236),s=n(9382),a=n(84131);s.vI.add(a.VE0);const c={props:["user","betterShadow","compact","bot"],data:function(){return{showPlaceholder:!1,defaultAvatar:"".concat(this.$store.state.instance.server+this.$store.state.instance.defaultAvatar)}},components:{StillImage:i.Z},methods:{imgSrc:function(e){return!e||this.showPlaceholder?this.defaultAvatar:e},imageLoadError:function(){this.showPlaceholder=!0}}},l=(0,n(83744).Z)(c,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("StillImage"),l=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("span",{class:(0,o.C_)(["Avatar",{"-compact":e.compact}])},[e.user?((0,r.wg)(),(0,r.j4)(c,{key:0,class:(0,o.C_)(["avatar",{"-compact":e.compact,"-better-shadow":e.betterShadow}]),alt:e.user.screen_name_ui,title:e.user.screen_name_ui,src:e.imgSrc(e.user.profile_image_url_original),"image-load-error":e.imageLoadError},null,8,["alt","title","src","image-load-error","class"])):((0,r.wg)(),(0,r.iD)("div",{key:1,class:(0,o.C_)(["avatar -placeholder",{"-compact":e.compact}])},null,2)),e.bot?((0,r.wg)(),(0,r.j4)(l,{key:2,icon:"robot",class:"bot-indicator"})):(0,r.kq)("",!0)],2)}]])},27073:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ue});var r=n(66252),o=n(3577),i=n(49963),s={class:"user-info"},a={class:"container"},c={class:"user-info-avatar -link -overlay"},l={class:"user-summary"},u={class:"top-line"},d=["href"],p={class:"bottom-line"},h={key:0,class:"alert user-role"},m={key:1,class:"alert user-role"},f={key:2,class:"alert user-role"},g={key:1},v={key:2,class:"dailyAvg"},w={class:"user-meta"},b={key:0,class:"following"},y={key:1,class:"highlighter"},_=["id"],k=["id"],S={value:"disabled"},j={value:"solid"},O={value:"striped"},C={value:"side"},P={key:0,class:"user-interactions"},z={class:"btn-group"},I=["disabled"],D=["disabled"],x=["disabled"],T={key:1,class:"user-interactions"},$={key:0,class:"panel-body"},U={key:0,class:"user-counts"},M=(0,r._)("br",null,null,-1),A=n(4942),L=n(62312),E=n(72895),F=n(99507),R=n(13046),N={class:"dropdown-menu"},q={key:0},Z={key:0,role:"separator",class:"dropdown-divider"},W={key:3,role:"separator",class:"dropdown-divider"},B={key:4},H=n(9382),V=n(84131),K={class:"panel-heading dialog-modal-heading"},G={class:"title"},Y={class:"dialog-modal-content"},J={class:"dialog-modal-footer user-interactions panel-footer"};const Q={props:{darkOverlay:{default:!0,type:Boolean},onCancel:{default:function(){},type:Function}}};var X=n(83744);const ee=(0,X.Z)(Q,[["render",function(e,t,n,s,a,c){return(0,r.wg)(),(0,r.iD)("span",{class:(0,o.C_)({"dark-overlay":e.darkOverlay}),onClick:t[1]||(t[1]=(0,i.iM)((function(t){return e.onCancel()}),["self","stop"]))},[(0,r._)("div",{class:"dialog-modal panel panel-default",onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["stop"]))},[(0,r._)("div",K,[(0,r._)("div",G,[(0,r.WI)(e.$slots,"header")])]),(0,r._)("div",Y,[(0,r.WI)(e.$slots,"default")]),(0,r._)("div",J,[(0,r.WI)(e.$slots,"footer")])])],2)}]]);var te=n(49874);H.vI.add(V.ptq);const ne={props:["user"],data:function(){return{tags:{FORCE_NSFW:"mrf_tag:media-force-nsfw",STRIP_MEDIA:"mrf_tag:media-strip",FORCE_UNLISTED:"mrf_tag:force-unlisted",DISABLE_REMOTE_SUBSCRIPTION:"mrf_tag:disable-remote-subscription",DISABLE_ANY_SUBSCRIPTION:"mrf_tag:disable-any-subscription",SANDBOX:"mrf_tag:sandbox",QUARANTINE:"mrf_tag:quarantine"},showDeleteUserDialog:!1,toggled:!1}},components:{DialogModal:ee,Popover:te.default},computed:{tagsSet:function(){return new Set(this.user.tags)},canGrantRole:function(){return this.user.is_local&&!this.user.deactivated&&"admin"===this.$store.state.users.currentUser.role},canChangeActivationState:function(){return this.privileged("users_manage_activation_state")},canDeleteAccount:function(){return this.privileged("users_delete")},canUseTagPolicy:function(){return this.$store.state.instance.tagPolicyAvailable&&this.privileged("users_manage_tags")}},methods:{hasTag:function(e){return this.tagsSet.has(e)},privileged:function(e){return this.$store.state.users.currentUser.privileges.includes(e)},toggleTag:function(e){var t=this,n=this.$store;this.tagsSet.has(e)?n.state.api.backendInteractor.untagUser({user:this.user,tag:e}).then((function(r){r.ok&&n.commit("untagUser",{user:t.user,tag:e})})):n.state.api.backendInteractor.tagUser({user:this.user,tag:e}).then((function(r){r.ok&&n.commit("tagUser",{user:t.user,tag:e})}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(r){r.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(r){r.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,r=n.id,o=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===o||e.$route.params.id===r;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}},re=(0,X.Z)(ne,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("FAIcon"),l=(0,r.up)("Popover"),u=(0,r.up)("DialogModal");return(0,r.wg)(),(0,r.iD)("div",null,[(0,r.Wm)(l,{trigger:"click",class:"moderation-tools-popover",placement:"bottom",offset:{y:5},onShow:t[11]||(t[11]=function(t){return e.setToggled(!0)}),onClose:t[12]||(t[12]=function(t){return e.setToggled(!1)})},{content:(0,r.w5)((function(){return[(0,r._)("div",N,[e.canGrantRole?((0,r.wg)(),(0,r.iD)("span",q,[(0,r._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(t){return e.toggleRight("admin")})},(0,o.zw)(e.$t(e.user.rights.admin?"user_card.admin_menu.revoke_admin":"user_card.admin_menu.grant_admin")),1),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(t){return e.toggleRight("moderator")})},(0,o.zw)(e.$t(e.user.rights.moderator?"user_card.admin_menu.revoke_moderator":"user_card.admin_menu.grant_moderator")),1),e.canChangeActivationState||e.canDeleteAccount?((0,r.wg)(),(0,r.iD)("div",Z)):(0,r.kq)("",!0)])):(0,r.kq)("",!0),e.canChangeActivationState?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(t){return e.toggleActivationStatus()})},(0,o.zw)(e.$t(e.user.deactivated?"user_card.admin_menu.activate_account":"user_card.admin_menu.deactivate_account")),1)):(0,r.kq)("",!0),e.canDeleteAccount?((0,r.wg)(),(0,r.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(t){return e.deleteUserDialog(!0)})},(0,o.zw)(e.$t("user_card.admin_menu.delete_account")),1)):(0,r.kq)("",!0),e.canUseTagPolicy?((0,r.wg)(),(0,r.iD)("div",W)):(0,r.kq)("",!0),e.canUseTagPolicy?((0,r.wg)(),(0,r.iD)("span",B,[(0,r._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(t){return e.toggleTag(e.tags.FORCE_NSFW)})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_NSFW)}])},null,2),(0,r.Uk)(" "+(0,o.zw)(e.$t("user_card.admin_menu.force_nsfw")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(t){return e.toggleTag(e.tags.STRIP_MEDIA)})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.STRIP_MEDIA)}])},null,2),(0,r.Uk)(" "+(0,o.zw)(e.$t("user_card.admin_menu.strip_media")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(t){return e.toggleTag(e.tags.FORCE_UNLISTED)})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_UNLISTED)}])},null,2),(0,r.Uk)(" "+(0,o.zw)(e.$t("user_card.admin_menu.force_unlisted")),1)]),(0,r._)("button",{class:"button-default dropdown-item",onClick:t[7]||(t[7]=function(t){return e.toggleTag(e.tags.SANDBOX)})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.SANDBOX)}])},null,2),(0,r.Uk)(" "+(0,o.zw)(e.$t("user_card.admin_menu.sandbox")),1)]),e.user.is_local?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-default dropdown-item",onClick:t[8]||(t[8]=function(t){return e.toggleTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)}])},null,2),(0,r.Uk)(" "+(0,o.zw)(e.$t("user_card.admin_menu.disable_remote_subscription")),1)])):(0,r.kq)("",!0),e.user.is_local?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[9]||(t[9]=function(t){return e.toggleTag(e.tags.DISABLE_ANY_SUBSCRIPTION)})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_ANY_SUBSCRIPTION)}])},null,2),(0,r.Uk)(" "+(0,o.zw)(e.$t("user_card.admin_menu.disable_any_subscription")),1)])):(0,r.kq)("",!0),e.user.is_local?((0,r.wg)(),(0,r.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[10]||(t[10]=function(t){return e.toggleTag(e.tags.QUARANTINE)})},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.QUARANTINE)}])},null,2),(0,r.Uk)(" "+(0,o.zw)(e.$t("user_card.admin_menu.quarantine")),1)])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)])]})),trigger:(0,r.w5)((function(){return[(0,r._)("button",{class:(0,o.C_)(["btn button-default btn-block moderation-tools-button",{toggled:e.toggled}])},[(0,r.Uk)((0,o.zw)(e.$t("user_card.admin_menu.moderation"))+" ",1),(0,r.Wm)(c,{icon:"chevron-down"})],2)]})),_:1}),((0,r.wg)(),(0,r.j4)(r.lR,{to:"#modal"},[e.showDeleteUserDialog?((0,r.wg)(),(0,r.j4)(u,{key:0,"on-cancel":e.deleteUserDialog.bind(this,!1)},{header:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),footer:(0,r.w5)((function(){return[(0,r._)("button",{class:"btn button-default",onClick:t[13]||(t[13]=function(t){return e.deleteUserDialog(!1)})},(0,o.zw)(e.$t("general.cancel")),1),(0,r._)("button",{class:"btn button-default danger",onClick:t[14]||(t[14]=function(t){return e.deleteUser()})},(0,o.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),default:(0,r.w5)((function(){return[(0,r._)("p",null,(0,o.zw)(e.$t("user_card.admin_menu.delete_user_confirmation")),1)]})),_:1},8,["on-cancel"])):(0,r.kq)("",!0)]))])}]]);var oe={class:"AccountActions"},ie={class:"dropdown-menu"},se=(0,r._)("div",{role:"separator",class:"dropdown-divider"},null,-1),ae={class:"button-unstyled ellipsis-button"},ce=n(989),le={class:"UserListMenu"},ue={class:"dropdown-menu"},de=["onClick"],pe={class:"btn button-default dropdown-item -has-submenu"};function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function me(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?he(Object(n),!0).forEach((function(t){(0,A.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}H.vI.add(V._tD);const fe={props:["user"],data:function(){return{}},components:{DialogModal:ee,Popover:te.default},created:function(){this.$store.dispatch("fetchUserInLists",this.user.id)},computed:me(me({},(0,ce.rn)({allLists:function(e){return e.lists.allLists}})),{},{inListsSet:function(){return new Set(this.user.inLists.map((function(e){return e.id})))},lists:function(){var e=this;return this.user.inLists?this.allLists.map((function(t){return me(me({},t),{},{inList:e.inListsSet.has(t.id)})})):[]}}),methods:{toggleList:function(e){var t=this;this.inListsSet.has(e)?this.$store.dispatch("removeListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)})):this.$store.dispatch("addListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(r){r.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(r){r.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,r=n.id,o=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===o||e.$route.params.id===r;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}},ge=(0,X.Z)(fe,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("FAIcon"),l=(0,r.up)("Popover");return(0,r.wg)(),(0,r.iD)("div",le,[(0,r.Wm)(l,{trigger:"hover",placement:"left","remove-padding":""},{content:(0,r.w5)((function(){return[(0,r._)("div",ue,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.lists,(function(t){return(0,r.wg)(),(0,r.iD)("button",{key:t.id,class:"button-default dropdown-item",onClick:function(n){return e.toggleList(t.id)}},[(0,r._)("span",{class:(0,o.C_)(["menu-checkbox",{"menu-checkbox-checked":t.inList}])},null,2),(0,r.Uk)(" "+(0,o.zw)(t.title),1)],8,de)})),128))])]})),trigger:(0,r.w5)((function(){return[(0,r._)("button",pe,[(0,r.Uk)((0,o.zw)(e.$t("lists.manage_lists"))+" ",1),(0,r.Wm)(c,{class:"chevron-icon",size:"lg",icon:"chevron-right"})])]})),_:1})])}]]);function ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}H.vI.add(V.iV1);const we={props:["user","relationship"],data:function(){return{}},components:{ProgressButton:F.Z,Popover:te.default,UserListMenu:ge},methods:{showRepeats:function(){this.$store.dispatch("showReblogs",this.user.id)},hideRepeats:function(){this.$store.dispatch("hideReblogs",this.user.id)},blockUser:function(){this.$store.dispatch("blockUser",this.user.id)},unblockUser:function(){this.$store.dispatch("unblockUser",this.user.id)},removeUserFromFollowers:function(){this.$store.dispatch("removeUserFromFollowers",this.user.id)},reportUser:function(){this.$store.dispatch("openUserReportingModal",{userId:this.user.id})},openChat:function(){this.$router.push({name:"chat",params:{username:this.$store.state.users.currentUser.screen_name,recipient_id:this.user.id}})}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ve(Object(n),!0).forEach((function(t){(0,A.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ve(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},(0,ce.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable}}))},be=(0,X.Z)(we,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("UserListMenu"),l=(0,r.up)("FAIcon"),u=(0,r.up)("Popover");return(0,r.wg)(),(0,r.iD)("div",oe,[(0,r.Wm)(u,{trigger:"click",placement:"bottom","bound-to":{x:"container"},"remove-padding":""},{content:(0,r.w5)((function(){return[(0,r._)("div",ie,[e.relationship.following?((0,r.wg)(),(0,r.iD)(r.HY,{key:0},[e.relationship.showing_reblogs?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"btn button-default dropdown-item",onClick:t[0]||(t[0]=function(){return e.hideRepeats&&e.hideRepeats.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.hide_repeats")),1)):(0,r.kq)("",!0),e.relationship.showing_reblogs?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,class:"btn button-default dropdown-item",onClick:t[1]||(t[1]=function(){return e.showRepeats&&e.showRepeats.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.show_repeats")),1)),se],64)):(0,r.kq)("",!0),(0,r.Wm)(c,{user:e.user},null,8,["user"]),e.relationship.followed_by?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"btn button-default btn-block dropdown-item",onClick:t[2]||(t[2]=function(){return e.removeUserFromFollowers&&e.removeUserFromFollowers.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.remove_follower")),1)):(0,r.kq)("",!0),e.relationship.blocking?((0,r.wg)(),(0,r.iD)("button",{key:2,class:"btn button-default btn-block dropdown-item",onClick:t[3]||(t[3]=function(){return e.unblockUser&&e.unblockUser.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.unblock")),1)):((0,r.wg)(),(0,r.iD)("button",{key:3,class:"btn button-default btn-block dropdown-item",onClick:t[4]||(t[4]=function(){return e.blockUser&&e.blockUser.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.block")),1)),(0,r._)("button",{class:"btn button-default btn-block dropdown-item",onClick:t[5]||(t[5]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.report")),1),e.pleromaChatMessagesAvailable?((0,r.wg)(),(0,r.iD)("button",{key:4,class:"btn button-default btn-block dropdown-item",onClick:t[6]||(t[6]=function(){return e.openChat&&e.openChat.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.message")),1)):(0,r.kq)("",!0)])]})),trigger:(0,r.w5)((function(){return[(0,r._)("button",ae,[(0,r.Wm)(l,{class:"icon",icon:"ellipsis-v"})])]})),_:1})])}]]);var ye={class:"user-note"},_e={class:"heading"},ke={class:"buttons"},Se=["disabled"],je=["disabled"];const Oe={props:{user:Object,relationship:Object,editable:Boolean},data:function(){return{localNote:"",editing:!1,frozen:!1}},computed:{shouldShow:function(){return this.relationship.note||this.editing}},methods:{startEditing:function(){this.localNote=this.relationship.note,this.editing=!0},cancelEditing:function(){this.editing=!1},finalizeEditing:function(){var e=this;this.frozen=!0,this.$store.dispatch("editUserNote",{id:this.user.id,comment:this.localNote}).then((function(){e.frozen=!1,e.editing=!1})).catch((function(){e.frozen=!1}))}}},Ce=(0,X.Z)(Oe,[["render",function(e,t,n,s,a,c){return(0,r.wg)(),(0,r.iD)("div",ye,[(0,r._)("div",_e,[(0,r._)("span",null,(0,o.zw)(e.$t("user_card.note")),1),(0,r._)("div",ke,[(0,r.wy)((0,r._)("button",{class:"button-default btn",onClick:t[0]||(t[0]=function(){return e.startEditing&&e.startEditing.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.edit_note")),513),[[i.F8,!e.editing&&e.editable]]),(0,r.wy)((0,r._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[1]||(t[1]=function(){return e.finalizeEditing&&e.finalizeEditing.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.edit_note_apply")),9,Se),[[i.F8,e.editing]]),(0,r.wy)((0,r._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[2]||(t[2]=function(){return e.cancelEditing&&e.cancelEditing.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.edit_note_cancel")),9,je),[[i.F8,e.editing]])])]),(0,r.wy)((0,r._)("textarea",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.localNote=t}),class:"note-text"},null,512),[[i.F8,e.editing],[i.nr,e.localNote]]),(0,r.wy)((0,r._)("span",{class:(0,o.C_)(["note-text",{"-blank":!e.relationship.note}])},(0,o.zw)(e.relationship.note||e.$t("user_card.note_blank")),3),[[i.F8,!e.editing]])])}]]);var Pe=n(44313),ze=n(12061),Ie=n(92820),De=n(4493);function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xe(Object(n),!0).forEach((function(t){(0,A.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}H.vI.add(V.Fwd,V.qmU,V.N7g,V.Xjp,V.Xcf,V.NBC,V.TTL);const $e={props:["userId","switcher","selected","hideBio","rounded","bordered","avatarAction","onClose","hasNoteEditor"],data:function(){return{followRequestInProgress:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter}},created:function(){this.$store.dispatch("fetchUserRelationship",this.user.id)},computed:Te({user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},classes:function(){return[{"-rounded-t":"top"===this.rounded,"-rounded":!0===this.rounded,"-bordered":!0===this.bordered,"-popover":!!this.onClose}]},style:function(){return{backgroundImage:["linear-gradient(to bottom, var(--profileTint), var(--profileTint))","url(".concat(this.user.cover_photo,")")].join(", ")}},isOtherUser:function(){return this.user.id!==this.$store.state.users.currentUser.id},subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")},loggedIn:function(){return this.$store.state.users.currentUser},dailyAvg:function(){var e=Math.ceil((new Date-new Date(this.user.created_at))/864e5);return Math.round(this.user.statuses_count/e)},userHighlightType:Te({get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.type||"disabled"},set:function(e){var t=this.$store.getters.mergedConfig.highlight[this.user.screen_name];"disabled"!==e?this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:t&&t.color||"#FFFFFF",type:e}):this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:void 0})}},(0,ce.Se)(["mergedConfig"])),userHighlightColor:{get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.color},set:function(e){this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:e})}},visibleRole:function(){var e=this.user.rights;if(e){var t=e.admin||e.moderator,n=e.admin?"admin":"moderator";return t&&n}},hideFollowsCount:function(){return this.isOtherUser&&this.user.hide_follows_count},hideFollowersCount:function(){return this.isOtherUser&&this.user.hide_followers_count},showModerationMenu:function(){var e=this.loggedIn.privileges;return"admin"===this.loggedIn.role||e.includes("users_manage_activation_state")||e.includes("users_delete")||e.includes("users_manage_tags")},hasNote:function(){return this.relationship.note},supportsNote:function(){return"note"in this.relationship}},(0,ce.Se)(["mergedConfig"])),components:{UserAvatar:L.default,RemoteFollow:E.Z,ModerationTools:re,AccountActions:be,ProgressButton:F.Z,FollowButton:R.Z,Select:Pe.Z,RichContent:Ie.Z,UserLink:ze.Z,UserNote:Ce},methods:{muteUser:function(){this.$store.dispatch("muteUser",this.user.id)},unmuteUser:function(){this.$store.dispatch("unmuteUser",this.user.id)},subscribeUser:function(){return this.$store.dispatch("subscribeUser",this.user.id)},unsubscribeUser:function(){return this.$store.dispatch("unsubscribeUser",this.user.id)},setProfileView:function(e){this.switcher&&this.$store.commit("setProfileView",{v:e})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")},userProfileLink:function(e){return(0,De.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")},zoomAvatar:function(){var e={url:this.user.profile_image_url_original,mimetype:"image"};this.$store.dispatch("setMedia",[e]),this.$store.dispatch("setCurrentMedia",e)},mentionUser:function(){this.$store.dispatch("openPostStatusModal",{replyTo:!0,repliedUser:this.user})},onAvatarClickHandler:function(e){this.onAvatarClick&&(e.preventDefault(),this.onAvatarClick())}}},Ue=(0,X.Z)($e,[["render",function(e,t,n,A,L,E){var F=(0,r.up)("UserAvatar"),R=(0,r.up)("FAIcon"),N=(0,r.up)("router-link"),q=(0,r.up)("RichContent"),Z=(0,r.up)("AccountActions"),W=(0,r.up)("user-link"),B=(0,r.up)("Select"),H=(0,r.up)("FollowButton"),V=(0,r.up)("ProgressButton"),K=(0,r.up)("FALayers"),G=(0,r.up)("ModerationTools"),Y=(0,r.up)("RemoteFollow"),J=(0,r.up)("UserNote");return(0,r.wg)(),(0,r.iD)("div",{class:(0,o.C_)(["user-card",e.classes])},[(0,r._)("div",{class:(0,o.C_)([{"hide-bio":e.hideBio},"background-image"]),style:(0,o.j5)(e.style)},null,6),(0,r._)("div",{class:(0,o.C_)(e.onClose?"":e.panel-e.heading-e.flexible-e.height)},[(0,r._)("div",s,[(0,r._)("div",a,["zoom"===e.avatarAction?((0,r.wg)(),(0,r.iD)("a",{key:0,class:"user-info-avatar -link",onClick:t[0]||(t[0]=function(){return e.zoomAvatar&&e.zoomAvatar.apply(e,arguments)})},[(0,r.Wm)(F,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"]),(0,r._)("div",c,[(0,r.Wm)(R,{class:"fa-scale-110 fa-old-padding",icon:"search-plus"})])])):"function"==typeof e.avatarAction?((0,r.wg)(),(0,r.j4)(F,{key:1,class:"user-info-avatar","better-shadow":e.betterShadow,user:e.user,onClick:e.avatarAction},null,8,["better-shadow","user","onClick"])):((0,r.wg)(),(0,r.j4)(N,{key:2,to:e.userProfileLink(e.user)},{default:(0,r.w5)((function(){return[(0,r.Wm)(F,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"])]})),_:1},8,["to"])),(0,r._)("div",l,[(0,r._)("div",u,[(0,r.Wm)(N,{to:e.userProfileLink(e.user),class:"user-name"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,{title:e.user.name,html:e.user.name,emoji:e.user.emoji},null,8,["title","html","emoji"])]})),_:1},8,["to"]),!e.isOtherUser&&e.user.is_local?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"button-unstyled edit-profile-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)}),["stop"]))},[(0,r.Wm)(R,{"fixed-width":"",class:"icon",icon:"edit",title:e.$t("user_card.edit_profile")},null,8,["title"])])):(0,r.kq)("",!0),e.isOtherUser&&!e.user.is_local?((0,r.wg)(),(0,r.iD)("a",{key:1,href:e.user.statusnet_profile_url,target:"_blank",class:"button-unstyled external-link-button"},[(0,r.Wm)(R,{class:"icon",icon:"external-link-alt"})],8,d)):(0,r.kq)("",!0),e.isOtherUser&&e.loggedIn?((0,r.wg)(),(0,r.j4)(Z,{key:2,user:e.user,relationship:e.relationship},null,8,["user","relationship"])):(0,r.kq)("",!0),e.onClose?((0,r.wg)(),(0,r.j4)(N,{key:3,to:e.userProfileLink(e.user),class:"button-unstyled external-link-button",onClick:e.onClose},{default:(0,r.w5)((function(){return[(0,r.Wm)(R,{class:"icon",icon:"expand-alt"})]})),_:1},8,["to","onClick"])):(0,r.kq)("",!0),e.onClose?((0,r.wg)(),(0,r.iD)("button",{key:4,class:"button-unstyled external-link-button",onClick:t[2]||(t[2]=function(){return e.onClose&&e.onClose.apply(e,arguments)})},[(0,r.Wm)(R,{class:"icon",icon:"times"})])):(0,r.kq)("",!0)]),(0,r._)("div",p,[(0,r.Wm)(W,{class:"user-screen-name",user:e.user},null,8,["user"]),e.hideBio?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)(r.HY,{key:0},[e.user.deactivated?((0,r.wg)(),(0,r.iD)("span",h,(0,o.zw)(e.$t("user_card.deactivated")),1)):(0,r.kq)("",!0),e.visibleRole?((0,r.wg)(),(0,r.iD)("span",m,(0,o.zw)(e.$t("general.role.".concat(e.visibleRole))),1)):(0,r.kq)("",!0),e.user.bot?((0,r.wg)(),(0,r.iD)("span",f,(0,o.zw)(e.$t("user_card.bot")),1)):(0,r.kq)("",!0)],64)),e.user.locked?((0,r.wg)(),(0,r.iD)("span",g,[(0,r.Wm)(R,{class:"lock-icon",icon:"lock",size:"sm"})])):(0,r.kq)("",!0),e.mergedConfig.hideUserStats||e.hideBio?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",v,(0,o.zw)(e.dailyAvg)+" "+(0,o.zw)(e.$t("user_card.per_day")),1))])])]),(0,r._)("div",w,[e.relationship.followed_by&&e.loggedIn&&e.isOtherUser?((0,r.wg)(),(0,r.iD)("div",b,(0,o.zw)(e.$t("user_card.follows_you")),1)):(0,r.kq)("",!0),!e.isOtherUser||!e.loggedIn&&e.switcher?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",y,["disabled"!==e.userHighlightType?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,id:"userHighlightColorTx"+e.user.id,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userHighlightColor=t}),class:"userHighlightText",type:"text"},null,8,_)),[[i.nr,e.userHighlightColor]]):(0,r.kq)("",!0),"disabled"!==e.userHighlightType?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:1,id:"userHighlightColor"+e.user.id,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.userHighlightColor=t}),class:"userHighlightCl",type:"color"},null,8,k)),[[i.nr,e.userHighlightColor]]):(0,r.kq)("",!0),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r.Wm)(B,{id:"userHighlightSel"+e.user.id,modelValue:e.userHighlightType,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.userHighlightType=t}),class:"userHighlightSel"},{default:(0,r.w5)((function(){return[(0,r._)("option",S,(0,o.zw)(e.$t("user_card.highlight.disabled")),1),(0,r._)("option",j,(0,o.zw)(e.$t("user_card.highlight.solid")),1),(0,r._)("option",O,(0,o.zw)(e.$t("user_card.highlight.striped")),1),(0,r._)("option",C,(0,o.zw)(e.$t("user_card.highlight.side")),1)]})),_:1},8,["id","modelValue"])]))]),e.loggedIn&&e.isOtherUser?((0,r.wg)(),(0,r.iD)("div",P,[(0,r._)("div",z,[(0,r.Wm)(H,{relationship:e.relationship,user:e.user},null,8,["relationship","user"]),e.relationship.following?((0,r.wg)(),(0,r.iD)(r.HY,{key:0},[e.relationship.subscribing?((0,r.wg)(),(0,r.j4)(V,{key:1,class:"btn button-default toggled",click:e.unsubscribeUser,title:e.$t("user_card.unsubscribe")},{default:(0,r.w5)((function(){return[(0,r.Wm)(K,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(R,{icon:"rss",transform:"left-5 shrink-6 up-3 rotate-20",flip:"horizontal"}),(0,r.Wm)(R,{icon:"rss",transform:"right-5 shrink-6 up-3 rotate-20"}),(0,r.Wm)(R,{icon:"bell"})]})),_:1})]})),_:1},8,["click","title"])):((0,r.wg)(),(0,r.j4)(V,{key:0,class:"btn button-default",click:e.subscribeUser,title:e.$t("user_card.subscribe")},{default:(0,r.w5)((function(){return[(0,r.Wm)(R,{icon:"bell"})]})),_:1},8,["click","title"]))],64)):(0,r.kq)("",!0)]),(0,r._)("div",null,[e.relationship.muting?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"btn button-default btn-block toggled",disabled:e.user.deactivated,onClick:t[6]||(t[6]=function(){return e.unmuteUser&&e.unmuteUser.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.muted")),9,I)):((0,r.wg)(),(0,r.iD)("button",{key:1,class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[7]||(t[7]=function(){return e.muteUser&&e.muteUser.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.mute")),9,D))]),(0,r._)("div",null,[(0,r._)("button",{class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[8]||(t[8]=function(){return e.mentionUser&&e.mentionUser.apply(e,arguments)})},(0,o.zw)(e.$t("user_card.mention")),9,x)]),e.showModerationMenu?((0,r.wg)(),(0,r.j4)(G,{key:0,user:e.user},null,8,["user"])):(0,r.kq)("",!0)])):(0,r.kq)("",!0),!e.loggedIn&&e.user.is_local?((0,r.wg)(),(0,r.iD)("div",T,[(0,r.Wm)(Y,{user:e.user},null,8,["user"])])):(0,r.kq)("",!0),e.loggedIn&&e.isOtherUser&&(e.hasNote||e.hasNoteEditor&&e.supportsNote)?((0,r.wg)(),(0,r.j4)(J,{key:2,user:e.user,relationship:e.relationship,editable:e.hasNoteEditor},null,8,["user","relationship","editable"])):(0,r.kq)("",!0)])],2),e.hideBio?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",$,[!e.mergedConfig.hideUserStats&&e.switcher?((0,r.wg)(),(0,r.iD)("div",U,[(0,r._)("div",{class:"user-count",onClick:t[9]||(t[9]=(0,i.iM)((function(t){return e.setProfileView("statuses")}),["prevent"]))},[(0,r._)("h5",null,(0,o.zw)(e.$t("user_card.statuses")),1),(0,r._)("span",null,[(0,r.Uk)((0,o.zw)(e.user.statuses_count)+" ",1),M])]),(0,r._)("div",{class:"user-count",onClick:t[10]||(t[10]=(0,i.iM)((function(t){return e.setProfileView("friends")}),["prevent"]))},[(0,r._)("h5",null,(0,o.zw)(e.$t("user_card.followees")),1),(0,r._)("span",null,(0,o.zw)(e.hideFollowsCount?e.$t("user_card.hidden"):e.user.friends_count),1)]),(0,r._)("div",{class:"user-count",onClick:t[11]||(t[11]=(0,i.iM)((function(t){return e.setProfileView("followers")}),["prevent"]))},[(0,r._)("h5",null,(0,o.zw)(e.$t("user_card.followers")),1),(0,r._)("span",null,(0,o.zw)(e.hideFollowersCount?e.$t("user_card.hidden"):e.user.followers_count),1)])])):(0,r.kq)("",!0),e.hideBio?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(q,{key:1,class:"user-card-bio",html:e.user.description_html,emoji:e.user.emoji,"handle-links":!0},null,8,["html","emoji"]))]))],2)}]])},12061:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(66252),o=n(3577),i=n(42262),s=n(4493);const a={props:{user:Object,at:{type:Boolean,default:!0}},components:{UnicodeDomainIndicator:i.Z},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},c=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var c=(0,r.up)("UnicodeDomainIndicator"),l=(0,r.up)("router-link");return(0,r.wg)(),(0,r.j4)(l,{title:e.user.screen_name_ui,to:e.userProfileLink(e.user)},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.at?"@":"")+(0,o.zw)(e.user.screen_name_ui),1),(0,r.Wm)(c,{user:e.user},null,8,["user"])]})),_:1},8,["title","to"])}]])},78873:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(66252);const o={name:"UserPopover",props:["userId","overlayCenters","disabled","overlayCentersSelector"],components:{UserCard:n(27073).Z,Popover:(0,r.RC)((function(){return Promise.resolve().then(n.bind(n,49874))}))},computed:{userPopoverAvatarAction:function(){return this.$store.getters.mergedConfig.userPopoverAvatarAction},userPopoverOverlay:function(){return this.$store.getters.mergedConfig.userPopoverOverlay}}},i=(0,n(83744).Z)(o,[["render",function(e,t,n,o,i,s){var a=(0,r.up)("UserCard"),c=(0,r.up)("Popover");return(0,r.wg)(),(0,r.j4)(c,{trigger:"click","popover-class":"popover-default user-popover","overlay-centers-selector":e.overlayCentersSelector||".user-info .Avatar","overlay-centers":e.overlayCenters&&e.userPopoverOverlay,disabled:e.disabled},{trigger:(0,r.w5)((function(){return[(0,r.WI)(e.$slots,"default")]})),content:(0,r.w5)((function(t){var n=t.close;return[(0,r.Wm)(a,{class:"user-popover","user-id":e.userId,"hide-bio":!0,"avatar-action":"close"==e.userPopoverAvatarAction?n:e.userPopoverAvatarAction,"on-close":n},null,8,["user-id","avatar-action","on-close"])]})),_:3},8,["overlay-centers-selector","overlay-centers","disabled"])}]])},34133:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(66252),o=["src","loop","controls","alt","title"];const i={props:["attachment","controls"],data:function(){return{blocksSuspend:!1,hasAudio:!0}},computed:{loopVideo:function(){return this.$store.getters.mergedConfig.loopVideoSilentOnly?!this.hasAudio:this.$store.getters.mergedConfig.loopVideo}},methods:{onPlaying:function(e){this.setHasAudio(e),this.loopVideo?this.$emit("play",{looping:!0}):this.$emit("play")},onPaused:function(e){this.$emit("pause")},setHasAudio:function(e){var t=e.srcElement||e.target;this.hasAudio&&(void 0!==t.webkitAudioDecodedByteCount&&t.webkitAudioDecodedByteCount>0||void 0!==t.mozHasAudio&&t.mozHasAudio||void 0!==t.audioTracks&&t.audioTracks.length>0||(this.hasAudio=!1))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,r.wg)(),(0,r.iD)("video",{class:"video",preload:"metadata",src:e.attachment.url,loop:e.loopVideo,controls:e.controls,alt:e.attachment.description,title:e.attachment.description,playsinline:"",onPlaying:t[0]||(t[0]=function(){return e.onPlaying&&e.onPlaying.apply(e,arguments)}),onPause:t[1]||(t[1]=function(){return e.onPaused&&e.onPaused.apply(e,arguments)})},null,40,o)}]])},27650:(e,t,n)=>{var r={"./ar.json":[36224,7808],"./ca.json":[49394,6234],"./cs.json":[87436,7433],"./de.json":[25195,9459],"./en.json":[88797],"./eo.json":[97898,4646],"./es.json":[98559,3968],"./et.json":[13230,4451],"./eu.json":[84826,4542],"./fa.json":[52006,2953],"./fi.json":[70823,9738],"./fr.json":[61341,3746],"./ga.json":[41647,830],"./he.json":[92215,379],"./hu.json":[95028,5494],"./id.json":[62263,2513],"./it.json":[2533,1159],"./ja_easy.json":[8439,8714],"./ja_pedantic.json":[22838,325],"./ko.json":[10707,9670],"./nb.json":[72358,7845],"./nl.json":[49922,6256],"./oc.json":[47297,617],"./pl.json":[82098,5571],"./pt.json":[94465,4047],"./ro.json":[64367,6342],"./ru.json":[73289,5964],"./sk.json":[31478,1547],"./te.json":[32781,2044],"./uk.json":[8411,5253],"./vi.json":[6294,4975],"./zh.json":[4425,5929],"./zh_Hant.json":[37644,6544]};function o(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],o=t[0];return Promise.all(t.slice(1).map(n.e)).then((()=>n(o)))}o.keys=()=>Object.keys(r),o.id=27650,e.exports=o},31934:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology.f9d5180.png"},95326:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology_fox.038b0bb.png"},68789:e=>{"use strict";e.exports="data:image/png;base64,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"},43011:e=>{"use strict";e.exports="data:image/png;base64,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"}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={id:e,loaded:!1,exports:{}};return a[e].call(n.exports,n,n.exports,l),n.loaded=!0,n.exports}l.m=a,e=[],l.O=(t,n,r,o)=>{if(!n){var i=1/0;for(u=0;u<e.length;u++){for(var[n,r,o]=e[u],s=!0,a=0;a<n.length;a++)(!1&o||i>=o)&&Object.keys(l.O).every((e=>l.O[e](n[a])))?n.splice(a--,1):(s=!1,o<i&&(i=o));if(s){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o]},l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);l.r(o);var i={};t=t||[null,n({}),n([]),n(n)];for(var s=2&r&&e;"object"==typeof s&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>i[t]=()=>e[t]));return i.default=()=>e,l.d(o,i),o},l.d=(e,t)=>{for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce(((t,n)=>(l.f[n](e,t),t)),[])),l.u=e=>"static/js/"+({50:"emoji-annotations/en_GB-json",227:"emoji-annotations/ha-json",278:"emoji-annotations/kn-json",313:"emoji-annotations/tg-json",325:"i18n/ja_pedantic-json",346:"emoji-annotations/rw-json",379:"i18n/he-json",420:"emoji-annotations/fi-json",457:"emoji-annotations/zh-json",577:"emoji-annotations/en_001-json",617:"i18n/oc-json",625:"emoji-annotations/so-json",678:"emoji-annotations/ps-json",786:"emoji-annotations/xh-json",830:"i18n/ga-json",1012:"emoji-annotations/or-json",1044:"emoji-annotations/zh_Hant_HK-json",1056:"emoji-annotations/uz-json",1095:"emoji-annotations/pl-json",1159:"i18n/it-json",1162:"emoji-annotations/ccp-json",1236:"emoji-annotations/fil-json",1290:"emoji-annotations/ja-json",1404:"emoji-annotations/km-json",1452:"emoji-annotations/yue-json",1546:"emoji-annotations/pt_PT-json",1547:"i18n/sk-json",1553:"emoji-annotations/sl-json",1584:"emoji-annotations/to-json",1596:"emoji-annotations/da-json",1613:"emoji-annotations/mai-json",1780:"emoji-annotations/tk-json",1790:"emoji-annotations/dsb-json",1821:"emoji-annotations/fr_CA-json",1911:"emoji-annotations/mr-json",1959:"emoji-annotations/su-json",2044:"i18n/te-json",2223:"emoji-annotations/fr-json",2243:"emoji-annotations/sa-json",2342:"emoji-annotations/az-json",2350:"emoji-annotations/sk-json",2397:"emoji-annotations/kl-json",2479:"emoji-annotations/jv-json",2513:"i18n/id-json",2569:"emoji-annotations/tt-json",2599:"emoji-annotations/kok-json",2656:"emoji-annotations/ckb-json",2685:"emoji-annotations/ml-json",2699:"emoji-annotations/es_MX-json",2767:"emoji-annotations/zh_Hant-json",2861:"emoji-annotations/hr-json",2873:"emoji-annotations/kk-json",2874:"emoji-annotations/sc-json",2883:"emoji-annotations/ku-json",2953:"i18n/fa-json",2966:"emoji-annotations/ko-json",2992:"emoji-annotations/eu-json",3056:"emoji-annotations/hi_Latn-json",3241:"emoji-annotations/sv-json",3276:"emoji-annotations/et-json",3313:"emoji-annotations/es_US-json",3377:"emoji-annotations/as-json",3568:"emoji-annotations/ti-json",3687:"emoji",3746:"i18n/fr-json",3887:"emoji-annotations/sr-json",3951:"emoji-annotations/th-json",3968:"i18n/es-json",3974:"emoji-annotations/bg-json",3994:"emoji-annotations/sw_KE-json",4047:"i18n/pt-json",4209:"emoji-annotations/doi-json",4354:"emoji-annotations/si-json",4368:"emoji-annotations/sq-json",4424:"emoji-annotations/yue_Hans-json",4451:"i18n/et-json",4542:"i18n/eu-json",4571:"emoji-annotations/ga-json",4646:"i18n/eo-json",4691:"emoji-annotations/ca-json",4710:"emoji-annotations/cs-json",4718:"emoji-annotations/mn-json",4770:"emoji-annotations/lb-json",4785:"emoji-annotations/ky-json",4786:"emoji-annotations/te-json",4879:"emoji-annotations/en_CA-json",4902:"emoji-annotations/hu-json",4975:"i18n/vi-json",5041:"emoji-annotations/pt-json",5104:"emoji-annotations/pcm-json",5115:"emoji-annotations/sr_Latn_BA-json",5119:"emoji-annotations/am-json",5224:"emoji-annotations/vi-json",5253:"i18n/uk-json",5304:"emoji-annotations/ha_NE-json",5401:"emoji-annotations/mni-json",5494:"i18n/hu-json",5521:"emoji-annotations/fa-json",5548:"emoji-annotations/he-json",5571:"i18n/pl-json",5728:"emoji-annotations/en-json",5887:"emoji-annotations/rm-json",5929:"i18n/zh-json",5964:"i18n/ru-json",5968:"emoji-annotations/hi-json",6060:"emoji-annotations/sr_Cyrl_BA-json",6068:"emoji-annotations/ka-json",6116:"emoji-annotations/gd-json",6126:"emoji-annotations/gl-json",6148:"emoji-annotations/br-json",6226:"emoji-annotations/de-json",6234:"i18n/ca-json",6256:"i18n/nl-json",6272:"emoji-annotations/cy-json",6342:"i18n/ro-json",6344:"emoji-annotations/hy-json",6355:"emoji-annotations/af-json",6544:"i18n/zh_Hant-json",6701:"emoji-annotations/mi-json",6773:"emoji-annotations/nl-json",6790:"emoji-annotations/my-json",6797:"emoji-annotations/ur-json",6826:"emoji-annotations/sd-json",6831:"emoji-annotations/es-json",6869:"emoji-annotations/chr-json",6936:"emoji-annotations/ia-json",6946:"emoji-annotations/pa-json",7164:"emoji-annotations/de_CH-json",7169:"emoji-annotations/lt-json",7261:"emoji-annotations/gu-json",7300:"emoji-annotations/is-json",7303:"emoji-annotations/wo-json",7304:"emoji-annotations/be-json",7360:"emoji-annotations/ar_SA-json",7433:"i18n/cs-json",7464:"emoji-annotations/lo-json",7569:"emoji-annotations/ast-json",7585:"emoji-annotations/sw-json",7808:"i18n/ar-json",7845:"i18n/nb-json",7855:"emoji-annotations/sat-json",7879:"emoji-annotations/el-json",7897:"emoji-annotations/ta-json",8015:"emoji-annotations/hsb-json",8031:"emoji-annotations/qu-json",8134:"emoji-annotations/bs-json",8395:"emoji-annotations/ru-json",8681:"emoji-annotations/sr_Latn-json",8714:"i18n/ja_easy-json",8732:"emoji-annotations/yo-json",8873:"emoji-annotations/es_419-json",8898:"emoji-annotations/lv-json",8970:"emoji-annotations/it-json",8988:"emoji-annotations/en_IN-json",8995:"emoji-annotations/fo-json",9064:"emoji-annotations/bn-json",9319:"emoji-annotations/zu-json",9360:"emoji-annotations/en_AU-json",9377:"emoji-annotations/ne-json",9399:"emoji-annotations/mt-json",9414:"emoji-annotations/nn-json",9459:"i18n/de-json",9465:"emoji-annotations/id-json",9670:"i18n/ko-json",9738:"i18n/fi-json",9757:"emoji-annotations/ug-json",9780:"emoji-annotations/kab-json",9790:"emoji-annotations/ceb-json",9864:"emoji-annotations/ro-json",9871:"emoji-annotations/uk-json",9873:"emoji-annotations/ar-json",9895:"emoji-annotations/ig-json",9921:"emoji-annotations/mk-json",9924:"emoji-annotations/ms-json",9926:"emoji-annotations/yo_BJ-json",9978:"emoji-annotations/tr-json",9979:"emoji-annotations/no-json",9994:"emoji-annotations/pa_Arab-json"}[e]||e)+"."+{50:"bd687f904492facc81d1",227:"2a08912b38925c10f970",278:"efdac8ac0cb00991ba1e",313:"9647f559a4477d7d8e96",325:"b52fa70f0bf89ae01cfb",346:"031838c5374676191131",379:"03c5d271a4034de06e6f",420:"0f254bb4b0faaba4abcc",457:"e42a28127d5c1aff6c85",577:"72d8c47269350f59aa9f",617:"4f52bf1b6e3213acc33c",625:"f75abd16637c8924c075",678:"a0d9eea5b81bcad11e64",786:"21e88c05ad3113dfc7f2",830:"3f1981817977a16f1d7e",1012:"b007c2f6f92dcc95efac",1044:"7eee03c705347a21c612",1056:"ac43f4c54d4587324a20",1095:"e9e8f1ed84dc6c169516",1159:"99a21d5c98376af17141",1162:"02836537ffe2b02291cb",1236:"4fca833f178d1b889b69",1264:"1e16af28a0b44d4d17d0",1290:"0bd51f8c40c106355b0e",1325:"d1e5fcff4166acac7f06",1404:"9bc922b2e0faa64b4c53",1452:"15102c0ddfdf19bdfb4c",1546:"c381b13e323f91b0e6b3",1547:"d8d0eba80f94e6f55145",1553:"a40c5548da34fce6f1d0",1584:"50ac37d101caaf592c94",1596:"8d074e27df71edafc543",1613:"302386b3358f4d34f9c8",1780:"23a9a6229829921704ad",1790:"7635686ffd8d62264466",1821:"59ed6b59e2ca68707292",1911:"cb0a87d9aabf8a52161d",1959:"daff15251020cbecea7d",2044:"ce6db28261b2f824064f",2223:"da49ed0d1a6622fe1c67",2243:"21b06234a08c7469ccb4",2342:"9a32f2941d9c4d1f834c",2350:"5d96bdb4da82655d0314",2397:"87ab8661b4bdecd09faf",2479:"1c8d5ffcff22b46b6214",2513:"3e42564ce7a3a847ecb0",2569:"4c089389ba9983ec8ef7",2599:"116e4f72db3bfb846233",2656:"13dc83db1e15aa76051a",2677:"45ff400a54f2f4c858f2",2685:"3f2902a84240faff1b48",2699:"ee359d4b611fdb1aeb33",2767:"9cbb765c181d443828a9",2861:"fe847ade1f18a60e513c",2873:"a20b59d47bdfe99786ad",2874:"c84c9c47d2e104c43e4c",2883:"2173ed87f8d7372ee209",2953:"a19100f6a5a9431e2adb",2966:"d175900fe48f48ce87c8",2992:"931b429f5fcc141549a5",3056:"3cb73c456f31261f1908",3241:"8b0374cbca3a77519876",3276:"c42e3f186a55ecb061cd",3313:"280bdb036dfd651d079a",3377:"34cf67edc1cecd195738",3568:"5b173bd33bb960be805b",3687:"33eab91b64f59431137d",3746:"36ef21ccb1203d3e65ae",3887:"e29a20e59a708df0c6a8",3951:"34709bae223bb9d2587c",3968:"4a302899a65e1f67d8a2",3974:"7c69c52572a7bf87e1db",3994:"f3563cbeac1c158563d5",4047:"3fc5593e030268bcd291",4209:"7841c3f3ceb4e3da0bd1",4354:"841b356da03623c10dbf",4368:"bcf154ed8a6138aa089c",4424:"cc60bb10d32fab3d8207",4451:"580b101d6bb83a8aee75",4542:"d2eab39b0427995fc314",4571:"cb3f9e613a8c445aea23",4646:"8b17b5b5653ed558d931",4691:"ce029e860b10b242c6a5",4710:"48d8bba230dc9fe6b3dc",4718:"764169f1168d0432640f",4770:"499c526f3a653618ea9b",4785:"310bda579c819eda9472",4786:"8a69a10f62cdf626244e",4879:"5de965778a6b8a5a4bb4",4902:"1faf52040deda872b416",4975:"703c1e731be6e857bbf3",5041:"2b2512ee44291bdb2ae7",5104:"eac3a5ad0b4b5b33289d",5115:"72933405032b81344754",5119:"94388548f7c18233fec3",5224:"f6a364b2add7f8c8bc67",5253:"c33e4c72a2dfe9a9d143",5304:"e4855d92aaccfdd6ba57",5401:"7db7f76ab1ce34e3683d",5494:"0487899ca7a7a8505ed8",5521:"819c7f263c8594ccf4fa",5548:"a3d7631f32182b0955a2",5571:"c963247822381b05579b",5728:"6c3947f7c49c3952084d",5887:"985d4934f386fd05a75c",5929:"de02aa4e82fcb1ec557c",5964:"b913eb7f7e9f0c642438",5968:"04bc5f73dc2169def97e",6060:"83c7c64b9696ae2339f2",6068:"567e7b051d90a37003f3",6116:"e3d0aea3725be774ad81",6126:"ce89036f0ae72224c994",6148:"c7175423d8965ed10bae",6226:"e1443c01a191af1665e1",6234:"1eb24bc001efa3c0627f",6256:"3fb9758b10c29434b613",6272:"e09dd13da5ad56530ead",6342:"3fd9977ed1c1413059ae",6344:"2d819f7faabfeba8457f",6355:"96c988285a6a2cce6246",6464:"2ababce187697ee8b1e9",6544:"eedcc6a7effd11514fe4",6701:"9efe6f146ecd8987f80a",6773:"52f4b93b8fa5e22cb585",6790:"8e7dd1485813d15bba7e",6797:"983c02109444c883a18f",6826:"8f2a6a06dc3cf185f79d",6831:"f593b0dc2367a9d7fb30",6869:"e7e542ab5a74167dec10",6936:"8e8365e2bf41779e2beb",6946:"7d60d69762a108270669",7164:"b4a5891ea2f38d616ec0",7169:"ced4d5e70edc60127df6",7261:"8a899f364cf260376905",7300:"62e220c65215b034533d",7303:"e0d689e22cda0dd77e9a",7304:"f92f80669873a4100c69",7360:"4a6f4402931a867070f0",7433:"5eedbe9f7084c349fbe8",7464:"ecb06d61465a355b8157",7569:"7e4da8cb7e539c19a9b9",7585:"d5f350641b9cbcc0e126",7808:"d09609af3224232857d6",7845:"a54af3b1f47d576ad4aa",7855:"71e92700b2aaca8e021c",7879:"b36610f2ea16d56c2314",7897:"675cc6c7607449d4a91b",8015:"438721731b4171bc6fc3",8031:"55f4df57e71076dbad9f",8134:"48ef42da1c7976cf083c",8395:"a81d0df34460837ccacc",8532:"290194af65a2e3a4120e",8681:"ff27d1f455bf2afb8d70",8714:"79705c1ec254307d2224",8732:"ea1150d6bc360dd86f2e",8873:"d81991295392b6ed83bb",8898:"5600c2eb6d59fa0aa2e2",8970:"9c1758f4fd3391f7f61a",8988:"002faa48c09121928fca",8995:"9b060e8009b3a8be4597",9064:"657aac057f36ad06c58d",9319:"e0cb7cd3890583fd0f6d",9360:"33aac9bbd887273a34b1",9377:"a0118dca2096a101b8e8",9399:"3ddf7dbc114adf90c500",9414:"7293cd5d7205681cf48c",9459:"bfa48615ac92f87ff37a",9465:"55f83c46d753b0b69330",9670:"4bd28b26a7390a09afc2",9738:"d1934c18f12d80493ab1",9757:"bf768bd32e9ff02b0a8a",9780:"1a2de4774f4ddc2b51dd",9790:"9db0336f168aa77ee395",9864:"cb62f86ce78c94d1e813",9871:"af110c8eef232638fc4d",9873:"5527466d349f2954d49b",9895:"f19fa5fe3582463ba73c",9921:"a254cabb8570419cc426",9924:"272ee4735aabc37015dd",9926:"650318c25fe4da92bad8",9978:"6462e8cfd5006cf5b6cf",9979:"22bdbbc77cc3c14ada58",9994:"5ae021308b1c5f6dd8a7"}[e]+".js",l.miniCssF=e=>"static/css/"+e+"."+{1264:"177d0bf6917b317388ae",1325:"715a7f40cdd53f460ef4",6464:"2fa2e5f1fa93842c62b1",8532:"88b90ac86f3060a3144e"}[e]+".css",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="pleroma_fe:",l.l=(e,t,n,i)=>{if(r[e])r[e].push(t);else{var s,a;if(void 0!==n)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var d=c[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==o+n){s=d;break}}s||(a=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,l.nc&&s.setAttribute("nonce",l.nc),s.setAttribute("data-webpack",o+n),s.src=e),r[e]=[t];var p=(t,n)=>{s.onerror=s.onload=null,clearTimeout(h);var o=r[e];if(delete r[e],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),t)return t(n)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),a&&document.head.appendChild(s)}},l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),l.p="/",i=e=>new Promise(((t,n)=>{var r=l.miniCssF(e),o=l.p+r;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var o=(s=n[r]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(o===e||o===t))return s}var i=document.getElementsByTagName("style");for(r=0;r<i.length;r++){var s;if((o=(s=i[r]).getAttribute("data-href"))===e||o===t)return s}})(r,o))return t();((e,t,n,r)=>{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.onerror=o.onload=i=>{if(o.onerror=o.onload=null,"load"===i.type)n();else{var s=i&&("load"===i.type?"missing":i.type),a=i&&i.target&&i.target.href||t,c=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");c.code="CSS_CHUNK_LOAD_FAILED",c.type=s,c.request=a,o.parentNode.removeChild(o),r(c)}},o.href=t,document.head.appendChild(o)})(e,o,t,n)})),s={2143:0},l.f.miniCss=(e,t)=>{s[e]?t.push(s[e]):0!==s[e]&&{1264:1,1325:1,6464:1,8532:1}[e]&&t.push(s[e]=i(e).then((()=>{s[e]=0}),(t=>{throw delete s[e],t})))},(()=>{var e={2143:0};l.f.j=(t,n)=>{var r=l.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,o)=>r=e[t]=[n,o]));n.push(r[2]=o);var i=l.p+l.u(t),s=new Error;l.l(i,(n=>{if(l.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",s.name="ChunkLoadError",s.type=o,s.request=i,r[1](s)}}),"chunk-"+t,t)}},l.O.j=t=>0===e[t];var t=(t,n)=>{var r,o,[i,s,a]=n,c=0;if(i.some((t=>0!==e[t]))){for(r in s)l.o(s,r)&&(l.m[r]=s[r]);if(a)var u=a(l)}for(t&&t(n);c<i.length;c++)o=i[c],l.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return l.O(u)},n=self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var u=l.O(void 0,[9169],(()=>l(78892)));u=l.O(u)})();
-//# sourceMappingURL=app.4c23e08cf351a54f4177.js.map \ No newline at end of file
diff --git a/priv/static/static/js/app.4c23e08cf351a54f4177.js.map b/priv/static/static/js/app.4c23e08cf351a54f4177.js.map
deleted file mode 100644
index fd6d4c66f..000000000
--- a/priv/static/static/js/app.4c23e08cf351a54f4177.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/app.4c23e08cf351a54f4177.js","mappings":"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AC1B,QAAYN,IAAS,MAAQC,UAAWC,GAAeF,EAAI,OAAOE,EAAW,CAAC,8CAA6C,G,iBC9jC/H,IAAIS,EAAM,CACT,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,gBAAiB,CAChB,MACA,KAED,eAAgB,CACf,KACA,MAED,eAAgB,CACf,KACA,MAED,eAAgB,CACf,MACA,IAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,gBAAiB,CAChB,MACA,MAED,eAAgB,CACf,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,eAAgB,CACf,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,oBAAqB,C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,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO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","sources":["webpack://pleroma_fe/webpack/runtime/chunk loaded","webpack://pleroma_fe/webpack/runtime/create fake namespace object","webpack://pleroma_fe/webpack/runtime/load script","webpack://pleroma_fe/webpack/runtime/css loading","webpack://pleroma_fe/./src/i18n/en.json","webpack://pleroma_fe/./node_modules/@kazvmoe-infra/unicode-emoji-json/annotations/ lazy ^\\.\\/.*\\.json$ chunkName: emoji-annotations/[request] namespace object","webpack://pleroma_fe/./src/components/emoji_input/suggestor.js","webpack://pleroma_fe/./src/services/html_converter/utility.service.js","webpack://pleroma_fe/./src/services/html_converter/html_line_converter.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.js","webpack://pleroma_fe/./src/services/matcher/matcher.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue?7c0f","webpack://pleroma_fe/./src/components/rich_content/rich_content.jsx","webpack://pleroma_fe/./src/services/html_converter/html_tree_converter.service.js","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.jsx","webpack://pleroma_fe/./src/i18n/languages.js","webpack://pleroma_fe/./src/i18n/messages.js","webpack://pleroma_fe/./src/lib/event_target_polyfill.js","webpack://pleroma_fe/./src/modules/interface.js","webpack://pleroma_fe/./src/modules/instance.js","webpack://pleroma_fe/./src/modules/statuses.js","webpack://pleroma_fe/./src/modules/lists.js","webpack://pleroma_fe/./src/services/timeline_fetcher/timeline_fetcher.service.js","webpack://pleroma_fe/./src/services/follow_request_fetcher/follow_request_fetcher.service.js","webpack://pleroma_fe/./src/services/lists_fetcher/lists_fetcher.service.js","webpack://pleroma_fe/./src/services/backend_interactor_service/backend_interactor_service.js","webpack://pleroma_fe/./src/services/window_utils/window_utils.js","webpack://pleroma_fe/./src/services/new_api/oauth.js","webpack://pleroma_fe/./src/services/push/push.js","webpack://pleroma_fe/./src/modules/users.js","webpack://pleroma_fe/./src/services/chat_utils/chat_utils.js","webpack://pleroma_fe/./src/modules/api.js","webpack://pleroma_fe/./src/components/update_notification/update_notification.js","webpack://pleroma_fe/./src/modules/serverSideStorage.js","webpack://pleroma_fe/./src/modules/shout.js","webpack://pleroma_fe/./src/modules/oauth.js","webpack://pleroma_fe/./src/modules/auth_flow.js","webpack://pleroma_fe/./src/modules/media_viewer.js","webpack://pleroma_fe/./src/modules/oauth_tokens.js","webpack://pleroma_fe/./src/modules/reports.js","webpack://pleroma_fe/./src/modules/polls.js","webpack://pleroma_fe/./src/modules/postStatus.js","webpack://pleroma_fe/./src/modules/editStatus.js","webpack://pleroma_fe/./src/modules/statusHistory.js","webpack://pleroma_fe/./src/services/chat_service/chat_service.js","webpack://pleroma_fe/./src/modules/chats.js","webpack://pleroma_fe/./src/modules/announcements.js","webpack://pleroma_fe/./src/lib/persisted_state.js","webpack://pleroma_fe/./src/lib/push_notifications_plugin.js","webpack://pleroma_fe/./src/App.vue","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/login_form/login_form.js","webpack://pleroma_fe/./src/components/login_form/login_form.vue?7e2c","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue","webpack://pleroma_fe/./src/services/new_api/mfa.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue?75db","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue","webpack://pleroma_fe/./src/components/mfa_form/totp_form.js","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue?e31f","webpack://pleroma_fe/./src/components/auth_form/auth_form.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue?62d1","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation.js","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue?aa8e","webpack://pleroma_fe/./src/components/navigation/navigation_entry.js","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue?57fe","webpack://pleroma_fe/./src/components/navigation/filter.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue?5439","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.js","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue?9359","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.js","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue?ec9c","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.js","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue?b4d3","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.js","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue?e52c","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.js","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue?c79e","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.js","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue?452f","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.js","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue?6a4b","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue","webpack://pleroma_fe/./src/services/gesture_service/gesture_service.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue?cb15","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.js","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue?9f8e","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.js","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue?c115","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.js","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue?cc2d","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.js","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue?67f1","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.js","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue?d1ca","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.js","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue?6641","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.js","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue?df82","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.js","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue?03f9","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.js","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue?9c44","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.js","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue?4ee0","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.js","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue?1667","webpack://pleroma_fe/./src/App.js","webpack://pleroma_fe/./src/App.vue?3b2b","webpack://pleroma_fe/./src/components/timeline/timeline.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.js","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue?7311","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.js","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue?f71f","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.js","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue?4eaf","webpack://pleroma_fe/./src/components/conversation/conversation.js","webpack://pleroma_fe/./src/components/conversation/conversation.vue?6723","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.js","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue?96c1","webpack://pleroma_fe/./src/components/timeline/timeline.js","webpack://pleroma_fe/./src/components/timeline/timeline.vue?7060","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.js","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue?daf2","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.js","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue?9b62","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.js","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue?a3f1","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.js","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue?be7b","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.js","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue?863c","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.js","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue?2386","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue","webpack://pleroma_fe/./src/components/interactions/interactions.vue","webpack://pleroma_fe/./src/components/interactions/interactions.js","webpack://pleroma_fe/./src/components/interactions/interactions.vue?3dc7","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.js","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue?fced","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue","webpack://pleroma_fe/./src/components/chat_title/chat_title.js","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue?723f","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.js","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue?9103","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.js","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue?e65f","webpack://pleroma_fe/./src/components/chat_list/chat_list.js","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue?39cf","webpack://pleroma_fe/./src/components/chat/chat.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue?a1e2","webpack://pleroma_fe/./src/components/chat_message/chat_message.js","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue?38f9","webpack://pleroma_fe/./src/components/chat/chat_layout_utils.js","webpack://pleroma_fe/./src/components/chat/chat.js","webpack://pleroma_fe/./src/components/chat/chat.vue?0265","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.js","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue?a06d","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.js","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue?a7d5","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.jsx","webpack://pleroma_fe/./src/components/user_profile/user_profile.js","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue?c6a1","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/search/search.js","webpack://pleroma_fe/./src/components/search/search.vue?853e","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/registration/registration.js","webpack://pleroma_fe/./src/components/registration/registration.vue?5788","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.js","webpack://pleroma_fe/./src/services/new_api/password_reset.js","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue?e9fd","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.js","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.js","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue?64bb","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue?427b","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.js","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue?a7e1","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.js","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue?d712","webpack://pleroma_fe/./src/components/about/about.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.js","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue?39d2","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.js","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue?16a1","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.js","webpack://pleroma_fe/./src/components/about/about.js","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?cbb1","webpack://pleroma_fe/./src/components/about/about.vue?07c3","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.js","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue?ac33","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.js","webpack://pleroma_fe/./src/components/lists/lists.js","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue?16e6","webpack://pleroma_fe/./src/components/lists/lists.vue?7e21","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.js","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue?804f","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.js","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue?4447","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.js","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue?056b","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.js","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue?cdb9","webpack://pleroma_fe/./src/components/announcement/announcement.js","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.js","webpack://pleroma_fe/./src/components/announcement/announcement.vue?a400","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue?89ce","webpack://pleroma_fe/./src/boot/routes.js","webpack://pleroma_fe/./src/directives/body_scroll_lock.js","webpack://pleroma_fe/./src/boot/after_store.js","webpack://pleroma_fe/./src/main.js","webpack://pleroma_fe/./src/modules/config.js","webpack://pleroma_fe/./src/modules/serverSideConfig.js","webpack://pleroma_fe/./src/services/errors/errors.js","webpack://pleroma_fe/./src/modules/errors.js","webpack://pleroma_fe/./src/services/api/api.service.js","webpack://pleroma_fe/./src/services/color_convert/color_convert.js","webpack://pleroma_fe/./src/services/component_utils/component_utils.js","webpack://pleroma_fe/./src/services/date_utils/date_utils.js","webpack://pleroma_fe/./src/services/desktop_notification_utils/desktop_notification_utils.js","webpack://pleroma_fe/./src/services/entity_normalizer/entity_normalizer.service.js","webpack://pleroma_fe/./src/services/favicon_service/favicon_service.js","webpack://pleroma_fe/./src/services/file_size_format/file_size_format.js","webpack://pleroma_fe/./src/services/file_type/file_type.service.js","webpack://pleroma_fe/./src/services/locale/locale.service.js","webpack://pleroma_fe/./src/services/notification_utils/notification_utils.js","webpack://pleroma_fe/./src/services/notifications_fetcher/notifications_fetcher.service.js","webpack://pleroma_fe/./src/services/offset_finder/offset_finder.service.js","webpack://pleroma_fe/./src/services/promise_interval/promise_interval.js","webpack://pleroma_fe/./src/services/status_parser/status_parser.js","webpack://pleroma_fe/./src/services/status_poster/status_poster.service.js","webpack://pleroma_fe/./src/services/style_setter/style_setter.js","webpack://pleroma_fe/./src/services/theme_data/pleromafe.js","webpack://pleroma_fe/./src/services/theme_data/theme_data.service.js","webpack://pleroma_fe/./src/services/user_highlighter/user_highlighter.js","webpack://pleroma_fe/./src/services/user_profile_link_generator/user_profile_link_generator.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue","webpack://pleroma_fe/./src/components/attachment/attachment.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue?6808","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.js","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue?171c","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.js","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue?95ff","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue?4d95","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/services/completion/completion.js","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.js","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue?6411","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.js","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue?cc95","webpack://pleroma_fe/./src/services/ruffle_service/ruffle_service.js","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/flash/flash.js","webpack://pleroma_fe/./src/components/flash/flash.vue?8f01","webpack://pleroma_fe/./src/services/follow_manipulate/follow_manipulate.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue?fbc0","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/gallery/gallery.js","webpack://pleroma_fe/./src/components/gallery/gallery.vue?c41d","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue?f2c7","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/link-preview/link-preview.js","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue?5c9b","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/list/list.vue?b52f","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.js","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue?f0cb","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.js","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue?e8e7","webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./src/components/modal/modal.vue?8c58","webpack://pleroma_fe/./src/components/notifications/notifications.vue","webpack://pleroma_fe/./src/components/notification/notification.vue","webpack://pleroma_fe/./src/components/report/report.vue","webpack://pleroma_fe/./src/components/report/report.js","webpack://pleroma_fe/./src/components/report/report.vue?5c84","webpack://pleroma_fe/./src/components/notification/notification.js","webpack://pleroma_fe/./src/components/notification/notification.vue?17c8","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue?4a98","webpack://pleroma_fe/./src/components/notifications/notifications.js","webpack://pleroma_fe/./src/components/notifications/notifications.vue?770b","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue?50c2","webpack://pleroma_fe/./src/components/popover/popover.js","webpack://pleroma_fe/./src/components/popover/popover.vue?237b","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.js","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue?73d1","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/poll/poll_form.js","webpack://pleroma_fe/./src/components/poll/poll_form.vue?5434","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.js","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue?b98e","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue?2d10","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.js","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue?188a","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.js","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue?cbff","webpack://pleroma_fe/./src/components/select/select.js","webpack://pleroma_fe/./src/components/select/select.vue?fa00","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/status/status.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.js","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue?f8cc","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.js","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue?4c13","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.js","webpack://pleroma_fe/./src/components/react_button/react_button.vue?64d4","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.js","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue?774a","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.js","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue?2a14","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.js","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue?2f31","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.js","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue?32eb","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.js","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue?be26","webpack://pleroma_fe/./src/components/status/status.js","webpack://pleroma_fe/./src/components/status/status.vue?f274","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/poll/poll.js","webpack://pleroma_fe/./src/components/poll/poll.vue?09ad","webpack://pleroma_fe/./src/components/status_body/status_body.vue","webpack://pleroma_fe/./src/components/status_body/status_body.js","webpack://pleroma_fe/./src/components/status_body/status_body.vue?a029","webpack://pleroma_fe/./src/components/status_content/status_content.js","webpack://pleroma_fe/./src/components/status_content/status_content.vue?5b7b","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/still-image/still-image.js","webpack://pleroma_fe/./src/components/still-image/still-image.vue?7a8d","webpack://pleroma_fe/./src/components/timeago/timeago.vue","webpack://pleroma_fe/./src/components/timeago/timeago.vue?3167","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue?760a","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.js","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue?84fc","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/user_card/user_card.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.js","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue?60df","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.js","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue?98d7","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.js","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue?e3cb","webpack://pleroma_fe/./src/components/account_actions/account_actions.js","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue?26a0","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_note/user_note.js","webpack://pleroma_fe/./src/components/user_note/user_note.vue?302a","webpack://pleroma_fe/./src/components/user_card/user_card.js","webpack://pleroma_fe/./src/components/user_card/user_card.vue?bb36","webpack://pleroma_fe/./src/components/user_link/user_link.vue","webpack://pleroma_fe/./src/components/user_link/user_link.vue?e5f2","webpack://pleroma_fe/./src/components/user_popover/user_popover.js","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue?dfdb","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.js","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue?da03","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue","webpack://pleroma_fe/./src/i18n/ lazy ^\\.\\/.*\\.json$ include: \\.json$ chunkName: i18n/[request] namespace object","webpack://pleroma_fe/webpack/bootstrap","webpack://pleroma_fe/webpack/runtime/compat get default export","webpack://pleroma_fe/webpack/runtime/define property getters","webpack://pleroma_fe/webpack/runtime/ensure chunk","webpack://pleroma_fe/webpack/runtime/get javascript chunk filename","webpack://pleroma_fe/webpack/runtime/get mini-css chunk filename","webpack://pleroma_fe/webpack/runtime/global","webpack://pleroma_fe/webpack/runtime/hasOwnProperty shorthand","webpack://pleroma_fe/webpack/runtime/make namespace object","webpack://pleroma_fe/webpack/runtime/node module decorator","webpack://pleroma_fe/webpack/runtime/publicPath","webpack://pleroma_fe/webpack/runtime/jsonp chunk loading","webpack://pleroma_fe/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"pleroma_fe:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = (chunkId, fullhref, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"1264\":1,\"1325\":1,\"6464\":1,\"8532\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","export default {\n \"about\": {\n \"mrf\": {\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federation\"])},\n \"keyword\": {\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keyword policies\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"The Whole Known Network\\\" Timeline\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replace\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enabled MRF policies\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:\"])},\n \"simple\": {\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance-specific policies\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N/A\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance only accepts messages from the following instances:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will not accept messages from the following instances:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quarantine\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will send only public posts to the following instances:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"Known Network\\\" Timeline\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes these instances from \\\"Known Network\\\" timeline:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media Removal\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes media from posts on the following instances:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media force-set as sensitive\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance forces media to be set sensitive in posts on the following instances:\"])}\n }\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Staff\"])}\n },\n \"announcements\": {\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcement\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark as read\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post announcement\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your announcement content here...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start time: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"End time: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is an all-day event\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Published at \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Starts at \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ends at \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This announcement is inactive\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])}\n },\n \"domain_mute_card\": {\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Processing, you'll soon be asked to download your file\"])}\n },\n \"features_panel\": {\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma Chat\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media proxy\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope options\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text limit\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Features\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload limit\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error fetching user\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Find user\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loading…\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"An error occured: \", _interpolate(_list(0))])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please try again\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"optional\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show more\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show less\"])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Never show again\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dismiss\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verify\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Undo\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peek\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scroll to top\"])},\n \"role\": {\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderator\"])}\n },\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin item\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin item\"])},\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click to show Flash content using Ruffle (Experimental, may not work).\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note that this can be potentially dangerous since Flash content is still arbitrary code.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to load flash content, see console for details.\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted\"])}\n }\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crop picture\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save without cropping\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imported successfully.\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured while importing this file.\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in with OAuth\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log out\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in to join the discussion\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication code\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a recovery code\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a two-factor code\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery code\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor authentication\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor recovery\"])}\n }\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close media viewer\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"About\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow requests\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interactions\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct messages\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public timeline\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timeline\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home timeline\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Known Network\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmarks\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Search\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timelines\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Customize navigation bar\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit pinned items\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Done editing\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggle mobile sidebar\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications (there are unread ones)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close notifications\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown status, searching for it…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching notifications: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorited your status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"followed you\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wants to follow you\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older notifications\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Read!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated your status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more notifications\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrated to\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reacted with \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"submitted a report\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poll has ended\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add poll\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add option\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Option\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"votes\"])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" person voted\"]), _normalize([_interpolate(_named(\"count\")), \" people voted\"])])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" vote\"]), _normalize([_interpolate(_named(\"count\")), \" votes\"])])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vote\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll type\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Single choice\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Multiple choices\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll age\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ends in \", _interpolate(_list(0))])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ended \", _interpolate(_list(0)), \" ago\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Too few unique options in poll\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stickers\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep picker open\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for an emoji\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insert emoji\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom emoji\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode emoji\"])},\n \"unicode_groups\": {\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activities\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Animals & Nature\"])},\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flags\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Food & Drink\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Objects\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People & Body\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Smileys & Emotion\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Symbols\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Travel & Places\"])}\n },\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loaded first \", _interpolate(_named(\"saneAmount\")), \" emoji, loading all emoji may cause performance issues.\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loading all \", _interpolate(_named(\"emojiAmount\")), \" emoji\"])},\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Regional indicator \", _interpolate(_named(\"letter\"))])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies.\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats and favorites\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New follows\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji Reactions\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reports\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User migrates\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older interactions\"])}\n },\n \"post_status\": {\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post new status\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your account is not \", _interpolate(_list(0)), \". Anyone can follow you to view your follower-only posts.\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"locked\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark attachments as sensitive\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media description\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Plain text\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subject (optional)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to all the mentioned users.\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will only be visible to the mentioned users at the beginning of the message.\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other remote instances may not support editing and unable to receive the latest version of your post.\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma does not support editing mentions or polls.\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posting\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Empty\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Can't post an empty status with no files\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to update media, try again\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to everyone\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to your followers only\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will not be visible in Public Timeline and The Whole Known Network\"])}\n },\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct - post to mentioned users only\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only - post to followers only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public - post to public timelines\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted - do not post to public timelines\"])}\n }\n },\n \"registration\": {\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio (optional)\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email (optional)\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display name\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invite token\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click the image to get a new captcha\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. Lain Iwakura\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g.\\nHi, I'm Lain.\\nI’m an anime girl living in suburban Japan. You may know me from the Wired.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason to register\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance approves registrations manually.\\nLet the administration know why you want to register.\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"should be the same as password\"])}\n },\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"In which language do you want to receive emails from the server?\"])}\n },\n \"remote_user_resolver\": {\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote user resolver\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Searching for\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not found.\"])}\n },\n \"report\": {\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reporter:\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported user:\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported statuses:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notes:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"State:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Closed\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resolved\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select all\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App name\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show advanced\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setting is different from default\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This setting is tied to your profile and affects all sessions and clients\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your current password to confirm your identity\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts Look & Feel\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention links\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setup OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"presetting OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm & enable OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor Authentication\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Generate new recovery codes\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When you generate new recovery codes, your old codes won’t work anymore.\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery codes.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receiving backup codes…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account.\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication methods\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scan\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Using your two-factor app, scan this QR code or enter text key:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Key\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To enable two-factor authentication, enter the code from your two-factor app:\"])}\n }\n },\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show lists in navigation\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow auto-follow when following account moves\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatar\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars (notifications)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language for receiving emails from the server\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block export\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your blocks to a csv file\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block import\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing blocks\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks imported! Processing them will take a while.\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute export\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your mutes to a csv file\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute import\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing mutes\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes imported! Processing them will take a while.\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import mutes from a csv file\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account backup\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Download\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This backup is not ready yet.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching backup list: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create a new backup\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Added a new backup.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding a new backup: \", _interpolate(_named(\"error\"))])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is a bot account\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blue (Reply, follow)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Green (Retweet)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Orange (Favorite)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Red (Cancel)\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change email\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your email.\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email changed successfully!\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change password\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your password.\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password changed successfully!\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chat message\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse posts with subjects\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Composing\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm new password\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes and Blocks\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data import / export\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default visibility scope\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permanently delete your data and deactivate your account.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue deleting your account. If this persists please contact your instance administrator.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your password in the input below to confirm account deletion.\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aliases\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching aliases: \", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove this alias\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Add a new alias (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias is added.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding alias: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Move account\"])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you want to move the account somewhere else, you must go to your target account and add an alias pointing here.\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Target account (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account is moved.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error moving account: \", _interpolate(_named(\"error\"))])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow discovery of this account in search results and other services\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domains\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The recommended minimum size for avatar images is 150x150 pixels.\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pad emoji with spaces when adding from picker\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show emoji reactions on timeline\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save preset\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtering\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wordfilter\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All statuses containing these words will be muted, one per line\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Word filter and more...\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow export\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your follows to a csv file\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow import\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing followers\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows imported! Processing them will take a while.\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accent\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foreground\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"General\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in conversations\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in timeline\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide media previews\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide posts of muted users\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute bot posts\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide bot indication in posts\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted posts\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum amount of thumbnails per post (empty = no limit)\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance-specific panel\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance shoutbox\"])},\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reverse order of columns\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stretch navbar to columns width\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show floating New Post button\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance wallpaper\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preload images\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open NSFW attachments with just one click\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide post statistics (e.g. the number of favorites)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide user statistics (e.g. the number of followers)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide all filtered posts\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide word-filtered statuses\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted threads\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import blocks from a csv file\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import follows from a csv file\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load preset\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Checkboxes\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(default: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(default)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface language\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma theme. No changes to your theme were made.\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unavailable in your browser\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Links\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restrict your account to approved followers only\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop videos\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop only videos without sound (i.e. Mastodon's \\\"gifs\\\")\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Play videos in a popup frame\"])},\n \"file_export_import\": {\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings backup\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings to file\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings and theme to file\"])},\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restore settings from file\"])},\n \"errors\": {\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma settings backup. No changes were made.\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", this PleromaFE (settings ver \", _interpolate(_named(\"feMajor\")), \") is too old to handle it\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", file version is too old and not supported (min. set. ver. \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File minor version is different, some settings might not load\"])}\n }\n },\n \"profile_fields\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile metadata\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add field\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])},\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])}\n },\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't crop the attachment in thumbnails\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name & bio\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Profiles\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Types of notifications to show\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Migrates\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reactions\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ends of polls you voted in\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Strip rich text formatting from all posts\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No blocks\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No mutes\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show list of my favorites (people still get notified)\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who I'm following\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who's following me\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follow count\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follower count\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Admin\\\" badge in my profile\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Moderator\\\" badge in my profile\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide sensitive/NSFW media\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth tokens\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Refresh token\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valid until\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panels\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause when tab is not focused\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Presets\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile background\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile banner\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set up interface edge rounding (in pixels)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies in timeline\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all replies\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me or users I'm following\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to my follows\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to self only\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically hide New Post button (mobile)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error saving settings\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings saved\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to block\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to mute\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy scope when replying (DMs are always copied)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimize post scope selection options\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new avatar\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile background\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile banner\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset avatar\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile background\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile banner\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the avatar?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the banner?\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the background?\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show subject field\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy subject when replying\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like email: \\\"re: subject\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like mastodon: copy as is\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not copy\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation display style\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree-style\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree view\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't stick column headers to top of the screen\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show side column's scrollbars\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When there's enough space, show third column containing\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show third column at all\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications column\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Main post form and navigation\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Columns\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Column sizes\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sidebar\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow more flexible navigation in tree view\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display ancestors of the current status in faint text\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear-style\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear view\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show the \\\"other replies\\\" button\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Below statuses\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inside statuses\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum number of levels in thread to display by default\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post status content type\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark posts as sensitive by default\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause animated images until you hover on them\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically show new posts when scrolled to the top\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new posts automatically\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Users\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receive posts and notifications real-time\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use websockets (Realtime updates)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use hex color codes (#rrggbb) to customize your color theme.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can also override certain component's colors and opacity by toggling the checkbox, use \\\"Clear all\\\" button to clear all overrides.\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips/alerts\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search domains to mute\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload a photo\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"yes\"])}\n },\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Optimize timeline rendering\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display \", \"@\", \" symbol as an icon instead of text\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display mention links\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as short names (e.g. \", \"@\", \"foo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"as full names only for remote users (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as full names (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user card when clicking mention links\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar beside the link\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar next to mentions\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fade domains (e.g. \", \"@\", \"example.org in \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlight mention of you when you are mentioned\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popover avatar click action\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zoom the avatar\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close the popover\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open profile\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user popover over user avatar\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fun\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme arrows\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show (You)s\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filters\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block notifications from users who you do not follow\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide the sender and contents of push notifications\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To stop receiving notifications from a specific user, use a mute.\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking a user stops all notifications as well as unsubscribes them.\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable web push notifications\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More settings\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep colors\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep shadows\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep opacity\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep roundness\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep fonts\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"Keep\\\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear all\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear opacity\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load theme\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep as is\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Old version\"])},\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New version\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE has been upgraded, theme could look a little bit different than you remember.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in newer version of FE.\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in older version of FE.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No theme snapshot was in the file so it could look different than originally envisioned.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's theme engine upgraded after version update.\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's version rolled back.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just to be safe, theme snapshot loaded. You can try loading theme data.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For whatever reason snapshot was missing, some stuff could look different than you remember.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.\"])}\n }\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Color\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opacity\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Contrast ratio is \", _interpolate(_named(\"ratio\")), \", it \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AA guideline (minimal)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AAA guideline (recommended)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"doesn't meet any accessibility guidelines\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for large (18pt+) text\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for text\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common colors\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"See \\\"Advanced\\\" tab for more detailed control\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons, accents, badges\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Advanced\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alert background\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Warning\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neutral\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts/User bios\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Badge background\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips, menus, popovers\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notification\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Borders\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Faded text\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Underlay\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wallpaper\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll graph\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlighted elements\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pressed\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected post\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected menu item\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disabled\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggled\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tabs\"])},\n \"chat\": {\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Incoming\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Outgoing\"])},\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Border\"])}\n }\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roundness\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadow and lighting\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Component\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Override\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Shadow #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blur\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spread\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inset\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"For shadows you can also use the \", _interpolate(_list(0)), \" notation to use other color slot.\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Warning, this shadow always uses \", _interpolate(_list(0)), \" when browser supports it.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" does not support \", _interpolate(_list(1)), \" parameter and \", _interpolate(_list(2)), \" keyword.\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadows with spread > 0 will appear as if it was set to zero\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Inset shadows will be using \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in profile view)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in post display)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popups and tooltips\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (hover)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed+hover)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input field\"])}\n }\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fonts\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select font to use for elements of UI. For \\\"custom\\\" you have to enter exact font name as it appears in system.\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post text\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monospaced text in a post (rich text)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Font name\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Size (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weight (boldness)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Example error\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"A bunch of more \", _interpolate(_list(0)), \" and \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"content\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"helpful manual\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Read our \", _interpolate(_list(0)), \" to learn nothing useful!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is fine\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I have skimmed over terms and conditions\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a nice lil' link\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backend version\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Frontend version\"])}\n }\n },\n \"time\": {\n \"unit\": {\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" day\"]), _normalize([_interpolate(_list(0)), \" days\"])])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" hour\"]), _normalize([_interpolate(_list(0)), \" hours\"])])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" minute\"]), _normalize([_interpolate(_list(0)), \" minutes\"])])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" month\"]), _normalize([_interpolate(_list(0)), \" months\"])])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" second\"]), _normalize([_interpolate(_list(0)), \" seconds\"])])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" week\"]), _normalize([_interpolate(_list(0)), \" weeks\"])])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" year\"]), _normalize([_interpolate(_list(0)), \" years\"])])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])}\n },\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"in \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" ago\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"just now\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"now\"])}\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching timeline: \", _interpolate(_list(0))])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older statuses\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post is marked as followers-only or direct and cannot be repeated\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reload\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Up-to-date\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more statuses\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No statuses\"])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Realtime connection established\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Realtime connection lost: CloseEvent code \", _interpolate(_list(0))])},\n \"quick_view_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick view settings\"])},\n \"quick_filter_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick filter settings\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete status\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(last edited \", _interpolate(_named(\"time\")), \")\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin on profile\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin from profile\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pinned\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unbookmark\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this status?\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply to\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies:\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" other):\"]), _normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" others):\"])])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute conversation\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute conversation\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status unavailable\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy link to status\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"External source\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Thread muted\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", has words:\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show full subject\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide full subject\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show content\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide content\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post was deleted\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(You)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"+\", _interpolate(_named(\"number\")), \" more\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Post has \", _interpolate(_named(\"number\")), \" attachment(s)\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse attachments\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all attachments\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show in media modal\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview description (open attachment for full description)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachment\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove attachment\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stop Flash player\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment left\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment right\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open gallery\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide this thread\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show this thread\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" status in total, max depth \", _interpolate(_named(\"depth\")), \")\"]), _normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total, max depth \", _interpolate(_named(\"depth\")), \")\"])])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" status in total)\"]), _normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total)\"])])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other reply under this status\"]), _normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other replies under this status\"])])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other status)\"]), _normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other statuses)\"])])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies to this status\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status history\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocked!\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivated\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel request\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Request sent!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Requesting…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows you!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"It's you!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Message\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muted\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per day\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote follow\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove follower\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Report\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statuses\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subscribe\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unsubscribe\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblock\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblocking…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide repeats\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show repeats\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bot\"])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderation\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Admin\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Admin\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Moderator\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Moderator\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivate account\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark all posts as NSFW\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove media from posts\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be unlisted\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be followers-only\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user from remote instances\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user at all\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow user posts from federating\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This will permanently delete the data from this account and deactivate it. Are you absolutely sure?\"])}\n },\n \"highlight\": {\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No highlight\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solid bg\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Striped bg\"])},\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Side stripe\"])}\n },\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(None)\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit note\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User timeline\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, this profile does not exist.\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, there was an error loading this profile.\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Reporting \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Additional comments\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The account is from another server. Send a copy of the report there as well?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Forward to \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred while processing your request.\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload media\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorite\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add Reaction\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept follow request\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject follow request\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to show post in full\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to reveal muted content\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload failed.\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Upload failed: \", _interpolate(_list(0))])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"File too big [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again later\"])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hashtags\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" person talking\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" people talking\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No results\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more results\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more results\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your email address or username. We will send you a link to reset your password.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your email or username\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email for a link to reset your password.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Return to the home page\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have reached the limit of attempts, try again later.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset is disabled. Please contact your instance administrator.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password to log in.\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password, but password reset is disabled. Please contact your instance administrator.\"])}\n },\n \"chats\": {\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Message \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New Chat\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cannot post empty message\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this message?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when loading the chat.\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when sending the message.\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You don't have any chats yet. Start a new chat!\"])}\n },\n \"lists\": {\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New List\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List title\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search users\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete list\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit to Following\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage lists\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage list members\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for more users\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove from list\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add to list\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already in list\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Editing list \", _interpolate(_named(\"listTitle\"))])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Creating new list\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save Title\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Really delete list?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error manipulating lists: \", _interpolate(_list(0))])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Audio\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Video\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Today\"])}\n },\n \"update\": {\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please bear with us\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"We haven't had a release in a while, so things might look and feel different than what you're used to.\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Please report any issues and bugs on \", _interpolate(_named(\"pleromaGitlab\")), \", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE.\"])},\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"For more details on what's changed, see \", _interpolate(_named(\"theFullChangelog\")), \".\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"the full changelog\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Art by \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This domain contains non-ascii characters.\"])}\n }\n}","var map = {\n\t\"./af.json\": [\n\t\t44919,\n\t\t6355\n\t],\n\t\"./am.json\": [\n\t\t53139,\n\t\t5119\n\t],\n\t\"./ar.json\": [\n\t\t44557,\n\t\t9873\n\t],\n\t\"./ar_SA.json\": [\n\t\t23450,\n\t\t7360\n\t],\n\t\"./as.json\": [\n\t\t44359,\n\t\t3377\n\t],\n\t\"./ast.json\": [\n\t\t13764,\n\t\t7569\n\t],\n\t\"./az.json\": [\n\t\t86459,\n\t\t2342\n\t],\n\t\"./be.json\": [\n\t\t50866,\n\t\t7304\n\t],\n\t\"./bg.json\": [\n\t\t26219,\n\t\t3974\n\t],\n\t\"./bn.json\": [\n\t\t69178,\n\t\t9064\n\t],\n\t\"./br.json\": [\n\t\t67871,\n\t\t6148\n\t],\n\t\"./bs.json\": [\n\t\t75340,\n\t\t8134\n\t],\n\t\"./ca.json\": [\n\t\t86914,\n\t\t4691\n\t],\n\t\"./ccp.json\": [\n\t\t73872,\n\t\t1162\n\t],\n\t\"./ceb.json\": [\n\t\t64478,\n\t\t9790\n\t],\n\t\"./chr.json\": [\n\t\t61017,\n\t\t6869\n\t],\n\t\"./ckb.json\": [\n\t\t56412,\n\t\t2656\n\t],\n\t\"./cs.json\": [\n\t\t8888,\n\t\t4710\n\t],\n\t\"./cy.json\": [\n\t\t25392,\n\t\t6272\n\t],\n\t\"./da.json\": [\n\t\t35042,\n\t\t1596\n\t],\n\t\"./de.json\": [\n\t\t35169,\n\t\t6226\n\t],\n\t\"./de_CH.json\": [\n\t\t28246,\n\t\t7164\n\t],\n\t\"./doi.json\": [\n\t\t59784,\n\t\t4209\n\t],\n\t\"./dsb.json\": [\n\t\t60634,\n\t\t1790\n\t],\n\t\"./el.json\": [\n\t\t98338,\n\t\t7879\n\t],\n\t\"./en.json\": [\n\t\t74990,\n\t\t5728\n\t],\n\t\"./en_001.json\": [\n\t\t62736,\n\t\t577\n\t],\n\t\"./en_AU.json\": [\n\t\t2597,\n\t\t9360\n\t],\n\t\"./en_CA.json\": [\n\t\t1516,\n\t\t4879\n\t],\n\t\"./en_GB.json\": [\n\t\t84830,\n\t\t50\n\t],\n\t\"./en_IN.json\": [\n\t\t71809,\n\t\t8988\n\t],\n\t\"./es.json\": [\n\t\t61148,\n\t\t6831\n\t],\n\t\"./es_419.json\": [\n\t\t25696,\n\t\t8873\n\t],\n\t\"./es_MX.json\": [\n\t\t11915,\n\t\t2699\n\t],\n\t\"./es_US.json\": [\n\t\t87826,\n\t\t3313\n\t],\n\t\"./et.json\": [\n\t\t66641,\n\t\t3276\n\t],\n\t\"./eu.json\": [\n\t\t6541,\n\t\t2992\n\t],\n\t\"./fa.json\": [\n\t\t43305,\n\t\t5521\n\t],\n\t\"./fi.json\": [\n\t\t40752,\n\t\t420\n\t],\n\t\"./fil.json\": [\n\t\t26843,\n\t\t1236\n\t],\n\t\"./fo.json\": [\n\t\t43032,\n\t\t8995\n\t],\n\t\"./fr.json\": [\n\t\t80898,\n\t\t2223\n\t],\n\t\"./fr_CA.json\": [\n\t\t54515,\n\t\t1821\n\t],\n\t\"./ga.json\": [\n\t\t66572,\n\t\t4571\n\t],\n\t\"./gd.json\": [\n\t\t9185,\n\t\t6116\n\t],\n\t\"./gl.json\": [\n\t\t23840,\n\t\t6126\n\t],\n\t\"./gu.json\": [\n\t\t85811,\n\t\t7261\n\t],\n\t\"./ha.json\": [\n\t\t91566,\n\t\t227\n\t],\n\t\"./ha_NE.json\": [\n\t\t3400,\n\t\t5304\n\t],\n\t\"./he.json\": [\n\t\t26260,\n\t\t5548\n\t],\n\t\"./hi.json\": [\n\t\t18136,\n\t\t5968\n\t],\n\t\"./hi_Latn.json\": [\n\t\t95638,\n\t\t3056\n\t],\n\t\"./hr.json\": [\n\t\t77435,\n\t\t2861\n\t],\n\t\"./hsb.json\": [\n\t\t15758,\n\t\t8015\n\t],\n\t\"./hu.json\": [\n\t\t2727,\n\t\t4902\n\t],\n\t\"./hy.json\": [\n\t\t8397,\n\t\t6344\n\t],\n\t\"./ia.json\": [\n\t\t49796,\n\t\t6936\n\t],\n\t\"./id.json\": [\n\t\t56635,\n\t\t9465\n\t],\n\t\"./ig.json\": [\n\t\t26406,\n\t\t9895\n\t],\n\t\"./is.json\": [\n\t\t51391,\n\t\t7300\n\t],\n\t\"./it.json\": [\n\t\t54879,\n\t\t8970\n\t],\n\t\"./ja.json\": [\n\t\t2971,\n\t\t1290\n\t],\n\t\"./jv.json\": [\n\t\t18644,\n\t\t2479\n\t],\n\t\"./ka.json\": [\n\t\t71255,\n\t\t6068\n\t],\n\t\"./kab.json\": [\n\t\t92892,\n\t\t9780\n\t],\n\t\"./kk.json\": [\n\t\t46419,\n\t\t2873\n\t],\n\t\"./kl.json\": [\n\t\t2227,\n\t\t2397\n\t],\n\t\"./km.json\": [\n\t\t65729,\n\t\t1404\n\t],\n\t\"./kn.json\": [\n\t\t65611,\n\t\t278\n\t],\n\t\"./ko.json\": [\n\t\t67080,\n\t\t2966\n\t],\n\t\"./kok.json\": [\n\t\t47209,\n\t\t2599\n\t],\n\t\"./ku.json\": [\n\t\t18738,\n\t\t2883\n\t],\n\t\"./ky.json\": [\n\t\t89690,\n\t\t4785\n\t],\n\t\"./lb.json\": [\n\t\t3929,\n\t\t4770\n\t],\n\t\"./lo.json\": [\n\t\t19778,\n\t\t7464\n\t],\n\t\"./lt.json\": [\n\t\t41683,\n\t\t7169\n\t],\n\t\"./lv.json\": [\n\t\t54873,\n\t\t8898\n\t],\n\t\"./mai.json\": [\n\t\t11781,\n\t\t1613\n\t],\n\t\"./mi.json\": [\n\t\t11569,\n\t\t6701\n\t],\n\t\"./mk.json\": [\n\t\t67589,\n\t\t9921\n\t],\n\t\"./ml.json\": [\n\t\t24415,\n\t\t2685\n\t],\n\t\"./mn.json\": [\n\t\t50512,\n\t\t4718\n\t],\n\t\"./mni.json\": [\n\t\t81597,\n\t\t5401\n\t],\n\t\"./mr.json\": [\n\t\t97747,\n\t\t1911\n\t],\n\t\"./ms.json\": [\n\t\t81588,\n\t\t9924\n\t],\n\t\"./mt.json\": [\n\t\t25081,\n\t\t9399\n\t],\n\t\"./my.json\": [\n\t\t8608,\n\t\t6790\n\t],\n\t\"./ne.json\": [\n\t\t8572,\n\t\t9377\n\t],\n\t\"./nl.json\": [\n\t\t52355,\n\t\t6773\n\t],\n\t\"./nn.json\": [\n\t\t52874,\n\t\t9414\n\t],\n\t\"./no.json\": [\n\t\t48005,\n\t\t9979\n\t],\n\t\"./or.json\": [\n\t\t26728,\n\t\t1012\n\t],\n\t\"./pa.json\": [\n\t\t15042,\n\t\t6946\n\t],\n\t\"./pa_Arab.json\": [\n\t\t43578,\n\t\t9994\n\t],\n\t\"./pcm.json\": [\n\t\t91163,\n\t\t5104\n\t],\n\t\"./pl.json\": [\n\t\t61335,\n\t\t1095\n\t],\n\t\"./ps.json\": [\n\t\t51828,\n\t\t678\n\t],\n\t\"./pt.json\": [\n\t\t38543,\n\t\t5041\n\t],\n\t\"./pt_PT.json\": [\n\t\t8063,\n\t\t1546\n\t],\n\t\"./qu.json\": [\n\t\t15821,\n\t\t8031\n\t],\n\t\"./rm.json\": [\n\t\t5014,\n\t\t5887\n\t],\n\t\"./ro.json\": [\n\t\t34064,\n\t\t9864\n\t],\n\t\"./ru.json\": [\n\t\t95222,\n\t\t8395\n\t],\n\t\"./rw.json\": [\n\t\t12710,\n\t\t346\n\t],\n\t\"./sa.json\": [\n\t\t69343,\n\t\t2243\n\t],\n\t\"./sat.json\": [\n\t\t51243,\n\t\t7855\n\t],\n\t\"./sc.json\": [\n\t\t1319,\n\t\t2874\n\t],\n\t\"./sd.json\": [\n\t\t67728,\n\t\t6826\n\t],\n\t\"./si.json\": [\n\t\t5044,\n\t\t4354\n\t],\n\t\"./sk.json\": [\n\t\t45626,\n\t\t2350\n\t],\n\t\"./sl.json\": [\n\t\t76091,\n\t\t1553\n\t],\n\t\"./so.json\": [\n\t\t93761,\n\t\t625\n\t],\n\t\"./sq.json\": [\n\t\t1230,\n\t\t4368\n\t],\n\t\"./sr.json\": [\n\t\t60445,\n\t\t3887\n\t],\n\t\"./sr_Cyrl_BA.json\": [\n\t\t38940,\n\t\t6060\n\t],\n\t\"./sr_Latn.json\": [\n\t\t21650,\n\t\t8681\n\t],\n\t\"./sr_Latn_BA.json\": [\n\t\t78328,\n\t\t5115\n\t],\n\t\"./su.json\": [\n\t\t54395,\n\t\t1959\n\t],\n\t\"./sv.json\": [\n\t\t3418,\n\t\t3241\n\t],\n\t\"./sw.json\": [\n\t\t11958,\n\t\t7585\n\t],\n\t\"./sw_KE.json\": [\n\t\t35001,\n\t\t3994\n\t],\n\t\"./ta.json\": [\n\t\t92930,\n\t\t7897\n\t],\n\t\"./te.json\": [\n\t\t8748,\n\t\t4786\n\t],\n\t\"./tg.json\": [\n\t\t20999,\n\t\t313\n\t],\n\t\"./th.json\": [\n\t\t23900,\n\t\t3951\n\t],\n\t\"./ti.json\": [\n\t\t368,\n\t\t3568\n\t],\n\t\"./tk.json\": [\n\t\t88770,\n\t\t1780\n\t],\n\t\"./to.json\": [\n\t\t95781,\n\t\t1584\n\t],\n\t\"./tr.json\": [\n\t\t92619,\n\t\t9978\n\t],\n\t\"./tt.json\": [\n\t\t87782,\n\t\t2569\n\t],\n\t\"./ug.json\": [\n\t\t19005,\n\t\t9757\n\t],\n\t\"./uk.json\": [\n\t\t82057,\n\t\t9871\n\t],\n\t\"./ur.json\": [\n\t\t13889,\n\t\t6797\n\t],\n\t\"./uz.json\": [\n\t\t45108,\n\t\t1056\n\t],\n\t\"./vi.json\": [\n\t\t97099,\n\t\t5224\n\t],\n\t\"./wo.json\": [\n\t\t9923,\n\t\t7303\n\t],\n\t\"./xh.json\": [\n\t\t29064,\n\t\t786\n\t],\n\t\"./yo.json\": [\n\t\t11971,\n\t\t8732\n\t],\n\t\"./yo_BJ.json\": [\n\t\t64533,\n\t\t9926\n\t],\n\t\"./yue.json\": [\n\t\t40648,\n\t\t1452\n\t],\n\t\"./yue_Hans.json\": [\n\t\t24800,\n\t\t4424\n\t],\n\t\"./zh.json\": [\n\t\t34626,\n\t\t457\n\t],\n\t\"./zh_Hant.json\": [\n\t\t82560,\n\t\t2767\n\t],\n\t\"./zh_Hant_HK.json\": [\n\t\t47677,\n\t\t1044\n\t],\n\t\"./zu.json\": [\n\t\t73784,\n\t\t9319\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 1395;\nmodule.exports = webpackAsyncContext;","/**\n * suggest - generates a suggestor function to be used by emoji-input\n * data: object providing source information for specific types of suggestions:\n * data.emoji - optional, an array of all emoji available i.e.\n * (getters.standardEmojiList + state.instance.customEmoji)\n * data.users - optional, an array of all known users\n * updateUsersList - optional, a function to search and append to users\n *\n * Depending on data present one or both (or none) can be present, so if field\n * doesn't support user linking you can just provide only emoji.\n */\n\nexport default data => {\n const emojiCurry = suggestEmoji(data.emoji)\n const usersCurry = data.store && suggestUsers(data.store)\n return (input, nameKeywordLocalizer) => {\n const firstChar = input[0]\n if (firstChar === ':' && data.emoji) {\n return emojiCurry(input, nameKeywordLocalizer)\n }\n if (firstChar === '@' && usersCurry) {\n return usersCurry(input)\n }\n return []\n }\n}\n\nexport const suggestEmoji = emojis => (input, nameKeywordLocalizer) => {\n const noPrefix = input.toLowerCase().substr(1)\n return emojis\n .map(emoji => ({ ...emoji, ...nameKeywordLocalizer(emoji) }))\n .filter((emoji) => (emoji.names.concat(emoji.keywords)).filter(kw => kw.toLowerCase().match(noPrefix)).length)\n .map(k => {\n let score = 0\n\n // An exact match always wins\n score += Math.max(...k.names.map(name => name.toLowerCase() === noPrefix ? 200 : 0), 0)\n\n // Prioritize custom emoji a lot\n score += k.imageUrl ? 100 : 0\n\n // Prioritize prefix matches somewhat\n score += Math.max(...k.names.map(kw => kw.toLowerCase().startsWith(noPrefix) ? 10 : 0), 0)\n\n // Sort by length\n score -= k.displayText.length\n\n k.score = score\n return k\n })\n .sort((a, b) => {\n // Break ties alphabetically\n const alphabetically = a.displayText > b.displayText ? 0.5 : -0.5\n\n return b.score - a.score + alphabetically\n })\n}\n\nexport const suggestUsers = ({ dispatch, state }) => {\n // Keep some persistent values in closure, most importantly for the\n // custom debounce to work. Lodash debounce does not return a promise.\n let suggestions = []\n let previousQuery = ''\n let timeout = null\n let cancelUserSearch = null\n\n const userSearch = (query) => dispatch('searchUsers', { query })\n const debounceUserSearch = (query) => {\n cancelUserSearch && cancelUserSearch()\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => {\n userSearch(query).then(resolve).catch(reject)\n }, 300)\n cancelUserSearch = () => {\n clearTimeout(timeout)\n resolve([])\n }\n })\n }\n\n return async input => {\n const noPrefix = input.toLowerCase().substr(1)\n if (previousQuery === noPrefix) return suggestions\n\n suggestions = []\n previousQuery = noPrefix\n // Fetch more and wait, don't fetch if there's the 2nd @ because\n // the backend user search can't deal with it.\n // Reference semantics make it so that we get the updated data after\n // the await.\n if (!noPrefix.includes('@')) {\n await debounceUserSearch(noPrefix)\n }\n\n const newSuggestions = state.users.users.filter(\n user =>\n user.screen_name.toLowerCase().startsWith(noPrefix) ||\n user.name.toLowerCase().startsWith(noPrefix)\n ).slice(0, 20).sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // Matches on screen name (i.e. user@instance) makes a priority\n aScore += a.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n bScore += b.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n\n // Matches on name takes second priority\n aScore += a.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n bScore += b.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n\n const diff = (bScore - aScore) * 10\n\n // Then sort alphabetically\n const nameAlphabetically = a.name > b.name ? 1 : -1\n const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1\n\n return diff + nameAlphabetically + screenNameAlphabetically\n /* eslint-disable camelcase */\n }).map((user) => ({\n user,\n displayText: user.screen_name_ui,\n detailText: user.name,\n imageUrl: user.profile_image_url_original,\n replacement: '@' + user.screen_name + ' '\n }))\n /* eslint-enable camelcase */\n\n suggestions = newSuggestions || []\n return suggestions\n }\n}\n","/**\n * Extract tag name from tag opener/closer.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {String} - tagname, i.e. \"div\"\n */\nexport const getTagName = (tag) => {\n const result = /(?:<\\/(\\w+)>|<(\\w+)\\s?.*?\\/?>)/gi.exec(tag)\n return result && (result[1] || result[2])\n}\n\n/**\n * Extract attributes from tag opener.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {Object} - map of attributes key = attribute name, value = attribute value\n * attributes without values represented as boolean true\n */\nexport const getAttrs = (tag, filter) => {\n const innertag = tag\n .substring(1, tag.length - 1)\n .replace(new RegExp('^' + getTagName(tag)), '')\n .replace(/\\/?$/, '')\n .trim()\n const attrs = Array.from(innertag.matchAll(/([a-z0-9-]+)(?:=(\"[^\"]+?\"|'[^']+?'))?/gi))\n .map(([trash, key, value]) => [key, value])\n .map(([k, v]) => {\n if (!v) return [k, true]\n return [k, v.substring(1, v.length - 1)]\n })\n const defaultFilter = ([k, v]) => {\n const attrKey = k.toLowerCase()\n if (attrKey === 'style') return false\n if (attrKey === 'class') {\n return v === 'greentext' || v === 'cyantext'\n }\n return true\n }\n return Object.fromEntries(attrs.filter(filter || defaultFilter))\n}\n\n/**\n * Finds shortcodes in text\n *\n * @param {String} text - original text to find emojis in\n * @param {{ url: String, shortcode: Sring }[]} emoji - list of shortcodes to find\n * @param {Function} processor - function to call on each encountered emoji,\n * function is passed single object containing matching emoji ({ url, shortcode })\n * return value will be inserted into resulting array instead of :shortcode:\n * @return {Array} resulting array with non-emoji parts of text and whatever {processor}\n * returned for emoji\n */\nexport const processTextForEmoji = (text, emojis, processor) => {\n const buffer = []\n let textBuffer = ''\n for (let i = 0; i < text.length; i++) {\n const char = text[i]\n if (char === ':') {\n const next = text.slice(i + 1)\n let found = false\n for (const emoji of emojis) {\n if (next.slice(0, emoji.shortcode.length + 1) === (emoji.shortcode + ':')) {\n found = emoji\n break\n }\n }\n if (found) {\n buffer.push(textBuffer)\n textBuffer = ''\n buffer.push(processor(found))\n i += found.shortcode.length + 1\n } else {\n textBuffer += char\n }\n } else {\n textBuffer += char\n }\n }\n if (textBuffer) buffer.push(textBuffer)\n return buffer\n}\n","import { getTagName } from './utility.service.js'\n\n/**\n * This is a tiny purpose-built HTML parser/processor. This basically detects\n * any type of visual newline and converts entire HTML into a array structure.\n *\n * Text nodes are represented as object with single property - text - containing\n * the visual line. Intended usage is to process the array with .map() in which\n * map function returns a string and resulting array can be converted back to html\n * with a .join('').\n *\n * Generally this isn't very useful except for when you really need to either\n * modify visual lines (greentext i.e. simple quoting) or do something with\n * first/last line.\n *\n * known issue: doesn't handle CDATA so nested CDATA might not work well\n *\n * @param {Object} input - input data\n * @return {(string|{ text: string })[]} processed html in form of a list.\n */\nexport const convertHtmlToLines = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // Block-level element (they make a visual line)\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\n const blockElements = new Set([\n 'address', 'article', 'aside', 'blockquote', 'details', 'dialog', 'dd',\n 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'li', 'main',\n 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'\n ])\n // br is very weird in a way that it's technically not block-level, it's\n // essentially converted to a \\n (or \\r\\n). There's also wbr but it doesn't\n // guarantee linebreak, only suggest it.\n const linebreakElements = new Set(['br'])\n\n const visualLineElements = new Set([\n ...blockElements.values(),\n ...linebreakElements.values()\n ])\n\n // All block-level elements that aren't empty elements, i.e. not <hr>\n const nonEmptyElements = new Set(visualLineElements)\n // Difference\n for (const elem of emptyElements) {\n nonEmptyElements.delete(elem)\n }\n\n // All elements that we are recognizing\n const allElements = new Set([\n ...nonEmptyElements.values(),\n ...emptyElements.values()\n ])\n\n const buffer = [] // Current output buffer\n const level = [] // How deep we are in tags and which tags were there\n let textBuffer = '' // Current line content\n let tagBuffer = null // Current tag buffer, if null = we are not currently reading a tag\n\n const flush = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer.trim().length > 0) {\n buffer.push({ level: [...level], text: textBuffer })\n } else {\n buffer.push(textBuffer)\n }\n textBuffer = ''\n }\n\n const handleBr = (tag) => { // handles single newlines/linebreaks/selfclosing\n flush()\n buffer.push(tag)\n }\n\n const handleOpen = (tag) => { // handles opening tags\n flush()\n buffer.push(tag)\n level.unshift(getTagName(tag))\n }\n\n const handleClose = (tag) => { // handles closing tags\n if (level[0] === getTagName(tag)) {\n flush()\n buffer.push(tag)\n level.shift()\n } else { // Broken case\n textBuffer += tag\n }\n }\n\n for (let i = 0; i < html.length; i++) {\n const char = html[i]\n if (char === '<' && tagBuffer === null) {\n tagBuffer = char\n } else if (char !== '>' && tagBuffer !== null) {\n tagBuffer += char\n } else if (char === '>' && tagBuffer !== null) {\n tagBuffer += char\n const tagFull = tagBuffer\n tagBuffer = null\n const tagName = getTagName(tagFull)\n if (allElements.has(tagName)) {\n if (linebreakElements.has(tagName)) {\n handleBr(tagFull)\n } else if (nonEmptyElements.has(tagName)) {\n if (tagFull[1] === '/') {\n handleClose(tagFull)\n } else if (tagFull[tagFull.length - 2] === '/') {\n // self-closing\n handleBr(tagFull)\n } else {\n handleOpen(tagFull)\n }\n } else {\n textBuffer += tagFull\n }\n } else {\n textBuffer += tagFull\n }\n } else if (char === '\\n') {\n handleBr(char)\n } else {\n textBuffer += char\n }\n }\n if (tagBuffer) {\n textBuffer += tagBuffer\n }\n\n flush()\n\n return buffer\n}\n","<template>\n <span\n class=\"HashtagLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n @click.prevent=\"onClick\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n</template>\n\n<script src=\"./hashtag_link.js\" />\n\n<style lang=\"scss\" src=\"./hashtag_link.scss\" />\n","import { extractTagFromUrl } from 'src/services/matcher/matcher.service.js'\n\nconst HashtagLink = {\n name: 'HashtagLink',\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n tag: {\n required: false,\n type: String,\n default: ''\n }\n },\n methods: {\n onClick () {\n const tag = this.tag || extractTagFromUrl(this.url)\n if (tag) {\n const link = this.generateTagLink(tag)\n this.$router.push(link)\n } else {\n window.open(this.url, '_blank')\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default HashtagLink\n","export const mentionMatchesUrl = (attention, url) => {\n if (url === attention.statusnet_profile_url) {\n return true\n }\n const [namepart, instancepart] = attention.screen_name.split('@')\n const matchstring = new RegExp('://' + instancepart + '/.*' + namepart + '$', 'g')\n\n return !!url.match(matchstring)\n}\n\n/**\n * Extract tag name from pleroma or mastodon url.\n * i.e https://bikeshed.party/tag/photo or https://quey.org/tags/sky\n * @param {string} url\n */\nexport const extractTagFromUrl = (url) => {\n const regex = /tag[s]*\\/(\\w+)$/g\n const result = regex.exec(url)\n if (!result) {\n return false\n }\n return result[1]\n}\n","import { render } from \"./hashtag_link.vue?vue&type=template&id=76a14451\"\nimport script from \"./hashtag_link.js?vue&type=script&lang=js\"\nexport * from \"./hashtag_link.js?vue&type=script&lang=js\"\n\nimport \"./hashtag_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { unescape, flattenDeep } from 'lodash'\nimport { getTagName, processTextForEmoji, getAttrs } from 'src/services/html_converter/utility.service.js'\nimport { convertHtmlToTree } from 'src/services/html_converter/html_tree_converter.service.js'\nimport { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js'\nimport StillImage from 'src/components/still-image/still-image.vue'\nimport MentionsLine, { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.vue'\nimport HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'\n\nimport './rich_content.scss'\n\n/**\n * RichContent, The Über-powered component for rendering Post HTML.\n *\n * This takes post HTML and does multiple things to it:\n * - Groups all mentions into <MentionsLine>, this affects all mentions regardles\n * of where they are (beginning/middle/end), even single mentions are converted\n * to a <MentionsLine> containing single <MentionLink>.\n * - Replaces emoji shortcodes with <StillImage>'d images.\n *\n * There are two problems with this component's architecture:\n * 1. Parsing HTML and rendering are inseparable. Attempts to separate the two\n * proven to be a massive overcomplication due to amount of things done here.\n * 2. We need to output both render and some extra data, which seems to be imp-\n * possible in vue. Current solution is to emit 'parseReady' event when parsing\n * is done within render() function.\n *\n * Apart from that one small hiccup with emit in render this _should_ be vue3-ready\n */\nexport default {\n name: 'RichContent',\n components: {\n MentionsLine,\n HashtagLink\n },\n props: {\n // Original html content\n html: {\n required: true,\n type: String\n },\n attentions: {\n required: false,\n default: () => []\n },\n // Emoji object, as in status.emojis, note the \"s\" at the end...\n emoji: {\n required: true,\n type: Array\n },\n // Whether to handle links or not (posts: yes, everything else: no)\n handleLinks: {\n required: false,\n type: Boolean,\n default: false\n },\n // Meme arrows\n greentext: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n // NEVER EVER TOUCH DATA INSIDE RENDER\n render () {\n // Pre-process HTML\n const { newHtml: html } = preProcessPerLine(this.html, this.greentext)\n let currentMentions = null // Current chain of mentions, we group all mentions together\n // This is used to recover spacing removed when parsing mentions\n let lastSpacing = ''\n\n const lastTags = [] // Tags that appear at the end of post body\n const writtenMentions = [] // All mentions that appear in post body\n const invisibleMentions = [] // All mentions that go beyond the limiter (see MentionsLine)\n // to collapse too many mentions in a row\n const writtenTags = [] // All tags that appear in post body\n // unique index for vue \"tag\" property\n let mentionIndex = 0\n let tagsIndex = 0\n\n const renderImage = (tag) => {\n return <StillImage\n {...getAttrs(tag)}\n class=\"img\"\n />\n }\n\n const renderHashtag = (attrs, children, encounteredTextReverse) => {\n const { index, ...linkData } = getLinkData(attrs, children, tagsIndex++)\n writtenTags.push(linkData)\n if (!encounteredTextReverse) {\n lastTags.push(linkData)\n }\n const { url, tag, content } = linkData\n return <HashtagLink url={url} tag={tag} content={content}/>\n }\n\n const renderMention = (attrs, children) => {\n const linkData = getLinkData(attrs, children, mentionIndex++)\n linkData.notifying = this.attentions.some(a => a.statusnet_profile_url === linkData.url)\n writtenMentions.push(linkData)\n if (currentMentions === null) {\n currentMentions = []\n }\n currentMentions.push(linkData)\n if (currentMentions.length > MENTIONS_LIMIT) {\n invisibleMentions.push(linkData)\n }\n if (currentMentions.length === 1) {\n return <MentionsLine mentions={ currentMentions } />\n } else {\n return ''\n }\n }\n\n // Processor to use with html_tree_converter\n const processItem = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (item.includes('\\n')) {\n currentMentions = null\n }\n if (emptyText) {\n // don't include spaces when processing mentions - we'll include them\n // in MentionsLine\n lastSpacing = item\n // Don't remove last space in a container (fixes poast mentions)\n return (index !== array.length - 1) && (currentMentions !== null) ? item.trim() : item\n }\n\n currentMentions = null\n if (item.includes(':')) {\n item = ['', processTextForEmoji(\n item,\n this.emoji,\n ({ shortcode, url }) => {\n return <StillImage\n class=\"emoji img\"\n src={url}\n title={`:${shortcode}:`}\n alt={`:${shortcode}:`}\n />\n }\n )]\n }\n return item\n }\n\n // Handle tag nodes\n if (Array.isArray(item)) {\n const [opener, children, closer] = item\n const Tag = getTagName(opener)\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener)\n const previouslyMentions = currentMentions !== null\n /* During grouping of mentions we trim all the empty text elements\n * This padding is added to recover last space removed in case\n * we have a tag right next to mentions\n */\n const mentionsLinePadding =\n // Padding is only needed if we just finished parsing mentions\n previouslyMentions &&\n // Don't add padding if content is string and has padding already\n !(children && typeof children[0] === 'string' && children[0].match(/^\\s/))\n ? lastSpacing\n : ''\n switch (Tag) {\n case 'br':\n currentMentions = null\n break\n case 'img': // replace images with StillImage\n return ['', [mentionsLinePadding, renderImage(opener)], '']\n case 'a': // replace mentions with MentionLink\n if (!this.handleLinks) break\n if (fullAttrs.class && fullAttrs.class.includes('mention')) {\n // Handling mentions here\n return renderMention(attrs, children)\n } else {\n currentMentions = null\n break\n }\n case 'span':\n if (this.handleLinks && fullAttrs.class && fullAttrs.class.includes('h-card')) {\n return ['', children.map(processItem), '']\n }\n }\n\n if (children !== undefined) {\n return [\n '',\n [\n mentionsLinePadding,\n [opener, children.map(processItem), closer]\n ],\n ''\n ]\n } else {\n return ['', [mentionsLinePadding, item], '']\n }\n }\n }\n\n // Processor for back direction (for finding \"last\" stuff, just easier this way)\n let encounteredTextReverse = false\n const processItemReverse = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (emptyText) return item\n if (!encounteredTextReverse) encounteredTextReverse = true\n return unescape(item)\n } else if (Array.isArray(item)) {\n // Handle tag nodes\n const [opener, children] = item\n const Tag = opener === '' ? '' : getTagName(opener)\n switch (Tag) {\n case 'a': { // replace mentions with MentionLink\n if (!this.handleLinks) break\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener, () => true)\n // should only be this\n if (\n (fullAttrs.class && fullAttrs.class.includes('hashtag')) || // Pleroma style\n (fullAttrs.rel === 'tag') // Mastodon style\n ) {\n return renderHashtag(attrs, children, encounteredTextReverse)\n } else {\n attrs.target = '_blank'\n const newChildren = [...children].reverse().map(processItemReverse).reverse()\n\n return <a {...attrs}>\n { newChildren }\n </a>\n }\n }\n case '':\n return [...children].reverse().map(processItemReverse).reverse()\n }\n\n // Render tag as is\n if (children !== undefined) {\n const newChildren = Array.isArray(children)\n ? [...children].reverse().map(processItemReverse).reverse()\n : children\n return <Tag {...getAttrs(opener)}>\n { newChildren }\n </Tag>\n } else {\n return <Tag/>\n }\n }\n return item\n }\n\n const pass1 = convertHtmlToTree(html).map(processItem)\n const pass2 = [...pass1].reverse().map(processItemReverse).reverse()\n // DO NOT USE SLOTS they cause a re-render feedback loop here.\n // slots updated -> rerender -> emit -> update up the tree -> rerender -> ...\n // at least until vue3?\n const result = <span class=\"RichContent\">\n { pass2 }\n </span>\n\n const event = {\n lastTags,\n writtenMentions,\n writtenTags,\n invisibleMentions\n }\n\n // DO NOT MOVE TO UPDATE. BAD IDEA.\n this.$emit('parseReady', event)\n\n return result\n }\n}\n\nconst getLinkData = (attrs, children, index) => {\n const stripTags = (item) => {\n if (typeof item === 'string') {\n return item\n } else {\n return item[1].map(stripTags).join('')\n }\n }\n const textContent = children.map(stripTags).join('')\n return {\n index,\n url: attrs.href,\n tag: attrs['data-tag'],\n content: flattenDeep(children).join(''),\n textContent\n }\n}\n\n/** Pre-processing HTML\n *\n * Currently this does one thing:\n * - add green/cyantexting\n *\n * @param {String} html - raw HTML to process\n * @param {Boolean} greentext - whether to enable greentexting or not\n */\nexport const preProcessPerLine = (html, greentext) => {\n const greentextHandle = new Set(['p', 'div'])\n\n const lines = convertHtmlToLines(html)\n const newHtml = lines.reverse().map((item, index, array) => {\n if (!item.text) return item\n const string = item.text\n\n // Greentext stuff\n if (\n // Only if greentext is engaged\n greentext &&\n // Only handle p's and divs. Don't want to affect blockquotes, code etc\n item.level.every(l => greentextHandle.has(l)) &&\n // Only if line begins with '>' or '<'\n (string.includes('&gt;') || string.includes('&lt;'))\n ) {\n const cleanedString = string.replace(/<[^>]+?>/gi, '') // remove all tags\n .replace(/@\\w+/gi, '') // remove mentions (even failed ones)\n .trim()\n if (cleanedString.startsWith('&gt;')) {\n return `<span class='greentext'>${string}</span>`\n } else if (cleanedString.startsWith('&lt;')) {\n return `<span class='cyantext'>${string}</span>`\n }\n }\n\n return string\n }).reverse().join('')\n\n return { newHtml }\n}\n","import { getTagName } from './utility.service.js'\nimport { unescape } from 'lodash'\n\n/**\n * This is a not-so-tiny purpose-built HTML parser/processor. This parses html\n * and converts it into a tree structure representing tag openers/closers and\n * children.\n *\n * Structure follows this pattern: [opener, [...children], closer] except root\n * node which is just [...children]. Text nodes can only be within children and\n * are represented as strings.\n *\n * Intended use is to convert HTML structure and then recursively iterate over it\n * most likely using a map. Very useful for dynamically rendering html replacing\n * tags with JSX elements in a render function.\n *\n * known issue: doesn't handle CDATA so CDATA might not work well\n * known issue: doesn't handle HTML comments\n *\n * @param {Object} input - input data\n * @return {string} processed html\n */\nexport const convertHtmlToTree = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // TODO For future - also parse HTML5 multi-source components?\n\n const buffer = [] // Current output buffer\n const levels = [['', buffer]] // How deep we are in tags and which tags were there\n let textBuffer = '' // Current line content\n let tagBuffer = null // Current tag buffer, if null = we are not currently reading a tag\n\n const getCurrentBuffer = () => {\n return levels[levels.length - 1][1]\n }\n\n const flushText = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer === '') return\n getCurrentBuffer().push(textBuffer)\n textBuffer = ''\n }\n\n const handleSelfClosing = (tag) => {\n getCurrentBuffer().push([tag])\n }\n\n const handleOpen = (tag) => {\n const curBuf = getCurrentBuffer()\n const newLevel = [unescape(tag), []]\n levels.push(newLevel)\n curBuf.push(newLevel)\n }\n\n const handleClose = (tag) => {\n const currentTag = levels[levels.length - 1]\n if (getTagName(levels[levels.length - 1][0]) === getTagName(tag)) {\n currentTag.push(tag)\n levels.pop()\n } else {\n getCurrentBuffer().push(tag)\n }\n }\n\n for (let i = 0; i < html.length; i++) {\n const char = html[i]\n if (char === '<' && tagBuffer === null) {\n flushText()\n tagBuffer = char\n } else if (char !== '>' && tagBuffer !== null) {\n tagBuffer += char\n } else if (char === '>' && tagBuffer !== null) {\n tagBuffer += char\n const tagFull = tagBuffer\n tagBuffer = null\n const tagName = getTagName(tagFull)\n if (tagFull[1] === '/') {\n handleClose(tagFull)\n } else if (emptyElements.has(tagName) || tagFull[tagFull.length - 2] === '/') {\n // self-closing\n handleSelfClosing(tagFull)\n } else {\n handleOpen(tagFull)\n }\n } else {\n textBuffer += char\n }\n }\n if (tagBuffer) {\n textBuffer += tagBuffer\n }\n\n flushText()\n return buffer\n}\n","// eslint-disable-next-line no-unused\nimport { h, Fragment } from 'vue'\nimport { mapState } from 'vuex'\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\n\nimport './tab_switcher.scss'\n\nconst findFirstUsable = (slots) => slots.findIndex(_ => _.props)\n\nexport default {\n name: 'TabSwitcher',\n props: {\n renderOnlyFocused: {\n required: false,\n type: Boolean,\n default: false\n },\n onSwitch: {\n required: false,\n type: Function,\n default: undefined\n },\n activeTab: {\n required: false,\n type: String,\n default: undefined\n },\n scrollableTabs: {\n required: false,\n type: Boolean,\n default: false\n },\n sideTabBar: {\n required: false,\n type: Boolean,\n default: false\n },\n bodyScrollLock: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n active: findFirstUsable(this.slots())\n }\n },\n computed: {\n activeIndex () {\n // In case of controlled component\n if (this.activeTab) {\n return this.slots().findIndex(slot => slot && slot.props && this.activeTab === slot.props.key)\n } else {\n return this.active\n }\n },\n isActive () {\n return tabName => {\n const isWanted = slot => slot.props && slot.props['data-tab-name'] === tabName\n return this.$slots.default().findIndex(isWanted) === this.activeIndex\n }\n },\n settingsModalVisible () {\n return this.settingsModalState === 'visible'\n },\n ...mapState({\n settingsModalState: state => state.interface.settingsModalState\n })\n },\n beforeUpdate () {\n const currentSlot = this.slots()[this.active]\n if (!currentSlot.props) {\n this.active = findFirstUsable(this.slots())\n }\n },\n methods: {\n clickTab (index) {\n return (e) => {\n e.preventDefault()\n this.setTab(index)\n }\n },\n // DO NOT put it to computed, it doesn't work (caching?)\n slots () {\n if (this.$slots.default()[0].type === Fragment) {\n return this.$slots.default()[0].children\n }\n return this.$slots.default()\n },\n setTab (index) {\n if (typeof this.onSwitch === 'function') {\n this.onSwitch.call(null, this.slots()[index].key)\n }\n this.active = index\n if (this.scrollableTabs) {\n this.$refs.contents.scrollTop = 0\n }\n }\n },\n render () {\n const tabs = this.slots()\n .map((slot, index) => {\n const props = slot.props\n if (!props) return\n const classesTab = ['tab', 'button-default']\n const classesWrapper = ['tab-wrapper']\n if (this.activeIndex === index) {\n classesTab.push('active')\n classesWrapper.push('active')\n }\n if (props.image) {\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n >\n <img src={props.image} title={props['image-tooltip']}/>\n {props.label ? '' : props.label}\n </button>\n </div>\n )\n }\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n >\n {!props.icon ? '' : (<FAIcon class=\"tab-icon\" size=\"2x\" fixed-width icon={props.icon}/>)}\n <span class=\"text\">\n {props.label}\n </span>\n </button>\n </div>\n )\n })\n\n const contents = this.slots().map((slot, index) => {\n const props = slot.props\n if (!props) return\n const active = this.activeIndex === index\n const classes = [ active ? 'active' : 'hidden' ]\n if (props.fullHeight) {\n classes.push('full-height')\n }\n const renderSlot = (!this.renderOnlyFocused || active)\n ? slot\n : ''\n\n return (\n <div class={classes}>\n {\n this.sideTabBar\n ? <h1 class=\"mobile-label\">{props.label}</h1>\n : ''\n }\n {renderSlot}\n </div>\n )\n })\n\n return (\n <div class={'tab-switcher ' + (this.sideTabBar ? 'side-tabs' : 'top-tabs')}>\n <div class=\"tabs\">\n {tabs}\n </div>\n <div\n ref=\"contents\"\n class={'contents' + (this.scrollableTabs ? ' scrollable-tabs' : '')}\n v-body-scroll-lock={this.bodyScrollLock}\n >\n {contents}\n </div>\n </div>\n )\n }\n}\n","\nconst languages = [\n 'ar',\n 'ca',\n 'cs',\n 'de',\n 'eo',\n 'en',\n 'es',\n 'et',\n 'eu',\n 'fi',\n 'fr',\n 'ga',\n 'he',\n 'hu',\n 'it',\n 'ja',\n 'ja_easy',\n 'ko',\n 'nb',\n 'nl',\n 'oc',\n 'pl',\n 'pt',\n 'ro',\n 'ru',\n 'sk',\n 'te',\n 'uk',\n 'zh',\n 'zh_Hant'\n]\n\nconst specialJsonName = {\n ja: 'ja_pedantic'\n}\n\nconst langCodeToJsonName = (code) => specialJsonName[code] || code\n\nconst langCodeToCldrName = (code) => code\n\nconst ensureFinalFallback = codes => {\n const codeList = Array.isArray(codes) ? codes : [codes]\n return codeList.includes('en') ? codeList : codeList.concat(['en'])\n}\n\nmodule.exports = {\n languages,\n langCodeToJsonName,\n langCodeToCldrName,\n ensureFinalFallback\n}\n","// When contributing, please sort JSON before committing so it would be easier to see what's missing and what's being added compared to English and other languages. It's not obligatory, but just an advice.\n// To sort json use jq https://stedolan.github.io/jq and invoke it like `jq -S . xx.json > xx.sorted.json`, AFAIK, there's no inplace edit option like in sed\n// Also, when adding a new language to \"messages\" variable, please do it alphabetically by language code so that users can search or check their custom language easily.\n\n// For anyone contributing to old huge messages.js and in need to quickly convert it to JSON\n// sed command for converting currently formatted JS to JSON:\n// sed -i -e \"s/'//gm\" -e 's/\"/\\\\\"/gm' -re 's/^( +)(.+?): ((.+?))?(,?)(\\{?)$/\\1\"\\2\": \"\\4\"/gm' -e 's/\\\"\\{\\\"/{/g' -e 's/,\"$/\",/g' file.json\n// There's only problem that apostrophe character ' gets replaced by \\\\ so you have to fix it manually, sorry.\n\nimport { languages, langCodeToJsonName } from './languages.js'\n\nconst hasLanguageFile = (code) => languages.includes(code)\n\nconst loadLanguageFile = (code) => {\n return import(\n /* webpackInclude: /\\.json$/ */\n /* webpackChunkName: \"i18n/[request]\" */\n `./${langCodeToJsonName(code)}.json`\n )\n}\n\nconst messages = {\n languages,\n default: {\n en: require('./en.json').default\n },\n setLanguage: async (i18n, language) => {\n if (hasLanguageFile(language)) {\n const messages = await loadLanguageFile(language)\n i18n.setLocaleMessage(language, messages.default)\n }\n i18n.locale = language\n }\n}\n\nexport default messages\n","import EventTargetPolyfill from '@ungap/event-target'\n\ntry {\n /* eslint-disable no-new */\n new EventTarget()\n /* eslint-enable no-new */\n} catch (e) {\n window.EventTarget = EventTargetPolyfill\n}\n","const defaultState = {\n settingsModalState: 'hidden',\n settingsModalLoaded: false,\n settingsModalTargetTab: null,\n settings: {\n currentSaveStateNotice: null,\n noticeClearTimeout: null,\n notificationPermission: null\n },\n browserSupport: {\n cssFilter: window.CSS && window.CSS.supports && (\n window.CSS.supports('filter', 'drop-shadow(0 0)') ||\n window.CSS.supports('-webkit-filter', 'drop-shadow(0 0)')\n )\n },\n layoutType: 'normal',\n globalNotices: [],\n layoutHeight: 0,\n lastTimeline: null\n}\n\nconst interfaceMod = {\n state: defaultState,\n mutations: {\n settingsSaved (state, { success, error }) {\n if (success) {\n if (state.noticeClearTimeout) {\n clearTimeout(state.noticeClearTimeout)\n }\n state.settings.currentSaveStateNotice = { error: false, data: success }\n state.settings.noticeClearTimeout = setTimeout(() => delete state.settings.currentSaveStateNotice, 2000)\n } else {\n state.settings.currentSaveStateNotice = { error: true, errorData: error }\n }\n },\n setNotificationPermission (state, permission) {\n state.notificationPermission = permission\n },\n setLayoutType (state, value) {\n state.layoutType = value\n },\n closeSettingsModal (state) {\n state.settingsModalState = 'hidden'\n },\n togglePeekSettingsModal (state) {\n switch (state.settingsModalState) {\n case 'minimized':\n state.settingsModalState = 'visible'\n return\n case 'visible':\n state.settingsModalState = 'minimized'\n return\n default:\n throw new Error('Illegal minimization state of settings modal')\n }\n },\n openSettingsModal (state) {\n state.settingsModalState = 'visible'\n if (!state.settingsModalLoaded) {\n state.settingsModalLoaded = true\n }\n },\n setSettingsModalTargetTab (state, value) {\n state.settingsModalTargetTab = value\n },\n pushGlobalNotice (state, notice) {\n state.globalNotices.push(notice)\n },\n removeGlobalNotice (state, notice) {\n state.globalNotices = state.globalNotices.filter(n => n !== notice)\n },\n setLayoutHeight (state, value) {\n state.layoutHeight = value\n },\n setLayoutWidth (state, value) {\n state.layoutWidth = value\n },\n setLastTimeline (state, value) {\n state.lastTimeline = value\n }\n },\n actions: {\n setPageTitle ({ rootState }, option = '') {\n document.title = `${option} ${rootState.instance.name}`\n },\n settingsSaved ({ commit, dispatch }, { success, error }) {\n commit('settingsSaved', { success, error })\n },\n setNotificationPermission ({ commit }, permission) {\n commit('setNotificationPermission', permission)\n },\n closeSettingsModal ({ commit }) {\n commit('closeSettingsModal')\n },\n openSettingsModal ({ commit }) {\n commit('openSettingsModal')\n },\n togglePeekSettingsModal ({ commit }) {\n commit('togglePeekSettingsModal')\n },\n clearSettingsModalTargetTab ({ commit }) {\n commit('setSettingsModalTargetTab', null)\n },\n openSettingsModalTab ({ commit }, value) {\n commit('setSettingsModalTargetTab', value)\n commit('openSettingsModal')\n },\n pushGlobalNotice (\n { commit, dispatch, state },\n {\n messageKey,\n messageArgs = {},\n level = 'error',\n timeout = 0\n }) {\n const notice = {\n messageKey,\n messageArgs,\n level\n }\n commit('pushGlobalNotice', notice)\n // Adding a new element to array wraps it in a Proxy, which breaks the comparison\n // TODO: Generate UUID or something instead or relying on !== operator?\n const newNotice = state.globalNotices[state.globalNotices.length - 1]\n if (timeout) {\n setTimeout(() => dispatch('removeGlobalNotice', newNotice), timeout)\n }\n return newNotice\n },\n removeGlobalNotice ({ commit }, notice) {\n commit('removeGlobalNotice', notice)\n },\n setLayoutHeight ({ commit }, value) {\n commit('setLayoutHeight', value)\n },\n // value is optional, assuming it was cached prior\n setLayoutWidth ({ commit, state, rootGetters, rootState }, value) {\n let width = value\n if (value !== undefined) {\n commit('setLayoutWidth', value)\n } else {\n width = state.layoutWidth\n }\n const mobileLayout = width <= 800\n const normalOrMobile = mobileLayout ? 'mobile' : 'normal'\n const { thirdColumnMode } = rootGetters.mergedConfig\n if (thirdColumnMode === 'none' || !rootState.users.currentUser) {\n commit('setLayoutType', normalOrMobile)\n } else {\n const wideLayout = width >= 1300\n commit('setLayoutType', wideLayout ? 'wide' : normalOrMobile)\n }\n },\n setLastTimeline ({ commit }, value) {\n commit('setLastTimeline', value)\n }\n }\n}\n\nexport default interfaceMod\n","import { getPreset, applyTheme } from '../services/style_setter/style_setter.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport apiService from '../services/api/api.service.js'\nimport { instanceDefaultProperties } from './config.js'\nimport { langCodeToCldrName, ensureFinalFallback } from '../i18n/languages.js'\n\nconst SORTED_EMOJI_GROUP_IDS = [\n 'smileys-and-emotion',\n 'people-and-body',\n 'animals-and-nature',\n 'food-and-drink',\n 'travel-and-places',\n 'activities',\n 'objects',\n 'symbols',\n 'flags'\n]\n\nconst REGIONAL_INDICATORS = (() => {\n const start = 0x1F1E6\n const end = 0x1F1FF\n const A = 'A'.codePointAt(0)\n const res = new Array(end - start + 1)\n for (let i = start; i <= end; ++i) {\n const letter = String.fromCodePoint(A + i - start)\n res[i - start] = {\n replacement: String.fromCodePoint(i),\n imageUrl: false,\n displayText: 'regional_indicator_' + letter,\n displayTextI18n: {\n key: 'emoji.regional_indicator',\n args: { letter }\n }\n }\n }\n return res\n})()\n\nconst REMOTE_INTERACTION_URL = '/main/ostatus'\n\nconst defaultState = {\n // Stuff from apiConfig\n name: 'Pleroma FE',\n registrationOpen: true,\n server: 'http://localhost:4040/',\n textlimit: 5000,\n themeData: undefined,\n vapidPublicKey: undefined,\n\n // Stuff from static/config.json\n alwaysShowSubjectInput: true,\n defaultAvatar: '/images/avi.png',\n defaultBanner: '/images/banner.png',\n background: '/static/aurora_borealis.jpg',\n collapseMessageWithSubject: false,\n greentext: false,\n useAtIcon: false,\n mentionLinkDisplay: 'short',\n mentionLinkShowTooltip: true,\n mentionLinkShowAvatar: false,\n mentionLinkFadeDomain: true,\n mentionLinkShowYous: false,\n mentionLinkBoldenYou: true,\n hideFilteredStatuses: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: false,\n hideMutedThreads: true,\n hideWordFilteredPosts: false,\n hidePostStats: false,\n hideBotIndication: false,\n hideSitename: false,\n hideUserStats: false,\n muteBotStatuses: false,\n loginMethod: 'password',\n logo: '/static/logo.svg',\n logoMargin: '.2em',\n logoMask: true,\n logoLeft: false,\n disableUpdateNotification: false,\n minimalScopesMode: false,\n nsfwCensorImage: undefined,\n postContentType: 'text/plain',\n redirectRootLogin: '/main/friends',\n redirectRootNoLogin: '/main/all',\n scopeCopy: true,\n showFeaturesPanel: true,\n showInstanceSpecificPanel: false,\n sidebarRight: false,\n subjectLineBehavior: 'email',\n theme: 'pleroma-dark',\n virtualScrolling: true,\n sensitiveByDefault: false,\n conversationDisplay: 'linear',\n conversationTreeAdvanced: false,\n conversationOtherRepliesButton: 'below',\n conversationTreeFadeAncestors: false,\n maxDepthInThread: 6,\n\n // Nasty stuff\n customEmoji: [],\n customEmojiFetched: false,\n emoji: {},\n emojiFetched: false,\n unicodeEmojiAnnotations: {},\n pleromaBackend: true,\n postFormats: [],\n restrictedNicknames: [],\n safeDM: true,\n knownDomains: [],\n\n // Feature-set, apparently, not everything here is reported...\n shoutAvailable: false,\n pleromaChatMessagesAvailable: false,\n gopherAvailable: false,\n mediaProxyAvailable: false,\n suggestionsEnabled: false,\n suggestionsWeb: '',\n\n // Html stuff\n instanceSpecificPanelContent: '',\n tos: '',\n\n // Version Information\n backendVersion: '',\n frontendVersion: '',\n\n pollsAvailable: false,\n pollLimits: {\n max_options: 4,\n max_option_chars: 255,\n min_expiration: 60,\n max_expiration: 60 * 60 * 24\n }\n}\n\nconst loadAnnotations = (lang) => {\n return import(\n /* webpackChunkName: \"emoji-annotations/[request]\" */\n `@kazvmoe-infra/unicode-emoji-json/annotations/${langCodeToCldrName(lang)}.json`\n )\n .then(k => k.default)\n}\n\nconst injectAnnotations = (emoji, annotations) => {\n const availableLangs = Object.keys(annotations)\n\n return {\n ...emoji,\n annotations: availableLangs.reduce((acc, cur) => {\n acc[cur] = annotations[cur][emoji.replacement]\n return acc\n }, {})\n }\n}\n\nconst injectRegionalIndicators = groups => {\n groups.symbols.push(...REGIONAL_INDICATORS)\n return groups\n}\n\nconst instance = {\n state: defaultState,\n mutations: {\n setInstanceOption (state, { name, value }) {\n if (typeof value !== 'undefined') {\n state[name] = value\n }\n },\n setKnownDomains (state, domains) {\n state.knownDomains = domains\n },\n setUnicodeEmojiAnnotations (state, { lang, annotations }) {\n state.unicodeEmojiAnnotations[lang] = annotations\n }\n },\n getters: {\n instanceDefaultConfig (state) {\n return instanceDefaultProperties\n .map(key => [key, state[key]])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n },\n groupedCustomEmojis (state) {\n const packsOf = emoji => {\n return emoji.tags\n .filter(k => k.startsWith('pack:'))\n .map(k => k.slice(5)) // remove 'pack:' prefix\n }\n\n return state.customEmoji\n .reduce((res, emoji) => {\n packsOf(emoji).forEach(packName => {\n const packId = `custom-${packName}`\n if (!res[packId]) {\n res[packId] = ({\n id: packId,\n text: packName,\n image: emoji.imageUrl,\n emojis: []\n })\n }\n res[packId].emojis.push(emoji)\n })\n return res\n }, {})\n },\n standardEmojiList (state) {\n return SORTED_EMOJI_GROUP_IDS\n .map(groupId => (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations)))\n .reduce((a, b) => a.concat(b), [])\n },\n standardEmojiGroupList (state) {\n return SORTED_EMOJI_GROUP_IDS.map(groupId => ({\n id: groupId,\n emojis: (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations))\n }))\n },\n instanceDomain (state) {\n return new URL(state.server).hostname\n },\n remoteInteractionLink (state) {\n const server = state.server.endsWith('/') ? state.server.slice(0, -1) : state.server\n const link = server + REMOTE_INTERACTION_URL\n\n return ({ statusId, nickname }) => {\n if (statusId) {\n return `${link}?status_id=${statusId}`\n } else {\n return `${link}?nickname=${nickname}`\n }\n }\n }\n },\n actions: {\n setInstanceOption ({ commit, dispatch }, { name, value }) {\n commit('setInstanceOption', { name, value })\n switch (name) {\n case 'name':\n dispatch('setPageTitle')\n break\n case 'shoutAvailable':\n if (value) {\n dispatch('initializeSocket')\n }\n break\n case 'theme':\n dispatch('setTheme', value)\n break\n }\n },\n async getStaticEmoji ({ commit }) {\n try {\n const values = (await import(/* webpackChunkName: 'emoji' */ '../../static/emoji.json')).default\n\n const emoji = Object.keys(values).reduce((res, groupId) => {\n res[groupId] = values[groupId].map(e => ({\n displayText: e.slug,\n imageUrl: false,\n replacement: e.emoji\n }))\n return res\n }, {})\n commit('setInstanceOption', { name: 'emoji', value: injectRegionalIndicators(emoji) })\n } catch (e) {\n console.warn(\"Can't load static emoji\")\n console.warn(e)\n }\n },\n\n loadUnicodeEmojiData ({ commit, state }, language) {\n const langList = ensureFinalFallback(language)\n\n return Promise.all(\n langList\n .map(async lang => {\n if (!state.unicodeEmojiAnnotations[lang]) {\n const annotations = await loadAnnotations(lang)\n commit('setUnicodeEmojiAnnotations', { lang, annotations })\n }\n }))\n },\n\n async getCustomEmoji ({ commit, state }) {\n try {\n const res = await window.fetch('/api/pleroma/emoji.json')\n if (res.ok) {\n const result = await res.json()\n const values = Array.isArray(result) ? Object.assign({}, ...result) : result\n const caseInsensitiveStrCmp = (a, b) => {\n const la = a.toLowerCase()\n const lb = b.toLowerCase()\n return la > lb ? 1 : (la < lb ? -1 : 0)\n }\n const byPackThenByName = (a, b) => {\n const packOf = emoji => (emoji.tags.filter(k => k.startsWith('pack:'))[0] || '').slice(5)\n return caseInsensitiveStrCmp(packOf(a), packOf(b)) || caseInsensitiveStrCmp(a.displayText, b.displayText)\n }\n\n const emoji = Object.entries(values).map(([key, value]) => {\n const imageUrl = value.image_url\n return {\n displayText: key,\n imageUrl: imageUrl ? state.server + imageUrl : value,\n tags: imageUrl ? value.tags.sort((a, b) => a > b ? 1 : 0) : ['utf'],\n replacement: `:${key}: `\n }\n // Technically could use tags but those are kinda useless right now,\n // should have been \"pack\" field, that would be more useful\n }).sort(byPackThenByName)\n commit('setInstanceOption', { name: 'customEmoji', value: emoji })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load custom emojis\")\n console.warn(e)\n }\n },\n\n setTheme ({ commit, rootState }, themeName) {\n commit('setInstanceOption', { name: 'theme', value: themeName })\n getPreset(themeName)\n .then(themeData => {\n commit('setInstanceOption', { name: 'themeData', value: themeData })\n // No need to apply theme if there's user theme already\n const { customTheme } = rootState.config\n if (customTheme) return\n\n // New theme presets don't have 'theme' property, they use 'source'\n const themeSource = themeData.source\n if (!themeData.theme || (themeSource && themeSource.themeEngineVersion === CURRENT_VERSION)) {\n applyTheme(themeSource)\n } else {\n applyTheme(themeData.theme)\n }\n })\n },\n fetchEmoji ({ dispatch, state }) {\n if (!state.customEmojiFetched) {\n state.customEmojiFetched = true\n dispatch('getCustomEmoji')\n }\n if (!state.emojiFetched) {\n state.emojiFetched = true\n dispatch('getStaticEmoji')\n }\n },\n\n async getKnownDomains ({ commit, rootState }) {\n try {\n const result = await apiService.fetchKnownDomains({\n credentials: rootState.users.currentUser.credentials\n })\n commit('setKnownDomains', result)\n } catch (e) {\n console.warn(\"Can't load known domains\")\n console.warn(e)\n }\n }\n }\n}\n\nexport default instance\n","import {\n remove,\n slice,\n each,\n findIndex,\n find,\n maxBy,\n minBy,\n merge,\n first,\n last,\n isArray,\n omitBy\n} from 'lodash'\nimport {\n isStatusNotification,\n isValidNotification,\n maybeShowNotification\n} from '../services/notification_utils/notification_utils.js'\nimport apiService from '../services/api/api.service.js'\n\nconst emptyTl = (userId = 0) => ({\n statuses: [],\n statusesObject: {},\n faves: [],\n visibleStatuses: [],\n visibleStatusesObject: {},\n newStatusCount: 0,\n maxId: 0,\n minId: 0,\n minVisibleId: 0,\n loading: false,\n followers: [],\n friends: [],\n userId,\n flushMarker: 0\n})\n\nconst emptyNotifications = () => ({\n desktopNotificationSilence: true,\n maxId: 0,\n minId: Number.POSITIVE_INFINITY,\n data: [],\n idStore: {},\n loading: false\n})\n\nexport const defaultState = () => ({\n allStatuses: [],\n allStatusesObject: {},\n conversationsObject: {},\n maxId: 0,\n notifications: emptyNotifications(),\n favorites: new Set(),\n timelines: {\n mentions: emptyTl(),\n public: emptyTl(),\n user: emptyTl(),\n favorites: emptyTl(),\n media: emptyTl(),\n publicAndExternal: emptyTl(),\n friends: emptyTl(),\n tag: emptyTl(),\n dms: emptyTl(),\n bookmarks: emptyTl(),\n list: emptyTl()\n }\n})\n\nexport const prepareStatus = (status) => {\n // Set deleted flag\n status.deleted = false\n\n // To make the array reactive\n status.attachments = status.attachments || []\n\n return status\n}\n\nconst mergeOrAdd = (arr, obj, item) => {\n const oldItem = obj[item.id]\n\n if (oldItem) {\n // We already have this, so only merge the new info.\n // We ignore null values to avoid overwriting existing properties with missing data\n // we also skip 'user' because that is handled by users module\n merge(oldItem, omitBy(item, (v, k) => v === null || k === 'user'))\n // Reactivity fix.\n oldItem.attachments.splice(oldItem.attachments.length)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n prepareStatus(item)\n arr.push(item)\n obj[item.id] = item\n return { item, new: true }\n }\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst sortTimeline = (timeline) => {\n timeline.visibleStatuses = timeline.visibleStatuses.sort(sortById)\n timeline.statuses = timeline.statuses.sort(sortById)\n timeline.minVisibleId = (last(timeline.visibleStatuses) || {}).id\n return timeline\n}\n\n// Add status to the global storages (arrays and objects maintaining statuses) except timelines\nconst addStatusToGlobalStorage = (state, data) => {\n const result = mergeOrAdd(state.allStatuses, state.allStatusesObject, data)\n if (result.new) {\n // Add to conversation\n const status = result.item\n const conversationsObject = state.conversationsObject\n const conversationId = status.statusnet_conversation_id\n if (conversationsObject[conversationId]) {\n conversationsObject[conversationId].push(status)\n } else {\n conversationsObject[conversationId] = [status]\n }\n }\n return result\n}\n\n// Remove status from the global storages (arrays and objects maintaining statuses) except timelines\nconst removeStatusFromGlobalStorage = (state, status) => {\n remove(state.allStatuses, { id: status.id })\n\n // TODO: Need to remove from allStatusesObject?\n\n // Remove possible notification\n remove(state.notifications.data, ({ action: { id } }) => id === status.id)\n\n // Remove from conversation\n const conversationId = status.statusnet_conversation_id\n if (state.conversationsObject[conversationId]) {\n remove(state.conversationsObject[conversationId], { id: status.id })\n }\n}\n\nconst addNewStatuses = (state, { statuses, showImmediately = false, timeline, user = {}, noIdUpdate = false, userId, pagination = {} }) => {\n // Sanity check\n if (!isArray(statuses)) {\n return false\n }\n\n const allStatuses = state.allStatuses\n const timelineObject = state.timelines[timeline]\n\n // Mismatch between API pagination and our internal minId/maxId tracking systems:\n // pagination.maxId is the oldest of the returned statuses when fetching older,\n // and pagination.minId is the newest when fetching newer. The names come directly\n // from the arguments they're supposed to be passed as for the next fetch.\n const minNew = pagination.maxId || (statuses.length > 0 ? minBy(statuses, 'id').id : 0)\n const maxNew = pagination.minId || (statuses.length > 0 ? maxBy(statuses, 'id').id : 0)\n\n const newer = timeline && (maxNew > timelineObject.maxId || timelineObject.maxId === 0) && statuses.length > 0\n const older = timeline && (minNew < timelineObject.minId || timelineObject.minId === 0) && statuses.length > 0\n\n if (!noIdUpdate && newer) {\n timelineObject.maxId = maxNew\n }\n if (!noIdUpdate && older) {\n timelineObject.minId = minNew\n }\n\n // This makes sure that user timeline won't get data meant for other\n // user. I.e. opening different user profiles makes request which could\n // return data late after user already viewing different user profile\n if ((timeline === 'user' || timeline === 'media') && timelineObject.userId !== userId) {\n return\n }\n\n const addStatus = (data, showImmediately, addToTimeline = true) => {\n const result = addStatusToGlobalStorage(state, data)\n const status = result.item\n\n if (result.new) {\n // We are mentioned in a post\n if (status.type === 'status' && find(status.attentions, { id: user.id })) {\n const mentions = state.timelines.mentions\n\n // Add the mention to the mentions timeline\n if (timelineObject !== mentions) {\n mergeOrAdd(mentions.statuses, mentions.statusesObject, status)\n mentions.newStatusCount += 1\n\n sortTimeline(mentions)\n }\n }\n if (status.visibility === 'direct') {\n const dms = state.timelines.dms\n\n mergeOrAdd(dms.statuses, dms.statusesObject, status)\n dms.newStatusCount += 1\n\n sortTimeline(dms)\n }\n }\n\n // Decide if we should treat the status as new for this timeline.\n let resultForCurrentTimeline\n // Some statuses should only be added to the global status repository.\n if (timeline && addToTimeline) {\n resultForCurrentTimeline = mergeOrAdd(timelineObject.statuses, timelineObject.statusesObject, status)\n }\n\n if (timeline && showImmediately) {\n // Add it directly to the visibleStatuses, don't change\n // newStatusCount\n mergeOrAdd(timelineObject.visibleStatuses, timelineObject.visibleStatusesObject, status)\n } else if (timeline && addToTimeline && resultForCurrentTimeline.new) {\n // Just change newStatuscount\n timelineObject.newStatusCount += 1\n }\n\n return status\n }\n\n const favoriteStatus = (favorite, counter) => {\n const status = find(allStatuses, { id: favorite.in_reply_to_status_id })\n if (status) {\n // This is our favorite, so the relevant bit.\n if (favorite.user.id === user.id) {\n status.favorited = true\n } else {\n status.fave_num += 1\n }\n }\n return status\n }\n\n const processors = {\n status: (status) => {\n addStatus(status, showImmediately)\n },\n edit: (status) => {\n addStatus(status, showImmediately)\n },\n retweet: (status) => {\n // RetweetedStatuses are never shown immediately\n const retweetedStatus = addStatus(status.retweeted_status, false, false)\n\n let retweet\n // If the retweeted status is already there, don't add the retweet\n // to the timeline.\n if (timeline && find(timelineObject.statuses, (s) => {\n if (s.retweeted_status) {\n return s.id === retweetedStatus.id || s.retweeted_status.id === retweetedStatus.id\n } else {\n return s.id === retweetedStatus.id\n }\n })) {\n // Already have it visible (either as the original or another RT), don't add to timeline, don't show.\n retweet = addStatus(status, false, false)\n } else {\n retweet = addStatus(status, showImmediately)\n }\n\n retweet.retweeted_status = retweetedStatus\n },\n favorite: (favorite) => {\n // Only update if this is a new favorite.\n // Ignore our own favorites because we get info about likes as response to like request\n if (!state.favorites.has(favorite.id)) {\n state.favorites.add(favorite.id)\n favoriteStatus(favorite)\n }\n },\n deletion: (deletion) => {\n const uri = deletion.uri\n const status = find(allStatuses, { uri })\n if (!status) {\n return\n }\n\n removeStatusFromGlobalStorage(state, status)\n\n if (timeline) {\n remove(timelineObject.statuses, { uri })\n remove(timelineObject.visibleStatuses, { uri })\n }\n },\n follow: (follow) => {\n // NOOP, it is known status but we don't do anything about it for now\n },\n default: (unknown) => {\n console.log('unknown status type')\n console.log(unknown)\n }\n }\n\n each(statuses, (status) => {\n const type = status.type\n const processor = processors[type] || processors.default\n processor(status)\n })\n\n // Keep the visible statuses sorted\n if (timeline && !(timeline === 'bookmarks')) {\n sortTimeline(timelineObject)\n }\n}\n\nconst updateNotificationsMinMaxId = (state, notification) => {\n state.notifications.maxId = notification.id > state.notifications.maxId\n ? notification.id\n : state.notifications.maxId\n state.notifications.minId = notification.id < state.notifications.minId\n ? notification.id\n : state.notifications.minId\n}\n\nconst addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters, newNotificationSideEffects }) => {\n each(notifications, (notification) => {\n // If invalid notification, update ids but don't add it to store\n if (!isValidNotification(notification)) {\n console.error('Invalid notification:', notification)\n updateNotificationsMinMaxId(state, notification)\n return\n }\n\n if (isStatusNotification(notification.type)) {\n notification.action = addStatusToGlobalStorage(state, notification.action).item\n notification.status = notification.status && addStatusToGlobalStorage(state, notification.status).item\n }\n\n if (notification.type === 'pleroma:report') {\n dispatch('addReport', notification.report)\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n dispatch('fetchEmojiReactionsBy', notification.status.id)\n }\n\n // Only add a new notification if we don't have one for the same action\n // eslint-disable-next-line no-prototype-builtins\n if (!state.notifications.idStore.hasOwnProperty(notification.id)) {\n updateNotificationsMinMaxId(state, notification)\n\n state.notifications.data.push(notification)\n state.notifications.idStore[notification.id] = notification\n\n newNotificationSideEffects(notification)\n } else if (notification.seen) {\n state.notifications.idStore[notification.id].seen = true\n }\n })\n}\n\nconst removeStatus = (state, { timeline, userId }) => {\n const timelineObject = state.timelines[timeline]\n if (userId) {\n remove(timelineObject.statuses, { user: { id: userId } })\n remove(timelineObject.visibleStatuses, { user: { id: userId } })\n timelineObject.minVisibleId = timelineObject.visibleStatuses.length > 0 ? last(timelineObject.visibleStatuses).id : 0\n timelineObject.maxId = timelineObject.statuses.length > 0 ? first(timelineObject.statuses).id : 0\n }\n}\n\nexport const mutations = {\n addNewStatuses,\n addNewNotifications,\n removeStatus,\n showNewStatuses (state, { timeline }) {\n const oldTimeline = (state.timelines[timeline])\n\n oldTimeline.newStatusCount = 0\n oldTimeline.visibleStatuses = slice(oldTimeline.statuses, 0, 50)\n oldTimeline.minVisibleId = last(oldTimeline.visibleStatuses).id\n oldTimeline.minId = oldTimeline.minVisibleId\n oldTimeline.visibleStatusesObject = {}\n each(oldTimeline.visibleStatuses, (status) => { oldTimeline.visibleStatusesObject[status.id] = status })\n },\n resetStatuses (state) {\n const emptyState = defaultState()\n Object.entries(emptyState).forEach(([key, value]) => {\n state[key] = value\n })\n },\n clearTimeline (state, { timeline, excludeUserId = false }) {\n const userId = excludeUserId ? state.timelines[timeline].userId : undefined\n state.timelines[timeline] = emptyTl(userId)\n },\n clearNotifications (state) {\n state.notifications = emptyNotifications()\n },\n setFavorited (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n\n if (newStatus.favorited !== value) {\n if (value) {\n newStatus.fave_num++\n } else {\n newStatus.fave_num--\n }\n }\n\n newStatus.favorited = value\n },\n setFavoritedConfirm (state, { status, user }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.favorited = status.favorited\n newStatus.fave_num = status.fave_num\n const index = findIndex(newStatus.favoritedBy, { id: user.id })\n if (index !== -1 && !newStatus.favorited) {\n newStatus.favoritedBy.splice(index, 1)\n } else if (index === -1 && newStatus.favorited) {\n newStatus.favoritedBy.push(user)\n }\n },\n setMutedStatus (state, status) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.thread_muted = status.thread_muted\n\n if (newStatus.thread_muted !== undefined) {\n state.conversationsObject[newStatus.statusnet_conversation_id].forEach(status => { status.thread_muted = newStatus.thread_muted })\n }\n },\n setRetweeted (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n\n if (newStatus.repeated !== value) {\n if (value) {\n newStatus.repeat_num++\n } else {\n newStatus.repeat_num--\n }\n }\n\n newStatus.repeated = value\n },\n setRetweetedConfirm (state, { status, user }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.repeated = status.repeated\n newStatus.repeat_num = status.repeat_num\n const index = findIndex(newStatus.rebloggedBy, { id: user.id })\n if (index !== -1 && !newStatus.repeated) {\n newStatus.rebloggedBy.splice(index, 1)\n } else if (index === -1 && newStatus.repeated) {\n newStatus.rebloggedBy.push(user)\n }\n },\n setBookmarked (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = value\n },\n setBookmarkedConfirm (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = status.bookmarked\n },\n setDeleted (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n if (newStatus) newStatus.deleted = true\n },\n setManyDeleted (state, condition) {\n Object.values(state.allStatusesObject).forEach(status => {\n if (condition(status)) {\n status.deleted = true\n }\n })\n },\n setLoading (state, { timeline, value }) {\n state.timelines[timeline].loading = value\n },\n setNsfw (state, { id, nsfw }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.nsfw = nsfw\n },\n setNotificationsLoading (state, { value }) {\n state.notifications.loading = value\n },\n setNotificationsSilence (state, { value }) {\n state.notifications.desktopNotificationSilence = value\n },\n markNotificationsAsSeen (state) {\n each(state.notifications.data, (notification) => {\n notification.seen = true\n })\n },\n markSingleNotificationAsSeen (state, { id }) {\n const notification = find(state.notifications.data, n => n.id === id)\n if (notification) notification.seen = true\n },\n dismissNotification (state, { id }) {\n state.notifications.data = state.notifications.data.filter(n => n.id !== id)\n },\n dismissNotifications (state, { finder }) {\n state.notifications.data = state.notifications.data.filter(n => finder)\n },\n updateNotification (state, { id, updater }) {\n const notification = find(state.notifications.data, n => n.id === id)\n notification && updater(notification)\n },\n queueFlush (state, { timeline, id }) {\n state.timelines[timeline].flushMarker = id\n },\n queueFlushAll (state) {\n Object.keys(state.timelines).forEach((timeline) => {\n state.timelines[timeline].flushMarker = state.timelines[timeline].maxId\n })\n },\n addRepeats (state, { id, rebloggedByUsers, currentUser }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.rebloggedBy = rebloggedByUsers.filter(_ => _)\n // repeats stats can be incorrect based on polling condition, let's update them using the most recent data\n newStatus.repeat_num = newStatus.rebloggedBy.length\n newStatus.repeated = !!newStatus.rebloggedBy.find(({ id }) => currentUser.id === id)\n },\n addFavs (state, { id, favoritedByUsers, currentUser }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.favoritedBy = favoritedByUsers.filter(_ => _)\n // favorites stats can be incorrect based on polling condition, let's update them using the most recent data\n newStatus.fave_num = newStatus.favoritedBy.length\n newStatus.favorited = !!newStatus.favoritedBy.find(({ id }) => currentUser.id === id)\n },\n addEmojiReactionsBy (state, { id, emojiReactions, currentUser }) {\n const status = state.allStatusesObject[id]\n status.emoji_reactions = emojiReactions\n },\n addOwnReaction (state, { id, emoji, currentUser }) {\n const status = state.allStatusesObject[id]\n const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n const reaction = status.emoji_reactions[reactionIndex] || { name: emoji, count: 0, accounts: [] }\n\n const newReaction = {\n ...reaction,\n count: reaction.count + 1,\n me: true,\n accounts: [\n ...reaction.accounts,\n currentUser\n ]\n }\n\n // Update count of existing reaction if it exists, otherwise append at the end\n if (reactionIndex >= 0) {\n status.emoji_reactions[reactionIndex] = newReaction\n } else {\n status.emoji_reactions = [...status.emoji_reactions, newReaction]\n }\n },\n removeOwnReaction (state, { id, emoji, currentUser }) {\n const status = state.allStatusesObject[id]\n const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n if (reactionIndex < 0) return\n\n const reaction = status.emoji_reactions[reactionIndex]\n const accounts = reaction.accounts || []\n\n const newReaction = {\n ...reaction,\n count: reaction.count - 1,\n me: false,\n accounts: accounts.filter(acc => acc.id !== currentUser.id)\n }\n\n if (newReaction.count > 0) {\n status.emoji_reactions[reactionIndex] = newReaction\n } else {\n status.emoji_reactions = status.emoji_reactions.filter(r => r.name !== emoji)\n }\n },\n updateStatusWithPoll (state, { id, poll }) {\n const status = state.allStatusesObject[id]\n status.poll = poll\n },\n setVirtualHeight (state, { statusId, height }) {\n state.allStatusesObject[statusId].virtualHeight = height\n }\n}\n\nconst statuses = {\n state: defaultState(),\n actions: {\n addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) {\n commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, pagination })\n },\n addNewNotifications (store, { notifications, older }) {\n const { commit, dispatch, rootGetters } = store\n\n const newNotificationSideEffects = (notification) => {\n maybeShowNotification(store, notification)\n }\n commit('addNewNotifications', { dispatch, notifications, older, rootGetters, newNotificationSideEffects })\n },\n setNotificationsLoading ({ rootState, commit }, { value }) {\n commit('setNotificationsLoading', { value })\n },\n setNotificationsSilence ({ rootState, commit }, { value }) {\n commit('setNotificationsSilence', { value })\n },\n fetchStatus ({ rootState, dispatch }, id) {\n return rootState.api.backendInteractor.fetchStatus({ id })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n fetchStatusSource ({ rootState, dispatch }, status) {\n return apiService.fetchStatusSource({ id: status.id, credentials: rootState.users.currentUser.credentials })\n },\n fetchStatusHistory ({ rootState, dispatch }, status) {\n return apiService.fetchStatusHistory({ status })\n },\n deleteStatus ({ rootState, commit }, status) {\n commit('setDeleted', { status })\n apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials })\n },\n deleteStatusById ({ rootState, commit }, id) {\n const status = rootState.statuses.allStatusesObject[id]\n commit('setDeleted', { status })\n },\n markStatusesAsDeleted ({ commit }, condition) {\n commit('setManyDeleted', condition)\n },\n favorite ({ rootState, commit }, status) {\n // Optimistic favoriting...\n commit('setFavorited', { status, value: true })\n rootState.api.backendInteractor.favorite({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n unfavorite ({ rootState, commit }, status) {\n // Optimistic unfavoriting...\n commit('setFavorited', { status, value: false })\n rootState.api.backendInteractor.unfavorite({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n fetchPinnedStatuses ({ rootState, dispatch }, userId) {\n rootState.api.backendInteractor.fetchPinnedStatuses({ id: userId })\n .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, noIdUpdate: true }))\n },\n pinStatus ({ rootState, dispatch }, statusId) {\n return rootState.api.backendInteractor.pinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n unpinStatus ({ rootState, dispatch }, statusId) {\n rootState.api.backendInteractor.unpinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n muteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.muteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n unmuteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.unmuteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n retweet ({ rootState, commit }, status) {\n // Optimistic retweeting...\n commit('setRetweeted', { status, value: true })\n rootState.api.backendInteractor.retweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status: status.retweeted_status, user: rootState.users.currentUser }))\n },\n unretweet ({ rootState, commit }, status) {\n // Optimistic unretweeting...\n commit('setRetweeted', { status, value: false })\n rootState.api.backendInteractor.unretweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status, user: rootState.users.currentUser }))\n },\n bookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: true })\n rootState.api.backendInteractor.bookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n unbookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: false })\n rootState.api.backendInteractor.unbookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n queueFlush ({ rootState, commit }, { timeline, id }) {\n commit('queueFlush', { timeline, id })\n },\n queueFlushAll ({ rootState, commit }) {\n commit('queueFlushAll')\n },\n markNotificationsAsSeen ({ rootState, commit }) {\n commit('markNotificationsAsSeen')\n apiService.markNotificationsAsSeen({\n id: rootState.statuses.notifications.maxId,\n credentials: rootState.users.currentUser.credentials\n })\n },\n markSingleNotificationAsSeen ({ rootState, commit }, { id }) {\n commit('markSingleNotificationAsSeen', { id })\n apiService.markNotificationsAsSeen({\n single: true,\n id,\n credentials: rootState.users.currentUser.credentials\n })\n },\n dismissNotificationLocal ({ rootState, commit }, { id }) {\n commit('dismissNotification', { id })\n },\n dismissNotification ({ rootState, commit }, { id }) {\n commit('dismissNotification', { id })\n rootState.api.backendInteractor.dismissNotification({ id })\n },\n updateNotification ({ rootState, commit }, { id, updater }) {\n commit('updateNotification', { id, updater })\n },\n fetchFavsAndRepeats ({ rootState, commit }, id) {\n Promise.all([\n rootState.api.backendInteractor.fetchFavoritedByUsers({ id }),\n rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n ]).then(([favoritedByUsers, rebloggedByUsers]) => {\n commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser })\n commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser })\n })\n },\n reactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n const currentUser = rootState.users.currentUser\n if (!currentUser) return\n\n commit('addOwnReaction', { id, emoji, currentUser })\n rootState.api.backendInteractor.reactWithEmoji({ id, emoji }).then(\n ok => {\n dispatch('fetchEmojiReactionsBy', id)\n }\n )\n },\n unreactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n const currentUser = rootState.users.currentUser\n if (!currentUser) return\n\n commit('removeOwnReaction', { id, emoji, currentUser })\n rootState.api.backendInteractor.unreactWithEmoji({ id, emoji }).then(\n ok => {\n dispatch('fetchEmojiReactionsBy', id)\n }\n )\n },\n fetchEmojiReactionsBy ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchEmojiReactions({ id }).then(\n emojiReactions => {\n commit('addEmojiReactionsBy', { id, emojiReactions, currentUser: rootState.users.currentUser })\n }\n )\n },\n fetchFavs ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchFavoritedByUsers({ id })\n .then(favoritedByUsers => commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser }))\n },\n fetchRepeats ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n .then(rebloggedByUsers => commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser }))\n },\n search (store, { q, resolve, limit, offset, following, type }) {\n return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following, type })\n .then((data) => {\n store.commit('addNewUsers', data.accounts)\n store.commit('addNewStatuses', { statuses: data.statuses })\n return data\n })\n },\n setVirtualHeight ({ commit }, { statusId, height }) {\n commit('setVirtualHeight', { statusId, height })\n }\n },\n mutations\n}\n\nexport default statuses\n","import { remove, find } from 'lodash'\n\nexport const defaultState = {\n allLists: [],\n allListsObject: {}\n}\n\nexport const mutations = {\n setLists (state, value) {\n state.allLists = value\n },\n setList (state, { listId, title }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].title = title\n\n const entry = find(state.allLists, { id: listId })\n if (!entry) {\n state.allLists.push({ id: listId, title })\n } else {\n entry.title = title\n }\n },\n setListAccounts (state, { listId, accountIds }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds = accountIds\n },\n addListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds.push(accountId)\n },\n removeListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n const { accountIds } = state.allListsObject[listId]\n const set = new Set(accountIds)\n set.delete(accountId)\n state.allListsObject[listId].accountIds = [...set]\n },\n deleteList (state, { listId }) {\n delete state.allListsObject[listId]\n remove(state.allLists, list => list.id === listId)\n }\n}\n\nconst actions = {\n setLists ({ commit }, value) {\n commit('setLists', value)\n },\n createList ({ rootState, commit }, { title }) {\n return rootState.api.backendInteractor.createList({ title })\n .then((list) => {\n commit('setList', { listId: list.id, title })\n return list\n })\n },\n fetchList ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getList({ listId })\n .then((list) => commit('setList', { listId: list.id, title: list.title }))\n },\n fetchListAccounts ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getListAccounts({ listId })\n .then((accountIds) => commit('setListAccounts', { listId, accountIds }))\n },\n setList ({ rootState, commit }, { listId, title }) {\n rootState.api.backendInteractor.updateList({ listId, title })\n commit('setList', { listId, title })\n },\n setListAccounts ({ rootState, commit }, { listId, accountIds }) {\n const saved = rootState.lists.allListsObject[listId].accountIds || []\n const added = accountIds.filter(id => !saved.includes(id))\n const removed = saved.filter(id => !accountIds.includes(id))\n commit('setListAccounts', { listId, accountIds })\n if (added.length > 0) {\n rootState.api.backendInteractor.addAccountsToList({ listId, accountIds: added })\n }\n if (removed.length > 0) {\n rootState.api.backendInteractor.removeAccountsFromList({ listId, accountIds: removed })\n }\n },\n addListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .addAccountsToList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('addListAccount', { listId, accountId })\n return result\n })\n },\n removeListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .removeAccountsFromList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('removeListAccount', { listId, accountId })\n return result\n })\n },\n deleteList ({ rootState, commit }, { listId }) {\n rootState.api.backendInteractor.deleteList({ listId })\n commit('deleteList', { listId })\n }\n}\n\nexport const getters = {\n findListTitle: state => id => {\n if (!state.allListsObject[id]) return\n return state.allListsObject[id].title\n },\n findListAccounts: state => id => {\n return [...state.allListsObject[id].accountIds]\n }\n}\n\nconst lists = {\n state: defaultState,\n mutations,\n actions,\n getters\n}\n\nexport default lists\n","import { camelCase } from 'lodash'\n\nimport apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst update = ({ store, statuses, timeline, showImmediately, userId, listId, pagination }) => {\n const ccTimeline = camelCase(timeline)\n\n store.dispatch('addNewStatuses', {\n timeline: ccTimeline,\n userId,\n listId,\n statuses,\n showImmediately,\n pagination\n })\n}\n\nconst fetchAndUpdate = ({\n store,\n credentials,\n timeline = 'friends',\n older = false,\n showImmediately = false,\n userId = false,\n listId = false,\n tag = false,\n until,\n since\n}) => {\n const args = { timeline, credentials }\n const rootState = store.rootState || store.state\n const { getters } = store\n const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n const { hideMutedPosts, replyVisibility } = getters.mergedConfig\n const loggedIn = !!rootState.users.currentUser\n\n if (older) {\n args.until = until || timelineData.minId\n } else {\n if (since === undefined) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n }\n\n args.userId = userId\n args.listId = listId\n args.tag = tag\n args.withMuted = !hideMutedPosts\n if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {\n args.replyVisibility = replyVisibility\n }\n\n const numStatusesBeforeFetch = timelineData.statuses.length\n\n return apiService.fetchTimeline(args)\n .then(response => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n\n const { data: statuses, pagination } = response\n if (!older && statuses.length >= 20 && !timelineData.loading && numStatusesBeforeFetch > 0) {\n store.dispatch('queueFlush', { timeline, id: timelineData.maxId })\n }\n update({ store, statuses, timeline, showImmediately, userId, listId, pagination })\n return { statuses, pagination }\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n })\n}\n\nconst startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = false, tag = false }) => {\n const rootState = store.rootState || store.state\n const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n const showImmediately = timelineData.visibleStatuses.length === 0\n timelineData.userId = userId\n timelineData.listId = listId\n fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, tag })\n const boundFetchAndUpdate = () =>\n fetchAndUpdate({ timeline, credentials, store, userId, listId, tag })\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\nconst timelineFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default timelineFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchFollowRequests({ credentials })\n .then((requests) => {\n store.commit('setFollowRequests', requests)\n store.commit('addNewUsers', requests)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst followRequestFetcher = {\n startFetching\n}\n\nexport default followRequestFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchLists({ credentials })\n .then(lists => {\n store.commit('setLists', lists)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 240000)\n}\n\nconst listsFetcher = {\n startFetching\n}\n\nexport default listsFetcher\n","import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'\nimport timelineFetcher from '../timeline_fetcher/timeline_fetcher.service.js'\nimport notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js'\nimport followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service'\nimport listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'\n\nconst backendInteractorService = credentials => ({\n startFetchingTimeline ({ timeline, store, userId = false, listId = false, tag }) {\n return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, tag })\n },\n\n fetchTimeline (args) {\n return timelineFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingNotifications ({ store }) {\n return notificationsFetcher.startFetching({ store, credentials })\n },\n\n fetchNotifications (args) {\n return notificationsFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingFollowRequests ({ store }) {\n return followRequestFetcher.startFetching({ store, credentials })\n },\n\n startFetchingLists ({ store }) {\n return listsFetcher.startFetching({ store, credentials })\n },\n\n startUserSocket ({ store }) {\n const serv = store.rootState.instance.server.replace('http', 'ws')\n const url = serv + getMastodonSocketURI({ credentials, stream: 'user' })\n return ProcessedWS({ url, id: 'User' })\n },\n\n ...Object.entries(apiService).reduce((acc, [key, func]) => {\n return {\n ...acc,\n [key]: (args) => func({ credentials, ...args })\n }\n }, {}),\n\n verifyCredentials: apiService.verifyCredentials\n})\n\nexport default backendInteractorService\n","\nexport const windowWidth = () =>\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n\nexport const windowHeight = () =>\n window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight\n","import { reduce } from 'lodash'\n\nconst REDIRECT_URI = `${window.location.origin}/oauth-callback`\n\nexport const getOrCreateApp = ({ clientId, clientSecret, instance, commit }) => {\n if (clientId && clientSecret) {\n return Promise.resolve({ clientId, clientSecret })\n }\n\n const url = `${instance}/api/v1/apps`\n const form = new window.FormData()\n\n form.append('client_name', `PleromaFE_${window.___pleromafe_commit_hash}_${(new Date()).toISOString()}`)\n form.append('redirect_uris', REDIRECT_URI)\n form.append('scopes', 'read write follow push admin')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n .then((app) => ({ clientId: app.client_id, clientSecret: app.client_secret }))\n .then((app) => commit('setClientData', app) || app)\n}\n\nconst login = ({ instance, clientId }) => {\n const data = {\n response_type: 'code',\n client_id: clientId,\n redirect_uri: REDIRECT_URI,\n scope: 'read write follow push admin'\n }\n\n const dataString = reduce(data, (acc, v, k) => {\n const encoded = `${k}=${encodeURIComponent(v)}`\n if (!acc) {\n return encoded\n } else {\n return `${acc}&${encoded}`\n }\n }, false)\n\n // Do the redirect...\n const url = `${instance}/oauth/authorize?${dataString}`\n\n window.location.href = url\n}\n\nconst getTokenWithCredentials = ({ clientId, clientSecret, instance, username, password }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'password')\n form.append('username', username)\n form.append('password', password)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst getToken = ({ clientId, clientSecret, instance, code }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'authorization_code')\n form.append('code', code)\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n}\n\nexport const getClientToken = ({ clientId, clientSecret, instance }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'client_credentials')\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\nconst verifyOTPCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'totp')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'recovery')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst revokeToken = ({ app, instance, token }) => {\n const url = `${instance}/oauth/revoke`\n const form = new window.FormData()\n\n form.append('client_id', app.clientId)\n form.append('client_secret', app.clientSecret)\n form.append('token', token)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst oauth = {\n login,\n getToken,\n getTokenWithCredentials,\n getOrCreateApp,\n verifyOTPCode,\n verifyRecoveryCode,\n revokeToken\n}\n\nexport default oauth\n","import runtime from 'serviceworker-webpack5-plugin/lib/runtime'\n\nfunction urlBase64ToUint8Array (base64String) {\n const padding = '='.repeat((4 - base64String.length % 4) % 4)\n const base64 = (base64String + padding)\n .replace(/-/g, '+')\n .replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n return Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n}\n\nfunction isPushSupported () {\n return 'serviceWorker' in navigator && 'PushManager' in window\n}\n\nfunction getOrCreateServiceWorker () {\n return runtime.register()\n .catch((err) => console.error('Unable to get or create a service worker.', err))\n}\n\nfunction subscribePush (registration, isEnabled, vapidPublicKey) {\n if (!isEnabled) return Promise.reject(new Error('Web Push is disabled in config'))\n if (!vapidPublicKey) return Promise.reject(new Error('VAPID public key is not found'))\n\n const subscribeOptions = {\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(vapidPublicKey)\n }\n return registration.pushManager.subscribe(subscribeOptions)\n}\n\nfunction unsubscribePush (registration) {\n return registration.pushManager.getSubscription()\n .then((subscribtion) => {\n if (subscribtion === null) { return }\n return subscribtion.unsubscribe()\n })\n}\n\nfunction deleteSubscriptionFromBackEnd (token) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response\n })\n}\n\nfunction sendSubscriptionToBackEnd (subscription, token, notificationVisibility) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n },\n body: JSON.stringify({\n subscription,\n data: {\n alerts: {\n follow: notificationVisibility.follows,\n favourite: notificationVisibility.likes,\n mention: notificationVisibility.mentions,\n reblog: notificationVisibility.repeats,\n move: notificationVisibility.moves\n }\n }\n })\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response.json()\n }).then((responseData) => {\n if (!responseData.id) throw new Error('Bad response from server.')\n return responseData\n })\n}\n\nexport function registerPushNotifications (isEnabled, vapidPublicKey, token, notificationVisibility) {\n if (isPushSupported()) {\n getOrCreateServiceWorker()\n .then((registration) => subscribePush(registration, isEnabled, vapidPublicKey))\n .then((subscription) => sendSubscriptionToBackEnd(subscription, token, notificationVisibility))\n .catch((e) => console.warn(`Failed to setup Web Push Notifications: ${e.message}`))\n }\n}\n\nexport function unregisterPushNotifications (token) {\n if (isPushSupported()) {\n Promise.all([\n deleteSubscriptionFromBackEnd(token),\n getOrCreateServiceWorker()\n .then((registration) => {\n return unsubscribePush(registration).then((result) => [registration, result])\n })\n .then(([registration, unsubResult]) => {\n if (!unsubResult) {\n console.warn('Push subscription cancellation wasn\\'t successful, killing SW anyway...')\n }\n return registration.unregister().then((result) => {\n if (!result) {\n console.warn('Failed to kill SW')\n }\n })\n })\n ]).catch((e) => console.warn(`Failed to disable Web Push Notifications: ${e.message}`))\n }\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { windowWidth, windowHeight } from '../services/window_utils/window_utils'\nimport oauthApi from '../services/new_api/oauth.js'\nimport { compact, map, each, mergeWith, last, concat, uniq, isArray } from 'lodash'\nimport { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js'\n\n// TODO: Unify with mergeOrAdd in statuses.js\nexport const mergeOrAdd = (arr, obj, item) => {\n if (!item) { return false }\n const oldItem = obj[item.id]\n if (oldItem) {\n // We already have this, so only merge the new info.\n mergeWith(oldItem, item, mergeArrayLength)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n arr.push(item)\n obj[item.id] = item\n return { item, new: true }\n }\n}\n\nconst mergeArrayLength = (oldValue, newValue) => {\n if (isArray(oldValue) && isArray(newValue)) {\n oldValue.length = newValue.length\n return mergeWith(oldValue, newValue, mergeArrayLength)\n }\n}\n\nconst getNotificationPermission = () => {\n const Notification = window.Notification\n\n if (!Notification) return Promise.resolve(null)\n if (Notification.permission === 'default') return Notification.requestPermission()\n return Promise.resolve(Notification.permission)\n}\n\nconst blockUser = (store, id) => {\n return store.rootState.api.backendInteractor.blockUser({ id })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addBlockId', id)\n store.commit('removeStatus', { timeline: 'friends', userId: id })\n store.commit('removeStatus', { timeline: 'public', userId: id })\n store.commit('removeStatus', { timeline: 'publicAndExternal', userId: id })\n })\n}\n\nconst unblockUser = (store, id) => {\n return store.rootState.api.backendInteractor.unblockUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst removeUserFromFollowers = (store, id) => {\n return store.rootState.api.backendInteractor.removeUserFromFollowers({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst editUserNote = (store, { id, comment }) => {\n return store.rootState.api.backendInteractor.editUserNote({ id, comment })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteUser = (store, id) => {\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = true\n store.commit('updateUserRelationship', [predictedRelationship])\n store.commit('addMuteId', id)\n\n return store.rootState.api.backendInteractor.muteUser({ id })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addMuteId', id)\n })\n}\n\nconst unmuteUser = (store, id) => {\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = false\n store.commit('updateUserRelationship', [predictedRelationship])\n\n return store.rootState.api.backendInteractor.unmuteUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst hideReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: false })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n })\n}\n\nconst showReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: true })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.muteDomain({ domain })\n .then(() => store.commit('addDomainMute', domain))\n}\n\nconst unmuteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.unmuteDomain({ domain })\n .then(() => store.commit('removeDomainMute', domain))\n}\n\nexport const mutations = {\n tagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.concat([tag])\n user.tags = newTags\n },\n untagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.filter(t => t !== tag)\n user.tags = newTags\n },\n updateRight (state, { user: { id }, right, value }) {\n const user = state.usersObject[id]\n const newRights = user.rights\n newRights[right] = value\n user.rights = newRights\n },\n updateActivationStatus (state, { user: { id }, deactivated }) {\n const user = state.usersObject[id]\n user.deactivated = deactivated\n },\n setCurrentUser (state, user) {\n state.lastLoginName = user.screen_name\n state.currentUser = mergeWith(state.currentUser || {}, user, mergeArrayLength)\n },\n clearCurrentUser (state) {\n state.currentUser = false\n state.lastLoginName = false\n },\n beginLogin (state) {\n state.loggingIn = true\n },\n endLogin (state) {\n state.loggingIn = false\n },\n saveFriendIds (state, { id, friendIds }) {\n const user = state.usersObject[id]\n user.friendIds = uniq(concat(user.friendIds || [], friendIds))\n },\n saveFollowerIds (state, { id, followerIds }) {\n const user = state.usersObject[id]\n user.followerIds = uniq(concat(user.followerIds || [], followerIds))\n },\n // Because frontend doesn't have a reason to keep these stuff in memory\n // outside of viewing someones user profile.\n clearFriends (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n user.friendIds = []\n }\n },\n clearFollowers (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n user.followerIds = []\n }\n },\n addNewUsers (state, users) {\n each(users, (user) => {\n if (user.relationship) {\n state.relationships[user.relationship.id] = user.relationship\n }\n const res = mergeOrAdd(state.users, state.usersObject, user)\n const item = res.item\n if (res.new && item.screen_name && !item.screen_name.includes('@')) {\n state.usersByNameObject[item.screen_name.toLowerCase()] = item\n }\n })\n },\n updateUserRelationship (state, relationships) {\n relationships.forEach((relationship) => {\n state.relationships[relationship.id] = relationship\n })\n },\n updateUserInLists (state, { id, inLists }) {\n state.usersObject[id].inLists = inLists\n },\n saveBlockIds (state, blockIds) {\n state.currentUser.blockIds = blockIds\n },\n addBlockId (state, blockId) {\n if (state.currentUser.blockIds.indexOf(blockId) === -1) {\n state.currentUser.blockIds.push(blockId)\n }\n },\n saveMuteIds (state, muteIds) {\n state.currentUser.muteIds = muteIds\n },\n addMuteId (state, muteId) {\n if (state.currentUser.muteIds.indexOf(muteId) === -1) {\n state.currentUser.muteIds.push(muteId)\n }\n },\n saveDomainMutes (state, domainMutes) {\n state.currentUser.domainMutes = domainMutes\n },\n addDomainMute (state, domain) {\n if (state.currentUser.domainMutes.indexOf(domain) === -1) {\n state.currentUser.domainMutes.push(domain)\n }\n },\n removeDomainMute (state, domain) {\n const index = state.currentUser.domainMutes.indexOf(domain)\n if (index !== -1) {\n state.currentUser.domainMutes.splice(index, 1)\n }\n },\n setPinnedToUser (state, status) {\n const user = state.usersObject[status.user.id]\n user.pinnedStatusIds = user.pinnedStatusIds || []\n const index = user.pinnedStatusIds.indexOf(status.id)\n\n if (status.pinned && index === -1) {\n user.pinnedStatusIds.push(status.id)\n } else if (!status.pinned && index !== -1) {\n user.pinnedStatusIds.splice(index, 1)\n }\n },\n setUserForStatus (state, status) {\n status.user = state.usersObject[status.user.id]\n },\n setUserForNotification (state, notification) {\n if (notification.type !== 'follow') {\n notification.action.user = state.usersObject[notification.action.user.id]\n }\n notification.from_profile = state.usersObject[notification.from_profile.id]\n },\n setColor (state, { user: { id }, highlighted }) {\n const user = state.usersObject[id]\n user.highlight = highlighted\n },\n signUpPending (state) {\n state.signUpPending = true\n state.signUpErrors = []\n },\n signUpSuccess (state) {\n state.signUpPending = false\n },\n signUpFailure (state, errors) {\n state.signUpPending = false\n state.signUpErrors = errors\n }\n}\n\nexport const getters = {\n findUser: state => query => {\n return state.usersObject[query]\n },\n findUserByName: state => query => {\n return state.usersByNameObject[query.toLowerCase()]\n },\n findUserByUrl: state => query => {\n return state.users\n .find(u => u.statusnet_profile_url &&\n u.statusnet_profile_url.toLowerCase() === query.toLowerCase())\n },\n relationship: state => id => {\n const rel = id && state.relationships[id]\n return rel || { id, loading: true }\n }\n}\n\nexport const defaultState = {\n loggingIn: false,\n lastLoginName: false,\n currentUser: false,\n users: [],\n usersObject: {},\n usersByNameObject: {},\n signUpPending: false,\n signUpErrors: [],\n relationships: {}\n}\n\nconst users = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchUserIfMissing (store, id) {\n if (!store.getters.findUser(id)) {\n store.dispatch('fetchUser', id)\n }\n },\n fetchUser (store, id) {\n return store.rootState.api.backendInteractor.fetchUser({ id })\n .then((user) => {\n store.commit('addNewUsers', [user])\n return user\n })\n },\n fetchUserByName (store, name) {\n return store.rootState.api.backendInteractor.fetchUserByName({ name })\n .then((user) => {\n store.commit('addNewUsers', [user])\n return user\n })\n },\n fetchUserRelationship (store, id) {\n if (store.state.currentUser) {\n store.rootState.api.backendInteractor.fetchUserRelationship({ id })\n .then((relationships) => store.commit('updateUserRelationship', relationships))\n }\n },\n fetchUserInLists (store, id) {\n if (store.state.currentUser) {\n store.rootState.api.backendInteractor.fetchUserInLists({ id })\n .then((inLists) => store.commit('updateUserInLists', { id, inLists }))\n }\n },\n fetchBlocks (store) {\n return store.rootState.api.backendInteractor.fetchBlocks()\n .then((blocks) => {\n store.commit('saveBlockIds', map(blocks, 'id'))\n store.commit('addNewUsers', blocks)\n return blocks\n })\n },\n blockUser (store, id) {\n return blockUser(store, id)\n },\n unblockUser (store, id) {\n return unblockUser(store, id)\n },\n removeUserFromFollowers (store, id) {\n return removeUserFromFollowers(store, id)\n },\n blockUsers (store, ids = []) {\n return Promise.all(ids.map(id => blockUser(store, id)))\n },\n unblockUsers (store, ids = []) {\n return Promise.all(ids.map(id => unblockUser(store, id)))\n },\n editUserNote (store, args) {\n return editUserNote(store, args)\n },\n fetchMutes (store) {\n return store.rootState.api.backendInteractor.fetchMutes()\n .then((mutes) => {\n store.commit('saveMuteIds', map(mutes, 'id'))\n store.commit('addNewUsers', mutes)\n return mutes\n })\n },\n muteUser (store, id) {\n return muteUser(store, id)\n },\n unmuteUser (store, id) {\n return unmuteUser(store, id)\n },\n hideReblogs (store, id) {\n return hideReblogs(store, id)\n },\n showReblogs (store, id) {\n return showReblogs(store, id)\n },\n muteUsers (store, ids = []) {\n return Promise.all(ids.map(id => muteUser(store, id)))\n },\n unmuteUsers (store, ids = []) {\n return Promise.all(ids.map(id => unmuteUser(store, id)))\n },\n fetchDomainMutes (store) {\n return store.rootState.api.backendInteractor.fetchDomainMutes()\n .then((domainMutes) => {\n store.commit('saveDomainMutes', domainMutes)\n return domainMutes\n })\n },\n muteDomain (store, domain) {\n return muteDomain(store, domain)\n },\n unmuteDomain (store, domain) {\n return unmuteDomain(store, domain)\n },\n muteDomains (store, domains = []) {\n return Promise.all(domains.map(domain => muteDomain(store, domain)))\n },\n unmuteDomains (store, domain = []) {\n return Promise.all(domain.map(domain => unmuteDomain(store, domain)))\n },\n fetchFriends ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.friendIds)\n return rootState.api.backendInteractor.fetchFriends({ id, maxId })\n .then((friends) => {\n commit('addNewUsers', friends)\n commit('saveFriendIds', { id, friendIds: map(friends, 'id') })\n return friends\n })\n },\n fetchFollowers ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.followerIds)\n return rootState.api.backendInteractor.fetchFollowers({ id, maxId })\n .then((followers) => {\n commit('addNewUsers', followers)\n commit('saveFollowerIds', { id, followerIds: map(followers, 'id') })\n return followers\n })\n },\n clearFriends ({ commit }, userId) {\n commit('clearFriends', userId)\n },\n clearFollowers ({ commit }, userId) {\n commit('clearFollowers', userId)\n },\n subscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.subscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n unsubscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.unsubscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n toggleActivationStatus ({ rootState, commit }, { user }) {\n const api = user.deactivated ? rootState.api.backendInteractor.activateUser : rootState.api.backendInteractor.deactivateUser\n api({ user })\n .then((user) => { const deactivated = !user.is_active; commit('updateActivationStatus', { user, deactivated }) })\n },\n registerPushNotifications (store) {\n const token = store.state.currentUser.credentials\n const vapidPublicKey = store.rootState.instance.vapidPublicKey\n const isEnabled = store.rootState.config.webPushNotifications\n const notificationVisibility = store.rootState.config.notificationVisibility\n\n registerPushNotifications(isEnabled, vapidPublicKey, token, notificationVisibility)\n },\n unregisterPushNotifications (store) {\n const token = store.state.currentUser.credentials\n\n unregisterPushNotifications(token)\n },\n addNewUsers ({ commit }, users) {\n commit('addNewUsers', users)\n },\n addNewStatuses (store, { statuses }) {\n const users = map(statuses, 'user')\n const retweetedUsers = compact(map(statuses, 'retweeted_status.user'))\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', retweetedUsers)\n\n each(statuses, (status) => {\n // Reconnect users to statuses\n store.commit('setUserForStatus', status)\n // Set pinned statuses to user\n store.commit('setPinnedToUser', status)\n })\n each(compact(map(statuses, 'retweeted_status')), (status) => {\n // Reconnect users to retweets\n store.commit('setUserForStatus', status)\n // Set pinned retweets to user\n store.commit('setPinnedToUser', status)\n })\n },\n addNewNotifications (store, { notifications }) {\n const users = map(notifications, 'from_profile')\n const targetUsers = map(notifications, 'target').filter(_ => _)\n const notificationIds = notifications.map(_ => _.id)\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', targetUsers)\n\n const notificationsObject = store.rootState.statuses.notifications.idStore\n const relevantNotifications = Object.entries(notificationsObject)\n .filter(([k, val]) => notificationIds.includes(k))\n .map(([k, val]) => val)\n\n // Reconnect users to notifications\n each(relevantNotifications, (notification) => {\n store.commit('setUserForNotification', notification)\n })\n },\n searchUsers ({ rootState, commit }, { query }) {\n return rootState.api.backendInteractor.searchUsers({ query })\n .then((users) => {\n commit('addNewUsers', users)\n return users\n })\n },\n async signUp (store, userInfo) {\n store.commit('signUpPending')\n\n const rootState = store.rootState\n\n try {\n const data = await rootState.api.backendInteractor.register(\n { params: { ...userInfo } }\n )\n store.commit('signUpSuccess')\n store.commit('setToken', data.access_token)\n store.dispatch('loginUser', data.access_token)\n } catch (e) {\n const errors = e.message\n store.commit('signUpFailure', errors)\n throw e\n }\n },\n async getCaptcha (store) {\n return store.rootState.api.backendInteractor.getCaptcha()\n },\n\n logout (store) {\n const { oauth, instance } = store.rootState\n\n const data = {\n ...oauth,\n commit: store.commit,\n instance: instance.server\n }\n\n return oauthApi.getOrCreateApp(data)\n .then((app) => {\n const params = {\n app,\n instance: data.instance,\n token: oauth.userToken\n }\n\n return oauthApi.revokeToken(params)\n })\n .then(() => {\n store.commit('clearCurrentUser')\n store.dispatch('disconnectFromSocket')\n store.commit('clearToken')\n store.dispatch('stopFetchingTimeline', 'friends')\n store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n store.dispatch('stopFetchingNotifications')\n store.dispatch('stopFetchingLists')\n store.dispatch('stopFetchingFollowRequests')\n store.commit('clearNotifications')\n store.commit('resetStatuses')\n store.dispatch('resetChats')\n store.dispatch('setLastTimeline', 'public-timeline')\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n store.commit('clearServerSideStorage')\n })\n },\n loginUser (store, accessToken) {\n return new Promise((resolve, reject) => {\n const commit = store.commit\n commit('beginLogin')\n store.rootState.api.backendInteractor.verifyCredentials(accessToken)\n .then((data) => {\n if (!data.error) {\n const user = data\n // user.credentials = userCredentials\n user.credentials = accessToken\n user.blockIds = []\n user.muteIds = []\n user.domainMutes = []\n commit('setCurrentUser', user)\n commit('setServerSideStorage', user)\n commit('addNewUsers', [user])\n\n store.dispatch('fetchEmoji')\n\n getNotificationPermission()\n .then(permission => commit('setNotificationPermission', permission))\n\n // Set our new backend interactor\n commit('setBackendInteractor', backendInteractorService(accessToken))\n store.dispatch('pushServerSideStorage')\n\n if (user.token) {\n store.dispatch('setWsToken', user.token)\n\n // Initialize the shout socket.\n store.dispatch('initializeSocket')\n }\n\n const startPolling = () => {\n // Start getting fresh posts.\n store.dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n // Start fetching notifications\n store.dispatch('startFetchingNotifications')\n\n // Start fetching chats\n store.dispatch('startFetchingChats')\n }\n\n store.dispatch('startFetchingLists')\n\n if (user.locked) {\n store.dispatch('startFetchingFollowRequests')\n }\n\n if (store.getters.mergedConfig.useStreamingApi) {\n store.dispatch('fetchTimeline', { timeline: 'friends', since: null })\n store.dispatch('fetchNotifications', { since: null })\n store.dispatch('enableMastoSockets', true).catch((error) => {\n console.error('Failed initializing MastoAPI Streaming socket', error)\n }).then(() => {\n store.dispatch('fetchChats', { latest: true })\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n })\n } else {\n startPolling()\n }\n\n // Get user mutes\n store.dispatch('fetchMutes')\n\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n\n // Fetch our friends\n store.rootState.api.backendInteractor.fetchFriends({ id: user.id })\n .then((friends) => commit('addNewUsers', friends))\n } else {\n const response = data.error\n // Authentication failed\n commit('endLogin')\n if (response.status === 401) {\n reject(new Error('Wrong username or password'))\n } else {\n reject(new Error('An error occurred, please try again'))\n }\n }\n commit('endLogin')\n resolve()\n })\n .catch((error) => {\n console.log(error)\n commit('endLogin')\n reject(new Error('Failed to connect to server, try again'))\n })\n })\n }\n }\n}\n\nexport default users\n","import { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const maybeShowChatNotification = (store, chat) => {\n if (!chat.lastMessage) return\n if (store.rootState.chats.currentChatId === chat.id && !document.hidden) return\n if (store.rootState.users.currentUser.id === chat.lastMessage.account_id) return\n\n const opts = {\n tag: chat.lastMessage.id,\n title: chat.account.name,\n icon: chat.account.profile_image_url,\n body: chat.lastMessage.content\n }\n\n if (chat.lastMessage.attachment && chat.lastMessage.attachment.type === 'image') {\n opts.image = chat.lastMessage.attachment.preview_url\n }\n\n showDesktopNotification(store.rootState, opts)\n}\n\nexport const buildFakeMessage = ({ content, chatId, attachments, userId, idempotencyKey }) => {\n const fakeMessage = {\n content,\n chat_id: chatId,\n created_at: new Date(),\n id: `${new Date().getTime()}`,\n attachments,\n account_id: userId,\n idempotency_key: idempotencyKey,\n emojis: [],\n pending: true,\n isNormalized: true\n }\n\n if (attachments[0]) {\n fakeMessage.attachment = attachments[0]\n }\n\n return fakeMessage\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { WSConnectionStatus } from '../services/api/api.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { Socket } from 'phoenix'\n\nconst retryTimeout = (multiplier) => 1000 * multiplier\n\nconst api = {\n state: {\n retryMultiplier: 1,\n backendInteractor: backendInteractorService(),\n fetchers: {},\n socket: null,\n mastoUserSocket: null,\n mastoUserSocketStatus: null,\n followRequests: []\n },\n getters: {\n followRequestCount: state => state.followRequests.length\n },\n mutations: {\n setBackendInteractor (state, backendInteractor) {\n state.backendInteractor = backendInteractor\n },\n addFetcher (state, { fetcherName, fetcher }) {\n state.fetchers[fetcherName] = fetcher\n },\n removeFetcher (state, { fetcherName, fetcher }) {\n state.fetchers[fetcherName].stop()\n delete state.fetchers[fetcherName]\n },\n setWsToken (state, token) {\n state.wsToken = token\n },\n setSocket (state, socket) {\n state.socket = socket\n },\n setFollowRequests (state, value) {\n state.followRequests = value\n },\n setMastoUserSocketStatus (state, value) {\n state.mastoUserSocketStatus = value\n },\n incrementRetryMultiplier (state) {\n state.retryMultiplier = Math.max(++state.retryMultiplier, 3)\n },\n resetRetryMultiplier (state) {\n state.retryMultiplier = 1\n }\n },\n actions: {\n /**\n * Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets\n *\n * @param {Boolean} [initial] - whether this enabling happened at boot time or not\n */\n enableMastoSockets (store, initial) {\n const { state, dispatch, commit } = store\n // Do not initialize unless nonexistent or closed\n if (\n state.mastoUserSocket &&\n ![\n WebSocket.CLOSED,\n WebSocket.CLOSING\n ].includes(state.mastoUserSocket.getState())\n ) {\n return\n }\n if (initial) {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING_INITIAL)\n } else {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING)\n }\n return dispatch('startMastoUserSocket')\n },\n disableMastoSockets (store) {\n const { state, dispatch, commit } = store\n if (!state.mastoUserSocket) return\n commit('setMastoUserSocketStatus', WSConnectionStatus.DISABLED)\n return dispatch('stopMastoUserSocket')\n },\n\n // MastoAPI 'User' sockets\n startMastoUserSocket (store) {\n return new Promise((resolve, reject) => {\n try {\n const { state, commit, dispatch, rootState } = store\n const timelineData = rootState.statuses.timelines.friends\n state.mastoUserSocket = state.backendInteractor.startUserSocket({ store })\n state.mastoUserSocket.addEventListener(\n 'message',\n ({ detail: message }) => {\n if (!message) return // pings\n if (message.event === 'notification') {\n dispatch('addNewNotifications', {\n notifications: [message.notification],\n older: false\n })\n } else if (message.event === 'update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: timelineData.visibleStatuses.length === 0,\n timeline: 'friends'\n })\n } else if (message.event === 'status.update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: message.status.id in timelineData.visibleStatusesObject,\n timeline: 'friends'\n })\n } else if (message.event === 'delete') {\n dispatch('deleteStatusById', message.id)\n } else if (message.event === 'pleroma:chat_update') {\n // The setTimeout wrapper is a temporary band-aid to avoid duplicates for the user's own messages when doing optimistic sending.\n // The cause of the duplicates is the WS event arriving earlier than the HTTP response.\n // This setTimeout wrapper can be removed once the commit `8e41baff` is in the stable Pleroma release.\n // (`8e41baff` adds the idempotency key to the chat message entity, which PleromaFE uses when it's available, and it makes this artificial delay unnecessary).\n setTimeout(() => {\n dispatch('addChatMessages', {\n chatId: message.chatUpdate.id,\n messages: [message.chatUpdate.lastMessage]\n })\n dispatch('updateChat', { chat: message.chatUpdate })\n maybeShowChatNotification(store, message.chatUpdate)\n }, 100)\n }\n }\n )\n state.mastoUserSocket.addEventListener('open', () => {\n // Do not show notification when we just opened up the page\n if (state.mastoUserSocketStatus !== WSConnectionStatus.STARTING_INITIAL) {\n dispatch('pushGlobalNotice', {\n level: 'success',\n messageKey: 'timeline.socket_reconnected',\n timeout: 5000\n })\n }\n // Stop polling if we were errored or disabled\n if (new Set([\n WSConnectionStatus.ERROR,\n WSConnectionStatus.DISABLED\n ]).has(state.mastoUserSocketStatus)) {\n dispatch('stopFetchingTimeline', { timeline: 'friends' })\n dispatch('stopFetchingNotifications')\n dispatch('stopFetchingChats')\n }\n commit('resetRetryMultiplier')\n commit('setMastoUserSocketStatus', WSConnectionStatus.JOINED)\n })\n state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {\n console.error('Error in MastoAPI websocket:', error)\n // TODO is this needed?\n dispatch('clearOpenedChats')\n })\n state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => {\n const ignoreCodes = new Set([\n 1000, // Normal (intended) closure\n 1001 // Going away\n ])\n const { code } = closeEvent\n if (ignoreCodes.has(code)) {\n console.debug(`Not restarting socket becasue of closure code ${code} is in ignore list`)\n commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED)\n } else {\n console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)\n setTimeout(() => {\n dispatch('startMastoUserSocket')\n }, retryTimeout(state.retryMultiplier))\n commit('incrementRetryMultiplier')\n if (state.mastoUserSocketStatus !== WSConnectionStatus.ERROR) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.socket_broke',\n messageArgs: [code],\n timeout: 5000\n })\n }\n commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR)\n }\n dispatch('clearOpenedChats')\n })\n resolve()\n } catch (e) {\n reject(e)\n }\n })\n },\n stopMastoUserSocket ({ state, dispatch }) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n state.mastoUserSocket.close()\n },\n\n // Timelines\n startFetchingTimeline (store, {\n timeline = 'friends',\n tag = false,\n userId = false,\n listId = false\n }) {\n if (store.state.fetchers[timeline]) return\n\n const fetcher = store.state.backendInteractor.startFetchingTimeline({\n timeline, store, userId, listId, tag\n })\n store.commit('addFetcher', { fetcherName: timeline, fetcher })\n },\n stopFetchingTimeline (store, timeline) {\n const fetcher = store.state.fetchers[timeline]\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: timeline, fetcher })\n },\n fetchTimeline (store, { timeline, ...rest }) {\n store.state.backendInteractor.fetchTimeline({\n store,\n timeline,\n ...rest\n })\n },\n\n // Notifications\n startFetchingNotifications (store) {\n if (store.state.fetchers.notifications) return\n const fetcher = store.state.backendInteractor.startFetchingNotifications({ store })\n store.commit('addFetcher', { fetcherName: 'notifications', fetcher })\n },\n stopFetchingNotifications (store) {\n const fetcher = store.state.fetchers.notifications\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'notifications', fetcher })\n },\n fetchNotifications (store, { ...rest }) {\n store.state.backendInteractor.fetchNotifications({\n store,\n ...rest\n })\n },\n\n // Follow requests\n startFetchingFollowRequests (store) {\n if (store.state.fetchers.followRequests) return\n const fetcher = store.state.backendInteractor.startFetchingFollowRequests({ store })\n\n store.commit('addFetcher', { fetcherName: 'followRequests', fetcher })\n },\n stopFetchingFollowRequests (store) {\n const fetcher = store.state.fetchers.followRequests\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'followRequests', fetcher })\n },\n removeFollowRequest (store, request) {\n const requests = store.state.followRequests.filter((it) => it !== request)\n store.commit('setFollowRequests', requests)\n },\n\n // Lists\n startFetchingLists (store) {\n if (store.state.fetchers.lists) return\n const fetcher = store.state.backendInteractor.startFetchingLists({ store })\n store.commit('addFetcher', { fetcherName: 'lists', fetcher })\n },\n stopFetchingLists (store) {\n const fetcher = store.state.fetchers.lists\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'lists', fetcher })\n },\n\n // Pleroma websocket\n setWsToken (store, token) {\n store.commit('setWsToken', token)\n },\n initializeSocket ({ dispatch, commit, state, rootState }) {\n // Set up websocket connection\n const token = state.wsToken\n if (rootState.instance.shoutAvailable && typeof token !== 'undefined' && state.socket === null) {\n const socket = new Socket('/socket', { params: { token } })\n socket.connect()\n\n commit('setSocket', socket)\n dispatch('initializeShout', socket)\n }\n },\n disconnectFromSocket ({ commit, state }) {\n state.socket && state.socket.disconnect()\n commit('setSocket', null)\n }\n }\n}\n\nexport default api\n","import Modal from 'src/components/modal/modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport pleromaTan from 'src/assets/pleromatan_apology.png'\nimport pleromaTanFox from 'src/assets/pleromatan_apology_fox.png'\nimport pleromaTanMask from 'src/assets/pleromatan_apology_mask.png'\nimport pleromaTanFoxMask from 'src/assets/pleromatan_apology_fox_mask.png'\n\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nlibrary.add(\n faTimes\n)\n\nexport const CURRENT_UPDATE_COUNTER = 1\n\nconst UpdateNotification = {\n data () {\n return {\n showingImage: false,\n pleromaTanVariant: Math.random() > 0.5 ? pleromaTan : pleromaTanFox,\n showingMore: false\n }\n },\n components: {\n Modal\n },\n computed: {\n pleromaTanStyles () {\n const mask = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n return {\n 'shape-outside': 'url(' + mask + ')'\n }\n },\n shouldShow () {\n return !this.$store.state.instance.disableUpdateNotification &&\n this.$store.state.users.currentUser &&\n this.$store.state.serverSideStorage.flagStorage.updateCounter < CURRENT_UPDATE_COUNTER &&\n !this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs\n }\n },\n methods: {\n toggleShow () {\n this.showingMore = !this.showingMore\n },\n neverShowAgain () {\n this.toggleShow()\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.commit('setPreference', { path: 'simple.dontShowUpdateNotifs', value: true })\n this.$store.dispatch('pushServerSideStorage')\n },\n dismiss () {\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n mounted () {\n this.contentHeightNoImage = this.$refs.animatedText.scrollHeight\n\n // Workaround to get the text height only after mask loaded. A bit hacky.\n const newImg = new Image()\n newImg.onload = () => {\n setTimeout(() => { this.showingImage = true }, 100)\n }\n newImg.src = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n }\n}\n\nexport default UpdateNotification\n","import { toRaw } from 'vue'\nimport { isEqual, cloneDeep, set, get, clamp, flatten, groupBy, findLastIndex, takeRight, uniqWith } from 'lodash'\nimport { CURRENT_UPDATE_COUNTER } from 'src/components/update_notification/update_notification.js'\n\nexport const VERSION = 1\nexport const NEW_USER_DATE = new Date('2022-08-04') // date of writing this, basically\n\nexport const COMMAND_TRIM_FLAGS = 1000\nexport const COMMAND_TRIM_FLAGS_AND_RESET = 1001\n\nexport const defaultState = {\n // do we need to update data on server?\n dirty: false,\n // storage of flags - stuff that can only be set and incremented\n flagStorage: {\n updateCounter: 0, // Counter for most recent update notification seen\n reset: 0 // special flag that can be used to force-reset all flags, debug purposes only\n // special reset codes:\n // 1000: trim keys to those known by currently running FE\n // 1001: same as above + reset everything to 0\n },\n prefsStorage: {\n _journal: [],\n simple: {\n dontShowUpdateNotifs: false,\n collapseNav: false\n },\n collections: {\n pinnedNavItems: ['home', 'dms', 'chats']\n }\n },\n // raw data\n raw: null,\n // local cache\n cache: null\n}\n\nexport const newUserFlags = {\n ...defaultState.flagStorage,\n updateCounter: CURRENT_UPDATE_COUNTER // new users don't need to see update notification\n}\n\nexport const _moveItemInArray = (array, value, movement) => {\n const oldIndex = array.indexOf(value)\n const newIndex = oldIndex + movement\n const newArray = [...array]\n // remove old\n newArray.splice(oldIndex, 1)\n // add new\n newArray.splice(clamp(newIndex, 0, newArray.length + 1), 0, value)\n return newArray\n}\n\nconst _wrapData = (data, userName) => ({\n ...data,\n _user: userName,\n _timestamp: Date.now(),\n _version: VERSION\n})\n\nconst _checkValidity = (data) => data._timestamp > 0 && data._version > 0\n\nconst _verifyPrefs = (state) => {\n state.prefsStorage = state.prefsStorage || {\n simple: {},\n collections: {}\n }\n Object.entries(defaultState.prefsStorage.simple).forEach(([k, v]) => {\n if (typeof v === 'number' || typeof v === 'boolean') return\n console.warn(`Preference simple.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.simple, k, defaultState.prefsStorage.simple[k])\n })\n Object.entries(defaultState.prefsStorage.collections).forEach(([k, v]) => {\n if (Array.isArray(v)) return\n console.warn(`Preference collections.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.collections, k, defaultState.prefsStorage.collections[k])\n })\n}\n\nexport const _getRecentData = (cache, live) => {\n const result = { recent: null, stale: null, needUpload: false }\n const cacheValid = _checkValidity(cache || {})\n const liveValid = _checkValidity(live || {})\n if (!liveValid && cacheValid) {\n result.needUpload = true\n console.debug('Nothing valid stored on server, assuming cache to be source of truth')\n result.recent = cache\n result.stale = live\n } else if (!cacheValid && liveValid) {\n console.debug('Valid storage on server found, no local cache found, using live as source of truth')\n result.recent = live\n result.stale = cache\n } else if (cacheValid && liveValid) {\n console.debug('Both sources have valid data, figuring things out...')\n if (live._timestamp === cache._timestamp && live._version === cache._version) {\n console.debug('Same version/timestamp on both source, source of truth irrelevant')\n result.recent = cache\n result.stale = live\n } else {\n console.debug('Different timestamp, figuring out which one is more recent')\n if (live._timestamp < cache._timestamp) {\n result.recent = cache\n result.stale = live\n } else {\n result.recent = live\n result.stale = cache\n }\n }\n } else {\n console.debug('Both sources are invalid, start from scratch')\n result.needUpload = true\n }\n return result\n}\n\nexport const _getAllFlags = (recent, stale) => {\n return Array.from(new Set([\n ...Object.keys(toRaw((recent || {}).flagStorage || {})),\n ...Object.keys(toRaw((stale || {}).flagStorage || {}))\n ]))\n}\n\nexport const _mergeFlags = (recent, stale, allFlagKeys) => {\n if (!stale.flagStorage) return recent.flagStorage\n if (!recent.flagStorage) return stale.flagStorage\n return Object.fromEntries(allFlagKeys.map(flag => {\n const recentFlag = recent.flagStorage[flag]\n const staleFlag = stale.flagStorage[flag]\n // use flag that is of higher value\n return [flag, Number((recentFlag > staleFlag ? recentFlag : staleFlag) || 0)]\n }))\n}\n\nconst _mergeJournal = (...journals) => {\n // Ignore invalid journal entries\n const allJournals = flatten(\n journals.map(j => Array.isArray(j) ? j : [])\n ).filter(entry =>\n Object.prototype.hasOwnProperty.call(entry, 'path') &&\n Object.prototype.hasOwnProperty.call(entry, 'operation') &&\n Object.prototype.hasOwnProperty.call(entry, 'args') &&\n Object.prototype.hasOwnProperty.call(entry, 'timestamp')\n )\n const grouped = groupBy(allJournals, 'path')\n const trimmedGrouped = Object.entries(grouped).map(([path, journal]) => {\n // side effect\n journal.sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n\n if (path.startsWith('collections')) {\n const lastRemoveIndex = findLastIndex(journal, ({ operation }) => operation === 'removeFromCollection')\n // everything before last remove is unimportant\n let remainder\n if (lastRemoveIndex > 0) {\n remainder = journal.slice(lastRemoveIndex)\n } else {\n // everything else doesn't need trimming\n remainder = journal\n }\n return uniqWith(remainder, (a, b) => {\n if (a.path !== b.path) { return false }\n if (a.operation !== b.operation) { return false }\n if (a.operation === 'addToCollection') {\n return a.args[0] === b.args[0]\n }\n return false\n })\n } else if (path.startsWith('simple')) {\n // Only the last record is important\n return takeRight(journal)\n } else {\n return journal\n }\n })\n return flatten(trimmedGrouped)\n .sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n}\n\nexport const _mergePrefs = (recent, stale, allFlagKeys) => {\n if (!stale) return recent\n if (!recent) return stale\n const { _journal: recentJournal, ...recentData } = recent\n const { _journal: staleJournal } = stale\n /** Journal entry format:\n * path: path to entry in prefsStorage\n * timestamp: timestamp of the change\n * operation: operation type\n * arguments: array of arguments, depends on operation type\n *\n * currently only supported operation type is \"set\" which just sets the value\n * to requested one. Intended only to be used with simple preferences (boolean, number)\n * shouldn't be used with collections!\n */\n const resultOutput = { ...recentData }\n const totalJournal = _mergeJournal(staleJournal, recentJournal)\n totalJournal.forEach(({ path, timestamp, operation, command, args }) => {\n if (path.startsWith('_')) {\n console.error(`journal contains entry to edit internal (starts with _) field '${path}', something is incorrect here, ignoring.`)\n return\n }\n switch (operation) {\n case 'set':\n set(resultOutput, path, args[0])\n break\n case 'addToCollection':\n set(resultOutput, path, Array.from(new Set(get(resultOutput, path)).add(args[0])))\n break\n case 'removeFromCollection': {\n const newSet = new Set(get(resultOutput, path))\n newSet.delete(args[0])\n set(resultOutput, path, Array.from(newSet))\n break\n }\n case 'reorderCollection': {\n const [value, movement] = args\n set(resultOutput, path, _moveItemInArray(get(resultOutput, path), value, movement))\n break\n }\n default:\n console.error(`Unknown journal operation: '${operation}', did we forget to run reverse migrations beforehand?`)\n }\n })\n return { ...resultOutput, _journal: totalJournal }\n}\n\nexport const _resetFlags = (totalFlags, knownKeys = defaultState.flagStorage) => {\n let result = { ...totalFlags }\n const allFlagKeys = Object.keys(totalFlags)\n // flag reset functionality\n if (totalFlags.reset >= COMMAND_TRIM_FLAGS && totalFlags.reset <= COMMAND_TRIM_FLAGS_AND_RESET) {\n console.debug('Received command to trim the flags')\n const knownKeysSet = new Set(Object.keys(knownKeys))\n\n // Trim\n result = {}\n allFlagKeys.forEach(flag => {\n if (knownKeysSet.has(flag)) {\n result[flag] = totalFlags[flag]\n }\n })\n\n // Reset\n if (totalFlags.reset === COMMAND_TRIM_FLAGS_AND_RESET) {\n // 1001 - and reset everything to 0\n console.debug('Received command to reset the flags')\n Object.keys(knownKeys).forEach(flag => { result[flag] = 0 })\n }\n } else if (totalFlags.reset > 0 && totalFlags.reset < 9000) {\n console.debug('Received command to reset the flags')\n allFlagKeys.forEach(flag => { result[flag] = 0 })\n }\n result.reset = 0\n return result\n}\n\nexport const _doMigrations = (cache) => {\n if (!cache) return cache\n\n if (cache._version < VERSION) {\n console.debug('Local cached data has older version, seeing if there any migrations that can be applied')\n\n // no migrations right now since we only have one version\n console.debug('No migrations found')\n }\n\n if (cache._version > VERSION) {\n console.debug('Local cached data has newer version, seeing if there any reverse migrations that can be applied')\n\n // no reverse migrations right now but we leave a possibility of loading a hotpatch if need be\n if (window._PLEROMA_HOTPATCH) {\n if (window._PLEROMA_HOTPATCH.reverseMigrations) {\n console.debug('Found hotpatch migration, applying')\n return window._PLEROMA_HOTPATCH.reverseMigrations.call({}, 'serverSideStorage', { from: cache._version, to: VERSION }, cache)\n }\n }\n }\n\n return cache\n}\n\nexport const mutations = {\n clearServerSideStorage (state, userData) {\n state = { ...cloneDeep(defaultState) }\n },\n setServerSideStorage (state, userData) {\n const live = userData.storage\n state.raw = live\n let cache = state.cache\n if (cache && cache._user !== userData.fqn) {\n console.warn('cache belongs to another user! reinitializing local cache!')\n cache = null\n }\n\n cache = _doMigrations(cache)\n\n let { recent, stale, needsUpload } = _getRecentData(cache, live)\n\n const userNew = userData.created_at > NEW_USER_DATE\n const flagsTemplate = userNew ? newUserFlags : defaultState.flagStorage\n let dirty = false\n\n if (recent === null) {\n console.debug(`Data is empty, initializing for ${userNew ? 'new' : 'existing'} user`)\n recent = _wrapData({\n flagStorage: { ...flagsTemplate },\n prefsStorage: { ...defaultState.prefsStorage }\n })\n }\n\n if (!needsUpload && recent && stale) {\n console.debug('Checking if data needs merging...')\n // discarding timestamps and versions\n const { _timestamp: _0, _version: _1, ...recentData } = recent\n const { _timestamp: _2, _version: _3, ...staleData } = stale\n dirty = !isEqual(recentData, staleData)\n console.debug(`Data ${dirty ? 'needs' : 'doesn\\'t need'} merging`)\n }\n\n const allFlagKeys = _getAllFlags(recent, stale)\n let totalFlags\n let totalPrefs\n if (dirty) {\n // Merge the flags\n console.debug('Merging the data...')\n totalFlags = _mergeFlags(recent, stale, allFlagKeys)\n _verifyPrefs(recent)\n _verifyPrefs(stale)\n totalPrefs = _mergePrefs(recent.prefsStorage, stale.prefsStorage)\n } else {\n totalFlags = recent.flagStorage\n totalPrefs = recent.prefsStorage\n }\n\n totalFlags = _resetFlags(totalFlags)\n\n recent.flagStorage = { ...flagsTemplate, ...totalFlags }\n recent.prefsStorage = { ...defaultState.prefsStorage, ...totalPrefs }\n\n state.dirty = dirty || needsUpload\n state.cache = recent\n // set local timestamp to smaller one if we don't have any changes\n if (stale && recent && !state.dirty) {\n state.cache._timestamp = Math.min(stale._timestamp, recent._timestamp)\n }\n state.flagStorage = state.cache.flagStorage\n state.prefsStorage = state.cache.prefsStorage\n },\n setFlag (state, { flag, value }) {\n state.flagStorage[flag] = value\n state.dirty = true\n },\n setPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n set(state.prefsStorage, path, value)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'set', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n addCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.add(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'addToCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n removeCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.delete(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'removeFromCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n reorderCollectionPreference (state, { path, value, movement }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = get(state.prefsStorage, path)\n const newCollection = _moveItemInArray(collection, value, movement)\n set(state.prefsStorage, path, newCollection)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'arrangeCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n updateCache (state, { username }) {\n state.prefsStorage._journal = _mergeJournal(state.prefsStorage._journal)\n state.cache = _wrapData({\n flagStorage: toRaw(state.flagStorage),\n prefsStorage: toRaw(state.prefsStorage)\n }, username)\n }\n}\n\nconst serverSideStorage = {\n state: {\n ...cloneDeep(defaultState)\n },\n mutations,\n actions: {\n pushServerSideStorage ({ state, rootState, commit }, { force = false } = {}) {\n const needPush = state.dirty || force\n console.log(needPush)\n if (!needPush) return\n commit('updateCache', { username: rootState.users.currentUser.fqn })\n const params = { pleroma_settings_store: { 'pleroma-fe': state.cache } }\n rootState.api.backendInteractor\n .updateProfile({ params })\n .then((user) => {\n commit('setServerSideStorage', user)\n state.dirty = false\n })\n }\n }\n}\n\nexport default serverSideStorage\n","const shout = {\n state: {\n messages: [],\n channel: { state: '' },\n joined: false\n },\n mutations: {\n setChannel (state, channel) {\n state.channel = channel\n },\n addMessage (state, message) {\n state.messages.push(message)\n state.messages = state.messages.slice(-19, 20)\n },\n setMessages (state, messages) {\n state.messages = messages.slice(-19, 20)\n },\n setJoined (state, joined) {\n state.joined = joined\n }\n },\n actions: {\n initializeShout (store, socket) {\n const channel = socket.channel('chat:public')\n channel.joinPush.receive('ok', () => {\n store.commit('setJoined', true)\n })\n channel.onClose(() => {\n store.commit('setJoined', false)\n })\n channel.onError(() => {\n store.commit('setJoined', false)\n })\n channel.on('new_msg', (msg) => {\n store.commit('addMessage', msg)\n })\n channel.on('messages', ({ messages }) => {\n store.commit('setMessages', messages)\n })\n channel.join()\n store.commit('setChannel', channel)\n }\n }\n}\n\nexport default shout\n","const oauth = {\n state: {\n clientId: false,\n clientSecret: false,\n /* App token is authentication for app without any user, used mostly for\n * MastoAPI's registration of new users, stored so that we can fall back to\n * it on logout\n */\n appToken: false,\n /* User token is authentication for app with user, this is for every calls\n * that need authorized user to be successful (i.e. posting, liking etc)\n */\n userToken: false\n },\n mutations: {\n setClientData (state, { clientId, clientSecret }) {\n state.clientId = clientId\n state.clientSecret = clientSecret\n },\n setAppToken (state, token) {\n state.appToken = token\n },\n setToken (state, token) {\n state.userToken = token\n },\n clearToken (state) {\n state.userToken = false\n // state.token is userToken with older name, coming from persistent state\n // let's clear it as well, since it is being used as a fallback of state.userToken\n delete state.token\n }\n },\n getters: {\n getToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token || state.appToken\n },\n getUserToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token\n }\n }\n}\n\nexport default oauth\n","const PASSWORD_STRATEGY = 'password'\nconst TOKEN_STRATEGY = 'token'\n\n// MFA strategies\nconst TOTP_STRATEGY = 'totp'\nconst RECOVERY_STRATEGY = 'recovery'\n\n// initial state\nconst state = {\n settings: {},\n strategy: PASSWORD_STRATEGY,\n initStrategy: PASSWORD_STRATEGY // default strategy from config\n}\n\nconst resetState = (state) => {\n state.strategy = state.initStrategy\n state.settings = {}\n}\n\n// getters\nconst getters = {\n settings: (state, getters) => {\n return state.settings\n },\n requiredPassword: (state, getters, rootState) => {\n return state.strategy === PASSWORD_STRATEGY\n },\n requiredToken: (state, getters, rootState) => {\n return state.strategy === TOKEN_STRATEGY\n },\n requiredTOTP: (state, getters, rootState) => {\n return state.strategy === TOTP_STRATEGY\n },\n requiredRecovery: (state, getters, rootState) => {\n return state.strategy === RECOVERY_STRATEGY\n }\n}\n\n// mutations\nconst mutations = {\n setInitialStrategy (state, strategy) {\n if (strategy) {\n state.initStrategy = strategy\n state.strategy = strategy\n }\n },\n requirePassword (state) {\n state.strategy = PASSWORD_STRATEGY\n },\n requireToken (state) {\n state.strategy = TOKEN_STRATEGY\n },\n requireMFA (state, { settings }) {\n state.settings = settings\n state.strategy = TOTP_STRATEGY // default strategy of MFA\n },\n requireRecovery (state) {\n state.strategy = RECOVERY_STRATEGY\n },\n requireTOTP (state) {\n state.strategy = TOTP_STRATEGY\n },\n abortMFA (state) {\n resetState(state)\n }\n}\n\n// actions\nconst actions = {\n // eslint-disable-next-line camelcase\n async login ({ state, dispatch, commit }, { access_token }) {\n commit('setToken', access_token, { root: true })\n await dispatch('loginUser', access_token, { root: true })\n resetState(state)\n }\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions\n}\n","import fileTypeService from '../services/file_type/file_type.service.js'\nconst supportedTypes = new Set(['image', 'video', 'audio', 'flash'])\n\nconst mediaViewer = {\n state: {\n media: [],\n currentIndex: 0,\n activated: false\n },\n mutations: {\n setMedia (state, media) {\n state.media = media\n },\n setCurrentMedia (state, index) {\n state.activated = true\n state.currentIndex = index\n },\n close (state) {\n state.activated = false\n }\n },\n actions: {\n setMedia ({ commit }, attachments) {\n const media = attachments.filter(attachment => {\n const type = fileTypeService.fileType(attachment.mimetype)\n return supportedTypes.has(type)\n })\n commit('setMedia', media)\n },\n setCurrentMedia ({ commit, state }, current) {\n const index = state.media.indexOf(current)\n commit('setCurrentMedia', index || 0)\n },\n closeMediaViewer ({ commit }) {\n commit('close')\n }\n }\n}\n\nexport default mediaViewer\n","const oauthTokens = {\n state: {\n tokens: []\n },\n actions: {\n fetchTokens ({ rootState, commit }) {\n rootState.api.backendInteractor.fetchOAuthTokens().then((tokens) => {\n commit('swapTokens', tokens)\n })\n },\n revokeToken ({ rootState, commit, state }, id) {\n rootState.api.backendInteractor.revokeOAuthToken({ id }).then((response) => {\n if (response.status === 201) {\n commit('swapTokens', state.tokens.filter(token => token.id !== id))\n }\n })\n }\n },\n mutations: {\n swapTokens (state, tokens) {\n state.tokens = tokens\n }\n }\n}\n\nexport default oauthTokens\n","import filter from 'lodash/filter'\n\nconst reports = {\n state: {\n reportModal: {\n userId: null,\n statuses: [],\n preTickedIds: [],\n activated: false\n },\n reports: {}\n },\n mutations: {\n openUserReportingModal (state, { userId, statuses, preTickedIds }) {\n state.reportModal.userId = userId\n state.reportModal.statuses = statuses\n state.reportModal.preTickedIds = preTickedIds\n state.reportModal.activated = true\n },\n closeUserReportingModal (state) {\n state.reportModal.activated = false\n },\n setReportState (reportsState, { id, state }) {\n reportsState.reports[id].state = state\n },\n addReport (state, report) {\n state.reports[report.id] = report\n }\n },\n actions: {\n openUserReportingModal ({ rootState, commit }, { userId, statusIds = [] }) {\n const preTickedStatuses = statusIds.map(id => rootState.statuses.allStatusesObject[id])\n const preTickedIds = statusIds\n const statuses = preTickedStatuses.concat(\n filter(rootState.statuses.allStatuses,\n status => status.user.id === userId && !preTickedIds.includes(status.id)\n )\n )\n commit('openUserReportingModal', { userId, statuses, preTickedIds })\n },\n closeUserReportingModal ({ commit }) {\n commit('closeUserReportingModal')\n },\n setReportState ({ commit, dispatch, rootState }, { id, state }) {\n const oldState = rootState.reports.reports[id].state\n commit('setReportState', { id, state })\n rootState.api.backendInteractor.setReportState({ id, state }).catch(e => {\n console.error('Failed to set report state', e)\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'general.generic_error_message',\n messageArgs: [e.message],\n timeout: 5000\n })\n commit('setReportState', { id, state: oldState })\n })\n },\n addReport ({ commit }, report) {\n commit('addReport', report)\n }\n }\n}\n\nexport default reports\n","import { merge } from 'lodash'\n\nconst polls = {\n state: {\n // Contains key = id, value = number of trackers for this poll\n trackedPolls: {},\n pollsObject: {}\n },\n mutations: {\n mergeOrAddPoll (state, poll) {\n const existingPoll = state.pollsObject[poll.id]\n // Make expired-state change trigger re-renders properly\n poll.expired = Date.now() > Date.parse(poll.expires_at)\n if (existingPoll) {\n state.pollsObject[poll.id] = merge(existingPoll, poll)\n } else {\n state.pollsObject[poll.id] = poll\n }\n },\n trackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue + 1\n } else {\n state.trackedPolls[pollId] = 1\n }\n },\n untrackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue - 1\n } else {\n state.trackedPolls[pollId] = 0\n }\n }\n },\n actions: {\n mergeOrAddPoll ({ commit }, poll) {\n commit('mergeOrAddPoll', poll)\n },\n updateTrackedPoll ({ rootState, dispatch, commit }, pollId) {\n rootState.api.backendInteractor.fetchPoll({ pollId }).then(poll => {\n setTimeout(() => {\n if (rootState.polls.trackedPolls[pollId]) {\n dispatch('updateTrackedPoll', pollId)\n }\n }, 30 * 1000)\n commit('mergeOrAddPoll', poll)\n })\n },\n trackPoll ({ rootState, commit, dispatch }, pollId) {\n if (!rootState.polls.trackedPolls[pollId]) {\n setTimeout(() => dispatch('updateTrackedPoll', pollId), 30 * 1000)\n }\n commit('trackPoll', pollId)\n },\n untrackPoll ({ commit }, pollId) {\n commit('untrackPoll', pollId)\n },\n votePoll ({ rootState, commit }, { id, pollId, choices }) {\n return rootState.api.backendInteractor.vote({ pollId, choices }).then(poll => {\n commit('mergeOrAddPoll', poll)\n return poll\n })\n }\n }\n}\n\nexport default polls\n","const postStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openPostStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closePostStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openPostStatusModal ({ commit }, params) {\n commit('openPostStatusModal', params)\n },\n closePostStatusModal ({ commit }) {\n commit('closePostStatusModal')\n }\n }\n}\n\nexport default postStatus\n","const editStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openEditStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeEditStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openEditStatusModal ({ commit }, params) {\n commit('openEditStatusModal', params)\n },\n closeEditStatusModal ({ commit }) {\n commit('closeEditStatusModal')\n }\n }\n}\n\nexport default editStatus\n","const statusHistory = {\n state: {\n params: {},\n modalActivated: false\n },\n mutations: {\n openStatusHistoryModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeStatusHistoryModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openStatusHistoryModal ({ commit }, params) {\n commit('openStatusHistoryModal', params)\n },\n closeStatusHistoryModal ({ commit }) {\n commit('closeStatusHistoryModal')\n }\n }\n}\n\nexport default statusHistory\n","import _ from 'lodash'\n\nconst empty = (chatId) => {\n return {\n idIndex: {},\n idempotencyKeyIndex: {},\n messages: [],\n newMessageCount: 0,\n lastSeenMessageId: '0',\n chatId,\n minId: undefined,\n maxId: undefined\n }\n}\n\nconst clear = (storage) => {\n const failedMessageIds = []\n\n for (const message of storage.messages) {\n if (message.error) {\n failedMessageIds.push(message.id)\n } else {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n\n storage.messages = storage.messages.filter(m => failedMessageIds.includes(m.id))\n storage.newMessageCount = 0\n storage.lastSeenMessageId = '0'\n storage.minId = undefined\n storage.maxId = undefined\n}\n\nconst deleteMessage = (storage, messageId) => {\n if (!storage) { return }\n storage.messages = storage.messages.filter(m => m.id !== messageId)\n delete storage.idIndex[messageId]\n\n if (storage.maxId === messageId) {\n const lastMessage = _.maxBy(storage.messages, 'id')\n storage.maxId = lastMessage.id\n }\n\n if (storage.minId === messageId) {\n const firstMessage = _.minBy(storage.messages, 'id')\n storage.minId = firstMessage.id\n }\n}\n\nconst cullOlderMessages = (storage) => {\n const maxIndex = storage.messages.length\n const minIndex = maxIndex - 50\n if (maxIndex <= 50) return\n\n storage.messages = _.sortBy(storage.messages, ['id'])\n storage.minId = storage.messages[minIndex].id\n for (const message of storage.messages) {\n if (message.id < storage.minId) {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n storage.messages = storage.messages.slice(minIndex, maxIndex)\n}\n\nconst handleMessageError = (storage, fakeId, isRetry) => {\n if (!storage) { return }\n const fakeMessage = storage.idIndex[fakeId]\n if (fakeMessage) {\n fakeMessage.error = true\n fakeMessage.pending = false\n if (!isRetry) {\n // Ensure the failed message doesn't stay at the bottom of the list.\n const lastPersistedMessage = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'desc'])[0]\n if (lastPersistedMessage) {\n const oldId = fakeMessage.id\n fakeMessage.id = `${lastPersistedMessage.id}-${new Date().getTime()}`\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[oldId]\n }\n }\n }\n}\n\nconst add = (storage, { messages: newMessages, updateMaxId = true }) => {\n if (!storage) { return }\n for (let i = 0; i < newMessages.length; i++) {\n const message = newMessages[i]\n\n // sanity check\n if (message.chat_id !== storage.chatId) { return }\n\n if (message.fakeId) {\n const fakeMessage = storage.idIndex[message.fakeId]\n if (fakeMessage) {\n // In case the same id exists (chat update before POST response)\n // make sure to remove the older duplicate message.\n if (storage.idIndex[message.id]) {\n delete storage.idIndex[message.id]\n storage.messages = storage.messages.filter(msg => msg.id !== message.id)\n }\n Object.assign(fakeMessage, message, { error: false })\n delete fakeMessage.fakeId\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[message.fakeId]\n\n return\n }\n }\n\n if (!storage.minId || (!message.pending && message.id < storage.minId)) {\n storage.minId = message.id\n }\n\n if (!storage.maxId || message.id > storage.maxId) {\n if (updateMaxId) {\n storage.maxId = message.id\n }\n }\n\n if (!storage.idIndex[message.id] && !isConfirmation(storage, message)) {\n if (storage.lastSeenMessageId < message.id) {\n storage.newMessageCount++\n }\n storage.idIndex[message.id] = message\n storage.messages.push(storage.idIndex[message.id])\n storage.idempotencyKeyIndex[message.idempotency_key] = true\n }\n }\n}\n\nconst isConfirmation = (storage, message) => {\n if (!message.idempotency_key) return\n return storage.idempotencyKeyIndex[message.idempotency_key]\n}\n\nconst resetNewMessageCount = (storage) => {\n if (!storage) { return }\n storage.newMessageCount = 0\n storage.lastSeenMessageId = storage.maxId\n}\n\n// Inserts date separators and marks the head and tail if it's the chain of messages made by the same user\nconst getView = (storage) => {\n if (!storage) { return [] }\n\n const result = []\n const messages = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'asc'])\n const firstMessage = messages[0]\n let previousMessage = messages[messages.length - 1]\n let currentMessageChainId\n\n if (firstMessage) {\n const date = new Date(firstMessage.created_at)\n date.setHours(0, 0, 0, 0)\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n }\n\n let afterDate = false\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]\n const nextMessage = messages[i + 1]\n\n const date = new Date(message.created_at)\n date.setHours(0, 0, 0, 0)\n\n // insert date separator and start a new message chain\n if (previousMessage && previousMessage.date < date) {\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n\n previousMessage.isTail = true\n currentMessageChainId = undefined\n afterDate = true\n }\n\n const object = {\n type: 'message',\n data: message,\n date,\n id: message.id,\n messageChainId: currentMessageChainId\n }\n\n // end a message chian\n if ((nextMessage && nextMessage.account_id) !== message.account_id) {\n object.isTail = true\n currentMessageChainId = undefined\n }\n\n // start a new message chain\n if ((previousMessage && previousMessage.data && previousMessage.data.account_id) !== message.account_id || afterDate) {\n currentMessageChainId = _.uniqueId()\n object.isHead = true\n object.messageChainId = currentMessageChainId\n }\n\n result.push(object)\n previousMessage = object\n afterDate = false\n }\n\n return result\n}\n\nconst ChatService = {\n add,\n empty,\n getView,\n deleteMessage,\n cullOlderMessages,\n resetNewMessageCount,\n clear,\n handleMessageError\n}\n\nexport default ChatService\n","import { reactive } from 'vue'\nimport { find, omitBy, orderBy, sumBy } from 'lodash'\nimport chatService from '../services/chat_service/chat_service.js'\nimport { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { promiseInterval } from '../services/promise_interval/promise_interval.js'\n\nconst emptyChatList = () => ({\n data: [],\n idStore: {}\n})\n\nconst defaultState = {\n chatList: emptyChatList(),\n chatListFetcher: null,\n openedChats: reactive({}),\n openedChatMessageServices: reactive({}),\n fetcher: undefined,\n currentChatId: null,\n lastReadMessageId: null\n}\n\nconst getChatById = (state, id) => {\n return find(state.chatList.data, { id })\n}\n\nconst sortedChatList = (state) => {\n return orderBy(state.chatList.data, ['updated_at'], ['desc'])\n}\n\nconst unreadChatCount = (state) => {\n return sumBy(state.chatList.data, 'unread')\n}\n\nconst chats = {\n state: { ...defaultState },\n getters: {\n currentChat: state => state.openedChats[state.currentChatId],\n currentChatMessageService: state => state.openedChatMessageServices[state.currentChatId],\n findOpenedChatByRecipientId: state => recipientId => find(state.openedChats, c => c.account.id === recipientId),\n sortedChatList,\n unreadChatCount\n },\n actions: {\n // Chat list\n startFetchingChats ({ dispatch, commit }) {\n const fetcher = () => dispatch('fetchChats', { latest: true })\n fetcher()\n commit('setChatListFetcher', {\n fetcher: () => promiseInterval(fetcher, 5000)\n })\n },\n stopFetchingChats ({ commit }) {\n commit('setChatListFetcher', { fetcher: undefined })\n },\n fetchChats ({ dispatch, rootState, commit }, params = {}) {\n return rootState.api.backendInteractor.chats()\n .then(({ chats }) => {\n dispatch('addNewChats', { chats })\n return chats\n })\n },\n addNewChats (store, { chats }) {\n const { commit, dispatch, rootGetters } = store\n const newChatMessageSideEffects = (chat) => {\n maybeShowChatNotification(store, chat)\n }\n commit('addNewChats', { dispatch, chats, rootGetters, newChatMessageSideEffects })\n },\n updateChat ({ commit }, { chat }) {\n commit('updateChat', { chat })\n },\n\n // Opened Chats\n startFetchingCurrentChat ({ commit, dispatch }, { fetcher }) {\n dispatch('setCurrentChatFetcher', { fetcher })\n },\n setCurrentChatFetcher ({ rootState, commit }, { fetcher }) {\n commit('setCurrentChatFetcher', { fetcher })\n },\n addOpenedChat ({ rootState, commit, dispatch }, { chat }) {\n commit('addOpenedChat', { dispatch, chat: parseChat(chat) })\n dispatch('addNewUsers', [chat.account])\n },\n addChatMessages ({ commit }, value) {\n commit('addChatMessages', { commit, ...value })\n },\n resetChatNewMessageCount ({ commit }, value) {\n commit('resetChatNewMessageCount', value)\n },\n clearCurrentChat ({ rootState, commit, dispatch }, value) {\n commit('setCurrentChatId', { chatId: undefined })\n commit('setCurrentChatFetcher', { fetcher: undefined })\n },\n readChat ({ rootState, commit, dispatch }, { id, lastReadId }) {\n const isNewMessage = rootState.chats.lastReadMessageId !== lastReadId\n\n dispatch('resetChatNewMessageCount')\n commit('readChat', { id, lastReadId })\n\n if (isNewMessage) {\n rootState.api.backendInteractor.readChat({ id, lastReadId })\n }\n },\n deleteChatMessage ({ rootState, commit }, value) {\n rootState.api.backendInteractor.deleteChatMessage(value)\n commit('deleteChatMessage', { commit, ...value })\n },\n resetChats ({ commit, dispatch }) {\n dispatch('clearCurrentChat')\n commit('resetChats', { commit })\n },\n clearOpenedChats ({ rootState, commit, dispatch, rootGetters }) {\n commit('clearOpenedChats', { commit })\n },\n handleMessageError ({ commit }, value) {\n commit('handleMessageError', { commit, ...value })\n },\n cullOlderMessages ({ commit }, chatId) {\n commit('cullOlderMessages', chatId)\n }\n },\n mutations: {\n setChatListFetcher (state, { commit, fetcher }) {\n const prevFetcher = state.chatListFetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.chatListFetcher = fetcher && fetcher()\n },\n setCurrentChatFetcher (state, { fetcher }) {\n const prevFetcher = state.fetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.fetcher = fetcher && fetcher()\n },\n addOpenedChat (state, { _dispatch, chat }) {\n state.currentChatId = chat.id\n state.openedChats[chat.id] = chat\n\n if (!state.openedChatMessageServices[chat.id]) {\n state.openedChatMessageServices[chat.id] = chatService.empty(chat.id)\n }\n },\n setCurrentChatId (state, { chatId }) {\n state.currentChatId = chatId\n },\n addNewChats (state, { chats, newChatMessageSideEffects }) {\n chats.forEach((updatedChat) => {\n const chat = getChatById(state, updatedChat.id)\n\n if (chat) {\n const isNewMessage = (chat.lastMessage && chat.lastMessage.id) !== (updatedChat.lastMessage && updatedChat.lastMessage.id)\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n if (isNewMessage && chat.unread) {\n newChatMessageSideEffects(updatedChat)\n }\n } else {\n state.chatList.data.push(updatedChat)\n state.chatList.idStore[updatedChat.id] = updatedChat\n }\n })\n },\n updateChat (state, { _dispatch, chat: updatedChat, _rootGetters }) {\n const chat = getChatById(state, updatedChat.id)\n if (chat) {\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n }\n if (!chat) { state.chatList.data.unshift(updatedChat) }\n state.chatList.idStore[updatedChat.id] = updatedChat\n },\n deleteChat (state, { _dispatch, id, _rootGetters }) {\n state.chats.data = state.chats.data.filter(conversation =>\n conversation.last_status.id !== id\n )\n state.chats.idStore = omitBy(state.chats.idStore, conversation => conversation.last_status.id === id)\n },\n resetChats (state, { commit }) {\n state.chatList = emptyChatList()\n state.currentChatId = null\n commit('setChatListFetcher', { fetcher: undefined })\n for (const chatId in state.openedChats) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n },\n setChatsLoading (state, { value }) {\n state.chats.loading = value\n },\n addChatMessages (state, { chatId, messages, updateMaxId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.add(chatMessageService, { messages: messages.map(parseChatMessage), updateMaxId })\n }\n },\n deleteChatMessage (state, { chatId, messageId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.deleteMessage(chatMessageService, messageId)\n }\n },\n resetChatNewMessageCount (state, _value) {\n const chatMessageService = state.openedChatMessageServices[state.currentChatId]\n chatService.resetNewMessageCount(chatMessageService)\n },\n // Used when a connection loss occurs\n clearOpenedChats (state) {\n const currentChatId = state.currentChatId\n for (const chatId in state.openedChats) {\n if (currentChatId !== chatId) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n }\n },\n readChat (state, { id, lastReadId }) {\n state.lastReadMessageId = lastReadId\n const chat = getChatById(state, id)\n if (chat) {\n chat.unread = 0\n }\n },\n handleMessageError (state, { chatId, fakeId, isRetry }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n chatService.handleMessageError(chatMessageService, fakeId, isRetry)\n },\n cullOlderMessages (state, chatId) {\n chatService.cullOlderMessages(state.openedChatMessageServices[chatId])\n }\n }\n}\n\nexport default chats\n","const FETCH_ANNOUNCEMENT_INTERVAL_MS = 1000 * 60 * 5\n\nexport const defaultState = {\n announcements: [],\n supportsAnnouncements: true,\n fetchAnnouncementsTimer: undefined\n}\n\nexport const mutations = {\n setAnnouncements (state, announcements) {\n state.announcements = announcements\n },\n setAnnouncementRead (state, { id, read }) {\n const index = state.announcements.findIndex(a => a.id === id)\n\n if (index < 0) {\n return\n }\n\n state.announcements[index].read = read\n },\n setFetchAnnouncementsTimer (state, timer) {\n state.fetchAnnouncementsTimer = timer\n },\n setSupportsAnnouncements (state, supportsAnnouncements) {\n state.supportsAnnouncements = supportsAnnouncements\n }\n}\n\nexport const getters = {\n unreadAnnouncementCount (state, _getters, rootState) {\n if (!rootState.users.currentUser) {\n return 0\n }\n\n const unread = state.announcements.filter(announcement => !(announcement.inactive || announcement.read))\n return unread.length\n }\n}\n\nconst announcements = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchAnnouncements (store) {\n if (!store.state.supportsAnnouncements) {\n return Promise.resolve()\n }\n\n const currentUser = store.rootState.users.currentUser\n const isAdmin = currentUser && currentUser.role === 'admin'\n\n const getAnnouncements = async () => {\n if (!isAdmin) {\n return store.rootState.api.backendInteractor.fetchAnnouncements()\n }\n\n const all = await store.rootState.api.backendInteractor.adminFetchAnnouncements()\n const visible = await store.rootState.api.backendInteractor.fetchAnnouncements()\n const visibleObject = visible.reduce((a, c) => {\n a[c.id] = c\n return a\n }, {})\n const getWithinVisible = announcement => visibleObject[announcement.id]\n\n all.forEach(announcement => {\n const visibleAnnouncement = getWithinVisible(announcement)\n if (!visibleAnnouncement) {\n announcement.inactive = true\n } else {\n announcement.read = visibleAnnouncement.read\n }\n })\n\n return all\n }\n\n return getAnnouncements()\n .then(announcements => {\n store.commit('setAnnouncements', announcements)\n })\n .catch(error => {\n // If and only if backend does not support announcements, it would return 404.\n // In this case, silently ignores it.\n if (error && error.statusCode === 404) {\n store.commit('setSupportsAnnouncements', false)\n } else {\n throw error\n }\n })\n },\n markAnnouncementAsRead (store, id) {\n return store.rootState.api.backendInteractor.dismissAnnouncement({ id })\n .then(() => {\n store.commit('setAnnouncementRead', { id, read: true })\n })\n },\n startFetchingAnnouncements (store) {\n if (store.state.fetchAnnouncementsTimer) {\n return\n }\n\n const interval = setInterval(() => store.dispatch('fetchAnnouncements'), FETCH_ANNOUNCEMENT_INTERVAL_MS)\n store.commit('setFetchAnnouncementsTimer', interval)\n\n return store.dispatch('fetchAnnouncements')\n },\n stopFetchingAnnouncements (store) {\n const interval = store.state.fetchAnnouncementsTimer\n store.commit('setFetchAnnouncementsTimer', undefined)\n clearInterval(interval)\n },\n postAnnouncement (store, { content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.postAnnouncement({ content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n editAnnouncement (store, { id, content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.editAnnouncement({ id, content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n deleteAnnouncement (store, id) {\n return store.rootState.api.backendInteractor.deleteAnnouncement({ id })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n }\n }\n}\n\nexport default announcements\n","import merge from 'lodash.merge'\nimport localforage from 'localforage'\nimport { each, get, set, cloneDeep } from 'lodash'\n\nlet loaded = false\n\nconst defaultReducer = (state, paths) => (\n paths.length === 0\n ? state\n : paths.reduce((substate, path) => {\n set(substate, path, get(state, path))\n return substate\n }, {})\n)\n\nconst saveImmedeatelyActions = [\n 'markNotificationsAsSeen',\n 'clearCurrentUser',\n 'setCurrentUser',\n 'setServerSideStorage',\n 'setHighlight',\n 'setOption',\n 'setClientData',\n 'setToken',\n 'clearToken'\n]\n\nconst defaultStorage = (() => {\n return localforage\n})()\n\nexport default function createPersistedState ({\n key = 'vuex-lz',\n paths = [],\n getState = (key, storage) => {\n const value = storage.getItem(key)\n return value\n },\n setState = (key, state, storage) => {\n if (!loaded) {\n console.log('waiting for old state to be loaded...')\n return Promise.resolve()\n } else {\n return storage.setItem(key, state)\n }\n },\n reducer = defaultReducer,\n storage = defaultStorage,\n subscriber = store => handler => store.subscribe(handler)\n} = {}) {\n return getState(key, storage).then((savedState) => {\n return store => {\n try {\n if (savedState !== null && typeof savedState === 'object') {\n // build user cache\n const usersState = savedState.users || {}\n usersState.usersObject = {}\n const users = usersState.users || []\n each(users, (user) => { usersState.usersObject[user.id] = user })\n savedState.users = usersState\n\n store.replaceState(\n merge({}, store.state, savedState)\n )\n }\n loaded = true\n } catch (e) {\n console.log(\"Couldn't load state\")\n console.error(e)\n loaded = true\n }\n subscriber(store)((mutation, state) => {\n try {\n if (saveImmedeatelyActions.includes(mutation.type)) {\n setState(key, reducer(cloneDeep(state), paths), storage)\n .then(success => {\n if (typeof success !== 'undefined') {\n if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n store.dispatch('settingsSaved', { success })\n }\n }\n }, error => {\n if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n store.dispatch('settingsSaved', { error })\n }\n })\n }\n } catch (e) {\n console.log(\"Couldn't persist state:\")\n console.log(e)\n }\n })\n }\n })\n}\n","export default (store) => {\n store.subscribe((mutation, state) => {\n const vapidPublicKey = state.instance.vapidPublicKey\n const webPushNotification = state.config.webPushNotifications\n const permission = state.interface.notificationPermission === 'granted'\n const user = state.users.currentUser\n\n const isUserMutation = mutation.type === 'setCurrentUser'\n const isVapidMutation = mutation.type === 'setInstanceOption' && mutation.payload.name === 'vapidPublicKey'\n const isPermMutation = mutation.type === 'setNotificationPermission' && mutation.payload === 'granted'\n const isUserConfigMutation = mutation.type === 'setOption' && mutation.payload.name === 'webPushNotifications'\n const isVisibilityMutation = mutation.type === 'setOption' && mutation.payload.name === 'notificationVisibility'\n\n if (isUserMutation || isVapidMutation || isPermMutation || isUserConfigMutation || isVisibilityMutation) {\n if (user && vapidPublicKey && permission && webPushNotification) {\n return store.dispatch('registerPushNotifications')\n } else if (isUserConfigMutation && !webPushNotification) {\n return store.dispatch('unregisterPushNotifications')\n }\n }\n })\n}\n","<template>\n <div\n id=\"app-loaded\"\n :style=\"bgStyle\"\n >\n <div\n id=\"app_bg_wrapper\"\n class=\"app-bg-wrapper\"\n />\n <MobileNav v-if=\"layoutType === 'mobile'\" />\n <DesktopNav\n v-else\n :class=\"navClasses\"\n />\n <Notifications v-if=\"currentUser\" />\n <div\n id=\"content\"\n class=\"app-layout container\"\n :class=\"classes\"\n >\n <div class=\"underlay\" />\n <div\n id=\"sidebar\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n >\n <user-panel />\n <template v-if=\"layoutType !== 'mobile'\">\n <nav-panel />\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <features-panel v-if=\"!currentUser && showFeaturesPanel\" />\n <who-to-follow-panel v-if=\"currentUser && suggestionsEnabled\" />\n <div id=\"notifs-sidebar\" />\n </template>\n </div>\n <main\n id=\"main-scroller\"\n class=\"column main\"\n :class=\"{ '-full-height': isChats || isListEdit }\"\n >\n <div\n v-if=\"!currentUser\"\n class=\"login-hint panel panel-default\"\n >\n <router-link\n :to=\"{ name: 'login' }\"\n class=\"panel-body\"\n >\n {{ $t(\"login.hint\") }}\n </router-link>\n </div>\n <router-view />\n </main>\n <div\n id=\"notifs-column\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n />\n </div>\n <MediaModal />\n <shout-panel\n v-if=\"currentUser && shout && !hideShoutbox\"\n :floating=\"true\"\n class=\"floating-shout mobile-hidden\"\n :class=\"{ '-left': shoutboxPosition }\"\n />\n <MobilePostStatusButton />\n <UserReportingModal />\n <PostStatusModal />\n <EditStatusModal v-if=\"editingAvailable\" />\n <StatusHistoryModal v-if=\"editingAvailable\" />\n <SettingsModal />\n <UpdateNotification />\n <div id=\"modal\" />\n <GlobalNoticeList />\n </div>\n</template>\n\n<script src=\"./App.js\"></script>\n<style lang=\"scss\" src=\"./App.scss\"></style>\n","<template>\n <aside class=\"user-panel\">\n <div\n v-if=\"signedIn\"\n key=\"user-panel-signed\"\n class=\"panel panel-default signed-in\"\n >\n <UserCard\n :user-id=\"user.id\"\n :hide-bio=\"true\"\n rounded=\"top\"\n />\n <PostStatusForm />\n </div>\n <auth-form\n v-else\n key=\"user-panel\"\n />\n </aside>\n</template>\n\n<script src=\"./user_panel.js\"></script>\n\n<style lang=\"scss\">\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n</style>\n","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.login') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <template v-if=\"isPasswordAuth\">\n <div class=\"form-group\">\n <label for=\"username\">{{ $t('login.username') }}</label>\n <input\n id=\"username\"\n v-model=\"user.username\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n :placeholder=\"$t('login.placeholder')\"\n >\n </div>\n <div class=\"form-group\">\n <label for=\"password\">{{ $t('login.password') }}</label>\n <input\n id=\"password\"\n ref=\"passwordInput\"\n v-model=\"user.password\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n type=\"password\"\n >\n </div>\n <div class=\"form-group\">\n <router-link :to=\"{name: 'password-reset'}\">\n {{ $t('password_reset.forgot_password') }}\n </router-link>\n </div>\n </template>\n\n <div\n v-if=\"isTokenAuth\"\n class=\"form-group\"\n >\n <p>{{ $t('login.description') }}</p>\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <router-link\n v-if=\"registrationOpen\"\n :to=\"{name: 'registration'}\"\n class=\"register\"\n >\n {{ $t('login.register') }}\n </router-link>\n </div>\n <button\n :disabled=\"loggingIn\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('login.login') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./login_form.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1.0em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height:24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n</style>\n","import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport oauthApi from '../../services/new_api/oauth.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst LoginForm = {\n data: () => ({\n user: {},\n error: false\n }),\n computed: {\n isPasswordAuth () { return this.requiredPassword },\n isTokenAuth () { return this.requiredToken },\n ...mapState({\n registrationOpen: state => state.instance.registrationOpen,\n instance: state => state.instance,\n loggingIn: state => state.users.loggingIn,\n oauth: state => state.oauth\n }),\n ...mapGetters(\n 'authFlow', ['requiredPassword', 'requiredToken', 'requiredMFA']\n )\n },\n methods: {\n ...mapMutations('authFlow', ['requireMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n submit () {\n this.isTokenAuth ? this.submitToken() : this.submitPassword()\n },\n submitToken () {\n const { clientId, clientSecret } = this.oauth\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n commit: this.$store.commit\n }\n\n oauthApi.getOrCreateApp(data)\n .then((app) => { oauthApi.login({ ...app, ...data }) })\n },\n submitPassword () {\n const { clientId } = this.oauth\n const data = {\n clientId,\n oauth: this.oauth,\n instance: this.instance.server,\n commit: this.$store.commit\n }\n this.error = false\n\n oauthApi.getOrCreateApp(data).then((app) => {\n oauthApi.getTokenWithCredentials(\n {\n ...app,\n instance: data.instance,\n username: this.user.username,\n password: this.user.password\n }\n ).then((result) => {\n if (result.error) {\n if (result.error === 'mfa_required') {\n this.requireMFA({ settings: result })\n } else if (result.identifier === 'password_reset_required') {\n this.$router.push({ name: 'password-reset', params: { passwordResetRequested: true } })\n } else {\n this.error = result.error\n this.focusOnPasswordInput()\n }\n return\n }\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n })\n },\n clearError () { this.error = false },\n focusOnPasswordInput () {\n const passwordInput = this.$refs.passwordInput\n passwordInput.focus()\n passwordInput.setSelectionRange(0, passwordInput.value.length)\n }\n }\n}\n\nexport default LoginForm\n","import { render } from \"./login_form.vue?vue&type=template&id=34ffae9c\"\nimport script from \"./login_form.js?vue&type=script&lang=js\"\nexport * from \"./login_form.js?vue&type=script&lang=js\"\n\nimport \"./login_form.vue?vue&type=style&index=0&id=34ffae9c&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.recovery') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">{{ $t('login.recovery_code') }}</label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireTOTP\"\n >\n {{ $t('login.enter_two_factor_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./recovery_form.js\"></script>\n","const verifyOTPCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'totp')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'recovery')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst mfa = {\n verifyOTPCode,\n verifyRecoveryCode\n}\n\nexport default mfa\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nexport default {\n data: () => ({\n code: null,\n error: false\n }),\n computed: {\n ...mapGetters({\n authSettings: 'authFlow/settings'\n }),\n ...mapState({\n instance: 'instance',\n oauth: 'oauth'\n })\n },\n methods: {\n ...mapMutations('authFlow', ['requireTOTP', 'abortMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n clearError () { this.error = false },\n submit () {\n const { clientId, clientSecret } = this.oauth\n\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n mfaToken: this.authSettings.mfa_token,\n code: this.code\n }\n\n mfaApi.verifyRecoveryCode(data).then((result) => {\n if (result.error) {\n this.error = result.error\n this.code = null\n return\n }\n\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n }\n }\n}\n","import { render } from \"./recovery_form.vue?vue&type=template&id=e18da610\"\nimport script from \"./recovery_form.js?vue&type=script&lang=js\"\nexport * from \"./recovery_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.totp') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">\n {{ $t('login.authentication_code') }}\n </label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireRecovery\"\n >\n {{ $t('login.enter_recovery_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n size=\"lg\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./totp_form.js\"></script>\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nexport default {\n data: () => ({\n code: null,\n error: false\n }),\n computed: {\n ...mapGetters({\n authSettings: 'authFlow/settings'\n }),\n ...mapState({\n instance: 'instance',\n oauth: 'oauth'\n })\n },\n methods: {\n ...mapMutations('authFlow', ['requireRecovery', 'abortMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n clearError () { this.error = false },\n submit () {\n const { clientId, clientSecret } = this.oauth\n\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n mfaToken: this.authSettings.mfa_token,\n code: this.code\n }\n\n mfaApi.verifyOTPCode(data).then((result) => {\n if (result.error) {\n this.error = result.error\n this.code = null\n return\n }\n\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n }\n }\n}\n","import { render } from \"./totp_form.vue?vue&type=template&id=6fb04413\"\nimport script from \"./totp_form.js?vue&type=script&lang=js\"\nexport * from \"./totp_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { h, resolveComponent } from 'vue'\nimport LoginForm from '../login_form/login_form.vue'\nimport MFARecoveryForm from '../mfa_form/recovery_form.vue'\nimport MFATOTPForm from '../mfa_form/totp_form.vue'\nimport { mapGetters } from 'vuex'\n\nconst AuthForm = {\n name: 'AuthForm',\n render () {\n return h(resolveComponent(this.authForm))\n },\n computed: {\n authForm () {\n if (this.requiredTOTP) { return 'MFATOTPForm' }\n if (this.requiredRecovery) { return 'MFARecoveryForm' }\n return 'LoginForm'\n },\n ...mapGetters('authFlow', ['requiredTOTP', 'requiredRecovery'])\n },\n components: {\n MFARecoveryForm,\n MFATOTPForm,\n LoginForm\n }\n}\n\nexport default AuthForm\n","import AuthForm from '../auth_form/auth_form.js'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport { mapState } from 'vuex'\n\nconst UserPanel = {\n computed: {\n signedIn () { return this.user },\n ...mapState({ user: state => state.users.currentUser })\n },\n components: {\n AuthForm,\n PostStatusForm,\n UserCard\n }\n}\n\nexport default UserPanel\n","import { render } from \"./user_panel.vue?vue&type=template&id=1a2cb8e9\"\nimport script from \"./user_panel.js?vue&type=script&lang=js\"\nexport * from \"./user_panel.js?vue&type=script&lang=js\"\n\nimport \"./user_panel.vue?vue&type=style&index=0&id=1a2cb8e9&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"NavPanel\">\n <div class=\"panel panel-default\">\n <div\n v-if=\"!forceExpand\"\n class=\"panel-heading nav-panel-heading\"\n >\n <NavigationPins :limit=\"6\" />\n <div class=\"spacer\" />\n <button\n class=\"button-unstyled\"\n @click=\"toggleCollapse\"\n >\n <FAIcon\n class=\"navigation-chevron\"\n fixed-width\n :icon=\"collapsed ? 'chevron-down' : 'chevron-up'\"\n />\n </button>\n </div>\n <ul\n v-if=\"!collapsed || forceExpand\"\n class=\"panel-body\"\n >\n <NavigationEntry\n v-if=\"currentUser || !privateMode\"\n :show-pin=\"false\"\n :item=\"{ icon: 'stream', label: 'nav.timelines' }\"\n :aria-expanded=\"showTimelines ? 'true' : 'false'\"\n @click=\"toggleTimelines\"\n >\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showTimelines ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showTimelines\"\n class=\"timelines-background\"\n >\n <div class=\"timelines\">\n <NavigationEntry\n v-for=\"item in timelinesItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n </div>\n </div>\n <NavigationEntry\n v-if=\"currentUser\"\n :show-pin=\"false\"\n :item=\"{ icon: 'list', label: 'nav.lists' }\"\n :aria-expanded=\"showLists ? 'true' : 'false'\"\n @click=\"toggleLists\"\n >\n <router-link\n :title=\"$t('lists.manage_lists')\"\n class=\"extra-button\"\n :to=\"{ name: 'lists' }\"\n @click.stop\n >\n <FAIcon\n class=\"extra-button\"\n fixed-width\n icon=\"wrench\"\n />\n </router-link>\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showLists ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showLists\"\n class=\"timelines-background\"\n >\n <ListsMenuContent\n :show-pin=\"editMode || forceEditMode\"\n class=\"timelines\"\n />\n </div>\n <NavigationEntry\n v-for=\"item in rootItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n <NavigationEntry\n v-if=\"!forceEditMode && currentUser\"\n :show-pin=\"false\"\n :item=\"{ label: editMode ? $t('nav.edit_finish') : $t('nav.edit_pinned'), icon: editMode ? 'check' : 'wrench' }\"\n @click=\"toggleEditMode\"\n />\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./nav_panel.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n --panel-heading-height-padding: 0em;\n }\n}\n</style>\n","<template>\n <OptionalRouterLink\n v-slot=\"{ isActive, href, navigate } = {}\"\n ass=\"ass\"\n :to=\"routeTo\"\n >\n <li\n class=\"NavigationEntry menu-item\"\n :class=\"{ '-active': isActive }\"\n v-bind=\"$attrs\"\n >\n <component\n :is=\"routeTo ? 'a' : 'button'\"\n class=\"main-link button-unstyled\"\n :href=\"href\"\n @click=\"navigate\"\n >\n <span>\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n class=\"fa-scale-110 menu-icon\"\n :icon=\"item.icon\"\n />\n </span>\n <span\n v-if=\"item.iconLetter\"\n class=\"icon iconLetter fa-scale-110 menu-icon\"\n >{{ item.iconLetter }}\n </span>\n <span class=\"label\">\n {{ item.labelRaw || $t(item.label) }}\n </span>\n </component>\n <slot />\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"badge badge-notification\"\n >\n {{ getters[item.badgeGetter] }}\n </div>\n <button\n v-if=\"showPin && currentUser\"\n type=\"button\"\n class=\"button-unstyled extra-button\"\n :title=\"$t(isPinned ? 'general.unpin' : 'general.pin' )\"\n :aria-pressed=\"!!isPinned\"\n @click.stop.prevent=\"togglePin(item.name)\"\n >\n <FAIcon\n v-if=\"showPin && currentUser\"\n fixed-width\n class=\"fa-scale-110\"\n :class=\"{ 'veryfaint': !isPinned(item.name) }\"\n :transform=\"!isPinned(item.name) ? 'rotate-45' : ''\"\n icon=\"thumbtack\"\n />\n </button>\n </li>\n </OptionalRouterLink>\n</template>\n\n<script src=\"./navigation_entry.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n</style>\n","export const USERNAME_ROUTES = new Set([\n 'bookmarks',\n 'dms',\n 'interactions',\n 'notifications',\n 'chat',\n 'chats',\n 'user-profile'\n])\n\nexport const TIMELINES = {\n home: {\n route: 'friends',\n icon: 'home',\n label: 'nav.home_timeline',\n criteria: ['!private']\n },\n public: {\n route: 'public-timeline',\n anon: true,\n icon: 'users',\n label: 'nav.public_tl',\n criteria: ['!private']\n },\n twkn: {\n route: 'public-external-timeline',\n anon: true,\n icon: 'globe',\n label: 'nav.twkn',\n criteria: ['!private', 'federating']\n },\n bookmarks: {\n route: 'bookmarks',\n icon: 'bookmark',\n label: 'nav.bookmarks'\n },\n favorites: {\n routeObject: { name: 'user-profile', query: { tab: 'favorites' } },\n icon: 'star',\n label: 'user_card.favorites'\n },\n dms: {\n route: 'dms',\n icon: 'envelope',\n label: 'nav.dms'\n }\n}\n\nexport const ROOT_ITEMS = {\n interactions: {\n route: 'interactions',\n icon: 'bell',\n label: 'nav.interactions'\n },\n chats: {\n route: 'chats',\n icon: 'comments',\n label: 'nav.chats',\n badgeGetter: 'unreadChatCount',\n criteria: ['chats']\n },\n friendRequests: {\n route: 'friend-requests',\n icon: 'user-plus',\n label: 'nav.friend_requests',\n criteria: ['lockedUser'],\n badgeGetter: 'followRequestCount'\n },\n about: {\n route: 'about',\n anon: true,\n icon: 'info-circle',\n label: 'nav.about'\n },\n announcements: {\n route: 'announcements',\n icon: 'bullhorn',\n label: 'nav.announcements',\n badgeGetter: 'unreadAnnouncementCount',\n criteria: ['announcements']\n }\n}\n","<template>\n <!-- eslint-disable vue/no-multiple-template-root -->\n <router-link\n v-if=\"to\"\n v-slot=\"props\"\n :to=\"to\"\n custom\n >\n <slot\n v-bind=\"props\"\n />\n </router-link>\n <slot\n v-else\n v-bind=\"{}\"\n />\n</template>\n\n<script>\nexport default {\n props: ['to']\n}\n</script>\n","import { render } from \"./optional_router_link.vue?vue&type=template&id=0ec30c00\"\nimport script from \"./optional_router_link.vue?vue&type=script&lang=js\"\nexport * from \"./optional_router_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport { USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport OptionalRouterLink from 'src/components/optional_router_link/optional_router_link.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faThumbtack } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faThumbtack)\n\nconst NavigationEntry = {\n props: ['item', 'showPin'],\n components: {\n OptionalRouterLink\n },\n methods: {\n isPinned (value) {\n return this.pinnedItems.has(value)\n },\n togglePin (value) {\n if (this.isPinned(value)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n routeTo () {\n if (!this.item.route && !this.item.routeObject) return null\n let route\n if (this.item.routeObject) {\n route = this.item.routeObject\n } else {\n route = { name: (this.item.anon || this.currentUser) ? this.item.route : this.item.anonRoute }\n }\n if (USERNAME_ROUTES.has(route.name)) {\n route.params = { username: this.currentUser.screen_name, name: this.currentUser.screen_name }\n }\n return route\n },\n getters () {\n return this.$store.getters\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n })\n }\n}\n\nexport default NavigationEntry\n","import { render } from \"./navigation_entry.vue?vue&type=template&id=05be76ee\"\nimport script from \"./navigation_entry.js?vue&type=script&lang=js\"\nexport * from \"./navigation_entry.js?vue&type=script&lang=js\"\n\nimport \"./navigation_entry.vue?vue&type=style&index=0&id=05be76ee&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export const filterNavigation = (list = [], { hasChats, hasAnnouncements, isFederating, isPrivate, currentUser }) => {\n return list.filter(({ criteria, anon, anonRoute }) => {\n const set = new Set(criteria || [])\n if (!isFederating && set.has('federating')) return false\n if (!currentUser && isPrivate && set.has('!private')) return false\n if (!currentUser && !(anon || anonRoute)) return false\n if ((!currentUser || !currentUser.locked) && set.has('lockedUser')) return false\n if (!hasChats && set.has('chats')) return false\n if (!hasAnnouncements && set.has('announcements')) return false\n return true\n })\n}\n\nexport const getListEntries = state => state.lists.allLists.map(list => ({\n name: 'list-' + list.id,\n routeObject: { name: 'lists-timeline', params: { id: list.id } },\n labelRaw: list.title,\n iconLetter: list.title[0]\n}))\n","import { mapState } from 'vuex'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { getListEntries } from 'src/components/navigation/filter.js'\n\nexport const ListsMenuContent = {\n props: [\n 'showPin'\n ],\n components: {\n NavigationEntry\n },\n computed: {\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n })\n }\n}\n\nexport default ListsMenuContent\n","import { render } from \"./lists_menu_content.vue?vue&type=template&id=24f15238\"\nimport script from \"./lists_menu_content.js?vue&type=script&lang=js\"\nexport * from \"./lists_menu_content.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <ul>\n <NavigationEntry\n v-for=\"item in lists\"\n :key=\"item.name\"\n :show-pin=\"showPin\"\n :item=\"item\"\n />\n </ul>\n</template>\n\n<script src=\"./lists_menu_content.js\"></script>\n","<template>\n <span class=\"NavigationPins\">\n <router-link\n v-for=\"item in pinnedList\"\n :key=\"item.name\"\n class=\"pinned-item\"\n :to=\"getRouteTo(item)\"\n :title=\"item.labelRaw || $t(item.label)\"\n >\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n :icon=\"item.icon\"\n />\n <span\n v-if=\"item.iconLetter\"\n class=\"iconLetter fa-scale-110 fa-old-padding\"\n >{{ item.iconLetter }}</span>\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"alert-dot\"\n />\n </router-link>\n </span>\n</template>\n\n<script src=\"./navigation_pins.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS, USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport { getListEntries, filterNavigation } from 'src/components/navigation/filter.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n)\n\nconst NavPanel = {\n props: ['limit'],\n methods: {\n getRouteTo (item) {\n if (item.routeObject) {\n return item.routeObject\n }\n const route = { name: (item.anon || this.currentUser) ? item.route : item.anonRoute }\n if (USERNAME_ROUTES.has(route.name)) {\n route.params = { username: this.currentUser.screen_name }\n }\n return route\n }\n },\n computed: {\n getters () {\n return this.$store.getters\n },\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n }),\n pinnedList () {\n if (!this.currentUser) {\n return filterNavigation([\n { ...TIMELINES.public, name: 'public' },\n { ...TIMELINES.twkn, name: 'twkn' },\n { ...ROOT_ITEMS.about, name: 'about' }\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n })\n }\n return filterNavigation(\n [\n ...Object\n .entries({ ...TIMELINES })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k })),\n ...this.lists.filter((k) => this.pinnedItems.has(k.name)),\n ...Object\n .entries({ ...ROOT_ITEMS })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k }))\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n ).slice(0, this.limit)\n }\n }\n}\n\nexport default NavPanel\n","import { render } from \"./navigation_pins.vue?vue&type=template&id=1a0003e2\"\nimport script from \"./navigation_pins.js?vue&type=script&lang=js\"\nexport * from \"./navigation_pins.js?vue&type=script&lang=js\"\n\nimport \"./navigation_pins.vue?vue&type=style&index=0&id=1a0003e2&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'\nimport { mapState, mapGetters } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n)\nconst NavPanel = {\n props: ['forceExpand', 'forceEditMode'],\n created () {\n },\n components: {\n ListsMenuContent,\n NavigationEntry,\n NavigationPins,\n Checkbox\n },\n data () {\n return {\n editMode: false,\n showTimelines: false,\n showLists: false,\n timelinesList: Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n rootList: Object.entries(ROOT_ITEMS).map(([k, v]) => ({ ...v, name: k }))\n }\n },\n methods: {\n toggleTimelines () {\n this.showTimelines = !this.showTimelines\n },\n toggleLists () {\n this.showLists = !this.showLists\n },\n toggleEditMode () {\n this.editMode = !this.editMode\n },\n toggleCollapse () {\n this.$store.commit('setPreference', { path: 'simple.collapseNav', value: !this.collapsed })\n this.$store.dispatch('pushServerSideStorage')\n },\n isPinned (item) {\n return this.pinnedItems.has(item)\n },\n togglePin (item) {\n if (this.isPinned(item)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems),\n collapsed: state => state.serverSideStorage.prefsStorage.simple.collapseNav\n }),\n timelinesItems () {\n return filterNavigation(\n Object\n .entries({ ...TIMELINES })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n rootItems () {\n return filterNavigation(\n Object\n .entries({ ...ROOT_ITEMS })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n }\n}\n\nexport default NavPanel\n","import { render } from \"./nav_panel.vue?vue&type=template&id=6917af50\"\nimport script from \"./nav_panel.js?vue&type=script&lang=js\"\nexport * from \"./nav_panel.js?vue&type=script&lang=js\"\n\nimport \"./nav_panel.vue?vue&type=style&index=0&id=6917af50&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"instance-specific-panel\">\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div v-html=\"instanceSpecificPanelContent\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./instance_specific_panel.js\"></script>\n","const InstanceSpecificPanel = {\n computed: {\n instanceSpecificPanelContent () {\n return this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default InstanceSpecificPanel\n","import { render } from \"./instance_specific_panel.vue?vue&type=template&id=707b4e95\"\nimport script from \"./instance_specific_panel.js?vue&type=script&lang=js\"\nexport * from \"./instance_specific_panel.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"features-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('features_panel.title') }}\n </div>\n </div>\n <div class=\"panel-body features-panel\">\n <ul>\n <li v-if=\"shout\">\n {{ $t('features_panel.shout') }}\n </li>\n <li v-if=\"pleromaChatMessages\">\n {{ $t('features_panel.pleroma_chat_messages') }}\n </li>\n <li v-if=\"gopher\">\n {{ $t('features_panel.gopher') }}\n </li>\n <li v-if=\"whoToFollow\">\n {{ $t('features_panel.who_to_follow') }}\n </li>\n <li v-if=\"mediaProxy\">\n {{ $t('features_panel.media_proxy') }}\n </li>\n <li>{{ $t('features_panel.scope_options') }}</li>\n <li>{{ $t('features_panel.text_limit') }} = {{ textlimit }}</li>\n <li>{{ $t('features_panel.upload_limit') }} = {{ uploadlimit.num }} {{ $t('upload.file_size_units.' + uploadlimit.unit) }}</li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./features_panel.js\"></script>\n\n<style lang=\"scss\">\n .features-panel li {\n line-height: 24px;\n }\n</style>\n","import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nconst FeaturesPanel = {\n computed: {\n shout: function () { return this.$store.state.instance.shoutAvailable },\n pleromaChatMessages: function () { return this.$store.state.instance.pleromaChatMessagesAvailable },\n gopher: function () { return this.$store.state.instance.gopherAvailable },\n whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled },\n mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable },\n minimalScopesMode: function () { return this.$store.state.instance.minimalScopesMode },\n textlimit: function () { return this.$store.state.instance.textlimit },\n uploadlimit: function () { return fileSizeFormatService.fileSizeFormat(this.$store.state.instance.uploadlimit) }\n }\n}\n\nexport default FeaturesPanel\n","import { render } from \"./features_panel.vue?vue&type=template&id=76defdfa\"\nimport script from \"./features_panel.js?vue&type=script&lang=js\"\nexport * from \"./features_panel.js?vue&type=script&lang=js\"\n\nimport \"./features_panel.vue?vue&type=style&index=0&id=76defdfa&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"who-to-follow-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n </div>\n <div class=\"who-to-follow\">\n <p\n v-for=\"user in usersToFollow\"\n :key=\"user.id\"\n class=\"who-to-follow-items\"\n >\n <img :src=\"user.img\">\n <router-link :to=\"userProfileLink(user.id, user.name)\">\n {{ user.name }}\n </router-link><br>\n </p>\n <p class=\"who-to-follow-more\">\n <router-link :to=\"{ name: 'who-to-follow' }\">\n {{ $t('who_to_follow.more') }}\n </router-link>\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow_panel.js\"></script>\n\n<style lang=\"scss\">\n .who-to-follow * {\n vertical-align: middle;\n }\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n .who-to-follow {\n padding: 0em 1em;\n margin: 0px;\n }\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0px;\n margin: 1em 0em;\n }\n .who-to-follow-more {\n padding: 0px;\n margin: 1em 0em;\n text-align: center;\n }\n</style>\n","import apiService from '../../services/api/api.service.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { shuffle } from 'lodash'\n\nfunction showWhoToFollow (panel, reply) {\n const shuffled = shuffle(reply)\n\n panel.usersToFollow.forEach((toFollow, index) => {\n const user = shuffled[index]\n const img = user.avatar || this.$store.state.instance.defaultAvatar\n const name = user.acct\n\n toFollow.img = img\n toFollow.name = name\n\n panel.$store.state.api.backendInteractor.fetchUser({ id: name })\n .then((externalUser) => {\n if (!externalUser.error) {\n panel.$store.commit('addNewUsers', [externalUser])\n toFollow.id = externalUser.id\n }\n })\n })\n}\n\nfunction getWhoToFollow (panel) {\n const credentials = panel.$store.state.users.currentUser.credentials\n if (credentials) {\n panel.usersToFollow.forEach(toFollow => {\n toFollow.name = 'Loading...'\n })\n apiService.suggestions({ credentials })\n .then((reply) => {\n showWhoToFollow(panel, reply)\n })\n }\n}\n\nconst WhoToFollowPanel = {\n data: () => ({\n usersToFollow: []\n }),\n computed: {\n user: function () {\n return this.$store.state.users.currentUser.screen_name\n },\n suggestionsEnabled () {\n return this.$store.state.instance.suggestionsEnabled\n }\n },\n methods: {\n userProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n }\n },\n watch: {\n user: function (user, oldUser) {\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n },\n mounted:\n function () {\n this.usersToFollow = new Array(3).fill().map(x => (\n {\n img: this.$store.state.instance.defaultAvatar,\n name: '',\n id: 0\n }\n ))\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n}\n\nexport default WhoToFollowPanel\n","import { render } from \"./who_to_follow_panel.vue?vue&type=template&id=755c2db7\"\nimport script from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\n\nimport \"./who_to_follow_panel.vue?vue&type=style&index=0&id=755c2db7&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!collapsed || !floating\"\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading timeline-heading\"\n :class=\"{ 'shout-heading': floating }\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n {{ $t('shoutbox.title') }}\n <FAIcon\n v-if=\"floating\"\n icon=\"times\"\n class=\"close-icon\"\n />\n </div>\n </div>\n <div class=\"shout-window\">\n <div\n v-for=\"message in messages\"\n :key=\"message.id\"\n class=\"shout-message\"\n >\n <span class=\"shout-avatar\">\n <img :src=\"message.author.avatar\">\n </span>\n <div class=\"shout-content\">\n <router-link\n class=\"shout-name\"\n :to=\"userProfileLink(message.author)\"\n >\n {{ message.author.username }}\n </router-link>\n <br>\n <span class=\"shout-text\">\n {{ message.text }}\n </span>\n </div>\n </div>\n </div>\n <div class=\"shout-input\">\n <textarea\n v-model=\"currentMessage\"\n class=\"shout-input-textarea\"\n rows=\"1\"\n @keyup.enter=\"submit(currentMessage)\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading -stub timeline-heading shout-heading\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n <FAIcon\n class=\"icon\"\n icon=\"bullhorn\"\n />\n {{ $t('shoutbox.title') }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./shout_panel.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n</style>\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBullhorn,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faBullhorn,\n faTimes\n)\n\nconst shoutPanel = {\n props: ['floating'],\n data () {\n return {\n currentMessage: '',\n channel: null,\n collapsed: true\n }\n },\n computed: {\n messages () {\n return this.$store.state.shout.messages\n }\n },\n methods: {\n submit (message) {\n this.$store.state.shout.channel.push('new_msg', { text: message }, 10000)\n this.currentMessage = ''\n },\n togglePanel () {\n this.collapsed = !this.collapsed\n },\n userProfileLink (user) {\n return generateProfileLink(user.id, user.username, this.$store.state.instance.restrictedNicknames)\n }\n },\n watch: {\n messages (newVal) {\n const scrollEl = this.$el.querySelector('.chat-window')\n if (!scrollEl) return\n if (scrollEl.scrollTop + scrollEl.offsetHeight + 20 > scrollEl.scrollHeight) {\n this.$nextTick(() => {\n if (!scrollEl) return\n scrollEl.scrollTop = scrollEl.scrollHeight - scrollEl.offsetHeight\n })\n }\n }\n }\n}\n\nexport default shoutPanel\n","import { render } from \"./shout_panel.vue?vue&type=template&id=9e22a182\"\nimport script from \"./shout_panel.js?vue&type=script&lang=js\"\nexport * from \"./shout_panel.js?vue&type=script&lang=js\"\n\nimport \"./shout_panel.vue?vue&type=style&index=0&id=9e22a182&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"showing\"\n class=\"media-modal-view\"\n @backdropClicked=\"hideIfNotSwiped\"\n >\n <SwipeClick\n v-if=\"type === 'image'\"\n ref=\"swipeClick\"\n class=\"modal-image-container\"\n :direction=\"swipeDirection\"\n :threshold=\"swipeThreshold\"\n @preview-requested=\"handleSwipePreview\"\n @swipe-finished=\"handleSwipeEnd\"\n @swipeless-clicked=\"hide\"\n >\n <PinchZoom\n ref=\"pinchZoom\"\n class=\"modal-image-container-inner\"\n selector=\".modal-image\"\n reach-min-scale-strategy=\"reset\"\n stop-propagate-handled=\"stop-propgate-handled\"\n :allow-pan-min-scale=\"pinchZoomMinScale\"\n :min-scale=\"pinchZoomMinScale\"\n :reset-to-min-scale-limit=\"pinchZoomScaleResetLimit\"\n >\n <img\n :class=\"{ loading }\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n @load=\"onImageLoaded\"\n >\n </PinchZoom>\n </SwipeClick>\n <VideoAttachment\n v-if=\"type === 'video'\"\n class=\"modal-image\"\n :attachment=\"currentMedia\"\n :controls=\"true\"\n />\n <audio\n v-if=\"type === 'audio'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n controls\n />\n <Flash\n v-if=\"type === 'flash'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n />\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.previous')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev\"\n @click.stop.prevent=\"goPrev\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-left\"\n />\n </button>\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.next')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--next\"\n @click.stop.prevent=\"goNext\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-right\"\n />\n </button>\n <button\n class=\"modal-view-button modal-view-button-hide\"\n :title=\"$t('media_modal.hide')\"\n @click.stop.prevent=\"hide\"\n >\n <FAIcon\n class=\"button-icon\"\n icon=\"times\"\n />\n </button>\n\n <span\n v-if=\"description\"\n class=\"description\"\n >\n {{ description }}\n </span>\n <span\n class=\"counter\"\n >\n {{ $tc('media_modal.counter', currentIndex + 1, { current: currentIndex + 1, total: media.length }) }}\n </span>\n <span\n v-if=\"loading\"\n class=\"loading-spinner\"\n >\n <FAIcon\n spin\n icon=\"circle-notch\"\n size=\"5x\"\n />\n </span>\n </Modal>\n</template>\n\n<script src=\"./media_modal.js\"></script>\n\n<style lang=\"scss\">\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n overflow: hidden;\n}\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(.4,0,.22,1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #FFF;\n text-align: center;\n background-color: rgba(0,0,0,.3);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #FFF;\n text-align: center;\n background-color: rgba(0,0,0,.3);\n }\n\n &--prev {\n left: 0;\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n</style>\n","import PinchZoom from '@kazvmoe-infra/pinch-zoom-element'\n\nexport default {\n methods: {\n setTransform ({ scale, x, y }) {\n this.$el.setTransform({ scale, x, y })\n }\n },\n created () {\n // Make lint happy\n (() => PinchZoom)()\n }\n}\n","import { render } from \"./pinch_zoom.vue?vue&type=template&id=4608b5bf\"\nimport script from \"./pinch_zoom.js?vue&type=script&lang=js\"\nexport * from \"./pinch_zoom.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <pinch-zoom\n class=\"pinch-zoom-parent\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n >\n <slot />\n </pinch-zoom>\n</template>\n\n<script src=\"./pinch_zoom.js\"></script>\n","\nconst DIRECTION_LEFT = [-1, 0]\nconst DIRECTION_RIGHT = [1, 0]\nconst DIRECTION_UP = [0, -1]\nconst DIRECTION_DOWN = [0, 1]\n\nconst BUTTON_LEFT = 0\n\nconst deltaCoord = (oldCoord, newCoord) => [newCoord[0] - oldCoord[0], newCoord[1] - oldCoord[1]]\n\nconst touchCoord = touch => [touch.screenX, touch.screenY]\n\nconst touchEventCoord = e => touchCoord(e.touches[0])\n\nconst pointerEventCoord = e => [e.clientX, e.clientY]\n\nconst vectorLength = v => Math.sqrt(v[0] * v[0] + v[1] * v[1])\n\nconst perpendicular = v => [v[1], -v[0]]\n\nconst dotProduct = (v1, v2) => v1[0] * v2[0] + v1[1] * v2[1]\n\nconst project = (v1, v2) => {\n const scalar = (dotProduct(v1, v2) / dotProduct(v2, v2))\n return [scalar * v2[0], scalar * v2[1]]\n}\n\n// direction: either use the constants above or an arbitrary 2d vector.\n// threshold: how many Px to move from touch origin before checking if the\n// callback should be called.\n// divergentTolerance: a scalar for much of divergent direction we tolerate when\n// above threshold. for example, with 1.0 we only call the callback if\n// divergent component of delta is < 1.0 * direction component of delta.\nconst swipeGesture = (direction, onSwipe, threshold = 30, perpendicularTolerance = 1.0) => {\n return {\n direction,\n onSwipe,\n threshold,\n perpendicularTolerance,\n _startPos: [0, 0],\n _swiping: false\n }\n}\n\nconst beginSwipe = (event, gesture) => {\n gesture._startPos = touchEventCoord(event)\n gesture._swiping = true\n}\n\nconst updateSwipe = (event, gesture) => {\n if (!gesture._swiping) return\n // movement too small\n const delta = deltaCoord(gesture._startPos, touchEventCoord(event))\n if (vectorLength(delta) < gesture.threshold) return\n // movement is opposite from direction\n if (dotProduct(delta, gesture.direction) < 0) return\n // movement perpendicular to direction is too much\n const towardsDir = project(delta, gesture.direction)\n const perpendicularDir = perpendicular(gesture.direction)\n const towardsPerpendicular = project(delta, perpendicularDir)\n if (\n vectorLength(towardsDir) * gesture.perpendicularTolerance <\n vectorLength(towardsPerpendicular)\n ) return\n\n gesture.onSwipe()\n gesture._swiping = false\n}\n\nclass SwipeAndClickGesture {\n // swipePreviewCallback(offsets: Array[Number])\n // offsets: the offset vector which the underlying component should move, from the starting position\n // swipeEndCallback(sign: 0|-1|1)\n // sign: if the swipe does not meet the threshold, 0\n // if the swipe meets the threshold in the positive direction, 1\n // if the swipe meets the threshold in the negative direction, -1\n constructor ({\n direction,\n // swipeStartCallback\n swipePreviewCallback,\n swipeEndCallback,\n swipeCancelCallback,\n swipelessClickCallback,\n threshold = 30,\n perpendicularTolerance = 1.0,\n disableClickThreshold = 1\n }) {\n const nop = () => {}\n this.direction = direction\n this.swipePreviewCallback = swipePreviewCallback || nop\n this.swipeEndCallback = swipeEndCallback || nop\n this.swipeCancelCallback = swipeCancelCallback || nop\n this.swipelessClickCallback = swipelessClickCallback || nop\n this.threshold = typeof threshold === 'function' ? threshold : () => threshold\n this.disableClickThreshold = typeof disableClickThreshold === 'function' ? disableClickThreshold : () => disableClickThreshold\n this.perpendicularTolerance = perpendicularTolerance\n this._reset()\n }\n\n _reset () {\n this._startPos = [0, 0]\n this._pointerId = -1\n this._swiping = false\n this._swiped = false\n this._preventNextClick = false\n }\n\n start (event) {\n // Only handle left click\n if (event.button !== BUTTON_LEFT) {\n return\n }\n\n this._startPos = pointerEventCoord(event)\n this._pointerId = event.pointerId\n this._swiping = true\n this._swiped = false\n }\n\n move (event) {\n if (this._swiping && this._pointerId === event.pointerId) {\n this._swiped = true\n\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n this.swipePreviewCallback(delta)\n }\n }\n\n cancel (event) {\n if (!this._swiping || this._pointerId !== event.pointerId) {\n return\n }\n\n this.swipeCancelCallback()\n }\n\n end (event) {\n if (!this._swiping) {\n return\n }\n\n if (this._pointerId !== event.pointerId) {\n return\n }\n\n this._swiping = false\n\n // movement too small\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n const sign = (() => {\n if (vectorLength(delta) < this.threshold()) {\n return 0\n }\n // movement is opposite from direction\n const isPositive = dotProduct(delta, this.direction) > 0\n\n // movement perpendicular to direction is too much\n const towardsDir = project(delta, this.direction)\n const perpendicularDir = perpendicular(this.direction)\n const towardsPerpendicular = project(delta, perpendicularDir)\n if (\n vectorLength(towardsDir) * this.perpendicularTolerance <\n vectorLength(towardsPerpendicular)\n ) {\n return 0\n }\n\n return isPositive ? 1 : -1\n })()\n\n if (this._swiped) {\n this.swipeEndCallback(sign)\n }\n this._reset()\n // Only a mouse will fire click event when\n // the end point is far from the starting point\n // so for other kinds of pointers do not check\n // whether we have swiped\n if (vectorLength(delta) >= this.disableClickThreshold() && event.pointerType === 'mouse') {\n this._preventNextClick = true\n }\n }\n\n click (event) {\n if (!this._preventNextClick) {\n this.swipelessClickCallback()\n }\n this._reset()\n }\n}\n\nconst GestureService = {\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN,\n swipeGesture,\n beginSwipe,\n updateSwipe,\n SwipeAndClickGesture\n}\n\nexport default GestureService\n","import GestureService from '../../services/gesture_service/gesture_service'\n\n/**\n * props:\n * direction: a vector that indicates the direction of the intended swipe\n * threshold: the minimum distance in pixels the swipe has moved on `direction'\n * for swipe-finished() to have a non-zero sign\n * perpendicularTolerance: see gesture_service\n *\n * Events:\n * preview-requested(offsets)\n * Emitted when the pointer has moved.\n * offsets: the offsets from the start of the swipe to the current cursor position\n *\n * swipe-canceled()\n * Emitted when the swipe has been canceled due to a pointercancel event.\n *\n * swipe-finished(sign: 0|-1|1)\n * Emitted when the swipe has finished.\n * sign: if the swipe does not meet the threshold, 0\n * if the swipe meets the threshold in the positive direction, 1\n * if the swipe meets the threshold in the negative direction, -1\n *\n * swipeless-clicked()\n * Emitted when there is a click without swipe.\n * This and swipe-finished() cannot be emitted for the same pointerup event.\n */\nconst SwipeClick = {\n props: {\n direction: {\n type: Array\n },\n threshold: {\n type: Function,\n default: () => 30\n },\n perpendicularTolerance: {\n type: Number,\n default: 1.0\n }\n },\n methods: {\n handlePointerDown (event) {\n this.$gesture.start(event)\n },\n handlePointerMove (event) {\n this.$gesture.move(event)\n },\n handlePointerUp (event) {\n this.$gesture.end(event)\n },\n handlePointerCancel (event) {\n this.$gesture.cancel(event)\n },\n handleNativeClick (event) {\n this.$gesture.click(event)\n },\n preview (offsets) {\n this.$emit('preview-requested', offsets)\n },\n end (sign) {\n this.$emit('swipe-finished', sign)\n },\n click () {\n this.$emit('swipeless-clicked')\n },\n cancel () {\n this.$emit('swipe-canceled')\n }\n },\n created () {\n this.$gesture = new GestureService.SwipeAndClickGesture({\n direction: this.direction,\n threshold: this.threshold,\n perpendicularTolerance: this.perpendicularTolerance,\n swipePreviewCallback: this.preview,\n swipeEndCallback: this.end,\n swipeCancelCallback: this.cancel,\n swipelessClickCallback: this.click\n })\n }\n}\n\nexport default SwipeClick\n","import { render } from \"./swipe_click.vue?vue&type=template&id=4c0f684c\"\nimport script from \"./swipe_click.js?vue&type=script&lang=js\"\nexport * from \"./swipe_click.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-bind=\"$attrs\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerMove\"\n @pointerup=\"handlePointerUp\"\n @pointercancel=\"handlePointerCancel\"\n @click=\"handleNativeClick\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./swipe_click.js\"></script>\n","import StillImage from '../still-image/still-image.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport Modal from '../modal/modal.vue'\nimport PinchZoom from '../pinch_zoom/pinch_zoom.vue'\nimport SwipeClick from '../swipe_click/swipe_click.vue'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport Flash from 'src/components/flash/flash.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n)\n\nconst MediaModal = {\n components: {\n StillImage,\n VideoAttachment,\n PinchZoom,\n SwipeClick,\n Modal,\n Flash\n },\n data () {\n return {\n loading: false,\n swipeDirection: GestureService.DIRECTION_LEFT,\n swipeThreshold: () => {\n const considerableMoveRatio = 1 / 4\n return window.innerWidth * considerableMoveRatio\n },\n pinchZoomMinScale: 1,\n pinchZoomScaleResetLimit: 1.2\n }\n },\n computed: {\n showing () {\n return this.$store.state.mediaViewer.activated\n },\n media () {\n return this.$store.state.mediaViewer.media\n },\n description () {\n return this.currentMedia.description\n },\n currentIndex () {\n return this.$store.state.mediaViewer.currentIndex\n },\n currentMedia () {\n return this.media[this.currentIndex]\n },\n canNavigate () {\n return this.media.length > 1\n },\n type () {\n return this.currentMedia ? this.getType(this.currentMedia) : null\n }\n },\n methods: {\n getType (media) {\n return fileTypeService.fileType(media.mimetype)\n },\n hide () {\n // HACK: Closing immediately via a touch will cause the click\n // to be processed on the content below the overlay\n const transitionTime = 100 // ms\n setTimeout(() => {\n this.$store.dispatch('closeMediaViewer')\n }, transitionTime)\n },\n hideIfNotSwiped (event) {\n // If we have swiped over SwipeClick, do not trigger hide\n const comp = this.$refs.swipeClick\n if (!comp) {\n this.hide()\n } else {\n comp.$gesture.click(event)\n }\n },\n goPrev () {\n if (this.canNavigate) {\n const prevIndex = this.currentIndex === 0 ? this.media.length - 1 : (this.currentIndex - 1)\n const newMedia = this.media[prevIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n goNext () {\n if (this.canNavigate) {\n const nextIndex = this.currentIndex === this.media.length - 1 ? 0 : (this.currentIndex + 1)\n const newMedia = this.media[nextIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n onImageLoaded () {\n this.loading = false\n },\n handleSwipePreview (offsets) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: offsets[0], y: 0 })\n },\n handleSwipeEnd (sign) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: 0, y: 0 })\n if (sign > 0) {\n this.goNext()\n } else if (sign < 0) {\n this.goPrev()\n }\n },\n handleKeyupEvent (e) {\n if (this.showing && e.keyCode === 27) { // escape\n this.hide()\n }\n },\n handleKeydownEvent (e) {\n if (!this.showing) {\n return\n }\n\n if (e.keyCode === 39) { // arrow right\n this.goNext()\n } else if (e.keyCode === 37) { // arrow left\n this.goPrev()\n }\n }\n },\n mounted () {\n window.addEventListener('popstate', this.hide)\n document.addEventListener('keyup', this.handleKeyupEvent)\n document.addEventListener('keydown', this.handleKeydownEvent)\n },\n unmounted () {\n window.removeEventListener('popstate', this.hide)\n document.removeEventListener('keyup', this.handleKeyupEvent)\n document.removeEventListener('keydown', this.handleKeydownEvent)\n }\n}\n\nexport default MediaModal\n","import { render } from \"./media_modal.vue?vue&type=template&id=21ea720c\"\nimport script from \"./media_modal.js?vue&type=script&lang=js\"\nexport * from \"./media_modal.js?vue&type=script&lang=js\"\n\nimport \"./media_modal.vue?vue&type=style&index=0&id=21ea720c&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"side-drawer-container\"\n :class=\"{ 'side-drawer-container-closed': closed, 'side-drawer-container-open': !closed }\"\n >\n <div\n class=\"side-drawer-darken\"\n :class=\"{ 'side-drawer-darken-closed': closed}\"\n />\n <div\n class=\"side-drawer\"\n :class=\"{'side-drawer-closed': closed}\"\n @touchstart=\"touchStart\"\n @touchmove=\"touchMove\"\n >\n <div\n class=\"side-drawer-heading\"\n @click=\"toggleDrawer\"\n >\n <UserCard\n v-if=\"currentUser\"\n :user-id=\"currentUser.id\"\n :hide-bio=\"true\"\n />\n <div\n v-else\n class=\"side-drawer-logo-wrapper\"\n >\n <img :src=\"logo\">\n <span v-if=\"!hideSitename\">{{ sitename }}</span>\n </div>\n </div>\n <ul>\n <li\n v-if=\"!currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'login' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-in-alt\"\n /> {{ $t(\"login.login\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"timelinesRoute\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"home\"\n /> {{ $t(\"nav.timelines\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'lists' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"list\"\n /> {{ $t(\"nav.lists\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && pleromaChatMessagesAvailable\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'chats', params: { username: currentUser.screen_name } }\"\n style=\"position: relative\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"comments\"\n /> {{ $t(\"nav.chats\") }}\n <span\n v-if=\"unreadChatCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadChatCount }}\n </span>\n </router-link>\n </li>\n </ul>\n <ul v-if=\"currentUser\">\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'interactions', params: { username: currentUser.screen_name } }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n /> {{ $t(\"nav.interactions\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser.locked\"\n @click=\"toggleDrawer\"\n >\n <router-link to=\"/friend-requests\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.friend_requests\") }}\n <span\n v-if=\"followRequestCount > 0\"\n class=\"badge badge-notification\"\n >\n {{ followRequestCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"shout\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'shout-panel' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"shoutbox.title\") }}\n </router-link>\n </li>\n </ul>\n <ul>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'search' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n /> {{ $t(\"nav.search\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && suggestionsEnabled\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'who-to-follow' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.who_to_follow\") }}\n </router-link>\n </li>\n <li @click=\"toggleDrawer\">\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n /> {{ $t(\"settings.settings\") }}\n </button>\n </li>\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'about'}\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"info-circle\"\n /> {{ $t(\"nav.about\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && currentUser.role === 'admin'\"\n @click=\"toggleDrawer\"\n >\n <a\n href=\"/pleroma/admin/#/login-pleroma\"\n target=\"_blank\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n /> {{ $t(\"nav.administration\") }}\n </a>\n </li>\n <li\n v-if=\"currentUser && supportsAnnouncements\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'announcements' }\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"nav.announcements\") }}\n <span\n v-if=\"unreadAnnouncementCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadAnnouncementCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'edit-navigation' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"compass\"\n /> {{ $t(\"nav.edit_nav_mobile\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"doLogout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n /> {{ $t(\"login.logout\") }}\n </button>\n </li>\n </ul>\n </div>\n <div\n class=\"side-drawer-click-outside\"\n :class=\"{'side-drawer-click-outside-closed': closed}\"\n @click.stop.prevent=\"toggleDrawer\"\n />\n </div>\n</template>\n\n<script src=\"./side_drawer.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgba(0, 0, 0, 0.5);\n}\n\n.side-drawer-darken-closed {\n background-color: rgba(0, 0, 0, 0);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition: 0.35s;\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a, button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport UserCard from '../user_card/user_card.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport { USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n)\n\nconst SideDrawer = {\n props: ['logout'],\n data: () => ({\n closed: true,\n closeGesture: undefined\n }),\n created () {\n this.closeGesture = GestureService.swipeGesture(GestureService.DIRECTION_LEFT, this.toggleDrawer)\n\n if (this.currentUser && this.currentUser.locked) {\n this.$store.dispatch('startFetchingFollowRequests')\n }\n },\n components: { UserCard },\n computed: {\n currentUser () {\n return this.$store.state.users.currentUser\n },\n shout () { return this.$store.state.shout.joined },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n unseenNotificationsCount () {\n return this.unseenNotifications.length\n },\n suggestionsEnabled () {\n return this.$store.state.instance.suggestionsEnabled\n },\n logo () {\n return this.$store.state.instance.logo\n },\n hideSitename () {\n return this.$store.state.instance.hideSitename\n },\n sitename () {\n return this.$store.state.instance.name\n },\n followRequestCount () {\n return this.$store.state.api.followRequests.length\n },\n privateMode () {\n return this.$store.state.instance.private\n },\n federating () {\n return this.$store.state.instance.federating\n },\n timelinesRoute () {\n let name\n if (this.$store.state.interface.lastTimeline) {\n name = this.$store.state.interface.lastTimeline\n }\n name = this.currentUser ? 'friends' : 'public-timeline'\n if (USERNAME_ROUTES.has(name)) {\n return { name, params: { username: this.currentUser.screen_name } }\n } else {\n return { name }\n }\n },\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements\n }),\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n },\n methods: {\n toggleDrawer () {\n this.closed = !this.closed\n },\n doLogout () {\n this.logout()\n this.toggleDrawer()\n },\n touchStart (e) {\n GestureService.beginSwipe(e, this.closeGesture)\n },\n touchMove (e) {\n GestureService.updateSwipe(e, this.closeGesture)\n },\n openSettingsModal () {\n this.$store.dispatch('openSettingsModal')\n }\n }\n}\n\nexport default SideDrawer\n","import { render } from \"./side_drawer.vue?vue&type=template&id=8f5a2cd2\"\nimport script from \"./side_drawer.js?vue&type=script&lang=js\"\nexport * from \"./side_drawer.js?vue&type=script&lang=js\"\n\nimport \"./side_drawer.vue?vue&type=style&index=0&id=8f5a2cd2&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { debounce } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faPen\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faPen\n)\n\nconst HIDDEN_FOR_PAGES = new Set([\n 'chats',\n 'chat',\n 'lists-edit'\n])\n\nconst MobilePostStatusButton = {\n data () {\n return {\n hidden: false,\n scrollingDown: false,\n inputActive: false,\n oldScrollPos: 0,\n amountScrolled: 0\n }\n },\n created () {\n if (this.autohideFloatingPostButton) {\n this.activateFloatingPostButtonAutohide()\n }\n window.addEventListener('resize', this.handleOSK)\n },\n unmounted () {\n if (this.autohideFloatingPostButton) {\n this.deactivateFloatingPostButtonAutohide()\n }\n window.removeEventListener('resize', this.handleOSK)\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isHidden () {\n if (HIDDEN_FOR_PAGES.has(this.$route.name)) { return true }\n\n return this.autohideFloatingPostButton && (this.hidden || this.inputActive)\n },\n isPersistent () {\n return !!this.$store.getters.mergedConfig.alwaysShowNewPostButton\n },\n autohideFloatingPostButton () {\n return !!this.$store.getters.mergedConfig.autohideFloatingPostButton\n }\n },\n watch: {\n autohideFloatingPostButton: function (isEnabled) {\n if (isEnabled) {\n this.activateFloatingPostButtonAutohide()\n } else {\n this.deactivateFloatingPostButtonAutohide()\n }\n }\n },\n methods: {\n activateFloatingPostButtonAutohide () {\n window.addEventListener('scroll', this.handleScrollStart)\n window.addEventListener('scroll', this.handleScrollEnd)\n },\n deactivateFloatingPostButtonAutohide () {\n window.removeEventListener('scroll', this.handleScrollStart)\n window.removeEventListener('scroll', this.handleScrollEnd)\n },\n openPostForm () {\n this.$store.dispatch('openPostStatusModal')\n },\n handleOSK () {\n // This is a big hack: we're guessing from changed window sizes if the\n // on-screen keyboard is active or not. This is only really important\n // for phones in portrait mode and it's more important to show the button\n // in normal scenarios on all phones, than it is to hide it when the\n // keyboard is active.\n // Guesswork based on https://www.mydevice.io/#compare-devices\n\n // for example, iphone 4 and android phones from the same time period\n const smallPhone = window.innerWidth < 350\n const smallPhoneKbOpen = smallPhone && window.innerHeight < 345\n\n const biggerPhone = !smallPhone && window.innerWidth < 450\n const biggerPhoneKbOpen = biggerPhone && window.innerHeight < 560\n if (smallPhoneKbOpen || biggerPhoneKbOpen) {\n this.inputActive = true\n } else {\n this.inputActive = false\n }\n },\n handleScrollStart: debounce(function () {\n if (window.scrollY > this.oldScrollPos) {\n this.hidden = true\n } else {\n this.hidden = false\n }\n this.oldScrollPos = window.scrollY\n }, 100, { leading: true, trailing: false }),\n\n handleScrollEnd: debounce(function () {\n this.hidden = false\n this.oldScrollPos = window.scrollY\n }, 100, { leading: false, trailing: true })\n }\n}\n\nexport default MobilePostStatusButton\n","import { render } from \"./mobile_post_status_button.vue?vue&type=template&id=2b050cd4\"\nimport script from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\nexport * from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\n\nimport \"./mobile_post_status_button.vue?vue&type=style&index=0&id=2b050cd4&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n v-if=\"isLoggedIn\"\n class=\"MobilePostButton button-default new-status-button\"\n :class=\"{ 'hidden': isHidden, 'always-show': isPersistent }\"\n :title=\"$t('post_status.new_status')\"\n @click=\"openPostForm\"\n >\n <FAIcon icon=\"pen\" />\n </button>\n</template>\n\n<script src=\"./mobile_post_status_button.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3), 0px 4px 6px rgba(0, 0, 0, 0.3);\n z-index: 10;\n\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n</style>\n","<template>\n <div\n class=\"MobileNav\"\n >\n <nav\n id=\"nav\"\n class=\"mobile-nav\"\n @click=\"scrollToTop()\"\n >\n <div class=\"item\">\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_sidebar')\"\n :aria-expanaded=\"$refs.sideDrawer && !$refs.sideDrawer.closed\"\n @click.stop.prevent=\"toggleMobileSidebar()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bars\"\n />\n <div\n v-if=\"(unreadChatCount && !chatsPinned) || unreadAnnouncementCount\"\n class=\"alert-dot\"\n />\n </button>\n <NavigationPins class=\"pins\" />\n </div> <div class=\"item right\">\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"unseenNotificationsCount ? $t('nav.mobile_notifications_unread_active') : $t('nav.mobile_notifications')\"\n @click.stop.prevent=\"openMobileNotifications()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n />\n <div\n v-if=\"unseenNotificationsCount\"\n class=\"alert-dot\"\n />\n </button>\n </div>\n </nav>\n <aside\n v-if=\"currentUser\"\n class=\"mobile-notifications-drawer\"\n :class=\"{ '-closed': !notificationsOpen }\"\n @touchstart.stop=\"notificationsTouchStart\"\n @touchmove.stop=\"notificationsTouchMove\"\n >\n <div class=\"mobile-notifications-header\">\n <span class=\"title\">{{ $t('notifications.notifications') }}</span>\n <span class=\"spacer\" />\n <button\n v-if=\"notificationsAtTop\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('general.scroll_to_top')\"\n @click.stop.prevent=\"scrollMobileNotificationsToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_notifications_close')\"\n @click.stop.prevent=\"closeMobileNotifications(true)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <div\n id=\"mobile-notifications\"\n ref=\"mobileNotifications\"\n class=\"mobile-notifications\"\n @scroll=\"onScroll\"\n />\n </aside>\n <SideDrawer\n ref=\"sideDrawer\"\n :logout=\"logout\"\n />\n </div>\n</template>\n\n<script src=\"./mobile_nav.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 .3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgba(0,0,0,.6);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0px 0px 4px rgba(0,0,0,.6);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n}\n\n</style>\n","import SideDrawer from '../side_drawer/side_drawer.vue'\nimport Notifications from '../notifications/notifications.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n)\n\nconst MobileNav = {\n components: {\n SideDrawer,\n Notifications,\n NavigationPins\n },\n data: () => ({\n notificationsCloseGesture: undefined,\n notificationsOpen: false,\n notificationsAtTop: true\n }),\n created () {\n this.notificationsCloseGesture = GestureService.swipeGesture(\n GestureService.DIRECTION_RIGHT,\n () => this.closeMobileNotifications(true),\n 50\n )\n },\n computed: {\n currentUser () {\n return this.$store.state.users.currentUser\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n unseenNotificationsCount () {\n return this.unseenNotifications.length\n },\n hideSitename () { return this.$store.state.instance.hideSitename },\n sitename () { return this.$store.state.instance.name },\n isChat () {\n return this.$route.name === 'chat'\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount']),\n chatsPinned () {\n return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has('chats')\n }\n },\n methods: {\n toggleMobileSidebar () {\n this.$refs.sideDrawer.toggleDrawer()\n },\n openMobileNotifications () {\n this.notificationsOpen = true\n },\n closeMobileNotifications (markRead) {\n if (this.notificationsOpen) {\n // make sure to mark notifs seen only when the notifs were open and not\n // from close-calls.\n this.notificationsOpen = false\n if (markRead) {\n this.markNotificationsAsSeen()\n }\n }\n },\n notificationsTouchStart (e) {\n GestureService.beginSwipe(e, this.notificationsCloseGesture)\n },\n notificationsTouchMove (e) {\n GestureService.updateSwipe(e, this.notificationsCloseGesture)\n },\n scrollToTop () {\n window.scrollTo(0, 0)\n },\n scrollMobileNotificationsToTop () {\n this.$refs.mobileNotifications.scrollTo(0, 0)\n },\n logout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n },\n markNotificationsAsSeen () {\n // this.$refs.notifications.markAsSeen()\n this.$store.dispatch('markNotificationsAsSeen')\n },\n onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) {\n this.notificationsAtTop = scrollTop > 0\n if (scrollTop + clientHeight >= scrollHeight) {\n this.$refs.notifications.fetchOlderNotifications()\n }\n }\n },\n watch: {\n $route () {\n // handles closing notificaitons when you press any router-link on the\n // notifications.\n this.closeMobileNotifications()\n }\n }\n}\n\nexport default MobileNav\n","import { render } from \"./mobile_nav.vue?vue&type=template&id=62717cd4\"\nimport script from \"./mobile_nav.js?vue&type=script&lang=js\"\nexport * from \"./mobile_nav.js?vue&type=script&lang=js\"\n\nimport \"./mobile_nav.vue?vue&type=style&index=0&id=62717cd4&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <nav\n id=\"nav\"\n class=\"DesktopNav\"\n :class=\"{ '-logoLeft': logoLeft }\"\n @click=\"scrollToTop()\"\n >\n <div class=\"inner-nav\">\n <div class=\"item sitename\">\n <router-link\n v-if=\"!hideSitename\"\n class=\"site-name\"\n :to=\"{ name: 'root' }\"\n active-class=\"home\"\n >\n {{ sitename }}\n </router-link>\n </div>\n <router-link\n class=\"logo\"\n :to=\"{ name: 'root' }\"\n :style=\"logoBgStyle\"\n >\n <div\n class=\"mask\"\n :style=\"logoMaskStyle\"\n />\n <img\n :src=\"logo\"\n :style=\"logoStyle\"\n >\n </router-link>\n <div class=\"item right actions\">\n <search-bar\n v-if=\"currentUser || !privateMode\"\n @toggled=\"onSearchBarToggled\"\n @click.stop\n />\n <button\n class=\"button-unstyled nav-icon\"\n @click=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n :title=\"$t('nav.preferences')\"\n />\n </button>\n <a\n v-if=\"currentUser && currentUser.role === 'admin'\"\n href=\"/pleroma/admin/#/login-pleroma\"\n class=\"nav-icon\"\n target=\"_blank\"\n @click.stop\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n :title=\"$t('nav.administration')\"\n />\n </a>\n <span class=\"spacer\" />\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled nav-icon\"\n @click.prevent=\"logout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n :title=\"$t('login.logout')\"\n />\n </button>\n </div>\n </div>\n </nav>\n</template>\n<script src=\"./desktop_nav.js\"></script>\n\n<style src=\"./desktop_nav.scss\" lang=\"scss\"></style>\n","<template>\n <div\n class=\"SearchBar\"\n :class=\"{ '-expanded': !hidden }\"\n >\n <button\n v-if=\"hidden\"\n class=\"button-unstyled nav-icon\"\n :title=\"$t('nav.search')\"\n type=\"button\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </button>\n <template v-else>\n <input\n id=\"search-bar-input\"\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-bar-input\"\n :placeholder=\"$t('nav.search')\"\n type=\"text\"\n @keyup.enter=\"find(searchTerm)\"\n >\n <button\n class=\"button-default search-button\"\n type=\"submit\"\n @click=\"find(searchTerm)\"\n >\n <FAIcon\n fixed-width\n icon=\"search\"\n />\n </button>\n <button\n class=\"button-unstyled cancel-search\"\n type=\"button\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n class=\"cancel-icon fa-scale-110 fa-old-padding\"\n />\n </button>\n <span class=\"spacer\" />\n <span class=\"spacer\" />\n </template>\n </div>\n</template>\n\n<script src=\"./search_bar.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faSearch\n)\n\nconst SearchBar = {\n data: () => ({\n searchTerm: undefined,\n hidden: true,\n error: false\n }),\n watch: {\n $route: function (route) {\n if (route.name === 'search') {\n this.searchTerm = route.query.query\n }\n }\n },\n methods: {\n find (searchTerm) {\n this.$router.push({ name: 'search', query: { query: searchTerm } })\n this.$refs.searchInput.focus()\n },\n toggleHidden () {\n this.hidden = !this.hidden\n this.$emit('toggled', this.hidden)\n this.$nextTick(() => {\n if (!this.hidden) {\n this.$refs.searchInput.focus()\n }\n })\n }\n }\n}\n\nexport default SearchBar\n","import { render } from \"./search_bar.vue?vue&type=template&id=4ac71253\"\nimport script from \"./search_bar.js?vue&type=script&lang=js\"\nexport * from \"./search_bar.js?vue&type=script&lang=js\"\n\nimport \"./search_bar.vue?vue&type=style&index=0&id=4ac71253&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import SearchBar from 'components/search_bar/search_bar.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n)\n\nexport default {\n components: {\n SearchBar\n },\n data: () => ({\n searchBarHidden: true,\n supportsMask: window.CSS && window.CSS.supports && (\n window.CSS.supports('mask-size', 'contain') ||\n window.CSS.supports('-webkit-mask-size', 'contain') ||\n window.CSS.supports('-moz-mask-size', 'contain') ||\n window.CSS.supports('-ms-mask-size', 'contain') ||\n window.CSS.supports('-o-mask-size', 'contain')\n )\n }),\n computed: {\n enableMask () { return this.supportsMask && this.$store.state.instance.logoMask },\n logoStyle () {\n return {\n visibility: this.enableMask ? 'hidden' : 'visible'\n }\n },\n logoMaskStyle () {\n return this.enableMask\n ? {\n 'mask-image': `url(${this.$store.state.instance.logo})`\n }\n : {\n 'background-color': this.enableMask ? '' : 'transparent'\n }\n },\n logoBgStyle () {\n return Object.assign({\n margin: `${this.$store.state.instance.logoMargin} 0`,\n opacity: this.searchBarHidden ? 1 : 0\n }, this.enableMask\n ? {}\n : {\n 'background-color': this.enableMask ? '' : 'transparent'\n })\n },\n logo () { return this.$store.state.instance.logo },\n sitename () { return this.$store.state.instance.name },\n hideSitename () { return this.$store.state.instance.hideSitename },\n logoLeft () { return this.$store.state.instance.logoLeft },\n currentUser () { return this.$store.state.users.currentUser },\n privateMode () { return this.$store.state.instance.private }\n },\n methods: {\n scrollToTop () {\n window.scrollTo(0, 0)\n },\n logout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n },\n onSearchBarToggled (hidden) {\n this.searchBarHidden = hidden\n },\n openSettingsModal () {\n this.$store.dispatch('openSettingsModal')\n }\n }\n}\n","import { render } from \"./desktop_nav.vue?vue&type=template&id=5f30298d\"\nimport script from \"./desktop_nav.js?vue&type=script&lang=js\"\nexport * from \"./desktop_nav.js?vue&type=script&lang=js\"\n\nimport \"./desktop_nav.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isOpen\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"user-reporting-panel panel\">\n <div class=\"panel-heading\">\n <i18n-t\n tag=\"div\"\n keypath=\"user_reporting.title\"\n class=\"title\"\n >\n <UserLink :user=\"user\" />\n </i18n-t>\n </div>\n <div class=\"panel-body\">\n <div class=\"user-reporting-panel-left\">\n <div>\n <p>{{ $t('user_reporting.add_comment_description') }}</p>\n <textarea\n v-model=\"comment\"\n class=\"form-control\"\n :placeholder=\"$t('user_reporting.additional_comments')\"\n rows=\"1\"\n @input=\"resize\"\n />\n </div>\n <div v-if=\"!user.is_local\">\n <p>{{ $t('user_reporting.forward_description') }}</p>\n <Checkbox v-model=\"forward\">\n {{ $t('user_reporting.forward_to', [remoteInstance]) }}\n </Checkbox>\n </div>\n <div>\n <button\n class=\"btn button-default\"\n :disabled=\"processing\"\n @click=\"reportUser\"\n >\n {{ $t('user_reporting.submit') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('user_reporting.generic_error') }}\n </div>\n </div>\n </div>\n <div class=\"user-reporting-panel-right\">\n <List :items=\"statuses\">\n <template #item=\"{item}\">\n <div class=\"status-fadein user-reporting-panel-sitem\">\n <Status\n :in-conversation=\"false\"\n :focused=\"false\"\n :statusoid=\"item\"\n />\n <Checkbox\n :model-value=\"isChecked(item.id)\"\n @update:model-value=\"checked => toggleStatus(checked, item.id)\"\n />\n </div>\n </template>\n </List>\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./user_reporting_modal.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n</style>\n","import Status from '../status/status.vue'\nimport List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Modal from '../modal/modal.vue'\nimport UserLink from '../user_link/user_link.vue'\n\nconst UserReportingModal = {\n components: {\n Status,\n List,\n Checkbox,\n Modal,\n UserLink\n },\n data () {\n return {\n comment: '',\n forward: false,\n statusIdsToReport: [],\n processing: false,\n error: false\n }\n },\n computed: {\n reportModal () {\n return this.$store.state.reports.reportModal\n },\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isOpen () {\n return this.isLoggedIn && this.reportModal.activated\n },\n userId () {\n return this.reportModal.userId\n },\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n remoteInstance () {\n return !this.user.is_local && this.user.screen_name.substr(this.user.screen_name.indexOf('@') + 1)\n },\n statuses () {\n return this.reportModal.statuses\n },\n preTickedIds () {\n return this.reportModal.preTickedIds\n }\n },\n watch: {\n userId: 'resetState',\n preTickedIds (newValue) {\n this.statusIdsToReport = newValue\n }\n },\n methods: {\n resetState () {\n // Reset state\n this.comment = ''\n this.forward = false\n this.statusIdsToReport = this.preTickedIds\n this.processing = false\n this.error = false\n },\n closeModal () {\n this.$store.dispatch('closeUserReportingModal')\n },\n reportUser () {\n this.processing = true\n this.error = false\n const params = {\n userId: this.userId,\n comment: this.comment,\n forward: this.forward,\n statusIds: this.statusIdsToReport\n }\n this.$store.state.api.backendInteractor.reportUser({ ...params })\n .then(() => {\n this.processing = false\n this.resetState()\n this.closeModal()\n })\n .catch(() => {\n this.processing = false\n this.error = true\n })\n },\n clearError () {\n this.error = false\n },\n isChecked (statusId) {\n return this.statusIdsToReport.indexOf(statusId) !== -1\n },\n toggleStatus (checked, statusId) {\n if (checked === this.isChecked(statusId)) {\n return\n }\n\n if (checked) {\n this.statusIdsToReport.push(statusId)\n } else {\n this.statusIdsToReport.splice(this.statusIdsToReport.indexOf(statusId), 1)\n }\n },\n resize (e) {\n const target = e.target || e\n if (!(target instanceof window.Element)) { return }\n // Auto is needed to make textbox shrink when removing lines\n target.style.height = 'auto'\n target.style.height = `${target.scrollHeight}px`\n if (target.value === '') {\n target.style.height = null\n }\n }\n }\n}\n\nexport default UserReportingModal\n","import { render } from \"./user_reporting_modal.vue?vue&type=template&id=4dd8a45a\"\nimport script from \"./user_reporting_modal.js?vue&type=script&lang=js\"\nexport * from \"./user_reporting_modal.js?vue&type=script&lang=js\"\n\nimport \"./user_reporting_modal.vue?vue&type=style&index=0&id=4dd8a45a&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isFormVisible\"\n class=\"edit-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"edit-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.edit_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n :post-handler=\"doEditStatus\"\n :disable-polls=\"true\"\n :disable-visibility-selector=\"true\"\n @posted=\"closeModal\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./edit_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n</style>\n","import PostStatusForm from '../post_status_form/post_status_form.vue'\nimport Modal from '../modal/modal.vue'\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport get from 'lodash/get'\n\nconst EditStatusModal = {\n components: {\n PostStatusForm,\n Modal\n },\n data () {\n return {\n resettingForm: false\n }\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n modalActivated () {\n return this.$store.state.editStatus.modalActivated\n },\n isFormVisible () {\n return this.isLoggedIn && !this.resettingForm && this.modalActivated\n },\n params () {\n return this.$store.state.editStatus.params || {}\n }\n },\n watch: {\n params (newVal, oldVal) {\n if (get(newVal, 'statusId') !== get(oldVal, 'statusId')) {\n this.resettingForm = true\n this.$nextTick(() => {\n this.resettingForm = false\n })\n }\n },\n isFormVisible (val) {\n if (val) {\n this.$nextTick(() => this.$el && this.$el.querySelector('textarea').focus())\n }\n }\n },\n methods: {\n doEditStatus ({ status, spoilerText, sensitive, media, contentType, poll }) {\n const params = {\n store: this.$store,\n statusId: this.$store.state.editStatus.params.statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media,\n contentType\n }\n\n return statusPosterService.editStatus(params)\n .then((data) => {\n return data\n })\n .catch((err) => {\n console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n },\n closeModal () {\n this.$store.dispatch('closeEditStatusModal')\n }\n }\n}\n\nexport default EditStatusModal\n","import { render } from \"./edit_status_modal.vue?vue&type=template&id=3dd4d50f\"\nimport script from \"./edit_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./edit_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./edit_status_modal.vue?vue&type=style&index=0&id=3dd4d50f&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isLoggedIn && !resettingForm\"\n :is-open=\"modalActivated\"\n class=\"post-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"post-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.new_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n @posted=\"closeModal\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./post_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","import PostStatusForm from '../post_status_form/post_status_form.vue'\nimport Modal from '../modal/modal.vue'\nimport get from 'lodash/get'\n\nconst PostStatusModal = {\n components: {\n PostStatusForm,\n Modal\n },\n data () {\n return {\n resettingForm: false\n }\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n modalActivated () {\n return this.$store.state.postStatus.modalActivated\n },\n isFormVisible () {\n return this.isLoggedIn && !this.resettingForm && this.modalActivated\n },\n params () {\n return this.$store.state.postStatus.params || {}\n }\n },\n watch: {\n params (newVal, oldVal) {\n if (get(newVal, 'repliedUser.id') !== get(oldVal, 'repliedUser.id')) {\n this.resettingForm = true\n this.$nextTick(() => {\n this.resettingForm = false\n })\n }\n },\n isFormVisible (val) {\n if (val) {\n this.$nextTick(() => this.$el && this.$el.querySelector('textarea').focus())\n }\n }\n },\n methods: {\n closeModal () {\n this.$store.dispatch('closePostStatusModal')\n }\n }\n}\n\nexport default PostStatusModal\n","import { render } from \"./post_status_modal.vue?vue&type=template&id=b6b8d3a2\"\nimport script from \"./post_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./post_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./post_status_modal.vue?vue&type=style&index=0&id=b6b8d3a2&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"modalActivated\"\n class=\"status-history-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"status-history-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('status.status_history') }} ({{ historyCount }})\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"historyCount > 0\"\n class=\"history-body\"\n >\n <status\n v-for=\"status in history\"\n :key=\"status.id\"\n :statusoid=\"status\"\n :is-preview=\"true\"\n class=\"conversation-status status-fadein panel-body\"\n />\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./status_history_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","import { get } from 'lodash'\nimport Modal from '../modal/modal.vue'\nimport Status from '../status/status.vue'\n\nconst StatusHistoryModal = {\n components: {\n Modal,\n Status\n },\n data () {\n return {\n statuses: []\n }\n },\n computed: {\n modalActivated () {\n return this.$store.state.statusHistory.modalActivated\n },\n params () {\n return this.$store.state.statusHistory.params\n },\n statusId () {\n return this.params.id\n },\n historyCount () {\n return this.statuses.length\n },\n history () {\n return this.statuses\n }\n },\n watch: {\n params (newVal, oldVal) {\n const newStatusId = get(newVal, 'id') !== get(oldVal, 'id')\n if (newStatusId) {\n this.resetHistory()\n }\n\n if (newStatusId || get(newVal, 'edited_at') !== get(oldVal, 'edited_at')) {\n this.fetchStatusHistory()\n }\n }\n },\n methods: {\n resetHistory () {\n this.statuses = []\n },\n fetchStatusHistory () {\n this.$store.dispatch('fetchStatusHistory', this.params)\n .then(data => {\n this.statuses = data\n })\n },\n closeModal () {\n this.$store.dispatch('closeStatusHistoryModal')\n }\n }\n}\n\nexport default StatusHistoryModal\n","import { render } from \"./status_history_modal.vue?vue&type=template&id=8f55a35a\"\nimport script from \"./status_history_modal.js?vue&type=script&lang=js\"\nexport * from \"./status_history_modal.js?vue&type=script&lang=js\"\n\nimport \"./status_history_modal.vue?vue&type=style&index=0&id=8f55a35a&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"global-notice-list\">\n <div\n v-for=\"(notice, index) in notices\"\n :key=\"index\"\n class=\"alert global-notice\"\n :class=\"{ ['global-' + notice.level]: true }\"\n >\n <div class=\"notice-message\">\n {{ $t(notice.messageKey, notice.messageArgs) }}\n </div>\n <button\n class=\"button-unstyled close-notice\"\n @click=\"closeNotice(notice)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script src=\"./global_notice_list.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_navbar_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst GlobalNoticeList = {\n computed: {\n notices () {\n return this.$store.state.interface.globalNotices\n }\n },\n methods: {\n closeNotice (notice) {\n this.$store.dispatch('removeGlobalNotice', notice)\n }\n }\n}\n\nexport default GlobalNoticeList\n","import { render } from \"./global_notice_list.vue?vue&type=template&id=388f9032\"\nimport script from \"./global_notice_list.js?vue&type=script&lang=js\"\nexport * from \"./global_notice_list.js?vue&type=script&lang=js\"\n\nimport \"./global_notice_list.vue?vue&type=style&index=0&id=388f9032&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserPanel from './components/user_panel/user_panel.vue'\nimport NavPanel from './components/nav_panel/nav_panel.vue'\nimport InstanceSpecificPanel from './components/instance_specific_panel/instance_specific_panel.vue'\nimport FeaturesPanel from './components/features_panel/features_panel.vue'\nimport WhoToFollowPanel from './components/who_to_follow_panel/who_to_follow_panel.vue'\nimport ShoutPanel from './components/shout_panel/shout_panel.vue'\nimport MediaModal from './components/media_modal/media_modal.vue'\nimport SideDrawer from './components/side_drawer/side_drawer.vue'\nimport MobilePostStatusButton from './components/mobile_post_status_button/mobile_post_status_button.vue'\nimport MobileNav from './components/mobile_nav/mobile_nav.vue'\nimport DesktopNav from './components/desktop_nav/desktop_nav.vue'\nimport UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue'\nimport EditStatusModal from './components/edit_status_modal/edit_status_modal.vue'\nimport PostStatusModal from './components/post_status_modal/post_status_modal.vue'\nimport StatusHistoryModal from './components/status_history_modal/status_history_modal.vue'\nimport GlobalNoticeList from './components/global_notice_list/global_notice_list.vue'\nimport { windowWidth, windowHeight } from './services/window_utils/window_utils'\nimport { mapGetters } from 'vuex'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'app',\n components: {\n UserPanel,\n NavPanel,\n Notifications: defineAsyncComponent(() => import('./components/notifications/notifications.vue')),\n InstanceSpecificPanel,\n FeaturesPanel,\n WhoToFollowPanel,\n ShoutPanel,\n MediaModal,\n SideDrawer,\n MobilePostStatusButton,\n MobileNav,\n DesktopNav,\n SettingsModal: defineAsyncComponent(() => import('./components/settings_modal/settings_modal.vue')),\n UpdateNotification: defineAsyncComponent(() => import('./components/update_notification/update_notification.vue')),\n UserReportingModal,\n PostStatusModal,\n EditStatusModal,\n StatusHistoryModal,\n GlobalNoticeList\n },\n data: () => ({\n mobileActivePanel: 'timeline'\n }),\n created () {\n // Load the locale from the storage\n const val = this.$store.getters.mergedConfig.interfaceLanguage\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n window.addEventListener('resize', this.updateMobileState)\n },\n unmounted () {\n window.removeEventListener('resize', this.updateMobileState)\n },\n computed: {\n classes () {\n return [\n {\n '-reverse': this.reverseLayout,\n '-no-sticky-headers': this.noSticky,\n '-has-new-post-button': this.newPostButtonShown\n },\n '-' + this.layoutType\n ]\n },\n navClasses () {\n const { navbarColumnStretch } = this.$store.getters.mergedConfig\n return [\n '-' + this.layoutType,\n ...(navbarColumnStretch ? ['-column-stretch'] : [])\n ]\n },\n currentUser () { return this.$store.state.users.currentUser },\n userBackground () { return this.currentUser.background_image },\n instanceBackground () {\n return this.mergedConfig.hideInstanceWallpaper\n ? null\n : this.$store.state.instance.background\n },\n background () { return this.userBackground || this.instanceBackground },\n bgStyle () {\n if (this.background) {\n return {\n '--body-background-image': `url(${this.background})`\n }\n }\n },\n shout () { return this.$store.state.shout.joined },\n suggestionsEnabled () { return this.$store.state.instance.suggestionsEnabled },\n showInstanceSpecificPanel () {\n return this.$store.state.instance.showInstanceSpecificPanel &&\n !this.$store.getters.mergedConfig.hideISP &&\n this.$store.state.instance.instanceSpecificPanelContent\n },\n isChats () {\n return this.$route.name === 'chat' || this.$route.name === 'chats'\n },\n isListEdit () {\n return this.$route.name === 'lists-edit'\n },\n newPostButtonShown () {\n if (this.isChats) return false\n if (this.isListEdit) return false\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || this.layoutType === 'mobile'\n },\n showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n editingAvailable () { return this.$store.state.instance.editingAvailable },\n shoutboxPosition () {\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || false\n },\n hideShoutbox () {\n return this.$store.getters.mergedConfig.hideShoutbox\n },\n layoutType () { return this.$store.state.interface.layoutType },\n privateMode () { return this.$store.state.instance.private },\n reverseLayout () {\n const { thirdColumnMode, sidebarRight: reverseSetting } = this.$store.getters.mergedConfig\n if (this.layoutType !== 'wide') {\n return reverseSetting\n } else {\n return thirdColumnMode === 'notifications' ? reverseSetting : !reverseSetting\n }\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n showScrollbars () { return this.$store.getters.mergedConfig.showScrollbars },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n updateMobileState () {\n this.$store.dispatch('setLayoutWidth', windowWidth())\n this.$store.dispatch('setLayoutHeight', windowHeight())\n }\n }\n}\n","import { render } from \"./App.vue?vue&type=template&id=14ce6abd\"\nimport script from \"./App.js?vue&type=script&lang=js\"\nexport * from \"./App.js?vue&type=script&lang=js\"\n\nimport \"./App.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :class=\"['Timeline', classes.root]\">\n <div :class=\"classes.header\">\n <TimelineMenu\n v-if=\"!embedded\"\n :timeline-name=\"timelineName\"\n />\n <div\n v-if=\"showScrollTop && !embedded\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <template v-if=\"mobileLayout && !embedded\">\n <div\n v-if=\"showLoadButton\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled loadmore-button\"\n :title=\"loadButtonString\"\n @click.prevent=\"showNewStatuses\"\n >\n <FAIcon\n fixed-width\n icon=\"circle-plus\"\n />\n <div class=\"alert-badge\">\n {{ mobileLoadButtonString }}\n </div>\n </button>\n </div>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint veryfaint rightside-icon\"\n :title=\"$t('timeline.up_to_date')\"\n :aria-disabled=\"true\"\n @click.prevent\n >\n <FAIcon\n fixed-width\n icon=\"check\"\n />\n </div>\n </template>\n <template v-else>\n <button\n v-if=\"showLoadButton\"\n class=\"button-default loadmore-button\"\n @click.prevent=\"showNewStatuses\"\n >\n {{ loadButtonString }}\n </button>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint\"\n @click.prevent\n >\n {{ $t('timeline.up_to_date') }}\n </div>\n </template>\n <QuickFilterSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n </div>\n <div :class=\"classes.body\">\n <div\n ref=\"timeline\"\n class=\"timeline\"\n role=\"feed\"\n >\n <conversation\n v-for=\"statusId in filteredPinnedStatusIds\"\n :key=\"statusId + '-pinned'\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"statusId\"\n :collapsable=\"true\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n />\n <conversation\n v-for=\"status in filteredVisibleStatuses\"\n :key=\"status.id\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"status.id\"\n :collapsable=\"true\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n :virtual-hidden=\"virtualScrollingEnabled && !statusesToDisplay.includes(status.id)\"\n />\n </div>\n </div>\n <div :class=\"classes.footer\">\n <teleport\n :to=\"footerSlipgate\"\n :disabled=\"!embedded || !footerSlipgate\"\n >\n <div\n v-if=\"count===0\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_statuses') }}\n </div>\n <div\n v-else-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_more_statuses') }}\n </div>\n <button\n v-else-if=\"!timeline.loading\"\n class=\"button-unstyled -link\"\n @click.prevent=\"fetchOlderStatuses()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('timeline.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </teleport>\n </div>\n </div>\n</template>\n\n<script src=\"./timeline.js\"></script>\n\n<style src=\"./timeline.scss\" lang=\"scss\"> </style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n :style=\"hiddenStyle\"\n class=\"Conversation\"\n :class=\"{ '-expanded' : isExpanded, 'panel' : isExpanded }\"\n >\n <div\n v-if=\"isExpanded\"\n class=\"panel-heading conversation-heading -sticky\"\n >\n <span class=\"title\"> {{ $t('timeline.conversation') }} </span>\n <button\n v-if=\"collapsable\"\n class=\"button-unstyled -link\"\n @click.prevent=\"toggleExpanded\"\n >\n {{ $t('timeline.collapse') }}\n </button>\n <QuickFilterSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n </div>\n <div class=\"conversation-body panel-body\">\n <div\n v-if=\"isTreeView\"\n class=\"thread-body\"\n >\n <div\n v-if=\"shouldShowAllConversationButton\"\n class=\"conversation-dive-to-top-level-box\"\n >\n <i18n-t\n keypath=\"status.show_all_conversation_with_icon\"\n tag=\"button\"\n class=\"button-unstyled -link\"\n scope=\"global\"\n @click.prevent=\"diveToTopLevel\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-left\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.show_all_conversation', otherTopLevelCount, { numStatus: otherTopLevelCount }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n <div\n v-if=\"shouldShowAncestors\"\n class=\"thread-ancestors\"\n >\n <article\n v-for=\"status in ancestorsOf(diveRoot)\"\n :key=\"status.id\"\n class=\"thread-ancestor\"\n :class=\"{'thread-ancestor-has-other-replies': getReplies(status.id).length > 1, '-faded': shouldFadeAncestors}\"\n >\n <status\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :simple-tree=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :show-other-replies-as-button=\"showOtherRepliesButtonInsideStatus\"\n :dive=\"() => diveIntoStatus(status.id)\"\n\n :controlled-showing-tall=\"statusContentProperties[status.id].showingTall\"\n :controlled-expanding-subject=\"statusContentProperties[status.id].expandingSubject\"\n :controlled-showing-long-subject=\"statusContentProperties[status.id].showingLongSubject\"\n :controlled-replying=\"statusContentProperties[status.id].replying\"\n :controlled-media-playing=\"statusContentProperties[status.id].mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleStatusContentProperty(status.id, 'showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleStatusContentProperty(status.id, 'expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleStatusContentProperty(status.id, 'showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleStatusContentProperty(status.id, 'replying')\"\n :controlled-set-media-playing=\"(newVal) => toggleStatusContentProperty(status.id, 'mediaPlaying', newVal)\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"showOtherRepliesButtonBelowStatus && getReplies(status.id).length > 1\"\n class=\"thread-ancestor-dive-box\"\n >\n <div\n class=\"thread-ancestor-dive-box-inner\"\n >\n <i18n-t\n tag=\"button\"\n scope=\"global\"\n keypath=\"status.ancestor_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"diveIntoStatus(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.ancestor_follow', getReplies(status.id).length - 1, { numReplies: getReplies(status.id).length - 1 }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </div>\n </article>\n </div>\n <thread-tree\n v-for=\"status in showingTopLevel\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :depth=\"0\"\n\n :status=\"status\"\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"maybeHighlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"canDive ? diveIntoStatus : undefined\"\n />\n </div>\n <div\n v-if=\"isLinearView\"\n class=\"thread-body\"\n >\n <article>\n <status\n v-for=\"status in conversation\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n </article>\n </div>\n </div>\n </div>\n <div\n v-else\n :style=\"hiddenStyle\"\n />\n</template>\n\n<script src=\"./conversation.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n /* Make the button stretch along the whole row */\n &, &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &:last-child .conversation-status,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left-width: 4px;\n border-left-style: solid;\n border-left-color: $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n</style>\n","<template>\n <article class=\"thread-tree\">\n <status\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"highlight\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status conversation-status-treeview status-fadein panel-body\"\n\n :simple-tree=\"simple\"\n :controlled-thread-display-status=\"threadDisplayStatus[status.id]\"\n :controlled-toggle-thread-display=\"() => toggleThreadDisplay(status.id)\"\n\n :controlled-showing-tall=\"currentProp.showingTall\"\n :controlled-expanding-subject=\"currentProp.expandingSubject\"\n :controlled-showing-long-subject=\"currentProp.showingLongSubject\"\n :controlled-replying=\"currentProp.replying\"\n :controlled-media-playing=\"currentProp.mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleCurrentProp('showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleCurrentProp('expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleCurrentProp('showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleCurrentProp('replying')\"\n :controlled-set-media-playing=\"(newVal) => setCurrentProp('mediaPlaying', newVal)\"\n :dive=\"dive ? () => dive(status.id) : undefined\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"currentReplies.length && threadShowing\"\n class=\"thread-tree-replies\"\n >\n <thread-tree\n v-for=\"replyStatus in currentReplies\"\n :key=\"replyStatus.id\"\n ref=\"childComponent\"\n :depth=\"depth + 1\"\n :status=\"replyStatus\"\n\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"highlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"simple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"dive\"\n />\n </div>\n <div\n v-if=\"currentReplies.length && !threadShowing\"\n class=\"thread-tree-replies thread-tree-replies-hidden\"\n >\n <i18n-t\n v-if=\"simple\"\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"dive(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_follow', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n <i18n-t\n v-else\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_show_full_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"showThreadRecursively(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-down\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_show_full', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id], depth: totalReplyDepth[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </article>\n</template>\n\n<script src=\"./thread_tree.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n</style>\n","import Status from '../status/status.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleRight\n)\n\nconst ThreadTree = {\n components: {\n Status\n },\n name: 'ThreadTree',\n props: {\n depth: Number,\n status: Object,\n inProfile: Boolean,\n conversation: Array,\n collapsable: Boolean,\n isExpanded: Boolean,\n pinnedStatusIdsObject: Object,\n profileUserId: String,\n\n focused: Function,\n highlight: String,\n getReplies: Function,\n setHighlight: Function,\n toggleExpanded: Function,\n\n simple: Boolean,\n // to control display of the whole thread forest\n toggleThreadDisplay: Function,\n threadDisplayStatus: Object,\n showThreadRecursively: Function,\n totalReplyCount: Object,\n totalReplyDepth: Object,\n statusContentProperties: Object,\n setStatusContentProperty: Function,\n toggleStatusContentProperty: Function,\n dive: Function\n },\n computed: {\n suspendable () {\n const selfSuspendable = this.$refs.statusComponent ? this.$refs.statusComponent.suspendable : true\n if (this.$refs.childComponent) {\n return selfSuspendable && this.$refs.childComponent.every(s => s.suspendable)\n }\n return selfSuspendable\n },\n reverseLookupTable () {\n return this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n },\n currentReplies () {\n return this.getReplies(this.status.id).map(({ id }) => this.statusById(id))\n },\n threadShowing () {\n return this.threadDisplayStatus[this.status.id] === 'showing'\n },\n currentProp () {\n return this.statusContentProperties[this.status.id]\n }\n },\n methods: {\n statusById (id) {\n return this.conversation[this.reverseLookupTable[id]]\n },\n collapseThread () {\n },\n showThread () {\n },\n showAllSubthreads () {\n },\n toggleCurrentProp (name) {\n this.toggleStatusContentProperty(this.status.id, name)\n },\n setCurrentProp (name, newVal) {\n this.setStatusContentProperty(this.status.id, name)\n }\n }\n}\n\nexport default ThreadTree\n","import { render } from \"./thread_tree.vue?vue&type=template&id=2c44ba3c\"\nimport script from \"./thread_tree.js?vue&type=script&lang=js\"\nexport * from \"./thread_tree.js?vue&type=script&lang=js\"\n\nimport \"./thread_tree.vue?vue&type=style&index=0&id=2c44ba3c&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickFilterSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_filter_settings') }\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <div v-if=\"loggedIn\">\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n @click=\"replyVisibilityAll = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityAll }\"\n />{{ $t('settings.reply_visibility_all') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n @click=\"replyVisibilityFollowing = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityFollowing }\"\n />{{ $t('settings.reply_visibility_following_short') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n @click=\"replyVisibilitySelf = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilitySelf }\"\n />{{ $t('settings.reply_visibility_self_short') }}\n </button>\n <div\n v-if=\"!conversation\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </div>\n <button\n class=\"button-default dropdown-item\"\n @click=\"muteBotStatuses = !muteBotStatuses\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': muteBotStatuses }\"\n />{{ $t('settings.mute_bot_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"hideMedia = !hideMedia\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMedia }\"\n />{{ $t('settings.hide_media_previews') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"hideMutedPosts = !hideMutedPosts\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMutedPosts }\"\n />{{ $t('settings.hide_all_muted_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click=\"openTab('filtering')\"\n >\n <FAIcon icon=\"font\" />{{ $t('settings.word_filter_and_more') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"filter\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_filter_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter, faFont, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter,\n faFont,\n faWrench\n)\n\nconst QuickFilterSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setReplyVisibility (visibility) {\n this.$store.dispatch('setOption', { name: 'replyVisibility', value: visibility })\n this.$store.dispatch('queueFlushAll')\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n replyVisibilitySelf: {\n get () { return this.mergedConfig.replyVisibility === 'self' },\n set () { this.setReplyVisibility('self') }\n },\n replyVisibilityFollowing: {\n get () { return this.mergedConfig.replyVisibility === 'following' },\n set () { this.setReplyVisibility('following') }\n },\n replyVisibilityAll: {\n get () { return this.mergedConfig.replyVisibility === 'all' },\n set () { this.setReplyVisibility('all') }\n },\n hideMedia: {\n get () { return this.mergedConfig.hideAttachments || this.mergedConfig.hideAttachmentsInConv },\n set () {\n const value = !this.hideMedia\n this.$store.dispatch('setOption', { name: 'hideAttachments', value })\n this.$store.dispatch('setOption', { name: 'hideAttachmentsInConv', value })\n }\n },\n hideMutedPosts: {\n get () { return this.mergedConfig.hideFilteredStatuses },\n set () {\n const value = !this.hideMutedPosts\n this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickFilterSettings\n","import { render } from \"./quick_filter_settings.vue?vue&type=template&id=7e6562e8\"\nimport script from \"./quick_filter_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_filter_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickViewSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_view_settings') }\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"conversationDisplay = 'tree'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'tree' }\"\n /><FAIcon icon=\"folder-tree\" /> {{ $t('settings.conversation_display_tree_quick') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"conversationDisplay = 'linear'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'linear' }\"\n /><FAIcon icon=\"list\" /> {{ $t('settings.conversation_display_linear_quick') }}\n </button>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <button\n class=\"button-default dropdown-item\"\n @click=\"showUserAvatars = !showUserAvatars\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': showUserAvatars }\"\n />{{ $t('settings.mention_link_show_avatar_quick') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n @click=\"autoUpdate = !autoUpdate\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': autoUpdate }\"\n />{{ $t('settings.auto_update') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n @click=\"collapseWithSubjects = !collapseWithSubjects\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': collapseWithSubjects }\"\n />{{ $t('settings.collapse_subject') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click=\"openTab('general')\"\n >\n <FAIcon icon=\"wrench\" />{{ $t('settings.more_settings') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"bars\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_view_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faList, faFolderTree, faBars, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faList,\n faFolderTree,\n faBars,\n faWrench\n)\n\nconst QuickViewSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setConversationDisplay (visibility) {\n this.$store.dispatch('setOption', { name: 'conversationDisplay', value: visibility })\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n conversationDisplay: {\n get () { return this.mergedConfig.conversationDisplay },\n set (newVal) { this.setConversationDisplay(newVal) }\n },\n autoUpdate: {\n get () { return this.mergedConfig.streaming },\n set () {\n const value = !this.autoUpdate\n this.$store.dispatch('setOption', { name: 'streaming', value })\n }\n },\n collapseWithSubjects: {\n get () { return this.mergedConfig.collapseMessageWithSubject },\n set () {\n const value = !this.collapseWithSubjects\n this.$store.dispatch('setOption', { name: 'collapseMessageWithSubject', value })\n }\n },\n showUserAvatars: {\n get () { return this.mergedConfig.mentionLinkShowAvatar },\n set () {\n const value = !this.showUserAvatars\n console.log(value)\n this.$store.dispatch('setOption', { name: 'mentionLinkShowAvatar', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickViewSettings\n","import { render } from \"./quick_view_settings.vue?vue&type=template&id=4b9187b6\"\nimport script from \"./quick_view_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_view_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { reduce, filter, findIndex, clone, get } from 'lodash'\nimport Status from '../status/status.vue'\nimport ThreadTree from '../thread_tree/thread_tree.vue'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n)\n\nconst sortById = (a, b) => {\n const idA = a.type === 'retweet' ? a.retweeted_status.id : a.id\n const idB = b.type === 'retweet' ? b.retweeted_status.id : b.id\n const seqA = Number(idA)\n const seqB = Number(idB)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA < seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return -1\n } else if (!isSeqA && isSeqB) {\n return 1\n } else {\n return idA < idB ? -1 : 1\n }\n}\n\nconst sortAndFilterConversation = (conversation, statusoid) => {\n if (statusoid.type === 'retweet') {\n conversation = filter(\n conversation,\n (status) => (status.type === 'retweet' || status.id !== statusoid.retweeted_status.id)\n )\n } else {\n conversation = filter(conversation, (status) => status.type !== 'retweet')\n }\n return conversation.filter(_ => _).sort(sortById)\n}\n\nconst conversation = {\n data () {\n return {\n highlight: null,\n expanded: false,\n threadDisplayStatusObject: {}, // id => 'showing' | 'hidden'\n statusContentPropertiesObject: {},\n inlineDivePosition: null\n }\n },\n props: [\n 'statusId',\n 'collapsable',\n 'isPage',\n 'pinnedStatusIdsObject',\n 'inProfile',\n 'profileUserId',\n 'virtualHidden'\n ],\n created () {\n if (this.isPage) {\n this.fetchConversation()\n }\n },\n computed: {\n maxDepthToShowByDefault () {\n // maxDepthInThread = max number of depths that is *visible*\n // since our depth starts with 0 and \"showing\" means \"showing children\"\n // there is a -2 here\n const maxDepth = this.$store.getters.mergedConfig.maxDepthInThread - 2\n return maxDepth >= 1 ? maxDepth : 1\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n displayStyle () {\n return this.$store.getters.mergedConfig.conversationDisplay\n },\n isTreeView () {\n return !this.isLinearView\n },\n treeViewIsSimple () {\n return !this.$store.getters.mergedConfig.conversationTreeAdvanced\n },\n isLinearView () {\n return this.displayStyle === 'linear'\n },\n shouldFadeAncestors () {\n return this.$store.getters.mergedConfig.conversationTreeFadeAncestors\n },\n otherRepliesButtonPosition () {\n return this.$store.getters.mergedConfig.conversationOtherRepliesButton\n },\n showOtherRepliesButtonBelowStatus () {\n return this.otherRepliesButtonPosition === 'below'\n },\n showOtherRepliesButtonInsideStatus () {\n return this.otherRepliesButtonPosition === 'inside'\n },\n suspendable () {\n if (this.isTreeView) {\n return Object.entries(this.statusContentProperties)\n .every(([k, prop]) => !prop.replying && prop.mediaPlaying.length === 0)\n }\n if (this.$refs.statusComponent && this.$refs.statusComponent[0]) {\n return this.$refs.statusComponent.every(s => s.suspendable)\n } else {\n return true\n }\n },\n hideStatus () {\n return this.virtualHidden && this.suspendable\n },\n status () {\n return this.$store.state.statuses.allStatusesObject[this.statusId]\n },\n originalStatusId () {\n if (this.status.retweeted_status) {\n return this.status.retweeted_status.id\n } else {\n return this.statusId\n }\n },\n conversationId () {\n return this.getConversationId(this.statusId)\n },\n conversation () {\n if (!this.status) {\n return []\n }\n\n if (!this.isExpanded) {\n return [this.status]\n }\n\n const conversation = clone(this.$store.state.statuses.conversationsObject[this.conversationId])\n const statusIndex = findIndex(conversation, { id: this.originalStatusId })\n if (statusIndex !== -1) {\n conversation[statusIndex] = this.status\n }\n\n return sortAndFilterConversation(conversation, this.status)\n },\n statusMap () {\n return this.conversation.reduce((res, s) => {\n res[s.id] = s\n return res\n }, {})\n },\n threadTree () {\n const reverseLookupTable = this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n\n const threads = this.conversation.reduce((a, cur) => {\n const id = cur.id\n a.forest[id] = this.getReplies(id)\n .map(s => s.id)\n\n return a\n }, {\n forest: {}\n })\n\n const walk = (forest, topLevel, depth = 0, processed = {}) => topLevel.map(id => {\n if (processed[id]) {\n return []\n }\n\n processed[id] = true\n return [{\n status: this.conversation[reverseLookupTable[id]],\n id,\n depth\n }, walk(forest, forest[id], depth + 1, processed)].reduce((a, b) => a.concat(b), [])\n }).reduce((a, b) => a.concat(b), [])\n\n const linearized = walk(threads.forest, this.topLevel.map(k => k.id))\n\n return linearized\n },\n replyIds () {\n return this.conversation.map(k => k.id)\n .reduce((res, id) => {\n res[id] = (this.replies[id] || []).map(k => k.id)\n return res\n }, {})\n },\n totalReplyCount () {\n const sizes = {}\n const subTreeSizeFor = (id) => {\n if (sizes[id]) {\n return sizes[id]\n }\n sizes[id] = 1 + this.replyIds[id].map(cid => subTreeSizeFor(cid)).reduce((a, b) => a + b, 0)\n return sizes[id]\n }\n this.conversation.map(k => k.id).map(subTreeSizeFor)\n return Object.keys(sizes).reduce((res, id) => {\n res[id] = sizes[id] - 1 // exclude itself\n return res\n }, {})\n },\n totalReplyDepth () {\n const depths = {}\n const subTreeDepthFor = (id) => {\n if (depths[id]) {\n return depths[id]\n }\n depths[id] = 1 + this.replyIds[id].map(cid => subTreeDepthFor(cid)).reduce((a, b) => a > b ? a : b, 0)\n return depths[id]\n }\n this.conversation.map(k => k.id).map(subTreeDepthFor)\n return Object.keys(depths).reduce((res, id) => {\n res[id] = depths[id] - 1 // exclude itself\n return res\n }, {})\n },\n depths () {\n return this.threadTree.reduce((a, k) => {\n a[k.id] = k.depth\n return a\n }, {})\n },\n topLevel () {\n const topLevel = this.conversation.reduce((tl, cur) =>\n tl.filter(k => this.getReplies(cur.id).map(v => v.id).indexOf(k.id) === -1), this.conversation)\n return topLevel\n },\n otherTopLevelCount () {\n return this.topLevel.length - 1\n },\n showingTopLevel () {\n if (this.canDive && this.diveRoot) {\n return [this.statusMap[this.diveRoot]]\n }\n return this.topLevel\n },\n diveRoot () {\n const statusId = this.inlineDivePosition || this.statusId\n const isTopLevel = !this.parentOf(statusId)\n return isTopLevel ? null : statusId\n },\n diveDepth () {\n return this.canDive && this.diveRoot ? this.depths[this.diveRoot] : 0\n },\n diveMode () {\n return this.canDive && !!this.diveRoot\n },\n shouldShowAllConversationButton () {\n // The \"show all conversation\" button tells the user that there exist\n // other toplevel statuses, so do not show it if there is only a single root\n return this.isTreeView && this.isExpanded && this.diveMode && this.topLevel.length > 1\n },\n shouldShowAncestors () {\n return this.isTreeView && this.isExpanded && this.ancestorsOf(this.diveRoot).length\n },\n replies () {\n let i = 1\n // eslint-disable-next-line camelcase\n return reduce(this.conversation, (result, { id, in_reply_to_status_id }) => {\n /* eslint-disable camelcase */\n const irid = in_reply_to_status_id\n /* eslint-enable camelcase */\n if (irid) {\n result[irid] = result[irid] || []\n result[irid].push({\n name: `#${i}`,\n id\n })\n }\n i++\n return result\n }, {})\n },\n isExpanded () {\n return !!(this.expanded || this.isPage)\n },\n hiddenStyle () {\n const height = (this.status && this.status.virtualHeight) || '120px'\n return this.virtualHidden ? { height } : {}\n },\n threadDisplayStatus () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const depth = this.depths[id]\n const status = (() => {\n if (this.threadDisplayStatusObject[id]) {\n return this.threadDisplayStatusObject[id]\n }\n if ((depth - this.diveDepth) <= this.maxDepthToShowByDefault) {\n return 'showing'\n } else {\n return 'hidden'\n }\n })()\n\n a[id] = status\n return a\n }, {})\n },\n statusContentProperties () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const props = (() => {\n const def = {\n showingTall: false,\n expandingSubject: false,\n showingLongSubject: false,\n isReplying: false,\n mediaPlaying: []\n }\n\n if (this.statusContentPropertiesObject[id]) {\n return {\n ...def,\n ...this.statusContentPropertiesObject[id]\n }\n }\n return def\n })()\n\n a[id] = props\n return a\n }, {})\n },\n canDive () {\n return this.isTreeView && this.isExpanded\n },\n focused () {\n return (id) => {\n return (this.isExpanded) && id === this.highlight\n }\n },\n maybeHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus\n })\n },\n components: {\n Status,\n ThreadTree,\n QuickFilterSettings,\n QuickViewSettings\n },\n watch: {\n statusId (newVal, oldVal) {\n const newConversationId = this.getConversationId(newVal)\n const oldConversationId = this.getConversationId(oldVal)\n if (newConversationId && oldConversationId && newConversationId === oldConversationId) {\n this.setHighlight(this.originalStatusId)\n } else {\n this.fetchConversation()\n }\n },\n expanded (value) {\n if (value) {\n this.fetchConversation()\n } else {\n this.resetDisplayState()\n }\n },\n virtualHidden (value) {\n this.$store.dispatch(\n 'setVirtualHeight',\n { statusId: this.statusId, height: `${this.$el.clientHeight}px` }\n )\n }\n },\n methods: {\n fetchConversation () {\n if (this.status) {\n this.$store.state.api.backendInteractor.fetchConversation({ id: this.statusId })\n .then(({ ancestors, descendants }) => {\n this.$store.dispatch('addNewStatuses', { statuses: ancestors })\n this.$store.dispatch('addNewStatuses', { statuses: descendants })\n this.setHighlight(this.originalStatusId)\n })\n } else {\n this.$store.state.api.backendInteractor.fetchStatus({ id: this.statusId })\n .then((status) => {\n this.$store.dispatch('addNewStatuses', { statuses: [status] })\n this.fetchConversation()\n })\n }\n },\n getReplies (id) {\n return this.replies[id] || []\n },\n getHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n setHighlight (id) {\n if (!id) return\n this.highlight = id\n\n if (!this.streamingEnabled) {\n this.$store.dispatch('fetchStatus', id)\n }\n\n this.$store.dispatch('fetchFavsAndRepeats', id)\n this.$store.dispatch('fetchEmojiReactionsBy', id)\n },\n toggleExpanded () {\n this.expanded = !this.expanded\n },\n getConversationId (statusId) {\n const status = this.$store.state.statuses.allStatusesObject[statusId]\n return get(status, 'retweeted_status.statusnet_conversation_id', get(status, 'statusnet_conversation_id'))\n },\n setThreadDisplay (id, nextStatus) {\n this.threadDisplayStatusObject = {\n ...this.threadDisplayStatusObject,\n [id]: nextStatus\n }\n },\n toggleThreadDisplay (id) {\n const curStatus = this.threadDisplayStatus[id]\n const nextStatus = curStatus === 'showing' ? 'hidden' : 'showing'\n this.setThreadDisplay(id, nextStatus)\n },\n setThreadDisplayRecursively (id, nextStatus) {\n this.setThreadDisplay(id, nextStatus)\n this.getReplies(id).map(k => k.id).map(id => this.setThreadDisplayRecursively(id, nextStatus))\n },\n showThreadRecursively (id) {\n this.setThreadDisplayRecursively(id, 'showing')\n },\n setStatusContentProperty (id, name, value) {\n this.statusContentPropertiesObject = {\n ...this.statusContentPropertiesObject,\n [id]: {\n ...this.statusContentPropertiesObject[id],\n [name]: value\n }\n }\n },\n toggleStatusContentProperty (id, name) {\n this.setStatusContentProperty(id, name, !this.statusContentProperties[id][name])\n },\n leastVisibleAncestor (id) {\n let cur = id\n let parent = this.parentOf(cur)\n while (cur) {\n // if the parent is showing it means cur is visible\n if (this.threadDisplayStatus[parent] === 'showing') {\n return cur\n }\n parent = this.parentOf(parent)\n cur = this.parentOf(cur)\n }\n // nothing found, fall back to toplevel\n return this.topLevel[0] ? this.topLevel[0].id : undefined\n },\n diveIntoStatus (id, preventScroll) {\n this.tryScrollTo(id)\n },\n diveToTopLevel () {\n this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot) || this.topLevel[0].id)\n },\n // only used when we are not on a page\n undive () {\n this.inlineDivePosition = null\n this.setHighlight(this.statusId)\n },\n tryScrollTo (id) {\n if (!id) {\n return\n }\n if (this.isPage) {\n // set statusId\n this.$router.push({ name: 'conversation', params: { id } })\n } else {\n this.inlineDivePosition = id\n }\n // Because the conversation can be unmounted when out of sight\n // and mounted again when it comes into sight,\n // the `mounted` or `created` function in `status` should not\n // contain scrolling calls, as we do not want the page to jump\n // when we scroll with an expanded conversation.\n //\n // Now the method is to rely solely on the `highlight` watcher\n // in `status` components.\n // In linear views, all statuses are rendered at all times, but\n // in tree views, it is possible that a change in active status\n // removes and adds status components (e.g. an originally child\n // status becomes an ancestor status, and thus they will be\n // different).\n // Here, let the components be rendered first, in order to trigger\n // the `highlight` watcher.\n this.$nextTick(() => {\n this.setHighlight(id)\n })\n },\n goToCurrent () {\n this.tryScrollTo(this.diveRoot || this.topLevel[0].id)\n },\n statusById (id) {\n return this.statusMap[id]\n },\n parentOf (id) {\n const status = this.statusById(id)\n if (!status) {\n return undefined\n }\n const { in_reply_to_status_id: parentId } = status\n if (!this.statusMap[parentId]) {\n return undefined\n }\n return parentId\n },\n parentOrSelf (id) {\n return this.parentOf(id) || id\n },\n // Ancestors of some status, from top to bottom\n ancestorsOf (id) {\n const ancestors = []\n let cur = this.parentOf(id)\n while (cur) {\n ancestors.unshift(this.statusMap[cur])\n cur = this.parentOf(cur)\n }\n return ancestors\n },\n topLevelAncestorOrSelfId (id) {\n let cur = id\n let parent = this.parentOf(id)\n while (parent) {\n cur = this.parentOf(cur)\n parent = this.parentOf(parent)\n }\n return cur\n },\n resetDisplayState () {\n this.undive()\n this.threadDisplayStatusObject = {}\n }\n }\n}\n\nexport default conversation\n","import { render } from \"./conversation.vue?vue&type=template&id=e1fd877e\"\nimport script from \"./conversation.js?vue&type=script&lang=js\"\nexport * from \"./conversation.js?vue&type=script&lang=js\"\n\nimport \"./conversation.vue?vue&type=style&index=0&id=e1fd877e&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"TimelineMenu\"\n :class=\"{ 'open': isOpen }\"\n :bound-to=\"{ x: 'container' }\"\n bound-to-selector=\".Timeline\"\n popover-class=\"timeline-menu-popover popover-default\"\n @show=\"openMenu\"\n @close=\"() => isOpen = false\"\n >\n <template #content>\n <ListsMenuContent\n v-if=\"useListsMenu\"\n :show-pin=\"false\"\n class=\"timelines\"\n />\n <ul v-else>\n <NavigationEntry\n v-for=\"item in timelinesList\"\n :key=\"item.name\"\n :show-pin=\"false\"\n :item=\"item\"\n />\n </ul>\n </template>\n <template #trigger>\n <span class=\"button-unstyled title timeline-menu-title\">\n <span class=\"timeline-title\">{{ timelineName() }}</span>\n <span>\n <FAIcon\n size=\"sm\"\n icon=\"chevron-down\"\n />\n </span>\n <span\n class=\"click-blocker\"\n @click=\"blockOpen\"\n />\n </span>\n </template>\n </Popover>\n</template>\n\n<script src=\"./timeline_menu.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n\n}\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text); --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n}\n\n</style>\n","import Popover from '../popover/popover.vue'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { mapState } from 'vuex'\nimport { ListsMenuContent } from '../lists_menu/lists_menu_content.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { TIMELINES } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faChevronDown)\n\n// Route -> i18n key mapping, exported and not in the computed\n// because nav panel benefits from the same information.\nexport const timelineNames = () => {\n return {\n friends: 'nav.home_timeline',\n bookmarks: 'nav.bookmarks',\n dms: 'nav.dms',\n 'public-timeline': 'nav.public_tl',\n 'public-external-timeline': 'nav.twkn'\n }\n}\n\nconst TimelineMenu = {\n components: {\n Popover,\n NavigationEntry,\n ListsMenuContent\n },\n data () {\n return {\n isOpen: false\n }\n },\n created () {\n if (timelineNames()[this.$route.name]) {\n this.$store.dispatch('setLastTimeline', this.$route.name)\n }\n },\n computed: {\n useListsMenu () {\n const route = this.$route.name\n return route === 'lists-timeline'\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n }),\n timelinesList () {\n return filterNavigation(\n Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n }\n },\n methods: {\n openMenu () {\n // $nextTick is too fast, animation won't play back but\n // instead starts in fully open position. Low values\n // like 1-5 work on fast machines but not on mobile, 25\n // seems like a good compromise that plays without significant\n // added lag.\n setTimeout(() => {\n this.isOpen = true\n }, 25)\n },\n blockOpen (event) {\n // For the blank area inside the button element.\n // Just setting @click.stop=\"\" makes unintuitive behavior when\n // menu is open and clicking on the blank area doesn't close it.\n if (!this.isOpen) {\n event.stopPropagation()\n }\n },\n timelineName () {\n const route = this.$route.name\n if (route === 'tag-timeline') {\n return '#' + this.$route.params.tag\n }\n if (route === 'lists-timeline') {\n return this.$store.getters.findListTitle(this.$route.params.id)\n }\n const i18nkey = timelineNames()[this.$route.name]\n return i18nkey ? this.$t(i18nkey) : route\n }\n }\n}\n\nexport default TimelineMenu\n","import { render } from \"./timeline_menu.vue?vue&type=template&id=2c1d9222\"\nimport script from \"./timeline_menu.js?vue&type=script&lang=js\"\nexport * from \"./timeline_menu.js?vue&type=script&lang=js\"\n\nimport \"./timeline_menu.vue?vue&type=style&index=0&id=2c1d9222&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Status from '../status/status.vue'\nimport { mapState } from 'vuex'\nimport timelineFetcher from '../../services/timeline_fetcher/timeline_fetcher.service.js'\nimport Conversation from '../conversation/conversation.vue'\nimport TimelineMenu from '../timeline_menu/timeline_menu.vue'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\nimport { debounce, throttle, keyBy } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faCirclePlus, faCog, faMinus, faArrowUp, faCheck } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faCog,\n faMinus,\n faArrowUp,\n faCirclePlus,\n faCheck\n)\n\nconst Timeline = {\n props: [\n 'timeline',\n 'timelineName',\n 'title',\n 'userId',\n 'listId',\n 'tag',\n 'embedded',\n 'count',\n 'pinnedStatusIds',\n 'inProfile',\n 'footerSlipgate' // reference to an element where we should put our footer\n ],\n data () {\n return {\n showScrollTop: false,\n paused: false,\n unfocused: false,\n bottomedOut: false,\n virtualScrollIndex: 0,\n blockingClicks: false\n }\n },\n components: {\n Status,\n Conversation,\n TimelineMenu,\n QuickFilterSettings,\n QuickViewSettings\n },\n computed: {\n filteredVisibleStatuses () {\n return this.timeline.visibleStatuses.filter(status => this.timelineName !== 'user' || (status.id >= this.timeline.minId && status.id <= this.timeline.maxId))\n },\n filteredPinnedStatusIds () {\n return (this.pinnedStatusIds || []).filter(statusId => this.timeline.statusesObject[statusId])\n },\n newStatusCount () {\n return this.timeline.newStatusCount\n },\n showLoadButton () {\n return this.timeline.newStatusCount > 0 || this.timeline.flushMarker !== 0\n },\n loadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return this.$t('timeline.reload')\n } else {\n return `${this.$t('timeline.show_new')} (${this.newStatusCount})`\n }\n },\n mobileLoadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return '+'\n } else {\n return this.newStatusCount > 99 ? '∞' : this.newStatusCount\n }\n },\n classes () {\n let rootClasses = !this.embedded ? ['panel', 'panel-default'] : ['-nonpanel']\n if (this.blockingClicks) rootClasses = rootClasses.concat(['-blocked', '_misclick-prevention'])\n return {\n root: rootClasses,\n header: ['timeline-heading'].concat(!this.embedded ? ['panel-heading', '-sticky'] : []),\n body: ['timeline-body'].concat(!this.embedded ? ['panel-body'] : []),\n footer: ['timeline-footer'].concat(!this.embedded ? ['panel-footer'] : [])\n }\n },\n // id map of statuses which need to be hidden in the main list due to pinning logic\n pinnedStatusIdsObject () {\n return keyBy(this.pinnedStatusIds)\n },\n statusesToDisplay () {\n const amount = this.timeline.visibleStatuses.length\n const statusesPerSide = Math.ceil(Math.max(3, window.innerHeight / 80))\n const nonPinnedIndex = this.virtualScrollIndex - this.filteredPinnedStatusIds.length\n const min = Math.max(0, nonPinnedIndex - statusesPerSide)\n const max = Math.min(amount, nonPinnedIndex + statusesPerSide)\n return this.timeline.visibleStatuses.slice(min, max).map(_ => _.id)\n },\n virtualScrollingEnabled () {\n return this.$store.getters.mergedConfig.virtualScrolling\n },\n ...mapState({\n mobileLayout: state => state.interface.layoutType === 'mobile'\n })\n },\n created () {\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n const showImmediately = this.timeline.visibleStatuses.length === 0\n\n window.addEventListener('scroll', this.handleScroll)\n\n if (store.state.api.fetchers[this.timelineName]) { return false }\n\n timelineFetcher.fetchAndUpdate({\n store,\n credentials,\n timeline: this.timelineName,\n showImmediately,\n userId: this.userId,\n listId: this.listId,\n tag: this.tag\n })\n },\n mounted () {\n if (typeof document.hidden !== 'undefined') {\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.unfocused = document.hidden\n }\n window.addEventListener('keydown', this.handleShortKey)\n setTimeout(this.determineVisibleStatuses, 250)\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\n window.removeEventListener('keydown', this.handleShortKey)\n if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.$store.commit('setLoading', { timeline: this.timelineName, value: false })\n },\n methods: {\n scrollToTop () {\n window.scrollTo({ top: this.$el.offsetTop })\n },\n stopBlockingClicks: debounce(function () {\n this.blockingClicks = false\n }, 1000),\n blockClicksTemporarily () {\n if (!this.blockingClicks) {\n this.blockingClicks = true\n }\n this.stopBlockingClicks()\n },\n handleShortKey (e) {\n // Ignore when input fields are focused\n if (['textarea', 'input'].includes(e.target.tagName.toLowerCase())) return\n if (e.key === '.') this.showNewStatuses()\n },\n showNewStatuses () {\n if (this.timeline.flushMarker !== 0) {\n this.$store.commit('clearTimeline', { timeline: this.timelineName, excludeUserId: true })\n this.$store.commit('queueFlush', { timeline: this.timelineName, id: 0 })\n this.fetchOlderStatuses()\n } else {\n this.blockClicksTemporarily()\n this.$store.commit('showNewStatuses', { timeline: this.timelineName })\n this.paused = false\n }\n window.scrollTo({ top: 0 })\n },\n fetchOlderStatuses: throttle(function () {\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setLoading', { timeline: this.timelineName, value: true })\n timelineFetcher.fetchAndUpdate({\n store,\n credentials,\n timeline: this.timelineName,\n older: true,\n showImmediately: true,\n userId: this.userId,\n listId: this.listId,\n tag: this.tag\n }).then(({ statuses }) => {\n if (statuses && statuses.length === 0) {\n this.bottomedOut = true\n }\n }).finally(() =>\n store.commit('setLoading', { timeline: this.timelineName, value: false })\n )\n }, 1000, this),\n determineVisibleStatuses () {\n if (!this.$refs.timeline) return\n if (!this.virtualScrollingEnabled) return\n\n const statuses = this.$refs.timeline.children\n const cappedScrollIndex = Math.max(0, Math.min(this.virtualScrollIndex, statuses.length - 1))\n\n if (statuses.length === 0) return\n\n const height = Math.max(document.body.offsetHeight, window.pageYOffset)\n\n const centerOfScreen = window.pageYOffset + (window.innerHeight * 0.5)\n\n // Start from approximating the index of some visible status by using the\n // the center of the screen on the timeline.\n let approxIndex = Math.floor(statuses.length * (centerOfScreen / height))\n let err = statuses[approxIndex].getBoundingClientRect().y\n\n // if we have a previous scroll index that can be used, test if it's\n // closer than the previous approximation, use it if so\n\n const virtualScrollIndexY = statuses[cappedScrollIndex].getBoundingClientRect().y\n if (Math.abs(err) > virtualScrollIndexY) {\n approxIndex = cappedScrollIndex\n err = virtualScrollIndexY\n }\n\n // if the status is too far from viewport, check the next/previous ones if\n // they happen to be better\n while (err < -20 && approxIndex < statuses.length - 1) {\n err += statuses[approxIndex].offsetHeight\n approxIndex++\n }\n while (err > window.innerHeight + 100 && approxIndex > 0) {\n approxIndex--\n err -= statuses[approxIndex].offsetHeight\n }\n\n // this status is now the center point for virtual scrolling and visible\n // statuses will be nearby statuses before and after it\n this.virtualScrollIndex = approxIndex\n },\n scrollLoad (e) {\n const bodyBRect = document.body.getBoundingClientRect()\n const height = Math.max(bodyBRect.height, -(bodyBRect.y))\n if (this.timeline.loading === false &&\n this.$el.offsetHeight > 0 &&\n (window.innerHeight + window.pageYOffset) >= (height - 750)) {\n this.fetchOlderStatuses()\n }\n },\n handleScroll: throttle(function (e) {\n this.showScrollTop = this.$el.offsetTop < window.scrollY\n this.determineVisibleStatuses()\n this.scrollLoad(e)\n }, 200),\n handleVisibilityChange () {\n this.unfocused = document.hidden\n }\n },\n watch: {\n newStatusCount (count) {\n if (!this.$store.getters.mergedConfig.streaming) {\n return\n }\n if (count > 0) {\n // only 'stream' them when you're scrolled to the top\n const doc = document.documentElement\n const top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\n if (top < 15 &&\n !this.paused &&\n !(this.unfocused && this.$store.getters.mergedConfig.pauseOnUnfocused)\n ) {\n this.showNewStatuses()\n } else {\n this.paused = true\n }\n }\n }\n }\n}\n\nexport default Timeline\n","import { render } from \"./timeline.vue?vue&type=template&id=79de750e\"\nimport script from \"./timeline.js?vue&type=script&lang=js\"\nexport * from \"./timeline.js?vue&type=script&lang=js\"\n\nimport \"./timeline.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\nconst PublicTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.public }\n },\n created () {\n this.$store.dispatch('startFetchingTimeline', { timeline: 'public' })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'public')\n }\n\n}\n\nexport default PublicTimeline\n","import { render } from \"./public_timeline.vue?vue&type=template&id=5f2a502e\"\nimport script from \"./public_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.public_tl')\"\n :timeline=\"timeline\"\n :timeline-name=\"'public'\"\n />\n</template>\n\n<script src=\"./public_timeline.js\"></script>\n","import Timeline from '../timeline/timeline.vue'\nconst PublicAndExternalTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.publicAndExternal }\n },\n created () {\n this.$store.dispatch('startFetchingTimeline', { timeline: 'publicAndExternal' })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'publicAndExternal')\n }\n}\n\nexport default PublicAndExternalTimeline\n","import { render } from \"./public_and_external_timeline.vue?vue&type=template&id=f6923484\"\nimport script from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.twkn')\"\n :timeline=\"timeline\"\n :timeline-name=\"'publicAndExternal'\"\n />\n</template>\n\n<script src=\"./public_and_external_timeline.js\"></script>\n","import Timeline from '../timeline/timeline.vue'\nconst FriendsTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.friends }\n }\n}\n\nexport default FriendsTimeline\n","import { render } from \"./friends_timeline.vue?vue&type=template&id=22490669\"\nimport script from \"./friends_timeline.js?vue&type=script&lang=js\"\nexport * from \"./friends_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.timeline')\"\n :timeline=\"timeline\"\n :timeline-name=\"'friends'\"\n />\n</template>\n\n<script src=\"./friends_timeline.js\"></script>\n","import Timeline from '../timeline/timeline.vue'\n\nconst TagTimeline = {\n created () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n },\n components: {\n Timeline\n },\n computed: {\n tag () { return this.$route.params.tag },\n timeline () { return this.$store.state.statuses.timelines.tag }\n },\n watch: {\n tag () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n }\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'tag')\n }\n}\n\nexport default TagTimeline\n","import { render } from \"./tag_timeline.vue?vue&type=template&id=047310d3\"\nimport script from \"./tag_timeline.js?vue&type=script&lang=js\"\nexport * from \"./tag_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"tag\"\n :timeline=\"timeline\"\n :timeline-name=\"'tag'\"\n :tag=\"tag\"\n />\n</template>\n\n<script src='./tag_timeline.js'></script>\n","import Timeline from '../timeline/timeline.vue'\n\nconst Bookmarks = {\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.bookmarks\n }\n },\n components: {\n Timeline\n },\n unmounted () {\n this.$store.commit('clearTimeline', { timeline: 'bookmarks' })\n }\n}\n\nexport default Bookmarks\n","import { render } from \"./bookmark_timeline.vue?vue&type=template&id=2b9c8ba0\"\nimport script from \"./bookmark_timeline.js?vue&type=script&lang=js\"\nexport * from \"./bookmark_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.bookmarks')\"\n :timeline=\"timeline\"\n :timeline-name=\"'bookmarks'\"\n />\n</template>\n\n<script src=\"./bookmark_timeline.js\"></script>\n","import Conversation from '../conversation/conversation.vue'\n\nconst conversationPage = {\n components: {\n Conversation\n },\n computed: {\n statusId () {\n return this.$route.params.id\n }\n }\n}\n\nexport default conversationPage\n","import { render } from \"./conversation-page.vue?vue&type=template&id=46654d24\"\nimport script from \"./conversation-page.js?vue&type=script&lang=js\"\nexport * from \"./conversation-page.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <conversation\n :collapsable=\"false\"\n is-page=\"true\"\n :status-id=\"statusId\"\n />\n</template>\n\n<script src=\"./conversation-page.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t(\"nav.interactions\") }}\n </div>\n </div>\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onModeSwitch\"\n >\n <span\n key=\"mentions\"\n :label=\"$t('nav.mentions')\"\n />\n <span\n key=\"likes+repeats\"\n :label=\"$t('interactions.favs_repeats')\"\n />\n <span\n key=\"follows\"\n :label=\"$t('interactions.follows')\"\n />\n <span\n key=\"reactions\"\n :label=\"$t('interactions.emoji_reactions')\"\n />\n <span\n v-if=\"canSeeReports\"\n key=\"reports\"\n :label=\"$t('interactions.reports')\"\n />\n <span\n v-if=\"!allowFollowingMove\"\n key=\"moves\"\n :label=\"$t('interactions.moves')\"\n />\n </tab-switcher>\n <Notifications\n ref=\"notifications\"\n :no-heading=\"true\"\n :minimal-mode=\"true\"\n :filter-mode=\"filterMode\"\n />\n </div>\n</template>\n\n<script src=\"./interactions.js\"></script>\n","import Notifications from '../notifications/notifications.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nconst tabModeDict = {\n mentions: ['mention'],\n 'likes+repeats': ['repeat', 'like'],\n follows: ['follow'],\n reactions: ['pleroma:emoji_reaction'],\n reports: ['pleroma:report'],\n moves: ['move']\n}\n\nconst Interactions = {\n data () {\n return {\n allowFollowingMove: this.$store.state.users.currentUser.allow_following_move,\n filterMode: tabModeDict.mentions,\n canSeeReports: this.$store.state.users.currentUser.privileges.includes('reports_manage_reports')\n }\n },\n methods: {\n onModeSwitch (key) {\n this.filterMode = tabModeDict[key]\n }\n },\n components: {\n Notifications,\n TabSwitcher\n }\n}\n\nexport default Interactions\n","import { render } from \"./interactions.vue?vue&type=template&id=3b173532\"\nimport script from \"./interactions.js?vue&type=script&lang=js\"\nexport * from \"./interactions.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\n\nconst DMs = {\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.dms\n }\n },\n components: {\n Timeline\n }\n}\n\nexport default DMs\n","import { render } from \"./dm_timeline.vue?vue&type=template&id=294f8b6d\"\nimport script from \"./dm_timeline.js?vue&type=script&lang=js\"\nexport * from \"./dm_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.dms')\"\n :timeline=\"timeline\"\n :timeline-name=\"'dms'\"\n />\n</template>\n\n<script src=\"./dm_timeline.js\"></script>\n","<template>\n <div v-if=\"isNew\">\n <ChatNew @cancel=\"cancelNewChat\" />\n </div>\n <div\n v-else\n class=\"chat-list panel panel-default\"\n >\n <div class=\"panel-heading -sticky\">\n <span class=\"title\">\n {{ $t(\"chats.chats\") }}\n </span>\n <button\n class=\"button-default\"\n @click=\"newChat\"\n >\n {{ $t(\"chats.new\") }}\n </button>\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"sortedChatList.length > 0\"\n class=\"timeline\"\n >\n <List :items=\"sortedChatList\">\n <template #item=\"{item}\">\n <ChatListItem\n :key=\"item.id\"\n :compact=\"false\"\n :chat=\"item\"\n />\n </template>\n </List>\n </div>\n <div\n v-else\n class=\"emtpy-chat-list-alert\"\n >\n <span>{{ $t('chats.empty_chat_list_placeholder') }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n</style>\n","<template>\n <div\n class=\"chat-list-item\"\n @click.capture.prevent=\"openChat\"\n >\n <div class=\"chat-list-item-left\">\n <UserAvatar\n :user=\"chat.account\"\n height=\"48px\"\n width=\"48px\"\n />\n </div>\n <div class=\"chat-list-item-center\">\n <div class=\"heading\">\n <span\n v-if=\"chat.account\"\n class=\"name-and-account-name\"\n >\n <ChatTitle\n :user=\"chat.account\"\n />\n </span>\n <span class=\"heading-right\" />\n <div class=\"time-wrapper\">\n <Timeago\n :time=\"chat.updated_at\"\n :auto-update=\"60\"\n />\n </div>\n </div>\n <div class=\"chat-preview\">\n <StatusBody\n class=\"chat-preview-body\"\n :status=\"messageForStatusContent\"\n :single-line=\"true\"\n />\n <div\n v-if=\"chat.unread > 0\"\n class=\"badge badge-notification unread-chat-count\"\n >\n {{ chat.unread }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list_item.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import './chat_list_item.scss';\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'ChatTitle',\n components: {\n UserAvatar,\n RichContent,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: [\n 'user', 'withAvatar'\n ],\n computed: {\n title () {\n return this.user ? this.user.screen_name_ui : ''\n },\n htmlTitle () {\n return this.user ? this.user.name_html : ''\n }\n }\n}\n","import { render } from \"./chat_title.vue?vue&type=template&id=09372b9a\"\nimport script from \"./chat_title.js?vue&type=script&lang=js\"\nexport * from \"./chat_title.js?vue&type=script&lang=js\"\n\nimport \"./chat_title.vue?vue&type=style&index=0&id=09372b9a&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"chat-title\"\n :title=\"title\"\n >\n <UserPopover\n v-if=\"withAvatar && user\"\n class=\"avatar-container\"\n :user-id=\"user.id\"\n >\n <UserAvatar\n class=\"titlebar-avatar\"\n :user=\"user\"\n />\n </UserPopover>\n <RichContent\n v-if=\"user\"\n class=\"username\"\n :title=\"'@'+(user && user.screen_name_ui)\"\n :html=\"htmlTitle\"\n :emoji=\"user.emoji || []\"\n />\n </div>\n</template>\n\n<script src=\"./chat_title.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport StatusBody from '../status_content/status_content.vue'\nimport fileType from 'src/services/file_type/file_type.service'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\n\nconst ChatListItem = {\n name: 'ChatListItem',\n props: [\n 'chat'\n ],\n components: {\n UserAvatar,\n AvatarList,\n Timeago,\n ChatTitle,\n StatusBody\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n attachmentInfo () {\n if (this.chat.lastMessage.attachments.length === 0) { return }\n\n const types = this.chat.lastMessage.attachments.map(file => fileType.fileType(file.mimetype))\n if (types.includes('video')) {\n return this.$t('file_type.video')\n } else if (types.includes('audio')) {\n return this.$t('file_type.audio')\n } else if (types.includes('image')) {\n return this.$t('file_type.image')\n } else {\n return this.$t('file_type.file')\n }\n },\n messageForStatusContent () {\n const message = this.chat.lastMessage\n const messageEmojis = message ? message.emojis : []\n const isYou = message && message.account_id === this.currentUser.id\n const content = message ? (this.attachmentInfo || message.content) : ''\n const messagePreview = isYou ? `<i>${this.$t('chats.you')}</i> ${content}` : content\n return {\n summary: '',\n emojis: messageEmojis,\n raw_html: messagePreview,\n text: messagePreview,\n attachments: []\n }\n }\n },\n methods: {\n openChat (_e) {\n if (this.chat.id) {\n this.$router.push({\n name: 'chat',\n params: {\n username: this.currentUser.screen_name,\n recipient_id: this.chat.account.id\n }\n })\n }\n }\n }\n}\n\nexport default ChatListItem\n","import { render } from \"./chat_list_item.vue?vue&type=template&id=0623aed7\"\nimport script from \"./chat_list_item.js?vue&type=script&lang=js\"\nexport * from \"./chat_list_item.js?vue&type=script&lang=js\"\n\nimport \"./chat_list_item.vue?vue&type=style&index=0&id=0623aed7&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"panel-default panel chat-new\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n </div>\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n placeholder=\"Search people\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"member-list\">\n <div\n v-for=\"user in availableUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <div @click.capture.prevent=\"goToChat(user)\">\n <BasicUserCard :user=\"user\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_new.js\"></script>\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import './chat_new.scss';\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst chatNew = {\n components: {\n BasicUserCard,\n UserAvatar\n },\n data () {\n return {\n suggestions: [],\n userIds: [],\n loading: false,\n query: ''\n }\n },\n async created () {\n const { chats } = await this.backendInteractor.chats()\n chats.forEach(chat => this.suggestions.push(chat.account))\n },\n computed: {\n users () {\n return this.userIds.map(userId => this.findUser(userId))\n },\n availableUsers () {\n if (this.query.length !== 0) {\n return this.users\n } else {\n return this.suggestions\n }\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n backendInteractor: state => state.api.backendInteractor\n }),\n ...mapGetters(['findUser'])\n },\n methods: {\n goBack () {\n this.$emit('cancel')\n },\n goToChat (user) {\n this.$router.push({ name: 'chat', params: { recipient_id: user.id } })\n },\n onInput () {\n this.search(this.query)\n },\n addUser (user) {\n this.selectedUserIds.push(user.id)\n this.query = ''\n },\n removeUser (userId) {\n this.selectedUserIds = this.selectedUserIds.filter(id => id !== userId)\n },\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts' })\n .then(data => {\n this.loading = false\n this.userIds = data.accounts.map(a => a.id)\n })\n }\n }\n}\n\nexport default chatNew\n","import { render } from \"./chat_new.vue?vue&type=template&id=54e93eee\"\nimport script from \"./chat_new.js?vue&type=script&lang=js\"\nexport * from \"./chat_new.js?vue&type=script&lang=js\"\n\nimport \"./chat_new.vue?vue&type=style&index=0&id=54e93eee&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport ChatListItem from '../chat_list_item/chat_list_item.vue'\nimport ChatNew from '../chat_new/chat_new.vue'\nimport List from '../list/list.vue'\n\nconst ChatList = {\n components: {\n ChatListItem,\n List,\n ChatNew\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['sortedChatList'])\n },\n data () {\n return {\n isNew: false\n }\n },\n created () {\n this.$store.dispatch('fetchChats', { latest: true })\n },\n methods: {\n cancelNewChat () {\n this.isNew = false\n this.$store.dispatch('fetchChats', { latest: true })\n },\n newChat () {\n this.isNew = true\n }\n }\n}\n\nexport default ChatList\n","import { render } from \"./chat_list.vue?vue&type=template&id=20b0f4c4\"\nimport script from \"./chat_list.js?vue&type=script&lang=js\"\nexport * from \"./chat_list.js?vue&type=script&lang=js\"\n\nimport \"./chat_list.vue?vue&type=style&index=0&id=20b0f4c4&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"chat-view\">\n <div class=\"chat-view-inner\">\n <div\n ref=\"inner\"\n class=\"panel-default panel chat-view-body\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading -sticky chat-view-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title text-center\">\n <ChatTitle\n :user=\"recipient\"\n :with-avatar=\"true\"\n />\n </div>\n </div>\n <div\n class=\"message-list\"\n :style=\"{ height: scrollableContainerHeight }\"\n >\n <template v-if=\"!errorLoadingChat\">\n <ChatMessage\n v-for=\"chatViewItem in chatViewItems\"\n :key=\"chatViewItem.id\"\n :author=\"recipient\"\n :chat-view-item=\"chatViewItem\"\n :hovered-message-chain=\"chatViewItem.messageChainId === hoveredMessageChainId\"\n @hover=\"onMessageHover\"\n />\n </template>\n <div\n v-else\n class=\"chat-loading-error\"\n >\n <div class=\"alert error\">\n {{ $t('chats.error_loading_chat') }}\n </div>\n </div>\n </div>\n <div\n ref=\"footer\"\n class=\"panel-body footer\"\n >\n <div\n class=\"jump-to-bottom-button\"\n :class=\"{ 'visible': jumpToBottomButtonVisible }\"\n @click=\"scrollDown({ behavior: 'smooth' })\"\n >\n <span>\n <FAIcon icon=\"chevron-down\" />\n <div\n v-if=\"newMessageCount\"\n class=\"badge badge-notification unread-chat-count unread-message-count\"\n >\n {{ newMessageCount }}\n </div>\n </span>\n </div>\n <PostStatusForm\n :disable-subject=\"true\"\n :disable-scope-selector=\"true\"\n :disable-notice=\"true\"\n :disable-lock-warning=\"true\"\n :disable-polls=\"true\"\n :disable-sensitivity-checkbox=\"true\"\n :disable-submit=\"errorLoadingChat || !currentChat\"\n :disable-preview=\"true\"\n :optimistic-posting=\"true\"\n :post-handler=\"sendMessage\"\n :submit-on-enter=\"!mobileLayout\"\n :preserve-focus=\"!mobileLayout\"\n :auto-focus=\"!mobileLayout\"\n :placeholder=\"formPlaceholder\"\n :file-limit=\"1\"\n max-height=\"160\"\n emoji-picker-placement=\"top\"\n @resize=\"handleResize\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat.js\"></script>\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import './chat.scss';\n</style>\n","<template>\n <div\n v-if=\"isMessage\"\n class=\"chat-message-wrapper\"\n :class=\"{ 'hovered-message-chain': hoveredMessageChain }\"\n @mouseover=\"onHover(true)\"\n @mouseleave=\"onHover(false)\"\n >\n <div\n class=\"chat-message\"\n :class=\"[{ 'outgoing': isCurrentUser, 'incoming': !isCurrentUser }]\"\n >\n <div\n v-if=\"!isCurrentUser\"\n class=\"avatar-wrapper\"\n >\n <UserPopover\n v-if=\"chatViewItem.isHead\"\n :user-id=\"author.id\"\n >\n <UserAvatar\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"author\"\n />\n </UserPopover>\n </div>\n <div class=\"chat-message-inner\">\n <div\n class=\"status-body\"\n :style=\"{ 'min-width': message.attachment ? '80%' : '' }\"\n >\n <div\n class=\"media status\"\n :class=\"{ 'without-attachment': !hasAttachment, 'pending': chatViewItem.data.pending, 'error': chatViewItem.data.error }\"\n style=\"position: relative\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n >\n <div\n class=\"chat-message-menu\"\n :class=\"{ 'visible': hovered || menuOpened }\"\n >\n <Popover\n trigger=\"click\"\n placement=\"top\"\n bound-to-selector=\".chat-view-inner\"\n :bound-to=\"{ x: 'container' }\"\n :margin=\"popoverMarginStyle\"\n @show=\"menuOpened = true\"\n @close=\"menuOpened = false\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click=\"deleteMessage\"\n >\n <FAIcon icon=\"times\" /> {{ $t(\"chats.delete\") }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button-default menu-icon\"\n :title=\"$t('chats.more')\"\n >\n <FAIcon icon=\"ellipsis-h\" />\n </button>\n </template>\n </Popover>\n </div>\n <StatusContent\n class=\"message-content\"\n :status=\"messageForStatusContent\"\n :full-content=\"true\"\n >\n <template #footer>\n <span\n class=\"created-at\"\n >\n {{ createdAt }}\n </span>\n </template>\n </StatusContent>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"chat-message-date-separator\"\n >\n <ChatMessageDate :date=\"chatViewItem.date\" />\n </div>\n</template>\n\n<script src=\"./chat_message.js\"></script>\n<style lang=\"scss\">\n@import './chat_message.scss';\n\n</style>\n","<template>\n <time>\n {{ displayDate }}\n </time>\n</template>\n\n<script>\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['date'],\n computed: {\n displayDate () {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n\n if (this.date.getTime() === today.getTime()) {\n return this.$t('display_date.today')\n } else {\n return this.date.toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale), { day: 'numeric', month: 'long' })\n }\n }\n }\n}\n</script>\n","import { render } from \"./chat_message_date.vue?vue&type=template&id=23377998\"\nimport script from \"./chat_message_date.vue?vue&type=script&lang=js\"\nexport * from \"./chat_message_date.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport Popover from '../popover/popover.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport ChatMessageDate from '../chat_message_date/chat_message_date.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faEllipsisH\n)\n\nconst ChatMessage = {\n name: 'ChatMessage',\n props: [\n 'author',\n 'edited',\n 'noHeading',\n 'chatViewItem',\n 'hoveredMessageChain'\n ],\n emits: ['hover'],\n components: {\n Popover,\n Attachment,\n StatusContent,\n UserAvatar,\n Gallery,\n LinkPreview,\n ChatMessageDate,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n computed: {\n // Returns HH:MM (hours and minutes) in local time.\n createdAt () {\n const time = this.chatViewItem.data.created_at\n return time.toLocaleTimeString('en', { hour: '2-digit', minute: '2-digit', hour12: false })\n },\n isCurrentUser () {\n return this.message.account_id === this.currentUser.id\n },\n message () {\n return this.chatViewItem.data\n },\n isMessage () {\n return this.chatViewItem.type === 'message'\n },\n messageForStatusContent () {\n return {\n summary: '',\n emojis: this.message.emojis,\n raw_html: this.message.content || '',\n text: this.message.content || '',\n attachments: this.message.attachments\n }\n },\n hasAttachment () {\n return this.message.attachments.length > 0\n },\n ...mapState({\n betterShadow: state => state.interface.browserSupport.cssFilter,\n currentUser: state => state.users.currentUser,\n restrictedNicknames: state => state.instance.restrictedNicknames\n }),\n popoverMarginStyle () {\n if (this.isCurrentUser) {\n return {}\n } else {\n return { left: 50 }\n }\n },\n ...mapGetters(['mergedConfig', 'findUser'])\n },\n data () {\n return {\n hovered: false,\n menuOpened: false\n }\n },\n methods: {\n onHover (bool) {\n this.$emit('hover', { isHovered: bool, messageChainId: this.chatViewItem.messageChainId })\n },\n async deleteMessage () {\n const confirmed = window.confirm(this.$t('chats.delete_confirm'))\n if (confirmed) {\n await this.$store.dispatch('deleteChatMessage', {\n messageId: this.chatViewItem.data.id,\n chatId: this.chatViewItem.data.chat_id\n })\n }\n this.hovered = false\n this.menuOpened = false\n }\n }\n}\n\nexport default ChatMessage\n","import { render } from \"./chat_message.vue?vue&type=template&id=659d8b68\"\nimport script from \"./chat_message.js?vue&type=script&lang=js\"\nexport * from \"./chat_message.js?vue&type=script&lang=js\"\n\nimport \"./chat_message.vue?vue&type=style&index=0&id=659d8b68&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Captures a scroll position\nexport const getScrollPosition = () => {\n return {\n scrollTop: window.scrollY,\n scrollHeight: document.documentElement.scrollHeight,\n offsetHeight: window.innerHeight\n }\n}\n\n// A helper function that is used to keep the scroll position fixed as the new elements are added to the top\n// Takes two scroll positions, before and after the update.\nexport const getNewTopPosition = (previousPosition, newPosition) => {\n return previousPosition.scrollTop + (newPosition.scrollHeight - previousPosition.scrollHeight)\n}\n\nexport const isBottomedOut = (offset = 0) => {\n const scrollHeight = window.scrollY + offset\n const totalHeight = document.documentElement.scrollHeight - window.innerHeight\n return totalHeight <= scrollHeight\n}\n// Returns whether or not the scrollbar is visible.\nexport const isScrollable = () => {\n return document.documentElement.scrollHeight > window.innerHeight\n}\n","import _ from 'lodash'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport ChatMessage from '../chat_message/chat_message.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\nimport chatService from '../../services/chat_service/chat_service.js'\nimport { promiseInterval } from '../../services/promise_interval/promise_interval.js'\nimport { getScrollPosition, getNewTopPosition, isBottomedOut, isScrollable } from './chat_layout_utils.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { buildFakeMessage } from '../../services/chat_utils/chat_utils.js'\n\nlibrary.add(\n faChevronDown,\n faChevronLeft\n)\n\nconst BOTTOMED_OUT_OFFSET = 10\nconst JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET = 10\nconst SAFE_RESIZE_TIME_OFFSET = 100\nconst MARK_AS_READ_DELAY = 1500\nconst MAX_RETRIES = 10\n\nconst Chat = {\n components: {\n ChatMessage,\n ChatTitle,\n PostStatusForm\n },\n data () {\n return {\n jumpToBottomButtonVisible: false,\n hoveredMessageChainId: undefined,\n lastScrollPosition: {},\n scrollableContainerHeight: '100%',\n errorLoadingChat: false,\n messageRetriers: {}\n }\n },\n created () {\n this.startFetching()\n window.addEventListener('resize', this.handleResize)\n },\n mounted () {\n window.addEventListener('scroll', this.handleScroll)\n if (typeof document.hidden !== 'undefined') {\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n }\n\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\n window.removeEventListener('resize', this.handleResize)\n if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.$store.dispatch('clearCurrentChat')\n },\n computed: {\n recipient () {\n return this.currentChat && this.currentChat.account\n },\n recipientId () {\n return this.$route.params.recipient_id\n },\n formPlaceholder () {\n if (this.recipient) {\n return this.$t('chats.message_user', { nickname: this.recipient.screen_name_ui })\n } else {\n return ''\n }\n },\n chatViewItems () {\n return chatService.getView(this.currentChatMessageService)\n },\n newMessageCount () {\n return this.currentChatMessageService && this.currentChatMessageService.newMessageCount\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n ...mapGetters([\n 'currentChat',\n 'currentChatMessageService',\n 'findOpenedChatByRecipientId',\n 'mergedConfig'\n ]),\n ...mapState({\n backendInteractor: state => state.api.backendInteractor,\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus,\n mobileLayout: state => state.interface.layoutType === 'mobile',\n currentUser: state => state.users.currentUser\n })\n },\n watch: {\n chatViewItems () {\n // We don't want to scroll to the bottom on a new message when the user is viewing older messages.\n // Therefore we need to know whether the scroll position was at the bottom before the DOM update.\n const bottomedOutBeforeUpdate = this.bottomedOut(BOTTOMED_OUT_OFFSET)\n this.$nextTick(() => {\n if (bottomedOutBeforeUpdate) {\n this.scrollDown()\n }\n })\n },\n $route: function () {\n this.startFetching()\n },\n mastoUserSocketStatus (newValue) {\n if (newValue === WSConnectionStatus.JOINED) {\n this.fetchChat({ isFirstFetch: true })\n }\n }\n },\n methods: {\n // Used to animate the avatar near the first message of the message chain when any message belonging to the chain is hovered\n onMessageHover ({ isHovered, messageChainId }) {\n this.hoveredMessageChainId = isHovered ? messageChainId : undefined\n },\n onFilesDropped () {\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n handleVisibilityChange () {\n this.$nextTick(() => {\n if (!document.hidden && this.bottomedOut(BOTTOMED_OUT_OFFSET)) {\n this.scrollDown({ forceRead: true })\n }\n })\n },\n // \"Sticks\" scroll to bottom instead of top, helps with OSK resizing the viewport\n handleResize (opts = {}) {\n const { delayed = false } = opts\n\n if (delayed) {\n setTimeout(() => {\n this.handleResize({ ...opts, delayed: false })\n }, SAFE_RESIZE_TIME_OFFSET)\n return\n }\n\n this.$nextTick(() => {\n const { offsetHeight = undefined } = getScrollPosition()\n const diff = offsetHeight - this.lastScrollPosition.offsetHeight\n if (diff !== 0 && !this.bottomedOut()) {\n this.$nextTick(() => {\n window.scrollBy({ top: -Math.trunc(diff) })\n })\n }\n this.lastScrollPosition = getScrollPosition()\n })\n },\n scrollDown (options = {}) {\n const { behavior = 'auto', forceRead = false } = options\n this.$nextTick(() => {\n window.scrollTo({ top: document.documentElement.scrollHeight, behavior })\n })\n if (forceRead) {\n this.readChat()\n }\n },\n readChat () {\n if (!(this.currentChatMessageService && this.currentChatMessageService.maxId)) { return }\n if (document.hidden) { return }\n const lastReadId = this.currentChatMessageService.maxId\n this.$store.dispatch('readChat', {\n id: this.currentChat.id,\n lastReadId\n })\n },\n bottomedOut (offset) {\n return isBottomedOut(offset)\n },\n reachedTop () {\n return window.scrollY <= 0\n },\n cullOlderCheck () {\n window.setTimeout(() => {\n if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.$store.dispatch('cullOlderMessages', this.currentChatMessageService.chatId)\n }\n }, 5000)\n },\n handleScroll: _.throttle(function () {\n this.lastScrollPosition = getScrollPosition()\n if (!this.currentChat) { return }\n\n if (this.reachedTop()) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n } else if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.jumpToBottomButtonVisible = false\n this.cullOlderCheck()\n if (this.newMessageCount > 0) {\n // Use a delay before marking as read to prevent situation where new messages\n // arrive just as you're leaving the view and messages that you didn't actually\n // get to see get marked as read.\n window.setTimeout(() => {\n // Don't mark as read if the element doesn't exist, user has left chat view\n if (this.$el) this.readChat()\n }, MARK_AS_READ_DELAY)\n }\n } else {\n this.jumpToBottomButtonVisible = true\n }\n }, 200),\n handleScrollUp (positionBeforeLoading) {\n const positionAfterLoading = getScrollPosition()\n window.scrollTo({\n top: getNewTopPosition(positionBeforeLoading, positionAfterLoading)\n })\n },\n fetchChat ({ isFirstFetch = false, fetchLatest = false, maxId }) {\n const chatMessageService = this.currentChatMessageService\n if (!chatMessageService) { return }\n if (fetchLatest && this.streamingEnabled) { return }\n\n const chatId = chatMessageService.chatId\n const fetchOlderMessages = !!maxId\n const sinceId = fetchLatest && chatMessageService.maxId\n\n return this.backendInteractor.chatMessages({ id: chatId, maxId, sinceId })\n .then((messages) => {\n // Clear the current chat in case we're recovering from a ws connection loss.\n if (isFirstFetch) {\n chatService.clear(chatMessageService)\n }\n\n const positionBeforeUpdate = getScrollPosition()\n this.$store.dispatch('addChatMessages', { chatId, messages }).then(() => {\n this.$nextTick(() => {\n if (fetchOlderMessages) {\n this.handleScrollUp(positionBeforeUpdate)\n }\n\n // In vertical screens, the first batch of fetched messages may not always take the\n // full height of the scrollable container.\n // If this is the case, we want to fetch the messages until the scrollable container\n // is fully populated so that the user has the ability to scroll up and load the history.\n if (!isScrollable() && messages.length > 0) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n }\n })\n })\n })\n },\n async startFetching () {\n let chat = this.findOpenedChatByRecipientId(this.recipientId)\n if (!chat) {\n try {\n chat = await this.backendInteractor.getOrCreateChat({ accountId: this.recipientId })\n } catch (e) {\n console.error('Error creating or getting a chat', e)\n this.errorLoadingChat = true\n }\n }\n if (chat) {\n this.$nextTick(() => {\n this.scrollDown({ forceRead: true })\n })\n this.$store.dispatch('addOpenedChat', { chat })\n this.doStartFetching()\n }\n },\n doStartFetching () {\n this.$store.dispatch('startFetchingCurrentChat', {\n fetcher: () => promiseInterval(() => this.fetchChat({ fetchLatest: true }), 5000)\n })\n this.fetchChat({ isFirstFetch: true })\n },\n handleAttachmentPosting () {\n this.$nextTick(() => {\n this.handleResize()\n // When the posting form size changes because of a media attachment, we need an extra resize\n // to account for the potential delay in the DOM update.\n this.scrollDown({ forceRead: true })\n })\n },\n sendMessage ({ status, media, idempotencyKey }) {\n const params = {\n id: this.currentChat.id,\n content: status,\n idempotencyKey\n }\n\n if (media[0]) {\n params.mediaId = media[0].id\n }\n\n const fakeMessage = buildFakeMessage({\n attachments: media,\n chatId: this.currentChat.id,\n content: status,\n userId: this.currentUser.id,\n idempotencyKey\n })\n\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n messages: [fakeMessage]\n }).then(() => {\n this.handleAttachmentPosting()\n })\n\n return this.doSendMessage({ params, fakeMessage, retriesLeft: MAX_RETRIES })\n },\n doSendMessage ({ params, fakeMessage, retriesLeft = MAX_RETRIES }) {\n if (retriesLeft <= 0) return\n\n this.backendInteractor.sendChatMessage(params)\n .then(data => {\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n updateMaxId: false,\n messages: [{ ...data, fakeId: fakeMessage.id }]\n })\n\n return data\n })\n .catch(error => {\n console.error('Error sending message', error)\n this.$store.dispatch('handleMessageError', {\n chatId: this.currentChat.id,\n fakeId: fakeMessage.id,\n isRetry: retriesLeft !== MAX_RETRIES\n })\n if ((error.statusCode >= 500 && error.statusCode < 600) || error.message === 'Failed to fetch') {\n this.messageRetriers[fakeMessage.id] = setTimeout(() => {\n this.doSendMessage({ params, fakeMessage, retriesLeft: retriesLeft - 1 })\n }, 1000 * (2 ** (MAX_RETRIES - retriesLeft)))\n }\n return {}\n })\n\n return Promise.resolve(fakeMessage)\n },\n goBack () {\n this.$router.push({ name: 'chats', params: { username: this.currentUser.screen_name } })\n }\n }\n}\n\nexport default Chat\n","import { render } from \"./chat.vue?vue&type=template&id=9416a190\"\nimport script from \"./chat.js?vue&type=script&lang=js\"\nexport * from \"./chat.js?vue&type=script&lang=js\"\n\nimport \"./chat.vue?vue&type=style&index=0&id=9416a190&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <div\n v-if=\"user\"\n class=\"user-profile panel panel-default\"\n >\n <UserCard\n :user-id=\"userId\"\n :switcher=\"true\"\n :selected=\"timeline.viewing\"\n avatar-action=\"zoom\"\n rounded=\"top\"\n :has-note-editor=\"true\"\n />\n <div\n v-if=\"user.fields_html && user.fields_html.length > 0\"\n class=\"user-profile-fields\"\n >\n <dl\n v-for=\"(field, index) in user.fields_html\"\n :key=\"index\"\n class=\"user-profile-field\"\n >\n <dt\n :title=\"user.fields_text[index].name\"\n class=\"user-profile-field-name\"\n >\n <RichContent\n :html=\"field.name\"\n :emoji=\"user.emoji\"\n />\n </dt>\n <dd\n :title=\"user.fields_text[index].value\"\n class=\"user-profile-field-value\"\n >\n <RichContent\n :html=\"field.value\"\n :emoji=\"user.emoji\"\n />\n </dd>\n </dl>\n </div>\n <tab-switcher\n :active-tab=\"tab\"\n :render-only-focused=\"true\"\n :on-switch=\"onTabSwitch\"\n >\n <Timeline\n key=\"statuses\"\n :label=\"$t('user_card.statuses')\"\n :count=\"user.statuses_count\"\n :embedded=\"true\"\n :title=\"$t('user_profile.timeline_title')\"\n :timeline=\"timeline\"\n timeline-name=\"user\"\n :user-id=\"userId\"\n :pinned-status-ids=\"user.pinnedStatusIds\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <div\n v-if=\"followsTabVisible\"\n key=\"followees\"\n :label=\"$t('user_card.followees')\"\n :disabled=\"!user.friends_count\"\n >\n <FriendList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard :user=\"item\" />\n </template>\n </FriendList>\n </div>\n <div\n v-if=\"followersTabVisible\"\n key=\"followers\"\n :label=\"$t('user_card.followers')\"\n :disabled=\"!user.followers_count\"\n >\n <FollowerList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard\n :user=\"item\"\n :no-follows-you=\"isUs\"\n />\n </template>\n </FollowerList>\n </div>\n <Timeline\n key=\"media\"\n :label=\"$t('user_card.media')\"\n :disabled=\"!media.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.media')\"\n timeline-name=\"media\"\n :timeline=\"media\"\n :user-id=\"userId\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <Timeline\n v-if=\"isUs\"\n key=\"favorites\"\n :label=\"$t('user_card.favorites')\"\n :disabled=\"!favorites.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.favorites')\"\n timeline-name=\"favorites\"\n :timeline=\"favorites\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n </tab-switcher>\n <div\n :ref=\"setFooterRef\"\n class=\"panel-footer\"\n />\n </div>\n <div\n v-else\n class=\"panel user-profile-placeholder\"\n >\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('settings.profile_tab') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <span v-if=\"error\">{{ error }}</span>\n <FAIcon\n v-else\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./user_profile.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name, .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n</style>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-card-content-container\">\n <span\n v-if=\"isMe || (!noFollowsYou && relationship.followed_by)\"\n class=\"faint\"\n >\n {{ isMe ? $t('user_card.its_you') : $t('user_card.follows_you') }}\n </span>\n <template v-if=\"!loggedIn\">\n <div\n v-if=\"!relationship.following\"\n class=\"follow-card-follow-button\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n </template>\n <template v-else-if=\"!isMe\">\n <FollowButton\n :relationship=\"relationship\"\n :label-following=\"$t('user_card.follow_unfollow')\"\n class=\"follow-card-follow-button\"\n :user=\"user\"\n />\n <RemoveFollowerButton\n v-if=\"noFollowsYou && relationship.followed_by\"\n :relationship=\"relationship\"\n class=\"follow-card-button\"\n />\n </template>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n flex-wrap: wrap;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n</style>\n","export default {\n props: ['relationship'],\n data () {\n return {\n inProgress: false\n }\n },\n computed: {\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else {\n return this.$t('user_card.remove_follower')\n }\n }\n },\n methods: {\n onClick () {\n this.inProgress = true\n this.$store.dispatch('removeUserFromFollowers', this.relationship.id).then(() => {\n this.inProgress = false\n })\n }\n }\n}\n","import { render } from \"./remove_follower_button.vue?vue&type=template&id=abcc0c7a\"\nimport script from \"./remove_follower_button.js?vue&type=script&lang=js\"\nexport * from \"./remove_follower_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: inProgress }\"\n :disabled=\"inProgress\"\n :title=\"$t('user_card.remove_follower')\"\n @click=\"onClick\"\n >\n {{ label }}\n </button>\n</template>\n\n<script src=\"./remove_follower_button.js\"></script>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\nimport RemoveFollowerButton from '../remove_follower_button/remove_follower_button.vue'\n\nconst FollowCard = {\n props: [\n 'user',\n 'noFollowsYou'\n ],\n components: {\n BasicUserCard,\n RemoteFollow,\n FollowButton,\n RemoveFollowerButton\n },\n computed: {\n isMe () {\n return this.$store.state.users.currentUser.id === this.user.id\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n relationship () {\n return this.$store.getters.relationship(this.user.id)\n }\n }\n}\n\nexport default FollowCard\n","import { render } from \"./follow_card.vue?vue&type=template&id=0e018ede\"\nimport script from \"./follow_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_card.vue?vue&type=style&index=0&id=0e018ede&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// eslint-disable-next-line no-unused\nimport { h } from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_load_more.scss'\n\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst withLoadMore = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n unmounted, // function called at \"destroyed\" lifecycle\n childPropName = 'entries', // name of the prop to be passed into the wrapped component\n additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n const originalProps = Object.keys(getComponentProps(WrappedComponent))\n const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n return {\n props,\n data () {\n return {\n loading: false,\n bottomedOut: false,\n error: false,\n entries: []\n }\n },\n created () {\n window.addEventListener('scroll', this.scrollLoad)\n if (this.entries.length === 0) {\n this.fetchEntries()\n }\n },\n unmounted () {\n window.removeEventListener('scroll', this.scrollLoad)\n unmounted && unmounted(this.$props, this.$store)\n },\n methods: {\n // Entries is not a computed because computed can't track the dynamic\n // selector for changes and won't trigger after fetch.\n updateEntries () {\n this.entries = select(this.$props, this.$store) || []\n },\n fetchEntries () {\n if (!this.loading) {\n this.loading = true\n this.error = false\n fetch(this.$props, this.$store)\n .then((newEntries) => {\n this.loading = false\n this.bottomedOut = isEmpty(newEntries)\n })\n .catch(() => {\n this.loading = false\n this.error = true\n })\n .finally(() => {\n this.updateEntries()\n })\n }\n },\n scrollLoad (e) {\n const bodyBRect = document.body.getBoundingClientRect()\n const height = Math.max(bodyBRect.height, -(bodyBRect.y))\n if (this.loading === false &&\n this.bottomedOut === false &&\n this.$el.offsetHeight > 0 &&\n (window.innerHeight + window.pageYOffset) >= (height - 750)\n ) {\n this.fetchEntries()\n }\n }\n },\n render () {\n const props = {\n ...this.$props,\n [childPropName]: this.entries\n }\n const children = this.$slots\n return (\n <div class=\"with-load-more\">\n <WrappedComponent {...props}>\n {children}\n </WrappedComponent>\n <div class=\"with-load-more-footer\">\n {this.error &&\n <button onClick={this.fetchEntries} class=\"button-unstyled -link -fullwidth alert error\">\n {this.$t('general.generic_error')}\n </button>\n }\n {!this.error && this.loading && <FAIcon spin icon=\"circle-notch\"/>}\n {!this.error && !this.loading && !this.bottomedOut && <a onClick={this.fetchEntries}>{this.$t('general.more')}</a>}\n </div>\n </div>\n )\n }\n }\n}\n\nexport default withLoadMore\n","import get from 'lodash/get'\nimport UserCard from '../user_card/user_card.vue'\nimport FollowCard from '../follow_card/follow_card.vue'\nimport Timeline from '../timeline/timeline.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport List from '../list/list.vue'\nimport withLoadMore from '../../hocs/with_load_more/with_load_more'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst FollowerList = withLoadMore({\n fetch: (props, $store) => $store.dispatch('fetchFollowers', props.userId),\n select: (props, $store) => get($store.getters.findUser(props.userId), 'followerIds', []).map(id => $store.getters.findUser(id)),\n destroy: (props, $store) => $store.dispatch('clearFollowers', props.userId),\n childPropName: 'items',\n additionalPropNames: ['userId']\n})(List)\n\nconst FriendList = withLoadMore({\n fetch: (props, $store) => $store.dispatch('fetchFriends', props.userId),\n select: (props, $store) => get($store.getters.findUser(props.userId), 'friendIds', []).map(id => $store.getters.findUser(id)),\n destroy: (props, $store) => $store.dispatch('clearFriends', props.userId),\n childPropName: 'items',\n additionalPropNames: ['userId']\n})(List)\n\nconst defaultTabKey = 'statuses'\n\nconst UserProfile = {\n data () {\n return {\n error: false,\n userId: null,\n tab: defaultTabKey,\n footerRef: null\n }\n },\n created () {\n const routeParams = this.$route.params\n this.load({ name: routeParams.name, id: routeParams.id })\n this.tab = get(this.$route, 'query.tab', defaultTabKey)\n },\n unmounted () {\n this.stopFetching()\n },\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.user\n },\n favorites () {\n return this.$store.state.statuses.timelines.favorites\n },\n media () {\n return this.$store.state.statuses.timelines.media\n },\n isUs () {\n return this.userId && this.$store.state.users.currentUser.id &&\n this.userId === this.$store.state.users.currentUser.id\n },\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n isExternal () {\n return this.$route.name === 'external-user-profile'\n },\n followsTabVisible () {\n return this.isUs || !this.user.hide_follows\n },\n followersTabVisible () {\n return this.isUs || !this.user.hide_followers\n }\n },\n methods: {\n setFooterRef (el) {\n this.footerRef = el\n },\n load (userNameOrId) {\n const startFetchingTimeline = (timeline, userId) => {\n // Clear timeline only if load another user's profile\n if (userId !== this.$store.state.statuses.timelines[timeline].userId) {\n this.$store.commit('clearTimeline', { timeline })\n }\n this.$store.dispatch('startFetchingTimeline', { timeline, userId })\n }\n\n const loadById = (userId) => {\n this.userId = userId\n startFetchingTimeline('user', userId)\n startFetchingTimeline('media', userId)\n if (this.isUs) {\n startFetchingTimeline('favorites', userId)\n }\n // Fetch all pinned statuses immediately\n this.$store.dispatch('fetchPinnedStatuses', userId)\n }\n\n // Reset view\n this.userId = null\n this.error = false\n\n const maybeId = userNameOrId.id\n const maybeName = userNameOrId.name\n\n // Check if user data is already loaded in store\n const user = maybeId ? this.$store.getters.findUser(maybeId) : this.$store.getters.findUserByName(maybeName)\n if (user) {\n loadById(user.id)\n } else {\n (maybeId\n ? this.$store.dispatch('fetchUser', maybeId)\n : this.$store.dispatch('fetchUserByName', maybeName))\n .then(({ id }) => loadById(id))\n .catch((reason) => {\n const errorMessage = get(reason, 'error.error')\n if (errorMessage === 'No user with such user_id') { // Known error\n this.error = this.$t('user_profile.profile_does_not_exist')\n } else if (errorMessage) {\n this.error = errorMessage\n } else {\n this.error = this.$t('user_profile.profile_loading_error')\n }\n })\n }\n },\n stopFetching () {\n this.$store.dispatch('stopFetchingTimeline', 'user')\n this.$store.dispatch('stopFetchingTimeline', 'favorites')\n this.$store.dispatch('stopFetchingTimeline', 'media')\n },\n switchUser (userNameOrId) {\n this.stopFetching()\n this.load(userNameOrId)\n },\n onTabSwitch (tab) {\n this.tab = tab\n this.$router.replace({ query: { tab } })\n },\n linkClicked ({ target }) {\n if (target.tagName === 'SPAN') {\n target = target.parentNode\n }\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n }\n },\n watch: {\n '$route.params.id': function (newVal) {\n if (newVal) {\n this.switchUser({ id: newVal })\n }\n },\n '$route.params.name': function (newVal) {\n if (newVal) {\n this.switchUser({ name: newVal })\n }\n },\n '$route.query': function (newVal) {\n this.tab = newVal.tab || defaultTabKey\n }\n },\n components: {\n UserCard,\n Timeline,\n FollowerList,\n FriendList,\n FollowCard,\n TabSwitcher,\n Conversation,\n RichContent\n }\n}\n\nexport default UserProfile\n","import { render } from \"./user_profile.vue?vue&type=template&id=1447818b\"\nimport script from \"./user_profile.js?vue&type=script&lang=js\"\nexport * from \"./user_profile.js?vue&type=script&lang=js\"\n\nimport \"./user_profile.vue?vue&type=style&index=0&id=1447818b&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.search') }}\n </div>\n </div>\n <div class=\"search-input-container\">\n <input\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-input\"\n :placeholder=\"$t('nav.search')\"\n @keyup.enter=\"newQuery(searchTerm)\"\n >\n <button\n class=\"btn button-default search-button\"\n type=\"submit\"\n @click=\"newQuery(searchTerm)\"\n >\n <FAIcon icon=\"search\" />\n </button>\n </div>\n <div\n v-if=\"loading && statusesOffset == 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div v-else-if=\"loaded\">\n <div class=\"search-nav-heading\">\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onResultTabSwitch\"\n :active-tab=\"currenResultTab\"\n >\n <span\n key=\"statuses\"\n :label=\"$t('user_card.statuses') + resultCount('visibleStatuses')\"\n />\n <span\n key=\"people\"\n :label=\"$t('search.people') + resultCount('users')\"\n />\n <span\n key=\"hashtags\"\n :label=\"$t('search.hashtags') + resultCount('hashtags')\"\n />\n </tab-switcher>\n </div>\n </div>\n <div class=\"panel-body\">\n <div v-if=\"currenResultTab === 'statuses'\">\n <Status\n v-for=\"status in visibleStatuses\"\n :key=\"status.id\"\n :collapsable=\"false\"\n :expandable=\"false\"\n :compact=\"false\"\n class=\"search-result\"\n :statusoid=\"status\"\n :no-heading=\"false\"\n />\n <button\n v-if=\"!loading && loaded && lastStatusFetchCount > 0\"\n class=\"more-statuses-button button-unstyled -link -fullwidth\"\n @click.prevent=\"search(searchTerm, 'statuses')\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('search.load_more') }}\n </div>\n </button>\n <div\n v-else-if=\"loading && statusesOffset > 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div\n v-if=\"(visibleStatuses.length === 0 || lastStatusFetchCount === 0) && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>\n {{ visibleStatuses.length === 0 ? $t('search.no_results') : $t('search.no_more_results') }}\n </h4>\n </div>\n </div>\n <div v-else-if=\"currenResultTab === 'people'\">\n <div\n v-if=\"users.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item search-result\"\n />\n </div>\n <div v-else-if=\"currenResultTab === 'hashtags'\">\n <div\n v-if=\"hashtags.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <div\n v-for=\"hashtag in hashtags\"\n :key=\"hashtag.url\"\n class=\"status trend search-result\"\n >\n <div class=\"hashtag\">\n <router-link :to=\"{ name: 'tag-timeline', params: { tag: hashtag.name } }\">\n #{{ hashtag.name }}\n </router-link>\n <div v-if=\"lastHistoryRecord(hashtag)\">\n <span v-if=\"lastHistoryRecord(hashtag).accounts == 1\">\n {{ $t('search.person_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n <span v-else>\n {{ $t('search.people_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n </div>\n </div>\n <div\n v-if=\"lastHistoryRecord(hashtag)\"\n class=\"count\"\n >\n {{ lastHistoryRecord(hashtag).uses }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"search-result-footer text-center panel-footer faint\" />\n </div>\n</template>\n\n<script src=\"./search.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n }\n\n</style>\n","import FollowCard from '../follow_card/follow_card.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport Status from '../status/status.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport map from 'lodash/map'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\nimport { uniqBy } from 'lodash'\n\nlibrary.add(\n faCircleNotch,\n faSearch\n)\n\nconst Search = {\n components: {\n FollowCard,\n Conversation,\n Status,\n TabSwitcher\n },\n props: [\n 'query'\n ],\n data () {\n return {\n loaded: false,\n loading: false,\n searchTerm: this.query || '',\n userIds: [],\n statuses: [],\n hashtags: [],\n currenResultTab: 'statuses',\n\n statusesOffset: 0,\n lastStatusFetchCount: 0,\n lastQuery: ''\n }\n },\n computed: {\n users () {\n return this.userIds.map(userId => this.$store.getters.findUser(userId))\n },\n visibleStatuses () {\n const allStatusesObject = this.$store.state.statuses.allStatusesObject\n\n return this.statuses.filter(status =>\n allStatusesObject[status.id] && !allStatusesObject[status.id].deleted\n )\n }\n },\n mounted () {\n this.search(this.query)\n },\n watch: {\n query (newValue) {\n this.searchTerm = newValue\n this.search(newValue)\n }\n },\n methods: {\n newQuery (query) {\n this.$router.push({ name: 'search', query: { query } })\n this.$refs.searchInput.focus()\n },\n search (query, searchType = null) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$refs.searchInput.blur()\n if (this.lastQuery !== query) {\n this.userIds = []\n this.hashtags = []\n this.statuses = []\n\n this.statusesOffset = 0\n this.lastStatusFetchCount = 0\n }\n\n this.$store.dispatch('search', { q: query, resolve: true, offset: this.statusesOffset, type: searchType })\n .then(data => {\n this.loading = false\n\n const oldLength = this.statuses.length\n\n // Always append to old results. If new results are empty, this doesn't change anything\n this.userIds = this.userIds.concat(map(data.accounts, 'id'))\n this.statuses = uniqBy(this.statuses.concat(data.statuses), 'id')\n this.hashtags = this.hashtags.concat(data.hashtags)\n\n this.currenResultTab = this.getActiveTab()\n this.loaded = true\n\n // Offset from whatever we already have\n this.statusesOffset = this.statuses.length\n // Because the amount of new statuses can actually be zero, compare to old lenght instead\n this.lastStatusFetchCount = this.statuses.length - oldLength\n this.lastQuery = query\n })\n },\n resultCount (tabName) {\n const length = this[tabName].length\n return length === 0 ? '' : ` (${length})`\n },\n onResultTabSwitch (key) {\n this.currenResultTab = key\n },\n getActiveTab () {\n if (this.visibleStatuses.length > 0) {\n return 'statuses'\n } else if (this.users.length > 0) {\n return 'people'\n } else if (this.hashtags.length > 0) {\n return 'hashtags'\n }\n\n return 'statuses'\n },\n lastHistoryRecord (hashtag) {\n return hashtag.history && hashtag.history[0]\n }\n }\n}\n\nexport default Search\n","import { render } from \"./search.vue?vue&type=template&id=126b6dad\"\nimport script from \"./search.js?vue&type=script&lang=js\"\nexport * from \"./search.js?vue&type=script&lang=js\"\n\nimport \"./search.vue?vue&type=style&index=0&id=126b6dad&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('registration.registration') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"registration-form\"\n @submit.prevent=\"submit(user)\"\n >\n <div class=\"container\">\n <div class=\"text-fields\">\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.username.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-username\"\n >{{ $t('login.username') }}</label>\n <input\n id=\"sign-up-username\"\n v-model.trim=\"v$.user.username.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.username_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.username.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.username.required\">\n <span>{{ $t('registration.validations.username_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.fullname.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-fullname\"\n >{{ $t('registration.fullname') }}</label>\n <input\n id=\"sign-up-fullname\"\n v-model.trim=\"v$.user.fullname.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.fullname_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.fullname.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.fullname.required\">\n <span>{{ $t('registration.validations.fullname_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.email.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"email\"\n >{{ accountActivationRequired ? $t('registration.email') : $t('registration.email_optional') }}</label>\n <input\n id=\"email\"\n v-model=\"v$.user.email.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"email\"\n :aria-required=\"accountActivationRequired\"\n >\n </div>\n <div\n v-if=\"v$.user.email.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.email.required\">\n <span>{{ $t('registration.validations.email_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div class=\"form-group\">\n <label\n class=\"form--label\"\n for=\"bio\"\n >{{ $t('registration.bio_optional') }}</label>\n <textarea\n id=\"bio\"\n v-model=\"user.bio\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"bioPlaceholder\"\n />\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.password.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password\"\n >{{ $t('login.password') }}</label>\n <input\n id=\"sign-up-password\"\n v-model=\"user.password\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.password.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.password.required\">\n <span>{{ $t('registration.validations.password_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.confirm.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password-confirmation\"\n >{{ $t('registration.password_confirm') }}</label>\n <input\n id=\"sign-up-password-confirmation\"\n v-model=\"user.confirm\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.confirm.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"v$.user.confirm.required.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_required') }}</span>\n </li>\n <li v-if=\"v$.user.confirm.sameAs.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_match') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.language.$error }\"\n >\n <interface-language-switcher\n for=\"email-language\"\n :prompt-text=\"$t('registration.email_language')\"\n :language=\"v$.user.language.$model\"\n :set-language=\"val => v$.user.language.$model = val\"\n />\n </div>\n\n <div\n v-if=\"accountApprovalRequired\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"reason\"\n >{{ $t('registration.reason') }}</label>\n <textarea\n id=\"reason\"\n v-model=\"user.reason\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"reasonPlaceholder\"\n />\n </div>\n\n <div\n v-if=\"captcha.type != 'none'\"\n id=\"captcha-group\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"captcha-label\"\n >{{ $t('registration.captcha') }}</label>\n\n <template v-if=\"['kocaptcha', 'native'].includes(captcha.type)\">\n <img\n :src=\"captcha.url\"\n @click=\"setCaptcha\"\n >\n\n <sub>{{ $t('registration.new_captcha') }}</sub>\n\n <input\n id=\"captcha-answer\"\n v-model=\"captcha.solution\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"text\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n >\n </template>\n </div>\n\n <div\n v-if=\"token\"\n class=\"form-group\"\n >\n <label for=\"token\">{{ $t('registration.token') }}</label>\n <input\n id=\"token\"\n v-model=\"token\"\n disabled=\"true\"\n class=\"form-control\"\n type=\"text\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('registration.register') }}\n </button>\n </div>\n </div>\n\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"terms-of-service\"\n v-html=\"termsOfService\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n <div\n v-if=\"serverValidationErrors.length\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n <span\n v-for=\"error in serverValidationErrors\"\n :key=\"error\"\n >{{ error }}</span>\n </div>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./registration.js\"></script>\n<style lang=\"scss\">\n@import '../../_variables.scss';\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: .6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height:16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n</style>\n","import useVuelidate from '@vuelidate/core'\nimport { required, requiredIf, sameAs } from '@vuelidate/validators'\nimport { mapActions, mapState } from 'vuex'\nimport InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'\nimport localeService from '../../services/locale/locale.service.js'\n\nconst registration = {\n setup () { return { v$: useVuelidate() } },\n data: () => ({\n user: {\n email: '',\n fullname: '',\n username: '',\n password: '',\n confirm: '',\n reason: '',\n language: ''\n },\n captcha: {}\n }),\n components: {\n InterfaceLanguageSwitcher\n },\n validations () {\n return {\n user: {\n email: { required: requiredIf(() => this.accountActivationRequired) },\n username: { required },\n fullname: { required },\n password: { required },\n confirm: {\n required,\n sameAs: sameAs(this.user.password)\n },\n reason: { required: requiredIf(() => this.accountApprovalRequired) },\n language: {}\n }\n }\n },\n created () {\n if ((!this.registrationOpen && !this.token) || this.signedIn) {\n this.$router.push({ name: 'root' })\n }\n\n this.setCaptcha()\n },\n computed: {\n token () { return this.$route.params.token },\n bioPlaceholder () {\n return this.replaceNewlines(this.$t('registration.bio_placeholder'))\n },\n reasonPlaceholder () {\n return this.replaceNewlines(this.$t('registration.reason_placeholder'))\n },\n ...mapState({\n registrationOpen: (state) => state.instance.registrationOpen,\n signedIn: (state) => !!state.users.currentUser,\n isPending: (state) => state.users.signUpPending,\n serverValidationErrors: (state) => state.users.signUpErrors,\n termsOfService: (state) => state.instance.tos,\n accountActivationRequired: (state) => state.instance.accountActivationRequired,\n accountApprovalRequired: (state) => state.instance.accountApprovalRequired\n })\n },\n methods: {\n ...mapActions(['signUp', 'getCaptcha']),\n async submit () {\n this.user.nickname = this.user.username\n this.user.token = this.token\n\n this.user.captcha_solution = this.captcha.solution\n this.user.captcha_token = this.captcha.token\n this.user.captcha_answer_data = this.captcha.answer_data\n if (this.user.language) {\n this.user.language = localeService.internalToBackendLocale(this.user.language)\n }\n\n this.v$.$touch()\n\n if (!this.v$.$invalid) {\n try {\n await this.signUp(this.user)\n this.$router.push({ name: 'friends' })\n } catch (error) {\n console.warn('Registration failed: ', error)\n this.setCaptcha()\n }\n }\n },\n setCaptcha () {\n this.getCaptcha().then(cpt => { this.captcha = cpt })\n },\n replaceNewlines (str) {\n return str.replace(/\\s*\\n\\s*/g, ' \\n')\n }\n }\n}\n\nexport default registration\n","import { render } from \"./registration.vue?vue&type=template&id=93824558\"\nimport script from \"./registration.js?vue&type=script&lang=js\"\nexport * from \"./registration.js?vue&type=script&lang=js\"\n\nimport \"./registration.vue?vue&type=style&index=0&id=93824558&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('password_reset.password_reset') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"password-reset-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"container\">\n <div v-if=\"!mailerEnabled\">\n <p v-if=\"passwordResetRequested\">\n {{ $t('password_reset.password_reset_required_but_mailer_is_disabled') }}\n </p>\n <p v-else>\n {{ $t('password_reset.password_reset_disabled') }}\n </p>\n </div>\n <div v-else-if=\"success || throttled\">\n <p v-if=\"success\">\n {{ $t('password_reset.check_email') }}\n </p>\n <div class=\"form-group text-center\">\n <router-link :to=\"{name: 'root'}\">\n {{ $t('password_reset.return_home') }}\n </router-link>\n </div>\n </div>\n <div v-else>\n <p\n v-if=\"passwordResetRequested\"\n class=\"password-reset-required error\"\n >\n {{ $t('password_reset.password_reset_required') }}\n </p>\n <p>\n {{ $t('password_reset.instruction') }}\n </p>\n <div class=\"form-group\">\n <input\n ref=\"email\"\n v-model=\"user.email\"\n :disabled=\"isPending\"\n :placeholder=\"$t('password_reset.placeholder')\"\n class=\"form-control\"\n type=\"input\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default btn-block\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n </div>\n <p\n v-if=\"error\"\n class=\"alert error notice-dismissible\"\n >\n <span>{{ error }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n @click.prevent=\"dismissError()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./password_reset.js\"></script>\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n</style>\n","import { mapState } from 'vuex'\nimport passwordResetApi from '../../services/new_api/password_reset.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst passwordReset = {\n data: () => ({\n user: {\n email: ''\n },\n isPending: false,\n success: false,\n throttled: false,\n error: null\n }),\n computed: {\n ...mapState({\n signedIn: (state) => !!state.users.currentUser,\n instance: state => state.instance\n }),\n mailerEnabled () {\n return this.instance.mailerEnabled\n }\n },\n created () {\n if (this.signedIn) {\n this.$router.push({ name: 'root' })\n }\n },\n props: {\n passwordResetRequested: {\n default: false,\n type: Boolean\n }\n },\n methods: {\n dismissError () {\n this.error = null\n },\n submit () {\n this.isPending = true\n const email = this.user.email\n const instance = this.instance.server\n\n passwordResetApi({ instance, email }).then(({ status }) => {\n this.isPending = false\n this.user.email = ''\n\n if (status === 204) {\n this.success = true\n this.error = null\n } else if (status === 429) {\n this.throttled = true\n this.error = this.$t('password_reset.too_many_requests')\n }\n }).catch(() => {\n this.isPending = false\n this.user.email = ''\n this.error = this.$t('general.generic_error')\n })\n }\n }\n}\n\nexport default passwordReset\n","import { reduce } from 'lodash'\n\nconst MASTODON_PASSWORD_RESET_URL = '/auth/password'\n\nconst resetPassword = ({ instance, email }) => {\n const params = { email }\n const query = reduce(params, (acc, v, k) => {\n const encoded = `${k}=${encodeURIComponent(v)}`\n return `${acc}&${encoded}`\n }, '')\n const url = `${instance}${MASTODON_PASSWORD_RESET_URL}?${query}`\n\n return window.fetch(url, {\n method: 'POST'\n })\n}\n\nexport default resetPassword\n","import { render } from \"./password_reset.vue?vue&type=template&id=3a677309\"\nimport script from \"./password_reset.js?vue&type=script&lang=js\"\nexport * from \"./password_reset.js?vue&type=script&lang=js\"\n\nimport \"./password_reset.vue?vue&type=style&index=0&id=3a677309&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.friend_requests') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <FollowRequestCard\n v-for=\"request in requests\"\n :key=\"request.id\"\n :user=\"request\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./follow_requests.js\"></script>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-request-card-content-container\">\n <button\n class=\"btn button-default\"\n @click=\"approveUser\"\n >\n {{ $t('user_card.approve') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"denyUser\"\n >\n {{ $t('user_card.deny') }}\n </button>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_request_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-request-card-content-container {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport { notificationsFromStore } from '../../services/notification_utils/notification_utils.js'\n\nconst FollowRequestCard = {\n props: ['user'],\n components: {\n BasicUserCard\n },\n methods: {\n findFollowRequestNotificationId () {\n const notif = notificationsFromStore(this.$store).find(\n (notif) => notif.from_profile.id === this.user.id && notif.type === 'follow_request'\n )\n return notif && notif.id\n },\n approveUser () {\n this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n\n const notifId = this.findFollowRequestNotificationId()\n this.$store.dispatch('markSingleNotificationAsSeen', { id: notifId })\n this.$store.dispatch('updateNotification', {\n id: notifId,\n updater: notification => {\n notification.type = 'follow'\n }\n })\n },\n denyUser () {\n const notifId = this.findFollowRequestNotificationId()\n this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n .then(() => {\n this.$store.dispatch('dismissNotificationLocal', { id: notifId })\n this.$store.dispatch('removeFollowRequest', this.user)\n })\n }\n }\n}\n\nexport default FollowRequestCard\n","import FollowRequestCard from '../follow_request_card/follow_request_card.vue'\n\nconst FollowRequests = {\n components: {\n FollowRequestCard\n },\n computed: {\n requests () {\n return this.$store.state.api.followRequests\n }\n }\n}\n\nexport default FollowRequests\n","import { render } from \"./follow_request_card.vue?vue&type=template&id=84be1288\"\nimport script from \"./follow_request_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_request_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_request_card.vue?vue&type=style&index=0&id=84be1288&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./follow_requests.vue?vue&type=template&id=62e19784\"\nimport script from \"./follow_requests.js?vue&type=script&lang=js\"\nexport * from \"./follow_requests.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import oauth from '../../services/new_api/oauth.js'\n\nconst oac = {\n props: ['code'],\n mounted () {\n if (this.code) {\n const { clientId, clientSecret } = this.$store.state.oauth\n\n oauth.getToken({\n clientId,\n clientSecret,\n instance: this.$store.state.instance.server,\n code: this.code\n }).then((result) => {\n this.$store.commit('setToken', result.access_token)\n this.$store.dispatch('loginUser', result.access_token)\n this.$router.push({ name: 'friends' })\n })\n }\n }\n}\n\nexport default oac\n","import { render } from \"./oauth_callback.vue?vue&type=template&id=f514124c\"\nimport script from \"./oauth_callback.js?vue&type=script&lang=js\"\nexport * from \"./oauth_callback.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <h1>...</h1>\n</template>\n\n<script src=\"./oauth_callback.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n <div class=\"panel-body\">\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow.js\"></script>\n\n<style lang=\"scss\">\n</style>\n","import apiService from '../../services/api/api.service.js'\nimport FollowCard from '../follow_card/follow_card.vue'\n\nconst WhoToFollow = {\n components: {\n FollowCard\n },\n data () {\n return {\n users: []\n }\n },\n mounted () {\n this.getWhoToFollow()\n },\n methods: {\n showWhoToFollow (reply) {\n reply.forEach((i, index) => {\n this.$store.state.api.backendInteractor.fetchUser({ id: i.acct })\n .then((externalUser) => {\n if (!externalUser.error) {\n this.$store.commit('addNewUsers', [externalUser])\n this.users.push(externalUser)\n }\n })\n })\n },\n getWhoToFollow () {\n const credentials = this.$store.state.users.currentUser.credentials\n if (credentials) {\n apiService.suggestions({ credentials })\n .then((reply) => {\n this.showWhoToFollow(reply)\n })\n }\n }\n }\n}\n\nexport default WhoToFollow\n","import { render } from \"./who_to_follow.vue?vue&type=template&id=4f8c3288\"\nimport script from \"./who_to_follow.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"column-inner\">\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <staff-panel />\n <terms-of-service-panel />\n <MRFTransparencyPanel />\n <features-panel v-if=\"showFeaturesPanel\" />\n </div>\n</template>\n\n<script src=\"./about.js\"></script>\n\n<style lang=\"scss\">\n</style>\n","<template>\n <div>\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"tos-content\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./terms_of_service_panel.js\"></script>\n\n<style lang=\"scss\">\n.tos-content {\n margin: 1em\n}\n</style>\n","const TermsOfServicePanel = {\n computed: {\n content () {\n return this.$store.state.instance.tos\n }\n }\n}\n\nexport default TermsOfServicePanel\n","import { render } from \"./terms_of_service_panel.vue?vue&type=template&id=d59fafc6\"\nimport script from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\nexport * from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\n\nimport \"./terms_of_service_panel.vue?vue&type=style&index=0&id=d59fafc6&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"staff-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.staff\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div\n v-for=\"group in groupedStaffAccounts\"\n :key=\"group.role\"\n class=\"staff-group\"\n >\n <h4>{{ $t('general.role.' + group.role) }}</h4>\n <basic-user-card\n v-for=\"user in group.users\"\n :key=\"user.screen_name\"\n :user=\"user\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./staff_panel.js\"></script>\n\n<style lang=\"scss\">\n\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n</style>\n","import map from 'lodash/map'\nimport groupBy from 'lodash/groupBy'\nimport { mapGetters, mapState } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst StaffPanel = {\n created () {\n const nicknames = this.$store.state.instance.staffAccounts\n nicknames.forEach(nickname => this.$store.dispatch('fetchUserIfMissing', nickname))\n },\n components: {\n BasicUserCard\n },\n computed: {\n groupedStaffAccounts () {\n const staffAccounts = map(this.staffAccounts, this.findUserByName).filter(_ => _)\n const groupedStaffAccounts = groupBy(staffAccounts, 'role')\n\n return [\n { role: 'admin', users: groupedStaffAccounts.admin },\n { role: 'moderator', users: groupedStaffAccounts.moderator }\n ].filter(group => group.users)\n },\n ...mapGetters([\n 'findUserByName'\n ]),\n ...mapState({\n staffAccounts: state => state.instance.staffAccounts\n })\n }\n}\n\nexport default StaffPanel\n","import { render } from \"./staff_panel.vue?vue&type=template&id=a0d4ae68\"\nimport script from \"./staff_panel.js?vue&type=script&lang=js\"\nexport * from \"./staff_panel.js?vue&type=script&lang=js\"\n\nimport \"./staff_panel.vue?vue&type=style&index=0&id=a0d4ae68&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"federationPolicy\"\n class=\"mrf-transparency-panel\"\n >\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.mrf.federation\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"mrf-section\">\n <h2>{{ $t(\"about.mrf.mrf_policies\") }}</h2>\n <p>{{ $t(\"about.mrf.mrf_policies_desc\") }}</p>\n\n <ul>\n <li\n v-for=\"policy in mrfPolicies\"\n :key=\"policy\"\n v-text=\"policy\"\n />\n </ul>\n\n <h2 v-if=\"hasInstanceSpecificPolicies\">\n {{ $t(\"about.mrf.simple.simple_policies\") }}\n </h2>\n\n <div v-if=\"acceptInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.accept\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.accept_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in acceptInstances\"\n :key=\"entry.instance + '_accept'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"rejectInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.reject\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.reject_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in rejectInstances\"\n :key=\"entry.instance + '_reject'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"quarantineInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.quarantine\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.quarantine_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in quarantineInstances\"\n :key=\"entry.instance + '_quarantine'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"ftlRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.ftl_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.ftl_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in ftlRemovalInstances\"\n :key=\"entry.instance + '_ftl_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaNsfwInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_nsfw\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_nsfw_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaNsfwInstances\"\n :key=\"entry.instance + '_media_nsfw'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaRemovalInstances\"\n :key=\"entry.instance + '_media_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <h2 v-if=\"hasKeywordPolicies\">\n {{ $t(\"about.mrf.keyword.keyword_policies\") }}\n </h2>\n\n <div v-if=\"keywordsFtlRemoval.length\">\n <h4>{{ $t(\"about.mrf.keyword.ftl_removal\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsFtlRemoval\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReject.length\">\n <h4>{{ $t(\"about.mrf.keyword.reject\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReject\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReplace.length\">\n <h4>{{ $t(\"about.mrf.keyword.replace\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReplace\"\n :key=\"keyword\"\n >\n {{ keyword.pattern }}\n {{ $t(\"about.mrf.keyword.is_replaced_by\") }}\n {{ keyword.replacement }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./mrf_transparency_panel.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import './mrf_transparency_panel.scss';\n</style>\n","import { mapState } from 'vuex'\nimport { get } from 'lodash'\n\n/**\n * This is for backwards compatibility. We originally didn't recieve\n * extra info like a reason why an instance was rejected/quarantined/etc.\n * Because we didn't want to break backwards compatibility it was decided\n * to add an extra \"info\" key.\n */\nconst toInstanceReasonObject = (instances, info, key) => {\n return instances.map(instance => {\n if (info[key] && info[key][instance] && info[key][instance].reason) {\n return { instance, reason: info[key][instance].reason }\n }\n return { instance, reason: '' }\n })\n}\n\nconst MRFTransparencyPanel = {\n computed: {\n ...mapState({\n federationPolicy: state => get(state, 'instance.federationPolicy'),\n mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []),\n quarantineInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.quarantined_instances', []),\n get(state, 'instance.federationPolicy.quarantined_instances_info', []),\n 'quarantined_instances'\n ),\n acceptInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.accept', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'accept'\n ),\n rejectInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.reject', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'reject'\n ),\n ftlRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'federated_timeline_removal'\n ),\n mediaNsfwInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_nsfw'\n ),\n mediaRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_removal'\n ),\n keywordsFtlRemoval: state => get(state, 'instance.federationPolicy.mrf_keyword.federated_timeline_removal', []),\n keywordsReject: state => get(state, 'instance.federationPolicy.mrf_keyword.reject', []),\n keywordsReplace: state => get(state, 'instance.federationPolicy.mrf_keyword.replace', [])\n }),\n hasInstanceSpecificPolicies () {\n return this.quarantineInstances.length ||\n this.acceptInstances.length ||\n this.rejectInstances.length ||\n this.ftlRemovalInstances.length ||\n this.mediaNsfwInstances.length ||\n this.mediaRemovalInstances.length\n },\n hasKeywordPolicies () {\n return this.keywordsFtlRemoval.length ||\n this.keywordsReject.length ||\n this.keywordsReplace.length\n }\n }\n}\n\nexport default MRFTransparencyPanel\n","import InstanceSpecificPanel from '../instance_specific_panel/instance_specific_panel.vue'\nimport FeaturesPanel from '../features_panel/features_panel.vue'\nimport TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'\nimport StaffPanel from '../staff_panel/staff_panel.vue'\nimport MRFTransparencyPanel from '../mrf_transparency_panel/mrf_transparency_panel.vue'\n\nconst About = {\n components: {\n InstanceSpecificPanel,\n FeaturesPanel,\n TermsOfServicePanel,\n StaffPanel,\n MRFTransparencyPanel\n },\n computed: {\n showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n showInstanceSpecificPanel () {\n return this.$store.state.instance.showInstanceSpecificPanel &&\n !this.$store.getters.mergedConfig.hideISP &&\n this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default About\n","import { render } from \"./mrf_transparency_panel.vue?vue&type=template&id=7f2ca562\"\nimport script from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\nexport * from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\n\nimport \"./mrf_transparency_panel.vue?vue&type=style&index=0&id=7f2ca562&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./about.vue?vue&type=template&id=1fedeaa2\"\nimport script from \"./about.js?vue&type=script&lang=js\"\nexport * from \"./about.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('remote_user_resolver.remote_user_resolver') }}\n </div>\n <div class=\"panel-body\">\n <p>\n {{ $t('remote_user_resolver.searching_for') }} @{{ $route.params.username }}@{{ $route.params.hostname }}\n </p>\n <p v-if=\"error\">\n {{ $t('remote_user_resolver.error') }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./remote_user_resolver.js\"></script>\n\n<style lang=\"scss\">\n</style>\n","const RemoteUserResolver = {\n data: () => ({\n error: false\n }),\n mounted () {\n this.redirect()\n },\n methods: {\n redirect () {\n const acct = this.$route.params.username + '@' + this.$route.params.hostname\n this.$store.state.api.backendInteractor.fetchUser({ id: acct })\n .then((externalUser) => {\n if (externalUser.error) {\n this.error = true\n } else {\n this.$store.commit('addNewUsers', [externalUser])\n const id = externalUser.id\n this.$router.replace({\n name: 'external-user-profile',\n params: { id }\n })\n }\n })\n .catch(() => {\n this.error = true\n })\n }\n }\n}\n\nexport default RemoteUserResolver\n","import { render } from \"./remote_user_resolver.vue?vue&type=template&id=198402c4\"\nimport script from \"./remote_user_resolver.js?vue&type=script&lang=js\"\nexport * from \"./remote_user_resolver.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"Lists panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('lists.lists') }}\n </div>\n <router-link\n :to=\"{ name: 'lists-new' }\"\n class=\"button-default btn new-list-button\"\n >\n {{ $t(\"lists.new\") }}\n </router-link>\n </div>\n <div class=\"panel-body\">\n <ListsCard\n v-for=\"list in lists.slice().reverse()\"\n :key=\"list\"\n :list=\"list\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./lists.js\"></script>\n\n<style lang=\"scss\">\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n</style>\n","<template>\n <div class=\"list-card\">\n <router-link\n :to=\"{ name: 'lists-timeline', params: { id: list.id } }\"\n class=\"list-name\"\n >\n {{ list.title }}\n </router-link>\n <router-link\n :to=\"{ name: 'lists-edit', params: { id: list.id } }\"\n class=\"button-list-edit\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"ellipsis-h\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./lists_card.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.list-card {\n display: flex;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n\n.list-name {\n flex-grow: 1;\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisH\n)\n\nconst ListsCard = {\n props: [\n 'list'\n ]\n}\n\nexport default ListsCard\n","import ListsCard from '../lists_card/lists_card.vue'\n\nconst Lists = {\n data () {\n return {\n isNew: false\n }\n },\n components: {\n ListsCard\n },\n computed: {\n lists () {\n return this.$store.state.lists.allLists\n }\n },\n methods: {\n cancelNewList () {\n this.isNew = false\n },\n newList () {\n this.isNew = true\n }\n }\n}\n\nexport default Lists\n","import { render } from \"./lists_card.vue?vue&type=template&id=88e30e48\"\nimport script from \"./lists_card.js?vue&type=script&lang=js\"\nexport * from \"./lists_card.js?vue&type=script&lang=js\"\n\nimport \"./lists_card.vue?vue&type=style&index=0&id=88e30e48&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./lists.vue?vue&type=template&id=273aca3d\"\nimport script from \"./lists.js?vue&type=script&lang=js\"\nexport * from \"./lists.js?vue&type=script&lang=js\"\n\nimport \"./lists.vue?vue&type=style&index=0&id=273aca3d&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\nconst ListsTimeline = {\n data () {\n return {\n listId: null\n }\n },\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.list }\n },\n watch: {\n $route: function (route) {\n if (route.name === 'lists-timeline' && route.params.id !== this.listId) {\n this.listId = route.params.id\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n }\n }\n },\n created () {\n this.listId = this.$route.params.id\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n }\n}\n\nexport default ListsTimeline\n","import { render } from \"./lists_timeline.vue?vue&type=template&id=464584d8\"\nimport script from \"./lists_timeline.js?vue&type=script&lang=js\"\nexport * from \"./lists_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n title=\"list.name\"\n :timeline=\"timeline\"\n :list-id=\"listId\"\n timeline-name=\"list\"\n />\n</template>\n\n<script src=\"./lists_timeline.js\"></script>\n","<template>\n <div class=\"panel-default panel ListEdit\">\n <div\n ref=\"header\"\n class=\"panel-heading list-edit-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"$router.back\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title\">\n <i18n-t\n v-if=\"id\"\n keypath=\"lists.editing_list\"\n >\n <template #listTitle>\n {{ title }}\n </template>\n </i18n-t>\n <i18n-t\n v-else\n keypath=\"lists.creating_list\"\n />\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"input-wrap\">\n <label for=\"list-edit-title\">{{ $t('lists.title') }}</label>\n {{ ' ' }}\n <input\n id=\"list-edit-title\"\n ref=\"title\"\n v-model=\"titleDraft\"\n >\n <button\n v-if=\"id\"\n class=\"btn button-default follow-button\"\n @click=\"updateListTitle\"\n >\n {{ $t('lists.update_title') }}\n </button>\n </div>\n <tab-switcher\n class=\"list-member-management\"\n :scrollable-tabs=\"true\"\n >\n <div\n v-if=\"id || addedUserIds.size > 0\"\n :label=\"$t('lists.manage_members')\"\n class=\"members-list\"\n >\n <div class=\"users-list\">\n <div\n v-for=\"user in membersUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <button\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n\n <div\n class=\"search-list\"\n :label=\"$t('lists.add_members')\"\n >\n <ListsUserSearch\n @results=\"onSearchResults\"\n @loading=\"onSearchLoading\"\n @loadingDone=\"onSearchLoadingDone\"\n />\n <div\n v-if=\"searchLoading\"\n class=\"loading\"\n >\n <PanelLoading />\n </div>\n <div\n v-else\n class=\"users-list\"\n >\n <div\n v-for=\"user in searchUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <span\n v-if=\"membersUserIds.includes(user.id)\"\n >\n {{ $t('lists.is_in_list') }}\n </span>\n <button\n v-if=\"!membersUserIds.includes(user.id)\"\n class=\"btn button-default follow-button\"\n @click=\"toggleAddFromSearch(user)\"\n >\n {{ isAdded(user) ? $t('general.undo') : $t('lists.add_to_list') }}\n </button>\n <button\n v-else\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n </tab-switcher>\n </div>\n <div class=\"panel-footer\">\n <span class=\"spacer\" />\n <button\n v-if=\"!id\"\n class=\"btn button-default footer-button\"\n @click=\"createList\"\n >\n {{ $t('lists.create') }}\n </button>\n <button\n v-else-if=\"!reallyDelete\"\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = true\"\n >\n {{ $t('lists.delete') }}\n </button>\n <template v-else>\n {{ $t('lists.really_delete') }}\n <button\n class=\"btn button-default footer-button\"\n @click=\"deleteList\"\n >\n {{ $t('general.yes') }}\n </button>\n <button\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = false\"\n >\n {{ $t('general.no') }}\n </button>\n </template>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_edit.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"ListsUserSearch\">\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n :placeholder=\"$t('lists.search')\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"input-wrap\">\n <Checkbox\n v-model=\"followingOnly\"\n @change=\"onInput\"\n >\n {{ $t('lists.following_only') }}\n </Checkbox>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_user_search.js\"></script>\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce } from 'lodash'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsUserSearch = {\n components: {\n Checkbox\n },\n emits: ['loading', 'loadingDone', 'results'],\n data () {\n return {\n loading: false,\n query: '',\n followingOnly: true\n }\n },\n methods: {\n onInput: debounce(function () {\n this.search(this.query)\n }, 2000),\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$emit('loading')\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts', following: this.followingOnly })\n .then(data => {\n this.$emit('results', data.accounts.map(a => a.id))\n })\n .finally(() => {\n this.loading = false\n this.$emit('loadingDone')\n })\n }\n }\n}\n\nexport default ListsUserSearch\n","import { render } from \"./lists_user_search.vue?vue&type=template&id=1ec327b3\"\nimport script from \"./lists_user_search.js?vue&type=script&lang=js\"\nexport * from \"./lists_user_search.js?vue&type=script&lang=js\"\n\nimport \"./lists_user_search.vue?vue&type=style&index=0&id=1ec327b3&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport ListsUserSearch from '../lists_user_search/lists_user_search.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsNew = {\n components: {\n BasicUserCard,\n UserAvatar,\n ListsUserSearch,\n TabSwitcher,\n PanelLoading\n },\n data () {\n return {\n title: '',\n titleDraft: '',\n membersUserIds: [],\n removedUserIds: new Set([]), // users we added for members, to undo\n searchUserIds: [],\n addedUserIds: new Set([]), // users we added from search, to undo\n searchLoading: false,\n reallyDelete: false\n }\n },\n created () {\n if (!this.id) return\n this.$store.dispatch('fetchList', { listId: this.id })\n .then(() => {\n this.title = this.findListTitle(this.id)\n this.titleDraft = this.title\n })\n this.$store.dispatch('fetchListAccounts', { listId: this.id })\n .then(() => {\n this.membersUserIds = this.findListAccounts(this.id)\n this.membersUserIds.forEach(userId => {\n this.$store.dispatch('fetchUserIfMissing', userId)\n })\n })\n },\n computed: {\n id () {\n return this.$route.params.id\n },\n membersUsers () {\n return [...this.membersUserIds, ...this.addedUserIds]\n .map(userId => this.findUser(userId)).filter(user => user)\n },\n searchUsers () {\n return this.searchUserIds.map(userId => this.findUser(userId)).filter(user => user)\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['findUser', 'findListTitle', 'findListAccounts'])\n },\n methods: {\n onInput () {\n this.search(this.query)\n },\n toggleRemoveMember (user) {\n if (this.removedUserIds.has(user.id)) {\n this.id && this.addUser(user)\n this.removedUserIds.delete(user.id)\n } else {\n this.id && this.removeUser(user.id)\n this.removedUserIds.add(user.id)\n }\n },\n toggleAddFromSearch (user) {\n if (this.addedUserIds.has(user.id)) {\n this.id && this.removeUser(user.id)\n this.addedUserIds.delete(user.id)\n } else {\n this.id && this.addUser(user)\n this.addedUserIds.add(user.id)\n }\n },\n isRemoved (user) {\n return this.removedUserIds.has(user.id)\n },\n isAdded (user) {\n return this.addedUserIds.has(user.id)\n },\n addUser (user) {\n this.$store.dispatch('addListAccount', { accountId: this.user.id, listId: this.id })\n },\n removeUser (userId) {\n this.$store.dispatch('removeListAccount', { accountId: this.user.id, listId: this.id })\n },\n onSearchLoading (results) {\n this.searchLoading = true\n },\n onSearchLoadingDone (results) {\n this.searchLoading = false\n },\n onSearchResults (results) {\n this.searchLoading = false\n this.searchUserIds = results\n },\n updateListTitle () {\n this.$store.dispatch('setList', { listId: this.id, title: this.titleDraft })\n .then(() => {\n this.title = this.findListTitle(this.id)\n })\n },\n createList () {\n this.$store.dispatch('createList', { title: this.titleDraft })\n .then((list) => {\n return this\n .$store\n .dispatch('setListAccounts', { listId: list.id, accountIds: [...this.addedUserIds] })\n .then(() => list.id)\n })\n .then((listId) => {\n this.$router.push({ name: 'lists-timeline', params: { id: listId } })\n })\n .catch((e) => {\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'lists.error',\n messageArgs: [e.message],\n level: 'error'\n })\n })\n },\n deleteList () {\n this.$store.dispatch('deleteList', { listId: this.id })\n this.$router.push({ name: 'lists' })\n }\n }\n}\n\nexport default ListsNew\n","import { render } from \"./lists_edit.vue?vue&type=template&id=41e8e8ef\"\nimport script from \"./lists_edit.js?vue&type=script&lang=js\"\nexport * from \"./lists_edit.js?vue&type=script&lang=js\"\n\nimport \"./lists_edit.vue?vue&type=style&index=0&id=41e8e8ef&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default announcements-page\">\n <div class=\"panel-heading\">\n <span>\n {{ $t('announcements.page_header') }}\n </span>\n </div>\n <div class=\"panel-body\">\n <section\n v-if=\"currentUser && currentUser.role === 'admin'\"\n >\n <div class=\"post-form\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.post_form_header') }}</h4>\n </div>\n <div class=\"body\">\n <announcement-editor\n :announcement=\"newAnnouncement\"\n :disabled=\"posting\"\n />\n </div>\n <div class=\"footer\">\n <button\n class=\"btn button-default post-button\"\n :disabled=\"posting\"\n @click.prevent=\"postAnnouncement\"\n >\n {{ $t('announcements.post_action') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('announcements.post_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </section>\n <section\n v-for=\"announcement in announcements\"\n :key=\"announcement.id\"\n >\n <announcement\n :announcement=\"announcement\"\n />\n </section>\n </div>\n </div>\n</template>\n\n<script src=\"./announcements_page.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading, .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.title') }}</h4>\n </div>\n <div class=\"body\">\n <rich-content\n v-if=\"!editing\"\n :html=\"content\"\n :emoji=\"announcement.emojis\"\n :handle-links=\"true\"\n />\n <announcement-editor\n v-else\n :announcement=\"editedAnnouncement\"\n />\n </div>\n <div class=\"footer\">\n <div\n v-if=\"!editing\"\n class=\"times\"\n >\n <span v-if=\"publishedAt\">\n {{ $t('announcements.published_time_display', { time: publishedAt }) }}\n </span>\n <span v-if=\"startsAt\">\n {{ $t('announcements.start_time_display', { time: startsAt }) }}\n </span>\n <span v-if=\"endsAt\">\n {{ $t('announcements.end_time_display', { time: endsAt }) }}\n </span>\n </div>\n <div\n v-if=\"!editing\"\n class=\"actions\"\n >\n <button\n v-if=\"currentUser\"\n class=\"btn button-default\"\n :class=\"{ toggled: isRead }\"\n :disabled=\"inactive\"\n :title=\"inactive ? $t('announcements.inactive_message') : ''\"\n @click=\"markAsRead\"\n >\n {{ $t('announcements.mark_as_read_action') }}\n </button>\n <button\n v-if=\"currentUser && currentUser.role === 'admin'\"\n class=\"btn button-default\"\n @click=\"enterEditMode\"\n >\n {{ $t('announcements.edit_action') }}\n </button>\n <button\n v-if=\"currentUser && currentUser.role === 'admin'\"\n class=\"btn button-default\"\n @click=\"deleteAnnouncement\"\n >\n {{ $t('announcements.delete_action') }}\n </button>\n </div>\n <div\n v-else\n class=\"actions\"\n >\n <button\n class=\"btn button-default\"\n @click=\"submitEdit\"\n >\n {{ $t('announcements.submit_edit_action') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"cancelEdit\"\n >\n {{ $t('announcements.cancel_edit_action') }}\n </button>\n <div\n v-if=\"editing && editError\"\n class=\"alert error\"\n >\n {{ $t('announcements.edit_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./announcement.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcement {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading, .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement-editor\">\n <textarea\n ref=\"textarea\"\n v-model=\"announcement.content\"\n class=\"post-textarea\"\n rows=\"1\"\n cols=\"1\"\n :placeholder=\"$t('announcements.post_placeholder')\"\n :disabled=\"disabled\"\n />\n <span class=\"announcement-metadata\">\n <label for=\"announcement-start-time\">{{ $t('announcements.start_time_prompt') }}</label>\n <input\n id=\"announcement-start-time\"\n v-model=\"announcement.startsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <label for=\"announcement-end-time\">{{ $t('announcements.end_time_prompt') }}</label>\n <input\n id=\"announcement-end-time\"\n v-model=\"announcement.endsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <Checkbox\n id=\"announcement-all-day\"\n v-model=\"announcement.allDay\"\n :disabled=\"disabled\"\n />\n <label for=\"announcement-all-day\">{{ $t('announcements.all_day_prompt') }}</label>\n </span>\n </div>\n</template>\n\n<script src=\"./announcement_editor.js\"></script>\n\n<style lang=\"scss\">\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n</style>\n","import Checkbox from '../checkbox/checkbox.vue'\n\nconst AnnouncementEditor = {\n components: {\n Checkbox\n },\n props: {\n announcement: Object,\n disabled: Boolean\n }\n}\n\nexport default AnnouncementEditor\n","import { render } from \"./announcement_editor.vue?vue&type=template&id=357f0d7c\"\nimport script from \"./announcement_editor.js?vue&type=script&lang=js\"\nexport * from \"./announcement_editor.js?vue&type=script&lang=js\"\n\nimport \"./announcement_editor.vue?vue&type=style&index=0&id=357f0d7c&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\nimport RichContent from '../rich_content/rich_content.jsx'\nimport localeService from '../../services/locale/locale.service.js'\n\nconst Announcement = {\n components: {\n AnnouncementEditor,\n RichContent\n },\n data () {\n return {\n editing: false,\n editedAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: undefined\n },\n editError: ''\n }\n },\n props: {\n announcement: Object\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n content () {\n return this.announcement.content\n },\n isRead () {\n return this.announcement.read\n },\n publishedAt () {\n const time = this.announcement.published_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n startsAt () {\n const time = this.announcement.starts_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n endsAt () {\n const time = this.announcement.ends_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n inactive () {\n return this.announcement.inactive\n }\n },\n methods: {\n markAsRead () {\n if (!this.isRead) {\n return this.$store.dispatch('markAnnouncementAsRead', this.announcement.id)\n }\n },\n deleteAnnouncement () {\n return this.$store.dispatch('deleteAnnouncement', this.announcement.id)\n },\n formatTimeOrDate (time, locale) {\n const d = new Date(time)\n return this.announcement.all_day ? d.toLocaleDateString(locale) : d.toLocaleString(locale)\n },\n enterEditMode () {\n this.editedAnnouncement.content = this.announcement.pleroma.raw_content\n this.editedAnnouncement.startsAt = this.announcement.starts_at\n this.editedAnnouncement.endsAt = this.announcement.ends_at\n this.editedAnnouncement.allDay = this.announcement.all_day\n this.editing = true\n },\n submitEdit () {\n this.$store.dispatch('editAnnouncement', {\n id: this.announcement.id,\n ...this.editedAnnouncement\n })\n .then(() => {\n this.editing = false\n })\n .catch(error => {\n this.editError = error.error\n })\n },\n cancelEdit () {\n this.editing = false\n },\n clearError () {\n this.editError = undefined\n }\n }\n}\n\nexport default Announcement\n","import { mapState } from 'vuex'\nimport Announcement from '../announcement/announcement.vue'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\n\nconst AnnouncementsPage = {\n components: {\n Announcement,\n AnnouncementEditor\n },\n data () {\n return {\n newAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: false\n },\n posting: false,\n error: undefined\n }\n },\n mounted () {\n this.$store.dispatch('fetchAnnouncements')\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n announcements () {\n return this.$store.state.announcements.announcements\n }\n },\n methods: {\n postAnnouncement () {\n this.posting = true\n this.$store.dispatch('postAnnouncement', this.newAnnouncement)\n .then(() => {\n this.newAnnouncement.content = ''\n this.startsAt = undefined\n this.endsAt = undefined\n })\n .catch(error => {\n this.error = error.error\n })\n .finally(() => {\n this.posting = false\n })\n },\n clearError () {\n this.error = undefined\n }\n }\n}\n\nexport default AnnouncementsPage\n","import { render } from \"./announcement.vue?vue&type=template&id=642035b3\"\nimport script from \"./announcement.js?vue&type=script&lang=js\"\nexport * from \"./announcement.js?vue&type=script&lang=js\"\n\nimport \"./announcement.vue?vue&type=style&index=0&id=642035b3&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./announcements_page.vue?vue&type=template&id=6f373623\"\nimport script from \"./announcements_page.js?vue&type=script&lang=js\"\nexport * from \"./announcements_page.js?vue&type=script&lang=js\"\n\nimport \"./announcements_page.vue?vue&type=style&index=0&id=6f373623&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import PublicTimeline from 'components/public_timeline/public_timeline.vue'\nimport PublicAndExternalTimeline from 'components/public_and_external_timeline/public_and_external_timeline.vue'\nimport FriendsTimeline from 'components/friends_timeline/friends_timeline.vue'\nimport TagTimeline from 'components/tag_timeline/tag_timeline.vue'\nimport BookmarkTimeline from 'components/bookmark_timeline/bookmark_timeline.vue'\nimport ConversationPage from 'components/conversation-page/conversation-page.vue'\nimport Interactions from 'components/interactions/interactions.vue'\nimport DMs from 'components/dm_timeline/dm_timeline.vue'\nimport ChatList from 'components/chat_list/chat_list.vue'\nimport Chat from 'components/chat/chat.vue'\nimport UserProfile from 'components/user_profile/user_profile.vue'\nimport Search from 'components/search/search.vue'\nimport Registration from 'components/registration/registration.vue'\nimport PasswordReset from 'components/password_reset/password_reset.vue'\nimport FollowRequests from 'components/follow_requests/follow_requests.vue'\nimport OAuthCallback from 'components/oauth_callback/oauth_callback.vue'\nimport Notifications from 'components/notifications/notifications.vue'\nimport AuthForm from 'components/auth_form/auth_form.js'\nimport ShoutPanel from 'components/shout_panel/shout_panel.vue'\nimport WhoToFollow from 'components/who_to_follow/who_to_follow.vue'\nimport About from 'components/about/about.vue'\nimport RemoteUserResolver from 'components/remote_user_resolver/remote_user_resolver.vue'\nimport Lists from 'components/lists/lists.vue'\nimport ListsTimeline from 'components/lists_timeline/lists_timeline.vue'\nimport ListsEdit from 'components/lists_edit/lists_edit.vue'\nimport NavPanel from 'src/components/nav_panel/nav_panel.vue'\nimport AnnouncementsPage from 'components/announcements_page/announcements_page.vue'\n\nexport default (store) => {\n const validateAuthenticatedRoute = (to, from, next) => {\n if (store.state.users.currentUser) {\n next()\n } else {\n next(store.state.instance.redirectRootNoLogin || '/main/all')\n }\n }\n\n let routes = [\n {\n name: 'root',\n path: '/',\n redirect: _to => {\n return (store.state.users.currentUser\n ? store.state.instance.redirectRootLogin\n : store.state.instance.redirectRootNoLogin) || '/main/all'\n }\n },\n { name: 'public-external-timeline', path: '/main/all', component: PublicAndExternalTimeline },\n { name: 'public-timeline', path: '/main/public', component: PublicTimeline },\n { name: 'friends', path: '/main/friends', component: FriendsTimeline, beforeEnter: validateAuthenticatedRoute },\n { name: 'tag-timeline', path: '/tag/:tag', component: TagTimeline },\n { name: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },\n { name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },\n {\n name: 'remote-user-profile-acct',\n path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)',\n component: RemoteUserResolver,\n beforeEnter: validateAuthenticatedRoute\n },\n {\n name: 'remote-user-profile',\n path: '/remote-users/:hostname/:username',\n component: RemoteUserResolver,\n beforeEnter: validateAuthenticatedRoute\n },\n { name: 'external-user-profile', path: '/users/$:id', component: UserProfile },\n { name: 'interactions', path: '/users/:username/interactions', component: Interactions, beforeEnter: validateAuthenticatedRoute },\n { name: 'dms', path: '/users/:username/dms', component: DMs, beforeEnter: validateAuthenticatedRoute },\n { name: 'registration', path: '/registration', component: Registration },\n { name: 'password-reset', path: '/password-reset', component: PasswordReset, props: true },\n { name: 'registration-token', path: '/registration/:token', component: Registration },\n { name: 'friend-requests', path: '/friend-requests', component: FollowRequests, beforeEnter: validateAuthenticatedRoute },\n { name: 'notifications', path: '/:username/notifications', component: Notifications, props: () => ({ disableTeleport: true }), beforeEnter: validateAuthenticatedRoute },\n { name: 'login', path: '/login', component: AuthForm },\n { name: 'shout-panel', path: '/shout-panel', component: ShoutPanel, props: () => ({ floating: false }) },\n { name: 'oauth-callback', path: '/oauth-callback', component: OAuthCallback, props: (route) => ({ code: route.query.code }) },\n { name: 'search', path: '/search', component: Search, props: (route) => ({ query: route.query.query }) },\n { name: 'who-to-follow', path: '/who-to-follow', component: WhoToFollow, beforeEnter: validateAuthenticatedRoute },\n { name: 'about', path: '/about', component: About },\n { name: 'announcements', path: '/announcements', component: AnnouncementsPage },\n { name: 'user-profile', path: '/users/:name', component: UserProfile },\n { name: 'legacy-user-profile', path: '/:name', component: UserProfile },\n { name: 'lists', path: '/lists', component: Lists },\n { name: 'lists-timeline', path: '/lists/:id', component: ListsTimeline },\n { name: 'lists-edit', path: '/lists/:id/edit', component: ListsEdit },\n { name: 'lists-new', path: '/lists/new', component: ListsEdit },\n { name: 'edit-navigation', path: '/nav-edit', component: NavPanel, props: () => ({ forceExpand: true, forceEditMode: true }), beforeEnter: validateAuthenticatedRoute }\n ]\n\n if (store.state.instance.pleromaChatMessagesAvailable) {\n routes = routes.concat([\n { name: 'chat', path: '/users/:username/chats/:recipient_id', component: Chat, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute },\n { name: 'chats', path: '/users/:username/chats', component: ChatList, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute }\n ])\n }\n\n return routes\n}\n","import * as bodyScrollLock from 'body-scroll-lock'\n\nlet previousNavPaddingRight\nlet previousAppBgWrapperRight\nconst lockerEls = new Set([])\n\nconst disableBodyScroll = (el) => {\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth\n bodyScrollLock.disableBodyScroll(el, {\n reserveScrollBarGap: true\n })\n lockerEls.add(el)\n setTimeout(() => {\n if (lockerEls.size <= 1) {\n // If previousNavPaddingRight is already set, don't set it again.\n if (previousNavPaddingRight === undefined) {\n const navEl = document.getElementById('nav')\n previousNavPaddingRight = window.getComputedStyle(navEl).getPropertyValue('padding-right')\n navEl.style.paddingRight = previousNavPaddingRight ? `calc(${previousNavPaddingRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n }\n // If previousAppBgWrapeprRight is already set, don't set it again.\n if (previousAppBgWrapperRight === undefined) {\n const appBgWrapperEl = document.getElementById('app_bg_wrapper')\n previousAppBgWrapperRight = window.getComputedStyle(appBgWrapperEl).getPropertyValue('right')\n appBgWrapperEl.style.right = previousAppBgWrapperRight ? `calc(${previousAppBgWrapperRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n }\n document.body.classList.add('scroll-locked')\n }\n })\n}\n\nconst enableBodyScroll = (el) => {\n lockerEls.delete(el)\n setTimeout(() => {\n if (lockerEls.size === 0) {\n if (previousNavPaddingRight !== undefined) {\n document.getElementById('nav').style.paddingRight = previousNavPaddingRight\n // Restore previousNavPaddingRight to undefined so disableBodyScroll knows it can be set again.\n previousNavPaddingRight = undefined\n }\n if (previousAppBgWrapperRight !== undefined) {\n document.getElementById('app_bg_wrapper').style.right = previousAppBgWrapperRight\n // Restore previousAppBgWrapperRight to undefined so disableBodyScroll knows it can be set again.\n previousAppBgWrapperRight = undefined\n }\n document.body.classList.remove('scroll-locked')\n }\n })\n bodyScrollLock.enableBodyScroll(el)\n}\n\nconst directive = {\n mounted: (el, binding) => {\n if (binding.value) {\n disableBodyScroll(el)\n }\n },\n updated: (el, binding) => {\n if (binding.oldValue === binding.value) {\n return\n }\n\n if (binding.value) {\n disableBodyScroll(el)\n } else {\n enableBodyScroll(el)\n }\n },\n unmounted: (el) => {\n enableBodyScroll(el)\n }\n}\n\nexport default (Vue) => {\n Vue.directive('body-scroll-lock', directive)\n}\n","import { createApp } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport vClickOutside from 'click-outside-vue3'\n\nimport { FontAwesomeIcon, FontAwesomeLayers } from '@fortawesome/vue-fontawesome'\n\nimport App from '../App.vue'\nimport routes from './routes'\nimport VBodyScrollLock from 'src/directives/body_scroll_lock'\n\nimport { windowWidth, windowHeight } from '../services/window_utils/window_utils'\nimport { getOrCreateApp, getClientToken } from '../services/new_api/oauth.js'\nimport backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport { applyTheme, applyConfig } from '../services/style_setter/style_setter.js'\nimport FaviconService from '../services/favicon_service/favicon_service.js'\n\nlet staticInitialResults = null\n\nconst parsedInitialResults = () => {\n if (!document.getElementById('initial-results')) {\n return null\n }\n if (!staticInitialResults) {\n staticInitialResults = JSON.parse(document.getElementById('initial-results').textContent)\n }\n return staticInitialResults\n}\n\nconst decodeUTF8Base64 = (data) => {\n const rawData = atob(data)\n const array = Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n const text = new TextDecoder().decode(array)\n return text\n}\n\nconst preloadFetch = async (request) => {\n const data = parsedInitialResults()\n if (!data || !data[request]) {\n return window.fetch(request)\n }\n const decoded = decodeUTF8Base64(data[request])\n const requestData = JSON.parse(decoded)\n return {\n ok: true,\n json: () => requestData,\n text: () => requestData\n }\n}\n\nconst getInstanceConfig = async ({ store }) => {\n try {\n const res = await preloadFetch('/api/v1/instance')\n if (res.ok) {\n const data = await res.json()\n const textlimit = data.max_toot_chars\n const vapidPublicKey = data.pleroma.vapid_public_key\n\n store.dispatch('setInstanceOption', { name: 'textlimit', value: textlimit })\n store.dispatch('setInstanceOption', { name: 'accountApprovalRequired', value: data.approval_required })\n\n if (vapidPublicKey) {\n store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })\n }\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load instance config, potentially fatal')\n console.error(error)\n }\n}\n\nconst getBackendProvidedConfig = async ({ store }) => {\n try {\n const res = await window.fetch('/api/pleroma/frontend_configurations')\n if (res.ok) {\n const data = await res.json()\n return data.pleroma_fe\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load backend-provided frontend config, potentially fatal')\n console.error(error)\n }\n}\n\nconst getStaticConfig = async () => {\n try {\n const res = await window.fetch('/static/config.json')\n if (res.ok) {\n return res.json()\n } else {\n throw (res)\n }\n } catch (error) {\n console.warn('Failed to load static/config.json, continuing without it.')\n console.warn(error)\n return {}\n }\n}\n\nconst setSettings = async ({ apiConfig, staticConfig, store }) => {\n const overrides = window.___pleromafe_dev_overrides || {}\n const env = window.___pleromafe_mode.NODE_ENV\n\n // This takes static config and overrides properties that are present in apiConfig\n let config = {}\n if (overrides.staticConfigPreference && env === 'development') {\n console.warn('OVERRIDING API CONFIG WITH STATIC CONFIG')\n config = Object.assign({}, apiConfig, staticConfig)\n } else {\n config = Object.assign({}, staticConfig, apiConfig)\n }\n\n const copyInstanceOption = (name) => {\n store.dispatch('setInstanceOption', { name, value: config[name] })\n }\n\n copyInstanceOption('nsfwCensorImage')\n copyInstanceOption('background')\n copyInstanceOption('hidePostStats')\n copyInstanceOption('hideBotIndication')\n copyInstanceOption('hideUserStats')\n copyInstanceOption('hideFilteredStatuses')\n copyInstanceOption('logo')\n\n store.dispatch('setInstanceOption', {\n name: 'logoMask',\n value: typeof config.logoMask === 'undefined'\n ? true\n : config.logoMask\n })\n\n store.dispatch('setInstanceOption', {\n name: 'logoMargin',\n value: typeof config.logoMargin === 'undefined'\n ? 0\n : config.logoMargin\n })\n copyInstanceOption('logoLeft')\n store.commit('authFlow/setInitialStrategy', config.loginMethod)\n\n copyInstanceOption('redirectRootNoLogin')\n copyInstanceOption('redirectRootLogin')\n copyInstanceOption('showInstanceSpecificPanel')\n copyInstanceOption('minimalScopesMode')\n copyInstanceOption('hideMutedPosts')\n copyInstanceOption('collapseMessageWithSubject')\n copyInstanceOption('scopeCopy')\n copyInstanceOption('subjectLineBehavior')\n copyInstanceOption('postContentType')\n copyInstanceOption('alwaysShowSubjectInput')\n copyInstanceOption('showFeaturesPanel')\n copyInstanceOption('hideSitename')\n copyInstanceOption('sidebarRight')\n\n return store.dispatch('setTheme', config.theme)\n}\n\nconst getTOS = async ({ store }) => {\n try {\n const res = await window.fetch('/static/terms-of-service.html')\n if (res.ok) {\n const html = await res.text()\n store.dispatch('setInstanceOption', { name: 'tos', value: html })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load TOS\")\n console.warn(e)\n }\n}\n\nconst getInstancePanel = async ({ store }) => {\n try {\n const res = await preloadFetch('/instance/panel.html')\n if (res.ok) {\n const html = await res.text()\n store.dispatch('setInstanceOption', { name: 'instanceSpecificPanelContent', value: html })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load instance panel\")\n console.warn(e)\n }\n}\n\nconst getStickers = async ({ store }) => {\n try {\n const res = await window.fetch('/static/stickers.json')\n if (res.ok) {\n const values = await res.json()\n const stickers = (await Promise.all(\n Object.entries(values).map(async ([name, path]) => {\n const resPack = await window.fetch(path + 'pack.json')\n let meta = {}\n if (resPack.ok) {\n meta = await resPack.json()\n }\n return {\n pack: name,\n path,\n meta\n }\n })\n )).sort((a, b) => {\n return a.meta.title.localeCompare(b.meta.title)\n })\n store.dispatch('setInstanceOption', { name: 'stickers', value: stickers })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load stickers\")\n console.warn(e)\n }\n}\n\nconst getAppSecret = async ({ store }) => {\n const { state, commit } = store\n const { oauth, instance } = state\n return getOrCreateApp({ ...oauth, instance: instance.server, commit })\n .then((app) => getClientToken({ ...app, instance: instance.server }))\n .then((token) => {\n commit('setAppToken', token.access_token)\n commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n })\n}\n\nconst resolveStaffAccounts = ({ store, accounts }) => {\n const nicknames = accounts.map(uri => uri.split('/').pop())\n store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })\n}\n\nconst getNodeInfo = async ({ store }) => {\n try {\n const res = await preloadFetch('/nodeinfo/2.0.json')\n if (res.ok) {\n const data = await res.json()\n const metadata = data.metadata\n const features = metadata.features\n store.dispatch('setInstanceOption', { name: 'name', value: metadata.nodeName })\n store.dispatch('setInstanceOption', { name: 'registrationOpen', value: data.openRegistrations })\n store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') })\n store.dispatch('setInstanceOption', { name: 'safeDM', value: features.includes('safe_dm_mentions') })\n store.dispatch('setInstanceOption', { name: 'shoutAvailable', value: features.includes('chat') })\n store.dispatch('setInstanceOption', { name: 'pleromaChatMessagesAvailable', value: features.includes('pleroma_chat_messages') })\n store.dispatch('setInstanceOption', { name: 'gopherAvailable', value: features.includes('gopher') })\n store.dispatch('setInstanceOption', { name: 'pollsAvailable', value: features.includes('polls') })\n store.dispatch('setInstanceOption', { name: 'editingAvailable', value: features.includes('editing') })\n store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })\n store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })\n\n const uploadLimits = metadata.uploadLimits\n store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) })\n store.dispatch('setInstanceOption', { name: 'avatarlimit', value: parseInt(uploadLimits.avatar) })\n store.dispatch('setInstanceOption', { name: 'backgroundlimit', value: parseInt(uploadLimits.background) })\n store.dispatch('setInstanceOption', { name: 'bannerlimit', value: parseInt(uploadLimits.banner) })\n store.dispatch('setInstanceOption', { name: 'fieldsLimits', value: metadata.fieldsLimits })\n\n store.dispatch('setInstanceOption', { name: 'restrictedNicknames', value: metadata.restrictedNicknames })\n store.dispatch('setInstanceOption', { name: 'postFormats', value: metadata.postFormats })\n\n const suggestions = metadata.suggestions\n store.dispatch('setInstanceOption', { name: 'suggestionsEnabled', value: suggestions.enabled })\n store.dispatch('setInstanceOption', { name: 'suggestionsWeb', value: suggestions.web })\n\n const software = data.software\n store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })\n store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })\n\n const priv = metadata.private\n store.dispatch('setInstanceOption', { name: 'private', value: priv })\n\n const frontendVersion = window.___pleromafe_commit_hash\n store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion })\n\n const federation = metadata.federation\n\n store.dispatch('setInstanceOption', {\n name: 'tagPolicyAvailable',\n value: typeof federation.mrf_policies === 'undefined'\n ? false\n : metadata.federation.mrf_policies.includes('TagPolicy')\n })\n\n store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation })\n store.dispatch('setInstanceOption', {\n name: 'federating',\n value: typeof federation.enabled === 'undefined'\n ? true\n : federation.enabled\n })\n\n const accountActivationRequired = metadata.accountActivationRequired\n store.dispatch('setInstanceOption', { name: 'accountActivationRequired', value: accountActivationRequired })\n\n const accounts = metadata.staffAccounts\n resolveStaffAccounts({ store, accounts })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn('Could not load nodeinfo')\n console.warn(e)\n }\n}\n\nconst setConfig = async ({ store }) => {\n // apiConfig, staticConfig\n const configInfos = await Promise.all([getBackendProvidedConfig({ store }), getStaticConfig()])\n const apiConfig = configInfos[0]\n const staticConfig = configInfos[1]\n\n await setSettings({ store, apiConfig, staticConfig }).then(getAppSecret({ store }))\n}\n\nconst checkOAuthToken = async ({ store }) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n if (store.getters.getUserToken()) {\n try {\n await store.dispatch('loginUser', store.getters.getUserToken())\n } catch (e) {\n console.error(e)\n }\n }\n resolve()\n })\n}\n\nconst afterStoreSetup = async ({ store, i18n }) => {\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n\n FaviconService.initFaviconService()\n\n const overrides = window.___pleromafe_dev_overrides || {}\n const server = (typeof overrides.target !== 'undefined') ? overrides.target : window.location.origin\n store.dispatch('setInstanceOption', { name: 'server', value: server })\n\n await setConfig({ store })\n\n const { customTheme, customThemeSource } = store.state.config\n const { theme } = store.state.instance\n const customThemePresent = customThemeSource || customTheme\n\n if (customThemePresent) {\n if (customThemeSource && customThemeSource.themeEngineVersion === CURRENT_VERSION) {\n applyTheme(customThemeSource)\n } else {\n applyTheme(customTheme)\n }\n } else if (theme) {\n // do nothing, it will load asynchronously\n } else {\n console.error('Failed to load any theme!')\n }\n\n applyConfig(store.state.config)\n\n // Now we can try getting the server settings and logging in\n // Most of these are preloaded into the index.html so blocking is minimized\n await Promise.all([\n checkOAuthToken({ store }),\n getInstancePanel({ store }),\n getNodeInfo({ store }),\n getInstanceConfig({ store })\n ])\n\n // Start fetching things that don't need to block the UI\n store.dispatch('fetchMutes')\n store.dispatch('startFetchingAnnouncements')\n getTOS({ store })\n getStickers({ store })\n\n const router = createRouter({\n history: createWebHistory(),\n routes: routes(store),\n scrollBehavior: (to, _from, savedPosition) => {\n if (to.matched.some(m => m.meta.dontScroll)) {\n return false\n }\n return savedPosition || { left: 0, top: 0 }\n }\n })\n\n const app = createApp(App)\n\n app.use(router)\n app.use(store)\n app.use(i18n)\n\n app.use(vClickOutside)\n app.use(VBodyScrollLock)\n\n app.component('FAIcon', FontAwesomeIcon)\n app.component('FALayers', FontAwesomeLayers)\n\n // remove after vue 3.3\n app.config.unwrapInjectedRef = true\n\n app.mount('#app')\n\n return app\n}\n\nexport default afterStoreSetup\n","import { createStore } from 'vuex'\n\nimport 'custom-event-polyfill'\nimport './lib/event_target_polyfill.js'\n\nimport interfaceModule from './modules/interface.js'\nimport instanceModule from './modules/instance.js'\nimport statusesModule from './modules/statuses.js'\nimport listsModule from './modules/lists.js'\nimport usersModule from './modules/users.js'\nimport apiModule from './modules/api.js'\nimport configModule from './modules/config.js'\nimport serverSideConfigModule from './modules/serverSideConfig.js'\nimport serverSideStorageModule from './modules/serverSideStorage.js'\nimport shoutModule from './modules/shout.js'\nimport oauthModule from './modules/oauth.js'\nimport authFlowModule from './modules/auth_flow.js'\nimport mediaViewerModule from './modules/media_viewer.js'\nimport oauthTokensModule from './modules/oauth_tokens.js'\nimport reportsModule from './modules/reports.js'\nimport pollsModule from './modules/polls.js'\nimport postStatusModule from './modules/postStatus.js'\nimport editStatusModule from './modules/editStatus.js'\nimport statusHistoryModule from './modules/statusHistory.js'\n\nimport chatsModule from './modules/chats.js'\nimport announcementsModule from './modules/announcements.js'\n\nimport { createI18n } from 'vue-i18n'\n\nimport createPersistedState from './lib/persisted_state.js'\nimport pushNotifications from './lib/push_notifications_plugin.js'\n\nimport messages from './i18n/messages.js'\n\nimport afterStoreSetup from './boot/after_store.js'\n\nconst currentLocale = (window.navigator.language || 'en').split('-')[0]\n\nconst i18n = createI18n({\n // By default, use the browser locale, we will update it if neccessary\n locale: 'en',\n fallbackLocale: 'en',\n messages: messages.default\n})\n\nmessages.setLanguage(i18n, currentLocale)\n\nconst persistedStateOptions = {\n paths: [\n 'serverSideStorage.cache',\n 'config',\n 'users.lastLoginName',\n 'oauth'\n ]\n};\n\n(async () => {\n let storageError = false\n const plugins = [pushNotifications]\n try {\n const persistedState = await createPersistedState(persistedStateOptions)\n plugins.push(persistedState)\n } catch (e) {\n console.error(e)\n storageError = true\n }\n const store = createStore({\n modules: {\n i18n: {\n getters: {\n i18n: () => i18n.global\n }\n },\n interface: interfaceModule,\n instance: instanceModule,\n // TODO refactor users/statuses modules, they depend on each other\n users: usersModule,\n statuses: statusesModule,\n lists: listsModule,\n api: apiModule,\n config: configModule,\n serverSideConfig: serverSideConfigModule,\n serverSideStorage: serverSideStorageModule,\n shout: shoutModule,\n oauth: oauthModule,\n authFlow: authFlowModule,\n mediaViewer: mediaViewerModule,\n oauthTokens: oauthTokensModule,\n reports: reportsModule,\n polls: pollsModule,\n postStatus: postStatusModule,\n editStatus: editStatusModule,\n statusHistory: statusHistoryModule,\n chats: chatsModule,\n announcements: announcementsModule\n },\n plugins,\n strict: false // Socket modifies itself, let's ignore this for now.\n // strict: process.env.NODE_ENV !== 'production'\n })\n if (storageError) {\n store.dispatch('pushGlobalNotice', { messageKey: 'errors.storage_unavailable', level: 'error' })\n }\n afterStoreSetup({ store, i18n })\n})()\n\n// These are inlined by webpack's DefinePlugin\n/* eslint-disable */\nwindow.___pleromafe_mode = process.env\nwindow.___pleromafe_commit_hash = COMMIT_HASH\nwindow.___pleromafe_dev_overrides = DEV_OVERRIDES\n","import Cookies from 'js-cookie'\nimport { setPreset, applyTheme, applyConfig } from '../services/style_setter/style_setter.js'\nimport messages from '../i18n/messages'\nimport localeService from '../services/locale/locale.service.js'\n\nconst BACKEND_LANGUAGE_COOKIE_NAME = 'userLanguage'\n\nconst browserLocale = (window.navigator.language || 'en').split('-')[0]\n\n/* TODO this is a bit messy.\n * We need to declare settings with their types and also deal with\n * instance-default settings in some way, hopefully try to avoid copy-pasta\n * in general.\n */\nexport const multiChoiceProperties = [\n 'postContentType',\n 'subjectLineBehavior',\n 'conversationDisplay', // tree | linear\n 'conversationOtherRepliesButton', // below | inside\n 'mentionLinkDisplay', // short | full_for_remote | full\n 'userPopoverAvatarAction' // close | zoom | open\n]\n\nexport const defaultState = {\n expertLevel: 0, // used to track which settings to show and hide\n colors: {},\n theme: undefined,\n customTheme: undefined,\n customThemeSource: undefined,\n hideISP: false,\n hideInstanceWallpaper: false,\n hideShoutbox: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: undefined, // instance default\n hideMutedThreads: undefined, // instance default\n hideWordFilteredPosts: undefined, // instance default\n muteBotStatuses: undefined, // instance default\n collapseMessageWithSubject: undefined, // instance default\n padEmoji: true,\n hideAttachments: false,\n hideAttachmentsInConv: false,\n maxThumbnails: 16,\n hideNsfw: true,\n preloadImage: true,\n loopVideo: true,\n loopVideoSilentOnly: true,\n streaming: false,\n emojiReactionsOnTimeline: true,\n alwaysShowNewPostButton: false,\n autohideFloatingPostButton: false,\n pauseOnUnfocused: true,\n stopGifs: true,\n replyVisibility: 'all',\n thirdColumnMode: 'notifications',\n notificationVisibility: {\n follows: true,\n mentions: true,\n likes: true,\n repeats: true,\n moves: true,\n emojiReactions: true,\n followRequest: true,\n reports: true,\n chatMention: true,\n polls: true\n },\n webPushNotifications: false,\n muteWords: [],\n highlight: {},\n interfaceLanguage: browserLocale,\n hideScopeNotice: false,\n useStreamingApi: false,\n sidebarRight: undefined, // instance default\n scopeCopy: undefined, // instance default\n subjectLineBehavior: undefined, // instance default\n alwaysShowSubjectInput: undefined, // instance default\n postContentType: undefined, // instance default\n minimalScopesMode: undefined, // instance default\n // This hides statuses filtered via a word filter\n hideFilteredStatuses: undefined, // instance default\n playVideosInModal: false,\n useOneClickNsfw: false,\n useContainFit: true,\n disableStickyHeaders: false,\n showScrollbars: false,\n userPopoverAvatarAction: 'open',\n userPopoverOverlay: false,\n sidebarColumnWidth: '25rem',\n contentColumnWidth: '45rem',\n notifsColumnWidth: '25rem',\n navbarColumnStretch: false,\n greentext: undefined, // instance default\n useAtIcon: undefined, // instance default\n mentionLinkDisplay: undefined, // instance default\n mentionLinkShowTooltip: undefined, // instance default\n mentionLinkShowAvatar: undefined, // instance default\n mentionLinkFadeDomain: undefined, // instance default\n mentionLinkShowYous: undefined, // instance default\n mentionLinkBoldenYou: undefined, // instance default\n hidePostStats: undefined, // instance default\n hideBotIndication: undefined, // instance default\n hideUserStats: undefined, // instance default\n virtualScrolling: undefined, // instance default\n sensitiveByDefault: undefined, // instance default\n conversationDisplay: undefined, // instance default\n conversationTreeAdvanced: undefined, // instance default\n conversationOtherRepliesButton: undefined, // instance default\n conversationTreeFadeAncestors: undefined, // instance default\n maxDepthInThread: undefined // instance default\n}\n\n// caching the instance default properties\nexport const instanceDefaultProperties = Object.entries(defaultState)\n .filter(([key, value]) => value === undefined)\n .map(([key, value]) => key)\n\nconst config = {\n state: { ...defaultState },\n getters: {\n defaultConfig (state, getters, rootState, rootGetters) {\n const { instance } = rootState\n return {\n ...defaultState,\n ...Object.fromEntries(\n instanceDefaultProperties.map(key => [key, instance[key]])\n )\n }\n },\n mergedConfig (state, getters, rootState, rootGetters) {\n const { defaultConfig } = rootGetters\n return {\n ...defaultConfig,\n // Do not override with undefined\n ...Object.fromEntries(Object.entries(state).filter(([k, v]) => v !== undefined))\n }\n }\n },\n mutations: {\n setOption (state, { name, value }) {\n state[name] = value\n },\n setHighlight (state, { user, color, type }) {\n const data = this.state.config.highlight[user]\n if (color || type) {\n state.highlight[user] = { color: color || data.color, type: type || data.type }\n } else {\n delete state.highlight[user]\n }\n }\n },\n actions: {\n loadSettings ({ dispatch }, data) {\n const knownKeys = new Set(Object.keys(defaultState))\n const presentKeys = new Set(Object.keys(data))\n const intersection = new Set()\n for (const elem of presentKeys) {\n if (knownKeys.has(elem)) {\n intersection.add(elem)\n }\n }\n\n intersection.forEach(\n name => dispatch('setOption', { name, value: data[name] })\n )\n },\n setHighlight ({ commit, dispatch }, { user, color, type }) {\n commit('setHighlight', { user, color, type })\n },\n setOption ({ commit, dispatch, state }, { name, value }) {\n commit('setOption', { name, value })\n switch (name) {\n case 'theme':\n setPreset(value)\n break\n case 'sidebarColumnWidth':\n case 'contentColumnWidth':\n case 'notifsColumnWidth':\n applyConfig(state)\n break\n case 'customTheme':\n case 'customThemeSource':\n applyTheme(value)\n break\n case 'interfaceLanguage':\n messages.setLanguage(this.getters.i18n, value)\n dispatch('loadUnicodeEmojiData', value)\n Cookies.set(BACKEND_LANGUAGE_COOKIE_NAME, localeService.internalToBackendLocale(value))\n break\n case 'thirdColumnMode':\n dispatch('setLayoutWidth', undefined)\n break\n }\n }\n }\n}\n\nexport default config\n","import { get, set } from 'lodash'\n\nconst defaultApi = ({ rootState, commit }, { path, value }) => {\n const params = {}\n set(params, path, value)\n return rootState\n .api\n .backendInteractor\n .updateProfile({ params })\n .then(result => {\n commit('addNewUsers', [result])\n commit('setCurrentUser', result)\n })\n}\n\nconst notificationsApi = ({ rootState, commit }, { path, value, oldValue }) => {\n const settings = {}\n set(settings, path, value)\n return rootState\n .api\n .backendInteractor\n .updateNotificationSettings({ settings })\n .then(result => {\n if (result.status === 'success') {\n commit('confirmServerSideOption', { name, value })\n } else {\n commit('confirmServerSideOption', { name, value: oldValue })\n }\n })\n}\n\n/**\n * Map that stores relation between path for reading (from user profile),\n * for writing (into API) an what API to use.\n *\n * Shorthand - instead of { get, set, api? } object it's possible to use string\n * in case default api is used and get = set\n *\n * If no api is specified, defaultApi is used (see above)\n */\nexport const settingsMap = {\n defaultScope: 'source.privacy',\n defaultNSFW: 'source.sensitive', // BROKEN: pleroma/pleroma#2837\n stripRichContent: {\n get: 'source.pleroma.no_rich_text',\n set: 'no_rich_text'\n },\n // Privacy\n locked: 'locked',\n acceptChatMessages: {\n get: 'pleroma.accepts_chat_messages',\n set: 'accepts_chat_messages'\n },\n allowFollowingMove: {\n get: 'pleroma.allow_following_move',\n set: 'allow_following_move'\n },\n discoverable: {\n get: 'source.pleroma.discoverable',\n set: 'discoverable'\n },\n hideFavorites: {\n get: 'pleroma.hide_favorites',\n set: 'hide_favorites'\n },\n hideFollowers: {\n get: 'pleroma.hide_followers',\n set: 'hide_followers'\n },\n hideFollows: {\n get: 'pleroma.hide_follows',\n set: 'hide_follows'\n },\n hideFollowersCount: {\n get: 'pleroma.hide_followers_count',\n set: 'hide_followers_count'\n },\n hideFollowsCount: {\n get: 'pleroma.hide_follows_count',\n set: 'hide_follows_count'\n },\n // NotificationSettingsAPIs\n webPushHideContents: {\n get: 'pleroma.notification_settings.hide_notification_contents',\n set: 'hide_notification_contents',\n api: notificationsApi\n },\n blockNotificationsFromStrangers: {\n get: 'pleroma.notification_settings.block_from_strangers',\n set: 'block_from_strangers',\n api: notificationsApi\n }\n}\n\nexport const defaultState = Object.fromEntries(Object.keys(settingsMap).map(key => [key, null]))\n\nconst serverSideConfig = {\n state: { ...defaultState },\n mutations: {\n confirmServerSideOption (state, { name, value }) {\n set(state, name, value)\n },\n wipeServerSideOption (state, { name }) {\n set(state, name, null)\n },\n wipeAllServerSideOptions (state) {\n Object.keys(settingsMap).forEach(key => {\n set(state, key, null)\n })\n },\n // Set the settings based on their path location\n setCurrentUser (state, user) {\n Object.entries(settingsMap).forEach((map) => {\n const [name, value] = map\n const { get: path = value } = value\n set(state, name, get(user._original, path))\n })\n }\n },\n actions: {\n setServerSideOption ({ rootState, state, commit, dispatch }, { name, value }) {\n const oldValue = get(state, name)\n const map = settingsMap[name]\n if (!map) throw new Error('Invalid server-side setting')\n const { set: path = map, api = defaultApi } = map\n commit('wipeServerSideOption', { name })\n\n api({ rootState, commit }, { path, value, oldValue })\n .catch((e) => {\n console.warn('Error setting server-side option:', e)\n commit('confirmServerSideOption', { name, value: oldValue })\n })\n },\n logout ({ commit }) {\n commit('wipeAllServerSideOptions')\n }\n }\n}\n\nexport default serverSideConfig\n","import { humanizeErrors } from '../../modules/errors'\n\nexport function StatusCodeError (statusCode, body, options, response) {\n this.name = 'StatusCodeError'\n this.statusCode = statusCode\n this.message = statusCode + ' - ' + (JSON && JSON.stringify ? JSON.stringify(body) : body)\n this.error = body // legacy attribute\n this.options = options\n this.response = response\n\n if (Error.captureStackTrace) { // required for non-V8 environments\n Error.captureStackTrace(this)\n }\n}\nStatusCodeError.prototype = Object.create(Error.prototype)\nStatusCodeError.prototype.constructor = StatusCodeError\n\nexport class RegistrationError extends Error {\n constructor (error) {\n super()\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this)\n }\n\n try {\n // the error is probably a JSON object with a single key, \"errors\", whose value is another JSON object containing the real errors\n if (typeof error === 'string') {\n error = JSON.parse(error)\n // eslint-disable-next-line\n if (error.hasOwnProperty('error')) {\n error = JSON.parse(error.error)\n }\n }\n\n if (typeof error === 'object') {\n const errorContents = JSON.parse(error.error)\n // keys will have the property that has the error, for example 'ap_id',\n // 'email' or 'captcha', the value will be an array of its error\n // like \"ap_id\": [\"has been taken\"] or \"captcha\": [\"Invalid CAPTCHA\"]\n\n // replace ap_id with username\n if (errorContents.ap_id) {\n errorContents.username = errorContents.ap_id\n delete errorContents.ap_id\n }\n\n this.message = humanizeErrors(errorContents)\n } else {\n this.message = error\n }\n } catch (e) {\n // can't parse it, so just treat it like a string\n this.message = error\n }\n }\n}\n","import { capitalize } from 'lodash'\n\nexport function humanizeErrors (errors) {\n return Object.entries(errors).reduce((errs, [k, val]) => {\n const message = val.reduce((acc, message) => {\n const key = capitalize(k.replace(/_/g, ' '))\n return acc + [key, message].join(' ') + '. '\n }, '')\n return [...errs, message]\n }, [])\n}\n","import { each, map, concat, last, get } from 'lodash'\nimport { parseStatus, parseSource, parseUser, parseNotification, parseAttachment, parseChat, parseLinkHeaderPagination } from '../entity_normalizer/entity_normalizer.service.js'\nimport { RegistrationError, StatusCodeError } from '../errors/errors'\n\n/* eslint-env browser */\nconst MUTES_IMPORT_URL = '/api/pleroma/mutes_import'\nconst BLOCKS_IMPORT_URL = '/api/pleroma/blocks_import'\nconst FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'\nconst DELETE_ACCOUNT_URL = '/api/pleroma/delete_account'\nconst CHANGE_EMAIL_URL = '/api/pleroma/change_email'\nconst CHANGE_PASSWORD_URL = '/api/pleroma/change_password'\nconst MOVE_ACCOUNT_URL = '/api/pleroma/move_account'\nconst ALIASES_URL = '/api/pleroma/aliases'\nconst TAG_USER_URL = '/api/pleroma/admin/users/tag'\nconst PERMISSION_GROUP_URL = (screenName, right) => `/api/pleroma/admin/users/${screenName}/permission_group/${right}`\nconst ACTIVATE_USER_URL = '/api/pleroma/admin/users/activate'\nconst DEACTIVATE_USER_URL = '/api/pleroma/admin/users/deactivate'\nconst ADMIN_USERS_URL = '/api/pleroma/admin/users'\nconst SUGGESTIONS_URL = '/api/v1/suggestions'\nconst NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'\nconst NOTIFICATION_READ_URL = '/api/v1/pleroma/notifications/read'\n\nconst MFA_SETTINGS_URL = '/api/pleroma/accounts/mfa'\nconst MFA_BACKUP_CODES_URL = '/api/pleroma/accounts/mfa/backup_codes'\n\nconst MFA_SETUP_OTP_URL = '/api/pleroma/accounts/mfa/setup/totp'\nconst MFA_CONFIRM_OTP_URL = '/api/pleroma/accounts/mfa/confirm/totp'\nconst MFA_DISABLE_OTP_URL = '/api/pleroma/accounts/mfa/totp'\n\nconst MASTODON_LOGIN_URL = '/api/v1/accounts/verify_credentials'\nconst MASTODON_REGISTRATION_URL = '/api/v1/accounts'\nconst MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'\nconst MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications'\nconst MASTODON_DISMISS_NOTIFICATION_URL = id => `/api/v1/notifications/${id}/dismiss`\nconst MASTODON_FAVORITE_URL = id => `/api/v1/statuses/${id}/favourite`\nconst MASTODON_UNFAVORITE_URL = id => `/api/v1/statuses/${id}/unfavourite`\nconst MASTODON_RETWEET_URL = id => `/api/v1/statuses/${id}/reblog`\nconst MASTODON_UNRETWEET_URL = id => `/api/v1/statuses/${id}/unreblog`\nconst MASTODON_DELETE_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_FOLLOW_URL = id => `/api/v1/accounts/${id}/follow`\nconst MASTODON_UNFOLLOW_URL = id => `/api/v1/accounts/${id}/unfollow`\nconst MASTODON_FOLLOWING_URL = id => `/api/v1/accounts/${id}/following`\nconst MASTODON_FOLLOWERS_URL = id => `/api/v1/accounts/${id}/followers`\nconst MASTODON_FOLLOW_REQUESTS_URL = '/api/v1/follow_requests'\nconst MASTODON_APPROVE_USER_URL = id => `/api/v1/follow_requests/${id}/authorize`\nconst MASTODON_DENY_USER_URL = id => `/api/v1/follow_requests/${id}/reject`\nconst MASTODON_DIRECT_MESSAGES_TIMELINE_URL = '/api/v1/timelines/direct'\nconst MASTODON_PUBLIC_TIMELINE = '/api/v1/timelines/public'\nconst MASTODON_USER_HOME_TIMELINE_URL = '/api/v1/timelines/home'\nconst MASTODON_STATUS_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_STATUS_CONTEXT_URL = id => `/api/v1/statuses/${id}/context`\nconst MASTODON_STATUS_SOURCE_URL = id => `/api/v1/statuses/${id}/source`\nconst MASTODON_STATUS_HISTORY_URL = id => `/api/v1/statuses/${id}/history`\nconst MASTODON_USER_URL = '/api/v1/accounts'\nconst MASTODON_USER_LOOKUP_URL = '/api/v1/accounts/lookup'\nconst MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships'\nconst MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses`\nconst MASTODON_USER_IN_LISTS = id => `/api/v1/accounts/${id}/lists`\nconst MASTODON_LIST_URL = id => `/api/v1/lists/${id}`\nconst MASTODON_LIST_TIMELINE_URL = id => `/api/v1/timelines/list/${id}`\nconst MASTODON_LIST_ACCOUNTS_URL = id => `/api/v1/lists/${id}/accounts`\nconst MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`\nconst MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'\nconst MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'\nconst MASTODON_USER_MUTES_URL = '/api/v1/mutes/'\nconst MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`\nconst MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`\nconst MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`\nconst MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`\nconst MASTODON_REMOVE_USER_FROM_FOLLOWERS = id => `/api/v1/accounts/${id}/remove_from_followers`\nconst MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`\nconst MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`\nconst MASTODON_USER_NOTE_URL = id => `/api/v1/accounts/${id}/note`\nconst MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`\nconst MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`\nconst MASTODON_POST_STATUS_URL = '/api/v1/statuses'\nconst MASTODON_MEDIA_UPLOAD_URL = '/api/v1/media'\nconst MASTODON_VOTE_URL = id => `/api/v1/polls/${id}/votes`\nconst MASTODON_POLL_URL = id => `/api/v1/polls/${id}`\nconst MASTODON_STATUS_FAVORITEDBY_URL = id => `/api/v1/statuses/${id}/favourited_by`\nconst MASTODON_STATUS_REBLOGGEDBY_URL = id => `/api/v1/statuses/${id}/reblogged_by`\nconst MASTODON_PROFILE_UPDATE_URL = '/api/v1/accounts/update_credentials'\nconst MASTODON_REPORT_USER_URL = '/api/v1/reports'\nconst MASTODON_PIN_OWN_STATUS = id => `/api/v1/statuses/${id}/pin`\nconst MASTODON_UNPIN_OWN_STATUS = id => `/api/v1/statuses/${id}/unpin`\nconst MASTODON_MUTE_CONVERSATION = id => `/api/v1/statuses/${id}/mute`\nconst MASTODON_UNMUTE_CONVERSATION = id => `/api/v1/statuses/${id}/unmute`\nconst MASTODON_SEARCH_2 = '/api/v2/search'\nconst MASTODON_USER_SEARCH_URL = '/api/v1/accounts/search'\nconst MASTODON_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'\nconst MASTODON_LISTS_URL = '/api/v1/lists'\nconst MASTODON_STREAMING = '/api/v1/streaming'\nconst MASTODON_KNOWN_DOMAIN_LIST_URL = '/api/v1/instance/peers'\nconst MASTODON_ANNOUNCEMENTS_URL = '/api/v1/announcements'\nconst MASTODON_ANNOUNCEMENTS_DISMISS_URL = id => `/api/v1/announcements/${id}/dismiss`\nconst PLEROMA_EMOJI_REACTIONS_URL = id => `/api/v1/pleroma/statuses/${id}/reactions`\nconst PLEROMA_EMOJI_REACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_EMOJI_UNREACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_CHATS_URL = '/api/v1/pleroma/chats'\nconst PLEROMA_CHAT_URL = id => `/api/v1/pleroma/chats/by-account-id/${id}`\nconst PLEROMA_CHAT_MESSAGES_URL = id => `/api/v1/pleroma/chats/${id}/messages`\nconst PLEROMA_CHAT_READ_URL = id => `/api/v1/pleroma/chats/${id}/read`\nconst PLEROMA_DELETE_CHAT_MESSAGE_URL = (chatId, messageId) => `/api/v1/pleroma/chats/${chatId}/messages/${messageId}`\nconst PLEROMA_ADMIN_REPORTS = '/api/pleroma/admin/reports'\nconst PLEROMA_BACKUP_URL = '/api/v1/pleroma/backups'\nconst PLEROMA_ANNOUNCEMENTS_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\nconst PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\n\nconst oldfetch = window.fetch\n\nconst fetch = (url, options) => {\n options = options || {}\n const baseUrl = ''\n const fullUrl = baseUrl + url\n options.credentials = 'same-origin'\n return oldfetch(fullUrl, options)\n}\n\nconst promisedRequest = ({ method, url, params, payload, credentials, headers = {} }) => {\n const options = {\n method,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...headers\n }\n }\n if (params) {\n url += '?' + Object.entries(params)\n .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))\n .join('&')\n }\n if (payload) {\n options.body = JSON.stringify(payload)\n }\n if (credentials) {\n options.headers = {\n ...options.headers,\n ...authHeaders(credentials)\n }\n }\n return fetch(url, options)\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url, options }, response))\n }\n return resolve(json)\n })\n .catch((error) => {\n return reject(new StatusCodeError(response.status, error, { url, options }, response))\n })\n )\n })\n}\n\nconst updateNotificationSettings = ({ credentials, settings }) => {\n const form = new FormData()\n\n each(settings, (value, key) => {\n form.append(key, value)\n })\n\n return fetch(NOTIFICATION_SETTINGS_URL, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst updateProfileImages = ({ credentials, avatar = null, avatarName = null, banner = null, background = null }) => {\n const form = new FormData()\n if (avatar !== null) {\n if (avatarName !== null) {\n form.append('avatar', avatar, avatarName)\n } else {\n form.append('avatar', avatar)\n }\n }\n if (banner !== null) form.append('header', banner)\n if (background !== null) form.append('pleroma_background_image', background)\n return fetch(MASTODON_PROFILE_UPDATE_URL, {\n headers: authHeaders(credentials),\n method: 'PATCH',\n body: form\n })\n .then((data) => data.json())\n .then((data) => {\n if (data.error) {\n throw new Error(data.error)\n }\n return parseUser(data)\n })\n}\n\nconst updateProfile = ({ credentials, params }) => {\n return promisedRequest({\n url: MASTODON_PROFILE_UPDATE_URL,\n method: 'PATCH',\n payload: params,\n credentials\n }).then((data) => parseUser(data))\n}\n\n// Params needed:\n// nickname\n// email\n// fullname\n// password\n// password_confirm\n//\n// Optional\n// bio\n// homepage\n// location\n// token\n// language\nconst register = ({ params, credentials }) => {\n const { nickname, ...rest } = params\n return fetch(MASTODON_REGISTRATION_URL, {\n method: 'POST',\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n nickname,\n locale: 'en_US',\n agreement: true,\n ...rest\n })\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return response.json().then((error) => { throw new RegistrationError(error) })\n }\n })\n}\n\nconst getCaptcha = () => fetch('/api/pleroma/captcha').then(resp => resp.json())\n\nconst authHeaders = (accessToken) => {\n if (accessToken) {\n return { Authorization: `Bearer ${accessToken}` }\n } else {\n return { }\n }\n}\n\nconst followUser = ({ id, credentials, ...options }) => {\n const url = MASTODON_FOLLOW_URL(id)\n const form = {}\n if (options.reblogs !== undefined) { form.reblogs = options.reblogs }\n return fetch(url, {\n body: JSON.stringify(form),\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst unfollowUser = ({ id, credentials }) => {\n const url = MASTODON_UNFOLLOW_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst fetchUserInLists = ({ id, credentials }) => {\n const url = MASTODON_USER_IN_LISTS(id)\n return fetch(url, {\n headers: authHeaders(credentials)\n }).then((data) => data.json())\n}\n\nconst pinOwnStatus = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_PIN_OWN_STATUS(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst unpinOwnStatus = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNPIN_OWN_STATUS(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst muteConversation = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_MUTE_CONVERSATION(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst unmuteConversation = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_CONVERSATION(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst blockUser = ({ id, credentials }) => {\n return fetch(MASTODON_BLOCK_USER_URL(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst unblockUser = ({ id, credentials }) => {\n return fetch(MASTODON_UNBLOCK_USER_URL(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst removeUserFromFollowers = ({ id, credentials }) => {\n return fetch(MASTODON_REMOVE_USER_FROM_FOLLOWERS(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst editUserNote = ({ id, credentials, comment }) => {\n return promisedRequest({\n url: MASTODON_USER_NOTE_URL(id),\n credentials,\n payload: {\n comment\n },\n method: 'POST'\n })\n}\n\nconst approveUser = ({ id, credentials }) => {\n const url = MASTODON_APPROVE_USER_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst denyUser = ({ id, credentials }) => {\n const url = MASTODON_DENY_USER_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst fetchUser = ({ id, credentials }) => {\n const url = `${MASTODON_USER_URL}/${id}`\n return promisedRequest({ url, credentials })\n .then((data) => parseUser(data))\n}\n\nconst fetchUserByName = ({ name, credentials }) => {\n return promisedRequest({\n url: MASTODON_USER_LOOKUP_URL,\n credentials,\n params: { acct: name }\n })\n .then(data => data.id)\n .catch(error => {\n if (error && error.statusCode === 404) {\n // Either the backend does not support lookup endpoint,\n // or there is no user with such name. Fallback and treat name as id.\n return name\n } else {\n throw error\n }\n })\n .then(id => fetchUser({ id, credentials }))\n}\n\nconst fetchUserRelationship = ({ id, credentials }) => {\n const url = `${MASTODON_USER_RELATIONSHIPS_URL}/?id=${id}`\n return fetch(url, { headers: authHeaders(credentials) })\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url }, response))\n }\n return resolve(json)\n }))\n })\n}\n\nconst fetchFriends = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWING_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst exportFriends = ({ id, credentials }) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n let friends = []\n let more = true\n while (more) {\n const maxId = friends.length > 0 ? last(friends).id : undefined\n const users = await fetchFriends({ id, maxId, credentials })\n friends = concat(friends, users)\n if (users.length === 0) {\n more = false\n }\n }\n resolve(friends)\n } catch (err) {\n reject(err)\n }\n })\n}\n\nconst fetchFollowers = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWERS_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url += args ? '?' + args : ''\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchFollowRequests = ({ credentials }) => {\n const url = MASTODON_FOLLOW_REQUESTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchLists = ({ credentials }) => {\n const url = MASTODON_LISTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst createList = ({ title, credentials }) => {\n const url = MASTODON_LISTS_URL\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ title })\n }).then((data) => data.json())\n}\n\nconst getList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst updateList = ({ listId, title, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'PUT',\n body: JSON.stringify({ title })\n })\n}\n\nconst getListAccounts = ({ listId, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(({ id }) => id))\n}\n\nconst addAccountsToList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst removeAccountsFromList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'DELETE',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst deleteList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, {\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n}\n\nconst fetchConversation = ({ id, credentials }) => {\n const urlContext = MASTODON_STATUS_CONTEXT_URL(id)\n return fetch(urlContext, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching timeline', data)\n })\n .then((data) => data.json())\n .then(({ ancestors, descendants }) => ({\n ancestors: ancestors.map(parseStatus),\n descendants: descendants.map(parseStatus)\n }))\n}\n\nconst fetchStatus = ({ id, credentials }) => {\n const url = MASTODON_STATUS_URL(id)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching timeline', data)\n })\n .then((data) => data.json())\n .then((data) => parseStatus(data))\n}\n\nconst fetchStatusSource = ({ id, credentials }) => {\n const url = MASTODON_STATUS_SOURCE_URL(id)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching source', data)\n })\n .then((data) => data.json())\n .then((data) => parseSource(data))\n}\n\nconst fetchStatusHistory = ({ status, credentials }) => {\n const url = MASTODON_STATUS_HISTORY_URL(status.id)\n return promisedRequest({ url, credentials })\n .then((data) => {\n data.reverse()\n return data.map((item) => {\n item.originalStatus = status\n return parseStatus(item)\n })\n })\n}\n\nconst tagUser = ({ tag, credentials, user }) => {\n const screenName = user.screen_name\n const form = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'PUT',\n headers,\n body: JSON.stringify(form)\n })\n}\n\nconst untagUser = ({ tag, credentials, user }) => {\n const screenName = user.screen_name\n const body = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'DELETE',\n headers,\n body: JSON.stringify(body)\n })\n}\n\nconst addRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'POST',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst deleteRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'DELETE',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst activateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: ACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deactivateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: DEACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deleteUser = ({ credentials, user }) => {\n const screenName = user.screen_name\n const headers = authHeaders(credentials)\n\n return fetch(`${ADMIN_USERS_URL}?nickname=${screenName}`, {\n method: 'DELETE',\n headers\n })\n}\n\nconst fetchTimeline = ({\n timeline,\n credentials,\n since = false,\n until = false,\n userId = false,\n listId = false,\n tag = false,\n withMuted = false,\n replyVisibility = 'all',\n includeTypes = []\n}) => {\n const timelineUrls = {\n public: MASTODON_PUBLIC_TIMELINE,\n friends: MASTODON_USER_HOME_TIMELINE_URL,\n dms: MASTODON_DIRECT_MESSAGES_TIMELINE_URL,\n notifications: MASTODON_USER_NOTIFICATIONS_URL,\n publicAndExternal: MASTODON_PUBLIC_TIMELINE,\n user: MASTODON_USER_TIMELINE_URL,\n media: MASTODON_USER_TIMELINE_URL,\n list: MASTODON_LIST_TIMELINE_URL,\n favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,\n tag: MASTODON_TAG_TIMELINE_URL,\n bookmarks: MASTODON_BOOKMARK_TIMELINE_URL\n }\n const isNotifications = timeline === 'notifications'\n const params = []\n\n let url = timelineUrls[timeline]\n\n if (timeline === 'user' || timeline === 'media') {\n url = url(userId)\n }\n\n if (timeline === 'list') {\n url = url(listId)\n }\n\n if (since) {\n params.push(['since_id', since])\n }\n if (until) {\n params.push(['max_id', until])\n }\n if (tag) {\n url = url(tag)\n }\n if (timeline === 'media') {\n params.push(['only_media', 1])\n }\n if (timeline === 'public') {\n params.push(['local', true])\n }\n if (timeline === 'public' || timeline === 'publicAndExternal') {\n params.push(['only_media', false])\n }\n if (timeline !== 'favorites' && timeline !== 'bookmarks') {\n params.push(['with_muted', withMuted])\n }\n if (replyVisibility !== 'all') {\n params.push(['reply_visibility', replyVisibility])\n }\n if (includeTypes.length > 0) {\n includeTypes.forEach(type => {\n params.push(['include_types[]', type])\n })\n }\n\n params.push(['limit', 20])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n let status = ''\n let statusText = ''\n\n let pagination = {}\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n status = data.status\n statusText = data.statusText\n pagination = parseLinkHeaderPagination(data.headers.get('Link'), {\n flakeId: timeline !== 'bookmarks' && timeline !== 'notifications'\n })\n return data\n })\n .then((data) => data.json())\n .then((data) => {\n if (!data.errors) {\n return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination }\n } else {\n data.status = status\n data.statusText = statusText\n return data\n }\n })\n}\n\nconst fetchPinnedStatuses = ({ id, credentials }) => {\n const url = MASTODON_USER_TIMELINE_URL(id) + '?pinned=true'\n return promisedRequest({ url, credentials })\n .then((data) => data.map(parseStatus))\n}\n\nconst verifyCredentials = (user) => {\n return fetch(MASTODON_LOGIN_URL, {\n headers: authHeaders(user)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n .then((data) => data.error ? data : parseUser(data))\n}\n\nconst favorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_FAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unfavorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNFAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst retweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_RETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unretweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNRETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst bookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_BOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst unbookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_UNBOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst postStatus = ({\n credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n mediaIds = [],\n inReplyToStatusId,\n contentType,\n preview,\n idempotencyKey\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n form.append('source', 'Pleroma FE')\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (visibility) form.append('visibility', visibility)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: poll.expiresIn,\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n if (inReplyToStatusId) {\n form.append('in_reply_to_id', inReplyToStatusId)\n }\n if (preview) {\n form.append('preview', 'true')\n }\n\n const postHeaders = authHeaders(credentials)\n if (idempotencyKey) {\n postHeaders['idempotency-key'] = idempotencyKey\n }\n\n return fetch(MASTODON_POST_STATUS_URL, {\n body: form,\n method: 'POST',\n headers: postHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst editStatus = ({\n id,\n credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds = [],\n contentType\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: poll.expiresIn,\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n\n const putHeaders = authHeaders(credentials)\n\n return fetch(MASTODON_STATUS_URL(id), {\n body: form,\n method: 'PUT',\n headers: putHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst deleteStatus = ({ id, credentials }) => {\n return fetch(MASTODON_DELETE_URL(id), {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst uploadMedia = ({ formData, credentials }) => {\n return fetch(MASTODON_MEDIA_UPLOAD_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((data) => data.json())\n .then((data) => parseAttachment(data))\n}\n\nconst setMediaDescription = ({ id, description, credentials }) => {\n return promisedRequest({\n url: `${MASTODON_MEDIA_UPLOAD_URL}/${id}`,\n method: 'PUT',\n headers: authHeaders(credentials),\n payload: {\n description\n }\n }).then((data) => parseAttachment(data))\n}\n\nconst importMutes = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(MUTES_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importBlocks = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(BLOCKS_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importFollows = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(FOLLOW_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst deleteAccount = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(DELETE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changeEmail = ({ credentials, email, password }) => {\n const form = new FormData()\n\n form.append('email', email)\n form.append('password', password)\n\n return fetch(CHANGE_EMAIL_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst moveAccount = ({ credentials, password, targetAccount }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('target_account', targetAccount)\n\n return fetch(MOVE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst addAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'PUT',\n credentials,\n payload: { alias }\n })\n}\n\nconst deleteAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'DELETE',\n credentials,\n payload: { alias }\n })\n}\n\nconst listAliases = ({ credentials }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\n}\n\nconst changePassword = ({ credentials, password, newPassword, newPasswordConfirmation }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('new_password', newPassword)\n form.append('new_password_confirmation', newPasswordConfirmation)\n\n return fetch(CHANGE_PASSWORD_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst settingsMFA = ({ credentials }) => {\n return fetch(MFA_SETTINGS_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst mfaDisableOTP = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(MFA_DISABLE_OTP_URL, {\n body: form,\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst mfaConfirmOTP = ({ credentials, password, token }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('code', token)\n\n return fetch(MFA_CONFIRM_OTP_URL, {\n body: form,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\nconst mfaSetupOTP = ({ credentials }) => {\n return fetch(MFA_SETUP_OTP_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\nconst generateMfaBackupCodes = ({ credentials }) => {\n return fetch(MFA_BACKUP_CODES_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst fetchMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_MUTES_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst muteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_MUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst unmuteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst subscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst unsubscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst fetchBlocks = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_BLOCKS_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst addBackup = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'POST',\n credentials\n })\n}\n\nconst listBackups = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\n}\n\nconst fetchOAuthTokens = ({ credentials }) => {\n const url = '/api/oauth_tokens.json'\n\n return fetch(url, {\n headers: authHeaders(credentials)\n }).then((data) => {\n if (data.ok) {\n return data.json()\n }\n throw new Error('Error fetching auth tokens', data)\n })\n}\n\nconst revokeOAuthToken = ({ id, credentials }) => {\n const url = `/api/oauth_tokens/${id}`\n\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst suggestions = ({ credentials }) => {\n return fetch(SUGGESTIONS_URL, {\n headers: authHeaders(credentials)\n }).then((data) => data.json())\n}\n\nconst markNotificationsAsSeen = ({ id, credentials, single = false }) => {\n const body = new FormData()\n\n if (single) {\n body.append('id', id)\n } else {\n body.append('max_id', id)\n }\n\n return fetch(NOTIFICATION_READ_URL, {\n body,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst vote = ({ pollId, choices, credentials }) => {\n const form = new FormData()\n form.append('choices', choices)\n\n return promisedRequest({\n url: MASTODON_VOTE_URL(encodeURIComponent(pollId)),\n method: 'POST',\n credentials,\n payload: {\n choices\n }\n })\n}\n\nconst fetchPoll = ({ pollId, credentials }) => {\n return promisedRequest(\n {\n url: MASTODON_POLL_URL(encodeURIComponent(pollId)),\n method: 'GET',\n credentials\n }\n )\n}\n\nconst fetchFavoritedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_FAVORITEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchRebloggedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_REBLOGGEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchEmojiReactions = ({ id, credentials }) => {\n return promisedRequest({ url: PLEROMA_EMOJI_REACTIONS_URL(id), credentials })\n .then((reactions) => reactions.map(r => {\n r.accounts = r.accounts.map(parseUser)\n return r\n }))\n}\n\nconst reactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_REACT_URL(id, emoji),\n method: 'PUT',\n credentials\n }).then(parseStatus)\n}\n\nconst unreactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_UNREACT_URL(id, emoji),\n method: 'DELETE',\n credentials\n }).then(parseStatus)\n}\n\nconst reportUser = ({ credentials, userId, statusIds, comment, forward }) => {\n return promisedRequest({\n url: MASTODON_REPORT_USER_URL,\n method: 'POST',\n payload: {\n account_id: userId,\n status_ids: statusIds,\n comment,\n forward\n },\n credentials\n })\n}\n\nconst searchUsers = ({ credentials, query }) => {\n return promisedRequest({\n url: MASTODON_USER_SEARCH_URL,\n params: {\n q: query,\n resolve: true\n },\n credentials\n })\n .then((data) => data.map(parseUser))\n}\n\nconst search2 = ({ credentials, q, resolve, limit, offset, following, type }) => {\n let url = MASTODON_SEARCH_2\n const params = []\n\n if (q) {\n params.push(['q', encodeURIComponent(q)])\n }\n\n if (resolve) {\n params.push(['resolve', resolve])\n }\n\n if (limit) {\n params.push(['limit', limit])\n }\n\n if (offset) {\n params.push(['offset', offset])\n }\n\n if (following) {\n params.push(['following', true])\n }\n\n if (type) {\n params.push(['following', type])\n }\n\n params.push(['with_relationships', true])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching search result', data)\n })\n .then((data) => { return data.json() })\n .then((data) => {\n data.accounts = data.accounts.slice(0, limit).map(u => parseUser(u))\n data.statuses = data.statuses.slice(0, limit).map(s => parseStatus(s))\n return data\n })\n}\n\nconst fetchKnownDomains = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_KNOWN_DOMAIN_LIST_URL, credentials })\n}\n\nconst fetchDomainMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_DOMAIN_BLOCKS_URL, credentials })\n}\n\nconst muteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'POST',\n payload: { domain },\n credentials\n })\n}\n\nconst unmuteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'DELETE',\n payload: { domain },\n credentials\n })\n}\n\nconst dismissNotification = ({ credentials, id }) => {\n return promisedRequest({\n url: MASTODON_DISMISS_NOTIFICATION_URL(id),\n method: 'POST',\n payload: { id },\n credentials\n })\n}\n\nconst adminFetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: PLEROMA_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst fetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst dismissAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_ANNOUNCEMENTS_DISMISS_URL(id),\n credentials,\n method: 'POST'\n })\n}\n\nconst announcementToPayload = ({ content, startsAt, endsAt, allDay }) => {\n const payload = { content }\n\n if (typeof startsAt !== 'undefined') {\n payload.starts_at = startsAt ? new Date(startsAt).toISOString() : null\n }\n\n if (typeof endsAt !== 'undefined') {\n payload.ends_at = endsAt ? new Date(endsAt).toISOString() : null\n }\n\n if (typeof allDay !== 'undefined') {\n payload.all_day = allDay\n }\n\n return payload\n}\n\nconst postAnnouncement = ({ credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_POST_ANNOUNCEMENT_URL,\n credentials,\n method: 'POST',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst editAnnouncement = ({ id, credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_EDIT_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'PATCH',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst deleteAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'DELETE'\n })\n}\n\nexport const getMastodonSocketURI = ({ credentials, stream, args = {} }) => {\n return Object.entries({\n ...(credentials\n ? { access_token: credentials }\n : {}\n ),\n stream,\n ...args\n }).reduce((acc, [key, val]) => {\n return acc + `${key}=${val}&`\n }, MASTODON_STREAMING + '?')\n}\n\nconst MASTODON_STREAMING_EVENTS = new Set([\n 'update',\n 'notification',\n 'delete',\n 'filters_changed',\n 'status.update'\n])\n\nconst PLEROMA_STREAMING_EVENTS = new Set([\n 'pleroma:chat_update'\n])\n\n// A thin wrapper around WebSocket API that allows adding a pre-processor to it\n// Uses EventTarget and a CustomEvent to proxy events\nexport const ProcessedWS = ({\n url,\n preprocessor = handleMastoWS,\n id = 'Unknown'\n}) => {\n const eventTarget = new EventTarget()\n const socket = new WebSocket(url)\n if (!socket) throw new Error(`Failed to create socket ${id}`)\n const proxy = (original, eventName, processor = a => a) => {\n original.addEventListener(eventName, (eventData) => {\n eventTarget.dispatchEvent(new CustomEvent(\n eventName,\n { detail: processor(eventData) }\n ))\n })\n }\n socket.addEventListener('open', (wsEvent) => {\n console.debug(`[WS][${id}] Socket connected`, wsEvent)\n })\n socket.addEventListener('error', (wsEvent) => {\n console.debug(`[WS][${id}] Socket errored`, wsEvent)\n })\n socket.addEventListener('close', (wsEvent) => {\n console.debug(\n `[WS][${id}] Socket disconnected with code ${wsEvent.code}`,\n wsEvent\n )\n })\n // Commented code reason: very spammy, uncomment to enable message debug logging\n /*\n socket.addEventListener('message', (wsEvent) => {\n console.debug(\n `[WS][${id}] Message received`,\n wsEvent\n )\n })\n /**/\n\n proxy(socket, 'open')\n proxy(socket, 'close')\n proxy(socket, 'message', preprocessor)\n proxy(socket, 'error')\n\n // 1000 = Normal Closure\n eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }\n eventTarget.getState = () => socket.readyState\n\n return eventTarget\n}\n\nexport const handleMastoWS = (wsEvent) => {\n const { data } = wsEvent\n if (!data) return\n const parsedEvent = JSON.parse(data)\n const { event, payload } = parsedEvent\n if (MASTODON_STREAMING_EVENTS.has(event) || PLEROMA_STREAMING_EVENTS.has(event)) {\n // MastoBE and PleromaBE both send payload for delete as a PLAIN string\n if (event === 'delete') {\n return { event, id: payload }\n }\n const data = payload ? JSON.parse(payload) : null\n if (event === 'update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'status.update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'notification') {\n return { event, notification: parseNotification(data) }\n } else if (event === 'pleroma:chat_update') {\n return { event, chatUpdate: parseChat(data) }\n }\n } else {\n console.warn('Unknown event', wsEvent)\n return null\n }\n}\n\nexport const WSConnectionStatus = Object.freeze({\n JOINED: 1,\n CLOSED: 2,\n ERROR: 3,\n DISABLED: 4,\n STARTING: 5,\n STARTING_INITIAL: 6\n})\n\nconst chats = ({ credentials }) => {\n return fetch(PLEROMA_CHATS_URL, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => {\n return { chats: data.map(parseChat).filter(c => c) }\n })\n}\n\nconst getOrCreateChat = ({ accountId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_URL(accountId),\n method: 'POST',\n credentials\n })\n}\n\nconst chatMessages = ({ id, credentials, maxId, sinceId, limit = 20 }) => {\n let url = PLEROMA_CHAT_MESSAGES_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n\n return promisedRequest({\n url,\n method: 'GET',\n credentials\n })\n}\n\nconst sendChatMessage = ({ id, content, mediaId = null, idempotencyKey, credentials }) => {\n const payload = {\n content\n }\n\n if (mediaId) {\n payload.media_id = mediaId\n }\n\n const headers = {}\n\n if (idempotencyKey) {\n headers['idempotency-key'] = idempotencyKey\n }\n\n return promisedRequest({\n url: PLEROMA_CHAT_MESSAGES_URL(id),\n method: 'POST',\n payload,\n credentials,\n headers\n })\n}\n\nconst readChat = ({ id, lastReadId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_READ_URL(id),\n method: 'POST',\n payload: {\n last_read_id: lastReadId\n },\n credentials\n })\n}\n\nconst deleteChatMessage = ({ chatId, messageId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_CHAT_MESSAGE_URL(chatId, messageId),\n method: 'DELETE',\n credentials\n })\n}\n\nconst setReportState = ({ id, state, credentials }) => {\n // TODO: Can't use promisedRequest because on OK this does not return json\n // See https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1322\n return fetch(PLEROMA_ADMIN_REPORTS, {\n headers: {\n ...authHeaders(credentials),\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n method: 'PATCH',\n body: JSON.stringify({\n reports: [{\n id,\n state\n }]\n })\n })\n .then(data => {\n if (data.status >= 500) {\n throw Error(data.statusText)\n } else if (data.status >= 400) {\n return data.json()\n }\n return data\n })\n .then(data => {\n if (data.errors) {\n throw Error(data.errors[0].message)\n }\n })\n}\n\nconst apiService = {\n verifyCredentials,\n fetchTimeline,\n fetchPinnedStatuses,\n fetchConversation,\n fetchStatus,\n fetchStatusSource,\n fetchStatusHistory,\n fetchFriends,\n exportFriends,\n fetchFollowers,\n followUser,\n unfollowUser,\n pinOwnStatus,\n unpinOwnStatus,\n muteConversation,\n unmuteConversation,\n blockUser,\n unblockUser,\n removeUserFromFollowers,\n editUserNote,\n fetchUser,\n fetchUserByName,\n fetchUserRelationship,\n favorite,\n unfavorite,\n retweet,\n unretweet,\n bookmarkStatus,\n unbookmarkStatus,\n postStatus,\n editStatus,\n deleteStatus,\n uploadMedia,\n setMediaDescription,\n fetchMutes,\n muteUser,\n unmuteUser,\n subscribeUser,\n unsubscribeUser,\n fetchBlocks,\n fetchOAuthTokens,\n revokeOAuthToken,\n tagUser,\n untagUser,\n deleteUser,\n addRight,\n deleteRight,\n activateUser,\n deactivateUser,\n register,\n getCaptcha,\n updateProfileImages,\n updateProfile,\n importMutes,\n importBlocks,\n importFollows,\n deleteAccount,\n changeEmail,\n moveAccount,\n addAlias,\n deleteAlias,\n listAliases,\n changePassword,\n settingsMFA,\n mfaDisableOTP,\n generateMfaBackupCodes,\n mfaSetupOTP,\n mfaConfirmOTP,\n addBackup,\n listBackups,\n fetchFollowRequests,\n fetchLists,\n createList,\n getList,\n updateList,\n getListAccounts,\n addAccountsToList,\n removeAccountsFromList,\n deleteList,\n approveUser,\n denyUser,\n suggestions,\n markNotificationsAsSeen,\n dismissNotification,\n vote,\n fetchPoll,\n fetchFavoritedByUsers,\n fetchRebloggedByUsers,\n fetchEmojiReactions,\n reactWithEmoji,\n unreactWithEmoji,\n reportUser,\n updateNotificationSettings,\n search2,\n searchUsers,\n fetchKnownDomains,\n fetchDomainMutes,\n muteDomain,\n unmuteDomain,\n chats,\n getOrCreateChat,\n chatMessages,\n sendChatMessage,\n readChat,\n deleteChatMessage,\n setReportState,\n fetchUserInLists,\n fetchAnnouncements,\n dismissAnnouncement,\n postAnnouncement,\n editAnnouncement,\n deleteAnnouncement,\n adminFetchAnnouncements\n}\n\nexport default apiService\n","import { invertLightness, contrastRatio } from 'chromatism'\n\n// useful for visualizing color when debugging\nexport const consoleColor = (color) => console.log('%c##########', 'background: ' + color + '; color: ' + color)\n\n/**\n * Convert r, g, b values into hex notation. All components are [0-255]\n *\n * @param {Number|String|Object} r - Either red component, {r,g,b} object, or hex string\n * @param {Number} [g] - Green component\n * @param {Number} [b] - Blue component\n */\nexport const rgb2hex = (r, g, b) => {\n if (r === null || typeof r === 'undefined') {\n return undefined\n }\n // TODO: clean up this mess\n if (r[0] === '#' || r === 'transparent') {\n return r\n }\n if (typeof r === 'object') {\n ({ r, g, b } = r)\n }\n [r, g, b] = [r, g, b].map(val => {\n val = Math.ceil(val)\n val = val < 0 ? 0 : val\n val = val > 255 ? 255 : val\n return val\n })\n return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`\n}\n\n/**\n * Converts 8-bit RGB component into linear component\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n * https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation\n *\n * @param {Number} bit - color component [0..255]\n * @returns {Number} linear component [0..1]\n */\nconst c2linear = (bit) => {\n // W3C gives 0.03928 while wikipedia states 0.04045\n // what those magical numbers mean - I don't know.\n // something about gamma-correction, i suppose.\n // Sticking with W3C example.\n const c = bit / 255\n if (c < 0.03928) {\n return c / 12.92\n } else {\n return Math.pow((c + 0.055) / 1.055, 2.4)\n }\n}\n\n/**\n * Converts sRGB into linear RGB\n * @param {Object} srgb - sRGB color\n * @returns {Object} linear rgb color\n */\nconst srgbToLinear = (srgb) => {\n return 'rgb'.split('').reduce((acc, c) => { acc[c] = c2linear(srgb[c]); return acc }, {})\n}\n\n/**\n * Calculates relative luminance for given color\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n *\n * @param {Object} srgb - sRGB color\n * @returns {Number} relative luminance\n */\nexport const relativeLuminance = (srgb) => {\n const { r, g, b } = srgbToLinear(srgb)\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n\n/**\n * Generates color ratio between two colors. Order is unimporant\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n *\n * @param {Object} a - sRGB color\n * @param {Object} b - sRGB color\n * @returns {Number} color ratio\n */\nexport const getContrastRatio = (a, b) => {\n const la = relativeLuminance(a)\n const lb = relativeLuminance(b)\n const [l1, l2] = la > lb ? [la, lb] : [lb, la]\n\n return (l1 + 0.05) / (l2 + 0.05)\n}\n\n/**\n * Same as `getContrastRatio` but for multiple layers in-between\n *\n * @param {Object} text - text color (topmost layer)\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n * @param {Object} bedrock - layer at the very bottom\n */\nexport const getContrastRatioLayers = (text, layers, bedrock) => {\n return getContrastRatio(alphaBlendLayers(bedrock, layers), text)\n}\n\n/**\n * This performs alpha blending between solid background and semi-transparent foreground\n *\n * @param {Object} fg - top layer color\n * @param {Number} fga - top layer's alpha\n * @param {Object} bg - bottom layer color\n * @returns {Object} sRGB of resulting color\n */\nexport const alphaBlend = (fg, fga, bg) => {\n if (fga === 1 || typeof fga === 'undefined') return fg\n return 'rgb'.split('').reduce((acc, c) => {\n // Simplified https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending\n // for opaque bg and transparent fg\n acc[c] = (fg[c] * fga + bg[c] * (1 - fga))\n return acc\n }, {})\n}\n\n/**\n * Same as `alphaBlend` but for multiple layers in-between\n *\n * @param {Object} bedrock - layer at the very bottom\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n */\nexport const alphaBlendLayers = (bedrock, layers) => layers.reduce((acc, [color, opacity]) => {\n return alphaBlend(color, opacity, acc)\n}, bedrock)\n\nexport const invert = (rgb) => {\n return 'rgb'.split('').reduce((acc, c) => {\n acc[c] = 255 - rgb[c]\n return acc\n }, {})\n}\n\n/**\n * Converts #rrggbb hex notation into an {r, g, b} object\n *\n * @param {String} hex - #rrggbb string\n * @returns {Object} rgb representation of the color, values are 0-255\n */\nexport const hex2rgb = (hex) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n }\n : null\n}\n\n/**\n * Old somewhat weird function for mixing two colors together\n *\n * @param {Object} a - one color (rgb)\n * @param {Object} b - other color (rgb)\n * @returns {Object} result\n */\nexport const mixrgb = (a, b) => {\n return 'rgb'.split('').reduce((acc, k) => {\n acc[k] = (a[k] + b[k]) / 2\n return acc\n }, {})\n}\n/**\n * Converts rgb object into a CSS rgba() color\n *\n * @param {Object} color - rgb\n * @returns {String} CSS rgba() color\n */\nexport const rgba2css = function (rgba) {\n return `rgba(${Math.floor(rgba.r)}, ${Math.floor(rgba.g)}, ${Math.floor(rgba.b)}, ${rgba.a})`\n}\n\n/**\n * Get text color for given background color and intended text color\n * This checks if text and background don't have enough color and inverts\n * text color's lightness if needed. If text color is still not enough it\n * will fall back to black or white\n *\n * @param {Object} bg - background color\n * @param {Object} text - intended text color\n * @param {Boolean} preserve - try to preserve intended text color's hue/saturation (i.e. no BW)\n */\nexport const getTextColor = function (bg, text, preserve) {\n const contrast = getContrastRatio(bg, text)\n\n if (contrast < 4.5) {\n const base = typeof text.a !== 'undefined' ? { a: text.a } : {}\n const result = Object.assign(base, invertLightness(text).rgb)\n if (!preserve && getContrastRatio(bg, result) < 4.5) {\n // B&W\n return contrastRatio(bg, text).rgb\n }\n // Inverted color\n return result\n }\n return text\n}\n\n/**\n * Converts color to CSS Color value\n *\n * @param {Object|String} input - color\n * @param {Number} [a] - alpha value\n * @returns {String} a CSS Color value\n */\nexport const getCssColor = (input, a) => {\n let rgb = {}\n if (typeof input === 'object') {\n rgb = input\n } else if (typeof input === 'string') {\n if (input.startsWith('#')) {\n rgb = hex2rgb(input)\n } else {\n return input\n }\n }\n return rgba2css({ ...rgb, a })\n}\n","import isFunction from 'lodash/isFunction'\n\nconst getComponentOptions = (Component) => (isFunction(Component)) ? Component.options : Component\n\nconst getComponentProps = (Component) => getComponentOptions(Component).props\n\nexport {\n getComponentOptions,\n getComponentProps\n}\n","export const SECOND = 1000\nexport const MINUTE = 60 * SECOND\nexport const HOUR = 60 * MINUTE\nexport const DAY = 24 * HOUR\nexport const WEEK = 7 * DAY\nexport const MONTH = 30 * DAY\nexport const YEAR = 365.25 * DAY\n\nexport const relativeTime = (date, nowThreshold = 1) => {\n if (typeof date === 'string') date = Date.parse(date)\n const round = Date.now() > date ? Math.floor : Math.ceil\n const d = Math.abs(Date.now() - date)\n const r = { num: round(d / YEAR), key: 'time.unit.years' }\n if (d < nowThreshold * SECOND) {\n r.num = 0\n r.key = 'time.now'\n } else if (d < MINUTE) {\n r.num = round(d / SECOND)\n r.key = 'time.unit.seconds'\n } else if (d < HOUR) {\n r.num = round(d / MINUTE)\n r.key = 'time.unit.minutes'\n } else if (d < DAY) {\n r.num = round(d / HOUR)\n r.key = 'time.unit.hours'\n } else if (d < WEEK) {\n r.num = round(d / DAY)\n r.key = 'time.unit.days'\n } else if (d < MONTH) {\n r.num = round(d / WEEK)\n r.key = 'time.unit.weeks'\n } else if (d < YEAR) {\n r.num = round(d / MONTH)\n r.key = 'time.unit.months'\n }\n return r\n}\n\nexport const relativeTimeShort = (date, nowThreshold = 1) => {\n const r = relativeTime(date, nowThreshold)\n r.key += '_short'\n return r\n}\n","export const showDesktopNotification = (rootState, desktopNotificationOpts) => {\n if (!('Notification' in window && window.Notification.permission === 'granted')) return\n if (rootState.statuses.notifications.desktopNotificationSilence) { return }\n\n const desktopNotification = new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts)\n // Chrome is known for not closing notifications automatically\n // according to MDN, anyway.\n setTimeout(desktopNotification.close.bind(desktopNotification), 5000)\n}\n","import escape from 'escape-html'\nimport parseLinkHeader from 'parse-link-header'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\nimport punycode from 'punycode.js'\n\n/** NOTICE! **\n * Do not initialize UI-generated data here.\n * It will override existing data.\n *\n * i.e. user.pinnedStatusIds was set to [] here\n * UI code would update it with data but upon next user fetch\n * it would be reverted back to []\n */\n\nconst qvitterStatusType = (status) => {\n if (status.is_post_verb) {\n return 'status'\n }\n\n if (status.retweeted_status) {\n return 'retweet'\n }\n\n if ((typeof status.uri === 'string' && status.uri.match(/(fave|objectType=Favourite)/)) ||\n (typeof status.text === 'string' && status.text.match(/favorited/))) {\n return 'favorite'\n }\n\n if (status.text.match(/deleted notice {{tag/) || status.qvitter_delete_notice) {\n return 'deletion'\n }\n\n if (status.text.match(/started following/) || status.activity_type === 'follow') {\n return 'follow'\n }\n\n return 'unknown'\n}\n\nexport const parseUser = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !Object.prototype.hasOwnProperty.call(data, 'avatar')\n\n output.inLists = null\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.fqn = data.fqn\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n if (data.pleroma.settings_store) {\n output.storage = data.pleroma.settings_store['pleroma-fe']\n }\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n\n if (data.pleroma.privileges) {\n output.privileges = data.pleroma.privileges\n } else if (data.pleroma.is_admin) {\n output.privileges = [\n 'users_read',\n 'users_manage_invites',\n 'users_manage_activation_state',\n 'users_manage_tags',\n 'users_manage_credentials',\n 'users_delete',\n 'messages_read',\n 'messages_delete',\n 'instances_delete',\n 'reports_manage_reports',\n 'moderation_log_read',\n 'announcements_manage_announcements',\n 'emoji_manage_emoji',\n 'statistics_read'\n ]\n } else if (data.pleroma.is_moderator) {\n output.privileges = [\n 'messages_delete',\n 'reports_manage_reports'\n ]\n } else {\n output.privileges = []\n }\n }\n\n if (data.source) {\n output.description = data.source.note\n output.default_scope = data.source.privacy\n output.fields = data.source.fields\n if (data.source.pleroma) {\n output.no_rich_text = data.source.pleroma.no_rich_text\n output.show_role = data.source.pleroma.show_role\n output.discoverable = data.source.pleroma.discoverable\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n const unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n output.screen_name_ui_contains_non_ascii = true\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n } else {\n output.screen_name_ui_contains_non_ascii = false\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !Object.prototype.hasOwnProperty.call(data, 'oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseSource = (data) => {\n const output = {}\n\n output.text = data.text\n output.spoiler_text = data.spoiler_text\n output.content_type = data.content_type\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n output.edited_at = data.edited_at\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n if (Object.prototype.hasOwnProperty.call(data, 'originalStatus')) {\n Object.assign(output, data.originalStatus)\n }\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n favourite: 'like',\n reblog: 'repeat'\n }\n const masto = !Object.prototype.hasOwnProperty.call(data, 'ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n if (data.report) {\n output.report = data.report\n output.report.content = data.report.content\n output.report.acct = parseUser(data.report.account)\n output.report.actor = parseUser(data.report.actor)\n output.report.statuses = data.report.statuses.map(parseStatus)\n }\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","const createFaviconService = () => {\n const favicons = []\n const faviconWidth = 128\n const faviconHeight = 128\n const badgeRadius = 32\n\n const initFaviconService = () => {\n const nodes = document.querySelectorAll('link[rel=\"icon\"]')\n nodes.forEach(favicon => {\n if (favicon) {\n const favcanvas = document.createElement('canvas')\n favcanvas.width = faviconWidth\n favcanvas.height = faviconHeight\n const favimg = new Image()\n favimg.crossOrigin = 'anonymous'\n favimg.src = favicon.href\n const favcontext = favcanvas.getContext('2d')\n favicons.push({ favcanvas, favimg, favcontext, favicon })\n }\n })\n }\n\n const isImageLoaded = (img) => img.complete && img.naturalHeight !== 0\n\n const clearFaviconBadge = () => {\n if (favicons.length === 0) return\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favicon) return\n\n favcontext.clearRect(0, 0, faviconWidth, faviconHeight)\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n const drawFaviconBadge = () => {\n if (favicons.length === 0) return\n clearFaviconBadge()\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favcontext) return\n\n const style = getComputedStyle(document.body)\n const badgeColor = `${style.getPropertyValue('--badgeNotification') || 'rgb(240, 100, 100)'}`\n\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favcontext.fillStyle = badgeColor\n favcontext.beginPath()\n favcontext.arc(faviconWidth - badgeRadius, badgeRadius, badgeRadius, 0, 2 * Math.PI, false)\n favcontext.fill()\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n return {\n initFaviconService,\n clearFaviconBadge,\n drawFaviconBadge\n }\n}\n\nconst FaviconService = createFaviconService()\n\nexport default FaviconService\n","const fileSizeFormat = (numArg) => {\n const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB']\n let num = numArg\n if (num < 1) {\n return num + ' ' + units[0]\n }\n\n const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1)\n num = (num / Math.pow(1024, exponent)).toFixed(2) * 1\n const unit = units[exponent]\n return { num, unit }\n}\nconst fileSizeFormatService = {\n fileSizeFormat\n}\nexport default fileSizeFormatService\n","// TODO this func might as well take the entire file and use its mimetype\n// or the entire service could be just mimetype service that only operates\n// on mimetypes and not files. Currently the naming is confusing.\nconst fileType = mimetype => {\n if (mimetype.match(/flash/)) {\n return 'flash'\n }\n\n if (mimetype.match(/text\\/html/)) {\n return 'html'\n }\n\n if (mimetype.match(/image/)) {\n return 'image'\n }\n\n if (mimetype.match(/video/)) {\n return 'video'\n }\n\n if (mimetype.match(/audio/)) {\n return 'audio'\n }\n\n return 'unknown'\n}\n\nconst fileMatchesSomeType = (types, file) =>\n types.some(type => fileType(file.mimetype) === type)\n\nconst fileTypeService = {\n fileType,\n fileMatchesSomeType\n}\n\nexport default fileTypeService\n","import languagesObject from '../../i18n/messages'\nimport ISO6391 from 'iso-639-1'\nimport _ from 'lodash'\n\nconst specialLanguageCodes = {\n ja_easy: 'ja',\n zh_Hant: 'zh-HANT',\n zh: 'zh-Hans'\n}\n\nconst internalToBrowserLocale = code => specialLanguageCodes[code] || code\n\nconst internalToBackendLocale = code => internalToBrowserLocale(code).replace('_', '-')\n\nconst getLanguageName = (code) => {\n const specialLanguageNames = {\n ja_easy: 'やさしいにほんご',\n zh: '简体中文',\n zh_Hant: '繁體中文'\n }\n const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code)\n const browserLocale = internalToBrowserLocale(code)\n return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1)\n}\n\nconst languages = _.map(languagesObject.languages, (code) => ({ code, name: getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name))\n\nconst localeService = {\n internalToBrowserLocale,\n internalToBackendLocale,\n languages,\n getLanguageName\n}\n\nexport default localeService\n","import { filter, sortBy, includes } from 'lodash'\nimport { muteWordHits } from '../status_parser/status_parser.js'\nimport { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => {\n const rootState = store.rootState || store.state\n\n return ([\n rootState.config.notificationVisibility.likes && 'like',\n rootState.config.notificationVisibility.mentions && 'mention',\n rootState.config.notificationVisibility.repeats && 'repeat',\n rootState.config.notificationVisibility.follows && 'follow',\n rootState.config.notificationVisibility.followRequest && 'follow_request',\n rootState.config.notificationVisibility.moves && 'move',\n rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction',\n rootState.config.notificationVisibility.reports && 'pleroma:report',\n rootState.config.notificationVisibility.polls && 'poll'\n ].filter(_ => _))\n}\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction', 'poll']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nexport const isValidNotification = (notification) => {\n if (isStatusNotification(notification.type) && !notification.status) {\n return false\n }\n return true\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst isMutedNotification = (store, notification) => {\n if (!notification.status) return\n return notification.status.muted || muteWordHits(notification.status, store.rootGetters.mergedConfig.muteWords).length > 0\n}\n\nexport const maybeShowNotification = (store, notification) => {\n const rootState = store.rootState || store.state\n\n if (notification.seen) return\n if (!visibleTypes(store).includes(notification.type)) return\n if (notification.type === 'mention' && isMutedNotification(store, notification)) return\n\n const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)\n showDesktopNotification(rootState, notificationObject)\n}\n\nexport const filteredNotificationsFromStore = (store, types) => {\n // map is just to clone the array since sort mutates it and it causes some issues\n let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n sortedNotifications = sortBy(sortedNotifications, 'seen')\n return sortedNotifications.filter(\n (notification) => (types || visibleTypes(store)).includes(notification.type)\n )\n}\n\nexport const unseenNotificationsFromStore = store =>\n filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)\n\nexport const prepareNotificationObject = (notification, i18n) => {\n const notifObj = {\n tag: notification.id\n }\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.title = title\n notifObj.icon = notification.from_profile.profile_image_url\n let i18nString\n switch (notification.type) {\n case 'like':\n i18nString = 'favorited_you'\n break\n case 'repeat':\n i18nString = 'repeated_you'\n break\n case 'follow':\n i18nString = 'followed_you'\n break\n case 'move':\n i18nString = 'migrated_to'\n break\n case 'follow_request':\n i18nString = 'follow_request'\n break\n case 'pleroma:report':\n i18nString = 'submitted_report'\n break\n case 'poll':\n i18nString = 'poll_ended'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = i18n.t('notifications.' + i18nString)\n } else if (isStatusNotification(notification.type)) {\n notifObj.body = notification.status.text\n }\n\n // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...\n if (status && status.attachments && status.attachments.length > 0 && !status.nsfw &&\n status.attachments[0].mimetype.startsWith('image/')) {\n notifObj.image = status.attachments[0].url\n }\n\n return notifObj\n}\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\n// For using include_types when fetching notifications.\n// Note: chat_mention excluded as pleroma-fe polls them separately\nconst mastoApiNotificationTypes = [\n 'mention',\n 'favourite',\n 'reblog',\n 'follow',\n 'move',\n 'pleroma:emoji_reaction',\n 'pleroma:report'\n]\n\nconst update = ({ store, notifications, older }) => {\n store.dispatch('addNewNotifications', { notifications, older })\n}\n\nconst fetchAndUpdate = ({ store, credentials, older = false, since }) => {\n const args = { credentials }\n const { getters } = store\n const rootState = store.rootState || store.state\n const timelineData = rootState.statuses.notifications\n const hideMutedPosts = getters.mergedConfig.hideMutedPosts\n\n args.includeTypes = mastoApiNotificationTypes\n args.withMuted = !hideMutedPosts\n\n args.timeline = 'notifications'\n if (older) {\n if (timelineData.minId !== Number.POSITIVE_INFINITY) {\n args.until = timelineData.minId\n }\n return fetchNotifications({ store, args, older })\n } else {\n // fetch new notifications\n if (since === undefined && timelineData.maxId !== Number.POSITIVE_INFINITY) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n const result = fetchNotifications({ store, args, older })\n\n // If there's any unread notifications, try fetch notifications since\n // the newest read notification to check if any of the unread notifs\n // have changed their 'seen' state (marked as read in another session), so\n // we can update the state in this session to mark them as read as well.\n // The normal maxId-check does not tell if older notifications have changed\n const notifications = timelineData.data\n const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)\n const numUnseenNotifs = notifications.length - readNotifsIds.length\n if (numUnseenNotifs > 0 && readNotifsIds.length > 0) {\n args.since = Math.max(...readNotifsIds)\n fetchNotifications({ store, args, older })\n }\n\n return result\n }\n}\n\nconst fetchNotifications = ({ store, args, older }) => {\n return apiService.fetchTimeline(args)\n .then((response) => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n const notifications = response.data\n update({ store, notifications, older })\n return notifications\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'notifications.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n console.error(error)\n })\n}\n\nconst startFetching = ({ credentials, store }) => {\n // Initially there's set flag to silence all desktop notifications so\n // that there won't spam of them when user just opened up the FE we\n // reset that flag after a while to show new notifications once again.\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst notificationsFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default notificationsFetcher\n","export const findOffset = (child, parent, { top = 0, left = 0 } = {}, ignorePadding = true) => {\n const result = {\n top: top + child.offsetTop,\n left: left + child.offsetLeft\n }\n if (!ignorePadding && child !== window) {\n const { topPadding, leftPadding } = findPadding(child)\n result.top += ignorePadding ? 0 : topPadding\n result.left += ignorePadding ? 0 : leftPadding\n }\n\n if (child.offsetParent && window.getComputedStyle(child.offsetParent).position !== 'sticky' && (parent === window || parent.contains(child.offsetParent) || parent === child.offsetParent)) {\n return findOffset(child.offsetParent, parent, result, false)\n } else {\n if (parent !== window) {\n const { topPadding, leftPadding } = findPadding(parent)\n result.top += topPadding\n result.left += leftPadding\n }\n return result\n }\n}\n\nconst findPadding = (el) => {\n const topPaddingStr = window.getComputedStyle(el)['padding-top']\n const topPadding = Number(topPaddingStr.substring(0, topPaddingStr.length - 2))\n const leftPaddingStr = window.getComputedStyle(el)['padding-left']\n const leftPadding = Number(leftPaddingStr.substring(0, leftPaddingStr.length - 2))\n\n return { topPadding, leftPadding }\n}\n","\n// promiseInterval - replacement for setInterval for promises, starts counting\n// the interval only after a promise is done instead of immediately.\n// - promiseCall is a function that returns a promise, it's called the first\n// time after the first interval.\n// - interval is the interval delay in ms.\n\nexport const promiseInterval = (promiseCall, interval) => {\n let stopped = false\n let timeout = null\n\n const func = () => {\n const promise = promiseCall()\n // something unexpected happened and promiseCall did not\n // return a promise, abort the loop.\n if (!(promise && promise.finally)) {\n console.warn('promiseInterval: promise call did not return a promise, stopping interval.')\n return\n }\n promise.finally(() => {\n if (stopped) return\n timeout = window.setTimeout(func, interval)\n })\n }\n\n const stopFetcher = () => {\n stopped = true\n window.clearTimeout(timeout)\n }\n\n timeout = window.setTimeout(func, interval)\n\n return { stop: stopFetcher }\n}\n","import { filter } from 'lodash'\n\nexport const muteWordHits = (status, muteWords) => {\n const statusText = status.text.toLowerCase()\n const statusSummary = status.summary.toLowerCase()\n const hits = filter(muteWords, (muteWord) => {\n return statusText.includes(muteWord.toLowerCase()) || statusSummary.includes(muteWord.toLowerCase())\n })\n\n return hits\n}\n","import { map } from 'lodash'\nimport apiService from '../api/api.service.js'\n\nconst postStatus = ({\n store,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n media = [],\n inReplyToStatusId = undefined,\n contentType = 'text/plain',\n preview = false,\n idempotencyKey = ''\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.postStatus({\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n mediaIds,\n inReplyToStatusId,\n contentType,\n poll,\n preview,\n idempotencyKey\n })\n .then((data) => {\n if (!data.error && !preview) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n return {\n error: err.message\n }\n })\n}\n\nconst editStatus = ({\n store,\n statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media = [],\n contentType = 'text/plain'\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.editStatus({\n id: statusId,\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds,\n contentType\n })\n .then((data) => {\n if (!data.error) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n}\n\nconst uploadMedia = ({ store, formData }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.uploadMedia({ credentials, formData })\n}\n\nconst setMediaDescription = ({ store, id, description }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.setMediaDescription({ credentials, id, description })\n}\n\nconst statusPosterService = {\n postStatus,\n editStatus,\n uploadMedia,\n setMediaDescription\n}\n\nexport default statusPosterService\n","import { convert } from 'chromatism'\nimport { rgb2hex, hex2rgb, rgba2css, getCssColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { getColors, computeDynamicColor, getOpacitySlot } from '../theme_data/theme_data.service.js'\nimport { defaultState } from '../../modules/config.js'\n\nexport const applyTheme = (input) => {\n const { rules } = generatePreset(input)\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules.radii} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.colors} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.shadows} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.fonts} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nconst configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth }) =>\n ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth })\n\nconst defaultConfigColumns = configColumns(defaultState)\n\nexport const applyConfig = (config) => {\n const columns = configColumns(config)\n\n if (columns === defaultConfigColumns) {\n return\n }\n\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const rules = Object\n .entries(columns)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`).join(';')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nexport const getCssShadow = (input, usesDropShadow) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n .filter(_ => usesDropShadow ? _.inset : _)\n .map((shad) => [\n shad.x,\n shad.y,\n shad.blur,\n shad.spread\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha),\n shad.inset ? 'inset' : ''\n ]).join(' ')).join(', ')\n}\n\nconst getCssShadowFilter = (input) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n // drop-shadow doesn't support inset or spread\n .filter((shad) => !shad.inset && Number(shad.spread) === 0)\n .map((shad) => [\n shad.x,\n shad.y,\n // drop-shadow's blur is twice as strong compared to box-shadow\n shad.blur / 2\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha)\n ]).join(' '))\n .map(_ => `drop-shadow(${_})`)\n .join(' ')\n}\n\nexport const generateColors = (themeData) => {\n const sourceColors = !themeData.themeEngineVersion\n ? colors2to3(themeData.colors || themeData)\n : themeData.colors || themeData\n\n const { colors, opacity } = getColors(sourceColors, themeData.opacity || {})\n\n const htmlColors = Object.entries(colors)\n .reduce((acc, [k, v]) => {\n if (!v) return acc\n acc.solid[k] = rgb2hex(v)\n acc.complete[k] = typeof v.a === 'undefined' ? rgb2hex(v) : rgba2css(v)\n return acc\n }, { complete: {}, solid: {} })\n return {\n rules: {\n colors: Object.entries(htmlColors.complete)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`)\n .join(';')\n },\n theme: {\n colors: htmlColors.solid,\n opacity\n }\n }\n}\n\nexport const generateRadii = (input) => {\n let inputRadii = input.radii || {}\n // v1 -> v2\n if (typeof input.btnRadius !== 'undefined') {\n inputRadii = Object\n .entries(input)\n .filter(([k, v]) => k.endsWith('Radius'))\n .reduce((acc, e) => { acc[e[0].split('Radius')[0]] = e[1]; return acc }, {})\n }\n const radii = Object.entries(inputRadii).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {\n btn: 4,\n input: 4,\n checkbox: 2,\n panel: 10,\n avatar: 5,\n avatarAlt: 50,\n tooltip: 2,\n attachment: 5,\n chatMessage: inputRadii.panel\n })\n\n return {\n rules: {\n radii: Object.entries(radii).filter(([k, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';')\n },\n theme: {\n radii\n }\n }\n}\n\nexport const generateFonts = (input) => {\n const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, acc[k])\n return acc\n }, {\n interface: {\n family: 'sans-serif'\n },\n input: {\n family: 'inherit'\n },\n post: {\n family: 'inherit'\n },\n postCode: {\n family: 'monospace'\n }\n })\n\n return {\n rules: {\n fonts: Object\n .entries(fonts)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}Font: ${v.family}`).join(';')\n },\n theme: {\n fonts\n }\n }\n}\n\nconst border = (top, shadow) => ({\n x: 0,\n y: top ? 1 : -1,\n blur: 0,\n spread: 0,\n color: shadow ? '#000000' : '#FFFFFF',\n alpha: 0.2,\n inset: true\n})\nconst buttonInsetFakeBorders = [border(true, false), border(false, true)]\nconst inputInsetFakeBorders = [border(true, true), border(false, false)]\nconst hoverGlow = {\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '--faint',\n alpha: 1\n}\n\nexport const DEFAULT_SHADOWS = {\n panel: [{\n x: 1,\n y: 1,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n topBar: [{\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n popup: [{\n x: 2,\n y: 2,\n blur: 3,\n spread: 0,\n color: '#000000',\n alpha: 0.5\n }],\n avatar: [{\n x: 0,\n y: 1,\n blur: 8,\n spread: 0,\n color: '#000000',\n alpha: 0.7\n }],\n avatarStatus: [],\n panelHeader: [],\n button: [{\n x: 0,\n y: 0,\n blur: 2,\n spread: 0,\n color: '#000000',\n alpha: 1\n }, ...buttonInsetFakeBorders],\n buttonHover: [hoverGlow, ...buttonInsetFakeBorders],\n buttonPressed: [hoverGlow, ...inputInsetFakeBorders],\n input: [...inputInsetFakeBorders, {\n x: 0,\n y: 0,\n blur: 2,\n inset: true,\n spread: 0,\n color: '#000000',\n alpha: 1\n }]\n}\nexport const generateShadows = (input, colors) => {\n // TODO this is a small hack for `mod` to work with shadows\n // this is used to get the \"context\" of shadow, i.e. for `mod` properly depend on background color of element\n const hackContextDict = {\n button: 'btn',\n panel: 'bg',\n top: 'topBar',\n popup: 'popover',\n avatar: 'bg',\n panelHeader: 'panel',\n input: 'input'\n }\n\n const cleanInputShadows = Object.fromEntries(\n Object.entries(input.shadows || {})\n .map(([name, shadowSlot]) => [\n name,\n // defaulting color to black to avoid potential problems\n shadowSlot.map(shadowDef => ({ color: '#000000', ...shadowDef }))\n ])\n )\n const inputShadows = cleanInputShadows && !input.themeEngineVersion\n ? shadows2to3(cleanInputShadows, input.opacity)\n : cleanInputShadows || {}\n const shadows = Object.entries({\n ...DEFAULT_SHADOWS,\n ...inputShadows\n }).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const slotFirstWord = slotName.replace(/[A-Z].*$/, '')\n const colorSlotName = hackContextDict[slotFirstWord]\n const isLightOnDark = relativeLuminance(convert(colors[colorSlotName]).rgb) < 0.5\n const mod = isLightOnDark ? 1 : -1\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n color: rgb2hex(computeDynamicColor(\n def.color,\n (variableSlot) => convert(colors[variableSlot]).rgb,\n mod\n ))\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n\n return {\n rules: {\n shadows: Object\n .entries(shadows)\n // TODO for v2.2: if shadow doesn't have non-inset shadows with spread > 0 - optionally\n // convert all non-inset shadows into filter: drop-shadow() to boost performance\n .map(([k, v]) => [\n `--${k}Shadow: ${getCssShadow(v)}`,\n `--${k}ShadowFilter: ${getCssShadowFilter(v)}`,\n `--${k}ShadowInset: ${getCssShadow(v, true)}`\n ].join(';'))\n .join(';')\n },\n theme: {\n shadows\n }\n }\n}\n\nexport const composePreset = (colors, radii, shadows, fonts) => {\n return {\n rules: {\n ...shadows.rules,\n ...colors.rules,\n ...radii.rules,\n ...fonts.rules\n },\n theme: {\n ...shadows.theme,\n ...colors.theme,\n ...radii.theme,\n ...fonts.theme\n }\n }\n}\n\nexport const generatePreset = (input) => {\n const colors = generateColors(input)\n return composePreset(\n colors,\n generateRadii(input),\n generateShadows(input, colors.theme.colors, colors.mod),\n generateFonts(input)\n )\n}\n\nexport const getThemes = () => {\n const cache = 'no-store'\n\n return window.fetch('/static/styles.json', { cache })\n .then((data) => data.json())\n .then((themes) => {\n return Object.entries(themes).map(([k, v]) => {\n let promise = null\n if (typeof v === 'object') {\n promise = Promise.resolve(v)\n } else if (typeof v === 'string') {\n promise = window.fetch(v, { cache })\n .then((data) => data.json())\n .catch((e) => {\n console.error(e)\n return null\n })\n }\n return [k, promise]\n })\n })\n .then((promises) => {\n return promises\n .reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {})\n })\n}\nexport const colors2to3 = (colors) => {\n return Object.entries(colors).reduce((acc, [slotName, color]) => {\n const btnPositions = ['', 'Panel', 'TopBar']\n switch (slotName) {\n case 'lightBg':\n return { ...acc, highlight: color }\n case 'btnText':\n return {\n ...acc,\n ...btnPositions\n .reduce(\n (statePositionAcc, position) =>\n ({ ...statePositionAcc, ['btn' + position + 'Text']: color })\n , {}\n )\n }\n default:\n return { ...acc, [slotName]: color }\n }\n }, {})\n}\n\n/**\n * This handles compatibility issues when importing v2 theme's shadows to current format\n *\n * Back in v2 shadows allowed you to use dynamic colors however those used pure CSS3 variables\n */\nexport const shadows2to3 = (shadows, opacity) => {\n return Object.entries(shadows).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const isDynamic = ({ color = '#000000' }) => color.startsWith('--')\n const getOpacity = ({ color }) => opacity[getOpacitySlot(color.substring(2).split(',')[0])]\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n alpha: isDynamic(def) ? getOpacity(def) || 1 : def.alpha\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n}\n\nexport const getPreset = (val) => {\n return getThemes()\n .then((themes) => themes[val] ? themes[val] : themes['pleroma-dark'])\n .then((theme) => {\n const isV1 = Array.isArray(theme)\n const data = isV1 ? {} : theme.theme\n\n if (isV1) {\n const bg = hex2rgb(theme[1])\n const fg = hex2rgb(theme[2])\n const text = hex2rgb(theme[3])\n const link = hex2rgb(theme[4])\n\n const cRed = hex2rgb(theme[5] || '#FF0000')\n const cGreen = hex2rgb(theme[6] || '#00FF00')\n const cBlue = hex2rgb(theme[7] || '#0000FF')\n const cOrange = hex2rgb(theme[8] || '#E3FF00')\n\n data.colors = { bg, fg, text, link, cRed, cBlue, cGreen, cOrange }\n }\n\n return { theme: data, source: theme.source }\n })\n}\n\nexport const setPreset = (val) => getPreset(val).then(data => applyTheme(data.theme))\n","import { invertLightness, brightness } from 'chromatism'\nimport { alphaBlend, mixrgb } from '../color_convert/color_convert.js'\n/* This is a definition of all layer combinations\n * each key is a topmost layer, each value represents layer underneath\n * this is essentially a simplified tree\n */\nexport const LAYERS = {\n undelay: null, // root\n topBar: null, // no transparency support\n badge: null, // no transparency support\n profileTint: null, // doesn't matter\n fg: null,\n bg: 'underlay',\n highlight: 'bg',\n panel: 'bg',\n popover: 'bg',\n selectedMenu: 'popover',\n btn: 'bg',\n btnPanel: 'panel',\n btnTopBar: 'topBar',\n input: 'bg',\n inputPanel: 'panel',\n inputTopBar: 'topBar',\n alert: 'bg',\n alertPanel: 'panel',\n poll: 'bg',\n chatBg: 'underlay',\n chatMessage: 'chatBg'\n}\n\n/* By default opacity slots have 1 as default opacity\n * this allows redefining it to something else\n */\nexport const DEFAULT_OPACITY = {\n profileTint: 0.5,\n alert: 0.5,\n input: 0.5,\n faint: 0.5,\n underlay: 0.15,\n alertPopup: 0.95\n}\n\n/** SUBJECT TO CHANGE IN THE FUTURE, this is all beta\n * Color and opacity slots definitions. Each key represents a slot.\n *\n * Short-hands:\n * String beginning with `--` - value after dashes treated as sole\n * dependency - i.e. `--value` equivalent to { depends: ['value']}\n * String beginning with `#` - value would be treated as solid color\n * defined in hexadecimal representation (i.e. #FFFFFF) and will be\n * used as default. `#FFFFFF` is equivalent to { default: '#FFFFFF'}\n *\n * Full definition:\n * @property {String[]} depends - color slot names this color depends ones.\n * cyclic dependencies are supported to some extent but not recommended.\n * @property {String} [opacity] - opacity slot used by this color slot.\n * opacity is inherited from parents. To break inheritance graph use null\n * @property {Number} [priority] - EXPERIMENTAL. used to pre-sort slots so\n * that slots with higher priority come earlier\n * @property {Function(mod, ...colors)} [color] - function that will be\n * used to determine the color. By default it just copies first color in\n * dependency list.\n * @argument {Number} mod - `1` (light-on-dark) or `-1` (dark-on-light)\n * depending on background color (for textColor)/given color.\n * @argument {...Object} deps - each argument after mod represents each\n * color from `depends` array. All colors take user customizations into\n * account and represented by { r, g, b } objects.\n * @returns {Object} resulting color, should be in { r, g, b } form\n *\n * @property {Boolean|String} [textColor] - true to mark color slot as text\n * color. This enables automatic text color generation for the slot. Use\n * 'preserve' string if you don't want text color to fall back to\n * black/white. Use 'bw' to only ever use black or white. This also makes\n * following properties required:\n * @property {String} [layer] - which layer the text sit on top on - used\n * to account for transparency in text color calculation\n * layer is inherited from parents. To break inheritance graph use null\n * @property {String} [variant] - which color slot is background (same as\n * above, used to account for transparency)\n */\nexport const SLOT_INHERITANCE = {\n bg: {\n depends: [],\n opacity: 'bg',\n priority: 1\n },\n wallpaper: {\n depends: ['bg'],\n color: (mod, bg) => brightness(-2 * mod, bg).rgb\n },\n fg: {\n depends: [],\n priority: 1\n },\n text: {\n depends: [],\n layer: 'bg',\n opacity: null,\n priority: 1\n },\n underlay: {\n default: '#000000',\n opacity: 'underlay'\n },\n link: {\n depends: ['accent'],\n priority: 1\n },\n accent: {\n depends: ['link'],\n priority: 1\n },\n faint: {\n depends: ['text'],\n opacity: 'faint'\n },\n faintLink: {\n depends: ['link'],\n opacity: 'faint'\n },\n postFaintLink: {\n depends: ['postLink'],\n opacity: 'faint'\n },\n\n cBlue: '#0000ff',\n cRed: '#FF0000',\n cGreen: '#00FF00',\n cOrange: '#E3FF00',\n\n profileBg: {\n depends: ['bg'],\n color: (mod, bg) => ({\n r: Math.floor(bg.r * 0.53),\n g: Math.floor(bg.g * 0.56),\n b: Math.floor(bg.b * 0.59)\n })\n },\n profileTint: {\n depends: ['bg'],\n layer: 'profileTint',\n opacity: 'profileTint'\n },\n\n highlight: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n highlightLightText: {\n depends: ['lightText'],\n layer: 'highlight',\n textColor: true\n },\n highlightPostLink: {\n depends: ['postLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightFaintText: {\n depends: ['faint'],\n layer: 'highlight',\n textColor: true\n },\n highlightFaintLink: {\n depends: ['faintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightText: {\n depends: ['text'],\n layer: 'highlight',\n textColor: true\n },\n highlightLink: {\n depends: ['link'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightIcon: {\n depends: ['highlight', 'highlightText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n popover: {\n depends: ['bg'],\n opacity: 'popover'\n },\n popoverLightText: {\n depends: ['lightText'],\n layer: 'popover',\n textColor: true\n },\n popoverPostLink: {\n depends: ['postLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverFaintText: {\n depends: ['faint'],\n layer: 'popover',\n textColor: true\n },\n popoverFaintLink: {\n depends: ['faintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverText: {\n depends: ['text'],\n layer: 'popover',\n textColor: true\n },\n popoverLink: {\n depends: ['link'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverIcon: {\n depends: ['popover', 'popoverText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedPost: '--highlight',\n selectedPostFaintText: {\n depends: ['highlightFaintText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLightText: {\n depends: ['highlightLightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostPostLink: {\n depends: ['highlightPostLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostText: {\n depends: ['highlightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLink: {\n depends: ['highlightLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostIcon: {\n depends: ['selectedPost', 'selectedPostText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenu: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuLightText: {\n depends: ['highlightLightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintText: {\n depends: ['highlightFaintText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuText: {\n depends: ['highlightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuLink: {\n depends: ['highlightLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuIcon: {\n depends: ['selectedMenu', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenuPopover: {\n depends: ['popover'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuPopoverLightText: {\n depends: ['selectedMenuLightText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintText: {\n depends: ['selectedMenuFaintText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintLink: {\n depends: ['selectedMenuFaintLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverText: {\n depends: ['selectedMenuText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverLink: {\n depends: ['selectedMenuLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverIcon: {\n depends: ['selectedMenuPopover', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n lightText: {\n depends: ['text'],\n layer: 'bg',\n textColor: 'preserve',\n color: (mod, text) => brightness(20 * mod, text).rgb\n },\n\n postLink: {\n depends: ['link'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postGreentext: {\n depends: ['cGreen'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postCyantext: {\n depends: ['cBlue'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n border: {\n depends: ['fg'],\n opacity: 'border',\n color: (mod, fg) => brightness(2 * mod, fg).rgb\n },\n\n poll: {\n depends: ['accent', 'bg'],\n copacity: 'poll',\n color: (mod, accent, bg) => alphaBlend(accent, 0.4, bg)\n },\n pollText: {\n depends: ['text'],\n layer: 'poll',\n textColor: true\n },\n\n icon: {\n depends: ['bg', 'text'],\n inheritsOpacity: false,\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n // Foreground\n fgText: {\n depends: ['text'],\n layer: 'fg',\n textColor: true\n },\n fgLink: {\n depends: ['link'],\n layer: 'fg',\n textColor: 'preserve'\n },\n\n // Panel header\n panel: {\n depends: ['fg'],\n opacity: 'panel'\n },\n panelText: {\n depends: ['text'],\n layer: 'panel',\n textColor: true\n },\n panelFaint: {\n depends: ['fgText'],\n layer: 'panel',\n opacity: 'faint',\n textColor: true\n },\n panelLink: {\n depends: ['fgLink'],\n layer: 'panel',\n textColor: 'preserve'\n },\n\n // Top bar\n topBar: '--fg',\n topBarText: {\n depends: ['fgText'],\n layer: 'topBar',\n textColor: true\n },\n topBarLink: {\n depends: ['fgLink'],\n layer: 'topBar',\n textColor: 'preserve'\n },\n\n // Tabs\n tab: {\n depends: ['btn']\n },\n tabText: {\n depends: ['btnText'],\n layer: 'btn',\n textColor: true\n },\n tabActiveText: {\n depends: ['text'],\n layer: 'bg',\n textColor: true\n },\n\n // Buttons\n btn: {\n depends: ['fg'],\n variant: 'btn',\n opacity: 'btn'\n },\n btnText: {\n depends: ['fgText'],\n layer: 'btn',\n textColor: true\n },\n btnPanelText: {\n depends: ['btnText'],\n layer: 'btnPanel',\n variant: 'btn',\n textColor: true\n },\n btnTopBarText: {\n depends: ['btnText'],\n layer: 'btnTopBar',\n variant: 'btn',\n textColor: true\n },\n\n // Buttons: pressed\n btnPressed: {\n depends: ['btn'],\n layer: 'btn'\n },\n btnPressedText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedPanel: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedTopBar: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnPressed',\n textColor: true\n },\n\n // Buttons: toggled\n btnToggled: {\n depends: ['btn'],\n layer: 'btn',\n color: (mod, btn) => brightness(mod * 20, btn).rgb\n },\n btnToggledText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnToggled',\n textColor: true\n },\n\n // Buttons: disabled\n btnDisabled: {\n depends: ['btn', 'bg'],\n color: (mod, btn, bg) => alphaBlend(btn, 0.25, bg)\n },\n btnDisabledText: {\n depends: ['btnText', 'btnDisabled'],\n layer: 'btn',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledPanelText: {\n depends: ['btnPanelText', 'btnDisabled'],\n layer: 'btnPanel',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledTopBarText: {\n depends: ['btnTopBarText', 'btnDisabled'],\n layer: 'btnTopBar',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n\n // Input fields\n input: {\n depends: ['fg'],\n opacity: 'input'\n },\n inputText: {\n depends: ['text'],\n layer: 'input',\n textColor: true\n },\n inputPanelText: {\n depends: ['panelText'],\n layer: 'inputPanel',\n variant: 'input',\n textColor: true\n },\n inputTopbarText: {\n depends: ['topBarText'],\n layer: 'inputTopBar',\n variant: 'input',\n textColor: true\n },\n\n alertError: {\n depends: ['cRed'],\n opacity: 'alert'\n },\n alertErrorText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertError',\n textColor: true\n },\n alertErrorPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertError',\n textColor: true\n },\n\n alertWarning: {\n depends: ['cOrange'],\n opacity: 'alert'\n },\n alertWarningText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertWarning',\n textColor: true\n },\n alertWarningPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertWarning',\n textColor: true\n },\n\n alertSuccess: {\n depends: ['cGreen'],\n opacity: 'alert'\n },\n alertSuccessText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertSuccess',\n textColor: true\n },\n alertSuccessPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertSuccess',\n textColor: true\n },\n\n alertNeutral: {\n depends: ['text'],\n opacity: 'alert'\n },\n alertNeutralText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertNeutral',\n color: (mod, text) => invertLightness(text).rgb,\n textColor: true\n },\n alertNeutralPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertNeutral',\n textColor: true\n },\n\n alertPopupError: {\n depends: ['alertError'],\n opacity: 'alertPopup'\n },\n alertPopupErrorText: {\n depends: ['alertErrorText'],\n layer: 'popover',\n variant: 'alertPopupError',\n textColor: true\n },\n\n alertPopupWarning: {\n depends: ['alertWarning'],\n opacity: 'alertPopup'\n },\n alertPopupWarningText: {\n depends: ['alertWarningText'],\n layer: 'popover',\n variant: 'alertPopupWarning',\n textColor: true\n },\n\n alertPopupSuccess: {\n depends: ['alertSuccess'],\n opacity: 'alertPopup'\n },\n alertPopupSuccessText: {\n depends: ['alertSuccessText'],\n layer: 'popover',\n variant: 'alertPopupSuccess',\n textColor: true\n },\n\n alertPopupNeutral: {\n depends: ['alertNeutral'],\n opacity: 'alertPopup'\n },\n alertPopupNeutralText: {\n depends: ['alertNeutralText'],\n layer: 'popover',\n variant: 'alertPopupNeutral',\n textColor: true\n },\n\n badgeNotification: '--cRed',\n badgeNotificationText: {\n depends: ['text', 'badgeNotification'],\n layer: 'badge',\n variant: 'badgeNotification',\n textColor: 'bw'\n },\n\n badgeNeutral: '--cGreen',\n badgeNeutralText: {\n depends: ['text', 'badgeNeutral'],\n layer: 'badge',\n variant: 'badgeNeutral',\n textColor: 'bw'\n },\n\n chatBg: {\n depends: ['bg']\n },\n\n chatMessageIncomingBg: {\n depends: ['chatBg']\n },\n\n chatMessageIncomingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: true\n },\n\n chatMessageIncomingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: 'preserve'\n },\n\n chatMessageIncomingBorder: {\n depends: ['border'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n },\n\n chatMessageOutgoingBg: {\n depends: ['chatMessageIncomingBg'],\n color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb\n },\n\n chatMessageOutgoingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: true\n },\n\n chatMessageOutgoingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: 'preserve'\n },\n\n chatMessageOutgoingBorder: {\n depends: ['chatMessageOutgoingBg'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n }\n}\n","import { convert, brightness, contrastRatio } from 'chromatism'\nimport { alphaBlendLayers, getTextColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { LAYERS, DEFAULT_OPACITY, SLOT_INHERITANCE } from './pleromafe.js'\n\n/*\n * # What's all this?\n * Here be theme engine for pleromafe. All of this supposed to ease look\n * and feel customization, making widget styles and make developer's life\n * easier when it comes to supporting themes. Like many other theme systems\n * it operates on color definitions, or \"slots\" - for example you define\n * \"button\" color slot and then in UI component Button's CSS you refer to\n * it as a CSS3 Variable.\n *\n * Some applications allow you to customize colors for certain things.\n * Some UI toolkits allow you to define colors for each type of widget.\n * Most of them are pretty barebones and have no assistance for common\n * problems and cases, and in general themes themselves are very hard to\n * maintain in all aspects. This theme engine tries to solve all of the\n * common problems with themes.\n *\n * You don't have redefine several similar colors if you just want to\n * change one color - all color slots are derived from other ones, so you\n * can have at least one or two \"basic\" colors defined and have all other\n * components inherit and modify basic ones.\n *\n * You don't have to test contrast ratio for colors or pick text color for\n * each element even if you have light-on-dark elements in dark-on-light\n * theme.\n *\n * You don't have to maintain order of code for inheriting slots from othet\n * slots - dependency graph resolving does it for you.\n */\n\n/* This indicates that this version of code outputs similar theme data and\n * should be incremented if output changes - for instance if getTextColor\n * function changes and older themes no longer render text colors as\n * author intended previously.\n */\nexport const CURRENT_VERSION = 3\n\nexport const getLayersArray = (layer, data = LAYERS) => {\n const array = [layer]\n let parent = data[layer]\n while (parent) {\n array.unshift(parent)\n parent = data[parent]\n }\n return array\n}\n\nexport const getLayers = (layer, variant = layer, opacitySlot, colors, opacity) => {\n return getLayersArray(layer).map((currentLayer) => ([\n currentLayer === layer\n ? colors[variant]\n : colors[currentLayer],\n currentLayer === layer\n ? opacity[opacitySlot] || 1\n : opacity[currentLayer]\n ]))\n}\n\nconst getDependencies = (key, inheritance) => {\n const data = inheritance[key]\n if (typeof data === 'string' && data.startsWith('--')) {\n return [data.substring(2)]\n } else {\n if (data === null) return []\n const { depends, layer, variant } = data\n const layerDeps = layer\n ? getLayersArray(layer).map(currentLayer => {\n return currentLayer === layer\n ? variant || layer\n : currentLayer\n })\n : []\n if (Array.isArray(depends)) {\n return [...depends, ...layerDeps]\n } else {\n return [...layerDeps]\n }\n }\n}\n\n/**\n * Sorts inheritance object topologically - dependant slots come after\n * dependencies\n *\n * @property {Object} inheritance - object defining the nodes\n * @property {Function} getDeps - function that returns dependencies for\n * given value and inheritance object.\n * @returns {String[]} keys of inheritance object, sorted in topological\n * order. Additionally, dependency-less nodes will always be first in line\n */\nexport const topoSort = (\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n // This is an implementation of https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm\n\n const allKeys = Object.keys(inheritance)\n const whites = new Set(allKeys)\n const grays = new Set()\n const blacks = new Set()\n const unprocessed = [...allKeys]\n const output = []\n\n const step = (node) => {\n if (whites.has(node)) {\n // Make node \"gray\"\n whites.delete(node)\n grays.add(node)\n // Do step for each node connected to it (one way)\n getDeps(node, inheritance).forEach(step)\n // Make node \"black\"\n grays.delete(node)\n blacks.add(node)\n // Put it into the output list\n output.push(node)\n } else if (grays.has(node)) {\n console.debug('Cyclic depenency in topoSort, ignoring')\n output.push(node)\n } else if (blacks.has(node)) {\n // do nothing\n } else {\n throw new Error('Unintended condition in topoSort!')\n }\n }\n while (unprocessed.length > 0) {\n step(unprocessed.pop())\n }\n\n // The index thing is to make sorting stable on browsers\n // where Array.sort() isn't stable\n return output.map((data, index) => ({ data, index })).sort(({ data: a, index: ai }, { data: b, index: bi }) => {\n const depsA = getDeps(a, inheritance).length\n const depsB = getDeps(b, inheritance).length\n\n if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return ai - bi\n if (depsA === 0 && depsB !== 0) return -1\n if (depsB === 0 && depsA !== 0) return 1\n return 0 // failsafe, shouldn't happen?\n }).map(({ data }) => data)\n}\n\nconst expandSlotValue = (value) => {\n if (typeof value === 'object') return value\n return {\n depends: value.startsWith('--') ? [value.substring(2)] : [],\n default: value.startsWith('#') ? value : undefined\n }\n}\n/**\n * retrieves opacity slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * TODO refactor this\n */\nexport const getOpacitySlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (value.opacity === null) return\n if (value.opacity) return value.opacity\n const findInheritedOpacity = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.opacity || dependency === null) {\n return dependency.opacity\n } else if (dependency.depends && visited.includes(depSlot)) {\n return findInheritedOpacity(depSlot, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedOpacity(k)\n }\n}\n\n/**\n * retrieves layer slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * this is basically copypaste of getOpacitySlot except it checks if key is\n * in LAYERS\n * TODO refactor this\n */\nexport const getLayerSlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (LAYERS[k]) return k\n if (value.layer === null) return\n if (value.layer) return value.layer\n const findInheritedLayer = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.layer || dependency === null) {\n return dependency.layer\n } else if (dependency.depends) {\n return findInheritedLayer(dependency, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedLayer(k)\n }\n}\n\n/**\n * topologically sorted SLOT_INHERITANCE\n */\nexport const SLOT_ORDERED = topoSort(\n Object.entries(SLOT_INHERITANCE)\n .sort(([aK, aV], [bK, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0))\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})\n)\n\n/**\n * All opacity slots used in color slots, their default values and affected\n * color slots.\n */\nexport const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k, v]) => {\n const opacity = getOpacitySlot(k, SLOT_INHERITANCE, getDependencies)\n if (opacity) {\n return {\n ...acc,\n [opacity]: {\n defaultValue: DEFAULT_OPACITY[opacity] || 1,\n affectedSlots: [...((acc[opacity] && acc[opacity].affectedSlots) || []), k]\n }\n }\n } else {\n return acc\n }\n}, {})\n\n/**\n * Handle dynamic color\n */\nexport const computeDynamicColor = (sourceColor, getColor, mod) => {\n if (typeof sourceColor !== 'string' || !sourceColor.startsWith('--')) return sourceColor\n let targetColor = null\n // Color references other color\n const [variable, modifier] = sourceColor.split(/,/g).map(str => str.trim())\n const variableSlot = variable.substring(2)\n targetColor = getColor(variableSlot)\n if (modifier) {\n targetColor = brightness(Number.parseFloat(modifier) * mod, targetColor).rgb\n }\n return targetColor\n}\n\n/**\n * THE function you want to use. Takes provided colors and opacities\n * value and uses inheritance data to figure out color needed for the slot.\n */\nexport const getColors = (sourceColors, sourceOpacity) => SLOT_ORDERED.reduce(({ colors, opacity }, key) => {\n const sourceColor = sourceColors[key]\n const value = expandSlotValue(SLOT_INHERITANCE[key])\n const deps = getDependencies(key, SLOT_INHERITANCE)\n const isTextColor = !!value.textColor\n const variant = value.variant || value.layer\n\n let backgroundColor = null\n\n if (isTextColor) {\n backgroundColor = alphaBlendLayers(\n { ...(colors[deps[0]] || convert(sourceColors[key] || '#FF00FF').rgb) },\n getLayers(\n getLayerSlot(key) || 'bg',\n variant || 'bg',\n getOpacitySlot(variant),\n colors,\n opacity\n )\n )\n } else if (variant && variant !== key) {\n backgroundColor = colors[variant] || convert(sourceColors[variant]).rgb\n } else {\n backgroundColor = colors.bg || convert(sourceColors.bg)\n }\n\n const isLightOnDark = relativeLuminance(backgroundColor) < 0.5\n const mod = isLightOnDark ? 1 : -1\n\n let outputColor = null\n if (sourceColor) {\n // Color is defined in source color\n let targetColor = sourceColor\n if (targetColor === 'transparent') {\n // We take only layers below current one\n const layers = getLayers(\n getLayerSlot(key),\n key,\n getOpacitySlot(key) || key,\n colors,\n opacity\n ).slice(0, -1)\n targetColor = {\n ...alphaBlendLayers(\n convert('#FF00FF').rgb,\n layers\n ),\n a: 0\n }\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('--')) {\n targetColor = computeDynamicColor(\n sourceColor,\n variableSlot => colors[variableSlot] || sourceColors[variableSlot],\n mod\n )\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('#')) {\n targetColor = convert(targetColor).rgb\n }\n outputColor = { ...targetColor }\n } else if (value.default) {\n // same as above except in object form\n outputColor = convert(value.default).rgb\n } else {\n // calculate color\n const defaultColorFunc = (mod, dep) => ({ ...dep })\n const colorFunc = value.color || defaultColorFunc\n\n if (value.textColor) {\n if (value.textColor === 'bw') {\n outputColor = contrastRatio(backgroundColor).rgb\n } else {\n let color = { ...colors[deps[0]] }\n if (value.color) {\n color = colorFunc(mod, ...deps.map((dep) => ({ ...colors[dep] })))\n }\n outputColor = getTextColor(\n backgroundColor,\n { ...color },\n value.textColor === 'preserve'\n )\n }\n } else {\n // background color case\n outputColor = colorFunc(\n mod,\n ...deps.map((dep) => ({ ...colors[dep] }))\n )\n }\n }\n if (!outputColor) {\n throw new Error('Couldn\\'t generate color for ' + key)\n }\n\n const opacitySlot = value.opacity || getOpacitySlot(key)\n const ownOpacitySlot = value.opacity\n\n if (ownOpacitySlot === null) {\n outputColor.a = 1\n } else if (sourceColor === 'transparent') {\n outputColor.a = 0\n } else {\n const opacityOverriden = ownOpacitySlot && sourceOpacity[opacitySlot] !== undefined\n\n const dependencySlot = deps[0]\n const dependencyColor = dependencySlot && colors[dependencySlot]\n\n if (!ownOpacitySlot && dependencyColor && !value.textColor && ownOpacitySlot !== null) {\n // Inheriting color from dependency (weird, i know)\n // except if it's a text color or opacity slot is set to 'null'\n outputColor.a = dependencyColor.a\n } else if (!dependencyColor && !opacitySlot) {\n // Remove any alpha channel if no dependency and no opacitySlot found\n delete outputColor.a\n } else {\n // Otherwise try to assign opacity\n if (dependencyColor && dependencyColor.a === 0) {\n // transparent dependency shall make dependents transparent too\n outputColor.a = 0\n } else {\n // Otherwise check if opacity is overriden and use that or default value instead\n outputColor.a = Number(\n opacityOverriden\n ? sourceOpacity[opacitySlot]\n : (OPACITIES[opacitySlot] || {}).defaultValue\n )\n }\n }\n }\n\n if (Number.isNaN(outputColor.a) || outputColor.a === undefined) {\n outputColor.a = 1\n }\n\n if (opacitySlot) {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity: { ...opacity, [opacitySlot]: outputColor.a }\n }\n } else {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity\n }\n }\n}, { colors: {}, opacity: {} })\n","import { hex2rgb } from '../color_convert/color_convert.js'\nconst highlightStyle = (prefs) => {\n if (prefs === undefined) return\n const { color, type } = prefs\n if (typeof color !== 'string') return\n const rgb = hex2rgb(color)\n if (rgb == null) return\n const solidColor = `rgb(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)})`\n const tintColor = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .1)`\n const tintColor2 = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .2)`\n const customProps = {\n '--____highlight-solidColor': solidColor,\n '--____highlight-tintColor': tintColor,\n '--____highlight-tintColor2': tintColor2\n }\n if (type === 'striped') {\n return {\n backgroundImage: [\n 'repeating-linear-gradient(135deg,',\n `${tintColor} ,`,\n `${tintColor} 20px,`,\n `${tintColor2} 20px,`,\n `${tintColor2} 40px`\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n } else if (type === 'solid') {\n return {\n backgroundColor: tintColor2,\n ...customProps\n }\n } else if (type === 'side') {\n return {\n backgroundImage: [\n 'linear-gradient(to right,',\n `${solidColor} ,`,\n `${solidColor} 2px,`,\n 'transparent 6px'\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n }\n}\n\nconst highlightClass = (user) => {\n return 'USER____' + user.screen_name\n .replace(/\\./g, '_')\n .replace(/@/g, '_AT_')\n}\n\nexport {\n highlightClass,\n highlightStyle\n}\n","import { includes } from 'lodash'\n\nconst generateProfileLink = (id, screenName, restrictedNicknames) => {\n const complicated = !screenName || (isExternal(screenName) || includes(restrictedNicknames, screenName))\n return {\n name: (complicated ? 'external-user-profile' : 'user-profile'),\n params: (complicated ? { id } : { name: screenName })\n }\n}\n\nconst isExternal = screenName => screenName && screenName.includes('@')\n\nexport default generateProfileLink\n","<template>\n <button\n v-if=\"usePlaceholder\"\n class=\"Attachment -placeholder button-unstyled\"\n :class=\"classNames\"\n @click=\"openModal\"\n >\n <a\n v-if=\"type !== 'html'\"\n class=\"placeholder\"\n target=\"_blank\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent\n >\n <FAIcon :icon=\"placeholderIconClass\" />\n <b>{{ nsfw ? \"NSFW / \" : \"\" }}</b>{{ edit ? '' : placeholderName }}\n </a>\n <div\n v-if=\"edit || remove\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || localDescription || showDescription)\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </button>\n <div\n v-else\n class=\"Attachment\"\n :class=\"classNames\"\n >\n <div\n v-show=\"!isEmpty\"\n class=\"attachment-wrapper\"\n >\n <a\n v-if=\"hidden\"\n class=\"image-container\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <img\n :key=\"nsfwImage\"\n class=\"nsfw\"\n :src=\"nsfwImage\"\n >\n <FAIcon\n v-if=\"type === 'video'\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </a>\n <div\n v-if=\"!hidden\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"type === 'flash' && flashLoaded\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.attachment_stop_flash')\"\n @click.prevent=\"stopFlash\"\n >\n <FAIcon icon=\"stop\" />\n </button>\n <button\n v-if=\"attachment.description && size !== 'small' && !edit && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_description')\"\n @click.prevent=\"toggleDescription\"\n >\n <FAIcon icon=\"align-right\" />\n </button>\n <button\n v-if=\"!useModal && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_in_modal')\"\n @click.prevent=\"openModalForce\"\n >\n <FAIcon icon=\"search-plus\" />\n </button>\n <button\n v-if=\"nsfw && hideNsfwLocal\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.hide_attachment')\"\n @click.prevent=\"toggleHidden\"\n >\n <FAIcon icon=\"times\" />\n </button>\n <button\n v-if=\"shiftUp\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_up')\"\n @click.prevent=\"onShiftUp\"\n >\n <FAIcon icon=\"chevron-left\" />\n </button>\n <button\n v-if=\"shiftDn\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_down')\"\n @click.prevent=\"onShiftDn\"\n >\n <FAIcon icon=\"chevron-right\" />\n </button>\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.remove_attachment')\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n\n <a\n v-if=\"type === 'image' && (!hidden || preloadImage)\"\n class=\"image-container\"\n :class=\"{'-hidden': hidden && preloadImage }\"\n :href=\"attachment.url\"\n target=\"_blank\"\n @click.stop.prevent=\"openModal\"\n >\n <StillImage\n class=\"image\"\n :referrerpolicy=\"referrerpolicy\"\n :mimetype=\"attachment.mimetype\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n :image-load-handler=\"onImageLoad\"\n :alt=\"attachment.description\"\n />\n </a>\n\n <a\n v-if=\"type === 'unknown' && !hidden\"\n class=\"placeholder-container\"\n :href=\"attachment.url\"\n target=\"_blank\"\n >\n <FAIcon\n size=\"5x\"\n :icon=\"placeholderIconClass\"\n />\n <p>\n {{ localDescription }}\n </p>\n </a>\n\n <component\n :is=\"videoTag\"\n v-if=\"type === 'video' && !hidden\"\n class=\"video-container\"\n :class=\"{ 'button-unstyled': 'isModal' }\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <VideoAttachment\n class=\"video\"\n :attachment=\"attachment\"\n :controls=\"!useModal\"\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n <FAIcon\n v-if=\"useModal\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </component>\n\n <span\n v-if=\"type === 'audio' && !hidden\"\n class=\"audio-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <audio\n v-if=\"type === 'audio'\"\n :src=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n controls\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n </span>\n\n <div\n v-if=\"type === 'html' && attachment.oembed\"\n class=\"oembed-container\"\n @click.prevent=\"linkClicked\"\n >\n <div\n v-if=\"attachment.thumb_url\"\n class=\"image\"\n >\n <img :src=\"attachment.thumb_url\">\n </div>\n <div class=\"text\">\n <!-- eslint-disable vue/no-v-html -->\n <h1><a :href=\"attachment.url\">{{ attachment.oembed.title }}</a></h1>\n <div v-html=\"attachment.oembed.oembedHTML\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n\n <span\n v-if=\"type === 'flash' && !hidden\"\n class=\"flash-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <Flash\n ref=\"flash\"\n class=\"flash\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n @playerOpened=\"setFlashLoaded(true)\"\n @playerClosed=\"setFlashLoaded(false)\"\n />\n </span>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || (localDescription && showDescription))\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./attachment.js\"></script>\n\n<style src=\"./attachment.scss\" lang=\"scss\"></style>\n","import StillImage from '../still-image/still-image.vue'\nimport Flash from '../flash/flash.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport nsfwImage from '../../assets/nsfw.png'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n)\n\nconst Attachment = {\n props: [\n 'attachment',\n 'description',\n 'hideDescription',\n 'nsfw',\n 'size',\n 'setMedia',\n 'remove',\n 'shiftUp',\n 'shiftDn',\n 'edit'\n ],\n data () {\n return {\n localDescription: this.description || this.attachment.description,\n nsfwImage: this.$store.state.instance.nsfwCensorImage || nsfwImage,\n hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw,\n preloadImage: this.$store.getters.mergedConfig.preloadImage,\n loading: false,\n img: fileTypeService.fileType(this.attachment.mimetype) === 'image' && document.createElement('img'),\n modalOpen: false,\n showHidden: false,\n flashLoaded: false,\n showDescription: false\n }\n },\n components: {\n Flash,\n StillImage,\n VideoAttachment\n },\n computed: {\n classNames () {\n return [\n {\n '-loading': this.loading,\n '-nsfw-placeholder': this.hidden,\n '-editable': this.edit !== undefined\n },\n '-type-' + this.type,\n this.size && '-size-' + this.size,\n `-${this.useContainFit ? 'contain' : 'cover'}-fit`\n ]\n },\n usePlaceholder () {\n return this.size === 'hide'\n },\n useContainFit () {\n return this.$store.getters.mergedConfig.useContainFit\n },\n placeholderName () {\n if (this.attachment.description === '' || !this.attachment.description) {\n return this.type.toUpperCase()\n }\n return this.attachment.description\n },\n placeholderIconClass () {\n if (this.type === 'image') return 'image'\n if (this.type === 'video') return 'video'\n if (this.type === 'audio') return 'music'\n return 'file'\n },\n referrerpolicy () {\n return this.$store.state.instance.mediaProxyAvailable ? '' : 'no-referrer'\n },\n type () {\n return fileTypeService.fileType(this.attachment.mimetype)\n },\n hidden () {\n return this.nsfw && this.hideNsfwLocal && !this.showHidden\n },\n isEmpty () {\n return (this.type === 'html' && !this.attachment.oembed)\n },\n useModal () {\n let modalTypes = []\n switch (this.size) {\n case 'hide':\n case 'small':\n modalTypes = ['image', 'video', 'audio', 'flash']\n break\n default:\n modalTypes = this.mergedConfig.playVideosInModal\n ? ['image', 'video', 'flash']\n : ['image']\n break\n }\n return modalTypes.includes(this.type)\n },\n videoTag () {\n return this.useModal ? 'button' : 'span'\n },\n ...mapGetters(['mergedConfig'])\n },\n watch: {\n 'attachment.description' (newVal) {\n this.localDescription = newVal\n },\n localDescription (newVal) {\n this.onEdit(newVal)\n }\n },\n methods: {\n linkClicked ({ target }) {\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n openModal (event) {\n if (this.useModal) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n } else if (this.type === 'unknown') {\n window.open(this.attachment.url)\n }\n },\n openModalForce (event) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n },\n onEdit (event) {\n this.edit && this.edit(this.attachment, event)\n },\n onRemove () {\n this.remove && this.remove(this.attachment)\n },\n onShiftUp () {\n this.shiftUp && this.shiftUp(this.attachment)\n },\n onShiftDn () {\n this.shiftDn && this.shiftDn(this.attachment)\n },\n stopFlash () {\n this.$refs.flash.closePlayer()\n },\n setFlashLoaded (event) {\n this.flashLoaded = event\n },\n toggleDescription () {\n this.showDescription = !this.showDescription\n },\n toggleHidden (event) {\n if (\n (this.mergedConfig.useOneClickNsfw && !this.showHidden) &&\n (this.type !== 'video' || this.mergedConfig.playVideosInModal)\n ) {\n this.openModal(event)\n return\n }\n if (this.img && !this.preloadImage) {\n if (this.img.onload) {\n this.img.onload()\n } else {\n this.loading = true\n this.img.src = this.attachment.url\n this.img.onload = () => {\n this.loading = false\n this.showHidden = !this.showHidden\n }\n }\n } else {\n this.showHidden = !this.showHidden\n }\n },\n onImageLoad (image) {\n const width = image.naturalWidth\n const height = image.naturalHeight\n this.$emit('naturalSizeLoad', { id: this.attachment.id, width, height })\n }\n }\n}\n\nexport default Attachment\n","import { render } from \"./attachment.vue?vue&type=template&id=1177e21f\"\nimport script from \"./attachment.js?vue&type=script&lang=js\"\nexport * from \"./attachment.js?vue&type=script&lang=js\"\n\nimport \"./attachment.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"avatars\">\n <router-link\n v-for=\"user in slicedUsers\"\n :key=\"user.id\"\n :to=\"userProfileLink(user)\"\n class=\"avatars-item\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./avatar_list.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst AvatarList = {\n props: ['users'],\n computed: {\n slicedUsers () {\n return this.users ? this.users.slice(0, 15) : []\n }\n },\n components: {\n UserAvatar\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default AvatarList\n","import { render } from \"./avatar_list.vue?vue&type=template&id=6ba9433e\"\nimport script from \"./avatar_list.js?vue&type=script&lang=js\"\nexport * from \"./avatar_list.js?vue&type=script&lang=js\"\n\nimport \"./avatar_list.vue?vue&type=style&index=0&id=6ba9433e&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"basic-user-card\">\n <router-link\n :to=\"userProfileLink(user)\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"user.id\"\n :overlay-centers=\"true\"\n overlay-centers-selector=\".avatar\"\n >\n <UserAvatar\n class=\"user-avatar avatar\"\n :user=\"user\"\n @click.prevent\n />\n </UserPopover>\n </router-link>\n <div\n class=\"basic-user-card-collapsed-content\"\n >\n <div\n :title=\"user.name\"\n class=\"basic-user-card-user-name\"\n >\n <RichContent\n class=\"basic-user-card-user-name-value\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </div>\n <div>\n <user-link\n class=\"basic-user-card-screen-name\"\n :user=\"user\"\n />\n </div>\n <slot />\n </div>\n </div>\n</template>\n\n<script src=\"./basic_user_card.js\"></script>\n\n<style lang=\"scss\">\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n</style>\n","import UserPopover from '../user_popover/user_popover.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst BasicUserCard = {\n props: [\n 'user'\n ],\n components: {\n UserPopover,\n UserAvatar,\n RichContent,\n UserLink\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default BasicUserCard\n","import { render } from \"./basic_user_card.vue?vue&type=template&id=2b92940e\"\nimport script from \"./basic_user_card.js?vue&type=script&lang=js\"\nexport * from \"./basic_user_card.js?vue&type=script&lang=js\"\n\nimport \"./basic_user_card.vue?vue&type=style&index=0&id=2b92940e&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"checkbox\"\n :class=\"{ disabled, indeterminate }\"\n >\n <input\n type=\"checkbox\"\n :disabled=\"disabled\"\n :checked=\"modelValue\"\n :indeterminate=\"indeterminate\"\n @change=\"$emit('update:modelValue', $event.target.checked)\"\n >\n <i class=\"checkbox-indicator\" />\n <span\n v-if=\"!!$slots.default\"\n class=\"label\"\n >\n <slot />\n </span>\n </label>\n</template>\n\n<script>\nexport default {\n props: [\n 'modelValue',\n 'indeterminate',\n 'disabled'\n ],\n emits: ['update:modelValue']\n}\n</script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.checkbox {\n position: relative;\n display: inline-block;\n min-height: 1.2em;\n\n &-indicator {\n position: relative;\n padding-left: 1.2em;\n }\n\n &-indicator::before {\n position: absolute;\n right: 0;\n top: 0;\n display: block;\n content: '✓';\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: $fallback--checkboxRadius;\n border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1em;\n font-size: 1.1em;\n color: transparent;\n overflow: hidden;\n box-sizing: border-box;\n }\n\n &.disabled {\n .checkbox-indicator::before,\n .label {\n opacity: .5;\n }\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=checkbox] {\n display: none;\n\n &:checked + .checkbox-indicator::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:indeterminate + .checkbox-indicator::before {\n content: '–';\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n }\n\n & > span {\n margin-left: .5em;\n }\n}\n</style>\n","import { render } from \"./checkbox.vue?vue&type=template&id=48a4f44d\"\nimport script from \"./checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./checkbox.vue?vue&type=script&lang=js\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=48a4f44d&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n ref=\"root\"\n class=\"emoji-input\"\n :class=\"{ 'with-picker': !hideEmojiButton }\"\n >\n <slot />\n <!-- TODO: make the 'x' disappear if at the end maybe? -->\n <div\n ref=\"hiddenOverlay\"\n class=\"hidden-overlay\"\n :style=\"overlayStyle\"\n >\n <span>{{ preText }}</span>\n <span\n ref=\"hiddenOverlayCaret\"\n class=\"caret\"\n >x</span>\n <span>{{ postText }}</span>\n </div>\n <template v-if=\"enableEmojiPicker\">\n <button\n v-if=\"!hideEmojiButton\"\n class=\"button-unstyled emoji-picker-icon\"\n type=\"button\"\n @click.prevent=\"togglePicker\"\n >\n <FAIcon :icon=\"['far', 'smile-beam']\" />\n </button>\n <EmojiPicker\n v-if=\"enableEmojiPicker\"\n ref=\"picker\"\n :enable-sticker-picker=\"enableStickerPicker\"\n class=\"emoji-picker-panel\"\n @emoji=\"insert\"\n @sticker-uploaded=\"onStickerUploaded\"\n @sticker-upload-failed=\"onStickerUploadFailed\"\n @show=\"onPickerShown\"\n @close=\"onPickerClosed\"\n />\n </template>\n <Popover\n ref=\"suggestorPopover\"\n class=\"autocomplete-panel\"\n placement=\"bottom\"\n >\n <template #content>\n <div\n ref=\"panel-body\"\n class=\"autocomplete-panel-body\"\n >\n <div\n v-for=\"(suggestion, index) in suggestions\"\n :key=\"index\"\n class=\"autocomplete-item\"\n :class=\"{ highlighted: index === highlighted }\"\n @click.stop.prevent=\"onClick($event, suggestion)\"\n >\n <span class=\"image\">\n <img\n v-if=\"suggestion.img\"\n :src=\"suggestion.img\"\n >\n <span v-else>{{ suggestion.replacement }}</span>\n </span>\n <div class=\"label\">\n <span\n v-if=\"suggestion.user\"\n class=\"displayText\"\n >\n {{ suggestion.displayText }}<UnicodeDomainIndicator\n :user=\"suggestion.user\"\n :at=\"false\"\n />\n </span>\n <span\n v-if=\"!suggestion.user\"\n class=\"displayText\"\n >\n {{ maybeLocalizedEmojiName(suggestion) }}\n </span>\n <span class=\"detailText\">{{ suggestion.detailText }}</span>\n </div>\n </div>\n </div>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./emoji_input.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: .2em .25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none\n }\n }\n\n input, textarea {\n flex: 1 0 auto;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n /* DEBUG STUFF */\n color: red;\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { reduce, find } from 'lodash'\n\nexport const replaceWord = (str, toReplace, replacement) => {\n return str.slice(0, toReplace.start) + replacement + str.slice(toReplace.end)\n}\n\nexport const wordAtPosition = (str, pos) => {\n const words = splitByWhitespaceBoundary(str)\n const wordsWithPosition = addPositionToWords(words)\n\n return find(wordsWithPosition, ({ start, end }) => start <= pos && end > pos)\n}\n\nexport const addPositionToWords = (words) => {\n return reduce(words, (result, word) => {\n const data = {\n word,\n start: 0,\n end: word.length\n }\n\n if (result.length > 0) {\n const previous = result.pop()\n\n data.start += previous.end\n data.end += previous.end\n\n result.push(previous)\n }\n\n result.push(data)\n\n return result\n }, [])\n}\n\nexport const splitByWhitespaceBoundary = (str) => {\n const result = []\n let currentWord = ''\n for (let i = 0; i < str.length; i++) {\n const currentChar = str[i]\n // Starting a new word\n if (!currentWord) {\n currentWord = currentChar\n continue\n }\n // current character is whitespace while word isn't, or vice versa:\n // add our current word to results, start over the current word.\n if (!!currentChar.trim() !== !!currentWord.trim()) {\n result.push(currentWord)\n currentWord = currentChar\n continue\n }\n currentWord += currentChar\n }\n // Add the last word we were working on\n if (currentWord) {\n result.push(currentWord)\n }\n return result\n}\n\nconst completion = {\n wordAtPosition,\n addPositionToWords,\n splitByWhitespaceBoundary,\n replaceWord\n}\n\nexport default completion\n","<template>\n <Popover\n ref=\"popover\"\n trigger=\"click\"\n popover-class=\"emoji-picker popover-default\"\n @show=\"onPopoverShown\"\n @close=\"onPopoverClosed\"\n >\n <template #content>\n <div class=\"heading\">\n <span\n ref=\"header\"\n class=\"emoji-tabs\"\n >\n <span\n v-for=\"group in filteredEmojiGroups\"\n :ref=\"setGroupRef('group-header-' + group.id)\"\n :key=\"group.id\"\n class=\"emoji-tabs-item\"\n :class=\"{\n active: activeGroupView === group.id\n }\"\n :title=\"group.text\"\n @click.prevent=\"highlight(group.id)\"\n >\n <span\n v-if=\"group.image\"\n class=\"emoji-picker-header-image\"\n >\n <still-image\n :alt=\"group.text\"\n :src=\"group.image\"\n />\n </span>\n <FAIcon\n v-else\n :icon=\"group.icon\"\n fixed-width\n />\n </span>\n </span>\n <span\n v-if=\"stickerPickerEnabled\"\n class=\"additional-tabs\"\n >\n <span\n class=\"stickers-tab-icon additional-tabs-item\"\n :class=\"{active: showingStickers}\"\n :title=\"$t('emoji.stickers')\"\n @click.prevent=\"toggleStickers\"\n >\n <FAIcon\n icon=\"sticky-note\"\n fixed-width\n />\n </span>\n </span>\n </div>\n <div\n v-if=\"contentLoaded\"\n class=\"content\"\n >\n <div\n class=\"emoji-content\"\n :class=\"{hidden: showingStickers}\"\n >\n <div class=\"emoji-search\">\n <input\n ref=\"search\"\n v-model=\"keyword\"\n type=\"text\"\n class=\"form-control\"\n :placeholder=\"$t('emoji.search_emoji')\"\n @input=\"$event.target.composing = false\"\n >\n </div>\n <div\n ref=\"emoji-groups\"\n class=\"emoji-groups\"\n :class=\"groupsScrolledClass\"\n @scroll=\"onScroll\"\n >\n <div\n v-for=\"group in filteredEmojiGroups\"\n :key=\"group.id\"\n class=\"emoji-group\"\n >\n <h6\n :ref=\"setGroupRef('group-' + group.id)\"\n class=\"emoji-group-title\"\n >\n {{ group.text }}\n </h6>\n <span\n v-for=\"emoji in group.emojis\"\n :key=\"group.id + emoji.displayText\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n class=\"emoji-item\"\n @click.stop.prevent=\"onEmoji(emoji)\"\n >\n <span\n v-if=\"!emoji.imageUrl\"\n class=\"emoji-picker-emoji -unicode\"\n >{{ emoji.replacement }}</span>\n <still-image\n v-else\n :ref=\"setEmojiRef(group.id + emoji.displayText)\"\n class=\"emoji-picker-emoji -custom\"\n :data-src=\"emoji.imageUrl\"\n :data-emoji-name=\"group.id + emoji.displayText\"\n />\n </span>\n <span :ref=\"setGroupRef('group-end-' + group.id)\" />\n </div>\n </div>\n <div class=\"keep-open\">\n <Checkbox v-model=\"keepOpen\">\n {{ $t('emoji.keep_open') }}\n </Checkbox>\n </div>\n </div>\n <div\n v-if=\"showingStickers\"\n class=\"stickers-content\"\n >\n <sticker-picker\n @uploaded=\"onStickerUploaded\"\n @upload-failed=\"onStickerUploadFailed\"\n />\n </div>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./emoji_picker.js\"></script>\n<style lang=\"scss\" src=\"./emoji_picker.scss\"></style>\n","import { defineAsyncComponent } from 'vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport StillImage from '../still-image/still-image.vue'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport lozad from 'lozad'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce, trim } from 'lodash'\n\nlibrary.add(\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n)\n\nconst UNICODE_EMOJI_GROUP_ICON = {\n 'smileys-and-emotion': 'smile',\n 'people-and-body': 'user',\n 'animals-and-nature': 'paw',\n 'food-and-drink': 'ice-cream',\n 'travel-and-places': 'bus',\n activities: 'basketball-ball',\n objects: 'lightbulb',\n symbols: 'code',\n flags: 'flag'\n}\n\nconst maybeLocalizedKeywords = (emoji, languages, nameLocalizer) => {\n const res = [emoji.displayText, nameLocalizer(emoji)]\n if (emoji.annotations) {\n languages.forEach(lang => {\n const keywords = emoji.annotations[lang]?.keywords || []\n const name = emoji.annotations[lang]?.name\n res.push(...(keywords.concat([name]).filter(k => k)))\n })\n }\n return res\n}\n\nconst filterByKeyword = (list, keyword = '', languages, nameLocalizer) => {\n if (keyword === '') return list\n\n const keywordLowercase = keyword.toLowerCase()\n const orderedEmojiList = []\n for (const emoji of list) {\n const indices = maybeLocalizedKeywords(emoji, languages, nameLocalizer)\n .map(k => k.toLowerCase().indexOf(keywordLowercase))\n .filter(k => k > -1)\n\n const indexOfKeyword = indices.length ? Math.min(...indices) : -1\n\n if (indexOfKeyword > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {\n orderedEmojiList[indexOfKeyword] = []\n }\n orderedEmojiList[indexOfKeyword].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n}\n\nconst EmojiPicker = {\n props: {\n enableStickerPicker: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n keyword: '',\n activeGroup: 'custom',\n showingStickers: false,\n groupsScrolledClass: 'scrolled-top',\n keepOpen: false,\n customEmojiTimeout: null,\n // Lazy-load only after the first time `showing` becomes true.\n contentLoaded: false,\n groupRefs: {},\n emojiRefs: {},\n filteredEmojiGroups: []\n }\n },\n components: {\n StickerPicker: defineAsyncComponent(() => import('../sticker_picker/sticker_picker.vue')),\n Checkbox,\n StillImage,\n Popover\n },\n methods: {\n showPicker () {\n this.$refs.popover.showPopover()\n this.onShowing()\n },\n hidePicker () {\n this.$refs.popover.hidePopover()\n },\n setAnchorEl (el) {\n this.$refs.popover.setAnchorEl(el)\n },\n setGroupRef (name) {\n return el => { this.groupRefs[name] = el }\n },\n setEmojiRef (name) {\n return el => { this.emojiRefs[name] = el }\n },\n onPopoverShown () {\n this.$emit('show')\n },\n onPopoverClosed () {\n this.$emit('close')\n },\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-failed', e)\n },\n onEmoji (emoji) {\n const value = emoji.imageUrl ? `:${emoji.displayText}:` : emoji.replacement\n if (!this.keepOpen) {\n this.$refs.popover.hidePopover()\n }\n this.$emit('emoji', { insertion: value, keepOpen: this.keepOpen })\n },\n onScroll (e) {\n const target = (e && e.target) || this.$refs['emoji-groups']\n this.updateScrolledClass(target)\n this.scrolledGroup(target)\n },\n scrolledGroup (target) {\n const top = target.scrollTop + 5\n this.$nextTick(() => {\n this.allEmojiGroups.forEach(group => {\n const ref = this.groupRefs['group-' + group.id]\n if (ref && ref.offsetTop <= top) {\n this.activeGroup = group.id\n }\n })\n this.scrollHeader()\n })\n },\n scrollHeader () {\n // Scroll the active tab's header into view\n const headerRef = this.groupRefs['group-header-' + this.activeGroup]\n const left = headerRef.offsetLeft\n const right = left + headerRef.offsetWidth\n const headerCont = this.$refs.header\n const currentScroll = headerCont.scrollLeft\n const currentScrollRight = currentScroll + headerCont.clientWidth\n const setScroll = s => { headerCont.scrollLeft = s }\n\n const margin = 7 // .emoji-tabs-item: padding\n if (left - margin < currentScroll) {\n setScroll(left - margin)\n } else if (right + margin > currentScrollRight) {\n setScroll(right + margin - headerCont.clientWidth)\n }\n },\n highlight (key) {\n const ref = this.groupRefs['group-' + key]\n const top = ref.offsetTop\n this.setShowStickers(false)\n this.activeGroup = key\n this.$nextTick(() => {\n this.$refs['emoji-groups'].scrollTop = top + 1\n })\n },\n updateScrolledClass (target) {\n if (target.scrollTop <= 5) {\n this.groupsScrolledClass = 'scrolled-top'\n } else if (target.scrollTop >= target.scrollTopMax - 5) {\n this.groupsScrolledClass = 'scrolled-bottom'\n } else {\n this.groupsScrolledClass = 'scrolled-middle'\n }\n },\n toggleStickers () {\n this.showingStickers = !this.showingStickers\n },\n setShowStickers (value) {\n this.showingStickers = value\n },\n filterByKeyword (list, keyword) {\n return filterByKeyword(list, keyword, this.languages, this.maybeLocalizedEmojiName)\n },\n initializeLazyLoad () {\n this.destroyLazyLoad()\n this.$nextTick(() => {\n this.$lozad = lozad('.still-image.emoji-picker-emoji', {\n load: el => {\n const name = el.getAttribute('data-emoji-name')\n const vn = this.emojiRefs[name]\n if (!vn) {\n return\n }\n\n vn.loadLazy()\n }\n })\n this.$lozad.observe()\n })\n },\n waitForDomAndInitializeLazyLoad () {\n this.$nextTick(() => this.initializeLazyLoad())\n },\n destroyLazyLoad () {\n if (this.$lozad) {\n if (this.$lozad.observer) {\n this.$lozad.observer.disconnect()\n }\n if (this.$lozad.mutationObserver) {\n this.$lozad.mutationObserver.disconnect()\n }\n }\n },\n onShowing () {\n const oldContentLoaded = this.contentLoaded\n this.$nextTick(() => {\n this.$refs.search.focus()\n })\n this.contentLoaded = true\n this.waitForDomAndInitializeLazyLoad()\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n if (!oldContentLoaded) {\n this.$nextTick(() => {\n if (this.defaultGroup) {\n this.highlight(this.defaultGroup)\n }\n })\n }\n },\n getFilteredEmojiGroups () {\n return this.allEmojiGroups\n .map(group => ({\n ...group,\n emojis: this.filterByKeyword(group.emojis, trim(this.keyword))\n }))\n .filter(group => group.emojis.length > 0)\n }\n },\n watch: {\n keyword () {\n this.onScroll()\n this.debouncedHandleKeywordChange()\n },\n allCustomGroups () {\n this.waitForDomAndInitializeLazyLoad()\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }\n },\n destroyed () {\n this.destroyLazyLoad()\n },\n computed: {\n activeGroupView () {\n return this.showingStickers ? '' : this.activeGroup\n },\n stickersAvailable () {\n if (this.$store.state.instance.stickers) {\n return this.$store.state.instance.stickers.length > 0\n }\n return 0\n },\n allCustomGroups () {\n return this.$store.getters.groupedCustomEmojis\n },\n defaultGroup () {\n return Object.keys(this.allCustomGroups)[0]\n },\n unicodeEmojiGroups () {\n return this.$store.getters.standardEmojiGroupList.map(group => ({\n id: `standard-${group.id}`,\n text: this.$t(`emoji.unicode_groups.${group.id}`),\n icon: UNICODE_EMOJI_GROUP_ICON[group.id],\n emojis: group.emojis\n }))\n },\n allEmojiGroups () {\n return Object.entries(this.allCustomGroups)\n .map(([_, v]) => v)\n .concat(this.unicodeEmojiGroups)\n },\n stickerPickerEnabled () {\n return (this.$store.state.instance.stickers || []).length !== 0\n },\n debouncedHandleKeywordChange () {\n return debounce(() => {\n this.waitForDomAndInitializeLazyLoad()\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }, 500)\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n }\n }\n}\n\nexport default EmojiPicker\n","import { render } from \"./emoji_picker.vue?vue&type=template&id=e29fe6d4\"\nimport script from \"./emoji_picker.js?vue&type=script&lang=js\"\nexport * from \"./emoji_picker.js?vue&type=script&lang=js\"\n\nimport \"./emoji_picker.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Completion from '../../services/completion/completion.js'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { take } from 'lodash'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faSmileBeam\n)\n\n/**\n * EmojiInput - augmented inputs for emoji and autocomplete support in inputs\n * without having to give up the comfort of <input/> and <textarea/> elements\n *\n * Intended usage is:\n * <EmojiInput v-model=\"something\">\n * <input v-model=\"something\"/>\n * </EmojiInput>\n *\n * Works only with <input> and <textarea>. Intended to use with only one nested\n * input. It will find first input or textarea and work with that, multiple\n * nested children not tested. You HAVE TO duplicate v-model for both\n * <emoji-input> and <input>/<textarea> otherwise it will not work.\n *\n * Be prepared for CSS troubles though because it still wraps component in a div\n * while TRYING to make it look like nothing happened, but it could break stuff.\n */\n\nconst EmojiInput = {\n emits: ['update:modelValue', 'shown'],\n props: {\n suggest: {\n /**\n * suggest: function (input: String) => Suggestion[]\n *\n * Function that takes input string which takes string (textAtCaret)\n * and returns an array of Suggestions\n *\n * Suggestion is an object containing following properties:\n * displayText: string. Main display text, what actual suggestion\n * represents (user's screen name/emoji shortcode)\n * replacement: string. Text that should replace the textAtCaret\n * detailText: string, optional. Subtitle text, providing additional info\n * if present (user's nickname)\n * imageUrl: string, optional. Image to display alongside with suggestion,\n * currently if no image is provided, replacement will be used (for\n * unicode emojis)\n *\n * TODO: make it asynchronous when adding proper server-provided user\n * suggestions\n *\n * For commonly used suggestors (emoji, users, both) use suggestor.js\n */\n required: true,\n type: Function\n },\n modelValue: {\n /**\n * Used for v-model\n */\n required: true,\n type: String\n },\n enableEmojiPicker: {\n /**\n * Enables emoji picker support, this implies that custom emoji are supported\n */\n required: false,\n type: Boolean,\n default: false\n },\n hideEmojiButton: {\n /**\n * intended to use with external picker trigger, i.e. you have a button outside\n * input that will open up the picker, see triggerShowPicker()\n */\n required: false,\n type: Boolean,\n default: false\n },\n enableStickerPicker: {\n /**\n * Enables sticker picker support, only makes sense when enableEmojiPicker=true\n */\n required: false,\n type: Boolean,\n default: false\n },\n placement: {\n /**\n * Forces the panel to take a specific position relative to the input element.\n * The 'auto' placement chooses either bottom or top depending on which has the available space (when both have available space, bottom is preferred).\n */\n required: false,\n type: String, // 'auto', 'top', 'bottom'\n default: 'auto'\n },\n newlineOnCtrlEnter: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n input: undefined,\n caretEl: undefined,\n highlighted: 0,\n caret: 0,\n focused: false,\n blurTimeout: null,\n temporarilyHideSuggestions: false,\n disableClickOutside: false,\n suggestions: [],\n overlayStyle: {},\n pickerShown: false\n }\n },\n components: {\n Popover,\n EmojiPicker,\n UnicodeDomainIndicator\n },\n computed: {\n padEmoji () {\n return this.$store.getters.mergedConfig.padEmoji\n },\n preText () {\n return this.modelValue.slice(0, this.caret)\n },\n postText () {\n return this.modelValue.slice(this.caret)\n },\n showSuggestions () {\n return this.focused &&\n this.suggestions &&\n this.suggestions.length > 0 &&\n !this.pickerShown &&\n !this.temporarilyHideSuggestions\n },\n textAtCaret () {\n return this.wordAtCaret?.word\n },\n wordAtCaret () {\n if (this.modelValue && this.caret) {\n const word = Completion.wordAtPosition(this.modelValue, this.caret - 1) || {}\n return word\n }\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiNamesAndKeywords () {\n return emoji => {\n const names = [emoji.displayText]\n const keywords = []\n\n if (emoji.displayTextI18n) {\n names.push(this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args))\n }\n\n if (emoji.annotations) {\n this.languages.forEach(lang => {\n names.push(emoji.annotations[lang]?.name)\n\n keywords.push(...(emoji.annotations[lang]?.keywords || []))\n })\n }\n\n return {\n names: names.filter(k => k),\n keywords: keywords.filter(k => k)\n }\n }\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n onInputScroll () {\n this.$refs.hiddenOverlay.scrollTo({\n top: this.input.scrollTop,\n left: this.input.scrollLeft\n })\n }\n },\n mounted () {\n const { root, hiddenOverlayCaret, suggestorPopover } = this.$refs\n const input = root.querySelector('.emoji-input > input') || root.querySelector('.emoji-input > textarea')\n if (!input) return\n this.input = input\n this.caretEl = hiddenOverlayCaret\n if (suggestorPopover.setAnchorEl) {\n suggestorPopover.setAnchorEl(this.caretEl) // unit test compat\n this.$refs.picker.setAnchorEl(this.caretEl)\n } else {\n console.warn('setAnchorEl not found, are we in a unit test?')\n }\n const style = getComputedStyle(this.input)\n this.overlayStyle.padding = style.padding\n this.overlayStyle.border = style.border\n this.overlayStyle.margin = style.margin\n this.overlayStyle.lineHeight = style.lineHeight\n this.overlayStyle.fontFamily = style.fontFamily\n this.overlayStyle.fontSize = style.fontSize\n this.overlayStyle.wordWrap = style.wordWrap\n this.overlayStyle.whiteSpace = style.whiteSpace\n this.resize()\n input.addEventListener('blur', this.onBlur)\n input.addEventListener('focus', this.onFocus)\n input.addEventListener('paste', this.onPaste)\n input.addEventListener('keyup', this.onKeyUp)\n input.addEventListener('keydown', this.onKeyDown)\n input.addEventListener('click', this.onClickInput)\n input.addEventListener('transitionend', this.onTransition)\n input.addEventListener('input', this.onInput)\n input.addEventListener('scroll', this.onInputScroll)\n },\n unmounted () {\n const { input } = this\n if (input) {\n input.removeEventListener('blur', this.onBlur)\n input.removeEventListener('focus', this.onFocus)\n input.removeEventListener('paste', this.onPaste)\n input.removeEventListener('keyup', this.onKeyUp)\n input.removeEventListener('keydown', this.onKeyDown)\n input.removeEventListener('click', this.onClickInput)\n input.removeEventListener('transitionend', this.onTransition)\n input.removeEventListener('input', this.onInput)\n input.removeEventListener('scroll', this.onInputScroll)\n }\n },\n watch: {\n showSuggestions: function (newValue, oldValue) {\n this.$emit('shown', newValue)\n if (newValue) {\n this.$refs.suggestorPopover.showPopover()\n } else {\n this.$refs.suggestorPopover.hidePopover()\n }\n },\n textAtCaret: async function (newWord) {\n if (newWord === undefined) return\n const firstchar = newWord.charAt(0)\n if (newWord === firstchar) {\n this.suggestions = []\n return\n }\n const matchedSuggestions = await this.suggest(newWord, this.maybeLocalizedEmojiNamesAndKeywords)\n // Async: cancel if textAtCaret has changed during wait\n if (this.textAtCaret !== newWord || matchedSuggestions.length <= 0) {\n this.suggestions = []\n return\n }\n this.suggestions = take(matchedSuggestions, 5)\n .map(({ imageUrl, ...rest }) => ({\n ...rest,\n img: imageUrl || ''\n }))\n }\n },\n methods: {\n triggerShowPicker () {\n this.$nextTick(() => {\n this.$refs.picker.showPicker()\n this.scrollIntoView()\n })\n // This temporarily disables \"click outside\" handler\n // since external trigger also means click originates\n // from outside, thus preventing picker from opening\n this.disableClickOutside = true\n setTimeout(() => {\n this.disableClickOutside = false\n }, 0)\n },\n togglePicker () {\n this.input.focus()\n if (!this.pickerShown) {\n this.scrollIntoView()\n this.$refs.picker.showPicker()\n this.$refs.picker.startEmojiLoad()\n } else {\n this.$refs.picker.hidePicker()\n }\n },\n replace (replacement) {\n const newValue = Completion.replaceWord(this.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', newValue)\n this.caret = 0\n },\n insert ({ insertion, keepOpen, surroundingSpace = true }) {\n const before = this.modelValue.substring(0, this.caret) || ''\n const after = this.modelValue.substring(this.caret) || ''\n\n /* Using a bit more smart approach to padding emojis with spaces:\n * - put a space before cursor if there isn't one already, unless we\n * are at the beginning of post or in spam mode\n * - put a space after emoji if there isn't one already unless we are\n * in spam mode\n *\n * The idea is that when you put a cursor somewhere in between sentence\n * inserting just ' :emoji: ' will add more spaces to post which might\n * break the flow/spacing, as well as the case where user ends sentence\n * with a space before adding emoji.\n *\n * Spam mode is intended for creating multi-part emojis and overall spamming\n * them, masto seem to be rendering :emoji::emoji: correctly now so why not\n */\n const isSpaceRegex = /\\s/\n const spaceBefore = (surroundingSpace && !isSpaceRegex.exec(before.slice(-1)) && before.length && this.padEmoji > 0) ? ' ' : ''\n const spaceAfter = (surroundingSpace && !isSpaceRegex.exec(after[0]) && this.padEmoji) ? ' ' : ''\n\n const newValue = [\n before,\n spaceBefore,\n insertion,\n spaceAfter,\n after\n ].join('')\n this.$emit('update:modelValue', newValue)\n const position = this.caret + (insertion + spaceAfter + spaceBefore).length\n if (!keepOpen) {\n this.input.focus()\n }\n\n this.$nextTick(function () {\n // Re-focus inputbox after clicking suggestion\n // Set selection right after the replacement instead of the very end\n this.input.setSelectionRange(position, position)\n this.caret = position\n })\n },\n replaceText (e, suggestion) {\n const len = this.suggestions.length || 0\n if (this.textAtCaret.length === 1) { return }\n if (len > 0 || suggestion) {\n const chosenSuggestion = suggestion || this.suggestions[this.highlighted]\n const replacement = chosenSuggestion.replacement\n const newValue = Completion.replaceWord(this.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', newValue)\n this.highlighted = 0\n const position = this.wordAtCaret.start + replacement.length\n\n this.$nextTick(function () {\n // Re-focus inputbox after clicking suggestion\n this.input.focus()\n // Set selection right after the replacement instead of the very end\n this.input.setSelectionRange(position, position)\n this.caret = position\n })\n e.preventDefault()\n }\n },\n cycleBackward (e) {\n const len = this.suggestions.length || 0\n if (len > 1) {\n this.highlighted -= 1\n if (this.highlighted < 0) {\n this.highlighted = this.suggestions.length - 1\n }\n e.preventDefault()\n } else {\n this.highlighted = 0\n }\n },\n cycleForward (e) {\n const len = this.suggestions.length || 0\n if (len > 1) {\n this.highlighted += 1\n if (this.highlighted >= len) {\n this.highlighted = 0\n }\n e.preventDefault()\n } else {\n this.highlighted = 0\n }\n },\n scrollIntoView () {\n const rootRef = this.$refs.picker.$el\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const scrollerRef = this.$el.closest('.sidebar-scroller') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n\n const scrollerBottomBorder = currentScroll + scrollerHeight\n // We check where the bottom border of root element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const rootBottomBorder = rootRef.offsetHeight + findOffset(rootRef, scrollerRef).top\n\n const bottomDelta = Math.max(0, rootBottomBorder - scrollerBottomBorder)\n // could also check top delta but there's no case for it\n const targetScroll = currentScroll + bottomDelta\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n\n this.$nextTick(() => {\n const { offsetHeight } = this.input\n const { picker } = this.$refs\n const pickerBottom = picker.$el.getBoundingClientRect().bottom\n if (pickerBottom > window.innerHeight) {\n picker.$el.style.top = 'auto'\n picker.$el.style.bottom = offsetHeight + 'px'\n }\n })\n },\n onPickerShown () {\n this.pickerShown = true\n },\n onPickerClosed () {\n this.pickerShown = false\n },\n onBlur (e) {\n // Clicking on any suggestion removes focus from autocomplete,\n // preventing click handler ever executing.\n this.blurTimeout = setTimeout(() => {\n this.focused = false\n this.setCaret(e)\n }, 200)\n },\n onClick (e, suggestion) {\n this.replaceText(e, suggestion)\n },\n onFocus (e) {\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout)\n this.blurTimeout = null\n }\n\n this.focused = true\n this.setCaret(e)\n this.temporarilyHideSuggestions = false\n },\n onKeyUp (e) {\n const { key } = e\n this.setCaret(e)\n\n // Setting hider in keyUp to prevent suggestions from blinking\n // when moving away from suggested spot\n if (key === 'Escape') {\n this.temporarilyHideSuggestions = true\n } else {\n this.temporarilyHideSuggestions = false\n }\n },\n onPaste (e) {\n this.setCaret(e)\n },\n onKeyDown (e) {\n const { ctrlKey, shiftKey, key } = e\n if (this.newlineOnCtrlEnter && ctrlKey && key === 'Enter') {\n this.insert({ insertion: '\\n', surroundingSpace: false })\n // Ensure only one new line is added on macos\n e.stopPropagation()\n e.preventDefault()\n\n // Scroll the input element to the position of the cursor\n this.$nextTick(() => {\n this.input.blur()\n this.input.focus()\n })\n }\n // Disable suggestions hotkeys if suggestions are hidden\n if (!this.temporarilyHideSuggestions) {\n if (key === 'Tab') {\n if (shiftKey) {\n this.cycleBackward(e)\n } else {\n this.cycleForward(e)\n }\n }\n if (key === 'ArrowUp') {\n this.cycleBackward(e)\n } else if (key === 'ArrowDown') {\n this.cycleForward(e)\n }\n if (key === 'Enter') {\n if (!ctrlKey) {\n this.replaceText(e)\n }\n }\n }\n // Probably add optional keyboard controls for emoji picker?\n\n // Escape hides suggestions, if suggestions are hidden it\n // de-focuses the element (i.e. default browser behavior)\n if (key === 'Escape') {\n if (!this.temporarilyHideSuggestions) {\n this.input.focus()\n }\n }\n },\n onInput (e) {\n this.setCaret(e)\n this.$emit('update:modelValue', e.target.value)\n },\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-Failed', e)\n },\n setCaret ({ target: { selectionStart } }) {\n this.caret = selectionStart\n this.$nextTick(() => {\n this.$refs.suggestorPopover.updateStyles()\n })\n },\n resize () {\n }\n }\n}\n\nexport default EmojiInput\n","import { render } from \"./emoji_input.vue?vue&type=template&id=5fc70400\"\nimport script from \"./emoji_input.js?vue&type=script&lang=js\"\nexport * from \"./emoji_input.js?vue&type=script&lang=js\"\n\nimport \"./emoji_input.vue?vue&type=style&index=0&id=5fc70400&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const createRuffleService = () => {\n let ruffleInstance = null\n\n const getRuffle = () => new Promise((resolve, reject) => {\n if (ruffleInstance) {\n resolve(ruffleInstance)\n return\n }\n // Ruffle needs these to be set before it's loaded\n // https://github.com/ruffle-rs/ruffle/issues/3952\n window.RufflePlayer = {}\n window.RufflePlayer.config = {\n polyfills: false,\n publicPath: '/static/ruffle'\n }\n\n // Currently it's seems like a better way of loading ruffle\n // because it needs the wasm publically accessible, but it needs path to it\n // and filename of wasm seems to be pseudo-randomly generated (is it a hash?)\n const script = document.createElement('script')\n // see webpack config, using CopyPlugin to copy it from node_modules\n // provided via ruffle-mirror\n script.src = '/static/ruffle/ruffle.js'\n script.type = 'text/javascript'\n script.onerror = (e) => { reject(e) }\n script.onabort = (e) => { reject(e) }\n script.oncancel = (e) => { reject(e) }\n script.onload = () => {\n ruffleInstance = window.RufflePlayer\n resolve(ruffleInstance)\n }\n document.body.appendChild(script)\n })\n\n return { getRuffle }\n}\n\nconst RuffleService = createRuffleService()\n\nexport default RuffleService\n","<template>\n <div class=\"Flash\">\n <div\n v-if=\"player === true || player === 'hidden'\"\n ref=\"container\"\n class=\"player\"\n :class=\"{ hidden: player === 'hidden' }\"\n />\n <button\n v-if=\"player !== true\"\n class=\"button-unstyled placeholder\"\n @click=\"openPlayer\"\n >\n <span\n v-if=\"player === 'hidden'\"\n class=\"label\"\n >\n {{ $t('general.loading') }}\n </span>\n <span\n v-if=\"player === 'error'\"\n class=\"label\"\n >\n {{ $t('general.flash_fail') }}\n </span>\n <span\n v-else\n class=\"label\"\n >\n <p>\n {{ $t('general.flash_content') }}\n </p>\n <p>\n <FAIcon icon=\"exclamation-triangle\" />\n {{ $t('general.flash_security') }}\n </p>\n </span>\n </button>\n </div>\n</template>\n\n<script src=\"./flash.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: 'hidden';\n }\n}\n</style>\n","import RuffleService from '../../services/ruffle_service/ruffle_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStop,\n faExclamationTriangle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faStop,\n faExclamationTriangle\n)\n\nconst Flash = {\n props: ['src'],\n data () {\n return {\n player: false, // can be true, \"hidden\", false. hidden = element exists\n loaded: false,\n ruffleInstance: null\n }\n },\n methods: {\n openPlayer () {\n if (this.player) return // prevent double-loading, or re-loading on failure\n this.player = 'hidden'\n RuffleService.getRuffle().then((ruffle) => {\n const player = ruffle.newest().createPlayer()\n player.config = {\n letterbox: 'on'\n }\n const container = this.$refs.container\n container.appendChild(player)\n player.style.width = '100%'\n player.style.height = '100%'\n player.load(this.src).then(() => {\n this.player = true\n }).catch((e) => {\n console.error('Error loading ruffle', e)\n this.player = 'error'\n })\n this.ruffleInstance = player\n this.$emit('playerOpened')\n })\n },\n closePlayer () {\n this.ruffleInstance && this.ruffleInstance.remove()\n this.player = false\n this.$emit('playerClosed')\n }\n }\n}\n\nexport default Flash\n","import { render } from \"./flash.vue?vue&type=template&id=0dec384a\"\nimport script from \"./flash.js?vue&type=script&lang=js\"\nexport * from \"./flash.js?vue&type=script&lang=js\"\n\nimport \"./flash.vue?vue&type=style&index=0&id=0dec384a&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reject) => {\n setTimeout(() => {\n store.state.api.backendInteractor.fetchUserRelationship({ id: userId })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n return relationship\n })\n .then((relationship) => resolve([relationship.following, relationship.requested, relationship.locked, attempt]))\n .catch((e) => reject(e))\n }, 500)\n}).then(([following, sent, locked, attempt]) => {\n if (!following && !(locked && sent) && attempt <= 3) {\n // If we BE reports that we still not following that user - retry,\n // increment attempts by one\n fetchRelationship(++attempt, userId, store)\n }\n})\n\nexport const requestFollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.followUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n\n if (updated.following || (updated.locked && updated.requested)) {\n // If we get result immediately or the account is locked, just stop.\n resolve()\n return\n }\n\n // But usually we don't get result immediately, so we ask server\n // for updated user profile to confirm if we are following them\n // Sometimes it takes several tries. Sometimes we end up not following\n // user anyway, probably because they locked themselves and we\n // don't know that yet.\n // Recursive Promise, it will call itself up to 3 times.\n\n return fetchRelationship(1, updated, store)\n .then(() => {\n resolve()\n })\n })\n})\n\nexport const requestUnfollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.unfollowUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n resolve({\n updated\n })\n })\n})\n","import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'\nexport default {\n props: ['relationship', 'user', 'labelFollowing', 'buttonClass'],\n data () {\n return {\n inProgress: false\n }\n },\n computed: {\n isPressed () {\n return this.inProgress || this.relationship.following\n },\n title () {\n if (this.inProgress || this.relationship.following) {\n return this.$t('user_card.follow_unfollow')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_cancel')\n } else {\n return this.$t('user_card.follow')\n }\n },\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else if (this.relationship.following) {\n return this.labelFollowing || this.$t('user_card.following')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_sent')\n } else {\n return this.$t('user_card.follow')\n }\n },\n disabled () {\n return this.inProgress || this.user.deactivated\n }\n },\n methods: {\n onClick () {\n this.relationship.following || this.relationship.requested ? this.unfollow() : this.follow()\n },\n follow () {\n this.inProgress = true\n requestFollow(this.relationship.id, this.$store).then(() => {\n this.inProgress = false\n })\n },\n unfollow () {\n const store = this.$store\n this.inProgress = true\n requestUnfollow(this.relationship.id, store).then(() => {\n this.inProgress = false\n store.commit('removeStatus', { timeline: 'friends', userId: this.relationship.id })\n })\n }\n }\n}\n","import { render } from \"./follow_button.vue?vue&type=template&id=2c877477\"\nimport script from \"./follow_button.js?vue&type=script&lang=js\"\nexport * from \"./follow_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: isPressed }\"\n :disabled=\"disabled\"\n :title=\"title\"\n @click=\"onClick\"\n >\n {{ label }}\n </button>\n</template>\n\n<script src=\"./follow_button.js\"></script>\n","<template>\n <div\n ref=\"galleryContainer\"\n class=\"Gallery\"\n :class=\"{ '-long': tooManyAttachments && hidingLong }\"\n >\n <div class=\"gallery-rows\">\n <div\n v-for=\"(row, rowIndex) in rows\"\n :key=\"rowIndex\"\n class=\"gallery-row\"\n :style=\"rowStyle(row)\"\n :class=\"{ '-audio': row.audio, '-minimal': row.minimal, '-grid': grid }\"\n >\n <div\n class=\"gallery-row-inner\"\n :class=\"{ '-grid': grid }\"\n >\n <Attachment\n v-for=\"(attachment, attachmentIndex) in row.items\"\n :key=\"attachment.id\"\n class=\"gallery-item\"\n :nsfw=\"nsfw\"\n :attachment=\"attachment\"\n :size=\"size\"\n :editable=\"editable\"\n :remove=\"removeAttachment\"\n :shift-up=\"!(attachmentIndex === 0 && rowIndex === 0) && shiftUpAttachment\"\n :shift-dn=\"!(attachmentIndex === row.items.length - 1 && rowIndex === rows.length - 1) && shiftDnAttachment\"\n :edit=\"editAttachment\"\n :description=\"descriptions && descriptions[attachment.id]\"\n :hide-description=\"size === 'small' || tooManyAttachments && hidingLong\"\n :style=\"itemStyle(attachment.id, row.items)\"\n @setMedia=\"onMedia\"\n @naturalSizeLoad=\"onNaturalSizeLoad\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"tooManyAttachments\"\n class=\"many-attachments\"\n >\n <div class=\"many-attachments-text\">\n {{ $t(\"status.many_attachments\", { number: attachments.length }) }}\n </div>\n <div class=\"many-attachments-buttons\">\n <span\n v-if=\"!hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(true)\"\n >\n {{ $t(\"status.collapse_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(false)\"\n >\n {{ $t(\"status.show_all_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openGallery\"\n >\n {{ $t(\"status.open_gallery\") }}\n </button>\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<script src='./gallery.js'></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n\n .gallery-row {\n &.-grid,\n &.-minimal {\n height: auto;\n .gallery-row-inner {\n position: relative;\n }\n }\n }\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-content: stretch;\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-column-gap: 0.5em;\n grid-row-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n &:last-child {\n margin: 0;\n }\n }\n}\n</style>\n","import Attachment from '../attachment/attachment.vue'\nimport { sumBy, set } from 'lodash'\n\nconst Gallery = {\n props: [\n 'attachments',\n 'limitRows',\n 'descriptions',\n 'limit',\n 'nsfw',\n 'setMedia',\n 'size',\n 'editable',\n 'removeAttachment',\n 'shiftUpAttachment',\n 'shiftDnAttachment',\n 'editAttachment',\n 'grid'\n ],\n data () {\n return {\n sizes: {},\n hidingLong: true\n }\n },\n components: { Attachment },\n computed: {\n rows () {\n if (!this.attachments) {\n return []\n }\n const attachments = this.limit > 0\n ? this.attachments.slice(0, this.limit)\n : this.attachments\n if (this.size === 'hide') {\n return attachments.map(item => ({ minimal: true, items: [item] }))\n }\n const rows = this.grid\n ? [{ grid: true, items: attachments }]\n : attachments.reduce((acc, attachment, i) => {\n if (attachment.mimetype.includes('audio')) {\n return [...acc, { audio: true, items: [attachment] }, { items: [] }]\n }\n if (!(\n attachment.mimetype.includes('image') ||\n attachment.mimetype.includes('video') ||\n attachment.mimetype.includes('flash')\n )) {\n return [...acc, { minimal: true, items: [attachment] }, { items: [] }]\n }\n const maxPerRow = 3\n const attachmentsRemaining = this.attachments.length - i + 1\n const currentRow = acc[acc.length - 1].items\n currentRow.push(attachment)\n if (currentRow.length >= maxPerRow && attachmentsRemaining > maxPerRow) {\n return [...acc, { items: [] }]\n } else {\n return acc\n }\n }, [{ items: [] }]).filter(_ => _.items.length > 0)\n return rows\n },\n attachmentsDimensionalScore () {\n return this.rows.reduce((acc, row) => {\n let size = 0\n if (row.minimal) {\n size += 1 / 8\n } else if (row.audio) {\n size += 1 / 4\n } else {\n size += 1 / (row.items.length + 0.6)\n }\n return acc + size\n }, 0)\n },\n tooManyAttachments () {\n if (this.editable || this.size === 'small') {\n return false\n } else if (this.size === 'hide') {\n return this.attachments.length > 8\n } else {\n return this.attachmentsDimensionalScore > 1\n }\n }\n },\n methods: {\n onNaturalSizeLoad ({ id, width, height }) {\n set(this.sizes, id, { width, height })\n },\n rowStyle (row) {\n if (row.audio) {\n return { 'padding-bottom': '25%' } // fixed reduced height for audio\n } else if (!row.minimal && !row.grid) {\n return { 'padding-bottom': `${(100 / (row.items.length + 0.6))}%` }\n }\n },\n itemStyle (id, row) {\n const total = sumBy(row, item => this.getAspectRatio(item.id))\n return { flex: `${this.getAspectRatio(id) / total} 1 0%` }\n },\n getAspectRatio (id) {\n const size = this.sizes[id]\n return size ? size.width / size.height : 1\n },\n toggleHidingLong (event) {\n this.hidingLong = event\n },\n openGallery () {\n this.$store.dispatch('setMedia', this.attachments)\n this.$store.dispatch('setCurrentMedia', this.attachments[0])\n },\n onMedia () {\n this.$store.dispatch('setMedia', this.attachments)\n }\n }\n}\n\nexport default Gallery\n","import { render } from \"./gallery.vue?vue&type=template&id=2bf4ca36\"\nimport script from \"./gallery.js?vue&type=script&lang=js\"\nexport * from \"./gallery.js?vue&type=script&lang=js\"\n\nimport \"./gallery.vue?vue&type=style&index=0&id=2bf4ca36&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <label for=\"interface-language-switcher\">\n {{ promptText }}\n </label>\n {{ ' ' }}\n <Select\n id=\"interface-language-switcher\"\n v-model=\"controlledLanguage\"\n >\n <option\n v-for=\"lang in languages\"\n :key=\"lang.code\"\n :value=\"lang.code\"\n >\n {{ lang.name }}\n </option>\n </Select>\n </div>\n</template>\n\n<script>\nimport localeService from '../../services/locale/locale.service.js'\nimport Select from '../select/select.vue'\n\nexport default {\n components: {\n // eslint-disable-next-line vue/no-reserved-component-names\n Select\n },\n props: {\n promptText: {\n type: String,\n required: true\n },\n language: {\n type: String,\n required: true\n },\n setLanguage: {\n type: Function,\n required: true\n }\n },\n computed: {\n languages () {\n return localeService.languages\n },\n\n controlledLanguage: {\n get: function () { return this.language },\n set: function (val) {\n this.setLanguage(val)\n }\n }\n },\n\n methods: {\n getLanguageName (code) {\n return localeService.getLanguageName(code)\n }\n }\n}\n</script>\n","import { render } from \"./interface_language_switcher.vue?vue&type=template&id=b439ea12\"\nimport script from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\nexport * from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <a\n class=\"link-preview-card\"\n :href=\"card.url\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <div\n v-if=\"useImage && imageLoaded\"\n class=\"card-image\"\n >\n <img :src=\"card.image\">\n </div>\n <div class=\"card-content\">\n <span class=\"card-host faint\">\n <span\n v-if=\"censored\"\n class=\"nsfw-alert alert warning\"\n >{{ $t('status.nsfw') }}</span>\n {{ card.provider_name }}\n </span>\n <h4 class=\"card-title\">{{ card.title }}</h4>\n <p\n v-if=\"useDescription\"\n class=\"card-description\"\n >{{ card.description }}</p>\n </div>\n </a>\n </div>\n</template>\n\n<script src=\"./link-preview.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n</style>\n","import { mapGetters } from 'vuex'\n\nconst LinkPreview = {\n name: 'LinkPreview',\n props: [\n 'card',\n 'size',\n 'nsfw'\n ],\n data () {\n return {\n imageLoaded: false\n }\n },\n computed: {\n useImage () {\n // Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid\n // as it makes sure to hide the image if somehow NSFW tagged preview can\n // exist.\n return this.card.image && !this.censored && this.size !== 'hide'\n },\n censored () {\n return this.nsfw && this.hideNsfwConfig\n },\n useDescription () {\n return this.card.description && /\\S/.test(this.card.description)\n },\n hideNsfwConfig () {\n return this.mergedConfig.hideNsfw\n },\n ...mapGetters([\n 'mergedConfig'\n ])\n },\n created () {\n if (this.useImage) {\n const newImg = new Image()\n newImg.onload = () => {\n this.imageLoaded = true\n }\n newImg.src = this.card.image\n }\n }\n}\n\nexport default LinkPreview\n","import { render } from \"./link-preview.vue?vue&type=template&id=03087feb\"\nimport script from \"./link-preview.js?vue&type=script&lang=js\"\nexport * from \"./link-preview.js?vue&type=script&lang=js\"\n\nimport \"./link-preview.vue?vue&type=style&index=0&id=03087feb&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"list\">\n <div\n v-for=\"item in items\"\n :key=\"getKey(item)\"\n class=\"list-item\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n />\n </div>\n <div\n v-if=\"items.length === 0 && !!$slots.empty\"\n class=\"list-empty-content faint\"\n >\n <slot name=\"empty\" />\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n items: {\n type: Array,\n default: () => []\n },\n getKey: {\n type: Function,\n default: item => item.id\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.list {\n &-item:not(:last-child) {\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n &-empty-content {\n text-align: center;\n padding: 10px;\n }\n}\n</style>\n","import { render } from \"./list.vue?vue&type=template&id=c1790f52\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\n\nimport \"./list.vue?vue&type=style&index=0&id=c1790f52&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n class=\"MentionLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n v-if=\"!user\"\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n v-html=\"content\"\n /><!-- eslint-enable vue/no-v-html -->\n <UserPopover\n v-else\n :user-id=\"user.id\"\n :disabled=\"!shouldShowTooltip\"\n >\n <span\n v-if=\"user\"\n class=\"new\"\n :style=\"style\"\n :class=\"classnames\"\n >\n <a\n class=\"short button-unstyled\"\n :class=\"{ '-with-tooltip': shouldShowTooltip }\"\n :href=\"url\"\n @click.prevent=\"onClick\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <UserAvatar\n v-if=\"shouldShowAvatar\"\n class=\"mention-avatar\"\n :user=\"user\"\n /><span\n class=\"shortName\"\n ><FAIcon\n v-if=\"useAtIcon\"\n size=\"sm\"\n icon=\"at\"\n class=\"at\"\n />{{ !useAtIcon ? '@' : '' }}<span\n class=\"userName\"\n v-html=\"userName\"\n /><span\n v-if=\"shouldShowFullUserName\"\n class=\"serverName\"\n :class=\"{ '-faded': shouldFadeDomain }\"\n v-html=\"'@' + serverName\"\n /><UnicodeDomainIndicator\n v-if=\"shouldShowFullUserName\"\n :user=\"user\"\n />\n </span>\n <span\n v-if=\"isYou && shouldShowYous\"\n :class=\"{ '-you': shouldBoldenYou }\"\n > {{ ' ' + $t('status.you') }}</span>\n <!-- eslint-enable vue/no-v-html -->\n </a><span\n ref=\"full\"\n class=\"full\"\n >\n <!-- eslint-disable vue/no-v-html -->\n @<span v-html=\"userName\" /><span v-html=\"'@' + serverName\" />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n </span>\n </UserPopover>\n </span>\n</template>\n\n<script src=\"./mention_link.js\" />\n\n<style lang=\"scss\" src=\"./mention_link.scss\" />\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters, mapState } from 'vuex'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAt\n)\n\nconst MentionLink = {\n name: 'MentionLink',\n components: {\n UserAvatar,\n UnicodeDomainIndicator,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n userId: {\n required: false,\n type: String\n },\n userScreenName: {\n required: false,\n type: String\n }\n },\n data () {\n return {\n hasSelection: false\n }\n },\n methods: {\n onClick () {\n if (this.shouldShowTooltip) return\n const link = generateProfileLink(\n this.userId || this.user.id,\n this.userScreenName || this.user.screen_name\n )\n this.$router.push(link)\n },\n handleSelection () {\n this.hasSelection = document.getSelection().containsNode(this.$refs.full, true)\n }\n },\n mounted () {\n document.addEventListener('selectionchange', this.handleSelection)\n },\n unmounted () {\n document.removeEventListener('selectionchange', this.handleSelection)\n },\n computed: {\n user () {\n return this.url && this.$store && this.$store.getters.findUserByUrl(this.url)\n },\n isYou () {\n // FIXME why user !== currentUser???\n return this.user && this.user.id === this.currentUser.id\n },\n userName () {\n return this.user && this.userNameFullUi.split('@')[0]\n },\n serverName () {\n // XXX assumed that domain does not contain @\n return this.user && (this.userNameFullUi.split('@')[1] || this.$store.getters.instanceDomain)\n },\n userNameFull () {\n return this.user && this.user.screen_name\n },\n userNameFullUi () {\n return this.user && this.user.screen_name_ui\n },\n highlight () {\n return this.user && this.mergedConfig.highlight[this.user.screen_name]\n },\n highlightType () {\n return this.highlight && ('-' + this.highlight.type)\n },\n highlightClass () {\n if (this.highlight) return highlightClass(this.user)\n },\n style () {\n if (this.highlight) {\n const {\n backgroundColor,\n backgroundPosition,\n backgroundImage,\n ...rest\n } = highlightStyle(this.highlight)\n return rest\n }\n },\n classnames () {\n return [\n {\n '-you': this.isYou && this.shouldBoldenYou,\n '-highlighted': this.highlight,\n '-has-selection': this.hasSelection\n },\n this.highlightType\n ]\n },\n useAtIcon () {\n return this.mergedConfig.useAtIcon\n },\n isRemote () {\n return this.userName !== this.userNameFull\n },\n shouldShowFullUserName () {\n const conf = this.mergedConfig.mentionLinkDisplay\n if (conf === 'short') {\n return false\n } else if (conf === 'full') {\n return true\n } else { // full_for_remote\n return this.isRemote\n }\n },\n shouldShowTooltip () {\n return this.mergedConfig.mentionLinkShowTooltip\n },\n shouldShowAvatar () {\n return this.mergedConfig.mentionLinkShowAvatar\n },\n shouldShowYous () {\n return this.mergedConfig.mentionLinkShowYous\n },\n shouldBoldenYou () {\n return this.mergedConfig.mentionLinkBoldenYou\n },\n shouldFadeDomain () {\n return this.mergedConfig.mentionLinkFadeDomain\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default MentionLink\n","import { render } from \"./mention_link.vue?vue&type=template&id=11ab9a6c\"\nimport script from \"./mention_link.js?vue&type=script&lang=js\"\nexport * from \"./mention_link.js?vue&type=script&lang=js\"\n\nimport \"./mention_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span class=\"MentionsLine\">\n <MentionLink\n v-for=\"mention in mentionsComputed\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n /><span\n v-if=\"manyMentions\"\n class=\"extraMentions\"\n >\n <span\n v-if=\"expanded\"\n class=\"fullExtraMentions\"\n >{{ ' ' }}<MentionLink\n v-for=\"mention in extraMentions\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n />\n </span><button\n v-if=\"!expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('status.plus_more', { number: extraMentions.length }) }}\n </button><button\n v-if=\"expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('general.show_less') }}\n </button>\n </span>\n </span>\n</template>\n<script src=\"./mentions_line.js\"></script>\n<style lang=\"scss\" src=\"./mentions_line.scss\" />\n","import MentionLink from 'src/components/mention_link/mention_link.vue'\nimport { mapGetters } from 'vuex'\n\nexport const MENTIONS_LIMIT = 5\n\nconst MentionsLine = {\n name: 'MentionsLine',\n props: {\n mentions: {\n required: true,\n type: Array\n }\n },\n data: () => ({ expanded: false }),\n components: {\n MentionLink\n },\n computed: {\n mentionsComputed () {\n return this.mentions.slice(0, MENTIONS_LIMIT)\n },\n extraMentions () {\n return this.mentions.slice(MENTIONS_LIMIT)\n },\n manyMentions () {\n return this.extraMentions.length > 0\n },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n toggleShowMore () {\n this.expanded = !this.expanded\n }\n }\n}\n\nexport default MentionsLine\n","import { render } from \"./mentions_line.vue?vue&type=template&id=0e41a1da\"\nimport script from \"./mentions_line.js?vue&type=script&lang=js\"\nexport * from \"./mentions_line.js?vue&type=script&lang=js\"\n\nimport \"./mentions_line.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-show=\"isOpen\"\n v-body-scroll-lock=\"isOpen && !noBackground\"\n class=\"modal-view\"\n :class=\"classes\"\n @click.self=\"$emit('backdropClicked')\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n provide: {\n popoversZLayer: 'modals'\n },\n props: {\n isOpen: {\n type: Boolean,\n default: true\n },\n noBackground: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n classes () {\n return {\n 'modal-background': !this.noBackground,\n open: this.isOpen\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.modal-view {\n z-index: var(--ZI_modals);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgba(0, 0, 0, 0.5);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgba(0, 0, 0, 0);\n }\n to {\n background-color: rgba(0, 0, 0, 0.5);\n }\n}\n</style>\n","import { render } from \"./modal.vue?vue&type=template&id=b3e803fa\"\nimport script from \"./modal.vue?vue&type=script&lang=js\"\nexport * from \"./modal.vue?vue&type=script&lang=js\"\n\nimport \"./modal.vue?vue&type=style&index=0&id=b3e803fa&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <teleport\n :disabled=\"minimalMode || disableTeleport\"\n :to=\"teleportTarget\"\n >\n <component\n :is=\"noHeading ? 'div' : 'aside'\"\n ref=\"root\"\n :class=\"{ minimal: minimalMode }\"\n class=\"Notifications\"\n >\n <div :class=\"mainClass\">\n <div\n v-if=\"!noHeading\"\n class=\"notifications-heading panel-heading -sticky\"\n >\n <div class=\"title\">\n {{ $t('notifications.notifications') }}\n <span\n v-if=\"unseenCount\"\n class=\"badge badge-notification unseen-count\"\n >{{ unseenCount }}</span>\n </div>\n <div\n v-if=\"showScrollTop\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <button\n v-if=\"unseenCount\"\n class=\"button-default read-button\"\n type=\"button\"\n @click.prevent=\"markAsSeen\"\n >\n {{ $t('notifications.read') }}\n </button>\n <NotificationFilters class=\"rightside-button\" />\n </div>\n <div\n class=\"panel-body\"\n role=\"feed\"\n >\n <div\n v-for=\"notification in notificationsToDisplay\"\n :key=\"notification.id\"\n role=\"listitem\"\n class=\"notification\"\n :class=\"{unseen: !minimalMode && !notification.seen}\"\n >\n <div class=\"notification-overlay\" />\n <notification :notification=\"notification\" />\n </div>\n </div>\n <div class=\"panel-footer\">\n <div\n v-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('notifications.no_more_notifications') }}\n </div>\n <button\n v-else-if=\"!loading\"\n class=\"button-unstyled -link -fullwidth\"\n @click.prevent=\"fetchOlderNotifications()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ minimalMode ? $t('interactions.load_older') : $t('notifications.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </div>\n </div>\n </component>\n </teleport>\n</template>\n\n<script src=\"./notifications.js\"></script>\n<style lang=\"scss\" src=\"./notifications.scss\"></style>\n","<template>\n <article\n v-if=\"notification.type === 'mention'\"\n >\n <Status\n class=\"Notification\"\n :compact=\"true\"\n :statusoid=\"notification.status\"\n />\n </article>\n <article v-else>\n <div\n v-if=\"needMute && !unmuted\"\n class=\"Notification container -muted\"\n >\n <small>\n <user-link\n :user=\"notification.from_profile\"\n :at=\"false\"\n />\n </small>\n <button\n class=\"button-unstyled unmute\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"Notification non-mention\"\n :class=\"[userClass, { highlighted: userStyle }, '-type--' + notification.type]\"\n :style=\"[ userStyle ]\"\n >\n <a\n class=\"avatar-container\"\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"notification.from_profile.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"notification.from_profile\"\n />\n </UserPopover>\n </a>\n <div class=\"notification-right\">\n <span class=\"notification-details\">\n <div class=\"name-and-action\">\n <!-- eslint-disable vue/no-v-html -->\n <bdi v-if=\"!!notification.from_profile.name_html\">\n <RichContent\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n :html=\"notification.from_profile.name_html\"\n :emoji=\"notification.from_profile.emoji\"\n />\n </bdi>\n <!-- eslint-enable vue/no-v-html -->\n <span\n v-else\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n >\n {{ notification.from_profile.name }}\n </span>\n {{ ' ' }}\n <span v-if=\"notification.type === 'like'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"star\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.favorited_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'repeat'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"retweet\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.repeated_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user-plus\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.followed_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow_request'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.follow_request') }}</small>\n </span>\n <span v-if=\"notification.type === 'move'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"suitcase-rolling\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.migrated_to') }}</small>\n </span>\n <span v-if=\"notification.type === 'pleroma:emoji_reaction'\">\n <small>\n <i18n-t\n scope=\"global\"\n keypath=\"notifications.reacted_with\"\n >\n <span class=\"emoji-reaction-emoji\">{{ notification.emoji }}</span>\n </i18n-t>\n </small>\n </span>\n <span v-if=\"notification.type === 'pleroma:report'\">\n <small>{{ $t('notifications.submitted_report') }}</small>\n </span>\n <span v-if=\"notification.type === 'poll'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"poll-h\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.poll_ended') }}</small>\n </span>\n </div>\n <div\n v-if=\"isStatusNotification\"\n class=\"timeago\"\n >\n <router-link\n v-if=\"notification.status\"\n :to=\"{ name: 'conversation', params: { id: notification.status.id } }\"\n class=\"timeago-link faint-link\"\n >\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </router-link>\n <button\n class=\"button-unstyled expand-icon\"\n @click.prevent=\"toggleStatusExpanded\"\n :title=\"$t('tool_tip.toggle_expand')\"\n :aria-expanded=\"statusExpanded\"\n >\n <FAIcon\n class=\"fa-scale-110\"\n fixed-width\n :icon=\"statusExpanded ? 'compress-alt' : 'expand-alt'\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"timeago\"\n >\n <span class=\"faint\">\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </span>\n </div>\n <button\n v-if=\"needMute\"\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.toggle_mute')\"\n :aria-expanded=\"!unmuted\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </span>\n <div\n v-if=\"notification.type === 'follow' || notification.type === 'follow_request'\"\n class=\"follow-text\"\n >\n <user-link\n class=\"follow-name\"\n :user=\"notification.from_profile\"\n />\n <div\n v-if=\"notification.type === 'follow_request'\"\n style=\"white-space: nowrap;\"\n >\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.accept_follow_request')\"\n @click=\"approveUser()\"\n >\n <FAIcon\n icon=\"check\"\n class=\"fa-scale-110 fa-old-padding follow-request-accept\"\n />\n </button>\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.reject_follow_request')\"\n @click=\"denyUser()\"\n >\n <FAIcon\n icon=\"times\"\n class=\"fa-scale-110 fa-old-padding follow-request-reject\"\n />\n </button>\n </div>\n </div>\n <div\n v-else-if=\"notification.type === 'move'\"\n class=\"move-text\"\n >\n <user-link\n :user=\"notification.target\"\n />\n </div>\n <Report\n v-else-if=\"notification.type === 'pleroma:report'\"\n :report-id=\"notification.report.id\"\n />\n <template v-else>\n <StatusContent\n :class=\"{ faint: !statusExpanded }\"\n :compact=\"!statusExpanded\"\n :status=\"notification.action\"\n />\n </template>\n </div>\n </div>\n </article>\n</template>\n\n<script src=\"./notification.js\"></script>\n<style src=\"./notification.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"Report\">\n <div class=\"reported-user\">\n <span>{{ $t('report.reported_user') }}</span>\n <router-link :to=\"generateUserProfileLink(report.acct)\">\n @{{ report.acct.screen_name }}\n </router-link>\n </div>\n <div class=\"reporter\">\n <span>{{ $t('report.reporter') }}</span>\n <router-link :to=\"generateUserProfileLink(report.actor)\">\n @{{ report.actor.screen_name }}\n </router-link>\n </div>\n <div class=\"report-state\">\n <span>{{ $t('report.state') }}</span>\n <Select\n :id=\"report-state\"\n v-model=\"state\"\n class=\"form-control\"\n >\n <option\n v-for=\"state in ['open', 'closed', 'resolved']\"\n :key=\"state\"\n :value=\"state\"\n >\n {{ $t('report.state_' + state) }}\n </option>\n </Select>\n </div>\n <RichContent\n class=\"report-content\"\n :html=\"report.content\"\n :emoji=\"[]\"\n />\n <div v-if=\"report.statuses.length\">\n <small>{{ $t('report.reported_statuses') }}</small>\n <router-link\n v-for=\"status in report.statuses\"\n :key=\"status.id\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n class=\"reported-status\"\n >\n <div class=\"reported-status-heading\">\n <span class=\"reported-status-name\">{{ status.user.name }}</span>\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n <status-content :status=\"status\" />\n </router-link>\n </div>\n <div v-if=\"report.notes.length\">\n <small>{{ $t('report.notes') }}</small>\n <div\n v-for=\"note in report.notes\"\n :key=\"note.id\"\n class=\"note\"\n >\n <span>{{ note.content }}</span>\n <Timeago\n :time=\"note.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./report.js\"></script>\n<style src=\"./report.scss\" lang=\"scss\"></style>\n","import Select from '../select/select.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst Report = {\n props: [\n 'reportId'\n ],\n components: {\n Select,\n StatusContent,\n Timeago\n },\n computed: {\n report () {\n return this.$store.state.reports.reports[this.reportId] || {}\n },\n state: {\n get: function () { return this.report.state },\n set: function (val) { this.setReportState(val) }\n }\n },\n methods: {\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n setReportState (state) {\n return this.$store.dispatch('setReportState', { id: this.report.id, state })\n }\n }\n}\n\nexport default Report\n","import { render } from \"./report.vue?vue&type=template&id=86a2fdce\"\nimport script from \"./report.js?vue&type=script&lang=js\"\nexport * from \"./report.js?vue&type=script&lang=js\"\n\nimport \"./report.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StatusContent from '../status_content/status_content.vue'\nimport { mapState } from 'vuex'\nimport Status from '../status/status.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport Report from '../report/report.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport { isStatusNotification } from '../../services/notification_utils/notification_utils.js'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faEyeSlash,\n faUser,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faUser,\n faEyeSlash,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n)\n\nconst Notification = {\n data () {\n return {\n statusExpanded: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n unmuted: false\n }\n },\n props: ['notification'],\n components: {\n StatusContent,\n UserAvatar,\n UserCard,\n Timeago,\n Status,\n Report,\n RichContent,\n UserPopover,\n UserLink\n },\n methods: {\n toggleStatusExpanded () {\n this.statusExpanded = !this.statusExpanded\n },\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n getUser (notification) {\n return this.$store.state.users.usersObject[notification.from_profile.id]\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n approveUser () {\n this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n this.$store.dispatch('markSingleNotificationAsSeen', { id: this.notification.id })\n this.$store.dispatch('updateNotification', {\n id: this.notification.id,\n updater: notification => {\n notification.type = 'follow'\n }\n })\n },\n denyUser () {\n this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n .then(() => {\n this.$store.dispatch('dismissNotificationLocal', { id: this.notification.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n })\n }\n },\n computed: {\n userClass () {\n return highlightClass(this.notification.from_profile)\n },\n userStyle () {\n const highlight = this.$store.getters.mergedConfig.highlight\n const user = this.notification.from_profile\n return highlightStyle(highlight[user.screen_name])\n },\n user () {\n return this.$store.getters.findUser(this.notification.from_profile.id)\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.user)\n },\n targetUser () {\n return this.$store.getters.findUser(this.notification.target.id)\n },\n targetUserProfileLink () {\n return this.generateUserProfileLink(this.targetUser)\n },\n needMute () {\n return this.$store.getters.relationship(this.user.id).muting\n },\n isStatusNotification () {\n return isStatusNotification(this.notification.type)\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default Notification\n","import { render } from \"./notification.vue?vue&type=template&id=6dbbedfb\"\nimport script from \"./notification.js?vue&type=script&lang=js\"\nexport * from \"./notification.js?vue&type=script&lang=js\"\n\nimport \"./notification.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"NotificationFilters\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('likes')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.likes }\"\n />{{ $t('settings.notification_visibility_likes') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('repeats')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.repeats }\"\n />{{ $t('settings.notification_visibility_repeats') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('follows')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.follows }\"\n />{{ $t('settings.notification_visibility_follows') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('mentions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.mentions }\"\n />{{ $t('settings.notification_visibility_mentions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('emojiReactions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.emojiReactions }\"\n />{{ $t('settings.notification_visibility_emoji_reactions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('moves')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.moves }\"\n />{{ $t('settings.notification_visibility_moves') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('polls')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.polls }\"\n />{{ $t('settings.notification_visibility_polls') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"filter-trigger-button button-unstyled\">\n <FAIcon icon=\"filter\" />\n </button>\n </template>\n </Popover>\n</template>\n\n<script>\nimport Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter\n)\n\nexport default {\n components: { Popover },\n computed: {\n filters () {\n return this.$store.getters.mergedConfig.notificationVisibility\n }\n },\n methods: {\n toggleNotificationFilter (type) {\n this.$store.dispatch('setOption', {\n name: 'notificationVisibility',\n value: {\n ...this.filters,\n [type]: !this.filters[type]\n }\n })\n }\n }\n}\n</script>\n","import { render } from \"./notification_filters.vue?vue&type=template&id=0ad39446\"\nimport script from \"./notification_filters.vue?vue&type=script&lang=js\"\nexport * from \"./notification_filters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed } from 'vue'\nimport { mapGetters } from 'vuex'\nimport Notification from '../notification/notification.vue'\nimport NotificationFilters from './notification_filters.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n notificationsFromStore,\n filteredNotificationsFromStore,\n unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\nimport FaviconService from '../../services/favicon_service/favicon_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faArrowUp, faMinus } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faArrowUp,\n faMinus\n)\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n components: {\n Notification,\n NotificationFilters\n },\n props: {\n // Disables panel styles, unread mark, potentially other notification-related actions\n // meant for \"Interactions\" timeline\n minimalMode: Boolean,\n // Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in \"Interactions\" timeline\n filterMode: Array,\n // Disable teleporting (i.e. for /users/user/notifications)\n disableTeleport: Boolean\n },\n data () {\n return {\n showScrollTop: false,\n bottomedOut: false,\n // How many seen notifications to display in the list. The more there are,\n // the heavier the page becomes. This count is increased when loading\n // older notifications, and cut back to default whenever hitting \"Read!\".\n seenToDisplayCount: DEFAULT_SEEN_TO_DISPLAY_COUNT\n }\n },\n provide () {\n return {\n popoversZLayer: computed(() => this.popoversZLayer)\n }\n },\n computed: {\n mainClass () {\n return this.minimalMode ? '' : 'panel panel-default'\n },\n notifications () {\n return notificationsFromStore(this.$store)\n },\n error () {\n return this.$store.state.statuses.notifications.error\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n filteredNotifications () {\n return filteredNotificationsFromStore(this.$store, this.filterMode)\n },\n unseenCount () {\n return this.unseenNotifications.length\n },\n unseenCountTitle () {\n return this.unseenCount + (this.unreadChatCount) + this.unreadAnnouncementCount\n },\n loading () {\n return this.$store.state.statuses.notifications.loading\n },\n noHeading () {\n const { layoutType } = this.$store.state.interface\n return this.minimalMode || layoutType === 'mobile'\n },\n teleportTarget () {\n const { layoutType } = this.$store.state.interface\n const map = {\n wide: '#notifs-column',\n mobile: '#mobile-notifications'\n }\n return map[layoutType] || '#notifs-sidebar'\n },\n popoversZLayer () {\n const { layoutType } = this.$store.state.interface\n return layoutType === 'mobile' ? 'navbar' : null\n },\n notificationsToDisplay () {\n return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n },\n mounted () {\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.column.main')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n },\n unmounted () {\n if (!this.scrollerRef) return\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n },\n watch: {\n unseenCountTitle (count) {\n if (count > 0) {\n FaviconService.drawFaviconBadge()\n this.$store.dispatch('setPageTitle', `(${count})`)\n } else {\n FaviconService.clearFaviconBadge()\n this.$store.dispatch('setPageTitle', '')\n }\n },\n teleportTarget () {\n // handle scroller change\n this.$nextTick(() => {\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n this.updateScrollPosition()\n })\n }\n },\n methods: {\n scrollToTop () {\n const scrollable = this.scrollerRef\n scrollable.scrollTo({ top: this.$refs.root.offsetTop })\n // this.$refs.root.scrollIntoView({ behavior: 'smooth', block: 'start' })\n },\n updateScrollPosition () {\n this.showScrollTop = this.$refs.root.offsetTop < this.scrollerRef.scrollTop\n },\n markAsSeen () {\n this.$store.dispatch('markNotificationsAsSeen')\n this.seenToDisplayCount = DEFAULT_SEEN_TO_DISPLAY_COUNT\n },\n fetchOlderNotifications () {\n if (this.loading) {\n return\n }\n\n const seenCount = this.filteredNotifications.length - this.unseenCount\n if (this.seenToDisplayCount < seenCount) {\n this.seenToDisplayCount = Math.min(this.seenToDisplayCount + 20, seenCount)\n return\n } else if (this.seenToDisplayCount > seenCount) {\n this.seenToDisplayCount = seenCount\n }\n\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setNotificationsLoading', { value: true })\n notificationsFetcher.fetchAndUpdate({\n store,\n credentials,\n older: true\n }).then(notifs => {\n store.commit('setNotificationsLoading', { value: false })\n if (notifs.length === 0) {\n this.bottomedOut = true\n }\n this.seenToDisplayCount += notifs.length\n })\n }\n }\n}\n\nexport default Notifications\n","import { render } from \"./notifications.vue?vue&type=template&id=fdd5b5f4\"\nimport script from \"./notifications.js?vue&type=script&lang=js\"\nexport * from \"./notifications.js?vue&type=script&lang=js\"\n\nimport \"./notifications.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel-loading\">\n <span class=\"loading-text\">\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n {{ $t('general.loading') }}\n </span>\n </div>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nexport default {}\n</script>\n\n<style lang=\"scss\">\n@import 'src/_variables.scss';\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n</style>\n","import { render } from \"./panel_loading.vue?vue&type=template&id=595215a2\"\nimport script from \"./panel_loading.vue?vue&type=script&lang=js\"\nexport * from \"./panel_loading.vue?vue&type=script&lang=js\"\n\nimport \"./panel_loading.vue?vue&type=style&index=0&id=595215a2&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const Popover = {\n name: 'Popover',\n props: {\n // Action to trigger popover: either 'hover' or 'click'\n trigger: String,\n\n // 'top', 'bottom', 'left', 'right'\n placement: String,\n\n // Takes object with properties 'x' and 'y', values of these can be\n // 'container' for using offsetParent as boundaries for either axis\n // or 'viewport'\n boundTo: Object,\n\n // Takes a selector to use as a replacement for the parent container\n // for getting boundaries for x an y axis\n boundToSelector: String,\n\n // Takes a top/bottom/left/right object, how much space to leave\n // between boundary and popover element\n margin: Object,\n\n // Takes a x/y object and tells how many pixels to offset from\n // anchor point on either axis\n offset: Object,\n\n // Replaces the classes you may want for the popover container.\n // Use 'popover-default' in addition to get the default popover\n // styles with your custom class.\n popoverClass: String,\n\n // If true, subtract padding when calculating position for the popover,\n // use it when popover offset looks to be different on top vs bottom.\n removePadding: Boolean,\n\n // self-explanatory (i hope)\n disabled: Boolean,\n\n // Instead of putting popover next to anchor, overlay popover's center on top of anchor's center\n overlayCenters: Boolean,\n\n // What selector (witin popover!) to use for determining center of popover\n overlayCentersSelector: String,\n\n // Lets hover popover stay when clicking inside of it\n stayOnClick: Boolean,\n\n triggerAttrs: {\n type: Object,\n default: {}\n }\n },\n inject: ['popoversZLayer'], // override popover z layer\n data () {\n return {\n // lockReEntry is a flag that is set when mouse cursor is leaving the popover's content\n // so that if mouse goes back into popover it won't be re-shown again to prevent annoyance\n // with popovers refusing to be hidden when user wants to interact with something in below popover\n anchorEl: null,\n // There's an issue where having teleport enabled by default causes things just...\n // not render at all, i.e. main post status form and its emoji inputs\n teleport: false,\n lockReEntry: false,\n hidden: true,\n styles: {},\n oldSize: { width: 0, height: 0 },\n scrollable: null,\n // used to avoid blinking if hovered onto popover\n graceTimeout: null,\n parentPopover: null,\n disableClickOutside: false,\n childrenShown: new Set()\n }\n },\n methods: {\n setAnchorEl (el) {\n this.anchorEl = el\n this.updateStyles()\n },\n containerBoundingClientRect () {\n const container = this.boundToSelector ? this.$el.closest(this.boundToSelector) : this.$el.offsetParent\n return container.getBoundingClientRect()\n },\n updateStyles () {\n if (this.hidden) {\n this.styles = {}\n return\n }\n\n // Popover will be anchored around this element, trigger ref is the container, so\n // its children are what are inside the slot. Expect only one v-slot:trigger.\n const anchorEl = this.anchorEl || (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el\n // SVGs don't have offsetWidth/Height, use fallback\n const anchorHeight = anchorEl.offsetHeight || anchorEl.clientHeight\n const anchorWidth = anchorEl.offsetWidth || anchorEl.clientWidth\n const anchorScreenBox = anchorEl.getBoundingClientRect()\n\n const anchorStyle = getComputedStyle(anchorEl)\n const topPadding = parseFloat(anchorStyle.paddingTop)\n const bottomPadding = parseFloat(anchorStyle.paddingBottom)\n const rightPadding = parseFloat(anchorStyle.paddingRight)\n const leftPadding = parseFloat(anchorStyle.paddingLeft)\n\n // Screen position of the origin point for popover = center of the anchor\n const origin = {\n x: anchorScreenBox.left + anchorWidth * 0.5,\n y: anchorScreenBox.top + anchorHeight * 0.5\n }\n const content = this.$refs.content\n const overlayCenter = this.overlayCenters\n ? this.$refs.content.querySelector(this.overlayCentersSelector)\n : null\n\n // Minor optimization, don't call a slow reflow call if we don't have to\n const parentScreenBox = this.boundTo &&\n (this.boundTo.x === 'container' || this.boundTo.y === 'container') &&\n this.containerBoundingClientRect()\n\n const margin = this.margin || {}\n\n // What are the screen bounds for the popover? Viewport vs container\n // when using viewport, using default margin values to dodge the navbar\n const xBounds = this.boundTo && this.boundTo.x === 'container'\n ? {\n min: parentScreenBox.left + (margin.left || 0),\n max: parentScreenBox.right - (margin.right || 0)\n }\n : {\n min: 0 + (margin.left || 10),\n max: window.innerWidth - (margin.right || 10)\n }\n\n const yBounds = this.boundTo && this.boundTo.y === 'container'\n ? {\n min: parentScreenBox.top + (margin.top || 0),\n max: parentScreenBox.bottom - (margin.bottom || 0)\n }\n : {\n min: 0 + (margin.top || 50),\n max: window.innerHeight - (margin.bottom || 5)\n }\n\n let horizOffset = 0\n let vertOffset = 0\n\n if (overlayCenter) {\n const box = content.getBoundingClientRect()\n const overlayCenterScreenBox = overlayCenter.getBoundingClientRect()\n const leftInnerOffset = overlayCenterScreenBox.left - box.left\n const topInnerOffset = overlayCenterScreenBox.top - box.top\n horizOffset = -leftInnerOffset - overlayCenter.offsetWidth * 0.5\n vertOffset = -topInnerOffset - overlayCenter.offsetHeight * 0.5\n } else {\n horizOffset = content.offsetWidth * -0.5\n vertOffset = content.offsetHeight * -0.5\n }\n\n const leftBorder = origin.x + horizOffset\n const rightBorder = leftBorder + content.offsetWidth\n const topBorder = origin.y + vertOffset\n const bottomBorder = topBorder + content.offsetHeight\n\n // If overflowing from left, move it so that it doesn't\n if (leftBorder < xBounds.min) {\n horizOffset += xBounds.min - leftBorder\n }\n\n // If overflowing from right, move it so that it doesn't\n if (rightBorder > xBounds.max) {\n horizOffset -= rightBorder - xBounds.max\n }\n\n // If overflowing from top, move it so that it doesn't\n if (topBorder < yBounds.min) {\n vertOffset += yBounds.min - topBorder\n }\n\n // If overflowing from bottom, move it so that it doesn't\n if (bottomBorder > yBounds.max) {\n vertOffset -= bottomBorder - yBounds.max\n }\n\n let translateX = 0\n let translateY = 0\n\n if (overlayCenter) {\n translateX = origin.x + horizOffset\n translateY = origin.y + vertOffset\n } else if (this.placement !== 'right' && this.placement !== 'left') {\n // Default to whatever user wished with placement prop\n let usingTop = this.placement !== 'bottom'\n\n // Handle special cases, first force to displaying on top if there's not space on bottom,\n // regardless of what placement value was. Then check if there's not space on top, and\n // force to bottom, again regardless of what placement value was.\n const topBoundary = origin.y - anchorHeight * 0.5 + (this.removePadding ? topPadding : 0)\n const bottomBoundary = origin.y + anchorHeight * 0.5 - (this.removePadding ? bottomPadding : 0)\n if (bottomBoundary + content.offsetHeight > yBounds.max) usingTop = true\n if (topBoundary - content.offsetHeight < yBounds.min) usingTop = false\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = usingTop\n ? topBoundary - yOffset - content.offsetHeight\n : bottomBoundary + yOffset\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = origin.x + horizOffset + xOffset\n } else {\n // Default to whatever user wished with placement prop\n let usingRight = this.placement !== 'left'\n\n // Handle special cases, first force to displaying on top if there's not space on bottom,\n // regardless of what placement value was. Then check if there's not space on top, and\n // force to bottom, again regardless of what placement value was.\n const rightBoundary = origin.x - anchorWidth * 0.5 + (this.removePadding ? rightPadding : 0)\n const leftBoundary = origin.x + anchorWidth * 0.5 - (this.removePadding ? leftPadding : 0)\n if (leftBoundary + content.offsetWidth > xBounds.max) usingRight = true\n if (rightBoundary - content.offsetWidth < xBounds.min) usingRight = false\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = usingRight\n ? rightBoundary - xOffset - content.offsetWidth\n : leftBoundary + xOffset\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = origin.y + vertOffset + yOffset\n }\n\n this.styles = {\n left: `${Math.round(translateX)}px`,\n top: `${Math.round(translateY)}px`\n }\n\n if (this.popoversZLayer) {\n this.styles['--ZI_popover_override'] = `var(--ZI_${this.popoversZLayer}_popovers)`\n }\n if (parentScreenBox) {\n this.styles.maxWidth = `${Math.round(parentScreenBox.width)}px`\n }\n },\n showPopover () {\n if (this.disabled) return\n this.disableClickOutside = true\n setTimeout(() => {\n this.disableClickOutside = false\n }, 0)\n const wasHidden = this.hidden\n this.hidden = false\n this.parentPopover && this.parentPopover.onChildPopoverState(this, true)\n if (this.trigger === 'click' || this.stayOnClick) {\n document.addEventListener('click', this.onClickOutside)\n }\n this.scrollable.addEventListener('scroll', this.onScroll)\n this.scrollable.addEventListener('resize', this.onResize)\n this.$nextTick(() => {\n if (wasHidden) this.$emit('show')\n this.updateStyles()\n })\n },\n hidePopover () {\n if (this.disabled) return\n if (!this.hidden) this.$emit('close')\n this.hidden = true\n this.parentPopover && this.parentPopover.onChildPopoverState(this, false)\n if (this.trigger === 'click') {\n document.removeEventListener('click', this.onClickOutside)\n }\n this.scrollable.removeEventListener('scroll', this.onScroll)\n this.scrollable.removeEventListener('resize', this.onResize)\n },\n onMouseenter (e) {\n if (this.trigger === 'hover') {\n this.lockReEntry = false\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleave (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\n },\n onMouseenterContent (e) {\n if (this.trigger === 'hover' && !this.lockReEntry) {\n this.lockReEntry = true\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleaveContent (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\n },\n onClick (e) {\n if (this.trigger === 'click') {\n if (this.hidden) {\n this.showPopover()\n } else {\n this.hidePopover()\n }\n }\n },\n onClickOutside (e) {\n if (this.disableClickOutside) return\n if (this.hidden) return\n if (this.$refs.content && this.$refs.content.contains(e.target)) return\n if (this.$el.contains(e.target)) return\n if (this.childrenShown.size > 0) return\n this.hidePopover()\n if (this.parentPopover) this.parentPopover.onClickOutside(e)\n },\n onScroll (e) {\n this.updateStyles()\n },\n onResize (e) {\n this.updateStyles()\n },\n onChildPopoverState (childRef, state) {\n if (state) {\n this.childrenShown.add(childRef)\n } else {\n this.childrenShown.delete(childRef)\n }\n }\n },\n updated () {\n // Monitor changes to content size, update styles only when content sizes have changed,\n // that should be the only time we need to move the popover box if we don't care about scroll\n // or resize\n const content = this.$refs.content\n if (!content) return\n if (this.oldSize.width !== content.offsetWidth || this.oldSize.height !== content.offsetHeight) {\n this.updateStyles()\n this.oldSize = { width: content.offsetWidth, height: content.offsetHeight }\n }\n },\n mounted () {\n this.teleport = true\n let scrollable = this.$refs.trigger.closest('.column.-scrollable') ||\n this.$refs.trigger.closest('.mobile-notifications')\n if (!scrollable) scrollable = window\n this.scrollable = scrollable\n let parent = this.$parent\n while (parent && parent.$.type.name !== 'Popover') {\n parent = parent.$parent\n }\n this.parentPopover = parent\n },\n beforeUnmount () {\n this.hidePopover()\n }\n}\n\nexport default Popover\n","import { render } from \"./popover.vue?vue&type=template&id=78904653\"\nimport script from \"./popover.js?vue&type=script&lang=js\"\nexport * from \"./popover.js?vue&type=script&lang=js\"\n\nimport \"./popover.vue?vue&type=style&index=0&id=78904653&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n @mouseenter=\"onMouseenter\"\n @mouseleave=\"onMouseleave\"\n >\n <button\n ref=\"trigger\"\n class=\"button-unstyled popover-trigger-button\"\n type=\"button\"\n v-bind=\"triggerAttrs\"\n @click=\"onClick\"\n >\n <slot name=\"trigger\" />\n </button>\n <teleport\n :disabled=\"!teleport\"\n to=\"#popovers\"\n >\n <transition name=\"fade\">\n <div\n v-if=\"!hidden\"\n ref=\"content\"\n :style=\"styles\"\n class=\"popover\"\n :class=\"popoverClass || 'popover-default'\"\n @mouseenter=\"onMouseenterContent\"\n @mouseleave=\"onMouseleaveContent\"\n @click=\"onClickContent\"\n >\n <slot\n name=\"content\"\n class=\"popover-inner\"\n :close=\"hidePopover\"\n />\n </div>\n </transition>\n </teleport>\n </span>\n</template>\n\n<script src=\"./popover.js\" />\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &:after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: .5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: .5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0px;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon)\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active, &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0px;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: '✓';\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: '•';\n }\n }\n }\n\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=icon-] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n</style>\n","<template>\n <div\n ref=\"form\"\n class=\"post-status-form\"\n >\n <form\n autocomplete=\"off\"\n @submit.prevent\n @dragover.prevent=\"fileDrag\"\n >\n <div class=\"form-group\">\n <i18n-t\n v-if=\"!$store.state.users.currentUser.locked && newStatus.visibility == 'private' && !disableLockWarning\"\n keypath=\"post_status.account_not_locked_warning\"\n tag=\"p\"\n class=\"visibility-notice\"\n scope=\"global\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openProfileTab\"\n >\n {{ $t('post_status.account_not_locked_warning_link') }}\n </button>\n </i18n-t>\n <p\n v-if=\"!hideScopeNotice && newStatus.visibility === 'public'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.public') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'unlisted'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.unlisted') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'private' && $store.state.users.currentUser.locked\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.private') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"newStatus.visibility === 'direct'\"\n class=\"visibility-notice\"\n >\n <span v-if=\"safeDMEnabled\">{{ $t('post_status.direct_warning_to_first_only') }}</span>\n <span v-else>{{ $t('post_status.direct_warning_to_all') }}</span>\n </p>\n <div\n v-if=\"isEdit\"\n class=\"visibility-notice edit-warning\"\n >\n <p>{{ $t('post_status.edit_remote_warning') }}</p>\n <p>{{ $t('post_status.edit_unsupported_warning') }}</p>\n </div>\n <div\n v-if=\"!disablePreview\"\n class=\"preview-heading faint\"\n >\n <a\n class=\"preview-toggle faint\"\n @click.stop.prevent=\"togglePreview\"\n >\n {{ $t('post_status.preview') }}\n <FAIcon :icon=\"showPreview ? 'chevron-left' : 'chevron-right'\" />\n </a>\n <div\n v-show=\"previewLoading\"\n class=\"preview-spinner\"\n >\n <FAIcon\n class=\"fa-old-padding\"\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n <div\n v-if=\"showPreview\"\n class=\"preview-container\"\n >\n <div\n v-if=\"!preview\"\n class=\"preview-status\"\n >\n {{ $t('general.loading') }}\n </div>\n <div\n v-else-if=\"preview.error\"\n class=\"preview-status preview-error\"\n >\n {{ preview.error }}\n </div>\n <StatusContent\n v-else\n :status=\"preview\"\n class=\"preview-status\"\n />\n </div>\n <EmojiInput\n v-if=\"!disableSubject && (newStatus.spoilerText || alwaysShowSubject)\"\n v-model=\"newStatus.spoilerText\"\n enable-emoji-picker\n :suggest=\"emojiSuggestor\"\n class=\"form-control\"\n >\n <input\n v-model=\"newStatus.spoilerText\"\n type=\"text\"\n :placeholder=\"$t('post_status.content_warning')\"\n :disabled=\"posting && !optimisticPosting\"\n size=\"1\"\n class=\"form-post-subject\"\n >\n </EmojiInput>\n <EmojiInput\n ref=\"emoji-input\"\n v-model=\"newStatus.status\"\n :suggest=\"emojiUserSuggestor\"\n :placement=\"emojiPickerPlacement\"\n class=\"form-control main-input\"\n enable-emoji-picker\n hide-emoji-button\n :newline-on-ctrl-enter=\"submitOnEnter\"\n enable-sticker-picker\n @input=\"onEmojiInputInput\"\n @sticker-uploaded=\"addMediaFile\"\n @sticker-upload-failed=\"uploadFailed\"\n @shown=\"handleEmojiInputShow\"\n >\n <textarea\n ref=\"textarea\"\n v-model=\"newStatus.status\"\n :placeholder=\"placeholder || $t('post_status.default')\"\n rows=\"1\"\n cols=\"1\"\n :disabled=\"posting && !optimisticPosting\"\n class=\"form-post-body\"\n :class=\"{ 'scrollable-form': !!maxHeight }\"\n @keydown.exact.enter=\"submitOnEnter && postStatus($event, newStatus)\"\n @keydown.meta.enter=\"postStatus($event, newStatus)\"\n @keydown.ctrl.enter=\"!submitOnEnter && postStatus($event, newStatus)\"\n @input=\"resize\"\n @compositionupdate=\"resize\"\n @paste=\"paste\"\n />\n <p\n v-if=\"hasStatusLengthLimit\"\n class=\"character-counter faint\"\n :class=\"{ error: isOverLengthLimit }\"\n >\n {{ charactersLeft }}\n </p>\n </EmojiInput>\n <div\n v-if=\"!disableScopeSelector\"\n class=\"visibility-tray\"\n >\n <scope-selector\n v-if=\"!disableVisibilitySelector\"\n :show-all=\"showAllScopes\"\n :user-default=\"userDefaultScope\"\n :original-scope=\"copyMessageScope\"\n :initial-scope=\"newStatus.visibility\"\n :on-scope-change=\"changeVis\"\n />\n\n <div\n v-if=\"postFormats.length > 1\"\n class=\"text-format\"\n >\n <Select\n id=\"post-content-type\"\n v-model=\"newStatus.contentType\"\n class=\"form-control\"\n >\n <option\n v-for=\"postFormat in postFormats\"\n :key=\"postFormat\"\n :value=\"postFormat\"\n >\n {{ $t(`post_status.content_type[\"${postFormat}\"]`) }}\n </option>\n </Select>\n </div>\n <div\n v-if=\"postFormats.length === 1 && postFormats[0] !== 'text/plain'\"\n class=\"text-format\"\n >\n <span class=\"only-format\">\n {{ $t(`post_status.content_type[\"${postFormats[0]}\"]`) }}\n </span>\n </div>\n </div>\n </div>\n <poll-form\n v-if=\"pollsAvailable\"\n ref=\"pollForm\"\n :visible=\"pollFormVisible\"\n @update-poll=\"setPoll\"\n />\n <div\n ref=\"bottom\"\n class=\"form-bottom\"\n >\n <div class=\"form-bottom-left\">\n <media-upload\n ref=\"mediaUpload\"\n class=\"media-upload-icon\"\n :drop-files=\"dropFiles\"\n :disabled=\"uploadFileLimitReached\"\n @uploading=\"startedUploadingFiles\"\n @uploaded=\"addMediaFile\"\n @upload-failed=\"uploadFailed\"\n @all-uploaded=\"finishedUploadingFiles\"\n />\n <button\n class=\"emoji-icon button-unstyled\"\n :title=\"$t('emoji.add_emoji')\"\n @click=\"showEmojiPicker\"\n >\n <FAIcon icon=\"smile-beam\" />\n </button>\n <button\n v-if=\"pollsAvailable\"\n class=\"poll-icon button-unstyled\"\n :class=\"{ selected: pollFormVisible }\"\n :title=\"$t('polls.add_poll')\"\n @click=\"togglePollForm\"\n >\n <FAIcon icon=\"poll-h\" />\n </button>\n </div>\n <button\n v-if=\"posting\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.posting') }}\n </button>\n <button\n v-else-if=\"isOverLengthLimit\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.post') }}\n </button>\n <!-- touchstart is used to keep the OSK at the same position after a message send -->\n <button\n v-else\n :disabled=\"uploadingFiles || disableSubmit\"\n class=\"btn button-default\"\n @touchstart.stop.prevent=\"postStatus($event, newStatus)\"\n @click.stop.prevent=\"postStatus($event, newStatus)\"\n >\n {{ $t('post_status.post') }}\n </button>\n </div>\n <div\n v-show=\"showDropIcon !== 'hide'\"\n :style=\"{ animation: showDropIcon === 'show' ? 'fade-in 0.25s' : 'fade-out 0.5s' }\"\n class=\"drop-indicator\"\n @dragleave=\"fileDragStop\"\n @drop.stop=\"fileDrop\"\n >\n <FAIcon :icon=\"uploadFileLimitReached ? 'ban' : 'upload'\" />\n </div>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n Error: {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <gallery\n v-if=\"newStatus.files && newStatus.files.length > 0\"\n class=\"attachments\"\n :grid=\"true\"\n :nsfw=\"false\"\n :attachments=\"newStatus.files\"\n :descriptions=\"newStatus.mediaDescriptions\"\n :set-media=\"() => $store.dispatch('setMedia', newStatus.files)\"\n :editable=\"true\"\n :edit-attachment=\"editAttachment\"\n :remove-attachment=\"removeMediaFile\"\n :shift-up-attachment=\"newStatus.files.length > 1 && shiftUpMediaFile\"\n :shift-dn-attachment=\"newStatus.files.length > 1 && shiftDnMediaFile\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n <div\n v-if=\"newStatus.files.length > 0 && !disableSensitivityCheckbox\"\n class=\"upload_settings\"\n >\n <Checkbox v-model=\"newStatus.nsfw\">\n {{ $t('post_status.attachments_sensitive') }}\n </Checkbox>\n </div>\n </form>\n </div>\n</template>\n\n<script src=\"./post_status_form.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n svg, i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n .media-upload-icon, .poll-icon, .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected, &:hover {\n // needs to be specific to override icon default color\n svg, i, label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg, i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: .2em;\n margin-bottom: .5em;\n width: 18em;\n\n img, video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n</style>\n","/* eslint-env browser */\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faUpload, faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUpload,\n faCircleNotch\n)\n\nconst mediaUpload = {\n data () {\n return {\n uploadCount: 0,\n uploadReady: true\n }\n },\n computed: {\n uploading () {\n return this.uploadCount > 0\n }\n },\n methods: {\n uploadFile (file) {\n const self = this\n const store = this.$store\n if (file.size > store.state.instance.uploadlimit) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(store.state.instance.uploadlimit)\n self.$emit('upload-failed', 'file_too_big', { filesize: filesize.num, filesizeunit: filesize.unit, allowedsize: allowedsize.num, allowedsizeunit: allowedsize.unit })\n return\n }\n const formData = new FormData()\n formData.append('file', file)\n\n self.$emit('uploading')\n self.uploadCount++\n\n statusPosterService.uploadMedia({ store, formData })\n .then((fileData) => {\n self.$emit('uploaded', fileData)\n self.decreaseUploadCount()\n }, (error) => {\n console.error('Error uploading file', error)\n self.$emit('upload-failed', 'default')\n self.decreaseUploadCount()\n })\n },\n decreaseUploadCount () {\n this.uploadCount--\n if (this.uploadCount === 0) {\n this.$emit('all-uploaded')\n }\n },\n clearFile () {\n this.uploadReady = false\n this.$nextTick(() => {\n this.uploadReady = true\n })\n },\n multiUpload (files) {\n for (const file of files) {\n this.uploadFile(file)\n }\n },\n change ({ target }) {\n this.multiUpload(target.files)\n }\n },\n props: [\n 'dropFiles',\n 'disabled'\n ],\n watch: {\n dropFiles: function (fileInfos) {\n if (!this.uploading) {\n this.multiUpload(fileInfos)\n }\n }\n }\n}\n\nexport default mediaUpload\n","import { render } from \"./media_upload.vue?vue&type=template&id=b1fc3f36\"\nimport script from \"./media_upload.js?vue&type=script&lang=js\"\nexport * from \"./media_upload.js?vue&type=script&lang=js\"\n\nimport \"./media_upload.vue?vue&type=style&index=0&id=b1fc3f36&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"media-upload\"\n :class=\"{ disabled: disabled }\"\n :title=\"$t('tool_tip.media_upload')\"\n >\n <FAIcon\n v-if=\"uploading\"\n class=\"progress-icon\"\n icon=\"circle-notch\"\n spin\n />\n <FAIcon\n v-if=\"!uploading\"\n class=\"new-icon\"\n icon=\"upload\"\n />\n <input\n v-if=\"uploadReady\"\n class=\"hidden-input-file\"\n :disabled=\"disabled\"\n type=\"file\"\n multiple=\"true\"\n @change=\"change\"\n >\n </label>\n</template>\n\n<script src=\"./media_upload.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n\n .hidden-input-file {\n display: none;\n }\n}\n </style>\n","<template>\n <div\n v-if=\"visible\"\n class=\"poll-form\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div class=\"input-container\">\n <input\n :id=\"`poll-${index}`\"\n v-model=\"options[index]\"\n size=\"1\"\n class=\"poll-option-input\"\n type=\"text\"\n :placeholder=\"$t('polls.option')\"\n :maxlength=\"maxLength\"\n @change=\"updatePollToParent\"\n @keydown.enter.stop.prevent=\"nextOption(index)\"\n >\n </div>\n <button\n v-if=\"options.length > 2\"\n class=\"delete-option button-unstyled -hover-highlight\"\n @click=\"deleteOption(index)\"\n >\n <FAIcon icon=\"times\" />\n </button>\n </div>\n <button\n v-if=\"options.length < maxOptions\"\n class=\"add-option faint button-unstyled -hover-highlight\"\n @click=\"addOption\"\n >\n <FAIcon\n icon=\"plus\"\n size=\"sm\"\n />\n\n {{ $t(\"polls.add_option\") }}\n </button>\n <div class=\"poll-type-expiry\">\n <div\n class=\"poll-type\"\n :title=\"$t('polls.type')\"\n >\n <Select\n v-model=\"pollType\"\n class=\"poll-type-select\"\n unstyled=\"true\"\n @change=\"updatePollToParent\"\n >\n <option value=\"single\">\n {{ $t('polls.single_choice') }}\n </option>\n <option value=\"multiple\">\n {{ $t('polls.multiple_choices') }}\n </option>\n </Select>\n </div>\n <div\n class=\"poll-expiry\"\n :title=\"$t('polls.expiry')\"\n >\n <input\n v-model=\"expiryAmount\"\n type=\"number\"\n class=\"expiry-amount hide-number-spinner\"\n :min=\"minExpirationInCurrentUnit\"\n :max=\"maxExpirationInCurrentUnit\"\n @change=\"expiryAmountChange\"\n >\n {{ ' ' }}\n <Select\n v-model=\"expiryUnit\"\n unstyled=\"true\"\n class=\"expiry-unit\"\n @change=\"expiryAmountChange\"\n >\n <option\n v-for=\"unit in expiryUnits\"\n :key=\"unit\"\n :value=\"unit\"\n >\n {{ $tc(`time.unit.${unit}_short`, expiryAmount, ['']) }}\n </option>\n </Select>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./poll_form.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n</style>\n","import * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport { uniq } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport Select from '../select/select.vue'\nimport {\n faTimes,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus\n)\n\nexport default {\n components: {\n Select\n },\n name: 'PollForm',\n props: ['visible'],\n data: () => ({\n pollType: 'single',\n options: ['', ''],\n expiryAmount: 10,\n expiryUnit: 'minutes'\n }),\n computed: {\n pollLimits () {\n return this.$store.state.instance.pollLimits\n },\n maxOptions () {\n return this.pollLimits.max_options\n },\n maxLength () {\n return this.pollLimits.max_option_chars\n },\n expiryUnits () {\n const allUnits = ['minutes', 'hours', 'days']\n const expiry = this.convertExpiryFromUnit\n return allUnits.filter(\n unit => this.pollLimits.max_expiration >= expiry(unit, 1)\n )\n },\n minExpirationInCurrentUnit () {\n return Math.ceil(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.min_expiration\n )\n )\n },\n maxExpirationInCurrentUnit () {\n return Math.floor(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.max_expiration\n )\n )\n }\n },\n methods: {\n clear () {\n this.pollType = 'single'\n this.options = ['', '']\n this.expiryAmount = 10\n this.expiryUnit = 'minutes'\n },\n nextOption (index) {\n const element = this.$el.querySelector(`#poll-${index + 1}`)\n if (element) {\n element.focus()\n } else {\n // Try adding an option and try focusing on it\n const addedOption = this.addOption()\n if (addedOption) {\n this.$nextTick(function () {\n this.nextOption(index)\n })\n }\n }\n },\n addOption () {\n if (this.options.length < this.maxOptions) {\n this.options.push('')\n return true\n }\n return false\n },\n deleteOption (index, event) {\n if (this.options.length > 2) {\n this.options.splice(index, 1)\n this.updatePollToParent()\n }\n },\n convertExpiryToUnit (unit, amount) {\n // Note: we want seconds and not milliseconds\n switch (unit) {\n case 'minutes': return (1000 * amount) / DateUtils.MINUTE\n case 'hours': return (1000 * amount) / DateUtils.HOUR\n case 'days': return (1000 * amount) / DateUtils.DAY\n }\n },\n convertExpiryFromUnit (unit, amount) {\n // Note: we want seconds and not milliseconds\n switch (unit) {\n case 'minutes': return 0.001 * amount * DateUtils.MINUTE\n case 'hours': return 0.001 * amount * DateUtils.HOUR\n case 'days': return 0.001 * amount * DateUtils.DAY\n }\n },\n expiryAmountChange () {\n this.expiryAmount =\n Math.max(this.minExpirationInCurrentUnit, this.expiryAmount)\n this.expiryAmount =\n Math.min(this.maxExpirationInCurrentUnit, this.expiryAmount)\n this.updatePollToParent()\n },\n updatePollToParent () {\n const expiresIn = this.convertExpiryFromUnit(\n this.expiryUnit,\n this.expiryAmount\n )\n\n const options = uniq(this.options.filter(option => option !== ''))\n if (options.length < 2) {\n this.$emit('update-poll', { error: this.$t('polls.not_enough_options') })\n return\n }\n this.$emit('update-poll', {\n options,\n multiple: this.pollType === 'multiple',\n expiresIn\n })\n }\n }\n}\n","import { render } from \"./poll_form.vue?vue&type=template&id=a33a297e\"\nimport script from \"./poll_form.js?vue&type=script&lang=js\"\nexport * from \"./poll_form.js?vue&type=script&lang=js\"\n\nimport \"./poll_form.vue?vue&type=style&index=0&id=a33a297e&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import statusPoster from '../../services/status_poster/status_poster.service.js'\nimport MediaUpload from '../media_upload/media_upload.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport EmojiInput from '../emoji_input/emoji_input.vue'\nimport PollForm from '../poll/poll_form.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport Gallery from 'src/components/gallery/gallery.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { reject, map, uniqBy, debounce } from 'lodash'\nimport suggestor from '../emoji_input/suggestor.js'\nimport { mapGetters, mapState } from 'vuex'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Select from '../select/select.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n)\n\nconst buildMentionsString = ({ user, attentions = [] }, currentUser) => {\n let allAttentions = [...attentions]\n\n allAttentions.unshift(user)\n\n allAttentions = uniqBy(allAttentions, 'id')\n allAttentions = reject(allAttentions, { id: currentUser.id })\n\n const mentions = map(allAttentions, (attention) => {\n return `@${attention.screen_name}`\n })\n\n return mentions.length > 0 ? mentions.join(' ') + ' ' : ''\n}\n\n// Converts a string with px to a number like '2px' -> 2\nconst pxStringToNumber = (str) => {\n return Number(str.substring(0, str.length - 2))\n}\n\nconst PostStatusForm = {\n props: [\n 'statusId',\n 'statusText',\n 'statusIsSensitive',\n 'statusPoll',\n 'statusFiles',\n 'statusMediaDescriptions',\n 'statusScope',\n 'statusContentType',\n 'replyTo',\n 'repliedUser',\n 'attentions',\n 'copyMessageScope',\n 'subject',\n 'disableSubject',\n 'disableScopeSelector',\n 'disableVisibilitySelector',\n 'disableNotice',\n 'disableLockWarning',\n 'disablePolls',\n 'disableSensitivityCheckbox',\n 'disableSubmit',\n 'disablePreview',\n 'placeholder',\n 'maxHeight',\n 'postHandler',\n 'preserveFocus',\n 'autoFocus',\n 'fileLimit',\n 'submitOnEnter',\n 'emojiPickerPlacement',\n 'optimisticPosting'\n ],\n emits: [\n 'posted',\n 'resize',\n 'mediaplay',\n 'mediapause'\n ],\n components: {\n MediaUpload,\n EmojiInput,\n PollForm,\n ScopeSelector,\n Checkbox,\n Select,\n Attachment,\n StatusContent,\n Gallery\n },\n mounted () {\n this.updateIdempotencyKey()\n this.resize(this.$refs.textarea)\n\n if (this.replyTo) {\n const textLength = this.$refs.textarea.value.length\n this.$refs.textarea.setSelectionRange(textLength, textLength)\n }\n\n if (this.replyTo || this.autoFocus) {\n this.$refs.textarea.focus()\n }\n },\n data () {\n const preset = this.$route.query.message\n let statusText = preset || ''\n\n const { scopeCopy } = this.$store.getters.mergedConfig\n\n if (this.replyTo) {\n const currentUser = this.$store.state.users.currentUser\n statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)\n }\n\n const scope = ((this.copyMessageScope && scopeCopy) || this.copyMessageScope === 'direct')\n ? this.copyMessageScope\n : this.$store.state.users.currentUser.default_scope\n\n const { postContentType: contentType, sensitiveByDefault } = this.$store.getters.mergedConfig\n\n let statusParams = {\n spoilerText: this.subject || '',\n status: statusText,\n nsfw: !!sensitiveByDefault,\n files: [],\n poll: {},\n mediaDescriptions: {},\n visibility: scope,\n contentType\n }\n\n if (this.statusId) {\n const statusContentType = this.statusContentType || contentType\n statusParams = {\n spoilerText: this.subject || '',\n status: this.statusText || '',\n nsfw: this.statusIsSensitive || !!sensitiveByDefault,\n files: this.statusFiles || [],\n poll: this.statusPoll || {},\n mediaDescriptions: this.statusMediaDescriptions || {},\n visibility: this.statusScope || scope,\n contentType: statusContentType\n }\n }\n\n return {\n dropFiles: [],\n uploadingFiles: false,\n error: null,\n posting: false,\n highlighted: 0,\n newStatus: statusParams,\n caret: 0,\n pollFormVisible: false,\n showDropIcon: 'hide',\n dropStopTimeout: null,\n preview: null,\n previewLoading: false,\n emojiInputShown: false,\n idempotencyKey: ''\n }\n },\n computed: {\n users () {\n return this.$store.state.users.users\n },\n userDefaultScope () {\n return this.$store.state.users.currentUser.default_scope\n },\n showAllScopes () {\n return !this.mergedConfig.minimalScopesMode\n },\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ]\n })\n },\n emoji () {\n return this.$store.getters.standardEmojiList || []\n },\n customEmoji () {\n return this.$store.state.instance.customEmoji || []\n },\n statusLength () {\n return this.newStatus.status.length\n },\n spoilerTextLength () {\n return this.newStatus.spoilerText.length\n },\n statusLengthLimit () {\n return this.$store.state.instance.textlimit\n },\n hasStatusLengthLimit () {\n return this.statusLengthLimit > 0\n },\n charactersLeft () {\n return this.statusLengthLimit - (this.statusLength + this.spoilerTextLength)\n },\n isOverLengthLimit () {\n return this.hasStatusLengthLimit && (this.charactersLeft < 0)\n },\n minimalScopesMode () {\n return this.$store.state.instance.minimalScopesMode\n },\n alwaysShowSubject () {\n return this.mergedConfig.alwaysShowSubjectInput\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n safeDMEnabled () {\n return this.$store.state.instance.safeDM\n },\n pollsAvailable () {\n return this.$store.state.instance.pollsAvailable &&\n this.$store.state.instance.pollLimits.max_options >= 2 &&\n this.disablePolls !== true\n },\n hideScopeNotice () {\n return this.disableNotice || this.$store.getters.mergedConfig.hideScopeNotice\n },\n pollContentError () {\n return this.pollFormVisible &&\n this.newStatus.poll &&\n this.newStatus.poll.error\n },\n showPreview () {\n return !this.disablePreview && (!!this.preview || this.previewLoading)\n },\n emptyStatus () {\n return this.newStatus.status.trim() === '' && this.newStatus.files.length === 0\n },\n uploadFileLimitReached () {\n return this.newStatus.files.length >= this.fileLimit\n },\n isEdit () {\n return typeof this.statusId !== 'undefined' && this.statusId.trim() !== ''\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mobileLayout: state => state.interface.mobileLayout\n })\n },\n watch: {\n newStatus: {\n deep: true,\n handler () {\n this.statusChanged()\n }\n }\n },\n methods: {\n statusChanged () {\n this.autoPreview()\n this.updateIdempotencyKey()\n },\n clearStatus () {\n const newStatus = this.newStatus\n this.newStatus = {\n status: '',\n spoilerText: '',\n files: [],\n visibility: newStatus.visibility,\n contentType: newStatus.contentType,\n poll: {},\n mediaDescriptions: {}\n }\n this.pollFormVisible = false\n this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()\n this.clearPollForm()\n if (this.preserveFocus) {\n this.$nextTick(() => {\n this.$refs.textarea.focus()\n })\n }\n const el = this.$el.querySelector('textarea')\n el.style.height = 'auto'\n el.style.height = undefined\n this.error = null\n if (this.preview) this.previewStatus()\n },\n async postStatus (event, newStatus, opts = {}) {\n if (this.posting && !this.optimisticPosting) { return }\n if (this.disableSubmit) { return }\n if (this.emojiInputShown) { return }\n if (this.submitOnEnter) {\n event.stopPropagation()\n event.preventDefault()\n }\n\n if (this.optimisticPosting && (this.emptyStatus || this.isOverLengthLimit)) { return }\n\n if (this.emptyStatus) {\n this.error = this.$t('post_status.empty_status_error')\n return\n }\n\n const poll = this.pollFormVisible ? this.newStatus.poll : {}\n if (this.pollContentError) {\n this.error = this.pollContentError\n return\n }\n\n this.posting = true\n\n try {\n await this.setAllMediaDescriptions()\n } catch (e) {\n this.error = this.$t('post_status.media_description_error')\n this.posting = false\n return\n }\n\n const postingOptions = {\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: newStatus.files,\n store: this.$store,\n inReplyToStatusId: this.replyTo,\n contentType: newStatus.contentType,\n poll,\n idempotencyKey: this.idempotencyKey\n }\n\n const postHandler = this.postHandler ? this.postHandler : statusPoster.postStatus\n\n postHandler(postingOptions).then((data) => {\n if (!data.error) {\n this.clearStatus()\n this.$emit('posted', data)\n } else {\n this.error = data.error\n }\n this.posting = false\n })\n },\n previewStatus () {\n if (this.emptyStatus && this.newStatus.spoilerText.trim() === '') {\n this.preview = { error: this.$t('post_status.preview_empty') }\n this.previewLoading = false\n return\n }\n const newStatus = this.newStatus\n this.previewLoading = true\n statusPoster.postStatus({\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: [],\n store: this.$store,\n inReplyToStatusId: this.replyTo,\n contentType: newStatus.contentType,\n poll: {},\n preview: true\n }).then((data) => {\n // Don't apply preview if not loading, because it means\n // user has closed the preview manually.\n if (!this.previewLoading) return\n if (!data.error) {\n this.preview = data\n } else {\n this.preview = { error: data.error }\n }\n }).catch((error) => {\n this.preview = { error }\n }).finally(() => {\n this.previewLoading = false\n })\n },\n debouncePreviewStatus: debounce(function () { this.previewStatus() }, 500),\n autoPreview () {\n if (!this.preview) return\n this.previewLoading = true\n this.debouncePreviewStatus()\n },\n closePreview () {\n this.preview = null\n this.previewLoading = false\n },\n togglePreview () {\n if (this.showPreview) {\n this.closePreview()\n } else {\n this.previewStatus()\n }\n },\n addMediaFile (fileInfo) {\n this.newStatus.files.push(fileInfo)\n this.$emit('resize', { delayed: true })\n },\n removeMediaFile (fileInfo) {\n const index = this.newStatus.files.indexOf(fileInfo)\n this.newStatus.files.splice(index, 1)\n this.$emit('resize')\n },\n editAttachment (fileInfo, newText) {\n this.newStatus.mediaDescriptions[fileInfo.id] = newText\n },\n shiftUpMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index - 1, 0, fileInfo)\n },\n shiftDnMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index + 1, 0, fileInfo)\n },\n uploadFailed (errString, templateArgs) {\n templateArgs = templateArgs || {}\n this.error = this.$t('upload.error.base') + ' ' + this.$t('upload.error.' + errString, templateArgs)\n },\n startedUploadingFiles () {\n this.uploadingFiles = true\n },\n finishedUploadingFiles () {\n this.$emit('resize')\n this.uploadingFiles = false\n },\n type (fileInfo) {\n return fileTypeService.fileType(fileInfo.mimetype)\n },\n paste (e) {\n this.autoPreview()\n this.resize(e)\n if (e.clipboardData.files.length > 0) {\n // prevent pasting of file as text\n e.preventDefault()\n // Strangely, files property gets emptied after event propagation\n // Trying to wrap it in array doesn't work. Plus I doubt it's possible\n // to hold more than one file in clipboard.\n this.dropFiles = [e.clipboardData.files[0]]\n }\n },\n fileDrop (e) {\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n e.preventDefault() // allow dropping text like before\n this.dropFiles = e.dataTransfer.files\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'hide'\n }\n },\n fileDragStop (e) {\n // The false-setting is done with delay because just using leave-events\n // directly caused unwanted flickering, this is not perfect either but\n // much less noticable.\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'fade'\n this.dropStopTimeout = setTimeout(() => (this.showDropIcon = 'hide'), 500)\n },\n fileDrag (e) {\n e.dataTransfer.dropEffect = this.uploadFileLimitReached ? 'none' : 'copy'\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'show'\n }\n },\n onEmojiInputInput (e) {\n this.$nextTick(() => {\n this.resize(this.$refs.textarea)\n })\n },\n resize (e) {\n const target = e.target || e\n if (!(target instanceof window.Element)) { return }\n\n // Reset to default height for empty form, nothing else to do here.\n if (target.value === '') {\n target.style.height = null\n this.$emit('resize')\n return\n }\n\n const formRef = this.$refs.form\n const bottomRef = this.$refs.bottom\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const bottomBottomPaddingStr = window.getComputedStyle(bottomRef)['padding-bottom']\n const bottomBottomPadding = pxStringToNumber(bottomBottomPaddingStr)\n\n const scrollerRef = this.$el.closest('.column.-scrollable') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n\n // Getting info about padding we have to account for, removing 'px' part\n const topPaddingStr = window.getComputedStyle(target)['padding-top']\n const bottomPaddingStr = window.getComputedStyle(target)['padding-bottom']\n const topPadding = pxStringToNumber(topPaddingStr)\n const bottomPadding = pxStringToNumber(bottomPaddingStr)\n const vertPadding = topPadding + bottomPadding\n\n const oldHeight = pxStringToNumber(target.style.height)\n\n /* Explanation:\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n * scrollHeight returns element's scrollable content height, i.e. visible\n * element + overscrolled parts of it. We use it to determine when text\n * inside the textarea exceeded its height, so we can set height to prevent\n * overscroll, i.e. make textarea grow with the text. HOWEVER, since we\n * explicitly set new height, scrollHeight won't go below that, so we can't\n * SHRINK the textarea when there's extra space. To workaround that we set\n * height to 'auto' which makes textarea tiny again, so that scrollHeight\n * will match text height again. HOWEVER, shrinking textarea can screw with\n * the scroll since there might be not enough padding around form-bottom to even\n * warrant a scroll, so it will jump to 0 and refuse to move anywhere,\n * so we check current scroll position before shrinking and then restore it\n * with needed delta.\n */\n\n // this part has to be BEFORE the content size update\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n const scrollerBottomBorder = currentScroll + scrollerHeight\n\n // BEGIN content size update\n target.style.height = 'auto'\n const heightWithoutPadding = Math.floor(target.scrollHeight - vertPadding)\n let newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding\n // This is a bit of a hack to combat target.scrollHeight being different on every other input\n // on some browsers for whatever reason. Don't change the height if difference is 1px or less.\n if (Math.abs(newHeight - oldHeight) <= 1) {\n newHeight = oldHeight\n }\n target.style.height = `${newHeight}px`\n this.$emit('resize', newHeight)\n // END content size update\n\n // We check where the bottom border of form-bottom element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const bottomBottomBorder = bottomRef.offsetHeight + findOffset(bottomRef, scrollerRef).top + bottomBottomPadding\n\n const isBottomObstructed = scrollerBottomBorder < bottomBottomBorder\n const isFormBiggerThanScroller = scrollerHeight < formRef.offsetHeight\n const bottomChangeDelta = bottomBottomBorder - scrollerBottomBorder\n // The intention is basically this;\n // Keep form-bottom always visible so that submit button is in view EXCEPT\n // if form element bigger than scroller and caret isn't at the end, so that\n // if you scroll up and edit middle of text you won't get scrolled back to bottom\n const shouldScrollToBottom = isBottomObstructed &&\n !(isFormBiggerThanScroller &&\n this.$refs.textarea.selectionStart !== this.$refs.textarea.value.length)\n const totalDelta = shouldScrollToBottom ? bottomChangeDelta : 0\n const targetScroll = Math.round(currentScroll + totalDelta)\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n },\n showEmojiPicker () {\n this.$refs.textarea.focus()\n this.$refs['emoji-input'].triggerShowPicker()\n },\n clearError () {\n this.error = null\n },\n changeVis (visibility) {\n this.newStatus.visibility = visibility\n },\n togglePollForm () {\n this.pollFormVisible = !this.pollFormVisible\n },\n setPoll (poll) {\n this.newStatus.poll = poll\n },\n clearPollForm () {\n if (this.$refs.pollForm) {\n this.$refs.pollForm.clear()\n }\n },\n dismissScopeNotice () {\n this.$store.dispatch('setOption', { name: 'hideScopeNotice', value: true })\n },\n setMediaDescription (id) {\n const description = this.newStatus.mediaDescriptions[id]\n if (!description || description.trim() === '') return\n return statusPoster.setMediaDescription({ store: this.$store, id, description })\n },\n setAllMediaDescriptions () {\n const ids = this.newStatus.files.map(file => file.id)\n return Promise.all(ids.map(id => this.setMediaDescription(id)))\n },\n handleEmojiInputShow (value) {\n this.emojiInputShown = value\n },\n updateIdempotencyKey () {\n this.idempotencyKey = Date.now().toString()\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n }\n }\n}\n\nexport default PostStatusForm\n","import { render } from \"./post_status_form.vue?vue&type=template&id=161f4536\"\nimport script from \"./post_status_form.js?vue&type=script&lang=js\"\nexport * from \"./post_status_form.js?vue&type=script&lang=js\"\n\nimport \"./post_status_form.vue?vue&type=style&index=0&id=161f4536&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n :disabled=\"progress || disabled\"\n @click=\"onClick\"\n >\n <template v-if=\"progress && $slots.progress\">\n <slot name=\"progress\" />\n </template>\n <template v-else>\n <slot />\n </template>\n </button>\n</template>\n\n<script>\nexport default {\n props: {\n disabled: {\n type: Boolean\n },\n click: { // click event handler. Must return a promise\n type: Function,\n default: () => Promise.resolve()\n }\n },\n data () {\n return {\n progress: false\n }\n },\n methods: {\n onClick () {\n this.progress = true\n this.click().then(() => { this.progress = false })\n }\n }\n}\n</script>\n","import { render } from \"./progress_button.vue?vue&type=template&id=9f751ae6\"\nimport script from \"./progress_button.vue?vue&type=script&lang=js\"\nexport * from \"./progress_button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"remote-follow\">\n <form\n method=\"POST\"\n :action=\"subscribeUrl\"\n >\n <input\n type=\"hidden\"\n name=\"nickname\"\n :value=\"user.screen_name\"\n >\n <input\n type=\"hidden\"\n name=\"profile\"\n value=\"\"\n >\n <button\n click=\"submit\"\n class=\"button-default remote-button\"\n >\n {{ $t('user_card.remote_follow') }}\n </button>\n </form>\n </div>\n</template>\n\n<script src=\"./remote_follow.js\"></script>\n\n<style lang=\"scss\">\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n</style>\n","export default {\n props: ['user'],\n computed: {\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n }\n }\n}\n","import { render } from \"./remote_follow.vue?vue&type=template&id=2aed8421\"\nimport script from \"./remote_follow.js?vue&type=script&lang=js\"\nexport * from \"./remote_follow.js?vue&type=script&lang=js\"\n\nimport \"./remote_follow.vue?vue&type=style&index=0&id=2aed8421&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!showNothing\"\n class=\"ScopeSelector\"\n >\n <button\n v-if=\"showDirect\"\n class=\"button-unstyled scope\"\n :class=\"css.direct\"\n :title=\"$t('post_status.scope.direct')\"\n type=\"button\"\n @click=\"changeVis('direct')\"\n >\n <FAIcon\n icon=\"envelope\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPrivate\"\n class=\"button-unstyled scope\"\n :class=\"css.private\"\n :title=\"$t('post_status.scope.private')\"\n type=\"button\"\n @click=\"changeVis('private')\"\n >\n <FAIcon\n icon=\"lock\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showUnlisted\"\n class=\"button-unstyled scope\"\n :class=\"css.unlisted\"\n :title=\"$t('post_status.scope.unlisted')\"\n type=\"button\"\n @click=\"changeVis('unlisted')\"\n >\n <FAIcon\n icon=\"lock-open\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPublic\"\n class=\"button-unstyled scope\"\n :class=\"css.public\"\n :title=\"$t('post_status.scope.public')\"\n type=\"button\"\n @click=\"changeVis('public')\"\n >\n <FAIcon\n icon=\"globe\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n</template>\n\n<script src=\"./scope_selector.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.ScopeSelector {\n\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen\n)\n\nconst ScopeSelector = {\n props: [\n 'showAll',\n 'userDefault',\n 'originalScope',\n 'initialScope',\n 'onScopeChange'\n ],\n data () {\n return {\n currentScope: this.initialScope\n }\n },\n computed: {\n showNothing () {\n return !this.showPublic && !this.showUnlisted && !this.showPrivate && !this.showDirect\n },\n showPublic () {\n return this.originalScope !== 'direct' && this.shouldShow('public')\n },\n showUnlisted () {\n return this.originalScope !== 'direct' && this.shouldShow('unlisted')\n },\n showPrivate () {\n return this.originalScope !== 'direct' && this.shouldShow('private')\n },\n showDirect () {\n return this.shouldShow('direct')\n },\n css () {\n return {\n public: { selected: this.currentScope === 'public' },\n unlisted: { selected: this.currentScope === 'unlisted' },\n private: { selected: this.currentScope === 'private' },\n direct: { selected: this.currentScope === 'direct' }\n }\n }\n },\n methods: {\n shouldShow (scope) {\n return this.showAll ||\n this.currentScope === scope ||\n this.originalScope === scope ||\n this.userDefault === scope ||\n scope === 'direct'\n },\n changeVis (scope) {\n this.currentScope = scope\n this.onScopeChange && this.onScopeChange(scope)\n }\n }\n}\n\nexport default ScopeSelector\n","import { render } from \"./scope_selector.vue?vue&type=template&id=cbc95e90\"\nimport script from \"./scope_selector.js?vue&type=script&lang=js\"\nexport * from \"./scope_selector.js?vue&type=script&lang=js\"\n\nimport \"./scope_selector.vue?vue&type=style&index=0&id=cbc95e90&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown\n)\n\nexport default {\n emits: ['update:modelValue'],\n props: [\n 'modelValue',\n 'disabled',\n 'unstyled',\n 'kind'\n ]\n}\n","import { render } from \"./select.vue?vue&type=template&id=099d3e32\"\nimport script from \"./select.js?vue&type=script&lang=js\"\nexport * from \"./select.js?vue&type=script&lang=js\"\n\nimport \"./select.vue?vue&type=style&index=0&id=099d3e32&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"Select input\"\n :class=\"{ disabled, unstyled }\"\n >\n <select\n :disabled=\"disabled\"\n :value=\"modelValue\"\n @change=\"$emit('update:modelValue', $event.target.value)\"\n >\n <slot />\n </select>\n {{ ' ' }}\n <FAIcon\n class=\"select-down-icon\"\n icon=\"chevron-down\"\n />\n </label>\n</template>\n\n<script src=\"./select.js\"> </script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 .2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n\n}\n</style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n ref=\"root\"\n class=\"Status\"\n :class=\"[{ '-focused': isFocused }, { '-conversation': inlineExpanded }]\"\n >\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n <span\n class=\"fa-scale-110 fa-old-padding\"\n @click=\"clearError\"\n >\n <FAIcon icon=\"times\" />\n </span>\n </div>\n <template v-if=\"muted && !isPreview\">\n <div class=\"status-container muted\">\n <small class=\"status-username\">\n <FAIcon\n v-if=\"muted && retweet\"\n class=\"fa-scale-110 fa-old-padding repeat-icon\"\n icon=\"retweet\"\n />\n <user-link\n :user=\"status.user\"\n :at=\"false\"\n />\n </small>\n <small\n v-if=\"showReasonMutedThread\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted') }}\n </small>\n <small\n v-if=\"showReasonMutedThread && muteWordHits.length > 0\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted_and_words') }}\n </small>\n <small\n class=\"mute-words\"\n :title=\"muteWordHits.join(', ')\"\n >\n {{ muteWordHits.join(', ') }}\n </small>\n <button\n class=\"unmute button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n icon=\"eye-slash\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n </template>\n <template v-else>\n <div\n v-if=\"showPinned\"\n class=\"pin\"\n >\n <FAIcon\n icon=\"thumbtack\"\n class=\"faint\"\n />\n <span class=\"faint\">{{ $t('status.pinned') }}</span>\n </div>\n <div\n v-if=\"retweet && !noHeading && !inConversation\"\n :class=\"[repeaterClass, { highlighted: repeaterStyle }]\"\n :style=\"[repeaterStyle]\"\n class=\"status-container repeat-info\"\n >\n <UserAvatar\n v-if=\"retweet\"\n class=\"left-side repeater-avatar\"\n :bot=\"rtBotIndicator\"\n :better-shadow=\"betterShadow\"\n :user=\"statusoid.user\"\n />\n <div class=\"right-side faint\">\n <span\n class=\"status-username repeater-name\"\n :title=\"retweeter\"\n >\n <router-link\n v-if=\"retweeterHtml\"\n :to=\"retweeterProfileLink\"\n >\n <RichContent\n :html=\"retweeterHtml\"\n :emoji=\"retweeterUser.emoji\"\n />\n </router-link>\n <router-link\n v-else\n :to=\"retweeterProfileLink\"\n >{{ retweeter }}</router-link>\n </span>\n {{ ' ' }}\n <FAIcon\n icon=\"retweet\"\n class=\"repeat-icon\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ $t('timeline.repeated') }}\n </div>\n </div>\n\n <div\n v-if=\"!deleted\"\n :class=\"[userClass, { highlighted: userStyle, '-repeat': retweet && !inConversation }]\"\n :style=\"[ userStyle ]\"\n class=\"status-container\"\n :data-tags=\"tags\"\n >\n <div\n v-if=\"!noHeading\"\n class=\"left-side\"\n >\n <a\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"status.user.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"compact\"\n :better-shadow=\"betterShadow\"\n :user=\"status.user\"\n />\n </UserPopover>\n </a>\n </div>\n <div class=\"right-side\">\n <div\n v-if=\"!noHeading\"\n class=\"status-heading\"\n >\n <div class=\"heading-name-row\">\n <div class=\"heading-left\">\n <h4\n v-if=\"status.user.name_html\"\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n <RichContent\n :html=\"status.user.name\"\n :emoji=\"status.user.emoji\"\n />\n </h4>\n <h4\n v-else\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n {{ status.user.name }}\n </h4>\n <user-link\n class=\"account-name\"\n :title=\"status.user.screen_name_ui\"\n :user=\"status.user\"\n :at=\"false\"\n />\n <img\n v-if=\"!!(status.user && status.user.favicon)\"\n class=\"status-favicon\"\n :src=\"status.user.favicon\"\n >\n </div>\n\n <span class=\"heading-right\">\n <router-link\n class=\"timeago faint-link\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n >\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"60\"\n />\n </router-link>\n <span\n v-if=\"status.visibility\"\n class=\"visibility-icon\"\n :title=\"visibilityLocalized\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"visibilityIcon(status.visibility)\"\n />\n </span>\n <button\n v-if=\"expandable && !isPreview\"\n class=\"button-unstyled\"\n :title=\"$t('status.expand')\"\n @click.prevent=\"toggleExpanded\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n icon=\"plus-square\"\n />\n </button>\n <button\n v-if=\"unmuted\"\n class=\"button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n class=\"fa-scale-110\"\n />\n </button>\n <button\n v-if=\"inThreadForest && replies && replies.length && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"threadShowing ? $t('status.thread_hide') : $t('status.thread_show')\"\n :aria-expanded=\"threadShowing ? 'true' : 'false'\"\n @click.prevent=\"toggleThreadDisplay\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"threadShowing ? 'chevron-up' : 'chevron-down'\"\n />\n </button>\n <button\n v-if=\"dive && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"$t('status.show_only_conversation_under_this')\"\n @click.prevent=\"dive\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"'angle-double-right'\"\n />\n </button>\n </span>\n </div>\n <div\n v-if=\"isReply || hasMentionsLine\"\n class=\"heading-reply-row\"\n >\n <span\n v-if=\"isReply\"\n class=\"glued-label reply-glued-label\"\n >\n <StatusPopover\n v-if=\"!isPreview\"\n :status-id=\"status.parent_visible && status.in_reply_to_status_id\"\n class=\"reply-to-popover\"\n style=\"min-width: 0\"\n :class=\"{ '-strikethrough': !status.parent_visible }\"\n >\n <button\n class=\"button-unstyled reply-to\"\n :aria-label=\"$t('tool_tip.reply')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"reply\"\n flip=\"horizontal\"\n />\n {{ ' ' }}\n <span\n class=\"reply-to-text\"\n >\n {{ $t('status.reply_to') }}\n </span>\n </button>\n </StatusPopover>\n\n <span\n v-else\n class=\"reply-to-no-popover\"\n >\n <span class=\"reply-to-text\">{{ $t('status.reply_to') }}</span>\n </span>\n <MentionLink\n :content=\"replyToName\"\n :url=\"replyProfileLink\"\n :user-id=\"status.in_reply_to_user_id\"\n :user-screen-name=\"status.in_reply_to_screen_name\"\n />\n </span>\n\n <!-- This little wrapper is made for sole purpose of \"gluing\" -->\n <!-- \"Mentions\" label to the first mention -->\n <span\n v-if=\"hasMentionsLine\"\n class=\"glued-label\"\n >\n <span\n class=\"mentions\"\n :aria-label=\"$t('tool_tip.mentions')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <span\n class=\"mentions-text\"\n >\n {{ $t('status.mentions') }}\n </span>\n </span>\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(0, 1)\"\n class=\"mentions-line-first\"\n />\n </span>\n {{ ' ' }}\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(1)\"\n class=\"mentions-line\"\n />\n </div>\n <div\n v-if=\"isEdited && editingAvailable && !isPreview\"\n class=\"heading-edited-row\"\n >\n <i18n-t\n keypath=\"status.edited_at\"\n tag=\"span\"\n >\n <template #time>\n <Timeago\n template-key=\"time.in_past\"\n :time=\"status.edited_at\"\n :auto-update=\"60\"\n :long-format=\"true\"\n />\n </template>\n </i18n-t>\n </div>\n </div>\n\n <StatusContent\n ref=\"content\"\n :status=\"status\"\n :no-heading=\"noHeading\"\n :highlight=\"highlight\"\n :focused=\"isFocused\"\n :controlled-showing-tall=\"controlledShowingTall\"\n :controlled-expanding-subject=\"controlledExpandingSubject\"\n :controlled-showing-long-subject=\"controlledShowingLongSubject\"\n :controlled-toggle-showing-tall=\"controlledToggleShowingTall\"\n :controlled-toggle-expanding-subject=\"controlledToggleExpandingSubject\"\n :controlled-toggle-showing-long-subject=\"controlledToggleShowingLongSubject\"\n @mediaplay=\"addMediaPlaying($event)\"\n @mediapause=\"removeMediaPlaying($event)\"\n @parseReady=\"setHeadTailLinks\"\n />\n\n <div\n v-if=\"inConversation && !isPreview && replies && replies.length\"\n class=\"replies\"\n >\n <button\n v-if=\"showOtherRepliesAsButton && replies.length > 1\"\n class=\"button-unstyled -link faint\"\n :title=\"$tc('status.ancestor_follow', replies.length - 1, { numReplies: replies.length - 1 })\"\n @click.prevent=\"dive\"\n >\n {{ $tc('status.replies_list_with_others', replies.length - 1, { numReplies: replies.length - 1 }) }}\n </button>\n <span\n v-else\n class=\"faint\"\n >\n {{ $t('status.replies_list') }}\n </span>\n <StatusPopover\n v-for=\"reply in replies\"\n :key=\"reply.id\"\n :status-id=\"reply.id\"\n >\n <button\n class=\"button-unstyled -link reply-link\"\n @click.prevent=\"gotoOriginal(reply.id)\"\n >\n {{ reply.name }}\n </button>\n </StatusPopover>\n </div>\n\n <transition name=\"fade\">\n <div\n v-if=\"!hidePostStats && isFocused && combinedFavsAndRepeatsUsers.length > 0\"\n class=\"favs-repeated-users\"\n >\n <div class=\"stats\">\n <UserListPopover\n v-if=\"statusFromGlobalRepository.rebloggedBy && statusFromGlobalRepository.rebloggedBy.length > 0\"\n :users=\"statusFromGlobalRepository.rebloggedBy\"\n >\n <div class=\"stat-count\">\n <a class=\"stat-title\">{{ $t('status.repeats') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.rebloggedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <UserListPopover\n v-if=\"statusFromGlobalRepository.favoritedBy && statusFromGlobalRepository.favoritedBy.length > 0\"\n :users=\"statusFromGlobalRepository.favoritedBy\"\n >\n <div\n class=\"stat-count\"\n >\n <a class=\"stat-title\">{{ $t('status.favorites') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.favoritedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <div class=\"avatar-row\">\n <AvatarList :users=\"combinedFavsAndRepeatsUsers\" />\n </div>\n </div>\n </div>\n </transition>\n\n <EmojiReactions\n v-if=\"(mergedConfig.emojiReactionsOnTimeline || isFocused) && (!noHeading && !isPreview)\"\n :status=\"status\"\n />\n\n <div\n v-if=\"!noHeading && !isPreview\"\n class=\"status-actions\"\n >\n <reply-button\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n <retweet-button\n :visibility=\"status.visibility\"\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <favorite-button\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <ReactButton\n v-if=\"loggedIn\"\n :status=\"status\"\n />\n <extra-buttons\n :status=\"status\"\n @onError=\"showError\"\n @onSuccess=\"clearError\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"gravestone\"\n >\n <div class=\"left-side\">\n <UserAvatar\n class=\"post-avatar\"\n :compact=\"compact\"\n :bot=\"botIndicator\"\n />\n </div>\n <div class=\"right-side\">\n <div class=\"deleted-text\">\n {{ $t('status.status_deleted') }}\n </div>\n <reply-button\n v-if=\"replying\"\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n </div>\n </div>\n <div\n v-if=\"replying\"\n class=\"status-container reply-form\"\n >\n <PostStatusForm\n class=\"reply-body\"\n :reply-to=\"status.id\"\n :attentions=\"status.attentions\"\n :replied-user=\"status.user\"\n :copy-message-scope=\"status.visibility\"\n :subject=\"replySubject\"\n @posted=\"toggleReplying\"\n />\n </div>\n </template>\n </div>\n</template>\n\n<script src=\"./status.js\"></script>\n\n<style src=\"./status.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"ReplyButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"{'-active': replying}\"\n :title=\"$t('tool_tip.reply')\"\n @click.prevent=\"$emit('toggle')\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"reply\"\n />\n <FAIcon\n v-if=\"!replying\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"times\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :href=\"remoteInteractionLink\"\n >\n <FAIcon\n icon=\"reply\"\n class=\"fa-scale-110 fa-old-padding\"\n :title=\"$t('tool_tip.reply')\"\n />\n </a>\n <span\n v-if=\"status.replies_count > 0\"\n class=\"action-counter\"\n >\n {{ status.replies_count }}\n </span>\n </div>\n</template>\n\n<script src=\"./reply_button.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faReply,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faReply,\n faPlus,\n faTimes\n)\n\nconst ReplyButton = {\n name: 'ReplyButton',\n props: ['status', 'replying'],\n computed: {\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default ReplyButton\n","import { render } from \"./reply_button.vue?vue&type=template&id=25e9b206\"\nimport script from \"./reply_button.js?vue&type=script&lang=js\"\nexport * from \"./reply_button.js?vue&type=script&lang=js\"\n\nimport \"./reply_button.vue?vue&type=style&index=0&id=25e9b206&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"FavoriteButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.favorited && '-favorited'\"\n :title=\"$t('tool_tip.favorite')\"\n @click.prevent=\"favorite()\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n :icon=\"[status.favorited ? 'fas' : 'far', 'star']\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.favorited\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.favorited\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :href=\"remoteInteractionLink\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n :title=\"$t('tool_tip.favorite')\"\n :icon=\"['far', 'star']\"\n />\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.fave_num > 0\"\n class=\"action-counter\"\n >\n {{ status.fave_num }}\n </span>\n </div>\n</template>\n\n<script src=\"./favorite_button.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStar,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faStar as faStarRegular\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faStar,\n faStarRegular,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst FavoriteButton = {\n props: ['status', 'loggedIn'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n favorite () {\n if (!this.status.favorited) {\n this.$store.dispatch('favorite', { id: this.status.id })\n } else {\n this.$store.dispatch('unfavorite', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default FavoriteButton\n","import { render } from \"./favorite_button.vue?vue&type=template&id=8196d38e\"\nimport script from \"./favorite_button.js?vue&type=script&lang=js\"\nexport * from \"./favorite_button.js?vue&type=script&lang=js\"\n\nimport \"./favorite_button.vue?vue&type=style&index=0&id=8196d38e&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"ReactButton\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n popover-class=\"ReactButton popover-default\"\n @show=\"onShow\"\n @close=\"onClose\"\n >\n <template #content=\"{close}\">\n <div class=\"reaction-picker-filter\">\n <input\n v-model=\"filterWord\"\n size=\"1\"\n :placeholder=\"$t('emoji.search_emoji')\"\n @input=\"$event.target.composing = false\"\n >\n </div>\n <div class=\"reaction-picker\">\n <span\n v-for=\"emoji in commonEmojis\"\n :key=\"emoji.replacement\"\n class=\"emoji-button\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n @click=\"addReaction($event, emoji.replacement, close)\"\n >\n {{ emoji.replacement }}\n </span>\n <div class=\"reaction-picker-divider\" />\n <span\n v-for=\"(emoji, key) in emojis\"\n :key=\"key\"\n class=\"emoji-button\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n @click=\"addReaction($event, emoji.replacement, close)\"\n >\n {{ emoji.replacement }}\n </span>\n <div class=\"reaction-bottom-fader\" />\n </div>\n </template>\n <template #trigger>\n <span\n class=\"button-unstyled popover-trigger\"\n :title=\"$t('tool_tip.add_reaction')\"\n >\n <FALayers>\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n :icon=\"['far', 'smile-beam']\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n </template>\n </Popover>\n</template>\n\n<script src=\"./react_button.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n\n mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n /* override of popover internal stuff */\n .popover-trigger-button {\n width: auto;\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n }\n\n .popover-trigger-button {\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n</style>\n","import Popover from '../popover/popover.vue'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faPlus, faTimes } from '@fortawesome/free-solid-svg-icons'\nimport { faSmileBeam } from '@fortawesome/free-regular-svg-icons'\nimport { trim } from 'lodash'\n\nlibrary.add(\n faPlus,\n faTimes,\n faSmileBeam\n)\n\nconst ReactButton = {\n props: ['status'],\n data () {\n return {\n filterWord: '',\n expanded: false\n }\n },\n components: {\n Popover\n },\n methods: {\n addReaction (event, emoji, close) {\n const existingReaction = this.status.emoji_reactions.find(r => r.name === emoji)\n if (existingReaction && existingReaction.me) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n } else {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n }\n close()\n },\n onShow () {\n this.expanded = true\n this.focusInput()\n },\n onClose () {\n this.expanded = false\n },\n focusInput () {\n this.$nextTick(() => {\n const input = this.$el.querySelector('input')\n if (input) input.focus()\n })\n },\n // Vaguely adjusted copypaste from emoji_input and emoji_picker!\n maybeLocalizedEmojiNamesAndKeywords (emoji) {\n const names = [emoji.displayText]\n const keywords = []\n\n if (emoji.displayTextI18n) {\n names.push(this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args))\n }\n\n if (emoji.annotations) {\n this.languages.forEach(lang => {\n names.push(emoji.annotations[lang]?.name)\n\n keywords.push(...(emoji.annotations[lang]?.keywords || []))\n })\n }\n\n return {\n names: names.filter(k => k),\n keywords: keywords.filter(k => k)\n }\n },\n maybeLocalizedEmojiName (emoji) {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n computed: {\n commonEmojis () {\n const hardcodedSet = new Set(['👍', '😠', '👀', '😂', '🔥'])\n return this.$store.getters.standardEmojiList.filter(emoji => hardcodedSet.has(emoji.replacement))\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n emojis () {\n if (this.filterWord !== '') {\n const keywordLowercase = trim(this.filterWord.toLowerCase())\n\n const orderedEmojiList = []\n for (const emoji of this.$store.getters.standardEmojiList) {\n const indices = this.maybeLocalizedEmojiNamesAndKeywords(emoji)\n .keywords\n .map(k => k.toLowerCase().indexOf(keywordLowercase))\n .filter(k => k > -1)\n\n const indexOfKeyword = indices.length ? Math.min(...indices) : -1\n\n if (indexOfKeyword > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {\n orderedEmojiList[indexOfKeyword] = []\n }\n orderedEmojiList[indexOfKeyword].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n }\n return this.$store.getters.standardEmojiList || []\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n }\n }\n}\n\nexport default ReactButton\n","import { render } from \"./react_button.vue?vue&type=template&id=33f652d5\"\nimport script from \"./react_button.js?vue&type=script&lang=js\"\nexport * from \"./react_button.js?vue&type=script&lang=js\"\n\nimport \"./react_button.vue?vue&type=style&index=0&id=33f652d5&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"RetweetButton\">\n <button\n v-if=\"visibility !== 'private' && visibility !== 'direct' && loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.repeated && '-repeated'\"\n :title=\"$t('tool_tip.repeat')\"\n @click.prevent=\"retweet()\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"retweet\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.repeated\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.repeated\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <span v-else-if=\"loggedIn\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"lock\"\n :title=\"$t('timeline.no_retweet_hint')\"\n />\n </span>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :href=\"remoteInteractionLink\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"retweet\"\n :title=\"$t('tool_tip.repeat')\"\n />\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.repeat_num > 0\"\n class=\"no-event\"\n >\n {{ status.repeat_num }}\n </span>\n </div>\n</template>\n\n<script src=\"./retweet_button.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst RetweetButton = {\n props: ['status', 'loggedIn', 'visibility'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n retweet () {\n if (!this.status.repeated) {\n this.$store.dispatch('retweet', { id: this.status.id })\n } else {\n this.$store.dispatch('unretweet', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default RetweetButton\n","import { render } from \"./retweet_button.vue?vue&type=template&id=083207b8\"\nimport script from \"./retweet_button.js?vue&type=script&lang=js\"\nexport * from \"./retweet_button.js?vue&type=script&lang=js\"\n\nimport \"./retweet_button.vue?vue&type=style&index=0&id=083207b8&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n class=\"ExtraButtons\"\n trigger=\"click\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n @show=\"onShow\"\n @close=\"onClose\"\n >\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n v-if=\"canMute && !status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"muteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.mute_conversation\") }}</span>\n </button>\n <button\n v-if=\"canMute && status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unmuteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.unmute_conversation\") }}</span>\n </button>\n <button\n v-if=\"!status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"pinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.pin\") }}</span>\n </button>\n <button\n v-if=\"status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unpinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.unpin\") }}</span>\n </button>\n <template v-if=\"canBookmark\">\n <button\n v-if=\"!status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"bookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'bookmark']\"\n /><span>{{ $t(\"status.bookmark\") }}</span>\n </button>\n <button\n v-if=\"status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unbookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"bookmark\"\n /><span>{{ $t(\"status.unbookmark\") }}</span>\n </button>\n </template>\n <button\n v-if=\"ownStatus && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"editStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"pen\"\n /><span>{{ $t(\"status.edit\") }}</span>\n </button>\n <button\n v-if=\"isEdited && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"showStatusHistory\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"history\"\n /><span>{{ $t(\"status.status_history\") }}</span>\n </button>\n <button\n v-if=\"canDelete\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"deleteStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n /><span>{{ $t(\"status.delete\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"copyLink\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"share-alt\"\n /><span>{{ $t(\"status.copy_link\") }}</span>\n </button>\n <a\n v-if=\"!status.is_local\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n title=\"Source\"\n :href=\"status.external_url\"\n target=\"_blank\"\n >\n <FAIcon\n fixed-width\n icon=\"external-link-alt\"\n /><span>{{ $t(\"status.external_source\") }}</span>\n </a>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"reportStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'flag']\"\n /><span>{{ $t(\"user_card.report\") }}</span>\n </button>\n </div>\n </template>\n <template #trigger>\n <span class=\"button-unstyled popover-trigger\">\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110 \"\n icon=\"ellipsis-h\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n </template>\n </Popover>\n</template>\n\n<script src=\"./extra_buttons.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n@import '../../_mixins.scss';\n\n.ExtraButtons {\n /* override of popover internal stuff */\n .popover-trigger-button {\n width: auto;\n }\n\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n }\n\n .popover-trigger-button {\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n</style>\n","import Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH,\n faBookmark,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faHistory,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faBookmark as faBookmarkReg,\n faFlag\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faEllipsisH,\n faBookmark,\n faBookmarkReg,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faFlag,\n faHistory,\n faPlus,\n faTimes\n)\n\nconst ExtraButtons = {\n props: ['status'],\n components: { Popover },\n data () {\n return {\n expanded: false\n }\n },\n methods: {\n onShow () {\n this.expanded = true\n },\n onClose () {\n this.expanded = false\n },\n deleteStatus () {\n const confirmed = window.confirm(this.$t('status.delete_confirm'))\n if (confirmed) {\n this.$store.dispatch('deleteStatus', { id: this.status.id })\n }\n },\n pinStatus () {\n this.$store.dispatch('pinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unpinStatus () {\n this.$store.dispatch('unpinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n muteConversation () {\n this.$store.dispatch('muteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unmuteConversation () {\n this.$store.dispatch('unmuteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n copyLink () {\n navigator.clipboard.writeText(this.statusLink)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n bookmarkStatus () {\n this.$store.dispatch('bookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unbookmarkStatus () {\n this.$store.dispatch('unbookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n reportStatus () {\n this.$store.dispatch('openUserReportingModal', { userId: this.status.user.id, statusIds: [this.status.id] })\n },\n editStatus () {\n this.$store.dispatch('fetchStatusSource', { id: this.status.id })\n .then(data => this.$store.dispatch('openEditStatusModal', {\n statusId: this.status.id,\n subject: data.spoiler_text,\n statusText: data.text,\n statusIsSensitive: this.status.nsfw,\n statusPoll: this.status.poll,\n statusFiles: [...this.status.attachments],\n visibility: this.status.visibility,\n statusContentType: data.content_type\n }))\n },\n showStatusHistory () {\n const originalStatus = { ...this.status }\n const stripFieldsList = ['attachments', 'created_at', 'emojis', 'text', 'raw_html', 'nsfw', 'poll', 'summary', 'summary_raw_html']\n stripFieldsList.forEach(p => delete originalStatus[p])\n this.$store.dispatch('openStatusHistoryModal', originalStatus)\n }\n },\n computed: {\n currentUser () { return this.$store.state.users.currentUser },\n canDelete () {\n if (!this.currentUser) { return }\n return this.currentUser.privileges.includes('messages_delete') || this.status.user.id === this.currentUser.id\n },\n ownStatus () {\n return this.status.user.id === this.currentUser.id\n },\n canPin () {\n return this.ownStatus && (this.status.visibility === 'public' || this.status.visibility === 'unlisted')\n },\n canMute () {\n return !!this.currentUser\n },\n canBookmark () {\n return !!this.currentUser\n },\n statusLink () {\n return `${this.$store.state.instance.server}${this.$router.resolve({ name: 'conversation', params: { id: this.status.id } }).href}`\n },\n isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () { return this.$store.state.instance.editingAvailable }\n }\n}\n\nexport default ExtraButtons\n","import { render } from \"./extra_buttons.vue?vue&type=template&id=4b73e784\"\nimport script from \"./extra_buttons.js?vue&type=script&lang=js\"\nexport * from \"./extra_buttons.js?vue&type=script&lang=js\"\n\nimport \"./extra_buttons.vue?vue&type=style&index=0&id=4b73e784&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n ref=\"popover\"\n trigger=\"hover\"\n :stay-on-click=\"true\"\n popover-class=\"popover-default status-popover\"\n :bound-to=\"{ x: 'container' }\"\n @show=\"enter\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <Status\n v-if=\"status\"\n :is-preview=\"true\"\n :statusoid=\"status\"\n :compact=\"true\"\n />\n <div\n v-else-if=\"error\"\n class=\"status-preview-no-content faint\"\n >\n {{ $t('status.status_unavailable') }}\n </div>\n <div\n v-else\n class=\"status-preview-no-content\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"2x\"\n />\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./status_popover.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n</style>\n","import { find } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\nimport { defineAsyncComponent } from 'vue'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst StatusPopover = {\n name: 'StatusPopover',\n props: [\n 'statusId'\n ],\n data () {\n return {\n error: false\n }\n },\n computed: {\n status () {\n return find(this.$store.state.statuses.allStatuses, { id: this.statusId })\n }\n },\n components: {\n Status: defineAsyncComponent(() => import('../status/status.vue')),\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n methods: {\n enter () {\n if (!this.status) {\n if (!this.statusId) {\n this.error = true\n return\n }\n this.$store.dispatch('fetchStatus', this.statusId)\n .then(data => (this.error = false))\n .catch(e => (this.error = true))\n }\n }\n },\n watch: {\n status (newStatus, oldStatus) {\n if (newStatus !== oldStatus) {\n this.$nextTick(() => this.$refs.popover.updateStyles())\n }\n }\n }\n}\n\nexport default StatusPopover\n","import { render } from \"./status_popover.vue?vue&type=template&id=dab9b54e\"\nimport script from \"./status_popover.js?vue&type=script&lang=js\"\nexport * from \"./status_popover.js?vue&type=script&lang=js\"\n\nimport \"./status_popover.vue?vue&type=style&index=0&id=dab9b54e&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"hover\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <div class=\"user-list-popover\">\n <template v-if=\"users.length\">\n <div\n v-for=\"(user) in usersCapped\"\n :key=\"user.id\"\n class=\"user-list-row\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n :compact=\"true\"\n />\n <div class=\"user-list-names\">\n <!-- eslint-disable vue/no-v-html -->\n <RichContent\n class=\"username\"\n :title=\"'@'+user.screen_name_ui\"\n :html=\"user.name_html\"\n :emoji=\"user.emoji\"\n />\n <!-- eslint-enable vue/no-v-html -->\n <span class=\"user-list-screen-name\">{{ user.screen_name_ui }}</span><UnicodeDomainIndicator :user=\"user\" />\n </div>\n </div>\n </template>\n <template v-else>\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n </template>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_list_popover.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n</style>\n","import { defineAsyncComponent } from 'vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst UserListPopover = {\n name: 'UserListPopover',\n props: [\n 'users'\n ],\n components: {\n RichContent,\n UnicodeDomainIndicator,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue')),\n UserAvatar: defineAsyncComponent(() => import('../user_avatar/user_avatar.vue'))\n },\n computed: {\n usersCapped () {\n return this.users.slice(0, 16)\n }\n }\n}\n\nexport default UserListPopover\n","import { render } from \"./user_list_popover.vue?vue&type=template&id=6c7b1f9c\"\nimport script from \"./user_list_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_list_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_list_popover.vue?vue&type=style&index=0&id=6c7b1f9c&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"EmojiReactions\">\n <UserListPopover\n v-for=\"(reaction) in emojiReactions\"\n :key=\"reaction.name\"\n :users=\"accountsForEmoji[reaction.name]\"\n >\n <button\n class=\"emoji-reaction btn button-default\"\n :class=\"{ '-picked-reaction': reactedWith(reaction.name), 'not-clickable': !loggedIn }\"\n @click=\"emojiOnClick(reaction.name, $event)\"\n @mouseenter=\"fetchEmojiReactionsByIfMissing()\"\n >\n <span class=\"reaction-emoji\">{{ reaction.name }}</span>\n <span>{{ reaction.count }}</span>\n </button>\n </UserListPopover>\n <a\n v-if=\"tooManyReactions\"\n class=\"emoji-reaction-expand faint\"\n href=\"javascript:void(0)\"\n @click=\"toggleShowAll\"\n >\n {{ showAll ? $t('general.show_less') : showMoreString }}\n </a>\n </div>\n</template>\n\n<script src=\"./emoji_reactions.js\"></script>\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n .emoji-reaction {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n\n .reaction-emoji {\n width: 1.25em;\n margin-right: 0.25em;\n }\n\n &:focus {\n outline: none;\n }\n\n &.not-clickable {\n cursor: default;\n &:hover {\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n }\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: calc(0.5em - 1px);\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n text-decoration: underline;\n }\n }\n\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\n\nconst EMOJI_REACTION_COUNT_CUTOFF = 12\n\nconst EmojiReactions = {\n name: 'EmojiReactions',\n components: {\n UserAvatar,\n UserListPopover\n },\n props: ['status'],\n data: () => ({\n showAll: false\n }),\n computed: {\n tooManyReactions () {\n return this.status.emoji_reactions.length > EMOJI_REACTION_COUNT_CUTOFF\n },\n emojiReactions () {\n return this.showAll\n ? this.status.emoji_reactions\n : this.status.emoji_reactions.slice(0, EMOJI_REACTION_COUNT_CUTOFF)\n },\n showMoreString () {\n return `+${this.status.emoji_reactions.length - EMOJI_REACTION_COUNT_CUTOFF}`\n },\n accountsForEmoji () {\n return this.status.emoji_reactions.reduce((acc, reaction) => {\n acc[reaction.name] = reaction.accounts || []\n return acc\n }, {})\n },\n loggedIn () {\n return !!this.$store.state.users.currentUser\n }\n },\n methods: {\n toggleShowAll () {\n this.showAll = !this.showAll\n },\n reactedWith (emoji) {\n return this.status.emoji_reactions.find(r => r.name === emoji).me\n },\n fetchEmojiReactionsByIfMissing () {\n const hasNoAccounts = this.status.emoji_reactions.find(r => !r.accounts)\n if (hasNoAccounts) {\n this.$store.dispatch('fetchEmojiReactionsBy', this.status.id)\n }\n },\n reactWith (emoji) {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n },\n unreact (emoji) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n },\n emojiOnClick (emoji, event) {\n if (!this.loggedIn) return\n\n if (this.reactedWith(emoji)) {\n this.unreact(emoji)\n } else {\n this.reactWith(emoji)\n }\n }\n }\n}\n\nexport default EmojiReactions\n","import { render } from \"./emoji_reactions.vue?vue&type=template&id=b6dc04e4\"\nimport script from \"./emoji_reactions.js?vue&type=script&lang=js\"\nexport * from \"./emoji_reactions.js?vue&type=script&lang=js\"\n\nimport \"./emoji_reactions.vue?vue&type=style&index=0&id=b6dc04e4&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ReplyButton from '../reply_button/reply_button.vue'\nimport FavoriteButton from '../favorite_button/favorite_button.vue'\nimport ReactButton from '../react_button/react_button.vue'\nimport RetweetButton from '../retweet_button/retweet_button.vue'\nimport ExtraButtons from '../extra_buttons/extra_buttons.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport StatusPopover from '../status_popover/status_popover.vue'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\nimport EmojiReactions from '../emoji_reactions/emoji_reactions.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport MentionsLine from 'src/components/mentions_line/mentions_line.vue'\nimport MentionLink from 'src/components/mention_link/mention_link.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport { muteWordHits } from '../../services/status_parser/status_parser.js'\nimport { unescape, uniqBy } from 'lodash'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faSmileBeam,\n faEllipsisH,\n faStar,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faStar,\n faSmileBeam,\n faEllipsisH,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst controlledOrUncontrolledSet = (obj, name, val) => {\n const camelized = camelCase(name)\n const set = `controlledSet${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[set]) {\n obj[set](val)\n } else {\n obj[uncontrolledName] = val\n }\n}\n\nconst Status = {\n name: 'Status',\n components: {\n ReplyButton,\n FavoriteButton,\n ReactButton,\n RetweetButton,\n ExtraButtons,\n PostStatusForm,\n UserAvatar,\n AvatarList,\n Timeago,\n StatusPopover,\n UserListPopover,\n EmojiReactions,\n StatusContent,\n RichContent,\n MentionLink,\n MentionsLine,\n UserPopover,\n UserLink\n },\n props: [\n 'statusoid',\n 'expandable',\n 'inConversation',\n 'focused',\n 'highlight',\n 'compact',\n 'replies',\n 'isPreview',\n 'noHeading',\n 'inlineExpanded',\n 'showPinned',\n 'inProfile',\n 'profileUserId',\n\n 'simpleTree',\n 'controlledThreadDisplayStatus',\n 'controlledToggleThreadDisplay',\n 'showOtherRepliesAsButton',\n\n 'controlledShowingTall',\n 'controlledToggleShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject',\n 'controlledReplying',\n 'controlledToggleReplying',\n 'controlledMediaPlaying',\n 'controlledSetMediaPlaying',\n 'dive'\n ],\n data () {\n return {\n uncontrolledReplying: false,\n unmuted: false,\n userExpanded: false,\n uncontrolledMediaPlaying: [],\n suspendable: true,\n error: null,\n headTailLinks: null\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['replying', 'mediaPlaying']),\n muteWords () {\n return this.mergedConfig.muteWords\n },\n showReasonMutedThread () {\n return (\n this.status.thread_muted ||\n (this.status.reblog && this.status.reblog.thread_muted)\n ) && !this.inConversation\n },\n repeaterClass () {\n const user = this.statusoid.user\n return highlightClass(user)\n },\n userClass () {\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n return highlightClass(user)\n },\n deleted () {\n return this.statusoid.deleted\n },\n repeaterStyle () {\n const user = this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userStyle () {\n if (this.noHeading) return\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name)\n },\n replyProfileLink () {\n if (this.isReply) {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n // FIXME Why user not found sometimes???\n return user ? user.statusnet_profile_url : 'NOT_FOUND'\n }\n },\n retweet () { return !!this.statusoid.retweeted_status },\n retweeterUser () { return this.statusoid.user },\n retweeter () { return this.statusoid.user.name || this.statusoid.user.screen_name_ui },\n retweeterHtml () { return this.statusoid.user.name },\n retweeterProfileLink () { return this.generateUserProfileLink(this.statusoid.user.id, this.statusoid.user.screen_name) },\n status () {\n if (this.retweet) {\n return this.statusoid.retweeted_status\n } else {\n return this.statusoid\n }\n },\n statusFromGlobalRepository () {\n // NOTE: Consider to replace status with statusFromGlobalRepository\n return this.$store.state.statuses.allStatusesObject[this.status.id]\n },\n loggedIn () {\n return !!this.currentUser\n },\n muteWordHits () {\n return muteWordHits(this.status, this.muteWords)\n },\n rtBotStatus () {\n return this.statusoid.user.bot\n },\n botStatus () {\n return this.status.user.bot\n },\n botIndicator () {\n return this.botStatus && !this.hideBotIndication\n },\n rtBotIndicator () {\n return this.rtBotStatus && !this.hideBotIndication\n },\n mentionsLine () {\n if (!this.headTailLinks) return []\n const writtenSet = new Set(this.headTailLinks.writtenMentions.map(_ => _.url))\n return this.status.attentions.filter(attn => {\n // no reply user\n return attn.id !== this.status.in_reply_to_user_id &&\n // no self-replies\n attn.statusnet_profile_url !== this.status.user.statusnet_profile_url &&\n // don't include if mentions is written\n !writtenSet.has(attn.statusnet_profile_url)\n }).map(attn => ({\n url: attn.statusnet_profile_url,\n content: attn.screen_name,\n userId: attn.id\n }))\n },\n hasMentionsLine () {\n return this.mentionsLine.length > 0\n },\n muted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const reasonsToMute = this.userIsMuted ||\n // Thread is muted\n status.thread_muted ||\n // Wordfiltered\n this.muteWordHits.length > 0 ||\n // bot status\n (this.muteBotStatuses && this.botStatus && !this.compact)\n return !this.unmuted && !this.shouldNotMute && reasonsToMute\n },\n userIsMuted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const { status } = this\n const { reblog } = status\n const relationship = this.$store.getters.relationship(status.user.id)\n const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)\n return status.muted ||\n // Reprööt of a muted post according to BE\n (reblog && reblog.muted) ||\n // Muted user\n relationship.muting ||\n // Muted user of a reprööt\n (relationshipReblog && relationshipReblog.muting)\n },\n shouldNotMute () {\n const { status } = this\n const { reblog } = status\n return (\n (\n this.inProfile && (\n // Don't mute user's posts on user timeline (except reblogs)\n (!reblog && status.user.id === this.profileUserId) ||\n // Same as above but also allow self-reblogs\n (reblog && reblog.user.id === this.profileUserId)\n )\n ) ||\n // Don't mute statuses in muted conversation when said conversation is opened\n (this.inConversation && status.thread_muted)\n // No excuses if post has muted words\n ) && !this.muteWordHits.length > 0\n },\n hideMutedUsers () {\n return this.mergedConfig.hideMutedPosts\n },\n hideMutedThreads () {\n return this.mergedConfig.hideMutedThreads\n },\n hideFilteredStatuses () {\n return this.mergedConfig.hideFilteredStatuses\n },\n hideWordFilteredPosts () {\n return this.mergedConfig.hideWordFilteredPosts\n },\n hideStatus () {\n return (!this.shouldNotMute) && (\n (this.muted && this.hideFilteredStatuses) ||\n (this.userIsMuted && this.hideMutedUsers) ||\n (this.status.thread_muted && this.hideMutedThreads) ||\n (this.muteWordHits.length > 0 && this.hideWordFilteredPosts)\n )\n },\n isFocused () {\n // retweet or root of an expanded conversation\n if (this.focused) {\n return true\n } else if (!this.inConversation) {\n return false\n }\n // use conversation highlight only when in conversation\n return this.status.id === this.highlight\n },\n isReply () {\n return !!(this.status.in_reply_to_status_id && this.status.in_reply_to_user_id)\n },\n replyToName () {\n if (this.status.in_reply_to_screen_name) {\n return this.status.in_reply_to_screen_name\n } else {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n return user && user.screen_name_ui\n }\n },\n replySubject () {\n if (!this.status.summary) return ''\n const decodedSummary = unescape(this.status.summary)\n const behavior = this.mergedConfig.subjectLineBehavior\n const startsWithRe = decodedSummary.match(/^re[: ]/i)\n if ((behavior !== 'noop' && startsWithRe) || behavior === 'masto') {\n return decodedSummary\n } else if (behavior === 'email') {\n return 're: '.concat(decodedSummary)\n } else if (behavior === 'noop') {\n return ''\n }\n },\n combinedFavsAndRepeatsUsers () {\n // Use the status from the global status repository since favs and repeats are saved in it\n const combinedUsers = [].concat(\n this.statusFromGlobalRepository.favoritedBy,\n this.statusFromGlobalRepository.rebloggedBy\n )\n return uniqBy(combinedUsers, 'id')\n },\n tags () {\n // eslint-disable-next-line no-prototype-builtins\n return this.status.tags.filter(tagObj => tagObj.hasOwnProperty('name')).map(tagObj => tagObj.name).join(' ')\n },\n hidePostStats () {\n return this.mergedConfig.hidePostStats\n },\n muteBotStatuses () {\n return this.mergedConfig.muteBotStatuses\n },\n hideBotIndication () {\n return this.mergedConfig.hideBotIndication\n },\n currentUser () {\n return this.$store.state.users.currentUser\n },\n betterShadow () {\n return this.$store.state.interface.browserSupport.cssFilter\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n isSuspendable () {\n return !this.replying && this.mediaPlaying.length === 0\n },\n inThreadForest () {\n return !!this.controlledThreadDisplayStatus\n },\n threadShowing () {\n return this.controlledThreadDisplayStatus === 'showing'\n },\n visibilityLocalized () {\n return this.$i18n.t('general.scope_in_timeline.' + this.status.visibility)\n },\n isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () {\n return this.$store.state.instance.editingAvailable\n }\n },\n methods: {\n visibilityIcon (visibility) {\n switch (visibility) {\n case 'private':\n return 'lock'\n case 'unlisted':\n return 'lock-open'\n case 'direct':\n return 'envelope'\n default:\n return 'globe'\n }\n },\n showError (error) {\n this.error = error\n },\n clearError () {\n this.error = undefined\n },\n toggleReplying () {\n controlledOrUncontrolledToggle(this, 'replying')\n },\n gotoOriginal (id) {\n if (this.inConversation) {\n this.$emit('goto', id)\n }\n },\n toggleExpanded () {\n this.$emit('toggleExpanded')\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n },\n addMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.concat(id))\n },\n removeMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.filter(mediaId => mediaId !== id))\n },\n setHeadTailLinks (headTailLinks) {\n this.headTailLinks = headTailLinks\n },\n toggleThreadDisplay () {\n this.controlledToggleThreadDisplay()\n },\n scrollIfHighlighted (highlightId) {\n const id = highlightId\n if (this.status.id === id) {\n const rect = this.$el.getBoundingClientRect()\n if (rect.top < 100) {\n // Post is above screen, match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.height >= (window.innerHeight - 50)) {\n // Post we want to see is taller than screen so match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.bottom > window.innerHeight - 50) {\n // Post is below screen, match its bottom to screen bottom\n window.scrollBy(0, rect.bottom - window.innerHeight + 50)\n }\n }\n }\n },\n watch: {\n highlight: function (id) {\n this.scrollIfHighlighted(id)\n },\n 'status.repeat_num': function (num) {\n // refetch repeats when repeat_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.rebloggedBy && this.statusFromGlobalRepository.rebloggedBy.length !== num) {\n this.$store.dispatch('fetchRepeats', this.status.id)\n }\n },\n 'status.fave_num': function (num) {\n // refetch favs when fave_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.favoritedBy && this.statusFromGlobalRepository.favoritedBy.length !== num) {\n this.$store.dispatch('fetchFavs', this.status.id)\n }\n },\n isSuspendable: function (val) {\n this.suspendable = val\n }\n }\n}\n\nexport default Status\n","import { render } from \"./status.vue?vue&type=template&id=6668042d\"\nimport script from \"./status.js?vue&type=script&lang=js\"\nexport * from \"./status.js?vue&type=script&lang=js\"\n\nimport \"./status.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusContent\"\n :class=\"{ '-compact': compact }\"\n >\n <slot name=\"header\" />\n <StatusBody\n :status=\"status\"\n :compact=\"compact\"\n :single-line=\"singleLine\"\n :showing-tall=\"showingTall\"\n :expanding-subject=\"expandingSubject\"\n :showing-long-subject=\"showingLongSubject\"\n :toggle-showing-tall=\"toggleShowingTall\"\n :toggle-expanding-subject=\"toggleExpandingSubject\"\n :toggle-showing-long-subject=\"toggleShowingLongSubject\"\n @parseReady=\"$emit('parseReady', $event)\"\n >\n <div v-if=\"status.poll && status.poll.options && !compact\">\n <Poll\n :base-poll=\"status.poll\"\n :emoji=\"status.emojis\"\n />\n </div>\n\n <div v-else-if=\"status.poll && status.poll.options && compact\">\n <FAIcon\n icon=\"poll-h\"\n size=\"2x\"\n />\n </div>\n\n <gallery\n v-if=\"status.attachments.length !== 0\"\n class=\"attachments media-body\"\n :nsfw=\"nsfwClickthrough\"\n :attachments=\"status.attachments\"\n :limit=\"compact ? 1 : 0\"\n :size=\"attachmentSize\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n\n <div\n v-if=\"status.card && !noHeading && !compact\"\n class=\"link-preview media-body\"\n >\n <link-preview\n :card=\"status.card\"\n :size=\"attachmentSize\"\n :nsfw=\"nsfwClickthrough\"\n />\n </div>\n </StatusBody>\n <slot name=\"footer\" />\n </div>\n</template>\n\n<script src=\"./status_content.js\"></script>\n<style lang=\"scss\">\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n</style>\n","<template>\n <div\n class=\"poll\"\n :class=\"containerClass\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div\n v-if=\"showResults\"\n :title=\"resultTitle(option)\"\n class=\"option-result\"\n >\n <div class=\"option-result-label\">\n <span class=\"result-percentage\">\n {{ percentageForOption(option.votes_count) }}%\n </span>\n <RichContent\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </div>\n <div\n class=\"result-fill\"\n :style=\"{ 'width': `${percentageForOption(option.votes_count)}%` }\"\n />\n </div>\n <div\n v-else\n @click=\"activateOption(index)\"\n >\n <input\n v-if=\"poll.multiple\"\n type=\"checkbox\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <input\n v-else\n type=\"radio\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <label class=\"option-vote\">\n <RichContent\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </label>\n </div>\n </div>\n <div class=\"footer faint\">\n <button\n v-if=\"!showResults\"\n class=\"btn button-default poll-vote-button\"\n type=\"button\"\n :disabled=\"isDisabled\"\n @click=\"vote\"\n >\n {{ $t('polls.vote') }}\n </button>\n <div class=\"total\">\n <template v-if=\"typeof poll.voters_count === 'number'\">\n {{ $tc(\"polls.people_voted_count\", poll.voters_count, { count: poll.voters_count }) }}&nbsp;·&nbsp;\n </template>\n <template v-else>\n {{ $tc(\"polls.votes_count\", poll.votes_count, { count: poll.votes_count }) }}&nbsp;·&nbsp;\n </template>\n </div>\n <span>\n <i18n-t\n scope=\"global\"\n :keypath=\"expired ? 'polls.expired' : 'polls.expires_in'\"\n >\n <Timeago\n :time=\"expiresAt\"\n :auto-update=\"60\"\n :now-threshold=\"0\"\n />\n </i18n-t>\n </span>\n </div>\n </div>\n</template>\n\n<script src=\"./poll.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n .poll-option {\n margin: 0.75em 0.5em;\n }\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n .option-vote {\n display: flex;\n align-items: center;\n }\n input {\n width: 3.5em;\n }\n .footer {\n display: flex;\n align-items: center;\n }\n &.loading * {\n cursor: progress;\n }\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n}\n</style>\n","import Timeago from 'components/timeago/timeago.vue'\nimport RichContent from 'components/rich_content/rich_content.jsx'\nimport { forEach, map } from 'lodash'\n\nexport default {\n name: 'Poll',\n props: ['basePoll', 'emoji'],\n components: {\n Timeago,\n RichContent\n },\n data () {\n return {\n loading: false,\n choices: []\n }\n },\n created () {\n if (!this.$store.state.polls.pollsObject[this.pollId]) {\n this.$store.dispatch('mergeOrAddPoll', this.basePoll)\n }\n this.$store.dispatch('trackPoll', this.pollId)\n },\n unmounted () {\n this.$store.dispatch('untrackPoll', this.pollId)\n },\n computed: {\n pollId () {\n return this.basePoll.id\n },\n poll () {\n const storePoll = this.$store.state.polls.pollsObject[this.pollId]\n return storePoll || {}\n },\n options () {\n return (this.poll && this.poll.options) || []\n },\n expiresAt () {\n return (this.poll && this.poll.expires_at) || 0\n },\n expired () {\n return (this.poll && this.poll.expired) || false\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n showResults () {\n return this.poll.voted || this.expired || !this.loggedIn\n },\n totalVotesCount () {\n return this.poll.votes_count\n },\n containerClass () {\n return {\n loading: this.loading\n }\n },\n choiceIndices () {\n // Convert array of booleans into an array of indices of the\n // items that were 'true', so [true, false, false, true] becomes\n // [0, 3].\n return this.choices\n .map((entry, index) => entry && index)\n .filter(value => typeof value === 'number')\n },\n isDisabled () {\n const noChoice = this.choiceIndices.length === 0\n return this.loading || noChoice\n }\n },\n methods: {\n percentageForOption (count) {\n return this.totalVotesCount === 0 ? 0 : Math.round(count / this.totalVotesCount * 100)\n },\n resultTitle (option) {\n return `${option.votes_count}/${this.totalVotesCount} ${this.$t('polls.votes')}`\n },\n fetchPoll () {\n this.$store.dispatch('refreshPoll', { id: this.statusId, pollId: this.poll.id })\n },\n activateOption (index) {\n // forgive me father: doing checking the radio/checkboxes\n // in code because of customized input elements need either\n // a) an extra element for the actual graphic, or b) use a\n // pseudo element for the label. We use b) which mandates\n // using \"for\" and \"id\" matching which isn't nice when the\n // same poll appears multiple times on the site (notifs and\n // timeline for example). With code we can make sure it just\n // works without altering the pseudo element implementation.\n const allElements = this.$el.querySelectorAll('input')\n const clickedElement = this.$el.querySelector(`input[value=\"${index}\"]`)\n if (this.poll.multiple) {\n // Checkboxes, toggle only the clicked one\n clickedElement.checked = !clickedElement.checked\n } else {\n // Radio button, uncheck everything and check the clicked one\n forEach(allElements, element => { element.checked = false })\n clickedElement.checked = true\n }\n this.choices = map(allElements, e => e.checked)\n },\n optionId (index) {\n return `poll${this.poll.id}-${index}`\n },\n vote () {\n if (this.choiceIndices.length === 0) return\n this.loading = true\n this.$store.dispatch(\n 'votePoll',\n { id: this.statusId, pollId: this.poll.id, choices: this.choiceIndices }\n ).then(poll => {\n this.loading = false\n })\n }\n }\n}\n","import { render } from \"./poll.vue?vue&type=template&id=5e9dea28\"\nimport script from \"./poll.js?vue&type=script&lang=js\"\nexport * from \"./poll.js?vue&type=script&lang=js\"\n\nimport \"./poll.vue?vue&type=style&index=0&id=5e9dea28&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusBody\"\n :class=\"{ '-compact': compact }\"\n >\n <div class=\"body\">\n <div\n v-if=\"status.summary_raw_html\"\n class=\"summary-wrapper\"\n :class=\"{ '-tall': (longSubject && !showingLongSubject) }\"\n >\n <RichContent\n class=\"media-body summary\"\n :html=\"status.summary_raw_html\"\n :emoji=\"status.emojis\"\n />\n <button\n v-show=\"longSubject && showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.hide_full_subject\") }}\n </button>\n <button\n v-show=\"longSubject && !showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.show_full_subject\") }}\n </button>\n </div>\n <div\n :class=\"{'-tall-status': hideTallStatus}\"\n class=\"text-wrapper\"\n >\n <button\n v-show=\"hideTallStatus\"\n class=\"button-unstyled -link tall-status-hider\"\n :class=\"{ '-focused': focused }\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"general.show_more\") }}\n </button>\n <RichContent\n v-if=\"!hideSubjectStatus && !(singleLine && status.summary_raw_html)\"\n :class=\"{ '-single-line': singleLine }\"\n class=\"text media-body\"\n :html=\"status.raw_html\"\n :emoji=\"status.emojis\"\n :handle-links=\"true\"\n :greentext=\"mergedConfig.greentext\"\n :attentions=\"status.attentions\"\n @parseReady=\"onParseReady\"\n />\n\n <button\n v-show=\"hideSubjectStatus\"\n class=\"button-unstyled -link cw-status-hider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"status.show_content\") }}\n <FAIcon\n v-if=\"attachmentTypes.includes('image')\"\n icon=\"image\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('video')\"\n icon=\"video\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('audio')\"\n icon=\"music\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('unknown')\"\n icon=\"file\"\n />\n <FAIcon\n v-if=\"status.poll && status.poll.options\"\n icon=\"poll-h\"\n />\n <FAIcon\n v-if=\"status.card\"\n icon=\"link\"\n />\n </button>\n <button\n v-show=\"showingMore && !fullContent\"\n class=\"button-unstyled -link status-unhider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ tallStatus ? $t(\"general.show_less\") : $t(\"status.hide_content\") }}\n </button>\n </div>\n </div>\n <slot v-if=\"!hideSubjectStatus\" />\n </div>\n</template>\n<script src=\"./status_body.js\"></script>\n<style lang=\"scss\" src=\"./status_body.scss\" />\n","import fileType from 'src/services/file_type/file_type.service'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'compact',\n 'status',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'showingTall',\n 'expandingSubject',\n 'showingLongSubject',\n 'toggleShowingTall',\n 'toggleExpandingSubject',\n 'toggleShowingLongSubject'\n ],\n data () {\n return {\n postLength: this.status.text.length,\n parseReadyDone: false\n }\n },\n computed: {\n localCollapseSubjectDefault () {\n return this.mergedConfig.collapseMessageWithSubject\n },\n // This is a bit hacky, but we want to approximate post height before rendering\n // so we count newlines (masto uses <p> for paragraphs, GS uses <br> between them)\n // as well as approximate line count by counting characters and approximating ~80\n // per line.\n //\n // Using max-height + overflow: auto for status components resulted in false positives\n // very often with japanese characters, and it was very annoying.\n tallStatus () {\n if (this.singleLine || this.compact) return false\n const lengthScore = this.status.raw_html.split(/<p|<br/).length + this.postLength / 80\n return lengthScore > 20\n },\n longSubject () {\n return this.status.summary.length > 240\n },\n // When a status has a subject and is also tall, we should only have one show more/less button. If the default is to collapse statuses with subjects, we just treat it like a status with a subject; otherwise, we just treat it like a tall status.\n mightHideBecauseSubject () {\n return !!this.status.summary && this.localCollapseSubjectDefault\n },\n mightHideBecauseTall () {\n return this.tallStatus && !(this.status.summary && this.localCollapseSubjectDefault)\n },\n hideSubjectStatus () {\n return this.mightHideBecauseSubject && !this.expandingSubject\n },\n hideTallStatus () {\n return this.mightHideBecauseTall && !this.showingTall\n },\n showingMore () {\n return (this.mightHideBecauseTall && this.showingTall) || (this.mightHideBecauseSubject && this.expandingSubject)\n },\n attachmentTypes () {\n return this.status.attachments.map(file => fileType.fileType(file.mimetype))\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n RichContent\n },\n mounted () {\n this.status.attentions && this.status.attentions.forEach(attn => {\n const { id } = attn\n this.$store.dispatch('fetchUserIfMissing', id)\n })\n },\n methods: {\n onParseReady (event) {\n if (this.parseReadyDone) return\n this.parseReadyDone = true\n this.$emit('parseReady', event)\n const { writtenMentions, invisibleMentions } = event\n writtenMentions\n .filter(mention => !mention.notifying)\n .forEach(mention => {\n const { content, url } = mention\n const cleanedString = content.replace(/<[^>]+?>/gi, '') // remove all tags\n if (!cleanedString.startsWith('@')) return\n const handle = cleanedString.slice(1)\n const host = url.replace(/^https?:\\/\\//, '').replace(/\\/.+?$/, '')\n this.$store.dispatch('fetchUserIfMissing', `${handle}@${host}`)\n })\n /* This is a bit of a hack to make current tall status detector work\n * with rich mentions. Invisible mentions are detected at RichContent level\n * and also we generate plaintext version of mentions by stripping tags\n * so here we subtract from post length by each mention that became invisible\n * via MentionsLine\n */\n this.postLength = invisibleMentions.reduce((acc, mention) => {\n return acc - mention.textContent.length - 1\n }, this.postLength)\n },\n toggleShowMore () {\n if (this.mightHideBecauseTall) {\n this.toggleShowingTall()\n } else if (this.mightHideBecauseSubject) {\n this.toggleExpandingSubject()\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default StatusContent\n","import { render } from \"./status_body.vue?vue&type=template&id=7a590a2c\"\nimport script from \"./status_body.js?vue&type=script&lang=js\"\nexport * from \"./status_body.js?vue&type=script&lang=js\"\n\nimport \"./status_body.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Attachment from '../attachment/attachment.vue'\nimport Poll from '../poll/poll.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport StatusBody from 'src/components/status_body/status_body.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport { mapGetters, mapState } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'status',\n 'compact',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'controlledShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleShowingTall',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject'\n ],\n data () {\n return {\n uncontrolledShowingTall: this.fullContent || (this.inConversation && this.focused),\n uncontrolledShowingLongSubject: false,\n // not as computed because it sets the initial state which will be changed later\n uncontrolledExpandingSubject: !this.$store.getters.mergedConfig.collapseMessageWithSubject\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['showingTall', 'expandingSubject', 'showingLongSubject']),\n hideAttachments () {\n return (this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation)\n },\n nsfwClickthrough () {\n if (!this.status.nsfw) {\n return false\n }\n if (this.status.summary && this.localCollapseSubjectDefault) {\n return false\n }\n return true\n },\n attachmentSize () {\n if (this.compact) {\n return 'small'\n } else if ((this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation) ||\n (this.status.attachments.length > this.maxThumbnails)) {\n return 'hide'\n }\n return 'normal'\n },\n maxThumbnails () {\n return this.mergedConfig.maxThumbnails\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n },\n components: {\n Attachment,\n Poll,\n Gallery,\n LinkPreview,\n StatusBody\n },\n methods: {\n toggleShowingTall () {\n controlledOrUncontrolledToggle(this, 'showingTall')\n },\n toggleExpandingSubject () {\n controlledOrUncontrolledToggle(this, 'expandingSubject')\n },\n toggleShowingLongSubject () {\n controlledOrUncontrolledToggle(this, 'showingLongSubject')\n },\n setMedia () {\n const attachments = this.attachmentSize === 'hide' ? this.status.attachments : this.galleryAttachments\n return () => this.$store.dispatch('setMedia', attachments)\n }\n }\n}\n\nexport default StatusContent\n","import { render } from \"./status_content.vue?vue&type=template&id=220a5018\"\nimport script from \"./status_content.js?vue&type=script&lang=js\"\nexport * from \"./status_content.js?vue&type=script&lang=js\"\n\nimport \"./status_content.vue?vue&type=style&index=0&id=220a5018&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"still-image\"\n :class=\"{ animated: animated }\"\n :style=\"style\"\n >\n <canvas\n v-if=\"animated\"\n ref=\"canvas\"\n />\n <!-- NOTE: key is required to force to re-render img tag when src is changed -->\n <img\n ref=\"src\"\n :key=\"realSrc\"\n :alt=\"alt\"\n :title=\"alt\"\n :data-src=\"dataSrc\"\n :src=\"realSrc\"\n :referrerpolicy=\"referrerpolicy\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./still-image.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: 'gif';\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n</style>\n","const StillImage = {\n props: [\n 'src',\n 'referrerpolicy',\n 'mimetype',\n 'imageLoadError',\n 'imageLoadHandler',\n 'alt',\n 'height',\n 'width',\n 'dataSrc'\n ],\n data () {\n return {\n // for lazy loading, see loadLazy()\n realSrc: this.src,\n stopGifs: this.$store.getters.mergedConfig.stopGifs\n }\n },\n computed: {\n animated () {\n if (!this.realSrc) {\n return false\n }\n\n return this.stopGifs && (this.mimetype === 'image/gif' || this.realSrc.endsWith('.gif'))\n },\n style () {\n const appendPx = (str) => /\\d$/.test(str) ? str + 'px' : str\n return {\n height: this.height ? appendPx(this.height) : null,\n width: this.width ? appendPx(this.width) : null\n }\n }\n },\n methods: {\n loadLazy () {\n if (this.dataSrc) {\n this.realSrc = this.dataSrc\n }\n },\n onLoad () {\n if (!this.realSrc) {\n return\n }\n const image = this.$refs.src\n if (!image) return\n this.imageLoadHandler && this.imageLoadHandler(image)\n const canvas = this.$refs.canvas\n if (!canvas) return\n const width = image.naturalWidth\n const height = image.naturalHeight\n canvas.width = width\n canvas.height = height\n canvas.getContext('2d').drawImage(image, 0, 0, width, height)\n },\n onError () {\n this.imageLoadError && this.imageLoadError()\n }\n },\n watch: {\n src () {\n this.realSrc = this.src\n },\n dataSrc () {\n this.$el.removeAttribute('data-loaded')\n }\n }\n}\n\nexport default StillImage\n","import { render } from \"./still-image.vue?vue&type=template&id=01bd7459\"\nimport script from \"./still-image.js?vue&type=script&lang=js\"\nexport * from \"./still-image.js?vue&type=script&lang=js\"\n\nimport \"./still-image.vue?vue&type=style&index=0&id=01bd7459&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <time\n :datetime=\"time\"\n :title=\"localeDateString\"\n >\n {{ relativeTimeString }}\n </time>\n</template>\n\n<script>\nimport * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['time', 'autoUpdate', 'longFormat', 'nowThreshold', 'templateKey'],\n data () {\n return {\n relativeTime: { key: 'time.now', num: 0 },\n interval: null\n }\n },\n computed: {\n localeDateString () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return typeof this.time === 'string'\n ? new Date(Date.parse(this.time)).toLocaleString(browserLocale)\n : this.time.toLocaleString(browserLocale)\n },\n relativeTimeString () {\n const timeString = this.$i18n.tc(this.relativeTime.key, this.relativeTime.num, [this.relativeTime.num])\n\n if (typeof this.templateKey === 'string' && this.relativeTime.key !== 'time.now') {\n return this.$i18n.t(this.templateKey, [timeString])\n }\n\n return timeString\n }\n },\n watch: {\n time (newVal, oldVal) {\n if (oldVal !== newVal) {\n clearTimeout(this.interval)\n this.refreshRelativeTimeObject()\n }\n }\n },\n created () {\n this.refreshRelativeTimeObject()\n },\n unmounted () {\n clearTimeout(this.interval)\n },\n methods: {\n refreshRelativeTimeObject () {\n const nowThreshold = typeof this.nowThreshold === 'number' ? this.nowThreshold : 1\n this.relativeTime = this.longFormat\n ? DateUtils.relativeTime(this.time, nowThreshold)\n : DateUtils.relativeTimeShort(this.time, nowThreshold)\n\n if (this.autoUpdate) {\n this.interval = setTimeout(\n this.refreshRelativeTimeObject,\n 1000 * this.autoUpdate\n )\n }\n }\n }\n}\n</script>\n","import { render } from \"./timeago.vue?vue&type=template&id=3269671b\"\nimport script from \"./timeago.vue?vue&type=script&lang=js\"\nexport * from \"./timeago.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <FAIcon\n v-if=\"user && user.screen_name_ui_contains_non_ascii\"\n icon=\"code\"\n :title=\"$t('unicode_domain_indicator.tooltip')\"\n />\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCode\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCode\n)\n\nconst UnicodeDomainIndicator = {\n props: {\n user: Object\n }\n}\n\nexport default UnicodeDomainIndicator\n</script>\n","import { render } from \"./unicode_domain_indicator.vue?vue&type=template&id=3e044e46\"\nimport script from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StillImage from '../still-image/still-image.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\n\nimport {\n faRobot\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRobot\n)\n\nconst UserAvatar = {\n props: [\n 'user',\n 'betterShadow',\n 'compact',\n 'bot'\n ],\n data () {\n return {\n showPlaceholder: false,\n defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`\n }\n },\n components: {\n StillImage\n },\n methods: {\n imgSrc (src) {\n return (!src || this.showPlaceholder) ? this.defaultAvatar : src\n },\n imageLoadError () {\n this.showPlaceholder = true\n }\n }\n}\n\nexport default UserAvatar\n","import { render } from \"./user_avatar.vue?vue&type=template&id=764c87f9\"\nimport script from \"./user_avatar.js?vue&type=script&lang=js\"\nexport * from \"./user_avatar.js?vue&type=script&lang=js\"\n\nimport \"./user_avatar.vue?vue&type=style&index=0&id=764c87f9&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n class=\"Avatar\"\n :class=\"{ '-compact': compact }\"\n >\n <StillImage\n v-if=\"user\"\n class=\"avatar\"\n :alt=\"user.screen_name_ui\"\n :title=\"user.screen_name_ui\"\n :src=\"imgSrc(user.profile_image_url_original)\"\n :image-load-error=\"imageLoadError\"\n :class=\"{ '-compact': compact, '-better-shadow': betterShadow }\"\n />\n <div\n v-else\n class=\"avatar -placeholder\"\n :class=\"{ '-compact': compact }\"\n />\n <FAIcon\n v-if=\"bot\"\n icon=\"robot\"\n class=\"bot-indicator\"\n />\n </span>\n</template>\n\n<script src=\"./user_avatar.js\"></script>\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgba(127, 127, 127, 0.5);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n\n}\n</style>\n","<template>\n <div\n class=\"user-card\"\n :class=\"classes\"\n >\n <div\n :class=\"{ 'hide-bio': hideBio }\"\n :style=\"style\"\n class=\"background-image\"\n />\n <div :class=\"onClose ? '' : panel-heading -flexible-height\">\n <div class=\"user-info\">\n <div class=\"container\">\n <a\n v-if=\"avatarAction === 'zoom'\"\n class=\"user-info-avatar -link\"\n @click=\"zoomAvatar\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n <div class=\"user-info-avatar -link -overlay\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search-plus\"\n />\n </div>\n </a>\n <UserAvatar\n v-else-if=\"typeof avatarAction === 'function'\"\n class=\"user-info-avatar\"\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n @click=\"avatarAction\"\n />\n <router-link\n v-else\n :to=\"userProfileLink(user)\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n </router-link>\n <div class=\"user-summary\">\n <div class=\"top-line\">\n <router-link\n :to=\"userProfileLink(user)\"\n class=\"user-name\"\n >\n <RichContent\n :title=\"user.name\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </router-link>\n <button\n v-if=\"!isOtherUser && user.is_local\"\n class=\"button-unstyled edit-profile-button\"\n @click.stop=\"openProfileTab\"\n >\n <FAIcon\n fixed-width\n class=\"icon\"\n icon=\"edit\"\n :title=\"$t('user_card.edit_profile')\"\n />\n </button>\n <a\n v-if=\"isOtherUser && !user.is_local\"\n :href=\"user.statusnet_profile_url\"\n target=\"_blank\"\n class=\"button-unstyled external-link-button\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"external-link-alt\"\n />\n </a>\n <AccountActions\n v-if=\"isOtherUser && loggedIn\"\n :user=\"user\"\n :relationship=\"relationship\"\n />\n <router-link\n v-if=\"onClose\"\n :to=\"userProfileLink(user)\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"expand-alt\"\n />\n </router-link>\n <button\n v-if=\"onClose\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"times\"\n />\n </button>\n </div>\n <div class=\"bottom-line\">\n <user-link\n class=\"user-screen-name\"\n :user=\"user\"\n />\n <template v-if=\"!hideBio\">\n <span\n v-if=\"user.deactivated\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.deactivated') }}\n </span>\n <span\n v-if=\"!!visibleRole\"\n class=\"alert user-role\"\n >\n {{ $t(`general.role.${visibleRole}`) }}\n </span>\n <span\n v-if=\"user.bot\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.bot') }}\n </span>\n </template>\n <span v-if=\"user.locked\">\n <FAIcon\n class=\"lock-icon\"\n icon=\"lock\"\n size=\"sm\"\n />\n </span>\n <span\n v-if=\"!mergedConfig.hideUserStats && !hideBio\"\n class=\"dailyAvg\"\n >{{ dailyAvg }} {{ $t('user_card.per_day') }}</span>\n </div>\n </div>\n </div>\n <div class=\"user-meta\">\n <div\n v-if=\"relationship.followed_by && loggedIn && isOtherUser\"\n class=\"following\"\n >\n {{ $t('user_card.follows_you') }}\n </div>\n <div\n v-if=\"isOtherUser && (loggedIn || !switcher)\"\n class=\"highlighter\"\n >\n <!-- id's need to be unique, otherwise vue confuses which user-card checkbox belongs to -->\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColorTx'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightText\"\n type=\"text\"\n >\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColor'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightCl\"\n type=\"color\"\n >\n {{ ' ' }}\n <Select\n :id=\"'userHighlightSel'+user.id\"\n v-model=\"userHighlightType\"\n class=\"userHighlightSel\"\n >\n <option value=\"disabled\">\n {{ $t('user_card.highlight.disabled') }}\n </option>\n <option value=\"solid\">\n {{ $t('user_card.highlight.solid') }}\n </option>\n <option value=\"striped\">\n {{ $t('user_card.highlight.striped') }}\n </option>\n <option value=\"side\">\n {{ $t('user_card.highlight.side') }}\n </option>\n </Select>\n </div>\n </div>\n <div\n v-if=\"loggedIn && isOtherUser\"\n class=\"user-interactions\"\n >\n <div class=\"btn-group\">\n <FollowButton\n :relationship=\"relationship\"\n :user=\"user\"\n />\n <template v-if=\"relationship.following\">\n <ProgressButton\n v-if=\"!relationship.subscribing\"\n class=\"btn button-default\"\n :click=\"subscribeUser\"\n :title=\"$t('user_card.subscribe')\"\n >\n <FAIcon icon=\"bell\" />\n </ProgressButton>\n <ProgressButton\n v-else\n class=\"btn button-default toggled\"\n :click=\"unsubscribeUser\"\n :title=\"$t('user_card.unsubscribe')\"\n >\n <FALayers>\n <FAIcon\n icon=\"rss\"\n transform=\"left-5 shrink-6 up-3 rotate-20\"\n flip=\"horizontal\"\n />\n <FAIcon\n icon=\"rss\"\n transform=\"right-5 shrink-6 up-3 rotate-20\"\n />\n <FAIcon icon=\"bell\" />\n </FALayers>\n </ProgressButton>\n </template>\n </div>\n <div>\n <button\n v-if=\"relationship.muting\"\n class=\"btn button-default btn-block toggled\"\n :disabled=\"user.deactivated\"\n @click=\"unmuteUser\"\n >\n {{ $t('user_card.muted') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"muteUser\"\n >\n {{ $t('user_card.mute') }}\n </button>\n </div>\n <div>\n <button\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"mentionUser\"\n >\n {{ $t('user_card.mention') }}\n </button>\n </div>\n <ModerationTools\n v-if=\"showModerationMenu\"\n :user=\"user\"\n />\n </div>\n <div\n v-if=\"!loggedIn && user.is_local\"\n class=\"user-interactions\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n <UserNote\n v-if=\"loggedIn && isOtherUser && (hasNote || (hasNoteEditor && supportsNote))\"\n :user=\"user\"\n :relationship=\"relationship\"\n :editable=\"hasNoteEditor\"\n />\n </div>\n </div>\n <div\n v-if=\"!hideBio\"\n class=\"panel-body\"\n >\n <div\n v-if=\"!mergedConfig.hideUserStats && switcher\"\n class=\"user-counts\"\n >\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('statuses')\"\n >\n <h5>{{ $t('user_card.statuses') }}</h5>\n <span>{{ user.statuses_count }} <br></span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('friends')\"\n >\n <h5>{{ $t('user_card.followees') }}</h5>\n <span>{{ hideFollowsCount ? $t('user_card.hidden') : user.friends_count }}</span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('followers')\"\n >\n <h5>{{ $t('user_card.followers') }}</h5>\n <span>{{ hideFollowersCount ? $t('user_card.hidden') : user.followers_count }}</span>\n </div>\n </div>\n <RichContent\n v-if=\"!hideBio\"\n class=\"user-card-bio\"\n :html=\"user.description_html\"\n :emoji=\"user.emoji\"\n :handle-links=\"true\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./user_card.js\"></script>\n\n<style lang=\"scss\" src=\"./user_card.scss\" />\n","<template>\n <div>\n <Popover\n trigger=\"click\"\n class=\"moderation-tools-popover\"\n placement=\"bottom\"\n :offset=\"{ y: 5 }\"\n @show=\"setToggled(true)\"\n @close=\"setToggled(false)\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <span v-if=\"canGrantRole\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;admin&quot;)\"\n >\n {{ $t(!!user.rights.admin ? 'user_card.admin_menu.revoke_admin' : 'user_card.admin_menu.grant_admin') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;moderator&quot;)\"\n >\n {{ $t(!!user.rights.moderator ? 'user_card.admin_menu.revoke_moderator' : 'user_card.admin_menu.grant_moderator') }}\n </button>\n <div\n v-if=\"canChangeActivationState || canDeleteAccount\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </span>\n <button\n v-if=\"canChangeActivationState\"\n class=\"button-default dropdown-item\"\n @click=\"toggleActivationStatus()\"\n >\n {{ $t(!!user.deactivated ? 'user_card.admin_menu.activate_account' : 'user_card.admin_menu.deactivate_account') }}\n </button>\n <button\n v-if=\"canDeleteAccount\"\n class=\"button-default dropdown-item\"\n @click=\"deleteUserDialog(true)\"\n >\n {{ $t('user_card.admin_menu.delete_account') }}\n </button>\n <div\n v-if=\"canUseTagPolicy\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <span v-if=\"canUseTagPolicy\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_NSFW)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_NSFW) }\"\n />\n {{ $t('user_card.admin_menu.force_nsfw') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.STRIP_MEDIA)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.STRIP_MEDIA) }\"\n />\n {{ $t('user_card.admin_menu.strip_media') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_UNLISTED)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_UNLISTED) }\"\n />\n {{ $t('user_card.admin_menu.force_unlisted') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.SANDBOX)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.SANDBOX) }\"\n />\n {{ $t('user_card.admin_menu.sandbox') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_REMOTE_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_REMOTE_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_remote_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_ANY_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_ANY_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_any_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.QUARANTINE)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.QUARANTINE) }\"\n />\n {{ $t('user_card.admin_menu.quarantine') }}\n </button>\n </span>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"btn button-default btn-block moderation-tools-button\"\n :class=\"{ toggled }\"\n >\n {{ $t('user_card.admin_menu.moderation') }}\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n <teleport to=\"#modal\">\n <DialogModal\n v-if=\"showDeleteUserDialog\"\n :on-cancel=\"deleteUserDialog.bind(this, false)\"\n >\n <template #header>\n {{ $t('user_card.admin_menu.delete_user') }}\n </template>\n <p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p>\n <template #footer>\n <button\n class=\"btn button-default\"\n @click=\"deleteUserDialog(false)\"\n >\n {{ $t('general.cancel') }}\n </button>\n <button\n class=\"btn button-default danger\"\n @click=\"deleteUser()\"\n >\n {{ $t('user_card.admin_menu.delete_user') }}\n </button>\n </template>\n </DialogModal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./moderation_tools.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.moderation-tools-popover {\n height: 100%;\n .trigger {\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,i {\n font-size: 0.8em;\n }\n}\n</style>\n","<template>\n <span\n :class=\"{ 'dark-overlay': darkOverlay }\"\n @click.self.stop=\"onCancel()\"\n >\n <div\n class=\"dialog-modal panel panel-default\"\n @click.stop=\"\"\n >\n <div class=\"panel-heading dialog-modal-heading\">\n <div class=\"title\">\n <slot name=\"header\" />\n </div>\n </div>\n <div class=\"dialog-modal-content\">\n <slot name=\"default\" />\n </div>\n <div class=\"dialog-modal-footer user-interactions panel-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </span>\n</template>\n\n<script src=\"./dialog_modal.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgba(27,31,35,.5);\n z-index: 99;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 999;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: .5em .5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: .5rem;\n }\n }\n}\n\n</style>\n","const DialogModal = {\n props: {\n darkOverlay: {\n default: true,\n type: Boolean\n },\n onCancel: {\n default: () => {},\n type: Function\n }\n }\n}\n\nexport default DialogModal\n","import { render } from \"./dialog_modal.vue?vue&type=template&id=202a26c4\"\nimport script from \"./dialog_modal.js?vue&type=script&lang=js\"\nexport * from \"./dialog_modal.js?vue&type=script&lang=js\"\n\nimport \"./dialog_modal.vue?vue&type=style&index=0&id=202a26c4&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronDown } from '@fortawesome/free-solid-svg-icons'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronDown)\n\nconst FORCE_NSFW = 'mrf_tag:media-force-nsfw'\nconst STRIP_MEDIA = 'mrf_tag:media-strip'\nconst FORCE_UNLISTED = 'mrf_tag:force-unlisted'\nconst DISABLE_REMOTE_SUBSCRIPTION = 'mrf_tag:disable-remote-subscription'\nconst DISABLE_ANY_SUBSCRIPTION = 'mrf_tag:disable-any-subscription'\nconst SANDBOX = 'mrf_tag:sandbox'\nconst QUARANTINE = 'mrf_tag:quarantine'\n\nconst ModerationTools = {\n props: [\n 'user'\n ],\n data () {\n return {\n tags: {\n FORCE_NSFW,\n STRIP_MEDIA,\n FORCE_UNLISTED,\n DISABLE_REMOTE_SUBSCRIPTION,\n DISABLE_ANY_SUBSCRIPTION,\n SANDBOX,\n QUARANTINE\n },\n showDeleteUserDialog: false,\n toggled: false\n }\n },\n components: {\n DialogModal,\n Popover\n },\n computed: {\n tagsSet () {\n return new Set(this.user.tags)\n },\n canGrantRole () {\n return this.user.is_local && !this.user.deactivated && this.$store.state.users.currentUser.role === 'admin'\n },\n canChangeActivationState () {\n return this.privileged('users_manage_activation_state')\n },\n canDeleteAccount () {\n return this.privileged('users_delete')\n },\n canUseTagPolicy () {\n return this.$store.state.instance.tagPolicyAvailable && this.privileged('users_manage_tags')\n }\n },\n methods: {\n hasTag (tagName) {\n return this.tagsSet.has(tagName)\n },\n privileged (privilege) {\n return this.$store.state.users.currentUser.privileges.includes(privilege)\n },\n toggleTag (tag) {\n const store = this.$store\n if (this.tagsSet.has(tag)) {\n store.state.api.backendInteractor.untagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('untagUser', { user: this.user, tag })\n })\n } else {\n store.state.api.backendInteractor.tagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('tagUser', { user: this.user, tag })\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default ModerationTools\n","import { render } from \"./moderation_tools.vue?vue&type=template&id=449b6458\"\nimport script from \"./moderation_tools.js?vue&type=script&lang=js\"\nexport * from \"./moderation_tools.js?vue&type=script&lang=js\"\n\nimport \"./moderation_tools.vue?vue&type=style&index=0&id=449b6458&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"AccountActions\">\n <Popover\n trigger=\"click\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <template v-if=\"relationship.following\">\n <button\n v-if=\"relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"hideRepeats\"\n >\n {{ $t('user_card.hide_repeats') }}\n </button>\n <button\n v-if=\"!relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"showRepeats\"\n >\n {{ $t('user_card.show_repeats') }}\n </button>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </template>\n <UserListMenu :user=\"user\" />\n <button\n v-if=\"relationship.followed_by\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"removeUserFromFollowers\"\n >\n {{ $t('user_card.remove_follower') }}\n </button>\n <button\n v-if=\"relationship.blocking\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"unblockUser\"\n >\n {{ $t('user_card.unblock') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"blockUser\"\n >\n {{ $t('user_card.block') }}\n </button>\n <button\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"reportUser\"\n >\n {{ $t('user_card.report') }}\n </button>\n <button\n v-if=\"pleromaChatMessagesAvailable\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"openChat\"\n >\n {{ $t('user_card.message') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"button-unstyled ellipsis-button\">\n <FAIcon\n class=\"icon\"\n icon=\"ellipsis-v\"\n />\n </button>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./account_actions.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","<template>\n <div class=\"UserListMenu\">\n <Popover\n trigger=\"hover\"\n placement=\"left\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n v-for=\"list in lists\"\n :key=\"list.id\"\n class=\"button-default dropdown-item\"\n @click=\"toggleList(list.id)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': list.inList }\"\n />\n {{ list.title }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"btn button-default dropdown-item -has-submenu\">\n {{ $t('lists.manage_lists') }}\n <FAIcon\n class=\"chevron-icon\"\n size=\"lg\"\n icon=\"chevron-right\"\n />\n </button>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./user_list_menu.js\"></script>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons'\nimport { mapState } from 'vuex'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronRight)\n\nconst UserListMenu = {\n props: [\n 'user'\n ],\n data () {\n return {}\n },\n components: {\n DialogModal,\n Popover\n },\n created () {\n this.$store.dispatch('fetchUserInLists', this.user.id)\n },\n computed: {\n ...mapState({\n allLists: state => state.lists.allLists\n }),\n inListsSet () {\n return new Set(this.user.inLists.map(x => x.id))\n },\n lists () {\n if (!this.user.inLists) return []\n return this.allLists.map(list => ({\n ...list,\n inList: this.inListsSet.has(list.id)\n }))\n }\n },\n methods: {\n toggleList (listId) {\n if (this.inListsSet.has(listId)) {\n this.$store.dispatch('removeListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\n })\n } else {\n this.$store.dispatch('addListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default UserListMenu\n","import { render } from \"./user_list_menu.vue?vue&type=template&id=aeea2640\"\nimport script from \"./user_list_menu.js?vue&type=script&lang=js\"\nexport * from \"./user_list_menu.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport Popover from '../popover/popover.vue'\nimport UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisV\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisV\n)\n\nconst AccountActions = {\n props: [\n 'user', 'relationship'\n ],\n data () {\n return { }\n },\n components: {\n ProgressButton,\n Popover,\n UserListMenu\n },\n methods: {\n showRepeats () {\n this.$store.dispatch('showReblogs', this.user.id)\n },\n hideRepeats () {\n this.$store.dispatch('hideReblogs', this.user.id)\n },\n blockUser () {\n this.$store.dispatch('blockUser', this.user.id)\n },\n unblockUser () {\n this.$store.dispatch('unblockUser', this.user.id)\n },\n removeUserFromFollowers () {\n this.$store.dispatch('removeUserFromFollowers', this.user.id)\n },\n reportUser () {\n this.$store.dispatch('openUserReportingModal', { userId: this.user.id })\n },\n openChat () {\n this.$router.push({\n name: 'chat',\n params: { username: this.$store.state.users.currentUser.screen_name, recipient_id: this.user.id }\n })\n }\n },\n computed: {\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable\n })\n }\n}\n\nexport default AccountActions\n","import { render } from \"./account_actions.vue?vue&type=template&id=09217280\"\nimport script from \"./account_actions.js?vue&type=script&lang=js\"\nexport * from \"./account_actions.js?vue&type=script&lang=js\"\n\nimport \"./account_actions.vue?vue&type=style&index=0&id=09217280&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"user-note\"\n >\n <div class=\"heading\">\n <span>{{ $t('user_card.note') }}</span>\n <div class=\"buttons\">\n <button\n v-show=\"!editing && editable\"\n class=\"button-default btn\"\n @click=\"startEditing\"\n >\n {{ $t('user_card.edit_note') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"finalizeEditing\"\n >\n {{ $t('user_card.edit_note_apply') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"cancelEditing\"\n >\n {{ $t('user_card.edit_note_cancel') }}\n </button>\n </div>\n </div>\n <textarea\n v-show=\"editing\"\n v-model=\"localNote\"\n class=\"note-text\"\n />\n <span\n v-show=\"!editing\"\n class=\"note-text\"\n :class=\"{ '-blank': !relationship.note }\"\n >\n {{ relationship.note || $t('user_card.note_blank') }}\n </span>\n </div>\n</template>\n\n<script src=\"./user_note.js\"></script>\n\n<style lang=\"scss\">\n@import '../../variables';\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n</style>\n","const UserNote = {\n props: {\n user: Object,\n relationship: Object,\n editable: Boolean\n },\n data () {\n return {\n localNote: '',\n editing: false,\n frozen: false\n }\n },\n computed: {\n shouldShow () {\n return this.relationship.note || this.editing\n }\n },\n methods: {\n startEditing () {\n this.localNote = this.relationship.note\n this.editing = true\n },\n cancelEditing () {\n this.editing = false\n },\n finalizeEditing () {\n this.frozen = true\n\n this.$store.dispatch('editUserNote', {\n id: this.user.id,\n comment: this.localNote\n })\n .then(() => {\n this.frozen = false\n this.editing = false\n })\n .catch(() => {\n this.frozen = false\n })\n }\n }\n}\n\nexport default UserNote\n","import { render } from \"./user_note.vue?vue&type=template&id=54943d0a\"\nimport script from \"./user_note.js?vue&type=script&lang=js\"\nexport * from \"./user_note.js?vue&type=script&lang=js\"\n\nimport \"./user_note.vue?vue&type=style&index=0&id=54943d0a&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\nimport ModerationTools from '../moderation_tools/moderation_tools.vue'\nimport AccountActions from '../account_actions/account_actions.vue'\nimport UserNote from '../user_note/user_note.vue'\nimport Select from '../select/select.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBell,\n faRss,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRss,\n faBell,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n)\n\nexport default {\n props: [\n 'userId',\n 'switcher',\n 'selected',\n 'hideBio',\n 'rounded',\n 'bordered',\n 'avatarAction', // default - open profile, 'zoom' - zoom, function - call function\n 'onClose',\n 'hasNoteEditor'\n ],\n data () {\n return {\n followRequestInProgress: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter\n }\n },\n created () {\n this.$store.dispatch('fetchUserRelationship', this.user.id)\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n classes () {\n return [{\n '-rounded-t': this.rounded === 'top', // set border-top-left-radius and border-top-right-radius\n '-rounded': this.rounded === true, // set border-radius for all sides\n '-bordered': this.bordered === true, // set border for all sides\n '-popover': !!this.onClose // set popover rounding\n }]\n },\n style () {\n return {\n backgroundImage: [\n 'linear-gradient(to bottom, var(--profileTint), var(--profileTint))',\n `url(${this.user.cover_photo})`\n ].join(', ')\n }\n },\n isOtherUser () {\n return this.user.id !== this.$store.state.users.currentUser.id\n },\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n dailyAvg () {\n const days = Math.ceil((new Date() - new Date(this.user.created_at)) / (60 * 60 * 24 * 1000))\n return Math.round(this.user.statuses_count / days)\n },\n userHighlightType: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return (data && data.type) || 'disabled'\n },\n set (type) {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n if (type !== 'disabled') {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: (data && data.color) || '#FFFFFF', type })\n } else {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: undefined })\n }\n },\n ...mapGetters(['mergedConfig'])\n },\n userHighlightColor: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return data && data.color\n },\n set (color) {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color })\n }\n },\n visibleRole () {\n const rights = this.user.rights\n if (!rights) { return }\n const validRole = rights.admin || rights.moderator\n const roleTitle = rights.admin ? 'admin' : 'moderator'\n return validRole && roleTitle\n },\n hideFollowsCount () {\n return this.isOtherUser && this.user.hide_follows_count\n },\n hideFollowersCount () {\n return this.isOtherUser && this.user.hide_followers_count\n },\n showModerationMenu () {\n const privileges = this.loggedIn.privileges\n return this.loggedIn.role === 'admin' || privileges.includes('users_manage_activation_state') || privileges.includes('users_delete') || privileges.includes('users_manage_tags')\n },\n hasNote () {\n return this.relationship.note\n },\n supportsNote () {\n return 'note' in this.relationship\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n UserAvatar,\n RemoteFollow,\n ModerationTools,\n AccountActions,\n ProgressButton,\n FollowButton,\n Select,\n RichContent,\n UserLink,\n UserNote\n },\n methods: {\n muteUser () {\n this.$store.dispatch('muteUser', this.user.id)\n },\n unmuteUser () {\n this.$store.dispatch('unmuteUser', this.user.id)\n },\n subscribeUser () {\n return this.$store.dispatch('subscribeUser', this.user.id)\n },\n unsubscribeUser () {\n return this.$store.dispatch('unsubscribeUser', this.user.id)\n },\n setProfileView (v) {\n if (this.switcher) {\n const store = this.$store\n store.commit('setProfileView', { v })\n }\n },\n linkClicked ({ target }) {\n if (target.tagName === 'SPAN') {\n target = target.parentNode\n }\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n zoomAvatar () {\n const attachment = {\n url: this.user.profile_image_url_original,\n mimetype: 'image'\n }\n this.$store.dispatch('setMedia', [attachment])\n this.$store.dispatch('setCurrentMedia', attachment)\n },\n mentionUser () {\n this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })\n },\n onAvatarClickHandler (e) {\n if (this.onAvatarClick) {\n e.preventDefault()\n this.onAvatarClick()\n }\n }\n }\n}\n","import { render } from \"./user_card.vue?vue&type=template&id=84f02f76\"\nimport script from \"./user_card.js?vue&type=script&lang=js\"\nexport * from \"./user_card.js?vue&type=script&lang=js\"\n\nimport \"./user_card.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <router-link\n :title=\"user.screen_name_ui\"\n :to=\"userProfileLink(user)\"\n >\n {{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator\n :user=\"user\"\n />\n </router-link>\n</template>\n\n<script>\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst UserLink = {\n props: {\n user: Object,\n at: {\n type: Boolean,\n default: true\n }\n },\n components: {\n UnicodeDomainIndicator\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n }\n }\n}\n\nexport default UserLink\n</script>\n","import { render } from \"./user_link.vue?vue&type=template&id=2cae9070\"\nimport script from \"./user_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserCard from '../user_card/user_card.vue'\nimport { defineAsyncComponent } from 'vue'\n\nconst UserPopover = {\n name: 'UserPopover',\n props: [\n 'userId', 'overlayCenters', 'disabled', 'overlayCentersSelector'\n ],\n components: {\n UserCard,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n computed: {\n userPopoverAvatarAction () {\n return this.$store.getters.mergedConfig.userPopoverAvatarAction\n },\n userPopoverOverlay () {\n return this.$store.getters.mergedConfig.userPopoverOverlay\n }\n }\n}\n\nexport default UserPopover\n","import { render } from \"./user_popover.vue?vue&type=template&id=04d2fb76\"\nimport script from \"./user_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_popover.vue?vue&type=style&index=0&id=04d2fb76&lang=scss\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n popover-class=\"popover-default user-popover\"\n :overlay-centers-selector=\"overlayCentersSelector || '.user-info .Avatar'\"\n :overlay-centers=\"overlayCenters && userPopoverOverlay\"\n :disabled=\"disabled\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content=\"{close}\">\n <UserCard\n class=\"user-popover\"\n :user-id=\"userId\"\n :hide-bio=\"true\"\n :avatar-action=\"userPopoverAvatarAction == 'close' ? close : userPopoverAvatarAction\"\n :on-close=\"close\"\n />\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_popover.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n/* popover styles load on-demand, so we need to override */\n.user-popover.popover {\n}\n\n</style>\n","\nconst VideoAttachment = {\n props: ['attachment', 'controls'],\n data () {\n return {\n blocksSuspend: false,\n // Start from true because removing \"loop\" property seems buggy in Vue\n hasAudio: true\n }\n },\n computed: {\n loopVideo () {\n if (this.$store.getters.mergedConfig.loopVideoSilentOnly) {\n return !this.hasAudio\n }\n return this.$store.getters.mergedConfig.loopVideo\n }\n },\n methods: {\n onPlaying (e) {\n this.setHasAudio(e)\n if (this.loopVideo) {\n this.$emit('play', { looping: true })\n return\n }\n this.$emit('play')\n },\n onPaused (e) {\n this.$emit('pause')\n },\n setHasAudio (e) {\n const target = e.srcElement || e.target\n // If hasAudio is false, we've already marked this video to not have audio,\n // a video can't gain audio out of nowhere so don't bother checking again.\n if (!this.hasAudio) return\n if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n // non-zero if video has audio track\n if (target.webkitAudioDecodedByteCount > 0) return\n }\n if (typeof target.mozHasAudio !== 'undefined') {\n // true if video has audio track\n if (target.mozHasAudio) return\n }\n if (typeof target.audioTracks !== 'undefined') {\n if (target.audioTracks.length > 0) return\n }\n this.hasAudio = false\n }\n }\n}\n\nexport default VideoAttachment\n","import { render } from \"./video_attachment.vue?vue&type=template&id=dda2841a\"\nimport script from \"./video_attachment.js?vue&type=script&lang=js\"\nexport * from \"./video_attachment.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/tank/sources/git/git.pleroma.social/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <video\n class=\"video\"\n preload=\"metadata\"\n :src=\"attachment.url\"\n :loop=\"loopVideo\"\n :controls=\"controls\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n playsinline\n @playing=\"onPlaying\"\n @pause=\"onPaused\"\n />\n</template>\n\n<script src=\"./video_attachment.js\"></script>\n","var map = {\n\t\"./ar.json\": [\n\t\t36224,\n\t\t7808\n\t],\n\t\"./ca.json\": [\n\t\t49394,\n\t\t6234\n\t],\n\t\"./cs.json\": [\n\t\t87436,\n\t\t7433\n\t],\n\t\"./de.json\": [\n\t\t25195,\n\t\t9459\n\t],\n\t\"./en.json\": [\n\t\t88797\n\t],\n\t\"./eo.json\": [\n\t\t97898,\n\t\t4646\n\t],\n\t\"./es.json\": [\n\t\t98559,\n\t\t3968\n\t],\n\t\"./et.json\": [\n\t\t13230,\n\t\t4451\n\t],\n\t\"./eu.json\": [\n\t\t84826,\n\t\t4542\n\t],\n\t\"./fa.json\": [\n\t\t52006,\n\t\t2953\n\t],\n\t\"./fi.json\": [\n\t\t70823,\n\t\t9738\n\t],\n\t\"./fr.json\": [\n\t\t61341,\n\t\t3746\n\t],\n\t\"./ga.json\": [\n\t\t41647,\n\t\t830\n\t],\n\t\"./he.json\": [\n\t\t92215,\n\t\t379\n\t],\n\t\"./hu.json\": [\n\t\t95028,\n\t\t5494\n\t],\n\t\"./id.json\": [\n\t\t62263,\n\t\t2513\n\t],\n\t\"./it.json\": [\n\t\t2533,\n\t\t1159\n\t],\n\t\"./ja_easy.json\": [\n\t\t8439,\n\t\t8714\n\t],\n\t\"./ja_pedantic.json\": [\n\t\t22838,\n\t\t325\n\t],\n\t\"./ko.json\": [\n\t\t10707,\n\t\t9670\n\t],\n\t\"./nb.json\": [\n\t\t72358,\n\t\t7845\n\t],\n\t\"./nl.json\": [\n\t\t49922,\n\t\t6256\n\t],\n\t\"./oc.json\": [\n\t\t47297,\n\t\t617\n\t],\n\t\"./pl.json\": [\n\t\t82098,\n\t\t5571\n\t],\n\t\"./pt.json\": [\n\t\t94465,\n\t\t4047\n\t],\n\t\"./ro.json\": [\n\t\t64367,\n\t\t6342\n\t],\n\t\"./ru.json\": [\n\t\t73289,\n\t\t5964\n\t],\n\t\"./sk.json\": [\n\t\t31478,\n\t\t1547\n\t],\n\t\"./te.json\": [\n\t\t32781,\n\t\t2044\n\t],\n\t\"./uk.json\": [\n\t\t8411,\n\t\t5253\n\t],\n\t\"./vi.json\": [\n\t\t6294,\n\t\t4975\n\t],\n\t\"./zh.json\": [\n\t\t4425,\n\t\t5929\n\t],\n\t\"./zh_Hant.json\": [\n\t\t37644,\n\t\t6544\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 27650;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"50\":\"emoji-annotations/en_GB-json\",\"227\":\"emoji-annotations/ha-json\",\"278\":\"emoji-annotations/kn-json\",\"313\":\"emoji-annotations/tg-json\",\"325\":\"i18n/ja_pedantic-json\",\"346\":\"emoji-annotations/rw-json\",\"379\":\"i18n/he-json\",\"420\":\"emoji-annotations/fi-json\",\"457\":\"emoji-annotations/zh-json\",\"577\":\"emoji-annotations/en_001-json\",\"617\":\"i18n/oc-json\",\"625\":\"emoji-annotations/so-json\",\"678\":\"emoji-annotations/ps-json\",\"786\":\"emoji-annotations/xh-json\",\"830\":\"i18n/ga-json\",\"1012\":\"emoji-annotations/or-json\",\"1044\":\"emoji-annotations/zh_Hant_HK-json\",\"1056\":\"emoji-annotations/uz-json\",\"1095\":\"emoji-annotations/pl-json\",\"1159\":\"i18n/it-json\",\"1162\":\"emoji-annotations/ccp-json\",\"1236\":\"emoji-annotations/fil-json\",\"1290\":\"emoji-annotations/ja-json\",\"1404\":\"emoji-annotations/km-json\",\"1452\":\"emoji-annotations/yue-json\",\"1546\":\"emoji-annotations/pt_PT-json\",\"1547\":\"i18n/sk-json\",\"1553\":\"emoji-annotations/sl-json\",\"1584\":\"emoji-annotations/to-json\",\"1596\":\"emoji-annotations/da-json\",\"1613\":\"emoji-annotations/mai-json\",\"1780\":\"emoji-annotations/tk-json\",\"1790\":\"emoji-annotations/dsb-json\",\"1821\":\"emoji-annotations/fr_CA-json\",\"1911\":\"emoji-annotations/mr-json\",\"1959\":\"emoji-annotations/su-json\",\"2044\":\"i18n/te-json\",\"2223\":\"emoji-annotations/fr-json\",\"2243\":\"emoji-annotations/sa-json\",\"2342\":\"emoji-annotations/az-json\",\"2350\":\"emoji-annotations/sk-json\",\"2397\":\"emoji-annotations/kl-json\",\"2479\":\"emoji-annotations/jv-json\",\"2513\":\"i18n/id-json\",\"2569\":\"emoji-annotations/tt-json\",\"2599\":\"emoji-annotations/kok-json\",\"2656\":\"emoji-annotations/ckb-json\",\"2685\":\"emoji-annotations/ml-json\",\"2699\":\"emoji-annotations/es_MX-json\",\"2767\":\"emoji-annotations/zh_Hant-json\",\"2861\":\"emoji-annotations/hr-json\",\"2873\":\"emoji-annotations/kk-json\",\"2874\":\"emoji-annotations/sc-json\",\"2883\":\"emoji-annotations/ku-json\",\"2953\":\"i18n/fa-json\",\"2966\":\"emoji-annotations/ko-json\",\"2992\":\"emoji-annotations/eu-json\",\"3056\":\"emoji-annotations/hi_Latn-json\",\"3241\":\"emoji-annotations/sv-json\",\"3276\":\"emoji-annotations/et-json\",\"3313\":\"emoji-annotations/es_US-json\",\"3377\":\"emoji-annotations/as-json\",\"3568\":\"emoji-annotations/ti-json\",\"3687\":\"emoji\",\"3746\":\"i18n/fr-json\",\"3887\":\"emoji-annotations/sr-json\",\"3951\":\"emoji-annotations/th-json\",\"3968\":\"i18n/es-json\",\"3974\":\"emoji-annotations/bg-json\",\"3994\":\"emoji-annotations/sw_KE-json\",\"4047\":\"i18n/pt-json\",\"4209\":\"emoji-annotations/doi-json\",\"4354\":\"emoji-annotations/si-json\",\"4368\":\"emoji-annotations/sq-json\",\"4424\":\"emoji-annotations/yue_Hans-json\",\"4451\":\"i18n/et-json\",\"4542\":\"i18n/eu-json\",\"4571\":\"emoji-annotations/ga-json\",\"4646\":\"i18n/eo-json\",\"4691\":\"emoji-annotations/ca-json\",\"4710\":\"emoji-annotations/cs-json\",\"4718\":\"emoji-annotations/mn-json\",\"4770\":\"emoji-annotations/lb-json\",\"4785\":\"emoji-annotations/ky-json\",\"4786\":\"emoji-annotations/te-json\",\"4879\":\"emoji-annotations/en_CA-json\",\"4902\":\"emoji-annotations/hu-json\",\"4975\":\"i18n/vi-json\",\"5041\":\"emoji-annotations/pt-json\",\"5104\":\"emoji-annotations/pcm-json\",\"5115\":\"emoji-annotations/sr_Latn_BA-json\",\"5119\":\"emoji-annotations/am-json\",\"5224\":\"emoji-annotations/vi-json\",\"5253\":\"i18n/uk-json\",\"5304\":\"emoji-annotations/ha_NE-json\",\"5401\":\"emoji-annotations/mni-json\",\"5494\":\"i18n/hu-json\",\"5521\":\"emoji-annotations/fa-json\",\"5548\":\"emoji-annotations/he-json\",\"5571\":\"i18n/pl-json\",\"5728\":\"emoji-annotations/en-json\",\"5887\":\"emoji-annotations/rm-json\",\"5929\":\"i18n/zh-json\",\"5964\":\"i18n/ru-json\",\"5968\":\"emoji-annotations/hi-json\",\"6060\":\"emoji-annotations/sr_Cyrl_BA-json\",\"6068\":\"emoji-annotations/ka-json\",\"6116\":\"emoji-annotations/gd-json\",\"6126\":\"emoji-annotations/gl-json\",\"6148\":\"emoji-annotations/br-json\",\"6226\":\"emoji-annotations/de-json\",\"6234\":\"i18n/ca-json\",\"6256\":\"i18n/nl-json\",\"6272\":\"emoji-annotations/cy-json\",\"6342\":\"i18n/ro-json\",\"6344\":\"emoji-annotations/hy-json\",\"6355\":\"emoji-annotations/af-json\",\"6544\":\"i18n/zh_Hant-json\",\"6701\":\"emoji-annotations/mi-json\",\"6773\":\"emoji-annotations/nl-json\",\"6790\":\"emoji-annotations/my-json\",\"6797\":\"emoji-annotations/ur-json\",\"6826\":\"emoji-annotations/sd-json\",\"6831\":\"emoji-annotations/es-json\",\"6869\":\"emoji-annotations/chr-json\",\"6936\":\"emoji-annotations/ia-json\",\"6946\":\"emoji-annotations/pa-json\",\"7164\":\"emoji-annotations/de_CH-json\",\"7169\":\"emoji-annotations/lt-json\",\"7261\":\"emoji-annotations/gu-json\",\"7300\":\"emoji-annotations/is-json\",\"7303\":\"emoji-annotations/wo-json\",\"7304\":\"emoji-annotations/be-json\",\"7360\":\"emoji-annotations/ar_SA-json\",\"7433\":\"i18n/cs-json\",\"7464\":\"emoji-annotations/lo-json\",\"7569\":\"emoji-annotations/ast-json\",\"7585\":\"emoji-annotations/sw-json\",\"7808\":\"i18n/ar-json\",\"7845\":\"i18n/nb-json\",\"7855\":\"emoji-annotations/sat-json\",\"7879\":\"emoji-annotations/el-json\",\"7897\":\"emoji-annotations/ta-json\",\"8015\":\"emoji-annotations/hsb-json\",\"8031\":\"emoji-annotations/qu-json\",\"8134\":\"emoji-annotations/bs-json\",\"8395\":\"emoji-annotations/ru-json\",\"8681\":\"emoji-annotations/sr_Latn-json\",\"8714\":\"i18n/ja_easy-json\",\"8732\":\"emoji-annotations/yo-json\",\"8873\":\"emoji-annotations/es_419-json\",\"8898\":\"emoji-annotations/lv-json\",\"8970\":\"emoji-annotations/it-json\",\"8988\":\"emoji-annotations/en_IN-json\",\"8995\":\"emoji-annotations/fo-json\",\"9064\":\"emoji-annotations/bn-json\",\"9319\":\"emoji-annotations/zu-json\",\"9360\":\"emoji-annotations/en_AU-json\",\"9377\":\"emoji-annotations/ne-json\",\"9399\":\"emoji-annotations/mt-json\",\"9414\":\"emoji-annotations/nn-json\",\"9459\":\"i18n/de-json\",\"9465\":\"emoji-annotations/id-json\",\"9670\":\"i18n/ko-json\",\"9738\":\"i18n/fi-json\",\"9757\":\"emoji-annotations/ug-json\",\"9780\":\"emoji-annotations/kab-json\",\"9790\":\"emoji-annotations/ceb-json\",\"9864\":\"emoji-annotations/ro-json\",\"9871\":\"emoji-annotations/uk-json\",\"9873\":\"emoji-annotations/ar-json\",\"9895\":\"emoji-annotations/ig-json\",\"9921\":\"emoji-annotations/mk-json\",\"9924\":\"emoji-annotations/ms-json\",\"9926\":\"emoji-annotations/yo_BJ-json\",\"9978\":\"emoji-annotations/tr-json\",\"9979\":\"emoji-annotations/no-json\",\"9994\":\"emoji-annotations/pa_Arab-json\"}[chunkId] || chunkId) + \".\" + {\"50\":\"bd687f904492facc81d1\",\"227\":\"2a08912b38925c10f970\",\"278\":\"efdac8ac0cb00991ba1e\",\"313\":\"9647f559a4477d7d8e96\",\"325\":\"b52fa70f0bf89ae01cfb\",\"346\":\"031838c5374676191131\",\"379\":\"03c5d271a4034de06e6f\",\"420\":\"0f254bb4b0faaba4abcc\",\"457\":\"e42a28127d5c1aff6c85\",\"577\":\"72d8c47269350f59aa9f\",\"617\":\"4f52bf1b6e3213acc33c\",\"625\":\"f75abd16637c8924c075\",\"678\":\"a0d9eea5b81bcad11e64\",\"786\":\"21e88c05ad3113dfc7f2\",\"830\":\"3f1981817977a16f1d7e\",\"1012\":\"b007c2f6f92dcc95efac\",\"1044\":\"7eee03c705347a21c612\",\"1056\":\"ac43f4c54d4587324a20\",\"1095\":\"e9e8f1ed84dc6c169516\",\"1159\":\"99a21d5c98376af17141\",\"1162\":\"02836537ffe2b02291cb\",\"1236\":\"4fca833f178d1b889b69\",\"1264\":\"1e16af28a0b44d4d17d0\",\"1290\":\"0bd51f8c40c106355b0e\",\"1325\":\"d1e5fcff4166acac7f06\",\"1404\":\"9bc922b2e0faa64b4c53\",\"1452\":\"15102c0ddfdf19bdfb4c\",\"1546\":\"c381b13e323f91b0e6b3\",\"1547\":\"d8d0eba80f94e6f55145\",\"1553\":\"a40c5548da34fce6f1d0\",\"1584\":\"50ac37d101caaf592c94\",\"1596\":\"8d074e27df71edafc543\",\"1613\":\"302386b3358f4d34f9c8\",\"1780\":\"23a9a6229829921704ad\",\"1790\":\"7635686ffd8d62264466\",\"1821\":\"59ed6b59e2ca68707292\",\"1911\":\"cb0a87d9aabf8a52161d\",\"1959\":\"daff15251020cbecea7d\",\"2044\":\"ce6db28261b2f824064f\",\"2223\":\"da49ed0d1a6622fe1c67\",\"2243\":\"21b06234a08c7469ccb4\",\"2342\":\"9a32f2941d9c4d1f834c\",\"2350\":\"5d96bdb4da82655d0314\",\"2397\":\"87ab8661b4bdecd09faf\",\"2479\":\"1c8d5ffcff22b46b6214\",\"2513\":\"3e42564ce7a3a847ecb0\",\"2569\":\"4c089389ba9983ec8ef7\",\"2599\":\"116e4f72db3bfb846233\",\"2656\":\"13dc83db1e15aa76051a\",\"2677\":\"45ff400a54f2f4c858f2\",\"2685\":\"3f2902a84240faff1b48\",\"2699\":\"ee359d4b611fdb1aeb33\",\"2767\":\"9cbb765c181d443828a9\",\"2861\":\"fe847ade1f18a60e513c\",\"2873\":\"a20b59d47bdfe99786ad\",\"2874\":\"c84c9c47d2e104c43e4c\",\"2883\":\"2173ed87f8d7372ee209\",\"2953\":\"a19100f6a5a9431e2adb\",\"2966\":\"d175900fe48f48ce87c8\",\"2992\":\"931b429f5fcc141549a5\",\"3056\":\"3cb73c456f31261f1908\",\"3241\":\"8b0374cbca3a77519876\",\"3276\":\"c42e3f186a55ecb061cd\",\"3313\":\"280bdb036dfd651d079a\",\"3377\":\"34cf67edc1cecd195738\",\"3568\":\"5b173bd33bb960be805b\",\"3687\":\"33eab91b64f59431137d\",\"3746\":\"36ef21ccb1203d3e65ae\",\"3887\":\"e29a20e59a708df0c6a8\",\"3951\":\"34709bae223bb9d2587c\",\"3968\":\"4a302899a65e1f67d8a2\",\"3974\":\"7c69c52572a7bf87e1db\",\"3994\":\"f3563cbeac1c158563d5\",\"4047\":\"3fc5593e030268bcd291\",\"4209\":\"7841c3f3ceb4e3da0bd1\",\"4354\":\"841b356da03623c10dbf\",\"4368\":\"bcf154ed8a6138aa089c\",\"4424\":\"cc60bb10d32fab3d8207\",\"4451\":\"580b101d6bb83a8aee75\",\"4542\":\"d2eab39b0427995fc314\",\"4571\":\"cb3f9e613a8c445aea23\",\"4646\":\"8b17b5b5653ed558d931\",\"4691\":\"ce029e860b10b242c6a5\",\"4710\":\"48d8bba230dc9fe6b3dc\",\"4718\":\"764169f1168d0432640f\",\"4770\":\"499c526f3a653618ea9b\",\"4785\":\"310bda579c819eda9472\",\"4786\":\"8a69a10f62cdf626244e\",\"4879\":\"5de965778a6b8a5a4bb4\",\"4902\":\"1faf52040deda872b416\",\"4975\":\"703c1e731be6e857bbf3\",\"5041\":\"2b2512ee44291bdb2ae7\",\"5104\":\"eac3a5ad0b4b5b33289d\",\"5115\":\"72933405032b81344754\",\"5119\":\"94388548f7c18233fec3\",\"5224\":\"f6a364b2add7f8c8bc67\",\"5253\":\"c33e4c72a2dfe9a9d143\",\"5304\":\"e4855d92aaccfdd6ba57\",\"5401\":\"7db7f76ab1ce34e3683d\",\"5494\":\"0487899ca7a7a8505ed8\",\"5521\":\"819c7f263c8594ccf4fa\",\"5548\":\"a3d7631f32182b0955a2\",\"5571\":\"c963247822381b05579b\",\"5728\":\"6c3947f7c49c3952084d\",\"5887\":\"985d4934f386fd05a75c\",\"5929\":\"de02aa4e82fcb1ec557c\",\"5964\":\"b913eb7f7e9f0c642438\",\"5968\":\"04bc5f73dc2169def97e\",\"6060\":\"83c7c64b9696ae2339f2\",\"6068\":\"567e7b051d90a37003f3\",\"6116\":\"e3d0aea3725be774ad81\",\"6126\":\"ce89036f0ae72224c994\",\"6148\":\"c7175423d8965ed10bae\",\"6226\":\"e1443c01a191af1665e1\",\"6234\":\"1eb24bc001efa3c0627f\",\"6256\":\"3fb9758b10c29434b613\",\"6272\":\"e09dd13da5ad56530ead\",\"6342\":\"3fd9977ed1c1413059ae\",\"6344\":\"2d819f7faabfeba8457f\",\"6355\":\"96c988285a6a2cce6246\",\"6464\":\"2ababce187697ee8b1e9\",\"6544\":\"eedcc6a7effd11514fe4\",\"6701\":\"9efe6f146ecd8987f80a\",\"6773\":\"52f4b93b8fa5e22cb585\",\"6790\":\"8e7dd1485813d15bba7e\",\"6797\":\"983c02109444c883a18f\",\"6826\":\"8f2a6a06dc3cf185f79d\",\"6831\":\"f593b0dc2367a9d7fb30\",\"6869\":\"e7e542ab5a74167dec10\",\"6936\":\"8e8365e2bf41779e2beb\",\"6946\":\"7d60d69762a108270669\",\"7164\":\"b4a5891ea2f38d616ec0\",\"7169\":\"ced4d5e70edc60127df6\",\"7261\":\"8a899f364cf260376905\",\"7300\":\"62e220c65215b034533d\",\"7303\":\"e0d689e22cda0dd77e9a\",\"7304\":\"f92f80669873a4100c69\",\"7360\":\"4a6f4402931a867070f0\",\"7433\":\"5eedbe9f7084c349fbe8\",\"7464\":\"ecb06d61465a355b8157\",\"7569\":\"7e4da8cb7e539c19a9b9\",\"7585\":\"d5f350641b9cbcc0e126\",\"7808\":\"d09609af3224232857d6\",\"7845\":\"a54af3b1f47d576ad4aa\",\"7855\":\"71e92700b2aaca8e021c\",\"7879\":\"b36610f2ea16d56c2314\",\"7897\":\"675cc6c7607449d4a91b\",\"8015\":\"438721731b4171bc6fc3\",\"8031\":\"55f4df57e71076dbad9f\",\"8134\":\"48ef42da1c7976cf083c\",\"8395\":\"a81d0df34460837ccacc\",\"8532\":\"290194af65a2e3a4120e\",\"8681\":\"ff27d1f455bf2afb8d70\",\"8714\":\"79705c1ec254307d2224\",\"8732\":\"ea1150d6bc360dd86f2e\",\"8873\":\"d81991295392b6ed83bb\",\"8898\":\"5600c2eb6d59fa0aa2e2\",\"8970\":\"9c1758f4fd3391f7f61a\",\"8988\":\"002faa48c09121928fca\",\"8995\":\"9b060e8009b3a8be4597\",\"9064\":\"657aac057f36ad06c58d\",\"9319\":\"e0cb7cd3890583fd0f6d\",\"9360\":\"33aac9bbd887273a34b1\",\"9377\":\"a0118dca2096a101b8e8\",\"9399\":\"3ddf7dbc114adf90c500\",\"9414\":\"7293cd5d7205681cf48c\",\"9459\":\"bfa48615ac92f87ff37a\",\"9465\":\"55f83c46d753b0b69330\",\"9670\":\"4bd28b26a7390a09afc2\",\"9738\":\"d1934c18f12d80493ab1\",\"9757\":\"bf768bd32e9ff02b0a8a\",\"9780\":\"1a2de4774f4ddc2b51dd\",\"9790\":\"9db0336f168aa77ee395\",\"9864\":\"cb62f86ce78c94d1e813\",\"9871\":\"af110c8eef232638fc4d\",\"9873\":\"5527466d349f2954d49b\",\"9895\":\"f19fa5fe3582463ba73c\",\"9921\":\"a254cabb8570419cc426\",\"9924\":\"272ee4735aabc37015dd\",\"9926\":\"650318c25fe4da92bad8\",\"9978\":\"6462e8cfd5006cf5b6cf\",\"9979\":\"22bdbbc77cc3c14ada58\",\"9994\":\"5ae021308b1c5f6dd8a7\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"1264\":\"177d0bf6917b317388ae\",\"1325\":\"715a7f40cdd53f460ef4\",\"6464\":\"2fa2e5f1fa93842c62b1\",\"8532\":\"88b90ac86f3060a3144e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpleroma_fe\"] = self[\"webpackChunkpleroma_fe\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [9169], () => (__webpack_require__(78892)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","loadStylesheet","installedCssChunks","ctx","normalize","_normalize","interpolate","_interpolate","named","_named","list","_list","plural","_plural","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","data","emojiCurry","suggestEmoji","emoji","usersCurry","store","suggestUsers","input","nameKeywordLocalizer","firstChar","emojis","noPrefix","toLowerCase","substr","filter","names","concat","keywords","kw","match","length","k","score","Math","max","name","imageUrl","startsWith","displayText","sort","a","b","alphabetically","dispatch","state","suggestions","previousQuery","timeout","cancelUserSearch","debounceUserSearch","query","reject","setTimeout","userSearch","clearTimeout","includes","newSuggestions","users","user","screen_name","slice","aScore","bScore","screen_name_ui","detailText","profile_image_url_original","replacement","getTagName","tag","result","exec","getAttrs","innertag","substring","replace","RegExp","trim","attrs","Array","from","matchAll","v","fromEntries","attrKey","processTextForEmoji","text","processor","buffer","textBuffer","i","char","next","found","shortcode","push","class","props","url","required","type","String","content","default","methods","onClick","this","link","generateTagLink","$router","window","open","_createElementBlock","_hoisted_1","_createElementVNode","href","_ctx","target","innerHTML","components","MentionsLine","HashtagLink","html","attentions","handleLinks","Boolean","greentext","render","preProcessPerLine","newHtml","currentMentions","lastSpacing","lastTags","writtenMentions","invisibleMentions","writtenTags","mentionIndex","tagsIndex","encounteredTextReverse","pass1","emptyElements","Set","levels","tagBuffer","getCurrentBuffer","flushText","handleSelfClosing","handleOpen","curBuf","newLevel","handleClose","currentTag","pop","tagFull","tagName","has","convertHtmlToTree","processItem","item","index","array","what","emptyText","isArray","opener","children","closer","Tag","fullAttrs","mentionsLinePadding","linkData","getLinkData","notifying","some","statusnet_profile_url","MENTIONS_LIMIT","renderMention","undefined","pass2","reverse","processItemReverse","rel","renderHashtag","newChildren","event","$emit","textContent","stripTags","join","greentextHandle","lines","blockElements","linebreakElements","visualLineElements","values","nonEmptyElements","elem","allElements","level","flush","handleBr","unshift","shift","convertHtmlToLines","string","every","l","cleanedString","findFirstUsable","slots","findIndex","_","renderOnlyFocused","onSwitch","Function","activeTab","scrollableTabs","sideTabBar","bodyScrollLock","active","computed","activeIndex","slot","key","isActive","tabName","$slots","settingsModalVisible","settingsModalState","mapState","beforeUpdate","clickTab","preventDefault","setTab","Fragment","call","$refs","contents","scrollTop","tabs","classesTab","classesWrapper","image","disabled","label","icon","classes","fullHeight","renderSlot","specialJsonName","ja","languages","langCodeToJsonName","langCodeToCldrName","ensureFinalFallback","codes","codeList","loadLanguageFile","en","require","setLanguage","i18n","language","messages","setLocaleMessage","locale","EventTarget","EventTargetPolyfill","settingsModalLoaded","settingsModalTargetTab","settings","currentSaveStateNotice","noticeClearTimeout","notificationPermission","browserSupport","cssFilter","CSS","supports","layoutType","globalNotices","layoutHeight","lastTimeline","mutations","settingsSaved","success","error","errorData","setNotificationPermission","permission","setLayoutType","value","closeSettingsModal","togglePeekSettingsModal","openSettingsModal","setSettingsModalTargetTab","pushGlobalNotice","notice","removeGlobalNotice","n","setLayoutHeight","setLayoutWidth","layoutWidth","setLastTimeline","actions","setPageTitle","rootState","option","document","title","instance","commit","clearSettingsModalTargetTab","openSettingsModalTab","messageKey","messageArgs","newNotice","rootGetters","width","normalOrMobile","mergedConfig","thirdColumnMode","currentUser","SORTED_EMOJI_GROUP_IDS","REGIONAL_INDICATORS","start","A","codePointAt","res","end","letter","fromCodePoint","displayTextI18n","args","loadAnnotations","lang","injectAnnotations","annotations","availableLangs","reduce","acc","cur","registrationOpen","server","textlimit","themeData","vapidPublicKey","alwaysShowSubjectInput","defaultAvatar","defaultBanner","background","collapseMessageWithSubject","useAtIcon","mentionLinkDisplay","mentionLinkShowTooltip","mentionLinkShowAvatar","mentionLinkFadeDomain","mentionLinkShowYous","mentionLinkBoldenYou","hideFilteredStatuses","hideMutedPosts","hideMutedThreads","hideWordFilteredPosts","hidePostStats","hideBotIndication","hideSitename","hideUserStats","muteBotStatuses","loginMethod","logo","logoMargin","logoMask","logoLeft","disableUpdateNotification","minimalScopesMode","nsfwCensorImage","postContentType","redirectRootLogin","redirectRootNoLogin","scopeCopy","showFeaturesPanel","showInstanceSpecificPanel","sidebarRight","subjectLineBehavior","theme","virtualScrolling","sensitiveByDefault","conversationDisplay","conversationTreeAdvanced","conversationOtherRepliesButton","conversationTreeFadeAncestors","maxDepthInThread","customEmoji","customEmojiFetched","emojiFetched","unicodeEmojiAnnotations","pleromaBackend","postFormats","restrictedNicknames","safeDM","knownDomains","shoutAvailable","pleromaChatMessagesAvailable","gopherAvailable","mediaProxyAvailable","suggestionsEnabled","suggestionsWeb","instanceSpecificPanelContent","tos","backendVersion","frontendVersion","pollsAvailable","pollLimits","max_options","max_option_chars","min_expiration","max_expiration","setInstanceOption","setKnownDomains","domains","setUnicodeEmojiAnnotations","getters","instanceDefaultConfig","instanceDefaultProperties","groupedCustomEmojis","tags","packsOf","forEach","packName","packId","standardEmojiList","groupId","standardEmojiGroupList","instanceDomain","URL","hostname","remoteInteractionLink","endsWith","statusId","nickname","getStaticEmoji","slug","groups","symbols","console","warn","loadUnicodeEmojiData","langList","all","getCustomEmoji","fetch","ok","json","assign","caseInsensitiveStrCmp","la","lb","byPackThenByName","packOf","entries","image_url","setTheme","themeName","getPreset","config","customTheme","themeSource","source","themeEngineVersion","CURRENT_VERSION","applyTheme","fetchEmoji","getKnownDomains","apiService","credentials","emptyTl","userId","statuses","statusesObject","faves","visibleStatuses","visibleStatusesObject","newStatusCount","maxId","minId","minVisibleId","loading","followers","friends","flushMarker","emptyNotifications","desktopNotificationSilence","Number","POSITIVE_INFINITY","idStore","defaultState","allStatuses","allStatusesObject","conversationsObject","notifications","favorites","timelines","mentions","public","media","publicAndExternal","dms","bookmarks","mergeOrAdd","arr","obj","oldItem","attachments","splice","new","status","deleted","prepareStatus","sortById","seqA","seqB","isSeqA","isNaN","isSeqB","sortTimeline","timeline","addStatusToGlobalStorage","conversationId","statusnet_conversation_id","updateNotificationsMinMaxId","notification","addNewStatuses","showImmediately","noIdUpdate","pagination","timelineObject","minNew","maxNew","newer","older","addStatus","resultForCurrentTimeline","addToTimeline","visibility","processors","edit","retweet","retweetedStatus","retweeted_status","s","favorite","add","counter","in_reply_to_status_id","favorited","fave_num","favoriteStatus","deletion","uri","action","removeStatusFromGlobalStorage","follow","unknown","log","addNewNotifications","newNotificationSideEffects","visibleNotificationTypes","isValidNotification","isStatusNotification","report","hasOwnProperty","seen","removeStatus","showNewStatuses","oldTimeline","resetStatuses","emptyState","clearTimeline","excludeUserId","clearNotifications","setFavorited","newStatus","setFavoritedConfirm","favoritedBy","setMutedStatus","thread_muted","setRetweeted","repeated","repeat_num","setRetweetedConfirm","rebloggedBy","setBookmarked","bookmarked","setBookmarkedConfirm","setDeleted","setManyDeleted","condition","setLoading","setNsfw","nsfw","setNotificationsLoading","setNotificationsSilence","markNotificationsAsSeen","markSingleNotificationAsSeen","dismissNotification","dismissNotifications","finder","updateNotification","updater","queueFlush","queueFlushAll","addRepeats","rebloggedByUsers","find","addFavs","favoritedByUsers","addEmojiReactionsBy","emojiReactions","emoji_reactions","addOwnReaction","reactionIndex","reaction","count","accounts","newReaction","me","removeOwnReaction","r","updateStatusWithPoll","poll","setVirtualHeight","height","virtualHeight","maybeShowNotification","fetchStatus","api","backendInteractor","fetchStatusSource","fetchStatusHistory","deleteStatus","deleteStatusById","markStatusesAsDeleted","unfavorite","fetchPinnedStatuses","pinStatus","pinOwnStatus","unpinStatus","unpinOwnStatus","muteConversation","unmuteConversation","unretweet","bookmark","bookmarkStatus","unbookmark","unbookmarkStatus","single","dismissNotificationLocal","fetchFavsAndRepeats","fetchFavoritedByUsers","fetchRebloggedByUsers","reactWithEmoji","unreactWithEmoji","fetchEmojiReactionsBy","fetchEmojiReactions","fetchFavs","fetchRepeats","search","q","limit","offset","following","search2","setLists","allLists","setList","listId","allListsObject","accountIds","entry","setListAccounts","addListAccount","accountId","removeListAccount","set","deleteList","lists","createList","fetchList","getList","fetchListAccounts","getListAccounts","updateList","saved","added","removed","addAccountsToList","removeAccountsFromList","findListTitle","findListAccounts","fetchAndUpdate","until","since","timelineData","replyVisibility","loggedIn","withMuted","numStatusesBeforeFetch","response","errors","statusText","ccTimeline","update","message","timelineFetcher","startFetching","promiseInterval","boundFetchAndUpdate","requests","listsFetcher","startFetchingTimeline","fetchTimeline","startFetchingNotifications","notificationsFetcher","fetchNotifications","startFetchingFollowRequests","followRequestFetcher","startFetchingLists","startUserSocket","getMastodonSocketURI","stream","ProcessedWS","func","verifyCredentials","windowWidth","innerWidth","documentElement","clientWidth","body","windowHeight","innerHeight","clientHeight","REDIRECT_URI","location","origin","getOrCreateApp","clientId","clientSecret","form","FormData","append","___pleromafe_commit_hash","Date","toISOString","method","app","client_id","client_secret","getClientToken","oauth","login","response_type","redirect_uri","scope","dataString","encoded","encodeURIComponent","getToken","getTokenWithCredentials","username","password","verifyOTPCode","mfaToken","verifyRecoveryCode","revokeToken","token","isPushSupported","navigator","getOrCreateServiceWorker","runtime","err","deleteSubscriptionFromBackEnd","headers","Authorization","mergeArrayLength","oldValue","newValue","blockUser","relationship","unblockUser","muteUser","predictedRelationship","relationships","muting","unmuteUser","muteDomain","domain","unmuteDomain","tagUser","usersObject","newTags","untagUser","updateRight","right","newRights","rights","updateActivationStatus","deactivated","setCurrentUser","lastLoginName","clearCurrentUser","beginLogin","loggingIn","endLogin","saveFriendIds","friendIds","saveFollowerIds","followerIds","clearFriends","clearFollowers","addNewUsers","usersByNameObject","updateUserRelationship","updateUserInLists","inLists","saveBlockIds","blockIds","addBlockId","blockId","indexOf","saveMuteIds","muteIds","addMuteId","muteId","saveDomainMutes","domainMutes","addDomainMute","removeDomainMute","setPinnedToUser","pinnedStatusIds","pinned","setUserForStatus","setUserForNotification","from_profile","setColor","highlighted","highlight","signUpPending","signUpErrors","signUpSuccess","signUpFailure","findUser","findUserByName","findUserByUrl","u","fetchUserIfMissing","fetchUser","fetchUserByName","fetchUserRelationship","fetchUserInLists","fetchBlocks","blocks","removeUserFromFollowers","blockUsers","unblockUsers","editUserNote","comment","fetchMutes","mutes","hideReblogs","followUser","reblogs","showReblogs","muteUsers","unmuteUsers","fetchDomainMutes","muteDomains","unmuteDomains","fetchFriends","fetchFollowers","subscribeUser","unsubscribeUser","toggleActivationStatus","activateUser","deactivateUser","is_active","registerPushNotifications","isEnabled","notificationVisibility","registration","base64String","base64","rawData","subscribeOptions","userVisibleOnly","applicationServerKey","repeat","atob","Uint8Array","charCodeAt","pushManager","subscribe","subscribePush","subscription","JSON","stringify","alerts","follows","favourite","likes","mention","reblog","repeats","move","moves","responseData","sendSubscriptionToBackEnd","webPushNotifications","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","targetUsers","notificationIds","notificationsObject","relevantNotifications","searchUsers","signUp","userInfo","register","params","access_token","getCaptcha","logout","oauthApi","userToken","backendInteractorService","loginUser","accessToken","Notification","requestPermission","locked","useStreamingApi","latest","maybeShowChatNotification","chat","lastMessage","chats","currentChatId","hidden","account_id","opts","account","profile_image_url","attachment","preview_url","showDesktopNotification","retryMultiplier","fetchers","socket","mastoUserSocket","mastoUserSocketStatus","followRequests","followRequestCount","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","stop","setWsToken","wsToken","setSocket","setFollowRequests","setMastoUserSocketStatus","incrementRetryMultiplier","resetRetryMultiplier","enableMastoSockets","initial","WebSocket","CLOSED","CLOSING","getState","WSConnectionStatus","disableMastoSockets","startMastoUserSocket","addEventListener","detail","chatId","chatUpdate","closeEvent","ignoreCodes","debug","stopMastoUserSocket","close","stopFetchingTimeline","rest","stopFetchingNotifications","stopFetchingFollowRequests","removeFollowRequest","request","it","stopFetchingLists","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","library","faTimes","Modal","NEW_USER_DATE","COMMAND_TRIM_FLAGS_AND_RESET","dirty","flagStorage","updateCounter","reset","prefsStorage","_journal","simple","dontShowUpdateNotifs","collapseNav","collections","pinnedNavItems","raw","cache","newUserFlags","_moveItemInArray","movement","oldIndex","newIndex","newArray","_wrapData","userName","_user","_timestamp","now","_version","_checkValidity","_verifyPrefs","_mergeJournal","journals","allJournals","j","prototype","grouped","trimmedGrouped","path","journal","timestamp","remainder","lastRemoveIndex","operation","clearServerSideStorage","userData","setServerSideStorage","live","storage","fqn","recent","stale","needUpload","cacheValid","liveValid","_getRecentData","_PLEROMA_HOTPATCH","reverseMigrations","to","_doMigrations","needsUpload","userNew","created_at","flagsTemplate","recentData","staleData","totalFlags","totalPrefs","allFlagKeys","toRaw","_getAllFlags","flag","recentFlag","staleFlag","_mergeFlags","recentJournal","staleJournal","resultOutput","totalJournal","command","newSet","_mergePrefs","knownKeys","knownKeysSet","_resetFlags","min","setFlag","setPreference","addCollectionPreference","collection","removeCollectionPreference","reorderCollectionPreference","newCollection","updateCache","pushServerSideStorage","force","needPush","pleroma_settings_store","updateProfile","channel","joined","setChannel","addMessage","setMessages","setJoined","initializeShout","joinPush","receive","onClose","onError","on","msg","appToken","setClientData","setAppToken","setToken","clearToken","getUserToken","PASSWORD_STRATEGY","TOKEN_STRATEGY","TOTP_STRATEGY","RECOVERY_STRATEGY","resetState","strategy","initStrategy","namespaced","requiredPassword","requiredToken","requiredTOTP","requiredRecovery","setInitialStrategy","requirePassword","requireToken","requireMFA","requireRecovery","requireTOTP","abortMFA","root","supportedTypes","mediaViewer","currentIndex","activated","setMedia","setCurrentMedia","fileTypeService","mimetype","current","closeMediaViewer","tokens","fetchTokens","fetchOAuthTokens","revokeOAuthToken","swapTokens","reports","reportModal","preTickedIds","openUserReportingModal","closeUserReportingModal","setReportState","reportsState","addReport","statusIds","preTickedStatuses","oldState","trackedPolls","pollsObject","mergeOrAddPoll","existingPoll","expired","parse","expires_at","trackPoll","pollId","currentValue","untrackPoll","updateTrackedPoll","fetchPoll","polls","votePoll","choices","vote","modalActivated","openPostStatusModal","closePostStatusModal","openEditStatusModal","closeEditStatusModal","openStatusHistoryModal","closeStatusHistoryModal","ChatService","newMessages","updateMaxId","chat_id","fakeId","fakeMessage","idIndex","pending","idempotency_key","idempotencyKeyIndex","isConfirmation","lastSeenMessageId","newMessageCount","empty","getView","currentMessageChainId","firstMessage","previousMessage","date","setHours","getTime","toString","afterDate","nextMessage","isTail","object","messageChainId","isHead","deleteMessage","messageId","m","cullOlderMessages","maxIndex","minIndex","resetNewMessageCount","clear","failedMessageIds","handleMessageError","isRetry","lastPersistedMessage","oldId","chatList","chatListFetcher","openedChats","reactive","openedChatMessageServices","lastReadMessageId","getChatById","currentChat","currentChatMessageService","findOpenedChatByRecipientId","recipientId","c","sortedChatList","unreadChatCount","startFetchingChats","stopFetchingChats","fetchChats","addNewChats","newChatMessageSideEffects","updateChat","startFetchingCurrentChat","setCurrentChatFetcher","addOpenedChat","parseChat","addChatMessages","resetChatNewMessageCount","clearCurrentChat","readChat","lastReadId","isNewMessage","deleteChatMessage","resetChats","clearOpenedChats","setChatListFetcher","prevFetcher","_dispatch","chatService","setCurrentChatId","updatedChat","unread","updated_at","_rootGetters","deleteChat","conversation","last_status","setChatsLoading","chatMessageService","parseChatMessage","_value","announcements","supportsAnnouncements","fetchAnnouncementsTimer","setAnnouncements","setAnnouncementRead","read","setFetchAnnouncementsTimer","timer","setSupportsAnnouncements","unreadAnnouncementCount","_getters","announcement","inactive","fetchAnnouncements","isAdmin","role","getAnnouncements","adminFetchAnnouncements","visible","visibleObject","getWithinVisible","visibleAnnouncement","statusCode","markAnnouncementAsRead","dismissAnnouncement","startFetchingAnnouncements","interval","setInterval","stopFetchingAnnouncements","clearInterval","postAnnouncement","startsAt","endsAt","allDay","editAnnouncement","deleteAnnouncement","loaded","defaultReducer","paths","substate","saveImmedeatelyActions","defaultStorage","localforage","createPersistedState","getItem","setState","setItem","reducer","subscriber","handler","savedState","usersState","replaceState","merge","mutation","webPushNotification","isUserMutation","isVapidMutation","payload","isPermMutation","isUserConfigMutation","isVisibilityMutation","for","isPasswordAuth","isTokenAuth","mapGetters","mapMutations","mapActions","submit","submitToken","submitPassword","$store","identifier","passwordResetRequested","focusOnPasswordInput","clearError","passwordInput","focus","setSelectionRange","_hoisted_2","_hoisted_3","onSubmit","_Fragment","_hoisted_4","_hoisted_5","placeholder","_hoisted_7","_hoisted_8","ref","_hoisted_10","_createVNode","_component_router_link","_hoisted_11","_hoisted_12","_hoisted_13","_createBlock","_hoisted_15","_hoisted_16","_component_FAIcon","mfa","authSettings","mfa_token","mfaApi","_hoisted_6","_hoisted_9","size","h","resolveComponent","authForm","MFARecoveryForm","MFATOTPForm","LoginForm","signedIn","AuthForm","PostStatusForm","UserCard","_component_UserCard","rounded","_component_PostStatusForm","_component_auth_form","USERNAME_ROUTES","TIMELINES","home","route","criteria","anon","twkn","routeObject","tab","ROOT_ITEMS","interactions","badgeGetter","friendRequests","about","$props","custom","_renderSlot","faThumbtack","OptionalRouterLink","isPinned","pinnedItems","togglePin","routeTo","anonRoute","serverSideStorage","_component_OptionalRouterLink","ass","navigate","_mergeProps","_resolveDynamicComponent","iconLetter","labelRaw","_normalizeClass","transform","filterNavigation","hasChats","hasAnnouncements","isFederating","isPrivate","getListEntries","ListsMenuContent","NavigationEntry","privateMode","federating","_component_NavigationEntry","faUsers","faGlobe","faBookmark","faEnvelope","faComments","faBell","faInfoCircle","faStream","faList","getRouteTo","pinnedList","faChevronDown","faChevronUp","faBullhorn","created","NavigationPins","Checkbox","editMode","showTimelines","showLists","timelinesList","rootList","toggleTimelines","toggleLists","toggleEditMode","toggleCollapse","collapsed","timelinesItems","rootItems","_component_NavigationPins","_component_ListsMenuContent","shout","pleromaChatMessages","gopher","whoToFollow","mediaProxy","uploadlimit","fileSizeFormatService","num","unit","getWhoToFollow","panel","usersToFollow","toFollow","reply","shuffled","img","avatar","acct","externalUser","showWhoToFollow","userProfileLink","generateProfileLink","watch","oldUser","mounted","fill","x","src","currentMessage","togglePanel","newVal","scrollEl","$el","querySelector","offsetHeight","scrollHeight","$nextTick","author","rows","onKeyup","setTransform","scale","y","PinchZoom","_toHandlers","deltaCoord","oldCoord","newCoord","touchEventCoord","touch","touches","screenX","screenY","pointerEventCoord","clientX","clientY","vectorLength","sqrt","perpendicular","dotProduct","v1","v2","project","scalar","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","swipeGesture","direction","onSwipe","threshold","perpendicularTolerance","_startPos","_swiping","beginSwipe","gesture","updateSwipe","delta","towardsDir","perpendicularDir","towardsPerpendicular","SwipeAndClickGesture","swipePreviewCallback","swipeEndCallback","swipeCancelCallback","swipelessClickCallback","disableClickThreshold","nop","_reset","_pointerId","_swiped","_preventNextClick","button","pointerId","coord","sign","isPositive","pointerType","handlePointerDown","$gesture","handlePointerMove","handlePointerUp","handlePointerCancel","cancel","handleNativeClick","click","preview","offsets","GestureService","onPointerdown","onPointermove","onPointerup","onPointercancel","faChevronLeft","faChevronRight","faCircleNotch","StillImage","VideoAttachment","SwipeClick","Flash","swipeDirection","swipeThreshold","pinchZoomMinScale","pinchZoomScaleResetLimit","showing","description","currentMedia","canNavigate","getType","hide","hideIfNotSwiped","comp","swipeClick","goPrev","prevIndex","newMedia","goNext","nextIndex","onImageLoaded","handleSwipePreview","pinchZoom","handleSwipeEnd","handleKeyupEvent","keyCode","handleKeydownEvent","unmounted","removeEventListener","_component_Modal","onBackdropClicked","_component_SwipeClick","onPreviewRequested","onSwipeFinished","onSwipelessClicked","_component_PinchZoom","selector","alt","onLoad","_component_VideoAttachment","controls","_component_Flash","total","spin","faSignInAlt","faSignOutAlt","faHome","faUserPlus","faSearch","faTachometerAlt","faCog","faCompass","closed","closeGesture","toggleDrawer","unseenNotifications","unseenNotificationsFromStore","unseenNotificationsCount","sitename","timelinesRoute","doLogout","touchStart","touchMove","onTouchstart","onTouchmove","style","faPen","HIDDEN_FOR_PAGES","scrollingDown","inputActive","oldScrollPos","amountScrolled","autohideFloatingPostButton","activateFloatingPostButtonAutohide","handleOSK","deactivateFloatingPostButtonAutohide","isLoggedIn","isHidden","$route","isPersistent","alwaysShowNewPostButton","handleScrollStart","handleScrollEnd","openPostForm","smallPhone","smallPhoneKbOpen","biggerPhoneKbOpen","scrollY","leading","trailing","faBars","faArrowUp","faMinus","SideDrawer","Notifications","notificationsCloseGesture","notificationsOpen","notificationsAtTop","closeMobileNotifications","isChat","chatsPinned","toggleMobileSidebar","sideDrawer","openMobileNotifications","markRead","notificationsTouchStart","notificationsTouchMove","scrollToTop","scrollTo","scrollMobileNotificationsToTop","mobileNotifications","onScroll","fetchOlderNotifications","_component_FALayers","_component_SideDrawer","searchTerm","searchInput","toggleHidden","SearchBar","searchBarHidden","supportsMask","enableMask","logoStyle","logoMaskStyle","logoBgStyle","margin","opacity","onSearchBarToggled","_component_search_bar","onToggled","Status","List","UserLink","forward","statusIdsToReport","processing","isOpen","remoteInstance","is_local","closeModal","reportUser","isChecked","toggleStatus","checked","resize","Element","_component_i18n_t","keypath","_component_UserLink","onInput","_component_Checkbox","_component_List","items","_component_Status","focused","statusoid","resettingForm","editStatus","isFormVisible","oldVal","get","val","doEditStatus","spoilerText","sensitive","contentType","statusPosterService","onPosted","postStatus","statusHistory","historyCount","history","newStatusId","resetHistory","_component_status","notices","closeNotice","UserPanel","NavPanel","defineAsyncComponent","InstanceSpecificPanel","FeaturesPanel","WhoToFollowPanel","ShoutPanel","MediaModal","MobilePostStatusButton","MobileNav","DesktopNav","SettingsModal","UpdateNotification","UserReportingModal","PostStatusModal","EditStatusModal","StatusHistoryModal","GlobalNoticeList","mobileActivePanel","interfaceLanguage","updateMobileState","reverseLayout","noSticky","newPostButtonShown","navClasses","navbarColumnStretch","userBackground","background_image","instanceBackground","hideInstanceWallpaper","bgStyle","hideISP","isChats","isListEdit","editingAvailable","shoutboxPosition","hideShoutbox","reverseSetting","disableStickyHeaders","showScrollbars","_component_MobileNav","_component_DesktopNav","_component_Notifications","_component_user_panel","_component_nav_panel","_component_instance_specific_panel","_component_features_panel","_component_who_to_follow_panel","_component_router_view","_component_MediaModal","_component_shout_panel","floating","_component_MobilePostStatusButton","_component_UserReportingModal","_component_PostStatusModal","_component_EditStatusModal","_component_StatusHistoryModal","_component_SettingsModal","_component_UpdateNotification","_component_GlobalNoticeList","faAngleDoubleDown","faAngleDoubleRight","depth","inProfile","collapsable","isExpanded","pinnedStatusIdsObject","profileUserId","getReplies","setHighlight","toggleExpanded","toggleThreadDisplay","threadDisplayStatus","showThreadRecursively","totalReplyCount","totalReplyDepth","statusContentProperties","setStatusContentProperty","toggleStatusContentProperty","dive","suspendable","selfSuspendable","statusComponent","childComponent","reverseLookupTable","table","currentReplies","statusById","threadShowing","currentProp","collapseThread","showThread","showAllSubthreads","toggleCurrentProp","setCurrentProp","expandable","replies","showingTall","expandingSubject","showingLongSubject","replying","mediaPlaying","onGoto","onToggleExpanded","replyStatus","_component_thread_tree","numStatus","faFilter","faFont","faWrench","Popover","setReplyVisibility","openTab","replyVisibilitySelf","replyVisibilityFollowing","replyVisibilityAll","hideMedia","hideAttachments","hideAttachmentsInConv","_component_Popover","trigger","faFolderTree","setConversationDisplay","autoUpdate","streaming","collapseWithSubjects","showUserAvatars","faAngleDoubleLeft","idA","idB","expanded","threadDisplayStatusObject","statusContentPropertiesObject","inlineDivePosition","isPage","fetchConversation","maxDepthToShowByDefault","maxDepth","streamingEnabled","displayStyle","isTreeView","isLinearView","treeViewIsSimple","shouldFadeAncestors","otherRepliesButtonPosition","showOtherRepliesButtonBelowStatus","showOtherRepliesButtonInsideStatus","prop","hideStatus","virtualHidden","originalStatusId","getConversationId","statusIndex","sortAndFilterConversation","statusMap","threadTree","linearized","walk","forest","topLevel","processed","replyIds","sizes","subTreeSizeFor","cid","depths","subTreeDepthFor","tl","otherTopLevelCount","showingTopLevel","canDive","diveRoot","parentOf","diveDepth","diveMode","shouldShowAllConversationButton","shouldShowAncestors","ancestorsOf","irid","hiddenStyle","def","isReplying","maybeHighlight","ThreadTree","QuickFilterSettings","QuickViewSettings","newConversationId","oldConversationId","resetDisplayState","ancestors","descendants","getHighlight","setThreadDisplay","nextStatus","setThreadDisplayRecursively","leastVisibleAncestor","parent","diveIntoStatus","preventScroll","tryScrollTo","diveToTopLevel","topLevelAncestorOrSelfId","undive","goToCurrent","parentId","parentOrSelf","_component_QuickFilterSettings","_component_QuickViewSettings","numReplies","useListsMenu","openMenu","blockOpen","stopPropagation","timelineName","i18nkey","$t","onShow","faCirclePlus","faCheck","Timeline","showScrollTop","paused","unfocused","bottomedOut","virtualScrollIndex","blockingClicks","Conversation","TimelineMenu","filteredVisibleStatuses","filteredPinnedStatusIds","showLoadButton","loadButtonString","mobileLoadButtonString","rootClasses","embedded","header","footer","statusesToDisplay","amount","statusesPerSide","ceil","nonPinnedIndex","virtualScrollingEnabled","mobileLayout","handleScroll","handleVisibilityChange","handleShortKey","determineVisibleStatuses","top","offsetTop","stopBlockingClicks","blockClicksTemporarily","fetchOlderStatuses","cappedScrollIndex","pageYOffset","centerOfScreen","approxIndex","floor","getBoundingClientRect","virtualScrollIndexY","abs","scrollLoad","bodyBRect","doc","clientTop","pauseOnUnfocused","_component_TimelineMenu","_component_conversation","_Teleport","_component_Timeline","tabModeDict","reactions","allowFollowingMove","allow_following_move","filterMode","canSeeReports","privileges","onModeSwitch","TabSwitcher","_component_tab_switcher","UserAvatar","RichContent","UserPopover","htmlTitle","name_html","_component_UserPopover","_component_UserAvatar","_component_RichContent","AvatarList","Timeago","ChatTitle","StatusBody","attachmentInfo","types","file","fileType","messageForStatusContent","messageEmojis","isYou","messagePreview","summary","raw_html","openChat","_e","recipient_id","_component_ChatTitle","_component_Timeago","time","_component_StatusBody","chatNew","BasicUserCard","userIds","availableUsers","goBack","goToChat","addUser","selectedUserIds","removeUser","_component_BasicUserCard","ChatListItem","ChatNew","isNew","cancelNewChat","newChat","_component_ChatNew","onCancel","_component_ChatListItem","compact","displayDate","today","toLocaleDateString","localeService","$i18n","day","month","$options","faEllipsisH","emits","Attachment","StatusContent","Gallery","LinkPreview","ChatMessageDate","createdAt","chatViewItem","toLocaleTimeString","hour","minute","hour12","isCurrentUser","isMessage","hasAttachment","betterShadow","popoverMarginStyle","left","hovered","menuOpened","onHover","bool","isHovered","confirm","onMouseover","onMouseleave","onMouseenter","placement","_component_StatusContent","_component_ChatMessageDate","getScrollPosition","Chat","ChatMessage","jumpToBottomButtonVisible","hoveredMessageChainId","lastScrollPosition","scrollableContainerHeight","errorLoadingChat","messageRetriers","handleResize","recipient","formPlaceholder","chatViewItems","bottomedOutBeforeUpdate","scrollDown","fetchChat","isFirstFetch","onMessageHover","onFilesDropped","forceRead","delayed","diff","scrollBy","trunc","options","behavior","isBottomedOut","reachedTop","cullOlderCheck","handleScrollUp","positionBeforeLoading","previousPosition","newPosition","positionAfterLoading","fetchLatest","fetchOlderMessages","sinceId","chatMessages","positionBeforeUpdate","getOrCreateChat","doStartFetching","handleAttachmentPosting","sendMessage","idempotencyKey","mediaId","isNormalized","buildFakeMessage","doSendMessage","retriesLeft","sendChatMessage","_component_ChatMessage","onResize","toggled","RemoteFollow","FollowButton","RemoveFollowerButton","isMe","_component_basic_user_card","followed_by","_component_FollowButton","_component_RemoveFollowerButton","_component_RemoteFollow","select","childPropName","additionalPropNames","WrappedComponent","getComponentProps","fetchEntries","updateEntries","newEntries","isEmpty","FollowerList","withLoadMore","destroy","FriendList","defaultTabKey","footerRef","routeParams","load","stopFetching","isUs","isExternal","followsTabVisible","hide_follows","followersTabVisible","hide_followers","setFooterRef","el","userNameOrId","loadById","maybeId","maybeName","reason","errorMessage","switchUser","onTabSwitch","linkClicked","parentNode","FollowCard","switcher","selected","viewing","fields_html","field","fields_text","statuses_count","friends_count","_component_FriendList","_component_FollowCard","followers_count","_component_FollowerList","hashtags","currenResultTab","statusesOffset","lastStatusFetchCount","lastQuery","newQuery","searchType","blur","oldLength","getActiveTab","resultCount","onResultTabSwitch","lastHistoryRecord","hashtag","_hoisted_14","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_25","uses","_hoisted_26","setup","v$","useVuelidate","email","fullname","captcha","InterfaceLanguageSwitcher","validations","requiredIf","accountActivationRequired","sameAs","accountApprovalRequired","setCaptcha","bioPlaceholder","replaceNewlines","reasonPlaceholder","isPending","serverValidationErrors","termsOfService","captcha_solution","solution","captcha_token","captcha_answer_data","answer_data","$touch","$invalid","cpt","str","$error","$model","$dirty","_hoisted_19","bio","_hoisted_23","_hoisted_27","_component_interface_language_switcher","_hoisted_30","_hoisted_31","_hoisted_33","_hoisted_34","autocomplete","autocorrect","autocapitalize","spellcheck","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_42","_hoisted_43","passwordReset","throttled","mailerEnabled","dismissError","passwordResetApi","_hoisted_17","findFollowRequestNotificationId","notif","notificationsFromStore","approveUser","notifId","denyUser","FollowRequestCard","_component_FollowRequestCard","staffAccounts","groupedStaffAccounts","groupBy","admin","moderator","group","toInstanceReasonObject","instances","info","federationPolicy","mrfPolicies","quarantineInstances","acceptInstances","rejectInstances","ftlRemovalInstances","mediaNsfwInstances","mediaRemovalInstances","keywordsFtlRemoval","keywordsReject","keywordsReplace","hasInstanceSpecificPolicies","hasKeywordPolicies","TermsOfServicePanel","StaffPanel","MRFTransparencyPanel","policy","_toDisplayString","keyword","pattern","_component_staff_panel","_component_terms_of_service_panel","_component_MRFTransparencyPanel","redirect","ListsCard","cancelNewList","newList","_component_ListsCard","followingOnly","onChange","ListsNew","ListsUserSearch","PanelLoading","titleDraft","membersUserIds","removedUserIds","searchUserIds","addedUserIds","searchLoading","reallyDelete","membersUsers","toggleRemoveMember","toggleAddFromSearch","isRemoved","isAdded","onSearchLoading","results","onSearchLoadingDone","onSearchResults","updateListTitle","back","listTitle","_component_ListsUserSearch","onResults","onLoading","onLoadingDone","_component_PanelLoading","cols","AnnouncementEditor","editing","editedAnnouncement","editError","isRead","publishedAt","published_at","formatTimeOrDate","starts_at","ends_at","markAsRead","d","all_day","toLocaleString","enterEditMode","pleroma","raw_content","submitEdit","cancelEdit","Announcement","_component_announcement_editor","_component_rich_content","newAnnouncement","posting","_component_announcement","validateAuthenticatedRoute","routes","_to","component","PublicAndExternalTimeline","PublicTimeline","FriendsTimeline","beforeEnter","TagTimeline","BookmarkTimeline","ConversationPage","meta","dontScroll","RemoteUserResolver","UserProfile","Interactions","DMs","Registration","PasswordReset","FollowRequests","disableTeleport","OAuthCallback","Search","WhoToFollow","About","AnnouncementsPage","Lists","ListsTimeline","ListsEdit","forceExpand","forceEditMode","ChatList","previousNavPaddingRight","previousAppBgWrapperRight","lockerEls","disableBodyScroll","scrollBarGap","reserveScrollBarGap","navEl","getElementById","getComputedStyle","getPropertyValue","paddingRight","appBgWrapperEl","classList","enableBodyScroll","remove","directive","binding","updated","Vue","staticInitialResults","decodeUTF8Base64","TextDecoder","decode","preloadFetch","decoded","requestData","getInstanceConfig","max_toot_chars","vapid_public_key","approval_required","getBackendProvidedConfig","pleroma_fe","getStaticConfig","setSettings","apiConfig","staticConfig","overrides","___pleromafe_dev_overrides","env","___pleromafe_mode","NODE_ENV","staticConfigPreference","copyInstanceOption","getTOS","getInstancePanel","getStickers","resPack","pack","stickers","localeCompare","getAppSecret","resolveStaffAccounts","nicknames","split","getNodeInfo","metadata","features","nodeName","openRegistrations","uploadLimits","parseInt","general","banner","fieldsLimits","enabled","web","software","version","priv","federation","mrf_policies","setConfig","configInfos","checkOAuthToken","FaviconService","customThemeSource","applyConfig","router","createRouter","createWebHistory","scrollBehavior","_from","savedPosition","matched","createApp","App","use","vClickOutside","VBodyScrollLock","FontAwesomeIcon","FontAwesomeLayers","unwrapInjectedRef","mount","currentLocale","createI18n","fallbackLocale","persistedStateOptions","storageError","plugins","pushNotifications","persistedState","createStore","modules","global","interface","interfaceModule","instanceModule","usersModule","statusesModule","listsModule","apiModule","configModule","serverSideConfig","serverSideConfigModule","serverSideStorageModule","shoutModule","oauthModule","authFlow","authFlowModule","mediaViewerModule","oauthTokens","oauthTokensModule","reportsModule","pollsModule","postStatusModule","editStatusModule","statusHistoryModule","chatsModule","announcementsModule","strict","afterStoreSetup","process","COMMIT_HASH","DEV_OVERRIDES","expertLevel","colors","padEmoji","maxThumbnails","hideNsfw","preloadImage","loopVideo","loopVideoSilentOnly","emojiReactionsOnTimeline","stopGifs","followRequest","chatMention","muteWords","hideScopeNotice","playVideosInModal","useOneClickNsfw","useContainFit","userPopoverAvatarAction","userPopoverOverlay","sidebarColumnWidth","contentColumnWidth","notifsColumnWidth","defaultConfig","setOption","color","loadSettings","presentKeys","intersection","setPreset","Cookies","defaultApi","notificationsApi","updateNotificationSettings","settingsMap","defaultScope","defaultNSFW","stripRichContent","acceptChatMessages","discoverable","hideFavorites","hideFollowers","hideFollows","hideFollowersCount","hideFollowsCount","webPushHideContents","blockNotificationsFromStrangers","confirmServerSideOption","wipeServerSideOption","wipeAllServerSideOptions","_original","setServerSideOption","StatusCodeError","captureStackTrace","create","constructor","RegistrationError","errorContents","ap_id","errs","ALIASES_URL","TAG_USER_URL","PERMISSION_GROUP_URL","screenName","MASTODON_DISMISS_NOTIFICATION_URL","MASTODON_FAVORITE_URL","MASTODON_UNFAVORITE_URL","MASTODON_RETWEET_URL","MASTODON_UNRETWEET_URL","MASTODON_PUBLIC_TIMELINE","MASTODON_STATUS_URL","MASTODON_USER_TIMELINE_URL","MASTODON_LIST_URL","MASTODON_LIST_TIMELINE_URL","MASTODON_LIST_ACCOUNTS_URL","MASTODON_TAG_TIMELINE_URL","MASTODON_MUTE_USER_URL","MASTODON_UNMUTE_USER_URL","MASTODON_SUBSCRIBE_USER","MASTODON_UNSUBSCRIBE_USER","MASTODON_USER_NOTE_URL","MASTODON_BOOKMARK_STATUS_URL","MASTODON_UNBOOKMARK_STATUS_URL","MASTODON_MEDIA_UPLOAD_URL","MASTODON_STATUS_FAVORITEDBY_URL","MASTODON_STATUS_REBLOGGEDBY_URL","MASTODON_PROFILE_UPDATE_URL","MASTODON_PIN_OWN_STATUS","MASTODON_UNPIN_OWN_STATUS","MASTODON_MUTE_CONVERSATION","MASTODON_UNMUTE_CONVERSATION","MASTODON_DOMAIN_BLOCKS_URL","MASTODON_ANNOUNCEMENTS_DISMISS_URL","PLEROMA_EMOJI_REACTIONS_URL","PLEROMA_EMOJI_REACT_URL","PLEROMA_EMOJI_UNREACT_URL","PLEROMA_CHAT_MESSAGES_URL","PLEROMA_CHAT_READ_URL","PLEROMA_DELETE_CHAT_MESSAGE_URL","PLEROMA_BACKUP_URL","PLEROMA_EDIT_ANNOUNCEMENT_URL","PLEROMA_DELETE_ANNOUNCEMENT_URL","oldfetch","fullUrl","promisedRequest","Accept","authHeaders","parseUser","MASTODON_FOLLOWING_URL","announcementToPayload","MASTODON_STREAMING","MASTODON_STREAMING_EVENTS","PLEROMA_STREAMING_EVENTS","preprocessor","handleMastoWS","eventTarget","proxy","original","eventName","eventData","dispatchEvent","CustomEvent","wsEvent","readyState","parsedEvent","parseStatus","parseNotification","freeze","JOINED","ERROR","DISABLED","STARTING","STARTING_INITIAL","includeTypes","isNotifications","queryString","param","parseLinkHeaderPagination","flakeId","urlContext","MASTODON_STATUS_CONTEXT_URL","MASTODON_STATUS_SOURCE_URL","parseSource","originalStatus","exportFriends","more","MASTODON_FOLLOWERS_URL","MASTODON_FOLLOW_URL","unfollowUser","MASTODON_UNFOLLOW_URL","MASTODON_BLOCK_USER_URL","MASTODON_UNBLOCK_USER_URL","MASTODON_REMOVE_USER_FROM_FOLLOWERS","mediaIds","inReplyToStatusId","pollOptions","normalizedPoll","expires_in","expiresIn","multiple","postHeaders","putHeaders","MASTODON_DELETE_URL","uploadMedia","formData","parseAttachment","setMediaDescription","deleteUser","addRight","deleteRight","agreement","resp","updateProfileImages","avatarName","importMutes","importBlocks","importFollows","deleteAccount","changeEmail","moveAccount","targetAccount","addAlias","alias","deleteAlias","listAliases","_cacheBooster","changePassword","newPassword","newPasswordConfirmation","settingsMFA","mfaDisableOTP","generateMfaBackupCodes","mfaSetupOTP","mfaConfirmOTP","addBackup","listBackups","fetchFollowRequests","fetchLists","MASTODON_LISTS_URL","account_ids","MASTODON_APPROVE_USER_URL","MASTODON_DENY_USER_URL","status_ids","fetchKnownDomains","media_id","last_read_id","MASTODON_USER_IN_LISTS","rgb2hex","g","relativeLuminance","srgb","bit","pow","c2linear","srgbToLinear","getContrastRatio","getContrastRatioLayers","layers","bedrock","alphaBlendLayers","alphaBlend","fg","fga","bg","hex2rgb","hex","mixrgb","rgba2css","rgba","getTextColor","preserve","base","invertLightness","rgb","contrastRatio","getCssColor","Component","isFunction","getComponentOptions","SECOND","MINUTE","HOUR","DAY","WEEK","MONTH","YEAR","relativeTime","nowThreshold","round","relativeTimeShort","desktopNotificationOpts","desktopNotification","bind","output","masto","mastoShort","escape","display_name","name_unescaped","note","description_html","fields","unescape","cover_photo","following_count","bot","settings_store","favicon","chat_token","hide_follows_count","hide_followers_count","is_moderator","is_admin","default_scope","privacy","no_rich_text","show_role","delete_others_notice","muted","blocking","statusnet_blocking","follows_you","follow_request_count","notification_settings","unread_chat_count","parts","unicodeDomain","punycode","screen_name_ui_contains_non_ascii","mime_type","large_thumb_url","spoiler_text","content_type","favourited","favourites_count","reblogged","reblogs_count","edited_at","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","parent_visible","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","summary_raw_html","external_url","title_html","is_post_verb","qvitter_delete_notice","activity_type","qvitterStatusType","isNsfw","statusnet_html","summary_html","card","media_attachments","parsedNotice","ntype","is_seen","favorited_status","actor","linkHeader","parsedLinkHeader","parseLinkHeader","max_id","prev","min_id","last_message","favicons","faviconWidth","faviconHeight","isImageLoaded","clearFaviconBadge","complete","naturalHeight","initFaviconService","querySelectorAll","favcanvas","createElement","favimg","Image","crossOrigin","favcontext","getContext","clearRect","drawImage","toDataURL","drawFaviconBadge","badgeColor","fillStyle","beginPath","arc","PI","fileSizeFormat","numArg","units","exponent","toFixed","fileMatchesSomeType","specialLanguageCodes","ja_easy","zh_Hant","zh","internalToBrowserLocale","getLanguageName","languageName","ISO6391","browserLocale","charAt","toLocaleUpperCase","languagesObject","internalToBackendLocale","visibleTypes","statusNotifications","muteWordHits","isMutedNotification","notificationObject","prepareNotificationObject","filteredNotificationsFromStore","sortedNotifications","i18nString","notifObj","mastoApiNotificationTypes","readNotifsIds","findOffset","child","ignorePadding","offsetLeft","findPadding","topPadding","leftPadding","offsetParent","position","contains","topPaddingStr","leftPaddingStr","promiseCall","stopped","promise","statusSummary","muteWord","rules","generatePreset","head","styleEl","appendChild","styleSheet","sheet","insertRule","radii","shadows","fonts","configColumns","defaultConfigColumns","columns","getCssShadow","usesDropShadow","inset","shad","spread","alpha","getCssShadowFilter","generateColors","sourceColors","colors2to3","getColors","htmlColors","solid","generateRadii","inputRadii","btnRadius","btn","checkbox","avatarAlt","tooltip","chatMessage","generateFonts","family","post","postCode","border","shadow","buttonInsetFakeBorders","inputInsetFakeBorders","hoverGlow","DEFAULT_SHADOWS","topBar","popup","avatarStatus","panelHeader","buttonHover","buttonPressed","generateShadows","hackContextDict","cleanInputShadows","shadowDef","inputShadows","shadows2to3","shadowsAcc","slotName","shadowDefs","slotFirstWord","colorSlotName","mod","convert","newShadow","shadowAcc","computeDynamicColor","variableSlot","composePreset","getThemes","themes","promises","statePositionAcc","getOpacitySlot","isV1","cRed","cGreen","cBlue","cOrange","LAYERS","undelay","badge","profileTint","popover","selectedMenu","btnPanel","btnTopBar","inputPanel","inputTopBar","alert","alertPanel","chatBg","DEFAULT_OPACITY","faint","underlay","alertPopup","SLOT_INHERITANCE","depends","priority","wallpaper","brightness","layer","accent","faintLink","postFaintLink","profileBg","highlightLightText","textColor","highlightPostLink","highlightFaintText","highlightFaintLink","highlightPostFaintLink","highlightText","highlightLink","highlightIcon","popoverLightText","popoverPostLink","popoverFaintText","popoverFaintLink","popoverPostFaintLink","popoverText","popoverLink","popoverIcon","selectedPost","selectedPostFaintText","variant","selectedPostLightText","selectedPostPostLink","selectedPostFaintLink","selectedPostText","selectedPostLink","selectedPostIcon","selectedMenuLightText","selectedMenuFaintText","selectedMenuFaintLink","selectedMenuText","selectedMenuLink","selectedMenuIcon","selectedMenuPopover","selectedMenuPopoverLightText","selectedMenuPopoverFaintText","selectedMenuPopoverFaintLink","selectedMenuPopoverText","selectedMenuPopoverLink","selectedMenuPopoverIcon","lightText","postLink","postGreentext","postCyantext","copacity","pollText","inheritsOpacity","fgText","fgLink","panelText","panelFaint","panelLink","topBarText","topBarLink","tabText","tabActiveText","btnText","btnPanelText","btnTopBarText","btnPressed","btnPressedText","btnPressedPanel","btnPressedPanelText","btnPressedTopBar","btnPressedTopBarText","btnToggled","btnToggledText","btnToggledPanelText","btnToggledTopBarText","btnDisabled","btnDisabledText","btnDisabledPanelText","btnDisabledTopBarText","inputText","inputPanelText","inputTopbarText","alertError","alertErrorText","alertErrorPanelText","alertWarning","alertWarningText","alertWarningPanelText","alertSuccess","alertSuccessText","alertSuccessPanelText","alertNeutral","alertNeutralText","alertNeutralPanelText","alertPopupError","alertPopupErrorText","alertPopupWarning","alertPopupWarningText","alertPopupSuccess","alertPopupSuccessText","alertPopupNeutral","alertPopupNeutralText","badgeNotification","badgeNotificationText","badgeNeutral","badgeNeutralText","chatMessageIncomingBg","chatMessageIncomingText","chatMessageIncomingLink","chatMessageIncomingBorder","chatMessageOutgoingBg","chatMessageOutgoingText","chatMessageOutgoingLink","chatMessageOutgoingBorder","getLayersArray","getLayers","opacitySlot","currentLayer","getDependencies","inheritance","layerDeps","expandSlotValue","getDeps","findInheritedOpacity","visited","depSlot","dependency","getLayerSlot","findInheritedLayer","SLOT_ORDERED","allKeys","whites","grays","blacks","unprocessed","step","node","ai","bi","depsA","depsB","topoSort","aV","bV","OPACITIES","defaultValue","affectedSlots","sourceColor","getColor","targetColor","variable","modifier","parseFloat","sourceOpacity","backgroundColor","deps","isTextColor","outputColor","colorFunc","dep","ownOpacitySlot","opacityOverriden","dependencySlot","dependencyColor","highlightStyle","prefs","solidColor","tintColor","tintColor2","customProps","backgroundImage","backgroundPosition","highlightClass","complicated","faFile","faMusic","faImage","faVideo","faPlayCircle","faStop","faSearchPlus","faTrashAlt","faPencilAlt","faAlignRight","localDescription","nsfwImage","hideNsfwLocal","modalOpen","showHidden","flashLoaded","showDescription","classNames","usePlaceholder","placeholderName","toUpperCase","placeholderIconClass","referrerpolicy","oembed","useModal","modalTypes","videoTag","onEdit","openModal","openModalForce","onRemove","onShiftUp","shiftUp","onShiftDn","shiftDn","stopFlash","flash","closePlayer","setFlashLoaded","toggleDescription","onload","onImageLoad","naturalWidth","onKeydown","_component_StillImage","onPlay","onPause","thumb_url","_hoisted_22","oembedHTML","onPlayerOpened","onPlayerClosed","slicedUsers","_component_user_link","indeterminate","$event","addPositionToWords","words","word","previous","splitByWhitespaceBoundary","currentWord","currentChar","pos","wordsWithPosition","toReplace","faBoxOpen","faStickyNote","faSmileBeam","faSmile","faUser","faPaw","faIceCream","faBus","faBasketballBall","faLightbulb","faCode","faFlag","UNICODE_EMOJI_GROUP_ICON","activities","objects","flags","maybeLocalizedKeywords","nameLocalizer","enableStickerPicker","activeGroup","showingStickers","groupsScrolledClass","keepOpen","customEmojiTimeout","contentLoaded","groupRefs","emojiRefs","filteredEmojiGroups","StickerPicker","showPicker","showPopover","onShowing","hidePicker","hidePopover","setAnchorEl","setGroupRef","setEmojiRef","onPopoverShown","onPopoverClosed","onStickerUploaded","onStickerUploadFailed","onEmoji","insertion","updateScrolledClass","scrolledGroup","allEmojiGroups","scrollHeader","headerRef","offsetWidth","headerCont","currentScroll","scrollLeft","currentScrollRight","setScroll","setShowStickers","scrollTopMax","toggleStickers","filterByKeyword","keywordLowercase","orderedEmojiList","indices","indexOfKeyword","flat","maybeLocalizedEmojiName","initializeLazyLoad","destroyLazyLoad","$lozad","lozad","getAttribute","vn","loadLazy","observe","waitForDomAndInitializeLazyLoad","observer","mutationObserver","oldContentLoaded","getFilteredEmojiGroups","defaultGroup","debouncedHandleKeywordChange","allCustomGroups","destroyed","activeGroupView","stickersAvailable","unicodeEmojiGroups","stickerPickerEnabled","_component_still_image","composing","_component_sticker_picker","onUploaded","onUploadFailed","suggest","modelValue","enableEmojiPicker","hideEmojiButton","newlineOnCtrlEnter","caretEl","caret","blurTimeout","temporarilyHideSuggestions","disableClickOutside","overlayStyle","pickerShown","EmojiPicker","UnicodeDomainIndicator","preText","postText","showSuggestions","textAtCaret","wordAtCaret","Completion","maybeLocalizedEmojiNamesAndKeywords","onInputScroll","hiddenOverlay","hiddenOverlayCaret","suggestorPopover","picker","padding","lineHeight","fontFamily","fontSize","wordWrap","whiteSpace","onBlur","onFocus","onPaste","onKeyUp","onKeyDown","onClickInput","onTransition","newWord","firstchar","matchedSuggestions","triggerShowPicker","scrollIntoView","togglePicker","startEmojiLoad","insert","surroundingSpace","before","after","isSpaceRegex","spaceBefore","spaceAfter","replaceText","suggestion","len","cycleBackward","cycleForward","rootRef","scrollerRef","closest","scrollerBottomBorder","rootBottomBorder","targetScroll","scroll","bottom","onPickerShown","onPickerClosed","setCaret","ctrlKey","shiftKey","selectionStart","updateStyles","_component_EmojiPicker","_component_UnicodeDomainIndicator","at","ruffleInstance","getRuffle","RufflePlayer","polyfills","publicPath","script","onerror","onabort","oncancel","faExclamationTriangle","player","openPlayer","RuffleService","ruffle","newest","createPlayer","letterbox","container","fetchRelationship","attempt","requested","sent","requestFollow","isPressed","labelFollowing","unfollow","requestUnfollow","hidingLong","minimal","grid","audio","attachmentsRemaining","currentRow","attachmentsDimensionalScore","row","tooManyAttachments","editable","onNaturalSizeLoad","rowStyle","itemStyle","getAspectRatio","flex","toggleHidingLong","openGallery","onMedia","rowIndex","attachmentIndex","_component_Attachment","onSetMedia","number","Select","promptText","controlledLanguage","_component_Select","imageLoaded","useImage","censored","hideNsfwConfig","useDescription","test","newImg","provider_name","getKey","faAt","userScreenName","hasSelection","shouldShowTooltip","handleSelection","getSelection","containsNode","full","userNameFullUi","serverName","userNameFull","highlightType","classnames","shouldBoldenYou","isRemote","shouldShowFullUserName","conf","shouldShowAvatar","shouldShowYous","shouldFadeDomain","MentionLink","mentionsComputed","extraMentions","manyMentions","toggleShowMore","_component_MentionLink","provide","popoversZLayer","noBackground","reportId","generateUserProfileLink","_component_status_content","notes","faStar","faRetweet","faEyeSlash","faSuitcaseRolling","faExpandAlt","faCompressAlt","statusExpanded","unmuted","Report","toggleStatusExpanded","getUser","toggleMute","userClass","userStyle","targetUser","targetUserProfileLink","needMute","_hoisted_24","_hoisted_28","_component_Report","filters","toggleNotificationFilter","NotificationFilters","minimalMode","seenToDisplayCount","mainClass","filteredNotifications","unseenCount","unseenCountTitle","noHeading","teleportTarget","wide","mobile","notificationsToDisplay","updateScrollPosition","markAsSeen","seenCount","notifs","_component_NotificationFilters","unseen","_component_notification","boundTo","boundToSelector","popoverClass","removePadding","overlayCenters","overlayCentersSelector","stayOnClick","triggerAttrs","inject","anchorEl","teleport","lockReEntry","styles","oldSize","scrollable","graceTimeout","parentPopover","childrenShown","containerBoundingClientRect","anchorHeight","anchorWidth","anchorScreenBox","anchorStyle","paddingTop","bottomPadding","paddingBottom","rightPadding","paddingLeft","overlayCenter","parentScreenBox","xBounds","yBounds","horizOffset","vertOffset","box","overlayCenterScreenBox","leftInnerOffset","topInnerOffset","leftBorder","rightBorder","topBorder","bottomBorder","translateX","translateY","usingTop","topBoundary","bottomBoundary","yOffset","usingRight","rightBoundary","leftBoundary","xOffset","maxWidth","wasHidden","onChildPopoverState","onClickOutside","onMouseenterContent","onMouseleaveContent","childRef","$parent","$","beforeUnmount","_Transition","faUpload","uploadCount","uploadReady","uploading","uploadFile","self","filesize","allowedsize","filesizeunit","allowedsizeunit","fileData","decreaseUploadCount","clearFile","multiUpload","files","change","dropFiles","fileInfos","faPlus","pollType","expiryAmount","expiryUnit","maxOptions","maxLength","expiryUnits","expiry","convertExpiryFromUnit","minExpirationInCurrentUnit","convertExpiryToUnit","maxExpirationInCurrentUnit","nextOption","element","addOption","deleteOption","updatePollToParent","DateUtils","expiryAmountChange","maxlength","unstyled","faPollH","faBan","pxStringToNumber","MediaUpload","EmojiInput","PollForm","ScopeSelector","updateIdempotencyKey","textarea","replyTo","textLength","autoFocus","allAttentions","attention","buildMentionsString","repliedUser","copyMessageScope","statusParams","subject","mediaDescriptions","statusContentType","statusIsSensitive","statusFiles","statusPoll","statusMediaDescriptions","statusScope","uploadingFiles","pollFormVisible","showDropIcon","dropStopTimeout","previewLoading","emojiInputShown","userDefaultScope","showAllScopes","emojiUserSuggestor","suggestor","emojiSuggestor","statusLength","spoilerTextLength","statusLengthLimit","hasStatusLengthLimit","charactersLeft","isOverLengthLimit","alwaysShowSubject","safeDMEnabled","disablePolls","disableNotice","pollContentError","showPreview","disablePreview","emptyStatus","uploadFileLimitReached","fileLimit","isEdit","deep","statusChanged","autoPreview","clearStatus","mediaUpload","clearPollForm","preserveFocus","previewStatus","optimisticPosting","disableSubmit","submitOnEnter","setAllMediaDescriptions","postingOptions","postHandler","statusPoster","debouncePreviewStatus","closePreview","togglePreview","addMediaFile","fileInfo","removeMediaFile","editAttachment","newText","shiftUpMediaFile","shiftDnMediaFile","uploadFailed","errString","templateArgs","startedUploadingFiles","finishedUploadingFiles","paste","clipboardData","fileDrop","dataTransfer","fileDragStop","fileDrag","dropEffect","onEmojiInputInput","formRef","bottomRef","bottomBottomPaddingStr","bottomBottomPadding","bottomPaddingStr","vertPadding","oldHeight","scrollerHeight","heightWithoutPadding","newHeight","maxHeight","bottomBottomBorder","isBottomObstructed","isFormBiggerThanScroller","bottomChangeDelta","totalDelta","showEmojiPicker","changeVis","togglePollForm","setPoll","pollForm","dismissScopeNotice","handleEmojiInputShow","openProfileTab","onDragover","_component_EmojiInput","onShown","onCompositionupdate","_component_scope_selector","postFormat","_component_poll_form","onUpdatePoll","_component_media_upload","onUploading","onAllUploaded","animation","onDragleave","onDrop","_hoisted_29","_component_gallery","descriptions","progress","$data","subscribeUrl","serverUrl","protocol","host","faLock","faLockOpen","currentScope","initialScope","showNothing","showPublic","showUnlisted","showPrivate","showDirect","originalScope","shouldShow","css","unlisted","private","direct","showAll","userDefault","onScopeChange","faReply","faStarRegular","animated","filterWord","addReaction","existingReaction","focusInput","commonEmojis","hardcodedSet","faBookmarkReg","faShareAlt","faExternalLinkAlt","faHistory","copyLink","clipboard","writeText","statusLink","reportStatus","showStatusHistory","p","canDelete","ownStatus","canPin","canMute","canBookmark","isEdited","enter","oldStatus","usersCapped","UserListPopover","tooManyReactions","showMoreString","accountsForEmoji","toggleShowAll","reactedWith","fetchEmojiReactionsByIfMissing","reactWith","unreact","emojiOnClick","_component_UserListPopover","faPlusSquare","faEye","camelCase","controlledOrUncontrolledSet","camelized","uncontrolledName","ReplyButton","FavoriteButton","ReactButton","RetweetButton","ExtraButtons","StatusPopover","EmojiReactions","uncontrolledReplying","userExpanded","uncontrolledMediaPlaying","headTailLinks","toggle","controlledName","showReasonMutedThread","inConversation","repeaterClass","repeaterStyle","replyProfileLink","isReply","retweeterUser","retweeter","retweeterHtml","retweeterProfileLink","statusFromGlobalRepository","rtBotStatus","botStatus","botIndicator","rtBotIndicator","mentionsLine","writtenSet","attn","hasMentionsLine","reasonsToMute","userIsMuted","shouldNotMute","relationshipReblog","hideMutedUsers","isFocused","replyToName","replySubject","decodedSummary","startsWithRe","combinedFavsAndRepeatsUsers","combinedUsers","tagObj","isSuspendable","inThreadForest","controlledThreadDisplayStatus","visibilityLocalized","visibilityIcon","showError","toggleReplying","gotoOriginal","toggleUserExpanded","addMediaPlaying","removeMediaPlaying","setHeadTailLinks","controlledToggleThreadDisplay","scrollIfHighlighted","highlightId","rect","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_component_reply_button","onToggle","_component_StatusPopover","flip","_hoisted_32","_component_MentionsLine","_hoisted_35","onMediaplay","onMediapause","onParseReady","_hoisted_36","_hoisted_40","_hoisted_41","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_component_AvatarList","_component_EmojiReactions","_hoisted_49","_component_retweet_button","_component_favorite_button","_component_ReactButton","_component_extra_buttons","onOnError","onOnSuccess","_hoisted_54","basePoll","expiresAt","showResults","voted","totalVotesCount","votes_count","containerClass","choiceIndices","isDisabled","noChoice","percentageForOption","resultTitle","activateOption","clickedElement","optionId","voters_count","faLink","postLength","parseReadyDone","localCollapseSubjectDefault","tallStatus","singleLine","longSubject","mightHideBecauseSubject","mightHideBecauseTall","hideSubjectStatus","hideTallStatus","showingMore","attachmentTypes","handle","toggleShowingTall","toggleExpandingSubject","controlledOrUncontrolledToggle","uncontrolledShowingTall","fullContent","uncontrolledShowingLongSubject","uncontrolledExpandingSubject","nsfwClickthrough","attachmentSize","Poll","toggleShowingLongSubject","galleryAttachments","_component_Poll","_component_link_preview","realSrc","appendPx","dataSrc","imageLoadHandler","canvas","imageLoadError","removeAttribute","localeDateString","relativeTimeString","timeString","tc","templateKey","refreshRelativeTimeObject","longFormat","datetime","faRobot","showPlaceholder","imgSrc","darkOverlay","FORCE_NSFW","STRIP_MEDIA","FORCE_UNLISTED","DISABLE_REMOTE_SUBSCRIPTION","DISABLE_ANY_SUBSCRIPTION","SANDBOX","QUARANTINE","showDeleteUserDialog","DialogModal","tagsSet","canGrantRole","canChangeActivationState","privileged","canDeleteAccount","canUseTagPolicy","tagPolicyAvailable","hasTag","privilege","toggleTag","toggleRight","deleteUserDialog","show","isProfile","isTargetUser","setToggled","_component_DialogModal","inListsSet","inList","toggleList","faEllipsisV","ProgressButton","UserListMenu","showRepeats","hideRepeats","showing_reblogs","_component_UserListMenu","localNote","frozen","startEditing","cancelEditing","finalizeEditing","faRss","faEdit","followRequestInProgress","bordered","isOtherUser","dailyAvg","days","userHighlightType","userHighlightColor","visibleRole","validRole","roleTitle","showModerationMenu","hasNote","supportsNote","ModerationTools","AccountActions","UserNote","setProfileView","zoomAvatar","mentionUser","onAvatarClickHandler","onAvatarClick","_component_AccountActions","subscribing","_component_ProgressButton","_component_ModerationTools","_component_UserNote","blocksSuspend","hasAudio","onPlaying","setHasAudio","looping","onPaused","srcElement","webkitAudioDecodedByteCount","mozHasAudio","audioTracks","preload","loop","playsinline","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","getter","__esModule","getPrototypeOf","mode","ns","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","miniCssF","globalThis","done","needAttach","scripts","getElementsByTagName","charset","nc","setAttribute","onScriptComplete","doneFns","removeChild","Symbol","toStringTag","nmd","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","linkTag","errorType","realHref","createStylesheet","miniCss","installedChunks","installedChunkData","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/app.8d2126d35dba9482db51.js b/priv/static/static/js/app.8d2126d35dba9482db51.js
new file mode 100644
index 000000000..62657b9ad
--- /dev/null
+++ b/priv/static/static/js/app.8d2126d35dba9482db51.js
@@ -0,0 +1,2 @@
+(()=>{var e,t,n,o,r,i={88797:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const o={about:{mrf:{federation:e=>{const{normalize:t}=e;return t(["Federation"])},keyword:{keyword_policies:e=>{const{normalize:t}=e;return t(["Keyword policies"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "The Whole Known Network" Timeline'])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},replace:e=>{const{normalize:t}=e;return t(["Replace"])},is_replaced_by:e=>{const{normalize:t}=e;return t(["→"])}},mrf_policies:e=>{const{normalize:t}=e;return t(["Enabled MRF policies"])},mrf_policies_desc:e=>{const{normalize:t}=e;return t(["MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:"])},simple:{simple_policies:e=>{const{normalize:t}=e;return t(["Instance-specific policies"])},instance:e=>{const{normalize:t}=e;return t(["Instance"])},reason:e=>{const{normalize:t}=e;return t(["Reason"])},not_applicable:e=>{const{normalize:t}=e;return t(["N/A"])},accept:e=>{const{normalize:t}=e;return t(["Accept"])},accept_desc:e=>{const{normalize:t}=e;return t(["This instance only accepts messages from the following instances:"])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},reject_desc:e=>{const{normalize:t}=e;return t(["This instance will not accept messages from the following instances:"])},quarantine:e=>{const{normalize:t}=e;return t(["Quarantine"])},quarantine_desc:e=>{const{normalize:t}=e;return t(["This instance will send only public posts to the following instances:"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "Known Network" Timeline'])},ftl_removal_desc:e=>{const{normalize:t}=e;return t(['This instance removes these instances from "Known Network" timeline:'])},media_removal:e=>{const{normalize:t}=e;return t(["Media Removal"])},media_removal_desc:e=>{const{normalize:t}=e;return t(["This instance removes media from posts on the following instances:"])},media_nsfw:e=>{const{normalize:t}=e;return t(["Media force-set as sensitive"])},media_nsfw_desc:e=>{const{normalize:t}=e;return t(["This instance forces media to be set sensitive in posts on the following instances:"])}}},staff:e=>{const{normalize:t}=e;return t(["Staff"])}},announcements:{page_header:e=>{const{normalize:t}=e;return t(["Announcements"])},title:e=>{const{normalize:t}=e;return t(["Announcement"])},mark_as_read_action:e=>{const{normalize:t}=e;return t(["Mark as read"])},post_form_header:e=>{const{normalize:t}=e;return t(["Post announcement"])},post_placeholder:e=>{const{normalize:t}=e;return t(["Type your announcement content here..."])},post_action:e=>{const{normalize:t}=e;return t(["Post"])},post_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error: ",n(o("error"))])},close_error:e=>{const{normalize:t}=e;return t(["Close"])},delete_action:e=>{const{normalize:t}=e;return t(["Delete"])},start_time_prompt:e=>{const{normalize:t}=e;return t(["Start time: "])},end_time_prompt:e=>{const{normalize:t}=e;return t(["End time: "])},all_day_prompt:e=>{const{normalize:t}=e;return t(["This is an all-day event"])},published_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Published at ",n(o("time"))])},start_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Starts at ",n(o("time"))])},end_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Ends at ",n(o("time"))])},edit_action:e=>{const{normalize:t}=e;return t(["Edit"])},submit_edit_action:e=>{const{normalize:t}=e;return t(["Submit"])},cancel_edit_action:e=>{const{normalize:t}=e;return t(["Cancel"])},inactive_message:e=>{const{normalize:t}=e;return t(["This announcement is inactive"])}},shoutbox:{title:e=>{const{normalize:t}=e;return t(["Shoutbox"])}},domain_mute_card:{mute:e=>{const{normalize:t}=e;return t(["Mute"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])}},exporter:{export:e=>{const{normalize:t}=e;return t(["Export"])},processing:e=>{const{normalize:t}=e;return t(["Processing, you'll soon be asked to download your file"])}},features_panel:{shout:e=>{const{normalize:t}=e;return t(["Shoutbox"])},pleroma_chat_messages:e=>{const{normalize:t}=e;return t(["Pleroma Chat"])},gopher:e=>{const{normalize:t}=e;return t(["Gopher"])},media_proxy:e=>{const{normalize:t}=e;return t(["Media proxy"])},scope_options:e=>{const{normalize:t}=e;return t(["Scope options"])},text_limit:e=>{const{normalize:t}=e;return t(["Text limit"])},title:e=>{const{normalize:t}=e;return t(["Features"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},upload_limit:e=>{const{normalize:t}=e;return t(["Upload limit"])}},finder:{error_fetching_user:e=>{const{normalize:t}=e;return t(["Error fetching user"])},find_user:e=>{const{normalize:t}=e;return t(["Find user"])}},general:{apply:e=>{const{normalize:t}=e;return t(["Apply"])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},more:e=>{const{normalize:t}=e;return t(["More"])},loading:e=>{const{normalize:t}=e;return t(["Loading…"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occured"])},generic_error_message:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["An error occured: ",n(o(0))])},error_retry:e=>{const{normalize:t}=e;return t(["Please try again"])},retry:e=>{const{normalize:t}=e;return t(["Try again"])},optional:e=>{const{normalize:t}=e;return t(["optional"])},show_more:e=>{const{normalize:t}=e;return t(["Show more"])},show_less:e=>{const{normalize:t}=e;return t(["Show less"])},never_show_again:e=>{const{normalize:t}=e;return t(["Never show again"])},dismiss:e=>{const{normalize:t}=e;return t(["Dismiss"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])},disable:e=>{const{normalize:t}=e;return t(["Disable"])},enable:e=>{const{normalize:t}=e;return t(["Enable"])},confirm:e=>{const{normalize:t}=e;return t(["Confirm"])},verify:e=>{const{normalize:t}=e;return t(["Verify"])},close:e=>{const{normalize:t}=e;return t(["Close"])},undo:e=>{const{normalize:t}=e;return t(["Undo"])},yes:e=>{const{normalize:t}=e;return t(["Yes"])},no:e=>{const{normalize:t}=e;return t(["No"])},peek:e=>{const{normalize:t}=e;return t(["Peek"])},scroll_to_top:e=>{const{normalize:t}=e;return t(["Scroll to top"])},role:{admin:e=>{const{normalize:t}=e;return t(["Admin"])},moderator:e=>{const{normalize:t}=e;return t(["Moderator"])}},unpin:e=>{const{normalize:t}=e;return t(["Unpin item"])},pin:e=>{const{normalize:t}=e;return t(["Pin item"])},flash_content:e=>{const{normalize:t}=e;return t(["Click to show Flash content using Ruffle (Experimental, may not work)."])},flash_security:e=>{const{normalize:t}=e;return t(["Note that this can be potentially dangerous since Flash content is still arbitrary code."])},flash_fail:e=>{const{normalize:t}=e;return t(["Failed to load flash content, see console for details."])},scope_in_timeline:{direct:e=>{const{normalize:t}=e;return t(["Direct"])},private:e=>{const{normalize:t}=e;return t(["Followers-only"])},public:e=>{const{normalize:t}=e;return t(["Public"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted"])}}},image_cropper:{crop_picture:e=>{const{normalize:t}=e;return t(["Crop picture"])},save:e=>{const{normalize:t}=e;return t(["Save"])},save_without_cropping:e=>{const{normalize:t}=e;return t(["Save without cropping"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},importer:{submit:e=>{const{normalize:t}=e;return t(["Submit"])},success:e=>{const{normalize:t}=e;return t(["Imported successfully."])},error:e=>{const{normalize:t}=e;return t(["An error occured while importing this file."])}},login:{login:e=>{const{normalize:t}=e;return t(["Log in"])},description:e=>{const{normalize:t}=e;return t(["Log in with OAuth"])},logout:e=>{const{normalize:t}=e;return t(["Log out"])},logout_confirm_title:e=>{const{normalize:t}=e;return t(["Logout confirmation"])},logout_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to logout?"])},logout_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Logout"])},logout_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not logout"])},password:e=>{const{normalize:t}=e;return t(["Password"])},placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},register:e=>{const{normalize:t}=e;return t(["Register"])},username:e=>{const{normalize:t}=e;return t(["Username"])},hint:e=>{const{normalize:t}=e;return t(["Log in to join the discussion"])},authentication_code:e=>{const{normalize:t}=e;return t(["Authentication code"])},enter_recovery_code:e=>{const{normalize:t}=e;return t(["Enter a recovery code"])},enter_two_factor_code:e=>{const{normalize:t}=e;return t(["Enter a two-factor code"])},recovery_code:e=>{const{normalize:t}=e;return t(["Recovery code"])},heading:{totp:e=>{const{normalize:t}=e;return t(["Two-factor authentication"])},recovery:e=>{const{normalize:t}=e;return t(["Two-factor recovery"])}}},media_modal:{previous:e=>{const{normalize:t}=e;return t(["Previous"])},next:e=>{const{normalize:t}=e;return t(["Next"])},counter:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("current"))," / ",n(o("total"))])},hide:e=>{const{normalize:t}=e;return t(["Close media viewer"])}},nav:{about:e=>{const{normalize:t}=e;return t(["About"])},administration:e=>{const{normalize:t}=e;return t(["Administration"])},back:e=>{const{normalize:t}=e;return t(["Back"])},friend_requests:e=>{const{normalize:t}=e;return t(["Follow requests"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},interactions:e=>{const{normalize:t}=e;return t(["Interactions"])},dms:e=>{const{normalize:t}=e;return t(["Direct messages"])},public_tl:e=>{const{normalize:t}=e;return t(["Public timeline"])},timeline:e=>{const{normalize:t}=e;return t(["Timeline"])},home_timeline:e=>{const{normalize:t}=e;return t(["Home timeline"])},twkn:e=>{const{normalize:t}=e;return t(["Known Network"])},bookmarks:e=>{const{normalize:t}=e;return t(["Bookmarks"])},user_search:e=>{const{normalize:t}=e;return t(["User Search"])},search:e=>{const{normalize:t}=e;return t(["Search"])},search_close:e=>{const{normalize:t}=e;return t(["Close search bar"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},preferences:e=>{const{normalize:t}=e;return t(["Preferences"])},timelines:e=>{const{normalize:t}=e;return t(["Timelines"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},lists:e=>{const{normalize:t}=e;return t(["Lists"])},edit_nav_mobile:e=>{const{normalize:t}=e;return t(["Customize navigation bar"])},edit_pinned:e=>{const{normalize:t}=e;return t(["Edit pinned items"])},edit_finish:e=>{const{normalize:t}=e;return t(["Done editing"])},mobile_sidebar:e=>{const{normalize:t}=e;return t(["Toggle mobile sidebar"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications (there are unread ones)"])},mobile_notifications_close:e=>{const{normalize:t}=e;return t(["Close notifications"])},announcements:e=>{const{normalize:t}=e;return t(["Announcements"])}},notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error fetching notifications: ",n(o(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["reacted with ",n(o(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["submitted a report"])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}},polls:{add_poll:e=>{const{normalize:t}=e;return t(["Add poll"])},add_option:e=>{const{normalize:t}=e;return t(["Add option"])},option:e=>{const{normalize:t}=e;return t(["Option"])},votes:e=>{const{normalize:t}=e;return t(["votes"])},people_voted_count:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("count"))," person voted"]),t([n(o("count"))," people voted"])])},votes_count:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("count"))," vote"]),t([n(o("count"))," votes"])])},vote:e=>{const{normalize:t}=e;return t(["Vote"])},type:e=>{const{normalize:t}=e;return t(["Poll type"])},single_choice:e=>{const{normalize:t}=e;return t(["Single choice"])},multiple_choices:e=>{const{normalize:t}=e;return t(["Multiple choices"])},expiry:e=>{const{normalize:t}=e;return t(["Poll age"])},expires_in:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Poll ends in ",n(o(0))])},expired:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Poll ended ",n(o(0))," ago"])},not_enough_options:e=>{const{normalize:t}=e;return t(["Too few unique options in poll"])}},emoji:{stickers:e=>{const{normalize:t}=e;return t(["Stickers"])},emoji:e=>{const{normalize:t}=e;return t(["Emoji"])},keep_open:e=>{const{normalize:t}=e;return t(["Keep picker open"])},search_emoji:e=>{const{normalize:t}=e;return t(["Search for an emoji"])},add_emoji:e=>{const{normalize:t}=e;return t(["Insert emoji"])},custom:e=>{const{normalize:t}=e;return t(["Custom emoji"])},unpacked:e=>{const{normalize:t}=e;return t(["Unpacked emoji"])},unicode:e=>{const{normalize:t}=e;return t(["Unicode emoji"])},unicode_groups:{activities:e=>{const{normalize:t}=e;return t(["Activities"])},"animals-and-nature":e=>{const{normalize:t}=e;return t(["Animals & Nature"])},flags:e=>{const{normalize:t}=e;return t(["Flags"])},"food-and-drink":e=>{const{normalize:t}=e;return t(["Food & Drink"])},objects:e=>{const{normalize:t}=e;return t(["Objects"])},"people-and-body":e=>{const{normalize:t}=e;return t(["People & Body"])},"smileys-and-emotion":e=>{const{normalize:t}=e;return t(["Smileys & Emotion"])},symbols:e=>{const{normalize:t}=e;return t(["Symbols"])},"travel-and-places":e=>{const{normalize:t}=e;return t(["Travel & Places"])}},load_all_hint:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Loaded first ",n(o("saneAmount"))," emoji, loading all emoji may cause performance issues."])},load_all:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Loading all ",n(o("emojiAmount"))," emoji"])},regional_indicator:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Regional indicator ",n(o("letter"))])}},errors:{storage_unavailable:e=>{const{normalize:t}=e;return t(["Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."])}},interactions:{favs_repeats:e=>{const{normalize:t}=e;return t(["Repeats and favorites"])},follows:e=>{const{normalize:t}=e;return t(["New follows"])},emoji_reactions:e=>{const{normalize:t}=e;return t(["Emoji Reactions"])},reports:e=>{const{normalize:t}=e;return t(["Reports"])},moves:e=>{const{normalize:t}=e;return t(["User migrates"])},load_older:e=>{const{normalize:t}=e;return t(["Load older interactions"])}},post_status:{edit_status:e=>{const{normalize:t}=e;return t(["Edit status"])},new_status:e=>{const{normalize:t}=e;return t(["Post new status"])},account_not_locked_warning:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Your account is not ",n(o(0)),". Anyone can follow you to view your follower-only posts."])},account_not_locked_warning_link:e=>{const{normalize:t}=e;return t(["locked"])},attachments_sensitive:e=>{const{normalize:t}=e;return t(["Mark attachments as sensitive"])},media_description:e=>{const{normalize:t}=e;return t(["Media description"])},content_type:{"text/plain":e=>{const{normalize:t}=e;return t(["Plain text"])},"text/html":e=>{const{normalize:t}=e;return t(["HTML"])},"text/markdown":e=>{const{normalize:t}=e;return t(["Markdown"])},"text/bbcode":e=>{const{normalize:t}=e;return t(["BBCode"])}},content_type_selection:e=>{const{normalize:t}=e;return t(["Post format"])},content_warning:e=>{const{normalize:t}=e;return t(["Subject (optional)"])},default:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},direct_warning_to_all:e=>{const{normalize:t}=e;return t(["This post will be visible to all the mentioned users."])},direct_warning_to_first_only:e=>{const{normalize:t}=e;return t(["This post will only be visible to the mentioned users at the beginning of the message."])},edit_remote_warning:e=>{const{normalize:t}=e;return t(["Other remote instances may not support editing and unable to receive the latest version of your post."])},edit_unsupported_warning:e=>{const{normalize:t}=e;return t(["Pleroma does not support editing mentions or polls."])},posting:e=>{const{normalize:t}=e;return t(["Posting"])},post:e=>{const{normalize:t}=e;return t(["Post"])},preview:e=>{const{normalize:t}=e;return t(["Preview"])},preview_empty:e=>{const{normalize:t}=e;return t(["Empty"])},empty_status_error:e=>{const{normalize:t}=e;return t(["Can't post an empty status with no files"])},media_description_error:e=>{const{normalize:t}=e;return t(["Failed to update media, try again"])},scope_notice:{public:e=>{const{normalize:t}=e;return t(["This post will be visible to everyone"])},private:e=>{const{normalize:t}=e;return t(["This post will be visible to your followers only"])},unlisted:e=>{const{normalize:t}=e;return t(["This post will not be visible in Public Timeline and The Whole Known Network"])}},scope_notice_dismiss:e=>{const{normalize:t}=e;return t(["Close this notice"])},scope:{direct:e=>{const{normalize:t}=e;return t(["Direct - post to mentioned users only"])},private:e=>{const{normalize:t}=e;return t(["Followers-only - post to followers only"])},public:e=>{const{normalize:t}=e;return t(["Public - post to public timelines"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted - do not post to public timelines"])}}},registration:{bio_optional:e=>{const{normalize:t}=e;return t(["Bio (optional)"])},email:e=>{const{normalize:t}=e;return t(["Email"])},email_optional:e=>{const{normalize:t}=e;return t(["Email (optional)"])},fullname:e=>{const{normalize:t}=e;return t(["Display name"])},password_confirm:e=>{const{normalize:t}=e;return t(["Password confirmation"])},registration:e=>{const{normalize:t}=e;return t(["Registration"])},token:e=>{const{normalize:t}=e;return t(["Invite token"])},captcha:e=>{const{normalize:t}=e;return t(["CAPTCHA"])},new_captcha:e=>{const{normalize:t}=e;return t(["Click the image to get a new captcha"])},username_placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},fullname_placeholder:e=>{const{normalize:t}=e;return t(["e.g. Lain Iwakura"])},bio_placeholder:e=>{const{normalize:t}=e;return t(["e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired."])},reason:e=>{const{normalize:t}=e;return t(["Reason to register"])},reason_placeholder:e=>{const{normalize:t}=e;return t(["This instance approves registrations manually.\nLet the administration know why you want to register."])},register:e=>{const{normalize:t}=e;return t(["Register"])},validations:{username_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},fullname_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},email_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_match:e=>{const{normalize:t}=e;return t(["should be the same as password"])},birthday_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},birthday_min_age:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["must be on or before ",n(o("date"))])}},email_language:e=>{const{normalize:t}=e;return t(["In which language do you want to receive emails from the server?"])},birthday:e=>{const{normalize:t}=e;return t(["Birthday:"])},birthday_optional:e=>{const{normalize:t}=e;return t(["Birthday (optional):"])}},remote_user_resolver:{remote_user_resolver:e=>{const{normalize:t}=e;return t(["Remote user resolver"])},searching_for:e=>{const{normalize:t}=e;return t(["Searching for"])},error:e=>{const{normalize:t}=e;return t(["Not found."])}},report:{reporter:e=>{const{normalize:t}=e;return t(["Reporter:"])},reported_user:e=>{const{normalize:t}=e;return t(["Reported user:"])},reported_statuses:e=>{const{normalize:t}=e;return t(["Reported statuses:"])},notes:e=>{const{normalize:t}=e;return t(["Notes:"])},state:e=>{const{normalize:t}=e;return t(["State:"])},state_open:e=>{const{normalize:t}=e;return t(["Open"])},state_closed:e=>{const{normalize:t}=e;return t(["Closed"])},state_resolved:e=>{const{normalize:t}=e;return t(["Resolved"])}},selectable_list:{select_all:e=>{const{normalize:t}=e;return t(["Select all"])}},settings:{add_language:e=>{const{normalize:t}=e;return t(["Add fallback language"])},remove_language:e=>{const{normalize:t}=e;return t(["Remove"])},primary_language:e=>{const{normalize:t}=e;return t(["Primary language:"])},fallback_language:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Fallback language ",n(o("index")),":"])},app_name:e=>{const{normalize:t}=e;return t(["App name"])},expert_mode:e=>{const{normalize:t}=e;return t(["Show advanced"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},security:e=>{const{normalize:t}=e;return t(["Security"])},setting_changed:e=>{const{normalize:t}=e;return t(["Setting is different from default"])},setting_server_side:e=>{const{normalize:t}=e;return t(["This setting is tied to your profile and affects all sessions and clients"])},enter_current_password_to_confirm:e=>{const{normalize:t}=e;return t(["Enter your current password to confirm your identity"])},post_look_feel:e=>{const{normalize:t}=e;return t(["Posts Look & Feel"])},mention_links:e=>{const{normalize:t}=e;return t(["Mention links"])},mfa:{otp:e=>{const{normalize:t}=e;return t(["OTP"])},setup_otp:e=>{const{normalize:t}=e;return t(["Setup OTP"])},wait_pre_setup_otp:e=>{const{normalize:t}=e;return t(["presetting OTP"])},confirm_and_enable:e=>{const{normalize:t}=e;return t(["Confirm & enable OTP"])},title:e=>{const{normalize:t}=e;return t(["Two-factor Authentication"])},generate_new_recovery_codes:e=>{const{normalize:t}=e;return t(["Generate new recovery codes"])},warning_of_generate_new_codes:e=>{const{normalize:t}=e;return t(["When you generate new recovery codes, your old codes won’t work anymore."])},recovery_codes:e=>{const{normalize:t}=e;return t(["Recovery codes."])},waiting_a_recovery_codes:e=>{const{normalize:t}=e;return t(["Receiving backup codes…"])},recovery_codes_warning:e=>{const{normalize:t}=e;return t(["Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account."])},authentication_methods:e=>{const{normalize:t}=e;return t(["Authentication methods"])},scan:{title:e=>{const{normalize:t}=e;return t(["Scan"])},desc:e=>{const{normalize:t}=e;return t(["Using your two-factor app, scan this QR code or enter text key:"])},secret_code:e=>{const{normalize:t}=e;return t(["Key"])}},verify:{desc:e=>{const{normalize:t}=e;return t(["To enable two-factor authentication, enter the code from your two-factor app:"])}}},lists_navigation:e=>{const{normalize:t}=e;return t(["Show lists in navigation"])},allow_following_move:e=>{const{normalize:t}=e;return t(["Allow auto-follow when following account moves"])},attachmentRadius:e=>{const{normalize:t}=e;return t(["Attachments"])},attachments:e=>{const{normalize:t}=e;return t(["Attachments"])},avatar:e=>{const{normalize:t}=e;return t(["Avatar"])},avatarAltRadius:e=>{const{normalize:t}=e;return t(["Avatars (notifications)"])},avatarRadius:e=>{const{normalize:t}=e;return t(["Avatars"])},background:e=>{const{normalize:t}=e;return t(["Background"])},bio:e=>{const{normalize:t}=e;return t(["Bio"])},email_language:e=>{const{normalize:t}=e;return t(["Language for receiving emails from the server"])},block_export:e=>{const{normalize:t}=e;return t(["Block export"])},block_export_button:e=>{const{normalize:t}=e;return t(["Export your blocks to a csv file"])},block_import:e=>{const{normalize:t}=e;return t(["Block import"])},block_import_error:e=>{const{normalize:t}=e;return t(["Error importing blocks"])},blocks_imported:e=>{const{normalize:t}=e;return t(["Blocks imported! Processing them will take a while."])},mute_export:e=>{const{normalize:t}=e;return t(["Mute export"])},mute_export_button:e=>{const{normalize:t}=e;return t(["Export your mutes to a csv file"])},mute_import:e=>{const{normalize:t}=e;return t(["Mute import"])},mute_import_error:e=>{const{normalize:t}=e;return t(["Error importing mutes"])},mutes_imported:e=>{const{normalize:t}=e;return t(["Mutes imported! Processing them will take a while."])},import_mutes_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import mutes from a csv file"])},account_backup:e=>{const{normalize:t}=e;return t(["Account backup"])},account_backup_description:e=>{const{normalize:t}=e;return t(["This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account."])},account_backup_table_head:e=>{const{normalize:t}=e;return t(["Backup"])},download_backup:e=>{const{normalize:t}=e;return t(["Download"])},backup_not_ready:e=>{const{normalize:t}=e;return t(["This backup is not ready yet."])},backup_running:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["This backup is in progress, processed ",n(o("number"))," record."]),t(["This backup is in progress, processed ",n(o("number"))," records."])])},backup_failed:e=>{const{normalize:t}=e;return t(["This backup has failed."])},remove_backup:e=>{const{normalize:t}=e;return t(["Remove"])},list_backups_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error fetching backup list: ",n(o("error"))])},add_backup:e=>{const{normalize:t}=e;return t(["Create a new backup"])},added_backup:e=>{const{normalize:t}=e;return t(["Added a new backup."])},add_backup_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error adding a new backup: ",n(o("error"))])},blocks_tab:e=>{const{normalize:t}=e;return t(["Blocks"])},bot:e=>{const{normalize:t}=e;return t(["This is a bot account"])},btnRadius:e=>{const{normalize:t}=e;return t(["Buttons"])},cBlue:e=>{const{normalize:t}=e;return t(["Blue (Reply, follow)"])},cGreen:e=>{const{normalize:t}=e;return t(["Green (Retweet)"])},cOrange:e=>{const{normalize:t}=e;return t(["Orange (Favorite)"])},cRed:e=>{const{normalize:t}=e;return t(["Red (Cancel)"])},change_email:e=>{const{normalize:t}=e;return t(["Change email"])},change_email_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your email."])},changed_email:e=>{const{normalize:t}=e;return t(["Email changed successfully!"])},change_password:e=>{const{normalize:t}=e;return t(["Change password"])},change_password_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your password."])},changed_password:e=>{const{normalize:t}=e;return t(["Password changed successfully!"])},chatMessageRadius:e=>{const{normalize:t}=e;return t(["Chat message"])},collapse_subject:e=>{const{normalize:t}=e;return t(["Collapse posts with subjects"])},composing:e=>{const{normalize:t}=e;return t(["Composing"])},confirm_new_password:e=>{const{normalize:t}=e;return t(["Confirm new password"])},current_password:e=>{const{normalize:t}=e;return t(["Current password"])},confirm_dialogs:e=>{const{normalize:t}=e;return t(["Ask for confirmation when"])},confirm_dialogs_repeat:e=>{const{normalize:t}=e;return t(["repeating a status"])},confirm_dialogs_unfollow:e=>{const{normalize:t}=e;return t(["unfollowing a user"])},confirm_dialogs_block:e=>{const{normalize:t}=e;return t(["blocking a user"])},confirm_dialogs_mute:e=>{const{normalize:t}=e;return t(["muting a user"])},confirm_dialogs_delete:e=>{const{normalize:t}=e;return t(["deleting a status"])},confirm_dialogs_logout:e=>{const{normalize:t}=e;return t(["logging out"])},confirm_dialogs_approve_follow:e=>{const{normalize:t}=e;return t(["approving a follower"])},confirm_dialogs_deny_follow:e=>{const{normalize:t}=e;return t(["denying a follower"])},confirm_dialogs_remove_follower:e=>{const{normalize:t}=e;return t(["removing a follower"])},mutes_and_blocks:e=>{const{normalize:t}=e;return t(["Mutes and Blocks"])},data_import_export_tab:e=>{const{normalize:t}=e;return t(["Data import / export"])},default_vis:e=>{const{normalize:t}=e;return t(["Default visibility scope"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},delete_account_description:e=>{const{normalize:t}=e;return t(["Permanently delete your data and deactivate your account."])},delete_account_error:e=>{const{normalize:t}=e;return t(["There was an issue deleting your account. If this persists please contact your instance administrator."])},delete_account_instructions:e=>{const{normalize:t}=e;return t(["Type your password in the input below to confirm account deletion."])},account_alias:e=>{const{normalize:t}=e;return t(["Account aliases"])},account_alias_table_head:e=>{const{normalize:t}=e;return t(["Alias"])},list_aliases_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error fetching aliases: ",n(o("error"))])},hide_list_aliases_error_action:e=>{const{normalize:t}=e;return t(["Close"])},remove_alias:e=>{const{normalize:t}=e;return t(["Remove this alias"])},new_alias_target:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Add a new alias (e.g. ",n(o("example")),")"])},added_alias:e=>{const{normalize:t}=e;return t(["Alias is added."])},add_alias_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error adding alias: ",n(o("error"))])},move_account:e=>{const{normalize:t}=e;return t(["Move account"])},move_account_notes:e=>{const{normalize:t}=e;return t(["If you want to move the account somewhere else, you must go to your target account and add an alias pointing here."])},move_account_target:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Target account (e.g. ",n(o("example")),")"])},moved_account:e=>{const{normalize:t}=e;return t(["Account is moved."])},move_account_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error moving account: ",n(o("error"))])},discoverable:e=>{const{normalize:t}=e;return t(["Allow discovery of this account in search results and other services"])},domain_mutes:e=>{const{normalize:t}=e;return t(["Domains"])},avatar_size_instruction:e=>{const{normalize:t}=e;return t(["The recommended minimum size for avatar images is 150x150 pixels."])},pad_emoji:e=>{const{normalize:t}=e;return t(["Pad emoji with spaces when adding from picker"])},emoji_reactions_on_timeline:e=>{const{normalize:t}=e;return t(["Show emoji reactions on timeline"])},export_theme:e=>{const{normalize:t}=e;return t(["Save preset"])},filtering:e=>{const{normalize:t}=e;return t(["Filtering"])},wordfilter:e=>{const{normalize:t}=e;return t(["Wordfilter"])},filtering_explanation:e=>{const{normalize:t}=e;return t(["All statuses containing these words will be muted, one per line"])},word_filter_and_more:e=>{const{normalize:t}=e;return t(["Word filter and more..."])},follow_export:e=>{const{normalize:t}=e;return t(["Follow export"])},follow_export_button:e=>{const{normalize:t}=e;return t(["Export your follows to a csv file"])},follow_import:e=>{const{normalize:t}=e;return t(["Follow import"])},follow_import_error:e=>{const{normalize:t}=e;return t(["Error importing followers"])},follows_imported:e=>{const{normalize:t}=e;return t(["Follows imported! Processing them will take a while."])},accent:e=>{const{normalize:t}=e;return t(["Accent"])},foreground:e=>{const{normalize:t}=e;return t(["Foreground"])},general:e=>{const{normalize:t}=e;return t(["General"])},hide_attachments_in_convo:e=>{const{normalize:t}=e;return t(["Hide attachments in conversations"])},hide_attachments_in_tl:e=>{const{normalize:t}=e;return t(["Hide attachments in timeline"])},hide_media_previews:e=>{const{normalize:t}=e;return t(["Hide media previews"])},hide_muted_posts:e=>{const{normalize:t}=e;return t(["Hide posts of muted users"])},mute_bot_posts:e=>{const{normalize:t}=e;return t(["Mute bot posts"])},hide_bot_indication:e=>{const{normalize:t}=e;return t(["Hide bot indication in posts"])},hide_all_muted_posts:e=>{const{normalize:t}=e;return t(["Hide muted posts"])},max_thumbnails:e=>{const{normalize:t}=e;return t(["Maximum amount of thumbnails per post (empty = no limit)"])},hide_isp:e=>{const{normalize:t}=e;return t(["Hide instance-specific panel"])},hide_shoutbox:e=>{const{normalize:t}=e;return t(["Hide instance shoutbox"])},right_sidebar:e=>{const{normalize:t}=e;return t(["Reverse order of columns"])},navbar_column_stretch:e=>{const{normalize:t}=e;return t(["Stretch navbar to columns width"])},always_show_post_button:e=>{const{normalize:t}=e;return t(["Always show floating New Post button"])},hide_wallpaper:e=>{const{normalize:t}=e;return t(["Hide instance wallpaper"])},preload_images:e=>{const{normalize:t}=e;return t(["Preload images"])},use_one_click_nsfw:e=>{const{normalize:t}=e;return t(["Open NSFW attachments with just one click"])},hide_post_stats:e=>{const{normalize:t}=e;return t(["Hide post statistics (e.g. the number of favorites)"])},hide_user_stats:e=>{const{normalize:t}=e;return t(["Hide user statistics (e.g. the number of followers)"])},hide_filtered_statuses:e=>{const{normalize:t}=e;return t(["Hide all filtered posts"])},hide_wordfiltered_statuses:e=>{const{normalize:t}=e;return t(["Hide word-filtered statuses"])},hide_muted_threads:e=>{const{normalize:t}=e;return t(["Hide muted threads"])},import_blocks_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import blocks from a csv file"])},import_followers_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import follows from a csv file"])},import_theme:e=>{const{normalize:t}=e;return t(["Load preset"])},inputRadius:e=>{const{normalize:t}=e;return t(["Input fields"])},checkboxRadius:e=>{const{normalize:t}=e;return t(["Checkboxes"])},instance_default:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(default: ",n(o("value")),")"])},instance_default_simple:e=>{const{normalize:t}=e;return t(["(default)"])},interface:e=>{const{normalize:t}=e;return t(["Interface"])},interfaceLanguage:e=>{const{normalize:t}=e;return t(["Interface language"])},invalid_theme_imported:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma theme. No changes to your theme were made."])},limited_availability:e=>{const{normalize:t}=e;return t(["Unavailable in your browser"])},links:e=>{const{normalize:t}=e;return t(["Links"])},lock_account_description:e=>{const{normalize:t}=e;return t(["Restrict your account to approved followers only"])},loop_video:e=>{const{normalize:t}=e;return t(["Loop videos"])},loop_video_silent_only:e=>{const{normalize:t}=e;return t(['Loop only videos without sound (i.e. Mastodon\'s "gifs")'])},mutes_tab:e=>{const{normalize:t}=e;return t(["Mutes"])},play_videos_in_modal:e=>{const{normalize:t}=e;return t(["Play videos in a popup frame"])},file_export_import:{backup_restore:e=>{const{normalize:t}=e;return t(["Settings backup"])},backup_settings:e=>{const{normalize:t}=e;return t(["Backup settings to file"])},backup_settings_theme:e=>{const{normalize:t}=e;return t(["Backup settings and theme to file"])},restore_settings:e=>{const{normalize:t}=e;return t(["Restore settings from file"])},errors:{invalid_file:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma settings backup. No changes were made."])},file_too_new:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Incompatile major version: ",n(o("fileMajor")),", this PleromaFE (settings ver ",n(o("feMajor")),") is too old to handle it"])},file_too_old:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Incompatile major version: ",n(o("fileMajor")),", file version is too old and not supported (min. set. ver. ",n(o("feMajor")),")"])},file_slightly_new:e=>{const{normalize:t}=e;return t(["File minor version is different, some settings might not load"])}}},profile_fields:{label:e=>{const{normalize:t}=e;return t(["Profile metadata"])},add_field:e=>{const{normalize:t}=e;return t(["Add field"])},name:e=>{const{normalize:t}=e;return t(["Label"])},value:e=>{const{normalize:t}=e;return t(["Content"])}},birthday:{label:e=>{const{normalize:t}=e;return t(["Birthday"])},show_birthday:e=>{const{normalize:t}=e;return t(["Show my birthday"])}},account_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},use_contain_fit:e=>{const{normalize:t}=e;return t(["Don't crop the attachment in thumbnails"])},name:e=>{const{normalize:t}=e;return t(["Name"])},name_bio:e=>{const{normalize:t}=e;return t(["Name & bio"])},new_email:e=>{const{normalize:t}=e;return t(["New email"])},new_password:e=>{const{normalize:t}=e;return t(["New password"])},posts:e=>{const{normalize:t}=e;return t(["Posts"])},user_profiles:e=>{const{normalize:t}=e;return t(["User Profiles"])},notification_visibility:e=>{const{normalize:t}=e;return t(["Types of notifications to show"])},notification_visibility_follows:e=>{const{normalize:t}=e;return t(["Follows"])},notification_visibility_likes:e=>{const{normalize:t}=e;return t(["Favorites"])},notification_visibility_mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},notification_visibility_repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},notification_visibility_moves:e=>{const{normalize:t}=e;return t(["User Migrates"])},notification_visibility_emoji_reactions:e=>{const{normalize:t}=e;return t(["Reactions"])},notification_visibility_polls:e=>{const{normalize:t}=e;return t(["Ends of polls you voted in"])},no_rich_text_description:e=>{const{normalize:t}=e;return t(["Strip rich text formatting from all posts"])},no_blocks:e=>{const{normalize:t}=e;return t(["No blocks"])},no_mutes:e=>{const{normalize:t}=e;return t(["No mutes"])},hide_favorites_description:e=>{const{normalize:t}=e;return t(["Don't show list of my favorites (people still get notified)"])},hide_follows_description:e=>{const{normalize:t}=e;return t(["Don't show who I'm following"])},hide_followers_description:e=>{const{normalize:t}=e;return t(["Don't show who's following me"])},hide_follows_count_description:e=>{const{normalize:t}=e;return t(["Don't show follow count"])},hide_followers_count_description:e=>{const{normalize:t}=e;return t(["Don't show follower count"])},show_admin_badge:e=>{const{normalize:t}=e;return t(['Show "Admin" badge in my profile'])},show_moderator_badge:e=>{const{normalize:t}=e;return t(['Show "Moderator" badge in my profile'])},nsfw_clickthrough:e=>{const{normalize:t}=e;return t(["Hide sensitive/NSFW media"])},oauth_tokens:e=>{const{normalize:t}=e;return t(["OAuth tokens"])},token:e=>{const{normalize:t}=e;return t(["Token"])},refresh_token:e=>{const{normalize:t}=e;return t(["Refresh token"])},valid_until:e=>{const{normalize:t}=e;return t(["Valid until"])},revoke_token:e=>{const{normalize:t}=e;return t(["Revoke"])},panelRadius:e=>{const{normalize:t}=e;return t(["Panels"])},pause_on_unfocused:e=>{const{normalize:t}=e;return t(["Pause when tab is not focused"])},presets:e=>{const{normalize:t}=e;return t(["Presets"])},profile_background:e=>{const{normalize:t}=e;return t(["Profile background"])},profile_banner:e=>{const{normalize:t}=e;return t(["Profile banner"])},profile_tab:e=>{const{normalize:t}=e;return t(["Profile"])},radii_help:e=>{const{normalize:t}=e;return t(["Set up interface edge rounding (in pixels)"])},replies_in_timeline:e=>{const{normalize:t}=e;return t(["Replies in timeline"])},reply_visibility_all:e=>{const{normalize:t}=e;return t(["Show all replies"])},reply_visibility_following:e=>{const{normalize:t}=e;return t(["Only show replies directed at me or users I'm following"])},reply_visibility_self:e=>{const{normalize:t}=e;return t(["Only show replies directed at me"])},reply_visibility_following_short:e=>{const{normalize:t}=e;return t(["Show replies to my follows"])},reply_visibility_self_short:e=>{const{normalize:t}=e;return t(["Show replies to self only"])},autohide_floating_post_button:e=>{const{normalize:t}=e;return t(["Automatically hide New Post button (mobile)"])},saving_err:e=>{const{normalize:t}=e;return t(["Error saving settings"])},saving_ok:e=>{const{normalize:t}=e;return t(["Settings saved"])},search_user_to_block:e=>{const{normalize:t}=e;return t(["Search whom you want to block"])},search_user_to_mute:e=>{const{normalize:t}=e;return t(["Search whom you want to mute"])},security_tab:e=>{const{normalize:t}=e;return t(["Security"])},scope_copy:e=>{const{normalize:t}=e;return t(["Copy scope when replying (DMs are always copied)"])},minimal_scopes_mode:e=>{const{normalize:t}=e;return t(["Minimize post scope selection options"])},set_new_avatar:e=>{const{normalize:t}=e;return t(["Set new avatar"])},set_new_profile_background:e=>{const{normalize:t}=e;return t(["Set new profile background"])},set_new_profile_banner:e=>{const{normalize:t}=e;return t(["Set new profile banner"])},reset_avatar:e=>{const{normalize:t}=e;return t(["Reset avatar"])},reset_profile_background:e=>{const{normalize:t}=e;return t(["Reset profile background"])},reset_profile_banner:e=>{const{normalize:t}=e;return t(["Reset profile banner"])},reset_avatar_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the avatar?"])},reset_banner_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the banner?"])},reset_background_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the background?"])},settings:e=>{const{normalize:t}=e;return t(["Settings"])},subject_input_always_show:e=>{const{normalize:t}=e;return t(["Always show subject field"])},subject_line_behavior:e=>{const{normalize:t}=e;return t(["Copy subject when replying"])},subject_line_email:e=>{const{normalize:t}=e;return t(['Like email: "re: subject"'])},subject_line_mastodon:e=>{const{normalize:t}=e;return t(["Like mastodon: copy as is"])},subject_line_noop:e=>{const{normalize:t}=e;return t(["Do not copy"])},conversation_display:e=>{const{normalize:t}=e;return t(["Conversation display style"])},conversation_display_tree:e=>{const{normalize:t}=e;return t(["Tree-style"])},conversation_display_tree_quick:e=>{const{normalize:t}=e;return t(["Tree view"])},disable_sticky_headers:e=>{const{normalize:t}=e;return t(["Don't stick column headers to top of the screen"])},show_scrollbars:e=>{const{normalize:t}=e;return t(["Show side column's scrollbars"])},third_column_mode:e=>{const{normalize:t}=e;return t(["When there's enough space, show third column containing"])},third_column_mode_none:e=>{const{normalize:t}=e;return t(["Don't show third column at all"])},third_column_mode_notifications:e=>{const{normalize:t}=e;return t(["Notifications column"])},third_column_mode_postform:e=>{const{normalize:t}=e;return t(["Main post form and navigation"])},columns:e=>{const{normalize:t}=e;return t(["Columns"])},column_sizes:e=>{const{normalize:t}=e;return t(["Column sizes"])},column_sizes_sidebar:e=>{const{normalize:t}=e;return t(["Sidebar"])},column_sizes_content:e=>{const{normalize:t}=e;return t(["Content"])},column_sizes_notifs:e=>{const{normalize:t}=e;return t(["Notifications"])},tree_advanced:e=>{const{normalize:t}=e;return t(["Allow more flexible navigation in tree view"])},tree_fade_ancestors:e=>{const{normalize:t}=e;return t(["Display ancestors of the current status in faint text"])},conversation_display_linear:e=>{const{normalize:t}=e;return t(["Linear-style"])},conversation_display_linear_quick:e=>{const{normalize:t}=e;return t(["Linear view"])},conversation_other_replies_button:e=>{const{normalize:t}=e;return t(['Show the "other replies" button'])},conversation_other_replies_button_below:e=>{const{normalize:t}=e;return t(["Below statuses"])},conversation_other_replies_button_inside:e=>{const{normalize:t}=e;return t(["Inside statuses"])},max_depth_in_thread:e=>{const{normalize:t}=e;return t(["Maximum number of levels in thread to display by default"])},post_status_content_type:e=>{const{normalize:t}=e;return t(["Post status content type"])},sensitive_by_default:e=>{const{normalize:t}=e;return t(["Mark posts as sensitive by default"])},stop_gifs:e=>{const{normalize:t}=e;return t(["Pause animated images until you hover on them"])},streaming:e=>{const{normalize:t}=e;return t(["Automatically show new posts when scrolled to the top"])},auto_update:e=>{const{normalize:t}=e;return t(["Show new posts automatically"])},user_mutes:e=>{const{normalize:t}=e;return t(["Users"])},useStreamingApi:e=>{const{normalize:t}=e;return t(["Receive posts and notifications real-time"])},use_websockets:e=>{const{normalize:t}=e;return t(["Use websockets (Realtime updates)"])},text:e=>{const{normalize:t}=e;return t(["Text"])},theme:e=>{const{normalize:t}=e;return t(["Theme"])},theme_help:e=>{const{normalize:t}=e;return t(["Use hex color codes (#rrggbb) to customize your color theme."])},theme_help_v2_1:e=>{const{normalize:t}=e;return t(['You can also override certain component\'s colors and opacity by toggling the checkbox, use "Clear all" button to clear all overrides.'])},theme_help_v2_2:e=>{const{normalize:t}=e;return t(["Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case."])},tooltipRadius:e=>{const{normalize:t}=e;return t(["Tooltips/alerts"])},type_domains_to_mute:e=>{const{normalize:t}=e;return t(["Search domains to mute"])},upload_a_photo:e=>{const{normalize:t}=e;return t(["Upload a photo"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},values:{false:e=>{const{normalize:t}=e;return t(["no"])},true:e=>{const{normalize:t}=e;return t(["yes"])}},virtual_scrolling:e=>{const{normalize:t}=e;return t(["Optimize timeline rendering"])},use_at_icon:e=>{const{normalize:t}=e;return t(["Display ","@"," symbol as an icon instead of text"])},mention_link_display:e=>{const{normalize:t}=e;return t(["Display mention links"])},mention_link_display_short:e=>{const{normalize:t}=e;return t(["always as short names (e.g. ","@","foo)"])},mention_link_display_full_for_remote:e=>{const{normalize:t}=e;return t(["as full names only for remote users (e.g. ","@","foo","@","example.org)"])},mention_link_display_full:e=>{const{normalize:t}=e;return t(["always as full names (e.g. ","@","foo","@","example.org)"])},mention_link_use_tooltip:e=>{const{normalize:t}=e;return t(["Show user card when clicking mention links"])},mention_link_show_avatar:e=>{const{normalize:t}=e;return t(["Show user avatar beside the link"])},mention_link_show_avatar_quick:e=>{const{normalize:t}=e;return t(["Show user avatar next to mentions"])},mention_link_fade_domain:e=>{const{normalize:t}=e;return t(["Fade domains (e.g. ","@","example.org in ","@","foo","@","example.org)"])},mention_link_bolden_you:e=>{const{normalize:t}=e;return t(["Highlight mention of you when you are mentioned"])},user_popover_avatar_action:e=>{const{normalize:t}=e;return t(["Popover avatar click action"])},user_popover_avatar_action_zoom:e=>{const{normalize:t}=e;return t(["Zoom the avatar"])},user_popover_avatar_action_close:e=>{const{normalize:t}=e;return t(["Close the popover"])},user_popover_avatar_action_open:e=>{const{normalize:t}=e;return t(["Open profile"])},user_popover_avatar_overlay:e=>{const{normalize:t}=e;return t(["Show user popover over user avatar"])},fun:e=>{const{normalize:t}=e;return t(["Fun"])},greentext:e=>{const{normalize:t}=e;return t(["Meme arrows"])},show_yous:e=>{const{normalize:t}=e;return t(["Show (You)s"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},notification_setting_filters:e=>{const{normalize:t}=e;return t(["Filters"])},notification_setting_block_from_strangers:e=>{const{normalize:t}=e;return t(["Block notifications from users who you do not follow"])},notification_setting_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},notification_setting_hide_notification_contents:e=>{const{normalize:t}=e;return t(["Hide the sender and contents of push notifications"])},notification_mutes:e=>{const{normalize:t}=e;return t(["To stop receiving notifications from a specific user, use a mute."])},notification_blocks:e=>{const{normalize:t}=e;return t(["Blocking a user stops all notifications as well as unsubscribes them."])},enable_web_push_notifications:e=>{const{normalize:t}=e;return t(["Enable web push notifications"])},more_settings:e=>{const{normalize:t}=e;return t(["More settings"])},style:{switcher:{keep_color:e=>{const{normalize:t}=e;return t(["Keep colors"])},keep_shadows:e=>{const{normalize:t}=e;return t(["Keep shadows"])},keep_opacity:e=>{const{normalize:t}=e;return t(["Keep opacity"])},keep_roundness:e=>{const{normalize:t}=e;return t(["Keep roundness"])},keep_fonts:e=>{const{normalize:t}=e;return t(["Keep fonts"])},save_load_hint:e=>{const{normalize:t}=e;return t(['"Keep" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.'])},reset:e=>{const{normalize:t}=e;return t(["Reset"])},clear_all:e=>{const{normalize:t}=e;return t(["Clear all"])},clear_opacity:e=>{const{normalize:t}=e;return t(["Clear opacity"])},load_theme:e=>{const{normalize:t}=e;return t(["Load theme"])},keep_as_is:e=>{const{normalize:t}=e;return t(["Keep as is"])},use_snapshot:e=>{const{normalize:t}=e;return t(["Old version"])},use_source:e=>{const{normalize:t}=e;return t(["New version"])},help:{upgraded_from_v2:e=>{const{normalize:t}=e;return t(["PleromaFE has been upgraded, theme could look a little bit different than you remember."])},v2_imported:e=>{const{normalize:t}=e;return t(["File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."])},future_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in newer version of FE."])},older_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in older version of FE."])},snapshot_present:e=>{const{normalize:t}=e;return t(["Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead."])},snapshot_missing:e=>{const{normalize:t}=e;return t(["No theme snapshot was in the file so it could look different than originally envisioned."])},fe_upgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's theme engine upgraded after version update."])},fe_downgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's version rolled back."])},migration_snapshot_ok:e=>{const{normalize:t}=e;return t(["Just to be safe, theme snapshot loaded. You can try loading theme data."])},migration_napshot_gone:e=>{const{normalize:t}=e;return t(["For whatever reason snapshot was missing, some stuff could look different than you remember."])},snapshot_source_mismatch:e=>{const{normalize:t}=e;return t(["Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version."])}}},common:{color:e=>{const{normalize:t}=e;return t(["Color"])},opacity:e=>{const{normalize:t}=e;return t(["Opacity"])},contrast:{hint:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Contrast ratio is ",n(o("ratio")),", it ",n(o("level"))," ",n(o("context"))])},level:{aa:e=>{const{normalize:t}=e;return t(["meets Level AA guideline (minimal)"])},aaa:e=>{const{normalize:t}=e;return t(["meets Level AAA guideline (recommended)"])},bad:e=>{const{normalize:t}=e;return t(["doesn't meet any accessibility guidelines"])}},context:{"18pt":e=>{const{normalize:t}=e;return t(["for large (18pt+) text"])},text:e=>{const{normalize:t}=e;return t(["for text"])}}}},common_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Common"])},main:e=>{const{normalize:t}=e;return t(["Common colors"])},foreground_hint:e=>{const{normalize:t}=e;return t(['See "Advanced" tab for more detailed control'])},rgbo:e=>{const{normalize:t}=e;return t(["Icons, accents, badges"])}},advanced_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Advanced"])},alert:e=>{const{normalize:t}=e;return t(["Alert background"])},alert_error:e=>{const{normalize:t}=e;return t(["Error"])},alert_warning:e=>{const{normalize:t}=e;return t(["Warning"])},alert_neutral:e=>{const{normalize:t}=e;return t(["Neutral"])},post:e=>{const{normalize:t}=e;return t(["Posts/User bios"])},badge:e=>{const{normalize:t}=e;return t(["Badge background"])},popover:e=>{const{normalize:t}=e;return t(["Tooltips, menus, popovers"])},badge_notification:e=>{const{normalize:t}=e;return t(["Notification"])},panel_header:e=>{const{normalize:t}=e;return t(["Panel header"])},top_bar:e=>{const{normalize:t}=e;return t(["Top bar"])},borders:e=>{const{normalize:t}=e;return t(["Borders"])},buttons:e=>{const{normalize:t}=e;return t(["Buttons"])},inputs:e=>{const{normalize:t}=e;return t(["Input fields"])},faint_text:e=>{const{normalize:t}=e;return t(["Faded text"])},underlay:e=>{const{normalize:t}=e;return t(["Underlay"])},wallpaper:e=>{const{normalize:t}=e;return t(["Wallpaper"])},poll:e=>{const{normalize:t}=e;return t(["Poll graph"])},icons:e=>{const{normalize:t}=e;return t(["Icons"])},highlight:e=>{const{normalize:t}=e;return t(["Highlighted elements"])},pressed:e=>{const{normalize:t}=e;return t(["Pressed"])},selectedPost:e=>{const{normalize:t}=e;return t(["Selected post"])},selectedMenu:e=>{const{normalize:t}=e;return t(["Selected menu item"])},disabled:e=>{const{normalize:t}=e;return t(["Disabled"])},toggled:e=>{const{normalize:t}=e;return t(["Toggled"])},tabs:e=>{const{normalize:t}=e;return t(["Tabs"])},chat:{incoming:e=>{const{normalize:t}=e;return t(["Incoming"])},outgoing:e=>{const{normalize:t}=e;return t(["Outgoing"])},border:e=>{const{normalize:t}=e;return t(["Border"])}}},radii:{_tab_label:e=>{const{normalize:t}=e;return t(["Roundness"])}},shadows:{_tab_label:e=>{const{normalize:t}=e;return t(["Shadow and lighting"])},component:e=>{const{normalize:t}=e;return t(["Component"])},override:e=>{const{normalize:t}=e;return t(["Override"])},shadow_id:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Shadow #",n(o("value"))])},blur:e=>{const{normalize:t}=e;return t(["Blur"])},spread:e=>{const{normalize:t}=e;return t(["Spread"])},inset:e=>{const{normalize:t}=e;return t(["Inset"])},hintV3:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["For shadows you can also use the ",n(o(0))," notation to use other color slot."])},filter_hint:{always_drop_shadow:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Warning, this shadow always uses ",n(o(0))," when browser supports it."])},drop_shadow_syntax:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0))," does not support ",n(o(1))," parameter and ",n(o(2))," keyword."])},avatar_inset:e=>{const{normalize:t}=e;return t(["Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars."])},spread_zero:e=>{const{normalize:t}=e;return t(["Shadows with spread > 0 will appear as if it was set to zero"])},inset_classic:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Inset shadows will be using ",n(o(0))])}},components:{panel:e=>{const{normalize:t}=e;return t(["Panel"])},panelHeader:e=>{const{normalize:t}=e;return t(["Panel header"])},topBar:e=>{const{normalize:t}=e;return t(["Top bar"])},avatar:e=>{const{normalize:t}=e;return t(["User avatar (in profile view)"])},avatarStatus:e=>{const{normalize:t}=e;return t(["User avatar (in post display)"])},popup:e=>{const{normalize:t}=e;return t(["Popups and tooltips"])},button:e=>{const{normalize:t}=e;return t(["Button"])},buttonHover:e=>{const{normalize:t}=e;return t(["Button (hover)"])},buttonPressed:e=>{const{normalize:t}=e;return t(["Button (pressed)"])},buttonPressedHover:e=>{const{normalize:t}=e;return t(["Button (pressed+hover)"])},input:e=>{const{normalize:t}=e;return t(["Input field"])}}},fonts:{_tab_label:e=>{const{normalize:t}=e;return t(["Fonts"])},help:e=>{const{normalize:t}=e;return t(['Select font to use for elements of UI. For "custom" you have to enter exact font name as it appears in system.'])},components:{interface:e=>{const{normalize:t}=e;return t(["Interface"])},input:e=>{const{normalize:t}=e;return t(["Input fields"])},post:e=>{const{normalize:t}=e;return t(["Post text"])},postCode:e=>{const{normalize:t}=e;return t(["Monospaced text in a post (rich text)"])}},family:e=>{const{normalize:t}=e;return t(["Font name"])},size:e=>{const{normalize:t}=e;return t(["Size (in px)"])},weight:e=>{const{normalize:t}=e;return t(["Weight (boldness)"])},custom:e=>{const{normalize:t}=e;return t(["Custom"])}},preview:{header:e=>{const{normalize:t}=e;return t(["Preview"])},content:e=>{const{normalize:t}=e;return t(["Content"])},error:e=>{const{normalize:t}=e;return t(["Example error"])},button:e=>{const{normalize:t}=e;return t(["Button"])},text:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["A bunch of more ",n(o(0))," and ",n(o(1))])},mono:e=>{const{normalize:t}=e;return t(["content"])},input:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},faint_link:e=>{const{normalize:t}=e;return t(["helpful manual"])},fine_print:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Read our ",n(o(0))," to learn nothing useful!"])},header_faint:e=>{const{normalize:t}=e;return t(["This is fine"])},checkbox:e=>{const{normalize:t}=e;return t(["I have skimmed over terms and conditions"])},link:e=>{const{normalize:t}=e;return t(["a nice lil' link"])}}},version:{title:e=>{const{normalize:t}=e;return t(["Version"])},backend_version:e=>{const{normalize:t}=e;return t(["Backend version"])},frontend_version:e=>{const{normalize:t}=e;return t(["Frontend version"])}}},time:{unit:{days:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," day"]),t([n(o(0))," days"])])},days_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"d"])},hours:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," hour"]),t([n(o(0))," hours"])])},hours_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"h"])},minutes:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," minute"]),t([n(o(0))," minutes"])])},minutes_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"min"])},months:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," month"]),t([n(o(0))," months"])])},months_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"mo"])},seconds:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," second"]),t([n(o(0))," seconds"])])},seconds_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"s"])},weeks:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," week"]),t([n(o(0))," weeks"])])},weeks_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"w"])},years:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," year"]),t([n(o(0))," years"])])},years_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"y"])}},in_future:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["in ",n(o(0))])},in_past:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0))," ago"])},now:e=>{const{normalize:t}=e;return t(["just now"])},now_short:e=>{const{normalize:t}=e;return t(["now"])}},timeline:{collapse:e=>{const{normalize:t}=e;return t(["Collapse"])},conversation:e=>{const{normalize:t}=e;return t(["Conversation"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error fetching timeline: ",n(o(0))])},load_older:e=>{const{normalize:t}=e;return t(["Load older statuses"])},no_retweet_hint:e=>{const{normalize:t}=e;return t(["Post is marked as followers-only or direct and cannot be repeated"])},repeated:e=>{const{normalize:t}=e;return t(["repeated"])},show_new:e=>{const{normalize:t}=e;return t(["Show new"])},reload:e=>{const{normalize:t}=e;return t(["Reload"])},up_to_date:e=>{const{normalize:t}=e;return t(["Up-to-date"])},no_more_statuses:e=>{const{normalize:t}=e;return t(["No more statuses"])},no_statuses:e=>{const{normalize:t}=e;return t(["No statuses"])},socket_reconnected:e=>{const{normalize:t}=e;return t(["Realtime connection established"])},socket_broke:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Realtime connection lost: CloseEvent code ",n(o(0))])},quick_view_settings:e=>{const{normalize:t}=e;return t(["Quick view settings"])},quick_filter_settings:e=>{const{normalize:t}=e;return t(["Quick filter settings"])}},status:{favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},repeat_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to repeat this status?"])},repeat_confirm_title:e=>{const{normalize:t}=e;return t(["Repeat confirmation"])},repeat_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Repeat"])},repeat_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not repeat"])},delete:e=>{const{normalize:t}=e;return t(["Delete status"])},edit:e=>{const{normalize:t}=e;return t(["Edit status"])},edited_at:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(last edited ",n(o("time")),")"])},pin:e=>{const{normalize:t}=e;return t(["Pin on profile"])},unpin:e=>{const{normalize:t}=e;return t(["Unpin from profile"])},pinned:e=>{const{normalize:t}=e;return t(["Pinned"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},unbookmark:e=>{const{normalize:t}=e;return t(["Unbookmark"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this status?"])},delete_confirm_title:e=>{const{normalize:t}=e;return t(["Delete confirmation"])},delete_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Delete"])},delete_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Keep"])},reply_to:e=>{const{normalize:t}=e;return t(["Reply to"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},replies_list:e=>{const{normalize:t}=e;return t(["Replies:"])},replies_list_with_others:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Replies (+",n(o("numReplies"))," other):"]),t(["Replies (+",n(o("numReplies"))," others):"])])},mute_conversation:e=>{const{normalize:t}=e;return t(["Mute conversation"])},unmute_conversation:e=>{const{normalize:t}=e;return t(["Unmute conversation"])},status_unavailable:e=>{const{normalize:t}=e;return t(["Status unavailable"])},copy_link:e=>{const{normalize:t}=e;return t(["Copy link to status"])},external_source:e=>{const{normalize:t}=e;return t(["External source"])},thread_muted:e=>{const{normalize:t}=e;return t(["Thread muted"])},thread_muted_and_words:e=>{const{normalize:t}=e;return t([", has words:"])},show_full_subject:e=>{const{normalize:t}=e;return t(["Show full subject"])},hide_full_subject:e=>{const{normalize:t}=e;return t(["Hide full subject"])},show_content:e=>{const{normalize:t}=e;return t(["Show content"])},hide_content:e=>{const{normalize:t}=e;return t(["Hide content"])},status_deleted:e=>{const{normalize:t}=e;return t(["This post was deleted"])},nsfw:e=>{const{normalize:t}=e;return t(["NSFW"])},expand:e=>{const{normalize:t}=e;return t(["Expand"])},you:e=>{const{normalize:t}=e;return t(["(You)"])},plus_more:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["+",n(o("number"))," more"])},many_attachments:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Post has ",n(o("number"))," attachment(s)"])},collapse_attachments:e=>{const{normalize:t}=e;return t(["Collapse attachments"])},show_all_attachments:e=>{const{normalize:t}=e;return t(["Show all attachments"])},show_attachment_in_modal:e=>{const{normalize:t}=e;return t(["Show in media modal"])},show_attachment_description:e=>{const{normalize:t}=e;return t(["Preview description (open attachment for full description)"])},hide_attachment:e=>{const{normalize:t}=e;return t(["Hide attachment"])},remove_attachment:e=>{const{normalize:t}=e;return t(["Remove attachment"])},attachment_stop_flash:e=>{const{normalize:t}=e;return t(["Stop Flash player"])},move_up:e=>{const{normalize:t}=e;return t(["Shift attachment left"])},move_down:e=>{const{normalize:t}=e;return t(["Shift attachment right"])},open_gallery:e=>{const{normalize:t}=e;return t(["Open gallery"])},thread_hide:e=>{const{normalize:t}=e;return t(["Hide this thread"])},thread_show:e=>{const{normalize:t}=e;return t(["Show this thread"])},thread_show_full:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Show everything under this thread (",n(o("numStatus"))," status in total, max depth ",n(o("depth")),")"]),t(["Show everything under this thread (",n(o("numStatus"))," statuses in total, max depth ",n(o("depth")),")"])])},thread_show_full_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},thread_follow:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["See the remaining part of this thread (",n(o("numStatus"))," status in total)"]),t(["See the remaining part of this thread (",n(o("numStatus"))," statuses in total)"])])},thread_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},ancestor_follow:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["See ",n(o("numReplies"))," other reply under this status"]),t(["See ",n(o("numReplies"))," other replies under this status"])])},ancestor_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},show_all_conversation_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},show_all_conversation:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Show full conversation (",n(o("numStatus"))," other status)"]),t(["Show full conversation (",n(o("numStatus"))," other statuses)"])])},show_only_conversation_under_this:e=>{const{normalize:t}=e;return t(["Only show replies to this status"])},status_history:e=>{const{normalize:t}=e;return t(["Status history"])}},user_card:{approve:e=>{const{normalize:t}=e;return t(["Approve"])},approve_confirm_title:e=>{const{normalize:t}=e;return t(["Approve confirmation"])},approve_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Approve"])},approve_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not approve"])},approve_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you want to approve ",n(o("user")),"'s follow request?"])},block:e=>{const{normalize:t}=e;return t(["Block"])},blocked:e=>{const{normalize:t}=e;return t(["Blocked!"])},block_confirm_title:e=>{const{normalize:t}=e;return t(["Block confirmation"])},block_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to block ",n(o("user")),"?"])},block_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Block"])},block_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not block"])},deactivated:e=>{const{normalize:t}=e;return t(["Deactivated"])},deny:e=>{const{normalize:t}=e;return t(["Deny"])},deny_confirm_title:e=>{const{normalize:t}=e;return t(["Deny confirmation"])},deny_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Deny"])},deny_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not deny"])},deny_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you want to deny ",n(o("user")),"'s follow request?"])},edit_profile:e=>{const{normalize:t}=e;return t(["Edit profile"])},favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},follow:e=>{const{normalize:t}=e;return t(["Follow"])},follow_cancel:e=>{const{normalize:t}=e;return t(["Cancel request"])},follow_sent:e=>{const{normalize:t}=e;return t(["Request sent!"])},follow_progress:e=>{const{normalize:t}=e;return t(["Requesting…"])},follow_unfollow:e=>{const{normalize:t}=e;return t(["Unfollow"])},unfollow_confirm_title:e=>{const{normalize:t}=e;return t(["Unfollow confirmation"])},unfollow_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to unfollow ",n(o("user")),"?"])},unfollow_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Unfollow"])},unfollow_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not unfollow"])},followees:e=>{const{normalize:t}=e;return t(["Following"])},followers:e=>{const{normalize:t}=e;return t(["Followers"])},following:e=>{const{normalize:t}=e;return t(["Following!"])},follows_you:e=>{const{normalize:t}=e;return t(["Follows you!"])},hidden:e=>{const{normalize:t}=e;return t(["Hidden"])},its_you:e=>{const{normalize:t}=e;return t(["It's you!"])},media:e=>{const{normalize:t}=e;return t(["Media"])},mention:e=>{const{normalize:t}=e;return t(["Mention"])},message:e=>{const{normalize:t}=e;return t(["Message"])},mute:e=>{const{normalize:t}=e;return t(["Mute"])},muted:e=>{const{normalize:t}=e;return t(["Muted"])},mute_confirm_title:e=>{const{normalize:t}=e;return t(["Mute confirmation"])},mute_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to mute ",n(o("user")),"?"])},mute_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Mute"])},mute_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not mute"])},mute_duration_prompt:e=>{const{normalize:t}=e;return t(["Mute this user for (0 for indefinite time):"])},per_day:e=>{const{normalize:t}=e;return t(["per day"])},remote_follow:e=>{const{normalize:t}=e;return t(["Remote follow"])},remove_follower:e=>{const{normalize:t}=e;return t(["Remove follower"])},remove_follower_confirm_title:e=>{const{normalize:t}=e;return t(["Remove follower confirmation"])},remove_follower_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Remove"])},remove_follower_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Keep"])},remove_follower_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to remove ",n(o("user"))," from your followers?"])},report:e=>{const{normalize:t}=e;return t(["Report"])},statuses:e=>{const{normalize:t}=e;return t(["Statuses"])},subscribe:e=>{const{normalize:t}=e;return t(["Subscribe"])},unsubscribe:e=>{const{normalize:t}=e;return t(["Unsubscribe"])},unblock:e=>{const{normalize:t}=e;return t(["Unblock"])},unblock_progress:e=>{const{normalize:t}=e;return t(["Unblocking…"])},block_progress:e=>{const{normalize:t}=e;return t(["Blocking…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},hide_repeats:e=>{const{normalize:t}=e;return t(["Hide repeats"])},show_repeats:e=>{const{normalize:t}=e;return t(["Show repeats"])},bot:e=>{const{normalize:t}=e;return t(["Bot"])},birthday:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Born ",n(o("birthday"))])},admin_menu:{moderation:e=>{const{normalize:t}=e;return t(["Moderation"])},grant_admin:e=>{const{normalize:t}=e;return t(["Grant Admin"])},revoke_admin:e=>{const{normalize:t}=e;return t(["Revoke Admin"])},grant_moderator:e=>{const{normalize:t}=e;return t(["Grant Moderator"])},revoke_moderator:e=>{const{normalize:t}=e;return t(["Revoke Moderator"])},activate_account:e=>{const{normalize:t}=e;return t(["Activate account"])},deactivate_account:e=>{const{normalize:t}=e;return t(["Deactivate account"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},force_nsfw:e=>{const{normalize:t}=e;return t(["Mark all posts as NSFW"])},strip_media:e=>{const{normalize:t}=e;return t(["Remove media from posts"])},force_unlisted:e=>{const{normalize:t}=e;return t(["Force posts to be unlisted"])},sandbox:e=>{const{normalize:t}=e;return t(["Force posts to be followers-only"])},disable_remote_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user from remote instances"])},disable_any_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user at all"])},quarantine:e=>{const{normalize:t}=e;return t(["Disallow user posts from federating"])},delete_user:e=>{const{normalize:t}=e;return t(["Delete user"])},delete_user_data_and_deactivate_confirmation:e=>{const{normalize:t}=e;return t(["This will permanently delete the data from this account and deactivate it. Are you absolutely sure?"])}},highlight:{disabled:e=>{const{normalize:t}=e;return t(["No highlight"])},solid:e=>{const{normalize:t}=e;return t(["Solid bg"])},striped:e=>{const{normalize:t}=e;return t(["Striped bg"])},side:e=>{const{normalize:t}=e;return t(["Side stripe"])}},note:e=>{const{normalize:t}=e;return t(["Note"])},note_blank:e=>{const{normalize:t}=e;return t(["(None)"])},edit_note:e=>{const{normalize:t}=e;return t(["Edit note"])},edit_note_apply:e=>{const{normalize:t}=e;return t(["Apply"])},edit_note_cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},user_profile:{timeline_title:e=>{const{normalize:t}=e;return t(["User timeline"])},profile_does_not_exist:e=>{const{normalize:t}=e;return t(["Sorry, this profile does not exist."])},profile_loading_error:e=>{const{normalize:t}=e;return t(["Sorry, there was an error loading this profile."])}},user_reporting:{title:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Reporting ",n(o(0))])},add_comment_description:e=>{const{normalize:t}=e;return t(["The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:"])},additional_comments:e=>{const{normalize:t}=e;return t(["Additional comments"])},forward_description:e=>{const{normalize:t}=e;return t(["The account is from another server. Send a copy of the report there as well?"])},forward_to:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Forward to ",n(o(0))])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occurred while processing your request."])}},who_to_follow:{more:e=>{const{normalize:t}=e;return t(["More"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])}},tool_tip:{media_upload:e=>{const{normalize:t}=e;return t(["Upload media"])},repeat:e=>{const{normalize:t}=e;return t(["Repeat"])},reply:e=>{const{normalize:t}=e;return t(["Reply"])},favorite:e=>{const{normalize:t}=e;return t(["Favorite"])},add_reaction:e=>{const{normalize:t}=e;return t(["Add Reaction"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},accept_follow_request:e=>{const{normalize:t}=e;return t(["Accept follow request"])},reject_follow_request:e=>{const{normalize:t}=e;return t(["Reject follow request"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},toggle_expand:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to show post in full"])},toggle_mute:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to reveal muted content"])},autocomplete_available:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("number"))," result is available. Use up and down keys to navigate through them."]),t([n(o("number"))," results are available. Use up and down keys to navigate through them."])])}},upload:{error:{base:e=>{const{normalize:t}=e;return t(["Upload failed."])},message:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Upload failed: ",n(o(0))])},file_too_big:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["File too big [",n(o("filesize")),n(o("filesizeunit"))," / ",n(o("allowedsize")),n(o("allowedsizeunit")),"]"])},default:e=>{const{normalize:t}=e;return t(["Try again later"])}},file_size_units:{B:e=>{const{normalize:t}=e;return t(["B"])},KiB:e=>{const{normalize:t}=e;return t(["KiB"])},MiB:e=>{const{normalize:t}=e;return t(["MiB"])},GiB:e=>{const{normalize:t}=e;return t(["GiB"])},TiB:e=>{const{normalize:t}=e;return t(["TiB"])}}},search:{people:e=>{const{normalize:t}=e;return t(["People"])},hashtags:e=>{const{normalize:t}=e;return t(["Hashtags"])},person_talking:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("count"))," person talking"])},people_talking:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("count"))," people talking"])},no_results:e=>{const{normalize:t}=e;return t(["No results"])},no_more_results:e=>{const{normalize:t}=e;return t(["No more results"])},load_more:e=>{const{normalize:t}=e;return t(["Load more results"])}},password_reset:{forgot_password:e=>{const{normalize:t}=e;return t(["Forgot password?"])},password_reset:e=>{const{normalize:t}=e;return t(["Password reset"])},instruction:e=>{const{normalize:t}=e;return t(["Enter your email address or username. We will send you a link to reset your password."])},placeholder:e=>{const{normalize:t}=e;return t(["Your email or username"])},check_email:e=>{const{normalize:t}=e;return t(["Check your email for a link to reset your password."])},return_home:e=>{const{normalize:t}=e;return t(["Return to the home page"])},too_many_requests:e=>{const{normalize:t}=e;return t(["You have reached the limit of attempts, try again later."])},password_reset_disabled:e=>{const{normalize:t}=e;return t(["Password reset is disabled. Please contact your instance administrator."])},password_reset_required:e=>{const{normalize:t}=e;return t(["You must reset your password to log in."])},password_reset_required_but_mailer_is_disabled:e=>{const{normalize:t}=e;return t(["You must reset your password, but password reset is disabled. Please contact your instance administrator."])}},chats:{you:e=>{const{normalize:t}=e;return t(["You:"])},message_user:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Message ",n(o("nickname"))])},delete:e=>{const{normalize:t}=e;return t(["Delete"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},new:e=>{const{normalize:t}=e;return t(["New Chat"])},empty_message_error:e=>{const{normalize:t}=e;return t(["Cannot post empty message"])},more:e=>{const{normalize:t}=e;return t(["More"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this message?"])},error_loading_chat:e=>{const{normalize:t}=e;return t(["Something went wrong when loading the chat."])},error_sending_message:e=>{const{normalize:t}=e;return t(["Something went wrong when sending the message."])},empty_chat_list_placeholder:e=>{const{normalize:t}=e;return t(["You don't have any chats yet. Start a new chat!"])}},lists:{lists:e=>{const{normalize:t}=e;return t(["Lists"])},new:e=>{const{normalize:t}=e;return t(["New List"])},title:e=>{const{normalize:t}=e;return t(["List title"])},search:e=>{const{normalize:t}=e;return t(["Search users"])},create:e=>{const{normalize:t}=e;return t(["Create"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},delete:e=>{const{normalize:t}=e;return t(["Delete list"])},following_only:e=>{const{normalize:t}=e;return t(["Limit to Following"])},manage_lists:e=>{const{normalize:t}=e;return t(["Manage lists"])},manage_members:e=>{const{normalize:t}=e;return t(["Manage list members"])},add_members:e=>{const{normalize:t}=e;return t(["Search for more users"])},remove_from_list:e=>{const{normalize:t}=e;return t(["Remove from list"])},add_to_list:e=>{const{normalize:t}=e;return t(["Add to list"])},is_in_list:e=>{const{normalize:t}=e;return t(["Already in list"])},editing_list:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Editing list ",n(o("listTitle"))])},creating_list:e=>{const{normalize:t}=e;return t(["Creating new list"])},update_title:e=>{const{normalize:t}=e;return t(["Save Title"])},really_delete:e=>{const{normalize:t}=e;return t(["Really delete list?"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error manipulating lists: ",n(o(0))])}},file_type:{audio:e=>{const{normalize:t}=e;return t(["Audio"])},video:e=>{const{normalize:t}=e;return t(["Video"])},image:e=>{const{normalize:t}=e;return t(["Image"])},file:e=>{const{normalize:t}=e;return t(["File"])}},display_date:{today:e=>{const{normalize:t}=e;return t(["Today"])}},update:{big_update_title:e=>{const{normalize:t}=e;return t(["Please bear with us"])},big_update_content:e=>{const{normalize:t}=e;return t(["We haven't had a release in a while, so things might look and feel different than what you're used to."])},update_bugs:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Please report any issues and bugs on ",n(o("pleromaGitlab")),", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE."])},update_bugs_gitlab:e=>{const{normalize:t}=e;return t(["Pleroma GitLab"])},update_changelog:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["For more details on what's changed, see ",n(o("theFullChangelog")),"."])},update_changelog_here:e=>{const{normalize:t}=e;return t(["the full changelog"])},art_by:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Art by ",n(o("linkToArtist"))])}},unicode_domain_indicator:{tooltip:e=>{const{normalize:t}=e;return t(["This domain contains non-ascii characters."])}}}},1395:(e,t,n)=>{var o={"./af.json":[44919,6355],"./am.json":[53139,5119],"./ar.json":[44557,9873],"./ar_SA.json":[23450,7360],"./as.json":[44359,3377],"./ast.json":[13764,7569],"./az.json":[86459,2342],"./be.json":[50866,7304],"./bg.json":[26219,3974],"./bn.json":[69178,9064],"./br.json":[67871,6148],"./bs.json":[75340,8134],"./ca.json":[86914,4691],"./ccp.json":[73872,1162],"./ceb.json":[64478,9790],"./chr.json":[61017,6869],"./ckb.json":[56412,2656],"./cs.json":[8888,4710],"./cy.json":[25392,6272],"./da.json":[35042,1596],"./de.json":[35169,6226],"./de_CH.json":[28246,7164],"./doi.json":[59784,4209],"./dsb.json":[60634,1790],"./el.json":[98338,7879],"./en.json":[74990,5728],"./en_001.json":[62736,577],"./en_AU.json":[2597,9360],"./en_CA.json":[1516,4879],"./en_GB.json":[84830,50],"./en_IN.json":[71809,8988],"./es.json":[61148,6831],"./es_419.json":[25696,8873],"./es_MX.json":[11915,2699],"./es_US.json":[87826,3313],"./et.json":[66641,3276],"./eu.json":[6541,2992],"./fa.json":[43305,5521],"./fi.json":[40752,420],"./fil.json":[26843,1236],"./fo.json":[43032,8995],"./fr.json":[80898,2223],"./fr_CA.json":[54515,1821],"./ga.json":[66572,4571],"./gd.json":[9185,6116],"./gl.json":[23840,6126],"./gu.json":[85811,7261],"./ha.json":[91566,227],"./ha_NE.json":[3400,5304],"./he.json":[26260,5548],"./hi.json":[18136,5968],"./hi_Latn.json":[95638,3056],"./hr.json":[77435,2861],"./hsb.json":[15758,8015],"./hu.json":[2727,4902],"./hy.json":[8397,6344],"./ia.json":[49796,6936],"./id.json":[56635,9465],"./ig.json":[26406,9895],"./is.json":[51391,7300],"./it.json":[54879,8970],"./ja.json":[2971,1290],"./jv.json":[18644,2479],"./ka.json":[71255,6068],"./kab.json":[92892,9780],"./kk.json":[46419,2873],"./kl.json":[2227,2397],"./km.json":[65729,1404],"./kn.json":[65611,278],"./ko.json":[67080,2966],"./kok.json":[47209,2599],"./ku.json":[18738,2883],"./ky.json":[89690,4785],"./lb.json":[3929,4770],"./lo.json":[19778,7464],"./lt.json":[41683,7169],"./lv.json":[54873,8898],"./mai.json":[11781,1613],"./mi.json":[11569,6701],"./mk.json":[67589,9921],"./ml.json":[24415,2685],"./mn.json":[50512,4718],"./mni.json":[81597,5401],"./mr.json":[97747,1911],"./ms.json":[81588,9924],"./mt.json":[25081,9399],"./my.json":[8608,6790],"./ne.json":[8572,9377],"./nl.json":[52355,6773],"./nn.json":[52874,9414],"./no.json":[48005,9979],"./or.json":[26728,1012],"./pa.json":[15042,6946],"./pa_Arab.json":[43578,9994],"./pcm.json":[91163,5104],"./pl.json":[61335,1095],"./ps.json":[51828,678],"./pt.json":[38543,5041],"./pt_PT.json":[8063,1546],"./qu.json":[15821,8031],"./rm.json":[5014,5887],"./ro.json":[34064,9864],"./ru.json":[95222,8395],"./rw.json":[12710,346],"./sa.json":[69343,2243],"./sat.json":[51243,7855],"./sc.json":[1319,2874],"./sd.json":[67728,6826],"./si.json":[5044,4354],"./sk.json":[45626,2350],"./sl.json":[76091,1553],"./so.json":[93761,625],"./sq.json":[1230,4368],"./sr.json":[60445,3887],"./sr_Cyrl_BA.json":[38940,6060],"./sr_Latn.json":[21650,8681],"./sr_Latn_BA.json":[78328,5115],"./su.json":[54395,1959],"./sv.json":[3418,3241],"./sw.json":[11958,7585],"./sw_KE.json":[35001,3994],"./ta.json":[92930,7897],"./te.json":[8748,4786],"./tg.json":[20999,313],"./th.json":[23900,3951],"./ti.json":[368,3568],"./tk.json":[88770,1780],"./to.json":[95781,1584],"./tr.json":[92619,9978],"./tt.json":[87782,2569],"./ug.json":[19005,9757],"./uk.json":[82057,9871],"./ur.json":[13889,6797],"./uz.json":[45108,1056],"./vi.json":[97099,5224],"./wo.json":[9923,7303],"./xh.json":[29064,786],"./yo.json":[11971,8732],"./yo_BJ.json":[64533,9926],"./yue.json":[40648,1452],"./yue_Hans.json":[24800,4424],"./zh.json":[34626,457],"./zh_Hant.json":[82560,2767],"./zh_Hant_HK.json":[47677,1044],"./zu.json":[73784,9319]};function r(e){if(!n.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],r=t[0];return n.e(t[1]).then((()=>n.t(r,19)))}r.keys=()=>Object.keys(o),r.id=1395,e.exports=r},19003:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>u});var o=n(15861),r=n(93433),i=n(4942),s=n(64687),a=n.n(s);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const u=function(e){var t=d(e.emoji),n=e.store&&p(e.store);return function(o,r){var i=o[0];return":"===i&&e.emoji?t(o,r):"@"===i&&n?n(o):[]}};var d=function(e){return function(t,n){var o=t.toLowerCase().substr(1);return e.map((function(e){return l(l({},e),n(e))})).filter((function(e){return e.names.concat(e.keywords).filter((function(e){return e.toLowerCase().match(o)})).length})).map((function(e){var t=0;return t+=Math.max.apply(Math,(0,r.Z)(e.names.map((function(e){return e.toLowerCase()===o?200:0}))).concat([0])),t+=e.imageUrl?100:0,t+=Math.max.apply(Math,(0,r.Z)(e.names.map((function(e){return e.toLowerCase().startsWith(o)?10:0}))).concat([0])),t-=e.displayText.length,e.score=t,e})).sort((function(e,t){var n=e.displayText>t.displayText?.5:-.5;return t.score-e.score+n}))}},p=function(e){var t=e.dispatch,n=e.state,r=[],i="",s=null,c=null,l=function(e){return c&&c(),new Promise((function(n,o){s=setTimeout((function(){(function(e){return t("searchUsers",{query:e})})(e).then(n).catch(o)}),300),c=function(){clearTimeout(s),n([])}}))};return function(){var e=(0,o.Z)(a().mark((function e(t){var o,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.toLowerCase().substr(1),i!==o){e.next=3;break}return e.abrupt("return",r);case 3:if(r=[],i=o,o.includes("@")){e.next=8;break}return e.next=8,l(o);case 8:return s=n.users.users.filter((function(e){return e.screen_name.toLowerCase().startsWith(o)||e.name.toLowerCase().startsWith(o)})).slice(0,20).sort((function(e,t){var n=0,r=0;return n+=e.screen_name.toLowerCase().startsWith(o)?2:0,r+=t.screen_name.toLowerCase().startsWith(o)?2:0,n+=e.name.toLowerCase().startsWith(o)?1:0,10*((r+=t.name.toLowerCase().startsWith(o)?1:0)-n)+(e.name>t.name?1:-1)+(e.screen_name>t.screen_name?1:-1)})).map((function(e){return{user:e,displayText:e.screen_name_ui,detailText:e.name,imageUrl:e.profile_image_url_original,replacement:"@"+e.screen_name+" "}})),r=s||[],e.abrupt("return",r);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}},92820:(e,t,n)=>{"use strict";n.d(t,{Z:()=>O});var o=n(93433),r=n(29439),i=n(44925),s=n(42348),a=n.n(s),c=n(27955),l=n.n(c),u=n(66252);function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var m=function(e){var t=/(?:<\/(\w+)>|<(\w+)\s?.*?\/?>)/gi.exec(e);return t&&(t[1]||t[2])},h=function(e,t){var n=e.substring(1,e.length-1).replace(new RegExp("^"+m(e)),"").replace(/\/?$/,"").trim(),o=Array.from(n.matchAll(/([a-z0-9-]+)(?:=("[^"]+?"|'[^']+?'))?/gi)).map((function(e){var t=(0,r.Z)(e,3);return t[0],[t[1],t[2]]})).map((function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];return o?[n,o.substring(1,o.length-1)]:[n,!0]}));return Object.fromEntries(o.filter(t||function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1],i=n.toLowerCase();return"style"!==i&&("class"!==i||"greentext"===o||"cyantext"===o)}))},f=function(e,t,n){for(var o=[],r="",i=0;i<e.length;i++){var s=e[i];if(":"===s){var a,c=e.slice(i+1),l=!1,u=d(t);try{for(u.s();!(a=u.n()).done;){var p=a.value;if(c.slice(0,p.shortcode.length+1)===p.shortcode+":"){l=p;break}}}catch(e){u.e(e)}finally{u.f()}l?(o.push(r),r="",o.push(n(l)),i+=l.shortcode.length+1):r+=s}else r+=s}return r&&o.push(r),o};function g(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var w=n(32140),b=n(21268),y=n(49963),_={class:"HashtagLink"},k=["href","innerHTML"];const S={name:"HashtagLink",props:{url:{required:!0,type:String},content:{required:!0,type:String},tag:{required:!1,type:String,default:""}},methods:{onClick:function(){var e,t,n=this.tag||(e=this.url,!!(t=/tag[s]*\/(\w+)$/g.exec(e))&&t[1]);if(n){var o=this.generateTagLink(n);this.$router.push(o)}else window.open(this.url,"_blank")},generateTagLink:function(e){return"/tag/".concat(e)}}},j=(0,n(83744).Z)(S,[["render",function(e,t,n,o,r,i){return(0,u.wg)(),(0,u.iD)("span",_,[(0,u._)("a",{href:e.url,class:"original",target:"_blank",onClick:t[0]||(t[0]=(0,y.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"])),innerHTML:e.content},null,8,k)])}]]);var C=["index"];const O={name:"RichContent",components:{MentionsLine:b.Z,HashtagLink:j},props:{html:{required:!0,type:String},attentions:{required:!1,default:function(){return[]}},emoji:{required:!0,type:Array},handleLinks:{required:!1,type:Boolean,default:!1},greentext:{required:!1,type:Boolean,default:!1}},render:function(){var e=this,t=z(this.html,this.greentext).newHtml,n=null,s="",a=[],c=[],d=[],p=[],g=0,v=0,y=!1,_=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),n=[],o=[["",n]],r="",i=null,s=function(){return o[o.length-1][1]},a=function(){""!==r&&(s().push(r),r="")},c=function(e){s().push([e])},u=function(e){var t=s(),n=[l()(e),[]];o.push(n),t.push(n)},d=function(e){var t=o[o.length-1];m(o[o.length-1][0])===m(e)?(t.push(e),o.pop()):s().push(e)},p=0;p<e.length;p++){var h=e[p];if("<"===h&&null===i)a(),i=h;else if(">"!==h&&null!==i)i+=h;else if(">"===h&&null!==i){var f=i+=h;i=null;var g=m(f);"/"===f[1]?d(f):t.has(g)||"/"===f[f.length-2]?c(f):u(f)}else r+=h}return i&&(r+=i),a(),n}(t).map((function t(o,i,a,l){if("string"==typeof o){var p=""===o.trim();return o.includes("\n")&&(n=null),p?(s=o,i!==a.length-1&&null!==n?o.trim():o):(n=null,o.includes(":")&&(o=["",f(o,e.emoji,(function(e){var t=e.shortcode,n=e.url;return(0,u.Wm)(w.Z,{class:"emoji img",src:n,title:":".concat(t,":"),alt:":".concat(t,":")},null)}))]),o)}if(Array.isArray(o)){var v=o,y=(0,r.Z)(v,3),_=y[0],k=y[1],S=y[2],j=m(_),C=h(_,(function(){return!0})),O=h(_),z=null===n||k&&"string"==typeof k[0]&&k[0].match(/^\s/)?"":s;switch(j){case"br":n=null;break;case"img":return["",[z,(D=_,(0,u.Wm)(w.Z,(0,u.dG)(h(D),{class:"img"}),null))],""];case"a":if(!e.handleLinks)break;if(C.class&&C.class.includes("mention"))return function(t,o){var r=P(t,o,g++);return r.notifying=e.attentions.some((function(e){return e.statusnet_profile_url===r.url})),c.push(r),null===n&&(n=[]),n.push(r),n.length>b.d&&d.push(r),1===n.length?(0,u.Wm)(b.Z,{mentions:n},null):""}(O,k);n=null;break;case"span":if(e.handleLinks&&C.class&&C.class.includes("h-card"))return["",k.map(t),""]}return void 0!==k?["",[z,[_,k.map(t),S]],""]:["",[z,o],""]}var D})),k=(0,o.Z)(_).reverse().map((function t(n,s,c,d){var f;if("string"==typeof n)return""===n.trim()?n:(y||(y=!0),l()(n));if(Array.isArray(n)){var g=(0,r.Z)(n,2),w=g[0],b=g[1],_=""===w?"":m(w);switch(_){case"a":if(!e.handleLinks)break;var k=h(w,(function(){return!0})),S=h(w,(function(){return!0}));if(k.class&&k.class.includes("hashtag")||"tag"===k.rel)return function(e,t,n){var o=P(e,t,v++),r=(o.index,(0,i.Z)(o,C));p.push(r),n||a.push(r);var s=r.url,c=r.tag,l=r.content;return(0,u.Wm)(j,{url:s,tag:c,content:l},null)}(S,b,y);S.target="_blank";var O=(0,o.Z)(b).reverse().map(t).reverse();return(0,u.Wm)("a",S,[O]);case"":return(0,o.Z)(b).reverse().map(t).reverse()}if(void 0!==b){var z=Array.isArray(b)?(0,o.Z)(b).reverse().map(t).reverse():b;return(0,u.Wm)(_,h(w),"function"==typeof(f=z)||"[object Object]"===Object.prototype.toString.call(f)&&!(0,u.lA)(f)?z:{default:function(){return[z]}})}return(0,u.Wm)(_,null,null)}return n})).reverse(),S=(0,u.Wm)("span",{class:"RichContent"},[k]),O={lastTags:a,writtenMentions:c,writtenTags:p,invisibleMentions:d};return this.$emit("parseReady",O),S}};var P=function(e,t,n){var o=t.map((function e(t){return"string"==typeof t?t:t[1].map(e).join("")})).join("");return{index:n,url:e.href,tag:e["data-tag"],content:a()(t).join(""),textContent:o}},z=function(e,t){var n=new Set(["p","div"]),r=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),r=new Set(["address","article","aside","blockquote","details","dialog","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","ol","p","pre","section","table","ul"]),i=new Set(["br"]),s=new Set([].concat((0,o.Z)(r.values()),(0,o.Z)(i.values()))),a=new Set(s),c=g(n);try{for(c.s();!(e=c.n()).done;){var l=e.value;a.delete(l)}}catch(e){c.e(e)}finally{c.f()}for(var u=new Set([].concat((0,o.Z)(a.values()),(0,o.Z)(n.values()))),d=[],p=[],h="",f=null,v=function(){h.trim().length>0?d.push({level:[].concat(p),text:h}):d.push(h),h=""},w=function(e){v(),d.push(e)},b=function(e){v(),d.push(e),p.unshift(m(e))},y=function(e){p[0]===m(e)?(v(),d.push(e),p.shift()):h+=e},_=0;_<t.length;_++){var k=t[_];if("<"===k&&null===f)f=k;else if(">"!==k&&null!==f)f+=k;else if(">"===k&&null!==f){var S=f+=k;f=null;var j=m(S);u.has(j)?i.has(j)?w(S):a.has(j)?"/"===S[1]?y(S):"/"===S[S.length-2]?w(S):b(S):h+=S:h+=S}else"\n"===k?w(k):h+=k}return f&&(h+=f),v(),d}(e);return{newHtml:r.reverse().map((function(e,o,r){if(!e.text)return e;var i=e.text;if(t&&e.level.every((function(e){return n.has(e)}))&&(i.includes("&gt;")||i.includes("&lt;"))){var s=i.replace(/<[^>]+?>/gi,"").replace(/@\w+/gi,"").trim();if(s.startsWith("&gt;"))return"<span class='greentext'>".concat(i,"</span>");if(s.startsWith("&lt;"))return"<span class='cyantext'>".concat(i,"</span>")}return i})).reverse().join("")}}},79354:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(4942),r=n(66252),i=n(989),s=n(57810);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var c=function(e){return e.findIndex((function(e){return e.props}))};const l={name:"TabSwitcher",props:{renderOnlyFocused:{required:!1,type:Boolean,default:!1},onSwitch:{required:!1,type:Function,default:void 0},activeTab:{required:!1,type:String,default:void 0},scrollableTabs:{required:!1,type:Boolean,default:!1},sideTabBar:{required:!1,type:Boolean,default:!1},bodyScrollLock:{required:!1,type:Boolean,default:!1}},data:function(){return{active:c(this.slots())}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({activeIndex:function(){var e=this;return this.activeTab?this.slots().findIndex((function(t){return t&&t.props&&e.activeTab===t.props.key})):this.active},isActive:function(){var e=this;return function(t){return e.$slots.default().findIndex((function(e){return e.props&&e.props["data-tab-name"]===t}))===e.activeIndex}},settingsModalVisible:function(){return"visible"===this.settingsModalState}},(0,i.rn)({settingsModalState:function(e){return e.interface.settingsModalState}})),beforeUpdate:function(){this.slots()[this.active].props||(this.active=c(this.slots()))},methods:{clickTab:function(e){var t=this;return function(n){n.preventDefault(),t.setTab(e)}},slots:function(){return this.$slots.default()[0].type===r.HY?this.$slots.default()[0].children:this.$slots.default()},setTab:function(e){"function"==typeof this.onSwitch&&this.onSwitch.call(null,this.slots()[e].key),this.active=e,this.scrollableTabs&&(this.$refs.contents.scrollTop=0)}},render:function(){var e=this,t=this.slots().map((function(t,n){var o=t.props;if(o){var i=["tab","button-default"],a=["tab-wrapper"];return e.activeIndex===n&&(i.push("active"),a.push("active")),o.image?(0,r.Wm)("div",{class:a.join(" ")},[(0,r.Wm)("button",{disabled:o.disabled,onClick:e.clickTab(n),class:i.join(" "),type:"button"},[(0,r.Wm)("img",{src:o.image,title:o["image-tooltip"]},null),o.label?"":o.label])]):(0,r.Wm)("div",{class:a.join(" ")},[(0,r.Wm)("button",{disabled:o.disabled,onClick:e.clickTab(n),class:i.join(" "),type:"button"},[o.icon?(0,r.Wm)(s.GN,{class:"tab-icon",size:"2x","fixed-width":!0,icon:o.icon},null):"",(0,r.Wm)("span",{class:"text"},[o.label])])])}})),n=this.slots().map((function(t,n){var o=t.props;if(o){var i=e.activeIndex===n,s=[i?"active":"hidden"];o.fullHeight&&s.push("full-height");var a=!e.renderOnlyFocused||i?t:"";return(0,r.Wm)("div",{class:s},[e.sideTabBar?(0,r.Wm)("h1",{class:"mobile-label"},[o.label]):"",a])}}));return(0,r.Wm)("div",{class:"tab-switcher "+(this.sideTabBar?"side-tabs":"top-tabs")},[(0,r.Wm)("div",{class:"tabs"},[t]),(0,r.wy)((0,r.Wm)("div",{ref:"contents",class:"contents"+(this.scrollableTabs?" scrollable-tabs":"")},[n]),[[(0,r.Q2)("body-scroll-lock"),this.bodyScrollLock]])])}}},8312:e=>{var t={ja:"ja_pedantic"};e.exports={languages:["ar","ca","cs","de","eo","en","es","et","eu","fi","fr","ga","he","hu","it","ja","ja_easy","ko","nb","nl","oc","pl","pt","ro","ru","sk","te","uk","zh","zh_Hant"],langCodeToJsonName:function(e){return t[e]||e},langCodeToCldrName:function(e){return e},ensureFinalFallback:function(e){var t=Array.isArray(e)?e:[e];return t.includes("en")?t:t.concat(["en"])}}},72617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o=n(84506),r=n(15861),i=n(18446),s=n.n(i),a=n(64687),c=n.n(a),l=n(8312);function u(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var p,m=function(e){return n(27650)("./".concat((0,l.langCodeToJsonName)(e),".json"))};const h={languages:l.languages,default:{en:n(88797).default},setLanguage:(p=(0,r.Z)(c().mark((function e(t,n){var r,i,a,d,p,h,f,g;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((r=(Array.isArray(n)?n:[n]).filter((function(e){return e}))).includes("en")||r.push("en"),i=(0,o.Z)(r),a=i[0],d=i.slice(1),a!==t.locale||!s()(d,t.fallbackLocale)){e.next=5;break}return e.abrupt("return");case 5:p=u(r),e.prev=6,p.s();case 8:if((h=p.n()).done){e.next=17;break}if(c=f=h.value,!l.languages.includes(c)){e.next=15;break}return e.next=13,m(f);case 13:g=e.sent,t.setLocaleMessage(f,g.default);case 15:e.next=8;break;case 17:e.next=22;break;case 19:e.prev=19,e.t0=e.catch(6),p.e(e.t0);case 22:return e.prev=22,p.f(),e.finish(22);case 25:t.fallbackLocale=d,t.locale=a;case 27:case"end":return e.stop()}var c}),e,null,[[6,19,22,25]])}))),function(e,t){return p.apply(this,arguments)})}},43002:(e,t,n)=>{"use strict";var o=n(15861),r=n(64687),i=n.n(r),s=n(989),a=(n(67810),n(73152));try{new EventTarget}catch(e){window.EventTarget=a.Z}const c={state:{settingsModalState:"hidden",settingsModalLoaded:!1,settingsModalTargetTab:null,settings:{currentSaveStateNotice:null,noticeClearTimeout:null,notificationPermission:null},browserSupport:{cssFilter:window.CSS&&window.CSS.supports&&(window.CSS.supports("filter","drop-shadow(0 0)")||window.CSS.supports("-webkit-filter","drop-shadow(0 0)"))},layoutType:"normal",globalNotices:[],layoutHeight:0,lastTimeline:null},mutations:{settingsSaved:function(e,t){var n=t.success,o=t.error;n?(e.noticeClearTimeout&&clearTimeout(e.noticeClearTimeout),e.settings.currentSaveStateNotice={error:!1,data:n},e.settings.noticeClearTimeout=setTimeout((function(){return delete e.settings.currentSaveStateNotice}),2e3)):e.settings.currentSaveStateNotice={error:!0,errorData:o}},setNotificationPermission:function(e,t){e.notificationPermission=t},setLayoutType:function(e,t){e.layoutType=t},closeSettingsModal:function(e){e.settingsModalState="hidden"},togglePeekSettingsModal:function(e){switch(e.settingsModalState){case"minimized":return void(e.settingsModalState="visible");case"visible":return void(e.settingsModalState="minimized");default:throw new Error("Illegal minimization state of settings modal")}},openSettingsModal:function(e){e.settingsModalState="visible",e.settingsModalLoaded||(e.settingsModalLoaded=!0)},setSettingsModalTargetTab:function(e,t){e.settingsModalTargetTab=t},pushGlobalNotice:function(e,t){e.globalNotices.push(t)},removeGlobalNotice:function(e,t){e.globalNotices=e.globalNotices.filter((function(e){return e!==t}))},setLayoutHeight:function(e,t){e.layoutHeight=t},setLayoutWidth:function(e,t){e.layoutWidth=t},setLastTimeline:function(e,t){e.lastTimeline=t}},actions:{setPageTitle:function(e){var t=e.rootState,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";document.title="".concat(n," ").concat(t.instance.name)},settingsSaved:function(e,t){var n=e.commit;e.dispatch,n("settingsSaved",{success:t.success,error:t.error})},setNotificationPermission:function(e,t){(0,e.commit)("setNotificationPermission",t)},closeSettingsModal:function(e){(0,e.commit)("closeSettingsModal")},openSettingsModal:function(e){(0,e.commit)("openSettingsModal")},togglePeekSettingsModal:function(e){(0,e.commit)("togglePeekSettingsModal")},clearSettingsModalTargetTab:function(e){(0,e.commit)("setSettingsModalTargetTab",null)},openSettingsModalTab:function(e,t){var n=e.commit;n("setSettingsModalTargetTab",t),n("openSettingsModal")},pushGlobalNotice:function(e,t){var n=e.commit,o=e.dispatch,r=e.state,i=t.messageKey,s=t.messageArgs,a=void 0===s?{}:s,c=t.level,l=void 0===c?"error":c,u=t.timeout,d=void 0===u?0:u;n("pushGlobalNotice",{messageKey:i,messageArgs:a,level:l});var p=r.globalNotices[r.globalNotices.length-1];return d&&setTimeout((function(){return o("removeGlobalNotice",p)}),d),p},removeGlobalNotice:function(e,t){(0,e.commit)("removeGlobalNotice",t)},setLayoutHeight:function(e,t){(0,e.commit)("setLayoutHeight",t)},setLayoutWidth:function(e,t){var n=e.commit,o=e.state,r=e.rootGetters,i=e.rootState,s=t;void 0!==t?n("setLayoutWidth",t):s=o.layoutWidth;var a=s<=800?"mobile":"normal";"none"!==r.mergedConfig.thirdColumnMode&&i.users.currentUser?n("setLayoutType",s>=1300?"wide":a):n("setLayoutType",a)},setLastTimeline:function(e,t){(0,e.commit)("setLastTimeline",t)}}};var l=n(29439),u=n(93433),d=n(4942),p=n(77394),m=n(40454),h=n(77776),f=n(85565),g=n(8312);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=["smileys-and-emotion","people-and-body","animals-and-nature","food-and-drink","travel-and-places","activities","objects","symbols","flags"],y=function(){for(var e=127462,t="A".codePointAt(0),n=new Array(26),o=e;o<=127487;++o){var r=String.fromCodePoint(t+o-e);n[o-e]={replacement:String.fromCodePoint(o),imageUrl:!1,displayText:"regional_indicator_"+r,displayTextI18n:{key:"emoji.regional_indicator",args:{letter:r}}}}return n}(),_=function(e){return n(1395)("./".concat((0,g.langCodeToCldrName)(e),".json")).then((function(e){return e.default}))},k=function(e,t){var n=Object.keys(t);return w(w({},e),{},{annotations:n.reduce((function(n,o){return n[o]=t[o][e.replacement],n}),{})})};const S={state:{name:"Pleroma FE",registrationOpen:!0,server:"http://localhost:4040/",textlimit:5e3,themeData:void 0,vapidPublicKey:void 0,alwaysShowSubjectInput:!0,defaultAvatar:"/images/avi.png",defaultBanner:"/images/banner.png",background:"/static/aurora_borealis.jpg",collapseMessageWithSubject:!1,greentext:!1,useAtIcon:!1,mentionLinkDisplay:"short",mentionLinkShowTooltip:!0,mentionLinkShowAvatar:!1,mentionLinkFadeDomain:!0,mentionLinkShowYous:!1,mentionLinkBoldenYou:!0,hideFilteredStatuses:!1,hideMutedPosts:!1,hideMutedThreads:!0,hideWordFilteredPosts:!1,hidePostStats:!1,hideBotIndication:!1,hideSitename:!1,hideUserStats:!1,muteBotStatuses:!1,modalOnRepeat:!1,modalOnUnfollow:!1,modalOnBlock:!0,modalOnMute:!1,modalOnDelete:!0,modalOnLogout:!0,modalOnApproveFollow:!1,modalOnDenyFollow:!1,modalOnRemoveUserFromFollowers:!1,loginMethod:"password",logo:"/static/logo.svg",logoMargin:".2em",logoMask:!0,logoLeft:!1,disableUpdateNotification:!1,minimalScopesMode:!1,nsfwCensorImage:void 0,postContentType:"text/plain",redirectRootLogin:"/main/friends",redirectRootNoLogin:"/main/all",scopeCopy:!0,showFeaturesPanel:!0,showInstanceSpecificPanel:!1,sidebarRight:!1,subjectLineBehavior:"email",theme:"pleroma-dark",virtualScrolling:!0,sensitiveByDefault:!1,conversationDisplay:"linear",conversationTreeAdvanced:!1,conversationOtherRepliesButton:"below",conversationTreeFadeAncestors:!1,maxDepthInThread:6,customEmoji:[],customEmojiFetched:!1,emoji:{},emojiFetched:!1,unicodeEmojiAnnotations:{},pleromaBackend:!0,postFormats:[],restrictedNicknames:[],safeDM:!0,knownDomains:[],birthdayRequired:!1,birthdayMinAge:0,shoutAvailable:!1,pleromaChatMessagesAvailable:!1,gopherAvailable:!1,mediaProxyAvailable:!1,suggestionsEnabled:!1,suggestionsWeb:"",instanceSpecificPanelContent:"",tos:"",backendVersion:"",frontendVersion:"",pollsAvailable:!1,pollLimits:{max_options:4,max_option_chars:255,min_expiration:60,max_expiration:86400}},mutations:{setInstanceOption:function(e,t){var n=t.name,o=t.value;void 0!==o&&(e[n]=o)},setKnownDomains:function(e,t){e.knownDomains=t},setUnicodeEmojiAnnotations:function(e,t){var n=t.lang,o=t.annotations;e.unicodeEmojiAnnotations[n]=o}},getters:{instanceDefaultConfig:function(e){return f.Oi.map((function(t){return[t,e[t]]})).reduce((function(e,t){var n=(0,l.Z)(t,2),o=n[0],r=n[1];return w(w({},e),{},(0,d.Z)({},o,r))}),{})},groupedCustomEmojis:function(e){return e.customEmoji.reduce((function(e,t){return function(e){var t=e.tags.filter((function(e){return e.startsWith("pack:")})).map((function(e){var t=e.slice(5);return{id:"custom-".concat(t),text:t}}));return t.length?t:[{id:"unpacked"}]}(t).forEach((function(n){var o=n.id,r=n.text;e[o]||(e[o]={id:o,text:r,image:t.imageUrl,emojis:[]}),e[o].emojis.push(t)})),e}),{})},standardEmojiList:function(e){return b.map((function(t){return(e.emoji[t]||[]).map((function(t){return k(t,e.unicodeEmojiAnnotations)}))})).reduce((function(e,t){return e.concat(t)}),[])},standardEmojiGroupList:function(e){return b.map((function(t){return{id:t,emojis:(e.emoji[t]||[]).map((function(t){return k(t,e.unicodeEmojiAnnotations)}))}}))},instanceDomain:function(e){return new URL(e.server).hostname},remoteInteractionLink:function(e){var t=(e.server.endsWith("/")?e.server.slice(0,-1):e.server)+"/main/ostatus";return function(e){var n=e.statusId,o=e.nickname;return n?"".concat(t,"?status_id=").concat(n):"".concat(t,"?nickname=").concat(o)}}},actions:{setInstanceOption:function(e,t){var n=e.commit,o=e.dispatch,r=t.name,i=t.value;switch(n("setInstanceOption",{name:r,value:i}),r){case"name":o("setPageTitle");break;case"shoutAvailable":i&&o("initializeSocket");break;case"theme":o("setTheme",i)}},getStaticEmoji:function(e){return(0,o.Z)(i().mark((function t(){var o,r,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=e.commit,t.prev=1,t.next=4,n.e(3687).then(n.t.bind(n,13315,19));case 4:r=t.sent.default,s=Object.keys(r).reduce((function(e,t){return e[t]=r[t].map((function(e){return{displayText:e.slug,imageUrl:!1,replacement:e.emoji}})),e}),{}),o("setInstanceOption",{name:"emoji",value:(i=s,a=void 0,(a=i.symbols).push.apply(a,(0,u.Z)(y)),i)}),t.next=13;break;case 9:t.prev=9,t.t0=t.catch(1),console.warn("Can't load static emoji"),console.warn(t.t0);case 13:case"end":return t.stop()}var i,a}),t,null,[[1,9]])})))()},loadUnicodeEmojiData:function(e,t){var n=e.commit,r=e.state,s=(0,g.ensureFinalFallback)(t);return Promise.all(s.map(function(){var e=(0,o.Z)(i().mark((function e(t){var o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.unicodeEmojiAnnotations[t]){e.next=11;break}return e.prev=1,e.next=4,_(t);case 4:o=e.sent,n("setUnicodeEmojiAnnotations",{lang:t,annotations:o}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.warn("Error loading unicode emoji annotations for ".concat(t,": "),e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}()))},getCustomEmoji:function(e){return(0,o.Z)(i().mark((function t(){var n,o,r,s,a,c,d,p,m;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,o=e.state,t.prev=1,t.next=4,window.fetch("/api/pleroma/emoji.json");case 4:if(!(r=t.sent).ok){t.next=17;break}return t.next=8,r.json();case 8:s=t.sent,a=Array.isArray(s)?Object.assign.apply(Object,[{}].concat((0,u.Z)(s))):s,c=function(e,t){var n=e.toLowerCase(),o=t.toLowerCase();return n>o?1:n<o?-1:0},d=function(e,t){var n=""===e,o=""===t;return n===o?0:n&&!o?1:-1},p=function(e,t){var n=function(e){return(e.tags.filter((function(e){return e.startsWith("pack:")}))[0]||"").slice(5)},o=n(e),r=n(t);return d(o,r)||c(o,r)||c(e.displayText,t.displayText)},m=Object.entries(a).map((function(e){var t=(0,l.Z)(e,2),n=t[0],r=t[1],i=r.image_url;return{displayText:n,imageUrl:i?o.server+i:r,tags:i?r.tags.sort((function(e,t){return e>t?1:0})):["utf"],replacement:":".concat(n,": ")}})).sort(p),n("setInstanceOption",{name:"customEmoji",value:m}),t.next=18;break;case 17:throw r;case 18:t.next=24;break;case 20:t.prev=20,t.t0=t.catch(1),console.warn("Can't load custom emojis"),console.warn(t.t0);case 24:case"end":return t.stop()}}),t,null,[[1,20]])})))()},setTheme:function(e,t){var n=e.commit,o=e.rootState;n("setInstanceOption",{name:"theme",value:t}),(0,p.I3)(t).then((function(e){if(n("setInstanceOption",{name:"themeData",value:e}),!o.config.customTheme){var t=e.source;!e.theme||t&&t.themeEngineVersion===m.we?(0,p._v)(t):(0,p._v)(e.theme)}}))},fetchEmoji:function(e){var t=e.dispatch,n=e.state;n.customEmojiFetched||(n.customEmojiFetched=!0,t("getCustomEmoji")),n.emojiFetched||(n.emojiFetched=!0,t("getStaticEmoji"))},getKnownDomains:function(e){return(0,o.Z)(i().mark((function t(){var n,o,r;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,o=e.rootState,t.prev=1,t.next=4,h.ZP.fetchKnownDomains({credentials:o.users.currentUser.credentials});case 4:r=t.sent,n("setKnownDomains",r),t.next=12;break;case 8:t.prev=8,t.t0=t.catch(1),console.warn("Can't load known domains"),console.warn(t.t0);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})))()}}};var j=n(14176),C=n.n(j),O=n(1469),P=n.n(O),z=n(10928),D=n.n(z),I=n(8804),x=n.n(I),T=n(82492),$=n.n(T),U=n(22762),M=n.n(U),A=n(84753),L=n.n(A),E=n(13311),F=n.n(E),R=n(30998),q=n.n(R),N=n(66073),Z=n.n(N),W=n(12571),B=n.n(W),H=n(82729),V=n.n(H),K=n(52230);function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?G(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return{statuses:[],statusesObject:{},faves:[],visibleStatuses:[],visibleStatusesObject:{},newStatusCount:0,maxId:0,minId:0,minVisibleId:0,loading:!1,followers:[],friends:[],userId:e,flushMarker:0}},Q=function(){return{desktopNotificationSilence:!0,maxId:0,minId:Number.POSITIVE_INFINITY,data:[],idStore:{},loading:!1}},X=function(){return{allStatuses:[],allStatusesObject:{},conversationsObject:{},maxId:0,notifications:Q(),favorites:new Set,timelines:{mentions:J(),public:J(),user:J(),favorites:J(),media:J(),publicAndExternal:J(),friends:J(),tag:J(),dms:J(),bookmarks:J(),list:J()}}},ee=function(e,t,n){var o=t[n.id];return o?($()(o,C()(n,(function(e,t){return null===e||"user"===t}))),o.attachments.splice(o.attachments.length),{item:o,new:!1}):(function(e){e.deleted=!1,e.attachments=e.attachments||[]}(n),e.push(n),t[n.id]=n,{item:n,new:!0})},te=function(e,t){var n=Number(e.id),o=Number(t.id),r=!Number.isNaN(n),i=!Number.isNaN(o);return r&&i?n>o?-1:1:r&&!i?1:!r&&i||e.id>t.id?-1:1},ne=function(e){return e.visibleStatuses=e.visibleStatuses.sort(te),e.statuses=e.statuses.sort(te),e.minVisibleId=(D()(e.visibleStatuses)||{}).id,e},oe=function(e,t){var n=ee(e.allStatuses,e.allStatusesObject,t);if(n.new){var o=n.item,r=e.conversationsObject,i=o.statusnet_conversation_id;r[i]?r[i].push(o):r[i]=[o]}return n},re=function(e,t){e.notifications.maxId=t.id>e.notifications.maxId?t.id:e.notifications.maxId,e.notifications.minId=t.id<e.notifications.minId?t.id:e.notifications.minId},ie={addNewStatuses:function(e,t){var n=t.statuses,o=t.showImmediately,r=void 0!==o&&o,i=t.timeline,s=t.user,a=void 0===s?{}:s,c=t.noIdUpdate,l=void 0!==c&&c,u=t.userId,d=t.pagination,p=void 0===d?{}:d;if(!P()(n))return!1;var m=e.allStatuses,h=e.timelines[i],f=p.maxId||(n.length>0?M()(n,"id").id:0),g=p.minId||(n.length>0?L()(n,"id").id:0),v=i&&(g>h.maxId||0===h.maxId)&&n.length>0,w=i&&(f<h.minId||0===h.minId)&&n.length>0;if(!l&&v&&(h.maxId=g),!l&&w&&(h.minId=f),"user"!==i&&"media"!==i||h.userId===u){var b=function(t,n){var o,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=oe(e,t),c=s.item;if(s.new){if("status"===c.type&&F()(c.attentions,{id:a.id})){var l=e.timelines.mentions;h!==l&&(ee(l.statuses,l.statusesObject,c),l.newStatusCount+=1,ne(l))}if("direct"===c.visibility){var u=e.timelines.dms;ee(u.statuses,u.statusesObject,c),u.newStatusCount+=1,ne(u)}}return i&&r&&(o=ee(h.statuses,h.statusesObject,c)),i&&n?ee(h.visibleStatuses,h.visibleStatusesObject,c):i&&r&&o.new&&(h.newStatusCount+=1),c},y={status:function(e){b(e,r)},edit:function(e){b(e,r)},retweet:function(e){var t=b(e.retweeted_status,!1,!1);(i&&F()(h.statuses,(function(e){return e.retweeted_status?e.id===t.id||e.retweeted_status.id===t.id:e.id===t.id}))?b(e,!1,!1):b(e,r)).retweeted_status=t},favorite:function(t){e.favorites.has(t.id)||(e.favorites.add(t.id),function(e,t){var n=F()(m,{id:e.in_reply_to_status_id});n&&(e.user.id===a.id?n.favorited=!0:n.fave_num+=1)}(t))},deletion:function(t){var n=t.uri,o=F()(m,{uri:n});o&&(function(e,t){V()(e.allStatuses,{id:t.id}),V()(e.notifications.data,(function(e){return e.action.id===t.id}));var n=t.statusnet_conversation_id;e.conversationsObject[n]&&V()(e.conversationsObject[n],{id:t.id})}(e,o),i&&(V()(h.statuses,{uri:n}),V()(h.visibleStatuses,{uri:n})))},follow:function(e){},default:function(e){console.log("unknown status type"),console.log(e)}};Z()(n,(function(e){var t=e.type;(y[t]||y.default)(e)})),i&&"bookmarks"!==i&&ne(h)}},addNewNotifications:function(e,t){var n=t.dispatch,o=t.notifications,r=(t.older,t.visibleNotificationTypes,t.rootGetters,t.newNotificationSideEffects);Z()(o,(function(t){if(!(0,K.nU)(t))return console.error("Invalid notification:",t),void re(e,t);(0,K.Gr)(t.type)&&(t.action=oe(e,t.action).item,t.status=t.status&&oe(e,t.status).item),"pleroma:report"===t.type&&n("addReport",t.report),"pleroma:emoji_reaction"===t.type&&n("fetchEmojiReactionsBy",t.status.id),e.notifications.idStore.hasOwnProperty(t.id)?t.seen&&(e.notifications.idStore[t.id].seen=!0):(re(e,t),e.notifications.data.push(t),e.notifications.idStore[t.id]=t,r(t))}))},removeStatus:function(e,t){var n=t.timeline,o=t.userId,r=e.timelines[n];o&&(V()(r.statuses,{user:{id:o}}),V()(r.visibleStatuses,{user:{id:o}}),r.minVisibleId=r.visibleStatuses.length>0?D()(r.visibleStatuses).id:0,r.maxId=r.statuses.length>0?x()(r.statuses).id:0)},showNewStatuses:function(e,t){var n=t.timeline,o=e.timelines[n];o.newStatusCount=0,o.visibleStatuses=B()(o.statuses,0,50),o.minVisibleId=D()(o.visibleStatuses).id,o.minId=o.minVisibleId,o.visibleStatusesObject={},Z()(o.visibleStatuses,(function(e){o.visibleStatusesObject[e.id]=e}))},resetStatuses:function(e){var t=X();Object.entries(t).forEach((function(t){var n=(0,l.Z)(t,2),o=n[0],r=n[1];e[o]=r}))},clearTimeline:function(e,t){var n=t.timeline,o=t.excludeUserId,r=void 0!==o&&o?e.timelines[n].userId:void 0;e.timelines[n]=J(r)},clearNotifications:function(e){e.notifications=Q()},setFavorited:function(e,t){var n=t.status,o=t.value,r=e.allStatusesObject[n.id];r.favorited!==o&&(o?r.fave_num++:r.fave_num--),r.favorited=o},setFavoritedConfirm:function(e,t){var n=t.status,o=t.user,r=e.allStatusesObject[n.id];r.favorited=n.favorited,r.fave_num=n.fave_num;var i=q()(r.favoritedBy,{id:o.id});-1===i||r.favorited?-1===i&&r.favorited&&r.favoritedBy.push(o):r.favoritedBy.splice(i,1)},setMutedStatus:function(e,t){var n=e.allStatusesObject[t.id];n.thread_muted=t.thread_muted,void 0!==n.thread_muted&&e.conversationsObject[n.statusnet_conversation_id].forEach((function(e){e.thread_muted=n.thread_muted}))},setRetweeted:function(e,t){var n=t.status,o=t.value,r=e.allStatusesObject[n.id];r.repeated!==o&&(o?r.repeat_num++:r.repeat_num--),r.repeated=o},setRetweetedConfirm:function(e,t){var n=t.status,o=t.user,r=e.allStatusesObject[n.id];r.repeated=n.repeated,r.repeat_num=n.repeat_num;var i=q()(r.rebloggedBy,{id:o.id});-1===i||r.repeated?-1===i&&r.repeated&&r.rebloggedBy.push(o):r.rebloggedBy.splice(i,1)},setBookmarked:function(e,t){var n=t.status,o=t.value;e.allStatusesObject[n.id].bookmarked=o},setBookmarkedConfirm:function(e,t){var n=t.status;e.allStatusesObject[n.id].bookmarked=n.bookmarked},setDeleted:function(e,t){var n=t.status,o=e.allStatusesObject[n.id];o&&(o.deleted=!0)},setManyDeleted:function(e,t){Object.values(e.allStatusesObject).forEach((function(e){t(e)&&(e.deleted=!0)}))},setLoading:function(e,t){var n=t.timeline,o=t.value;e.timelines[n].loading=o},setNsfw:function(e,t){var n=t.id,o=t.nsfw;e.allStatusesObject[n].nsfw=o},setNotificationsLoading:function(e,t){var n=t.value;e.notifications.loading=n},setNotificationsSilence:function(e,t){var n=t.value;e.notifications.desktopNotificationSilence=n},markNotificationsAsSeen:function(e){Z()(e.notifications.data,(function(e){e.seen=!0}))},markSingleNotificationAsSeen:function(e,t){var n=t.id,o=F()(e.notifications.data,(function(e){return e.id===n}));o&&(o.seen=!0)},dismissNotification:function(e,t){var n=t.id;e.notifications.data=e.notifications.data.filter((function(e){return e.id!==n}))},dismissNotifications:function(e,t){var n=t.finder;e.notifications.data=e.notifications.data.filter((function(e){return n}))},updateNotification:function(e,t){var n=t.id,o=t.updater,r=F()(e.notifications.data,(function(e){return e.id===n}));r&&o(r)},queueFlush:function(e,t){var n=t.timeline,o=t.id;e.timelines[n].flushMarker=o},queueFlushAll:function(e){Object.keys(e.timelines).forEach((function(t){e.timelines[t].flushMarker=e.timelines[t].maxId}))},addRepeats:function(e,t){var n=t.id,o=t.rebloggedByUsers,r=t.currentUser,i=e.allStatusesObject[n];i.rebloggedBy=o.filter((function(e){return e})),i.repeat_num=i.rebloggedBy.length,i.repeated=!!i.rebloggedBy.find((function(e){var t=e.id;return r.id===t}))},addFavs:function(e,t){var n=t.id,o=t.favoritedByUsers,r=t.currentUser,i=e.allStatusesObject[n];i.favoritedBy=o.filter((function(e){return e})),i.fave_num=i.favoritedBy.length,i.favorited=!!i.favoritedBy.find((function(e){var t=e.id;return r.id===t}))},addEmojiReactionsBy:function(e,t){var n=t.id,o=t.emojiReactions;t.currentUser,e.allStatusesObject[n].emoji_reactions=o},addOwnReaction:function(e,t){var n=t.id,o=t.emoji,r=t.currentUser,i=e.allStatusesObject[n],s=q()(i.emoji_reactions,{name:o}),a=i.emoji_reactions[s]||{name:o,count:0,accounts:[]},c=Y(Y({},a),{},{count:a.count+1,me:!0,accounts:[].concat((0,u.Z)(a.accounts),[r])});s>=0?i.emoji_reactions[s]=c:i.emoji_reactions=[].concat((0,u.Z)(i.emoji_reactions),[c])},removeOwnReaction:function(e,t){var n=t.id,o=t.emoji,r=t.currentUser,i=e.allStatusesObject[n],s=q()(i.emoji_reactions,{name:o});if(!(s<0)){var a=i.emoji_reactions[s],c=a.accounts||[],l=Y(Y({},a),{},{count:a.count-1,me:!1,accounts:c.filter((function(e){return e.id!==r.id}))});l.count>0?i.emoji_reactions[s]=l:i.emoji_reactions=i.emoji_reactions.filter((function(e){return e.name!==o}))}},updateStatusWithPoll:function(e,t){var n=t.id,o=t.poll;e.allStatusesObject[n].poll=o},setVirtualHeight:function(e,t){var n=t.statusId,o=t.height;e.allStatusesObject[n].virtualHeight=o}},se={state:X(),actions:{addNewStatuses:function(e,t){var n=e.rootState,o=e.commit,r=t.statuses,i=t.showImmediately,s=void 0!==i&&i,a=t.timeline,c=void 0!==a&&a,l=t.noIdUpdate,u=void 0!==l&&l,d=t.userId,p=t.pagination;o("addNewStatuses",{statuses:r,showImmediately:s,timeline:c,noIdUpdate:u,user:n.users.currentUser,userId:d,pagination:p})},addNewNotifications:function(e,t){var n=t.notifications,o=t.older;(0,e.commit)("addNewNotifications",{dispatch:e.dispatch,notifications:n,older:o,rootGetters:e.rootGetters,newNotificationSideEffects:function(t){(0,K.nJ)(e,t)}})},setNotificationsLoading:function(e,t){e.rootState,(0,e.commit)("setNotificationsLoading",{value:t.value})},setNotificationsSilence:function(e,t){e.rootState,(0,e.commit)("setNotificationsSilence",{value:t.value})},fetchStatus:function(e,t){var n=e.rootState,o=e.dispatch;return n.api.backendInteractor.fetchStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},fetchStatusSource:function(e,t){var n=e.rootState;return e.dispatch,h.ZP.fetchStatusSource({id:t.id,credentials:n.users.currentUser.credentials})},fetchStatusHistory:function(e,t){return e.rootState,e.dispatch,h.ZP.fetchStatusHistory({status:t})},deleteStatus:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:t}),h.ZP.deleteStatus({id:t.id,credentials:n.users.currentUser.credentials})},deleteStatusById:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:n.statuses.allStatusesObject[t]})},markStatusesAsDeleted:function(e,t){(0,e.commit)("setManyDeleted",t)},favorite:function(e,t){var n=e.rootState,o=e.commit;o("setFavorited",{status:t,value:!0}),n.api.backendInteractor.favorite({id:t.id}).then((function(e){return o("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},unfavorite:function(e,t){var n=e.rootState,o=e.commit;o("setFavorited",{status:t,value:!1}),n.api.backendInteractor.unfavorite({id:t.id}).then((function(e){return o("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},fetchPinnedStatuses:function(e,t){var n=e.rootState,o=e.dispatch;n.api.backendInteractor.fetchPinnedStatuses({id:t}).then((function(e){return o("addNewStatuses",{statuses:e,timeline:"user",userId:t,showImmediately:!0,noIdUpdate:!0})}))},pinStatus:function(e,t){var n=e.rootState,o=e.dispatch;return n.api.backendInteractor.pinOwnStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},unpinStatus:function(e,t){var n=e.rootState,o=e.dispatch;n.api.backendInteractor.unpinOwnStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},muteConversation:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.muteConversation({id:t}).then((function(e){return o("setMutedStatus",e)}))},unmuteConversation:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.unmuteConversation({id:t}).then((function(e){return o("setMutedStatus",e)}))},retweet:function(e,t){var n=e.rootState,o=e.commit;o("setRetweeted",{status:t,value:!0}),n.api.backendInteractor.retweet({id:t.id}).then((function(e){return o("setRetweetedConfirm",{status:e.retweeted_status,user:n.users.currentUser})}))},unretweet:function(e,t){var n=e.rootState,o=e.commit;o("setRetweeted",{status:t,value:!1}),n.api.backendInteractor.unretweet({id:t.id}).then((function(e){return o("setRetweetedConfirm",{status:e,user:n.users.currentUser})}))},bookmark:function(e,t){var n=e.rootState,o=e.commit;o("setBookmarked",{status:t,value:!0}),n.api.backendInteractor.bookmarkStatus({id:t.id}).then((function(e){o("setBookmarkedConfirm",{status:e})}))},unbookmark:function(e,t){var n=e.rootState,o=e.commit;o("setBookmarked",{status:t,value:!1}),n.api.backendInteractor.unbookmarkStatus({id:t.id}).then((function(e){o("setBookmarkedConfirm",{status:e})}))},queueFlush:function(e,t){e.rootState,(0,e.commit)("queueFlush",{timeline:t.timeline,id:t.id})},queueFlushAll:function(e){e.rootState,(0,e.commit)("queueFlushAll")},markNotificationsAsSeen:function(e){var t=e.rootState;(0,e.commit)("markNotificationsAsSeen"),h.ZP.markNotificationsAsSeen({id:t.statuses.notifications.maxId,credentials:t.users.currentUser.credentials})},markSingleNotificationAsSeen:function(e,t){var n=e.rootState,o=e.commit,r=t.id;o("markSingleNotificationAsSeen",{id:r}),h.ZP.markNotificationsAsSeen({single:!0,id:r,credentials:n.users.currentUser.credentials})},dismissNotificationLocal:function(e,t){e.rootState,(0,e.commit)("dismissNotification",{id:t.id})},dismissNotification:function(e,t){var n=e.rootState,o=e.commit,r=t.id;o("dismissNotification",{id:r}),n.api.backendInteractor.dismissNotification({id:r})},updateNotification:function(e,t){e.rootState,(0,e.commit)("updateNotification",{id:t.id,updater:t.updater})},fetchFavsAndRepeats:function(e,t){var n=e.rootState,o=e.commit;Promise.all([n.api.backendInteractor.fetchFavoritedByUsers({id:t}),n.api.backendInteractor.fetchRebloggedByUsers({id:t})]).then((function(e){var r=(0,l.Z)(e,2),i=r[0],s=r[1];o("addFavs",{id:t,favoritedByUsers:i,currentUser:n.users.currentUser}),o("addRepeats",{id:t,rebloggedByUsers:s,currentUser:n.users.currentUser})}))},reactWithEmoji:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(r("addOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.reactWithEmoji({id:i,emoji:s}).then((function(e){o("fetchEmojiReactionsBy",i)})))},unreactWithEmoji:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(r("removeOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.unreactWithEmoji({id:i,emoji:s}).then((function(e){o("fetchEmojiReactionsBy",i)})))},fetchEmojiReactionsBy:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.fetchEmojiReactions({id:t}).then((function(e){o("addEmojiReactionsBy",{id:t,emojiReactions:e,currentUser:n.users.currentUser})}))},fetchFavs:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.fetchFavoritedByUsers({id:t}).then((function(e){return o("addFavs",{id:t,favoritedByUsers:e,currentUser:n.users.currentUser})}))},fetchRepeats:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.fetchRebloggedByUsers({id:t}).then((function(e){return o("addRepeats",{id:t,rebloggedByUsers:e,currentUser:n.users.currentUser})}))},search:function(e,t){var n=t.q,o=t.resolve,r=t.limit,i=t.offset,s=t.following,a=t.type;return e.rootState.api.backendInteractor.search2({q:n,resolve:o,limit:r,offset:i,following:s,type:a}).then((function(t){return e.commit("addNewUsers",t.accounts),e.commit("addNewUsers",t.statuses.map((function(e){return e.user})).filter((function(e){return e}))),e.commit("addNewStatuses",{statuses:t.statuses}),t}))},setVirtualHeight:function(e,t){(0,e.commit)("setVirtualHeight",{statusId:t.statusId,height:t.height})}},mutations:ie};const ae=se;var ce={setLists:function(e,t){e.allLists=t},setList:function(e,t){var n=t.listId,o=t.title;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].title=o;var r=F()(e.allLists,{id:n});r?r.title=o:e.allLists.push({id:n,title:o})},setListAccounts:function(e,t){var n=t.listId,o=t.accountIds;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds=o},addListAccount:function(e,t){var n=t.listId,o=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds.push(o)},removeListAccount:function(e,t){var n=t.listId,o=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]});var r=e.allListsObject[n].accountIds,i=new Set(r);i.delete(o),e.allListsObject[n].accountIds=(0,u.Z)(i)},deleteList:function(e,t){var n=t.listId;delete e.allListsObject[n],V()(e.allLists,(function(e){return e.id===n}))}},le={state:{allLists:[],allListsObject:{}},mutations:ce,actions:{setLists:function(e,t){(0,e.commit)("setLists",t)},createList:function(e,t){var n=e.rootState,o=e.commit,r=t.title;return n.api.backendInteractor.createList({title:r}).then((function(e){return o("setList",{listId:e.id,title:r}),e}))},fetchList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;return n.api.backendInteractor.getList({listId:r}).then((function(e){return o("setList",{listId:e.id,title:e.title})}))},fetchListAccounts:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;return n.api.backendInteractor.getListAccounts({listId:r}).then((function(e){return o("setListAccounts",{listId:r,accountIds:e})}))},setList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.title;n.api.backendInteractor.updateList({listId:r,title:i}),o("setList",{listId:r,title:i})},setListAccounts:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountIds,s=n.lists.allListsObject[r].accountIds||[],a=i.filter((function(e){return!s.includes(e)})),c=s.filter((function(e){return!i.includes(e)}));o("setListAccounts",{listId:r,accountIds:i}),a.length>0&&n.api.backendInteractor.addAccountsToList({listId:r,accountIds:a}),c.length>0&&n.api.backendInteractor.removeAccountsFromList({listId:r,accountIds:c})},addListAccount:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountId;return n.api.backendInteractor.addAccountsToList({listId:r,accountIds:[i]}).then((function(e){return o("addListAccount",{listId:r,accountId:i}),e}))},removeListAccount:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountId;return n.api.backendInteractor.removeAccountsFromList({listId:r,accountIds:[i]}).then((function(e){return o("removeListAccount",{listId:r,accountId:i}),e}))},deleteList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;n.api.backendInteractor.deleteList({listId:r}),o("deleteList",{listId:r})}},getters:{findListTitle:function(e){return function(t){if(e.allListsObject[t])return e.allListsObject[t].title}},findListAccounts:function(e){return function(t){return(0,u.Z)(e.allListsObject[t].accountIds)}}}};const ue=le;var de=n(71002),pe=n(44908),me=n.n(pe),he=n(57043),fe=n.n(he),ge=n(30236),ve=n.n(ge),we=n(35161),be=n.n(we),ye=n(39693),_e=n.n(ye),ke=n(68929),Se=n.n(ke),je=n(22626),Ce=function(e){var t=e.store,n=e.credentials,o=e.timeline,r=void 0===o?"friends":o,i=e.older,s=void 0!==i&&i,a=e.showImmediately,c=void 0!==a&&a,l=e.userId,u=void 0!==l&&l,d=e.listId,p=void 0!==d&&d,m=e.tag,f=void 0!==m&&m,g=e.until,v=e.since,w={timeline:r,credentials:n},b=t.rootState||t.state,y=t.getters,_=b.statuses.timelines[Se()(r)],k=y.mergedConfig,S=k.hideMutedPosts,j=k.replyVisibility,C=!!b.users.currentUser;s?w.until=g||_.minId:void 0===v?w.since=_.maxId:null!==v&&(w.since=v),w.userId=u,w.listId=p,w.tag=f,w.withMuted=!S,C&&["friends","public","publicAndExternal"].includes(r)&&(w.replyVisibility=j);var O=_.statuses.length;return h.ZP.fetchTimeline(w).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data,o=e.pagination;return!s&&n.length>=20&&!_.loading&&O>0&&t.dispatch("queueFlush",{timeline:r,id:_.maxId}),function(e){var t=e.store,n=e.statuses,o=e.timeline,r=e.showImmediately,i=e.userId,s=e.listId,a=e.pagination,c=Se()(o);t.dispatch("addNewStatuses",{timeline:c,userId:i,listId:s,statuses:n,showImmediately:r,pagination:a})}({store:t,statuses:n,timeline:r,showImmediately:c,userId:u,listId:p,pagination:o}),{statuses:n,pagination:o}})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"timeline.error",messageArgs:[e.message],timeout:5e3})}))},Oe={fetchAndUpdate:Ce,startFetching:function(e){var t=e.timeline,n=void 0===t?"friends":t,o=e.credentials,r=e.store,i=e.userId,s=void 0!==i&&i,a=e.listId,c=void 0!==a&&a,l=e.tag,u=void 0!==l&&l,d=(r.rootState||r.state).statuses.timelines[Se()(n)],p=0===d.visibleStatuses.length;return d.userId=s,d.listId=c,Ce({timeline:n,credentials:o,store:r,showImmediately:p,userId:s,listId:c,tag:u}),(0,je.F)((function(){return Ce({timeline:n,credentials:o,store:r,userId:s,listId:c,tag:u})}),1e4)}};const Pe=Oe;var ze=n(15568);const De=function(e){var t=e.credentials,n=e.store,o=function(){return function(e){var t=e.store,n=e.credentials;return h.ZP.fetchFollowRequests({credentials:n}).then((function(e){t.commit("setFollowRequests",e),t.commit("addNewUsers",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return o(),(0,je.F)(o,1e4)};var Ie={startFetching:function(e){var t=e.credentials,n=e.store,o=function(){return function(e){var t=e.store,n=e.credentials;return h.ZP.fetchLists({credentials:n}).then((function(e){t.commit("setLists",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return o(),(0,je.F)(o,24e4)}};const xe=Ie;function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Ue=function(e){return $e($e({startFetchingTimeline:function(t){var n=t.timeline,o=t.store,r=t.userId,i=void 0!==r&&r,s=t.listId,a=void 0!==s&&s,c=t.tag;return Pe.startFetching({timeline:n,store:o,credentials:e,userId:i,listId:a,tag:c})},fetchTimeline:function(t){return Pe.fetchAndUpdate($e($e({},t),{},{credentials:e}))},startFetchingNotifications:function(t){var n=t.store;return ze.Z.startFetching({store:n,credentials:e})},fetchNotifications:function(t){return ze.Z.fetchAndUpdate($e($e({},t),{},{credentials:e}))},startFetchingFollowRequests:function(t){var n=t.store;return De({store:n,credentials:e})},startFetchingLists:function(t){var n=t.store;return xe.startFetching({store:n,credentials:e})},startUserSocket:function(t){var n=t.store.rootState.instance.server.replace("http","ws")+(0,h.pR)({credentials:e,stream:"user"});return(0,h.ro)({url:n,id:"User"})}},Object.entries(h.ZP).reduce((function(t,n){var o=(0,l.Z)(n,2),r=o[0],i=o[1];return $e($e({},t),{},(0,d.Z)({},r,(function(t){return i($e({credentials:e},t))})))}),{})),{},{verifyCredentials:h.ZP.verifyCredentials})};var Me=function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth},Ae=function(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},Le=n(54061),Ee=n.n(Le),Fe="".concat(window.location.origin,"/oauth-callback"),Re=function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.commit;if(t&&n)return Promise.resolve({clientId:t,clientSecret:n});var i="".concat(o,"/api/v1/apps"),s=new window.FormData;return s.append("client_name","PleromaFE_".concat(window.___pleromafe_commit_hash,"_").concat((new Date).toISOString())),s.append("redirect_uris",Fe),s.append("scopes","read write follow push admin"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()})).then((function(e){return{clientId:e.client_id,clientSecret:e.client_secret}})).then((function(e){return r("setClientData",e)||e}))},qe=function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r="".concat(o,"/oauth/token"),i=new window.FormData;return i.append("client_id",t),i.append("client_secret",n),i.append("grant_type","client_credentials"),i.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(r,{method:"POST",body:i}).then((function(e){return e.json()}))},Ne={login:function(e){var t=e.instance,n={response_type:"code",client_id:e.clientId,redirect_uri:Fe,scope:"read write follow push admin"},o=Ee()(n,(function(e,t,n){var o="".concat(n,"=").concat(encodeURIComponent(t));return e?"".concat(e,"&").concat(o):o}),!1),r="".concat(t,"/oauth/authorize?").concat(o);window.location.href=r},getToken:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.code,i="".concat(o,"/oauth/token"),s=new window.FormData;return s.append("client_id",t),s.append("client_secret",n),s.append("grant_type","authorization_code"),s.append("code",r),s.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},getTokenWithCredentials:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.username,i=e.password,s="".concat(o,"/oauth/token"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("grant_type","password"),a.append("username",r),a.append("password",i),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},getOrCreateApp:Re,verifyOTPCode:function(e){var t=e.app,n=e.instance,o=e.mfaToken,r=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",o),s.append("code",r),s.append("challenge_type","totp"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.app,n=e.instance,o=e.mfaToken,r=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",o),s.append("code",r),s.append("challenge_type","recovery"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},revokeToken:function(e){var t=e.app,n=e.instance,o=e.token,r="".concat(n,"/oauth/revoke"),i=new window.FormData;return i.append("client_id",t.clientId),i.append("client_secret",t.clientSecret),i.append("token",o),window.fetch(r,{method:"POST",body:i}).then((function(e){return e.json()}))}};const Ze=Ne;var We=n(56012),Be=n.n(We);function He(){return"serviceWorker"in navigator&&"PushManager"in window}function Ve(){return Be().register().catch((function(e){return console.error("Unable to get or create a service worker.",e)}))}function Ke(e){return window.fetch("/api/v1/push/subscription/",{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(e)}}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e}))}function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Je=function e(t,n){if(P()(t)&&P()(n))return t.length=n.length,ve()(t,n,e)},Qe=function(e,t){return e.rootState.api.backendInteractor.blockUser({id:t}).then((function(n){e.commit("updateUserRelationship",[n]),e.commit("addBlockId",t),e.commit("removeStatus",{timeline:"friends",userId:t}),e.commit("removeStatus",{timeline:"public",userId:t}),e.commit("removeStatus",{timeline:"publicAndExternal",userId:t})}))},Xe=function(e,t){return e.rootState.api.backendInteractor.unblockUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},et=function(e,t){var n="object"===(0,de.Z)(t)?t.id:t,o="object"===(0,de.Z)(t)?t.expiresIn:0,r=e.state.relationships[n]||{id:n};return r.muting=!0,e.commit("updateUserRelationship",[r]),e.commit("addMuteId",n),e.rootState.api.backendInteractor.muteUser({id:n,expiresIn:o}).then((function(t){e.commit("updateUserRelationship",[t]),e.commit("addMuteId",n)}))},tt=function(e,t){var n=e.state.relationships[t]||{id:t};return n.muting=!1,e.commit("updateUserRelationship",[n]),e.rootState.api.backendInteractor.unmuteUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},nt=function(e,t){return e.rootState.api.backendInteractor.muteDomain({domain:t}).then((function(){return e.commit("addDomainMute",t)}))},ot=function(e,t){return e.rootState.api.backendInteractor.unmuteDomain({domain:t}).then((function(){return e.commit("removeDomainMute",t)}))},rt={tagUser:function(e,t){var n=t.user.id,o=t.tag,r=e.usersObject[n],i=(r.tags||[]).concat([o]);r.tags=i},untagUser:function(e,t){var n=t.user.id,o=t.tag,r=e.usersObject[n],i=(r.tags||[]).filter((function(e){return e!==o}));r.tags=i},updateRight:function(e,t){var n=t.user.id,o=t.right,r=t.value,i=e.usersObject[n],s=i.rights;s[o]=r,i.rights=s},updateActivationStatus:function(e,t){var n=t.user.id,o=t.deactivated;e.usersObject[n].deactivated=o},setCurrentUser:function(e,t){e.lastLoginName=t.screen_name,e.currentUser=ve()(e.currentUser||{},t,Je)},clearCurrentUser:function(e){e.currentUser=!1,e.lastLoginName=!1},beginLogin:function(e){e.loggingIn=!0},endLogin:function(e){e.loggingIn=!1},saveFriendIds:function(e,t){var n=t.id,o=t.friendIds,r=e.usersObject[n];r.friendIds=me()(fe()(r.friendIds||[],o))},saveFollowerIds:function(e,t){var n=t.id,o=t.followerIds,r=e.usersObject[n];r.followerIds=me()(fe()(r.followerIds||[],o))},clearFriends:function(e,t){var n=e.usersObject[t];n&&(n.friendIds=[])},clearFollowers:function(e,t){var n=e.usersObject[t];n&&(n.followerIds=[])},addNewUsers:function(e,t){Z()(t,(function(t){t.relationship&&(e.relationships[t.relationship.id]=t.relationship);var n=function(e,t,n){if(!n)return!1;var o=t[n.id];return o?(ve()(o,n,Je),{item:o,new:!1}):(e.push(n),t[n.id]=n,{item:n,new:!0})}(e.users,e.usersObject,t),o=n.item;n.new&&o.screen_name&&!o.screen_name.includes("@")&&(e.usersByNameObject[o.screen_name.toLowerCase()]=o)}))},updateUserRelationship:function(e,t){t.forEach((function(t){e.relationships[t.id]=t}))},updateUserInLists:function(e,t){var n=t.id,o=t.inLists;e.usersObject[n].inLists=o},saveBlockIds:function(e,t){e.currentUser.blockIds=t},addBlockId:function(e,t){-1===e.currentUser.blockIds.indexOf(t)&&e.currentUser.blockIds.push(t)},saveMuteIds:function(e,t){e.currentUser.muteIds=t},addMuteId:function(e,t){-1===e.currentUser.muteIds.indexOf(t)&&e.currentUser.muteIds.push(t)},saveDomainMutes:function(e,t){e.currentUser.domainMutes=t},addDomainMute:function(e,t){-1===e.currentUser.domainMutes.indexOf(t)&&e.currentUser.domainMutes.push(t)},removeDomainMute:function(e,t){var n=e.currentUser.domainMutes.indexOf(t);-1!==n&&e.currentUser.domainMutes.splice(n,1)},setPinnedToUser:function(e,t){var n=e.usersObject[t.user.id];n.pinnedStatusIds=n.pinnedStatusIds||[];var o=n.pinnedStatusIds.indexOf(t.id);t.pinned&&-1===o?n.pinnedStatusIds.push(t.id):t.pinned||-1===o||n.pinnedStatusIds.splice(o,1)},setUserForStatus:function(e,t){t.user=e.usersObject[t.user.id]},setUserForNotification:function(e,t){"follow"!==t.type&&(t.action.user=e.usersObject[t.action.user.id]),t.from_profile=e.usersObject[t.from_profile.id]},setColor:function(e,t){var n=t.user.id,o=t.highlighted;e.usersObject[n].highlight=o},signUpPending:function(e){e.signUpPending=!0,e.signUpErrors=[]},signUpSuccess:function(e){e.signUpPending=!1},signUpFailure:function(e,t){e.signUpPending=!1,e.signUpErrors=t}},it={state:{loggingIn:!1,lastLoginName:!1,currentUser:!1,users:[],usersObject:{},usersByNameObject:{},signUpPending:!1,signUpErrors:[],relationships:{}},mutations:rt,getters:{findUser:function(e){return function(t){return e.usersObject[t]}},findUserByName:function(e){return function(t){return e.usersByNameObject[t.toLowerCase()]}},findUserByUrl:function(e){return function(t){return e.users.find((function(e){return e.statusnet_profile_url&&e.statusnet_profile_url.toLowerCase()===t.toLowerCase()}))}},relationship:function(e){return function(t){return t&&e.relationships[t]||{id:t,loading:!0}}}},actions:{fetchUserIfMissing:function(e,t){e.getters.findUser(t)||e.dispatch("fetchUser",t)},fetchUser:function(e,t){return e.rootState.api.backendInteractor.fetchUser({id:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserByName:function(e,t){return e.rootState.api.backendInteractor.fetchUserByName({name:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserRelationship:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserRelationship({id:t}).then((function(t){return e.commit("updateUserRelationship",t)}))},fetchUserInLists:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserInLists({id:t}).then((function(n){return e.commit("updateUserInLists",{id:t,inLists:n})}))},fetchBlocks:function(e){return e.rootState.api.backendInteractor.fetchBlocks().then((function(t){return e.commit("saveBlockIds",be()(t,"id")),e.commit("addNewUsers",t),t}))},blockUser:function(e,t){return Qe(e,t)},unblockUser:function(e,t){return Xe(e,t)},removeUserFromFollowers:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.removeUserFromFollowers({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},blockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Qe(e,t)})))},unblockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Xe(e,t)})))},editUserNote:function(e,t){return function(e,t){var n=t.id,o=t.comment;return e.rootState.api.backendInteractor.editUserNote({id:n,comment:o}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},fetchMutes:function(e){return e.rootState.api.backendInteractor.fetchMutes().then((function(t){return e.commit("saveMuteIds",be()(t,"id")),e.commit("addNewUsers",t),t}))},muteUser:function(e,t){return et(e,t)},unmuteUser:function(e,t){return tt(e,t)},hideReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!1}).then((function(t){e.commit("updateUserRelationship",[t])}))}(e,t)},showReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!0}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},muteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return et(e,t)})))},unmuteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return tt(e,t)})))},fetchDomainMutes:function(e){return e.rootState.api.backendInteractor.fetchDomainMutes().then((function(t){return e.commit("saveDomainMutes",t),t}))},muteDomain:function(e,t){return nt(e,t)},unmuteDomain:function(e,t){return ot(e,t)},muteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return nt(e,t)})))},unmuteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return ot(e,t)})))},fetchFriends:function(e,t){var n=e.rootState,o=e.commit,r=n.users.usersObject[t],i=D()(r.friendIds);return n.api.backendInteractor.fetchFriends({id:t,maxId:i}).then((function(e){return o("addNewUsers",e),o("saveFriendIds",{id:t,friendIds:be()(e,"id")}),e}))},fetchFollowers:function(e,t){var n=e.rootState,o=e.commit,r=n.users.usersObject[t],i=D()(r.followerIds);return n.api.backendInteractor.fetchFollowers({id:t,maxId:i}).then((function(e){return o("addNewUsers",e),o("saveFollowerIds",{id:t,followerIds:be()(e,"id")}),e}))},clearFriends:function(e,t){(0,e.commit)("clearFriends",t)},clearFollowers:function(e,t){(0,e.commit)("clearFollowers",t)},subscribeUser:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.subscribeUser({id:t}).then((function(e){return o("updateUserRelationship",[e])}))},unsubscribeUser:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.unsubscribeUser({id:t}).then((function(e){return o("updateUserRelationship",[e])}))},toggleActivationStatus:function(e,t){var n=e.rootState,o=e.commit,r=t.user;(r.deactivated?n.api.backendInteractor.activateUser:n.api.backendInteractor.deactivateUser)({user:r}).then((function(e){var t=!e.is_active;o("updateActivationStatus",{user:e,deactivated:t})}))},registerPushNotifications:function(e){var t=e.state.currentUser.credentials,n=e.rootState.instance.vapidPublicKey;!function(e,t,n,o){He()&&Ve().then((function(n){return function(e,t,n){if(!t)return Promise.reject(new Error("Web Push is disabled in config"));if(!n)return Promise.reject(new Error("VAPID public key is not found"));var o,r,i,s={userVisibleOnly:!0,applicationServerKey:(o=n,r=(o+"=".repeat((4-o.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),i=window.atob(r),Uint8Array.from((0,u.Z)(i).map((function(e){return e.charCodeAt(0)}))))};return e.pushManager.subscribe(s)}(n,e,t)})).then((function(e){return function(e,t,n){return window.fetch("/api/v1/push/subscription/",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(t)},body:JSON.stringify({subscription:e,data:{alerts:{follow:n.follows,favourite:n.likes,mention:n.mentions,reblog:n.repeats,move:n.moves}}})}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e.json()})).then((function(e){if(!e.id)throw new Error("Bad response from server.");return e}))}(e,n,o)})).catch((function(e){return console.warn("Failed to setup Web Push Notifications: ".concat(e.message))}))}(e.rootState.config.webPushNotifications,n,t,e.rootState.config.notificationVisibility)},unregisterPushNotifications:function(e){var t;t=e.state.currentUser.credentials,He()&&Promise.all([Ke(t),Ve().then((function(e){return function(e){return e.pushManager.getSubscription().then((function(e){if(null!==e)return e.unsubscribe()}))}(e).then((function(t){return[e,t]}))})).then((function(e){var t=(0,l.Z)(e,2),n=t[0];return t[1]||console.warn("Push subscription cancellation wasn't successful, killing SW anyway..."),n.unregister().then((function(e){e||console.warn("Failed to kill SW")}))}))]).catch((function(e){return console.warn("Failed to disable Web Push Notifications: ".concat(e.message))}))},addNewUsers:function(e,t){(0,e.commit)("addNewUsers",t)},addNewStatuses:function(e,t){var n=t.statuses,o=be()(n,"user"),r=_e()(be()(n,"retweeted_status.user"));e.commit("addNewUsers",o),e.commit("addNewUsers",r),Z()(n,(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)})),Z()(_e()(be()(n,"retweeted_status")),(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)}))},addNewNotifications:function(e,t){var n=t.notifications,o=be()(n,"from_profile"),r=be()(n,"target").filter((function(e){return e})),i=n.map((function(e){return e.id}));e.commit("addNewUsers",o),e.commit("addNewUsers",r);var s=e.rootState.statuses.notifications.idStore,a=Object.entries(s).filter((function(e){var t=(0,l.Z)(e,2),n=t[0];return t[1],i.includes(n)})).map((function(e){var t=(0,l.Z)(e,2);return t[0],t[1]}));Z()(a,(function(t){e.commit("setUserForNotification",t)}))},searchUsers:function(e,t){var n=e.rootState,o=e.commit,r=t.query;return n.api.backendInteractor.searchUsers({query:r}).then((function(e){return o("addNewUsers",e),e}))},signUp:function(e,t){return(0,o.Z)(i().mark((function n(){var o,r,s;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.commit("signUpPending"),o=e.rootState,n.prev=2,n.next=5,o.api.backendInteractor.register({params:Ye({},t)});case 5:r=n.sent,e.commit("signUpSuccess"),e.commit("setToken",r.access_token),e.dispatch("loginUser",r.access_token),n.next=16;break;case 11:throw n.prev=11,n.t0=n.catch(2),s=n.t0.message,e.commit("signUpFailure",s),n.t0;case 16:case"end":return n.stop()}}),n,null,[[2,11]])})))()},getCaptcha:function(e){return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.rootState.api.backendInteractor.getCaptcha());case 1:case"end":return t.stop()}}),t)})))()},logout:function(e){var t=e.rootState,n=t.oauth,o=t.instance,r=Ye(Ye({},n),{},{commit:e.commit,instance:o.server});return Ze.getOrCreateApp(r).then((function(e){var t={app:e,instance:r.instance,token:n.userToken};return Ze.revokeToken(t)})).then((function(){e.commit("clearCurrentUser"),e.dispatch("disconnectFromSocket"),e.commit("clearToken"),e.dispatch("stopFetchingTimeline","friends"),e.commit("setBackendInteractor",Ue(e.getters.getToken())),e.dispatch("stopFetchingNotifications"),e.dispatch("stopFetchingLists"),e.dispatch("stopFetchingFollowRequests"),e.commit("clearNotifications"),e.commit("resetStatuses"),e.dispatch("resetChats"),e.dispatch("setLastTimeline","public-timeline"),e.dispatch("setLayoutWidth",Me()),e.dispatch("setLayoutHeight",Ae()),e.commit("clearServerSideStorage")}))},loginUser:function(e,t){return new Promise((function(n,o){var r=e.commit;r("beginLogin"),e.rootState.api.backendInteractor.verifyCredentials(t).then((function(i){if(i.error){var s=i.error;r("endLogin"),401===s.status?o(new Error("Wrong username or password")):o(new Error("An error occurred, please try again"))}else{var a=i;a.credentials=t,a.blockIds=[],a.muteIds=[],a.domainMutes=[],r("setCurrentUser",a),r("setServerSideStorage",a),r("addNewUsers",[a]),e.dispatch("fetchEmoji"),(c=window.Notification,c?"default"===c.permission?c.requestPermission():Promise.resolve(c.permission):Promise.resolve(null)).then((function(e){return r("setNotificationPermission",e)})),r("setBackendInteractor",Ue(t)),e.dispatch("pushServerSideStorage"),a.token&&(e.dispatch("setWsToken",a.token),e.dispatch("initializeSocket")),e.dispatch("startFetchingLists"),a.locked&&e.dispatch("startFetchingFollowRequests"),e.getters.mergedConfig.useStreamingApi?(e.dispatch("fetchTimeline",{timeline:"friends",since:null}),e.dispatch("fetchNotifications",{since:null}),e.dispatch("enableMastoSockets",!0).catch((function(e){console.error("Failed initializing MastoAPI Streaming socket",e)})).then((function(){e.dispatch("fetchChats",{latest:!0}),setTimeout((function(){return e.dispatch("setNotificationsSilence",!1)}),1e4)}))):(e.dispatch("startFetchingTimeline",{timeline:"friends"}),e.dispatch("startFetchingNotifications"),e.dispatch("startFetchingChats")),e.dispatch("fetchMutes"),e.dispatch("setLayoutWidth",Me()),e.dispatch("setLayoutHeight",Ae()),e.rootState.api.backendInteractor.fetchFriends({id:a.id}).then((function(e){return r("addNewUsers",e)}))}var c;r("endLogin"),n()})).catch((function(e){console.log(e),r("endLogin"),o(new Error("Failed to connect to server, try again"))}))}))}}};const st=it;var at=n(36459),ct=n(87462),lt=n(44925),ut=n(64689),dt=function(e,t){if(t.lastMessage&&(e.rootState.chats.currentChatId!==t.id||document.hidden)&&e.rootState.users.currentUser.id!==t.lastMessage.account_id){var n={tag:t.lastMessage.id,title:t.account.name,icon:t.account.profile_image_url,body:t.lastMessage.content};t.lastMessage.attachment&&"image"===t.lastMessage.attachment.type&&(n.image=t.lastMessage.attachment.preview_url),(0,ut.w)(e.rootState,n)}},pt=n(90837),mt=["timeline"];function ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ft(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var gt={state:{retryMultiplier:1,backendInteractor:Ue(),fetchers:{},socket:null,mastoUserSocket:null,mastoUserSocketStatus:null,followRequests:[]},getters:{followRequestCount:function(e){return e.followRequests.length}},mutations:{setBackendInteractor:function(e,t){e.backendInteractor=t},addFetcher:function(e,t){var n=t.fetcherName,o=t.fetcher;e.fetchers[n]=o},removeFetcher:function(e,t){var n=t.fetcherName;t.fetcher,e.fetchers[n].stop(),delete e.fetchers[n]},setWsToken:function(e,t){e.wsToken=t},setSocket:function(e,t){e.socket=t},setFollowRequests:function(e,t){e.followRequests=t},setMastoUserSocketStatus:function(e,t){e.mastoUserSocketStatus=t},incrementRetryMultiplier:function(e){e.retryMultiplier=Math.max(++e.retryMultiplier,3)},resetRetryMultiplier:function(e){e.retryMultiplier=1}},actions:{enableMastoSockets:function(e,t){var n=e.state,o=e.dispatch,r=e.commit;if(!n.mastoUserSocket||[WebSocket.CLOSED,WebSocket.CLOSING].includes(n.mastoUserSocket.getState()))return r("setMastoUserSocketStatus",t?h._z.STARTING_INITIAL:h._z.STARTING),o("startMastoUserSocket")},disableMastoSockets:function(e){var t=e.state,n=e.dispatch,o=e.commit;if(t.mastoUserSocket)return o("setMastoUserSocketStatus",h._z.DISABLED),n("stopMastoUserSocket")},startMastoUserSocket:function(e){return new Promise((function(t,n){try{var o=e.state,r=e.commit,i=e.dispatch,s=e.rootState.statuses.timelines.friends;o.mastoUserSocket=o.backendInteractor.startUserSocket({store:e}),o.mastoUserSocket.addEventListener("message",(function(t){var n=t.detail;n&&("notification"===n.event?i("addNewNotifications",{notifications:[n.notification],older:!1}):"update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:0===s.visibleStatuses.length,timeline:"friends"}):"status.update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:n.status.id in s.visibleStatusesObject,timeline:"friends"}):"delete"===n.event?i("deleteStatusById",n.id):"pleroma:chat_update"===n.event&&setTimeout((function(){i("addChatMessages",{chatId:n.chatUpdate.id,messages:[n.chatUpdate.lastMessage]}),i("updateChat",{chat:n.chatUpdate}),dt(e,n.chatUpdate)}),100))})),o.mastoUserSocket.addEventListener("open",(function(){o.mastoUserSocketStatus!==h._z.STARTING_INITIAL&&i("pushGlobalNotice",{level:"success",messageKey:"timeline.socket_reconnected",timeout:5e3}),new Set([h._z.ERROR,h._z.DISABLED]).has(o.mastoUserSocketStatus)&&(i("stopFetchingTimeline",{timeline:"friends"}),i("stopFetchingNotifications"),i("stopFetchingChats")),r("resetRetryMultiplier"),r("setMastoUserSocketStatus",h._z.JOINED)})),o.mastoUserSocket.addEventListener("error",(function(e){var t=e.detail;console.error("Error in MastoAPI websocket:",t),i("clearOpenedChats")})),o.mastoUserSocket.addEventListener("close",(function(e){var t=e.detail,n=new Set([1e3,1001]),s=t.code;n.has(s)?(console.debug("Not restarting socket becasue of closure code ".concat(s," is in ignore list")),r("setMastoUserSocketStatus",h._z.CLOSED)):(console.warn("MastoAPI websocket disconnected, restarting. CloseEvent code: ".concat(s)),setTimeout((function(){i("startMastoUserSocket")}),1e3*o.retryMultiplier),r("incrementRetryMultiplier"),o.mastoUserSocketStatus!==h._z.ERROR&&(i("startFetchingTimeline",{timeline:"friends"}),i("startFetchingNotifications"),i("startFetchingChats"),i("pushGlobalNotice",{level:"error",messageKey:"timeline.socket_broke",messageArgs:[s],timeout:5e3})),r("setMastoUserSocketStatus",h._z.ERROR)),i("clearOpenedChats")})),t()}catch(e){n(e)}}))},stopMastoUserSocket:function(e){var t=e.state,n=e.dispatch;n("startFetchingTimeline",{timeline:"friends"}),n("startFetchingNotifications"),n("startFetchingChats"),t.mastoUserSocket.close()},startFetchingTimeline:function(e,t){var n=t.timeline,o=void 0===n?"friends":n,r=t.tag,i=void 0!==r&&r,s=t.userId,a=void 0!==s&&s,c=t.listId,l=void 0!==c&&c;if(!e.state.fetchers[o]){var u=e.state.backendInteractor.startFetchingTimeline({timeline:o,store:e,userId:a,listId:l,tag:i});e.commit("addFetcher",{fetcherName:o,fetcher:u})}},stopFetchingTimeline:function(e,t){var n=e.state.fetchers[t];n&&e.commit("removeFetcher",{fetcherName:t,fetcher:n})},fetchTimeline:function(e,t){var n=t.timeline,o=(0,lt.Z)(t,mt);e.state.backendInteractor.fetchTimeline(ft({store:e,timeline:n},o))},startFetchingNotifications:function(e){if(!e.state.fetchers.notifications){var t=e.state.backendInteractor.startFetchingNotifications({store:e});e.commit("addFetcher",{fetcherName:"notifications",fetcher:t})}},stopFetchingNotifications:function(e){var t=e.state.fetchers.notifications;t&&e.commit("removeFetcher",{fetcherName:"notifications",fetcher:t})},fetchNotifications:function(e,t){var n=(0,ct.Z)({},((0,at.Z)(t),t));e.state.backendInteractor.fetchNotifications(ft({store:e},n))},startFetchingFollowRequests:function(e){if(!e.state.fetchers.followRequests){var t=e.state.backendInteractor.startFetchingFollowRequests({store:e});e.commit("addFetcher",{fetcherName:"followRequests",fetcher:t})}},stopFetchingFollowRequests:function(e){var t=e.state.fetchers.followRequests;t&&e.commit("removeFetcher",{fetcherName:"followRequests",fetcher:t})},removeFollowRequest:function(e,t){var n=e.state.followRequests.filter((function(e){return e!==t}));e.commit("setFollowRequests",n)},startFetchingLists:function(e){if(!e.state.fetchers.lists){var t=e.state.backendInteractor.startFetchingLists({store:e});e.commit("addFetcher",{fetcherName:"lists",fetcher:t})}},stopFetchingLists:function(e){var t=e.state.fetchers.lists;t&&e.commit("removeFetcher",{fetcherName:"lists",fetcher:t})},setWsToken:function(e,t){e.commit("setWsToken",t)},initializeSocket:function(e){var t=e.dispatch,n=e.commit,o=e.state,r=e.rootState,i=o.wsToken;if(r.instance.shoutAvailable&&void 0!==i&&null===o.socket){var s=new pt.sk("/socket",{params:{token:i}});s.connect(),n("setSocket",s),t("initializeShout",s)}},disconnectFromSocket:function(e){var t=e.commit,n=e.state;n.socket&&n.socket.disconnect(),t("setSocket",null)}}};const vt=gt;var wt=n(65405),bt=n(87185),yt=n.n(bt),_t=n(69579),kt=n.n(_t),St=n(7436),jt=n.n(St),Ct=n(7739),Ot=n.n(Ct),Pt=n(85564),zt=n.n(Pt),Dt=n(74691),It=n.n(Dt),xt=n(27361),Tt=n.n(xt),$t=n(36968),Ut=n.n($t),Mt=n(50361),At=n.n(Mt),Lt=n(18446),Et=n.n(Lt),Ft=n(2262),Rt=n(48328),qt=n(9382),Nt=(n(31934),n(95326),n(43011),n(68789),n(84131));qt.vI.add(Nt.NBC),Rt.Z;var Zt=["_journal"],Wt=["_timestamp","_version"],Bt=["_timestamp","_version"];function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Kt=new Date("2022-08-04"),Gt=1001,Yt={dirty:!1,flagStorage:{updateCounter:0,reset:0},prefsStorage:{_journal:[],simple:{dontShowUpdateNotifs:!1,collapseNav:!1},collections:{pinnedNavItems:["home","dms","chats"]}},raw:null,cache:null},Jt=Vt(Vt({},Yt.flagStorage),{},{updateCounter:1}),Qt=function(e,t,n){var o=e.indexOf(t),r=o+n,i=(0,u.Z)(e);return i.splice(o,1),i.splice(It()(r,0,i.length+1),0,t),i},Xt=function(e,t){return Vt(Vt({},e),{},{_user:t,_timestamp:Date.now(),_version:1})},en=function(e){return e._timestamp>0&&e._version>0},tn=function(e){e.prefsStorage=e.prefsStorage||{simple:{},collections:{}},Object.entries(Yt.prefsStorage.simple).forEach((function(t){var n=(0,l.Z)(t,2),o=n[0],r=n[1];"number"!=typeof r&&"boolean"!=typeof r&&(console.warn("Preference simple.".concat(o," as invalid type, reinitializing")),Ut()(e.prefsStorage.simple,o,Yt.prefsStorage.simple[o]))})),Object.entries(Yt.prefsStorage.collections).forEach((function(t){var n=(0,l.Z)(t,2),o=n[0],r=n[1];Array.isArray(r)||(console.warn("Preference collections.".concat(o," as invalid type, reinitializing")),Ut()(e.prefsStorage.collections,o,Yt.prefsStorage.collections[o]))}))},nn=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o=zt()(t.map((function(e){return Array.isArray(e)?e:[]}))).filter((function(e){return Object.prototype.hasOwnProperty.call(e,"path")&&Object.prototype.hasOwnProperty.call(e,"operation")&&Object.prototype.hasOwnProperty.call(e,"args")&&Object.prototype.hasOwnProperty.call(e,"timestamp")})),r=Ot()(o,"path"),i=Object.entries(r).map((function(e){var t=(0,l.Z)(e,2),n=t[0],o=t[1];if(o.sort((function(e,t){return e.timestamp>t.timestamp?1:-1})),n.startsWith("collections")){var r,i=jt()(o,(function(e){return"removeFromCollection"===e.operation}));return r=i>0?o.slice(i):o,yt()(r,(function(e,t){return e.path===t.path&&e.operation===t.operation&&"addToCollection"===e.operation&&e.args[0]===t.args[0]}))}return n.startsWith("simple")?kt()(o):o}));return zt()(i).sort((function(e,t){return e.timestamp>t.timestamp?1:-1}))},on={clearServerSideStorage:function(e,t){Vt({},At()(Yt))},setServerSideStorage:function(e,t){var n=t.storage;e.raw=n;var o=e.cache;o&&o._user!==t.fqn&&(console.warn("cache belongs to another user! reinitializing local cache!"),o=null);var r=function(e,t){var n={recent:null,stale:null,needUpload:!1},o=en(e||{}),r=en(t||{});return!r&&o?(n.needUpload=!0,console.debug("Nothing valid stored on server, assuming cache to be source of truth"),n.recent=e,n.stale=t):!o&&r?(console.debug("Valid storage on server found, no local cache found, using live as source of truth"),n.recent=t,n.stale=e):o&&r?(console.debug("Both sources have valid data, figuring things out..."),t._timestamp===e._timestamp&&t._version===e._version?(console.debug("Same version/timestamp on both source, source of truth irrelevant"),n.recent=e,n.stale=t):(console.debug("Different timestamp, figuring out which one is more recent"),t._timestamp<e._timestamp?(n.recent=e,n.stale=t):(n.recent=t,n.stale=e))):(console.debug("Both sources are invalid, start from scratch"),n.needUpload=!0),n}(o=function(e){return e?(e._version<1&&(console.debug("Local cached data has older version, seeing if there any migrations that can be applied"),console.debug("No migrations found")),e._version>1&&(console.debug("Local cached data has newer version, seeing if there any reverse migrations that can be applied"),window._PLEROMA_HOTPATCH&&window._PLEROMA_HOTPATCH.reverseMigrations)?(console.debug("Found hotpatch migration, applying"),window._PLEROMA_HOTPATCH.reverseMigrations.call({},"serverSideStorage",{from:e._version,to:1},e)):e):e}(o),n),i=r.recent,s=r.stale,a=r.needsUpload,c=t.created_at>Kt,d=c?Jt:Yt.flagStorage,p=!1;if(null===i&&(console.debug("Data is empty, initializing for ".concat(c?"new":"existing"," user")),i=Xt({flagStorage:Vt({},d),prefsStorage:Vt({},Yt.prefsStorage)})),!a&&i&&s){console.debug("Checking if data needs merging...");var m=i,h=(m._timestamp,m._version,(0,lt.Z)(m,Wt)),f=(s._timestamp,s._version,(0,lt.Z)(s,Bt));p=!Et()(h,f),console.debug("Data ".concat(p?"needs":"doesn't need"," merging"))}var g,v,w=function(e,t){return Array.from(new Set([].concat((0,u.Z)(Object.keys((0,Ft.IU)((e||{}).flagStorage||{}))),(0,u.Z)(Object.keys((0,Ft.IU)((t||{}).flagStorage||{}))))))}(i,s);p?(console.debug("Merging the data..."),g=function(e,t,n){return t.flagStorage?e.flagStorage?Object.fromEntries(n.map((function(n){var o=e.flagStorage[n],r=t.flagStorage[n];return[n,Number((o>r?o:r)||0)]}))):t.flagStorage:e.flagStorage}(i,s,w),tn(i),tn(s),v=function(e,t,n){if(!t)return e;if(!e)return t;var o=e._journal,r=(0,lt.Z)(e,Zt),i=t._journal,s=Vt({},r),a=nn(i,o);return a.forEach((function(e){var t=e.path,n=(e.timestamp,e.operation),o=(e.command,e.args);if(t.startsWith("_"))console.error("journal contains entry to edit internal (starts with _) field '".concat(t,"', something is incorrect here, ignoring."));else switch(n){case"set":Ut()(s,t,o[0]);break;case"addToCollection":Ut()(s,t,Array.from(new Set(Tt()(s,t)).add(o[0])));break;case"removeFromCollection":var r=new Set(Tt()(s,t));r.delete(o[0]),Ut()(s,t,Array.from(r));break;case"reorderCollection":var i=(0,l.Z)(o,2),a=i[0],c=i[1];Ut()(s,t,Qt(Tt()(s,t),a,c));break;default:console.error("Unknown journal operation: '".concat(n,"', did we forget to run reverse migrations beforehand?"))}})),Vt(Vt({},s),{},{_journal:a})}(i.prefsStorage,s.prefsStorage)):(g=i.flagStorage,v=i.prefsStorage),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Yt.flagStorage,n=Vt({},e),o=Object.keys(e);if(e.reset>=1e3&&e.reset<=Gt){console.debug("Received command to trim the flags");var r=new Set(Object.keys(t));n={},o.forEach((function(t){r.has(t)&&(n[t]=e[t])})),e.reset===Gt&&(console.debug("Received command to reset the flags"),Object.keys(t).forEach((function(e){n[e]=0})))}else e.reset>0&&e.reset<9e3&&(console.debug("Received command to reset the flags"),o.forEach((function(e){n[e]=0})));return n.reset=0,n}(g),i.flagStorage=Vt(Vt({},d),g),i.prefsStorage=Vt(Vt({},Yt.prefsStorage),v),e.dirty=p||a,e.cache=i,s&&i&&!e.dirty&&(e.cache._timestamp=Math.min(s._timestamp,i._timestamp)),e.flagStorage=e.cache.flagStorage,e.prefsStorage=e.cache.prefsStorage},setFlag:function(e,t){var n=t.flag,o=t.value;e.flagStorage[n]=o,e.dirty=!0},setPreference:function(e,t){var n=t.path,o=t.value;n.startsWith("_")?console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring.")):(Ut()(e.prefsStorage,n,o),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"set",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0)},addCollectionPreference:function(e,t){var n=t.path,o=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var r=new Set(Tt()(e.prefsStorage,n));r.add(o),Ut()(e.prefsStorage,n,(0,u.Z)(r)),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"addToCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},removeCollectionPreference:function(e,t){var n=t.path,o=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var r=new Set(Tt()(e.prefsStorage,n));r.delete(o),Ut()(e.prefsStorage,n,(0,u.Z)(r)),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"removeFromCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},reorderCollectionPreference:function(e,t){var n=t.path,o=t.value,r=t.movement;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var i=Tt()(e.prefsStorage,n),s=Qt(i,o,r);Ut()(e.prefsStorage,n,s),e.prefsStorage._journal=[].concat((0,u.Z)(e.prefsStorage._journal),[{operation:"arrangeCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},updateCache:function(e,t){var n=t.username;e.prefsStorage._journal=nn(e.prefsStorage._journal),e.cache=Xt({flagStorage:(0,Ft.IU)(e.flagStorage),prefsStorage:(0,Ft.IU)(e.prefsStorage)},n)}};const rn={state:Vt({},At()(Yt)),mutations:on,actions:{pushServerSideStorage:function(e){var t=e.state,n=e.rootState,o=e.commit,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.force,s=void 0!==i&&i,a=t.dirty||s;if(console.log(a),a){o("updateCache",{username:n.users.currentUser.fqn});var c={pleroma_settings_store:{"pleroma-fe":t.cache}};n.api.backendInteractor.updateProfile({params:c}).then((function(e){o("setServerSideStorage",e),t.dirty=!1}))}}}},sn={state:{messages:[],channel:{state:""},joined:!1},mutations:{setChannel:function(e,t){e.channel=t},addMessage:function(e,t){e.messages.push(t),e.messages=e.messages.slice(-19,20)},setMessages:function(e,t){e.messages=t.slice(-19,20)},setJoined:function(e,t){e.joined=t}},actions:{initializeShout:function(e,t){var n=t.channel("chat:public");n.joinPush.receive("ok",(function(){e.commit("setJoined",!0)})),n.onClose((function(){e.commit("setJoined",!1)})),n.onError((function(){e.commit("setJoined",!1)})),n.on("new_msg",(function(t){e.commit("addMessage",t)})),n.on("messages",(function(t){var n=t.messages;e.commit("setMessages",n)})),n.join(),e.commit("setChannel",n)}}},an={state:{clientId:!1,clientSecret:!1,appToken:!1,userToken:!1},mutations:{setClientData:function(e,t){var n=t.clientId,o=t.clientSecret;e.clientId=n,e.clientSecret=o},setAppToken:function(e,t){e.appToken=t},setToken:function(e,t){e.userToken=t},clearToken:function(e){e.userToken=!1,delete e.token}},getters:{getToken:function(e){return function(){return e.userToken||e.token||e.appToken}},getUserToken:function(e){return function(){return e.userToken||e.token}}}};var cn="password",ln="token",un="totp",dn="recovery",pn=function(e){e.strategy=e.initStrategy,e.settings={}};const mn={namespaced:!0,state:{settings:{},strategy:cn,initStrategy:cn},getters:{settings:function(e,t){return e.settings},requiredPassword:function(e,t,n){return e.strategy===cn},requiredToken:function(e,t,n){return e.strategy===ln},requiredTOTP:function(e,t,n){return e.strategy===un},requiredRecovery:function(e,t,n){return e.strategy===dn}},mutations:{setInitialStrategy:function(e,t){t&&(e.initStrategy=t,e.strategy=t)},requirePassword:function(e){e.strategy=cn},requireToken:function(e){e.strategy=ln},requireMFA:function(e,t){var n=t.settings;e.settings=n,e.strategy=un},requireRecovery:function(e){e.strategy=dn},requireTOTP:function(e){e.strategy=un},abortMFA:function(e){pn(e)}},actions:{login:function(e,t){return(0,o.Z)(i().mark((function n(){var o,r,s,a;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o=e.state,r=e.dispatch,s=e.commit,a=t.access_token,s("setToken",a,{root:!0}),n.next=5,r("loginUser",a,{root:!0});case 5:pn(o);case 6:case"end":return n.stop()}}),n)})))()}}};var hn=n(58394),fn=new Set(["image","video","audio","flash"]),gn={state:{media:[],currentIndex:0,activated:!1},mutations:{setMedia:function(e,t){e.media=t},setCurrentMedia:function(e,t){e.activated=!0,e.currentIndex=t},close:function(e){e.activated=!1}},actions:{setMedia:function(e,t){var n=e.commit,o=t.filter((function(e){var t=hn.Z.fileType(e.mimetype);return fn.has(t)}));n("setMedia",o)},setCurrentMedia:function(e,t){(0,e.commit)("setCurrentMedia",e.state.media.indexOf(t)||0)},closeMediaViewer:function(e){(0,e.commit)("close")}}};const vn=gn,wn={state:{tokens:[]},actions:{fetchTokens:function(e){var t=e.rootState,n=e.commit;t.api.backendInteractor.fetchOAuthTokens().then((function(e){n("swapTokens",e)}))},revokeToken:function(e,t){var n=e.rootState,o=e.commit,r=e.state;n.api.backendInteractor.revokeOAuthToken({id:t}).then((function(e){201===e.status&&o("swapTokens",r.tokens.filter((function(e){return e.id!==t})))}))}},mutations:{swapTokens:function(e,t){e.tokens=t}}};var bn=n(63105),yn=n.n(bn),_n={state:{reportModal:{userId:null,statuses:[],preTickedIds:[],activated:!1},reports:{}},mutations:{openUserReportingModal:function(e,t){var n=t.userId,o=t.statuses,r=t.preTickedIds;e.reportModal.userId=n,e.reportModal.statuses=o,e.reportModal.preTickedIds=r,e.reportModal.activated=!0},closeUserReportingModal:function(e){e.reportModal.activated=!1},setReportState:function(e,t){var n=t.id,o=t.state;e.reports[n].state=o},addReport:function(e,t){e.reports[t.id]=t}},actions:{openUserReportingModal:function(e,t){var n=e.rootState,o=e.commit,r=t.userId,i=t.statusIds,s=void 0===i?[]:i,a=s.map((function(e){return n.statuses.allStatusesObject[e]})),c=s,l=a.concat(yn()(n.statuses.allStatuses,(function(e){return e.user.id===r&&!c.includes(e.id)})));o("openUserReportingModal",{userId:r,statuses:l,preTickedIds:c})},closeUserReportingModal:function(e){(0,e.commit)("closeUserReportingModal")},setReportState:function(e,t){var n=e.commit,o=e.dispatch,r=e.rootState,i=t.id,s=t.state,a=r.reports.reports[i].state;n("setReportState",{id:i,state:s}),r.api.backendInteractor.setReportState({id:i,state:s}).catch((function(e){console.error("Failed to set report state",e),o("pushGlobalNotice",{level:"error",messageKey:"general.generic_error_message",messageArgs:[e.message],timeout:5e3}),n("setReportState",{id:i,state:a})}))},addReport:function(e,t){(0,e.commit)("addReport",t)}}};const kn=_n;const Sn={state:{trackedPolls:{},pollsObject:{}},mutations:{mergeOrAddPoll:function(e,t){var n=e.pollsObject[t.id];t.expired=Date.now()>Date.parse(t.expires_at),e.pollsObject[t.id]=n?$()(n,t):t},trackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n+1:1},untrackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n-1:0}},actions:{mergeOrAddPoll:function(e,t){(0,e.commit)("mergeOrAddPoll",t)},updateTrackedPoll:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit;n.api.backendInteractor.fetchPoll({pollId:t}).then((function(e){setTimeout((function(){n.polls.trackedPolls[t]&&o("updateTrackedPoll",t)}),3e4),r("mergeOrAddPoll",e)}))},trackPoll:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch;n.polls.trackedPolls[t]||setTimeout((function(){return r("updateTrackedPoll",t)}),3e4),o("trackPoll",t)},untrackPoll:function(e,t){(0,e.commit)("untrackPoll",t)},votePoll:function(e,t){var n=e.rootState,o=e.commit,r=(t.id,t.pollId),i=t.choices;return n.api.backendInteractor.vote({pollId:r,choices:i}).then((function(e){return o("mergeOrAddPoll",e),e}))}}},jn={state:{params:null,modalActivated:!1},mutations:{openPostStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closePostStatusModal:function(e){e.modalActivated=!1}},actions:{openPostStatusModal:function(e,t){(0,e.commit)("openPostStatusModal",t)},closePostStatusModal:function(e){(0,e.commit)("closePostStatusModal")}}},Cn={state:{params:null,modalActivated:!1},mutations:{openEditStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closeEditStatusModal:function(e){e.modalActivated=!1}},actions:{openEditStatusModal:function(e,t){(0,e.commit)("openEditStatusModal",t)},closeEditStatusModal:function(e){(0,e.commit)("closeEditStatusModal")}}},On={state:{params:{},modalActivated:!1},mutations:{openStatusHistoryModal:function(e,t){e.params=t,e.modalActivated=!0},closeStatusHistoryModal:function(e){e.modalActivated=!1}},actions:{openStatusHistoryModal:function(e,t){(0,e.commit)("openStatusHistoryModal",t)},closeStatusHistoryModal:function(e){(0,e.commit)("closeStatusHistoryModal")}}};var Pn=n(73303),zn=n.n(Pn),Dn=n(75472),In=n.n(Dn),xn=n(73955),Tn=n.n(xn),$n=n(89734),Un=n.n($n);function Mn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return An(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?An(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function An(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var Ln={add:function(e,t){var n=t.messages,o=t.updateMaxId,r=void 0===o||o;if(e)for(var i=function(){var t=n[s];if(t.chat_id!==e.chatId)return{v:void 0};if(t.fakeId){var o=e.idIndex[t.fakeId];if(o)return e.idIndex[t.id]&&(delete e.idIndex[t.id],e.messages=e.messages.filter((function(e){return e.id!==t.id}))),Object.assign(o,t,{error:!1}),delete o.fakeId,e.idIndex[o.id]=o,delete e.idIndex[t.fakeId],{v:void 0}}(!e.minId||!t.pending&&t.id<e.minId)&&(e.minId=t.id),(!e.maxId||t.id>e.maxId)&&r&&(e.maxId=t.id),e.idIndex[t.id]||function(e,t){if(t.idempotency_key)return e.idempotencyKeyIndex[t.idempotency_key]}(e,t)||(e.lastSeenMessageId<t.id&&e.newMessageCount++,e.idIndex[t.id]=t,e.messages.push(e.idIndex[t.id]),e.idempotencyKeyIndex[t.idempotency_key]=!0)},s=0;s<n.length;s++){var a=i();if("object"===(0,de.Z)(a))return a.v}},empty:function(e){return{idIndex:{},idempotencyKeyIndex:{},messages:[],newMessageCount:0,lastSeenMessageId:"0",chatId:e,minId:void 0,maxId:void 0}},getView:function(e){if(!e)return[];var t,n=[],o=In()(e.messages,["pending","id"],["asc","asc"]),r=o[0],i=o[o.length-1];if(r){var s=new Date(r.created_at);s.setHours(0,0,0,0),n.push({type:"date",date:s,id:s.getTime().toString()})}for(var a=!1,c=0;c<o.length;c++){var l=o[c],u=o[c+1],d=new Date(l.created_at);d.setHours(0,0,0,0),i&&i.date<d&&(n.push({type:"date",date:d,id:d.getTime().toString()}),i.isTail=!0,t=void 0,a=!0);var p={type:"message",data:l,date:d,id:l.id,messageChainId:t};(u&&u.account_id)!==l.account_id&&(p.isTail=!0,t=void 0),((i&&i.data&&i.data.account_id)!==l.account_id||a)&&(t=Tn()(),p.isHead=!0,p.messageChainId=t),n.push(p),i=p,a=!1}return n},deleteMessage:function(e,t){if(e){if(e.messages=e.messages.filter((function(e){return e.id!==t})),delete e.idIndex[t],e.maxId===t){var n=L()(e.messages,"id");e.maxId=n.id}if(e.minId===t){var o=M()(e.messages,"id");e.minId=o.id}}},cullOlderMessages:function(e){var t=e.messages.length,n=t-50;if(!(t<=50)){e.messages=Un()(e.messages,["id"]),e.minId=e.messages[n].id;var o,r=Mn(e.messages);try{for(r.s();!(o=r.n()).done;){var i=o.value;i.id<e.minId&&(delete e.idIndex[i.id],delete e.idempotencyKeyIndex[i.idempotency_key])}}catch(e){r.e(e)}finally{r.f()}e.messages=e.messages.slice(n,t)}},resetNewMessageCount:function(e){e&&(e.newMessageCount=0,e.lastSeenMessageId=e.maxId)},clear:function(e){var t,n=[],o=Mn(e.messages);try{for(o.s();!(t=o.n()).done;){var r=t.value;r.error?n.push(r.id):(delete e.idIndex[r.id],delete e.idempotencyKeyIndex[r.idempotency_key])}}catch(e){o.e(e)}finally{o.f()}e.messages=e.messages.filter((function(e){return n.includes(e.id)})),e.newMessageCount=0,e.lastSeenMessageId="0",e.minId=void 0,e.maxId=void 0},handleMessageError:function(e,t,n){if(e){var o=e.idIndex[t];if(o&&(o.error=!0,o.pending=!1,!n)){var r=In()(e.messages,["pending","id"],["asc","desc"])[0];if(r){var i=o.id;o.id="".concat(r.id,"-").concat((new Date).getTime()),e.idIndex[o.id]=o,delete e.idIndex[i]}}}}};const En=Ln;var Fn=n(27742);function Rn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function qn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rn(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Nn={chatList:{data:[],idStore:{}},chatListFetcher:null,openedChats:(0,Ft.qj)({}),openedChatMessageServices:(0,Ft.qj)({}),fetcher:void 0,currentChatId:null,lastReadMessageId:null},Zn=function(e,t){return F()(e.chatList.data,{id:t})},Wn={state:qn({},Nn),getters:{currentChat:function(e){return e.openedChats[e.currentChatId]},currentChatMessageService:function(e){return e.openedChatMessageServices[e.currentChatId]},findOpenedChatByRecipientId:function(e){return function(t){return F()(e.openedChats,(function(e){return e.account.id===t}))}},sortedChatList:function(e){return In()(e.chatList.data,["updated_at"],["desc"])},unreadChatCount:function(e){return zn()(e.chatList.data,"unread")}},actions:{startFetchingChats:function(e){var t=e.dispatch,n=e.commit,o=function(){return t("fetchChats",{latest:!0})};o(),n("setChatListFetcher",{fetcher:function(){return(0,je.F)(o,5e3)}})},stopFetchingChats:function(e){(0,e.commit)("setChatListFetcher",{fetcher:void 0})},fetchChats:function(e){var t=e.dispatch,n=e.rootState;return e.commit,n.api.backendInteractor.chats().then((function(e){var n=e.chats;return t("addNewChats",{chats:n}),n}))},addNewChats:function(e,t){var n=t.chats;(0,e.commit)("addNewChats",{dispatch:e.dispatch,chats:n,rootGetters:e.rootGetters,newChatMessageSideEffects:function(t){dt(e,t)}})},updateChat:function(e,t){(0,e.commit)("updateChat",{chat:t.chat})},startFetchingCurrentChat:function(e,t){e.commit,(0,e.dispatch)("setCurrentChatFetcher",{fetcher:t.fetcher})},setCurrentChatFetcher:function(e,t){e.rootState,(0,e.commit)("setCurrentChatFetcher",{fetcher:t.fetcher})},addOpenedChat:function(e,t){e.rootState;var n=e.commit,o=e.dispatch,r=t.chat;n("addOpenedChat",{dispatch:o,chat:(0,Fn._J)(r)}),o("addNewUsers",[r.account])},addChatMessages:function(e,t){var n=e.commit;n("addChatMessages",qn({commit:n},t))},resetChatNewMessageCount:function(e,t){(0,e.commit)("resetChatNewMessageCount",t)},clearCurrentChat:function(e,t){e.rootState;var n=e.commit;e.dispatch,n("setCurrentChatId",{chatId:void 0}),n("setCurrentChatFetcher",{fetcher:void 0})},readChat:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch,i=t.id,s=t.lastReadId,a=n.chats.lastReadMessageId!==s;r("resetChatNewMessageCount"),o("readChat",{id:i,lastReadId:s}),a&&n.api.backendInteractor.readChat({id:i,lastReadId:s})},deleteChatMessage:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.deleteChatMessage(t),o("deleteChatMessage",qn({commit:o},t))},resetChats:function(e){var t=e.commit;(0,e.dispatch)("clearCurrentChat"),t("resetChats",{commit:t})},clearOpenedChats:function(e){e.rootState;var t=e.commit;e.dispatch,e.rootGetters,t("clearOpenedChats",{commit:t})},handleMessageError:function(e,t){var n=e.commit;n("handleMessageError",qn({commit:n},t))},cullOlderMessages:function(e,t){(0,e.commit)("cullOlderMessages",t)}},mutations:{setChatListFetcher:function(e,t){t.commit;var n=t.fetcher,o=e.chatListFetcher;o&&o.stop(),e.chatListFetcher=n&&n()},setCurrentChatFetcher:function(e,t){var n=t.fetcher,o=e.fetcher;o&&o.stop(),e.fetcher=n&&n()},addOpenedChat:function(e,t){t._dispatch;var n=t.chat;e.currentChatId=n.id,e.openedChats[n.id]=n,e.openedChatMessageServices[n.id]||(e.openedChatMessageServices[n.id]=En.empty(n.id))},setCurrentChatId:function(e,t){var n=t.chatId;e.currentChatId=n},addNewChats:function(e,t){var n=t.chats,o=t.newChatMessageSideEffects;n.forEach((function(t){var n=Zn(e,t.id);if(n){var r=(n.lastMessage&&n.lastMessage.id)!==(t.lastMessage&&t.lastMessage.id);n.lastMessage=t.lastMessage,n.unread=t.unread,n.updated_at=t.updated_at,r&&n.unread&&o(t)}else e.chatList.data.push(t),e.chatList.idStore[t.id]=t}))},updateChat:function(e,t){t._dispatch;var n=t.chat,o=(t._rootGetters,Zn(e,n.id));o&&(o.lastMessage=n.lastMessage,o.unread=n.unread,o.updated_at=n.updated_at),o||e.chatList.data.unshift(n),e.chatList.idStore[n.id]=n},deleteChat:function(e,t){t._dispatch;var n=t.id;t._rootGetters,e.chats.data=e.chats.data.filter((function(e){return e.last_status.id!==n})),e.chats.idStore=C()(e.chats.idStore,(function(e){return e.last_status.id===n}))},resetChats:function(e,t){var n=t.commit;for(var o in e.chatList={data:[],idStore:{}},e.currentChatId=null,n("setChatListFetcher",{fetcher:void 0}),e.openedChats)En.clear(e.openedChatMessageServices[o]),delete e.openedChats[o],delete e.openedChatMessageServices[o]},setChatsLoading:function(e,t){var n=t.value;e.chats.loading=n},addChatMessages:function(e,t){var n=t.chatId,o=t.messages,r=t.updateMaxId,i=e.openedChatMessageServices[n];i&&En.add(i,{messages:o.map(Fn.UB),updateMaxId:r})},deleteChatMessage:function(e,t){var n=t.chatId,o=t.messageId,r=e.openedChatMessageServices[n];r&&En.deleteMessage(r,o)},resetChatNewMessageCount:function(e,t){var n=e.openedChatMessageServices[e.currentChatId];En.resetNewMessageCount(n)},clearOpenedChats:function(e){var t=e.currentChatId;for(var n in e.openedChats)t!==n&&(En.clear(e.openedChatMessageServices[n]),delete e.openedChats[n],delete e.openedChatMessageServices[n])},readChat:function(e,t){var n=t.id,o=t.lastReadId;e.lastReadMessageId=o;var r=Zn(e,n);r&&(r.unread=0)},handleMessageError:function(e,t){var n=t.chatId,o=t.fakeId,r=t.isRetry,i=e.openedChatMessageServices[n];En.handleMessageError(i,o,r)},cullOlderMessages:function(e,t){En.cullOlderMessages(e.openedChatMessageServices[t])}}};const Bn=Wn;const Hn={state:{announcements:[],supportsAnnouncements:!0,fetchAnnouncementsTimer:void 0},mutations:{setAnnouncements:function(e,t){e.announcements=t},setAnnouncementRead:function(e,t){var n=t.id,o=t.read,r=e.announcements.findIndex((function(e){return e.id===n}));r<0||(e.announcements[r].read=o)},setFetchAnnouncementsTimer:function(e,t){e.fetchAnnouncementsTimer=t},setSupportsAnnouncements:function(e,t){e.supportsAnnouncements=t}},getters:{unreadAnnouncementCount:function(e,t,n){return n.users.currentUser?e.announcements.filter((function(e){return!(e.inactive||e.read)})).length:0}},actions:{fetchAnnouncements:function(e){if(!e.state.supportsAnnouncements)return Promise.resolve();var t=e.rootState.users.currentUser,n=t&&t.privileges.includes("announcements_manage_announcements"),r=function(){var t=(0,o.Z)(i().mark((function t(){var o,r,s,a;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n){t.next=2;break}return t.abrupt("return",e.rootState.api.backendInteractor.fetchAnnouncements());case 2:return t.next=4,e.rootState.api.backendInteractor.adminFetchAnnouncements();case 4:return o=t.sent,t.next=7,e.rootState.api.backendInteractor.fetchAnnouncements();case 7:return r=t.sent,s=r.reduce((function(e,t){return e[t.id]=t,e}),{}),a=function(e){return s[e.id]},o.forEach((function(e){var t=a(e);t?e.read=t.read:e.inactive=!0})),t.abrupt("return",o);case 12:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();return r().then((function(t){e.commit("setAnnouncements",t)})).catch((function(t){if(!t||404!==t.statusCode)throw t;e.commit("setSupportsAnnouncements",!1)}))},markAnnouncementAsRead:function(e,t){return e.rootState.api.backendInteractor.dismissAnnouncement({id:t}).then((function(){e.commit("setAnnouncementRead",{id:t,read:!0})}))},startFetchingAnnouncements:function(e){if(!e.state.fetchAnnouncementsTimer){var t=setInterval((function(){return e.dispatch("fetchAnnouncements")}),3e5);return e.commit("setFetchAnnouncementsTimer",t),e.dispatch("fetchAnnouncements")}},stopFetchingAnnouncements:function(e){var t=e.state.fetchAnnouncementsTimer;e.commit("setFetchAnnouncementsTimer",void 0),clearInterval(t)},postAnnouncement:function(e,t){var n=t.content,o=t.startsAt,r=t.endsAt,i=t.allDay;return e.rootState.api.backendInteractor.postAnnouncement({content:n,startsAt:o,endsAt:r,allDay:i}).then((function(){return e.dispatch("fetchAnnouncements")}))},editAnnouncement:function(e,t){var n=t.id,o=t.content,r=t.startsAt,i=t.endsAt,s=t.allDay;return e.rootState.api.backendInteractor.editAnnouncement({id:n,content:o,startsAt:r,endsAt:i,allDay:s}).then((function(){return e.dispatch("fetchAnnouncements")}))},deleteAnnouncement:function(e,t){return e.rootState.api.backendInteractor.deleteAnnouncement({id:t}).then((function(){return e.dispatch("fetchAnnouncements")}))}}};var Vn=n(90308),Kn=n(72378),Gn=n.n(Kn),Yn=n(69483),Jn=!1,Qn=function(e,t){return 0===t.length?e:t.reduce((function(t,n){return Ut()(t,n,Tt()(e,n)),t}),{})},Xn=["markNotificationsAsSeen","clearCurrentUser","setCurrentUser","setServerSideStorage","setHighlight","setOption","setClientData","setToken","clearToken"],eo=n.n(Yn)();function to(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=void 0===t?"vuex-lz":t,o=e.paths,r=void 0===o?[]:o,i=e.getState,s=void 0===i?function(e,t){return t.getItem(e)}:i,a=e.setState,c=void 0===a?function(e,t,n){return Jn?n.setItem(e,t):(console.log("waiting for old state to be loaded..."),Promise.resolve())}:a,l=e.reducer,u=void 0===l?Qn:l,d=e.storage,p=void 0===d?eo:d,m=e.subscriber,h=void 0===m?function(e){return function(t){return e.subscribe(t)}}:m;return s(n,p).then((function(e){return function(t){try{if(null!==e&&"object"===(0,de.Z)(e)){var o=e.users||{};o.usersObject={};var i=o.users||[];Z()(i,(function(e){o.usersObject[e.id]=e})),e.users=o,t.replaceState(Gn()({},t.state,e))}Jn=!0}catch(e){console.log("Couldn't load state"),console.error(e),Jn=!0}h(t)((function(e,o){try{Xn.includes(e.type)&&c(n,u(At()(o),r),p).then((function(n){void 0!==n&&("setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{success:n}))}),(function(n){"setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{error:n})}))}catch(e){console.log("Couldn't persist state:"),console.log(e)}}))}}))}const no=function(e){e.subscribe((function(t,n){var o=n.instance.vapidPublicKey,r=n.config.webPushNotifications,i="granted"===n.interface.notificationPermission,s=n.users.currentUser,a="setCurrentUser"===t.type,c="setInstanceOption"===t.type&&"vapidPublicKey"===t.payload.name,l="setNotificationPermission"===t.type&&"granted"===t.payload,u="setOption"===t.type&&"webPushNotifications"===t.payload.name,d="setOption"===t.type&&"notificationVisibility"===t.payload.name;if(a||c||l||u||d){if(s&&o&&i&&r)return e.dispatch("registerPushNotifications");if(u&&!r)return e.dispatch("unregisterPushNotifications")}}))};var oo=n(72617),ro=n(49963),io=n(28339),so=n(20425),ao=n.n(so),co=n(42570),lo=n(57810),uo=n(66252),po=n(3577),mo=(0,uo._)("div",{id:"app_bg_wrapper",class:"app-bg-wrapper"},null,-1),ho=(0,uo._)("div",{class:"underlay"},null,-1),fo=(0,uo._)("div",{id:"notifs-sidebar"},null,-1),go={key:0,class:"login-hint panel panel-default"},vo={class:"user-panel"},wo={key:"user-panel-signed",class:"panel panel-default signed-in"},bo={class:"login panel panel-default"},yo={class:"panel-heading"},_o={class:"panel-body"},ko={class:"form-group"},So={for:"username"},jo=["disabled","placeholder"],Co={class:"form-group"},Oo={for:"password"},Po=["disabled"],zo={class:"form-group"},Do={key:1,class:"form-group"},Io={class:"form-group"},xo={class:"login-bottom"},To=["disabled"],$o={key:0,class:"form-group"},Uo={class:"alert error"};function Mo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ao(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mo(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.NBC);const Lo={data:function(){return{user:{},error:!1}},computed:Ao(Ao({isPasswordAuth:function(){return this.requiredPassword},isTokenAuth:function(){return this.requiredToken}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},instance:function(e){return e.instance},loggingIn:function(e){return e.users.loggingIn},oauth:function(e){return e.oauth}})),(0,s.Se)("authFlow",["requiredPassword","requiredToken","requiredMFA"])),methods:Ao(Ao(Ao({},(0,s.OI)("authFlow",["requireMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{submit:function(){this.isTokenAuth?this.submitToken():this.submitPassword()},submitToken:function(){var e=this.oauth,t={clientId:e.clientId,clientSecret:e.clientSecret,instance:this.instance.server,commit:this.$store.commit};Ze.getOrCreateApp(t).then((function(e){Ze.login(Ao(Ao({},e),t))}))},submitPassword:function(){var e=this,t={clientId:this.oauth.clientId,oauth:this.oauth,instance:this.instance.server,commit:this.$store.commit};this.error=!1,Ze.getOrCreateApp(t).then((function(n){Ze.getTokenWithCredentials(Ao(Ao({},n),{},{instance:t.instance,username:e.user.username,password:e.user.password})).then((function(t){t.error?"mfa_required"===t.error?e.requireMFA({settings:t}):"password_reset_required"===t.identifier?e.$router.push({name:"password-reset",params:{passwordResetRequested:!0}}):(e.error=t.error,e.focusOnPasswordInput()):e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}))},clearError:function(){this.error=!1},focusOnPasswordInput:function(){var e=this.$refs.passwordInput;e.focus(),e.setSelectionRange(0,e.value.length)}})};var Eo=n(83744);const Fo=(0,Eo.Z)(Lo,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("router-link"),a=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",bo,[(0,uo._)("div",yo,(0,po.zw)(e.$t("login.login")),1),(0,uo._)("div",_o,[(0,uo._)("form",{class:"login-form",onSubmit:t[2]||(t[2]=(0,ro.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[e.isPasswordAuth?((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:0},[(0,uo._)("div",ko,[(0,uo._)("label",So,(0,po.zw)(e.$t("login.username")),1),(0,uo.wy)((0,uo._)("input",{id:"username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.username=t}),disabled:e.loggingIn,class:"form-control",placeholder:e.$t("login.placeholder")},null,8,jo),[[ro.nr,e.user.username]])]),(0,uo._)("div",Co,[(0,uo._)("label",Oo,(0,po.zw)(e.$t("login.password")),1),(0,uo.wy)((0,uo._)("input",{id:"password",ref:"passwordInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.user.password=t}),disabled:e.loggingIn,class:"form-control",type:"password"},null,8,Po),[[ro.nr,e.user.password]])]),(0,uo._)("div",zo,[(0,uo.Wm)(s,{to:{name:"password-reset"}},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("password_reset.forgot_password")),1)]})),_:1})])],64)):(0,uo.kq)("",!0),e.isTokenAuth?((0,uo.wg)(),(0,uo.iD)("div",Do,[(0,uo._)("p",null,(0,po.zw)(e.$t("login.description")),1)])):(0,uo.kq)("",!0),(0,uo._)("div",Io,[(0,uo._)("div",xo,[(0,uo._)("div",null,[e.registrationOpen?((0,uo.wg)(),(0,uo.j4)(s,{key:0,to:{name:"registration"},class:"register"},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("login.register")),1)]})),_:1})):(0,uo.kq)("",!0)]),(0,uo._)("button",{disabled:e.loggingIn,type:"submit",class:"btn button-default"},(0,po.zw)(e.$t("login.login")),9,To)])])],32)]),e.error?((0,uo.wg)(),(0,uo.iD)("div",$o,[(0,uo._)("div",Uo,[(0,uo.Uk)((0,po.zw)(e.error)+" ",1),(0,uo._)("button",{class:"button-unstyled",onClick:t[3]||(t[3]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,uo.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,uo.kq)("",!0)])}]]);var Ro={class:"login panel panel-default"},qo={class:"panel-heading"},No={class:"panel-body"},Zo={class:"form-group"},Wo={for:"code"},Bo={class:"form-group"},Ho={class:"login-bottom"},Vo=(0,uo._)("br",null,null,-1),Ko={type:"submit",class:"btn button-default"},Go={key:0,class:"form-group"},Yo={class:"alert error"},Jo={verifyOTPCode:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.mfaToken,i=e.code,s="".concat(o,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",r),a.append("code",i),a.append("challenge_type","totp"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.mfaToken,i=e.code,s="".concat(o,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",r),a.append("code",i),a.append("challenge_type","recovery"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))}};const Qo=Jo;function Xo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function er(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xo(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.NBC);const tr={data:function(){return{code:null,error:!1}},computed:er(er({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:er(er(er({},(0,s.OI)("authFlow",["requireTOTP","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};Qo.verifyRecoveryCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},nr=(0,Eo.Z)(tr,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",Ro,[(0,uo._)("div",qo,(0,po.zw)(e.$t("login.heading.recovery")),1),(0,uo._)("div",No,[(0,uo._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,ro.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,uo._)("div",Zo,[(0,uo._)("label",Wo,(0,po.zw)(e.$t("login.recovery_code")),1),(0,uo.wy)((0,uo._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[ro.nr,e.code]])]),(0,uo._)("div",Bo,[(0,uo._)("div",Ho,[(0,uo._)("div",null,[(0,uo._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,ro.iM)((function(){return e.requireTOTP&&e.requireTOTP.apply(e,arguments)}),["prevent"]))},(0,po.zw)(e.$t("login.enter_two_factor_code")),1),Vo,(0,uo._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,ro.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,po.zw)(e.$t("general.cancel")),1)]),(0,uo._)("button",Ko,(0,po.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,uo.wg)(),(0,uo.iD)("div",Go,[(0,uo._)("div",Yo,[(0,uo.Uk)((0,po.zw)(e.error)+" ",1),(0,uo._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,uo.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,uo.kq)("",!0)])}]]);var or={class:"login panel panel-default"},rr={class:"panel-heading"},ir={class:"panel-body"},sr={class:"form-group"},ar={for:"code"},cr={class:"form-group"},lr={class:"login-bottom"},ur=(0,uo._)("br",null,null,-1),dr={type:"submit",class:"btn button-default"},pr={key:0,class:"form-group"},mr={class:"alert error"};function hr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.NBC);const gr={data:function(){return{code:null,error:!1}},computed:fr(fr({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:fr(fr(fr({},(0,s.OI)("authFlow",["requireRecovery","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};Qo.verifyOTPCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},vr=(0,Eo.Z)(gr,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",or,[(0,uo._)("div",rr,(0,po.zw)(e.$t("login.heading.totp")),1),(0,uo._)("div",ir,[(0,uo._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,ro.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,uo._)("div",sr,[(0,uo._)("label",ar,(0,po.zw)(e.$t("login.authentication_code")),1),(0,uo.wy)((0,uo._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[ro.nr,e.code]])]),(0,uo._)("div",cr,[(0,uo._)("div",lr,[(0,uo._)("div",null,[(0,uo._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,ro.iM)((function(){return e.requireRecovery&&e.requireRecovery.apply(e,arguments)}),["prevent"]))},(0,po.zw)(e.$t("login.enter_recovery_code")),1),ur,(0,uo._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,ro.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,po.zw)(e.$t("general.cancel")),1)]),(0,uo._)("button",dr,(0,po.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,uo.wg)(),(0,uo.iD)("div",pr,[(0,uo._)("div",mr,[(0,uo.Uk)((0,po.zw)(e.error)+" ",1),(0,uo._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,uo.Wm)(s,{size:"lg",class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,uo.kq)("",!0)])}]]);function wr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const br={name:"AuthForm",render:function(){return(0,uo.h)((0,uo.up)(this.authForm))},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({authForm:function(){return this.requiredTOTP?"MFATOTPForm":this.requiredRecovery?"MFARecoveryForm":"LoginForm"}},(0,s.Se)("authFlow",["requiredTOTP","requiredRecovery"])),components:{MFARecoveryForm:nr,MFATOTPForm:vr,LoginForm:Fo}};var yr=n(58508),_r=n(20392);function kr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const Sr={computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({signedIn:function(){return this.user}},(0,s.rn)({user:function(e){return e.users.currentUser}})),components:{AuthForm:br,PostStatusForm:yr.Z,UserCard:_r.Z}},jr=(0,Eo.Z)(Sr,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("UserCard"),a=(0,uo.up)("PostStatusForm"),c=(0,uo.up)("auth-form");return(0,uo.wg)(),(0,uo.iD)("aside",vo,[e.signedIn?((0,uo.wg)(),(0,uo.iD)("div",wo,[(0,uo.Wm)(s,{"user-id":e.user.id,"hide-bio":!0,rounded:"top"},null,8,["user-id"]),(0,uo.Wm)(a)])):((0,uo.wg)(),(0,uo.j4)(c,{key:"user-panel"}))])}]]);var Cr={class:"NavPanel"},Or={class:"panel panel-default"},Pr={key:0,class:"panel-heading nav-panel-heading"},zr=(0,uo._)("div",{class:"spacer"},null,-1),Dr={key:1,class:"panel-body"},Ir={class:"timelines-background"},xr={class:"timelines"},Tr={class:"timelines-background"},$r={key:0,class:"icon iconLetter fa-scale-110 menu-icon"},Ur={class:"label"},Mr={key:0,class:"badge badge-notification"},Ar=["title","aria-pressed"],Lr=new Set(["bookmarks","dms","interactions","notifications","chat","chats","user-profile"]),Er={home:{route:"friends",icon:"home",label:"nav.home_timeline",criteria:["!private"]},public:{route:"public-timeline",anon:!0,icon:"users",label:"nav.public_tl",criteria:["!private"]},twkn:{route:"public-external-timeline",anon:!0,icon:"globe",label:"nav.twkn",criteria:["!private","federating"]},bookmarks:{route:"bookmarks",icon:"bookmark",label:"nav.bookmarks"},favorites:{routeObject:{name:"user-profile",query:{tab:"favorites"}},icon:"star",label:"user_card.favorites"},dms:{route:"dms",icon:"envelope",label:"nav.dms"}},Fr={interactions:{route:"interactions",icon:"bell",label:"nav.interactions"},chats:{route:"chats",icon:"comments",label:"nav.chats",badgeGetter:"unreadChatCount",criteria:["chats"]},friendRequests:{route:"friend-requests",icon:"user-plus",label:"nav.friend_requests",criteria:["lockedUser"],badgeGetter:"followRequestCount"},about:{route:"about",anon:!0,icon:"info-circle",label:"nav.about"},announcements:{route:"announcements",icon:"bullhorn",label:"nav.announcements",badgeGetter:"unreadAnnouncementCount",criteria:["announcements"]}};const Rr={props:["to"]},qr=(0,Eo.Z)(Rr,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("router-link");return n.to?((0,uo.wg)(),(0,uo.j4)(s,{key:0,to:n.to,custom:""},{default:(0,uo.w5)((function(t){return[(0,uo.WI)(e.$slots,"default",(0,po.vs)((0,uo.F4)(t)))]})),_:3},8,["to"])):(0,uo.WI)(e.$slots,"default",(0,po.vs)((0,uo.dG)({key:1},{})))}]]);function Nr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}qt.vI.add(Nt.RP7);const Zr={props:["item","showPin"],components:{OptionalRouterLink:qr},methods:{isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({routeTo:function(){return this.item.route||this.item.routeObject?(e=this.item.routeObject?this.item.routeObject:{name:this.item.anon||this.currentUser?this.item.route:this.item.anonRoute},Lr.has(e.name)&&(e.params={username:this.currentUser.screen_name,name:this.currentUser.screen_name}),e):null;var e},getters:function(){return this.$store.getters}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}}))},Wr=(0,Eo.Z)(Zr,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("OptionalRouterLink");return(0,uo.wg)(),(0,uo.j4)(a,{ass:"ass",to:e.routeTo},{default:(0,uo.w5)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=n.isActive,r=n.href,i=n.navigate;return[(0,uo._)("li",(0,uo.dG)({class:["NavigationEntry menu-item",{"-active":o}]},e.$attrs),[((0,uo.wg)(),(0,uo.j4)((0,uo.LL)(e.routeTo?"a":"button"),{class:"main-link button-unstyled",href:r,onClick:i},{default:(0,uo.w5)((function(){return[(0,uo._)("span",null,[e.item.icon?((0,uo.wg)(),(0,uo.j4)(s,{key:0,"fixed-width":"",class:"fa-scale-110 menu-icon",icon:e.item.icon},null,8,["icon"])):(0,uo.kq)("",!0)]),e.item.iconLetter?((0,uo.wg)(),(0,uo.iD)("span",$r,(0,po.zw)(e.item.iconLetter),1)):(0,uo.kq)("",!0),(0,uo._)("span",Ur,(0,po.zw)(e.item.labelRaw||e.$t(e.item.label)),1)]})),_:2},1032,["href","onClick"])),(0,uo.WI)(e.$slots,"default"),e.item.badgeGetter&&e.getters[e.item.badgeGetter]?((0,uo.wg)(),(0,uo.iD)("div",Mr,(0,po.zw)(e.getters[e.item.badgeGetter]),1)):(0,uo.kq)("",!0),e.showPin&&e.currentUser?((0,uo.wg)(),(0,uo.iD)("button",{key:1,type:"button",class:"button-unstyled extra-button",title:e.$t(e.isPinned?"general.unpin":"general.pin"),"aria-pressed":!!e.isPinned,onClick:t[0]||(t[0]=(0,ro.iM)((function(t){return e.togglePin(e.item.name)}),["stop","prevent"]))},[e.showPin&&e.currentUser?((0,uo.wg)(),(0,uo.j4)(s,{key:0,"fixed-width":"",class:(0,po.C_)(["fa-scale-110",{veryfaint:!e.isPinned(e.item.name)}]),transform:e.isPinned(e.item.name)?"":"rotate-45",icon:"thumbtack"},null,8,["class","transform"])):(0,uo.kq)("",!0)],8,Ar)):(0,uo.kq)("",!0)],16)]})),_:3},8,["to"])}]]);var Br=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=t.hasChats,o=t.hasAnnouncements,r=t.isFederating,i=t.isPrivate,s=t.currentUser;return e.filter((function(e){var t=e.criteria,a=e.anon,c=e.anonRoute,l=new Set(t||[]);return!(!r&&l.has("federating")||!s&&i&&l.has("!private")||!(s||a||c)||!(s&&s.locked||!l.has("lockedUser"))||!n&&l.has("chats")||!o&&l.has("announcements"))}))},Hr=function(e){return e.lists.allLists.map((function(e){return{name:"list-"+e.id,routeObject:{name:"lists-timeline",params:{id:e.id}},labelRaw:e.title,iconLetter:e.title[0]}}))};function Vr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var Kr={props:["showPin"],components:{NavigationEntry:Wr},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},(0,s.rn)({lists:Hr,currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}}))};const Gr=Kr,Yr=(0,Eo.Z)(Gr,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("NavigationEntry");return(0,uo.wg)(),(0,uo.iD)("ul",null,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.lists,(function(t){return(0,uo.wg)(),(0,uo.j4)(s,{key:t.name,"show-pin":e.showPin,item:t},null,8,["show-pin","item"])})),128))])}]]);var Jr={class:"NavigationPins"},Qr={key:1,class:"iconLetter fa-scale-110 fa-old-padding"},Xr={key:2,class:"alert-dot"};function ei(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ti(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ei(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ei(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.FVb,Nt.g4A,Nt.xVw,Nt.FU$,Nt.lXL,Nt.qmU,Nt.sqG,Nt.aC2,Nt.Zrf);const ni={props:["limit"],methods:{getRouteTo:function(e){if(e.routeObject)return e.routeObject;var t={name:e.anon||this.currentUser?e.route:e.anonRoute};return Lr.has(t.name)&&(t.params={username:this.currentUser.screen_name}),t}},computed:ti(ti({getters:function(){return this.$store.getters}},(0,s.rn)({lists:Hr,currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}})),{},{pinnedList:function(){var e=this;return this.currentUser?Br([].concat((0,u.Z)(Object.entries(ti({},Er)).filter((function(t){var n=(0,l.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return ti(ti({},t[1]),{},{name:n})}))),(0,u.Z)(this.lists.filter((function(t){return e.pinnedItems.has(t.name)}))),(0,u.Z)(Object.entries(ti({},Fr)).filter((function(t){var n=(0,l.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return ti(ti({},t[1]),{},{name:n})})))),{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser}).slice(0,this.limit):Br([ti(ti({},Er.public),{},{name:"public"}),ti(ti({},Er.twkn),{},{name:"twkn"}),ti(ti({},Fr.about),{},{name:"about"})],{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}})},oi=(0,Eo.Z)(ni,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("router-link");return(0,uo.wg)(),(0,uo.iD)("span",Jr,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.pinnedList,(function(t){return(0,uo.wg)(),(0,uo.j4)(a,{key:t.name,class:"pinned-item",to:e.getRouteTo(t),title:t.labelRaw||e.$t(t.label)},{default:(0,uo.w5)((function(){return[t.icon?((0,uo.wg)(),(0,uo.j4)(s,{key:0,"fixed-width":"",icon:t.icon},null,8,["icon"])):(0,uo.kq)("",!0),t.iconLetter?((0,uo.wg)(),(0,uo.iD)("span",Qr,(0,po.zw)(t.iconLetter),1)):(0,uo.kq)("",!0),t.badgeGetter&&e.getters[t.badgeGetter]?((0,uo.wg)(),(0,uo.iD)("div",Xr)):(0,uo.kq)("",!0)]})),_:2},1032,["to","title"])})),128))])}]]);var ri=n(90350);function ii(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function si(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ii(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ii(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.FVb,Nt.g4A,Nt.xVw,Nt.FU$,Nt.ptq,Nt.mTx,Nt.lXL,Nt.qmU,Nt.sqG,Nt.aC2,Nt.Zrf,Nt.Acd);const ai={props:["forceExpand","forceEditMode"],created:function(){},components:{ListsMenuContent:Yr,NavigationEntry:Wr,NavigationPins:oi,Checkbox:ri.Z},data:function(){return{editMode:!1,showTimelines:!1,showLists:!1,timelinesList:Object.entries(Er).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})})),rootList:Object.entries(Fr).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})}))}},methods:{toggleTimelines:function(){this.showTimelines=!this.showTimelines},toggleLists:function(){this.showLists=!this.showLists},toggleEditMode:function(){this.editMode=!this.editMode},toggleCollapse:function(){this.$store.commit("setPreference",{path:"simple.collapseNav",value:!this.collapsed}),this.$store.dispatch("pushServerSideStorage")},isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:si(si({},(0,s.rn)({currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)},collapsed:function(e){return e.serverSideStorage.prefsStorage.simple.collapseNav}})),{},{timelinesItems:function(){return Br(Object.entries(si({},Er)).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})},rootItems:function(){return Br(Object.entries(si({},Fr)).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return si(si({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"]))},ci=(0,Eo.Z)(ai,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("NavigationPins"),a=(0,uo.up)("FAIcon"),c=(0,uo.up)("NavigationEntry"),l=(0,uo.up)("router-link"),u=(0,uo.up)("ListsMenuContent");return(0,uo.wg)(),(0,uo.iD)("div",Cr,[(0,uo._)("div",Or,[e.forceExpand?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",Pr,[(0,uo.Wm)(s,{limit:6}),zr,(0,uo._)("button",{class:"button-unstyled",onClick:t[0]||(t[0]=function(){return e.toggleCollapse&&e.toggleCollapse.apply(e,arguments)})},[(0,uo.Wm)(a,{class:"navigation-chevron","fixed-width":"",icon:e.collapsed?"chevron-down":"chevron-up"},null,8,["icon"])])])),!e.collapsed||e.forceExpand?((0,uo.wg)(),(0,uo.iD)("ul",Dr,[e.currentUser||!e.privateMode?((0,uo.wg)(),(0,uo.j4)(c,{key:0,"show-pin":!1,item:{icon:"stream",label:"nav.timelines"},"aria-expanded":e.showTimelines?"true":"false",onClick:e.toggleTimelines},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showTimelines?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,uo.kq)("",!0),(0,uo.wy)((0,uo._)("div",Ir,[(0,uo._)("div",xr,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.timelinesItems,(function(t){return(0,uo.wg)(),(0,uo.j4)(c,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128))])],512),[[ro.F8,e.showTimelines]]),e.currentUser?((0,uo.wg)(),(0,uo.j4)(c,{key:1,"show-pin":!1,item:{icon:"list",label:"nav.lists"},"aria-expanded":e.showLists?"true":"false",onClick:e.toggleLists},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(l,{title:e.$t("lists.manage_lists"),class:"extra-button",to:{name:"lists"},onClick:t[1]||(t[1]=(0,ro.iM)((function(){}),["stop"]))},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{class:"extra-button","fixed-width":"",icon:"wrench"})]})),_:1},8,["title"]),(0,uo.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showLists?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,uo.kq)("",!0),(0,uo.wy)((0,uo._)("div",Tr,[(0,uo.Wm)(u,{"show-pin":e.editMode||e.forceEditMode,class:"timelines"},null,8,["show-pin"])],512),[[ro.F8,e.showLists]]),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.rootItems,(function(t){return(0,uo.wg)(),(0,uo.j4)(c,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128)),!e.forceEditMode&&e.currentUser?((0,uo.wg)(),(0,uo.j4)(c,{key:2,"show-pin":!1,item:{label:e.editMode?e.$t("nav.edit_finish"):e.$t("nav.edit_pinned"),icon:e.editMode?"check":"wrench"},onClick:e.toggleEditMode},null,8,["item","onClick"])):(0,uo.kq)("",!0)])):(0,uo.kq)("",!0)])])}]]);var li={class:"instance-specific-panel"},ui={class:"panel panel-default"},di={class:"panel-body"},pi=["innerHTML"];const mi={computed:{instanceSpecificPanelContent:function(){return this.$store.state.instance.instanceSpecificPanelContent}}},hi=(0,Eo.Z)(mi,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("div",li,[(0,uo._)("div",ui,[(0,uo._)("div",di,[(0,uo._)("div",{innerHTML:e.instanceSpecificPanelContent},null,8,pi)])])])}]]);var fi={class:"features-panel"},gi={class:"panel panel-default base01-background"},vi={class:"panel-heading timeline-heading base02-background base04"},wi={class:"title"},bi={class:"panel-body features-panel"},yi={key:0},_i={key:1},ki={key:2},Si={key:3},ji={key:4},Ci=n(65079);const Oi={computed:{shout:function(){return this.$store.state.instance.shoutAvailable},pleromaChatMessages:function(){return this.$store.state.instance.pleromaChatMessagesAvailable},gopher:function(){return this.$store.state.instance.gopherAvailable},whoToFollow:function(){return this.$store.state.instance.suggestionsEnabled},mediaProxy:function(){return this.$store.state.instance.mediaProxyAvailable},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},textlimit:function(){return this.$store.state.instance.textlimit},uploadlimit:function(){return Ci.Z.fileSizeFormat(this.$store.state.instance.uploadlimit)}}},Pi=(0,Eo.Z)(Oi,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("div",fi,[(0,uo._)("div",gi,[(0,uo._)("div",vi,[(0,uo._)("div",wi,(0,po.zw)(e.$t("features_panel.title")),1)]),(0,uo._)("div",bi,[(0,uo._)("ul",null,[e.shout?((0,uo.wg)(),(0,uo.iD)("li",yi,(0,po.zw)(e.$t("features_panel.shout")),1)):(0,uo.kq)("",!0),e.pleromaChatMessages?((0,uo.wg)(),(0,uo.iD)("li",_i,(0,po.zw)(e.$t("features_panel.pleroma_chat_messages")),1)):(0,uo.kq)("",!0),e.gopher?((0,uo.wg)(),(0,uo.iD)("li",ki,(0,po.zw)(e.$t("features_panel.gopher")),1)):(0,uo.kq)("",!0),e.whoToFollow?((0,uo.wg)(),(0,uo.iD)("li",Si,(0,po.zw)(e.$t("features_panel.who_to_follow")),1)):(0,uo.kq)("",!0),e.mediaProxy?((0,uo.wg)(),(0,uo.iD)("li",ji,(0,po.zw)(e.$t("features_panel.media_proxy")),1)):(0,uo.kq)("",!0),(0,uo._)("li",null,(0,po.zw)(e.$t("features_panel.scope_options")),1),(0,uo._)("li",null,(0,po.zw)(e.$t("features_panel.text_limit"))+" = "+(0,po.zw)(e.textlimit),1),(0,uo._)("li",null,(0,po.zw)(e.$t("features_panel.upload_limit"))+" = "+(0,po.zw)(e.uploadlimit.num)+" "+(0,po.zw)(e.$t("upload.file_size_units."+e.uploadlimit.unit)),1)])])])])}]]);var zi={class:"who-to-follow-panel"},Di={class:"panel panel-default base01-background"},Ii={class:"panel-heading timeline-heading base02-background base04"},xi={class:"title"},Ti={class:"who-to-follow"},$i=["src"],Ui=(0,uo._)("br",null,null,-1),Mi={class:"who-to-follow-more"},Ai=n(69983),Li=n.n(Ai),Ei=n(4493);function Fi(e){var t=e.$store.state.users.currentUser.credentials;t&&(e.usersToFollow.forEach((function(e){e.name="Loading..."})),h.ZP.suggestions({credentials:t}).then((function(t){!function(e,t){var n=this,o=Li()(t);e.usersToFollow.forEach((function(t,r){var i=o[r],s=i.avatar||n.$store.state.instance.defaultAvatar,a=i.acct;t.img=s,t.name=a,e.$store.state.api.backendInteractor.fetchUser({id:a}).then((function(n){n.error||(e.$store.commit("addNewUsers",[n]),t.id=n.id)}))}))}(e,t)})))}const Ri={data:function(){return{usersToFollow:[]}},computed:{user:function(){return this.$store.state.users.currentUser.screen_name},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled}},methods:{userProfileLink:function(e,t){return(0,Ei.Z)(e,t,this.$store.state.instance.restrictedNicknames)}},watch:{user:function(e,t){this.suggestionsEnabled&&Fi(this)}},mounted:function(){var e=this;this.usersToFollow=new Array(3).fill().map((function(t){return{img:e.$store.state.instance.defaultAvatar,name:"",id:0}})),this.suggestionsEnabled&&Fi(this)}},qi=(0,Eo.Z)(Ri,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("router-link");return(0,uo.wg)(),(0,uo.iD)("div",zi,[(0,uo._)("div",Di,[(0,uo._)("div",Ii,[(0,uo._)("div",xi,(0,po.zw)(e.$t("who_to_follow.who_to_follow")),1)]),(0,uo._)("div",Ti,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.usersToFollow,(function(t){return(0,uo.wg)(),(0,uo.iD)("p",{key:t.id,class:"who-to-follow-items"},[(0,uo._)("img",{src:t.img},null,8,$i),(0,uo.Wm)(s,{to:e.userProfileLink(t.id,t.name)},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(t.name),1)]})),_:2},1032,["to"]),Ui])})),128)),(0,uo._)("p",Mi,[(0,uo.Wm)(s,{to:{name:"who-to-follow"}},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("who_to_follow.more")),1)]})),_:1})])])])])}]]);var Ni={key:0,class:"shout-panel"},Zi={class:"panel panel-default"},Wi={class:"title"},Bi={class:"shout-window"},Hi={class:"shout-avatar"},Vi=["src"],Ki={class:"shout-content"},Gi=(0,uo._)("br",null,null,-1),Yi={class:"shout-text"},Ji={class:"shout-input"},Qi={key:1,class:"shout-panel"},Xi={class:"panel panel-default"},es={class:"title"};qt.vI.add(Nt.Acd,Nt.NBC);const ts={props:["floating"],data:function(){return{currentMessage:"",channel:null,collapsed:!0}},computed:{messages:function(){return this.$store.state.shout.messages}},methods:{submit:function(e){this.$store.state.shout.channel.push("new_msg",{text:e},1e4),this.currentMessage=""},togglePanel:function(){this.collapsed=!this.collapsed},userProfileLink:function(e){return(0,Ei.Z)(e.id,e.username,this.$store.state.instance.restrictedNicknames)}},watch:{messages:function(e){var t=this.$el.querySelector(".chat-window");t&&t.scrollTop+t.offsetHeight+20>t.scrollHeight&&this.$nextTick((function(){t&&(t.scrollTop=t.scrollHeight-t.offsetHeight)}))}}},ns=(0,Eo.Z)(ts,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("router-link");return e.collapsed&&e.floating?((0,uo.wg)(),(0,uo.iD)("div",Qi,[(0,uo._)("div",Xi,[(0,uo._)("div",{class:"panel-heading -stub timeline-heading shout-heading",onClick:t[3]||(t[3]=(0,ro.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,uo._)("div",es,[(0,uo.Wm)(s,{class:"icon",icon:"bullhorn"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("shoutbox.title")),1)])])])])):((0,uo.wg)(),(0,uo.iD)("div",Ni,[(0,uo._)("div",Zi,[(0,uo._)("div",{class:(0,po.C_)(["panel-heading timeline-heading",{"shout-heading":e.floating}]),onClick:t[0]||(t[0]=(0,ro.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,uo._)("div",Wi,[(0,uo.Uk)((0,po.zw)(e.$t("shoutbox.title"))+" ",1),e.floating?((0,uo.wg)(),(0,uo.j4)(s,{key:0,icon:"times",class:"close-icon"})):(0,uo.kq)("",!0)])],2),(0,uo._)("div",Bi,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.messages,(function(t){return(0,uo.wg)(),(0,uo.iD)("div",{key:t.id,class:"shout-message"},[(0,uo._)("span",Hi,[(0,uo._)("img",{src:t.author.avatar},null,8,Vi)]),(0,uo._)("div",Ki,[(0,uo.Wm)(a,{class:"shout-name",to:e.userProfileLink(t.author)},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(t.author.username),1)]})),_:2},1032,["to"]),Gi,(0,uo._)("span",Yi,(0,po.zw)(t.text),1)])])})),128))]),(0,uo._)("div",Ji,[(0,uo.wy)((0,uo._)("textarea",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.currentMessage=t}),class:"shout-input-textarea",rows:"1",onKeyup:t[2]||(t[2]=(0,ro.D2)((function(t){return e.submit(e.currentMessage)}),["enter"]))},null,544),[[ro.nr,e.currentMessage]])])])]))}]]);var os=["src","alt","title"],rs=["src","alt","title"],is=["title"],ss=["title"],as=["title"],cs={key:6,class:"description"},ls={class:"counter"},us={key:7,class:"loading-spinner"},ds=n(32140),ps=n(34133),ms=n(782);const hs={methods:{setTransform:function(e){var t=e.scale,n=e.x,o=e.y;this.$el.setTransform({scale:t,x:n,y:o})}},created:function(){ms.Z}},fs=(0,Eo.Z)(hs,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("pinch-zoom",(0,uo.dG)({class:"pinch-zoom-parent"},e.$attrs,(0,uo.mx)(e.$listeners,!0)),[(0,uo.WI)(e.$slots,"default")],16)}]]);var gs=n(15671),vs=n(43144),ws=function(e,t){return[t[0]-e[0],t[1]-e[1]]},bs=function(e){return[(t=e.touches[0]).screenX,t.screenY];var t},ys=function(e){return[e.clientX,e.clientY]},_s=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},ks=function(e){return[e[1],-e[0]]},Ss=function(e,t){return e[0]*t[0]+e[1]*t[1]},js=function(e,t){var n=Ss(e,t)/Ss(t,t);return[n*t[0],n*t[1]]};const Cs={DIRECTION_LEFT:[-1,0],DIRECTION_RIGHT:[1,0],DIRECTION_UP:[0,-1],DIRECTION_DOWN:[0,1],swipeGesture:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{direction:e,onSwipe:t,threshold:n,perpendicularTolerance:o,_startPos:[0,0],_swiping:!1}},beginSwipe:function(e,t){t._startPos=bs(e),t._swiping=!0},updateSwipe:function(e,t){if(t._swiping){var n=ws(t._startPos,bs(e));if(!(_s(n)<t.threshold||Ss(n,t.direction)<0)){var o=js(n,t.direction),r=ks(t.direction),i=js(n,r);_s(o)*t.perpendicularTolerance<_s(i)||(t.onSwipe(),t._swiping=!1)}}},SwipeAndClickGesture:function(){function e(t){var n=t.direction,o=t.swipePreviewCallback,r=t.swipeEndCallback,i=t.swipeCancelCallback,s=t.swipelessClickCallback,a=t.threshold,c=void 0===a?30:a,l=t.perpendicularTolerance,u=void 0===l?1:l,d=t.disableClickThreshold,p=void 0===d?1:d;(0,gs.Z)(this,e);var m=function(){};this.direction=n,this.swipePreviewCallback=o||m,this.swipeEndCallback=r||m,this.swipeCancelCallback=i||m,this.swipelessClickCallback=s||m,this.threshold="function"==typeof c?c:function(){return c},this.disableClickThreshold="function"==typeof p?p:function(){return p},this.perpendicularTolerance=u,this._reset()}return(0,vs.Z)(e,[{key:"_reset",value:function(){this._startPos=[0,0],this._pointerId=-1,this._swiping=!1,this._swiped=!1,this._preventNextClick=!1}},{key:"start",value:function(e){0===e.button&&(this._startPos=ys(e),this._pointerId=e.pointerId,this._swiping=!0,this._swiped=!1)}},{key:"move",value:function(e){if(this._swiping&&this._pointerId===e.pointerId){this._swiped=!0;var t=ys(e),n=ws(this._startPos,t);this.swipePreviewCallback(n)}}},{key:"cancel",value:function(e){this._swiping&&this._pointerId===e.pointerId&&this.swipeCancelCallback()}},{key:"end",value:function(e){var t=this;if(this._swiping&&this._pointerId===e.pointerId){this._swiping=!1;var n=ys(e),o=ws(this._startPos,n),r=function(){if(_s(o)<t.threshold())return 0;var e=Ss(o,t.direction)>0,n=js(o,t.direction),r=ks(t.direction),i=js(o,r);return _s(n)*t.perpendicularTolerance<_s(i)?0:e?1:-1}();this._swiped&&this.swipeEndCallback(r),this._reset(),_s(o)>=this.disableClickThreshold()&&"mouse"===e.pointerType&&(this._preventNextClick=!0)}}},{key:"click",value:function(e){this._preventNextClick||this.swipelessClickCallback(),this._reset()}}]),e}()},Os={props:{direction:{type:Array},threshold:{type:Function,default:function(){return 30}},disableClickThreshold:{type:Function,default:function(){return 1}},perpendicularTolerance:{type:Number,default:1}},methods:{handlePointerDown:function(e){this.$gesture.start(e)},handlePointerMove:function(e){this.$gesture.move(e)},handlePointerUp:function(e){this.$gesture.end(e)},handlePointerCancel:function(e){this.$gesture.cancel(e)},handleNativeClick:function(e){this.$gesture.click(e)},preview:function(e){this.$emit("preview-requested",e)},end:function(e){this.$emit("swipe-finished",e)},click:function(){this.$emit("swipeless-clicked")},cancel:function(){this.$emit("swipe-canceled")}},created:function(){this.$gesture=new Cs.SwipeAndClickGesture({direction:this.direction,threshold:this.threshold,disableClickThreshold:this.disableClickThreshold,perpendicularTolerance:this.perpendicularTolerance,swipePreviewCallback:this.preview,swipeEndCallback:this.end,swipeCancelCallback:this.cancel,swipelessClickCallback:this.click})}},Ps=(0,Eo.Z)(Os,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("div",(0,uo.dG)(e.$attrs,{onPointerdown:t[0]||(t[0]=function(){return e.handlePointerDown&&e.handlePointerDown.apply(e,arguments)}),onPointermove:t[1]||(t[1]=function(){return e.handlePointerMove&&e.handlePointerMove.apply(e,arguments)}),onPointerup:t[2]||(t[2]=function(){return e.handlePointerUp&&e.handlePointerUp.apply(e,arguments)}),onPointercancel:t[3]||(t[3]=function(){return e.handlePointerCancel&&e.handlePointerCancel.apply(e,arguments)}),onClick:t[4]||(t[4]=function(){return e.handleNativeClick&&e.handleNativeClick.apply(e,arguments)})}),[(0,uo.WI)(e.$slots,"default")],16)}]]);var zs=n(72884);qt.vI.add(Nt.A35,Nt._tD,Nt.IJ7,Nt.NBC);const Ds={components:{StillImage:ds.Z,VideoAttachment:ps.Z,PinchZoom:fs,SwipeClick:Ps,Modal:Rt.Z,Flash:zs.Z},data:function(){return{loading:!1,swipeDirection:Cs.DIRECTION_LEFT,swipeThreshold:function(){return window.innerWidth*(1/4)},pinchZoomMinScale:1,pinchZoomScaleResetLimit:1.2}},computed:{showing:function(){return this.$store.state.mediaViewer.activated},media:function(){return this.$store.state.mediaViewer.media},description:function(){return this.currentMedia.description},currentIndex:function(){return this.$store.state.mediaViewer.currentIndex},currentMedia:function(){return this.media[this.currentIndex]},canNavigate:function(){return this.media.length>1},type:function(){return this.currentMedia?this.getType(this.currentMedia):null},swipeDisableClickThreshold:function(){var e=this;return function(){return e.canNavigate?1:30}}},methods:{getType:function(e){return hn.Z.fileType(e.mimetype)},hide:function(){var e=this;setTimeout((function(){e.$store.dispatch("closeMediaViewer")}),100)},hideIfNotSwiped:function(e){var t=this.$refs.swipeClick;t?t.$gesture.click(e):this.hide()},goPrev:function(){if(this.canNavigate){var e=0===this.currentIndex?this.media.length-1:this.currentIndex-1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},goNext:function(){if(this.canNavigate){var e=this.currentIndex===this.media.length-1?0:this.currentIndex+1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},onImageLoaded:function(){this.loading=!1},handleSwipePreview:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:e[0],y:0})},handleSwipeEnd:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:0,y:0}),e>0?this.goNext():e<0&&this.goPrev()},handleKeyupEvent:function(e){this.showing&&27===e.keyCode&&this.hide()},handleKeydownEvent:function(e){this.showing&&(39===e.keyCode?this.goNext():37===e.keyCode&&this.goPrev())}},mounted:function(){window.addEventListener("popstate",this.hide),document.addEventListener("keyup",this.handleKeyupEvent),document.addEventListener("keydown",this.handleKeydownEvent)},unmounted:function(){window.removeEventListener("popstate",this.hide),document.removeEventListener("keyup",this.handleKeyupEvent),document.removeEventListener("keydown",this.handleKeydownEvent)}},Is=(0,Eo.Z)(Ds,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("PinchZoom"),a=(0,uo.up)("SwipeClick"),c=(0,uo.up)("VideoAttachment"),l=(0,uo.up)("Flash"),u=(0,uo.up)("FAIcon"),d=(0,uo.up)("Modal");return e.showing?((0,uo.wg)(),(0,uo.j4)(d,{key:0,class:"media-modal-view",onBackdropClicked:e.hideIfNotSwiped},{default:(0,uo.w5)((function(){return["image"===e.type?((0,uo.wg)(),(0,uo.j4)(a,{key:0,ref:"swipeClick",class:"modal-image-container",direction:e.swipeDirection,threshold:e.swipeThreshold,"disable-click-threshold":e.swipeDisableClickThreshold,onPreviewRequested:e.handleSwipePreview,onSwipeFinished:e.handleSwipeEnd,onSwipelessClicked:e.hide},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{ref:"pinchZoom",class:"modal-image-container-inner",selector:".modal-image","reach-min-scale-strategy":"reset","stop-propagate-handled":"stop-propgate-handled","allow-pan-min-scale":e.pinchZoomMinScale,"min-scale":e.pinchZoomMinScale,"reset-to-min-scale-limit":e.pinchZoomScaleResetLimit},{default:(0,uo.w5)((function(){return[(0,uo._)("img",{class:(0,po.C_)([{loading:e.loading},"modal-image"]),src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,onLoad:t[0]||(t[0]=function(){return e.onImageLoaded&&e.onImageLoaded.apply(e,arguments)})},null,42,os)]})),_:1},8,["allow-pan-min-scale","min-scale","reset-to-min-scale-limit"])]})),_:1},8,["direction","threshold","disable-click-threshold","onPreviewRequested","onSwipeFinished","onSwipelessClicked"])):(0,uo.kq)("",!0),"video"===e.type?((0,uo.wg)(),(0,uo.j4)(c,{key:1,class:"modal-image",attachment:e.currentMedia,controls:!0},null,8,["attachment"])):(0,uo.kq)("",!0),"audio"===e.type?((0,uo.wg)(),(0,uo.iD)("audio",{key:2,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,controls:""},null,8,rs)):(0,uo.kq)("",!0),"flash"===e.type?((0,uo.wg)(),(0,uo.j4)(l,{key:3,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description},null,8,["src","alt","title"])):(0,uo.kq)("",!0),e.canNavigate?((0,uo.wg)(),(0,uo.iD)("button",{key:4,title:e.$t("media_modal.previous"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev",onClick:t[1]||(t[1]=(0,ro.iM)((function(){return e.goPrev&&e.goPrev.apply(e,arguments)}),["stop","prevent"]))},[(0,uo.Wm)(u,{class:"button-icon arrow-icon",icon:"chevron-left"})],8,is)):(0,uo.kq)("",!0),e.canNavigate?((0,uo.wg)(),(0,uo.iD)("button",{key:5,title:e.$t("media_modal.next"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--next",onClick:t[2]||(t[2]=(0,ro.iM)((function(){return e.goNext&&e.goNext.apply(e,arguments)}),["stop","prevent"]))},[(0,uo.Wm)(u,{class:"button-icon arrow-icon",icon:"chevron-right"})],8,ss)):(0,uo.kq)("",!0),(0,uo._)("button",{class:"modal-view-button modal-view-button-hide",title:e.$t("media_modal.hide"),onClick:t[3]||(t[3]=(0,ro.iM)((function(){return e.hide&&e.hide.apply(e,arguments)}),["stop","prevent"]))},[(0,uo.Wm)(u,{class:"button-icon",icon:"times"})],8,as),e.description?((0,uo.wg)(),(0,uo.iD)("span",cs,(0,po.zw)(e.description),1)):(0,uo.kq)("",!0),(0,uo._)("span",ls,(0,po.zw)(e.$tc("media_modal.counter",e.currentIndex+1,{current:e.currentIndex+1,total:e.media.length})),1),e.loading?((0,uo.wg)(),(0,uo.iD)("span",us,[(0,uo.Wm)(u,{spin:"",icon:"circle-notch",size:"5x"})])):(0,uo.kq)("",!0)]})),_:1},8,["onBackdropClicked"])):(0,uo.kq)("",!0)}]]);var xs={key:1,class:"side-drawer-logo-wrapper"},Ts=["src"],$s={key:0},Us={key:0,class:"badge badge-notification"},Ms={key:0},As={key:0,class:"badge badge-notification"},Ls={href:"/pleroma/admin/#/login-pleroma",target:"_blank"},Es={key:0,class:"badge badge-notification"};function Fs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Rs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Fs(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.$Wj,Nt.jLD,Nt.J9Y,Nt.lXL,Nt.qmU,Nt.FKd,Nt.Acd,Nt.wn1,Nt.HLz,Nt.b7W,Nt.sqG,Nt.GTN,Nt.Zrf);const qs={props:["logout"],data:function(){return{closed:!0,closeGesture:void 0}},created:function(){this.closeGesture=Cs.swipeGesture(Cs.DIRECTION_LEFT,this.toggleDrawer),this.currentUser&&this.currentUser.locked&&this.$store.dispatch("startFetchingFollowRequests")},components:{UserCard:_r.Z},computed:Rs(Rs({currentUser:function(){return this.$store.state.users.currentUser},shout:function(){return this.$store.state.shout.joined},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},logo:function(){return this.$store.state.instance.logo},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},followRequestCount:function(){return this.$store.state.api.followRequests.length},privateMode:function(){return this.$store.state.instance.private},federating:function(){return this.$store.state.instance.federating},timelinesRoute:function(){var e;return this.$store.state.interface.lastTimeline&&(e=this.$store.state.interface.lastTimeline),e=this.currentUser?"friends":"public-timeline",Lr.has(e)?{name:e,params:{username:this.currentUser.screen_name}}:{name:e}}},(0,s.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements}})),(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),methods:{toggleDrawer:function(){this.closed=!this.closed},doLogout:function(){this.logout(),this.toggleDrawer()},touchStart:function(e){Cs.beginSwipe(e,this.closeGesture)},touchMove:function(e){Cs.updateSwipe(e,this.closeGesture)},openSettingsModal:function(){this.$store.dispatch("openSettingsModal")}}},Ns=(0,Eo.Z)(qs,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("UserCard"),a=(0,uo.up)("FAIcon"),c=(0,uo.up)("router-link");return(0,uo.wg)(),(0,uo.iD)("div",{class:(0,po.C_)(["side-drawer-container",{"side-drawer-container-closed":e.closed,"side-drawer-container-open":!e.closed}])},[(0,uo._)("div",{class:(0,po.C_)(["side-drawer-darken",{"side-drawer-darken-closed":e.closed}])},null,2),(0,uo._)("div",{class:(0,po.C_)(["side-drawer",{"side-drawer-closed":e.closed}]),onTouchstart:t[18]||(t[18]=function(){return e.touchStart&&e.touchStart.apply(e,arguments)}),onTouchmove:t[19]||(t[19]=function(){return e.touchMove&&e.touchMove.apply(e,arguments)})},[(0,uo._)("div",{class:"side-drawer-heading",onClick:t[0]||(t[0]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[e.currentUser?((0,uo.wg)(),(0,uo.j4)(s,{key:0,"user-id":e.currentUser.id,"hide-bio":!0},null,8,["user-id"])):((0,uo.wg)(),(0,uo.iD)("div",xs,[(0,uo._)("img",{src:e.logo},null,8,Ts),e.hideSitename?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("span",$s,(0,po.zw)(e.sitename),1))]))]),(0,uo._)("ul",null,[e.currentUser?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("li",{key:0,onClick:t[1]||(t[1]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"login"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-in-alt"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("login.login")),1)]})),_:1})])),e.currentUser||!e.privateMode?((0,uo.wg)(),(0,uo.iD)("li",{key:1,onClick:t[2]||(t[2]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:e.timelinesRoute},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"home"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.timelines")),1)]})),_:1},8,["to"])])):(0,uo.kq)("",!0),e.currentUser?((0,uo.wg)(),(0,uo.iD)("li",{key:2,onClick:t[3]||(t[3]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"lists"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"list"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.lists")),1)]})),_:1})])):(0,uo.kq)("",!0),e.currentUser&&e.pleromaChatMessagesAvailable?((0,uo.wg)(),(0,uo.iD)("li",{key:3,onClick:t[4]||(t[4]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"chats",params:{username:e.currentUser.screen_name}},style:{position:"relative"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"comments"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.chats"))+" ",1),e.unreadChatCount?((0,uo.wg)(),(0,uo.iD)("span",Us,(0,po.zw)(e.unreadChatCount),1)):(0,uo.kq)("",!0)]})),_:1},8,["to"])])):(0,uo.kq)("",!0)]),e.currentUser?((0,uo.wg)(),(0,uo.iD)("ul",Ms,[(0,uo._)("li",{onClick:t[5]||(t[5]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"interactions",params:{username:e.currentUser.screen_name}}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bell"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.interactions")),1)]})),_:1},8,["to"])]),e.currentUser.locked?((0,uo.wg)(),(0,uo.iD)("li",{key:0,onClick:t[6]||(t[6]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:"/friend-requests"},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.friend_requests"))+" ",1),e.followRequestCount>0?((0,uo.wg)(),(0,uo.iD)("span",As,(0,po.zw)(e.followRequestCount),1)):(0,uo.kq)("",!0)]})),_:1})])):(0,uo.kq)("",!0),e.shout?((0,uo.wg)(),(0,uo.iD)("li",{key:1,onClick:t[7]||(t[7]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"shout-panel"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("shoutbox.title")),1)]})),_:1})])):(0,uo.kq)("",!0)])):(0,uo.kq)("",!0),(0,uo._)("ul",null,[e.currentUser||!e.privateMode?((0,uo.wg)(),(0,uo.iD)("li",{key:0,onClick:t[8]||(t[8]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"search"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.search")),1)]})),_:1})])):(0,uo.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,uo.wg)(),(0,uo.iD)("li",{key:1,onClick:t[9]||(t[9]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"who-to-follow"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.who_to_follow")),1)]})),_:1})])):(0,uo.kq)("",!0),(0,uo._)("li",{onClick:t[11]||(t[11]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[10]||(t[10]=function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)})},[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("settings.settings")),1)])]),(0,uo._)("li",{onClick:t[12]||(t[12]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"about"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"info-circle"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.about")),1)]})),_:1})]),e.currentUser&&"admin"===e.currentUser.role?((0,uo.wg)(),(0,uo.iD)("li",{key:2,onClick:t[13]||(t[13]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo._)("a",Ls,[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.administration")),1)])])):(0,uo.kq)("",!0),e.currentUser&&e.supportsAnnouncements?((0,uo.wg)(),(0,uo.iD)("li",{key:3,onClick:t[14]||(t[14]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"announcements"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.announcements"))+" ",1),e.unreadAnnouncementCount?((0,uo.wg)(),(0,uo.iD)("span",Es,(0,po.zw)(e.unreadAnnouncementCount),1)):(0,uo.kq)("",!0)]})),_:1})])):(0,uo.kq)("",!0),e.currentUser?((0,uo.wg)(),(0,uo.iD)("li",{key:4,onClick:t[15]||(t[15]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo.Wm)(c,{to:{name:"edit-navigation"}},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"compass"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("nav.edit_nav_mobile")),1)]})),_:1})])):(0,uo.kq)("",!0),e.currentUser?((0,uo.wg)(),(0,uo.iD)("li",{key:5,onClick:t[17]||(t[17]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,uo._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[16]||(t[16]=function(){return e.doLogout&&e.doLogout.apply(e,arguments)})},[(0,uo.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("login.logout")),1)])])):(0,uo.kq)("",!0)])],34),(0,uo._)("div",{class:(0,po.C_)(["side-drawer-click-outside",{"side-drawer-click-outside-closed":e.closed}]),onClick:t[20]||(t[20]=(0,ro.iM)((function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)}),["stop","prevent"]))},null,2)],2)}]]);var Zs=["title"],Ws=n(23279),Bs=n.n(Ws);qt.vI.add(Nt.IwR);var Hs=new Set(["chats","chat","lists-edit"]);const Vs={data:function(){return{hidden:!1,scrollingDown:!1,inputActive:!1,oldScrollPos:0,amountScrolled:0}},created:function(){this.autohideFloatingPostButton&&this.activateFloatingPostButtonAutohide(),window.addEventListener("resize",this.handleOSK)},unmounted:function(){this.autohideFloatingPostButton&&this.deactivateFloatingPostButtonAutohide(),window.removeEventListener("resize",this.handleOSK)},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},isHidden:function(){return!!Hs.has(this.$route.name)||this.autohideFloatingPostButton&&(this.hidden||this.inputActive)},isPersistent:function(){return!!this.$store.getters.mergedConfig.alwaysShowNewPostButton},autohideFloatingPostButton:function(){return!!this.$store.getters.mergedConfig.autohideFloatingPostButton}},watch:{autohideFloatingPostButton:function(e){e?this.activateFloatingPostButtonAutohide():this.deactivateFloatingPostButtonAutohide()}},methods:{activateFloatingPostButtonAutohide:function(){window.addEventListener("scroll",this.handleScrollStart),window.addEventListener("scroll",this.handleScrollEnd)},deactivateFloatingPostButtonAutohide:function(){window.removeEventListener("scroll",this.handleScrollStart),window.removeEventListener("scroll",this.handleScrollEnd)},openPostForm:function(){this.$store.dispatch("openPostStatusModal")},handleOSK:function(){var e=window.innerWidth<350,t=e&&window.innerHeight<345,n=!e&&window.innerWidth<450&&window.innerHeight<560;this.inputActive=!(!t&&!n)},handleScrollStart:Bs()((function(){window.scrollY>this.oldScrollPos?this.hidden=!0:this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!0,trailing:!1}),handleScrollEnd:Bs()((function(){this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!1,trailing:!0})}},Ks=(0,Eo.Z)(Vs,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon");return e.isLoggedIn?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:(0,po.C_)(["MobilePostButton button-default new-status-button",{hidden:e.isHidden,"always-show":e.isPersistent}]),title:e.$t("post_status.new_status"),onClick:t[0]||(t[0]=function(){return e.openPostForm&&e.openPostForm.apply(e,arguments)})},[(0,uo.Wm)(s,{icon:"pen"})],10,Zs)):(0,uo.kq)("",!0)}]]);var Gs={class:"MobileNav"},Ys={class:"item"},Js=["title","aria-expanaded"],Qs={key:0,class:"alert-dot"},Xs={class:"item right"},ea=["title"],ta={key:0,class:"alert-dot"},na={class:"mobile-notifications-header"},oa={class:"title"},ra=(0,uo._)("span",{class:"spacer"},null,-1),ia=["title"],sa=["title"],aa=n(50332),ca=n(1447);function la(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ua(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?la(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):la(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.NBC,Nt.qmU,Nt.xiG,Nt.FPD,Nt.Kl4);const da={components:{SideDrawer:Ns,Notifications:aa.default,NavigationPins:oi,ConfirmModal:ca.Z},data:function(){return{notificationsCloseGesture:void 0,notificationsOpen:!1,notificationsAtTop:!0,showingConfirmLogout:!1}},created:function(){var e=this;this.notificationsCloseGesture=Cs.swipeGesture(Cs.DIRECTION_RIGHT,(function(){return e.closeMobileNotifications(!0)}),50)},computed:ua(ua({currentUser:function(){return this.$store.state.users.currentUser},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},isChat:function(){return"chat"===this.$route.name}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),{},{chatsPinned:function(){return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has("chats")},shouldConfirmLogout:function(){return this.$store.getters.mergedConfig.modalOnLogout}},(0,s.Se)(["unreadChatCount"])),methods:{toggleMobileSidebar:function(){this.$refs.sideDrawer.toggleDrawer()},openMobileNotifications:function(){this.notificationsOpen=!0},closeMobileNotifications:function(e){this.notificationsOpen&&(this.notificationsOpen=!1,e&&this.markNotificationsAsSeen())},notificationsTouchStart:function(e){Cs.beginSwipe(e,this.notificationsCloseGesture)},notificationsTouchMove:function(e){Cs.updateSwipe(e,this.notificationsCloseGesture)},scrollToTop:function(){window.scrollTo(0,0)},scrollMobileNotificationsToTop:function(){this.$refs.mobileNotifications.scrollTo(0,0)},showConfirmLogout:function(){this.showingConfirmLogout=!0},hideConfirmLogout:function(){this.showingConfirmLogout=!1},logout:function(){this.shouldConfirmLogout?this.showConfirmLogout():this.doLogout()},doLogout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout"),this.hideConfirmLogout()},markNotificationsAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen")},onScroll:function(e){var t=e.target,n=t.scrollTop,o=t.clientHeight,r=t.scrollHeight;this.notificationsAtTop=n>0,n+o>=r&&this.$refs.notifications.fetchOlderNotifications()}},watch:{$route:function(){this.closeMobileNotifications()}}},pa=(0,Eo.Z)(da,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("NavigationPins"),c=(0,uo.up)("FALayers"),l=(0,uo.up)("SideDrawer"),u=(0,uo.up)("confirm-modal");return(0,uo.wg)(),(0,uo.iD)("div",Gs,[(0,uo._)("nav",{id:"nav",class:"mobile-nav",onClick:t[2]||(t[2]=function(t){return e.scrollToTop()})},[(0,uo._)("div",Ys,[(0,uo._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_sidebar"),"aria-expanaded":e.$refs.sideDrawer&&!e.$refs.sideDrawer.closed,onClick:t[0]||(t[0]=(0,ro.iM)((function(t){return e.toggleMobileSidebar()}),["stop","prevent"]))},[(0,uo.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bars"}),e.unreadChatCount&&!e.chatsPinned||e.unreadAnnouncementCount?((0,uo.wg)(),(0,uo.iD)("div",Qs)):(0,uo.kq)("",!0)],8,Js),(0,uo.Wm)(a,{class:"pins"})]),(0,uo.Uk)(),(0,uo._)("div",Xs,[e.currentUser?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.unseenNotificationsCount?e.$t("nav.mobile_notifications_unread_active"):e.$t("nav.mobile_notifications"),onClick:t[1]||(t[1]=(0,ro.iM)((function(t){return e.openMobileNotifications()}),["stop","prevent"]))},[(0,uo.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bell"}),e.unseenNotificationsCount?((0,uo.wg)(),(0,uo.iD)("div",ta)):(0,uo.kq)("",!0)],8,ea)):(0,uo.kq)("",!0)])]),e.currentUser?((0,uo.wg)(),(0,uo.iD)("aside",{key:0,class:(0,po.C_)(["mobile-notifications-drawer",{"-closed":!e.notificationsOpen}]),onTouchstart:t[6]||(t[6]=(0,ro.iM)((function(){return e.notificationsTouchStart&&e.notificationsTouchStart.apply(e,arguments)}),["stop"])),onTouchmove:t[7]||(t[7]=(0,ro.iM)((function(){return e.notificationsTouchMove&&e.notificationsTouchMove.apply(e,arguments)}),["stop"]))},[(0,uo._)("div",na,[(0,uo._)("span",oa,(0,po.zw)(e.$t("notifications.notifications")),1),ra,e.notificationsAtTop?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.$t("general.scroll_to_top"),onClick:t[3]||(t[3]=(0,ro.iM)((function(){return e.scrollMobileNotificationsToTop&&e.scrollMobileNotificationsToTop.apply(e,arguments)}),["stop","prevent"]))},[(0,uo.Wm)(c,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{icon:"arrow-up"}),(0,uo.Wm)(s,{icon:"minus",transform:"up-7"})]})),_:1})],8,ia)):(0,uo.kq)("",!0),(0,uo._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_notifications_close"),onClick:t[4]||(t[4]=(0,ro.iM)((function(t){return e.closeMobileNotifications(!0)}),["stop","prevent"]))},[(0,uo.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,sa)]),(0,uo._)("div",{id:"mobile-notifications",ref:"mobileNotifications",class:"mobile-notifications",onScroll:t[5]||(t[5]=function(){return e.onScroll&&e.onScroll.apply(e,arguments)})},null,544)],34)):(0,uo.kq)("",!0),(0,uo.Wm)(l,{ref:"sideDrawer",logout:e.logout},null,8,["logout"]),((0,uo.wg)(),(0,uo.j4)(uo.lR,{to:"#modal"},[e.showingConfirmLogout?((0,uo.wg)(),(0,uo.j4)(u,{key:0,title:e.$t("login.logout_confirm_title"),"confirm-text":e.$t("login.logout_confirm_accept_button"),"cancel-text":e.$t("login.logout_confirm_cancel_button"),onAccepted:e.doLogout,onCancelled:e.hideConfirmLogout},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("login.logout_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,uo.kq)("",!0)]))])}]]);var ma={class:"inner-nav"},ha={class:"item sitename"},fa=["src"],ga={class:"item right actions"},va=["title"],wa=["title"],ba=(0,uo._)("span",{class:"spacer"},null,-1),ya=["title"],_a=["title","aria-expanded"],ka=["placeholder"],Sa=["title"],ja=["title","aria-expanded"],Ca=(0,uo._)("span",{class:"spacer"},null,-1),Oa=(0,uo._)("span",{class:"spacer"},null,-1);qt.vI.add(Nt.NBC,Nt.wn1);const Pa={data:function(){return{searchTerm:void 0,hidden:!0,error:!1}},watch:{$route:function(e){"search"===e.name&&(this.searchTerm=e.query.query)}},methods:{find:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},toggleHidden:function(){var e=this;this.hidden=!this.hidden,this.$emit("toggled",this.hidden),this.$nextTick((function(){e.hidden||e.$refs.searchInput.focus()}))}}},za=(0,Eo.Z)(Pa,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",{class:(0,po.C_)(["SearchBar",{"-expanded":!e.hidden}])},[e.hidden?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"button-unstyled nav-icon",title:e.$t("nav.search"),type:"button","aria-expanded":!e.hidden,onClick:t[0]||(t[0]=(0,ro.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,uo.Wm)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"})],8,_a)):((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:1},[(0,uo.wy)((0,uo._)("input",{id:"search-bar-input",ref:"searchInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),class:"search-bar-input",placeholder:e.$t("nav.search"),type:"text",onKeyup:t[2]||(t[2]=(0,ro.D2)((function(t){return e.find(e.searchTerm)}),["enter"]))},null,40,ka),[[ro.nr,e.searchTerm]]),(0,uo._)("button",{class:"button-default search-button",type:"submit",title:e.$t("nav.search"),onClick:t[3]||(t[3]=function(t){return e.find(e.searchTerm)})},[(0,uo.Wm)(s,{"fixed-width":"",icon:"search"})],8,Sa),(0,uo._)("button",{class:"button-unstyled cancel-search",type:"button",title:e.$t("nav.search_close"),"aria-expanded":!e.hidden,onClick:t[4]||(t[4]=(0,ro.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,uo.Wm)(s,{"fixed-width":"",icon:"times",class:"cancel-icon fa-scale-110 fa-old-padding"})],8,ja),Ca,Oa],64))],2)}]]);qt.vI.add(Nt.$Wj,Nt.jLD,Nt.J9Y,Nt.lXL,Nt.qmU,Nt.FKd,Nt.Acd,Nt.wn1,Nt.HLz,Nt.b7W,Nt.sqG);const Da={components:{SearchBar:za,ConfirmModal:ca.Z},data:function(){return{searchBarHidden:!0,supportsMask:window.CSS&&window.CSS.supports&&(window.CSS.supports("mask-size","contain")||window.CSS.supports("-webkit-mask-size","contain")||window.CSS.supports("-moz-mask-size","contain")||window.CSS.supports("-ms-mask-size","contain")||window.CSS.supports("-o-mask-size","contain")),showingConfirmLogout:!1}},computed:{enableMask:function(){return this.supportsMask&&this.$store.state.instance.logoMask},logoStyle:function(){return{visibility:this.enableMask?"hidden":"visible"}},logoMaskStyle:function(){return this.enableMask?{"mask-image":"url(".concat(this.$store.state.instance.logo,")")}:{"background-color":this.enableMask?"":"transparent"}},logoBgStyle:function(){return Object.assign({margin:"".concat(this.$store.state.instance.logoMargin," 0"),opacity:this.searchBarHidden?1:0},this.enableMask?{}:{"background-color":this.enableMask?"":"transparent"})},logo:function(){return this.$store.state.instance.logo},sitename:function(){return this.$store.state.instance.name},hideSitename:function(){return this.$store.state.instance.hideSitename},logoLeft:function(){return this.$store.state.instance.logoLeft},currentUser:function(){return this.$store.state.users.currentUser},privateMode:function(){return this.$store.state.instance.private},shouldConfirmLogout:function(){return this.$store.getters.mergedConfig.modalOnLogout}},methods:{scrollToTop:function(){window.scrollTo(0,0)},showConfirmLogout:function(){this.showingConfirmLogout=!0},hideConfirmLogout:function(){this.showingConfirmLogout=!1},logout:function(){this.shouldConfirmLogout?this.showConfirmLogout():this.doLogout()},doLogout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout"),this.hideConfirmLogout()},onSearchBarToggled:function(e){this.searchBarHidden=e},openSettingsModal:function(){this.$store.dispatch("openSettingsModal")}}},Ia=(0,Eo.Z)(Da,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("router-link"),a=(0,uo.up)("search-bar"),c=(0,uo.up)("FAIcon"),l=(0,uo.up)("confirm-modal");return(0,uo.wg)(),(0,uo.iD)("nav",{id:"nav",class:(0,po.C_)(["DesktopNav",{"-logoLeft":e.logoLeft}]),onClick:t[4]||(t[4]=function(t){return e.scrollToTop()})},[(0,uo._)("div",ma,[(0,uo._)("div",ha,[e.hideSitename?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.j4)(s,{key:0,class:"site-name",to:{name:"root"},"active-class":"home"},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.sitename),1)]})),_:1}))]),(0,uo.Wm)(s,{class:"logo",to:{name:"root"},style:(0,po.j5)(e.logoBgStyle),title:e.sitename},{default:(0,uo.w5)((function(){return[(0,uo._)("div",{class:"mask",style:(0,po.j5)(e.logoMaskStyle)},null,4),(0,uo._)("img",{src:e.logo,style:(0,po.j5)(e.logoStyle)},null,12,fa)]})),_:1},8,["style","title"]),(0,uo._)("div",ga,[e.currentUser||!e.privateMode?((0,uo.wg)(),(0,uo.j4)(a,{key:0,onToggled:e.onSearchBarToggled,onClick:t[0]||(t[0]=(0,ro.iM)((function(){}),["stop"]))},null,8,["onToggled"])):(0,uo.kq)("",!0),(0,uo._)("button",{class:"button-unstyled nav-icon",title:e.$t("nav.preferences"),onClick:t[1]||(t[1]=(0,ro.iM)((function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)}),["stop"]))},[(0,uo.Wm)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"})],8,va),e.currentUser&&"admin"===e.currentUser.role?((0,uo.wg)(),(0,uo.iD)("a",{key:1,href:"/pleroma/admin/#/login-pleroma",class:"nav-icon",target:"_blank",title:e.$t("nav.administration"),onClick:t[2]||(t[2]=(0,ro.iM)((function(){}),["stop"]))},[(0,uo.Wm)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"})],8,wa)):(0,uo.kq)("",!0),ba,e.currentUser?((0,uo.wg)(),(0,uo.iD)("button",{key:2,class:"button-unstyled nav-icon",title:e.$t("login.logout"),onClick:t[3]||(t[3]=(0,ro.iM)((function(){return e.logout&&e.logout.apply(e,arguments)}),["stop","prevent"]))},[(0,uo.Wm)(c,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"})],8,ya)):(0,uo.kq)("",!0)])]),((0,uo.wg)(),(0,uo.j4)(uo.lR,{to:"#modal"},[e.showingConfirmLogout?((0,uo.wg)(),(0,uo.j4)(l,{key:0,title:e.$t("login.logout_confirm_title"),"confirm-text":e.$t("login.logout_confirm_accept_button"),"cancel-text":e.$t("login.logout_confirm_cancel_button"),onAccepted:e.doLogout,onCancelled:e.hideConfirmLogout},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("login.logout_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,uo.kq)("",!0)]))],2)}]]);var xa={class:"user-reporting-panel panel"},Ta={class:"panel-heading"},$a={class:"panel-body"},Ua={class:"user-reporting-panel-left"},Ma=["placeholder"],Aa={key:0},La=["disabled"],Ea={key:0,class:"alert error"},Fa={class:"user-reporting-panel-right"},Ra={class:"status-fadein user-reporting-panel-sitem"},qa=n(75245),Na=n(56773),Za=n(12061);function Wa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const Ba={components:{Status:qa.default,List:Na.Z,Checkbox:ri.Z,Modal:Rt.Z,UserLink:Za.Z},data:function(){return{comment:"",forward:!1,statusIdsToReport:[],processing:!1,error:!1}},computed:{reportModal:function(){return this.$store.state.reports.reportModal},isLoggedIn:function(){return!!this.$store.state.users.currentUser},isOpen:function(){return this.isLoggedIn&&this.reportModal.activated},userId:function(){return this.reportModal.userId},user:function(){return this.$store.getters.findUser(this.userId)},remoteInstance:function(){return!this.user.is_local&&this.user.screen_name.substr(this.user.screen_name.indexOf("@")+1)},statuses:function(){return this.reportModal.statuses},preTickedIds:function(){return this.reportModal.preTickedIds}},watch:{userId:"resetState",preTickedIds:function(e){this.statusIdsToReport=e}},methods:{resetState:function(){this.comment="",this.forward=!1,this.statusIdsToReport=this.preTickedIds,this.processing=!1,this.error=!1},closeModal:function(){this.$store.dispatch("closeUserReportingModal")},reportUser:function(){var e=this;this.processing=!0,this.error=!1;var t={userId:this.userId,comment:this.comment,forward:this.forward,statusIds:this.statusIdsToReport};this.$store.state.api.backendInteractor.reportUser(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wa(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t)).then((function(){e.processing=!1,e.resetState(),e.closeModal()})).catch((function(){e.processing=!1,e.error=!0}))},clearError:function(){this.error=!1},isChecked:function(e){return-1!==this.statusIdsToReport.indexOf(e)},toggleStatus:function(e,t){e!==this.isChecked(t)&&(e?this.statusIdsToReport.push(t):this.statusIdsToReport.splice(this.statusIdsToReport.indexOf(t),1))},resize:function(e){var t=e.target||e;t instanceof window.Element&&(t.style.height="auto",t.style.height="".concat(t.scrollHeight,"px"),""===t.value&&(t.style.height=null))}}},Ha=(0,Eo.Z)(Ba,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("UserLink"),a=(0,uo.up)("i18n-t"),c=(0,uo.up)("Checkbox"),l=(0,uo.up)("Status"),u=(0,uo.up)("List"),d=(0,uo.up)("Modal");return e.isOpen?((0,uo.wg)(),(0,uo.j4)(d,{key:0,onBackdropClicked:e.closeModal},{default:(0,uo.w5)((function(){return[(0,uo._)("div",xa,[(0,uo._)("div",Ta,[(0,uo.Wm)(a,{tag:"div",keypath:"user_reporting.title",class:"title"},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{user:e.user},null,8,["user"])]})),_:1})]),(0,uo._)("div",$a,[(0,uo._)("div",Ua,[(0,uo._)("div",null,[(0,uo._)("p",null,(0,po.zw)(e.$t("user_reporting.add_comment_description")),1),(0,uo.wy)((0,uo._)("textarea",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.comment=t}),class:"form-control",placeholder:e.$t("user_reporting.additional_comments"),rows:"1",onInput:t[1]||(t[1]=function(){return e.resize&&e.resize.apply(e,arguments)})},null,40,Ma),[[ro.nr,e.comment]])]),e.user.is_local?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",Aa,[(0,uo._)("p",null,(0,po.zw)(e.$t("user_reporting.forward_description")),1),(0,uo.Wm)(c,{modelValue:e.forward,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.forward=t})},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("user_reporting.forward_to",[e.remoteInstance])),1)]})),_:1},8,["modelValue"])])),(0,uo._)("div",null,[(0,uo._)("button",{class:"btn button-default",disabled:e.processing,onClick:t[3]||(t[3]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,po.zw)(e.$t("user_reporting.submit")),9,La),e.error?((0,uo.wg)(),(0,uo.iD)("div",Ea,(0,po.zw)(e.$t("user_reporting.generic_error")),1)):(0,uo.kq)("",!0)])]),(0,uo._)("div",Fa,[(0,uo.Wm)(u,{items:e.statuses},{item:(0,uo.w5)((function(t){var n=t.item;return[(0,uo._)("div",Ra,[(0,uo.Wm)(l,{"in-conversation":!1,focused:!1,statusoid:n},null,8,["statusoid"]),(0,uo.Wm)(c,{"model-value":e.isChecked(n.id),"onUpdate:modelValue":function(t){return e.toggleStatus(t,n.id)}},null,8,["model-value","onUpdate:modelValue"])])]})),_:1},8,["items"])])])])]})),_:1},8,["onBackdropClicked"])):(0,uo.kq)("",!0)}]]);var Va={class:"edit-form-modal-panel panel"},Ka={class:"panel-heading"},Ga=n(7257);const Ya={components:{PostStatusForm:yr.Z,Modal:Rt.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.editStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.editStatus.params||{}}},watch:{params:function(e,t){var n=this;Tt()(e,"statusId")!==Tt()(t,"statusId")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{doEditStatus:function(e){var t=e.status,n=e.spoilerText,o=e.sensitive,r=e.media,i=e.contentType,s=e.poll,a={store:this.$store,statusId:this.$store.state.editStatus.params.statusId,status:t,spoilerText:n,sensitive:o,poll:s,media:r,contentType:i};return Ga.Z.editStatus(a).then((function(e){return e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},closeModal:function(){this.$store.dispatch("closeEditStatusModal")}}},Ja=(0,Eo.Z)(Ya,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("PostStatusForm"),a=(0,uo.up)("Modal");return e.isFormVisible?((0,uo.wg)(),(0,uo.j4)(a,{key:0,class:"edit-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,uo.w5)((function(){return[(0,uo._)("div",Va,[(0,uo._)("div",Ka,(0,po.zw)(e.$t("post_status.edit_status")),1),(0,uo.Wm)(s,(0,uo.dG)({class:"panel-body"},e.params,{"post-handler":e.doEditStatus,"disable-polls":!0,"disable-visibility-selector":!0,onPosted:e.closeModal}),null,16,["post-handler","onPosted"])])]})),_:1},8,["onBackdropClicked"])):(0,uo.kq)("",!0)}]]);var Qa={class:"post-form-modal-panel panel"},Xa={class:"panel-heading"};const ec={components:{PostStatusForm:yr.Z,Modal:Rt.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.postStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.postStatus.params||{}}},watch:{params:function(e,t){var n=this;Tt()(e,"repliedUser.id")!==Tt()(t,"repliedUser.id")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{closeModal:function(){this.$store.dispatch("closePostStatusModal")}}},tc=(0,Eo.Z)(ec,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("PostStatusForm"),a=(0,uo.up)("Modal");return e.isLoggedIn&&!e.resettingForm?((0,uo.wg)(),(0,uo.j4)(a,{key:0,"is-open":e.modalActivated,class:"post-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,uo.w5)((function(){return[(0,uo._)("div",Qa,[(0,uo._)("div",Xa,(0,po.zw)(e.$t("post_status.new_status")),1),(0,uo.Wm)(s,(0,uo.dG)({class:"panel-body"},e.params,{onPosted:e.closeModal}),null,16,["onPosted"])])]})),_:1},8,["is-open","onBackdropClicked"])):(0,uo.kq)("",!0)}]]);var nc={class:"status-history-modal-panel panel"},oc={class:"panel-heading"},rc={class:"panel-body"},ic={key:0,class:"history-body"};const sc={components:{Modal:Rt.Z,Status:qa.default},data:function(){return{statuses:[]}},computed:{modalActivated:function(){return this.$store.state.statusHistory.modalActivated},params:function(){return this.$store.state.statusHistory.params},statusId:function(){return this.params.id},historyCount:function(){return this.statuses.length},history:function(){return this.statuses}},watch:{params:function(e,t){var n=Tt()(e,"id")!==Tt()(t,"id");n&&this.resetHistory(),(n||Tt()(e,"edited_at")!==Tt()(t,"edited_at"))&&this.fetchStatusHistory()}},methods:{resetHistory:function(){this.statuses=[]},fetchStatusHistory:function(){var e=this;this.$store.dispatch("fetchStatusHistory",this.params).then((function(t){e.statuses=t}))},closeModal:function(){this.$store.dispatch("closeStatusHistoryModal")}}},ac=(0,Eo.Z)(sc,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("status"),a=(0,uo.up)("Modal");return e.modalActivated?((0,uo.wg)(),(0,uo.j4)(a,{key:0,class:"status-history-modal-view",onBackdropClicked:e.closeModal},{default:(0,uo.w5)((function(){return[(0,uo._)("div",nc,[(0,uo._)("div",oc,(0,po.zw)(e.$t("status.status_history"))+" ("+(0,po.zw)(e.historyCount)+") ",1),(0,uo._)("div",rc,[e.historyCount>0?((0,uo.wg)(),(0,uo.iD)("div",ic,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.history,(function(e){return(0,uo.wg)(),(0,uo.j4)(s,{key:e.id,statusoid:e,"is-preview":!0,class:"conversation-status status-fadein panel-body"},null,8,["statusoid"])})),128))])):(0,uo.kq)("",!0)])])]})),_:1},8,["onBackdropClicked"])):(0,uo.kq)("",!0)}]]);var cc={class:"global-notice-list"},lc={class:"notice-message"},uc=["onClick"];qt.vI.add(Nt.NBC);const dc={computed:{notices:function(){return this.$store.state.interface.globalNotices}},methods:{closeNotice:function(e){this.$store.dispatch("removeGlobalNotice",e)}}},pc=(0,Eo.Z)(dc,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",cc,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.notices,(function(t,n){return(0,uo.wg)(),(0,uo.iD)("div",{key:n,class:(0,po.C_)(["alert global-notice",(0,d.Z)({},"global-"+t.level,!0)])},[(0,uo._)("div",lc,(0,po.zw)(e.$t(t.messageKey,t.messageArgs)),1),(0,uo._)("button",{class:"button-unstyled close-notice",onClick:function(n){return e.closeNotice(t)}},[(0,uo.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,uc)],2)})),128))])}]]);function mc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const hc={name:"app",components:{UserPanel:jr,NavPanel:ci,Notifications:(0,uo.RC)((function(){return Promise.resolve().then(n.bind(n,50332))})),InstanceSpecificPanel:hi,FeaturesPanel:Pi,WhoToFollowPanel:qi,ShoutPanel:ns,MediaModal:Is,SideDrawer:Ns,MobilePostStatusButton:Ks,MobileNav:pa,DesktopNav:Ia,SettingsModal:(0,uo.RC)((function(){return n.e(5948).then(n.bind(n,75948))})),UpdateNotification:(0,uo.RC)((function(){return n.e(6464).then(n.bind(n,16464))})),UserReportingModal:Ha,PostStatusModal:tc,EditStatusModal:Ja,StatusHistoryModal:ac,GlobalNoticeList:pc},data:function(){return{mobileActivePanel:"timeline"}},created:function(){var e=this.$store.getters.mergedConfig.interfaceLanguage;this.$store.dispatch("setOption",{name:"interfaceLanguage",value:e}),window.addEventListener("resize",this.updateMobileState)},unmounted:function(){window.removeEventListener("resize",this.updateMobileState)},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classes:function(){return[{"-reverse":this.reverseLayout,"-no-sticky-headers":this.noSticky,"-has-new-post-button":this.newPostButtonShown},"-"+this.layoutType]},navClasses:function(){var e=this.$store.getters.mergedConfig.navbarColumnStretch;return["-"+this.layoutType].concat((0,u.Z)(e?["-column-stretch"]:[]))},currentUser:function(){return this.$store.state.users.currentUser},userBackground:function(){return this.currentUser.background_image},instanceBackground:function(){return this.mergedConfig.hideInstanceWallpaper?null:this.$store.state.instance.background},background:function(){return this.userBackground||this.instanceBackground},bgStyle:function(){if(this.background)return{"--body-background-image":"url(".concat(this.background,")")}},shout:function(){return this.$store.state.shout.joined},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent},isChats:function(){return"chat"===this.$route.name||"chats"===this.$route.name},isListEdit:function(){return"lists-edit"===this.$route.name},newPostButtonShown:function(){return!this.isChats&&!this.isListEdit&&(this.$store.getters.mergedConfig.alwaysShowNewPostButton||"mobile"===this.layoutType)},showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},editingAvailable:function(){return this.$store.state.instance.editingAvailable},shoutboxPosition:function(){return this.$store.getters.mergedConfig.alwaysShowNewPostButton||!1},hideShoutbox:function(){return this.$store.getters.mergedConfig.hideShoutbox},layoutType:function(){return this.$store.state.interface.layoutType},privateMode:function(){return this.$store.state.instance.private},reverseLayout:function(){var e=this.$store.getters.mergedConfig,t=e.thirdColumnMode,n=e.sidebarRight;return"wide"!==this.layoutType||"notifications"===t?n:!n},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders},showScrollbars:function(){return this.$store.getters.mergedConfig.showScrollbars}},(0,s.Se)(["mergedConfig"])),methods:{updateMobileState:function(){this.$store.dispatch("setLayoutWidth",Me()),this.$store.dispatch("setLayoutHeight",Ae())}}},fc=(0,Eo.Z)(hc,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("MobileNav"),a=(0,uo.up)("DesktopNav"),c=(0,uo.up)("Notifications"),l=(0,uo.up)("user-panel"),u=(0,uo.up)("nav-panel"),d=(0,uo.up)("instance-specific-panel"),p=(0,uo.up)("features-panel"),m=(0,uo.up)("who-to-follow-panel"),h=(0,uo.up)("router-link"),f=(0,uo.up)("router-view"),g=(0,uo.up)("MediaModal"),v=(0,uo.up)("shout-panel"),w=(0,uo.up)("MobilePostStatusButton"),b=(0,uo.up)("UserReportingModal"),y=(0,uo.up)("PostStatusModal"),_=(0,uo.up)("EditStatusModal"),k=(0,uo.up)("StatusHistoryModal"),S=(0,uo.up)("SettingsModal"),j=(0,uo.up)("UpdateNotification"),C=(0,uo.up)("GlobalNoticeList");return(0,uo.wg)(),(0,uo.iD)("div",{id:"app-loaded",style:(0,po.j5)(e.bgStyle)},[mo,"mobile"===e.layoutType?((0,uo.wg)(),(0,uo.j4)(s,{key:0})):((0,uo.wg)(),(0,uo.j4)(a,{key:1,class:(0,po.C_)(e.navClasses)},null,8,["class"])),e.currentUser?((0,uo.wg)(),(0,uo.j4)(c,{key:2})):(0,uo.kq)("",!0),(0,uo._)("div",{id:"content",class:(0,po.C_)(["app-layout container",e.classes])},[ho,(0,uo._)("div",{id:"sidebar",class:(0,po.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},[(0,uo.Wm)(l),"mobile"!==e.layoutType?((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:0},[(0,uo.Wm)(u),e.showInstanceSpecificPanel?((0,uo.wg)(),(0,uo.j4)(d,{key:0})):(0,uo.kq)("",!0),!e.currentUser&&e.showFeaturesPanel?((0,uo.wg)(),(0,uo.j4)(p,{key:1})):(0,uo.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,uo.wg)(),(0,uo.j4)(m,{key:2})):(0,uo.kq)("",!0),fo],64)):(0,uo.kq)("",!0)],2),(0,uo._)("main",{id:"main-scroller",class:(0,po.C_)(["column main",{"-full-height":e.isChats||e.isListEdit}])},[e.currentUser?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",go,[(0,uo.Wm)(h,{to:{name:"login"},class:"panel-body"},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("login.hint")),1)]})),_:1})])),(0,uo.Wm)(f)],2),(0,uo._)("div",{id:"notifs-column",class:(0,po.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},null,2)],2),(0,uo.Wm)(g),e.currentUser&&e.shout&&!e.hideShoutbox?((0,uo.wg)(),(0,uo.j4)(v,{key:3,floating:!0,class:(0,po.C_)(["floating-shout mobile-hidden",{"-left":e.shoutboxPosition}])},null,8,["class"])):(0,uo.kq)("",!0),(0,uo.Wm)(w),(0,uo.Wm)(b),(0,uo.Wm)(y),e.editingAvailable?((0,uo.wg)(),(0,uo.j4)(_,{key:4})):(0,uo.kq)("",!0),e.editingAvailable?((0,uo.wg)(),(0,uo.j4)(k,{key:5})):(0,uo.kq)("",!0),(0,uo.Wm)(S),(0,uo.Wm)(j),(0,uo.Wm)(C)],4)}]]);var gc={key:1,class:"rightside-button"},vc=["title"],wc={key:0,class:"rightside-button"},bc=["title"],yc={class:"alert-badge"},_c=["title"],kc={ref:"timeline",class:"timeline",role:"feed"},Sc={key:0,class:"new-status-notification text-center faint"},jc={key:1,class:"new-status-notification text-center faint"},Cc={class:"new-status-notification text-center"},Oc={key:3,class:"new-status-notification text-center"},Pc=n(24350),zc=n.n(Pc),Dc=n(23493),Ic=n.n(Dc),xc={key:0,class:"panel-heading conversation-heading -sticky"},Tc={class:"title"},$c={class:"conversation-body panel-body"},Uc={key:0,class:"thread-body"},Mc={key:0,class:"conversation-dive-to-top-level-box"},Ac={key:1,class:"thread-ancestors"},Lc={key:0,class:"thread-ancestor-dive-box"},Ec={class:"thread-ancestor-dive-box-inner"},Fc={key:1,class:"thread-body"},Rc=n(66678),qc=n.n(Rc),Nc={class:"thread-tree"},Zc={key:0,class:"thread-tree-replies"},Wc={key:1,class:"thread-tree-replies thread-tree-replies-hidden"};qt.vI.add(Nt.Sbq,Nt.cLY);const Bc={components:{Status:qa.default},name:"ThreadTree",props:{depth:Number,status:Object,inProfile:Boolean,conversation:Array,collapsable:Boolean,isExpanded:Boolean,pinnedStatusIdsObject:Object,profileUserId:String,focused:Function,highlight:String,getReplies:Function,setHighlight:Function,toggleExpanded:Function,simple:Boolean,toggleThreadDisplay:Function,threadDisplayStatus:Object,showThreadRecursively:Function,totalReplyCount:Object,totalReplyDepth:Object,statusContentProperties:Object,setStatusContentProperty:Function,toggleStatusContentProperty:Function,dive:Function},computed:{suspendable:function(){var e=!this.$refs.statusComponent||this.$refs.statusComponent.suspendable;return this.$refs.childComponent?e&&this.$refs.childComponent.every((function(e){return e.suspendable})):e},reverseLookupTable:function(){return this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{})},currentReplies:function(){var e=this;return this.getReplies(this.status.id).map((function(t){var n=t.id;return e.statusById(n)}))},threadShowing:function(){return"showing"===this.threadDisplayStatus[this.status.id]},currentProp:function(){return this.statusContentProperties[this.status.id]}},methods:{statusById:function(e){return this.conversation[this.reverseLookupTable[e]]},collapseThread:function(){},showThread:function(){},showAllSubthreads:function(){},toggleCurrentProp:function(e){this.toggleStatusContentProperty(this.status.id,e)},setCurrentProp:function(e,t){this.setStatusContentProperty(this.status.id,e)}}},Hc=(0,Eo.Z)(Bc,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("status"),a=(0,uo.up)("thread-tree"),c=(0,uo.up)("FAIcon"),l=(0,uo.up)("i18n-t");return(0,uo.wg)(),(0,uo.iD)("article",Nc,[((0,uo.wg)(),(0,uo.j4)(s,{key:e.status.id,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:e.status,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[e.status.id],focused:e.focused(e.status.id),"in-conversation":e.isExpanded,highlight:e.highlight,replies:e.getReplies(e.status.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status conversation-status-treeview status-fadein panel-body","simple-tree":e.simple,"controlled-thread-display-status":e.threadDisplayStatus[e.status.id],"controlled-toggle-thread-display":function(){return e.toggleThreadDisplay(e.status.id)},"controlled-showing-tall":e.currentProp.showingTall,"controlled-expanding-subject":e.currentProp.expandingSubject,"controlled-showing-long-subject":e.currentProp.showingLongSubject,"controlled-replying":e.currentProp.replying,"controlled-media-playing":e.currentProp.mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleCurrentProp("showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleCurrentProp("expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleCurrentProp("showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleCurrentProp("replying")},"controlled-set-media-playing":function(t){return e.setCurrentProp("mediaPlaying",t)},dive:e.dive?function(){return e.dive(e.status.id)}:void 0,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","controlled-thread-display-status","controlled-toggle-thread-display","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","dive","onGoto","onToggleExpanded"])),e.currentReplies.length&&e.threadShowing?((0,uo.wg)(),(0,uo.iD)("div",Zc,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.currentReplies,(function(t){return(0,uo.wg)(),(0,uo.j4)(a,{key:t.id,ref_for:!0,ref:"childComponent",depth:e.depth+1,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.highlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.simple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.dive},null,8,["depth","status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,uo.kq)("",!0),e.currentReplies.length&&!e.threadShowing?((0,uo.wg)(),(0,uo.iD)("div",Wc,[e.simple?((0,uo.wg)(),(0,uo.j4)(l,{key:0,scope:"global",tag:"button",keypath:"status.thread_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[0]||(t[0]=(0,ro.iM)((function(t){return e.dive(e.status.id)}),["prevent"]))},{icon:(0,uo.w5)((function(){return[(0,uo.Wm)(c,{icon:"angle-double-right"})]})),text:(0,uo.w5)((function(){return[(0,uo._)("span",null,(0,po.zw)(e.$tc("status.thread_follow",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id]})),1)]})),_:1})):((0,uo.wg)(),(0,uo.j4)(l,{key:1,scope:"global",tag:"button",keypath:"status.thread_show_full_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[1]||(t[1]=(0,ro.iM)((function(t){return e.showThreadRecursively(e.status.id)}),["prevent"]))},{icon:(0,uo.w5)((function(){return[(0,uo.Wm)(c,{icon:"angle-double-down"})]})),text:(0,uo.w5)((function(){return[(0,uo._)("span",null,(0,po.zw)(e.$tc("status.thread_show_full",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id],depth:e.totalReplyDepth[e.status.id]})),1)]})),_:1}))])):(0,uo.kq)("",!0)])}]]);var Vc={class:"dropdown-menu",role:"menu"},Kc={key:0,role:"group"},Gc=["aria-checked"],Yc=["aria-checked"],Jc=["aria-checked"],Qc={key:3,role:"separator",class:"dropdown-divider"},Xc=["aria-checked"],el=["aria-checked"],tl=["aria-checked"],nl=n(91447);function ol(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function rl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ol(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ol(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.G_j,Nt.yGG,Nt.klh);const il={props:{conversation:Boolean},components:{Popover:nl.default},methods:{setReplyVisibility:function(e){this.$store.dispatch("setOption",{name:"replyVisibility",value:e}),this.$store.dispatch("queueFlushAll")},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:rl(rl({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},replyVisibilitySelf:{get:function(){return"self"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("self")}},replyVisibilityFollowing:{get:function(){return"following"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("following")}},replyVisibilityAll:{get:function(){return"all"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("all")}},hideMedia:{get:function(){return this.mergedConfig.hideAttachments||this.mergedConfig.hideAttachmentsInConv},set:function(){var e=!this.hideMedia;this.$store.dispatch("setOption",{name:"hideAttachments",value:e}),this.$store.dispatch("setOption",{name:"hideAttachmentsInConv",value:e})}},hideMutedPosts:{get:function(){return this.mergedConfig.hideFilteredStatuses},set:function(){var e=!this.hideMutedPosts;this.$store.dispatch("setOption",{name:"hideFilteredStatuses",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},sl=(0,Eo.Z)(il,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("Popover");return(0,uo.wg)(),(0,uo.j4)(a,{trigger:"click",class:"QuickFilterSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_filter_settings")}},{content:(0,uo.w5)((function(){return[(0,uo._)("div",Vc,[e.loggedIn?((0,uo.wg)(),(0,uo.iD)("div",Kc,[e.conversation?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"button-default dropdown-item","aria-checked":e.replyVisibilityAll,role:"menuitemradio",onClick:t[0]||(t[0]=function(t){return e.replyVisibilityAll=!0})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityAll}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.reply_visibility_all")),1)],8,Gc)),e.conversation?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("button",{key:1,class:"button-default dropdown-item","aria-checked":e.replyVisibilityFollowing,role:"menuitemradio",onClick:t[1]||(t[1]=function(t){return e.replyVisibilityFollowing=!0})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityFollowing}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.reply_visibility_following_short")),1)],8,Yc)),e.conversation?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("button",{key:2,class:"button-default dropdown-item","aria-checked":e.replyVisibilitySelf,role:"menuitemradio",onClick:t[2]||(t[2]=function(t){return e.replyVisibilitySelf=!0})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilitySelf}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.reply_visibility_self_short")),1)],8,Jc)),e.conversation?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",Qc))])):(0,uo.kq)("",!0),(0,uo._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.muteBotStatuses,onClick:t[3]||(t[3]=function(t){return e.muteBotStatuses=!e.muteBotStatuses})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox",{"menu-checkbox-checked":e.muteBotStatuses}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.mute_bot_posts")),1)],8,Xc),(0,uo._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.hideMedia,onClick:t[4]||(t[4]=function(t){return e.hideMedia=!e.hideMedia})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMedia}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.hide_media_previews")),1)],8,el),(0,uo._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.hideMutedPosts,onClick:t[5]||(t[5]=function(t){return e.hideMutedPosts=!e.hideMutedPosts})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMutedPosts}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.hide_all_muted_posts")),1)],8,tl),(0,uo._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[6]||(t[6]=function(t){return e.openTab("filtering")})},[(0,uo.Wm)(s,{icon:"font"}),(0,uo.Uk)((0,po.zw)(e.$t("settings.word_filter_and_more")),1)])])]})),trigger:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{icon:"filter"})]})),_:1},8,["trigger-attrs"])}]]);var al={class:"dropdown-menu",role:"menu"},cl={role:"group"},ll=["aria-checked"],ul=["aria-checked"],dl=(0,uo._)("div",{role:"separator",class:"dropdown-divider"},null,-1),pl=["aria-checked"],ml=["aria-checked"],hl=["aria-checked"];function fl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function gl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.Zrf,Nt.lCn,Nt.xiG,Nt.klh);const vl={props:{conversation:Boolean},components:{Popover:nl.default},methods:{setConversationDisplay:function(e){this.$store.dispatch("setOption",{name:"conversationDisplay",value:e})},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:gl(gl({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},conversationDisplay:{get:function(){return this.mergedConfig.conversationDisplay},set:function(e){this.setConversationDisplay(e)}},autoUpdate:{get:function(){return this.mergedConfig.streaming},set:function(){var e=!this.autoUpdate;this.$store.dispatch("setOption",{name:"streaming",value:e})}},collapseWithSubjects:{get:function(){return this.mergedConfig.collapseMessageWithSubject},set:function(){var e=!this.collapseWithSubjects;this.$store.dispatch("setOption",{name:"collapseMessageWithSubject",value:e})}},showUserAvatars:{get:function(){return this.mergedConfig.mentionLinkShowAvatar},set:function(){var e=!this.showUserAvatars;console.log(e),this.$store.dispatch("setOption",{name:"mentionLinkShowAvatar",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},wl=(0,Eo.Z)(vl,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("Popover");return(0,uo.wg)(),(0,uo.j4)(a,{trigger:"click",class:"QuickViewSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_view_settings")}},{content:(0,uo.w5)((function(){return[(0,uo._)("div",al,[(0,uo._)("div",cl,[(0,uo._)("button",{class:"button-default dropdown-item","aria-checked":"tree"===e.conversationDisplay,role:"menuitemradio",onClick:t[0]||(t[0]=function(t){return e.conversationDisplay="tree"})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"tree"===e.conversationDisplay}]),"aria-hidden":!0},null,2),(0,uo.Wm)(s,{icon:"folder-tree","aria-hidden":!0}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("settings.conversation_display_tree_quick")),1)],8,ll),(0,uo._)("button",{class:"button-default dropdown-item","aria-checked":"linear"===e.conversationDisplay,role:"menuitemradio",onClick:t[1]||(t[1]=function(t){return e.conversationDisplay="linear"})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"linear"===e.conversationDisplay}]),"aria-hidden":!0},null,2),(0,uo.Wm)(s,{icon:"list","aria-hidden":!0}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("settings.conversation_display_linear_quick")),1)],8,ul)]),dl,(0,uo._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.showUserAvatars,onClick:t[2]||(t[2]=function(t){return e.showUserAvatars=!e.showUserAvatars})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox",{"menu-checkbox-checked":e.showUserAvatars}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.mention_link_show_avatar_quick")),1)],8,pl),e.conversation?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.autoUpdate,onClick:t[3]||(t[3]=function(t){return e.autoUpdate=!e.autoUpdate})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox",{"menu-checkbox-checked":e.autoUpdate}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.auto_update")),1)],8,ml)),e.conversation?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("button",{key:1,class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.collapseWithSubjects,onClick:t[4]||(t[4]=function(t){return e.collapseWithSubjects=!e.collapseWithSubjects})},[(0,uo._)("span",{class:(0,po.C_)(["menu-checkbox",{"menu-checkbox-checked":e.collapseWithSubjects}]),"aria-hidden":!0},null,2),(0,uo.Uk)((0,po.zw)(e.$t("settings.collapse_subject")),1)],8,hl)),(0,uo._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[5]||(t[5]=function(t){return e.openTab("general")})},[(0,uo.Wm)(s,{icon:"wrench"}),(0,uo.Uk)((0,po.zw)(e.$t("settings.more_settings")),1)])])]})),trigger:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{icon:"bars"})]})),_:1},8,["trigger-attrs"])}]]);function bl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function yl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.Sbq,Nt.UXu,Nt.A35);var _l=function(e,t){var n="retweet"===e.type?e.retweeted_status.id:e.id,o="retweet"===t.type?t.retweeted_status.id:t.id,r=Number(n),i=Number(o),s=!Number.isNaN(r),a=!Number.isNaN(i);return s&&a?r<i?-1:1:s&&!a?-1:!s&&a?1:n<o?-1:1};const kl={data:function(){return{highlight:null,expanded:!1,threadDisplayStatusObject:{},statusContentPropertiesObject:{},inlineDivePosition:null}},props:["statusId","collapsable","isPage","pinnedStatusIdsObject","inProfile","profileUserId","virtualHidden"],created:function(){this.isPage&&this.fetchConversation()},computed:yl(yl({maxDepthToShowByDefault:function(){var e=this.$store.getters.mergedConfig.maxDepthInThread-2;return e>=1?e:1},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===h._z.JOINED},displayStyle:function(){return this.$store.getters.mergedConfig.conversationDisplay},isTreeView:function(){return!this.isLinearView},treeViewIsSimple:function(){return!this.$store.getters.mergedConfig.conversationTreeAdvanced},isLinearView:function(){return"linear"===this.displayStyle},shouldFadeAncestors:function(){return this.$store.getters.mergedConfig.conversationTreeFadeAncestors},otherRepliesButtonPosition:function(){return this.$store.getters.mergedConfig.conversationOtherRepliesButton},showOtherRepliesButtonBelowStatus:function(){return"below"===this.otherRepliesButtonPosition},showOtherRepliesButtonInsideStatus:function(){return"inside"===this.otherRepliesButtonPosition},suspendable:function(){return this.isTreeView?Object.entries(this.statusContentProperties).every((function(e){var t=(0,l.Z)(e,2),n=(t[0],t[1]);return!n.replying&&0===n.mediaPlaying.length})):!this.$refs.statusComponent||!this.$refs.statusComponent[0]||this.$refs.statusComponent.every((function(e){return e.suspendable}))},hideStatus:function(){return this.virtualHidden&&this.suspendable},status:function(){return this.$store.state.statuses.allStatusesObject[this.statusId]},originalStatusId:function(){return this.status.retweeted_status?this.status.retweeted_status.id:this.statusId},conversationId:function(){return this.getConversationId(this.statusId)},conversation:function(){if(!this.status)return[];if(!this.isExpanded)return[this.status];var e=qc()(this.$store.state.statuses.conversationsObject[this.conversationId]),t=q()(e,{id:this.originalStatusId});return-1!==t&&(e[t]=this.status),function(e,t){return(e="retweet"===t.type?yn()(e,(function(e){return"retweet"===e.type||e.id!==t.retweeted_status.id})):yn()(e,(function(e){return"retweet"!==e.type}))).filter((function(e){return e})).sort(_l)}(e,this.status)},statusMap:function(){return this.conversation.reduce((function(e,t){return e[t.id]=t,e}),{})},threadTree:function(){var e=this,t=this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{}),n=function n(o,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return r.map((function(r){return s[r]?[]:(s[r]=!0,[{status:e.conversation[t[r]],id:r,depth:i},n(o,o[r],i+1,s)].reduce((function(e,t){return e.concat(t)}),[]))})).reduce((function(e,t){return e.concat(t)}),[])}(this.conversation.reduce((function(t,n){var o=n.id;return t.forest[o]=e.getReplies(o).map((function(e){return e.id})),t}),{forest:{}}).forest,this.topLevel.map((function(e){return e.id})));return n},replyIds:function(){var e=this;return this.conversation.map((function(e){return e.id})).reduce((function(t,n){return t[n]=(e.replies[n]||[]).map((function(e){return e.id})),t}),{})},totalReplyCount:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(o){return t[o]||(t[o]=1+e.replyIds[o].map((function(e){return n(e)})).reduce((function(e,t){return e+t}),0)),t[o]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},totalReplyDepth:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(o){return t[o]||(t[o]=1+e.replyIds[o].map((function(e){return n(e)})).reduce((function(e,t){return e>t?e:t}),0)),t[o]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},depths:function(){return this.threadTree.reduce((function(e,t){return e[t.id]=t.depth,e}),{})},topLevel:function(){var e=this;return this.conversation.reduce((function(t,n){return t.filter((function(t){return-1===e.getReplies(n.id).map((function(e){return e.id})).indexOf(t.id)}))}),this.conversation)},otherTopLevelCount:function(){return this.topLevel.length-1},showingTopLevel:function(){return this.canDive&&this.diveRoot?[this.statusMap[this.diveRoot]]:this.topLevel},diveRoot:function(){var e=this.inlineDivePosition||this.statusId;return this.parentOf(e)?e:null},diveDepth:function(){return this.canDive&&this.diveRoot?this.depths[this.diveRoot]:0},diveMode:function(){return this.canDive&&!!this.diveRoot},shouldShowAllConversationButton:function(){return this.isTreeView&&this.isExpanded&&this.diveMode&&this.topLevel.length>1},shouldShowAncestors:function(){return this.isTreeView&&this.isExpanded&&this.ancestorsOf(this.diveRoot).length},replies:function(){var e=1;return Ee()(this.conversation,(function(t,n){var o=n.id,r=n.in_reply_to_status_id;return r&&(t[r]=t[r]||[],t[r].push({name:"#".concat(e),id:o})),e++,t}),{})},isExpanded:function(){return!(!this.expanded&&!this.isPage)},hiddenStyle:function(){var e=this.status&&this.status.virtualHeight||"120px";return this.virtualHidden?{height:e}:{}},threadDisplayStatus:function(){var e=this;return this.conversation.reduce((function(t,n){var o=n.id,r=e.depths[o],i=e.threadDisplayStatusObject[o]?e.threadDisplayStatusObject[o]:r-e.diveDepth<=e.maxDepthToShowByDefault?"showing":"hidden";return t[o]=i,t}),{})},statusContentProperties:function(){var e=this;return this.conversation.reduce((function(t,n){var o,r=n.id,i=(o={showingTall:!1,expandingSubject:!1,showingLongSubject:!1,isReplying:!1,mediaPlaying:[]},e.statusContentPropertiesObject[r]?yl(yl({},o),e.statusContentPropertiesObject[r]):o);return t[r]=i,t}),{})},canDive:function(){return this.isTreeView&&this.isExpanded},focused:function(){var e=this;return function(t){return e.isExpanded&&t===e.highlight}},maybeHighlight:function(){return this.isExpanded?this.highlight:null}},(0,s.Se)(["mergedConfig"])),(0,s.rn)({mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus}})),components:{Status:qa.default,ThreadTree:Hc,QuickFilterSettings:sl,QuickViewSettings:wl},watch:{statusId:function(e,t){var n=this.getConversationId(e),o=this.getConversationId(t);n&&o&&n===o?this.setHighlight(this.originalStatusId):this.fetchConversation()},expanded:function(e){e?this.fetchConversation():this.resetDisplayState()},virtualHidden:function(e){this.$store.dispatch("setVirtualHeight",{statusId:this.statusId,height:"".concat(this.$el.clientHeight,"px")})}},methods:{fetchConversation:function(){var e=this;this.status?this.$store.state.api.backendInteractor.fetchConversation({id:this.statusId}).then((function(t){var n=t.ancestors,o=t.descendants;e.$store.dispatch("addNewStatuses",{statuses:n}),e.$store.dispatch("addNewStatuses",{statuses:o}),e.setHighlight(e.originalStatusId)})):this.$store.state.api.backendInteractor.fetchStatus({id:this.statusId}).then((function(t){e.$store.dispatch("addNewStatuses",{statuses:[t]}),e.fetchConversation()}))},getReplies:function(e){return this.replies[e]||[]},getHighlight:function(){return this.isExpanded?this.highlight:null},setHighlight:function(e){e&&(this.highlight=e,this.streamingEnabled||this.$store.dispatch("fetchStatus",e),this.$store.dispatch("fetchFavsAndRepeats",e),this.$store.dispatch("fetchEmojiReactionsBy",e))},toggleExpanded:function(){this.expanded=!this.expanded},getConversationId:function(e){var t=this.$store.state.statuses.allStatusesObject[e];return Tt()(t,"retweeted_status.statusnet_conversation_id",Tt()(t,"statusnet_conversation_id"))},setThreadDisplay:function(e,t){this.threadDisplayStatusObject=yl(yl({},this.threadDisplayStatusObject),{},(0,d.Z)({},e,t))},toggleThreadDisplay:function(e){var t="showing"===this.threadDisplayStatus[e]?"hidden":"showing";this.setThreadDisplay(e,t)},setThreadDisplayRecursively:function(e,t){var n=this;this.setThreadDisplay(e,t),this.getReplies(e).map((function(e){return e.id})).map((function(e){return n.setThreadDisplayRecursively(e,t)}))},showThreadRecursively:function(e){this.setThreadDisplayRecursively(e,"showing")},setStatusContentProperty:function(e,t,n){this.statusContentPropertiesObject=yl(yl({},this.statusContentPropertiesObject),{},(0,d.Z)({},e,yl(yl({},this.statusContentPropertiesObject[e]),{},(0,d.Z)({},t,n))))},toggleStatusContentProperty:function(e,t){this.setStatusContentProperty(e,t,!this.statusContentProperties[e][t])},leastVisibleAncestor:function(e){for(var t=e,n=this.parentOf(t);t;){if("showing"===this.threadDisplayStatus[n])return t;n=this.parentOf(n),t=this.parentOf(t)}return this.topLevel[0]?this.topLevel[0].id:void 0},diveIntoStatus:function(e,t){this.tryScrollTo(e)},diveToTopLevel:function(){this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot)||this.topLevel[0].id)},undive:function(){this.inlineDivePosition=null,this.setHighlight(this.statusId)},tryScrollTo:function(e){var t=this;e&&(this.isPage?this.$router.push({name:"conversation",params:{id:e}}):this.inlineDivePosition=e,this.$nextTick((function(){t.setHighlight(e)})))},goToCurrent:function(){this.tryScrollTo(this.diveRoot||this.topLevel[0].id)},statusById:function(e){return this.statusMap[e]},parentOf:function(e){var t=this.statusById(e);if(t){var n=t.in_reply_to_status_id;if(this.statusMap[n])return n}},parentOrSelf:function(e){return this.parentOf(e)||e},ancestorsOf:function(e){for(var t=[],n=this.parentOf(e);n;)t.unshift(this.statusMap[n]),n=this.parentOf(n);return t},topLevelAncestorOrSelfId:function(e){for(var t=e,n=this.parentOf(e);n;)t=this.parentOf(t),n=this.parentOf(n);return t},resetDisplayState:function(){this.undive(),this.threadDisplayStatusObject={}}}},Sl=(0,Eo.Z)(kl,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("QuickFilterSettings"),a=(0,uo.up)("QuickViewSettings"),c=(0,uo.up)("FAIcon"),l=(0,uo.up)("i18n-t"),u=(0,uo.up)("status"),d=(0,uo.up)("thread-tree");return e.hideStatus?((0,uo.wg)(),(0,uo.iD)("div",{key:1,style:(0,po.j5)(e.hiddenStyle)},null,4)):((0,uo.wg)(),(0,uo.iD)("div",{key:0,style:(0,po.j5)(e.hiddenStyle),class:(0,po.C_)(["Conversation",{"-expanded":e.isExpanded,panel:e.isExpanded}])},[e.isExpanded?((0,uo.wg)(),(0,uo.iD)("div",xc,[(0,uo._)("span",Tc,(0,po.zw)(e.$t("timeline.conversation")),1),e.collapsable?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"button-unstyled -link",onClick:t[0]||(t[0]=(0,ro.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},(0,po.zw)(e.$t("timeline.collapse")),1)):(0,uo.kq)("",!0),e.collapsable?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.j4)(s,{key:1,conversation:!0,class:"rightside-button"})),e.collapsable?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.j4)(a,{key:2,conversation:!0,class:"rightside-button"}))])):(0,uo.kq)("",!0),(0,uo._)("div",$c,[e.isTreeView?((0,uo.wg)(),(0,uo.iD)("div",Uc,[e.shouldShowAllConversationButton?((0,uo.wg)(),(0,uo.iD)("div",Mc,[(0,uo.Wm)(l,{keypath:"status.show_all_conversation_with_icon",tag:"button",class:"button-unstyled -link",scope:"global",onClick:(0,ro.iM)(e.diveToTopLevel,["prevent"])},{icon:(0,uo.w5)((function(){return[(0,uo.Wm)(c,{icon:"angle-double-left"})]})),text:(0,uo.w5)((function(){return[(0,uo._)("span",null,(0,po.zw)(e.$tc("status.show_all_conversation",e.otherTopLevelCount,{numStatus:e.otherTopLevelCount})),1)]})),_:1},8,["onClick"])])):(0,uo.kq)("",!0),e.shouldShowAncestors?((0,uo.wg)(),(0,uo.iD)("div",Ac,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.ancestorsOf(e.diveRoot),(function(t){return(0,uo.wg)(),(0,uo.iD)("article",{key:t.id,class:(0,po.C_)(["thread-ancestor",{"thread-ancestor-has-other-replies":e.getReplies(t.id).length>1,"-faded":e.shouldFadeAncestors}])},[(0,uo.Wm)(u,{ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","simple-tree":e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"show-other-replies-as-button":e.showOtherRepliesButtonInsideStatus,dive:function(){return e.diveIntoStatus(t.id)},"controlled-showing-tall":e.statusContentProperties[t.id].showingTall,"controlled-expanding-subject":e.statusContentProperties[t.id].expandingSubject,"controlled-showing-long-subject":e.statusContentProperties[t.id].showingLongSubject,"controlled-replying":e.statusContentProperties[t.id].replying,"controlled-media-playing":e.statusContentProperties[t.id].mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleStatusContentProperty(t.id,"showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleStatusContentProperty(t.id,"expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleStatusContentProperty(t.id,"showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleStatusContentProperty(t.id,"replying")},"controlled-set-media-playing":function(n){return e.toggleStatusContentProperty(t.id,"mediaPlaying",n)},onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","show-other-replies-as-button","dive","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","onGoto","onToggleExpanded"]),e.showOtherRepliesButtonBelowStatus&&e.getReplies(t.id).length>1?((0,uo.wg)(),(0,uo.iD)("div",Lc,[(0,uo._)("div",Ec,[(0,uo.Wm)(l,{tag:"button",scope:"global",keypath:"status.ancestor_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:(0,ro.iM)((function(n){return e.diveIntoStatus(t.id)}),["prevent"])},{icon:(0,uo.w5)((function(){return[(0,uo.Wm)(c,{icon:"angle-double-right"})]})),text:(0,uo.w5)((function(){return[(0,uo._)("span",null,(0,po.zw)(e.$tc("status.ancestor_follow",e.getReplies(t.id).length-1,{numReplies:e.getReplies(t.id).length-1})),1)]})),_:2},1032,["onClick"])])])):(0,uo.kq)("",!0)],2)})),128))])):(0,uo.kq)("",!0),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.showingTopLevel,(function(t){return(0,uo.wg)(),(0,uo.j4)(d,{key:t.id,ref_for:!0,ref:"statusComponent",depth:0,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.maybeHighlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.canDive?e.diveIntoStatus:void 0},null,8,["status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,uo.kq)("",!0),e.isLinearView?((0,uo.wg)(),(0,uo.iD)("div",Fc,[(0,uo._)("article",null,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.conversation,(function(t){return(0,uo.wg)(),(0,uo.j4)(u,{key:t.id,ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","onGoto","onToggleExpanded"])})),128))])])):(0,uo.kq)("",!0)])],6))}]]);var jl={key:1},Cl={class:"button-unstyled title timeline-menu-title"},Ol={class:"timeline-title"};function Pl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function zl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.ptq);const Dl={components:{Popover:nl.default,NavigationEntry:Wr,ListsMenuContent:Kr},data:function(){return{isOpen:!1}},created:function(){({friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"})[this.$route.name]&&this.$store.dispatch("setLastTimeline",this.$route.name)},computed:zl(zl({useListsMenu:function(){return"lists-timeline"===this.$route.name}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}})),{},{timelinesList:function(){return Br(Object.entries(Er).map((function(e){var t=(0,l.Z)(e,2),n=t[0];return zl(zl({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}}),methods:{openMenu:function(){var e=this;setTimeout((function(){e.isOpen=!0}),25)},blockOpen:function(e){this.isOpen||e.stopPropagation()},timelineName:function(){var e=this.$route.name;if("tag-timeline"===e)return"#"+this.$route.params.tag;if("lists-timeline"===e)return this.$store.getters.findListTitle(this.$route.params.id);var t={friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"}[this.$route.name];return t?this.$t(t):e}}},Il=(0,Eo.Z)(Dl,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("ListsMenuContent"),a=(0,uo.up)("NavigationEntry"),c=(0,uo.up)("FAIcon"),l=(0,uo.up)("Popover");return(0,uo.wg)(),(0,uo.j4)(l,{trigger:"click",class:(0,po.C_)(["TimelineMenu",{open:e.isOpen}]),"bound-to":{x:"container"},"bound-to-selector":".Timeline","popover-class":"timeline-menu-popover popover-default",onShow:e.openMenu,onClose:t[1]||(t[1]=function(){return e.isOpen=!1})},{content:(0,uo.w5)((function(){return[e.useListsMenu?((0,uo.wg)(),(0,uo.j4)(s,{key:0,"show-pin":!1,class:"timelines"})):((0,uo.wg)(),(0,uo.iD)("ul",jl,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.timelinesList,(function(e){return(0,uo.wg)(),(0,uo.j4)(a,{key:e.name,"show-pin":!1,item:e},null,8,["item"])})),128))]))]})),trigger:(0,uo.w5)((function(){return[(0,uo._)("span",Cl,[(0,uo._)("span",Ol,(0,po.zw)(e.timelineName()),1),(0,uo._)("span",null,[(0,uo.Wm)(c,{size:"sm",icon:"chevron-down"})]),(0,uo._)("span",{class:"click-blocker",onClick:t[0]||(t[0]=function(){return e.blockOpen&&e.blockOpen.apply(e,arguments)})})])]})),_:1},8,["class","onShow"])}]]);function xl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}qt.vI.add(Nt.IJ7,Nt.b7W,Nt.Kl4,Nt.FPD,Nt.EQ8,Nt.LEp);var Tl={props:["timeline","timelineName","title","userId","listId","tag","embedded","count","pinnedStatusIds","inProfile","footerSlipgate"],data:function(){return{showScrollTop:!1,paused:!1,unfocused:!1,bottomedOut:!1,virtualScrollIndex:0,blockingClicks:!1}},components:{Status:qa.default,Conversation:Sl,TimelineMenu:Il,QuickFilterSettings:sl,QuickViewSettings:wl},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({filteredVisibleStatuses:function(){var e=this;return this.timeline.visibleStatuses.filter((function(t){return"user"!==e.timelineName||t.id>=e.timeline.minId&&t.id<=e.timeline.maxId}))},filteredPinnedStatusIds:function(){var e=this;return(this.pinnedStatusIds||[]).filter((function(t){return e.timeline.statusesObject[t]}))},newStatusCount:function(){return this.timeline.newStatusCount},showLoadButton:function(){return this.timeline.newStatusCount>0||0!==this.timeline.flushMarker},loadButtonString:function(){return 0!==this.timeline.flushMarker?this.$t("timeline.reload"):"".concat(this.$t("timeline.show_new")," (").concat(this.newStatusCount,")")},mobileLoadButtonString:function(){return 0!==this.timeline.flushMarker?"+":this.newStatusCount>99?"∞":this.newStatusCount},classes:function(){var e=this.embedded?["-nonpanel"]:["panel","panel-default"];return this.blockingClicks&&(e=e.concat(["-blocked","_misclick-prevention"])),{root:e,header:["timeline-heading"].concat(this.embedded?[]:["panel-heading","-sticky"]),body:["timeline-body"].concat(this.embedded?[]:["panel-body"]),footer:["timeline-footer"].concat(this.embedded?[]:["panel-footer"])}},pinnedStatusIdsObject:function(){return zc()(this.pinnedStatusIds)},statusesToDisplay:function(){var e=this.timeline.visibleStatuses.length,t=Math.ceil(Math.max(3,window.innerHeight/80)),n=this.virtualScrollIndex-this.filteredPinnedStatusIds.length,o=Math.max(0,n-t),r=Math.min(e,n+t);return this.timeline.visibleStatuses.slice(o,r).map((function(e){return e.id}))},virtualScrollingEnabled:function(){return this.$store.getters.mergedConfig.virtualScrolling}},(0,s.rn)({mobileLayout:function(e){return"mobile"===e.interface.layoutType}})),created:function(){var e=this.$store,t=e.state.users.currentUser.credentials,n=0===this.timeline.visibleStatuses.length;if(window.addEventListener("scroll",this.handleScroll),e.state.api.fetchers[this.timelineName])return!1;Pe.fetchAndUpdate({store:e,credentials:t,timeline:this.timelineName,showImmediately:n,userId:this.userId,listId:this.listId,tag:this.tag})},mounted:function(){void 0!==document.hidden&&(document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.unfocused=document.hidden),window.addEventListener("keydown",this.handleShortKey),setTimeout(this.determineVisibleStatuses,250)},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("keydown",this.handleShortKey),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.commit("setLoading",{timeline:this.timelineName,value:!1})},methods:{scrollToTop:function(){window.scrollTo({top:this.$el.offsetTop})},stopBlockingClicks:Bs()((function(){this.blockingClicks=!1}),1e3),blockClicksTemporarily:function(){this.blockingClicks||(this.blockingClicks=!0),this.stopBlockingClicks()},handleShortKey:function(e){["textarea","input"].includes(e.target.tagName.toLowerCase())||"."===e.key&&this.showNewStatuses()},showNewStatuses:function(){0!==this.timeline.flushMarker?(this.$store.commit("clearTimeline",{timeline:this.timelineName,excludeUserId:!0}),this.$store.commit("queueFlush",{timeline:this.timelineName,id:0}),this.fetchOlderStatuses()):(this.blockClicksTemporarily(),this.$store.commit("showNewStatuses",{timeline:this.timelineName}),this.paused=!1),window.scrollTo({top:0})},fetchOlderStatuses:Ic()((function(){var e=this,t=this.$store,n=t.state.users.currentUser.credentials;t.commit("setLoading",{timeline:this.timelineName,value:!0}),Pe.fetchAndUpdate({store:t,credentials:n,timeline:this.timelineName,older:!0,showImmediately:!0,userId:this.userId,listId:this.listId,tag:this.tag}).then((function(t){var n=t.statuses;n&&0===n.length&&(e.bottomedOut=!0)})).finally((function(){return t.commit("setLoading",{timeline:e.timelineName,value:!1})}))}),1e3,void 0),determineVisibleStatuses:function(){if(this.$refs.timeline&&this.virtualScrollingEnabled){var e=this.$refs.timeline.children,t=Math.max(0,Math.min(this.virtualScrollIndex,e.length-1));if(0!==e.length){var n=Math.max(document.body.offsetHeight,window.pageYOffset),o=window.pageYOffset+.5*window.innerHeight,r=Math.floor(e.length*(o/n)),i=e[r].getBoundingClientRect().y,s=e[t].getBoundingClientRect().y;for(Math.abs(i)>s&&(r=t,i=s);i<-20&&r<e.length-1;)i+=e[r].offsetHeight,r++;for(;i>window.innerHeight+100&&r>0;)i-=e[--r].offsetHeight;this.virtualScrollIndex=r}}},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.timeline.loading&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchOlderStatuses()},handleScroll:Ic()((function(e){this.showScrollTop=this.$el.offsetTop<window.scrollY,this.determineVisibleStatuses(),this.scrollLoad(e)}),200),handleVisibilityChange:function(){this.unfocused=document.hidden}},watch:{newStatusCount:function(e){if(this.$store.getters.mergedConfig.streaming&&e>0){var t=document.documentElement;!((window.pageYOffset||t.scrollTop)-(t.clientTop||0)<15)||this.paused||this.unfocused&&this.$store.getters.mergedConfig.pauseOnUnfocused?this.paused=!0:this.showNewStatuses()}}}};const $l=Tl,Ul=(0,Eo.Z)($l,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("TimelineMenu"),a=(0,uo.up)("FAIcon"),c=(0,uo.up)("FALayers"),l=(0,uo.up)("QuickFilterSettings"),u=(0,uo.up)("QuickViewSettings"),d=(0,uo.up)("conversation");return(0,uo.wg)(),(0,uo.iD)("div",{class:(0,po.C_)(["Timeline",e.classes.root])},[(0,uo._)("div",{class:(0,po.C_)(e.classes.header)},[e.embedded?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.j4)(s,{key:0,"timeline-name":e.timelineName},null,8,["timeline-name"])),e.showScrollTop&&!e.embedded?((0,uo.wg)(),(0,uo.iD)("div",gc,[(0,uo._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,uo.Wm)(c,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{icon:"arrow-up"}),(0,uo.Wm)(a,{icon:"minus",transform:"up-7"})]})),_:1})],8,vc)])):(0,uo.kq)("",!0),e.mobileLayout&&!e.embedded?((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:2},[e.showLoadButton?((0,uo.wg)(),(0,uo.iD)("div",wc,[(0,uo._)("button",{class:"button-unstyled loadmore-button",title:e.loadButtonString,onClick:t[1]||(t[1]=(0,ro.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},[(0,uo.Wm)(a,{"fixed-width":"",icon:"circle-plus"}),(0,uo._)("div",yc,(0,po.zw)(e.mobileLoadButtonString),1)],8,bc)])):e.embedded?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",{key:1,class:"loadmore-text faint veryfaint rightside-icon",title:e.$t("timeline.up_to_date"),"aria-disabled":!0,onClick:t[2]||(t[2]=(0,ro.iM)((function(){}),["prevent"]))},[(0,uo.Wm)(a,{"fixed-width":"",icon:"check"})],8,_c))],64)):((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:3},[e.showLoadButton?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"button-default loadmore-button",onClick:t[3]||(t[3]=(0,ro.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},(0,po.zw)(e.loadButtonString),1)):e.embedded?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",{key:1,class:"loadmore-text faint",onClick:t[4]||(t[4]=(0,ro.iM)((function(){}),["prevent"]))},(0,po.zw)(e.$t("timeline.up_to_date")),1))],64)),e.embedded?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.j4)(l,{key:4,class:"rightside-button"})),e.embedded?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.j4)(u,{key:5,class:"rightside-button"}))],2),(0,uo._)("div",{class:(0,po.C_)(e.classes.body)},[(0,uo._)("div",kc,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.filteredPinnedStatusIds,(function(t){return(0,uo.wg)(),(0,uo.j4)(d,{key:t+"-pinned",role:"listitem",class:"status-fadein","status-id":t,collapsable:!0,"pinned-status-ids-object":e.pinnedStatusIdsObject,"in-profile":e.inProfile,"profile-user-id":e.userId},null,8,["status-id","pinned-status-ids-object","in-profile","profile-user-id"])})),128)),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.filteredVisibleStatuses,(function(t){return(0,uo.wg)(),(0,uo.j4)(d,{key:t.id,role:"listitem",class:"status-fadein","status-id":t.id,collapsable:!0,"in-profile":e.inProfile,"profile-user-id":e.userId,"virtual-hidden":e.virtualScrollingEnabled&&!e.statusesToDisplay.includes(t.id)},null,8,["status-id","in-profile","profile-user-id","virtual-hidden"])})),128))],512)],2),(0,uo._)("div",{class:(0,po.C_)(e.classes.footer)},[((0,uo.wg)(),(0,uo.j4)(uo.lR,{to:e.footerSlipgate,disabled:!e.embedded||!e.footerSlipgate},[0===e.count?((0,uo.wg)(),(0,uo.iD)("div",Sc,(0,po.zw)(e.$t("timeline.no_statuses")),1)):e.bottomedOut?((0,uo.wg)(),(0,uo.iD)("div",jc,(0,po.zw)(e.$t("timeline.no_more_statuses")),1)):e.timeline.loading?((0,uo.wg)(),(0,uo.iD)("div",Oc,[(0,uo.Wm)(a,{icon:"circle-notch",spin:"",size:"lg"})])):((0,uo.wg)(),(0,uo.iD)("button",{key:2,class:"button-unstyled -link",onClick:t[5]||(t[5]=(0,ro.iM)((function(t){return e.fetchOlderStatuses()}),["prevent"]))},[(0,uo._)("div",Cc,(0,po.zw)(e.$t("timeline.load_older")),1)]))],8,["to","disabled"]))],2)],2)}]]),Ml={components:{Timeline:Ul},computed:{timeline:function(){return this.$store.state.statuses.timelines.public}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"public"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","public")}},Al=(0,Eo.Z)(Ml,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Timeline");return(0,uo.wg)(),(0,uo.j4)(s,{title:e.$t("nav.public_tl"),timeline:e.timeline,"timeline-name":"public"},null,8,["title","timeline"])}]]),Ll={components:{Timeline:Ul},computed:{timeline:function(){return this.$store.state.statuses.timelines.publicAndExternal}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"publicAndExternal"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","publicAndExternal")}},El=(0,Eo.Z)(Ll,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Timeline");return(0,uo.wg)(),(0,uo.j4)(s,{title:e.$t("nav.twkn"),timeline:e.timeline,"timeline-name":"publicAndExternal"},null,8,["title","timeline"])}]]),Fl={components:{Timeline:Ul},computed:{timeline:function(){return this.$store.state.statuses.timelines.friends}}},Rl=(0,Eo.Z)(Fl,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Timeline");return(0,uo.wg)(),(0,uo.j4)(s,{title:e.$t("nav.timeline"),timeline:e.timeline,"timeline-name":"friends"},null,8,["title","timeline"])}]]),ql={created:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})},components:{Timeline:Ul},computed:{tag:function(){return this.$route.params.tag},timeline:function(){return this.$store.state.statuses.timelines.tag}},watch:{tag:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})}},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","tag")}},Nl=(0,Eo.Z)(ql,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Timeline");return(0,uo.wg)(),(0,uo.j4)(s,{title:e.tag,timeline:e.timeline,"timeline-name":"tag",tag:e.tag},null,8,["title","timeline","tag"])}]]),Zl={computed:{timeline:function(){return this.$store.state.statuses.timelines.bookmarks}},components:{Timeline:Ul},unmounted:function(){this.$store.commit("clearTimeline",{timeline:"bookmarks"})}},Wl=(0,Eo.Z)(Zl,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Timeline");return(0,uo.wg)(),(0,uo.j4)(s,{title:e.$t("nav.bookmarks"),timeline:e.timeline,"timeline-name":"bookmarks"},null,8,["title","timeline"])}]]),Bl={components:{Conversation:Sl},computed:{statusId:function(){return this.$route.params.id}}},Hl=(0,Eo.Z)(Bl,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("conversation");return(0,uo.wg)(),(0,uo.j4)(s,{collapsable:!1,"is-page":"true","status-id":e.statusId},null,8,["status-id"])}]]);var Vl={class:"panel panel-default"},Kl={class:"panel-heading"},Gl={class:"title"},Yl=["label"],Jl=["label"],Ql=["label"],Xl=["label"],eu=["label"],tu=["label"],nu=n(79354),ou={mentions:["mention"],"likes+repeats":["repeat","like"],follows:["follow"],reactions:["pleroma:emoji_reaction"],reports:["pleroma:report"],moves:["move"]};const ru={data:function(){return{allowFollowingMove:this.$store.state.users.currentUser.allow_following_move,filterMode:ou.mentions,canSeeReports:this.$store.state.users.currentUser.privileges.includes("reports_manage_reports")}},methods:{onModeSwitch:function(e){this.filterMode=ou[e]}},components:{Notifications:aa.default,TabSwitcher:nu.Z}},iu=(0,Eo.Z)(ru,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("tab-switcher"),a=(0,uo.up)("Notifications");return(0,uo.wg)(),(0,uo.iD)("div",Vl,[(0,uo._)("div",Kl,[(0,uo._)("div",Gl,(0,po.zw)(e.$t("nav.interactions")),1)]),(0,uo.Wm)(s,{ref:"tabSwitcher","on-switch":e.onModeSwitch},{default:(0,uo.w5)((function(){return[(0,uo._)("span",{key:"mentions",label:e.$t("nav.mentions")},null,8,Yl),(0,uo._)("span",{key:"likes+repeats",label:e.$t("interactions.favs_repeats")},null,8,Jl),(0,uo._)("span",{key:"follows",label:e.$t("interactions.follows")},null,8,Ql),(0,uo._)("span",{key:"reactions",label:e.$t("interactions.emoji_reactions")},null,8,Xl),e.canSeeReports?((0,uo.wg)(),(0,uo.iD)("span",{key:"reports",label:e.$t("interactions.reports")},null,8,eu)):(0,uo.kq)("",!0),e.allowFollowingMove?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("span",{key:"moves",label:e.$t("interactions.moves")},null,8,tu))]})),_:1},8,["on-switch"]),(0,uo.Wm)(a,{ref:"notifications","no-heading":!0,"minimal-mode":!0,"filter-mode":e.filterMode},null,8,["filter-mode"])])}]]),su={computed:{timeline:function(){return this.$store.state.statuses.timelines.dms}},components:{Timeline:Ul}},au=(0,Eo.Z)(su,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Timeline");return(0,uo.wg)(),(0,uo.j4)(s,{title:e.$t("nav.dms"),timeline:e.timeline,"timeline-name":"dms"},null,8,["title","timeline"])}]]);var cu={key:0},lu={key:1,class:"chat-list panel panel-default"},uu={class:"panel-heading -sticky"},du={class:"title"},pu={class:"panel-body"},mu={key:0,class:"timeline"},hu={key:1,class:"emtpy-chat-list-alert"},fu={class:"chat-list-item-left"},gu={class:"chat-list-item-center"},vu={class:"heading"},wu={key:0,class:"name-and-account-name"},bu=(0,uo._)("span",{class:"heading-right"},null,-1),yu={class:"time-wrapper"},_u={class:"chat-preview"},ku={key:0,class:"badge badge-notification unread-chat-count"},Su=n(38146),ju=n(48173),Cu=n(19066),Ou=n(1840),Pu=["title"],zu=n(92820);const Du={name:"ChatTitle",components:{UserAvatar:ju.default,RichContent:zu.Z,UserPopover:(0,uo.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},props:["user","withAvatar"],computed:{title:function(){return this.user?this.user.screen_name_ui:""},htmlTitle:function(){return this.user?this.user.name_html:""}}},Iu=(0,Eo.Z)(Du,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("UserAvatar"),a=(0,uo.up)("UserPopover"),c=(0,uo.up)("RichContent");return(0,uo.wg)(),(0,uo.iD)("div",{class:"chat-title",title:e.title},[e.withAvatar&&e.user?((0,uo.wg)(),(0,uo.j4)(a,{key:0,class:"avatar-container","user-id":e.user.id},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{class:"titlebar-avatar",user:e.user},null,8,["user"])]})),_:1},8,["user-id"])):(0,uo.kq)("",!0),e.user?((0,uo.wg)(),(0,uo.j4)(c,{key:1,class:"username",title:"@"+(e.user&&e.user.screen_name_ui),html:e.htmlTitle,emoji:e.user.emoji||[]},null,8,["title","html","emoji"])):(0,uo.kq)("",!0)],8,Pu)}]]);function xu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Tu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xu(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const $u={name:"ChatListItem",props:["chat"],components:{UserAvatar:ju.default,AvatarList:Cu.Z,Timeago:Ou.Z,ChatTitle:Iu,StatusBody:Su.Z},computed:Tu(Tu({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{attachmentInfo:function(){if(0!==this.chat.lastMessage.attachments.length){var e=this.chat.lastMessage.attachments.map((function(e){return hn.Z.fileType(e.mimetype)}));return e.includes("video")?this.$t("file_type.video"):e.includes("audio")?this.$t("file_type.audio"):e.includes("image")?this.$t("file_type.image"):this.$t("file_type.file")}},messageForStatusContent:function(){var e=this.chat.lastMessage,t=e?e.emojis:[],n=e&&e.account_id===this.currentUser.id,o=e?this.attachmentInfo||e.content:"",r=n?"<i>".concat(this.$t("chats.you"),"</i> ").concat(o):o;return{summary:"",emojis:t,raw_html:r,text:r,attachments:[]}}}),methods:{openChat:function(e){this.chat.id&&this.$router.push({name:"chat",params:{username:this.currentUser.screen_name,recipient_id:this.chat.account.id}})}}},Uu=(0,Eo.Z)($u,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("UserAvatar"),a=(0,uo.up)("ChatTitle"),c=(0,uo.up)("Timeago"),l=(0,uo.up)("StatusBody");return(0,uo.wg)(),(0,uo.iD)("div",{class:"chat-list-item",onClickCapture:t[0]||(t[0]=(0,ro.iM)((function(){return e.openChat&&e.openChat.apply(e,arguments)}),["prevent"]))},[(0,uo._)("div",fu,[(0,uo.Wm)(s,{user:e.chat.account,height:"48px",width:"48px"},null,8,["user"])]),(0,uo._)("div",gu,[(0,uo._)("div",vu,[e.chat.account?((0,uo.wg)(),(0,uo.iD)("span",wu,[(0,uo.Wm)(a,{user:e.chat.account},null,8,["user"])])):(0,uo.kq)("",!0),bu,(0,uo._)("div",yu,[(0,uo.Wm)(c,{time:e.chat.updated_at,"auto-update":60},null,8,["time"])])]),(0,uo._)("div",_u,[(0,uo.Wm)(l,{class:"chat-preview-body",status:e.messageForStatusContent,"single-line":!0},null,8,["status"]),e.chat.unread>0?((0,uo.wg)(),(0,uo.iD)("div",ku,(0,po.zw)(e.chat.unread),1)):(0,uo.kq)("",!0)])])],32)}]]);var Mu={class:"panel-default panel chat-new"},Au={ref:"header",class:"panel-heading"},Lu={class:"input-wrap"},Eu={class:"input-search"},Fu={class:"member-list"},Ru=["onClickCapture"],qu=n(29076);function Nu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Zu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nu(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.wn1,Nt.A35);var Wu={components:{BasicUserCard:qu.Z,UserAvatar:ju.default},data:function(){return{suggestions:[],userIds:[],loading:!1,query:""}},created:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.backendInteractor.chats();case 2:t.sent.chats.forEach((function(t){return e.suggestions.push(t.account)}));case 5:case"end":return t.stop()}}),t)})))()},computed:Zu(Zu({users:function(){var e=this;return this.userIds.map((function(t){return e.findUser(t)}))},availableUsers:function(){return 0!==this.query.length?this.users:this.suggestions}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},backendInteractor:function(e){return e.api.backendInteractor}})),(0,s.Se)(["findUser"])),methods:{goBack:function(){this.$emit("cancel")},goToChat:function(e){this.$router.push({name:"chat",params:{recipient_id:e.id}})},onInput:function(){this.search(this.query)},addUser:function(e){this.selectedUserIds.push(e.id),this.query=""},removeUser:function(e){this.selectedUserIds=this.selectedUserIds.filter((function(t){return t!==e}))},search:function(e){var t=this;e?(this.loading=!0,this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts"}).then((function(e){t.loading=!1,t.userIds=e.accounts.map((function(e){return e.id}))}))):this.loading=!1}}};const Bu=Wu,Hu=(0,Eo.Z)(Bu,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("BasicUserCard");return(0,uo.wg)(),(0,uo.iD)("div",Mu,[(0,uo._)("div",Au,[(0,uo._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,uo.Wm)(s,{size:"lg",icon:"chevron-left"})])],512),(0,uo._)("div",Lu,[(0,uo._)("div",Eu,[(0,uo.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,uo.wy)((0,uo._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.query=t}),placeholder:"Search people",onInput:t[2]||(t[2]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,544),[[ro.nr,e.query]])]),(0,uo._)("div",Fu,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.availableUsers,(function(t){return(0,uo.wg)(),(0,uo.iD)("div",{key:t.id,class:"member"},[(0,uo._)("div",{onClickCapture:(0,ro.iM)((function(n){return e.goToChat(t)}),["prevent"])},[(0,uo.Wm)(a,{user:t},null,8,["user"])],40,Ru)])})),128))])])}]]);function Vu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ku(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vu(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Gu={components:{ChatListItem:Uu,List:Na.Z,ChatNew:Hu},computed:Ku(Ku({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["sortedChatList"])),data:function(){return{isNew:!1}},created:function(){this.$store.dispatch("fetchChats",{latest:!0})},methods:{cancelNewChat:function(){this.isNew=!1,this.$store.dispatch("fetchChats",{latest:!0})},newChat:function(){this.isNew=!0}}},Yu=(0,Eo.Z)(Gu,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("ChatNew"),a=(0,uo.up)("ChatListItem"),c=(0,uo.up)("List");return e.isNew?((0,uo.wg)(),(0,uo.iD)("div",cu,[(0,uo.Wm)(s,{onCancel:e.cancelNewChat},null,8,["onCancel"])])):((0,uo.wg)(),(0,uo.iD)("div",lu,[(0,uo._)("div",uu,[(0,uo._)("span",du,(0,po.zw)(e.$t("chats.chats")),1),(0,uo._)("button",{class:"button-default",onClick:t[0]||(t[0]=function(){return e.newChat&&e.newChat.apply(e,arguments)})},(0,po.zw)(e.$t("chats.new")),1)]),(0,uo._)("div",pu,[e.sortedChatList.length>0?((0,uo.wg)(),(0,uo.iD)("div",mu,[(0,uo.Wm)(c,{items:e.sortedChatList},{item:(0,uo.w5)((function(e){var t=e.item;return[((0,uo.wg)(),(0,uo.j4)(a,{key:t.id,compact:!1,chat:t},null,8,["chat"]))]})),_:1},8,["items"])])):((0,uo.wg)(),(0,uo.iD)("div",hu,[(0,uo._)("span",null,(0,po.zw)(e.$t("chats.empty_chat_list_placeholder")),1)]))])]))}]]);var Ju={class:"chat-view"},Qu={class:"chat-view-inner"},Xu={ref:"inner",class:"panel-default panel chat-view-body"},ed={ref:"header",class:"panel-heading -sticky chat-view-heading"},td={class:"title text-center"},nd={key:1,class:"chat-loading-error"},od={class:"alert error"},rd={ref:"footer",class:"panel-body footer"},id={key:0,class:"badge badge-notification unread-chat-count unread-message-count"},sd={key:0,class:"avatar-wrapper"},ad={class:"chat-message-inner"},cd={class:"dropdown-menu"},ld=["title"],ud={class:"created-at"},dd={key:1,class:"chat-message-date-separator"},pd=n(66596),md=n(67671),hd=n(92798),fd=n(39776);const gd={name:"Timeago",props:["date"],computed:{displayDate:function(){var e=new Date;return e.setHours(0,0,0,0),this.date.getTime()===e.getTime()?this.$t("display_date.today"):this.date.toLocaleDateString(fd.Z.internalToBrowserLocale(this.$i18n.locale),{day:"numeric",month:"long"})}}},vd=(0,Eo.Z)(gd,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("time",null,(0,po.zw)(i.displayDate),1)}]]);function wd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function bd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wd(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.NBC,Nt.cNd);const yd={name:"ChatMessage",props:["author","edited","noHeading","chatViewItem","hoveredMessageChain"],emits:["hover"],components:{Popover:nl.default,Attachment:pd.Z,StatusContent:Su.Z,UserAvatar:ju.default,Gallery:md.Z,LinkPreview:hd.Z,ChatMessageDate:vd,UserPopover:(0,uo.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},computed:bd(bd({createdAt:function(){return this.chatViewItem.data.created_at.toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit",hour12:!1})},isCurrentUser:function(){return this.message.account_id===this.currentUser.id},message:function(){return this.chatViewItem.data},isMessage:function(){return"message"===this.chatViewItem.type},messageForStatusContent:function(){return{summary:"",emojis:this.message.emojis,raw_html:this.message.content||"",text:this.message.content||"",attachments:this.message.attachments}},hasAttachment:function(){return this.message.attachments.length>0}},(0,s.rn)({betterShadow:function(e){return e.interface.browserSupport.cssFilter},currentUser:function(e){return e.users.currentUser},restrictedNicknames:function(e){return e.instance.restrictedNicknames}})),{},{popoverMarginStyle:function(){return this.isCurrentUser?{}:{left:50}}},(0,s.Se)(["mergedConfig","findUser"])),data:function(){return{hovered:!1,menuOpened:!1}},methods:{onHover:function(e){this.$emit("hover",{isHovered:e,messageChainId:this.chatViewItem.messageChainId})},deleteMessage:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!window.confirm(e.$t("chats.delete_confirm"))){t.next=4;break}return t.next=4,e.$store.dispatch("deleteChatMessage",{messageId:e.chatViewItem.data.id,chatId:e.chatViewItem.data.chat_id});case 4:e.hovered=!1,e.menuOpened=!1;case 6:case"end":return t.stop()}}),t)})))()}}},_d=(0,Eo.Z)(yd,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("UserAvatar"),a=(0,uo.up)("UserPopover"),c=(0,uo.up)("FAIcon"),l=(0,uo.up)("Popover"),u=(0,uo.up)("StatusContent"),d=(0,uo.up)("ChatMessageDate");return e.isMessage?((0,uo.wg)(),(0,uo.iD)("div",{key:0,class:(0,po.C_)(["chat-message-wrapper",{"hovered-message-chain":e.hoveredMessageChain}]),onMouseover:t[5]||(t[5]=function(t){return e.onHover(!0)}),onMouseleave:t[6]||(t[6]=function(t){return e.onHover(!1)})},[(0,uo._)("div",{class:(0,po.C_)(["chat-message",[{outgoing:e.isCurrentUser,incoming:!e.isCurrentUser}]])},[e.isCurrentUser?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",sd,[e.chatViewItem.isHead?((0,uo.wg)(),(0,uo.j4)(a,{key:0,"user-id":e.author.id},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{compact:!0,"better-shadow":e.betterShadow,user:e.author},null,8,["better-shadow","user"])]})),_:1},8,["user-id"])):(0,uo.kq)("",!0)])),(0,uo._)("div",ad,[(0,uo._)("div",{class:"status-body",style:(0,po.j5)({"min-width":e.message.attachment?"80%":""})},[(0,uo._)("div",{class:(0,po.C_)(["media status",{"without-attachment":!e.hasAttachment,pending:e.chatViewItem.data.pending,error:e.chatViewItem.data.error}]),style:{position:"relative"},onMouseenter:t[3]||(t[3]=function(t){return e.hovered=!0}),onMouseleave:t[4]||(t[4]=function(t){return e.hovered=!1})},[(0,uo._)("div",{class:(0,po.C_)(["chat-message-menu",{visible:e.hovered||e.menuOpened}])},[(0,uo.Wm)(l,{trigger:"click",placement:"top","bound-to-selector":".chat-view-inner","bound-to":{x:"container"},margin:e.popoverMarginStyle,onShow:t[1]||(t[1]=function(t){return e.menuOpened=!0}),onClose:t[2]||(t[2]=function(t){return e.menuOpened=!1})},{content:(0,uo.w5)((function(){return[(0,uo._)("div",cd,[(0,uo._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=function(){return e.deleteMessage&&e.deleteMessage.apply(e,arguments)})},[(0,uo.Wm)(c,{icon:"times"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("chats.delete")),1)])])]})),trigger:(0,uo.w5)((function(){return[(0,uo._)("button",{class:"button-default menu-icon",title:e.$t("chats.more")},[(0,uo.Wm)(c,{icon:"ellipsis-h"})],8,ld)]})),_:1},8,["margin"])],2),(0,uo.Wm)(u,{class:"message-content",status:e.messageForStatusContent,"full-content":!0},{footer:(0,uo.w5)((function(){return[(0,uo._)("span",ud,(0,po.zw)(e.createdAt),1)]})),_:1},8,["status"])],34)],4)])],2)],34)):((0,uo.wg)(),(0,uo.iD)("div",dd,[(0,uo.Wm)(d,{date:e.chatViewItem.date},null,8,["date"])]))}]]);var kd=function(){return{scrollTop:window.scrollY,scrollHeight:document.documentElement.scrollHeight,offsetHeight:window.innerHeight}};function Sd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function jd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sd(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.ptq,Nt.A35);var Cd={components:{ChatMessage:_d,ChatTitle:Iu,PostStatusForm:yr.Z},data:function(){return{jumpToBottomButtonVisible:!1,hoveredMessageChainId:void 0,lastScrollPosition:{},scrollableContainerHeight:"100%",errorLoadingChat:!1,messageRetriers:{}}},created:function(){this.startFetching(),window.addEventListener("resize",this.handleResize)},mounted:function(){var e=this;window.addEventListener("scroll",this.handleScroll),void 0!==document.hidden&&document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$nextTick((function(){e.handleResize()}))},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("resize",this.handleResize),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.dispatch("clearCurrentChat")},computed:jd(jd({recipient:function(){return this.currentChat&&this.currentChat.account},recipientId:function(){return this.$route.params.recipient_id},formPlaceholder:function(){return this.recipient?this.$t("chats.message_user",{nickname:this.recipient.screen_name_ui}):""},chatViewItems:function(){return En.getView(this.currentChatMessageService)},newMessageCount:function(){return this.currentChatMessageService&&this.currentChatMessageService.newMessageCount},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===h._z.JOINED}},(0,s.Se)(["currentChat","currentChatMessageService","findOpenedChatByRecipientId","mergedConfig"])),(0,s.rn)({backendInteractor:function(e){return e.api.backendInteractor},mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus},mobileLayout:function(e){return"mobile"===e.interface.layoutType},currentUser:function(e){return e.users.currentUser}})),watch:{chatViewItems:function(){var e=this,t=this.bottomedOut(10);this.$nextTick((function(){t&&e.scrollDown()}))},$route:function(){this.startFetching()},mastoUserSocketStatus:function(e){e===h._z.JOINED&&this.fetchChat({isFirstFetch:!0})}},methods:{onMessageHover:function(e){var t=e.isHovered,n=e.messageChainId;this.hoveredMessageChainId=t?n:void 0},onFilesDropped:function(){var e=this;this.$nextTick((function(){e.handleResize()}))},handleVisibilityChange:function(){var e=this;this.$nextTick((function(){!document.hidden&&e.bottomedOut(10)&&e.scrollDown({forceRead:!0})}))},handleResize:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.delayed,o=void 0!==n&&n;o?setTimeout((function(){e.handleResize(jd(jd({},t),{},{delayed:!1}))}),100):this.$nextTick((function(){var t=kd().offsetHeight,n=(void 0===t?void 0:t)-e.lastScrollPosition.offsetHeight;0===n||e.bottomedOut()||e.$nextTick((function(){window.scrollBy({top:-Math.trunc(n)})})),e.lastScrollPosition=kd()}))},scrollDown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.behavior,n=void 0===t?"auto":t,o=e.forceRead,r=void 0!==o&&o;this.$nextTick((function(){window.scrollTo({top:document.documentElement.scrollHeight,behavior:n})})),r&&this.readChat()},readChat:function(){if(this.currentChatMessageService&&this.currentChatMessageService.maxId&&!document.hidden){var e=this.currentChatMessageService.maxId;this.$store.dispatch("readChat",{id:this.currentChat.id,lastReadId:e})}},bottomedOut:function(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=window.scrollY+e;return document.documentElement.scrollHeight-window.innerHeight<=t}(e)},reachedTop:function(){return window.scrollY<=0},cullOlderCheck:function(){var e=this;window.setTimeout((function(){e.bottomedOut(10)&&e.$store.dispatch("cullOlderMessages",e.currentChatMessageService.chatId)}),5e3)},handleScroll:Ic()((function(){var e=this;this.lastScrollPosition=kd(),this.currentChat&&(this.reachedTop()?this.fetchChat({maxId:this.currentChatMessageService.minId}):this.bottomedOut(10)?(this.jumpToBottomButtonVisible=!1,this.cullOlderCheck(),this.newMessageCount>0&&window.setTimeout((function(){e.$el&&e.readChat()}),1500)):this.jumpToBottomButtonVisible=!0)}),200),handleScrollUp:function(e){var t,n,o=kd();window.scrollTo({top:(t=e,n=o,t.scrollTop+(n.scrollHeight-t.scrollHeight))})},fetchChat:function(e){var t=this,n=e.isFirstFetch,o=void 0!==n&&n,r=e.fetchLatest,i=void 0!==r&&r,s=e.maxId,a=this.currentChatMessageService;if(a&&(!i||!this.streamingEnabled)){var c=a.chatId,l=!!s,u=i&&a.maxId;return this.backendInteractor.chatMessages({id:c,maxId:s,sinceId:u}).then((function(e){o&&En.clear(a);var n=kd();t.$store.dispatch("addChatMessages",{chatId:c,messages:e}).then((function(){t.$nextTick((function(){l&&t.handleScrollUp(n),!(document.documentElement.scrollHeight>window.innerHeight)&&e.length>0&&t.fetchChat({maxId:t.currentChatMessageService.minId})}))}))}))}},startFetching:function(){var e=this;return(0,o.Z)(i().mark((function t(){var n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.findOpenedChatByRecipientId(e.recipientId)){t.next=12;break}return t.prev=2,t.next=5,e.backendInteractor.getOrCreateChat({accountId:e.recipientId});case 5:n=t.sent,t.next=12;break;case 8:t.prev=8,t.t0=t.catch(2),console.error("Error creating or getting a chat",t.t0),e.errorLoadingChat=!0;case 12:n&&(e.$nextTick((function(){e.scrollDown({forceRead:!0})})),e.$store.dispatch("addOpenedChat",{chat:n}),e.doStartFetching());case 13:case"end":return t.stop()}}),t,null,[[2,8]])})))()},doStartFetching:function(){var e=this;this.$store.dispatch("startFetchingCurrentChat",{fetcher:function(){return(0,je.F)((function(){return e.fetchChat({fetchLatest:!0})}),5e3)}}),this.fetchChat({isFirstFetch:!0})},handleAttachmentPosting:function(){var e=this;this.$nextTick((function(){e.handleResize(),e.scrollDown({forceRead:!0})}))},sendMessage:function(e){var t=this,n=e.status,o=e.media,r=e.idempotencyKey,i={id:this.currentChat.id,content:n,idempotencyKey:r};o[0]&&(i.mediaId=o[0].id);var s=function(e){var t=e.attachments,n=e.userId,o=e.idempotencyKey,r={content:e.content,chat_id:e.chatId,created_at:new Date,id:"".concat((new Date).getTime()),attachments:t,account_id:n,idempotency_key:o,emojis:[],pending:!0,isNormalized:!0};return t[0]&&(r.attachment=t[0]),r}({attachments:o,chatId:this.currentChat.id,content:n,userId:this.currentUser.id,idempotencyKey:r});return this.$store.dispatch("addChatMessages",{chatId:this.currentChat.id,messages:[s]}).then((function(){t.handleAttachmentPosting()})),this.doSendMessage({params:i,fakeMessage:s,retriesLeft:10})},doSendMessage:function(e){var t=this,n=e.params,o=e.fakeMessage,r=e.retriesLeft,i=void 0===r?10:r;if(!(i<=0))return this.backendInteractor.sendChatMessage(n).then((function(e){return t.$store.dispatch("addChatMessages",{chatId:t.currentChat.id,updateMaxId:!1,messages:[jd(jd({},e),{},{fakeId:o.id})]}),e})).catch((function(e){return console.error("Error sending message",e),t.$store.dispatch("handleMessageError",{chatId:t.currentChat.id,fakeId:o.id,isRetry:10!==i}),(e.statusCode>=500&&e.statusCode<600||"Failed to fetch"===e.message)&&(t.messageRetriers[o.id]=setTimeout((function(){t.doSendMessage({params:n,fakeMessage:o,retriesLeft:i-1})}),1e3*Math.pow(2,10-i))),{}})),Promise.resolve(o)},goBack:function(){this.$router.push({name:"chats",params:{username:this.currentUser.screen_name}})}}};const Od=Cd,Pd=(0,Eo.Z)(Od,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("ChatTitle"),c=(0,uo.up)("ChatMessage"),l=(0,uo.up)("PostStatusForm");return(0,uo.wg)(),(0,uo.iD)("div",Ju,[(0,uo._)("div",Qu,[(0,uo._)("div",Xu,[(0,uo._)("div",ed,[(0,uo._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,uo.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,uo._)("div",td,[(0,uo.Wm)(a,{user:e.recipient,"with-avatar":!0},null,8,["user"])])],512),(0,uo._)("div",{class:"message-list",style:(0,po.j5)({height:e.scrollableContainerHeight})},[e.errorLoadingChat?((0,uo.wg)(),(0,uo.iD)("div",nd,[(0,uo._)("div",od,(0,po.zw)(e.$t("chats.error_loading_chat")),1)])):((0,uo.wg)(!0),(0,uo.iD)(uo.HY,{key:0},(0,uo.Ko)(e.chatViewItems,(function(t){return(0,uo.wg)(),(0,uo.j4)(c,{key:t.id,author:e.recipient,"chat-view-item":t,"hovered-message-chain":t.messageChainId===e.hoveredMessageChainId,onHover:e.onMessageHover},null,8,["author","chat-view-item","hovered-message-chain","onHover"])})),128))],4),(0,uo._)("div",rd,[(0,uo._)("div",{class:(0,po.C_)(["jump-to-bottom-button",{visible:e.jumpToBottomButtonVisible}]),onClick:t[1]||(t[1]=function(t){return e.scrollDown({behavior:"smooth"})})},[(0,uo._)("span",null,[(0,uo.Wm)(s,{icon:"chevron-down"}),e.newMessageCount?((0,uo.wg)(),(0,uo.iD)("div",id,(0,po.zw)(e.newMessageCount),1)):(0,uo.kq)("",!0)])],2),(0,uo.Wm)(l,{"disable-subject":!0,"disable-scope-selector":!0,"disable-notice":!0,"disable-lock-warning":!0,"disable-polls":!0,"disable-sensitivity-checkbox":!0,"disable-submit":e.errorLoadingChat||!e.currentChat,"disable-preview":!0,"optimistic-posting":!0,"post-handler":e.sendMessage,"submit-on-enter":!e.mobileLayout,"preserve-focus":!e.mobileLayout,"auto-focus":!e.mobileLayout,placeholder:e.formPlaceholder,"file-limit":1,"max-height":"160","emoji-picker-placement":"top",onResize:e.handleResize},null,8,["disable-submit","post-handler","submit-on-enter","preserve-focus","auto-focus","placeholder","onResize"])],512)],512)])])}]]);var zd={key:0,class:"user-profile panel panel-default"},Dd={key:0,class:"user-birthday"},Id={key:1,class:"user-profile-fields"},xd=["title"],Td=["title"],$d=["label","disabled"],Ud=["label","disabled"],Md={key:1,class:"panel user-profile-placeholder"},Ad={class:"panel-heading"},Ld={class:"title"},Ed={class:"panel-body"},Fd={key:0},Rd={class:"follow-card-content-container"},qd={key:0,class:"faint"},Nd={key:0,class:"follow-card-follow-button"},Zd=n(72895),Wd=n(34837),Bd=["disabled","title"],Hd=["textContent"];const Vd={props:["user","relationship"],data:function(){return{inProgress:!1,showingConfirmRemoveFollower:!1}},components:{ConfirmModal:ca.Z},computed:{label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.$t("user_card.remove_follower")},shouldConfirmRemoveUserFromFollowers:function(){return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers}},methods:{showConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!0},hideConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!1},onClick:function(){this.shouldConfirmRemoveUserFromFollowers?this.showConfirmRemoveUserFromFollowers():this.doRemoveUserFromFollowers()},doRemoveUserFromFollowers:function(){var e=this;this.inProgress=!0,this.$store.dispatch("removeUserFromFollowers",this.relationship.id).then((function(){e.inProgress=!1})),this.hideConfirmRemoveUserFromFollowers()}}},Kd=(0,Eo.Z)(Vd,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("i18n-t"),a=(0,uo.up)("confirm-modal");return(0,uo.wg)(),(0,uo.iD)("button",{class:(0,po.C_)(["btn button-default follow-button",{toggled:e.inProgress}]),disabled:e.inProgress,title:e.$t("user_card.remove_follower"),onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[(0,uo.Uk)((0,po.zw)(e.label)+" ",1),((0,uo.wg)(),(0,uo.j4)(uo.lR,{to:"#modal"},[e.showingConfirmRemoveFollower?((0,uo.wg)(),(0,uo.j4)(a,{key:0,title:e.$t("user_card.remove_follower_confirm_title"),"confirm-text":e.$t("user_card.remove_follower_confirm_accept_button"),"cancel-text":e.$t("user_card.remove_follower_confirm_cancel_button"),onAccepted:e.doRemoveUserFromFollowers,onCancelled:e.hideConfirmRemoveUserFromFollowers},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(s,{keypath:"user_card.remove_follower_confirm",tag:"span"},{user:(0,uo.w5)((function(){return[(0,uo._)("span",{textContent:(0,po.zw)(e.user.screen_name_ui)},null,8,Hd)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,uo.kq)("",!0)]))],10,Bd)}]]),Gd={props:["user","noFollowsYou"],components:{BasicUserCard:qu.Z,RemoteFollow:Zd.Z,FollowButton:Wd.Z,RemoveFollowerButton:Kd},computed:{isMe:function(){return this.$store.state.users.currentUser.id===this.user.id},loggedIn:function(){return this.$store.state.users.currentUser},relationship:function(){return this.$store.getters.relationship(this.user.id)}}},Yd=(0,Eo.Z)(Gd,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("RemoteFollow"),a=(0,uo.up)("FollowButton"),c=(0,uo.up)("RemoveFollowerButton"),l=(0,uo.up)("basic-user-card");return(0,uo.wg)(),(0,uo.j4)(l,{user:e.user},{default:(0,uo.w5)((function(){return[(0,uo._)("div",Rd,[e.isMe||!e.noFollowsYou&&e.relationship.followed_by?((0,uo.wg)(),(0,uo.iD)("span",qd,(0,po.zw)(e.isMe?e.$t("user_card.its_you"):e.$t("user_card.follows_you")),1)):(0,uo.kq)("",!0),e.loggedIn?e.isMe?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:2},[(0,uo.Wm)(a,{relationship:e.relationship,"label-following":e.$t("user_card.follow_unfollow"),class:"follow-card-follow-button",user:e.user},null,8,["relationship","label-following","user"]),e.noFollowsYou&&e.relationship.followed_by?((0,uo.wg)(),(0,uo.j4)(c,{key:0,user:e.user,relationship:e.relationship,class:"follow-card-button"},null,8,["user","relationship"])):(0,uo.kq)("",!0)],64)):((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:1},[e.relationship.following?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",Nd,[(0,uo.Wm)(s,{user:e.user},null,8,["user"])]))],64))])]})),_:1},8,["user"])}]]);var Jd=n(41609),Qd=n.n(Jd),Xd=n(13562);function ep(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function tp(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ep(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ep(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.IJ7);const np=function(e){var t=e.fetch,n=e.select,o=e.unmounted,r=e.childPropName,i=void 0===r?"entries":r,s=e.additionalPropNames,a=void 0===s?[]:s;return function(e){return{props:Object.keys((0,Xd.g)(e)).filter((function(e){return e!==i})).concat(a),data:function(){return{loading:!1,bottomedOut:!1,error:!1,entries:[]}},created:function(){window.addEventListener("scroll",this.scrollLoad),0===this.entries.length&&this.fetchEntries()},unmounted:function(){window.removeEventListener("scroll",this.scrollLoad),o&&o(this.$props,this.$store)},methods:{updateEntries:function(){this.entries=n(this.$props,this.$store)||[]},fetchEntries:function(){var e=this;this.loading||(this.loading=!0,this.error=!1,t(this.$props,this.$store).then((function(t){e.loading=!1,e.bottomedOut=Qd()(t)})).catch((function(){e.loading=!1,e.error=!0})).finally((function(){e.updateEntries()})))},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.loading&&!1===this.bottomedOut&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchEntries()}},render:function(){var t,n=tp(tp({},this.$props),{},(0,d.Z)({},i,this.entries)),o=this.$slots;return(0,uo.Wm)("div",{class:"with-load-more"},[(0,uo.Wm)(e,n,(t=o,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!(0,uo.lA)(t)?o:{default:function(){return[o]}})),(0,uo.Wm)("div",{class:"with-load-more-footer"},[this.error&&(0,uo.Wm)("button",{onClick:this.fetchEntries,class:"button-unstyled -link -fullwidth alert error"},[this.$t("general.generic_error")]),!this.error&&this.loading&&(0,uo.Wm)(lo.GN,{spin:!0,icon:"circle-notch"},null),!this.error&&!this.loading&&!this.bottomedOut&&(0,uo.Wm)("a",{onClick:this.fetchEntries},[this.$t("general.more")])])])}}}};qt.vI.add(Nt.IJ7,Nt.xiy);var op=np({fetch:function(e,t){return t.dispatch("fetchFollowers",e.userId)},select:function(e,t){return Tt()(t.getters.findUser(e.userId),"followerIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFollowers",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(Na.Z),rp=np({fetch:function(e,t){return t.dispatch("fetchFriends",e.userId)},select:function(e,t){return Tt()(t.getters.findUser(e.userId),"friendIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFriends",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(Na.Z),ip="statuses";const sp={data:function(){return{error:!1,userId:null,tab:ip,footerRef:null}},created:function(){var e=this.$route.params;this.load({name:e.name,id:e.id}),this.tab=Tt()(this.$route,"query.tab",ip)},unmounted:function(){this.stopFetching()},computed:{timeline:function(){return this.$store.state.statuses.timelines.user},favorites:function(){return this.$store.state.statuses.timelines.favorites},media:function(){return this.$store.state.statuses.timelines.media},isUs:function(){return this.userId&&this.$store.state.users.currentUser.id&&this.userId===this.$store.state.users.currentUser.id},user:function(){return this.$store.getters.findUser(this.userId)},isExternal:function(){return"external-user-profile"===this.$route.name},followsTabVisible:function(){return this.isUs||!this.user.hide_follows},followersTabVisible:function(){return this.isUs||!this.user.hide_followers},formattedBirthday:function(){var e=fd.Z.internalToBrowserLocale(this.$i18n.locale);return this.user.birthday&&new Date(Date.parse(this.user.birthday)).toLocaleDateString(e,{timeZone:"UTC",day:"numeric",month:"long",year:"numeric"})}},methods:{setFooterRef:function(e){this.footerRef=e},load:function(e){var t=this,n=function(e,n){n!==t.$store.state.statuses.timelines[e].userId&&t.$store.commit("clearTimeline",{timeline:e}),t.$store.dispatch("startFetchingTimeline",{timeline:e,userId:n})},o=function(e){t.userId=e,n("user",e),n("media",e),t.isUs&&n("favorites",e),t.$store.dispatch("fetchPinnedStatuses",e)};this.userId=null,this.error=!1;var r=e.id,i=e.name,s=r?this.$store.getters.findUser(r):this.$store.getters.findUserByName(i);s?o(s.id):(r?this.$store.dispatch("fetchUser",r):this.$store.dispatch("fetchUserByName",i)).then((function(e){var t=e.id;return o(t)})).catch((function(e){var n=Tt()(e,"error.error");t.error="No user with such user_id"===n?t.$t("user_profile.profile_does_not_exist"):n||t.$t("user_profile.profile_loading_error")}))},stopFetching:function(){this.$store.dispatch("stopFetchingTimeline","user"),this.$store.dispatch("stopFetchingTimeline","favorites"),this.$store.dispatch("stopFetchingTimeline","media")},switchUser:function(e){this.stopFetching(),this.load(e)},onTabSwitch:function(e){this.tab=e,this.$router.replace({query:{tab:e}})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")}},watch:{"$route.params.id":function(e){e&&this.switchUser({id:e})},"$route.params.name":function(e){e&&this.switchUser({name:e})},"$route.query":function(e){this.tab=e.tab||ip}},components:{UserCard:_r.Z,Timeline:Ul,FollowerList:op,FriendList:rp,FollowCard:Yd,TabSwitcher:nu.Z,Conversation:Sl,RichContent:zu.Z}},ap=(0,Eo.Z)(sp,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("UserCard"),a=(0,uo.up)("FAIcon"),c=(0,uo.up)("RichContent"),l=(0,uo.up)("Timeline"),u=(0,uo.up)("FollowCard"),d=(0,uo.up)("FriendList"),p=(0,uo.up)("FollowerList"),m=(0,uo.up)("tab-switcher");return(0,uo.wg)(),(0,uo.iD)("div",null,[e.user?((0,uo.wg)(),(0,uo.iD)("div",zd,[(0,uo.Wm)(s,{"user-id":e.userId,switcher:!0,selected:e.timeline.viewing,"avatar-action":"zoom",rounded:"top","has-note-editor":!0},null,8,["user-id","selected"]),e.user.birthday?((0,uo.wg)(),(0,uo.iD)("span",Dd,[(0,uo.Wm)(a,{class:"fa-old-padding",icon:"birthday-cake"}),(0,uo.Uk)(" "+(0,po.zw)(e.$t("user_card.birthday",{birthday:e.formattedBirthday})),1)])):(0,uo.kq)("",!0),e.user.fields_html&&e.user.fields_html.length>0?((0,uo.wg)(),(0,uo.iD)("div",Id,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.user.fields_html,(function(t,n){return(0,uo.wg)(),(0,uo.iD)("dl",{key:n,class:"user-profile-field"},[(0,uo._)("dt",{title:e.user.fields_text[n].name,class:"user-profile-field-name"},[(0,uo.Wm)(c,{html:t.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,xd),(0,uo._)("dd",{title:e.user.fields_text[n].value,class:"user-profile-field-value"},[(0,uo.Wm)(c,{html:t.value,emoji:e.user.emoji},null,8,["html","emoji"])],8,Td)])})),128))])):(0,uo.kq)("",!0),(0,uo.Wm)(m,{"active-tab":e.tab,"render-only-focused":!0,"on-switch":e.onTabSwitch},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(l,{key:"statuses",label:e.$t("user_card.statuses"),count:e.user.statuses_count,embedded:!0,title:e.$t("user_profile.timeline_title"),timeline:e.timeline,"timeline-name":"user","user-id":e.userId,"pinned-status-ids":e.user.pinnedStatusIds,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","count","title","timeline","user-id","pinned-status-ids","footer-slipgate"]),e.followsTabVisible?((0,uo.wg)(),(0,uo.iD)("div",{key:"followees",label:e.$t("user_card.followees"),disabled:!e.user.friends_count},[(0,uo.Wm)(d,{"user-id":e.userId},{item:(0,uo.w5)((function(e){var t=e.item;return[(0,uo.Wm)(u,{user:t},null,8,["user"])]})),_:1},8,["user-id"])],8,$d)):(0,uo.kq)("",!0),e.followersTabVisible?((0,uo.wg)(),(0,uo.iD)("div",{key:"followers",label:e.$t("user_card.followers"),disabled:!e.user.followers_count},[(0,uo.Wm)(p,{"user-id":e.userId},{item:(0,uo.w5)((function(t){var n=t.item;return[(0,uo.Wm)(u,{user:n,"no-follows-you":e.isUs},null,8,["user","no-follows-you"])]})),_:1},8,["user-id"])],8,Ud)):(0,uo.kq)("",!0),(0,uo.Wm)(l,{key:"media",label:e.$t("user_card.media"),disabled:!e.media.visibleStatuses.length,embedded:!0,title:e.$t("user_card.media"),"timeline-name":"media",timeline:e.media,"user-id":e.userId,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","user-id","footer-slipgate"]),e.isUs?((0,uo.wg)(),(0,uo.j4)(l,{key:"favorites",label:e.$t("user_card.favorites"),disabled:!e.favorites.visibleStatuses.length,embedded:!0,title:e.$t("user_card.favorites"),"timeline-name":"favorites",timeline:e.favorites,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","footer-slipgate"])):(0,uo.kq)("",!0)]})),_:1},8,["active-tab","on-switch"]),(0,uo._)("div",{ref:e.setFooterRef,class:"panel-footer"},null,512)])):((0,uo.wg)(),(0,uo.iD)("div",Md,[(0,uo._)("div",Ad,[(0,uo._)("div",Ld,(0,po.zw)(e.$t("settings.profile_tab")),1)]),(0,uo._)("div",Ed,[e.error?((0,uo.wg)(),(0,uo.iD)("span",Fd,(0,po.zw)(e.error),1)):((0,uo.wg)(),(0,uo.j4)(a,{key:1,spin:"",icon:"circle-notch"}))])]))])}]]);var cp={class:"panel panel-default"},lp={class:"panel-heading"},up={class:"title"},dp={class:"search-input-container"},pp=["placeholder"],mp={key:0,class:"text-center loading-icon"},hp={key:1},fp={class:"search-nav-heading"},gp=["label"],vp=["label"],wp=["label"],bp={class:"panel-body"},yp={key:0},_p={class:"new-status-notification text-center"},kp={key:1,class:"text-center loading-icon"},Sp={key:2,class:"search-result-heading"},jp={key:1},Cp={key:0,class:"search-result-heading"},Op={key:2},Pp={key:0,class:"search-result-heading"},zp={class:"hashtag"},Dp={key:0},Ip={key:0},xp={key:1},Tp={key:0,class:"count"},$p=(0,uo._)("div",{class:"search-result-footer text-center panel-footer faint"},null,-1),Up=n(45578),Mp=n.n(Up);qt.vI.add(Nt.IJ7,Nt.wn1);const Ap={components:{FollowCard:Yd,Conversation:Sl,Status:qa.default,TabSwitcher:nu.Z},props:["query"],data:function(){return{loaded:!1,loading:!1,searchTerm:this.query||"",userIds:[],statuses:[],hashtags:[],currenResultTab:"statuses",statusesOffset:0,lastStatusFetchCount:0,lastQuery:""}},computed:{users:function(){var e=this;return this.userIds.map((function(t){return e.$store.getters.findUser(t)}))},visibleStatuses:function(){var e=this.$store.state.statuses.allStatusesObject;return this.statuses.filter((function(t){return e[t.id]&&!e[t.id].deleted}))}},mounted:function(){this.search(this.query)},watch:{query:function(e){this.searchTerm=e,this.search(e)}},methods:{newQuery:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},search:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e?(this.loading=!0,this.$refs.searchInput.blur(),this.lastQuery!==e&&(this.userIds=[],this.hashtags=[],this.statuses=[],this.statusesOffset=0,this.lastStatusFetchCount=0),this.$store.dispatch("search",{q:e,resolve:!0,offset:this.statusesOffset,type:n}).then((function(n){t.loading=!1;var o=t.statuses.length;t.userIds=t.userIds.concat(be()(n.accounts,"id")),t.statuses=Mp()(t.statuses.concat(n.statuses),"id"),t.hashtags=t.hashtags.concat(n.hashtags),t.currenResultTab=t.getActiveTab(),t.loaded=!0,t.statusesOffset=t.statuses.length,t.lastStatusFetchCount=t.statuses.length-o,t.lastQuery=e}))):this.loading=!1},resultCount:function(e){var t=this[e].length;return 0===t?"":" (".concat(t,")")},onResultTabSwitch:function(e){this.currenResultTab=e},getActiveTab:function(){return this.visibleStatuses.length>0?"statuses":this.users.length>0?"people":this.hashtags.length>0?"hashtags":"statuses"},lastHistoryRecord:function(e){return e.history&&e.history[0]}}},Lp=(0,Eo.Z)(Ap,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("tab-switcher"),c=(0,uo.up)("Status"),l=(0,uo.up)("FollowCard"),u=(0,uo.up)("router-link");return(0,uo.wg)(),(0,uo.iD)("div",cp,[(0,uo._)("div",lp,[(0,uo._)("div",up,(0,po.zw)(e.$t("nav.search")),1)]),(0,uo._)("div",dp,[(0,uo.wy)((0,uo._)("input",{ref:"searchInput","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.searchTerm=t}),class:"search-input",placeholder:e.$t("nav.search"),onKeyup:t[1]||(t[1]=(0,ro.D2)((function(t){return e.newQuery(e.searchTerm)}),["enter"]))},null,40,pp),[[ro.nr,e.searchTerm]]),(0,uo._)("button",{class:"btn button-default search-button",type:"submit",onClick:t[2]||(t[2]=function(t){return e.newQuery(e.searchTerm)})},[(0,uo.Wm)(s,{icon:"search"})])]),e.loading&&0==e.statusesOffset?((0,uo.wg)(),(0,uo.iD)("div",mp,[(0,uo.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):e.loaded?((0,uo.wg)(),(0,uo.iD)("div",hp,[(0,uo._)("div",fp,[(0,uo.Wm)(a,{ref:"tabSwitcher","on-switch":e.onResultTabSwitch,"active-tab":e.currenResultTab},{default:(0,uo.w5)((function(){return[(0,uo._)("span",{key:"statuses",label:e.$t("user_card.statuses")+e.resultCount("visibleStatuses")},null,8,gp),(0,uo._)("span",{key:"people",label:e.$t("search.people")+e.resultCount("users")},null,8,vp),(0,uo._)("span",{key:"hashtags",label:e.$t("search.hashtags")+e.resultCount("hashtags")},null,8,wp)]})),_:1},8,["on-switch","active-tab"])])])):(0,uo.kq)("",!0),(0,uo._)("div",bp,["statuses"===e.currenResultTab?((0,uo.wg)(),(0,uo.iD)("div",yp,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.visibleStatuses,(function(e){return(0,uo.wg)(),(0,uo.j4)(c,{key:e.id,collapsable:!1,expandable:!1,compact:!1,class:"search-result",statusoid:e,"no-heading":!1},null,8,["statusoid"])})),128)),!e.loading&&e.loaded&&e.lastStatusFetchCount>0?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"more-statuses-button button-unstyled -link -fullwidth",onClick:t[3]||(t[3]=(0,ro.iM)((function(t){return e.search(e.searchTerm,"statuses")}),["prevent"]))},[(0,uo._)("div",_p,(0,po.zw)(e.$t("search.load_more")),1)])):e.loading&&e.statusesOffset>0?((0,uo.wg)(),(0,uo.iD)("div",kp,[(0,uo.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):(0,uo.kq)("",!0),0!==e.visibleStatuses.length&&0!==e.lastStatusFetchCount||e.loading||!e.loaded?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",Sp,[(0,uo._)("h4",null,(0,po.zw)(0===e.visibleStatuses.length?e.$t("search.no_results"):e.$t("search.no_more_results")),1)]))])):"people"===e.currenResultTab?((0,uo.wg)(),(0,uo.iD)("div",jp,[0===e.users.length&&!e.loading&&e.loaded?((0,uo.wg)(),(0,uo.iD)("div",Cp,[(0,uo._)("h4",null,(0,po.zw)(e.$t("search.no_results")),1)])):(0,uo.kq)("",!0),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.users,(function(e){return(0,uo.wg)(),(0,uo.j4)(l,{key:e.id,user:e,class:"list-item search-result"},null,8,["user"])})),128))])):"hashtags"===e.currenResultTab?((0,uo.wg)(),(0,uo.iD)("div",Op,[0===e.hashtags.length&&!e.loading&&e.loaded?((0,uo.wg)(),(0,uo.iD)("div",Pp,[(0,uo._)("h4",null,(0,po.zw)(e.$t("search.no_results")),1)])):(0,uo.kq)("",!0),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.hashtags,(function(t){return(0,uo.wg)(),(0,uo.iD)("div",{key:t.url,class:"status trend search-result"},[(0,uo._)("div",zp,[(0,uo.Wm)(u,{to:{name:"tag-timeline",params:{tag:t.name}}},{default:(0,uo.w5)((function(){return[(0,uo.Uk)(" #"+(0,po.zw)(t.name),1)]})),_:2},1032,["to"]),e.lastHistoryRecord(t)?((0,uo.wg)(),(0,uo.iD)("div",Dp,[1==e.lastHistoryRecord(t).accounts?((0,uo.wg)(),(0,uo.iD)("span",Ip,(0,po.zw)(e.$t("search.person_talking",{count:e.lastHistoryRecord(t).accounts})),1)):((0,uo.wg)(),(0,uo.iD)("span",xp,(0,po.zw)(e.$t("search.people_talking",{count:e.lastHistoryRecord(t).accounts})),1))])):(0,uo.kq)("",!0)]),e.lastHistoryRecord(t)?((0,uo.wg)(),(0,uo.iD)("div",Tp,(0,po.zw)(e.lastHistoryRecord(t).uses),1)):(0,uo.kq)("",!0)])})),128))])):(0,uo.kq)("",!0)]),$p])}]]);var Ep={class:"settings panel panel-default"},Fp={class:"panel-heading"},Rp={class:"panel-body"},qp={class:"container"},Np={class:"text-fields"},Zp={class:"form--label",for:"sign-up-username"},Wp=["disabled","placeholder"],Bp={key:0,class:"form-error"},Hp={key:0},Vp={class:"form--label",for:"sign-up-fullname"},Kp=["disabled","placeholder"],Gp={key:1,class:"form-error"},Yp={key:0},Jp={class:"form--label",for:"email"},Qp=["disabled","aria-required"],Xp={key:2,class:"form-error"},em={key:0},tm={class:"form-group"},nm={class:"form--label",for:"bio"},om=["disabled","placeholder"],rm={class:"form--label",for:"sign-up-password"},im=["disabled"],sm={key:3,class:"form-error"},am={key:0},cm={class:"form--label",for:"sign-up-password-confirmation"},lm=["disabled"],um={key:4,class:"form-error"},dm={key:0},pm={key:1},mm={class:"form--label",for:"sign-up-birthday"},hm=["disabled","max","aria-required"],fm={key:5,class:"form-error"},gm={key:0},vm={key:1},wm={key:6,class:"form-group"},bm={class:"form--label",for:"reason"},ym=["disabled","placeholder"],_m={key:7,id:"captcha-group",class:"form-group"},km={class:"form--label",for:"captcha-label"},Sm=["src"],jm=["disabled"],Cm={key:8,class:"form-group"},Om={for:"token"},Pm={class:"form-group"},zm=["disabled"],Dm=["innerHTML"],Im={key:0,class:"form-group"},xm={class:"alert error"},Tm=n(54028),$m=n(35332),Um=n(73414),Mm=n(27483);function Am(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Lm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Am(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Am(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Em={setup:function(){return{v$:(0,Tm.ZP)()}},data:function(){return{user:{email:"",fullname:"",username:"",password:"",confirm:"",birthday:"",reason:"",language:[""]},captcha:{}}},components:{InterfaceLanguageSwitcher:Um.Z},validations:function(){var e=this;return{user:{email:{required:(0,$m.CF)((function(){return e.accountActivationRequired}))},username:{required:$m.C1},fullname:{required:$m.C1},password:{required:$m.C1},confirm:{required:$m.C1,sameAs:(0,$m.sH)(this.user.password)},birthday:{required:(0,$m.CF)((function(){return e.birthdayRequired})),maxValue:function(t){return!e.birthdayRequired||new Date(t).getTime()<=e.birthdayMin.getTime()}},reason:{required:(0,$m.CF)((function(){return e.accountApprovalRequired}))},language:{}}}},created:function(){(!this.registrationOpen&&!this.token||this.signedIn)&&this.$router.push({name:"root"}),this.setCaptcha()},computed:Lm({token:function(){return this.$route.params.token},bioPlaceholder:function(){return this.replaceNewlines(this.$t("registration.bio_placeholder"))},reasonPlaceholder:function(){return this.replaceNewlines(this.$t("registration.reason_placeholder"))},birthdayMin:function(){var e=this.birthdayMinAge,t=new Date;t.setUTCMilliseconds(0),t.setUTCSeconds(0),t.setUTCMinutes(0),t.setUTCHours(0);var n=new Date;return n.setTime(t.getTime()-e*Mm.x4),n},birthdayMinAttr:function(){return this.birthdayMin.toJSON().replace(/T.+$/,"")},birthdayMinFormatted:function(){var e=fd.Z.internalToBrowserLocale(this.$i18n.locale);return this.user.birthday&&new Date(Date.parse(this.birthdayMin)).toLocaleDateString(e,{timeZone:"UTC",day:"numeric",month:"long",year:"numeric"})}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},signedIn:function(e){return!!e.users.currentUser},isPending:function(e){return e.users.signUpPending},serverValidationErrors:function(e){return e.users.signUpErrors},termsOfService:function(e){return e.instance.tos},accountActivationRequired:function(e){return e.instance.accountActivationRequired},accountApprovalRequired:function(e){return e.instance.accountApprovalRequired},birthdayRequired:function(e){return e.instance.birthdayRequired},birthdayMinAge:function(e){return e.instance.birthdayMinAge}})),methods:Lm(Lm({},(0,s.nv)(["signUp","getCaptcha"])),{},{submit:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.user.nickname=e.user.username,e.user.token=e.token,e.user.captcha_solution=e.captcha.solution,e.user.captcha_token=e.captcha.token,e.user.captcha_answer_data=e.captcha.answer_data,e.user.language&&(e.user.language=fd.Z.internalToBackendLocaleMulti(e.user.language.filter((function(e){return e})))),e.v$.$touch(),e.v$.$invalid){t.next=18;break}return t.prev=8,t.next=11,e.signUp(e.user);case 11:e.$router.push({name:"friends"}),t.next=18;break;case 14:t.prev=14,t.t0=t.catch(8),console.warn("Registration failed: ",t.t0),e.setCaptcha();case 18:case"end":return t.stop()}}),t,null,[[8,14]])})))()},setCaptcha:function(){var e=this;this.getCaptcha().then((function(t){e.captcha=t}))},replaceNewlines:function(e){return e.replace(/\s*\n\s*/g," \n")}})},Fm=(0,Eo.Z)(Em,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("interface-language-switcher");return(0,uo.wg)(),(0,uo.iD)("div",Ep,[(0,uo._)("div",Fp,(0,po.zw)(e.$t("registration.registration")),1),(0,uo._)("div",Rp,[(0,uo._)("form",{class:"registration-form",onSubmit:t[12]||(t[12]=(0,ro.iM)((function(t){return e.submit(e.user)}),["prevent"]))},[(0,uo._)("div",qp,[(0,uo._)("div",Np,[(0,uo._)("div",{class:(0,po.C_)(["form-group",{"form-group--error":e.v$.user.username.$error}])},[(0,uo._)("label",Zp,(0,po.zw)(e.$t("login.username")),1),(0,uo.wy)((0,uo._)("input",{id:"sign-up-username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.v$.user.username.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.username_placeholder")},null,8,Wp),[[ro.nr,e.v$.user.username.$model,void 0,{trim:!0}]])],2),e.v$.user.username.$dirty?((0,uo.wg)(),(0,uo.iD)("div",Bp,[(0,uo._)("ul",null,[e.v$.user.username.required?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("li",Hp,[(0,uo._)("span",null,(0,po.zw)(e.$t("registration.validations.username_required")),1)]))])])):(0,uo.kq)("",!0),(0,uo._)("div",{class:(0,po.C_)(["form-group",{"form-group--error":e.v$.user.fullname.$error}])},[(0,uo._)("label",Vp,(0,po.zw)(e.$t("registration.fullname")),1),(0,uo.wy)((0,uo._)("input",{id:"sign-up-fullname","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.v$.user.fullname.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.fullname_placeholder")},null,8,Kp),[[ro.nr,e.v$.user.fullname.$model,void 0,{trim:!0}]])],2),e.v$.user.fullname.$dirty?((0,uo.wg)(),(0,uo.iD)("div",Gp,[(0,uo._)("ul",null,[e.v$.user.fullname.required?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("li",Yp,[(0,uo._)("span",null,(0,po.zw)(e.$t("registration.validations.fullname_required")),1)]))])])):(0,uo.kq)("",!0),(0,uo._)("div",{class:(0,po.C_)(["form-group",{"form-group--error":e.v$.user.email.$error}])},[(0,uo._)("label",Jp,(0,po.zw)(e.accountActivationRequired?e.$t("registration.email"):e.$t("registration.email_optional")),1),(0,uo.wy)((0,uo._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.v$.user.email.$model=t}),disabled:e.isPending,class:"form-control",type:"email","aria-required":e.accountActivationRequired},null,8,Qp),[[ro.nr,e.v$.user.email.$model]])],2),e.v$.user.email.$dirty?((0,uo.wg)(),(0,uo.iD)("div",Xp,[(0,uo._)("ul",null,[e.v$.user.email.required?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("li",em,[(0,uo._)("span",null,(0,po.zw)(e.$t("registration.validations.email_required")),1)]))])])):(0,uo.kq)("",!0),(0,uo._)("div",tm,[(0,uo._)("label",nm,(0,po.zw)(e.$t("registration.bio_optional")),1),(0,uo.wy)((0,uo._)("textarea",{id:"bio","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.user.bio=t}),disabled:e.isPending,class:"form-control",placeholder:e.bioPlaceholder},null,8,om),[[ro.nr,e.user.bio]])]),(0,uo._)("div",{class:(0,po.C_)(["form-group",{"form-group--error":e.v$.user.password.$error}])},[(0,uo._)("label",rm,(0,po.zw)(e.$t("login.password")),1),(0,uo.wy)((0,uo._)("input",{id:"sign-up-password","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.user.password=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,im),[[ro.nr,e.user.password]])],2),e.v$.user.password.$dirty?((0,uo.wg)(),(0,uo.iD)("div",sm,[(0,uo._)("ul",null,[e.v$.user.password.required?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("li",am,[(0,uo._)("span",null,(0,po.zw)(e.$t("registration.validations.password_required")),1)]))])])):(0,uo.kq)("",!0),(0,uo._)("div",{class:(0,po.C_)(["form-group",{"form-group--error":e.v$.user.confirm.$error}])},[(0,uo._)("label",cm,(0,po.zw)(e.$t("registration.password_confirm")),1),(0,uo.wy)((0,uo._)("input",{id:"sign-up-password-confirmation","onUpdate:modelValue":t[5]||(t[5]=function(t){return e.user.confirm=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,lm),[[ro.nr,e.user.confirm]])],2),e.v$.user.confirm.$dirty?((0,uo.wg)(),(0,uo.iD)("div",um,[(0,uo._)("ul",null,[e.v$.user.confirm.required.$invalid?((0,uo.wg)(),(0,uo.iD)("li",dm,[(0,uo._)("span",null,(0,po.zw)(e.$t("registration.validations.password_confirmation_required")),1)])):(0,uo.kq)("",!0),e.v$.user.confirm.sameAs.$invalid?((0,uo.wg)(),(0,uo.iD)("li",pm,[(0,uo._)("span",null,(0,po.zw)(e.$t("registration.validations.password_confirmation_match")),1)])):(0,uo.kq)("",!0)])])):(0,uo.kq)("",!0),(0,uo._)("div",{class:(0,po.C_)(["form-group",{"form-group--error":e.v$.user.birthday.$error}])},[(0,uo._)("label",mm,(0,po.zw)(e.birthdayRequired?e.$t("registration.birthday"):e.$t("registration.birthday_optional")),1),(0,uo.wy)((0,uo._)("input",{id:"sign-up-birthday","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.user.birthday=t}),disabled:e.isPending,class:"form-control",type:"date",max:e.birthdayRequired?e.birthdayMinAttr:void 0,"aria-required":e.birthdayRequired},null,8,hm),[[ro.nr,e.user.birthday]])],2),e.v$.user.birthday.$dirty?((0,uo.wg)(),(0,uo.iD)("div",fm,[(0,uo._)("ul",null,[e.v$.user.birthday.required.$invalid?((0,uo.wg)(),(0,uo.iD)("li",gm,[(0,uo._)("span",null,(0,po.zw)(e.$t("registration.validations.birthday_required")),1)])):(0,uo.kq)("",!0),e.v$.user.birthday.maxValue.$invalid?((0,uo.wg)(),(0,uo.iD)("li",vm,[(0,uo._)("span",null,(0,po.zw)(e.$tc("registration.validations.birthday_min_age",{date:e.birthdayMinFormatted})),1)])):(0,uo.kq)("",!0)])])):(0,uo.kq)("",!0),(0,uo._)("div",{class:(0,po.C_)(["form-group",{"form-group--error":e.v$.user.language.$error}])},[(0,uo.Wm)(s,{for:"email-language","prompt-text":e.$t("registration.email_language"),language:e.v$.user.language.$model,"set-language":function(t){return e.v$.user.language.$model=t},onClick:t[7]||(t[7]=(0,ro.iM)((function(){}),["stop","prevent"]))},null,8,["prompt-text","language","set-language"])],2),e.accountApprovalRequired?((0,uo.wg)(),(0,uo.iD)("div",wm,[(0,uo._)("label",bm,(0,po.zw)(e.$t("registration.reason")),1),(0,uo.wy)((0,uo._)("textarea",{id:"reason","onUpdate:modelValue":t[8]||(t[8]=function(t){return e.user.reason=t}),disabled:e.isPending,class:"form-control",placeholder:e.reasonPlaceholder},null,8,ym),[[ro.nr,e.user.reason]])])):(0,uo.kq)("",!0),"none"!=e.captcha.type?((0,uo.wg)(),(0,uo.iD)("div",_m,[(0,uo._)("label",km,(0,po.zw)(e.$t("registration.captcha")),1),["kocaptcha","native"].includes(e.captcha.type)?((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:0},[(0,uo._)("img",{src:e.captcha.url,onClick:t[9]||(t[9]=function(){return e.setCaptcha&&e.setCaptcha.apply(e,arguments)})},null,8,Sm),(0,uo._)("sub",null,(0,po.zw)(e.$t("registration.new_captcha")),1),(0,uo.wy)((0,uo._)("input",{id:"captcha-answer","onUpdate:modelValue":t[10]||(t[10]=function(t){return e.captcha.solution=t}),disabled:e.isPending,class:"form-control",type:"text",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false"},null,8,jm),[[ro.nr,e.captcha.solution]])],64)):(0,uo.kq)("",!0)])):(0,uo.kq)("",!0),e.token?((0,uo.wg)(),(0,uo.iD)("div",Cm,[(0,uo._)("label",Om,(0,po.zw)(e.$t("registration.token")),1),(0,uo.wy)((0,uo._)("input",{id:"token","onUpdate:modelValue":t[11]||(t[11]=function(t){return e.token=t}),disabled:"true",class:"form-control",type:"text"},null,512),[[ro.nr,e.token]])])):(0,uo.kq)("",!0),(0,uo._)("div",Pm,[(0,uo._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default"},(0,po.zw)(e.$t("registration.register")),9,zm)])]),(0,uo._)("div",{class:"terms-of-service",innerHTML:e.termsOfService},null,8,Dm)]),e.serverValidationErrors.length?((0,uo.wg)(),(0,uo.iD)("div",Im,[(0,uo._)("div",xm,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.serverValidationErrors,(function(e){return(0,uo.wg)(),(0,uo.iD)("span",{key:e},(0,po.zw)(e),1)})),128))])])):(0,uo.kq)("",!0)],32)])])}]]);var Rm={class:"settings panel panel-default"},qm={class:"panel-heading"},Nm={class:"panel-body"},Zm={class:"container"},Wm={key:0},Bm={key:0},Hm={key:1},Vm={key:1},Km={key:0},Gm={class:"form-group text-center"},Ym={key:2},Jm={key:0,class:"password-reset-required error"},Qm={class:"form-group"},Xm=["disabled","placeholder"],eh={class:"form-group"},th=["disabled"],nh={key:3,class:"alert error notice-dismissible"};function oh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function rh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.NBC);var ih={data:function(){return{user:{email:""},isPending:!1,success:!1,throttled:!1,error:null}},computed:rh(rh({},(0,s.rn)({signedIn:function(e){return!!e.users.currentUser},instance:function(e){return e.instance}})),{},{mailerEnabled:function(){return this.instance.mailerEnabled}}),created:function(){this.signedIn&&this.$router.push({name:"root"})},props:{passwordResetRequested:{default:!1,type:Boolean}},methods:{dismissError:function(){this.error=null},submit:function(){var e=this;this.isPending=!0;var t=this.user.email;(function(e){var t=e.instance,n={email:e.email},o=Ee()(n,(function(e,t,n){var o="".concat(n,"=").concat(encodeURIComponent(t));return"".concat(e,"&").concat(o)}),""),r="".concat(t).concat("/auth/password","?").concat(o);return window.fetch(r,{method:"POST"})})({instance:this.instance.server,email:t}).then((function(t){var n=t.status;e.isPending=!1,e.user.email="",204===n?(e.success=!0,e.error=null):429===n&&(e.throttled=!0,e.error=e.$t("password_reset.too_many_requests"))})).catch((function(){e.isPending=!1,e.user.email="",e.error=e.$t("general.generic_error")}))}}};const sh=ih,ah=(0,Eo.Z)(sh,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("router-link"),a=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",Rm,[(0,uo._)("div",qm,(0,po.zw)(e.$t("password_reset.password_reset")),1),(0,uo._)("div",Nm,[(0,uo._)("form",{class:"password-reset-form",onSubmit:t[2]||(t[2]=(0,ro.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,uo._)("div",Zm,[e.mailerEnabled?e.success||e.throttled?((0,uo.wg)(),(0,uo.iD)("div",Vm,[e.success?((0,uo.wg)(),(0,uo.iD)("p",Km,(0,po.zw)(e.$t("password_reset.check_email")),1)):(0,uo.kq)("",!0),(0,uo._)("div",Gm,[(0,uo.Wm)(s,{to:{name:"root"}},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("password_reset.return_home")),1)]})),_:1})])])):((0,uo.wg)(),(0,uo.iD)("div",Ym,[e.passwordResetRequested?((0,uo.wg)(),(0,uo.iD)("p",Jm,(0,po.zw)(e.$t("password_reset.password_reset_required")),1)):(0,uo.kq)("",!0),(0,uo._)("p",null,(0,po.zw)(e.$t("password_reset.instruction")),1),(0,uo._)("div",Qm,[(0,uo.wy)((0,uo._)("input",{ref:"email","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.email=t}),disabled:e.isPending,placeholder:e.$t("password_reset.placeholder"),class:"form-control",type:"input"},null,8,Xm),[[ro.nr,e.user.email]])]),(0,uo._)("div",eh,[(0,uo._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default btn-block"},(0,po.zw)(e.$t("settings.save")),9,th)])])):((0,uo.wg)(),(0,uo.iD)("div",Wm,[e.passwordResetRequested?((0,uo.wg)(),(0,uo.iD)("p",Bm,(0,po.zw)(e.$t("password_reset.password_reset_required_but_mailer_is_disabled")),1)):((0,uo.wg)(),(0,uo.iD)("p",Hm,(0,po.zw)(e.$t("password_reset.password_reset_disabled")),1))])),e.error?((0,uo.wg)(),(0,uo.iD)("p",nh,[(0,uo._)("span",null,(0,po.zw)(e.error),1),(0,uo._)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[1]||(t[1]=(0,ro.iM)((function(t){return e.dismissError()}),["prevent"]))},[(0,uo.Wm)(a,{icon:"times"})])])):(0,uo.kq)("",!0)])],32)])])}]]);var ch={class:"settings panel panel-default"},lh={class:"panel-heading"},uh={class:"title"},dh={class:"panel-body"},ph={class:"follow-request-card-content-container"};const mh={props:["user"],components:{BasicUserCard:qu.Z,ConfirmModal:ca.Z},data:function(){return{showingApproveConfirmDialog:!1,showingDenyConfirmDialog:!1}},methods:{findFollowRequestNotificationId:function(){var e=this,t=(0,K.Bt)(this.$store).find((function(t){return t.from_profile.id===e.user.id&&"follow_request"===t.type}));return t&&t.id},showApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!0},hideApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!1},showDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!0},hideDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!1},approveUser:function(){this.shouldConfirmApprove?this.showApproveConfirmDialog():this.doApprove()},doApprove:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user);var e=this.findFollowRequestNotificationId();this.$store.dispatch("markSingleNotificationAsSeen",{id:e}),this.$store.dispatch("updateNotification",{id:e,updater:function(e){e.type="follow"}}),this.hideApproveConfirmDialog()},denyUser:function(){this.shouldConfirmDeny?this.showDenyConfirmDialog():this.doDeny()},doDeny:function(){var e=this,t=this.findFollowRequestNotificationId();this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:t}),e.$store.dispatch("removeFollowRequest",e.user)})),this.hideDenyConfirmDialog()}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig},shouldConfirmApprove:function(){return this.mergedConfig.modalOnApproveFollow},shouldConfirmDeny:function(){return this.mergedConfig.modalOnDenyFollow}}},hh={components:{FollowRequestCard:(0,Eo.Z)(mh,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("confirm-modal"),a=(0,uo.up)("basic-user-card");return(0,uo.wg)(),(0,uo.j4)(a,{user:e.user},{default:(0,uo.w5)((function(){return[(0,uo._)("div",ph,[(0,uo._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.approveUser&&e.approveUser.apply(e,arguments)})},(0,po.zw)(e.$t("user_card.approve")),1),(0,uo._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.denyUser&&e.denyUser.apply(e,arguments)})},(0,po.zw)(e.$t("user_card.deny")),1)]),((0,uo.wg)(),(0,uo.j4)(uo.lR,{to:"#modal"},[e.showingApproveConfirmDialog?((0,uo.wg)(),(0,uo.j4)(s,{key:0,title:e.$t("user_card.approve_confirm_title"),"confirm-text":e.$t("user_card.approve_confirm_accept_button"),"cancel-text":e.$t("user_card.approve_confirm_cancel_button"),onAccepted:e.doApprove,onCancelled:e.hideApproveConfirmDialog},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("user_card.approve_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,uo.kq)("",!0),e.showingDenyConfirmDialog?((0,uo.wg)(),(0,uo.j4)(s,{key:1,title:e.$t("user_card.deny_confirm_title"),"confirm-text":e.$t("user_card.deny_confirm_accept_button"),"cancel-text":e.$t("user_card.deny_confirm_cancel_button"),onAccepted:e.doDeny,onCancelled:e.hideDenyConfirmDialog},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("user_card.deny_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,uo.kq)("",!0)]))]})),_:1},8,["user"])}]])},computed:{requests:function(){return this.$store.state.api.followRequests}}},fh=(0,Eo.Z)(hh,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FollowRequestCard");return(0,uo.wg)(),(0,uo.iD)("div",ch,[(0,uo._)("div",lh,[(0,uo._)("div",uh,(0,po.zw)(e.$t("nav.friend_requests")),1)]),(0,uo._)("div",dh,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.requests,(function(e){return(0,uo.wg)(),(0,uo.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]),gh={props:["code"],mounted:function(){var e=this;if(this.code){var t=this.$store.state.oauth,n=t.clientId,o=t.clientSecret;Ze.getToken({clientId:n,clientSecret:o,instance:this.$store.state.instance.server,code:this.code}).then((function(t){e.$store.commit("setToken",t.access_token),e.$store.dispatch("loginUser",t.access_token),e.$router.push({name:"friends"})}))}}},vh=(0,Eo.Z)(gh,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("h1",null,"...")}]]);var wh={class:"panel panel-default"},bh={class:"panel-heading"},yh={class:"panel-body"};const _h={components:{FollowCard:Yd},data:function(){return{users:[]}},mounted:function(){this.getWhoToFollow()},methods:{showWhoToFollow:function(e){var t=this;e.forEach((function(e,n){t.$store.state.api.backendInteractor.fetchUser({id:e.acct}).then((function(e){e.error||(t.$store.commit("addNewUsers",[e]),t.users.push(e))}))}))},getWhoToFollow:function(){var e=this,t=this.$store.state.users.currentUser.credentials;t&&h.ZP.suggestions({credentials:t}).then((function(t){e.showWhoToFollow(t)}))}}},kh=(0,Eo.Z)(_h,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FollowCard");return(0,uo.wg)(),(0,uo.iD)("div",wh,[(0,uo._)("div",bh,(0,po.zw)(e.$t("who_to_follow.who_to_follow")),1),(0,uo._)("div",yh,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.users,(function(e){return(0,uo.wg)(),(0,uo.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]);var Sh={class:"column-inner"},jh={class:"panel panel-default"},Ch={class:"panel-body"},Oh=["innerHTML"];const Ph={computed:{content:function(){return this.$store.state.instance.tos}}},zh=(0,Eo.Z)(Ph,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("div",null,[(0,uo._)("div",jh,[(0,uo._)("div",Ch,[(0,uo._)("div",{class:"tos-content",innerHTML:e.content},null,8,Oh)])])])}]]);var Dh={class:"staff-panel"},Ih={class:"panel panel-default base01-background"},xh={class:"panel-heading timeline-heading base02-background"},Th={class:"title"},$h={class:"panel-body"};function Uh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Mh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Uh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Uh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Ah={created:function(){var e=this;this.$store.state.instance.staffAccounts.forEach((function(t){return e.$store.dispatch("fetchUserIfMissing",t)}))},components:{BasicUserCard:qu.Z},computed:Mh(Mh({groupedStaffAccounts:function(){var e=be()(this.staffAccounts,this.findUserByName).filter((function(e){return e})),t=Ot()(e,"role");return[{role:"admin",users:t.admin},{role:"moderator",users:t.moderator}].filter((function(e){return e.users}))}},(0,s.Se)(["findUserByName"])),(0,s.rn)({staffAccounts:function(e){return e.instance.staffAccounts}}))},Lh=(0,Eo.Z)(Ah,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("basic-user-card");return(0,uo.wg)(),(0,uo.iD)("div",Dh,[(0,uo._)("div",Ih,[(0,uo._)("div",xh,[(0,uo._)("div",Th,(0,po.zw)(e.$t("about.staff")),1)]),(0,uo._)("div",$h,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.groupedStaffAccounts,(function(t){return(0,uo.wg)(),(0,uo.iD)("div",{key:t.role,class:"staff-group"},[(0,uo._)("h4",null,(0,po.zw)(e.$t("general.role."+t.role)),1),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(t.users,(function(e){return(0,uo.wg)(),(0,uo.j4)(s,{key:e.screen_name,user:e},null,8,["user"])})),128))])})),128))])])])}]]);var Eh={key:0,class:"mrf-transparency-panel"},Fh={class:"panel panel-default base01-background"},Rh={class:"panel-heading timeline-heading base02-background"},qh={class:"title"},Nh={class:"panel-body"},Zh={class:"mrf-section"},Wh=["textContent"],Bh={key:0},Hh={key:1},Vh={key:0},Kh={key:1},Gh={key:2},Yh={key:0},Jh={key:1},Qh={key:3},Xh={key:0},ef={key:1},tf={key:4},nf={key:0},of={key:1},rf={key:5},sf={key:0},af={key:1},cf={key:6},lf={key:0},uf={key:1},df={key:7},pf={key:8},mf=["textContent"],hf={key:9},ff=["textContent"],gf={key:10};function vf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function wf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vf(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var bf=function(e,t,n){return e.map((function(e){return t[n]&&t[n][e]&&t[n][e].reason?{instance:e,reason:t[n][e].reason}:{instance:e,reason:""}}))};const yf={computed:wf(wf({},(0,s.rn)({federationPolicy:function(e){return Tt()(e,"instance.federationPolicy")},mrfPolicies:function(e){return Tt()(e,"instance.federationPolicy.mrf_policies",[])},quarantineInstances:function(e){return bf(Tt()(e,"instance.federationPolicy.quarantined_instances",[]),Tt()(e,"instance.federationPolicy.quarantined_instances_info",[]),"quarantined_instances")},acceptInstances:function(e){return bf(Tt()(e,"instance.federationPolicy.mrf_simple.accept",[]),Tt()(e,"instance.federationPolicy.mrf_simple_info",[]),"accept")},rejectInstances:function(e){return bf(Tt()(e,"instance.federationPolicy.mrf_simple.reject",[]),Tt()(e,"instance.federationPolicy.mrf_simple_info",[]),"reject")},ftlRemovalInstances:function(e){return bf(Tt()(e,"instance.federationPolicy.mrf_simple.federated_timeline_removal",[]),Tt()(e,"instance.federationPolicy.mrf_simple_info",[]),"federated_timeline_removal")},mediaNsfwInstances:function(e){return bf(Tt()(e,"instance.federationPolicy.mrf_simple.media_nsfw",[]),Tt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_nsfw")},mediaRemovalInstances:function(e){return bf(Tt()(e,"instance.federationPolicy.mrf_simple.media_removal",[]),Tt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_removal")},keywordsFtlRemoval:function(e){return Tt()(e,"instance.federationPolicy.mrf_keyword.federated_timeline_removal",[])},keywordsReject:function(e){return Tt()(e,"instance.federationPolicy.mrf_keyword.reject",[])},keywordsReplace:function(e){return Tt()(e,"instance.federationPolicy.mrf_keyword.replace",[])}})),{},{hasInstanceSpecificPolicies:function(){return this.quarantineInstances.length||this.acceptInstances.length||this.rejectInstances.length||this.ftlRemovalInstances.length||this.mediaNsfwInstances.length||this.mediaRemovalInstances.length},hasKeywordPolicies:function(){return this.keywordsFtlRemoval.length||this.keywordsReject.length||this.keywordsReplace.length}})},_f={components:{InstanceSpecificPanel:hi,FeaturesPanel:Pi,TermsOfServicePanel:zh,StaffPanel:Lh,MRFTransparencyPanel:(0,Eo.Z)(yf,[["render",function(e,t,n,o,r,i){return e.federationPolicy?((0,uo.wg)(),(0,uo.iD)("div",Eh,[(0,uo._)("div",Fh,[(0,uo._)("div",Rh,[(0,uo._)("div",qh,(0,po.zw)(e.$t("about.mrf.federation")),1)]),(0,uo._)("div",Nh,[(0,uo._)("div",Zh,[(0,uo._)("h2",null,(0,po.zw)(e.$t("about.mrf.mrf_policies")),1),(0,uo._)("p",null,(0,po.zw)(e.$t("about.mrf.mrf_policies_desc")),1),(0,uo._)("ul",null,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.mrfPolicies,(function(e){return(0,uo.wg)(),(0,uo.iD)("li",{key:e,textContent:(0,po.zw)(e)},null,8,Wh)})),128))]),e.hasInstanceSpecificPolicies?((0,uo.wg)(),(0,uo.iD)("h2",Bh,(0,po.zw)(e.$t("about.mrf.simple.simple_policies")),1)):(0,uo.kq)("",!0),e.acceptInstances.length?((0,uo.wg)(),(0,uo.iD)("div",Hh,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.simple.accept")),1),(0,uo._)("p",null,(0,po.zw)(e.$t("about.mrf.simple.accept_desc")),1),(0,uo._)("table",null,[(0,uo._)("tr",null,[(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.instance")),1),(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.acceptInstances,(function(t){return(0,uo.wg)(),(0,uo.iD)("tr",{key:t.instance+"_accept"},[(0,uo._)("td",null,(0,po.zw)(t.instance),1),""===t.reason?((0,uo.wg)(),(0,uo.iD)("td",Vh,(0,po.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,uo.wg)(),(0,uo.iD)("td",Kh,(0,po.zw)(t.reason),1))])})),128))])])):(0,uo.kq)("",!0),e.rejectInstances.length?((0,uo.wg)(),(0,uo.iD)("div",Gh,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.simple.reject")),1),(0,uo._)("p",null,(0,po.zw)(e.$t("about.mrf.simple.reject_desc")),1),(0,uo._)("table",null,[(0,uo._)("tr",null,[(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.instance")),1),(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.rejectInstances,(function(t){return(0,uo.wg)(),(0,uo.iD)("tr",{key:t.instance+"_reject"},[(0,uo._)("td",null,(0,po.zw)(t.instance),1),""===t.reason?((0,uo.wg)(),(0,uo.iD)("td",Yh,(0,po.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,uo.wg)(),(0,uo.iD)("td",Jh,(0,po.zw)(t.reason),1))])})),128))])])):(0,uo.kq)("",!0),e.quarantineInstances.length?((0,uo.wg)(),(0,uo.iD)("div",Qh,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.simple.quarantine")),1),(0,uo._)("p",null,(0,po.zw)(e.$t("about.mrf.simple.quarantine_desc")),1),(0,uo._)("table",null,[(0,uo._)("tr",null,[(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.instance")),1),(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.quarantineInstances,(function(t){return(0,uo.wg)(),(0,uo.iD)("tr",{key:t.instance+"_quarantine"},[(0,uo._)("td",null,(0,po.zw)(t.instance),1),""===t.reason?((0,uo.wg)(),(0,uo.iD)("td",Xh,(0,po.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,uo.wg)(),(0,uo.iD)("td",ef,(0,po.zw)(t.reason),1))])})),128))])])):(0,uo.kq)("",!0),e.ftlRemovalInstances.length?((0,uo.wg)(),(0,uo.iD)("div",tf,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.simple.ftl_removal")),1),(0,uo._)("p",null,(0,po.zw)(e.$t("about.mrf.simple.ftl_removal_desc")),1),(0,uo._)("table",null,[(0,uo._)("tr",null,[(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.instance")),1),(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.ftlRemovalInstances,(function(t){return(0,uo.wg)(),(0,uo.iD)("tr",{key:t.instance+"_ftl_removal"},[(0,uo._)("td",null,(0,po.zw)(t.instance),1),""===t.reason?((0,uo.wg)(),(0,uo.iD)("td",nf,(0,po.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,uo.wg)(),(0,uo.iD)("td",of,(0,po.zw)(t.reason),1))])})),128))])])):(0,uo.kq)("",!0),e.mediaNsfwInstances.length?((0,uo.wg)(),(0,uo.iD)("div",rf,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.simple.media_nsfw")),1),(0,uo._)("p",null,(0,po.zw)(e.$t("about.mrf.simple.media_nsfw_desc")),1),(0,uo._)("table",null,[(0,uo._)("tr",null,[(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.instance")),1),(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.mediaNsfwInstances,(function(t){return(0,uo.wg)(),(0,uo.iD)("tr",{key:t.instance+"_media_nsfw"},[(0,uo._)("td",null,(0,po.zw)(t.instance),1),""===t.reason?((0,uo.wg)(),(0,uo.iD)("td",sf,(0,po.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,uo.wg)(),(0,uo.iD)("td",af,(0,po.zw)(t.reason),1))])})),128))])])):(0,uo.kq)("",!0),e.mediaRemovalInstances.length?((0,uo.wg)(),(0,uo.iD)("div",cf,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.simple.media_removal")),1),(0,uo._)("p",null,(0,po.zw)(e.$t("about.mrf.simple.media_removal_desc")),1),(0,uo._)("table",null,[(0,uo._)("tr",null,[(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.instance")),1),(0,uo._)("th",null,(0,po.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.mediaRemovalInstances,(function(t){return(0,uo.wg)(),(0,uo.iD)("tr",{key:t.instance+"_media_removal"},[(0,uo._)("td",null,(0,po.zw)(t.instance),1),""===t.reason?((0,uo.wg)(),(0,uo.iD)("td",lf,(0,po.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,uo.wg)(),(0,uo.iD)("td",uf,(0,po.zw)(t.reason),1))])})),128))])])):(0,uo.kq)("",!0),e.hasKeywordPolicies?((0,uo.wg)(),(0,uo.iD)("h2",df,(0,po.zw)(e.$t("about.mrf.keyword.keyword_policies")),1)):(0,uo.kq)("",!0),e.keywordsFtlRemoval.length?((0,uo.wg)(),(0,uo.iD)("div",pf,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.keyword.ftl_removal")),1),(0,uo._)("ul",null,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.keywordsFtlRemoval,(function(e){return(0,uo.wg)(),(0,uo.iD)("li",{key:e,textContent:(0,po.zw)(e)},null,8,mf)})),128))])])):(0,uo.kq)("",!0),e.keywordsReject.length?((0,uo.wg)(),(0,uo.iD)("div",hf,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.keyword.reject")),1),(0,uo._)("ul",null,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.keywordsReject,(function(e){return(0,uo.wg)(),(0,uo.iD)("li",{key:e,textContent:(0,po.zw)(e)},null,8,ff)})),128))])])):(0,uo.kq)("",!0),e.keywordsReplace.length?((0,uo.wg)(),(0,uo.iD)("div",gf,[(0,uo._)("h4",null,(0,po.zw)(e.$t("about.mrf.keyword.replace")),1),(0,uo._)("ul",null,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.keywordsReplace,(function(t){return(0,uo.wg)(),(0,uo.iD)("li",{key:t},(0,po.zw)(t.pattern)+" "+(0,po.zw)(e.$t("about.mrf.keyword.is_replaced_by"))+" "+(0,po.zw)(t.replacement),1)})),128))])])):(0,uo.kq)("",!0)])])])])):(0,uo.kq)("",!0)}]])},computed:{showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent}}},kf=(0,Eo.Z)(_f,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("instance-specific-panel"),a=(0,uo.up)("staff-panel"),c=(0,uo.up)("terms-of-service-panel"),l=(0,uo.up)("MRFTransparencyPanel"),u=(0,uo.up)("features-panel");return(0,uo.wg)(),(0,uo.iD)("div",Sh,[e.showInstanceSpecificPanel?((0,uo.wg)(),(0,uo.j4)(s,{key:0})):(0,uo.kq)("",!0),(0,uo.Wm)(a),(0,uo.Wm)(c),(0,uo.Wm)(l),e.showFeaturesPanel?((0,uo.wg)(),(0,uo.j4)(u,{key:1})):(0,uo.kq)("",!0)])}]]);var Sf={class:"panel panel-default"},jf={class:"panel-heading"},Cf={class:"panel-body"},Of={key:0};const Pf={data:function(){return{error:!1}},mounted:function(){this.redirect()},methods:{redirect:function(){var e=this,t=this.$route.params.username+"@"+this.$route.params.hostname;this.$store.state.api.backendInteractor.fetchUser({id:t}).then((function(t){if(t.error)e.error=!0;else{e.$store.commit("addNewUsers",[t]);var n=t.id;e.$router.replace({name:"external-user-profile",params:{id:n}})}})).catch((function(){e.error=!0}))}}},zf=(0,Eo.Z)(Pf,[["render",function(e,t,n,o,r,i){return(0,uo.wg)(),(0,uo.iD)("div",Sf,[(0,uo._)("div",jf,(0,po.zw)(e.$t("remote_user_resolver.remote_user_resolver")),1),(0,uo._)("div",Cf,[(0,uo._)("p",null,(0,po.zw)(e.$t("remote_user_resolver.searching_for"))+" @"+(0,po.zw)(e.$route.params.username)+"@"+(0,po.zw)(e.$route.params.hostname),1),e.error?((0,uo.wg)(),(0,uo.iD)("p",Of,(0,po.zw)(e.$t("remote_user_resolver.error")),1)):(0,uo.kq)("",!0)])])}]]);var Df={class:"Lists panel panel-default"},If={class:"panel-heading"},xf={class:"title"},Tf={class:"panel-body"},$f={class:"list-card"};qt.vI.add(Nt.cNd);const Uf={props:["list"]},Mf={data:function(){return{isNew:!1}},components:{ListsCard:(0,Eo.Z)(Uf,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("router-link"),a=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",$f,[(0,uo.Wm)(s,{to:{name:"lists-timeline",params:{id:e.list.id}},class:"list-name"},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.list.title),1)]})),_:1},8,["to"]),(0,uo.Wm)(s,{to:{name:"lists-edit",params:{id:e.list.id}},class:"button-list-edit"},{default:(0,uo.w5)((function(){return[(0,uo.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"ellipsis-h"})]})),_:1},8,["to"])])}]])},computed:{lists:function(){return this.$store.state.lists.allLists}},methods:{cancelNewList:function(){this.isNew=!1},newList:function(){this.isNew=!0}}},Af=(0,Eo.Z)(Mf,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("router-link"),a=(0,uo.up)("ListsCard");return(0,uo.wg)(),(0,uo.iD)("div",Df,[(0,uo._)("div",If,[(0,uo._)("div",xf,(0,po.zw)(e.$t("lists.lists")),1),(0,uo.Wm)(s,{to:{name:"lists-new"},class:"button-default btn new-list-button"},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("lists.new")),1)]})),_:1})]),(0,uo._)("div",Tf,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.lists.slice().reverse(),(function(e){return(0,uo.wg)(),(0,uo.j4)(a,{key:e,list:e,class:"list-item"},null,8,["list"])})),128))])])}]]),Lf=Af,Ef={data:function(){return{listId:null}},components:{Timeline:Ul},computed:{timeline:function(){return this.$store.state.statuses.timelines.list}},watch:{$route:function(e){"lists-timeline"===e.name&&e.params.id!==this.listId&&(this.listId=e.params.id,this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"}),this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId}))}},created:function(){this.listId=this.$route.params.id,this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"})}},Ff=(0,Eo.Z)(Ef,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Timeline");return(0,uo.wg)(),(0,uo.j4)(s,{title:"list.name",timeline:e.timeline,"list-id":e.listId,"timeline-name":"list"},null,8,["timeline","list-id"])}]]);var Rf={class:"panel-default panel ListEdit"},qf={ref:"header",class:"panel-heading list-edit-heading"},Nf={class:"title"},Zf={class:"panel-body"},Wf={class:"input-wrap"},Bf={for:"list-edit-title"},Hf=["label"],Vf={class:"users-list"},Kf=["onClick"],Gf=["label"],Yf={key:0,class:"loading"},Jf={key:1,class:"users-list"},Qf={key:0},Xf=["onClick"],eg=["onClick"],tg={class:"panel-footer"},ng=(0,uo._)("span",{class:"spacer"},null,-1),og={class:"ListsUserSearch"},rg={class:"input-wrap"},ig={class:"input-search"},sg=["placeholder"],ag={class:"input-wrap"};qt.vI.add(Nt.wn1,Nt.A35);const cg={components:{Checkbox:ri.Z},emits:["loading","loadingDone","results"],data:function(){return{loading:!1,query:"",followingOnly:!0}},methods:{onInput:Bs()((function(){this.search(this.query)}),2e3),search:function(e){var t=this;e?(this.loading=!0,this.$emit("loading"),this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts",following:this.followingOnly}).then((function(e){t.$emit("results",e.accounts.map((function(e){return e.id})))})).finally((function(){t.loading=!1,t.$emit("loadingDone")}))):this.loading=!1}}},lg=(0,Eo.Z)(cg,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("Checkbox");return(0,uo.wg)(),(0,uo.iD)("div",og,[(0,uo._)("div",rg,[(0,uo._)("div",ig,[(0,uo.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,uo.wy)((0,uo._)("input",{ref:"search","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.query=t}),placeholder:e.$t("lists.search"),onInput:t[1]||(t[1]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,40,sg),[[ro.nr,e.query]])]),(0,uo._)("div",ag,[(0,uo.Wm)(a,{modelValue:e.followingOnly,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.followingOnly=t}),onChange:e.onInput},{default:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.$t("lists.following_only")),1)]})),_:1},8,["modelValue","onChange"])])])}]]);var ug=n(29187);function dg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function pg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}qt.vI.add(Nt.wn1,Nt.A35);var mg={components:{BasicUserCard:qu.Z,UserAvatar:ju.default,ListsUserSearch:lg,TabSwitcher:nu.Z,PanelLoading:ug.Z},data:function(){return{title:"",titleDraft:"",membersUserIds:[],removedUserIds:new Set([]),searchUserIds:[],addedUserIds:new Set([]),searchLoading:!1,reallyDelete:!1}},created:function(){var e=this;this.id&&(this.$store.dispatch("fetchList",{listId:this.id}).then((function(){e.title=e.findListTitle(e.id),e.titleDraft=e.title})),this.$store.dispatch("fetchListAccounts",{listId:this.id}).then((function(){e.membersUserIds=e.findListAccounts(e.id),e.membersUserIds.forEach((function(t){e.$store.dispatch("fetchUserIfMissing",t)}))})))},computed:pg(pg({id:function(){return this.$route.params.id},membersUsers:function(){var e=this;return[].concat((0,u.Z)(this.membersUserIds),(0,u.Z)(this.addedUserIds)).map((function(t){return e.findUser(t)})).filter((function(e){return e}))},searchUsers:function(){var e=this;return this.searchUserIds.map((function(t){return e.findUser(t)})).filter((function(e){return e}))}},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["findUser","findListTitle","findListAccounts"])),methods:{onInput:function(){this.search(this.query)},toggleRemoveMember:function(e){this.removedUserIds.has(e.id)?(this.id&&this.addUser(e),this.removedUserIds.delete(e.id)):(this.id&&this.removeUser(e.id),this.removedUserIds.add(e.id))},toggleAddFromSearch:function(e){this.addedUserIds.has(e.id)?(this.id&&this.removeUser(e.id),this.addedUserIds.delete(e.id)):(this.id&&this.addUser(e),this.addedUserIds.add(e.id))},isRemoved:function(e){return this.removedUserIds.has(e.id)},isAdded:function(e){return this.addedUserIds.has(e.id)},addUser:function(e){this.$store.dispatch("addListAccount",{accountId:e.id,listId:this.id})},removeUser:function(e){this.$store.dispatch("removeListAccount",{accountId:e,listId:this.id})},onSearchLoading:function(e){this.searchLoading=!0},onSearchLoadingDone:function(e){this.searchLoading=!1},onSearchResults:function(e){this.searchLoading=!1,this.searchUserIds=e},updateListTitle:function(){var e=this;this.$store.dispatch("setList",{listId:this.id,title:this.titleDraft}).then((function(){e.title=e.findListTitle(e.id)}))},createList:function(){var e=this;this.$store.dispatch("createList",{title:this.titleDraft}).then((function(t){return e.$store.dispatch("setListAccounts",{listId:t.id,accountIds:(0,u.Z)(e.addedUserIds)}).then((function(){return t.id}))})).then((function(t){e.$router.push({name:"lists-timeline",params:{id:t}})})).catch((function(t){e.$store.dispatch("pushGlobalNotice",{messageKey:"lists.error",messageArgs:[t.message],level:"error"})}))},deleteList:function(){this.$store.dispatch("deleteList",{listId:this.id}),this.$router.push({name:"lists"})}}};const hg=mg,fg=(0,Eo.Z)(hg,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("FAIcon"),a=(0,uo.up)("i18n-t"),c=(0,uo.up)("BasicUserCard"),l=(0,uo.up)("ListsUserSearch"),u=(0,uo.up)("PanelLoading"),d=(0,uo.up)("tab-switcher");return(0,uo.wg)(),(0,uo.iD)("div",Rf,[(0,uo._)("div",qf,[(0,uo._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){var t;return e.$router.back&&(t=e.$router).back.apply(t,arguments)})},[(0,uo.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,uo._)("div",Nf,[e.id?((0,uo.wg)(),(0,uo.j4)(a,{key:0,keypath:"lists.editing_list"},{listTitle:(0,uo.w5)((function(){return[(0,uo.Uk)((0,po.zw)(e.title),1)]})),_:1})):((0,uo.wg)(),(0,uo.j4)(a,{key:1,keypath:"lists.creating_list"}))])],512),(0,uo._)("div",Zf,[(0,uo._)("div",Wf,[(0,uo._)("label",Bf,(0,po.zw)(e.$t("lists.title")),1),(0,uo.Uk)(" "+(0,po.zw)(" ")+" "),(0,uo.wy)((0,uo._)("input",{id:"list-edit-title",ref:"title","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.titleDraft=t})},null,512),[[ro.nr,e.titleDraft]]),e.id?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"btn button-default follow-button",onClick:t[2]||(t[2]=function(){return e.updateListTitle&&e.updateListTitle.apply(e,arguments)})},(0,po.zw)(e.$t("lists.update_title")),1)):(0,uo.kq)("",!0)]),(0,uo.Wm)(d,{class:"list-member-management","scrollable-tabs":!0},{default:(0,uo.w5)((function(){return[e.id||e.addedUserIds.size>0?((0,uo.wg)(),(0,uo.iD)("div",{key:0,label:e.$t("lists.manage_members"),class:"members-list"},[(0,uo._)("div",Vf,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.membersUsers,(function(t){return(0,uo.wg)(),(0,uo.iD)("div",{key:t.id,class:"member"},[(0,uo.Wm)(c,{user:t},{default:(0,uo.w5)((function(){return[(0,uo._)("button",{class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,po.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,Kf)]})),_:2},1032,["user"])])})),128))])],8,Hf)):(0,uo.kq)("",!0),(0,uo._)("div",{class:"search-list",label:e.$t("lists.add_members")},[(0,uo.Wm)(l,{onResults:e.onSearchResults,onLoading:e.onSearchLoading,onLoadingDone:e.onSearchLoadingDone},null,8,["onResults","onLoading","onLoadingDone"]),e.searchLoading?((0,uo.wg)(),(0,uo.iD)("div",Yf,[(0,uo.Wm)(u)])):((0,uo.wg)(),(0,uo.iD)("div",Jf,[((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.searchUsers,(function(t){return(0,uo.wg)(),(0,uo.iD)("div",{key:t.id,class:"member"},[(0,uo.Wm)(c,{user:t},{default:(0,uo.w5)((function(){return[e.membersUserIds.includes(t.id)?((0,uo.wg)(),(0,uo.iD)("span",Qf,(0,po.zw)(e.$t("lists.is_in_list")),1)):(0,uo.kq)("",!0),e.membersUserIds.includes(t.id)?((0,uo.wg)(),(0,uo.iD)("button",{key:2,class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,po.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,eg)):((0,uo.wg)(),(0,uo.iD)("button",{key:1,class:"btn button-default follow-button",onClick:function(n){return e.toggleAddFromSearch(t)}},(0,po.zw)(e.isAdded(t)?e.$t("general.undo"):e.$t("lists.add_to_list")),9,Xf))]})),_:2},1032,["user"])])})),128))]))],8,Gf)]})),_:1})]),(0,uo._)("div",tg,[ng,e.id?e.reallyDelete?((0,uo.wg)(),(0,uo.iD)(uo.HY,{key:2},[(0,uo.Uk)((0,po.zw)(e.$t("lists.really_delete"))+" ",1),(0,uo._)("button",{class:"btn button-default footer-button",onClick:t[5]||(t[5]=function(){return e.deleteList&&e.deleteList.apply(e,arguments)})},(0,po.zw)(e.$t("general.yes")),1),(0,uo._)("button",{class:"btn button-default footer-button",onClick:t[6]||(t[6]=function(t){return e.reallyDelete=!1})},(0,po.zw)(e.$t("general.no")),1)],64)):((0,uo.wg)(),(0,uo.iD)("button",{key:1,class:"btn button-default footer-button",onClick:t[4]||(t[4]=function(t){return e.reallyDelete=!0})},(0,po.zw)(e.$t("lists.delete")),1)):((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:"btn button-default footer-button",onClick:t[3]||(t[3]=function(){return e.createList&&e.createList.apply(e,arguments)})},(0,po.zw)(e.$t("lists.create")),1))])])}]]);var gg={class:"panel panel-default announcements-page"},vg={class:"panel-heading"},wg={class:"panel-body"},bg={key:0},yg={class:"post-form"},_g={class:"heading"},kg={class:"body"},Sg={class:"footer"},jg=["disabled"],Cg={key:0,class:"alert error"},Og={class:"announcement"},Pg={class:"heading"},zg={class:"body"},Dg={class:"footer"},Ig={key:0,class:"times"},xg={key:0},Tg={key:1},$g={key:2},Ug={key:1,class:"actions"},Mg=["disabled","title"],Ag={key:2,class:"actions"},Lg={key:0,class:"alert error"},Eg={class:"announcement-editor"},Fg=["placeholder","disabled"],Rg={class:"announcement-metadata"},qg={for:"announcement-start-time"},Ng=["type","disabled"],Zg={class:"announcement-metadata"},Wg={for:"announcement-end-time"},Bg=["type","disabled"],Hg={class:"announcement-metadata"},Vg={for:"announcement-all-day"};const Kg={components:{Checkbox:ri.Z},props:{announcement:Object,disabled:Boolean}},Gg=(0,Eo.Z)(Kg,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("Checkbox");return(0,uo.wg)(),(0,uo.iD)("div",Eg,[(0,uo.wy)((0,uo._)("textarea",{ref:"textarea","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.announcement.content=t}),class:"post-textarea",rows:"1",cols:"1",placeholder:e.$t("announcements.post_placeholder"),disabled:e.disabled},null,8,Fg),[[ro.nr,e.announcement.content]]),(0,uo._)("span",Rg,[(0,uo._)("label",qg,(0,po.zw)(e.$t("announcements.start_time_prompt")),1),(0,uo.wy)((0,uo._)("input",{id:"announcement-start-time","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.announcement.startsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,Ng),[[ro.YZ,e.announcement.startsAt]])]),(0,uo._)("span",Zg,[(0,uo._)("label",Wg,(0,po.zw)(e.$t("announcements.end_time_prompt")),1),(0,uo.wy)((0,uo._)("input",{id:"announcement-end-time","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.announcement.endsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,Bg),[[ro.YZ,e.announcement.endsAt]])]),(0,uo._)("span",Hg,[(0,uo.Wm)(s,{id:"announcement-all-day",modelValue:e.announcement.allDay,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.announcement.allDay=t}),disabled:e.disabled},null,8,["modelValue","disabled"]),(0,uo._)("label",Vg,(0,po.zw)(e.$t("announcements.all_day_prompt")),1)])])}]]);function Yg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Jg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Qg={components:{AnnouncementEditor:Gg,RichContent:zu.Z},data:function(){return{editing:!1,editedAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:void 0},editError:""}},props:{announcement:Object},computed:Jg(Jg({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{canEditAnnouncement:function(){return this.currentUser&&this.currentUser.privileges.includes("announcements_manage_announcements")},content:function(){return this.announcement.content},isRead:function(){return this.announcement.read},publishedAt:function(){var e=this.announcement.published_at;if(e)return this.formatTimeOrDate(e,fd.Z.internalToBrowserLocale(this.$i18n.locale))},startsAt:function(){var e=this.announcement.starts_at;if(e)return this.formatTimeOrDate(e,fd.Z.internalToBrowserLocale(this.$i18n.locale))},endsAt:function(){var e=this.announcement.ends_at;if(e)return this.formatTimeOrDate(e,fd.Z.internalToBrowserLocale(this.$i18n.locale))},inactive:function(){return this.announcement.inactive}}),methods:{markAsRead:function(){if(!this.isRead)return this.$store.dispatch("markAnnouncementAsRead",this.announcement.id)},deleteAnnouncement:function(){return this.$store.dispatch("deleteAnnouncement",this.announcement.id)},formatTimeOrDate:function(e,t){var n=new Date(e);return this.announcement.all_day?n.toLocaleDateString(t):n.toLocaleString(t)},enterEditMode:function(){this.editedAnnouncement.content=this.announcement.pleroma.raw_content,this.editedAnnouncement.startsAt=this.announcement.starts_at,this.editedAnnouncement.endsAt=this.announcement.ends_at,this.editedAnnouncement.allDay=this.announcement.all_day,this.editing=!0},submitEdit:function(){var e=this;this.$store.dispatch("editAnnouncement",Jg({id:this.announcement.id},this.editedAnnouncement)).then((function(){e.editing=!1})).catch((function(t){e.editError=t.error}))},cancelEdit:function(){this.editing=!1},clearError:function(){this.editError=void 0}}};function Xg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ev(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const tv={components:{Announcement:(0,Eo.Z)(Qg,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("rich-content"),a=(0,uo.up)("announcement-editor"),c=(0,uo.up)("FAIcon");return(0,uo.wg)(),(0,uo.iD)("div",Og,[(0,uo._)("div",Pg,[(0,uo._)("h4",null,(0,po.zw)(e.$t("announcements.title")),1)]),(0,uo._)("div",zg,[e.editing?((0,uo.wg)(),(0,uo.j4)(a,{key:1,announcement:e.editedAnnouncement},null,8,["announcement"])):((0,uo.wg)(),(0,uo.j4)(s,{key:0,html:e.content,emoji:e.announcement.emojis,"handle-links":!0},null,8,["html","emoji"]))]),(0,uo._)("div",Dg,[e.editing?(0,uo.kq)("",!0):((0,uo.wg)(),(0,uo.iD)("div",Ig,[e.publishedAt?((0,uo.wg)(),(0,uo.iD)("span",xg,(0,po.zw)(e.$t("announcements.published_time_display",{time:e.publishedAt})),1)):(0,uo.kq)("",!0),e.startsAt?((0,uo.wg)(),(0,uo.iD)("span",Tg,(0,po.zw)(e.$t("announcements.start_time_display",{time:e.startsAt})),1)):(0,uo.kq)("",!0),e.endsAt?((0,uo.wg)(),(0,uo.iD)("span",$g,(0,po.zw)(e.$t("announcements.end_time_display",{time:e.endsAt})),1)):(0,uo.kq)("",!0)])),e.editing?((0,uo.wg)(),(0,uo.iD)("div",Ag,[(0,uo._)("button",{class:"btn button-default",onClick:t[3]||(t[3]=function(){return e.submitEdit&&e.submitEdit.apply(e,arguments)})},(0,po.zw)(e.$t("announcements.submit_edit_action")),1),(0,uo._)("button",{class:"btn button-default",onClick:t[4]||(t[4]=function(){return e.cancelEdit&&e.cancelEdit.apply(e,arguments)})},(0,po.zw)(e.$t("announcements.cancel_edit_action")),1),e.editing&&e.editError?((0,uo.wg)(),(0,uo.iD)("div",Lg,[(0,uo.Uk)((0,po.zw)(e.$t("announcements.edit_error",{error:e.error}))+" ",1),(0,uo._)("button",{class:"button-unstyled",onClick:t[5]||(t[5]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,uo.Wm)(c,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,uo.kq)("",!0)])):((0,uo.wg)(),(0,uo.iD)("div",Ug,[e.currentUser?((0,uo.wg)(),(0,uo.iD)("button",{key:0,class:(0,po.C_)(["btn button-default",{toggled:e.isRead}]),disabled:e.inactive,title:e.inactive?e.$t("announcements.inactive_message"):"",onClick:t[0]||(t[0]=function(){return e.markAsRead&&e.markAsRead.apply(e,arguments)})},(0,po.zw)(e.$t("announcements.mark_as_read_action")),11,Mg)):(0,uo.kq)("",!0),e.canEditAnnouncement?((0,uo.wg)(),(0,uo.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.enterEditMode&&e.enterEditMode.apply(e,arguments)})},(0,po.zw)(e.$t("announcements.edit_action")),1)):(0,uo.kq)("",!0),e.canEditAnnouncement?((0,uo.wg)(),(0,uo.iD)("button",{key:2,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.deleteAnnouncement&&e.deleteAnnouncement.apply(e,arguments)})},(0,po.zw)(e.$t("announcements.delete_action")),1)):(0,uo.kq)("",!0)]))])])}]]),AnnouncementEditor:Gg},data:function(){return{newAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:!1},posting:!1,error:void 0}},mounted:function(){this.$store.dispatch("fetchAnnouncements")},computed:ev(ev({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{announcements:function(){return this.$store.state.announcements.announcements},canPostAnnouncement:function(){return this.currentUser&&this.currentUser.privileges.includes("announcements_manage_announcements")}}),methods:{postAnnouncement:function(){var e=this;this.posting=!0,this.$store.dispatch("postAnnouncement",this.newAnnouncement).then((function(){e.newAnnouncement.content="",e.startsAt=void 0,e.endsAt=void 0})).catch((function(t){e.error=t.error})).finally((function(){e.posting=!1}))},clearError:function(){this.error=void 0}}},nv=(0,Eo.Z)(tv,[["render",function(e,t,n,o,r,i){var s=(0,uo.up)("announcement-editor"),a=(0,uo.up)("FAIcon"),c=(0,uo.up)("announcement");return(0,uo.wg)(),(0,uo.iD)("div",gg,[(0,uo._)("div",vg,[(0,uo._)("span",null,(0,po.zw)(e.$t("announcements.page_header")),1)]),(0,uo._)("div",wg,[e.canPostAnnouncement?((0,uo.wg)(),(0,uo.iD)("section",bg,[(0,uo._)("div",yg,[(0,uo._)("div",_g,[(0,uo._)("h4",null,(0,po.zw)(e.$t("announcements.post_form_header")),1)]),(0,uo._)("div",kg,[(0,uo.Wm)(s,{announcement:e.newAnnouncement,disabled:e.posting},null,8,["announcement","disabled"])]),(0,uo._)("div",Sg,[(0,uo._)("button",{class:"btn button-default post-button",disabled:e.posting,onClick:t[0]||(t[0]=(0,ro.iM)((function(){return e.postAnnouncement&&e.postAnnouncement.apply(e,arguments)}),["prevent"]))},(0,po.zw)(e.$t("announcements.post_action")),9,jg),e.error?((0,uo.wg)(),(0,uo.iD)("div",Cg,[(0,uo.Uk)((0,po.zw)(e.$t("announcements.post_error",{error:e.error}))+" ",1),(0,uo._)("button",{class:"button-unstyled",onClick:t[1]||(t[1]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,uo.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,uo.kq)("",!0)])])])):(0,uo.kq)("",!0),((0,uo.wg)(!0),(0,uo.iD)(uo.HY,null,(0,uo.Ko)(e.announcements,(function(e){return(0,uo.wg)(),(0,uo.iD)("section",{key:e.id},[(0,uo.Wm)(c,{announcement:e},null,8,["announcement"])])})),128))])])}]]),ov=function(e){var t=function(t,n,o){e.state.users.currentUser?o():o(e.state.instance.redirectRootNoLogin||"/main/all")},n=[{name:"root",path:"/",redirect:function(t){return(e.state.users.currentUser?e.state.instance.redirectRootLogin:e.state.instance.redirectRootNoLogin)||"/main/all"}},{name:"public-external-timeline",path:"/main/all",component:El},{name:"public-timeline",path:"/main/public",component:Al},{name:"friends",path:"/main/friends",component:Rl,beforeEnter:t},{name:"tag-timeline",path:"/tag/:tag",component:Nl},{name:"bookmarks",path:"/bookmarks",component:Wl},{name:"conversation",path:"/notice/:id",component:Hl,meta:{dontScroll:!0}},{name:"remote-user-profile-acct",path:"/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)",component:zf,beforeEnter:t},{name:"remote-user-profile",path:"/remote-users/:hostname/:username",component:zf,beforeEnter:t},{name:"external-user-profile",path:"/users/$:id",component:ap},{name:"interactions",path:"/users/:username/interactions",component:iu,beforeEnter:t},{name:"dms",path:"/users/:username/dms",component:au,beforeEnter:t},{name:"registration",path:"/registration",component:Fm},{name:"password-reset",path:"/password-reset",component:ah,props:!0},{name:"registration-token",path:"/registration/:token",component:Fm},{name:"friend-requests",path:"/friend-requests",component:fh,beforeEnter:t},{name:"notifications",path:"/:username/notifications",component:aa.default,props:function(){return{disableTeleport:!0}},beforeEnter:t},{name:"login",path:"/login",component:br},{name:"shout-panel",path:"/shout-panel",component:ns,props:function(){return{floating:!1}}},{name:"oauth-callback",path:"/oauth-callback",component:vh,props:function(e){return{code:e.query.code}}},{name:"search",path:"/search",component:Lp,props:function(e){return{query:e.query.query}}},{name:"who-to-follow",path:"/who-to-follow",component:kh,beforeEnter:t},{name:"about",path:"/about",component:kf},{name:"announcements",path:"/announcements",component:nv},{name:"user-profile",path:"/users/:name",component:ap},{name:"legacy-user-profile",path:"/:name",component:ap},{name:"lists",path:"/lists",component:Lf},{name:"lists-timeline",path:"/lists/:id",component:Ff},{name:"lists-edit",path:"/lists/:id/edit",component:fg},{name:"lists-new",path:"/lists/new",component:fg},{name:"edit-navigation",path:"/nav-edit",component:ci,props:function(){return{forceExpand:!0,forceEditMode:!0}},beforeEnter:t}];return e.state.instance.pleromaChatMessagesAvailable&&(n=n.concat([{name:"chat",path:"/users/:username/chats/:recipient_id",component:Pd,meta:{dontScroll:!1},beforeEnter:t},{name:"chats",path:"/users/:username/chats",component:Yu,meta:{dontScroll:!1},beforeEnter:t}])),n};var rv,iv,sv=n(58509),av=new Set([]),cv=function(e){var t=window.innerWidth-document.documentElement.clientWidth;sv.Qp(e,{reserveScrollBarGap:!0}),av.add(e),setTimeout((function(){if(av.size<=1){if(void 0===rv){var e=document.getElementById("nav");rv=window.getComputedStyle(e).getPropertyValue("padding-right"),e.style.paddingRight=rv?"calc(".concat(rv," + ").concat(t,"px)"):"".concat(t,"px")}if(void 0===iv){var n=document.getElementById("app_bg_wrapper");iv=window.getComputedStyle(n).getPropertyValue("right"),n.style.right=iv?"calc(".concat(iv," + ").concat(t,"px)"):"".concat(t,"px")}document.body.classList.add("scroll-locked")}}))},lv=function(e){av.delete(e),setTimeout((function(){0===av.size&&(void 0!==rv&&(document.getElementById("nav").style.paddingRight=rv,rv=void 0),void 0!==iv&&(document.getElementById("app_bg_wrapper").style.right=iv,iv=void 0),document.body.classList.remove("scroll-locked"))})),sv.tG(e)},uv={mounted:function(e,t){t.value&&cv(e)},updated:function(e,t){t.oldValue!==t.value&&(t.value?cv(e):lv(e))},unmounted:function(e){lv(e)}};const dv=function(e){e.directive("body-scroll-lock",uv)};var pv=n(49753);function mv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function hv(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mv(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mv(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var fv=null,gv=function(e){var t=atob(e),n=Uint8Array.from((0,u.Z)(t).map((function(e){return e.charCodeAt(0)})));return(new TextDecoder).decode(n)},vv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=document.getElementById("initial-results")?(fv||(fv=JSON.parse(document.getElementById("initial-results").textContent)),fv):null)&&n[t]){e.next=3;break}return e.abrupt("return",window.fetch(t));case 3:return o=gv(n[t]),r=JSON.parse(o),e.abrupt("return",{ok:!0,json:function(){return r},text:function(){return r}});case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),wv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,vv("/api/v1/instance");case 4:if(!(o=e.sent).ok){e.next=18;break}return e.next=8,o.json();case 8:r=e.sent,s=r.max_toot_chars,a=r.pleroma.vapid_public_key,n.dispatch("setInstanceOption",{name:"textlimit",value:s}),n.dispatch("setInstanceOption",{name:"accountApprovalRequired",value:r.approval_required}),n.dispatch("setInstanceOption",{name:"birthdayRequired",value:!!r.pleroma.metadata.birthday_required}),n.dispatch("setInstanceOption",{name:"birthdayMinAge",value:r.pleroma.metadata.birthday_min_age||0}),a&&n.dispatch("setInstanceOption",{name:"vapidPublicKey",value:a}),e.next=19;break;case 18:throw o;case 19:e.next=25;break;case 21:e.prev=21,e.t0=e.catch(1),console.error("Could not load instance config, potentially fatal"),console.error(e.t0);case 25:case"end":return e.stop()}}),e,null,[[1,21]])})));return function(t){return e.apply(this,arguments)}}(),bv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.store,e.prev=1,e.next=4,window.fetch("/api/pleroma/frontend_configurations");case 4:if(!(n=e.sent).ok){e.next=12;break}return e.next=8,n.json();case 8:return o=e.sent,e.abrupt("return",o.pleroma_fe);case 12:throw n;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.error("Could not load backend-provided frontend config, potentially fatal"),console.error(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),yv=function(){var e=(0,o.Z)(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,window.fetch("/static/config.json");case 3:if(!(t=e.sent).ok){e.next=8;break}return e.abrupt("return",t.json());case 8:throw t;case 9:e.next=16;break;case 11:return e.prev=11,e.t0=e.catch(0),console.warn("Failed to load static/config.json, continuing without it."),console.warn(e.t0),e.abrupt("return",{});case 16:case"end":return e.stop()}}),e,null,[[0,11]])})));return function(){return e.apply(this,arguments)}}(),_v=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,c,l;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.apiConfig,o=t.staticConfig,r=t.store,s=window.___pleromafe_dev_overrides||{},a=window.___pleromafe_mode.NODE_ENV,c={},s.staticConfigPreference&&"development"===a?(console.warn("OVERRIDING API CONFIG WITH STATIC CONFIG"),c=Object.assign({},n,o)):c=Object.assign({},o,n),(l=function(e){r.dispatch("setInstanceOption",{name:e,value:c[e]})})("nsfwCensorImage"),l("background"),l("hidePostStats"),l("hideBotIndication"),l("hideUserStats"),l("hideFilteredStatuses"),l("logo"),r.dispatch("setInstanceOption",{name:"logoMask",value:void 0===c.logoMask||c.logoMask}),r.dispatch("setInstanceOption",{name:"logoMargin",value:void 0===c.logoMargin?0:c.logoMargin}),l("logoLeft"),r.commit("authFlow/setInitialStrategy",c.loginMethod),l("redirectRootNoLogin"),l("redirectRootLogin"),l("showInstanceSpecificPanel"),l("minimalScopesMode"),l("hideMutedPosts"),l("collapseMessageWithSubject"),l("scopeCopy"),l("subjectLineBehavior"),l("postContentType"),l("alwaysShowSubjectInput"),l("showFeaturesPanel"),l("hideSitename"),l("sidebarRight"),e.abrupt("return",r.dispatch("setTheme",c.theme));case 31:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),kv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/terms-of-service.html");case 4:if(!(o=e.sent).ok){e.next=12;break}return e.next=8,o.text();case 8:r=e.sent,n.dispatch("setInstanceOption",{name:"tos",value:r}),e.next=13;break;case 12:throw o;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load TOS"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Sv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,vv("/instance/panel.html");case 4:if(!(o=e.sent).ok){e.next=12;break}return e.next=8,o.text();case 8:r=e.sent,n.dispatch("setInstanceOption",{name:"instanceSpecificPanelContent",value:r}),e.next=13;break;case 12:throw o;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load instance panel"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),jv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/stickers.json");case 4:if(!(r=e.sent).ok){e.next=15;break}return e.next=8,r.json();case 8:return s=e.sent,e.next=11,Promise.all(Object.entries(s).map(function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(0,l.Z)(t,2),o=n[0],r=n[1],e.next=3,window.fetch(r+"pack.json");case 3:if(s=e.sent,a={},!s.ok){e.next=9;break}return e.next=8,s.json();case 8:a=e.sent;case 9:return e.abrupt("return",{pack:o,path:r,meta:a});case 10:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 11:a=e.sent.sort((function(e,t){return e.meta.title.localeCompare(t.meta.title)})),n.dispatch("setInstanceOption",{name:"stickers",value:a}),e.next=16;break;case 15:throw r;case 16:e.next=22;break;case 18:e.prev=18,e.t0=e.catch(1),console.warn("Can't load stickers"),console.warn(e.t0);case 22:case"end":return e.stop()}}),e,null,[[1,18]])})));return function(t){return e.apply(this,arguments)}}(),Cv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,o=n.state,r=n.commit,s=o.oauth,a=o.instance,e.abrupt("return",Re(hv(hv({},s),{},{instance:a.server,commit:r})).then((function(e){return qe(hv(hv({},e),{},{instance:a.server}))})).then((function(e){r("setAppToken",e.access_token),r("setBackendInteractor",Ue(n.getters.getToken()))})));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Ov=function(e){var t=e.store,n=e.accounts.map((function(e){return e.split("/").pop()}));t.dispatch("setInstanceOption",{name:"staffAccounts",value:n})},Pv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,c,l,u,d,p,m,h,f;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,vv("/nodeinfo/2.0.json");case 4:if(!(o=e.sent).ok){e.next=50;break}return e.next=8,o.json();case 8:r=e.sent,s=r.metadata,a=s.features,n.dispatch("setInstanceOption",{name:"name",value:s.nodeName}),n.dispatch("setInstanceOption",{name:"registrationOpen",value:r.openRegistrations}),n.dispatch("setInstanceOption",{name:"mediaProxyAvailable",value:a.includes("media_proxy")}),n.dispatch("setInstanceOption",{name:"safeDM",value:a.includes("safe_dm_mentions")}),n.dispatch("setInstanceOption",{name:"shoutAvailable",value:a.includes("chat")}),n.dispatch("setInstanceOption",{name:"pleromaChatMessagesAvailable",value:a.includes("pleroma_chat_messages")}),n.dispatch("setInstanceOption",{name:"gopherAvailable",value:a.includes("gopher")}),n.dispatch("setInstanceOption",{name:"pollsAvailable",value:a.includes("polls")}),n.dispatch("setInstanceOption",{name:"editingAvailable",value:a.includes("editing")}),n.dispatch("setInstanceOption",{name:"pollLimits",value:s.pollLimits}),n.dispatch("setInstanceOption",{name:"mailerEnabled",value:s.mailerEnabled}),c=s.uploadLimits,n.dispatch("setInstanceOption",{name:"uploadlimit",value:parseInt(c.general)}),n.dispatch("setInstanceOption",{name:"avatarlimit",value:parseInt(c.avatar)}),n.dispatch("setInstanceOption",{name:"backgroundlimit",value:parseInt(c.background)}),n.dispatch("setInstanceOption",{name:"bannerlimit",value:parseInt(c.banner)}),n.dispatch("setInstanceOption",{name:"fieldsLimits",value:s.fieldsLimits}),n.dispatch("setInstanceOption",{name:"restrictedNicknames",value:s.restrictedNicknames}),n.dispatch("setInstanceOption",{name:"postFormats",value:s.postFormats}),l=s.suggestions,n.dispatch("setInstanceOption",{name:"suggestionsEnabled",value:l.enabled}),n.dispatch("setInstanceOption",{name:"suggestionsWeb",value:l.web}),u=r.software,n.dispatch("setInstanceOption",{name:"backendVersion",value:u.version}),n.dispatch("setInstanceOption",{name:"pleromaBackend",value:"pleroma"===u.name}),d=s.private,n.dispatch("setInstanceOption",{name:"private",value:d}),p=window.___pleromafe_commit_hash,n.dispatch("setInstanceOption",{name:"frontendVersion",value:p}),m=s.federation,n.dispatch("setInstanceOption",{name:"tagPolicyAvailable",value:void 0!==m.mrf_policies&&s.federation.mrf_policies.includes("TagPolicy")}),n.dispatch("setInstanceOption",{name:"federationPolicy",value:m}),n.dispatch("setInstanceOption",{name:"federating",value:void 0===m.enabled||m.enabled}),h=s.accountActivationRequired,n.dispatch("setInstanceOption",{name:"accountActivationRequired",value:h}),f=s.staffAccounts,Ov({store:n,accounts:f}),e.next=51;break;case 50:throw o;case 51:e.next=57;break;case 53:e.prev=53,e.t0=e.catch(1),console.warn("Could not load nodeinfo"),console.warn(e.t0);case 57:case"end":return e.stop()}}),e,null,[[1,53]])})));return function(t){return e.apply(this,arguments)}}(),zv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.next=3,Promise.all([bv({store:n}),yv()]);case 3:return o=e.sent,r=o[0],s=o[1],e.next=8,_v({store:n,apiConfig:r,staticConfig:s}).then(Cv({store:n}));case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Dv=function(){var e=(0,o.Z)(i().mark((function e(t){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.abrupt("return",new Promise(function(){var e=(0,o.Z)(i().mark((function e(t,o){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.getters.getUserToken()){e.next=9;break}return e.prev=1,e.next=4,n.dispatch("loginUser",n.getters.getUserToken());case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(1),console.error(e.t0);case 9:t();case 10:case"end":return e.stop()}}),e,null,[[1,6]])})));return function(t,n){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();const Iv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,c,l,u,d,h;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,o=t.i18n,n.dispatch("setLayoutWidth",Me()),n.dispatch("setLayoutHeight",Ae()),pv.Z.initFaviconService(),r=window.___pleromafe_dev_overrides||{},s=void 0!==r.target?r.target:window.location.origin,n.dispatch("setInstanceOption",{name:"server",value:s}),e.next=9,zv({store:n});case 9:return a=n.state.config,c=a.customTheme,l=a.customThemeSource,u=n.state.instance.theme,l||c?l&&l.themeEngineVersion===m.we?(0,p._v)(l):(0,p._v)(c):u||console.error("Failed to load any theme!"),(0,p.mg)(n.state.config),e.next=16,Promise.all([Dv({store:n}),Sv({store:n}),Pv({store:n}),wv({store:n})]);case 16:return n.dispatch("fetchMutes"),n.dispatch("startFetchingAnnouncements"),kv({store:n}),jv({store:n}),d=(0,io.p7)({history:(0,io.PO)(),routes:ov(n),scrollBehavior:function(e,t,n){return!e.matched.some((function(e){return e.meta.dontScroll}))&&(n||{left:0,top:0})}}),(h=(0,ro.ri)(fc)).use(d),h.use(n),h.use(o),h.use(ao()),h.use(dv),h.use(co.ZP),h.component("FAIcon",lo.GN),h.component("FALayers",lo.NH),h.config.unwrapInjectedRef=!0,h.mount("#app"),e.abrupt("return",h);case 33:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();var xv=(window.navigator.language||"en").split("-")[0],Tv=(0,Vn.o)({locale:"en",fallbackLocale:"en",messages:oo.Z.default});oo.Z.setLanguage(Tv,xv);var $v={paths:["serverSideStorage.cache","config","users.lastLoginName","oauth"]};(0,o.Z)(i().mark((function e(){var t,n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,n=[no],e.prev=2,e.next=5,to($v);case 5:o=e.sent,n.push(o),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0),t=!0;case 13:r=(0,s.MT)({modules:{i18n:{getters:{i18n:function(){return Tv.global}}},interface:c,instance:S,users:st,statuses:ae,lists:ue,api:vt,config:f.ZP,serverSideConfig:wt.ZP,serverSideStorage:rn,shout:sn,oauth:an,authFlow:mn,mediaViewer:vn,oauthTokens:wn,reports:kn,polls:Sn,postStatus:jn,editStatus:Cn,statusHistory:On,chats:Bn,announcements:Hn},plugins:n,strict:!1}),t&&r.dispatch("pushGlobalNotice",{messageKey:"errors.storage_unavailable",level:"error"}),Iv({store:r,i18n:Tv});case 16:case"end":return e.stop()}}),e,null,[[2,9]])})))(),window.___pleromafe_mode={NODE_ENV:"production"},window.___pleromafe_commit_hash="eec27700\n",window.___pleromafe_dev_overrides=void 0},85565:(e,t,n)=>{"use strict";n.d(t,{Oi:()=>m,W2:()=>p,ZP:()=>h});var o=n(4942),r=n(29439),i=n(6258),s=n(77394),a=n(72617),c=n(39776);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p={expertLevel:0,colors:{},theme:void 0,customTheme:void 0,customThemeSource:void 0,hideISP:!1,hideInstanceWallpaper:!1,hideShoutbox:!1,hideMutedPosts:void 0,hideMutedThreads:void 0,hideWordFilteredPosts:void 0,muteBotStatuses:void 0,collapseMessageWithSubject:void 0,padEmoji:!0,hideAttachments:!1,hideAttachmentsInConv:!1,maxThumbnails:16,hideNsfw:!0,preloadImage:!0,loopVideo:!0,loopVideoSilentOnly:!0,streaming:!1,emojiReactionsOnTimeline:!0,alwaysShowNewPostButton:!1,autohideFloatingPostButton:!1,pauseOnUnfocused:!0,stopGifs:!0,replyVisibility:"all",thirdColumnMode:"notifications",notificationVisibility:{follows:!0,mentions:!0,likes:!0,repeats:!0,moves:!0,emojiReactions:!0,followRequest:!0,reports:!0,chatMention:!0,polls:!0},webPushNotifications:!1,muteWords:[],highlight:{},interfaceLanguage:(window.navigator.language||"en").split("-")[0],hideScopeNotice:!1,useStreamingApi:!1,sidebarRight:void 0,scopeCopy:void 0,subjectLineBehavior:void 0,alwaysShowSubjectInput:void 0,postContentType:void 0,minimalScopesMode:void 0,hideFilteredStatuses:void 0,modalOnRepeat:void 0,modalOnUnfollow:void 0,modalOnBlock:void 0,modalOnMute:void 0,modalOnDelete:void 0,modalOnLogout:void 0,modalOnApproveFollow:void 0,modalOnDenyFollow:void 0,modalOnRemoveUserFromFollowers:void 0,playVideosInModal:!1,useOneClickNsfw:!1,useContainFit:!0,disableStickyHeaders:!1,showScrollbars:!1,userPopoverAvatarAction:"open",userPopoverOverlay:!1,sidebarColumnWidth:"25rem",contentColumnWidth:"45rem",notifsColumnWidth:"25rem",navbarColumnStretch:!1,greentext:void 0,useAtIcon:void 0,mentionLinkDisplay:void 0,mentionLinkShowTooltip:void 0,mentionLinkShowAvatar:void 0,mentionLinkFadeDomain:void 0,mentionLinkShowYous:void 0,mentionLinkBoldenYou:void 0,hidePostStats:void 0,hideBotIndication:void 0,hideUserStats:void 0,virtualScrolling:void 0,sensitiveByDefault:void 0,conversationDisplay:void 0,conversationTreeAdvanced:void 0,conversationOtherRepliesButton:void 0,conversationTreeFadeAncestors:void 0,maxDepthInThread:void 0},m=Object.entries(p).filter((function(e){var t=(0,r.Z)(e,2);return t[0],void 0===t[1]})).map((function(e){var t=(0,r.Z)(e,2),n=t[0];return t[1],n}));const h={state:d({},p),getters:{defaultConfig:function(e,t,n,o){var r=n.instance;return d(d({},p),Object.fromEntries(m.map((function(e){return[e,r[e]]}))))},mergedConfig:function(e,t,n,o){return d(d({},o.defaultConfig),Object.fromEntries(Object.entries(e).filter((function(e){var t=(0,r.Z)(e,2);return t[0],void 0!==t[1]}))))}},mutations:{setOption:function(e,t){var n=t.name,o=t.value;e[n]=o},setHighlight:function(e,t){var n=t.user,o=t.color,r=t.type,i=this.state.config.highlight[n];o||r?e.highlight[n]={color:o||i.color,type:r||i.type}:delete e.highlight[n]}},actions:{loadSettings:function(e,t){var n,o=e.dispatch,r=new Set(Object.keys(p)),i=new Set(Object.keys(t)),s=new Set,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(i);try{for(a.s();!(n=a.n()).done;){var c=n.value;r.has(c)&&s.add(c)}}catch(e){a.e(e)}finally{a.f()}s.forEach((function(e){return o("setOption",{name:e,value:t[e]})}))},setHighlight:function(e,t){var n=e.commit;e.dispatch,n("setHighlight",{user:t.user,color:t.color,type:t.type})},setOption:function(e,t){var n=e.commit,o=e.dispatch,r=e.state,l=t.name,u=t.value;switch(n("setOption",{name:l,value:u}),l){case"theme":(0,s.bY)(u);break;case"sidebarColumnWidth":case"contentColumnWidth":case"notifsColumnWidth":(0,s.mg)(r);break;case"customTheme":case"customThemeSource":(0,s._v)(u);break;case"interfaceLanguage":a.Z.setLanguage(this.getters.i18n,u),o("loadUnicodeEmojiData",u),i.Z.set("userLanguage",c.Z.internalToBackendLocaleMulti(u));break;case"thirdColumnMode":o("setLayoutWidth",void 0)}}}}},65405:(e,t,n)=>{"use strict";n.d(t,{W2:()=>m,ZP:()=>h});var o=n(29439),r=n(4942),i=n(36968),s=n.n(i),a=n(27361),c=n.n(a);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var u=function(e,t){var n=e.rootState,o=e.commit,r=t.path,i=t.value,a={};return s()(a,r,i),n.api.backendInteractor.updateProfile({params:a}).then((function(e){o("addNewUsers",[e]),o("setCurrentUser",e)}))},d=function(e,t){var n=e.rootState,o=e.commit,r=t.path,i=t.value,a=t.oldValue,c={};return s()(c,r,i),n.api.backendInteractor.updateNotificationSettings({settings:c}).then((function(e){"success"===e.status?o("confirmServerSideOption",{name,value:i}):o("confirmServerSideOption",{name,value:a})}))},p={defaultScope:"source.privacy",defaultNSFW:"source.sensitive",stripRichContent:{get:"source.pleroma.no_rich_text",set:"no_rich_text"},locked:"locked",acceptChatMessages:{get:"pleroma.accepts_chat_messages",set:"accepts_chat_messages"},allowFollowingMove:{get:"pleroma.allow_following_move",set:"allow_following_move"},discoverable:{get:"source.pleroma.discoverable",set:"discoverable"},hideFavorites:{get:"pleroma.hide_favorites",set:"hide_favorites"},hideFollowers:{get:"pleroma.hide_followers",set:"hide_followers"},hideFollows:{get:"pleroma.hide_follows",set:"hide_follows"},hideFollowersCount:{get:"pleroma.hide_followers_count",set:"hide_followers_count"},hideFollowsCount:{get:"pleroma.hide_follows_count",set:"hide_follows_count"},webPushHideContents:{get:"pleroma.notification_settings.hide_notification_contents",set:"hide_notification_contents",api:d},blockNotificationsFromStrangers:{get:"pleroma.notification_settings.block_from_strangers",set:"block_from_strangers",api:d}},m=Object.fromEntries(Object.keys(p).map((function(e){return[e,null]})));const h={state:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},m),mutations:{confirmServerSideOption:function(e,t){var n=t.name,o=t.value;s()(e,n,o)},wipeServerSideOption:function(e,t){var n=t.name;s()(e,n,null)},wipeAllServerSideOptions:function(e){Object.keys(p).forEach((function(t){s()(e,t,null)}))},setCurrentUser:function(e,t){Object.entries(p).forEach((function(n){var r=(0,o.Z)(n,2),i=r[0],a=r[1],l=a.get,u=void 0===l?a:l;s()(e,i,c()(t._original,u))}))}},actions:{setServerSideOption:function(e,t){var n=e.rootState,o=e.state,r=e.commit,i=(e.dispatch,t.name),s=t.value,a=c()(o,i),l=p[i];if(!l)throw new Error("Invalid server-side setting");var d=l.set,m=void 0===d?l:d,h=l.api,f=void 0===h?u:h;r("wipeServerSideOption",{name:i}),f({rootState:n,commit:r},{path:m,value:s,oldValue:a}).catch((function(e){console.warn("Error setting server-side option:",e),r("confirmServerSideOption",{name:i,value:a})}))},logout:function(e){(0,e.commit)("wipeAllServerSideOptions")}}}},77776:(e,t,n)=>{"use strict";n.d(t,{ro:()=>Ue,_z:()=>Ae,ZP:()=>Le,pR:()=>xe});var o=n(15861),r=n(44925),i=n(29439),s=n(4942),a=n(27361),c=n.n(a),l=n(10928),u=n.n(l),d=n(57043),p=n.n(d),m=n(35161),h=n.n(m),f=n(66073),g=n.n(f),v=n(64687),w=n.n(v),b=n(27742),y=n(71002),_=n(43144),k=n(15671),S=n(97326),j=n(60136),C=n(82963),O=n(61120),P=n(72407),z=n(93433),D=n(48403),I=n.n(D);function x(e,t,n,o){this.name="StatusCodeError",this.statusCode=e,this.message=e+" - "+(JSON&&JSON.stringify?JSON.stringify(t):t),this.error=t,this.options=n,this.response=o,Error.captureStackTrace&&Error.captureStackTrace(this)}x.prototype=Object.create(Error.prototype),x.prototype.constructor=x;var T=function(e){(0,j.Z)(r,e);var t,n,o=(t=r,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,o=(0,O.Z)(t);if(n){var r=(0,O.Z)(this).constructor;e=Reflect.construct(o,arguments,r)}else e=o.apply(this,arguments);return(0,C.Z)(this,e)});function r(e){var t,n;(0,k.Z)(this,r),t=o.call(this),Error.captureStackTrace&&Error.captureStackTrace((0,S.Z)(t));try{if("string"==typeof e&&(e=JSON.parse(e)).hasOwnProperty("error")&&(e=JSON.parse(e.error)),"object"===(0,y.Z)(e)){var s=JSON.parse(e.error);s.ap_id&&(s.username=s.ap_id,delete s.ap_id),t.message=(n=s,Object.entries(n).reduce((function(e,t){var n=(0,i.Z)(t,2),o=n[0],r=n[1].reduce((function(e,t){return e+[I()(o.replace(/_/g," ")),t].join(" ")+". "}),"");return[].concat((0,z.Z)(e),[r])}),[]))}else t.message=e}catch(n){t.message=e}return t}return(0,_.Z)(r)}((0,P.Z)(Error)),$=["nickname"],U=["id","credentials"];function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function A(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var L="/api/pleroma/aliases",E="/api/pleroma/admin/users/tag",F=function(e,t){return"/api/pleroma/admin/users/".concat(e,"/permission_group/").concat(t)},R=function(e){return"/api/v1/notifications/".concat(e,"/dismiss")},q=function(e){return"/api/v1/statuses/".concat(e,"/favourite")},N=function(e){return"/api/v1/statuses/".concat(e,"/unfavourite")},Z=function(e){return"/api/v1/statuses/".concat(e,"/reblog")},W=function(e){return"/api/v1/statuses/".concat(e,"/unreblog")},B="/api/v1/timelines/public",H=function(e){return"/api/v1/statuses/".concat(e)},V=function(e){return"/api/v1/accounts/".concat(e,"/statuses")},K=function(e){return"/api/v1/lists/".concat(e)},G=function(e){return"/api/v1/timelines/list/".concat(e)},Y=function(e){return"/api/v1/lists/".concat(e,"/accounts")},J=function(e){return"/api/v1/timelines/tag/".concat(e)},Q=function(e){return"/api/v1/accounts/".concat(e,"/mute")},X=function(e){return"/api/v1/accounts/".concat(e,"/unmute")},ee=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/subscribe")},te=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/unsubscribe")},ne=function(e){return"/api/v1/accounts/".concat(e,"/note")},oe=function(e){return"/api/v1/statuses/".concat(e,"/bookmark")},re=function(e){return"/api/v1/statuses/".concat(e,"/unbookmark")},ie="/api/v1/media",se=function(e){return"/api/v1/statuses/".concat(e,"/favourited_by")},ae=function(e){return"/api/v1/statuses/".concat(e,"/reblogged_by")},ce="/api/v1/accounts/update_credentials",le=function(e){return"/api/v1/statuses/".concat(e,"/pin")},ue=function(e){return"/api/v1/statuses/".concat(e,"/unpin")},de=function(e){return"/api/v1/statuses/".concat(e,"/mute")},pe=function(e){return"/api/v1/statuses/".concat(e,"/unmute")},me="/api/v1/domain_blocks",he=function(e){return"/api/v1/announcements/".concat(e,"/dismiss")},fe=function(e){return"/api/v1/pleroma/statuses/".concat(e,"/reactions")},ge=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},ve=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},we=function(e){return"/api/v1/pleroma/chats/".concat(e,"/messages")},be=function(e){return"/api/v1/pleroma/chats/".concat(e,"/read")},ye=function(e,t){return"/api/v1/pleroma/chats/".concat(e,"/messages/").concat(t)},_e="/api/v1/pleroma/backups",ke=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},Se=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},je=window.fetch,Ce=function(e,t){var n=""+e;return(t=t||{}).credentials="same-origin",je(n,t)},Oe=function(e){var t=e.method,n=e.url,o=e.params,r=e.payload,s=e.credentials,a=e.headers,c={method:t,headers:A({Accept:"application/json","Content-Type":"application/json"},void 0===a?{}:a)};return o&&(n+="?"+Object.entries(o).map((function(e){var t=(0,i.Z)(e,2),n=t[0],o=t[1];return encodeURIComponent(n)+"="+encodeURIComponent(o)})).join("&")),r&&(c.body=JSON.stringify(r)),s&&(c.headers=A(A({},c.headers),Pe(s))),Ce(n,c).then((function(e){return new Promise((function(t,o){return e.json().then((function(r){return e.ok?t(r):o(new x(e.status,r,{url:n,options:c},e))})).catch((function(t){return o(new x(e.status,t,{url:n,options:c},e))}))}))}))},Pe=function(e){return e?{Authorization:"Bearer ".concat(e)}:{}},ze=function(e){var t=e.id,n=e.credentials,o="".concat("/api/v1/accounts","/").concat(t);return Oe({url:o,credentials:n}).then((function(e){return(0,b.nL)(e)}))},De=function(e){var t=e.id,n=e.maxId,o=e.sinceId,r=e.limit,i=void 0===r?20:r,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/following")}(t),c=[n&&"max_id=".concat(n),o&&"since_id=".concat(o),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Ce(a+=c?"?"+c:"",{headers:Pe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},Ie=function(e){var t=e.content,n=e.startsAt,o=e.endsAt,r=e.allDay,i={content:t};return void 0!==n&&(i.starts_at=n?new Date(n).toISOString():null),void 0!==o&&(i.ends_at=o?new Date(o).toISOString():null),void 0!==r&&(i.all_day=r),i},xe=function(e){var t=e.credentials,n=e.stream,o=e.args,r=void 0===o?{}:o;return Object.entries(A(A({},t?{access_token:t}:{}),{},{stream:n},r)).reduce((function(e,t){var n=(0,i.Z)(t,2),o=n[0],r=n[1];return e+"".concat(o,"=").concat(r,"&")}),"/api/v1/streaming?")},Te=new Set(["update","notification","delete","filters_changed","status.update"]),$e=new Set(["pleroma:chat_update"]),Ue=function(e){var t=e.url,n=e.preprocessor,o=void 0===n?Me:n,r=e.id,i=void 0===r?"Unknown":r,s=new EventTarget,a=new WebSocket(t);if(!a)throw new Error("Failed to create socket ".concat(i));var c=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e};e.addEventListener(t,(function(e){s.dispatchEvent(new CustomEvent(t,{detail:n(e)}))}))};return a.addEventListener("open",(function(e){console.debug("[WS][".concat(i,"] Socket connected"),e)})),a.addEventListener("error",(function(e){console.debug("[WS][".concat(i,"] Socket errored"),e)})),a.addEventListener("close",(function(e){console.debug("[WS][".concat(i,"] Socket disconnected with code ").concat(e.code),e)})),c(a,"open"),c(a,"close"),c(a,"message",o),c(a,"error"),s.close=function(){a.close(1e3,"Shutting down socket")},s.getState=function(){return a.readyState},s},Me=function(e){var t=e.data;if(t){var n=JSON.parse(t),o=n.event,r=n.payload;if(!Te.has(o)&&!$e.has(o))return console.warn("Unknown event",e),null;if("delete"===o)return{event:o,id:r};var i=r?JSON.parse(r):null;return"update"===o||"status.update"===o?{event:o,status:(0,b.Wn)(i)}:"notification"===o?{event:o,notification:(0,b.eM)(i)}:"pleroma:chat_update"===o?{event:o,chatUpdate:(0,b._J)(i)}:void 0}},Ae=Object.freeze({JOINED:1,CLOSED:2,ERROR:3,DISABLED:4,STARTING:5,STARTING_INITIAL:6});const Le={verifyCredentials:function(e){return Ce("/api/v1/accounts/verify_credentials",{headers:Pe(e)}).then((function(e){return e.ok?e.json():{error:e}})).then((function(e){return e.error?e:(0,b.nL)(e)}))},fetchTimeline:function(e){var t=e.timeline,n=e.credentials,r=e.since,i=void 0!==r&&r,s=e.until,a=void 0!==s&&s,c=e.userId,l=void 0!==c&&c,u=e.listId,d=void 0!==u&&u,p=e.tag,m=void 0!==p&&p,f=e.withMuted,g=void 0!==f&&f,v=e.replyVisibility,y=void 0===v?"all":v,_=e.includeTypes,k=void 0===_?[]:_,S="notifications"===t,j=[],C={public:B,friends:"/api/v1/timelines/home",dms:"/api/v1/timelines/direct",notifications:"/api/v1/notifications",publicAndExternal:B,user:V,media:V,list:G,favorites:"/api/v1/favourites",tag:J,bookmarks:"/api/v1/bookmarks"}[t];"user"!==t&&"media"!==t||(C=C(l)),"list"===t&&(C=C(d)),i&&j.push(["since_id",i]),a&&j.push(["max_id",a]),m&&(C=C(m)),"media"===t&&j.push(["only_media",1]),"public"===t&&j.push(["local",!0]),"public"!==t&&"publicAndExternal"!==t||j.push(["only_media",!1]),"favorites"!==t&&"bookmarks"!==t&&j.push(["with_muted",g]),"all"!==y&&j.push(["reply_visibility",y]),k.length>0&&k.forEach((function(e){j.push(["include_types[]",e])})),j.push(["limit",20]);var O=h()(j,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return C+="?".concat(O),Ce(C,{headers:Pe(n)}).then(function(){var e=(0,o.Z)(w().mark((function e(n){var o,r,i;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.ok,e.next=3,n.json();case 3:if(r=e.sent,!o||r.errors){e.next=9;break}return i=(0,b.Nw)(n.headers.get("Link"),{flakeId:"bookmarks"!==t&&"notifications"!==t}),e.abrupt("return",{data:r.map(S?b.eM:b.Wn),pagination:i});case 9:return r.errors||(r.errors=[]),r.status=n.status,r.statusText=n.statusText,e.abrupt("return",r);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},fetchPinnedStatuses:function(e){var t=e.id,n=e.credentials,o=V(t)+"?pinned=true";return Oe({url:o,credentials:n}).then((function(e){return e.map(b.Wn)}))},fetchConversation:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/statuses/".concat(e,"/context")}(t);return Ce(o,{headers:Pe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){var t=e.ancestors,n=e.descendants;return{ancestors:t.map(b.Wn),descendants:n.map(b.Wn)}}))},fetchStatus:function(e){var t=e.id,n=e.credentials,o=H(t);return Ce(o,{headers:Pe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.Wn)(e)}))},fetchStatusSource:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/statuses/".concat(e,"/source")}(t);return Ce(o,{headers:Pe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching source",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.P7)(e)}))},fetchStatusHistory:function(e){var t,n=e.status,o=e.credentials,r=(t=n.id,"/api/v1/statuses/".concat(t,"/history"));return Oe({url:r,credentials:o}).then((function(e){return e.reverse(),e.map((function(e){return e.originalStatus=n,(0,b.Wn)(e)}))}))},fetchFriends:De,exportFriends:function(e){var t=e.id,n=e.credentials;return new Promise(function(){var e=(0,o.Z)(w().mark((function e(o,r){var i,s,a,c;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,i=[],s=!0;case 3:if(!s){e.next=12;break}return a=i.length>0?u()(i).id:void 0,e.next=7,De({id:t,maxId:a,credentials:n});case 7:c=e.sent,i=p()(i,c),0===c.length&&(s=!1),e.next=3;break;case 12:o(i),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),r(e.t0);case 18:case"end":return e.stop()}}),e,null,[[0,15]])})));return function(t,n){return e.apply(this,arguments)}}())},fetchFollowers:function(e){var t=e.id,n=e.maxId,o=e.sinceId,r=e.limit,i=void 0===r?20:r,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/followers")}(t),c=[n&&"max_id=".concat(n),o&&"since_id=".concat(o),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Ce(a+=c?"?"+c:"",{headers:Pe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},followUser:function(e){var t=e.id,n=e.credentials,o=(0,r.Z)(e,U),i=function(e){return"/api/v1/accounts/".concat(e,"/follow")}(t),s={};return void 0!==o.reblogs&&(s.reblogs=o.reblogs),Ce(i,{body:JSON.stringify(s),headers:A(A({},Pe(n)),{},{"Content-Type":"application/json"}),method:"POST"}).then((function(e){return e.json()}))},unfollowUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/accounts/".concat(e,"/unfollow")}(t);return Ce(o,{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},pinOwnStatus:function(e){var t=e.id,n=e.credentials;return Oe({url:le(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unpinOwnStatus:function(e){var t=e.id,n=e.credentials;return Oe({url:ue(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},muteConversation:function(e){var t=e.id,n=e.credentials;return Oe({url:de(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unmuteConversation:function(e){var t=e.id,n=e.credentials;return Oe({url:pe(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},blockUser:function(e){var t=e.id,n=e.credentials;return Ce(function(e){return"/api/v1/accounts/".concat(e,"/block")}(t),{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},unblockUser:function(e){var t=e.id,n=e.credentials;return Ce(function(e){return"/api/v1/accounts/".concat(e,"/unblock")}(t),{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},removeUserFromFollowers:function(e){var t=e.id,n=e.credentials;return Ce(function(e){return"/api/v1/accounts/".concat(e,"/remove_from_followers")}(t),{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},editUserNote:function(e){var t=e.id,n=e.credentials,o=e.comment;return Oe({url:ne(t),credentials:n,payload:{comment:o},method:"POST"})},fetchUser:ze,fetchUserByName:function(e){var t=e.name,n=e.credentials;return Oe({url:"/api/v1/accounts/lookup",credentials:n,params:{acct:t}}).then((function(e){return e.id})).catch((function(e){if(e&&404===e.statusCode)return t;throw e})).then((function(e){return ze({id:e,credentials:n})}))},fetchUserRelationship:function(e){var t=e.id,n=e.credentials,o="".concat("/api/v1/accounts/relationships","/?id=").concat(t);return Ce(o,{headers:Pe(n)}).then((function(e){return new Promise((function(t,n){return e.json().then((function(r){return e.ok?t(r):n(new x(e.status,r,{url:o},e))}))}))}))},favorite:function(e){var t=e.id,n=e.credentials;return Oe({url:q(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unfavorite:function(e){var t=e.id,n=e.credentials;return Oe({url:N(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},retweet:function(e){var t=e.id,n=e.credentials;return Oe({url:Z(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unretweet:function(e){var t=e.id,n=e.credentials;return Oe({url:W(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},bookmarkStatus:function(e){var t=e.id,n=e.credentials;return Oe({url:oe(t),headers:Pe(n),method:"POST"})},unbookmarkStatus:function(e){var t=e.id,n=e.credentials;return Oe({url:re(t),headers:Pe(n),method:"POST"})},postStatus:function(e){var t=e.credentials,n=e.status,o=e.spoilerText,r=e.visibility,i=e.sensitive,s=e.poll,a=e.mediaIds,c=void 0===a?[]:a,l=e.inReplyToStatusId,u=e.contentType,d=e.preview,p=e.idempotencyKey,m=new FormData,h=s.options||[];if(m.append("status",n),m.append("source","Pleroma FE"),o&&m.append("spoiler_text",o),r&&m.append("visibility",r),i&&m.append("sensitive",i),u&&m.append("content_type",u),c.forEach((function(e){m.append("media_ids[]",e)})),h.some((function(e){return""!==e}))){var f={expires_in:s.expiresIn,multiple:s.multiple};Object.keys(f).forEach((function(e){m.append("poll[".concat(e,"]"),f[e])})),h.forEach((function(e){m.append("poll[options][]",e)}))}l&&m.append("in_reply_to_id",l),d&&m.append("preview","true");var g=Pe(t);return p&&(g["idempotency-key"]=p),Ce("/api/v1/statuses",{body:m,method:"POST",headers:g}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},editStatus:function(e){var t=e.id,n=e.credentials,o=e.status,r=e.spoilerText,i=e.sensitive,s=e.poll,a=e.mediaIds,c=void 0===a?[]:a,l=e.contentType,u=new FormData,d=s.options||[];if(u.append("status",o),r&&u.append("spoiler_text",r),i&&u.append("sensitive",i),l&&u.append("content_type",l),c.forEach((function(e){u.append("media_ids[]",e)})),d.some((function(e){return""!==e}))){var p={expires_in:s.expiresIn,multiple:s.multiple};Object.keys(p).forEach((function(e){u.append("poll[".concat(e,"]"),p[e])})),d.forEach((function(e){u.append("poll[options][]",e)}))}var m=Pe(n);return Ce(H(t),{body:u,method:"PUT",headers:m}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},deleteStatus:function(e){var t=e.id,n=e.credentials;return Ce(function(e){return"/api/v1/statuses/".concat(e)}(t),{headers:Pe(n),method:"DELETE"})},uploadMedia:function(e){var t=e.formData,n=e.credentials;return Ce(ie,{body:t,method:"POST",headers:Pe(n)}).then((function(e){return e.json()})).then((function(e){return(0,b.cO)(e)}))},setMediaDescription:function(e){var t=e.id,n=e.description,o=e.credentials;return Oe({url:"".concat(ie,"/").concat(t),method:"PUT",headers:Pe(o),payload:{description:n}}).then((function(e){return(0,b.cO)(e)}))},fetchMutes:function(e){var t=e.credentials;return Oe({url:"/api/v1/mutes/",credentials:t}).then((function(e){return e.map(b.nL)}))},muteUser:function(e){var t=e.id,n=e.expiresIn,o=e.credentials,r={};return n&&(r.expires_in=n),Oe({url:Q(t),credentials:o,method:"POST",payload:r})},unmuteUser:function(e){var t=e.id,n=e.credentials;return Oe({url:X(t),credentials:n,method:"POST"})},subscribeUser:function(e){var t=e.id,n=e.credentials;return Oe({url:ee(t),credentials:n,method:"POST"})},unsubscribeUser:function(e){var t=e.id,n=e.credentials;return Oe({url:te(t),credentials:n,method:"POST"})},fetchBlocks:function(e){var t=e.credentials;return Oe({url:"/api/v1/blocks/",credentials:t}).then((function(e){return e.map(b.nL)}))},fetchOAuthTokens:function(e){var t=e.credentials;return Ce("/api/oauth_tokens.json",{headers:Pe(t)}).then((function(e){if(e.ok)return e.json();throw new Error("Error fetching auth tokens",e)}))},revokeOAuthToken:function(e){var t=e.id,n=e.credentials,o="/api/oauth_tokens/".concat(t);return Ce(o,{headers:Pe(n),method:"DELETE"})},tagUser:function(e){var t=e.tag,n=e.credentials,o={nicknames:[e.user.screen_name],tags:[t]},r=Pe(n);return r["Content-Type"]="application/json",Ce(E,{method:"PUT",headers:r,body:JSON.stringify(o)})},untagUser:function(e){var t=e.tag,n=e.credentials,o={nicknames:[e.user.screen_name],tags:[t]},r=Pe(n);return r["Content-Type"]="application/json",Ce(E,{method:"DELETE",headers:r,body:JSON.stringify(o)})},deleteUser:function(e){var t=e.credentials,n=e.user.screen_name,o=Pe(t);return Ce("".concat("/api/pleroma/admin/users","?nickname=").concat(n),{method:"DELETE",headers:o})},addRight:function(e){var t=e.right,n=e.credentials,o=e.user.screen_name;return Ce(F(o,t),{method:"POST",headers:Pe(n),body:{}})},deleteRight:function(e){var t=e.right,n=e.credentials,o=e.user.screen_name;return Ce(F(o,t),{method:"DELETE",headers:Pe(n),body:{}})},activateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Oe({url:"/api/pleroma/admin/users/activate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return c()(e,"users.0")}))},deactivateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Oe({url:"/api/pleroma/admin/users/deactivate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return c()(e,"users.0")}))},register:function(e){var t=e.params,n=e.credentials,o=t.nickname,i=(0,r.Z)(t,$);return Ce("/api/v1/accounts",{method:"POST",headers:A(A({},Pe(n)),{},{"Content-Type":"application/json"}),body:JSON.stringify(A({nickname:o,locale:"en_US",agreement:!0},i))}).then((function(e){return e.ok?e.json():e.json().then((function(e){throw new T(e)}))}))},getCaptcha:function(){return Ce("/api/pleroma/captcha").then((function(e){return e.json()}))},updateProfileImages:function(e){var t=e.credentials,n=e.avatar,o=void 0===n?null:n,r=e.avatarName,i=void 0===r?null:r,s=e.banner,a=void 0===s?null:s,c=e.background,l=void 0===c?null:c,u=new FormData;return null!==o&&(null!==i?u.append("avatar",o,i):u.append("avatar",o)),null!==a&&u.append("header",a),null!==l&&u.append("pleroma_background_image",l),Ce(ce,{headers:Pe(t),method:"PATCH",body:u}).then((function(e){return e.json()})).then((function(e){if(e.error)throw new Error(e.error);return(0,b.nL)(e)}))},updateProfile:function(e){var t=e.credentials,n=e.params;return Oe({url:ce,method:"PATCH",payload:n,credentials:t}).then((function(e){return(0,b.nL)(e)}))},importMutes:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Ce("/api/pleroma/mutes_import",{body:o,method:"POST",headers:Pe(n)}).then((function(e){return e.ok}))},importBlocks:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Ce("/api/pleroma/blocks_import",{body:o,method:"POST",headers:Pe(n)}).then((function(e){return e.ok}))},importFollows:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Ce("/api/pleroma/follow_import",{body:o,method:"POST",headers:Pe(n)}).then((function(e){return e.ok}))},deleteAccount:function(e){var t=e.credentials,n=e.password,o=new FormData;return o.append("password",n),Ce("/api/pleroma/delete_account",{body:o,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},changeEmail:function(e){var t=e.credentials,n=e.email,o=e.password,r=new FormData;return r.append("email",n),r.append("password",o),Ce("/api/pleroma/change_email",{body:r,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},moveAccount:function(e){var t=e.credentials,n=e.password,o=e.targetAccount,r=new FormData;return r.append("password",n),r.append("target_account",o),Ce("/api/pleroma/move_account",{body:r,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},addAlias:function(e){var t=e.credentials,n=e.alias;return Oe({url:L,method:"PUT",credentials:t,payload:{alias:n}})},deleteAlias:function(e){var t=e.credentials,n=e.alias;return Oe({url:L,method:"DELETE",credentials:t,payload:{alias:n}})},listAliases:function(e){var t=e.credentials;return Oe({url:L,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},changePassword:function(e){var t=e.credentials,n=e.password,o=e.newPassword,r=e.newPasswordConfirmation,i=new FormData;return i.append("password",n),i.append("new_password",o),i.append("new_password_confirmation",r),Ce("/api/pleroma/change_password",{body:i,method:"POST",headers:Pe(t)}).then((function(e){return e.json()}))},settingsMFA:function(e){var t=e.credentials;return Ce("/api/pleroma/accounts/mfa",{headers:Pe(t),method:"GET"}).then((function(e){return e.json()}))},mfaDisableOTP:function(e){var t=e.credentials,n=e.password,o=new FormData;return o.append("password",n),Ce("/api/pleroma/accounts/mfa/totp",{body:o,method:"DELETE",headers:Pe(t)}).then((function(e){return e.json()}))},generateMfaBackupCodes:function(e){var t=e.credentials;return Ce("/api/pleroma/accounts/mfa/backup_codes",{headers:Pe(t),method:"GET"}).then((function(e){return e.json()}))},mfaSetupOTP:function(e){var t=e.credentials;return Ce("/api/pleroma/accounts/mfa/setup/totp",{headers:Pe(t),method:"GET"}).then((function(e){return e.json()}))},mfaConfirmOTP:function(e){var t=e.credentials,n=e.password,o=e.token,r=new FormData;return r.append("password",n),r.append("code",o),Ce("/api/pleroma/accounts/mfa/confirm/totp",{body:r,headers:Pe(t),method:"POST"}).then((function(e){return e.json()}))},addBackup:function(e){var t=e.credentials;return Oe({url:_e,method:"POST",credentials:t})},listBackups:function(e){var t=e.credentials;return Oe({url:_e,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},fetchFollowRequests:function(e){var t=e.credentials;return Ce("/api/v1/follow_requests",{headers:Pe(t)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},fetchLists:function(e){var t=e.credentials;return Ce("/api/v1/lists",{headers:Pe(t)}).then((function(e){return e.json()}))},createList:function(e){var t=e.title,n=e.credentials,o=Pe(n);return o["Content-Type"]="application/json",Ce("/api/v1/lists",{headers:o,method:"POST",body:JSON.stringify({title:t})}).then((function(e){return e.json()}))},getList:function(e){var t=e.listId,n=e.credentials,o=K(t);return Ce(o,{headers:Pe(n)}).then((function(e){return e.json()}))},updateList:function(e){var t=e.listId,n=e.title,o=e.credentials,r=K(t),i=Pe(o);return i["Content-Type"]="application/json",Ce(r,{headers:i,method:"PUT",body:JSON.stringify({title:n})})},getListAccounts:function(e){var t=e.listId,n=e.credentials,o=Y(t);return Ce(o,{headers:Pe(n)}).then((function(e){return e.json()})).then((function(e){return e.map((function(e){return e.id}))}))},addAccountsToList:function(e){var t=e.listId,n=e.accountIds,o=e.credentials,r=Y(t),i=Pe(o);return i["Content-Type"]="application/json",Ce(r,{headers:i,method:"POST",body:JSON.stringify({account_ids:n})})},removeAccountsFromList:function(e){var t=e.listId,n=e.accountIds,o=e.credentials,r=Y(t),i=Pe(o);return i["Content-Type"]="application/json",Ce(r,{headers:i,method:"DELETE",body:JSON.stringify({account_ids:n})})},deleteList:function(e){var t=e.listId,n=e.credentials,o=K(t);return Ce(o,{method:"DELETE",headers:Pe(n)})},approveUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/follow_requests/".concat(e,"/authorize")}(t);return Ce(o,{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},denyUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/follow_requests/".concat(e,"/reject")}(t);return Ce(o,{headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},suggestions:function(e){var t=e.credentials;return Ce("/api/v1/suggestions",{headers:Pe(t)}).then((function(e){return e.json()}))},markNotificationsAsSeen:function(e){var t=e.id,n=e.credentials,o=e.single,r=void 0!==o&&o,i=new FormData;return r?i.append("id",t):i.append("max_id",t),Ce("/api/v1/pleroma/notifications/read",{body:i,headers:Pe(n),method:"POST"}).then((function(e){return e.json()}))},dismissNotification:function(e){var t=e.credentials,n=e.id;return Oe({url:R(n),method:"POST",payload:{id:n},credentials:t})},vote:function(e){var t,n=e.pollId,o=e.choices,r=e.credentials;return(new FormData).append("choices",o),Oe({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t,"/votes")),method:"POST",credentials:r,payload:{choices:o}})},fetchPoll:function(e){var t,n=e.pollId,o=e.credentials;return Oe({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t)),method:"GET",credentials:o})},fetchFavoritedByUsers:function(e){var t=e.id,n=e.credentials;return Oe({url:se(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchRebloggedByUsers:function(e){var t=e.id,n=e.credentials;return Oe({url:ae(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchEmojiReactions:function(e){var t=e.id,n=e.credentials;return Oe({url:fe(t),credentials:n}).then((function(e){return e.map((function(e){return e.accounts=e.accounts.map(b.nL),e}))}))},reactWithEmoji:function(e){var t=e.id,n=e.emoji,o=e.credentials;return Oe({url:ge(t,n),method:"PUT",credentials:o}).then(b.Wn)},unreactWithEmoji:function(e){var t=e.id,n=e.emoji,o=e.credentials;return Oe({url:ve(t,n),method:"DELETE",credentials:o}).then(b.Wn)},reportUser:function(e){var t=e.credentials,n=e.userId,o=e.statusIds,r=e.comment,i=e.forward;return Oe({url:"/api/v1/reports",method:"POST",payload:{account_id:n,status_ids:o,comment:r,forward:i},credentials:t})},updateNotificationSettings:function(e){var t=e.credentials,n=e.settings,o=new FormData;return g()(n,(function(e,t){o.append(t,e)})),Ce("".concat("/api/pleroma/notification_settings","?").concat(new URLSearchParams(n)),{headers:Pe(t),method:"PUT",body:o}).then((function(e){return e.json()}))},search2:function(e){var t=e.credentials,n=e.q,o=e.resolve,r=e.limit,i=e.offset,s=e.following,a=e.type,c="/api/v2/search",l=[];n&&l.push(["q",encodeURIComponent(n)]),o&&l.push(["resolve",o]),r&&l.push(["limit",r]),i&&l.push(["offset",i]),s&&l.push(["following",!0]),a&&l.push(["following",a]),l.push(["with_relationships",!0]);var u=h()(l,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return c+="?".concat(u),Ce(c,{headers:Pe(t)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching search result",e)})).then((function(e){return e.json()})).then((function(e){return e.accounts=e.accounts.slice(0,r).map((function(e){return(0,b.nL)(e)})),e.statuses=e.statuses.slice(0,r).map((function(e){return(0,b.Wn)(e)})),e}))},searchUsers:function(e){var t=e.credentials,n=e.query;return Oe({url:"/api/v1/accounts/search",params:{q:n,resolve:!0},credentials:t}).then((function(e){return e.map(b.nL)}))},fetchKnownDomains:function(e){var t=e.credentials;return Oe({url:"/api/v1/instance/peers",credentials:t})},fetchDomainMutes:function(e){var t=e.credentials;return Oe({url:me,credentials:t})},muteDomain:function(e){var t=e.domain,n=e.credentials;return Oe({url:me,method:"POST",payload:{domain:t},credentials:n})},unmuteDomain:function(e){var t=e.domain,n=e.credentials;return Oe({url:me,method:"DELETE",payload:{domain:t},credentials:n})},chats:function(e){var t=e.credentials;return Ce("/api/v1/pleroma/chats",{headers:Pe(t)}).then((function(e){return e.json()})).then((function(e){return{chats:e.map(b._J).filter((function(e){return e}))}}))},getOrCreateChat:function(e){var t,n=e.accountId,o=e.credentials;return Oe({url:(t=n,"/api/v1/pleroma/chats/by-account-id/".concat(t)),method:"POST",credentials:o})},chatMessages:function(e){var t=e.id,n=e.credentials,o=e.maxId,r=e.sinceId,i=e.limit,s=void 0===i?20:i,a=we(t),c=[o&&"max_id=".concat(o),r&&"since_id=".concat(r),s&&"limit=".concat(s)].filter((function(e){return e})).join("&");return Oe({url:a+=c?"?"+c:"",method:"GET",credentials:n})},sendChatMessage:function(e){var t=e.id,n=e.content,o=e.mediaId,r=void 0===o?null:o,i=e.idempotencyKey,s=e.credentials,a={content:n};r&&(a.media_id=r);var c={};return i&&(c["idempotency-key"]=i),Oe({url:we(t),method:"POST",payload:a,credentials:s,headers:c})},readChat:function(e){var t=e.id,n=e.lastReadId,o=e.credentials;return Oe({url:be(t),method:"POST",payload:{last_read_id:n},credentials:o})},deleteChatMessage:function(e){var t=e.chatId,n=e.messageId,o=e.credentials;return Oe({url:ye(t,n),method:"DELETE",credentials:o})},setReportState:function(e){var t=e.id,n=e.state,o=e.credentials;return Ce("/api/pleroma/admin/reports",{headers:A(A({},Pe(o)),{},{Accept:"application/json","Content-Type":"application/json"}),method:"PATCH",body:JSON.stringify({reports:[{id:t,state:n}]})}).then((function(e){if(e.status>=500)throw Error(e.statusText);return e.status>=400?e.json():e})).then((function(e){if(e.errors)throw Error(e.errors[0].message)}))},fetchUserInLists:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/accounts/".concat(e,"/lists")}(t);return Ce(o,{headers:Pe(n)}).then((function(e){return e.json()}))},fetchAnnouncements:function(e){var t=e.credentials;return Oe({url:"/api/v1/announcements",credentials:t})},dismissAnnouncement:function(e){var t=e.id,n=e.credentials;return Oe({url:he(t),credentials:n,method:"POST"})},postAnnouncement:function(e){var t=e.credentials,n=e.content,o=e.startsAt,r=e.endsAt,i=e.allDay;return Oe({url:"/api/v1/pleroma/admin/announcements",credentials:t,method:"POST",payload:Ie({content:n,startsAt:o,endsAt:r,allDay:i})})},editAnnouncement:function(e){var t=e.id,n=e.credentials,o=e.content,r=e.startsAt,i=e.endsAt,s=e.allDay;return Oe({url:ke(t),credentials:n,method:"PATCH",payload:Ie({content:o,startsAt:r,endsAt:i,allDay:s})})},deleteAnnouncement:function(e){var t=e.id,n=e.credentials;return Oe({url:Se(t),credentials:n,method:"DELETE"})},adminFetchAnnouncements:function(e){var t=e.credentials;return Oe({url:"/api/v1/pleroma/admin/announcements",credentials:t})}}},37230:(e,t,n)=>{"use strict";n.d(t,{X:()=>i});var o=n(21804),r=n.n(o),i=function(e){return Object.keys(e).reduce((function(t,n){return t[r()(n)]=e[n],t}),{})}},21865:(e,t,n)=>{"use strict";n.d(t,{CO:()=>l,Rx:()=>h,Tj:()=>m,_I:()=>v,a4:()=>g,aj:()=>p,ov:()=>u,pP:()=>b,uu:()=>w,wK:()=>f});var o=n(4942),r=n(29439),i=n(71002),s=n(97332);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l=function(e,t,n){if(null!=e){if("#"===e[0]||"transparent"===e)return e;if("object"===(0,i.Z)(e)){var o=e;e=o.r,t=o.g,n=o.b}var s=[e,t,n].map((function(e){return(e=(e=Math.ceil(e))<0?0:e)>255?255:e})),a=(0,r.Z)(s,3);return e=a[0],t=a[1],n=a[2],"#".concat(((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1))}},u=function(e){var t=function(e){return"rgb".split("").reduce((function(t,n){return t[n]=function(e){var t=e/255;return t<.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}(e[n]),t}),{})}(e);return.2126*t.r+.7152*t.g+.0722*t.b},d=function(e,t){var n=u(e),o=u(t),i=n>o?[n,o]:[o,n],s=(0,r.Z)(i,2);return(s[0]+.05)/(s[1]+.05)},p=function(e,t,n){return d(h(n,t),e)},m=function(e,t,n){return 1===t||void 0===t?e:"rgb".split("").reduce((function(o,r){return o[r]=e[r]*t+n[r]*(1-t),o}),{})},h=function(e,t){return t.reduce((function(e,t){var n=(0,r.Z)(t,2),o=n[0],i=n[1];return m(o,i,e)}),e)},f=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},g=function(e,t){return"rgb".split("").reduce((function(n,o){return n[o]=(e[o]+t[o])/2,n}),{})},v=function(e){return"rgba(".concat(Math.floor(e.r),", ").concat(Math.floor(e.g),", ").concat(Math.floor(e.b),", ").concat(e.a,")")},w=function(e,t,n){if(d(e,t)<4.5){var o=void 0!==t.a?{a:t.a}:{},r=Object.assign(o,(0,s.Xp)(t).rgb);return!n&&d(e,r)<4.5?(0,s.wo)(e,t).rgb:r}return t},b=function(e,t){var n={};if("object"===(0,i.Z)(e))n=e;else if("string"==typeof e){if(!e.startsWith("#"))return e;n=f(e)}return v(c(c({},n),{},{a:t}))}},13562:(e,t,n)=>{"use strict";n.d(t,{g:()=>i});var o=n(23560),r=n.n(o),i=function(e){return function(e){return r()(e)?e.options:e}(e).props}},27483:(e,t,n)=>{"use strict";n.d(t,{GV:()=>u,_F:()=>d,cC:()=>p,dX:()=>m,x4:()=>s});var o=1e3,r=6e4,i=36e5,s=24*i,a=7*s,c=30*s,l=365.25*s,u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;"string"==typeof e&&(e=Date.parse(e));var n=Date.now()>e?Math.floor:Math.ceil,u=Math.abs(Date.now()-e),d={num:n(u/l),key:"time.unit.years"};return u<t*o?(d.num=0,d.key="time.now"):u<r?(d.num=n(u/o),d.key="time.unit.seconds"):u<i?(d.num=n(u/r),d.key="time.unit.minutes"):u<s?(d.num=n(u/i),d.key="time.unit.hours"):u<a?(d.num=n(u/s),d.key="time.unit.days"):u<c?(d.num=n(u/a),d.key="time.unit.weeks"):u<l&&(d.num=n(u/c),d.key="time.unit.months"),d},d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=u(e,t);return n.key+="_short",n},p=function(e,t){switch(e){case"minutes":return.001*t*r;case"hours":return.001*t*i;case"days":return.001*t*s}},m=function(e,t){switch(e){case"minutes":return 1e3*t/r;case"hours":return 1e3*t/i;case"days":return 1e3*t/s}}},64689:(e,t,n)=>{"use strict";n.d(t,{w:()=>o});var o=function(e,t){if("Notification"in window&&"granted"===window.Notification.permission&&!e.statuses.notifications.desktopNotificationSilence){var n=new window.Notification(t.title,t);setTimeout(n.close.bind(n),5e3)}}},27742:(e,t,n)=>{"use strict";n.d(t,{Nw:()=>w,P7:()=>h,UB:()=>y,Wn:()=>f,_J:()=>b,cO:()=>m,eM:()=>g,nL:()=>p});var o=n(4942),r=n(95573),i=n.n(r),s=n(28490),a=n.n(s),c=n(52230),l=n(35748);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=function(e){var t={},n=Object.prototype.hasOwnProperty.call(e,"acct"),o=n&&!Object.prototype.hasOwnProperty.call(e,"avatar");if(t.inLists=null,t.id=String(e.id),t._original=e,n){if(t.screen_name=e.acct,t.fqn=e.fqn,t.statusnet_profile_url=e.url,o)return t;if(t.emoji=e.emojis,t.name=i()(e.display_name),t.name_html=t.name,t.name_unescaped=e.display_name,t.description=e.note,t.description_html=e.note,t.fields=e.fields,t.fields_html=e.fields.map((function(e){return{name:i()(e.name),value:e.value}})),t.fields_text=e.fields.map((function(e){return{name:unescape(e.name.replace(/<[^>]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){e.pleroma.settings_store&&(t.storage=e.pleroma.settings_store["pleroma-fe"]);var r=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,r&&(t.relationship=r),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member",t.birthday=e.pleroma.birthday,e.pleroma.privileges?t.privileges=e.pleroma.privileges:e.pleroma.is_admin?t.privileges=["users_read","users_manage_invites","users_manage_activation_state","users_manage_tags","users_manage_credentials","users_delete","messages_read","messages_delete","instances_delete","reports_manage_reports","moderation_log_read","announcements_manage_announcements","emoji_manage_emoji","statistics_read"]:e.pleroma.is_moderator?t.privileges=["messages_delete","reports_manage_reports"]:t.privileges=[]}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable,t.show_birthday=e.pleroma.show_birthday)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var s=t.screen_name.split("@"),a=l.ZP.toUnicode(s[1]);a!==s[1]?(t.screen_name_ui_contains_non_ascii=!0,t.screen_name_ui=[s[0],a].join("@")):t.screen_name_ui_contains_non_ascii=!1}return t},m=function(e){var t={};return Object.prototype.hasOwnProperty.call(e,"oembed")?t.mimetype=e.mimetype:(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id),t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},h=function(e){var t={};return t.text=e.text,t.spoiler_text=e.spoiler_text,t.content_type=e.content_type,t},f=function e(t){var n={},o=Object.prototype.hasOwnProperty.call(t,"account");if(o){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,n.edited_at=t.edited_at,t.pleroma){var r=t.pleroma;n.text=r.content?t.pleroma.content["text/plain"]:t.content,n.summary=r.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=r.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=r.thread_muted,n.emoji_reactions=r.emoji_reactions,n.parent_visible=void 0===r.parent_visible||r.parent_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=i()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return d(d({},e),{},{title_html:i()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=function(e){return e.is_post_verb?"status":e.retweeted_status?"retweet":"string"==typeof e.uri&&e.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof e.text&&e.text.match(/favorited/)?"favorite":e.text.match(/deleted notice {{tag/)||e.qvitter_delete_notice?"deletion":e.text.match(/started following/)||"follow"===e.activity_type?"follow":"unknown"}(t),void 0===t.nsfw?(n.nsfw=v(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=p(o?t.account:t.user),n.attentions=((o?t.mentions:t.attentions)||[]).map(p),n.attachments=((o?t.media_attachments:t.attachments)||[]).map(m);var s=o?t.reblog:t.retweeted_status;return s&&(n.retweeted_status=e(s)),n.favoritedBy=[],n.rebloggedBy=[],Object.prototype.hasOwnProperty.call(t,"originalStatus")&&Object.assign(n,t.originalStatus),n},g=function(e){var t={};if(Object.prototype.hasOwnProperty.call(e,"ntype")){var n=f(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?f(e.notice.favorited_status):n,t.action=n,t.from_profile="pleroma:chat_mention"===t.type?p(e.account):p(e.from_profile)}else t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=(0,c.Gr)(t.type)?f(e.status):null,t.action=t.status,t.target="move"!==t.type?null:p(e.target),t.from_profile=p(e.account),t.emoji=e.emoji,e.report&&(t.report=e.report,t.report.content=e.report.content,t.report.acct=p(e.report.account),t.report.actor=p(e.report.actor),t.report.statuses=e.report.statuses.map(f));return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},v=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.flakeId,o=a()(e);if(o){var r=o.next.max_id,i=o.prev.min_id;return{maxId:n?r:parseInt(r,10),minId:n?i:parseInt(i,10)}}},b=function(e){var t={};return t.id=e.id,t.account=p(e.account),t.unread=e.unread,t.lastMessage=y(e.last_message),t.updated_at=new Date(e.updated_at),t},y=function(e){if(e){if(e.isNormalized)return e;var t=e;return t.id=e.id,t.created_at=new Date(e.created_at),t.chat_id=e.chat_id,t.emojis=e.emojis,t.content=e.content,e.attachment?t.attachments=[m(e.attachment)]:t.attachments=[],t.pending=!!e.pending,t.error=!1,t.idempotency_key=e.idempotency_key,t.isNormalized=!0,t}}},49753:(e,t,n)=>{"use strict";var o,r,i,s,a;n.d(t,{Z:()=>c});const c=(o=[],r=128,i=128,s=function(e){return e.complete&&0!==e.naturalHeight},{initFaviconService:function(){document.querySelectorAll('link[rel="icon"]').forEach((function(e){if(e){var t=document.createElement("canvas");t.width=r,t.height=i;var n=new Image;n.crossOrigin="anonymous",n.src=e.href;var s=t.getContext("2d");o.push({favcanvas:t,favimg:n,favcontext:s,favicon:e})}}))},clearFaviconBadge:a=function(){0!==o.length&&o.forEach((function(e){var t=e.favimg,n=e.favcanvas,o=e.favcontext,a=e.favicon;t&&o&&a&&(o.clearRect(0,0,r,i),s(t)&&o.drawImage(t,0,0,t.width,t.height,0,0,r,i),a.href=n.toDataURL("image/png"))}))},drawFaviconBadge:function(){0!==o.length&&(a(),o.forEach((function(e){var t=e.favimg,n=e.favcanvas,o=e.favcontext,a=e.favicon;if(t&&o&&o){var c=getComputedStyle(document.body),l="".concat(c.getPropertyValue("--badgeNotification")||"rgb(240, 100, 100)");s(t)&&o.drawImage(t,0,0,t.width,t.height,0,0,r,i),o.fillStyle=l,o.beginPath(),o.arc(96,32,32,0,2*Math.PI,!1),o.fill(),a.href=n.toDataURL("image/png")}})))}})},65079:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const o={fileSizeFormat:function(e){var t=["B","KiB","MiB","GiB","TiB"],n=e;if(n<1)return n+" "+t[0];var o=Math.min(Math.floor(Math.log(n)/Math.log(1024)),t.length-1);return{num:n=1*(n/Math.pow(1024,o)).toFixed(2),unit:t[o]}}}},58394:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var o=function(e){return e.match(/flash/)?"flash":e.match(/text\/html/)?"html":e.match(/image/)?"image":e.match(/video/)?"video":e.match(/audio/)?"audio":"unknown"};const r={fileType:o,fileMatchesSomeType:function(e,t){return e.some((function(e){return o(t.mimetype)===e}))}}},39776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(35161),r=n.n(o),i=n(72617),s=n(2900),a={ja_easy:"ja",zh_Hant:"zh-HANT",zh:"zh-Hans"},c=function(e){return a[e]||e},l=function(e){return c(e).replace("_","-")},u=function(e){var t={ja_easy:"やさしいにほんご",zh:"简体中文",zh_Hant:"繁體中文"}[e]||s.Z.getNativeName(e),n=c(e);return t.charAt(0).toLocaleUpperCase(n)+t.slice(1)},d=r()(i.Z.languages,(function(e){return{code:e,name:u(e)}})).sort((function(e,t){return e.name.localeCompare(t.name)}));const p={internalToBrowserLocale:c,internalToBackendLocale:l,internalToBackendLocaleMulti:function(e){return(Array.isArray(e)?e:[e]).map(l).join(",")},languages:d,getLanguageName:u}},52230:(e,t,n)=>{"use strict";n.d(t,{Bt:()=>d,G2:()=>w,Gr:()=>h,Km:()=>b,nJ:()=>v,nU:()=>f});var o=n(64721),r=n.n(o),i=n(89734),s=n.n(i),a=n(63105),c=n.n(a),l=n(67828),u=n(64689),d=function(e){return e.state.statuses.notifications.data},p=function(e){var t=e.rootState||e.state;return[t.config.notificationVisibility.likes&&"like",t.config.notificationVisibility.mentions&&"mention",t.config.notificationVisibility.repeats&&"repeat",t.config.notificationVisibility.follows&&"follow",t.config.notificationVisibility.followRequest&&"follow_request",t.config.notificationVisibility.moves&&"move",t.config.notificationVisibility.emojiReactions&&"pleroma:emoji_reaction",t.config.notificationVisibility.reports&&"pleroma:report",t.config.notificationVisibility.polls&&"poll"].filter((function(e){return e}))},m=["like","mention","repeat","pleroma:emoji_reaction","poll"],h=function(e){return r()(m,e)},f=function(e){return!(h(e.type)&&!e.status)},g=function(e,t){var n=Number(e.id),o=Number(t.id),r=!Number.isNaN(n),i=!Number.isNaN(o);return r&&i?n>o?-1:1:r&&!i?1:!r&&i||e.id>t.id?-1:1},v=function(e,t){var n=e.rootState||e.state;if(!t.seen&&p(e).includes(t.type)&&("mention"!==t.type||!function(e,t){if(t.status)return t.status.muted||(0,l.u)(t.status,e.rootGetters.mergedConfig.muteWords).length>0}(e,t))){var o=y(t,e.rootGetters.i18n);(0,u.w)(n,o)}},w=function(e,t){var n=d(e).map((function(e){return e})).sort(g);return(n=s()(n,"seen")).filter((function(n){return(t||p(e)).includes(n.type)}))},b=function(e){return c()(w(e),(function(e){return!e.seen}))},y=function(e,t){var n,o={tag:e.id},r=e.status,i=e.from_profile.name;switch(o.title=i,o.icon=e.from_profile.profile_image_url,e.type){case"like":n="favorited_you";break;case"repeat":n="repeated_you";break;case"follow":n="followed_you";break;case"move":n="migrated_to";break;case"follow_request":n="follow_request";break;case"pleroma:report":n="submitted_report";break;case"poll":n="poll_ended"}return"pleroma:emoji_reaction"===e.type?o.body=t.t("notifications.reacted_with",[e.emoji]):n?o.body=t.t("notifications."+n):h(e.type)&&(o.body=e.status.text),r&&r.attachments&&r.attachments.length>0&&!r.nsfw&&r.attachments[0].mimetype.startsWith("image/")&&(o.image=r.attachments[0].url),o}},15568:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(93433),r=n(77776),i=n(22626),s=["mention","favourite","reblog","follow","move","pleroma:emoji_reaction","pleroma:report"],a=function(e){var t=e.store,n=e.credentials,r=e.older,i=void 0!==r&&r,a=e.since,l={credentials:n},u=t.getters,d=(t.rootState||t.state).statuses.notifications,p=u.mergedConfig.hideMutedPosts;if(l.includeTypes=s,l.withMuted=!p,l.timeline="notifications",i)return d.minId!==Number.POSITIVE_INFINITY&&(l.until=d.minId),c({store:t,args:l,older:i});void 0===a&&d.maxId!==Number.POSITIVE_INFINITY?l.since=d.maxId:null!==a&&(l.since=a);var m=c({store:t,args:l,older:i}),h=d.data,f=h.filter((function(e){return e.seen})).map((function(e){return e.id}));return h.length-f.length>0&&f.length>0&&(l.since=Math.max.apply(Math,(0,o.Z)(f)),c({store:t,args:l,older:i})),m},c=function(e){var t=e.store,n=e.args,o=e.older;return r.ZP.fetchTimeline(n).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data;return function(e){var t=e.notifications,n=e.older;e.store.dispatch("addNewNotifications",{notifications:t,older:n})}({store:t,notifications:n,older:o}),n})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"notifications.error",messageArgs:[e.message],timeout:5e3}),console.error(e)}))};const l={fetchAndUpdate:a,startFetching:function(e){var t=e.credentials,n=e.store;setTimeout((function(){return n.dispatch("setNotificationsSilence",!1)}),1e4);var o=function(){return a({credentials:t,store:n})};return o(),(0,i.F)(o,1e4)}}},67952:(e,t,n)=>{"use strict";n.d(t,{y:()=>o});var o=function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=o.top,s=void 0===i?0:i,a=o.left,c=void 0===a?0:a,l=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u={top:s+t.offsetTop,left:c+t.offsetLeft};if(!l&&t!==window){var d=r(t),p=d.topPadding,m=d.leftPadding;u.top+=l?0:p,u.left+=l?0:m}if(t.offsetParent&&"sticky"!==window.getComputedStyle(t.offsetParent).position&&(n===window||n.contains(t.offsetParent)||n===t.offsetParent))return e(t.offsetParent,n,u,!1);if(n!==window){var h=r(n),f=h.topPadding,g=h.leftPadding;u.top+=f,u.left+=g}return u},r=function(e){var t=window.getComputedStyle(e)["padding-top"],n=Number(t.substring(0,t.length-2)),o=window.getComputedStyle(e)["padding-left"];return{topPadding:n,leftPadding:Number(o.substring(0,o.length-2))}}},22626:(e,t,n)=>{"use strict";n.d(t,{F:()=>o});var o=function(e,t){var n=!1,o=null;return o=window.setTimeout((function r(){var i=e();i&&i.finally?i.finally((function(){n||(o=window.setTimeout(r,t))})):console.warn("promiseInterval: promise call did not return a promise, stopping interval.")}),t),{stop:function(){n=!0,window.clearTimeout(o)}}}},67828:(e,t,n)=>{"use strict";n.d(t,{u:()=>i});var o=n(63105),r=n.n(o),i=function(e,t){var n=e.text.toLowerCase(),o=e.summary.toLowerCase();return r()(t,(function(e){return n.includes(e.toLowerCase())||o.includes(e.toLowerCase())}))}},7257:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(35161),r=n.n(o),i=n(77776);const s={postStatus:function(e){var t=e.store,n=e.status,o=e.spoilerText,s=e.visibility,a=e.sensitive,c=e.poll,l=e.media,u=void 0===l?[]:l,d=e.inReplyToStatusId,p=void 0===d?void 0:d,m=e.contentType,h=void 0===m?"text/plain":m,f=e.preview,g=void 0!==f&&f,v=e.idempotencyKey,w=void 0===v?"":v,b=r()(u,"id");return i.ZP.postStatus({credentials:t.state.users.currentUser.credentials,status:n,spoilerText:o,visibility:s,sensitive:a,mediaIds:b,inReplyToStatusId:p,contentType:h,poll:c,preview:g,idempotencyKey:w}).then((function(e){return e.error||g||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return{error:e.message}}))},editStatus:function(e){var t=e.store,n=e.statusId,o=e.status,s=e.spoilerText,a=e.sensitive,c=e.poll,l=e.media,u=void 0===l?[]:l,d=e.contentType,p=void 0===d?"text/plain":d,m=r()(u,"id");return i.ZP.editStatus({id:n,credentials:t.state.users.currentUser.credentials,status:o,spoilerText:s,sensitive:a,poll:c,mediaIds:m,contentType:p}).then((function(e){return e.error||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},uploadMedia:function(e){var t=e.store,n=e.formData,o=t.state.users.currentUser.credentials;return i.ZP.uploadMedia({credentials:o,formData:n})},setMediaDescription:function(e){var t=e.store,n=e.id,o=e.description,r=t.state.users.currentUser.credentials;return i.ZP.setMediaDescription({credentials:r,id:n,description:o})}}},77394:(e,t,n)=>{"use strict";n.d(t,{H2:()=>P,I3:()=>$,LP:()=>b,Ot:()=>v,RC:()=>I,_v:()=>m,bY:()=>U,dE:()=>x,gm:()=>z,l9:()=>T,lD:()=>y,m:()=>_,mg:()=>g,vp:()=>O});var o=n(71002),r=n(93433),i=n(4942),s=n(29439),a=n(97332),c=n(21865),l=n(40454),u=n(85565);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=function(e){var t=D(e).rules,n=document.head,o=document.body;o.classList.add("hidden");var r=document.createElement("style");n.appendChild(r);var i=r.sheet;i.toString(),i.insertRule(":root { ".concat(t.radii," }"),"index-max"),i.insertRule(":root { ".concat(t.colors," }"),"index-max"),i.insertRule(":root { ".concat(t.shadows," }"),"index-max"),i.insertRule(":root { ".concat(t.fonts," }"),"index-max"),o.classList.remove("hidden")},h=function(e){return{sidebarColumnWidth:e.sidebarColumnWidth,contentColumnWidth:e.contentColumnWidth,notifsColumnWidth:e.notifsColumnWidth}},f=h(u.W2),g=function(e){var t=h(e);if(t!==f){var n=document.head,o=document.body;o.classList.add("hidden");var r=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,": ").concat(o)})).join(";"),i=document.createElement("style");n.appendChild(i);var a=i.sheet;a.toString(),a.insertRule(":root { ".concat(r," }"),"index-max"),o.classList.remove("hidden")}},v=function(e,t){return 0===e.length?"none":e.filter((function(e){return t?e.inset:e})).map((function(e){return[e.x,e.y,e.blur,e.spread].map((function(e){return e+"px"})).concat([(0,c.pP)(e.color,e.alpha),e.inset?"inset":""]).join(" ")})).join(", ")},w=function(e){return 0===e.length?"none":e.filter((function(e){return!e.inset&&0===Number(e.spread)})).map((function(e){return[e.x,e.y,e.blur/2].map((function(e){return e+"px"})).concat([(0,c.pP)(e.color,e.alpha)]).join(" ")})).map((function(e){return"drop-shadow(".concat(e,")")})).join(" ")},b=function(e){var t=e.themeEngineVersion?e.colors||e:x(e.colors||e),n=(0,l.EC)(t,e.opacity||{}),o=n.colors,r=n.opacity,i=Object.entries(o).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return r?(e.solid[o]=(0,c.CO)(r),e.complete[o]=void 0===r.a?(0,c.CO)(r):(0,c._I)(r),e):e}),{complete:{},solid:{}});return{rules:{colors:Object.entries(i.complete).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,": ").concat(o)})).join(";")},theme:{colors:i.solid,opacity:r}}},y=function(e){var t=e.radii||{};void 0!==e.btnRadius&&(t=Object.entries(e).filter((function(e){var t=(0,s.Z)(e,2),n=t[0];return t[1],n.endsWith("Radius")})).reduce((function(e,t){return e[t[0].split("Radius")[0]]=t[1],e}),{}));var n=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),{btn:4,input:4,checkbox:2,panel:10,avatar:5,avatarAlt:50,tooltip:2,attachment:5,chatMessage:t.panel});return{rules:{radii:Object.entries(n).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,"Radius: ").concat(o,"px")})).join(";")},theme:{radii:n}}},_=function(e){var t=Object.entries(e.fonts||{}).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=Object.entries(r).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),e[o]),e}),{interface:{family:"sans-serif"},input:{family:"inherit"},post:{family:"inherit"},postCode:{family:"monospace"}});return{rules:{fonts:Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,"Font: ").concat(o.family)})).join(";")},theme:{fonts:t}}},k=function(e,t){return{x:0,y:e?1:-1,blur:0,spread:0,color:t?"#000000":"#FFFFFF",alpha:.2,inset:!0}},S=[k(!0,!1),k(!1,!0)],j=[k(!0,!0),k(!1,!1)],C={x:0,y:0,blur:4,spread:0,color:"--faint",alpha:1},O={panel:[{x:1,y:1,blur:4,spread:0,color:"#000000",alpha:.6}],topBar:[{x:0,y:0,blur:4,spread:0,color:"#000000",alpha:.6}],popup:[{x:2,y:2,blur:3,spread:0,color:"#000000",alpha:.5}],avatar:[{x:0,y:1,blur:8,spread:0,color:"#000000",alpha:.7}],avatarStatus:[],panelHeader:[],button:[{x:0,y:0,blur:2,spread:0,color:"#000000",alpha:1}].concat(S),buttonHover:[C].concat(S),buttonPressed:[C].concat(j),input:[].concat(j,[{x:0,y:0,blur:2,inset:!0,spread:0,color:"#000000",alpha:1}])},P=function(e,t){var n={button:"btn",panel:"bg",top:"topBar",popup:"popover",avatar:"bg",panelHeader:"panel",input:"input"},o=Object.fromEntries(Object.entries(e.shadows||{}).map((function(e){var t=(0,s.Z)(e,2);return[t[0],t[1].map((function(e){return p({color:"#000000"},e)}))]}))),u=o&&!e.themeEngineVersion?T(o,e.opacity):o||{},d=Object.entries(p(p({},O),u)).reduce((function(e,o){var u=(0,s.Z)(o,2),d=u[0],m=u[1],h=d.replace(/[A-Z].*$/,""),f=n[h],g=(0,c.ov)((0,a.OQ)(t[f]).rgb)<.5?1:-1,v=m.reduce((function(e,n){return[].concat((0,r.Z)(e),[p(p({},n),{},{color:(0,c.CO)((0,l.NI)(n.color,(function(e){return(0,a.OQ)(t[e]).rgb}),g))})])}),[]);return p(p({},e),{},(0,i.Z)({},d,v))}),{});return{rules:{shadows:Object.entries(d).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return["--".concat(n,"Shadow: ").concat(v(o)),"--".concat(n,"ShadowFilter: ").concat(w(o)),"--".concat(n,"ShadowInset: ").concat(v(o,!0))].join(";")})).join(";")},theme:{shadows:d}}},z=function(e,t,n,o){return{rules:p(p(p(p({},n.rules),e.rules),t.rules),o.rules),theme:p(p(p(p({},n.theme),e.theme),t.theme),o.theme)}},D=function(e){var t=b(e);return z(t,y(e),P(e,t.theme.colors,t.mod),_(e))},I=function(){var e="no-store";return window.fetch("/static/styles.json",{cache:e}).then((function(e){return e.json()})).then((function(t){return Object.entries(t).map((function(t){var n=(0,s.Z)(t,2),r=n[0],i=n[1],a=null;return"object"===(0,o.Z)(i)?a=Promise.resolve(i):"string"==typeof i&&(a=window.fetch(i,{cache:e}).then((function(e){return e.json()})).catch((function(e){return console.error(e),null}))),[r,a]}))})).then((function(e){return e.reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),{})}))},x=function(e){return Object.entries(e).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];switch(o){case"lightBg":return p(p({},e),{},{highlight:r});case"btnText":return p(p({},e),["","Panel","TopBar"].reduce((function(e,t){return p(p({},e),{},(0,i.Z)({},"btn"+t+"Text",r))}),{}));default:return p(p({},e),{},(0,i.Z)({},o,r))}}),{})},T=function(e,t){return Object.entries(e).reduce((function(e,n){var o=(0,s.Z)(n,2),a=o[0],c=o[1].reduce((function(e,n){return[].concat((0,r.Z)(e),[p(p({},n),{},{alpha:(s=n,a=s.color,(void 0===a?"#000000":a).startsWith("--")?(o=n,i=o.color,t[(0,l.AV)(i.substring(2).split(",")[0])]||1):n.alpha)})]);var o,i,s,a}),[]);return p(p({},e),{},(0,i.Z)({},a,c))}),{})},$=function(e){return I().then((function(t){return t[e]?t[e]:t["pleroma-dark"]})).then((function(e){var t=Array.isArray(e),n=t?{}:e.theme;if(t){var o=(0,c.wK)(e[1]),r=(0,c.wK)(e[2]),i=(0,c.wK)(e[3]),s=(0,c.wK)(e[4]),a=(0,c.wK)(e[5]||"#FF0000"),l=(0,c.wK)(e[6]||"#00FF00"),u=(0,c.wK)(e[7]||"#0000FF"),d=(0,c.wK)(e[8]||"#E3FF00");n.colors={bg:o,fg:r,text:i,link:s,cRed:a,cBlue:u,cGreen:l,cOrange:d}}return{theme:n,source:e.source}}))},U=function(e){return $(e).then((function(e){return m(e.theme)}))}},44551:(e,t,n)=>{"use strict";n.d(t,{em:()=>a,k0:()=>i,wB:()=>s});var o=n(97332),r=n(21865),i={undelay:null,topBar:null,badge:null,profileTint:null,fg:null,bg:"underlay",highlight:"bg",panel:"bg",popover:"bg",selectedMenu:"popover",btn:"bg",btnPanel:"panel",btnTopBar:"topBar",input:"bg",inputPanel:"panel",inputTopBar:"topBar",alert:"bg",alertPanel:"panel",poll:"bg",chatBg:"underlay",chatMessage:"chatBg"},s={profileTint:.5,alert:.5,input:.5,faint:.5,underlay:.15,alertPopup:.95},a={bg:{depends:[],opacity:"bg",priority:1},wallpaper:{depends:["bg"],color:function(e,t){return(0,o.Xu)(-2*e,t).rgb}},fg:{depends:[],priority:1},text:{depends:[],layer:"bg",opacity:null,priority:1},underlay:{default:"#000000",opacity:"underlay"},link:{depends:["accent"],priority:1},accent:{depends:["link"],priority:1},faint:{depends:["text"],opacity:"faint"},faintLink:{depends:["link"],opacity:"faint"},postFaintLink:{depends:["postLink"],opacity:"faint"},cBlue:"#0000ff",cRed:"#FF0000",cGreen:"#00FF00",cOrange:"#E3FF00",profileBg:{depends:["bg"],color:function(e,t){return{r:Math.floor(.53*t.r),g:Math.floor(.56*t.g),b:Math.floor(.59*t.b)}}},profileTint:{depends:["bg"],layer:"profileTint",opacity:"profileTint"},highlight:{depends:["bg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},highlightLightText:{depends:["lightText"],layer:"highlight",textColor:!0},highlightPostLink:{depends:["postLink"],layer:"highlight",textColor:"preserve"},highlightFaintText:{depends:["faint"],layer:"highlight",textColor:!0},highlightFaintLink:{depends:["faintLink"],layer:"highlight",textColor:"preserve"},highlightPostFaintLink:{depends:["postFaintLink"],layer:"highlight",textColor:"preserve"},highlightText:{depends:["text"],layer:"highlight",textColor:!0},highlightLink:{depends:["link"],layer:"highlight",textColor:"preserve"},highlightIcon:{depends:["highlight","highlightText"],color:function(e,t,n){return(0,r.a4)(t,n)}},popover:{depends:["bg"],opacity:"popover"},popoverLightText:{depends:["lightText"],layer:"popover",textColor:!0},popoverPostLink:{depends:["postLink"],layer:"popover",textColor:"preserve"},popoverFaintText:{depends:["faint"],layer:"popover",textColor:!0},popoverFaintLink:{depends:["faintLink"],layer:"popover",textColor:"preserve"},popoverPostFaintLink:{depends:["postFaintLink"],layer:"popover",textColor:"preserve"},popoverText:{depends:["text"],layer:"popover",textColor:!0},popoverLink:{depends:["link"],layer:"popover",textColor:"preserve"},popoverIcon:{depends:["popover","popoverText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedPost:"--highlight",selectedPostFaintText:{depends:["highlightFaintText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLightText:{depends:["highlightLightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostPostLink:{depends:["highlightPostLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostFaintLink:{depends:["highlightFaintLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostText:{depends:["highlightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLink:{depends:["highlightLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostIcon:{depends:["selectedPost","selectedPostText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedMenu:{depends:["bg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},selectedMenuLightText:{depends:["highlightLightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintText:{depends:["highlightFaintText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintLink:{depends:["highlightFaintLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuText:{depends:["highlightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuLink:{depends:["highlightLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuIcon:{depends:["selectedMenu","selectedMenuText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedMenuPopover:{depends:["popover"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},selectedMenuPopoverLightText:{depends:["selectedMenuLightText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintText:{depends:["selectedMenuFaintText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintLink:{depends:["selectedMenuFaintLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverText:{depends:["selectedMenuText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverLink:{depends:["selectedMenuLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverIcon:{depends:["selectedMenuPopover","selectedMenuText"],color:function(e,t,n){return(0,r.a4)(t,n)}},lightText:{depends:["text"],layer:"bg",textColor:"preserve",color:function(e,t){return(0,o.Xu)(20*e,t).rgb}},postLink:{depends:["link"],layer:"bg",textColor:"preserve"},postGreentext:{depends:["cGreen"],layer:"bg",textColor:"preserve"},postCyantext:{depends:["cBlue"],layer:"bg",textColor:"preserve"},border:{depends:["fg"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}},poll:{depends:["accent","bg"],copacity:"poll",color:function(e,t,n){return(0,r.Tj)(t,.4,n)}},pollText:{depends:["text"],layer:"poll",textColor:!0},icon:{depends:["bg","text"],inheritsOpacity:!1,color:function(e,t,n){return(0,r.a4)(t,n)}},fgText:{depends:["text"],layer:"fg",textColor:!0},fgLink:{depends:["link"],layer:"fg",textColor:"preserve"},panel:{depends:["fg"],opacity:"panel"},panelText:{depends:["text"],layer:"panel",textColor:!0},panelFaint:{depends:["fgText"],layer:"panel",opacity:"faint",textColor:!0},panelLink:{depends:["fgLink"],layer:"panel",textColor:"preserve"},topBar:"--fg",topBarText:{depends:["fgText"],layer:"topBar",textColor:!0},topBarLink:{depends:["fgLink"],layer:"topBar",textColor:"preserve"},tab:{depends:["btn"]},tabText:{depends:["btnText"],layer:"btn",textColor:!0},tabActiveText:{depends:["text"],layer:"bg",textColor:!0},btn:{depends:["fg"],variant:"btn",opacity:"btn"},btnText:{depends:["fgText"],layer:"btn",textColor:!0},btnPanelText:{depends:["btnText"],layer:"btnPanel",variant:"btn",textColor:!0},btnTopBarText:{depends:["btnText"],layer:"btnTopBar",variant:"btn",textColor:!0},btnPressed:{depends:["btn"],layer:"btn"},btnPressedText:{depends:["btnText"],layer:"btn",variant:"btnPressed",textColor:!0},btnPressedPanel:{depends:["btnPressed"],layer:"btn"},btnPressedPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnPressed",textColor:!0},btnPressedTopBar:{depends:["btnPressed"],layer:"btn"},btnPressedTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnPressed",textColor:!0},btnToggled:{depends:["btn"],layer:"btn",color:function(e,t){return(0,o.Xu)(20*e,t).rgb}},btnToggledText:{depends:["btnText"],layer:"btn",variant:"btnToggled",textColor:!0},btnToggledPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnToggled",textColor:!0},btnToggledTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnToggled",textColor:!0},btnDisabled:{depends:["btn","bg"],color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledText:{depends:["btnText","btnDisabled"],layer:"btn",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledPanelText:{depends:["btnPanelText","btnDisabled"],layer:"btnPanel",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledTopBarText:{depends:["btnTopBarText","btnDisabled"],layer:"btnTopBar",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},input:{depends:["fg"],opacity:"input"},inputText:{depends:["text"],layer:"input",textColor:!0},inputPanelText:{depends:["panelText"],layer:"inputPanel",variant:"input",textColor:!0},inputTopbarText:{depends:["topBarText"],layer:"inputTopBar",variant:"input",textColor:!0},alertError:{depends:["cRed"],opacity:"alert"},alertErrorText:{depends:["text"],layer:"alert",variant:"alertError",textColor:!0},alertErrorPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertError",textColor:!0},alertWarning:{depends:["cOrange"],opacity:"alert"},alertWarningText:{depends:["text"],layer:"alert",variant:"alertWarning",textColor:!0},alertWarningPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertWarning",textColor:!0},alertSuccess:{depends:["cGreen"],opacity:"alert"},alertSuccessText:{depends:["text"],layer:"alert",variant:"alertSuccess",textColor:!0},alertSuccessPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertSuccess",textColor:!0},alertNeutral:{depends:["text"],opacity:"alert"},alertNeutralText:{depends:["text"],layer:"alert",variant:"alertNeutral",color:function(e,t){return(0,o.Xp)(t).rgb},textColor:!0},alertNeutralPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertNeutral",textColor:!0},alertPopupError:{depends:["alertError"],opacity:"alertPopup"},alertPopupErrorText:{depends:["alertErrorText"],layer:"popover",variant:"alertPopupError",textColor:!0},alertPopupWarning:{depends:["alertWarning"],opacity:"alertPopup"},alertPopupWarningText:{depends:["alertWarningText"],layer:"popover",variant:"alertPopupWarning",textColor:!0},alertPopupSuccess:{depends:["alertSuccess"],opacity:"alertPopup"},alertPopupSuccessText:{depends:["alertSuccessText"],layer:"popover",variant:"alertPopupSuccess",textColor:!0},alertPopupNeutral:{depends:["alertNeutral"],opacity:"alertPopup"},alertPopupNeutralText:{depends:["alertNeutralText"],layer:"popover",variant:"alertPopupNeutral",textColor:!0},badgeNotification:"--cRed",badgeNotificationText:{depends:["text","badgeNotification"],layer:"badge",variant:"badgeNotification",textColor:"bw"},badgeNeutral:"--cGreen",badgeNeutralText:{depends:["text","badgeNeutral"],layer:"badge",variant:"badgeNeutral",textColor:"bw"},chatBg:{depends:["bg"]},chatMessageIncomingBg:{depends:["chatBg"]},chatMessageIncomingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:!0},chatMessageIncomingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:"preserve"},chatMessageIncomingBorder:{depends:["border"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}},chatMessageOutgoingBg:{depends:["chatMessageIncomingBg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},chatMessageOutgoingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:!0},chatMessageOutgoingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:"preserve"},chatMessageOutgoingBorder:{depends:["chatMessageOutgoingBg"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}}}},40454:(e,t,n)=>{"use strict";n.d(t,{AQ:()=>y,AV:()=>v,EC:()=>k,NI:()=>_,we:()=>p,xb:()=>h});var o=n(4942),r=n(29439),i=n(71002),s=n(93433),a=n(97332),c=n(21865),l=n(44551);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=3,m=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.k0,n=[e],o=t[e];o;)n.unshift(o),o=t[o];return n},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;return m(e).map((function(i){return[i===e?o[t]:o[i],i===e?r[n]||1:r[i]]}))},f=function(e,t){var n=t[e];if("string"==typeof n&&n.startsWith("--"))return[n.substring(2)];if(null===n)return[];var o=n.depends,r=n.layer,i=n.variant,a=r?m(r).map((function(e){return e===r?i||r:e})):[];return Array.isArray(o)?[].concat((0,s.Z)(o),(0,s.Z)(a)):(0,s.Z)(a)},g=function(e){return"object"===(0,i.Z)(e)?e:{depends:e.startsWith("--")?[e.substring(2)]:[],default:e.startsWith("#")?e:void 0}},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,o=g(t[e]);if(null!==o.opacity){if(o.opacity)return o.opacity;var r=function o(r){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(r,t)[0];if(void 0!==a){var c=t[a];if(void 0!==c)return c.opacity||null===c?c.opacity:c.depends&&i.includes(a)?o(a,[].concat((0,s.Z)(i),[a])):null}};return o.depends?r(e):void 0}},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,o=g(t[e]);if(l.k0[e])return e;if(null!==o.layer){if(o.layer)return o.layer;var r=function o(r){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(r,t)[0];if(void 0!==a){var c=t[a];if(void 0!==c)return c.layer||null===c?c.layer:c.depends?o(c,[].concat((0,s.Z)(i),[a])):null}};return o.depends?r(e):void 0}},b=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.em,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f,n=Object.keys(e),o=new Set(n),r=new Set,i=new Set,s=[].concat(n),a=[],c=function n(s){if(o.has(s))o.delete(s),r.add(s),t(s,e).forEach(n),r.delete(s),i.add(s),a.push(s);else if(r.has(s))console.debug("Cyclic depenency in topoSort, ignoring"),a.push(s);else if(!i.has(s))throw new Error("Unintended condition in topoSort!")};s.length>0;)c(s.pop());return a.map((function(e,t){return{data:e,index:t}})).sort((function(n,o){var r=n.data,i=n.index,s=o.data,a=o.index,c=t(r,e).length,l=t(s,e).length;return c===l||0!==l&&0!==c?i-a:0===c&&0!==l?-1:0===l&&0!==c?1:0})).map((function(e){return e.data}))}(Object.entries(l.em).sort((function(e,t){var n=(0,r.Z)(e,2),o=(n[0],n[1]),i=(0,r.Z)(t,2),s=(i[0],i[1]);return(o&&o.priority||0)-(s&&s.priority||0)})).reduce((function(e,t){var n=(0,r.Z)(t,2),i=n[0],s=n[1];return d(d({},e),{},(0,o.Z)({},i,s))}),{})),y=Object.entries(l.em).reduce((function(e,t){var n=(0,r.Z)(t,2),i=n[0],a=(n[1],v(i,l.em,f));return a?d(d({},e),{},(0,o.Z)({},a,{defaultValue:l.wB[a]||1,affectedSlots:[].concat((0,s.Z)(e[a]&&e[a].affectedSlots||[]),[i])})):e}),{}),_=function(e,t,n){if("string"!=typeof e||!e.startsWith("--"))return e;var o=null,i=e.split(/,/g).map((function(e){return e.trim()})),s=(0,r.Z)(i,2),c=s[0],l=s[1];return o=t(c.substring(2)),l&&(o=(0,a.Xu)(Number.parseFloat(l)*n,o).rgb),o},k=function(e,t){return b.reduce((function(n,r){var i,u=n.colors,p=n.opacity,m=e[r],b=g(l.em[r]),k=f(r,l.em),S=!!b.textColor,j=b.variant||b.layer;i=S?(0,c.Rx)(d({},u[k[0]]||(0,a.OQ)(e[r]||"#FF00FF").rgb),h(w(r)||"bg",j||"bg",v(j),u,p)):j&&j!==r?u[j]||(0,a.OQ)(e[j]).rgb:u.bg||(0,a.OQ)(e.bg);var C=(0,c.ov)(i)<.5?1:-1,O=null;if(m){var P=m;if("transparent"===P){var z=h(w(r),r,v(r)||r,u,p).slice(0,-1);P=d(d({},(0,c.Rx)((0,a.OQ)("#FF00FF").rgb,z)),{},{a:0})}else"string"==typeof m&&m.startsWith("--")?P=_(m,(function(t){return u[t]||e[t]}),C):"string"==typeof m&&m.startsWith("#")&&(P=(0,a.OQ)(P).rgb);O=d({},P)}else if(b.default)O=(0,a.OQ)(b.default).rgb;else{var D=b.color||function(e,t){return d({},t)};if(b.textColor)if("bw"===b.textColor)O=(0,a.wo)(i).rgb;else{var I=d({},u[k[0]]);b.color&&(I=D.apply(void 0,[C].concat((0,s.Z)(k.map((function(e){return d({},u[e])})))))),O=(0,c.uu)(i,d({},I),"preserve"===b.textColor)}else O=D.apply(void 0,[C].concat((0,s.Z)(k.map((function(e){return d({},u[e])})))))}if(!O)throw new Error("Couldn't generate color for "+r);var x=b.opacity||v(r),T=b.opacity;if(null===T)O.a=1;else if("transparent"===m)O.a=0;else{var $=T&&void 0!==t[x],U=k[0],M=U&&u[U];T||!M||b.textColor||null===T?M||x?M&&0===M.a?O.a=0:O.a=Number($?t[x]:(y[x]||{}).defaultValue):delete O.a:O.a=M.a}return(Number.isNaN(O.a)||void 0===O.a)&&(O.a=1),x?{colors:d(d({},u),{},(0,o.Z)({},r,O)),opacity:d(d({},p),{},(0,o.Z)({},x,O.a))}:{colors:d(d({},u),{},(0,o.Z)({},r,O)),opacity:p}}),{colors:{},opacity:{}})}},95052:(e,t,n)=>{"use strict";n.d(t,{M:()=>c,q:()=>a});var o=n(4942),r=n(21865);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=function(e){if(void 0!==e){var t=e.color,n=e.type;if("string"==typeof t){var o=(0,r.wK)(t);if(null!=o){var i="rgb(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),")"),a="rgba(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),", .1)"),c="rgba(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),", .2)"),l={"--____highlight-solidColor":i,"--____highlight-tintColor":a,"--____highlight-tintColor2":c};return"striped"===n?s({backgroundImage:["repeating-linear-gradient(135deg,","".concat(a," ,"),"".concat(a," 20px,"),"".concat(c," 20px,"),"".concat(c," 40px")].join(" "),backgroundPosition:"0 0"},l):"solid"===n?s({backgroundColor:c},l):"side"===n?s({backgroundImage:["linear-gradient(to right,","".concat(i," ,"),"".concat(i," 2px,"),"transparent 6px"].join(" "),backgroundPosition:"0 0"},l):void 0}}}},c=function(e){return"USER____"+e.screen_name.replace(/\./g,"_").replace(/@/g,"_AT_")}},4493:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var o=n(64721),r=n.n(o);const i=function(e,t,n){var o=!t||function(e){return e&&e.includes("@")}(t)||r()(n,t);return{name:o?"external-user-profile":"user-profile",params:o?{id:e}:{name:t}}}},66596:(e,t,n)=>{"use strict";n.d(t,{Z:()=>B});var o=n(66252),r=n(3577),i=n(49963),s=["href","alt","title"],a={key:1,class:"attachment-buttons"},c=["placeholder"],l={key:1},u={class:"attachment-wrapper"},d=["href","alt","title"],p=["src"],m={key:1,class:"attachment-buttons"},h=["title"],f=["title"],g=["title"],v=["title"],w=["title"],b=["title"],y=["title"],_=["href"],k=["href"],S={key:0},j=["href"],C=["src","alt","title"],O={key:0,class:"image"},P=["src"],z={class:"text"},D=["href"],I=["innerHTML"],x=["href"],T=["placeholder"],$={key:1},U=n(4942),M=n(32140),A=n(72884),L=n(34133);const E=n.p+"static/img/nsfw.2958239.png";var F=n(58394),R=n(989),q=n(9382),N=n(84131);function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}q.vI.add(N.gMD,N.Xig,N.VmB,N.IyC,N.aQp,N.NBC,N.Bg$,N.N7g,N.I7k,N.UJf,N.S3c);const W={props:["attachment","compact","description","hideDescription","nsfw","size","setMedia","remove","shiftUp","shiftDn","edit"],data:function(){return{localDescription:this.description||this.attachment.description,nsfwImage:this.$store.state.instance.nsfwCensorImage||E,hideNsfwLocal:this.$store.getters.mergedConfig.hideNsfw,preloadImage:this.$store.getters.mergedConfig.preloadImage,loading:!1,img:"image"===F.Z.fileType(this.attachment.mimetype)&&document.createElement("img"),modalOpen:!1,showHidden:!1,flashLoaded:!1,showDescription:!1}},components:{Flash:A.Z,StillImage:M.Z,VideoAttachment:L.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,U.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classNames:function(){return[{"-loading":this.loading,"-nsfw-placeholder":this.hidden,"-editable":void 0!==this.edit,"-compact":this.compact},"-type-"+this.type,this.size&&"-size-"+this.size,"-".concat(this.useContainFit?"contain":"cover","-fit")]},usePlaceholder:function(){return"hide"===this.size},useContainFit:function(){return this.$store.getters.mergedConfig.useContainFit},placeholderName:function(){return""!==this.attachment.description&&this.attachment.description?this.attachment.description:this.type.toUpperCase()},placeholderIconClass:function(){return"image"===this.type?"image":"video"===this.type?"video":"audio"===this.type?"music":"file"},referrerpolicy:function(){return this.$store.state.instance.mediaProxyAvailable?"":"no-referrer"},type:function(){return F.Z.fileType(this.attachment.mimetype)},hidden:function(){return this.nsfw&&this.hideNsfwLocal&&!this.showHidden},isEmpty:function(){return"html"===this.type&&!this.attachment.oembed},useModal:function(){var e=[];switch(this.size){case"hide":case"small":e=["image","video","audio","flash"];break;default:e=this.mergedConfig.playVideosInModal?["image","video","flash"]:["image"]}return e.includes(this.type)},videoTag:function(){return this.useModal?"button":"span"}},(0,R.Se)(["mergedConfig"])),watch:{"attachment.description":function(e){this.localDescription=e},localDescription:function(e){this.onEdit(e)}},methods:{linkClicked:function(e){var t=e.target;"A"===t.tagName&&window.open(t.href,"_blank")},openModal:function(e){this.useModal?(this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)):"unknown"===this.type&&window.open(this.attachment.url)},openModalForce:function(e){this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)},onEdit:function(e){this.edit&&this.edit(this.attachment,e)},onRemove:function(){this.remove&&this.remove(this.attachment)},onShiftUp:function(){this.shiftUp&&this.shiftUp(this.attachment)},onShiftDn:function(){this.shiftDn&&this.shiftDn(this.attachment)},stopFlash:function(){this.$refs.flash.closePlayer()},setFlashLoaded:function(e){this.flashLoaded=e},toggleDescription:function(){this.showDescription=!this.showDescription},toggleHidden:function(e){var t=this;!this.mergedConfig.useOneClickNsfw||this.showHidden||"video"===this.type&&!this.mergedConfig.playVideosInModal?this.img&&!this.preloadImage?this.img.onload?this.img.onload():(this.loading=!0,this.img.src=this.attachment.url,this.img.onload=function(){t.loading=!1,t.showHidden=!t.showHidden}):this.showHidden=!this.showHidden:this.openModal(e)},onImageLoad:function(e){var t=e.naturalWidth,n=e.naturalHeight;this.$emit("naturalSizeLoad",{id:this.attachment.id,width:t,height:n})}}},B=(0,n(83744).Z)(W,[["render",function(e,t,n,U,M,A){var L=(0,o.up)("FAIcon"),E=(0,o.up)("StillImage"),F=(0,o.up)("VideoAttachment"),R=(0,o.up)("Flash");return e.usePlaceholder?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["Attachment -placeholder button-unstyled",e.classNames]),onClick:t[4]||(t[4]=function(){return e.openModal&&e.openModal.apply(e,arguments)})},["html"!==e.type?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"placeholder",target:"_blank",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(L,{icon:e.placeholderIconClass},null,8,["icon"]),(0,o._)("b",null,(0,r.zw)(e.nsfw?"NSFW / ":""),1),(0,o.Uk)((0,r.zw)(e.edit?"":e.placeholderName),1)],8,s)):(0,o.kq)("",!0),e.edit||e.remove?((0,o.wg)(),(0,o.iD)("div",a,[e.remove?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled attachment-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"trash-alt"})])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription||e.showDescription)?((0,o.wg)(),(0,o.iD)("div",{key:2,class:(0,r.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[3]||(t[3]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,c)),[[i.nr,e.localDescription]]):((0,o.wg)(),(0,o.iD)("p",l,(0,r.zw)(e.localDescription),1))],2)):(0,o.kq)("",!0)],2)):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["Attachment",e.classNames])},[(0,o.wy)((0,o._)("div",u,[e.hidden?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"image-container",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[((0,o.wg)(),(0,o.iD)("img",{key:e.nsfwImage,class:"nsfw",src:e.nsfwImage},null,8,p)),"video"===e.type?((0,o.wg)(),(0,o.j4)(L,{key:0,class:"play-icon",icon:"play-circle"})):(0,o.kq)("",!0)],8,d)):(0,o.kq)("",!0),e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",m,["flash"===e.type&&e.flashLoaded?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled attachment-button",title:e.$t("status.attachment_stop_flash"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.stopFlash&&e.stopFlash.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"stop"})],8,h)):(0,o.kq)("",!0),e.attachment.description&&"small"!==e.size&&!e.edit&&"unknown"!==e.type?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_description"),onClick:t[7]||(t[7]=(0,i.iM)((function(){return e.toggleDescription&&e.toggleDescription.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"align-right"})],8,f)):(0,o.kq)("",!0),e.useModal||"unknown"===e.type?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_in_modal"),onClick:t[8]||(t[8]=(0,i.iM)((function(){return e.openModalForce&&e.openModalForce.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"search-plus"})],8,g)),e.nsfw&&e.hideNsfwLocal?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-unstyled attachment-button",title:e.$t("status.hide_attachment"),onClick:t[9]||(t[9]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"times"})],8,v)):(0,o.kq)("",!0),e.shiftUp?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled attachment-button",title:e.$t("status.move_up"),onClick:t[10]||(t[10]=(0,i.iM)((function(){return e.onShiftUp&&e.onShiftUp.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"chevron-left"})],8,w)):(0,o.kq)("",!0),e.shiftDn?((0,o.wg)(),(0,o.iD)("button",{key:5,class:"button-unstyled attachment-button",title:e.$t("status.move_down"),onClick:t[11]||(t[11]=(0,i.iM)((function(){return e.onShiftDn&&e.onShiftDn.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"chevron-right"})],8,b)):(0,o.kq)("",!0),e.remove?((0,o.wg)(),(0,o.iD)("button",{key:6,class:"button-unstyled attachment-button",title:e.$t("status.remove_attachment"),onClick:t[12]||(t[12]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(L,{icon:"trash-alt"})],8,y)):(0,o.kq)("",!0)])),"image"!==e.type||e.hidden&&!e.preloadImage?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:2,class:(0,r.C_)(["image-container",{"-hidden":e.hidden&&e.preloadImage}]),href:e.attachment.url,target:"_blank",onClick:t[13]||(t[13]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(E,{class:"image",referrerpolicy:e.referrerpolicy,mimetype:e.attachment.mimetype,src:e.attachment.large_thumb_url||e.attachment.url,"image-load-handler":e.onImageLoad,alt:e.attachment.description},null,8,["referrerpolicy","mimetype","src","image-load-handler","alt"])],10,_)),"unknown"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:3,class:"placeholder-container",href:e.attachment.url,target:"_blank"},[(0,o.Wm)(L,{size:e.compact?"2x":"5x",icon:e.placeholderIconClass,title:e.localDescription},null,8,["size","icon","title"]),e.compact?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("p",S,(0,r.zw)(e.localDescription),1))],8,k)),"video"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)((0,o.LL)(e.videoTag),{key:4,class:(0,r.C_)(["video-container",{"button-unstyled":"isModal"}]),href:e.attachment.url,onClick:(0,i.iM)(e.openModal,["stop","prevent"])},{default:(0,o.w5)((function(){return[(0,o.Wm)(F,{class:"video",attachment:e.attachment,controls:!e.useModal,onPlay:t[14]||(t[14]=function(t){return e.$emit("play")}),onPause:t[15]||(t[15]=function(t){return e.$emit("pause")})},null,8,["attachment","controls"]),e.useModal?((0,o.wg)(),(0,o.j4)(L,{key:0,class:"play-icon",icon:"play-circle"})):(0,o.kq)("",!0)]})),_:1},8,["href","onClick"])),"audio"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",{key:5,class:"audio-container",href:e.attachment.url,onClick:t[18]||(t[18]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},["audio"===e.type?((0,o.wg)(),(0,o.iD)("audio",{key:0,src:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,controls:"",onPlay:t[16]||(t[16]=function(t){return e.$emit("play")}),onPause:t[17]||(t[17]=function(t){return e.$emit("pause")})},null,40,C)):(0,o.kq)("",!0)],8,j)),"html"===e.type&&e.attachment.oembed?((0,o.wg)(),(0,o.iD)("div",{key:6,class:"oembed-container",onClick:t[19]||(t[19]=(0,i.iM)((function(){return e.linkClicked&&e.linkClicked.apply(e,arguments)}),["prevent"]))},[e.attachment.thumb_url?((0,o.wg)(),(0,o.iD)("div",O,[(0,o._)("img",{src:e.attachment.thumb_url},null,8,P)])):(0,o.kq)("",!0),(0,o._)("div",z,[(0,o._)("h1",null,[(0,o._)("a",{href:e.attachment.url},(0,r.zw)(e.attachment.oembed.title),9,D)]),(0,o._)("div",{innerHTML:e.attachment.oembed.oembedHTML},null,8,I)])])):(0,o.kq)("",!0),"flash"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",{key:7,class:"flash-container",href:e.attachment.url,onClick:t[22]||(t[22]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(R,{ref:"flash",class:"flash",src:e.attachment.large_thumb_url||e.attachment.url,onPlayerOpened:t[20]||(t[20]=function(t){return e.setFlashLoaded(!0)}),onPlayerClosed:t[21]||(t[21]=function(t){return e.setFlashLoaded(!1)})},null,8,["src"])],8,x))],512),[[i.F8,!e.isEmpty]]),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription&&e.showDescription)?((0,o.wg)(),(0,o.iD)("div",{key:0,class:(0,r.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,"onUpdate:modelValue":t[23]||(t[23]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[24]||(t[24]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,T)),[[i.nr,e.localDescription]]):((0,o.wg)(),(0,o.iD)("p",$,(0,r.zw)(e.localDescription),1))],2)):(0,o.kq)("",!0)],2))}]])},19066:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(66252),r={class:"avatars"},i=n(48173),s=n(4493);const a={props:["users"],computed:{slicedUsers:function(){return this.users?this.users.slice(0,15):[]}},components:{UserAvatar:i.default},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},c=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("UserAvatar"),l=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("div",r,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.slicedUsers,(function(t){return(0,o.wg)(),(0,o.j4)(l,{key:t.id,to:e.userProfileLink(t),class:"avatars-item"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{user:t,class:"avatar-small"},null,8,["user"])]})),_:2},1032,["to"])})),128))])}]])},29076:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o=n(66252),r=n(49963),i={class:"basic-user-card"},s={class:"basic-user-card-collapsed-content"},a=["title"],c=n(22588),l=n(48173),u=n(12061),d=n(92820),p=n(4493);const m={props:["user"],components:{UserPopover:c.default,UserAvatar:l.default,RichContent:d.Z,UserLink:u.Z},methods:{userProfileLink:function(e){return(0,p.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,c,l,u){var d=(0,o.up)("UserAvatar"),p=(0,o.up)("UserPopover"),m=(0,o.up)("router-link"),h=(0,o.up)("RichContent"),f=(0,o.up)("user-link");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o.Wm)(m,{to:e.userProfileLink(e.user),onClick:t[1]||(t[1]=(0,r.iM)((function(){}),["prevent"]))},{default:(0,o.w5)((function(){return[(0,o.Wm)(p,{"user-id":e.user.id,"overlay-centers":!0,"overlay-centers-selector":".avatar"},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{class:"user-avatar avatar",user:e.user,onClick:t[0]||(t[0]=(0,r.iM)((function(){}),["prevent"]))},null,8,["user"])]})),_:1},8,["user-id"])]})),_:1},8,["to"]),(0,o._)("div",s,[(0,o._)("div",{title:e.user.name,class:"basic-user-card-user-name"},[(0,o.Wm)(h,{class:"basic-user-card-user-name-value",html:e.user.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,a),(0,o._)("div",null,[(0,o.Wm)(f,{class:"basic-user-card-screen-name",user:e.user},null,8,["user"])]),(0,o.WI)(e.$slots,"default")])])}]])},90350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(66252),r=n(3577),i=["disabled","checked","indeterminate"],s=(0,o._)("i",{class:"checkbox-indicator","aria-hidden":!0},null,-1),a={key:0,class:"label"};const c={props:["modelValue","indeterminate","disabled"],emits:["update:modelValue"]},l=(0,n(83744).Z)(c,[["render",function(e,t,n,c,l,u){return(0,o.wg)(),(0,o.iD)("label",{class:(0,r.C_)(["checkbox",{disabled:n.disabled,indeterminate:n.indeterminate}])},[(0,o._)("input",{type:"checkbox",class:"visible-for-screenreader-only",disabled:n.disabled,checked:n.modelValue,indeterminate:n.indeterminate,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.checked)})},null,40,i),s,e.$slots.default?((0,o.wg)(),(0,o.iD)("span",a,[(0,o.WI)(e.$slots,"default")])):(0,o.kq)("",!0)],2)}]])},1447:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i=n(49963),s=["textContent"],a=["textContent"],c=["textContent"];const l={components:{DialogModal:n(71113).Z},props:{title:{type:String},cancelText:{type:String},confirmText:{type:String}},computed:{},methods:{onCancel:function(){this.$emit("cancelled")},onAccept:function(){this.$emit("accepted")}}},u=(0,n(83744).Z)(l,[["render",function(e,t,n,l,u,d){var p=(0,o.up)("dialog-modal"),m=(0,o.Q2)("body-scroll-lock");return(0,o.wy)(((0,o.wg)(),(0,o.j4)(p,{class:"confirm-modal","on-cancel":e.onCancel},{header:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.title)},null,8,s)]})),footer:(0,o.w5)((function(){return[(0,o._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.onAccept&&e.onAccept.apply(e,arguments)}),["prevent"])),textContent:(0,r.zw)(e.confirmText)},null,8,a),(0,o._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.onCancel&&e.onCancel.apply(e,arguments)}),["prevent"])),textContent:(0,r.zw)(e.cancelText)},null,8,c)]})),default:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),_:3},8,["on-cancel"])),[[m,!0]])}]])},71113:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(66252),r=n(3577),i=n(49963),s={class:"panel-heading dialog-modal-heading"},a={class:"title"},c={class:"dialog-modal-content"},l={class:"dialog-modal-footer user-interactions panel-footer"};const u={props:{darkOverlay:{default:!0,type:Boolean},onCancel:{default:function(){},type:Function}}},d=(0,n(83744).Z)(u,[["render",function(e,t,n,u,d,p){return(0,o.wg)(),(0,o.iD)("span",{class:(0,r.C_)({"dark-overlay":e.darkOverlay}),onClick:t[1]||(t[1]=(0,i.iM)((function(t){return e.onCancel()}),["self","stop"]))},[(0,o._)("div",{class:"dialog-modal panel panel-default",onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["stop"]))},[(0,o._)("div",s,[(0,o._)("div",a,[(0,o.WI)(e.$slots,"header")])]),(0,o._)("div",c,[(0,o.WI)(e.$slots,"default")]),(0,o._)("div",l,[(0,o.WI)(e.$slots,"footer")])])],2)}]])},86319:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ze});var o=n(66252),r=n(3577),i=n(49963),s={ref:"hiddenOverlayCaret",class:"caret"},a=["title"],c=["id"],l=["id","aria-label","aria-selected","onClick"],u={class:"image"},d=["src"],p={key:1},m={class:"label"},h={key:0,class:"displayText"},f={key:1,class:"displayText"},g={class:"detailText"},v=n(4942),w=n(44925),b=n(15861),y=n(93433),_=n(69572),k=n.n(_),S=n(64687),j=n.n(S),C=n(13311),O=n.n(C),P=n(54061),z=n.n(P),D=function(e){return z()(e,(function(e,t){var n={word:t,start:0,end:t.length};if(e.length>0){var o=e.pop();n.start+=o.end,n.end+=o.end,e.push(o)}return e.push(n),e}),[])},I=function(e){for(var t=[],n="",o=0;o<e.length;o++){var r=e[o];n?!!r.trim()==!!n.trim()?n+=r:(t.push(n),n=r):n=r}return n&&t.push(n),t};const x=function(e,t){var n=I(e),o=D(n);return O()(o,(function(e){var n=e.start,o=e.end;return n<=t&&o>t}))},T=function(e,t,n){return e.slice(0,t.start)+n+e.slice(t.end)};var $={class:"heading"},U={ref:"header",class:"emoji-tabs"},M=["title","onClick"],A={key:0,class:"emoji-picker-header-image"},L={key:0,class:"additional-tabs"},E=["title"],F={key:0,class:"content"},R={class:"emoji-search"},q=["placeholder"],N={class:"emoji-group"},Z={key:0,class:"emoji-group-title"},W=["title","onClick"],B={key:0,class:"emoji-picker-emoji -unicode"},H={class:"keep-open"},V={key:0,class:"stickers-content"},K=n(29439),G=n(8400),Y=n.n(G),J=n(92742),Q=n.n(J),X=n(23279),ee=n.n(X),te=n(90350),ne=n(91447),oe=n(32140),re=n(8312),ie=n(9382),se=n(84131);function ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function le(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ue(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ue(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}ie.vI.add(se.IA$,se.L4e,se.RKn,se.ctA,se.ILF,se.kQp,se.E1P,se.k0d,se.Elv,se.X8G,se.dT$,se.RrC);var de={"smileys-and-emotion":"smile","people-and-body":"user","animals-and-nature":"paw","food-and-drink":"ice-cream","travel-and-places":"bus",activities:"basketball-ball",objects:"lightbulb",symbols:"code",flags:"flag"},pe=function(e,t,n){var o=[e.displayText,n(e)];return e.annotations&&t.forEach((function(t){var n,r,i=(null===(n=e.annotations[t])||void 0===n?void 0:n.keywords)||[],s=null===(r=e.annotations[t])||void 0===r?void 0:r.name;o.push.apply(o,(0,y.Z)(i.concat([s]).filter((function(e){return e}))))})),o};const me={props:{enableStickerPicker:{required:!1,type:Boolean,default:!1}},data:function(){return{keyword:"",activeGroup:"custom",showingStickers:!1,groupsScrolledClass:"scrolled-top",keepOpen:!1,customEmojiTimeout:null,contentLoaded:!1,groupRefs:{},emojiRefs:{},filteredEmojiGroups:[],width:0}},components:{StickerPicker:(0,o.RC)((function(){return n.e(159).then(n.bind(n,30159))})),Checkbox:te.Z,StillImage:oe.Z,Popover:ne.default},methods:{showPicker:function(){this.$refs.popover.showPopover(),this.onShowing()},hidePicker:function(){this.$refs.popover.hidePopover()},setAnchorEl:function(e){this.$refs.popover.setAnchorEl(e)},setGroupRef:function(e){var t=this;return function(n){t.groupRefs[e]=n}},onPopoverShown:function(){this.$emit("show")},onPopoverClosed:function(){this.$emit("close")},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-failed",e)},onEmoji:function(e){var t=e.imageUrl?":".concat(e.displayText,":"):e.replacement;this.keepOpen||this.$refs.popover.hidePopover(),this.$emit("emoji",{insertion:t,keepOpen:this.keepOpen})},onScroll:function(e,t,n,o){var r=this.$refs["emoji-groups"].$el;this.scrolledGroup(r,n,o)},scrolledGroup:function(e,t,n){var o=this,r=e.scrollTop+5;this.$nextTick((function(){o.emojiItems.slice(t,n+1).forEach((function(e){var t=e.id.replace(/^row-\d+-/,""),n=o.groupRefs["group-"+e.id];if(n){var i=n.$el.parentElement;i&&i&&function(e){var t=e.style.transform,n=/translateY\((\d+)px\)/.exec(t);return n?n[1]:0}(i)<=r&&(o.activeGroup=t)}})),o.scrollHeader()}))},scrollHeader:function(){var e=this.groupRefs["group-header-"+this.activeGroup],t=e.offsetLeft,n=t+e.offsetWidth,o=this.$refs.header,r=o.scrollLeft,i=r+o.clientWidth,s=function(e){o.scrollLeft=e};t-7<r?s(t-7):n+7>i&&s(n+7-o.clientWidth)},highlight:function(e){this.setShowStickers(!1);var t=this.emojiItems.findIndex((function(t){return t.id===e}));this.$refs["emoji-groups"].scrollToItem(t)},updateScrolledClass:function(e){e.scrollTop<=5?this.groupsScrolledClass="scrolled-top":e.scrollTop>=e.scrollTopMax-5?this.groupsScrolledClass="scrolled-bottom":this.groupsScrolledClass="scrolled-middle"},toggleStickers:function(){this.showingStickers=!this.showingStickers},setShowStickers:function(e){this.showingStickers=e},filterByKeyword:function(e,t){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0;if(""===t)return e;var r,i=t.toLowerCase(),s=[],a=le(e);try{for(a.s();!(r=a.n()).done;){var c=r.value,l=pe(c,n,o).map((function(e){return e.toLowerCase().indexOf(i)})).filter((function(e){return e>-1})),u=l.length?Math.min.apply(Math,(0,y.Z)(l)):-1;u>-1&&(Array.isArray(s[u])||(s[u]=[]),s[u].push(c))}}catch(e){a.e(e)}finally{a.f()}return s.flat()}(e,t,this.languages,this.maybeLocalizedEmojiName)},onShowing:function(){var e=this,t=this.contentLoaded;this.recalculateItemPerRow(),this.$nextTick((function(){e.$refs.search.focus()})),this.contentLoaded=!0,this.filteredEmojiGroups=this.getFilteredEmojiGroups(),t||this.$nextTick((function(){e.defaultGroup&&e.highlight(e.defaultGroup)}))},getFilteredEmojiGroups:function(){var e=this;return this.allEmojiGroups.map((function(t){return ce(ce({},t),{},{emojis:e.filterByKeyword(t.emojis,Q()(e.keyword))})})).filter((function(e){return e.emojis.length>0}))},recalculateItemPerRow:function(){var e=this;this.$nextTick((function(){e.$refs["emoji-groups"]&&(e.width=e.$refs["emoji-groups"].$el.clientWidth)}))}},watch:{keyword:function(){this.onScroll(),this.debouncedHandleKeywordChange()},allCustomGroups:function(){this.filteredEmojiGroups=this.getFilteredEmojiGroups()}},computed:{minItemSize:function(){return this.emojiHeight},emojiHeight:function(){return 36},emojiWidth:function(){return 36},itemPerRow:function(){return this.width?Math.floor(this.width/this.emojiWidth-1):6},activeGroupView:function(){return this.showingStickers?"":this.activeGroup},stickersAvailable:function(){return this.$store.state.instance.stickers?this.$store.state.instance.stickers.length>0:0},allCustomGroups:function(){var e=this.$store.getters.groupedCustomEmojis;return e.unpacked&&(e.unpacked.text=this.$t("emoji.unpacked")),e},defaultGroup:function(){return Object.keys(this.allCustomGroups)[0]},unicodeEmojiGroups:function(){var e=this;return this.$store.getters.standardEmojiGroupList.map((function(t){return{id:"standard-".concat(t.id),text:e.$t("emoji.unicode_groups.".concat(t.id)),icon:de[t.id],emojis:t.emojis}}))},allEmojiGroups:function(){return Object.entries(this.allCustomGroups).map((function(e){var t=(0,K.Z)(e,2);return t[0],t[1]})).concat(this.unicodeEmojiGroups)},stickerPickerEnabled:function(){return 0!==(this.$store.state.instance.stickers||[]).length},debouncedHandleKeywordChange:function(){var e=this;return ee()((function(){e.filteredEmojiGroups=e.getFilteredEmojiGroups()}),500)},emojiItems:function(){var e=this;return this.filteredEmojiGroups.map((function(t){return Y()(t.emojis,e.itemPerRow).map((function(e,n){return ce(ce({},t),{},{id:0===n?t.id:"row-".concat(n,"-").concat(t.id),emojis:e,isFirstRow:0===n})}))})).reduce((function(e,t){return e.concat(t)}),[])},languages:function(){return(0,re.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,o=le(e.languages);try{for(o.s();!(n=o.n()).done;){var r,i=n.value;if(null!==(r=t.annotations[i])&&void 0!==r&&r.name)return t.annotations[i].name}}catch(e){o.e(e)}finally{o.f()}return t.displayText}}}};var he=n(83744);const fe=(0,he.Z)(me,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("still-image"),u=(0,o.up)("FAIcon"),d=(0,o.up)("DynamicScrollerItem"),p=(0,o.up)("DynamicScroller"),m=(0,o.up)("Checkbox"),h=(0,o.up)("sticker-picker"),f=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(f,{ref:"popover",trigger:"click","popover-class":"emoji-picker popover-default","trigger-attrs":{"aria-hidden":!0},onShow:e.onPopoverShown,onClose:e.onPopoverClosed},{content:(0,o.w5)((function(){return[(0,o._)("div",$,[(0,o._)("span",U,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.filteredEmojiGroups,(function(t){return(0,o.wg)(),(0,o.iD)("span",{ref_for:!0,ref:e.setGroupRef("group-header-"+t.id),key:t.id,class:(0,r.C_)(["emoji-tabs-item",{active:e.activeGroupView===t.id}]),title:t.text,onClick:(0,i.iM)((function(n){return e.highlight(t.id)}),["prevent"])},[t.image?((0,o.wg)(),(0,o.iD)("span",A,[(0,o.Wm)(l,{alt:t.text,src:t.image},null,8,["alt","src"])])):((0,o.wg)(),(0,o.j4)(u,{key:1,icon:t.icon,"fixed-width":""},null,8,["icon"]))],10,M)})),128))],512),e.stickerPickerEnabled?((0,o.wg)(),(0,o.iD)("span",L,[(0,o._)("span",{class:(0,r.C_)(["stickers-tab-icon additional-tabs-item",{active:e.showingStickers}]),title:e.$t("emoji.stickers"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleStickers&&e.toggleStickers.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(u,{icon:"sticky-note","fixed-width":""})],10,E)])):(0,o.kq)("",!0)]),e.contentLoaded?((0,o.wg)(),(0,o.iD)("div",F,[(0,o._)("div",{class:(0,r.C_)(["emoji-content",{hidden:e.showingStickers}])},[(0,o._)("div",R,[(0,o.wy)((0,o._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.keyword=t}),type:"text",class:"form-control",placeholder:e.$t("emoji.search_emoji"),onInput:t[2]||(t[2]=function(e){return e.target.composing=!1})},null,40,q),[[i.nr,e.keyword]])]),(0,o.Wm)(p,{ref:"emoji-groups",class:(0,r.C_)(["emoji-groups",e.groupsScrolledClass]),"min-item-size":e.minItemSize,items:e.emojiItems,"emit-update":!0,onUpdate:e.onScroll,onVisible:e.recalculateItemPerRow,onResize:e.recalculateItemPerRow},{default:(0,o.w5)((function(t){var n=t.item,s=t.index,a=t.active;return[(0,o.Wm)(d,{ref:e.setGroupRef("group-"+n.id),item:n,active:a,"data-index":s,"size-dependencies":[n.emojis.length]},{default:(0,o.w5)((function(){return[(0,o._)("div",N,[n.isFirstRow?((0,o.wg)(),(0,o.iD)("h6",Z,(0,r.zw)(n.text),1)):(0,o.kq)("",!0),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.emojis,(function(t){return(0,o.wg)(),(0,o.iD)("span",{key:n.id+t.displayText,title:e.maybeLocalizedEmojiName(t),class:"emoji-item",onClick:(0,i.iM)((function(n){return e.onEmoji(t)}),["stop","prevent"])},[t.imageUrl?((0,o.wg)(),(0,o.j4)(l,{key:1,class:"emoji-picker-emoji -custom",loading:"lazy",src:t.imageUrl,"data-emoji-name":n.id+t.displayText},null,8,["src","data-emoji-name"])):((0,o.wg)(),(0,o.iD)("span",B,(0,r.zw)(t.replacement),1))],8,W)})),128))])]})),_:2},1032,["item","active","data-index","size-dependencies"])]})),_:1},8,["class","min-item-size","items","onUpdate","onVisible","onResize"]),(0,o._)("div",H,[(0,o.Wm)(m,{modelValue:e.keepOpen,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.keepOpen=t})},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("emoji.keep_open")),1)]})),_:1},8,["modelValue"])])],2),e.showingStickers?((0,o.wg)(),(0,o.iD)("div",V,[(0,o.Wm)(h,{onUploaded:e.onStickerUploaded,onUploadFailed:e.onStickerUploadFailed},null,8,["onUploaded","onUploadFailed"])])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)]})),_:1},8,["onShow","onClose"])}]]);var ge=["aria-live"];const ve={props:{ariaLive:{type:String,defualt:"assertive"}},data:function(){return{currentText:""}},methods:{announce:function(e){var t=this;this.currentText=e,setTimeout((function(){t.currentText=""}),1e3)}}},we=(0,he.Z)(ve,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("div",{class:"visible-for-screenreader-only","aria-live":e.ariaLive},(0,r.zw)(e.currentText),9,ge)}]]);var be,ye=n(42262),_e=n(67952),ke=n(5737),Se=["imageUrl"];function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?je(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):je(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}ie.vI.add(ke.RKn);const Pe={emits:["update:modelValue","shown"],props:{suggest:{required:!0,type:Function},modelValue:{required:!0,type:String},enableEmojiPicker:{required:!1,type:Boolean,default:!1},hideEmojiButton:{required:!1,type:Boolean,default:!1},enableStickerPicker:{required:!1,type:Boolean,default:!1},placement:{required:!1,type:String,default:"auto"},newlineOnCtrlEnter:{required:!1,type:Boolean,default:!1}},data:function(){return{randomSeed:"".concat(Math.random()).replace(".","-"),input:void 0,caretEl:void 0,highlighted:-1,caret:0,focused:!1,blurTimeout:null,temporarilyHideSuggestions:!1,disableClickOutside:!1,suggestions:[],overlayStyle:{},pickerShown:!1}},components:{Popover:ne.default,EmojiPicker:fe,UnicodeDomainIndicator:ye.Z,ScreenReaderNotice:we},computed:{padEmoji:function(){return this.$store.getters.mergedConfig.padEmoji},preText:function(){return this.modelValue.slice(0,this.caret)},postText:function(){return this.modelValue.slice(this.caret)},showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length>0&&!this.pickerShown&&!this.temporarilyHideSuggestions},textAtCaret:function(){var e;return null===(e=this.wordAtCaret)||void 0===e?void 0:e.word},wordAtCaret:function(){if(this.modelValue&&this.caret)return x(this.modelValue,this.caret-1)||{}},languages:function(){return(0,re.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiNamesAndKeywords:function(){var e=this;return function(t){var n=[t.displayText],o=[];return t.displayTextI18n&&n.push(e.$t(t.displayTextI18n.key,t.displayTextI18n.args)),t.annotations&&e.languages.forEach((function(e){var r,i;n.push(null===(r=t.annotations[e])||void 0===r?void 0:r.name),o.push.apply(o,(0,y.Z)((null===(i=t.annotations[e])||void 0===i?void 0:i.keywords)||[]))})),{names:n.filter((function(e){return e})),keywords:o.filter((function(e){return e}))}}},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Oe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e.languages);try{for(o.s();!(n=o.n()).done;){var r,i=n.value;if(null!==(r=t.annotations[i])&&void 0!==r&&r.name)return t.annotations[i].name}}catch(e){o.e(e)}finally{o.f()}return t.displayText}},onInputScroll:function(){this.$refs.hiddenOverlay.scrollTo({top:this.input.scrollTop,left:this.input.scrollLeft})},suggestionListId:function(){return"suggestions-".concat(this.randomSeed)},suggestionItemId:function(){var e=this;return function(t){return"suggestion-item-".concat(t,"-").concat(e.randomSeed)}}},mounted:function(){var e=this.$refs,t=e.root,n=e.hiddenOverlayCaret,o=e.suggestorPopover,r=t.querySelector(".emoji-input > input")||t.querySelector(".emoji-input > textarea");if(r){this.input=r,this.caretEl=n,o.setAnchorEl?(o.setAnchorEl(this.caretEl),this.$refs.picker.setAnchorEl(this.caretEl)):console.warn("setAnchorEl not found, are we in a unit test?");var i=getComputedStyle(this.input);this.overlayStyle.padding=i.padding,this.overlayStyle.border=i.border,this.overlayStyle.margin=i.margin,this.overlayStyle.lineHeight=i.lineHeight,this.overlayStyle.fontFamily=i.fontFamily,this.overlayStyle.fontSize=i.fontSize,this.overlayStyle.wordWrap=i.wordWrap,this.overlayStyle.whiteSpace=i.whiteSpace,this.resize(),r.addEventListener("blur",this.onBlur),r.addEventListener("focus",this.onFocus),r.addEventListener("paste",this.onPaste),r.addEventListener("keyup",this.onKeyUp),r.addEventListener("keydown",this.onKeyDown),r.addEventListener("click",this.onClickInput),r.addEventListener("transitionend",this.onTransition),r.addEventListener("input",this.onInput),r.addEventListener("scroll",this.onInputScroll)}},unmounted:function(){var e=this.input;e&&(e.removeEventListener("blur",this.onBlur),e.removeEventListener("focus",this.onFocus),e.removeEventListener("paste",this.onPaste),e.removeEventListener("keyup",this.onKeyUp),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("click",this.onClickInput),e.removeEventListener("transitionend",this.onTransition),e.removeEventListener("input",this.onInput),e.removeEventListener("scroll",this.onInputScroll))},watch:{showSuggestions:function(e,t){this.$emit("shown",e),e?this.$refs.suggestorPopover.showPopover():this.$refs.suggestorPopover.hidePopover()},textAtCaret:(be=(0,b.Z)(j().mark((function e(t){var n,o;return j().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==t){e.next=2;break}return e.abrupt("return");case 2:if(n=t.charAt(0),t!==n){e.next=6;break}return this.suggestions=[],e.abrupt("return");case 6:return e.next=8,this.suggest(t,this.maybeLocalizedEmojiNamesAndKeywords);case 8:if(o=e.sent,!(this.textAtCaret!==t||o.length<=0)){e.next=12;break}return this.suggestions=[],e.abrupt("return");case 12:this.suggestions=k()(o,5).map((function(e){var t=e.imageUrl;return Ce(Ce({},(0,w.Z)(e,Se)),{},{img:t||""})})),this.highlighted=-1,this.$refs.screenReaderNotice.announce(this.$tc("tool_tip.autocomplete_available",this.suggestions.length,{number:this.suggestions.length}));case 15:case"end":return e.stop()}}),e,this)}))),function(e){return be.apply(this,arguments)})},methods:{triggerShowPicker:function(){var e=this;this.$nextTick((function(){e.$refs.picker.showPicker(),e.scrollIntoView()})),this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0)},togglePicker:function(){this.input.focus(),this.pickerShown?this.$refs.picker.hidePicker():(this.scrollIntoView(),this.$refs.picker.showPicker(),this.$refs.picker.startEmojiLoad())},replace:function(e){var t=T(this.modelValue,this.wordAtCaret,e);this.$emit("update:modelValue",t),this.caret=0},insert:function(e){var t=e.insertion,n=e.keepOpen,o=e.surroundingSpace,r=void 0===o||o,i=this.modelValue.substring(0,this.caret)||"",s=this.modelValue.substring(this.caret)||"",a=/\s/,c=r&&!a.exec(i.slice(-1))&&i.length&&this.padEmoji>0?" ":"",l=r&&!a.exec(s[0])&&this.padEmoji?" ":"",u=[i,c,t,l,s].join("");this.$emit("update:modelValue",u);var d=this.caret+(t+l+c).length;n||this.input.focus(),this.$nextTick((function(){this.input.setSelectionRange(d,d),this.caret=d}))},replaceText:function(e,t){var n=this.suggestions.length||0;if(1!==this.textAtCaret.length&&(n>0||t)){var o=(t||this.suggestions[this.highlighted]).replacement,r=T(this.modelValue,this.wordAtCaret,o);this.$emit("update:modelValue",r),this.highlighted=0;var i=this.wordAtCaret.start+o.length;this.$nextTick((function(){this.input.focus(),this.input.setSelectionRange(i,i),this.caret=i})),e.preventDefault()}},cycleBackward:function(e){var t=this.suggestions.length||0;this.highlighted-=1,-1===this.highlighted?this.input.focus():this.highlighted<-1&&(this.highlighted=t-1),t>0&&e.preventDefault()},cycleForward:function(e){var t=this.suggestions.length||0;this.highlighted+=1,this.highlighted>=t&&(this.highlighted=-1,this.input.focus()),t>0&&e.preventDefault()},scrollIntoView:function(){var e=this,t=this.$refs.picker.$el,n=this.$el.closest(".sidebar-scroller")||this.$el.closest(".post-form-modal-view")||window,o=n===window?n.scrollY:n.scrollTop,r=o+(n===window?n.innerHeight:n.offsetHeight),i=t.offsetHeight+(0,_e.y)(t,n).top,s=o+Math.max(0,i-r);n===window?n.scroll(0,s):n.scrollTop=s,this.$nextTick((function(){var t=e.input.offsetHeight,n=e.$refs.picker;n.$el.getBoundingClientRect().bottom>window.innerHeight&&(n.$el.style.top="auto",n.$el.style.bottom=t+"px")}))},onPickerShown:function(){this.pickerShown=!0},onPickerClosed:function(){this.pickerShown=!1},onBlur:function(e){var t=this;this.blurTimeout=setTimeout((function(){t.focused=!1,t.setCaret(e)}),200)},onClick:function(e,t){this.replaceText(e,t)},onFocus:function(e){this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),this.focused=!0,this.setCaret(e),this.temporarilyHideSuggestions=!1},onKeyUp:function(e){var t=e.key;this.setCaret(e),this.temporarilyHideSuggestions="Escape"===t},onPaste:function(e){this.setCaret(e)},onKeyDown:function(e){var t=this,n=e.ctrlKey,o=e.shiftKey,r=e.key;this.newlineOnCtrlEnter&&n&&"Enter"===r&&(this.insert({insertion:"\n",surroundingSpace:!1}),e.stopPropagation(),e.preventDefault(),this.$nextTick((function(){t.input.blur(),t.input.focus()}))),this.temporarilyHideSuggestions||("Tab"===r&&(o?this.cycleBackward(e):this.cycleForward(e)),"ArrowUp"===r?this.cycleBackward(e):"ArrowDown"===r&&this.cycleForward(e),"Enter"===r&&(n||this.replaceText(e))),"Escape"===r&&(this.temporarilyHideSuggestions||this.input.focus())},onInput:function(e){this.setCaret(e),this.$emit("update:modelValue",e.target.value)},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-Failed",e)},setCaret:function(e){var t=this,n=e.target.selectionStart;this.caret=n,this.$nextTick((function(){t.$refs.suggestorPopover.updateStyles()}))},resize:function(){},autoCompleteItemLabel:function(e){return e.user?e.displayText+" "+e.detailText:this.maybeLocalizedEmojiName(e)}}},ze=(0,he.Z)(Pe,[["render",function(e,t,n,v,w,b){var y=(0,o.up)("screen-reader-notice"),_=(0,o.up)("FAIcon"),k=(0,o.up)("EmojiPicker"),S=(0,o.up)("UnicodeDomainIndicator"),j=(0,o.up)("Popover");return(0,o.wg)(),(0,o.iD)("div",{ref:"root",class:(0,r.C_)(["emoji-input",{"with-picker":!e.hideEmojiButton}])},[(0,o.WI)(e.$slots,"default",{id:"textbox-"+e.randomSeed,ariaOwns:e.suggestionListId,ariaAutocomplete:"both",ariaExpanded:e.showSuggestions,ariaActivedescendant:e.showSuggestions&&-1!==e.highlighted?e.suggestionItemId(e.highlighted):""}),(0,o._)("div",{ref:"hiddenOverlay",class:"hidden-overlay",style:(0,r.j5)(e.overlayStyle),"aria-hidden":!0},[(0,o._)("span",null,(0,r.zw)(e.preText),1),(0,o._)("span",s,"x",512),(0,o._)("span",null,(0,r.zw)(e.postText),1)],4),(0,o.Wm)(y,{ref:"screenReaderNotice","aria-live":"assertive"},null,512),e.enableEmojiPicker?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.hideEmojiButton?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled emoji-picker-icon",type:"button",title:e.$t("emoji.add_emoji"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.togglePicker&&e.togglePicker.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(_,{icon:["far","smile-beam"]})],8,a)),e.enableEmojiPicker?((0,o.wg)(),(0,o.j4)(k,{key:1,ref:"picker","enable-sticker-picker":e.enableStickerPicker,class:"emoji-picker-panel",onEmoji:e.insert,onStickerUploaded:e.onStickerUploaded,onStickerUploadFailed:e.onStickerUploadFailed,onShow:e.onPickerShown,onClose:e.onPickerClosed},null,8,["enable-sticker-picker","onEmoji","onStickerUploaded","onStickerUploadFailed","onShow","onClose"])):(0,o.kq)("",!0)],64)):(0,o.kq)("",!0),(0,o.Wm)(j,{ref:"suggestorPopover",class:"autocomplete-panel",placement:"bottom","trigger-attrs":{"aria-hidden":!0}},{content:(0,o.w5)((function(){return[(0,o._)("div",{id:e.suggestionListId,ref:"panel-body",class:"autocomplete-panel-body",role:"listbox"},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.suggestions,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{id:e.suggestionItemId(n),key:n,class:(0,r.C_)(["autocomplete-item",{highlighted:n===e.highlighted}]),role:"option","aria-label":e.autoCompleteItemLabel(t),"aria-selected":n===e.highlighted,onClick:(0,i.iM)((function(n){return e.onClick(n,t)}),["stop","prevent"])},[(0,o._)("span",u,[t.img?((0,o.wg)(),(0,o.iD)("img",{key:0,src:t.img},null,8,d)):((0,o.wg)(),(0,o.iD)("span",p,(0,r.zw)(t.replacement),1))]),(0,o._)("div",m,[t.user?((0,o.wg)(),(0,o.iD)("span",h,[(0,o.Uk)((0,r.zw)(t.displayText),1),(0,o.Wm)(S,{user:t.user,at:!1},null,8,["user"])])):(0,o.kq)("",!0),t.user?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",f,(0,r.zw)(e.maybeLocalizedEmojiName(t)),1)),(0,o._)("span",g,(0,r.zw)(t.detailText),1)])],10,l)})),128))],8,c)]})),_:1},512)],2)}]])},72884:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o,r=n(66252),i=n(3577),s={class:"Flash"},a={key:0,class:"label"},c={key:1,class:"label"},l={key:2,class:"label"};const u=(o=null,{getRuffle:function(){return new Promise((function(e,t){if(o)e(o);else{window.RufflePlayer={},window.RufflePlayer.config={polyfills:!1,publicPath:"/static/ruffle"};var n=document.createElement("script");n.src="/static/ruffle/ruffle.js",n.type="text/javascript",n.onerror=function(e){t(e)},n.onabort=function(e){t(e)},n.oncancel=function(e){t(e)},n.onload=function(){o=window.RufflePlayer,e(o)},document.body.appendChild(n)}}))}});var d=n(9382),p=n(84131);d.vI.add(p.Bg$,p.eHv);const m={props:["src"],data:function(){return{player:!1,loaded:!1,ruffleInstance:null}},methods:{openPlayer:function(){var e=this;this.player||(this.player="hidden",u.getRuffle().then((function(t){var n=t.newest().createPlayer();n.config={letterbox:"on"},e.$refs.container.appendChild(n),n.style.width="100%",n.style.height="100%",n.load(e.src).then((function(){e.player=!0})).catch((function(t){console.error("Error loading ruffle",t),e.player="error"})),e.ruffleInstance=n,e.$emit("playerOpened")})))},closePlayer:function(){this.ruffleInstance&&this.ruffleInstance.remove(),this.player=!1,this.$emit("playerClosed")}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,o,u,d){var p=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("div",s,[!0===e.player||"hidden"===e.player?((0,r.wg)(),(0,r.iD)("div",{key:0,ref:"container",class:(0,i.C_)(["player",{hidden:"hidden"===e.player}])},null,2)):(0,r.kq)("",!0),!0!==e.player?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-unstyled placeholder",onClick:t[0]||(t[0]=function(){return e.openPlayer&&e.openPlayer.apply(e,arguments)})},["hidden"===e.player?((0,r.wg)(),(0,r.iD)("span",a,(0,i.zw)(e.$t("general.loading")),1)):(0,r.kq)("",!0),"error"===e.player?((0,r.wg)(),(0,r.iD)("span",c,(0,i.zw)(e.$t("general.flash_fail")),1)):((0,r.wg)(),(0,r.iD)("span",l,[(0,r._)("p",null,(0,i.zw)(e.$t("general.flash_content")),1),(0,r._)("p",null,[(0,r.Wm)(p,{icon:"exclamation-triangle"}),(0,r.Uk)(" "+(0,i.zw)(e.$t("general.flash_security")),1)])]))])):(0,r.kq)("",!0)])}]])},34837:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(66252),r=n(3577),i=["disabled","title"],s=["textContent"],a=n(1447),c=n(29439),l=function e(t,n,o){return new Promise((function(e,r){setTimeout((function(){o.state.api.backendInteractor.fetchUserRelationship({id:n}).then((function(e){return o.commit("updateUserRelationship",[e]),e})).then((function(n){return e([n.following,n.requested,n.locked,t])})).catch((function(e){return r(e)}))}),500)})).then((function(t){var r=(0,c.Z)(t,4),i=r[0],s=r[1],a=r[2],l=r[3];i||a&&s||!(l<=3)||e(++l,n,o)}))},u=function(e,t){return new Promise((function(n,o){t.state.api.backendInteractor.followUser({id:e}).then((function(e){if(t.commit("updateUserRelationship",[e]),!(e.following||e.locked&&e.requested))return l(1,e,t).then((function(){n()}));n()}))}))};const d={props:["relationship","user","labelFollowing","buttonClass"],components:{ConfirmModal:a.Z},data:function(){return{inProgress:!1,showingConfirmUnfollow:!1}},computed:{shouldConfirmUnfollow:function(){return this.$store.getters.mergedConfig.modalOnUnfollow},isPressed:function(){return this.inProgress||this.relationship.following},title:function(){return this.inProgress||this.relationship.following?this.$t("user_card.follow_unfollow"):this.relationship.requested?this.$t("user_card.follow_cancel"):this.$t("user_card.follow")},label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.relationship.following?this.labelFollowing||this.$t("user_card.following"):this.relationship.requested?this.$t("user_card.follow_sent"):this.$t("user_card.follow")},disabled:function(){return this.inProgress||this.user.deactivated}},methods:{showConfirmUnfollow:function(){this.showingConfirmUnfollow=!0},hideConfirmUnfollow:function(){this.showingConfirmUnfollow=!1},onClick:function(){this.relationship.following||this.relationship.requested?this.unfollow():this.follow()},follow:function(){var e=this;this.inProgress=!0,u(this.relationship.id,this.$store).then((function(){e.inProgress=!1}))},unfollow:function(){this.shouldConfirmUnfollow?this.showConfirmUnfollow():this.doUnfollow()},doUnfollow:function(){var e=this,t=this.$store;this.inProgress=!0,function(e,t){return new Promise((function(n,o){t.state.api.backendInteractor.unfollowUser({id:e}).then((function(e){t.commit("updateUserRelationship",[e]),n({updated:e})}))}))}(this.relationship.id,t).then((function(){e.inProgress=!1,t.commit("removeStatus",{timeline:"friends",userId:e.relationship.id})})),this.hideConfirmUnfollow()}}},p=(0,n(83744).Z)(d,[["render",function(e,t,n,a,c,l){var u=(0,o.up)("i18n-t"),d=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("button",{class:(0,r.C_)(["btn button-default follow-button",{toggled:e.isPressed}]),disabled:e.disabled,title:e.title,onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[(0,o.Uk)((0,r.zw)(e.label)+" ",1),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmUnfollow?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("user_card.unfollow_confirm_title"),"confirm-text":e.$t("user_card.unfollow_confirm_accept_button"),"cancel-text":e.$t("user_card.unfollow_confirm_cancel_button"),onAccepted:e.doUnfollow,onCancelled:e.hideConfirmUnfollow},{default:(0,o.w5)((function(){return[(0,o.Wm)(u,{keypath:"user_card.unfollow_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,s)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))],10,i)}]])},67671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});var o=n(66252),r=n(3577),i={class:"gallery-rows"},s={key:0,class:"many-attachments"},a={class:"many-attachments-text"},c={class:"many-attachments-buttons"},l={key:0,class:"many-attachments-button"},u={key:1,class:"many-attachments-button"},d={key:2,class:"many-attachments-button"},p=n(93433),m=n(36968),h=n.n(m),f=n(73303),g=n.n(f);const v={props:["attachments","compact","limitRows","descriptions","limit","nsfw","setMedia","size","editable","removeAttachment","shiftUpAttachment","shiftDnAttachment","editAttachment","grid"],data:function(){return{sizes:{},hidingLong:!0}},components:{Attachment:n(66596).Z},computed:{rows:function(){var e=this;if(!this.attachments)return[];var t=this.limit>0?this.attachments.slice(0,this.limit):this.attachments;return"hide"===this.size?t.map((function(e){return{minimal:!0,items:[e]}})):this.grid?[{grid:!0,items:t}]:t.reduce((function(t,n,o){if(n.mimetype.includes("audio"))return[].concat((0,p.Z)(t),[{audio:!0,items:[n]},{items:[]}]);if(!(n.mimetype.includes("image")||n.mimetype.includes("video")||n.mimetype.includes("flash")))return[].concat((0,p.Z)(t),[{minimal:!0,items:[n]},{items:[]}]);var r=e.attachments.length-o+1,i=t[t.length-1].items;return i.push(n),i.length>=3&&r>3?[].concat((0,p.Z)(t),[{items:[]}]):t}),[{items:[]}]).filter((function(e){return e.items.length>0}))},attachmentsDimensionalScore:function(){return this.rows.reduce((function(e,t){var n=0;return t.minimal?n+=1/8:t.audio?n+=1/4:n+=1/(t.items.length+.6),e+n}),0)},tooManyAttachments:function(){return!this.editable&&"small"!==this.size&&("hide"===this.size?this.attachments.length>8:this.attachmentsDimensionalScore>1)}},methods:{onNaturalSizeLoad:function(e){var t=e.id,n=e.width,o=e.height;h()(this.sizes,t,{width:n,height:o})},rowStyle:function(e){return e.audio?{"padding-bottom":"25%"}:e.minimal||e.grid?void 0:{"padding-bottom":"".concat(100/(e.items.length+.6),"%")}},itemStyle:function(e,t){var n=this,o=g()(t,(function(e){return n.getAspectRatio(e.id)}));return{flex:"".concat(this.getAspectRatio(e)/o," 1 0%")}},getAspectRatio:function(e){var t=this.sizes[e];return t?t.width/t.height:1},toggleHidingLong:function(e){this.hidingLong=e},openGallery:function(){this.$store.dispatch("setMedia",this.attachments),this.$store.dispatch("setCurrentMedia",this.attachments[0])},onMedia:function(){this.$store.dispatch("setMedia",this.attachments)}}},w=(0,n(83744).Z)(v,[["render",function(e,t,n,p,m,h){var f=(0,o.up)("Attachment");return(0,o.wg)(),(0,o.iD)("div",{ref:"galleryContainer",class:(0,r.C_)(["Gallery",{"-long":e.tooManyAttachments&&e.hidingLong}])},[(0,o._)("div",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.rows,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{key:n,class:(0,r.C_)(["gallery-row",{"-audio":t.audio,"-minimal":t.minimal,"-grid":e.grid}]),style:(0,r.j5)(e.rowStyle(t))},[(0,o._)("div",{class:(0,r.C_)(["gallery-row-inner",{"-grid":e.grid}])},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.items,(function(i,s){return(0,o.wg)(),(0,o.j4)(f,{key:i.id,class:"gallery-item",compact:e.compact,nsfw:e.nsfw,attachment:i,size:e.size,editable:e.editable,remove:e.removeAttachment,"shift-up":!(0===s&&0===n)&&e.shiftUpAttachment,"shift-dn":!(s===t.items.length-1&&n===e.rows.length-1)&&e.shiftDnAttachment,edit:e.editAttachment,description:e.descriptions&&e.descriptions[i.id],"hide-description":"small"===e.size||e.tooManyAttachments&&e.hidingLong,style:(0,r.j5)(e.itemStyle(i.id,t.items)),onSetMedia:e.onMedia,onNaturalSizeLoad:e.onNaturalSizeLoad},null,8,["compact","nsfw","attachment","size","editable","remove","shift-up","shift-dn","edit","description","hide-description","style","onSetMedia","onNaturalSizeLoad"])})),128))],2)],6)})),128))]),e.tooManyAttachments?((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("div",a,(0,r.zw)(e.$t("status.many_attachments",{number:e.attachments.length})),1),(0,o._)("div",c,[e.hidingLong?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",l,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(t){return e.toggleHidingLong(!0)})},(0,r.zw)(e.$t("status.collapse_attachments")),1)])),e.hidingLong?((0,o.wg)(),(0,o.iD)("span",u,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[1]||(t[1]=function(t){return e.toggleHidingLong(!1)})},(0,r.zw)(e.$t("status.show_all_attachments")),1)])):(0,o.kq)("",!0),e.hidingLong?((0,o.wg)(),(0,o.iD)("span",d,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[2]||(t[2]=function(){return e.openGallery&&e.openGallery.apply(e,arguments)})},(0,r.zw)(e.$t("status.open_gallery")),1)])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0)],2)}]])},73414:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(66252),r=n(3577),i={class:"interface-language-switcher"},s={class:"setting-list"},a=["value"],c=["onClick"],l=n(93433),u=n(39776);const d={components:{Select:n(76990).Z},props:{promptText:{type:String,required:!0},language:{type:[Array,String],required:!0},setLanguage:{type:Function,required:!0}},computed:{languages:function(){return u.Z.languages},controlledLanguage:{get:function(){return Array.isArray(this.language)?this.language:[this.language]},set:function(e){this.setLanguage(e)}}},methods:{getLanguageName:function(e){return u.Z.getLanguageName(e)},addLanguage:function(){this.controlledLanguage=[].concat((0,l.Z)(this.controlledLanguage),[""])},setLanguageAt:function(e,t){var n=(0,l.Z)(this.controlledLanguage);n[e]=t,this.controlledLanguage=n},removeLanguageAt:function(e){var t=(0,l.Z)(this.controlledLanguage);t.splice(e,1),this.controlledLanguage=t}}},p=(0,n(83744).Z)(d,[["render",function(e,t,n,l,u,d){var p=(0,o.up)("Select");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("label",null,(0,r.zw)(n.promptText),1),(0,o._)("ul",s,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(d.controlledLanguage.keys(),(function(t){return(0,o.wg)(),(0,o.iD)("li",{key:t},[(0,o._)("label",null,[(0,o.Uk)((0,r.zw)(0===t?e.$t("settings.primary_language"):e.$tc("settings.fallback_language",t,{index:t}))+" ",1),(0,o.Wm)(p,{class:"language-select","model-value":d.controlledLanguage[t],"onUpdate:modelValue":function(e){return d.setLanguageAt(t,e)}},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(d.languages,(function(e){return(0,o.wg)(),(0,o.iD)("option",{key:e.code,value:e.code},(0,r.zw)(e.name),9,a)})),128))]})),_:2},1032,["model-value","onUpdate:modelValue"])]),d.controlledLanguage.length>1&&0!==t?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default btn",onClick:function(){return d.removeLanguageAt(t)}},(0,r.zw)(e.$t("settings.remove_language")),9,c)):(0,o.kq)("",!0)])})),128)),(0,o._)("li",null,[(0,o._)("button",{class:"button-default btn",onClick:t[0]||(t[0]=function(){return d.addLanguage&&d.addLanguage.apply(d,arguments)})},(0,r.zw)(e.$t("settings.add_language")),1)])])])}]])},92798:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var o=n(66252),r=n(3577),i=["href"],s={key:0,class:"card-image"},a=["src"],c={class:"card-content"},l={class:"card-host faint"},u={key:0,class:"nsfw-alert alert warning"},d={class:"card-title"},p={key:0,class:"card-description"},m=n(4942);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const f={name:"LinkPreview",props:["card","size","nsfw"],data:function(){return{imageLoaded:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({useImage:function(){return this.card.image&&!this.censored&&"hide"!==this.size},censored:function(){return this.nsfw&&this.hideNsfwConfig},useDescription:function(){return this.card.description&&/\S/.test(this.card.description)},hideNsfwConfig:function(){return this.mergedConfig.hideNsfw}},(0,n(989).Se)(["mergedConfig"])),created:function(){var e=this;if(this.useImage){var t=new Image;t.onload=function(){e.imageLoaded=!0},t.src=this.card.image}}},g=(0,n(83744).Z)(f,[["render",function(e,t,n,m,h,f){return(0,o.wg)(),(0,o.iD)("div",null,[(0,o._)("a",{class:"link-preview-card",href:e.card.url,target:"_blank",rel:"noopener"},[e.useImage&&e.imageLoaded?((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("img",{src:e.card.image},null,8,a)])):(0,o.kq)("",!0),(0,o._)("div",c,[(0,o._)("span",l,[e.censored?((0,o.wg)(),(0,o.iD)("span",u,(0,r.zw)(e.$t("status.nsfw")),1)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(e.card.provider_name),1)]),(0,o._)("h4",d,(0,r.zw)(e.card.title),1),e.useDescription?((0,o.wg)(),(0,o.iD)("p",p,(0,r.zw)(e.card.description),1)):(0,o.kq)("",!0)])],8,i)])}]])},56773:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r={class:"list"},i={key:0,class:"list-empty-content faint"};const s={props:{items:{type:Array,default:function(){return[]}},getKey:{type:Function,default:function(e){return e.id}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,c){return(0,o.wg)(),(0,o.iD)("div",r,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.items,(function(t){return(0,o.wg)(),(0,o.iD)("div",{key:n.getKey(t),class:"list-item"},[(0,o.WI)(e.$slots,"item",{item:t})])})),128)),0===n.items.length&&e.$slots.empty?((0,o.wg)(),(0,o.iD)("div",i,[(0,o.WI)(e.$slots,"empty")])):(0,o.kq)("",!0)])}]])},20460:(e,t,n)=>{"use strict";n.d(t,{Z:()=>z});var o=n(66252),r=n(3577),i=n(49963),s={class:"MentionLink"},a=["href","innerHTML"],c=["href"],l={class:"shortName"},u=["innerHTML"],d=["innerHTML"],p={ref:"full",class:"full"},m=["innerHTML"],h=["innerHTML"],f=n(44925),g=n(4942),v=n(4493),w=n(989),b=n(95052),y=n(48173),_=n(42262),k=n(9382),S=n(84131),j=["backgroundColor","backgroundPosition","backgroundImage"];function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?C(Object(n),!0).forEach((function(t){(0,g.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}k.vI.add(S.IBq);const P={name:"MentionLink",components:{UserAvatar:y.default,UnicodeDomainIndicator:_.Z,UserPopover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},props:{url:{required:!0,type:String},content:{required:!0,type:String},userId:{required:!1,type:String},userScreenName:{required:!1,type:String}},data:function(){return{hasSelection:!1}},methods:{onClick:function(){if(!this.shouldShowTooltip){var e=(0,v.Z)(this.userId||this.user.id,this.userScreenName||this.user.screen_name);this.$router.push(e)}},handleSelection:function(){this.hasSelection=document.getSelection().containsNode(this.$refs.full,!0)}},mounted:function(){document.addEventListener("selectionchange",this.handleSelection)},unmounted:function(){document.removeEventListener("selectionchange",this.handleSelection)},computed:O(O({user:function(){return this.url&&this.$store&&this.$store.getters.findUserByUrl(this.url)},isYou:function(){return this.user&&this.user.id===this.currentUser.id},userName:function(){return this.user&&this.userNameFullUi.split("@")[0]},serverName:function(){return this.user&&(this.userNameFullUi.split("@")[1]||this.$store.getters.instanceDomain)},userNameFull:function(){return this.user&&this.user.screen_name},userNameFullUi:function(){return this.user&&this.user.screen_name_ui},highlight:function(){return this.user&&this.mergedConfig.highlight[this.user.screen_name]},highlightType:function(){return this.highlight&&"-"+this.highlight.type},highlightClass:function(){if(this.highlight)return(0,b.M)(this.user)},style:function(){if(this.highlight){var e=(0,b.q)(this.highlight);return e.backgroundColor,e.backgroundPosition,e.backgroundImage,(0,f.Z)(e,j)}},classnames:function(){return[{"-you":this.isYou&&this.shouldBoldenYou,"-highlighted":this.highlight,"-has-selection":this.hasSelection},this.highlightType]},useAtIcon:function(){return this.mergedConfig.useAtIcon},isRemote:function(){return this.userName!==this.userNameFull},shouldShowFullUserName:function(){var e=this.mergedConfig.mentionLinkDisplay;return"short"!==e&&("full"===e||this.isRemote)},shouldShowTooltip:function(){return this.mergedConfig.mentionLinkShowTooltip},shouldShowAvatar:function(){return this.mergedConfig.mentionLinkShowAvatar},shouldShowYous:function(){return this.mergedConfig.mentionLinkShowYous},shouldBoldenYou:function(){return this.mergedConfig.mentionLinkBoldenYou},shouldFadeDomain:function(){return this.mergedConfig.mentionLinkFadeDomain}},(0,w.Se)(["mergedConfig"])),(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))},z=(0,n(83744).Z)(P,[["render",function(e,t,n,f,g,v){var w=(0,o.up)("UserAvatar"),b=(0,o.up)("FAIcon"),y=(0,o.up)("UnicodeDomainIndicator"),_=(0,o.up)("UserPopover");return(0,o.wg)(),(0,o.iD)("span",s,[e.user?((0,o.wg)(),(0,o.j4)(_,{key:1,"user-id":e.user.id,disabled:!e.shouldShowTooltip},{default:(0,o.w5)((function(){return[e.user?((0,o.wg)(),(0,o.iD)("span",{key:0,class:(0,r.C_)(["new",e.classnames]),style:(0,r.j5)(e.style)},[(0,o._)("a",{class:(0,r.C_)(["short button-unstyled",{"-with-tooltip":e.shouldShowTooltip}]),href:e.url,onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"]))},[e.shouldShowAvatar?((0,o.wg)(),(0,o.j4)(w,{key:0,class:"mention-avatar",user:e.user},null,8,["user"])):(0,o.kq)("",!0),(0,o._)("span",l,[e.useAtIcon?((0,o.wg)(),(0,o.j4)(b,{key:0,size:"sm",icon:"at",class:"at"})):(0,o.kq)("",!0),(0,o.Uk)((0,r.zw)(e.useAtIcon?"":"@"),1),(0,o._)("span",{class:"userName",innerHTML:e.userName},null,8,u),e.shouldShowFullUserName?((0,o.wg)(),(0,o.iD)("span",{key:1,class:(0,r.C_)(["serverName",{"-faded":e.shouldFadeDomain}]),innerHTML:"@"+e.serverName},null,10,d)):(0,o.kq)("",!0),e.shouldShowFullUserName?((0,o.wg)(),(0,o.j4)(y,{key:2,user:e.user},null,8,["user"])):(0,o.kq)("",!0)]),e.isYou&&e.shouldShowYous?((0,o.wg)(),(0,o.iD)("span",{key:1,class:(0,r.C_)({"-you":e.shouldBoldenYou})},(0,r.zw)(" "+e.$t("status.you")),3)):(0,o.kq)("",!0)],10,c),(0,o._)("span",p,[(0,o.Uk)(" @"),(0,o._)("span",{innerHTML:e.userName},null,8,m),(0,o._)("span",{innerHTML:"@"+e.serverName},null,8,h)],512)],6)):(0,o.kq)("",!0)]})),_:1},8,["user-id","disabled"])):((0,o.wg)(),(0,o.iD)("a",{key:0,href:e.url,class:"original",target:"_blank",innerHTML:e.content},null,8,a))])}]])},21268:(e,t,n)=>{"use strict";n.d(t,{d:()=>p,Z:()=>h});var o=n(66252),r=n(3577),i={class:"MentionsLine"},s={key:0,class:"extraMentions"},a={key:0,class:"fullExtraMentions"},c=n(4942),l=n(20460),u=n(989);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var p=5;const m={name:"MentionsLine",props:{mentions:{required:!0,type:Array}},data:function(){return{expanded:!1}},components:{MentionLink:l.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mentionsComputed:function(){return this.mentions.slice(0,p)},extraMentions:function(){return this.mentions.slice(p)},manyMentions:function(){return this.extraMentions.length>0}},(0,u.Se)(["mergedConfig"])),methods:{toggleShowMore:function(){this.expanded=!this.expanded}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,c,l,u){var d=(0,o.up)("MentionLink");return(0,o.wg)(),(0,o.iD)("span",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.mentionsComputed,(function(e){return(0,o.wg)(),(0,o.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128)),e.manyMentions?((0,o.wg)(),(0,o.iD)("span",s,[e.expanded?((0,o.wg)(),(0,o.iD)("span",a,[(0,o.Uk)((0,r.zw)(" ")),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.extraMentions,(function(e){return(0,o.wg)(),(0,o.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128))])):(0,o.kq)("",!0),e.expanded?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled showMoreLess",onClick:t[0]||(t[0]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,r.zw)(e.$t("status.plus_more",{number:e.extraMentions.length})),1)),e.expanded?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled showMoreLess",onClick:t[1]||(t[1]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,r.zw)(e.$t("general.show_less")),1)):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])}]])},48328:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r=n(3577),i=n(49963);const s={provide:{popoversZLayer:"modals"},props:{isOpen:{type:Boolean,default:!0},noBackground:{type:Boolean,default:!1}},computed:{classes:function(){return{"modal-background":!this.noBackground,open:this.isOpen}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,c){var l=(0,o.Q2)("body-scroll-lock");return(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["modal-view",c.classes]),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("backdropClicked")}),["self"]))},[(0,o.WI)(e.$slots,"default")],2)),[[i.F8,n.isOpen],[l,n.isOpen&&!n.noBackground]])}]])},50332:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Ae});var o=n(66252),r=n(3577),i=n(49963),s={key:0,class:"notifications-heading panel-heading -sticky"},a={class:"title"},c={key:0,class:"badge badge-notification unseen-count"},l={key:0,class:"rightside-button"},u=["title"],d={class:"panel-body",role:"feed"},p=(0,o._)("div",{class:"notification-overlay"},null,-1),m={class:"panel-footer"},h={key:0,class:"new-status-notification text-center faint"},f={class:"new-status-notification text-center"},g={key:2,class:"new-status-notification text-center"},v=n(4942),w=n(989),b={key:0},y={key:1},_={key:0,class:"Notification container -muted"},k=["href"],S={class:"notification-right"},j={class:"notification-details"},C={class:"name-and-action"},O={key:0},P=["title"],z={key:2},D={key:3},I={key:4},x={key:5},T={key:6},$={key:7},U={class:"emoji-reaction-emoji"},M={key:8},A={key:9},L={key:0,class:"timeago"},E=["title","aria-expanded"],F={key:1,class:"timeago"},R={class:"faint"},q=["title","aria-expanded"],N={key:0,class:"follow-text"},Z={key:0,style:{"white-space":"nowrap"}},W=["title"],B=["title"],H={key:1,class:"move-text"},V=n(38146),K=n(75245),G=n(48173),Y=n(20392),J=n(1840),Q={class:"Report"},X={class:"reported-user"},ee={class:"reporter"},te={class:"report-state"},ne=["value"],oe={key:0},re={class:"reported-status-heading"},ie={class:"reported-status-name"},se={key:1},ae=n(76990),ce=n(4493);const le={props:["reportId"],components:{Select:ae.Z,StatusContent:V.Z,Timeago:J.Z},computed:{report:function(){return this.$store.state.reports.reports[this.reportId]||{}},state:{get:function(){return this.report.state},set:function(e){this.setReportState(e)}}},methods:{generateUserProfileLink:function(e){return(0,ce.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},setReportState:function(e){return this.$store.dispatch("setReportState",{id:this.report.id,state:e})}}};var ue=n(83744);const de=(0,ue.Z)(le,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("router-link"),l=(0,o.up)("Select"),u=(0,o.up)("RichContent"),d=(0,o.up)("Timeago"),p=(0,o.up)("status-content");return(0,o.wg)(),(0,o.iD)("div",Q,[(0,o._)("div",X,[(0,o._)("span",null,(0,r.zw)(e.$t("report.reported_user")),1),(0,o.Wm)(c,{to:e.generateUserProfileLink(e.report.acct)},{default:(0,o.w5)((function(){return[(0,o.Uk)(" @"+(0,r.zw)(e.report.acct.screen_name),1)]})),_:1},8,["to"])]),(0,o._)("div",ee,[(0,o._)("span",null,(0,r.zw)(e.$t("report.reporter")),1),(0,o.Wm)(c,{to:e.generateUserProfileLink(e.report.actor)},{default:(0,o.w5)((function(){return[(0,o.Uk)(" @"+(0,r.zw)(e.report.actor.screen_name),1)]})),_:1},8,["to"])]),(0,o._)("div",te,[(0,o._)("span",null,(0,r.zw)(e.$t("report.state")),1),(0,o.Wm)(l,{id:e.report-e.state,modelValue:e.state,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.state=t}),class:"form-control"},{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(["open","closed","resolved"],(function(t){return(0,o._)("option",{key:t,value:t},(0,r.zw)(e.$t("report.state_"+t)),9,ne)})),64))]})),_:1},8,["id","modelValue"])]),(0,o.Wm)(u,{class:"report-content",html:e.report.content,emoji:[]},null,8,["html"]),e.report.statuses.length?((0,o.wg)(),(0,o.iD)("div",oe,[(0,o._)("small",null,(0,r.zw)(e.$t("report.reported_statuses")),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.report.statuses,(function(e){return(0,o.wg)(),(0,o.j4)(c,{key:e.id,to:{name:"conversation",params:{id:e.id}},class:"reported-status"},{default:(0,o.w5)((function(){return[(0,o._)("div",re,[(0,o._)("span",ie,(0,r.zw)(e.user.name),1),(0,o.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])]),(0,o.Wm)(p,{status:e},null,8,["status"])]})),_:2},1032,["to"])})),128))])):(0,o.kq)("",!0),e.report.notes.length?((0,o.wg)(),(0,o.iD)("div",se,[(0,o._)("small",null,(0,r.zw)(e.$t("report.notes")),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.report.notes,(function(e){return(0,o.wg)(),(0,o.iD)("div",{key:e.id,class:"note"},[(0,o._)("span",null,(0,r.zw)(e.content),1),(0,o.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])])})),128))])):(0,o.kq)("",!0)])}]]);var pe=n(12061),me=n(92820),he=n(22588),fe=n(1447),ge=n(52230),ve=n(95052),we=n(9382),be=n(84131);function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}we.vI.add(be.LEp,be.NBC,be.Tab,be.x5v,be.FKd,be.ILF,be.Aq,be.gmr,be.TTL,be.V9$);var _e={data:function(){return{statusExpanded:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter,unmuted:!1,showingApproveConfirmDialog:!1,showingDenyConfirmDialog:!1}},props:["notification"],components:{StatusContent:V.Z,UserAvatar:G.default,UserCard:Y.Z,Timeago:J.Z,Status:K.default,Report:de,RichContent:me.Z,UserPopover:he.default,UserLink:pe.Z,ConfirmModal:fe.Z},methods:{toggleStatusExpanded:function(){this.statusExpanded=!this.statusExpanded},generateUserProfileLink:function(e){return(0,ce.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},getUser:function(e){return this.$store.state.users.usersObject[e.from_profile.id]},toggleMute:function(){this.unmuted=!this.unmuted},showApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!0},hideApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!1},showDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!0},hideDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!1},approveUser:function(){this.shouldConfirmApprove?this.showApproveConfirmDialog():this.doApprove()},doApprove:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user),this.$store.dispatch("markSingleNotificationAsSeen",{id:this.notification.id}),this.$store.dispatch("updateNotification",{id:this.notification.id,updater:function(e){e.type="follow"}}),this.hideApproveConfirmDialog()},denyUser:function(){this.shouldConfirmDeny?this.showDenyConfirmDialog():this.doDeny()},doDeny:function(){var e=this;this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:e.notification.id}),e.$store.dispatch("removeFollowRequest",e.user)})),this.hideDenyConfirmDialog()}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ye(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ye(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({userClass:function(){return(0,ve.M)(this.notification.from_profile)},userStyle:function(){var e=this.$store.getters.mergedConfig.highlight,t=this.notification.from_profile;return(0,ve.q)(e[t.screen_name])},user:function(){return this.$store.getters.findUser(this.notification.from_profile.id)},userProfileLink:function(){return this.generateUserProfileLink(this.user)},targetUser:function(){return this.$store.getters.findUser(this.notification.target.id)},targetUserProfileLink:function(){return this.generateUserProfileLink(this.targetUser)},needMute:function(){return this.$store.getters.relationship(this.user.id).muting},isStatusNotification:function(){return(0,ge.Gr)(this.notification.type)},mergedConfig:function(){return this.$store.getters.mergedConfig},shouldConfirmApprove:function(){return this.mergedConfig.modalOnApproveFollow},shouldConfirmDeny:function(){return this.mergedConfig.modalOnDenyFollow}},(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))};const ke=_e,Se=(0,ue.Z)(ke,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("Status"),u=(0,o.up)("user-link"),d=(0,o.up)("FAIcon"),p=(0,o.up)("UserAvatar"),m=(0,o.up)("UserPopover"),h=(0,o.up)("RichContent"),f=(0,o.up)("i18n-t"),g=(0,o.up)("Timeago"),v=(0,o.up)("router-link"),w=(0,o.up)("Report"),V=(0,o.up)("StatusContent"),K=(0,o.up)("confirm-modal");return"mention"===e.notification.type?((0,o.wg)(),(0,o.iD)("article",b,[(0,o.Wm)(l,{class:"Notification",compact:!0,statusoid:e.notification.status},null,8,["statusoid"])])):((0,o.wg)(),(0,o.iD)("article",y,[e.needMute&&!e.unmuted?((0,o.wg)(),(0,o.iD)("div",_,[(0,o._)("small",null,[(0,o.Wm)(u,{user:e.notification.from_profile,at:!1},null,8,["user"])]),(0,o._)("button",{class:"button-unstyled unmute",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})])])):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["Notification non-mention",[e.userClass,{highlighted:e.userStyle},"-type--"+e.notification.type]]),style:(0,r.j5)([e.userStyle])},[(0,o._)("a",{class:"avatar-container",href:e.$router.resolve(e.userProfileLink).href,onClick:t[1]||(t[1]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(m,{"user-id":e.notification.from_profile.id,"overlay-centers":!0},{default:(0,o.w5)((function(){return[(0,o.Wm)(p,{class:"post-avatar",bot:e.botIndicator,compact:!0,"better-shadow":e.betterShadow,user:e.notification.from_profile},null,8,["bot","better-shadow","user"])]})),_:1},8,["user-id"])],8,k),(0,o._)("div",S,[(0,o._)("span",j,[(0,o._)("div",C,[e.notification.from_profile.name_html?((0,o.wg)(),(0,o.iD)("bdi",O,[(0,o.Wm)(h,{class:"username",title:"@"+e.notification.from_profile.screen_name_ui,html:e.notification.from_profile.name_html,emoji:e.notification.from_profile.emoji},null,8,["title","html","emoji"])])):((0,o.wg)(),(0,o.iD)("span",{key:1,class:"username",title:"@"+e.notification.from_profile.screen_name_ui},(0,r.zw)(e.notification.from_profile.name),9,P)),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),"like"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",z,[(0,o.Wm)(d,{class:"type-icon",icon:"star"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.favorited_you")),1)])):(0,o.kq)("",!0),"repeat"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",D,[(0,o.Wm)(d,{class:"type-icon",icon:"retweet",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.repeated_you")),1)])):(0,o.kq)("",!0),"follow"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",I,[(0,o.Wm)(d,{class:"type-icon",icon:"user-plus"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.followed_you")),1)])):(0,o.kq)("",!0),"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",x,[(0,o.Wm)(d,{class:"type-icon",icon:"user"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.follow_request")),1)])):(0,o.kq)("",!0),"move"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",T,[(0,o.Wm)(d,{class:"type-icon",icon:"suitcase-rolling"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.migrated_to")),1)])):(0,o.kq)("",!0),"pleroma:emoji_reaction"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",$,[(0,o._)("small",null,[(0,o.Wm)(f,{scope:"global",keypath:"notifications.reacted_with"},{default:(0,o.w5)((function(){return[(0,o._)("span",U,(0,r.zw)(e.notification.emoji),1)]})),_:1})])])):(0,o.kq)("",!0),"pleroma:report"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",M,[(0,o._)("small",null,(0,r.zw)(e.$t("notifications.submitted_report")),1)])):(0,o.kq)("",!0),"poll"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",A,[(0,o.Wm)(d,{class:"type-icon",icon:"poll-h"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.poll_ended")),1)])):(0,o.kq)("",!0)]),e.isStatusNotification?((0,o.wg)(),(0,o.iD)("div",L,[e.notification.status?((0,o.wg)(),(0,o.j4)(v,{key:0,to:{name:"conversation",params:{id:e.notification.status.id}},class:"timeago-link faint-link"},{default:(0,o.w5)((function(){return[(0,o.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])]})),_:1},8,["to"])):(0,o.kq)("",!0),(0,o._)("button",{class:"button-unstyled expand-icon",onClick:t[2]||(t[2]=(0,i.iM)((function(){return e.toggleStatusExpanded&&e.toggleStatusExpanded.apply(e,arguments)}),["prevent"])),title:e.$t("tool_tip.toggle_expand"),"aria-expanded":e.statusExpanded},[(0,o.Wm)(d,{class:"fa-scale-110","fixed-width":"",icon:e.statusExpanded?"compress-alt":"expand-alt"},null,8,["icon"])],8,E)])):((0,o.wg)(),(0,o.iD)("div",F,[(0,o._)("span",R,[(0,o.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])])])),e.needMute?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled",title:e.$t("tool_tip.toggle_mute"),"aria-expanded":!e.unmuted,onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})],8,q)):(0,o.kq)("",!0)]),"follow"===e.notification.type||"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",N,[(0,o.Wm)(u,{class:"follow-name",user:e.notification.from_profile},null,8,["user"]),"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",Z,[(0,o._)("button",{class:"button-unstyled",title:e.$t("tool_tip.accept_follow_request"),onClick:t[4]||(t[4]=function(t){return e.approveUser()})},[(0,o.Wm)(d,{icon:"check",class:"fa-scale-110 fa-old-padding follow-request-accept"})],8,W),(0,o._)("button",{class:"button-unstyled",title:e.$t("tool_tip.reject_follow_request"),onClick:t[5]||(t[5]=function(t){return e.denyUser()})},[(0,o.Wm)(d,{icon:"times",class:"fa-scale-110 fa-old-padding follow-request-reject"})],8,B)])):(0,o.kq)("",!0)])):"move"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",H,[(0,o.Wm)(u,{user:e.notification.target},null,8,["user"])])):"pleroma:report"===e.notification.type?((0,o.wg)(),(0,o.j4)(w,{key:2,"report-id":e.notification.report.id},null,8,["report-id"])):((0,o.wg)(),(0,o.j4)(V,{key:3,class:(0,r.C_)({faint:!e.statusExpanded}),compact:!e.statusExpanded,status:e.notification.action},null,8,["class","compact","status"]))])],6)),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingApproveConfirmDialog?((0,o.wg)(),(0,o.j4)(K,{key:0,title:e.$t("user_card.approve_confirm_title"),"confirm-text":e.$t("user_card.approve_confirm_accept_button"),"cancel-text":e.$t("user_card.approve_confirm_cancel_button"),onAccepted:e.doApprove,onCancelled:e.hideApproveConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.approve_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0),e.showingDenyConfirmDialog?((0,o.wg)(),(0,o.j4)(K,{key:1,title:e.$t("user_card.deny_confirm_title"),"confirm-text":e.$t("user_card.deny_confirm_accept_button"),"cancel-text":e.$t("user_card.deny_confirm_cancel_button"),onAccepted:e.doDeny,onCancelled:e.hideDenyConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.deny_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))]))}]]);var je={class:"dropdown-menu"},Ce={class:"filter-trigger-button button-unstyled"},Oe=n(91447);function Pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ze(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pe(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}we.vI.add(be.G_j);const De={components:{Popover:Oe.default},computed:{filters:function(){return this.$store.getters.mergedConfig.notificationVisibility}},methods:{toggleNotificationFilter:function(e){this.$store.dispatch("setOption",{name:"notificationVisibility",value:ze(ze({},this.filters),{},(0,v.Z)({},e,!this.filters[e]))})}}},Ie=(0,ue.Z)(De,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("FAIcon"),l=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(l,{trigger:"click",class:"NotificationFilters",placement:"bottom","bound-to":{x:"container"}},{content:(0,o.w5)((function(){return[(0,o._)("div",je,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(e){return a.toggleNotificationFilter("likes")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.likes}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_likes")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(e){return a.toggleNotificationFilter("repeats")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.repeats}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_repeats")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(e){return a.toggleNotificationFilter("follows")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.follows}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_follows")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(e){return a.toggleNotificationFilter("mentions")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.mentions}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_mentions")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(e){return a.toggleNotificationFilter("emojiReactions")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.emojiReactions}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_emoji_reactions")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(e){return a.toggleNotificationFilter("moves")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.moves}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_moves")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(e){return a.toggleNotificationFilter("polls")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.polls}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_polls")),1)])])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",Ce,[(0,o.Wm)(c,{icon:"filter"})])]})),_:1})}]]);var xe=n(15568),Te=n(49753);function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}we.vI.add(be.IJ7,be.FPD,be.Kl4);const Ue={components:{Notification:Se,NotificationFilters:Ie},props:{minimalMode:Boolean,filterMode:Array,disableTeleport:Boolean},data:function(){return{showScrollTop:!1,bottomedOut:!1,seenToDisplayCount:30}},provide:function(){var e=this;return{popoversZLayer:(0,o.Fl)((function(){return e.popoversZLayer}))}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$e(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mainClass:function(){return this.minimalMode?"":"panel panel-default"},notifications:function(){return(0,ge.Bt)(this.$store)},error:function(){return this.$store.state.statuses.notifications.error},unseenNotifications:function(){return(0,ge.Km)(this.$store)},filteredNotifications:function(){return(0,ge.G2)(this.$store,this.filterMode)},unseenCount:function(){return this.unseenNotifications.length},unseenCountTitle:function(){return this.unseenCount+this.unreadChatCount+this.unreadAnnouncementCount},loading:function(){return this.$store.state.statuses.notifications.loading},noHeading:function(){var e=this.$store.state.interface.layoutType;return this.minimalMode||"mobile"===e},teleportTarget:function(){return{wide:"#notifs-column",mobile:"#mobile-notifications"}[this.$store.state.interface.layoutType]||"#notifs-sidebar"},popoversZLayer:function(){return"mobile"===this.$store.state.interface.layoutType?"navbar":null},notificationsToDisplay:function(){return this.filteredNotifications.slice(0,this.unseenCount+this.seenToDisplayCount)},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders}},(0,w.Se)(["unreadChatCount","unreadAnnouncementCount"])),mounted:function(){this.scrollerRef=this.$refs.root.closest(".column.-scrollable"),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".mobile-notifications")),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".column.main")),this.scrollerRef.addEventListener("scroll",this.updateScrollPosition)},unmounted:function(){this.scrollerRef&&this.scrollerRef.removeEventListener("scroll",this.updateScrollPosition)},watch:{unseenCountTitle:function(e){e>0?(Te.Z.drawFaviconBadge(),this.$store.dispatch("setPageTitle","(".concat(e,")"))):(Te.Z.clearFaviconBadge(),this.$store.dispatch("setPageTitle",""))},teleportTarget:function(){var e=this;this.$nextTick((function(){e.scrollerRef.removeEventListener("scroll",e.updateScrollPosition),e.scrollerRef=e.$refs.root.closest(".column.-scrollable"),e.scrollerRef||(e.scrollerRef=e.$refs.root.closest(".mobile-notifications")),e.scrollerRef.addEventListener("scroll",e.updateScrollPosition),e.updateScrollPosition()}))}},methods:{scrollToTop:function(){this.scrollerRef.scrollTo({top:this.$refs.root.offsetTop})},updateScrollPosition:function(){this.showScrollTop=this.$refs.root.offsetTop<this.scrollerRef.scrollTop},markAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen"),this.seenToDisplayCount=30},fetchOlderNotifications:function(){var e=this;if(!this.loading){var t=this.filteredNotifications.length-this.unseenCount;if(this.seenToDisplayCount<t)this.seenToDisplayCount=Math.min(this.seenToDisplayCount+20,t);else{this.seenToDisplayCount>t&&(this.seenToDisplayCount=t);var n=this.$store,o=n.state.users.currentUser.credentials;n.commit("setNotificationsLoading",{value:!0}),xe.Z.fetchAndUpdate({store:n,credentials:o,older:!0}).then((function(t){n.commit("setNotificationsLoading",{value:!1}),0===t.length&&(e.bottomedOut=!0),e.seenToDisplayCount+=t.length}))}}}}},Me=(0,ue.Z)(Ue,[["render",function(e,t,n,v,w,b){var y=(0,o.up)("FAIcon"),_=(0,o.up)("FALayers"),k=(0,o.up)("NotificationFilters"),S=(0,o.up)("notification");return(0,o.wg)(),(0,o.j4)(o.lR,{disabled:e.minimalMode||e.disableTeleport,to:e.teleportTarget},[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.noHeading?"div":"aside"),{ref:"root",class:(0,r.C_)([{minimal:e.minimalMode},"Notifications"])},{default:(0,o.w5)((function(){return[(0,o._)("div",{class:(0,r.C_)(e.mainClass)},[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("div",a,[(0,o.Uk)((0,r.zw)(e.$t("notifications.notifications"))+" ",1),e.unseenCount?((0,o.wg)(),(0,o.iD)("span",c,(0,r.zw)(e.unseenCount),1)):(0,o.kq)("",!0)]),e.showScrollTop?((0,o.wg)(),(0,o.iD)("div",l,[(0,o._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,o.Wm)(_,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(y,{icon:"arrow-up"}),(0,o.Wm)(y,{icon:"minus",transform:"up-7"})]})),_:1})],8,u)])):(0,o.kq)("",!0),e.unseenCount?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default read-button",type:"button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.markAsSeen&&e.markAsSeen.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("notifications.read")),1)):(0,o.kq)("",!0),(0,o.Wm)(k,{class:"rightside-button"})])),(0,o._)("div",d,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.notificationsToDisplay,(function(t){return(0,o.wg)(),(0,o.iD)("div",{key:t.id,role:"listitem",class:(0,r.C_)(["notification",{unseen:!e.minimalMode&&!t.seen}])},[p,(0,o.Wm)(S,{notification:t},null,8,["notification"])],2)})),128))]),(0,o._)("div",m,[e.bottomedOut?((0,o.wg)(),(0,o.iD)("div",h,(0,r.zw)(e.$t("notifications.no_more_notifications")),1)):e.loading?((0,o.wg)(),(0,o.iD)("div",g,[(0,o.Wm)(y,{icon:"circle-notch",spin:"",size:"lg"})])):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled -link -fullwidth",onClick:t[2]||(t[2]=(0,i.iM)((function(t){return e.fetchOlderNotifications()}),["prevent"]))},[(0,o._)("div",f,(0,r.zw)(e.minimalMode?e.$t("interactions.load_older"):e.$t("notifications.load_older")),1)]))])],2)]})),_:1},8,["class"]))],8,["disabled","to"])}]]),Ae=Me},29187:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i={class:"panel-loading"},s={class:"loading-text"},a=n(9382),c=n(84131);a.vI.add(c.IJ7);const l={},u=(0,n(83744).Z)(l,[["render",function(e,t,n,a,c,l){var u=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("span",s,[(0,o.Wm)(u,{icon:"circle-notch",spin:"",size:"3x"}),(0,o.Uk)(" "+(0,r.zw)(e.$t("general.loading")),1)])])}]])},91447:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var o=n(66252),r=n(49963),i=n(3577);const s={name:"Popover",props:{trigger:String,placement:String,boundTo:Object,boundToSelector:String,margin:Object,offset:Object,popoverClass:String,removePadding:Boolean,disabled:Boolean,overlayCenters:Boolean,overlayCentersSelector:String,stayOnClick:Boolean,triggerAttrs:{type:Object,default:{}}},inject:["popoversZLayer"],data:function(){return{anchorEl:null,teleport:!1,lockReEntry:!1,hidden:!0,styles:{},oldSize:{width:0,height:0},scrollable:null,graceTimeout:null,parentPopover:null,disableClickOutside:!1,childrenShown:new Set}},methods:{setAnchorEl:function(e){this.anchorEl=e,this.updateStyles()},containerBoundingClientRect:function(){return(this.boundToSelector?this.$el.closest(this.boundToSelector):this.$el.offsetParent).getBoundingClientRect()},updateStyles:function(){if(this.hidden)this.styles={};else{var e=this.anchorEl||this.$refs.trigger&&this.$refs.trigger.children[0]||this.$el,t=e.offsetHeight||e.clientHeight,n=e.offsetWidth||e.clientWidth,o=e.getBoundingClientRect(),r=getComputedStyle(e),i=parseFloat(r.paddingTop),s=parseFloat(r.paddingBottom),a=parseFloat(r.paddingRight),c=parseFloat(r.paddingLeft),l=o.left+.5*n,u=o.top+.5*t,d=this.$refs.content,p=this.overlayCenters?this.$refs.content.querySelector(this.overlayCentersSelector):null,m=this.boundTo&&("container"===this.boundTo.x||"container"===this.boundTo.y)&&this.containerBoundingClientRect(),h=this.margin||{},f=this.boundTo&&"container"===this.boundTo.x?{min:m.left+(h.left||0),max:m.right-(h.right||0)}:{min:0+(h.left||10),max:window.innerWidth-(h.right||10)},g=this.boundTo&&"container"===this.boundTo.y?{min:m.top+(h.top||0),max:m.bottom-(h.bottom||0)}:{min:0+(h.top||50),max:window.innerHeight-(h.bottom||5)},v=0,w=0;if(p){var b=d.getBoundingClientRect(),y=p.getBoundingClientRect(),_=y.left-b.left,k=y.top-b.top;v=-_-.5*p.offsetWidth,w=-k-.5*p.offsetHeight}else v=-.5*d.offsetWidth,w=-.5*d.offsetHeight;var S=l+v,j=S+d.offsetWidth,C=u+w,O=C+d.offsetHeight;S<f.min&&(v+=f.min-S),j>f.max&&(v-=j-f.max),C<g.min&&(w+=g.min-C),O>g.max&&(w-=O-g.max);var P=0,z=0;if(p)P=l+v,z=u+w;else if("right"!==this.placement&&"left"!==this.placement){var D="bottom"!==this.placement,I=u-.5*t+(this.removePadding?i:0),x=u+.5*t-(this.removePadding?s:0);x+d.offsetHeight>g.max&&(D=!0),I-d.offsetHeight<g.min&&(D=!1);var T=this.offset&&this.offset.y||0;z=D?I-T-d.offsetHeight:x+T,P=l+v+(this.offset&&this.offset.x||0)}else{var $="left"!==this.placement,U=l-.5*n+(this.removePadding?a:0),M=l+.5*n-(this.removePadding?c:0);M+d.offsetWidth>f.max&&($=!0),U-d.offsetWidth<f.min&&($=!1);var A=this.offset&&this.offset.x||0;P=$?U-A-d.offsetWidth:M+A,z=u+w+(this.offset&&this.offset.y||0)}this.styles={left:"".concat(Math.round(P),"px"),top:"".concat(Math.round(z),"px")},this.popoversZLayer&&(this.styles["--ZI_popover_override"]="var(--ZI_".concat(this.popoversZLayer,"_popovers)")),m&&(this.styles.maxWidth="".concat(Math.round(m.width),"px"))}},showPopover:function(){var e=this;if(!this.disabled){this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0);var t=this.hidden;this.hidden=!1,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!0),("click"===this.trigger||this.stayOnClick)&&document.addEventListener("click",this.onClickOutside),this.scrollable.addEventListener("scroll",this.onScroll),this.scrollable.addEventListener("resize",this.onResize),this.$nextTick((function(){t&&e.$emit("show"),e.updateStyles()}))}},hidePopover:function(){this.disabled||(this.hidden||this.$emit("close"),this.hidden=!0,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!1),"click"===this.trigger&&document.removeEventListener("click",this.onClickOutside),this.scrollable.removeEventListener("scroll",this.onScroll),this.scrollable.removeEventListener("resize",this.onResize))},onMouseenter:function(e){"hover"===this.trigger&&(this.lockReEntry=!1,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleave:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onMouseenterContent:function(e){"hover"!==this.trigger||this.lockReEntry||(this.lockReEntry=!0,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleaveContent:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onClick:function(e){"click"===this.trigger&&(this.hidden?this.showPopover():this.hidePopover())},onClickOutside:function(e){this.disableClickOutside||this.hidden||this.$refs.content&&this.$refs.content.contains(e.target)||this.$el.contains(e.target)||this.childrenShown.size>0||(this.hidePopover(),this.parentPopover&&this.parentPopover.onClickOutside(e))},onScroll:function(e){this.updateStyles()},onResize:function(e){this.updateStyles()},onChildPopoverState:function(e,t){t?this.childrenShown.add(e):this.childrenShown.delete(e)}},updated:function(){var e=this.$refs.content;e&&(this.oldSize.width===e.offsetWidth&&this.oldSize.height===e.offsetHeight||(this.updateStyles(),this.oldSize={width:e.offsetWidth,height:e.offsetHeight}))},mounted:function(){this.teleport=!0;var e=this.$refs.trigger.closest(".column.-scrollable")||this.$refs.trigger.closest(".mobile-notifications");e||(e=window),this.scrollable=e;for(var t=this.$parent;t&&"Popover"!==t.$.type.name;)t=t.$parent;this.parentPopover=t},beforeUnmount:function(){this.hidePopover()}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,c){return(0,o.wg)(),(0,o.iD)("span",{onMouseenter:t[4]||(t[4]=function(){return e.onMouseenter&&e.onMouseenter.apply(e,arguments)}),onMouseleave:t[5]||(t[5]=function(){return e.onMouseleave&&e.onMouseleave.apply(e,arguments)})},[(0,o._)("button",(0,o.dG)({ref:"trigger",class:"button-unstyled popover-trigger-button",type:"button"},e.triggerAttrs,{onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})}),[(0,o.WI)(e.$slots,"trigger")],16),((0,o.wg)(),(0,o.j4)(o.lR,{disabled:!e.teleport,to:"#popovers"},[(0,o.Wm)(r.uT,{name:"fade"},{default:(0,o.w5)((function(){return[e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:0,ref:"content",style:(0,i.j5)(e.styles),class:(0,i.C_)(["popover",e.popoverClass||"popover-default"]),onMouseenter:t[1]||(t[1]=function(){return e.onMouseenterContent&&e.onMouseenterContent.apply(e,arguments)}),onMouseleave:t[2]||(t[2]=function(){return e.onMouseleaveContent&&e.onMouseleaveContent.apply(e,arguments)}),onClick:t[3]||(t[3]=function(){return e.onClickContent&&e.onClickContent.apply(e,arguments)})},[(0,o.WI)(e.$slots,"content",{class:"popover-inner",close:e.hidePopover})],38))]})),_:3})],8,["disabled"]))],32)}]])},58508:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Re});var o=n(66252),r=n(49963),i=n(3577),s={ref:"form",class:"post-status-form"},a={class:"form-group"},c={key:1,class:"visibility-notice notice-dismissible"},l=["title"],u={key:2,class:"visibility-notice notice-dismissible"},d=["title"],p={key:3,class:"visibility-notice notice-dismissible"},m=["title"],h={key:4,class:"visibility-notice"},f={key:0},g={key:1},v={key:5,class:"visibility-notice edit-warning"},w={key:6,class:"preview-heading faint"},b={class:"preview-spinner"},y={key:7,class:"preview-container"},_={key:0,class:"preview-status"},k={key:1,class:"preview-status preview-error"},S=["placeholder","disabled"],j=["placeholder","disabled"],C={key:9,class:"visibility-tray"},O={key:1,class:"text-format"},P=["value"],z={key:2,class:"text-format"},D={class:"only-format"},I={ref:"bottom",class:"form-bottom"},x={class:"form-bottom-left"},T=["title"],$=["title"],U={key:0,disabled:"",class:"btn button-default"},M={key:1,disabled:"",class:"btn button-default"},A=["disabled"],L={key:1,class:"alert error"},E={key:3,class:"upload_settings"},F=n(15861),R=n(4942),q=n(93433),N=n(23279),Z=n.n(N),W=n(45578),B=n.n(W),H=n(35161),V=n.n(H),K=n(43063),G=n.n(K),Y=n(64687),J=n.n(Y),Q=n(7257),X=["title"],ee=["disabled"],te=n(65079),ne=n(9382),oe=n(84131);function re(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}ne.vI.add(oe.cf$,oe.IJ7);const ie={data:function(){return{uploadCount:0,uploadReady:!0}},computed:{uploading:function(){return this.uploadCount>0}},methods:{uploadFile:function(e){var t=this,n=this.$store;if(e.size>n.state.instance.uploadlimit){var o=te.Z.fileSizeFormat(e.size),r=te.Z.fileSizeFormat(n.state.instance.uploadlimit);t.$emit("upload-failed","file_too_big",{filesize:o.num,filesizeunit:o.unit,allowedsize:r.num,allowedsizeunit:r.unit})}else{var i=new FormData;i.append("file",e),t.$emit("uploading"),t.uploadCount++,Q.Z.uploadMedia({store:n,formData:i}).then((function(e){t.$emit("uploaded",e),t.decreaseUploadCount()}),(function(e){console.error("Error uploading file",e),t.$emit("upload-failed","default"),t.decreaseUploadCount()}))}},decreaseUploadCount:function(){this.uploadCount--,0===this.uploadCount&&this.$emit("all-uploaded")},clearFile:function(){var e=this;this.uploadReady=!1,this.$nextTick((function(){e.uploadReady=!0}))},multiUpload:function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return re(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?re(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;this.uploadFile(o)}}catch(e){n.e(e)}finally{n.f()}},change:function(e){var t=e.target;this.multiUpload(t.files)}},props:["dropFiles","disabled"],watch:{dropFiles:function(e){this.uploading||this.multiUpload(e)}}};var se=n(83744);const ae=(0,se.Z)(ie,[["render",function(e,t,n,r,s,a){var c=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("label",{class:(0,i.C_)(["media-upload",{disabled:e.disabled}]),title:e.$t("tool_tip.media_upload")},[e.uploading?((0,o.wg)(),(0,o.j4)(c,{key:0,class:"progress-icon",icon:"circle-notch",spin:""})):(0,o.kq)("",!0),e.uploading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(c,{key:1,class:"new-icon",icon:"upload"})),e.uploadReady?((0,o.wg)(),(0,o.iD)("input",{key:2,class:"hidden-input-file",disabled:e.disabled,type:"file",multiple:"true",onChange:t[0]||(t[0]=function(){return e.change&&e.change.apply(e,arguments)})},null,40,ee)):(0,o.kq)("",!0)],10,X)}]]);var ce=n(54110),le=n(86319),ue={key:0,class:"poll-form"},de={class:"input-container"},pe=["id","onUpdate:modelValue","placeholder","maxlength","onKeydown"],me=["onClick"],he={class:"poll-type-expiry"},fe=["title"],ge={value:"single"},ve={value:"multiple"},we=["title"],be=["min","max"],ye=["value"],_e=n(44908),ke=n.n(_e),Se=n(27483),je=n(76990);ne.vI.add(oe.NBC,oe.r8p);const Ce={components:{Select:je.Z},name:"PollForm",props:["visible"],data:function(){return{pollType:"single",options:["",""],expiryAmount:10,expiryUnit:"minutes"}},computed:{pollLimits:function(){return this.$store.state.instance.pollLimits},maxOptions:function(){return this.pollLimits.max_options},maxLength:function(){return this.pollLimits.max_option_chars},expiryUnits:function(){var e=this,t=this.convertExpiryFromUnit;return["minutes","hours","days"].filter((function(n){return e.pollLimits.max_expiration>=t(n,1)}))},minExpirationInCurrentUnit:function(){return Math.ceil(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.min_expiration))},maxExpirationInCurrentUnit:function(){return Math.floor(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.max_expiration))}},methods:{clear:function(){this.pollType="single",this.options=["",""],this.expiryAmount=10,this.expiryUnit="minutes"},nextOption:function(e){var t=this.$el.querySelector("#poll-".concat(e+1));t?t.focus():this.addOption()&&this.$nextTick((function(){this.nextOption(e)}))},addOption:function(){return this.options.length<this.maxOptions&&(this.options.push(""),!0)},deleteOption:function(e,t){this.options.length>2&&(this.options.splice(e,1),this.updatePollToParent())},convertExpiryToUnit:function(e,t){return Se.dX(e,t)},convertExpiryFromUnit:function(e,t){return Se.cC(e,t)},expiryAmountChange:function(){this.expiryAmount=Math.max(this.minExpirationInCurrentUnit,this.expiryAmount),this.expiryAmount=Math.min(this.maxExpirationInCurrentUnit,this.expiryAmount),this.updatePollToParent()},updatePollToParent:function(){var e=this.convertExpiryFromUnit(this.expiryUnit,this.expiryAmount),t=ke()(this.options.filter((function(e){return""!==e})));t.length<2?this.$emit("update-poll",{error:this.$t("polls.not_enough_options")}):this.$emit("update-poll",{options:t,multiple:"multiple"===this.pollType,expiresIn:e})}}},Oe=(0,se.Z)(Ce,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("FAIcon"),u=(0,o.up)("Select");return e.visible?((0,o.wg)(),(0,o.iD)("div",ue,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.options,(function(n,i){return(0,o.wg)(),(0,o.iD)("div",{key:i,class:"poll-option"},[(0,o._)("div",de,[(0,o.wy)((0,o._)("input",{id:"poll-".concat(i),"onUpdate:modelValue":function(t){return e.options[i]=t},size:"1",class:"poll-option-input",type:"text",placeholder:e.$t("polls.option"),maxlength:e.maxLength,onChange:t[0]||(t[0]=function(){return e.updatePollToParent&&e.updatePollToParent.apply(e,arguments)}),onKeydown:(0,r.D2)((0,r.iM)((function(t){return e.nextOption(i)}),["stop","prevent"]),["enter"])},null,40,pe),[[r.nr,e.options[i]]])]),e.options.length>2?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"delete-option button-unstyled -hover-highlight",onClick:function(t){return e.deleteOption(i)}},[(0,o.Wm)(l,{icon:"times"})],8,me)):(0,o.kq)("",!0)])})),128)),e.options.length<e.maxOptions?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"add-option faint button-unstyled -hover-highlight",onClick:t[1]||(t[1]=function(){return e.addOption&&e.addOption.apply(e,arguments)})},[(0,o.Wm)(l,{icon:"plus",size:"sm"}),(0,o.Uk)(" "+(0,i.zw)(e.$t("polls.add_option")),1)])):(0,o.kq)("",!0),(0,o._)("div",he,[(0,o._)("div",{class:"poll-type",title:e.$t("polls.type")},[(0,o.Wm)(u,{modelValue:e.pollType,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.pollType=t}),class:"poll-type-select",unstyled:"true",onChange:e.updatePollToParent},{default:(0,o.w5)((function(){return[(0,o._)("option",ge,(0,i.zw)(e.$t("polls.single_choice")),1),(0,o._)("option",ve,(0,i.zw)(e.$t("polls.multiple_choices")),1)]})),_:1},8,["modelValue","onChange"])],8,fe),(0,o._)("div",{class:"poll-expiry",title:e.$t("polls.expiry")},[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.expiryAmount=t}),type:"number",class:"expiry-amount hide-number-spinner",min:e.minExpirationInCurrentUnit,max:e.maxExpirationInCurrentUnit,onChange:t[4]||(t[4]=function(){return e.expiryAmountChange&&e.expiryAmountChange.apply(e,arguments)})},null,40,be),[[r.nr,e.expiryAmount]]),(0,o.Uk)(" "+(0,i.zw)(" ")+" "),(0,o.Wm)(u,{modelValue:e.expiryUnit,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.expiryUnit=t}),unstyled:"true",class:"expiry-unit",onChange:e.expiryAmountChange},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.expiryUnits,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,i.zw)(e.$tc("time.unit.".concat(t,"_short"),e.expiryAmount,[""])),9,ye)})),128))]})),_:1},8,["modelValue","onChange"])],8,we)])])):(0,o.kq)("",!0)}]]);var Pe=n(66596),ze=n(67671),De=n(38146),Ie=n(58394),xe=n(67952),Te=n(37230),$e=n(19003),Ue=n(989),Me=n(90350);function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Le(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ae(Object(n),!0).forEach((function(t){(0,R.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}ne.vI.add(oe.RKn,oe.Mm7,oe.cf$,oe.gPx,oe.NBC,oe.IJ7);var Ee=function(e){return Number(e.substring(0,e.length-2))};const Fe={props:["statusId","statusText","statusIsSensitive","statusPoll","statusFiles","statusMediaDescriptions","statusScope","statusContentType","replyTo","repliedUser","attentions","copyMessageScope","subject","disableSubject","disableScopeSelector","disableVisibilitySelector","disableNotice","disableLockWarning","disablePolls","disableSensitivityCheckbox","disableSubmit","disablePreview","placeholder","maxHeight","postHandler","preserveFocus","autoFocus","fileLimit","submitOnEnter","emojiPickerPlacement","optimisticPosting"],emits:["posted","resize","mediaplay","mediapause"],components:{MediaUpload:ae,EmojiInput:le.Z,PollForm:Oe,ScopeSelector:ce.Z,Checkbox:Me.Z,Select:je.Z,Attachment:Pe.Z,StatusContent:De.Z,Gallery:ze.Z},mounted:function(){if(this.updateIdempotencyKey(),this.resize(this.$refs.textarea),this.replyTo){var e=this.$refs.textarea.value.length;this.$refs.textarea.setSelectionRange(e,e)}(this.replyTo||this.autoFocus)&&this.$refs.textarea.focus()},data:function(){var e=this.$route.query.message||"",t=this.$store.getters.mergedConfig.scopeCopy;if(this.replyTo){var n=this.$store.state.users.currentUser;e=function(e,t){var n=e.user,o=e.attentions,r=void 0===o?[]:o,i=(0,q.Z)(r);i.unshift(n),i=B()(i,"id"),i=G()(i,{id:t.id});var s=V()(i,(function(e){return"@".concat(e.screen_name)}));return s.length>0?s.join(" ")+" ":""}({user:this.repliedUser,attentions:this.attentions},n)}var o=this.copyMessageScope&&t||"direct"===this.copyMessageScope?this.copyMessageScope:this.$store.state.users.currentUser.default_scope,r=this.$store.getters.mergedConfig,i=r.postContentType,s=r.sensitiveByDefault,a={spoilerText:this.subject||"",status:e,nsfw:!!s,files:[],poll:{},mediaDescriptions:{},visibility:o,contentType:i};if(this.statusId){var c=this.statusContentType||i;a={spoilerText:this.subject||"",status:this.statusText||"",nsfw:this.statusIsSensitive||!!s,files:this.statusFiles||[],poll:this.statusPoll||{},mediaDescriptions:this.statusMediaDescriptions||{},visibility:this.statusScope||o,contentType:c}}return{dropFiles:[],uploadingFiles:!1,error:null,posting:!1,highlighted:0,newStatus:a,caret:0,pollFormVisible:!1,showDropIcon:"hide",dropStopTimeout:null,preview:null,previewLoading:!1,emojiInputShown:!1,idempotencyKey:""}},computed:Le(Le({users:function(){return this.$store.state.users.users},userDefaultScope:function(){return this.$store.state.users.currentUser.default_scope},showAllScopes:function(){return!this.mergedConfig.minimalScopesMode},emojiUserSuggestor:function(){return(0,$e.ZP)({emoji:[].concat((0,q.Z)(this.$store.getters.standardEmojiList),(0,q.Z)(this.$store.state.instance.customEmoji)),store:this.$store})},emojiSuggestor:function(){return(0,$e.ZP)({emoji:[].concat((0,q.Z)(this.$store.getters.standardEmojiList),(0,q.Z)(this.$store.state.instance.customEmoji))})},emoji:function(){return this.$store.getters.standardEmojiList||[]},customEmoji:function(){return this.$store.state.instance.customEmoji||[]},statusLength:function(){return this.newStatus.status.length},spoilerTextLength:function(){return this.newStatus.spoilerText.length},statusLengthLimit:function(){return this.$store.state.instance.textlimit},hasStatusLengthLimit:function(){return this.statusLengthLimit>0},charactersLeft:function(){return this.statusLengthLimit-(this.statusLength+this.spoilerTextLength)},isOverLengthLimit:function(){return this.hasStatusLengthLimit&&this.charactersLeft<0},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},alwaysShowSubject:function(){return this.mergedConfig.alwaysShowSubjectInput},postFormats:function(){return this.$store.state.instance.postFormats||[]},safeDMEnabled:function(){return this.$store.state.instance.safeDM},pollsAvailable:function(){return this.$store.state.instance.pollsAvailable&&this.$store.state.instance.pollLimits.max_options>=2&&!0!==this.disablePolls},hideScopeNotice:function(){return this.disableNotice||this.$store.getters.mergedConfig.hideScopeNotice},pollContentError:function(){return this.pollFormVisible&&this.newStatus.poll&&this.newStatus.poll.error},showPreview:function(){return!this.disablePreview&&(!!this.preview||this.previewLoading)},emptyStatus:function(){return""===this.newStatus.status.trim()&&0===this.newStatus.files.length},uploadFileLimitReached:function(){return this.newStatus.files.length>=this.fileLimit},isEdit:function(){return void 0!==this.statusId&&""!==this.statusId.trim()}},(0,Ue.Se)(["mergedConfig"])),(0,Ue.rn)({mobileLayout:function(e){return e.interface.mobileLayout}})),watch:{newStatus:{deep:!0,handler:function(){this.statusChanged()}}},methods:{statusChanged:function(){this.autoPreview(),this.updateIdempotencyKey()},clearStatus:function(){var e=this,t=this.newStatus;this.newStatus={status:"",spoilerText:"",files:[],visibility:t.visibility,contentType:t.contentType,poll:{},mediaDescriptions:{}},this.pollFormVisible=!1,this.$refs.mediaUpload&&this.$refs.mediaUpload.clearFile(),this.clearPollForm(),this.preserveFocus&&this.$nextTick((function(){e.$refs.textarea.focus()}));var n=this.$el.querySelector("textarea");n.style.height="auto",n.style.height=void 0,this.error=null,this.preview&&this.previewStatus()},postStatus:function(e,t){var n=arguments,o=this;return(0,F.Z)(J().mark((function r(){var i,s;return J().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(n.length>2&&void 0!==n[2]&&n[2],!o.posting||o.optimisticPosting){r.next=3;break}return r.abrupt("return");case 3:if(!o.disableSubmit){r.next=5;break}return r.abrupt("return");case 5:if(!o.emojiInputShown){r.next=7;break}return r.abrupt("return");case 7:if(o.submitOnEnter&&(e.stopPropagation(),e.preventDefault()),!o.optimisticPosting||!o.emptyStatus&&!o.isOverLengthLimit){r.next=10;break}return r.abrupt("return");case 10:if(!o.emptyStatus){r.next=13;break}return o.error=o.$t("post_status.empty_status_error"),r.abrupt("return");case 13:if(i=o.pollFormVisible?o.newStatus.poll:{},!o.pollContentError){r.next=17;break}return o.error=o.pollContentError,r.abrupt("return");case 17:return o.posting=!0,r.prev=18,r.next=21,o.setAllMediaDescriptions();case 21:r.next=28;break;case 23:return r.prev=23,r.t0=r.catch(18),o.error=o.$t("post_status.media_description_error"),o.posting=!1,r.abrupt("return");case 28:s={status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw,media:t.files,store:o.$store,inReplyToStatusId:o.replyTo,contentType:t.contentType,poll:i,idempotencyKey:o.idempotencyKey},(o.postHandler?o.postHandler:Q.Z.postStatus)(s).then((function(e){e.error?o.error=e.error:(o.clearStatus(),o.$emit("posted",e)),o.posting=!1}));case 31:case"end":return r.stop()}}),r,null,[[18,23]])})))()},previewStatus:function(){var e=this;if(this.emptyStatus&&""===this.newStatus.spoilerText.trim())return this.preview={error:this.$t("post_status.preview_empty")},void(this.previewLoading=!1);var t=this.newStatus;this.previewLoading=!0,Q.Z.postStatus({status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw,media:[],store:this.$store,inReplyToStatusId:this.replyTo,contentType:t.contentType,poll:{},preview:!0}).then((function(t){e.previewLoading&&(t.error?e.preview={error:t.error}:e.preview=t)})).catch((function(t){e.preview={error:t}})).finally((function(){e.previewLoading=!1}))},debouncePreviewStatus:Z()((function(){this.previewStatus()}),500),autoPreview:function(){this.preview&&(this.previewLoading=!0,this.debouncePreviewStatus())},closePreview:function(){this.preview=null,this.previewLoading=!1},togglePreview:function(){this.showPreview?this.closePreview():this.previewStatus()},addMediaFile:function(e){this.newStatus.files.push(e),this.$emit("resize",{delayed:!0})},removeMediaFile:function(e){var t=this.newStatus.files.indexOf(e);this.newStatus.files.splice(t,1),this.$emit("resize")},editAttachment:function(e,t){this.newStatus.mediaDescriptions[e.id]=t},shiftUpMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n-1,0,e)},shiftDnMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n+1,0,e)},uploadFailed:function(e,t){t=t||{},this.error=this.$t("upload.error.base")+" "+this.$t("upload.error."+e,t)},startedUploadingFiles:function(){this.uploadingFiles=!0},finishedUploadingFiles:function(){this.$emit("resize"),this.uploadingFiles=!1},type:function(e){return Ie.Z.fileType(e.mimetype)},paste:function(e){this.autoPreview(),this.resize(e),e.clipboardData.files.length>0&&(e.preventDefault(),this.dropFiles=[e.clipboardData.files[0]])},fileDrop:function(e){e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),this.dropFiles=e.dataTransfer.files,clearTimeout(this.dropStopTimeout),this.showDropIcon="hide")},fileDragStop:function(e){var t=this;clearTimeout(this.dropStopTimeout),this.showDropIcon="fade",this.dropStopTimeout=setTimeout((function(){return t.showDropIcon="hide"}),500)},fileDrag:function(e){e.dataTransfer.dropEffect=this.uploadFileLimitReached?"none":"copy",e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(clearTimeout(this.dropStopTimeout),this.showDropIcon="show")},onEmojiInputInput:function(e){var t=this;this.$nextTick((function(){t.resize(t.$refs.textarea)}))},resize:function(e){var t=e.target||e;if(t instanceof window.Element){if(""===t.value)return t.style.height=null,void this.$emit("resize");var n=this.$refs.form,o=this.$refs.bottom,r=window.getComputedStyle(o)["padding-bottom"],i=Ee(r),s=this.$el.closest(".column.-scrollable")||this.$el.closest(".post-form-modal-view")||window,a=window.getComputedStyle(t)["padding-top"],c=window.getComputedStyle(t)["padding-bottom"],l=Ee(a)+Ee(c),u=Ee(t.style.height),d=s===window?s.scrollY:s.scrollTop,p=s===window?s.innerHeight:s.offsetHeight,m=d+p;t.style.height="auto";var h=Math.floor(t.scrollHeight-l),f=this.maxHeight?Math.min(h,this.maxHeight):h;Math.abs(f-u)<=1&&(f=u),t.style.height="".concat(f,"px"),this.$emit("resize",f);var g=o.offsetHeight+(0,xe.y)(o,s).top+i,v=m<g,w=p<n.offsetHeight,b=g-m,y=!v||w&&this.$refs.textarea.selectionStart!==this.$refs.textarea.value.length?0:b,_=Math.round(d+y);s===window?s.scroll(0,_):s.scrollTop=_}},showEmojiPicker:function(){this.$refs.textarea.focus(),this.$refs["emoji-input"].triggerShowPicker()},clearError:function(){this.error=null},changeVis:function(e){this.newStatus.visibility=e},togglePollForm:function(){this.pollFormVisible=!this.pollFormVisible},setPoll:function(e){this.newStatus.poll=e},clearPollForm:function(){this.$refs.pollForm&&this.$refs.pollForm.clear()},dismissScopeNotice:function(){this.$store.dispatch("setOption",{name:"hideScopeNotice",value:!0})},setMediaDescription:function(e){var t=this.newStatus.mediaDescriptions[e];if(t&&""!==t.trim())return Q.Z.setMediaDescription({store:this.$store,id:e,description:t})},setAllMediaDescriptions:function(){var e=this,t=this.newStatus.files.map((function(e){return e.id}));return Promise.all(t.map((function(t){return e.setMediaDescription(t)})))},handleEmojiInputShow:function(e){this.emojiInputShown=e},updateIdempotencyKey:function(){this.idempotencyKey=Date.now().toString()},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")},propsToNative:function(e){return(0,Te.X)(e)}}},Re=(0,se.Z)(Fe,[["render",function(e,t,n,F,R,q){var N=(0,o.up)("i18n-t"),Z=(0,o.up)("FAIcon"),W=(0,o.up)("StatusContent"),B=(0,o.up)("EmojiInput"),H=(0,o.up)("scope-selector"),V=(0,o.up)("Select"),K=(0,o.up)("poll-form"),G=(0,o.up)("media-upload"),Y=(0,o.up)("gallery"),J=(0,o.up)("Checkbox");return(0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("form",{autocomplete:"off",onSubmit:t[26]||(t[26]=(0,r.iM)((function(){}),["prevent"])),onDragover:t[27]||(t[27]=(0,r.iM)((function(){return e.fileDrag&&e.fileDrag.apply(e,arguments)}),["prevent"]))},[(0,o._)("div",a,[e.$store.state.users.currentUser.locked||"private"!=e.newStatus.visibility||e.disableLockWarning?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(N,{key:0,keypath:"post_status.account_not_locked_warning",tag:"p",class:"visibility-notice",scope:"global"},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)})},(0,i.zw)(e.$t("post_status.account_not_locked_warning_link")),1)]})),_:1})),e.hideScopeNotice||"public"!==e.newStatus.visibility?e.hideScopeNotice||"unlisted"!==e.newStatus.visibility?!e.hideScopeNotice&&"private"===e.newStatus.visibility&&e.$store.state.users.currentUser.locked?((0,o.wg)(),(0,o.iD)("p",p,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.private")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[3]||(t[3]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(Z,{icon:"times"})],8,m)])):"direct"===e.newStatus.visibility?((0,o.wg)(),(0,o.iD)("p",h,[e.safeDMEnabled?((0,o.wg)(),(0,o.iD)("span",f,(0,i.zw)(e.$t("post_status.direct_warning_to_first_only")),1)):((0,o.wg)(),(0,o.iD)("span",g,(0,i.zw)(e.$t("post_status.direct_warning_to_all")),1))])):(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("p",u,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.unlisted")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[2]||(t[2]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(Z,{icon:"times"})],8,d)])):((0,o.wg)(),(0,o.iD)("p",c,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.public")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[1]||(t[1]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(Z,{icon:"times"})],8,l)])),e.isEdit?((0,o.wg)(),(0,o.iD)("div",v,[(0,o._)("p",null,(0,i.zw)(e.$t("post_status.edit_remote_warning")),1),(0,o._)("p",null,(0,i.zw)(e.$t("post_status.edit_unsupported_warning")),1)])):(0,o.kq)("",!0),e.disablePreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",w,[(0,o._)("a",{class:"preview-toggle faint",onClick:t[4]||(t[4]=(0,r.iM)((function(){return e.togglePreview&&e.togglePreview.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Uk)((0,i.zw)(e.$t("post_status.preview"))+" ",1),(0,o.Wm)(Z,{icon:e.showPreview?"chevron-left":"chevron-right"},null,8,["icon"])]),(0,o.wy)((0,o._)("div",b,[(0,o.Wm)(Z,{class:"fa-old-padding",spin:"",icon:"circle-notch"})],512),[[r.F8,e.previewLoading]])])),e.showPreview?((0,o.wg)(),(0,o.iD)("div",y,[e.preview?e.preview.error?((0,o.wg)(),(0,o.iD)("div",k,(0,i.zw)(e.preview.error),1)):((0,o.wg)(),(0,o.j4)(W,{key:2,status:e.preview,class:"preview-status"},null,8,["status"])):((0,o.wg)(),(0,o.iD)("div",_,(0,i.zw)(e.$t("general.loading")),1))])):(0,o.kq)("",!0),e.disableSubject||!e.newStatus.spoilerText&&!e.alwaysShowSubject?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(B,{key:8,modelValue:e.newStatus.spoilerText,"onUpdate:modelValue":t[6]||(t[6]=function(t){return e.newStatus.spoilerText=t}),"enable-emoji-picker":"",suggest:e.emojiSuggestor,class:"form-control"},{default:(0,o.w5)((function(n){return[(0,o.wy)((0,o._)("input",(0,o.dG)({"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.newStatus.spoilerText=t}),type:"text",placeholder:e.$t("post_status.content_warning"),disabled:e.posting&&!e.optimisticPosting},e.propsToNative(n),{size:"1",class:"form-post-subject"}),null,16,S),[[r.nr,e.newStatus.spoilerText]])]})),_:1},8,["modelValue","suggest"])),(0,o.Wm)(B,{ref:"emoji-input",modelValue:e.newStatus.status,"onUpdate:modelValue":t[14]||(t[14]=function(t){return e.newStatus.status=t}),suggest:e.emojiUserSuggestor,placement:e.emojiPickerPlacement,class:"form-control main-input","enable-emoji-picker":"","hide-emoji-button":"","newline-on-ctrl-enter":e.submitOnEnter,"enable-sticker-picker":"",onInput:e.onEmojiInputInput,onStickerUploaded:e.addMediaFile,onStickerUploadFailed:e.uploadFailed,onShown:e.handleEmojiInputShow},{default:(0,o.w5)((function(n){return[(0,o.wy)((0,o._)("textarea",(0,o.dG)({ref:"textarea","onUpdate:modelValue":t[7]||(t[7]=function(t){return e.newStatus.status=t}),placeholder:e.placeholder||e.$t("post_status.default"),rows:"1",cols:"1",disabled:e.posting&&!e.optimisticPosting,class:["form-post-body",{"scrollable-form":!!e.maxHeight}]},e.propsToNative(n),{onKeydown:[t[8]||(t[8]=(0,r.D2)((0,r.iM)((function(t){return e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["exact"]),["enter"])),t[9]||(t[9]=(0,r.D2)((0,r.iM)((function(t){return e.postStatus(t,e.newStatus)}),["meta"]),["enter"])),t[10]||(t[10]=(0,r.D2)((0,r.iM)((function(t){return!e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["ctrl"]),["enter"]))],onInput:t[11]||(t[11]=function(){return e.resize&&e.resize.apply(e,arguments)}),onCompositionupdate:t[12]||(t[12]=function(){return e.resize&&e.resize.apply(e,arguments)}),onPaste:t[13]||(t[13]=function(){return e.paste&&e.paste.apply(e,arguments)})}),null,16,j),[[r.nr,e.newStatus.status]]),e.hasStatusLengthLimit?((0,o.wg)(),(0,o.iD)("p",{key:0,class:(0,i.C_)(["character-counter faint",{error:e.isOverLengthLimit}])},(0,i.zw)(e.charactersLeft),3)):(0,o.kq)("",!0)]})),_:1},8,["modelValue","suggest","placement","newline-on-ctrl-enter","onInput","onStickerUploaded","onStickerUploadFailed","onShown"]),e.disableScopeSelector?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",C,[e.disableVisibilitySelector?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(H,{key:0,"show-all":e.showAllScopes,"user-default":e.userDefaultScope,"original-scope":e.copyMessageScope,"initial-scope":e.newStatus.visibility,"on-scope-change":e.changeVis},null,8,["show-all","user-default","original-scope","initial-scope","on-scope-change"])),e.postFormats.length>1?((0,o.wg)(),(0,o.iD)("div",O,[(0,o.Wm)(V,{id:"post-content-type",modelValue:e.newStatus.contentType,"onUpdate:modelValue":t[15]||(t[15]=function(t){return e.newStatus.contentType=t}),class:"form-control",attrs:{"aria-label":e.$t("post_status.content_type_selection")}},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.postFormats,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,i.zw)(e.$t('post_status.content_type["'.concat(t,'"]'))),9,P)})),128))]})),_:1},8,["modelValue","attrs"])])):(0,o.kq)("",!0),1===e.postFormats.length&&"text/plain"!==e.postFormats[0]?((0,o.wg)(),(0,o.iD)("div",z,[(0,o._)("span",D,(0,i.zw)(e.$t('post_status.content_type["'.concat(e.postFormats[0],'"]'))),1)])):(0,o.kq)("",!0)]))]),e.pollsAvailable?((0,o.wg)(),(0,o.j4)(K,{key:0,ref:"pollForm",visible:e.pollFormVisible,onUpdatePoll:e.setPoll},null,8,["visible","onUpdatePoll"])):(0,o.kq)("",!0),(0,o._)("div",I,[(0,o._)("div",x,[(0,o.Wm)(G,{ref:"mediaUpload",class:"media-upload-icon","drop-files":e.dropFiles,disabled:e.uploadFileLimitReached,onUploading:e.startedUploadingFiles,onUploaded:e.addMediaFile,onUploadFailed:e.uploadFailed,onAllUploaded:e.finishedUploadingFiles},null,8,["drop-files","disabled","onUploading","onUploaded","onUploadFailed","onAllUploaded"]),(0,o._)("button",{class:"emoji-icon button-unstyled",title:e.$t("emoji.add_emoji"),onClick:t[16]||(t[16]=function(){return e.showEmojiPicker&&e.showEmojiPicker.apply(e,arguments)})},[(0,o.Wm)(Z,{icon:"smile-beam"})],8,T),e.pollsAvailable?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,i.C_)(["poll-icon button-unstyled",{selected:e.pollFormVisible}]),title:e.$t("polls.add_poll"),onClick:t[17]||(t[17]=function(){return e.togglePollForm&&e.togglePollForm.apply(e,arguments)})},[(0,o.Wm)(Z,{icon:"poll-h"})],10,$)):(0,o.kq)("",!0)]),e.posting?((0,o.wg)(),(0,o.iD)("button",U,(0,i.zw)(e.$t("post_status.posting")),1)):e.isOverLengthLimit?((0,o.wg)(),(0,o.iD)("button",M,(0,i.zw)(e.$t("post_status.post")),1)):((0,o.wg)(),(0,o.iD)("button",{key:2,disabled:e.uploadingFiles||e.disableSubmit,class:"btn button-default",onTouchstart:t[18]||(t[18]=(0,r.iM)((function(t){return e.postStatus(t,e.newStatus)}),["stop","prevent"])),onClick:t[19]||(t[19]=(0,r.iM)((function(t){return e.postStatus(t,e.newStatus)}),["stop","prevent"]))},(0,i.zw)(e.$t("post_status.post")),41,A))],512),(0,o.wy)((0,o._)("div",{style:(0,i.j5)({animation:"show"===e.showDropIcon?"fade-in 0.25s":"fade-out 0.5s"}),class:"drop-indicator",onDragleave:t[20]||(t[20]=function(){return e.fileDragStop&&e.fileDragStop.apply(e,arguments)}),onDrop:t[21]||(t[21]=(0,r.iM)((function(){return e.fileDrop&&e.fileDrop.apply(e,arguments)}),["stop"]))},[(0,o.Wm)(Z,{icon:e.uploadFileLimitReached?"ban":"upload"},null,8,["icon"])],36),[[r.F8,"hide"!==e.showDropIcon]]),e.error?((0,o.wg)(),(0,o.iD)("div",L,[(0,o.Uk)(" Error: "+(0,i.zw)(e.error)+" ",1),(0,o._)("button",{class:"button-unstyled",onClick:t[22]||(t[22]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,o.Wm)(Z,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])):(0,o.kq)("",!0),e.newStatus.files&&e.newStatus.files.length>0?((0,o.wg)(),(0,o.j4)(Y,{key:2,class:"attachments",grid:!0,nsfw:!1,attachments:e.newStatus.files,descriptions:e.newStatus.mediaDescriptions,"set-media":function(){return e.$store.dispatch("setMedia",e.newStatus.files)},editable:!0,"edit-attachment":e.editAttachment,"remove-attachment":e.removeMediaFile,"shift-up-attachment":e.newStatus.files.length>1&&e.shiftUpMediaFile,"shift-dn-attachment":e.newStatus.files.length>1&&e.shiftDnMediaFile,onPlay:t[23]||(t[23]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[24]||(t[24]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["attachments","descriptions","set-media","edit-attachment","remove-attachment","shift-up-attachment","shift-dn-attachment"])):(0,o.kq)("",!0),e.newStatus.files.length>0&&!e.disableSensitivityCheckbox?((0,o.wg)(),(0,o.iD)("div",E,[(0,o.Wm)(J,{modelValue:e.newStatus.nsfw,"onUpdate:modelValue":t[25]||(t[25]=function(t){return e.newStatus.nsfw=t})},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,i.zw)(e.$t("post_status.attachments_sensitive")),1)]})),_:1},8,["modelValue"])])):(0,o.kq)("",!0)],32)],512)}]])},99507:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=["disabled"];const i={props:{disabled:{type:Boolean},click:{type:Function,default:function(){return Promise.resolve()}}},data:function(){return{progress:!1}},methods:{onClick:function(){var e=this;this.progress=!0,this.click().then((function(){e.progress=!1}))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("button",{disabled:s.progress||n.disabled,onClick:t[0]||(t[0]=function(){return a.onClick&&a.onClick.apply(a,arguments)})},[s.progress&&e.$slots.progress?(0,o.WI)(e.$slots,"progress",{key:0}):(0,o.WI)(e.$slots,"default",{key:1})],8,r)}]])},72895:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(66252),r=n(3577),i={class:"remote-follow"},s=["action"],a=["value"],c=(0,o._)("input",{type:"hidden",name:"profile",value:""},null,-1),l={click:"submit",class:"button-default remote-button"};const u={props:["user"],computed:{subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")}}},d=(0,n(83744).Z)(u,[["render",function(e,t,n,u,d,p){return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("form",{method:"POST",action:e.subscribeUrl},[(0,o._)("input",{type:"hidden",name:"nickname",value:e.user.screen_name},null,8,a),c,(0,o._)("button",l,(0,r.zw)(e.$t("user_card.remote_follow")),1)],8,s)])}]])},54110:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var o=n(66252),r=n(3577),i={key:0,class:"ScopeSelector"},s=["title"],a=["title"],c=["title"],l=["title"],u=n(9382),d=n(84131);u.vI.add(d.FU$,d.g4A,d.byT,d._1N);const p={props:["showAll","userDefault","originalScope","initialScope","onScopeChange"],data:function(){return{currentScope:this.initialScope}},computed:{showNothing:function(){return!(this.showPublic||this.showUnlisted||this.showPrivate||this.showDirect)},showPublic:function(){return"direct"!==this.originalScope&&this.shouldShow("public")},showUnlisted:function(){return"direct"!==this.originalScope&&this.shouldShow("unlisted")},showPrivate:function(){return"direct"!==this.originalScope&&this.shouldShow("private")},showDirect:function(){return this.shouldShow("direct")},css:function(){return{public:{selected:"public"===this.currentScope},unlisted:{selected:"unlisted"===this.currentScope},private:{selected:"private"===this.currentScope},direct:{selected:"direct"===this.currentScope}}}},methods:{shouldShow:function(e){return this.showAll||this.currentScope===e||this.originalScope===e||this.userDefault===e||"direct"===e},changeVis:function(e){this.currentScope=e,this.onScopeChange&&this.onScopeChange(e)}}},m=(0,n(83744).Z)(p,[["render",function(e,t,n,u,d,p){var m=(0,o.up)("FAIcon");return e.showNothing?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",i,[e.showDirect?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled scope",e.css.direct]),title:e.$t("post_status.scope.direct"),type:"button",onClick:t[0]||(t[0]=function(t){return e.changeVis("direct")})},[(0,o.Wm)(m,{icon:"envelope",class:"fa-scale-110 fa-old-padding"})],10,s)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showPrivate?((0,o.wg)(),(0,o.iD)("button",{key:1,class:(0,r.C_)(["button-unstyled scope",e.css.private]),title:e.$t("post_status.scope.private"),type:"button",onClick:t[1]||(t[1]=function(t){return e.changeVis("private")})},[(0,o.Wm)(m,{icon:"lock",class:"fa-scale-110 fa-old-padding"})],10,a)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showUnlisted?((0,o.wg)(),(0,o.iD)("button",{key:2,class:(0,r.C_)(["button-unstyled scope",e.css.unlisted]),title:e.$t("post_status.scope.unlisted"),type:"button",onClick:t[2]||(t[2]=function(t){return e.changeVis("unlisted")})},[(0,o.Wm)(m,{icon:"lock-open",class:"fa-scale-110 fa-old-padding"})],10,c)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showPublic?((0,o.wg)(),(0,o.iD)("button",{key:3,class:(0,r.C_)(["button-unstyled scope",e.css.public]),title:e.$t("post_status.scope.public"),type:"button",onClick:t[3]||(t[3]=function(t){return e.changeVis("public")})},[(0,o.Wm)(m,{icon:"globe",class:"fa-scale-110 fa-old-padding"})],10,l)):(0,o.kq)("",!0)]))}]])},76990:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(66252),r=n(3577),i=["disabled","value"],s=n(9382),a=n(84131);s.vI.add(a.ptq);const c={emits:["update:modelValue"],props:["modelValue","disabled","unstyled","kind","attrs"]},l=(0,n(83744).Z)(c,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("label",{class:(0,r.C_)(["Select input",{disabled:e.disabled,unstyled:e.unstyled}])},[(0,o._)("select",(0,o.dG)({disabled:e.disabled,value:e.modelValue},e.attrs,{onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.value)})}),[(0,o.WI)(e.$slots,"default")],16,i),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(l,{class:"select-down-icon",icon:"chevron-down"})],2)}]])},75245:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Qt});var o=n(66252),r=n(3577),i=n(49963),s={key:0,class:"alert error"},a={key:1,class:"status-container muted"},c={class:"status-username"},l={key:0,class:"mute-thread"},u={key:1,class:"mute-thread"},d=["title"],p={key:0,class:"pin"},m={class:"faint"},h={class:"right-side faint"},f=["title"],g=["data-tags"],v={key:0,class:"left-side"},w=["href"],b={class:"right-side"},y={key:0,class:"status-heading"},_={class:"heading-name-row"},k={class:"heading-left"},S=["title"],j=["title"],C=["src"],O={class:"heading-right"},P=["title"],z=["title"],D=["title","aria-expanded"],I=["title"],x={key:0,class:"heading-reply-row"},T={key:0,class:"glued-label reply-glued-label"},$=["aria-label"],U={class:"reply-to-text"},M={key:1,class:"reply-to-no-popover"},A={class:"reply-to-text"},L={key:1,class:"glued-label"},E=["aria-label"],F={class:"mentions-text"},R={key:1,class:"heading-edited-row"},q={key:1,class:"replies"},N=["title"],Z={key:1,class:"faint"},W=["onClick"],B={key:0,class:"favs-repeated-users"},H={class:"stats"},V={class:"stat-count"},K={class:"stat-title"},G={class:"stat-number"},Y={class:"stat-count"},J={class:"stat-title"},Q={class:"stat-number"},X={class:"avatar-row"},ee={key:3,class:"status-actions"},te={key:3,class:"gravestone"},ne={class:"left-side"},oe={class:"right-side"},re={class:"deleted-text"},ie={key:4,class:"status-container reply-form"},se=n(4942),ae=n(45578),ce=n.n(ae),le=n(27955),ue=n.n(le),de={class:"ReplyButton"},pe=["title"],me=["href","title"],he={key:2,class:"action-counter"},fe=n(9382),ge=n(84131);fe.vI.add(ge.Lh7,ge.r8p,ge.NBC);const ve={name:"ReplyButton",props:["status","replying"],computed:{loggedIn:function(){return!!this.$store.state.users.currentUser},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}}};var we=n(83744);const be=(0,we.Z)(ve,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("FAIcon"),u=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("div",de,[e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",{"-active":e.replying}]),title:e.$t("tool_tip.reply"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("toggle")}),["prevent"]))},[(0,o.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110",icon:"reply"}),e.replying?((0,o.wg)(),(0,o.j4)(l,{key:1,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"times"})):((0,o.wg)(),(0,o.j4)(l,{key:0,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"plus"}))]})),_:1})],10,pe)):((0,o.wg)(),(0,o.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",href:e.remoteInteractionLink,title:e.$t("tool_tip.reply")},[(0,o.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110",icon:"reply"}),e.replying?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(l,{key:0,class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"plus"}))]})),_:1})],8,me)),e.status.replies_count>0?((0,o.wg)(),(0,o.iD)("span",he,(0,r.zw)(e.status.replies_count),1)):(0,o.kq)("",!0)])}]]);var ye={class:"FavoriteButton"},_e=["title"],ke=["title","href"],Se={key:2,class:"action-counter"},je=n(989),Ce=n(5737);function Oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Oe(Object(n),!0).forEach((function(t){(0,se.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}fe.vI.add(ge.Tab,Ce.Tab,ge.r8p,ge.Kl4,ge.LEp);const ze={props:["status","loggedIn"],data:function(){return{animated:!1}},methods:{favorite:function(){var e=this;this.status.favorited?this.$store.dispatch("unfavorite",{id:this.status.id}):this.$store.dispatch("favorite",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500)}},computed:Pe(Pe({},(0,je.Se)(["mergedConfig"])),{},{remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}})},De=(0,we.Z)(ze,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("FAIcon"),u=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("div",ye,[e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",e.status.favorited&&"-favorited"]),title:e.$t("tool_tip.favorite"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.favorite()}),["prevent"]))},[(0,o.Wm)(u,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110",icon:[e.status.favorited?"fas":"far","star"],spin:e.animated},null,8,["icon","spin"]),e.status.favorited?((0,o.wg)(),(0,o.j4)(l,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,o.kq)("",!0),e.status.favorited?((0,o.wg)(),(0,o.j4)(l,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,o.wg)(),(0,o.j4)(l,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,_e)):((0,o.wg)(),(0,o.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",title:e.$t("tool_tip.favorite"),href:e.remoteInteractionLink},[(0,o.Wm)(u,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110",icon:["far","star"]}),(0,o.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"})]})),_:1})],8,ke)),!e.mergedConfig.hidePostStats&&e.status.fave_num>0?((0,o.wg)(),(0,o.iD)("span",Se,(0,r.zw)(e.status.fave_num),1)):(0,o.kq)("",!0)])}]]);var Ie={class:"reaction-picker-filter"},xe=["placeholder"],Te={class:"reaction-picker"},$e=["title","onClick"],Ue=(0,o._)("div",{class:"reaction-picker-divider"},null,-1),Me=["title","onClick"],Ae=(0,o._)("div",{class:"reaction-bottom-fader"},null,-1),Le=["title"],Ee=n(93433),Fe=n(92742),Re=n.n(Fe),qe=n(91447),Ne=n(8312);function Ze(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return We(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?We(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function We(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}fe.vI.add(ge.r8p,ge.NBC,Ce.RKn);const Be={props:["status"],data:function(){return{filterWord:"",expanded:!1}},components:{Popover:qe.default},methods:{addReaction:function(e,t,n){var o=this.status.emoji_reactions.find((function(e){return e.name===t}));o&&o.me?this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:t}):this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:t}),n()},onShow:function(){this.expanded=!0,this.focusInput()},onClose:function(){this.expanded=!1},focusInput:function(){this.$nextTick((function(){var e=document.querySelector(".reaction-picker-filter > input");e&&e.focus()}))},maybeLocalizedEmojiNamesAndKeywords:function(e){var t=[e.displayText],n=[];return e.displayTextI18n&&t.push(this.$t(e.displayTextI18n.key,e.displayTextI18n.args)),e.annotations&&this.languages.forEach((function(o){var r,i;t.push(null===(r=e.annotations[o])||void 0===r?void 0:r.name),n.push.apply(n,(0,Ee.Z)((null===(i=e.annotations[o])||void 0===i?void 0:i.keywords)||[]))})),{names:t.filter((function(e){return e})),keywords:n.filter((function(e){return e}))}},maybeLocalizedEmojiName:function(e){if(!e.annotations)return e.displayText;if(e.displayTextI18n)return this.$t(e.displayTextI18n.key,e.displayTextI18n.args);var t,n=Ze(this.languages);try{for(n.s();!(t=n.n()).done;){var o,r=t.value;if(null!==(o=e.annotations[r])&&void 0!==o&&o.name)return e.annotations[r].name}}catch(e){n.e(e)}finally{n.f()}return e.displayText}},computed:{commonEmojis:function(){var e=new Set(["👍","😠","👀","😂","🔥"]);return this.$store.getters.standardEmojiList.filter((function(t){return e.has(t.replacement)}))},languages:function(){return(0,Ne.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},emojis:function(){if(""!==this.filterWord){var e,t=Re()(this.filterWord.toLowerCase()),n=[],o=Ze(this.$store.getters.standardEmojiList);try{for(o.s();!(e=o.n()).done;){var r=e.value,i=this.maybeLocalizedEmojiNamesAndKeywords(r).keywords.map((function(e){return e.toLowerCase().indexOf(t)})).filter((function(e){return e>-1})),s=i.length?Math.min.apply(Math,(0,Ee.Z)(i)):-1;s>-1&&(Array.isArray(n[s])||(n[s]=[]),n[s].push(r))}}catch(e){o.e(e)}finally{o.f()}return n.flat()}return this.$store.getters.standardEmojiList||[]},mergedConfig:function(){return this.$store.getters.mergedConfig}}},He=(0,we.Z)(Be,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("FAIcon"),u=(0,o.up)("FALayers"),d=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(d,{trigger:"click",class:"ReactButton",placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":"","popover-class":"ReactButton popover-default",onShow:e.onShow,onClose:e.onClose},{content:(0,o.w5)((function(n){var s=n.close;return[(0,o._)("div",Ie,[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.filterWord=t}),size:"1",placeholder:e.$t("emoji.search_emoji"),onInput:t[1]||(t[1]=function(e){return e.target.composing=!1})},null,40,xe),[[i.nr,e.filterWord]])]),(0,o._)("div",Te,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.commonEmojis,(function(t){return(0,o.wg)(),(0,o.iD)("span",{key:t.replacement,class:"emoji-button",title:e.maybeLocalizedEmojiName(t),onClick:function(n){return e.addReaction(n,t.replacement,s)}},(0,r.zw)(t.replacement),9,$e)})),128)),Ue,((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.emojis,(function(t,n){return(0,o.wg)(),(0,o.iD)("span",{key:n,class:"emoji-button",title:e.maybeLocalizedEmojiName(t),onClick:function(n){return e.addReaction(n,t.replacement,s)}},(0,r.zw)(t.replacement),9,Me)})),128)),Ae])]})),trigger:(0,o.w5)((function(){return[(0,o._)("span",{class:"button-unstyled popover-trigger",title:e.$t("tool_tip.add_reaction")},[(0,o.Wm)(u,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110 fa-old-padding",icon:["far","smile-beam"]}),(0,o.wy)((0,o.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,o.wy)((0,o.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})],8,Le)]})),_:1},8,["onShow","onClose"])}]]);var Ve={class:"RetweetButton"},Ke=["title"],Ge={key:1},Ye=["title","href"],Je={key:3,class:"no-event"},Qe=n(1447);fe.vI.add(ge.x5v,ge.r8p,ge.Kl4,ge.LEp);const Xe={props:["status","loggedIn","visibility"],components:{ConfirmModal:Qe.Z},data:function(){return{animated:!1,showingConfirmDialog:!1}},methods:{retweet:function(){!this.status.repeated&&this.shouldConfirmRepeat?this.showConfirmDialog():this.doRetweet()},doRetweet:function(){var e=this;this.status.repeated?this.$store.dispatch("unretweet",{id:this.status.id}):this.$store.dispatch("retweet",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500),this.hideConfirmDialog()},showConfirmDialog:function(){this.showingConfirmDialog=!0},hideConfirmDialog:function(){this.showingConfirmDialog=!1}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})},shouldConfirmRepeat:function(){return this.mergedConfig.modalOnRepeat}}},et=(0,we.Z)(Xe,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("FAIcon"),u=(0,o.up)("FALayers"),d=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",Ve,["private"!==e.visibility&&"direct"!==e.visibility&&e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",e.status.repeated&&"-repeated"]),title:e.$t("tool_tip.repeat"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.retweet()}),["prevent"]))},[(0,o.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110",icon:"retweet",spin:e.animated},null,8,["spin"]),e.status.repeated?((0,o.wg)(),(0,o.j4)(l,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,o.kq)("",!0),e.status.repeated?((0,o.wg)(),(0,o.j4)(l,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,o.wg)(),(0,o.j4)(l,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,Ke)):e.loggedIn?((0,o.wg)(),(0,o.iD)("span",Ge,[(0,o.Wm)(l,{class:"fa-scale-110 fa-old-padding",icon:"lock",title:e.$t("timeline.no_retweet_hint")},null,8,["title"])])):((0,o.wg)(),(0,o.iD)("a",{key:2,class:"button-unstyled interactive",target:"_blank",role:"button",title:e.$t("tool_tip.repeat"),href:e.remoteInteractionLink},[(0,o.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110",icon:"retweet"}),(0,o.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"})]})),_:1})],8,Ye)),!e.mergedConfig.hidePostStats&&e.status.repeat_num>0?((0,o.wg)(),(0,o.iD)("span",Je,(0,r.zw)(e.status.repeat_num),1)):(0,o.kq)("",!0),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmDialog?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("status.repeat_confirm_title"),"confirm-text":e.$t("status.repeat_confirm_accept_button"),"cancel-text":e.$t("status.repeat_confirm_cancel_button"),onAccepted:e.doRetweet,onCancelled:e.hideConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("status.repeat_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))])}]]);var tt={class:"dropdown-menu"},nt=["onClick"],ot=["onClick"],rt=["onClick"],it=["onClick"],st=["onClick"],at=["onClick"],ct=["onClick"],lt=["onClick"],ut=["href"],dt=["onClick"],pt={class:"button-unstyled popover-trigger"};function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}fe.vI.add(ge.cNd,ge.xVw,Ce.xVw,ge.Aq,ge.RP7,ge.EfQ,ge.Xjp,Ce.RrC,ge.qO$,ge.r8p,ge.NBC);const ht={props:["status"],components:{Popover:qe.default,ConfirmModal:Qe.Z},data:function(){return{expanded:!1,showingDeleteDialog:!1}},methods:{onShow:function(){this.expanded=!0},onClose:function(){this.expanded=!1},deleteStatus:function(){this.shouldConfirmDelete?this.showDeleteStatusConfirmDialog():this.doDeleteStatus()},doDeleteStatus:function(){this.$store.dispatch("deleteStatus",{id:this.status.id}),this.hideDeleteStatusConfirmDialog()},showDeleteStatusConfirmDialog:function(){this.showingDeleteDialog=!0},hideDeleteStatusConfirmDialog:function(){this.showingDeleteDialog=!1},pinStatus:function(){var e=this;this.$store.dispatch("pinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unpinStatus:function(){var e=this;this.$store.dispatch("unpinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},muteConversation:function(){var e=this;this.$store.dispatch("muteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unmuteConversation:function(){var e=this;this.$store.dispatch("unmuteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},copyLink:function(){var e=this;navigator.clipboard.writeText(this.statusLink).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},bookmarkStatus:function(){var e=this;this.$store.dispatch("bookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unbookmarkStatus:function(){var e=this;this.$store.dispatch("unbookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},reportStatus:function(){this.$store.dispatch("openUserReportingModal",{userId:this.status.user.id,statusIds:[this.status.id]})},editStatus:function(){var e=this;this.$store.dispatch("fetchStatusSource",{id:this.status.id}).then((function(t){return e.$store.dispatch("openEditStatusModal",{statusId:e.status.id,subject:t.spoiler_text,statusText:t.text,statusIsSensitive:e.status.nsfw,statusPoll:e.status.poll,statusFiles:(0,Ee.Z)(e.status.attachments),visibility:e.status.visibility,statusContentType:t.content_type})}))},showStatusHistory:function(){var e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(n),!0).forEach((function(t){(0,se.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},this.status);["attachments","created_at","emojis","text","raw_html","nsfw","poll","summary","summary_raw_html"].forEach((function(t){return delete e[t]})),this.$store.dispatch("openStatusHistoryModal",e)}},computed:{currentUser:function(){return this.$store.state.users.currentUser},canDelete:function(){if(this.currentUser)return this.currentUser.privileges.includes("messages_delete")||this.status.user.id===this.currentUser.id},ownStatus:function(){return this.status.user.id===this.currentUser.id},canPin:function(){return this.ownStatus&&("public"===this.status.visibility||"unlisted"===this.status.visibility)},canMute:function(){return!!this.currentUser},canBookmark:function(){return!!this.currentUser},statusLink:function(){return"".concat(this.$store.state.instance.server).concat(this.$router.resolve({name:"conversation",params:{id:this.status.id}}).href)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable},shouldConfirmDelete:function(){return this.$store.getters.mergedConfig.modalOnDelete}}},ft=(0,we.Z)(ht,[["render",function(e,t,n,s,a,c){var l=(0,o.up)("FAIcon"),u=(0,o.up)("FALayers"),d=(0,o.up)("ConfirmModal"),p=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(p,{class:"ExtraButtons",trigger:"click",placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":"",onShow:e.onShow,onClose:e.onClose},{content:(0,o.w5)((function(n){var s=n.close;return[(0,o._)("div",tt,[e.canMute&&!e.status.thread_muted?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.muteConversation&&e.muteConversation.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(l,{"fixed-width":"",icon:"eye-slash"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.mute_conversation")),1)])):(0,o.kq)("",!0),e.canMute&&e.status.thread_muted?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.unmuteConversation&&e.unmuteConversation.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(l,{"fixed-width":"",icon:"eye-slash"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unmute_conversation")),1)])):(0,o.kq)("",!0),!e.status.pinned&&e.canPin?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[2]||(t[2]=(0,i.iM)((function(){return e.pinStatus&&e.pinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:"thumbtack"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.pin")),1)],8,nt)):(0,o.kq)("",!0),e.status.pinned&&e.canPin?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[3]||(t[3]=(0,i.iM)((function(){return e.unpinStatus&&e.unpinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:"thumbtack"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unpin")),1)],8,ot)):(0,o.kq)("",!0),e.canBookmark?((0,o.wg)(),(0,o.iD)(o.HY,{key:4},[e.status.bookmarked?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[4]||(t[4]=(0,i.iM)((function(){return e.bookmarkStatus&&e.bookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:["far","bookmark"]}),(0,o._)("span",null,(0,r.zw)(e.$t("status.bookmark")),1)],8,rt)),e.status.bookmarked?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[5]||(t[5]=(0,i.iM)((function(){return e.unbookmarkStatus&&e.unbookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:"bookmark"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unbookmark")),1)],8,it)):(0,o.kq)("",!0)],64)):(0,o.kq)("",!0),e.ownStatus&&e.editingAvailable?((0,o.wg)(),(0,o.iD)("button",{key:5,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[6]||(t[6]=(0,i.iM)((function(){return e.editStatus&&e.editStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:"pen"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.edit")),1)],8,st)):(0,o.kq)("",!0),e.isEdited&&e.editingAvailable?((0,o.wg)(),(0,o.iD)("button",{key:6,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[7]||(t[7]=(0,i.iM)((function(){return e.showStatusHistory&&e.showStatusHistory.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:"history"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.status_history")),1)],8,at)):(0,o.kq)("",!0),e.canDelete?((0,o.wg)(),(0,o.iD)("button",{key:7,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[8]||(t[8]=(0,i.iM)((function(){return e.deleteStatus&&e.deleteStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:"times"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.delete")),1)],8,ct)):(0,o.kq)("",!0),(0,o._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[9]||(t[9]=(0,i.iM)((function(){return e.copyLink&&e.copyLink.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:"share-alt"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.copy_link")),1)],8,lt),e.status.is_local?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:8,class:"button-default dropdown-item dropdown-item-icon",title:"Source",href:e.status.external_url,target:"_blank"},[(0,o.Wm)(l,{"fixed-width":"",icon:"external-link-alt"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.external_source")),1)],8,ut)),(0,o._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[10]||(t[10]=(0,i.iM)((function(){return e.reportStatus&&e.reportStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(l,{"fixed-width":"",icon:["far","flag"]}),(0,o._)("span",null,(0,r.zw)(e.$t("user_card.report")),1)],8,dt)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("span",pt,[(0,o.Wm)(u,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{class:"fa-scale-110",icon:"ellipsis-h"}),(0,o.wy)((0,o.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,o.wy)((0,o.Wm)(l,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})]),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingDeleteDialog?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("status.delete_confirm_title"),"cancel-text":e.$t("status.delete_confirm_cancel_button"),"confirm-text":e.$t("status.delete_confirm_accept_button"),onCancelled:e.hideDeleteStatusConfirmDialog,onAccepted:e.doDeleteStatus},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("status.delete_confirm")),1)]})),_:1},8,["title","cancel-text","confirm-text","onCancelled","onAccepted"])):(0,o.kq)("",!0)]))]})),_:1},8,["onShow","onClose"])}]]);var gt=n(58508),vt=n(48173),wt=n(19066),bt=n(1840),yt=n(38146),_t=n(92820),kt={key:1,class:"status-preview-no-content faint"},St={key:2,class:"status-preview-no-content"},jt=n(13311),Ct=n.n(jt);fe.vI.add(ge.IJ7);const Ot={name:"StatusPopover",props:["statusId"],data:function(){return{error:!1}},computed:{status:function(){return Ct()(this.$store.state.statuses.allStatuses,{id:this.statusId})}},components:{Status:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,75245))})),Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,91447))}))},methods:{enter:function(){var e=this;if(!this.status){if(!this.statusId)return void(this.error=!0);this.$store.dispatch("fetchStatus",this.statusId).then((function(t){return e.error=!1})).catch((function(t){return e.error=!0}))}}},watch:{status:function(e,t){var n=this;e!==t&&this.$nextTick((function(){return n.$refs.popover.updateStyles()}))}}},Pt=(0,we.Z)(Ot,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("Status"),l=(0,o.up)("FAIcon"),u=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(u,{ref:"popover",trigger:"hover","stay-on-click":!0,"popover-class":"popover-default status-popover","bound-to":{x:"container"},onShow:e.enter},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(){return[e.status?((0,o.wg)(),(0,o.j4)(c,{key:0,"is-preview":!0,statusoid:e.status,compact:!0},null,8,["statusoid"])):e.error?((0,o.wg)(),(0,o.iD)("div",kt,(0,r.zw)(e.$t("status.status_unavailable")),1)):((0,o.wg)(),(0,o.iD)("div",St,[(0,o.Wm)(l,{icon:"circle-notch",spin:"",size:"2x"})]))]})),_:3},8,["onShow"])}]]);var zt=n(22588),Dt={class:"user-list-popover"},It={class:"user-list-names"},xt={class:"user-list-screen-name"},Tt=n(42262);fe.vI.add(ge.IJ7);const $t={name:"UserListPopover",props:["users"],components:{RichContent:_t.Z,UnicodeDomainIndicator:Tt.Z,Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,91447))})),UserAvatar:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,48173))}))},computed:{usersCapped:function(){return this.users.slice(0,16)}}},Ut=(0,we.Z)($t,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("UserAvatar"),l=(0,o.up)("RichContent"),u=(0,o.up)("UnicodeDomainIndicator"),d=(0,o.up)("FAIcon"),p=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(p,{trigger:"hover",placement:"top",offset:{y:5}},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(){return[(0,o._)("div",Dt,[e.users.length?((0,o.wg)(!0),(0,o.iD)(o.HY,{key:0},(0,o.Ko)(e.usersCapped,(function(e){return(0,o.wg)(),(0,o.iD)("div",{key:e.id,class:"user-list-row"},[(0,o.Wm)(c,{user:e,class:"avatar-small",compact:!0},null,8,["user"]),(0,o._)("div",It,[(0,o.Wm)(l,{class:"username",title:"@"+e.screen_name_ui,html:e.name_html,emoji:e.emoji},null,8,["title","html","emoji"]),(0,o._)("span",xt,(0,r.zw)(e.screen_name_ui),1),(0,o.Wm)(u,{user:e},null,8,["user"])])])})),128)):((0,o.wg)(),(0,o.j4)(d,{key:1,icon:"circle-notch",spin:"",size:"3x"}))])]})),_:3})}]]);var Mt={class:"EmojiReactions"},At=["onClick"],Lt={class:"reaction-emoji"};const Et={name:"EmojiReactions",components:{UserAvatar:vt.default,UserListPopover:Ut},props:["status"],data:function(){return{showAll:!1}},computed:{tooManyReactions:function(){return this.status.emoji_reactions.length>12},emojiReactions:function(){return this.showAll?this.status.emoji_reactions:this.status.emoji_reactions.slice(0,12)},showMoreString:function(){return"+".concat(this.status.emoji_reactions.length-12)},accountsForEmoji:function(){return this.status.emoji_reactions.reduce((function(e,t){return e[t.name]=t.accounts||[],e}),{})},loggedIn:function(){return!!this.$store.state.users.currentUser}},methods:{toggleShowAll:function(){this.showAll=!this.showAll},reactedWith:function(e){return this.status.emoji_reactions.find((function(t){return t.name===e})).me},fetchEmojiReactionsByIfMissing:function(){this.status.emoji_reactions.find((function(e){return!e.accounts}))&&this.$store.dispatch("fetchEmojiReactionsBy",this.status.id)},reactWith:function(e){this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:e})},unreact:function(e){this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:e})},emojiOnClick:function(e,t){this.loggedIn&&(this.reactedWith(e)?this.unreact(e):this.reactWith(e))}}},Ft=(0,we.Z)(Et,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("UserListPopover");return(0,o.wg)(),(0,o.iD)("div",Mt,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.emojiReactions,(function(n){return(0,o.wg)(),(0,o.j4)(c,{key:n.name,users:e.accountsForEmoji[n.name]},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:(0,r.C_)(["emoji-reaction btn button-default",{"-picked-reaction":e.reactedWith(n.name),"not-clickable":!e.loggedIn}]),onClick:function(t){return e.emojiOnClick(n.name,t)},onMouseenter:t[0]||(t[0]=function(t){return e.fetchEmojiReactionsByIfMissing()})},[(0,o._)("span",Lt,(0,r.zw)(n.name),1),(0,o._)("span",null,(0,r.zw)(n.count),1)],42,At)]})),_:2},1032,["users"])})),128)),e.tooManyReactions?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"emoji-reaction-expand faint",href:"javascript:void(0)",onClick:t[1]||(t[1]=function(){return e.toggleShowAll&&e.toggleShowAll.apply(e,arguments)})},(0,r.zw)(e.showAll?e.$t("general.show_less"):e.showMoreString),1)):(0,o.kq)("",!0)])}]]);var Rt=n(12061),qt=n(21268),Nt=n(20460),Zt=n(4493),Wt=n(95052),Bt=n(67828);function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(n),!0).forEach((function(t){(0,se.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}fe.vI.add(ge.FU$,ge.g4A,ge.byT,ge._1N,ge.NBC,ge.x5v,ge.Lh7,ge.CPW,ge.Tab,ge.RKn,ge.cNd,ge.Aq,ge.Mdf,ge.RP7,ge.mTx,ge.ptq,ge.cLY);var Kt,Gt=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Yt=function(e,t,n){var o=Gt(t),r="controlledSet".concat(o),i="uncontrolled".concat(o);e[r]?e[r](n):e[i]=n};const Jt={name:"Status",components:{ReplyButton:be,FavoriteButton:De,ReactButton:He,RetweetButton:et,ExtraButtons:ft,PostStatusForm:gt.Z,UserAvatar:vt.default,AvatarList:wt.Z,Timeago:bt.Z,StatusPopover:Pt,UserListPopover:Ut,EmojiReactions:Ft,StatusContent:yt.Z,RichContent:_t.Z,MentionLink:Nt.Z,MentionsLine:qt.Z,UserPopover:zt.default,UserLink:Rt.Z},props:["statusoid","expandable","inConversation","focused","highlight","compact","replies","isPreview","noHeading","inlineExpanded","showPinned","inProfile","profileUserId","simpleTree","controlledThreadDisplayStatus","controlledToggleThreadDisplay","showOtherRepliesAsButton","controlledShowingTall","controlledToggleShowingTall","controlledExpandingSubject","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject","controlledReplying","controlledToggleReplying","controlledMediaPlaying","controlledSetMediaPlaying","dive"],data:function(){return{uncontrolledReplying:!1,unmuted:!1,userExpanded:!1,uncontrolledMediaPlaying:[],suspendable:!0,error:null,headTailLinks:null}},computed:Vt(Vt({},(Kt=["replying","mediaPlaying"],Kt.reduce((function(e,t){var n=Gt(t),o="controlledToggle".concat(n),r="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[o]&&void 0===this.$props[o]||!this[o]?this[i]:this[r]},e}),{}))),{},{muteWords:function(){return this.mergedConfig.muteWords},showReasonMutedThread:function(){return(this.status.thread_muted||this.status.reblog&&this.status.reblog.thread_muted)&&!this.inConversation},repeaterClass:function(){var e=this.statusoid.user;return(0,Wt.M)(e)},userClass:function(){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user;return(0,Wt.M)(e)},deleted:function(){return this.statusoid.deleted},repeaterStyle:function(){var e=this.statusoid.user,t=this.mergedConfig.highlight;return(0,Wt.q)(t[e.screen_name])},userStyle:function(){if(!this.noHeading){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user,t=this.mergedConfig.highlight;return(0,Wt.q)(t[e.screen_name])}},userProfileLink:function(){return this.generateUserProfileLink(this.status.user.id,this.status.user.screen_name)},replyProfileLink:function(){if(this.isReply){var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e?e.statusnet_profile_url:"NOT_FOUND"}},retweet:function(){return!!this.statusoid.retweeted_status},retweeterUser:function(){return this.statusoid.user},retweeter:function(){return this.statusoid.user.name||this.statusoid.user.screen_name_ui},retweeterHtml:function(){return this.statusoid.user.name},retweeterProfileLink:function(){return this.generateUserProfileLink(this.statusoid.user.id,this.statusoid.user.screen_name)},status:function(){return this.retweet?this.statusoid.retweeted_status:this.statusoid},statusFromGlobalRepository:function(){return this.$store.state.statuses.allStatusesObject[this.status.id]},loggedIn:function(){return!!this.currentUser},muteWordHits:function(){return(0,Bt.u)(this.status,this.muteWords)},rtBotStatus:function(){return this.statusoid.user.bot},botStatus:function(){return this.status.user.bot},botIndicator:function(){return this.botStatus&&!this.hideBotIndication},rtBotIndicator:function(){return this.rtBotStatus&&!this.hideBotIndication},mentionsLine:function(){var e=this;if(!this.headTailLinks)return[];var t=new Set(this.headTailLinks.writtenMentions.map((function(e){return e.url})));return this.status.attentions.filter((function(n){return n.id!==e.status.in_reply_to_user_id&&n.statusnet_profile_url!==e.status.user.statusnet_profile_url&&!t.has(n.statusnet_profile_url)})).map((function(e){return{url:e.statusnet_profile_url,content:e.screen_name,userId:e.id}}))},hasMentionsLine:function(){return this.mentionsLine.length>0},muted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.userIsMuted||status.thread_muted||this.muteWordHits.length>0||this.muteBotStatuses&&this.botStatus&&!this.compact;return!this.unmuted&&!this.shouldNotMute&&e},userIsMuted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.status,t=e.reblog,n=this.$store.getters.relationship(e.user.id),o=t&&this.$store.getters.relationship(t.user.id);return e.muted||t&&t.muted||n.muting||o&&o.muting},shouldNotMute:function(){var e=this.status,t=e.reblog;return(this.inProfile&&(!t&&e.user.id===this.profileUserId||t&&t.user.id===this.profileUserId)||this.inConversation&&e.thread_muted)&&!this.muteWordHits.length>0},hideMutedUsers:function(){return this.mergedConfig.hideMutedPosts},hideMutedThreads:function(){return this.mergedConfig.hideMutedThreads},hideFilteredStatuses:function(){return this.mergedConfig.hideFilteredStatuses},hideWordFilteredPosts:function(){return this.mergedConfig.hideWordFilteredPosts},hideStatus:function(){return!this.shouldNotMute&&(this.muted&&this.hideFilteredStatuses||this.userIsMuted&&this.hideMutedUsers||this.status.thread_muted&&this.hideMutedThreads||this.muteWordHits.length>0&&this.hideWordFilteredPosts)},isFocused:function(){return!!this.focused||!!this.inConversation&&this.status.id===this.highlight},isReply:function(){return!(!this.status.in_reply_to_status_id||!this.status.in_reply_to_user_id)},replyToName:function(){if(this.status.in_reply_to_screen_name)return this.status.in_reply_to_screen_name;var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e&&e.screen_name_ui},replySubject:function(){if(!this.status.summary)return"";var e=ue()(this.status.summary),t=this.mergedConfig.subjectLineBehavior,n=e.match(/^re[: ]/i);return"noop"!==t&&n||"masto"===t?e:"email"===t?"re: ".concat(e):"noop"===t?"":void 0},combinedFavsAndRepeatsUsers:function(){var e=[].concat(this.statusFromGlobalRepository.favoritedBy,this.statusFromGlobalRepository.rebloggedBy);return ce()(e,"id")},tags:function(){return this.status.tags.filter((function(e){return e.hasOwnProperty("name")})).map((function(e){return e.name})).join(" ")},hidePostStats:function(){return this.mergedConfig.hidePostStats},muteBotStatuses:function(){return this.mergedConfig.muteBotStatuses},hideBotIndication:function(){return this.mergedConfig.hideBotIndication},currentUser:function(){return this.$store.state.users.currentUser},betterShadow:function(){return this.$store.state.interface.browserSupport.cssFilter},mergedConfig:function(){return this.$store.getters.mergedConfig},isSuspendable:function(){return!this.replying&&0===this.mediaPlaying.length},inThreadForest:function(){return!!this.controlledThreadDisplayStatus},threadShowing:function(){return"showing"===this.controlledThreadDisplayStatus},visibilityLocalized:function(){return this.$i18n.t("general.scope_in_timeline."+this.status.visibility)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable}}),methods:{visibilityIcon:function(e){switch(e){case"private":return"lock";case"unlisted":return"lock-open";case"direct":return"envelope";default:return"globe"}},showError:function(e){this.error=e},clearError:function(){this.error=void 0},toggleReplying:function(){var e,t,n,o;e=this,t=Gt("replying"),n="controlledToggle".concat(t),o="uncontrolled".concat(t),e[n]?e[n]():e[o]=!e[o]},gotoOriginal:function(e){this.inConversation&&this.$emit("goto",e)},toggleExpanded:function(){this.$emit("toggleExpanded")},toggleMute:function(){this.unmuted=!this.unmuted},toggleUserExpanded:function(){this.userExpanded=!this.userExpanded},generateUserProfileLink:function(e,t){return(0,Zt.Z)(e,t,this.$store.state.instance.restrictedNicknames)},addMediaPlaying:function(e){Yt(this,"mediaPlaying",this.mediaPlaying.concat(e))},removeMediaPlaying:function(e){Yt(this,"mediaPlaying",this.mediaPlaying.filter((function(t){return t!==e})))},setHeadTailLinks:function(e){this.headTailLinks=e},toggleThreadDisplay:function(){this.controlledToggleThreadDisplay()},scrollIfHighlighted:function(e){var t=e;if(this.status.id===t){var n=this.$el.getBoundingClientRect();n.top<100||n.height>=window.innerHeight-50?window.scrollBy(0,n.top-100):n.bottom>window.innerHeight-50&&window.scrollBy(0,n.bottom-window.innerHeight+50)}}},watch:{highlight:function(e){this.scrollIfHighlighted(e)},"status.repeat_num":function(e){this.isFocused&&this.statusFromGlobalRepository.rebloggedBy&&this.statusFromGlobalRepository.rebloggedBy.length!==e&&this.$store.dispatch("fetchRepeats",this.status.id)},"status.fave_num":function(e){this.isFocused&&this.statusFromGlobalRepository.favoritedBy&&this.statusFromGlobalRepository.favoritedBy.length!==e&&this.$store.dispatch("fetchFavs",this.status.id)},isSuspendable:function(e){this.suspendable=e}}},Qt=(0,we.Z)(Jt,[["render",function(e,t,n,se,ae,ce){var le=(0,o.up)("FAIcon"),ue=(0,o.up)("user-link"),de=(0,o.up)("UserAvatar"),pe=(0,o.up)("RichContent"),me=(0,o.up)("router-link"),he=(0,o.up)("UserPopover"),fe=(0,o.up)("Timeago"),ge=(0,o.up)("StatusPopover"),ve=(0,o.up)("MentionLink"),we=(0,o.up)("MentionsLine"),be=(0,o.up)("i18n-t"),ye=(0,o.up)("StatusContent"),_e=(0,o.up)("UserListPopover"),ke=(0,o.up)("AvatarList"),Se=(0,o.up)("EmojiReactions"),je=(0,o.up)("reply-button"),Ce=(0,o.up)("retweet-button"),Oe=(0,o.up)("favorite-button"),Pe=(0,o.up)("ReactButton"),ze=(0,o.up)("extra-buttons"),De=(0,o.up)("PostStatusForm");return e.hideStatus?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:0,ref:"root",class:(0,r.C_)(["Status",[{"-focused":e.isFocused},{"-conversation":e.inlineExpanded}]])},[e.error?((0,o.wg)(),(0,o.iD)("div",s,[(0,o.Uk)((0,r.zw)(e.error)+" ",1),(0,o._)("span",{class:"fa-scale-110 fa-old-padding",onClick:t[0]||(t[0]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,o.Wm)(le,{icon:"times"})])])):(0,o.kq)("",!0),e.muted&&!e.isPreview?((0,o.wg)(),(0,o.iD)("div",a,[(0,o._)("small",c,[e.muted&&e.retweet?((0,o.wg)(),(0,o.j4)(le,{key:0,class:"fa-scale-110 fa-old-padding repeat-icon",icon:"retweet"})):(0,o.kq)("",!0),(0,o.Wm)(ue,{user:e.status.user,at:!1},null,8,["user"])]),e.showReasonMutedThread?((0,o.wg)(),(0,o.iD)("small",l,(0,r.zw)(e.$t("status.thread_muted")),1)):(0,o.kq)("",!0),e.showReasonMutedThread&&e.muteWordHits.length>0?((0,o.wg)(),(0,o.iD)("small",u,(0,r.zw)(e.$t("status.thread_muted_and_words")),1)):(0,o.kq)("",!0),(0,o._)("small",{class:"mute-words",title:e.muteWordHits.join(", ")},(0,r.zw)(e.muteWordHits.join(", ")),9,d),(0,o._)("button",{class:"unmute button-unstyled",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(le,{icon:"eye-slash",class:"fa-scale-110 fa-old-padding"})])])):((0,o.wg)(),(0,o.iD)(o.HY,{key:2},[e.showPinned?((0,o.wg)(),(0,o.iD)("div",p,[(0,o.Wm)(le,{icon:"thumbtack",class:"faint"}),(0,o._)("span",m,(0,r.zw)(e.$t("status.pinned")),1)])):(0,o.kq)("",!0),!e.retweet||e.noHeading||e.inConversation?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)([[e.repeaterClass,{highlighted:e.repeaterStyle}],"status-container repeat-info"]),style:(0,r.j5)([e.repeaterStyle])},[e.retweet?((0,o.wg)(),(0,o.j4)(de,{key:0,class:"left-side repeater-avatar",bot:e.rtBotIndicator,"better-shadow":e.betterShadow,user:e.statusoid.user},null,8,["bot","better-shadow","user"])):(0,o.kq)("",!0),(0,o._)("div",h,[(0,o._)("bdi",{class:"status-username repeater-name",title:e.retweeter},[e.retweeterHtml?((0,o.wg)(),(0,o.j4)(me,{key:0,to:e.retweeterProfileLink},{default:(0,o.w5)((function(){return[(0,o.Wm)(pe,{html:e.retweeterHtml,emoji:e.retweeterUser.emoji},null,8,["html","emoji"])]})),_:1},8,["to"])):((0,o.wg)(),(0,o.j4)(me,{key:1,to:e.retweeterProfileLink},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.retweeter),1)]})),_:1},8,["to"]))],8,f),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(le,{icon:"retweet",class:"repeat-icon",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,o.Uk)(" "+(0,r.zw)(e.$t("timeline.repeated")),1)])],6)),e.deleted?((0,o.wg)(),(0,o.iD)("div",te,[(0,o._)("div",ne,[(0,o.Wm)(de,{class:"post-avatar",compact:e.compact,bot:e.botIndicator},null,8,["compact","bot"])]),(0,o._)("div",oe,[(0,o._)("div",re,(0,r.zw)(e.$t("status.status_deleted")),1),e.replying?((0,o.wg)(),(0,o.j4)(je,{key:0,replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"])):(0,o.kq)("",!0)])])):((0,o.wg)(),(0,o.iD)("div",{key:2,class:(0,r.C_)([[e.userClass,{highlighted:e.userStyle,"-repeat":e.retweet&&!e.inConversation}],"status-container"]),style:(0,r.j5)([e.userStyle]),"data-tags":e.tags},[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",v,[(0,o._)("a",{href:e.$router.resolve(e.userProfileLink).href,onClick:t[2]||(t[2]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(he,{"user-id":e.status.user.id,"overlay-centers":!0},{default:(0,o.w5)((function(){return[(0,o.Wm)(de,{class:"post-avatar",bot:e.botIndicator,compact:e.compact,"better-shadow":e.betterShadow,user:e.status.user},null,8,["bot","compact","better-shadow","user"])]})),_:1},8,["user-id"])],8,w)])),(0,o._)("div",b,[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",y,[(0,o._)("div",_,[(0,o._)("div",k,[e.status.user.name_html?((0,o.wg)(),(0,o.iD)("h4",{key:0,class:"status-username",title:e.status.user.name},[(0,o.Wm)(pe,{html:e.status.user.name,emoji:e.status.user.emoji},null,8,["html","emoji"])],8,S)):((0,o.wg)(),(0,o.iD)("h4",{key:1,class:"status-username",title:e.status.user.name},(0,r.zw)(e.status.user.name),9,j)),(0,o.Wm)(ue,{class:"account-name",title:e.status.user.screen_name_ui,user:e.status.user,at:!1},null,8,["title","user"]),e.status.user&&e.status.user.favicon?((0,o.wg)(),(0,o.iD)("img",{key:2,class:"status-favicon",src:e.status.user.favicon},null,8,C)):(0,o.kq)("",!0)]),(0,o._)("span",O,[(0,o.Wm)(me,{class:"timeago faint-link",to:{name:"conversation",params:{id:e.status.id}}},{default:(0,o.w5)((function(){return[(0,o.Wm)(fe,{time:e.status.created_at,"auto-update":60},null,8,["time"])]})),_:1},8,["to"]),e.status.visibility?((0,o.wg)(),(0,o.iD)("span",{key:0,class:"visibility-icon",title:e.visibilityLocalized},[(0,o.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:e.visibilityIcon(e.status.visibility)},null,8,["icon"])],8,P)):(0,o.kq)("",!0),e.expandable&&!e.isPreview?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled",title:e.$t("status.expand"),onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:"plus-square"})],8,z)):(0,o.kq)("",!0),e.unmuted?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled",onClick:t[4]||(t[4]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(le,{"fixed-width":"",icon:"eye-slash",class:"fa-scale-110"})])):(0,o.kq)("",!0),e.inThreadForest&&e.replies&&e.replies.length&&!e.simpleTree?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-unstyled",title:e.threadShowing?e.$t("status.thread_hide"):e.$t("status.thread_show"),"aria-expanded":e.threadShowing?"true":"false",onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleThreadDisplay&&e.toggleThreadDisplay.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:e.threadShowing?"chevron-up":"chevron-down"},null,8,["icon"])],8,D)):(0,o.kq)("",!0),e.dive&&!e.simpleTree?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled",title:e.$t("status.show_only_conversation_under_this"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(le,{"fixed-width":"",class:"fa-scale-110",icon:"angle-double-right"})],8,I)):(0,o.kq)("",!0)])]),e.isReply||e.hasMentionsLine?((0,o.wg)(),(0,o.iD)("div",x,[e.isReply?((0,o.wg)(),(0,o.iD)("span",T,[e.isPreview?((0,o.wg)(),(0,o.iD)("span",M,[(0,o._)("span",A,(0,r.zw)(e.$t("status.reply_to")),1)])):((0,o.wg)(),(0,o.j4)(ge,{key:0,"status-id":e.status.parent_visible&&e.status.in_reply_to_status_id,class:(0,r.C_)(["reply-to-popover",{"-strikethrough":!e.status.parent_visible}]),style:{"min-width":"0"}},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled reply-to","aria-label":e.$t("tool_tip.reply"),onClick:t[7]||(t[7]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,o.Wm)(le,{class:"fa-scale-110 fa-old-padding",icon:"reply",flip:"horizontal"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("span",U,(0,r.zw)(e.$t("status.reply_to")),1)],8,$)]})),_:1},8,["status-id","class"])),(0,o.Wm)(ve,{content:e.replyToName,url:e.replyProfileLink,"user-id":e.status.in_reply_to_user_id,"user-screen-name":e.status.in_reply_to_screen_name},null,8,["content","url","user-id","user-screen-name"])])):(0,o.kq)("",!0),e.hasMentionsLine?((0,o.wg)(),(0,o.iD)("span",L,[(0,o._)("span",{class:"mentions","aria-label":e.$t("tool_tip.mentions"),onClick:t[8]||(t[8]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,o._)("span",F,(0,r.zw)(e.$t("status.mentions")),1)],8,E),e.hasMentionsLine?((0,o.wg)(),(0,o.j4)(we,{key:0,mentions:e.mentionsLine.slice(0,1),class:"mentions-line-first"},null,8,["mentions"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.hasMentionsLine?((0,o.wg)(),(0,o.j4)(we,{key:2,mentions:e.mentionsLine.slice(1),class:"mentions-line"},null,8,["mentions"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),e.isEdited&&e.editingAvailable&&!e.isPreview?((0,o.wg)(),(0,o.iD)("div",R,[(0,o.Wm)(be,{keypath:"status.edited_at",tag:"span"},{time:(0,o.w5)((function(){return[(0,o.Wm)(fe,{"template-key":"time.in_past",time:e.status.edited_at,"auto-update":60,"long-format":!0},null,8,["time"])]})),_:1})])):(0,o.kq)("",!0)])),(0,o.Wm)(ye,{ref:"content",status:e.status,"no-heading":e.noHeading,highlight:e.highlight,focused:e.isFocused,"controlled-showing-tall":e.controlledShowingTall,"controlled-expanding-subject":e.controlledExpandingSubject,"controlled-showing-long-subject":e.controlledShowingLongSubject,"controlled-toggle-showing-tall":e.controlledToggleShowingTall,"controlled-toggle-expanding-subject":e.controlledToggleExpandingSubject,"controlled-toggle-showing-long-subject":e.controlledToggleShowingLongSubject,onMediaplay:t[9]||(t[9]=function(t){return e.addMediaPlaying(t)}),onMediapause:t[10]||(t[10]=function(t){return e.removeMediaPlaying(t)}),onParseReady:e.setHeadTailLinks},null,8,["status","no-heading","highlight","focused","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","onParseReady"]),e.inConversation&&!e.isPreview&&e.replies&&e.replies.length?((0,o.wg)(),(0,o.iD)("div",q,[e.showOtherRepliesAsButton&&e.replies.length>1?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled -link faint",title:e.$tc("status.ancestor_follow",e.replies.length-1,{numReplies:e.replies.length-1}),onClick:t[11]||(t[11]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$tc("status.replies_list_with_others",e.replies.length-1,{numReplies:e.replies.length-1})),9,N)):((0,o.wg)(),(0,o.iD)("span",Z,(0,r.zw)(e.$t("status.replies_list")),1)),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.replies,(function(t){return(0,o.wg)(),(0,o.j4)(ge,{key:t.id,"status-id":t.id},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled -link reply-link",onClick:(0,i.iM)((function(n){return e.gotoOriginal(t.id)}),["prevent"])},(0,r.zw)(t.name),9,W)]})),_:2},1032,["status-id"])})),128))])):(0,o.kq)("",!0),(0,o.Wm)(i.uT,{name:"fade"},{default:(0,o.w5)((function(){return[!e.hidePostStats&&e.isFocused&&e.combinedFavsAndRepeatsUsers.length>0?((0,o.wg)(),(0,o.iD)("div",B,[(0,o._)("div",H,[e.statusFromGlobalRepository.rebloggedBy&&e.statusFromGlobalRepository.rebloggedBy.length>0?((0,o.wg)(),(0,o.j4)(_e,{key:0,users:e.statusFromGlobalRepository.rebloggedBy},{default:(0,o.w5)((function(){return[(0,o._)("div",V,[(0,o._)("a",K,(0,r.zw)(e.$t("status.repeats")),1),(0,o._)("div",G,(0,r.zw)(e.statusFromGlobalRepository.rebloggedBy.length),1)])]})),_:1},8,["users"])):(0,o.kq)("",!0),e.statusFromGlobalRepository.favoritedBy&&e.statusFromGlobalRepository.favoritedBy.length>0?((0,o.wg)(),(0,o.j4)(_e,{key:1,users:e.statusFromGlobalRepository.favoritedBy},{default:(0,o.w5)((function(){return[(0,o._)("div",Y,[(0,o._)("a",J,(0,r.zw)(e.$t("status.favorites")),1),(0,o._)("div",Q,(0,r.zw)(e.statusFromGlobalRepository.favoritedBy.length),1)])]})),_:1},8,["users"])):(0,o.kq)("",!0),(0,o._)("div",X,[(0,o.Wm)(ke,{users:e.combinedFavsAndRepeatsUsers},null,8,["users"])])])])):(0,o.kq)("",!0)]})),_:1}),!e.mergedConfig.emojiReactionsOnTimeline&&!e.isFocused||e.noHeading||e.isPreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(Se,{key:2,status:e.status},null,8,["status"])),e.noHeading||e.isPreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",ee,[(0,o.Wm)(je,{replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"]),(0,o.Wm)(Ce,{visibility:e.status.visibility,"logged-in":e.loggedIn,status:e.status},null,8,["visibility","logged-in","status"]),(0,o.Wm)(Oe,{"logged-in":e.loggedIn,status:e.status},null,8,["logged-in","status"]),e.loggedIn?((0,o.wg)(),(0,o.j4)(Pe,{key:0,status:e.status},null,8,["status"])):(0,o.kq)("",!0),(0,o.Wm)(ze,{status:e.status,onOnError:e.showError,onOnSuccess:e.clearError},null,8,["status","onOnError","onOnSuccess"])]))])],14,g)),e.replying?((0,o.wg)(),(0,o.iD)("div",ie,[(0,o.Wm)(De,{class:"reply-body","reply-to":e.status.id,attentions:e.status.attentions,"replied-user":e.status.user,"copy-message-scope":e.status.visibility,subject:e.replySubject,onPosted:e.toggleReplying},null,8,["reply-to","attentions","replied-user","copy-message-scope","subject","onPosted"])])):(0,o.kq)("",!0)],64))],2))}]])},38146:(e,t,n)=>{"use strict";n.d(t,{Z:()=>V});var o=n(66252),r=n(3577),i={key:0},s={key:1},a={key:3,class:"link-preview media-body"},c=n(4942),l=n(66596),u=["role"],d=["title"],p={class:"option-result-label"},m={class:"result-percentage"},h=["role","aria-labelledby","aria-checked","onClick"],f=["disabled","value"],g=["disabled","value"],v={class:"option-vote"},w={class:"footer faint"},b=["disabled"],y={class:"total"},_=n(35161),k=n.n(_),S=n(84486),j=n.n(S),C=n(1840),O=n(92820);const P={name:"Poll",props:["basePoll","emoji"],components:{Timeago:C.Z,RichContent:O.Z},data:function(){return{loading:!1,choices:[],randomSeed:"".concat(Math.random()).replace(".","-")}},created:function(){this.$store.state.polls.pollsObject[this.pollId]||this.$store.dispatch("mergeOrAddPoll",this.basePoll),this.$store.dispatch("trackPoll",this.pollId)},unmounted:function(){this.$store.dispatch("untrackPoll",this.pollId)},computed:{pollId:function(){return this.basePoll.id},poll:function(){return this.$store.state.polls.pollsObject[this.pollId]||{}},options:function(){return this.poll&&this.poll.options||[]},expiresAt:function(){return this.poll&&this.poll.expires_at||0},expired:function(){return this.poll&&this.poll.expired||!1},loggedIn:function(){return this.$store.state.users.currentUser},showResults:function(){return this.poll.voted||this.expired||!this.loggedIn},totalVotesCount:function(){return this.poll.votes_count},containerClass:function(){return{loading:this.loading}},choiceIndices:function(){return this.choices.map((function(e,t){return e&&t})).filter((function(e){return"number"==typeof e}))},isDisabled:function(){var e=0===this.choiceIndices.length;return this.loading||e}},methods:{percentageForOption:function(e){return 0===this.totalVotesCount?0:Math.round(e/this.totalVotesCount*100)},resultTitle:function(e){return"".concat(e.votes_count,"/").concat(this.totalVotesCount," ").concat(this.$t("polls.votes"))},fetchPoll:function(){this.$store.dispatch("refreshPoll",{id:this.statusId,pollId:this.poll.id})},activateOption:function(e){var t=this.$el.querySelectorAll("input"),n=this.$el.querySelector('input[value="'.concat(e,'"]'));this.poll.multiple?n.checked=!n.checked:(j()(t,(function(e){e.checked=!1})),n.checked=!0),this.choices=k()(t,(function(e){return e.checked}))},optionId:function(e){return"poll".concat(this.poll.id,"-").concat(e)},vote:function(){var e=this;0!==this.choiceIndices.length&&(this.loading=!0,this.$store.dispatch("votePoll",{id:this.statusId,pollId:this.poll.id,choices:this.choiceIndices}).then((function(t){e.loading=!1})))}}};var z=n(83744);const D=(0,z.Z)(P,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("RichContent"),l=(0,o.up)("Timeago"),_=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["poll",e.containerClass])},[(0,o._)("div",{role:e.showResults?"section":e.poll.multiple?"group":"radiogroup"},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.options,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{key:n,class:"poll-option"},[e.showResults?((0,o.wg)(),(0,o.iD)("div",{key:0,title:e.resultTitle(t),class:"option-result"},[(0,o._)("div",p,[(0,o._)("span",m,(0,r.zw)(e.percentageForOption(t.votes_count))+"% ",1),(0,o.Wm)(c,{html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["html","emoji"])]),(0,o._)("div",{class:"result-fill",style:(0,r.j5)({width:"".concat(e.percentageForOption(t.votes_count),"%")})},null,4)],8,d)):((0,o.wg)(),(0,o.iD)("div",{key:1,tabindex:"0",role:e.poll.multiple?"checkbox":"radio","aria-labelledby":"option-vote-".concat(e.randomSeed,"-").concat(n),"aria-checked":e.choices[n],onClick:function(t){return e.activateOption(n)}},[e.poll.multiple?((0,o.wg)(),(0,o.iD)("input",{key:0,type:"checkbox",class:"poll-checkbox",disabled:e.loading,value:n},null,8,f)):((0,o.wg)(),(0,o.iD)("input",{key:1,type:"radio",disabled:e.loading,value:n},null,8,g)),(0,o._)("label",v,[(0,o.Wm)(c,{id:"option-vote-".concat(e.randomSeed,"-").concat(n),html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["id","html","emoji"])])],8,h))])})),128))],8,u),(0,o._)("div",w,[e.showResults?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default poll-vote-button",type:"button",disabled:e.isDisabled,onClick:t[0]||(t[0]=function(){return e.vote&&e.vote.apply(e,arguments)})},(0,r.zw)(e.$t("polls.vote")),9,b)),(0,o._)("div",y,["number"==typeof e.poll.voters_count?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o.Uk)((0,r.zw)(e.$tc("polls.people_voted_count",e.poll.voters_count,{count:e.poll.voters_count}))+" ·  ",1)],64)):((0,o.wg)(),(0,o.iD)(o.HY,{key:1},[(0,o.Uk)((0,r.zw)(e.$tc("polls.votes_count",e.poll.votes_count,{count:e.poll.votes_count}))+" ·  ",1)],64))]),(0,o._)("span",null,[(0,o.Wm)(_,{scope:"global",keypath:e.expired?"polls.expired":"polls.expires_in"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{time:e.expiresAt,"auto-update":60,"now-threshold":0},null,8,["time"])]})),_:1},8,["keypath"])])])],2)}]]);var I=n(67671),x=n(49963),T={class:"body"},$=n(58394),U=n(989),M=n(9382),A=n(84131);function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}M.vI.add(A.gMD,A.Xig,A.VmB,A.nNP,A.Mm7);const E={name:"StatusContent",props:["compact","status","focused","noHeading","fullContent","singleLine","showingTall","expandingSubject","showingLongSubject","toggleShowingTall","toggleExpandingSubject","toggleShowingLongSubject"],data:function(){return{postLength:this.status.text.length,parseReadyDone:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({localCollapseSubjectDefault:function(){return this.mergedConfig.collapseMessageWithSubject},tallStatus:function(){return!this.singleLine&&!this.compact&&this.status.raw_html.split(/<p|<br/).length+this.postLength/80>20},longSubject:function(){return this.status.summary.length>240},mightHideBecauseSubject:function(){return!!this.status.summary&&this.localCollapseSubjectDefault},mightHideBecauseTall:function(){return this.tallStatus&&!(this.status.summary&&this.localCollapseSubjectDefault)},hideSubjectStatus:function(){return this.mightHideBecauseSubject&&!this.expandingSubject},hideTallStatus:function(){return this.mightHideBecauseTall&&!this.showingTall},showingMore:function(){return this.mightHideBecauseTall&&this.showingTall||this.mightHideBecauseSubject&&this.expandingSubject},attachmentTypes:function(){return this.status.attachments.map((function(e){return $.Z.fileType(e.mimetype)}))}},(0,U.Se)(["mergedConfig"])),components:{RichContent:O.Z},mounted:function(){var e=this;this.status.attentions&&this.status.attentions.forEach((function(t){var n=t.id;e.$store.dispatch("fetchUserIfMissing",n)}))},methods:{onParseReady:function(e){var t=this;if(!this.parseReadyDone){this.parseReadyDone=!0,this.$emit("parseReady",e);var n=e.writtenMentions,o=e.invisibleMentions;n.filter((function(e){return!e.notifying})).forEach((function(e){var n=e.content,o=e.url,r=n.replace(/<[^>]+?>/gi,"");if(r.startsWith("@")){var i=r.slice(1),s=o.replace(/^https?:\/\//,"").replace(/\/.+?$/,"");t.$store.dispatch("fetchUserIfMissing","".concat(i,"@").concat(s))}})),this.postLength=o.reduce((function(e,t){return e-t.textContent.length-1}),this.postLength)}},toggleShowMore:function(){this.mightHideBecauseTall?this.toggleShowingTall():this.mightHideBecauseSubject&&this.toggleExpandingSubject()},generateTagLink:function(e){return"/tag/".concat(e)}}},F=(0,z.Z)(E,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("RichContent"),l=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["StatusBody",{"-compact":e.compact}])},[(0,o._)("div",T,[e.status.summary_raw_html?((0,o.wg)(),(0,o.iD)("div",{key:0,class:(0,r.C_)(["summary-wrapper",{"-tall":e.longSubject&&!e.showingLongSubject}])},[(0,o.Wm)(c,{class:"media-body summary",html:e.status.summary_raw_html,emoji:e.status.emojis},null,8,["html","emoji"]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[0]||(t[0]=(0,x.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("status.hide_full_subject")),513),[[x.F8,e.longSubject&&e.showingLongSubject]]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[1]||(t[1]=(0,x.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("status.show_full_subject")),513),[[x.F8,e.longSubject&&!e.showingLongSubject]])],2)):(0,o.kq)("",!0),(0,o._)("div",{class:(0,r.C_)([{"-tall-status":e.hideTallStatus},"text-wrapper"])},[(0,o.wy)((0,o._)("button",{class:(0,r.C_)(["button-unstyled -link tall-status-hider",{"-focused":e.focused}]),onClick:t[2]||(t[2]=(0,x.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("general.show_more")),3),[[x.F8,e.hideTallStatus]]),e.hideSubjectStatus||e.singleLine&&e.status.summary_raw_html?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(c,{key:0,class:(0,r.C_)([{"-single-line":e.singleLine},"text media-body"]),html:e.status.raw_html,emoji:e.status.emojis,"handle-links":!0,greentext:e.mergedConfig.greentext,attentions:e.status.attentions,onParseReady:e.onParseReady},null,8,["class","html","emoji","greentext","attentions","onParseReady"])),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link cw-status-hider",onClick:t[3]||(t[3]=(0,x.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},[(0,o.Uk)((0,r.zw)(e.$t("status.show_content"))+" ",1),e.attachmentTypes.includes("image")?((0,o.wg)(),(0,o.j4)(l,{key:0,icon:"image"})):(0,o.kq)("",!0),e.attachmentTypes.includes("video")?((0,o.wg)(),(0,o.j4)(l,{key:1,icon:"video"})):(0,o.kq)("",!0),e.attachmentTypes.includes("audio")?((0,o.wg)(),(0,o.j4)(l,{key:2,icon:"music"})):(0,o.kq)("",!0),e.attachmentTypes.includes("unknown")?((0,o.wg)(),(0,o.j4)(l,{key:3,icon:"file"})):(0,o.kq)("",!0),e.status.poll&&e.status.poll.options?((0,o.wg)(),(0,o.j4)(l,{key:4,icon:"poll-h"})):(0,o.kq)("",!0),e.status.card?((0,o.wg)(),(0,o.j4)(l,{key:5,icon:"link"})):(0,o.kq)("",!0)],512),[[x.F8,e.hideSubjectStatus]]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link status-unhider",onClick:t[4]||(t[4]=(0,x.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.tallStatus?e.$t("general.show_less"):e.$t("status.hide_content")),513),[[x.F8,e.showingMore&&!e.fullContent]])],2)]),e.hideSubjectStatus?(0,o.kq)("",!0):(0,o.WI)(e.$slots,"default",{key:0})],2)}]]);var R=n(92798);function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}M.vI.add(A.IJ7,A.gMD,A.Xig,A.VmB,A.nNP,A.Mm7);var Z,W=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},B=function(e,t){var n=W(t),o="controlledToggle".concat(n),r="uncontrolled".concat(n);e[o]?e[o]():e[r]=!e[r]};const H={name:"StatusContent",props:["status","compact","focused","noHeading","fullContent","singleLine","controlledShowingTall","controlledExpandingSubject","controlledToggleShowingTall","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject"],data:function(){return{uncontrolledShowingTall:this.fullContent||this.inConversation&&this.focused,uncontrolledShowingLongSubject:!1,uncontrolledExpandingSubject:!this.$store.getters.mergedConfig.collapseMessageWithSubject}},computed:N(N(N({},(Z=["showingTall","expandingSubject","showingLongSubject"],Z.reduce((function(e,t){var n=W(t),o="controlledToggle".concat(n),r="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[o]&&void 0===this.$props[o]||!this[o]?this[i]:this[r]},e}),{}))),{},{hideAttachments:function(){return this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation},nsfwClickthrough:function(){return!(!this.status.nsfw||this.status.summary&&this.localCollapseSubjectDefault)},attachmentSize:function(){return this.compact?"small":this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation||this.status.attachments.length>this.maxThumbnails?"hide":"normal"},maxThumbnails:function(){return this.mergedConfig.maxThumbnails}},(0,U.Se)(["mergedConfig"])),(0,U.rn)({currentUser:function(e){return e.users.currentUser}})),components:{Attachment:l.Z,Poll:D,Gallery:I.Z,LinkPreview:R.Z,StatusBody:F},methods:{toggleShowingTall:function(){B(this,"showingTall")},toggleExpandingSubject:function(){B(this,"expandingSubject")},toggleShowingLongSubject:function(){B(this,"showingLongSubject")},setMedia:function(){var e=this,t="hide"===this.attachmentSize?this.status.attachments:this.galleryAttachments;return function(){return e.$store.dispatch("setMedia",t)}}}},V=(0,z.Z)(H,[["render",function(e,t,n,c,l,u){var d=(0,o.up)("Poll"),p=(0,o.up)("FAIcon"),m=(0,o.up)("gallery"),h=(0,o.up)("link-preview"),f=(0,o.up)("StatusBody");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["StatusContent",{"-compact":e.compact}])},[(0,o.WI)(e.$slots,"header"),(0,o.Wm)(f,{status:e.status,compact:e.compact,"single-line":e.singleLine,"showing-tall":e.showingTall,"expanding-subject":e.expandingSubject,"showing-long-subject":e.showingLongSubject,"toggle-showing-tall":e.toggleShowingTall,"toggle-expanding-subject":e.toggleExpandingSubject,"toggle-showing-long-subject":e.toggleShowingLongSubject,onParseReady:t[2]||(t[2]=function(t){return e.$emit("parseReady",t)})},{default:(0,o.w5)((function(){return[e.status.poll&&e.status.poll.options&&!e.compact?((0,o.wg)(),(0,o.iD)("div",i,[(0,o.Wm)(d,{"base-poll":e.status.poll,emoji:e.status.emojis},null,8,["base-poll","emoji"])])):e.status.poll&&e.status.poll.options&&e.compact?((0,o.wg)(),(0,o.iD)("div",s,[(0,o.Wm)(p,{icon:"poll-h",size:"2x"})])):(0,o.kq)("",!0),0!==e.status.attachments.length?((0,o.wg)(),(0,o.j4)(m,{key:2,class:"attachments media-body",compact:e.compact,nsfw:e.nsfwClickthrough,attachments:e.status.attachments,limit:e.compact?1:0,size:e.attachmentSize,onPlay:t[0]||(t[0]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[1]||(t[1]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["compact","nsfw","attachments","limit","size"])):(0,o.kq)("",!0),!e.status.card||e.noHeading||e.compact?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",a,[(0,o.Wm)(h,{card:e.status.card,size:e.attachmentSize,nsfw:e.nsfwClickthrough},null,8,["card","size","nsfw"])]))]})),_:1},8,["status","compact","single-line","showing-tall","expanding-subject","showing-long-subject","toggle-showing-tall","toggle-expanding-subject","toggle-showing-long-subject"]),(0,o.WI)(e.$slots,"footer")],2)}]])},32140:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(66252),r=n(3577),i={key:0,ref:"canvas"},s=["alt","title","data-src","src","referrerpolicy","loading"];const a={props:["src","referrerpolicy","mimetype","imageLoadError","imageLoadHandler","alt","height","width","dataSrc","loading"],data:function(){return{realSrc:this.src,stopGifs:this.$store.getters.mergedConfig.stopGifs}},computed:{animated:function(){return!!this.realSrc&&this.stopGifs&&("image/gif"===this.mimetype||this.realSrc.endsWith(".gif"))},style:function(){var e=function(e){return/\d$/.test(e)?e+"px":e};return{height:this.height?e(this.height):null,width:this.width?e(this.width):null}}},methods:{loadLazy:function(){this.dataSrc&&(this.realSrc=this.dataSrc)},onLoad:function(){if(this.realSrc){var e=this.$refs.src;if(e){this.imageLoadHandler&&this.imageLoadHandler(e);var t=this.$refs.canvas;if(t){var n=e.naturalWidth,o=e.naturalHeight;t.width=n,t.height=o,t.getContext("2d").drawImage(e,0,0,n,o)}}}},onError:function(){this.imageLoadError&&this.imageLoadError()}},watch:{src:function(){this.realSrc=this.src},dataSrc:function(){this.$el.removeAttribute("data-loaded")}}},c=(0,n(83744).Z)(a,[["render",function(e,t,n,a,c,l){return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["still-image",{animated:e.animated}]),style:(0,r.j5)(e.style)},[e.animated?((0,o.wg)(),(0,o.iD)("canvas",i,null,512)):(0,o.kq)("",!0),((0,o.wg)(),(0,o.iD)("img",{ref:"src",key:e.realSrc,alt:e.alt,title:e.alt,"data-src":e.dataSrc,src:e.realSrc,referrerpolicy:e.referrerpolicy,loading:e.loading,onLoad:t[0]||(t[0]=function(){return e.onLoad&&e.onLoad.apply(e,arguments)}),onError:t[1]||(t[1]=function(){return e.onError&&e.onError.apply(e,arguments)})},null,40,s)),(0,o.WI)(e.$slots,"default")],6)}]])},1840:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(66252),r=n(3577),i=["datetime","title"],s=n(27483),a=n(39776);const c={name:"Timeago",props:["time","autoUpdate","longFormat","nowThreshold","templateKey"],data:function(){return{relativeTime:{key:"time.now",num:0},interval:null}},computed:{localeDateString:function(){var e=a.Z.internalToBrowserLocale(this.$i18n.locale);return"string"==typeof this.time?new Date(Date.parse(this.time)).toLocaleString(e):this.time.toLocaleString(e)},relativeTimeString:function(){var e=this.$i18n.tc(this.relativeTime.key,this.relativeTime.num,[this.relativeTime.num]);return"string"==typeof this.templateKey&&"time.now"!==this.relativeTime.key?this.$i18n.t(this.templateKey,[e]):e}},watch:{time:function(e,t){t!==e&&(clearTimeout(this.interval),this.refreshRelativeTimeObject())}},created:function(){this.refreshRelativeTimeObject()},unmounted:function(){clearTimeout(this.interval)},methods:{refreshRelativeTimeObject:function(){var e="number"==typeof this.nowThreshold?this.nowThreshold:1;this.relativeTime=this.longFormat?s.GV(this.time,e):s._F(this.time,e),this.autoUpdate&&(this.interval=setTimeout(this.refreshRelativeTimeObject,1e3*this.autoUpdate))}}},l=(0,n(83744).Z)(c,[["render",function(e,t,n,s,a,c){return(0,o.wg)(),(0,o.iD)("time",{datetime:n.time,title:c.localeDateString},(0,r.zw)(c.relativeTimeString),9,i)}]])},42262:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r=n(9382),i=n(84131);r.vI.add(i.dT$);const s={props:{user:Object}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,r,i,s){var a=(0,o.up)("FAIcon");return e.user&&e.user.screen_name_ui_contains_non_ascii?((0,o.wg)(),(0,o.j4)(a,{key:0,icon:"code",title:e.$t("unicode_domain_indicator.tooltip")},null,8,["title"])):(0,o.kq)("",!0)}]])},48173:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var o=n(66252),r=n(3577),i=n(32140),s=n(9382),a=n(84131);s.vI.add(a.VE0);const c={props:["user","betterShadow","compact","bot"],data:function(){return{showPlaceholder:!1,defaultAvatar:"".concat(this.$store.state.instance.server+this.$store.state.instance.defaultAvatar)}},components:{StillImage:i.Z},methods:{imgSrc:function(e){return!e||this.showPlaceholder?this.defaultAvatar:e},imageLoadError:function(){this.showPlaceholder=!0}}},l=(0,n(83744).Z)(c,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("StillImage"),l=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("span",{class:(0,r.C_)(["Avatar",{"-compact":e.compact}])},[e.user?((0,o.wg)(),(0,o.j4)(c,{key:0,class:(0,r.C_)(["avatar",{"-compact":e.compact,"-better-shadow":e.betterShadow}]),alt:e.user.screen_name_ui,title:e.user.screen_name_ui,src:e.imgSrc(e.user.profile_image_url_original),"image-load-error":e.imageLoadError},null,8,["alt","title","src","image-load-error","class"])):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["avatar -placeholder",{"-compact":e.compact}])},null,2)),e.bot?((0,o.wg)(),(0,o.j4)(l,{key:2,icon:"robot",class:"bot-indicator"})):(0,o.kq)("",!0)],2)}]])},20392:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ae});var o=n(66252),r=n(3577),i=n(49963),s={class:"user-info"},a={class:"container"},c={class:"user-info-avatar -link -overlay"},l={class:"user-summary"},u={class:"top-line"},d=["href"],p={class:"bottom-line"},m={key:0,class:"alert user-role"},h={key:1,class:"alert user-role"},f={key:2,class:"alert user-role"},g={key:1},v={key:2,class:"dailyAvg"},w={class:"user-meta"},b={key:0,class:"following"},y={key:1,class:"highlighter"},_=["id"],k=["id"],S={value:"disabled"},j={value:"solid"},C={value:"striped"},O={value:"side"},P={key:0,class:"user-interactions"},z={class:"btn-group"},D=["disabled"],I=["disabled"],x=["disabled"],T={key:1,class:"user-interactions"},$={key:0,class:"panel-body"},U={key:0,class:"user-counts"},M=(0,o._)("br",null,null,-1),A=["textContent"],L={class:"mute-expiry"},E=["value"],F=n(4942),R=n(27483),q=n(48173),N=n(72895),Z=n(99507),W=n(34837),B={class:"dropdown-menu"},H={key:0},V={key:0,role:"separator",class:"dropdown-divider"},K={key:3,role:"separator",class:"dropdown-divider"},G={key:4},Y=n(9382),J=n(84131),Q=n(71113),X=n(91447);Y.vI.add(J.ptq);const ee={props:["user"],data:function(){return{tags:{FORCE_NSFW:"mrf_tag:media-force-nsfw",STRIP_MEDIA:"mrf_tag:media-strip",FORCE_UNLISTED:"mrf_tag:force-unlisted",DISABLE_REMOTE_SUBSCRIPTION:"mrf_tag:disable-remote-subscription",DISABLE_ANY_SUBSCRIPTION:"mrf_tag:disable-any-subscription",SANDBOX:"mrf_tag:sandbox",QUARANTINE:"mrf_tag:quarantine"},showDeleteUserDialog:!1,toggled:!1}},components:{DialogModal:Q.Z,Popover:X.default},computed:{tagsSet:function(){return new Set(this.user.tags)},canGrantRole:function(){return this.user.is_local&&!this.user.deactivated&&"admin"===this.$store.state.users.currentUser.role},canChangeActivationState:function(){return this.privileged("users_manage_activation_state")},canDeleteAccount:function(){return this.privileged("users_delete")},canUseTagPolicy:function(){return this.$store.state.instance.tagPolicyAvailable&&this.privileged("users_manage_tags")}},methods:{hasTag:function(e){return this.tagsSet.has(e)},privileged:function(e){return this.$store.state.users.currentUser.privileges.includes(e)},toggleTag:function(e){var t=this,n=this.$store;this.tagsSet.has(e)?n.state.api.backendInteractor.untagUser({user:this.user,tag:e}).then((function(o){o.ok&&n.commit("untagUser",{user:t.user,tag:e})})):n.state.api.backendInteractor.tagUser({user:this.user,tag:e}).then((function(o){o.ok&&n.commit("tagUser",{user:t.user,tag:e})}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,o=n.id,r=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===r||e.$route.params.id===o;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}};var te=n(83744);const ne=(0,te.Z)(ee,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("FAIcon"),l=(0,o.up)("Popover"),u=(0,o.up)("DialogModal");return(0,o.wg)(),(0,o.iD)("div",null,[(0,o.Wm)(l,{trigger:"click",class:"moderation-tools-popover",placement:"bottom",offset:{y:5},onShow:t[11]||(t[11]=function(t){return e.setToggled(!0)}),onClose:t[12]||(t[12]=function(t){return e.setToggled(!1)})},{content:(0,o.w5)((function(){return[(0,o._)("div",B,[e.canGrantRole?((0,o.wg)(),(0,o.iD)("span",H,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(t){return e.toggleRight("admin")})},(0,r.zw)(e.$t(e.user.rights.admin?"user_card.admin_menu.revoke_admin":"user_card.admin_menu.grant_admin")),1),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(t){return e.toggleRight("moderator")})},(0,r.zw)(e.$t(e.user.rights.moderator?"user_card.admin_menu.revoke_moderator":"user_card.admin_menu.grant_moderator")),1),e.canChangeActivationState||e.canDeleteAccount?((0,o.wg)(),(0,o.iD)("div",V)):(0,o.kq)("",!0)])):(0,o.kq)("",!0),e.canChangeActivationState?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(t){return e.toggleActivationStatus()})},(0,r.zw)(e.$t(e.user.deactivated?"user_card.admin_menu.activate_account":"user_card.admin_menu.deactivate_account")),1)):(0,o.kq)("",!0),e.canDeleteAccount?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(t){return e.deleteUserDialog(!0)})},(0,r.zw)(e.$t("user_card.admin_menu.delete_account")),1)):(0,o.kq)("",!0),e.canUseTagPolicy?((0,o.wg)(),(0,o.iD)("div",K)):(0,o.kq)("",!0),e.canUseTagPolicy?((0,o.wg)(),(0,o.iD)("span",G,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(t){return e.toggleTag(e.tags.FORCE_NSFW)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_NSFW)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.force_nsfw")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(t){return e.toggleTag(e.tags.STRIP_MEDIA)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.STRIP_MEDIA)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.strip_media")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(t){return e.toggleTag(e.tags.FORCE_UNLISTED)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_UNLISTED)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.force_unlisted")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[7]||(t[7]=function(t){return e.toggleTag(e.tags.SANDBOX)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.SANDBOX)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.sandbox")),1)]),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item",onClick:t[8]||(t[8]=function(t){return e.toggleTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.disable_remote_subscription")),1)])):(0,o.kq)("",!0),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[9]||(t[9]=function(t){return e.toggleTag(e.tags.DISABLE_ANY_SUBSCRIPTION)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_ANY_SUBSCRIPTION)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.disable_any_subscription")),1)])):(0,o.kq)("",!0),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[10]||(t[10]=function(t){return e.toggleTag(e.tags.QUARANTINE)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.QUARANTINE)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.quarantine")),1)])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",{class:(0,r.C_)(["btn button-default btn-block moderation-tools-button",{toggled:e.toggled}])},[(0,o.Uk)((0,r.zw)(e.$t("user_card.admin_menu.moderation"))+" ",1),(0,o.Wm)(c,{icon:"chevron-down"})],2)]})),_:1}),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showDeleteUserDialog?((0,o.wg)(),(0,o.j4)(u,{key:0,"on-cancel":e.deleteUserDialog.bind(this,!1)},{header:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),footer:(0,o.w5)((function(){return[(0,o._)("button",{class:"btn button-default",onClick:t[13]||(t[13]=function(t){return e.deleteUserDialog(!1)})},(0,r.zw)(e.$t("general.cancel")),1),(0,o._)("button",{class:"btn button-default danger",onClick:t[14]||(t[14]=function(t){return e.deleteUser()})},(0,r.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),default:(0,o.w5)((function(){return[(0,o._)("p",null,(0,r.zw)(e.$t("user_card.admin_menu.delete_user_confirmation")),1)]})),_:1},8,["on-cancel"])):(0,o.kq)("",!0)]))])}]]);var oe={class:"AccountActions"},re={class:"dropdown-menu"},ie=(0,o._)("div",{role:"separator",class:"dropdown-divider"},null,-1),se={class:"button-unstyled ellipsis-button"},ae=["textContent"],ce=["textContent"],le=n(989),ue={class:"UserListMenu"},de={class:"dropdown-menu"},pe=["onClick"],me={class:"btn button-default dropdown-item -has-submenu"};function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?he(Object(n),!0).forEach((function(t){(0,F.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Y.vI.add(J._tD);const ge={props:["user"],data:function(){return{}},components:{DialogModal:Q.Z,Popover:X.default},created:function(){this.$store.dispatch("fetchUserInLists",this.user.id)},computed:fe(fe({},(0,le.rn)({allLists:function(e){return e.lists.allLists}})),{},{inListsSet:function(){return new Set(this.user.inLists.map((function(e){return e.id})))},lists:function(){var e=this;return this.user.inLists?this.allLists.map((function(t){return fe(fe({},t),{},{inList:e.inListsSet.has(t.id)})})):[]}}),methods:{toggleList:function(e){var t=this;this.inListsSet.has(e)?this.$store.dispatch("removeListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)})):this.$store.dispatch("addListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,o=n.id,r=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===r||e.$route.params.id===o;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}},ve=(0,te.Z)(ge,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("FAIcon"),l=(0,o.up)("Popover");return(0,o.wg)(),(0,o.iD)("div",ue,[(0,o.Wm)(l,{trigger:"hover",placement:"left","remove-padding":""},{content:(0,o.w5)((function(){return[(0,o._)("div",de,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.lists,(function(t){return(0,o.wg)(),(0,o.iD)("button",{key:t.id,class:"button-default dropdown-item",onClick:function(n){return e.toggleList(t.id)}},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":t.inList}])},null,2),(0,o.Uk)(" "+(0,r.zw)(t.title),1)],8,pe)})),128))])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",me,[(0,o.Uk)((0,r.zw)(e.$t("lists.manage_lists"))+" ",1),(0,o.Wm)(c,{class:"chevron-icon",size:"lg",icon:"chevron-right"})])]})),_:1})])}]]);var we=n(1447);function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}Y.vI.add(J.iV1);const ye={props:["user","relationship"],data:function(){return{showingConfirmBlock:!1,showingConfirmRemoveFollower:!1}},components:{ProgressButton:Z.Z,Popover:X.default,UserListMenu:ve,ConfirmModal:we.Z},methods:{showConfirmBlock:function(){this.showingConfirmBlock=!0},hideConfirmBlock:function(){this.showingConfirmBlock=!1},showConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!0},hideConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!1},showRepeats:function(){this.$store.dispatch("showReblogs",this.user.id)},hideRepeats:function(){this.$store.dispatch("hideReblogs",this.user.id)},blockUser:function(){this.shouldConfirmBlock?this.showConfirmBlock():this.doBlockUser()},doBlockUser:function(){this.$store.dispatch("blockUser",this.user.id),this.hideConfirmBlock()},unblockUser:function(){this.$store.dispatch("unblockUser",this.user.id)},removeUserFromFollowers:function(){this.shouldConfirmRemoveUserFromFollowers?this.showConfirmRemoveUserFromFollowers():this.doRemoveUserFromFollowers()},doRemoveUserFromFollowers:function(){this.$store.dispatch("removeUserFromFollowers",this.user.id),this.hideConfirmRemoveUserFromFollowers()},reportUser:function(){this.$store.dispatch("openUserReportingModal",{userId:this.user.id})},openChat:function(){this.$router.push({name:"chat",params:{username:this.$store.state.users.currentUser.screen_name,recipient_id:this.user.id}})}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach((function(t){(0,F.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({shouldConfirmBlock:function(){return this.$store.getters.mergedConfig.modalOnBlock},shouldConfirmRemoveUserFromFollowers:function(){return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers}},(0,le.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable}}))},_e=(0,te.Z)(ye,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("UserListMenu"),l=(0,o.up)("FAIcon"),u=(0,o.up)("Popover"),d=(0,o.up)("i18n-t"),p=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",oe,[(0,o.Wm)(u,{trigger:"click",placement:"bottom","bound-to":{x:"container"},"remove-padding":""},{content:(0,o.w5)((function(){return[(0,o._)("div",re,[e.relationship.following?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.relationship.showing_reblogs?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default dropdown-item",onClick:t[0]||(t[0]=function(){return e.hideRepeats&&e.hideRepeats.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.hide_repeats")),1)):(0,o.kq)("",!0),e.relationship.showing_reblogs?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default dropdown-item",onClick:t[1]||(t[1]=function(){return e.showRepeats&&e.showRepeats.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.show_repeats")),1)),ie],64)):(0,o.kq)("",!0),(0,o.Wm)(c,{user:e.user},null,8,["user"]),e.relationship.followed_by?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default btn-block dropdown-item",onClick:t[2]||(t[2]=function(){return e.removeUserFromFollowers&&e.removeUserFromFollowers.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.remove_follower")),1)):(0,o.kq)("",!0),e.relationship.blocking?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"btn button-default btn-block dropdown-item",onClick:t[3]||(t[3]=function(){return e.unblockUser&&e.unblockUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.unblock")),1)):((0,o.wg)(),(0,o.iD)("button",{key:3,class:"btn button-default btn-block dropdown-item",onClick:t[4]||(t[4]=function(){return e.blockUser&&e.blockUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.block")),1)),(0,o._)("button",{class:"btn button-default btn-block dropdown-item",onClick:t[5]||(t[5]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.report")),1),e.pleromaChatMessagesAvailable?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"btn button-default btn-block dropdown-item",onClick:t[6]||(t[6]=function(){return e.openChat&&e.openChat.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.message")),1)):(0,o.kq)("",!0)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",se,[(0,o.Wm)(l,{class:"icon",icon:"ellipsis-v"})])]})),_:1}),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmBlock?((0,o.wg)(),(0,o.j4)(p,{key:0,title:e.$t("user_card.block_confirm_title"),"confirm-text":e.$t("user_card.block_confirm_accept_button"),"cancel-text":e.$t("user_card.block_confirm_cancel_button"),onAccepted:e.doBlockUser,onCancelled:e.hideConfirmBlock},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{keypath:"user_card.block_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,ae)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)])),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmRemoveFollower?((0,o.wg)(),(0,o.j4)(p,{key:0,title:e.$t("user_card.remove_follower_confirm_title"),"confirm-text":e.$t("user_card.remove_follower_confirm_accept_button"),"cancel-text":e.$t("user_card.remove_follower_confirm_cancel_button"),onAccepted:e.doRemoveUserFromFollowers,onCancelled:e.hideConfirmRemoveUserFromFollowers},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{keypath:"user_card.remove_follower_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,ce)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))])}]]);var ke={class:"user-note"},Se={class:"heading"},je={class:"buttons"},Ce=["disabled"],Oe=["disabled"];const Pe={props:{user:Object,relationship:Object,editable:Boolean},data:function(){return{localNote:"",editing:!1,frozen:!1}},computed:{shouldShow:function(){return this.relationship.note||this.editing}},methods:{startEditing:function(){this.localNote=this.relationship.note,this.editing=!0},cancelEditing:function(){this.editing=!1},finalizeEditing:function(){var e=this;this.frozen=!0,this.$store.dispatch("editUserNote",{id:this.user.id,comment:this.localNote}).then((function(){e.frozen=!1,e.editing=!1})).catch((function(){e.frozen=!1}))}}},ze=(0,te.Z)(Pe,[["render",function(e,t,n,s,a,c){return(0,o.wg)(),(0,o.iD)("div",ke,[(0,o._)("div",Se,[(0,o._)("span",null,(0,r.zw)(e.$t("user_card.note")),1),(0,o._)("div",je,[(0,o.wy)((0,o._)("button",{class:"button-default btn",onClick:t[0]||(t[0]=function(){return e.startEditing&&e.startEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note")),513),[[i.F8,!e.editing&&e.editable]]),(0,o.wy)((0,o._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[1]||(t[1]=function(){return e.finalizeEditing&&e.finalizeEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note_apply")),9,Ce),[[i.F8,e.editing]]),(0,o.wy)((0,o._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[2]||(t[2]=function(){return e.cancelEditing&&e.cancelEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note_cancel")),9,Oe),[[i.F8,e.editing]])])]),(0,o.wy)((0,o._)("textarea",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.localNote=t}),class:"note-text"},null,512),[[i.F8,e.editing],[i.nr,e.localNote]]),(0,o.wy)((0,o._)("span",{class:(0,r.C_)(["note-text",{"-blank":!e.relationship.note}])},(0,r.zw)(e.relationship.note||e.$t("user_card.note_blank")),3),[[i.F8,!e.editing]])])}]]);var De=n(76990),Ie=n(12061),xe=n(92820),Te=n(4493);function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ue(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$e(Object(n),!0).forEach((function(t){(0,F.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Y.vI.add(J.Fwd,J.qmU,J.N7g,J.Xjp,J.Xcf,J.NBC,J.TTL);const Me={props:["userId","switcher","selected","hideBio","rounded","bordered","avatarAction","onClose","hasNoteEditor"],data:function(){return{followRequestInProgress:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter,showingConfirmMute:!1,muteExpiryAmount:0,muteExpiryUnit:"minutes"}},created:function(){this.$store.dispatch("fetchUserRelationship",this.user.id)},computed:Ue({user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},classes:function(){return[{"-rounded-t":"top"===this.rounded,"-rounded":!0===this.rounded,"-bordered":!0===this.bordered,"-popover":!!this.onClose}]},style:function(){return{backgroundImage:["linear-gradient(to bottom, var(--profileTint), var(--profileTint))","url(".concat(this.user.cover_photo,")")].join(", ")}},isOtherUser:function(){return this.user.id!==this.$store.state.users.currentUser.id},subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")},loggedIn:function(){return this.$store.state.users.currentUser},dailyAvg:function(){var e=Math.ceil((new Date-new Date(this.user.created_at))/864e5);return Math.round(this.user.statuses_count/e)},userHighlightType:Ue({get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.type||"disabled"},set:function(e){var t=this.$store.getters.mergedConfig.highlight[this.user.screen_name];"disabled"!==e?this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:t&&t.color||"#FFFFFF",type:e}):this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:void 0})}},(0,le.Se)(["mergedConfig"])),userHighlightColor:{get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.color},set:function(e){this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:e})}},visibleRole:function(){var e=this.user.rights;if(e){var t=e.admin||e.moderator,n=e.admin?"admin":"moderator";return t&&n}},hideFollowsCount:function(){return this.isOtherUser&&this.user.hide_follows_count},hideFollowersCount:function(){return this.isOtherUser&&this.user.hide_followers_count},showModerationMenu:function(){var e=this.loggedIn.privileges;return"admin"===this.loggedIn.role||e.includes("users_manage_activation_state")||e.includes("users_delete")||e.includes("users_manage_tags")},hasNote:function(){return this.relationship.note},supportsNote:function(){return"note"in this.relationship},shouldConfirmMute:function(){return this.mergedConfig.modalOnMute},muteExpiryUnits:function(){return["minutes","hours","days"]}},(0,le.Se)(["mergedConfig"])),components:{UserAvatar:q.default,RemoteFollow:N.Z,ModerationTools:ne,AccountActions:_e,ProgressButton:Z.Z,FollowButton:W.Z,Select:De.Z,RichContent:xe.Z,UserLink:Ie.Z,UserNote:ze,ConfirmModal:we.Z},methods:{showConfirmMute:function(){this.showingConfirmMute=!0},hideConfirmMute:function(){this.showingConfirmMute=!1},muteUser:function(){this.shouldConfirmMute?this.showConfirmMute():this.doMuteUser()},doMuteUser:function(){this.$store.dispatch("muteUser",{id:this.user.id,expiresIn:this.shouldConfirmMute?(0,R.cC)(this.muteExpiryUnit,this.muteExpiryAmount):0}),this.hideConfirmMute()},unmuteUser:function(){this.$store.dispatch("unmuteUser",this.user.id)},subscribeUser:function(){return this.$store.dispatch("subscribeUser",this.user.id)},unsubscribeUser:function(){return this.$store.dispatch("unsubscribeUser",this.user.id)},setProfileView:function(e){this.switcher&&this.$store.commit("setProfileView",{v:e})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")},userProfileLink:function(e){return(0,Te.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")},zoomAvatar:function(){var e={url:this.user.profile_image_url_original,mimetype:"image"};this.$store.dispatch("setMedia",[e]),this.$store.dispatch("setCurrentMedia",e)},mentionUser:function(){this.$store.dispatch("openPostStatusModal",{replyTo:!0,repliedUser:this.user})},onAvatarClickHandler:function(e){this.onAvatarClick&&(e.preventDefault(),this.onAvatarClick())}}},Ae=(0,te.Z)(Me,[["render",function(e,t,n,F,R,q){var N=(0,o.up)("UserAvatar"),Z=(0,o.up)("FAIcon"),W=(0,o.up)("router-link"),B=(0,o.up)("RichContent"),H=(0,o.up)("AccountActions"),V=(0,o.up)("user-link"),K=(0,o.up)("Select"),G=(0,o.up)("FollowButton"),Y=(0,o.up)("ProgressButton"),J=(0,o.up)("FALayers"),Q=(0,o.up)("ModerationTools"),X=(0,o.up)("RemoteFollow"),ee=(0,o.up)("UserNote"),te=(0,o.up)("i18n-t"),ne=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["user-card",e.classes])},[(0,o._)("div",{class:(0,r.C_)([{"hide-bio":e.hideBio},"background-image"]),style:(0,r.j5)(e.style)},null,6),(0,o._)("div",{class:(0,r.C_)(e.onClose?"":e.panel-e.heading-e.flexible-e.height)},[(0,o._)("div",s,[(0,o._)("div",a,["zoom"===e.avatarAction?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"user-info-avatar -link",onClick:t[0]||(t[0]=function(){return e.zoomAvatar&&e.zoomAvatar.apply(e,arguments)})},[(0,o.Wm)(N,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"]),(0,o._)("div",c,[(0,o.Wm)(Z,{class:"fa-scale-110 fa-old-padding",icon:"search-plus"})])])):"function"==typeof e.avatarAction?((0,o.wg)(),(0,o.j4)(N,{key:1,class:"user-info-avatar","better-shadow":e.betterShadow,user:e.user,onClick:e.avatarAction},null,8,["better-shadow","user","onClick"])):((0,o.wg)(),(0,o.j4)(W,{key:2,to:e.userProfileLink(e.user)},{default:(0,o.w5)((function(){return[(0,o.Wm)(N,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"])]})),_:1},8,["to"])),(0,o._)("div",l,[(0,o._)("div",u,[(0,o.Wm)(W,{to:e.userProfileLink(e.user),class:"user-name"},{default:(0,o.w5)((function(){return[(0,o.Wm)(B,{title:e.user.name,html:e.user.name,emoji:e.user.emoji},null,8,["title","html","emoji"])]})),_:1},8,["to"]),!e.isOtherUser&&e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled edit-profile-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)}),["stop"]))},[(0,o.Wm)(Z,{"fixed-width":"",class:"icon",icon:"edit",title:e.$t("user_card.edit_profile")},null,8,["title"])])):(0,o.kq)("",!0),e.isOtherUser&&!e.user.is_local?((0,o.wg)(),(0,o.iD)("a",{key:1,href:e.user.statusnet_profile_url,target:"_blank",class:"button-unstyled external-link-button"},[(0,o.Wm)(Z,{class:"icon",icon:"external-link-alt"})],8,d)):(0,o.kq)("",!0),e.isOtherUser&&e.loggedIn?((0,o.wg)(),(0,o.j4)(H,{key:2,user:e.user,relationship:e.relationship},null,8,["user","relationship"])):(0,o.kq)("",!0),e.onClose?((0,o.wg)(),(0,o.j4)(W,{key:3,to:e.userProfileLink(e.user),class:"button-unstyled external-link-button",onClick:e.onClose},{default:(0,o.w5)((function(){return[(0,o.Wm)(Z,{class:"icon",icon:"expand-alt"})]})),_:1},8,["to","onClick"])):(0,o.kq)("",!0),e.onClose?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled external-link-button",onClick:t[2]||(t[2]=function(){return e.onClose&&e.onClose.apply(e,arguments)})},[(0,o.Wm)(Z,{class:"icon",icon:"times"})])):(0,o.kq)("",!0)]),(0,o._)("div",p,[(0,o.Wm)(V,{class:"user-screen-name",user:e.user},null,8,["user"]),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.user.deactivated?((0,o.wg)(),(0,o.iD)("span",m,(0,r.zw)(e.$t("user_card.deactivated")),1)):(0,o.kq)("",!0),e.visibleRole?((0,o.wg)(),(0,o.iD)("span",h,(0,r.zw)(e.$t("general.role.".concat(e.visibleRole))),1)):(0,o.kq)("",!0),e.user.bot?((0,o.wg)(),(0,o.iD)("span",f,(0,r.zw)(e.$t("user_card.bot")),1)):(0,o.kq)("",!0)],64)),e.user.locked?((0,o.wg)(),(0,o.iD)("span",g,[(0,o.Wm)(Z,{class:"lock-icon",icon:"lock",size:"sm"})])):(0,o.kq)("",!0),e.mergedConfig.hideUserStats||e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",v,(0,r.zw)(e.dailyAvg)+" "+(0,r.zw)(e.$t("user_card.per_day")),1))])])]),(0,o._)("div",w,[e.relationship.followed_by&&e.loggedIn&&e.isOtherUser?((0,o.wg)(),(0,o.iD)("div",b,(0,r.zw)(e.$t("user_card.follows_you")),1)):(0,o.kq)("",!0),!e.isOtherUser||!e.loggedIn&&e.switcher?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",y,["disabled"!==e.userHighlightType?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,id:"userHighlightColorTx"+e.user.id,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userHighlightColor=t}),class:"userHighlightText",type:"text"},null,8,_)),[[i.nr,e.userHighlightColor]]):(0,o.kq)("",!0),"disabled"!==e.userHighlightType?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:1,id:"userHighlightColor"+e.user.id,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.userHighlightColor=t}),class:"userHighlightCl",type:"color"},null,8,k)),[[i.nr,e.userHighlightColor]]):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(K,{id:"userHighlightSel"+e.user.id,modelValue:e.userHighlightType,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.userHighlightType=t}),class:"userHighlightSel"},{default:(0,o.w5)((function(){return[(0,o._)("option",S,(0,r.zw)(e.$t("user_card.highlight.disabled")),1),(0,o._)("option",j,(0,r.zw)(e.$t("user_card.highlight.solid")),1),(0,o._)("option",C,(0,r.zw)(e.$t("user_card.highlight.striped")),1),(0,o._)("option",O,(0,r.zw)(e.$t("user_card.highlight.side")),1)]})),_:1},8,["id","modelValue"])]))]),e.loggedIn&&e.isOtherUser?((0,o.wg)(),(0,o.iD)("div",P,[(0,o._)("div",z,[(0,o.Wm)(G,{relationship:e.relationship,user:e.user},null,8,["relationship","user"]),e.relationship.following?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.relationship.subscribing?((0,o.wg)(),(0,o.j4)(Y,{key:1,class:"btn button-default toggled",click:e.unsubscribeUser,title:e.$t("user_card.unsubscribe")},{default:(0,o.w5)((function(){return[(0,o.Wm)(J,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(Z,{icon:"rss",transform:"left-5 shrink-6 up-3 rotate-20",flip:"horizontal"}),(0,o.Wm)(Z,{icon:"rss",transform:"right-5 shrink-6 up-3 rotate-20"}),(0,o.Wm)(Z,{icon:"bell"})]})),_:1})]})),_:1},8,["click","title"])):((0,o.wg)(),(0,o.j4)(Y,{key:0,class:"btn button-default",click:e.subscribeUser,title:e.$t("user_card.subscribe")},{default:(0,o.w5)((function(){return[(0,o.Wm)(Z,{icon:"bell"})]})),_:1},8,["click","title"]))],64)):(0,o.kq)("",!0)]),(0,o._)("div",null,[e.relationship.muting?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default btn-block toggled",disabled:e.user.deactivated,onClick:t[6]||(t[6]=function(){return e.unmuteUser&&e.unmuteUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.muted")),9,D)):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[7]||(t[7]=function(){return e.muteUser&&e.muteUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.mute")),9,I))]),(0,o._)("div",null,[(0,o._)("button",{class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[8]||(t[8]=function(){return e.mentionUser&&e.mentionUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.mention")),9,x)]),e.showModerationMenu?((0,o.wg)(),(0,o.j4)(Q,{key:0,user:e.user},null,8,["user"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),!e.loggedIn&&e.user.is_local?((0,o.wg)(),(0,o.iD)("div",T,[(0,o.Wm)(X,{user:e.user},null,8,["user"])])):(0,o.kq)("",!0),e.loggedIn&&e.isOtherUser&&(e.hasNote||e.hasNoteEditor&&e.supportsNote)?((0,o.wg)(),(0,o.j4)(ee,{key:2,user:e.user,relationship:e.relationship,editable:e.hasNoteEditor},null,8,["user","relationship","editable"])):(0,o.kq)("",!0)])],2),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",$,[!e.mergedConfig.hideUserStats&&e.switcher?((0,o.wg)(),(0,o.iD)("div",U,[(0,o._)("div",{class:"user-count",onClick:t[9]||(t[9]=(0,i.iM)((function(t){return e.setProfileView("statuses")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.statuses")),1),(0,o._)("span",null,[(0,o.Uk)((0,r.zw)(e.user.statuses_count)+" ",1),M])]),(0,o._)("div",{class:"user-count",onClick:t[10]||(t[10]=(0,i.iM)((function(t){return e.setProfileView("friends")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.followees")),1),(0,o._)("span",null,(0,r.zw)(e.hideFollowsCount?e.$t("user_card.hidden"):e.user.friends_count),1)]),(0,o._)("div",{class:"user-count",onClick:t[11]||(t[11]=(0,i.iM)((function(t){return e.setProfileView("followers")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.followers")),1),(0,o._)("span",null,(0,r.zw)(e.hideFollowersCount?e.$t("user_card.hidden"):e.user.followers_count),1)])])):(0,o.kq)("",!0),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(B,{key:1,class:"user-card-bio",html:e.user.description_html,emoji:e.user.emoji,"handle-links":!0},null,8,["html","emoji"]))])),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmMute?((0,o.wg)(),(0,o.j4)(ne,{key:0,title:e.$t("user_card.mute_confirm_title"),"confirm-text":e.$t("user_card.mute_confirm_accept_button"),"cancel-text":e.$t("user_card.mute_confirm_cancel_button"),onAccepted:e.doMuteUser,onCancelled:e.hideConfirmMute},{default:(0,o.w5)((function(){return[(0,o.Wm)(te,{keypath:"user_card.mute_confirm",tag:"div"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,A)]})),_:1}),(0,o._)("div",L,[(0,o._)("label",null,(0,r.zw)(e.$t("user_card.mute_duration_prompt")),1),(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":t[12]||(t[12]=function(t){return e.muteExpiryAmount=t}),type:"number",class:"expiry-amount hide-number-spinner",min:0},null,512),[[i.nr,e.muteExpiryAmount]]),(0,o.Wm)(K,{modelValue:e.muteExpiryUnit,"onUpdate:modelValue":t[13]||(t[13]=function(t){return e.muteExpiryUnit=t}),unstyled:"true",class:"expiry-unit"},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.muteExpiryUnits,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,r.zw)(e.$t("time.".concat(t,"_short"),[""])),9,E)})),128))]})),_:1},8,["modelValue"])])]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))],2)}]])},12061:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(66252),r=n(3577),i=n(42262),s=n(4493);const a={props:{user:Object,at:{type:Boolean,default:!0}},components:{UnicodeDomainIndicator:i.Z},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},c=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var c=(0,o.up)("UnicodeDomainIndicator"),l=(0,o.up)("router-link");return(0,o.wg)(),(0,o.j4)(l,{title:e.user.screen_name_ui,to:e.userProfileLink(e.user)},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.at?"@":"")+(0,r.zw)(e.user.screen_name_ui),1),(0,o.Wm)(c,{user:e.user},null,8,["user"])]})),_:1},8,["title","to"])}]])},22588:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var o=n(66252);const r={name:"UserPopover",props:["userId","overlayCenters","disabled","overlayCentersSelector"],components:{UserCard:n(20392).Z,Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,91447))}))},computed:{userPopoverAvatarAction:function(){return this.$store.getters.mergedConfig.userPopoverAvatarAction},userPopoverOverlay:function(){return this.$store.getters.mergedConfig.userPopoverOverlay}}},i=(0,n(83744).Z)(r,[["render",function(e,t,n,r,i,s){var a=(0,o.up)("UserCard"),c=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(c,{trigger:"click","popover-class":"popover-default user-popover","overlay-centers-selector":e.overlayCentersSelector||".user-info .Avatar","overlay-centers":e.overlayCenters&&e.userPopoverOverlay,disabled:e.disabled},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(t){var n=t.close;return[(0,o.Wm)(a,{class:"user-popover","user-id":e.userId,"hide-bio":!0,"avatar-action":"close"==e.userPopoverAvatarAction?n:e.userPopoverAvatarAction,"on-close":n},null,8,["user-id","avatar-action","on-close"])]})),_:3},8,["overlay-centers-selector","overlay-centers","disabled"])}]])},34133:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=["src","loop","controls","alt","title"];const i={props:["attachment","controls"],data:function(){return{blocksSuspend:!1,hasAudio:!0}},computed:{loopVideo:function(){return this.$store.getters.mergedConfig.loopVideoSilentOnly?!this.hasAudio:this.$store.getters.mergedConfig.loopVideo}},methods:{onPlaying:function(e){this.setHasAudio(e),this.loopVideo?this.$emit("play",{looping:!0}):this.$emit("play")},onPaused:function(e){this.$emit("pause")},setHasAudio:function(e){var t=e.srcElement||e.target;this.hasAudio&&(void 0!==t.webkitAudioDecodedByteCount&&t.webkitAudioDecodedByteCount>0||void 0!==t.mozHasAudio&&t.mozHasAudio||void 0!==t.audioTracks&&t.audioTracks.length>0||(this.hasAudio=!1))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("video",{class:"video",preload:"metadata",src:e.attachment.url,loop:e.loopVideo,controls:e.controls,alt:e.attachment.description,title:e.attachment.description,playsinline:"",onPlaying:t[0]||(t[0]=function(){return e.onPlaying&&e.onPlaying.apply(e,arguments)}),onPause:t[1]||(t[1]=function(){return e.onPaused&&e.onPaused.apply(e,arguments)})},null,40,r)}]])},27650:(e,t,n)=>{var o={"./ar.json":[36224,7808],"./ca.json":[49394,6234],"./cs.json":[87436,7433],"./de.json":[25195,9459],"./en.json":[88797],"./eo.json":[97898,4646],"./es.json":[98559,3968],"./et.json":[13230,4451],"./eu.json":[84826,4542],"./fa.json":[52006,2953],"./fi.json":[70823,9738],"./fr.json":[61341,3746],"./ga.json":[41647,830],"./he.json":[92215,379],"./hu.json":[95028,5494],"./id.json":[62263,2513],"./it.json":[2533,1159],"./ja_easy.json":[8439,8714],"./ja_pedantic.json":[22838,325],"./ko.json":[10707,9670],"./nb.json":[72358,7845],"./nl.json":[49922,6256],"./oc.json":[47297,617],"./pl.json":[82098,5571],"./pt.json":[94465,4047],"./ro.json":[64367,6342],"./ru.json":[73289,5964],"./sk.json":[31478,1547],"./te.json":[32781,2044],"./uk.json":[8411,5253],"./vi.json":[6294,4975],"./zh.json":[4425,5929],"./zh_Hant.json":[37644,6544]};function r(e){if(!n.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],r=t[0];return Promise.all(t.slice(1).map(n.e)).then((()=>n(r)))}r.keys=()=>Object.keys(o),r.id=27650,e.exports=r},31934:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology.f9d5180.png"},95326:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology_fox.038b0bb.png"},68789:e=>{"use strict";e.exports="data:image/png;base64,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"},43011:e=>{"use strict";e.exports="data:image/png;base64,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"}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=i,e=[],a.O=(t,n,o,r)=>{if(!n){var i=1/0;for(u=0;u<e.length;u++){for(var[n,o,r]=e[u],s=!0,c=0;c<n.length;c++)(!1&r||i>=r)&&Object.keys(a.O).every((e=>a.O[e](n[c])))?n.splice(c--,1):(s=!1,r<i&&(i=r));if(s){e.splice(u--,1);var l=o();void 0!==l&&(t=l)}}return t}r=r||0;for(var u=e.length;u>0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[n,o,r]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var r=Object.create(null);a.r(r);var i={};t=t||[null,n({}),n([]),n(n)];for(var s=2&o&&e;"object"==typeof s&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>i[t]=()=>e[t]));return i.default=()=>e,a.d(r,i),r},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>"static/js/"+({50:"emoji-annotations/en_GB-json",227:"emoji-annotations/ha-json",278:"emoji-annotations/kn-json",313:"emoji-annotations/tg-json",325:"i18n/ja_pedantic-json",346:"emoji-annotations/rw-json",379:"i18n/he-json",420:"emoji-annotations/fi-json",457:"emoji-annotations/zh-json",577:"emoji-annotations/en_001-json",617:"i18n/oc-json",625:"emoji-annotations/so-json",678:"emoji-annotations/ps-json",786:"emoji-annotations/xh-json",830:"i18n/ga-json",1012:"emoji-annotations/or-json",1044:"emoji-annotations/zh_Hant_HK-json",1056:"emoji-annotations/uz-json",1095:"emoji-annotations/pl-json",1159:"i18n/it-json",1162:"emoji-annotations/ccp-json",1236:"emoji-annotations/fil-json",1290:"emoji-annotations/ja-json",1404:"emoji-annotations/km-json",1452:"emoji-annotations/yue-json",1546:"emoji-annotations/pt_PT-json",1547:"i18n/sk-json",1553:"emoji-annotations/sl-json",1584:"emoji-annotations/to-json",1596:"emoji-annotations/da-json",1613:"emoji-annotations/mai-json",1780:"emoji-annotations/tk-json",1790:"emoji-annotations/dsb-json",1821:"emoji-annotations/fr_CA-json",1911:"emoji-annotations/mr-json",1959:"emoji-annotations/su-json",2044:"i18n/te-json",2223:"emoji-annotations/fr-json",2243:"emoji-annotations/sa-json",2342:"emoji-annotations/az-json",2350:"emoji-annotations/sk-json",2397:"emoji-annotations/kl-json",2479:"emoji-annotations/jv-json",2513:"i18n/id-json",2569:"emoji-annotations/tt-json",2599:"emoji-annotations/kok-json",2656:"emoji-annotations/ckb-json",2685:"emoji-annotations/ml-json",2699:"emoji-annotations/es_MX-json",2767:"emoji-annotations/zh_Hant-json",2861:"emoji-annotations/hr-json",2873:"emoji-annotations/kk-json",2874:"emoji-annotations/sc-json",2883:"emoji-annotations/ku-json",2953:"i18n/fa-json",2966:"emoji-annotations/ko-json",2992:"emoji-annotations/eu-json",3056:"emoji-annotations/hi_Latn-json",3241:"emoji-annotations/sv-json",3276:"emoji-annotations/et-json",3313:"emoji-annotations/es_US-json",3377:"emoji-annotations/as-json",3568:"emoji-annotations/ti-json",3687:"emoji",3746:"i18n/fr-json",3887:"emoji-annotations/sr-json",3951:"emoji-annotations/th-json",3968:"i18n/es-json",3974:"emoji-annotations/bg-json",3994:"emoji-annotations/sw_KE-json",4047:"i18n/pt-json",4209:"emoji-annotations/doi-json",4354:"emoji-annotations/si-json",4368:"emoji-annotations/sq-json",4424:"emoji-annotations/yue_Hans-json",4451:"i18n/et-json",4542:"i18n/eu-json",4571:"emoji-annotations/ga-json",4646:"i18n/eo-json",4691:"emoji-annotations/ca-json",4710:"emoji-annotations/cs-json",4718:"emoji-annotations/mn-json",4770:"emoji-annotations/lb-json",4785:"emoji-annotations/ky-json",4786:"emoji-annotations/te-json",4879:"emoji-annotations/en_CA-json",4902:"emoji-annotations/hu-json",4975:"i18n/vi-json",5041:"emoji-annotations/pt-json",5104:"emoji-annotations/pcm-json",5115:"emoji-annotations/sr_Latn_BA-json",5119:"emoji-annotations/am-json",5224:"emoji-annotations/vi-json",5253:"i18n/uk-json",5304:"emoji-annotations/ha_NE-json",5401:"emoji-annotations/mni-json",5494:"i18n/hu-json",5521:"emoji-annotations/fa-json",5548:"emoji-annotations/he-json",5571:"i18n/pl-json",5728:"emoji-annotations/en-json",5887:"emoji-annotations/rm-json",5929:"i18n/zh-json",5964:"i18n/ru-json",5968:"emoji-annotations/hi-json",6060:"emoji-annotations/sr_Cyrl_BA-json",6068:"emoji-annotations/ka-json",6116:"emoji-annotations/gd-json",6126:"emoji-annotations/gl-json",6148:"emoji-annotations/br-json",6226:"emoji-annotations/de-json",6234:"i18n/ca-json",6256:"i18n/nl-json",6272:"emoji-annotations/cy-json",6342:"i18n/ro-json",6344:"emoji-annotations/hy-json",6355:"emoji-annotations/af-json",6544:"i18n/zh_Hant-json",6701:"emoji-annotations/mi-json",6773:"emoji-annotations/nl-json",6790:"emoji-annotations/my-json",6797:"emoji-annotations/ur-json",6826:"emoji-annotations/sd-json",6831:"emoji-annotations/es-json",6869:"emoji-annotations/chr-json",6936:"emoji-annotations/ia-json",6946:"emoji-annotations/pa-json",7164:"emoji-annotations/de_CH-json",7169:"emoji-annotations/lt-json",7261:"emoji-annotations/gu-json",7300:"emoji-annotations/is-json",7303:"emoji-annotations/wo-json",7304:"emoji-annotations/be-json",7360:"emoji-annotations/ar_SA-json",7433:"i18n/cs-json",7464:"emoji-annotations/lo-json",7569:"emoji-annotations/ast-json",7585:"emoji-annotations/sw-json",7808:"i18n/ar-json",7845:"i18n/nb-json",7855:"emoji-annotations/sat-json",7879:"emoji-annotations/el-json",7897:"emoji-annotations/ta-json",8015:"emoji-annotations/hsb-json",8031:"emoji-annotations/qu-json",8134:"emoji-annotations/bs-json",8395:"emoji-annotations/ru-json",8681:"emoji-annotations/sr_Latn-json",8714:"i18n/ja_easy-json",8732:"emoji-annotations/yo-json",8873:"emoji-annotations/es_419-json",8898:"emoji-annotations/lv-json",8970:"emoji-annotations/it-json",8988:"emoji-annotations/en_IN-json",8995:"emoji-annotations/fo-json",9064:"emoji-annotations/bn-json",9319:"emoji-annotations/zu-json",9360:"emoji-annotations/en_AU-json",9377:"emoji-annotations/ne-json",9399:"emoji-annotations/mt-json",9414:"emoji-annotations/nn-json",9459:"i18n/de-json",9465:"emoji-annotations/id-json",9670:"i18n/ko-json",9738:"i18n/fi-json",9757:"emoji-annotations/ug-json",9780:"emoji-annotations/kab-json",9790:"emoji-annotations/ceb-json",9864:"emoji-annotations/ro-json",9871:"emoji-annotations/uk-json",9873:"emoji-annotations/ar-json",9895:"emoji-annotations/ig-json",9921:"emoji-annotations/mk-json",9924:"emoji-annotations/ms-json",9926:"emoji-annotations/yo_BJ-json",9978:"emoji-annotations/tr-json",9979:"emoji-annotations/no-json",9994:"emoji-annotations/pa_Arab-json"}[e]||e)+"."+{48:"d7e479b200a6c89c4958",50:"bd687f904492facc81d1",159:"3a9274574f1e33801c4a",227:"2a08912b38925c10f970",278:"efdac8ac0cb00991ba1e",313:"9647f559a4477d7d8e96",325:"b52fa70f0bf89ae01cfb",346:"031838c5374676191131",379:"03c5d271a4034de06e6f",420:"0f254bb4b0faaba4abcc",457:"e42a28127d5c1aff6c85",577:"72d8c47269350f59aa9f",617:"4f52bf1b6e3213acc33c",625:"f75abd16637c8924c075",678:"a0d9eea5b81bcad11e64",786:"21e88c05ad3113dfc7f2",830:"3f1981817977a16f1d7e",1012:"b007c2f6f92dcc95efac",1044:"7eee03c705347a21c612",1056:"ac43f4c54d4587324a20",1095:"e9e8f1ed84dc6c169516",1159:"99a21d5c98376af17141",1162:"02836537ffe2b02291cb",1236:"4fca833f178d1b889b69",1290:"0bd51f8c40c106355b0e",1404:"9bc922b2e0faa64b4c53",1452:"15102c0ddfdf19bdfb4c",1546:"c381b13e323f91b0e6b3",1547:"d8d0eba80f94e6f55145",1553:"a40c5548da34fce6f1d0",1584:"50ac37d101caaf592c94",1596:"8d074e27df71edafc543",1613:"302386b3358f4d34f9c8",1780:"23a9a6229829921704ad",1790:"7635686ffd8d62264466",1821:"59ed6b59e2ca68707292",1911:"cb0a87d9aabf8a52161d",1959:"daff15251020cbecea7d",2044:"ce6db28261b2f824064f",2223:"da49ed0d1a6622fe1c67",2243:"21b06234a08c7469ccb4",2342:"9a32f2941d9c4d1f834c",2350:"5d96bdb4da82655d0314",2397:"87ab8661b4bdecd09faf",2479:"1c8d5ffcff22b46b6214",2513:"3e42564ce7a3a847ecb0",2569:"4c089389ba9983ec8ef7",2599:"116e4f72db3bfb846233",2656:"13dc83db1e15aa76051a",2685:"3f2902a84240faff1b48",2699:"ee359d4b611fdb1aeb33",2767:"9cbb765c181d443828a9",2861:"fe847ade1f18a60e513c",2873:"a20b59d47bdfe99786ad",2874:"c84c9c47d2e104c43e4c",2883:"2173ed87f8d7372ee209",2953:"a19100f6a5a9431e2adb",2966:"d175900fe48f48ce87c8",2992:"931b429f5fcc141549a5",3056:"3cb73c456f31261f1908",3241:"8b0374cbca3a77519876",3276:"c42e3f186a55ecb061cd",3313:"280bdb036dfd651d079a",3377:"34cf67edc1cecd195738",3568:"5b173bd33bb960be805b",3687:"33eab91b64f59431137d",3746:"36ef21ccb1203d3e65ae",3887:"e29a20e59a708df0c6a8",3951:"34709bae223bb9d2587c",3968:"4a302899a65e1f67d8a2",3974:"7c69c52572a7bf87e1db",3994:"f3563cbeac1c158563d5",4047:"3fc5593e030268bcd291",4209:"7841c3f3ceb4e3da0bd1",4354:"841b356da03623c10dbf",4368:"bcf154ed8a6138aa089c",4424:"cc60bb10d32fab3d8207",4451:"580b101d6bb83a8aee75",4542:"d2eab39b0427995fc314",4571:"cb3f9e613a8c445aea23",4646:"d81690d5be30b23e516b",4691:"ce029e860b10b242c6a5",4710:"48d8bba230dc9fe6b3dc",4718:"764169f1168d0432640f",4770:"499c526f3a653618ea9b",4785:"310bda579c819eda9472",4786:"8a69a10f62cdf626244e",4879:"5de965778a6b8a5a4bb4",4902:"1faf52040deda872b416",4975:"703c1e731be6e857bbf3",5041:"2b2512ee44291bdb2ae7",5104:"eac3a5ad0b4b5b33289d",5115:"72933405032b81344754",5119:"94388548f7c18233fec3",5224:"f6a364b2add7f8c8bc67",5253:"003908af9b15becdd382",5304:"e4855d92aaccfdd6ba57",5401:"7db7f76ab1ce34e3683d",5494:"0487899ca7a7a8505ed8",5521:"819c7f263c8594ccf4fa",5548:"a3d7631f32182b0955a2",5571:"c963247822381b05579b",5728:"6c3947f7c49c3952084d",5887:"985d4934f386fd05a75c",5929:"63e4c9fe0197374a5dac",5948:"2b7b4e97487f2539eb44",5964:"b913eb7f7e9f0c642438",5968:"04bc5f73dc2169def97e",6060:"83c7c64b9696ae2339f2",6068:"567e7b051d90a37003f3",6116:"e3d0aea3725be774ad81",6126:"ce89036f0ae72224c994",6148:"c7175423d8965ed10bae",6226:"e1443c01a191af1665e1",6234:"1eb24bc001efa3c0627f",6256:"3fb9758b10c29434b613",6272:"e09dd13da5ad56530ead",6342:"3fd9977ed1c1413059ae",6344:"2d819f7faabfeba8457f",6355:"96c988285a6a2cce6246",6464:"fea96fa80a7373e4e5f8",6544:"bfa569654a5cd74767ce",6701:"9efe6f146ecd8987f80a",6773:"52f4b93b8fa5e22cb585",6790:"8e7dd1485813d15bba7e",6797:"983c02109444c883a18f",6826:"8f2a6a06dc3cf185f79d",6831:"f593b0dc2367a9d7fb30",6869:"e7e542ab5a74167dec10",6936:"8e8365e2bf41779e2beb",6946:"7d60d69762a108270669",7164:"b4a5891ea2f38d616ec0",7169:"ced4d5e70edc60127df6",7261:"8a899f364cf260376905",7300:"62e220c65215b034533d",7303:"e0d689e22cda0dd77e9a",7304:"f92f80669873a4100c69",7360:"4a6f4402931a867070f0",7433:"5eedbe9f7084c349fbe8",7464:"ecb06d61465a355b8157",7569:"7e4da8cb7e539c19a9b9",7585:"d5f350641b9cbcc0e126",7808:"d09609af3224232857d6",7845:"a54af3b1f47d576ad4aa",7855:"71e92700b2aaca8e021c",7879:"b36610f2ea16d56c2314",7897:"675cc6c7607449d4a91b",8015:"438721731b4171bc6fc3",8031:"55f4df57e71076dbad9f",8134:"48ef42da1c7976cf083c",8395:"a81d0df34460837ccacc",8681:"ff27d1f455bf2afb8d70",8714:"1d5ea7e755b066ac2cdd",8732:"ea1150d6bc360dd86f2e",8873:"d81991295392b6ed83bb",8898:"5600c2eb6d59fa0aa2e2",8970:"9c1758f4fd3391f7f61a",8988:"002faa48c09121928fca",8995:"9b060e8009b3a8be4597",9064:"657aac057f36ad06c58d",9114:"e761a1c6846fea99aaf1",9319:"e0cb7cd3890583fd0f6d",9360:"33aac9bbd887273a34b1",9377:"a0118dca2096a101b8e8",9399:"3ddf7dbc114adf90c500",9414:"7293cd5d7205681cf48c",9459:"bfa48615ac92f87ff37a",9465:"55f83c46d753b0b69330",9670:"4bd28b26a7390a09afc2",9738:"d1934c18f12d80493ab1",9757:"bf768bd32e9ff02b0a8a",9780:"1a2de4774f4ddc2b51dd",9790:"9db0336f168aa77ee395",9864:"cb62f86ce78c94d1e813",9871:"af110c8eef232638fc4d",9873:"5527466d349f2954d49b",9895:"f19fa5fe3582463ba73c",9921:"a254cabb8570419cc426",9924:"272ee4735aabc37015dd",9926:"650318c25fe4da92bad8",9978:"6462e8cfd5006cf5b6cf",9979:"22bdbbc77cc3c14ada58",9994:"5ae021308b1c5f6dd8a7"}[e]+".js",a.miniCssF=e=>"static/css/"+e+"."+{159:"1d523a00378ebd68c5b3",5948:"06d2a0d84620cba6a4fb",6464:"169260b661120cc50815",9114:"8def3b2b7fe70b3b3712"}[e]+".css",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},r="pleroma_fe:",a.l=(e,t,n,i)=>{if(o[e])o[e].push(t);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+n){s=d;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.setAttribute("data-webpack",r+n),s.src=e),o[e]=[t];var p=(t,n)=>{s.onerror=s.onload=null,clearTimeout(m);var r=o[e];if(delete o[e],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach((e=>e(n))),t)return t(n)},m=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),c&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/",(()=>{if("undefined"!=typeof document){var e={2143:0};a.f.miniCss=(t,n)=>{e[t]?n.push(e[t]):0!==e[t]&&{159:1,5948:1,6464:1,9114:1}[t]&&n.push(e[t]=(e=>new Promise(((t,n)=>{var o=a.miniCssF(e),r=a.p+o;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),o=0;o<n.length;o++){var r=(s=n[o]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(r===e||r===t))return s}var i=document.getElementsByTagName("style");for(o=0;o<i.length;o++){var s;if((r=(s=i[o]).getAttribute("data-href"))===e||r===t)return s}})(o,r))return t();((e,t,n,o,r)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=n=>{if(i.onerror=i.onload=null,"load"===n.type)o();else{var s=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.href||t,c=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");c.code="CSS_CHUNK_LOAD_FAILED",c.type=s,c.request=a,i.parentNode.removeChild(i),r(c)}},i.href=t,document.head.appendChild(i)})(e,r,0,t,n)})))(t).then((()=>{e[t]=0}),(n=>{throw delete e[t],n})))}}})(),(()=>{var e={2143:0};a.f.j=(t,n)=>{var o=a.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var r=new Promise(((n,r)=>o=e[t]=[n,r]));n.push(o[2]=r);var i=a.p+a.u(t),s=new Error;a.l(i,(n=>{if(a.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var r=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+r+": "+i+")",s.name="ChunkLoadError",s.type=r,s.request=i,o[1](s)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,n)=>{var o,r,[i,s,c]=n,l=0;if(i.some((t=>0!==e[t]))){for(o in s)a.o(s,o)&&(a.m[o]=s[o]);if(c)var u=c(a)}for(t&&t(n);l<i.length;l++)r=i[l],a.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return a.O(u)},n=self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var c=a.O(void 0,[2724],(()=>a(43002)));c=a.O(c)})();
+//# sourceMappingURL=app.8d2126d35dba9482db51.js.map \ No newline at end of file
diff --git a/priv/static/static/js/app.8d2126d35dba9482db51.js.map b/priv/static/static/js/app.8d2126d35dba9482db51.js.map
new file mode 100644
index 000000000..3870add70
--- /dev/null
+++ b/priv/static/static/js/app.8d2126d35dba9482db51.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/app.8d2126d35dba9482db51.js","mappings":"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,CACT,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,aAAc,CACb,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,gBAAiB,CAChB,MACA,KAED,eAAgB,CACf,KACA,MAED,eAAgB,CACf,KACA,MAED,eAAgB,CACf,MACA,IAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,gBAAiB,CAChB,MACA,MAED,eAAgB,CACf,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,eAAgB,CACf,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,oBAAqB,CACpB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,YAAa,CACZ,MACA,MAED,YA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,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GAAW,MCFzrW1vI,EAAoB2vI,SAAYD,GAExB,cAAgBA,EAAU,IAAM,CAAC,IAAM,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GAAW,OCH5K1vI,EAAoBi0F,EAAI,WACvB,GAA0B,iBAAf27C,WAAyB,OAAOA,WAC3C,IACC,OAAO9oI,MAAQ,IAAI4G,SAAS,cAAb,EAGhB,CAFE,MAAOrN,GACR,GAAsB,iBAAX6G,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBlH,EAAoBC,EAAI,CAACohB,EAAKq5C,IAAU95D,OAAOiiC,UAAU5d,eAAelW,KAAKsS,EAAKq5C,G9cA9E17D,EAAa,CAAC,EACdC,EAAoB,cAExBe,EAAoBkN,EAAI,CAAC5G,EAAKupI,EAAM1hI,EAAKuhI,KACxC,GAAG1wI,EAAWsH,GAAQtH,EAAWsH,GAAKH,KAAK0pI,OAA3C,CACA,IAAIxtB,EAAQytB,EACZ,QAAWzkI,IAAR8C,EAEF,IADA,IAAI4hI,EAAUp8H,SAASq8H,qBAAqB,UACpClqI,EAAI,EAAGA,EAAIiqI,EAAQ5tI,OAAQ2D,IAAK,CACvC,IAAI8d,EAAImsH,EAAQjqI,GAChB,GAAG8d,EAAEqsH,aAAa,QAAU3pI,GAAOsd,EAAEqsH,aAAa,iBAAmBhxI,EAAoBkP,EAAK,CAAEk0G,EAASz+F,EAAG,KAAO,CACpH,CAEGy+F,IACHytB,GAAa,GACbztB,EAAS1uG,SAAS6oF,cAAc,WAEzB0zC,QAAU,QACjB7tB,EAAOj/G,QAAU,IACbpD,EAAoBmwI,IACvB9tB,EAAO+tB,aAAa,QAASpwI,EAAoBmwI,IAElD9tB,EAAO+tB,aAAa,eAAgBnxI,EAAoBkP,GACxDk0G,EAAOtiE,IAAMz5C,GAEdtH,EAAWsH,GAAO,CAACupI,GACnB,IAAIQ,EAAmB,CAAC10C,EAAM/vF,KAE7By2G,EAAOC,QAAUD,EAAOrO,OAAS,KACjCrwG,aAAaP,GACb,IAAIktI,EAAUtxI,EAAWsH,GAIzB,UAHOtH,EAAWsH,GAClB+7G,EAAOpzC,YAAcozC,EAAOpzC,WAAWshE,YAAYluB,GACnDiuB,GAAWA,EAAQx0H,SAAS8yH,GAAQA,EAAGhjI,KACpC+vF,EAAM,OAAOA,EAAK/vF,EAAM,EAExBxI,EAAUK,WAAW4sI,EAAiBv5C,KAAK,UAAMzrF,EAAW,CAAE7E,KAAM,UAAWiB,OAAQ46G,IAAW,MACtGA,EAAOC,QAAU+tB,EAAiBv5C,KAAK,KAAMurB,EAAOC,SACpDD,EAAOrO,OAASq8B,EAAiBv5C,KAAK,KAAMurB,EAAOrO,QACnD87B,GAAcn8H,SAAS8sF,KAAKE,YAAY0hB,EAnCkB,CAmCX,E+ctChDriH,EAAoB0oB,EAAK5nB,IACH,oBAAX0vI,QAA0BA,OAAOC,aAC1C7vI,OAAO2uI,eAAezuI,EAAS0vI,OAAOC,YAAa,CAAE/9H,MAAO,WAE7D9R,OAAO2uI,eAAezuI,EAAS,aAAc,CAAE4R,OAAO,GAAO,ECL9D1S,EAAoB0wI,IAAO7vI,IAC1BA,EAAOyzC,MAAQ,GACVzzC,EAAO4J,WAAU5J,EAAO4J,SAAW,IACjC5J,GCHRb,EAAoBo9H,EAAI,I,MCAxB,GAAwB,oBAAbzpH,SAAX,CACA,IAsDIg9H,EAAqB,CACxB,KAAM,GAGP3wI,EAAoByvI,EAAEmB,QAAU,CAAClB,EAAS5qC,KAEtC6rC,EAAmBjB,GAAU5qC,EAAS3+F,KAAKwqI,EAAmBjB,IACzB,IAAhCiB,EAAmBjB,IAFX,CAAC,IAAM,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,GAEKA,IACtD5qC,EAAS3+F,KAAKwqI,EAAmBjB,GAjBd,CAACA,GACd,IAAIxvI,SAAQ,CAACC,EAASqD,KAC5B,IAAI+D,EAAOvH,EAAoB2vI,SAASD,GACpCmB,EAAW7wI,EAAoBo9H,EAAI71H,EACvC,GAlBmB,EAACA,EAAMspI,KAE3B,IADA,IAAIC,EAAmBn9H,SAASq8H,qBAAqB,QAC7ClqI,EAAI,EAAGA,EAAIgrI,EAAiB3uI,OAAQ2D,IAAK,CAChD,IACIirI,GADAtsI,EAAMqsI,EAAiBhrI,IACRmqI,aAAa,cAAgBxrI,EAAIwrI,aAAa,QACjE,GAAe,eAAZxrI,EAAIgH,MAAyBslI,IAAaxpI,GAAQwpI,IAAaF,GAAW,OAAOpsI,CACrF,CACA,IAAIusI,EAAoBr9H,SAASq8H,qBAAqB,SACtD,IAAQlqI,EAAI,EAAGA,EAAIkrI,EAAkB7uI,OAAQ2D,IAAK,CACjD,IAAIrB,EAEJ,IADIssI,GADAtsI,EAAMusI,EAAkBlrI,IACTmqI,aAAa,gBAChB1oI,GAAQwpI,IAAaF,EAAU,OAAOpsI,CACvD,GAMIwsI,CAAe1pI,EAAMspI,GAAW,OAAO1wI,IAjDrB,EAACuvI,EAASmB,EAAUK,EAAQ/wI,EAASqD,KAC3D,IAAI2tI,EAAUx9H,SAAS6oF,cAAc,QAErC20C,EAAQ1lI,IAAM,aACd0lI,EAAQ3qI,KAAO,WAiBf2qI,EAAQ7uB,QAAU6uB,EAAQn9B,OAhBJpoG,IAGrB,GADAulI,EAAQ7uB,QAAU6uB,EAAQn9B,OAAS,KAChB,SAAfpoG,EAAMpF,KACTrG,QACM,CACN,IAAIixI,EAAYxlI,IAAyB,SAAfA,EAAMpF,KAAkB,UAAYoF,EAAMpF,MAChE6qI,EAAWzlI,GAASA,EAAMnE,QAAUmE,EAAMnE,OAAOF,MAAQspI,EACzD1+G,EAAM,IAAI7xB,MAAM,qBAAuBovI,EAAU,cAAgB2B,EAAW,KAChFl/G,EAAI5xB,KAAO,wBACX4xB,EAAI3rB,KAAO4qI,EACXj/G,EAAI8N,QAAUoxG,EACdF,EAAQliE,WAAWshE,YAAYY,GAC/B3tI,EAAO2uB,EACR,GAGDg/G,EAAQ5pI,KAAOspI,EAKdl9H,SAAS8sF,KAAKE,YAAYwwC,EAEb,EAqBbG,CAAiB5B,EAASmB,EAAU,EAAM1wI,EAASqD,EAAO,IAYd+tI,CAAe7B,GAAStvI,MAAK,KACxEuwI,EAAmBjB,GAAW,CAAC,IAC5BrvI,IAEH,aADOswI,EAAmBjB,GACpBrvI,CAAC,IAET,CArE0C,C,WCK3C,IAAImxI,EAAkB,CACrB,KAAM,GAGPxxI,EAAoByvI,EAAE7sG,EAAI,CAAC8sG,EAAS5qC,KAElC,IAAI2sC,EAAqBzxI,EAAoBC,EAAEuxI,EAAiB9B,GAAW8B,EAAgB9B,QAAWrkI,EACtG,GAA0B,IAAvBomI,EAGF,GAAGA,EACF3sC,EAAS3+F,KAAKsrI,EAAmB,QAC3B,CAGL,IAAIrxC,EAAU,IAAIlgG,SAAQ,CAACC,EAASqD,IAAYiuI,EAAqBD,EAAgB9B,GAAW,CAACvvI,EAASqD,KAC1GshG,EAAS3+F,KAAKsrI,EAAmB,GAAKrxC,GAGtC,IAAI95F,EAAMtG,EAAoBo9H,EAAIp9H,EAAoBurB,EAAEmkH,GAEpDr9H,EAAQ,IAAI/R,MAgBhBN,EAAoBkN,EAAE5G,GAfFsF,IACnB,GAAG5L,EAAoBC,EAAEuxI,EAAiB9B,KAEf,KAD1B+B,EAAqBD,EAAgB9B,MACR8B,EAAgB9B,QAAWrkI,GACrDomI,GAAoB,CACtB,IAAIL,EAAYxlI,IAAyB,SAAfA,EAAMpF,KAAkB,UAAYoF,EAAMpF,MAChE6gI,EAAUz7H,GAASA,EAAMnE,QAAUmE,EAAMnE,OAAOs4C,IACpD1tC,EAAM2b,QAAU,iBAAmB0hH,EAAU,cAAgB0B,EAAY,KAAO/J,EAAU,IAC1Fh1H,EAAM7P,KAAO,iBACb6P,EAAM7L,KAAO4qI,EACb/+H,EAAM4tB,QAAUonG,EAChBoK,EAAmB,GAAGp/H,EACvB,CACD,GAEwC,SAAWq9H,EAASA,EAE/D,CACD,EAWF1vI,EAAoB0uI,EAAE9rG,EAAK8sG,GAA0C,IAA7B8B,EAAgB9B,GAGxD,IAAIgC,EAAuB,CAACC,EAA4B5wI,KACvD,IAGIwtI,EAAUmB,GAHTf,EAAUiD,EAAa1/G,GAAWnxB,EAGhB+E,EAAI,EAC3B,GAAG6oI,EAAS1jI,MAAMxK,GAAgC,IAAxB+wI,EAAgB/wI,KAAa,CACtD,IAAI8tI,KAAYqD,EACZ5xI,EAAoBC,EAAE2xI,EAAarD,KACrCvuI,EAAoBouC,EAAEmgG,GAAYqD,EAAYrD,IAGhD,GAAGr8G,EAAS,IAAIxtB,EAASwtB,EAAQlyB,EAClC,CAEA,IADG2xI,GAA4BA,EAA2B5wI,GACrD+E,EAAI6oI,EAASxsI,OAAQ2D,IACzB4pI,EAAUf,EAAS7oI,GAChB9F,EAAoBC,EAAEuxI,EAAiB9B,IAAY8B,EAAgB9B,IACrE8B,EAAgB9B,GAAS,KAE1B8B,EAAgB9B,GAAW,EAE5B,OAAO1vI,EAAoB0uI,EAAEhqI,EAAO,EAGjCmtI,EAAqBxiB,KAA6B,uBAAIA,KAA6B,wBAAK,GAC5FwiB,EAAmB/1H,QAAQ41H,EAAqB56C,KAAK,KAAM,IAC3D+6C,EAAmB1rI,KAAOurI,EAAqB56C,KAAK,KAAM+6C,EAAmB1rI,KAAK2wF,KAAK+6C,G,KClFvF,IAAIC,EAAsB9xI,EAAoB0uI,OAAErjI,EAAW,CAAC,OAAO,IAAOrL,EAAoB,SAC9F8xI,EAAsB9xI,EAAoB0uI,EAAEoD,E","sources":["webpack://pleroma_fe/webpack/runtime/chunk loaded","webpack://pleroma_fe/webpack/runtime/create fake namespace object","webpack://pleroma_fe/webpack/runtime/load script","webpack://pleroma_fe/./src/i18n/en.json","webpack://pleroma_fe/./node_modules/@kazvmoe-infra/unicode-emoji-json/annotations/ lazy ^\\.\\/.*\\.json$ chunkName: emoji-annotations/[request] namespace object","webpack://pleroma_fe/./src/components/emoji_input/suggestor.js","webpack://pleroma_fe/./src/services/html_converter/utility.service.js","webpack://pleroma_fe/./src/services/html_converter/html_line_converter.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.js","webpack://pleroma_fe/./src/services/matcher/matcher.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue?7c0f","webpack://pleroma_fe/./src/components/rich_content/rich_content.jsx","webpack://pleroma_fe/./src/services/html_converter/html_tree_converter.service.js","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.jsx","webpack://pleroma_fe/./src/i18n/languages.js","webpack://pleroma_fe/./src/i18n/messages.js","webpack://pleroma_fe/./src/lib/event_target_polyfill.js","webpack://pleroma_fe/./src/modules/interface.js","webpack://pleroma_fe/./src/modules/instance.js","webpack://pleroma_fe/./src/modules/statuses.js","webpack://pleroma_fe/./src/modules/lists.js","webpack://pleroma_fe/./src/services/timeline_fetcher/timeline_fetcher.service.js","webpack://pleroma_fe/./src/services/follow_request_fetcher/follow_request_fetcher.service.js","webpack://pleroma_fe/./src/services/lists_fetcher/lists_fetcher.service.js","webpack://pleroma_fe/./src/services/backend_interactor_service/backend_interactor_service.js","webpack://pleroma_fe/./src/services/window_utils/window_utils.js","webpack://pleroma_fe/./src/services/new_api/oauth.js","webpack://pleroma_fe/./src/services/push/push.js","webpack://pleroma_fe/./src/modules/users.js","webpack://pleroma_fe/./src/services/chat_utils/chat_utils.js","webpack://pleroma_fe/./src/modules/api.js","webpack://pleroma_fe/./src/components/update_notification/update_notification.js","webpack://pleroma_fe/./src/modules/serverSideStorage.js","webpack://pleroma_fe/./src/modules/shout.js","webpack://pleroma_fe/./src/modules/oauth.js","webpack://pleroma_fe/./src/modules/auth_flow.js","webpack://pleroma_fe/./src/modules/media_viewer.js","webpack://pleroma_fe/./src/modules/oauth_tokens.js","webpack://pleroma_fe/./src/modules/reports.js","webpack://pleroma_fe/./src/modules/polls.js","webpack://pleroma_fe/./src/modules/postStatus.js","webpack://pleroma_fe/./src/modules/editStatus.js","webpack://pleroma_fe/./src/modules/statusHistory.js","webpack://pleroma_fe/./src/services/chat_service/chat_service.js","webpack://pleroma_fe/./src/modules/chats.js","webpack://pleroma_fe/./src/modules/announcements.js","webpack://pleroma_fe/./src/lib/persisted_state.js","webpack://pleroma_fe/./src/lib/push_notifications_plugin.js","webpack://pleroma_fe/./src/App.vue","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/login_form/login_form.js","webpack://pleroma_fe/./src/components/login_form/login_form.vue?7e2c","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue","webpack://pleroma_fe/./src/services/new_api/mfa.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue?75db","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue","webpack://pleroma_fe/./src/components/mfa_form/totp_form.js","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue?e31f","webpack://pleroma_fe/./src/components/auth_form/auth_form.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue?62d1","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation.js","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue?aa8e","webpack://pleroma_fe/./src/components/navigation/navigation_entry.js","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue?57fe","webpack://pleroma_fe/./src/components/navigation/filter.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue?5439","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.js","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue?9359","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.js","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue?ec9c","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.js","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue?b4d3","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.js","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue?e52c","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.js","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue?c79e","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.js","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue?452f","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.js","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue?6a4b","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue","webpack://pleroma_fe/./src/services/gesture_service/gesture_service.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue?cb15","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.js","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue?9f8e","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.js","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue?c115","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.js","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue?cc2d","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.js","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue?67f1","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.js","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue?d1ca","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.js","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue?6641","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.js","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue?df82","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.js","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue?03f9","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.js","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue?9c44","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.js","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue?4ee0","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.js","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue?1667","webpack://pleroma_fe/./src/App.js","webpack://pleroma_fe/./src/App.vue?3b2b","webpack://pleroma_fe/./src/components/timeline/timeline.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.js","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue?7311","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.js","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue?f71f","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.js","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue?4eaf","webpack://pleroma_fe/./src/components/conversation/conversation.js","webpack://pleroma_fe/./src/components/conversation/conversation.vue?6723","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.js","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue?96c1","webpack://pleroma_fe/./src/components/timeline/timeline.js","webpack://pleroma_fe/./src/components/timeline/timeline.vue?7060","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.js","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue?daf2","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.js","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue?9b62","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.js","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue?a3f1","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.js","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue?be7b","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.js","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue?863c","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.js","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue?2386","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue","webpack://pleroma_fe/./src/components/interactions/interactions.vue","webpack://pleroma_fe/./src/components/interactions/interactions.js","webpack://pleroma_fe/./src/components/interactions/interactions.vue?3dc7","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.js","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue?fced","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue","webpack://pleroma_fe/./src/components/chat_title/chat_title.js","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue?723f","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.js","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue?9103","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.js","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue?e65f","webpack://pleroma_fe/./src/components/chat_list/chat_list.js","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue?39cf","webpack://pleroma_fe/./src/components/chat/chat.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue?a1e2","webpack://pleroma_fe/./src/components/chat_message/chat_message.js","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue?38f9","webpack://pleroma_fe/./src/components/chat/chat_layout_utils.js","webpack://pleroma_fe/./src/components/chat/chat.js","webpack://pleroma_fe/./src/components/chat/chat.vue?0265","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.js","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue?a06d","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.js","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue?a7d5","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.jsx","webpack://pleroma_fe/./src/components/user_profile/user_profile.js","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue?c6a1","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/search/search.js","webpack://pleroma_fe/./src/components/search/search.vue?853e","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/registration/registration.js","webpack://pleroma_fe/./src/components/registration/registration.vue?5788","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.js","webpack://pleroma_fe/./src/services/new_api/password_reset.js","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue?e9fd","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.js","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.js","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue?64bb","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue?427b","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.js","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue?a7e1","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.js","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue?d712","webpack://pleroma_fe/./src/components/about/about.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.js","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue?39d2","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.js","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue?16a1","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.js","webpack://pleroma_fe/./src/components/about/about.js","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?cbb1","webpack://pleroma_fe/./src/components/about/about.vue?07c3","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.js","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue?ac33","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.js","webpack://pleroma_fe/./src/components/lists/lists.js","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue?16e6","webpack://pleroma_fe/./src/components/lists/lists.vue?7e21","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.js","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue?804f","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.js","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue?4447","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.js","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue?056b","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.js","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue?cdb9","webpack://pleroma_fe/./src/components/announcement/announcement.js","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.js","webpack://pleroma_fe/./src/components/announcement/announcement.vue?a400","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue?89ce","webpack://pleroma_fe/./src/boot/routes.js","webpack://pleroma_fe/./src/directives/body_scroll_lock.js","webpack://pleroma_fe/./src/boot/after_store.js","webpack://pleroma_fe/./src/main.js","webpack://pleroma_fe/./src/modules/config.js","webpack://pleroma_fe/./src/modules/serverSideConfig.js","webpack://pleroma_fe/./src/services/errors/errors.js","webpack://pleroma_fe/./src/modules/errors.js","webpack://pleroma_fe/./src/services/api/api.service.js","webpack://pleroma_fe/./src/services/attributes_helper/attributes_helper.service.js","webpack://pleroma_fe/./src/services/color_convert/color_convert.js","webpack://pleroma_fe/./src/services/component_utils/component_utils.js","webpack://pleroma_fe/./src/services/date_utils/date_utils.js","webpack://pleroma_fe/./src/services/desktop_notification_utils/desktop_notification_utils.js","webpack://pleroma_fe/./src/services/entity_normalizer/entity_normalizer.service.js","webpack://pleroma_fe/./src/services/favicon_service/favicon_service.js","webpack://pleroma_fe/./src/services/file_size_format/file_size_format.js","webpack://pleroma_fe/./src/services/file_type/file_type.service.js","webpack://pleroma_fe/./src/services/locale/locale.service.js","webpack://pleroma_fe/./src/services/notification_utils/notification_utils.js","webpack://pleroma_fe/./src/services/notifications_fetcher/notifications_fetcher.service.js","webpack://pleroma_fe/./src/services/offset_finder/offset_finder.service.js","webpack://pleroma_fe/./src/services/promise_interval/promise_interval.js","webpack://pleroma_fe/./src/services/status_parser/status_parser.js","webpack://pleroma_fe/./src/services/status_poster/status_poster.service.js","webpack://pleroma_fe/./src/services/style_setter/style_setter.js","webpack://pleroma_fe/./src/services/theme_data/pleromafe.js","webpack://pleroma_fe/./src/services/theme_data/theme_data.service.js","webpack://pleroma_fe/./src/services/user_highlighter/user_highlighter.js","webpack://pleroma_fe/./src/services/user_profile_link_generator/user_profile_link_generator.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue","webpack://pleroma_fe/./src/components/attachment/attachment.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue?6808","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.js","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue?171c","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.js","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue?95ff","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue?4d95","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.js","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.vue?dff7","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.js","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue?60df","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/services/completion/completion.js","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.js","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue?6411","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.js","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.vue?a18c","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.vue","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.js","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue?cc95","webpack://pleroma_fe/./src/services/ruffle_service/ruffle_service.js","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/flash/flash.js","webpack://pleroma_fe/./src/components/flash/flash.vue?8f01","webpack://pleroma_fe/./src/services/follow_manipulate/follow_manipulate.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue?fbc0","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/gallery/gallery.js","webpack://pleroma_fe/./src/components/gallery/gallery.vue?c41d","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue?f2c7","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/link-preview/link-preview.js","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue?5c9b","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/list/list.vue?b52f","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.js","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue?f0cb","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.js","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue?e8e7","webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./src/components/modal/modal.vue?8c58","webpack://pleroma_fe/./src/components/notifications/notifications.vue","webpack://pleroma_fe/./src/components/notification/notification.vue","webpack://pleroma_fe/./src/components/report/report.vue","webpack://pleroma_fe/./src/components/report/report.js","webpack://pleroma_fe/./src/components/report/report.vue?5c84","webpack://pleroma_fe/./src/components/notification/notification.js","webpack://pleroma_fe/./src/components/notification/notification.vue?17c8","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue?4a98","webpack://pleroma_fe/./src/components/notifications/notifications.js","webpack://pleroma_fe/./src/components/notifications/notifications.vue?770b","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue?50c2","webpack://pleroma_fe/./src/components/popover/popover.js","webpack://pleroma_fe/./src/components/popover/popover.vue?237b","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.js","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue?73d1","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/poll/poll_form.js","webpack://pleroma_fe/./src/components/poll/poll_form.vue?5434","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.js","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue?b98e","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue?2d10","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.js","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue?188a","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.js","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue?cbff","webpack://pleroma_fe/./src/components/select/select.js","webpack://pleroma_fe/./src/components/select/select.vue?fa00","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/status/status.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.js","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue?f8cc","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.js","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue?4c13","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.js","webpack://pleroma_fe/./src/components/react_button/react_button.vue?64d4","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.js","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue?774a","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.js","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue?2a14","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.js","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue?2f31","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.js","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue?32eb","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.js","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue?be26","webpack://pleroma_fe/./src/components/status/status.js","webpack://pleroma_fe/./src/components/status/status.vue?f274","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/poll/poll.js","webpack://pleroma_fe/./src/components/poll/poll.vue?09ad","webpack://pleroma_fe/./src/components/status_body/status_body.vue","webpack://pleroma_fe/./src/components/status_body/status_body.js","webpack://pleroma_fe/./src/components/status_body/status_body.vue?a029","webpack://pleroma_fe/./src/components/status_content/status_content.js","webpack://pleroma_fe/./src/components/status_content/status_content.vue?5b7b","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/still-image/still-image.js","webpack://pleroma_fe/./src/components/still-image/still-image.vue?7a8d","webpack://pleroma_fe/./src/components/timeago/timeago.vue","webpack://pleroma_fe/./src/components/timeago/timeago.vue?3167","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue?760a","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.js","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue?84fc","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/user_card/user_card.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.js","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue?98d7","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.js","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue?e3cb","webpack://pleroma_fe/./src/components/account_actions/account_actions.js","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue?26a0","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_note/user_note.js","webpack://pleroma_fe/./src/components/user_note/user_note.vue?302a","webpack://pleroma_fe/./src/components/user_card/user_card.js","webpack://pleroma_fe/./src/components/user_card/user_card.vue?bb36","webpack://pleroma_fe/./src/components/user_link/user_link.vue","webpack://pleroma_fe/./src/components/user_link/user_link.vue?e5f2","webpack://pleroma_fe/./src/components/user_popover/user_popover.js","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue?dfdb","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.js","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue?da03","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue","webpack://pleroma_fe/./src/i18n/ lazy ^\\.\\/.*\\.json$ include: \\.json$ chunkName: i18n/[request] namespace object","webpack://pleroma_fe/webpack/bootstrap","webpack://pleroma_fe/webpack/runtime/compat get default export","webpack://pleroma_fe/webpack/runtime/define property getters","webpack://pleroma_fe/webpack/runtime/ensure chunk","webpack://pleroma_fe/webpack/runtime/get javascript chunk filename","webpack://pleroma_fe/webpack/runtime/get mini-css chunk filename","webpack://pleroma_fe/webpack/runtime/global","webpack://pleroma_fe/webpack/runtime/hasOwnProperty shorthand","webpack://pleroma_fe/webpack/runtime/make namespace object","webpack://pleroma_fe/webpack/runtime/node module decorator","webpack://pleroma_fe/webpack/runtime/publicPath","webpack://pleroma_fe/webpack/runtime/css loading","webpack://pleroma_fe/webpack/runtime/jsonp chunk loading","webpack://pleroma_fe/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"pleroma_fe:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","export default {\n \"about\": {\n \"mrf\": {\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federation\"])},\n \"keyword\": {\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keyword policies\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"The Whole Known Network\\\" Timeline\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replace\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enabled MRF policies\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:\"])},\n \"simple\": {\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance-specific policies\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N/A\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance only accepts messages from the following instances:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will not accept messages from the following instances:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quarantine\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will send only public posts to the following instances:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"Known Network\\\" Timeline\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes these instances from \\\"Known Network\\\" timeline:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media Removal\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes media from posts on the following instances:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media force-set as sensitive\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance forces media to be set sensitive in posts on the following instances:\"])}\n }\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Staff\"])}\n },\n \"announcements\": {\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcement\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark as read\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post announcement\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your announcement content here...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start time: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"End time: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is an all-day event\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Published at \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Starts at \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ends at \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This announcement is inactive\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])}\n },\n \"domain_mute_card\": {\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Processing, you'll soon be asked to download your file\"])}\n },\n \"features_panel\": {\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma Chat\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media proxy\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope options\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text limit\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Features\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload limit\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error fetching user\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Find user\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loading…\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"An error occured: \", _interpolate(_list(0))])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please try again\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"optional\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show more\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show less\"])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Never show again\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dismiss\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verify\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Undo\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peek\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scroll to top\"])},\n \"role\": {\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderator\"])}\n },\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin item\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin item\"])},\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click to show Flash content using Ruffle (Experimental, may not work).\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note that this can be potentially dangerous since Flash content is still arbitrary code.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to load flash content, see console for details.\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted\"])}\n }\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crop picture\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save without cropping\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imported successfully.\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured while importing this file.\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in with OAuth\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log out\"])},\n \"logout_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout confirmation\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to logout?\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not logout\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in to join the discussion\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication code\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a recovery code\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a two-factor code\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery code\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor authentication\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor recovery\"])}\n }\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close media viewer\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"About\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow requests\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interactions\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct messages\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public timeline\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timeline\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home timeline\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Known Network\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmarks\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Search\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close search bar\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timelines\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Customize navigation bar\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit pinned items\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Done editing\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggle mobile sidebar\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications (there are unread ones)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close notifications\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown status, searching for it…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching notifications: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorited your status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"followed you\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wants to follow you\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older notifications\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Read!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated your status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more notifications\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrated to\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reacted with \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"submitted a report\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poll has ended\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add poll\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add option\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Option\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"votes\"])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" person voted\"]), _normalize([_interpolate(_named(\"count\")), \" people voted\"])])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" vote\"]), _normalize([_interpolate(_named(\"count\")), \" votes\"])])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vote\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll type\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Single choice\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Multiple choices\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll age\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ends in \", _interpolate(_list(0))])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ended \", _interpolate(_list(0)), \" ago\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Too few unique options in poll\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stickers\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep picker open\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for an emoji\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insert emoji\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom emoji\"])},\n \"unpacked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpacked emoji\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode emoji\"])},\n \"unicode_groups\": {\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activities\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Animals & Nature\"])},\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flags\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Food & Drink\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Objects\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People & Body\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Smileys & Emotion\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Symbols\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Travel & Places\"])}\n },\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loaded first \", _interpolate(_named(\"saneAmount\")), \" emoji, loading all emoji may cause performance issues.\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loading all \", _interpolate(_named(\"emojiAmount\")), \" emoji\"])},\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Regional indicator \", _interpolate(_named(\"letter\"))])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies.\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats and favorites\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New follows\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji Reactions\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reports\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User migrates\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older interactions\"])}\n },\n \"post_status\": {\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post new status\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your account is not \", _interpolate(_list(0)), \". Anyone can follow you to view your follower-only posts.\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"locked\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark attachments as sensitive\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media description\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Plain text\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_type_selection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post format\"])},\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subject (optional)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to all the mentioned users.\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will only be visible to the mentioned users at the beginning of the message.\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other remote instances may not support editing and unable to receive the latest version of your post.\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma does not support editing mentions or polls.\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posting\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Empty\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Can't post an empty status with no files\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to update media, try again\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to everyone\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to your followers only\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will not be visible in Public Timeline and The Whole Known Network\"])}\n },\n \"scope_notice_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close this notice\"])},\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct - post to mentioned users only\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only - post to followers only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public - post to public timelines\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted - do not post to public timelines\"])}\n }\n },\n \"registration\": {\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio (optional)\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email (optional)\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display name\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invite token\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click the image to get a new captcha\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. Lain Iwakura\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g.\\nHi, I'm Lain.\\nI’m an anime girl living in suburban Japan. You may know me from the Wired.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason to register\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance approves registrations manually.\\nLet the administration know why you want to register.\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"should be the same as password\"])},\n \"birthday_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"birthday_min_age\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"must be on or before \", _interpolate(_named(\"date\"))])}\n },\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"In which language do you want to receive emails from the server?\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday:\"])},\n \"birthday_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday (optional):\"])}\n },\n \"remote_user_resolver\": {\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote user resolver\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Searching for\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not found.\"])}\n },\n \"report\": {\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reporter:\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported user:\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported statuses:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notes:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"State:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Closed\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resolved\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select all\"])}\n },\n \"settings\": {\n \"add_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add fallback language\"])},\n \"remove_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"primary_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primary language:\"])},\n \"fallback_language\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Fallback language \", _interpolate(_named(\"index\")), \":\"])},\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App name\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show advanced\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setting is different from default\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This setting is tied to your profile and affects all sessions and clients\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your current password to confirm your identity\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts Look & Feel\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention links\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setup OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"presetting OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm & enable OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor Authentication\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Generate new recovery codes\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When you generate new recovery codes, your old codes won’t work anymore.\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery codes.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receiving backup codes…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account.\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication methods\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scan\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Using your two-factor app, scan this QR code or enter text key:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Key\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To enable two-factor authentication, enter the code from your two-factor app:\"])}\n }\n },\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show lists in navigation\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow auto-follow when following account moves\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatar\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars (notifications)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language for receiving emails from the server\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block export\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your blocks to a csv file\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block import\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing blocks\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks imported! Processing them will take a while.\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute export\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your mutes to a csv file\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute import\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing mutes\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes imported! Processing them will take a while.\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import mutes from a csv file\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account backup\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Download\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This backup is not ready yet.\"])},\n \"backup_running\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"This backup is in progress, processed \", _interpolate(_named(\"number\")), \" record.\"]), _normalize([\"This backup is in progress, processed \", _interpolate(_named(\"number\")), \" records.\"])])},\n \"backup_failed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This backup has failed.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching backup list: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create a new backup\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Added a new backup.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding a new backup: \", _interpolate(_named(\"error\"))])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is a bot account\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blue (Reply, follow)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Green (Retweet)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Orange (Favorite)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Red (Cancel)\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change email\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your email.\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email changed successfully!\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change password\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your password.\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password changed successfully!\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chat message\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse posts with subjects\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Composing\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm new password\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"confirm_dialogs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ask for confirmation when\"])},\n \"confirm_dialogs_repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeating a status\"])},\n \"confirm_dialogs_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"unfollowing a user\"])},\n \"confirm_dialogs_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"blocking a user\"])},\n \"confirm_dialogs_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"muting a user\"])},\n \"confirm_dialogs_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"deleting a status\"])},\n \"confirm_dialogs_logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"logging out\"])},\n \"confirm_dialogs_approve_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"approving a follower\"])},\n \"confirm_dialogs_deny_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"denying a follower\"])},\n \"confirm_dialogs_remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"removing a follower\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes and Blocks\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data import / export\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default visibility scope\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permanently delete your data and deactivate your account.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue deleting your account. If this persists please contact your instance administrator.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your password in the input below to confirm account deletion.\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aliases\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching aliases: \", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove this alias\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Add a new alias (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias is added.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding alias: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Move account\"])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you want to move the account somewhere else, you must go to your target account and add an alias pointing here.\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Target account (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account is moved.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error moving account: \", _interpolate(_named(\"error\"))])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow discovery of this account in search results and other services\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domains\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The recommended minimum size for avatar images is 150x150 pixels.\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pad emoji with spaces when adding from picker\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show emoji reactions on timeline\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save preset\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtering\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wordfilter\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All statuses containing these words will be muted, one per line\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Word filter and more...\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow export\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your follows to a csv file\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow import\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing followers\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows imported! Processing them will take a while.\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accent\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foreground\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"General\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in conversations\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in timeline\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide media previews\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide posts of muted users\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute bot posts\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide bot indication in posts\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted posts\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum amount of thumbnails per post (empty = no limit)\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance-specific panel\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance shoutbox\"])},\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reverse order of columns\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stretch navbar to columns width\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show floating New Post button\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance wallpaper\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preload images\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open NSFW attachments with just one click\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide post statistics (e.g. the number of favorites)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide user statistics (e.g. the number of followers)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide all filtered posts\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide word-filtered statuses\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted threads\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import blocks from a csv file\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import follows from a csv file\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load preset\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Checkboxes\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(default: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(default)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface language\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma theme. No changes to your theme were made.\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unavailable in your browser\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Links\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restrict your account to approved followers only\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop videos\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop only videos without sound (i.e. Mastodon's \\\"gifs\\\")\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Play videos in a popup frame\"])},\n \"file_export_import\": {\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings backup\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings to file\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings and theme to file\"])},\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restore settings from file\"])},\n \"errors\": {\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma settings backup. No changes were made.\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", this PleromaFE (settings ver \", _interpolate(_named(\"feMajor\")), \") is too old to handle it\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", file version is too old and not supported (min. set. ver. \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File minor version is different, some settings might not load\"])}\n }\n },\n \"profile_fields\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile metadata\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add field\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])},\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])}\n },\n \"birthday\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday\"])},\n \"show_birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show my birthday\"])}\n },\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't crop the attachment in thumbnails\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name & bio\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Profiles\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Types of notifications to show\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Migrates\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reactions\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ends of polls you voted in\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Strip rich text formatting from all posts\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No blocks\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No mutes\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show list of my favorites (people still get notified)\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who I'm following\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who's following me\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follow count\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follower count\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Admin\\\" badge in my profile\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Moderator\\\" badge in my profile\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide sensitive/NSFW media\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth tokens\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Refresh token\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valid until\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panels\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause when tab is not focused\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Presets\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile background\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile banner\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set up interface edge rounding (in pixels)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies in timeline\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all replies\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me or users I'm following\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to my follows\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to self only\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically hide New Post button (mobile)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error saving settings\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings saved\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to block\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to mute\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy scope when replying (DMs are always copied)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimize post scope selection options\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new avatar\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile background\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile banner\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset avatar\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile background\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile banner\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the avatar?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the banner?\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the background?\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show subject field\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy subject when replying\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like email: \\\"re: subject\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like mastodon: copy as is\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not copy\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation display style\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree-style\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree view\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't stick column headers to top of the screen\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show side column's scrollbars\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When there's enough space, show third column containing\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show third column at all\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications column\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Main post form and navigation\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Columns\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Column sizes\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sidebar\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow more flexible navigation in tree view\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display ancestors of the current status in faint text\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear-style\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear view\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show the \\\"other replies\\\" button\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Below statuses\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inside statuses\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum number of levels in thread to display by default\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post status content type\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark posts as sensitive by default\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause animated images until you hover on them\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically show new posts when scrolled to the top\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new posts automatically\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Users\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receive posts and notifications real-time\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use websockets (Realtime updates)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use hex color codes (#rrggbb) to customize your color theme.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can also override certain component's colors and opacity by toggling the checkbox, use \\\"Clear all\\\" button to clear all overrides.\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips/alerts\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search domains to mute\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload a photo\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"yes\"])}\n },\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Optimize timeline rendering\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display \", \"@\", \" symbol as an icon instead of text\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display mention links\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as short names (e.g. \", \"@\", \"foo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"as full names only for remote users (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as full names (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user card when clicking mention links\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar beside the link\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar next to mentions\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fade domains (e.g. \", \"@\", \"example.org in \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlight mention of you when you are mentioned\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popover avatar click action\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zoom the avatar\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close the popover\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open profile\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user popover over user avatar\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fun\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme arrows\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show (You)s\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filters\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block notifications from users who you do not follow\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide the sender and contents of push notifications\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To stop receiving notifications from a specific user, use a mute.\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking a user stops all notifications as well as unsubscribes them.\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable web push notifications\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More settings\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep colors\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep shadows\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep opacity\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep roundness\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep fonts\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"Keep\\\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear all\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear opacity\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load theme\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep as is\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Old version\"])},\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New version\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE has been upgraded, theme could look a little bit different than you remember.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in newer version of FE.\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in older version of FE.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No theme snapshot was in the file so it could look different than originally envisioned.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's theme engine upgraded after version update.\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's version rolled back.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just to be safe, theme snapshot loaded. You can try loading theme data.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For whatever reason snapshot was missing, some stuff could look different than you remember.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.\"])}\n }\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Color\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opacity\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Contrast ratio is \", _interpolate(_named(\"ratio\")), \", it \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AA guideline (minimal)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AAA guideline (recommended)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"doesn't meet any accessibility guidelines\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for large (18pt+) text\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for text\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common colors\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"See \\\"Advanced\\\" tab for more detailed control\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons, accents, badges\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Advanced\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alert background\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Warning\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neutral\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts/User bios\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Badge background\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips, menus, popovers\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notification\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Borders\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Faded text\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Underlay\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wallpaper\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll graph\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlighted elements\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pressed\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected post\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected menu item\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disabled\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggled\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tabs\"])},\n \"chat\": {\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Incoming\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Outgoing\"])},\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Border\"])}\n }\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roundness\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadow and lighting\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Component\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Override\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Shadow #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blur\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spread\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inset\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"For shadows you can also use the \", _interpolate(_list(0)), \" notation to use other color slot.\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Warning, this shadow always uses \", _interpolate(_list(0)), \" when browser supports it.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" does not support \", _interpolate(_list(1)), \" parameter and \", _interpolate(_list(2)), \" keyword.\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadows with spread > 0 will appear as if it was set to zero\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Inset shadows will be using \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in profile view)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in post display)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popups and tooltips\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (hover)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed+hover)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input field\"])}\n }\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fonts\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select font to use for elements of UI. For \\\"custom\\\" you have to enter exact font name as it appears in system.\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post text\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monospaced text in a post (rich text)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Font name\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Size (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weight (boldness)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Example error\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"A bunch of more \", _interpolate(_list(0)), \" and \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"content\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"helpful manual\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Read our \", _interpolate(_list(0)), \" to learn nothing useful!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is fine\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I have skimmed over terms and conditions\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a nice lil' link\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backend version\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Frontend version\"])}\n }\n },\n \"time\": {\n \"unit\": {\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" day\"]), _normalize([_interpolate(_list(0)), \" days\"])])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" hour\"]), _normalize([_interpolate(_list(0)), \" hours\"])])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" minute\"]), _normalize([_interpolate(_list(0)), \" minutes\"])])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" month\"]), _normalize([_interpolate(_list(0)), \" months\"])])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" second\"]), _normalize([_interpolate(_list(0)), \" seconds\"])])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" week\"]), _normalize([_interpolate(_list(0)), \" weeks\"])])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" year\"]), _normalize([_interpolate(_list(0)), \" years\"])])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])}\n },\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"in \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" ago\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"just now\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"now\"])}\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching timeline: \", _interpolate(_list(0))])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older statuses\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post is marked as followers-only or direct and cannot be repeated\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reload\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Up-to-date\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more statuses\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No statuses\"])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Realtime connection established\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Realtime connection lost: CloseEvent code \", _interpolate(_list(0))])},\n \"quick_view_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick view settings\"])},\n \"quick_filter_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick filter settings\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"repeat_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to repeat this status?\"])},\n \"repeat_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat confirmation\"])},\n \"repeat_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat\"])},\n \"repeat_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not repeat\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete status\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(last edited \", _interpolate(_named(\"time\")), \")\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin on profile\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin from profile\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pinned\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unbookmark\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this status?\"])},\n \"delete_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete confirmation\"])},\n \"delete_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"delete_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply to\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies:\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" other):\"]), _normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" others):\"])])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute conversation\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute conversation\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status unavailable\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy link to status\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"External source\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Thread muted\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", has words:\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show full subject\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide full subject\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show content\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide content\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post was deleted\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(You)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"+\", _interpolate(_named(\"number\")), \" more\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Post has \", _interpolate(_named(\"number\")), \" attachment(s)\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse attachments\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all attachments\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show in media modal\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview description (open attachment for full description)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachment\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove attachment\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stop Flash player\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment left\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment right\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open gallery\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide this thread\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show this thread\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" status in total, max depth \", _interpolate(_named(\"depth\")), \")\"]), _normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total, max depth \", _interpolate(_named(\"depth\")), \")\"])])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" status in total)\"]), _normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total)\"])])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other reply under this status\"]), _normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other replies under this status\"])])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other status)\"]), _normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other statuses)\"])])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies to this status\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status history\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve\"])},\n \"approve_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve confirmation\"])},\n \"approve_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve\"])},\n \"approve_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not approve\"])},\n \"approve_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you want to approve \", _interpolate(_named(\"user\")), \"'s follow request?\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocked!\"])},\n \"block_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block confirmation\"])},\n \"block_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to block \", _interpolate(_named(\"user\")), \"?\"])},\n \"block_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block\"])},\n \"block_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not block\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivated\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny\"])},\n \"deny_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny confirmation\"])},\n \"deny_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny\"])},\n \"deny_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not deny\"])},\n \"deny_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you want to deny \", _interpolate(_named(\"user\")), \"'s follow request?\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel request\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Request sent!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Requesting…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow\"])},\n \"unfollow_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow confirmation\"])},\n \"unfollow_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to unfollow \", _interpolate(_named(\"user\")), \"?\"])},\n \"unfollow_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow\"])},\n \"unfollow_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not unfollow\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows you!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"It's you!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Message\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muted\"])},\n \"mute_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute confirmation\"])},\n \"mute_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to mute \", _interpolate(_named(\"user\")), \"?\"])},\n \"mute_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"mute_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not mute\"])},\n \"mute_duration_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute this user for (0 for indefinite time):\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per day\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote follow\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove follower\"])},\n \"remove_follower_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove follower confirmation\"])},\n \"remove_follower_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"remove_follower_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep\"])},\n \"remove_follower_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to remove \", _interpolate(_named(\"user\")), \" from your followers?\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Report\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statuses\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subscribe\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unsubscribe\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblock\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblocking…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide repeats\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show repeats\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bot\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Born \", _interpolate(_named(\"birthday\"))])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderation\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Admin\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Admin\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Moderator\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Moderator\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivate account\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark all posts as NSFW\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove media from posts\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be unlisted\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be followers-only\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user from remote instances\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user at all\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow user posts from federating\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This will permanently delete the data from this account and deactivate it. Are you absolutely sure?\"])}\n },\n \"highlight\": {\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No highlight\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solid bg\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Striped bg\"])},\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Side stripe\"])}\n },\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(None)\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit note\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User timeline\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, this profile does not exist.\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, there was an error loading this profile.\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Reporting \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Additional comments\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The account is from another server. Send a copy of the report there as well?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Forward to \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred while processing your request.\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload media\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorite\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add Reaction\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept follow request\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject follow request\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to show post in full\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to reveal muted content\"])},\n \"autocomplete_available\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"number\")), \" result is available. Use up and down keys to navigate through them.\"]), _normalize([_interpolate(_named(\"number\")), \" results are available. Use up and down keys to navigate through them.\"])])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload failed.\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Upload failed: \", _interpolate(_list(0))])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"File too big [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again later\"])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hashtags\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" person talking\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" people talking\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No results\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more results\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more results\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your email address or username. We will send you a link to reset your password.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your email or username\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email for a link to reset your password.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Return to the home page\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have reached the limit of attempts, try again later.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset is disabled. Please contact your instance administrator.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password to log in.\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password, but password reset is disabled. Please contact your instance administrator.\"])}\n },\n \"chats\": {\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Message \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New Chat\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cannot post empty message\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this message?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when loading the chat.\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when sending the message.\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You don't have any chats yet. Start a new chat!\"])}\n },\n \"lists\": {\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New List\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List title\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search users\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete list\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit to Following\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage lists\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage list members\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for more users\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove from list\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add to list\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already in list\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Editing list \", _interpolate(_named(\"listTitle\"))])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Creating new list\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save Title\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Really delete list?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error manipulating lists: \", _interpolate(_list(0))])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Audio\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Video\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Today\"])}\n },\n \"update\": {\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please bear with us\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"We haven't had a release in a while, so things might look and feel different than what you're used to.\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Please report any issues and bugs on \", _interpolate(_named(\"pleromaGitlab\")), \", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE.\"])},\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"For more details on what's changed, see \", _interpolate(_named(\"theFullChangelog\")), \".\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"the full changelog\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Art by \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This domain contains non-ascii characters.\"])}\n }\n}","var map = {\n\t\"./af.json\": [\n\t\t44919,\n\t\t6355\n\t],\n\t\"./am.json\": [\n\t\t53139,\n\t\t5119\n\t],\n\t\"./ar.json\": [\n\t\t44557,\n\t\t9873\n\t],\n\t\"./ar_SA.json\": [\n\t\t23450,\n\t\t7360\n\t],\n\t\"./as.json\": [\n\t\t44359,\n\t\t3377\n\t],\n\t\"./ast.json\": [\n\t\t13764,\n\t\t7569\n\t],\n\t\"./az.json\": [\n\t\t86459,\n\t\t2342\n\t],\n\t\"./be.json\": [\n\t\t50866,\n\t\t7304\n\t],\n\t\"./bg.json\": [\n\t\t26219,\n\t\t3974\n\t],\n\t\"./bn.json\": [\n\t\t69178,\n\t\t9064\n\t],\n\t\"./br.json\": [\n\t\t67871,\n\t\t6148\n\t],\n\t\"./bs.json\": [\n\t\t75340,\n\t\t8134\n\t],\n\t\"./ca.json\": [\n\t\t86914,\n\t\t4691\n\t],\n\t\"./ccp.json\": [\n\t\t73872,\n\t\t1162\n\t],\n\t\"./ceb.json\": [\n\t\t64478,\n\t\t9790\n\t],\n\t\"./chr.json\": [\n\t\t61017,\n\t\t6869\n\t],\n\t\"./ckb.json\": [\n\t\t56412,\n\t\t2656\n\t],\n\t\"./cs.json\": [\n\t\t8888,\n\t\t4710\n\t],\n\t\"./cy.json\": [\n\t\t25392,\n\t\t6272\n\t],\n\t\"./da.json\": [\n\t\t35042,\n\t\t1596\n\t],\n\t\"./de.json\": [\n\t\t35169,\n\t\t6226\n\t],\n\t\"./de_CH.json\": [\n\t\t28246,\n\t\t7164\n\t],\n\t\"./doi.json\": [\n\t\t59784,\n\t\t4209\n\t],\n\t\"./dsb.json\": [\n\t\t60634,\n\t\t1790\n\t],\n\t\"./el.json\": [\n\t\t98338,\n\t\t7879\n\t],\n\t\"./en.json\": [\n\t\t74990,\n\t\t5728\n\t],\n\t\"./en_001.json\": [\n\t\t62736,\n\t\t577\n\t],\n\t\"./en_AU.json\": [\n\t\t2597,\n\t\t9360\n\t],\n\t\"./en_CA.json\": [\n\t\t1516,\n\t\t4879\n\t],\n\t\"./en_GB.json\": [\n\t\t84830,\n\t\t50\n\t],\n\t\"./en_IN.json\": [\n\t\t71809,\n\t\t8988\n\t],\n\t\"./es.json\": [\n\t\t61148,\n\t\t6831\n\t],\n\t\"./es_419.json\": [\n\t\t25696,\n\t\t8873\n\t],\n\t\"./es_MX.json\": [\n\t\t11915,\n\t\t2699\n\t],\n\t\"./es_US.json\": [\n\t\t87826,\n\t\t3313\n\t],\n\t\"./et.json\": [\n\t\t66641,\n\t\t3276\n\t],\n\t\"./eu.json\": [\n\t\t6541,\n\t\t2992\n\t],\n\t\"./fa.json\": [\n\t\t43305,\n\t\t5521\n\t],\n\t\"./fi.json\": [\n\t\t40752,\n\t\t420\n\t],\n\t\"./fil.json\": [\n\t\t26843,\n\t\t1236\n\t],\n\t\"./fo.json\": [\n\t\t43032,\n\t\t8995\n\t],\n\t\"./fr.json\": [\n\t\t80898,\n\t\t2223\n\t],\n\t\"./fr_CA.json\": [\n\t\t54515,\n\t\t1821\n\t],\n\t\"./ga.json\": [\n\t\t66572,\n\t\t4571\n\t],\n\t\"./gd.json\": [\n\t\t9185,\n\t\t6116\n\t],\n\t\"./gl.json\": [\n\t\t23840,\n\t\t6126\n\t],\n\t\"./gu.json\": [\n\t\t85811,\n\t\t7261\n\t],\n\t\"./ha.json\": [\n\t\t91566,\n\t\t227\n\t],\n\t\"./ha_NE.json\": [\n\t\t3400,\n\t\t5304\n\t],\n\t\"./he.json\": [\n\t\t26260,\n\t\t5548\n\t],\n\t\"./hi.json\": [\n\t\t18136,\n\t\t5968\n\t],\n\t\"./hi_Latn.json\": [\n\t\t95638,\n\t\t3056\n\t],\n\t\"./hr.json\": [\n\t\t77435,\n\t\t2861\n\t],\n\t\"./hsb.json\": [\n\t\t15758,\n\t\t8015\n\t],\n\t\"./hu.json\": [\n\t\t2727,\n\t\t4902\n\t],\n\t\"./hy.json\": [\n\t\t8397,\n\t\t6344\n\t],\n\t\"./ia.json\": [\n\t\t49796,\n\t\t6936\n\t],\n\t\"./id.json\": [\n\t\t56635,\n\t\t9465\n\t],\n\t\"./ig.json\": [\n\t\t26406,\n\t\t9895\n\t],\n\t\"./is.json\": [\n\t\t51391,\n\t\t7300\n\t],\n\t\"./it.json\": [\n\t\t54879,\n\t\t8970\n\t],\n\t\"./ja.json\": [\n\t\t2971,\n\t\t1290\n\t],\n\t\"./jv.json\": [\n\t\t18644,\n\t\t2479\n\t],\n\t\"./ka.json\": [\n\t\t71255,\n\t\t6068\n\t],\n\t\"./kab.json\": [\n\t\t92892,\n\t\t9780\n\t],\n\t\"./kk.json\": [\n\t\t46419,\n\t\t2873\n\t],\n\t\"./kl.json\": [\n\t\t2227,\n\t\t2397\n\t],\n\t\"./km.json\": [\n\t\t65729,\n\t\t1404\n\t],\n\t\"./kn.json\": [\n\t\t65611,\n\t\t278\n\t],\n\t\"./ko.json\": [\n\t\t67080,\n\t\t2966\n\t],\n\t\"./kok.json\": [\n\t\t47209,\n\t\t2599\n\t],\n\t\"./ku.json\": [\n\t\t18738,\n\t\t2883\n\t],\n\t\"./ky.json\": [\n\t\t89690,\n\t\t4785\n\t],\n\t\"./lb.json\": [\n\t\t3929,\n\t\t4770\n\t],\n\t\"./lo.json\": [\n\t\t19778,\n\t\t7464\n\t],\n\t\"./lt.json\": [\n\t\t41683,\n\t\t7169\n\t],\n\t\"./lv.json\": [\n\t\t54873,\n\t\t8898\n\t],\n\t\"./mai.json\": [\n\t\t11781,\n\t\t1613\n\t],\n\t\"./mi.json\": [\n\t\t11569,\n\t\t6701\n\t],\n\t\"./mk.json\": [\n\t\t67589,\n\t\t9921\n\t],\n\t\"./ml.json\": [\n\t\t24415,\n\t\t2685\n\t],\n\t\"./mn.json\": [\n\t\t50512,\n\t\t4718\n\t],\n\t\"./mni.json\": [\n\t\t81597,\n\t\t5401\n\t],\n\t\"./mr.json\": [\n\t\t97747,\n\t\t1911\n\t],\n\t\"./ms.json\": [\n\t\t81588,\n\t\t9924\n\t],\n\t\"./mt.json\": [\n\t\t25081,\n\t\t9399\n\t],\n\t\"./my.json\": [\n\t\t8608,\n\t\t6790\n\t],\n\t\"./ne.json\": [\n\t\t8572,\n\t\t9377\n\t],\n\t\"./nl.json\": [\n\t\t52355,\n\t\t6773\n\t],\n\t\"./nn.json\": [\n\t\t52874,\n\t\t9414\n\t],\n\t\"./no.json\": [\n\t\t48005,\n\t\t9979\n\t],\n\t\"./or.json\": [\n\t\t26728,\n\t\t1012\n\t],\n\t\"./pa.json\": [\n\t\t15042,\n\t\t6946\n\t],\n\t\"./pa_Arab.json\": [\n\t\t43578,\n\t\t9994\n\t],\n\t\"./pcm.json\": [\n\t\t91163,\n\t\t5104\n\t],\n\t\"./pl.json\": [\n\t\t61335,\n\t\t1095\n\t],\n\t\"./ps.json\": [\n\t\t51828,\n\t\t678\n\t],\n\t\"./pt.json\": [\n\t\t38543,\n\t\t5041\n\t],\n\t\"./pt_PT.json\": [\n\t\t8063,\n\t\t1546\n\t],\n\t\"./qu.json\": [\n\t\t15821,\n\t\t8031\n\t],\n\t\"./rm.json\": [\n\t\t5014,\n\t\t5887\n\t],\n\t\"./ro.json\": [\n\t\t34064,\n\t\t9864\n\t],\n\t\"./ru.json\": [\n\t\t95222,\n\t\t8395\n\t],\n\t\"./rw.json\": [\n\t\t12710,\n\t\t346\n\t],\n\t\"./sa.json\": [\n\t\t69343,\n\t\t2243\n\t],\n\t\"./sat.json\": [\n\t\t51243,\n\t\t7855\n\t],\n\t\"./sc.json\": [\n\t\t1319,\n\t\t2874\n\t],\n\t\"./sd.json\": [\n\t\t67728,\n\t\t6826\n\t],\n\t\"./si.json\": [\n\t\t5044,\n\t\t4354\n\t],\n\t\"./sk.json\": [\n\t\t45626,\n\t\t2350\n\t],\n\t\"./sl.json\": [\n\t\t76091,\n\t\t1553\n\t],\n\t\"./so.json\": [\n\t\t93761,\n\t\t625\n\t],\n\t\"./sq.json\": [\n\t\t1230,\n\t\t4368\n\t],\n\t\"./sr.json\": [\n\t\t60445,\n\t\t3887\n\t],\n\t\"./sr_Cyrl_BA.json\": [\n\t\t38940,\n\t\t6060\n\t],\n\t\"./sr_Latn.json\": [\n\t\t21650,\n\t\t8681\n\t],\n\t\"./sr_Latn_BA.json\": [\n\t\t78328,\n\t\t5115\n\t],\n\t\"./su.json\": [\n\t\t54395,\n\t\t1959\n\t],\n\t\"./sv.json\": [\n\t\t3418,\n\t\t3241\n\t],\n\t\"./sw.json\": [\n\t\t11958,\n\t\t7585\n\t],\n\t\"./sw_KE.json\": [\n\t\t35001,\n\t\t3994\n\t],\n\t\"./ta.json\": [\n\t\t92930,\n\t\t7897\n\t],\n\t\"./te.json\": [\n\t\t8748,\n\t\t4786\n\t],\n\t\"./tg.json\": [\n\t\t20999,\n\t\t313\n\t],\n\t\"./th.json\": [\n\t\t23900,\n\t\t3951\n\t],\n\t\"./ti.json\": [\n\t\t368,\n\t\t3568\n\t],\n\t\"./tk.json\": [\n\t\t88770,\n\t\t1780\n\t],\n\t\"./to.json\": [\n\t\t95781,\n\t\t1584\n\t],\n\t\"./tr.json\": [\n\t\t92619,\n\t\t9978\n\t],\n\t\"./tt.json\": [\n\t\t87782,\n\t\t2569\n\t],\n\t\"./ug.json\": [\n\t\t19005,\n\t\t9757\n\t],\n\t\"./uk.json\": [\n\t\t82057,\n\t\t9871\n\t],\n\t\"./ur.json\": [\n\t\t13889,\n\t\t6797\n\t],\n\t\"./uz.json\": [\n\t\t45108,\n\t\t1056\n\t],\n\t\"./vi.json\": [\n\t\t97099,\n\t\t5224\n\t],\n\t\"./wo.json\": [\n\t\t9923,\n\t\t7303\n\t],\n\t\"./xh.json\": [\n\t\t29064,\n\t\t786\n\t],\n\t\"./yo.json\": [\n\t\t11971,\n\t\t8732\n\t],\n\t\"./yo_BJ.json\": [\n\t\t64533,\n\t\t9926\n\t],\n\t\"./yue.json\": [\n\t\t40648,\n\t\t1452\n\t],\n\t\"./yue_Hans.json\": [\n\t\t24800,\n\t\t4424\n\t],\n\t\"./zh.json\": [\n\t\t34626,\n\t\t457\n\t],\n\t\"./zh_Hant.json\": [\n\t\t82560,\n\t\t2767\n\t],\n\t\"./zh_Hant_HK.json\": [\n\t\t47677,\n\t\t1044\n\t],\n\t\"./zu.json\": [\n\t\t73784,\n\t\t9319\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 1395;\nmodule.exports = webpackAsyncContext;","/**\n * suggest - generates a suggestor function to be used by emoji-input\n * data: object providing source information for specific types of suggestions:\n * data.emoji - optional, an array of all emoji available i.e.\n * (getters.standardEmojiList + state.instance.customEmoji)\n * data.users - optional, an array of all known users\n * updateUsersList - optional, a function to search and append to users\n *\n * Depending on data present one or both (or none) can be present, so if field\n * doesn't support user linking you can just provide only emoji.\n */\n\nexport default data => {\n const emojiCurry = suggestEmoji(data.emoji)\n const usersCurry = data.store && suggestUsers(data.store)\n return (input, nameKeywordLocalizer) => {\n const firstChar = input[0]\n if (firstChar === ':' && data.emoji) {\n return emojiCurry(input, nameKeywordLocalizer)\n }\n if (firstChar === '@' && usersCurry) {\n return usersCurry(input)\n }\n return []\n }\n}\n\nexport const suggestEmoji = emojis => (input, nameKeywordLocalizer) => {\n const noPrefix = input.toLowerCase().substr(1)\n return emojis\n .map(emoji => ({ ...emoji, ...nameKeywordLocalizer(emoji) }))\n .filter((emoji) => (emoji.names.concat(emoji.keywords)).filter(kw => kw.toLowerCase().match(noPrefix)).length)\n .map(k => {\n let score = 0\n\n // An exact match always wins\n score += Math.max(...k.names.map(name => name.toLowerCase() === noPrefix ? 200 : 0), 0)\n\n // Prioritize custom emoji a lot\n score += k.imageUrl ? 100 : 0\n\n // Prioritize prefix matches somewhat\n score += Math.max(...k.names.map(kw => kw.toLowerCase().startsWith(noPrefix) ? 10 : 0), 0)\n\n // Sort by length\n score -= k.displayText.length\n\n k.score = score\n return k\n })\n .sort((a, b) => {\n // Break ties alphabetically\n const alphabetically = a.displayText > b.displayText ? 0.5 : -0.5\n\n return b.score - a.score + alphabetically\n })\n}\n\nexport const suggestUsers = ({ dispatch, state }) => {\n // Keep some persistent values in closure, most importantly for the\n // custom debounce to work. Lodash debounce does not return a promise.\n let suggestions = []\n let previousQuery = ''\n let timeout = null\n let cancelUserSearch = null\n\n const userSearch = (query) => dispatch('searchUsers', { query })\n const debounceUserSearch = (query) => {\n cancelUserSearch && cancelUserSearch()\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => {\n userSearch(query).then(resolve).catch(reject)\n }, 300)\n cancelUserSearch = () => {\n clearTimeout(timeout)\n resolve([])\n }\n })\n }\n\n return async input => {\n const noPrefix = input.toLowerCase().substr(1)\n if (previousQuery === noPrefix) return suggestions\n\n suggestions = []\n previousQuery = noPrefix\n // Fetch more and wait, don't fetch if there's the 2nd @ because\n // the backend user search can't deal with it.\n // Reference semantics make it so that we get the updated data after\n // the await.\n if (!noPrefix.includes('@')) {\n await debounceUserSearch(noPrefix)\n }\n\n const newSuggestions = state.users.users.filter(\n user =>\n user.screen_name.toLowerCase().startsWith(noPrefix) ||\n user.name.toLowerCase().startsWith(noPrefix)\n ).slice(0, 20).sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // Matches on screen name (i.e. user@instance) makes a priority\n aScore += a.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n bScore += b.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n\n // Matches on name takes second priority\n aScore += a.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n bScore += b.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n\n const diff = (bScore - aScore) * 10\n\n // Then sort alphabetically\n const nameAlphabetically = a.name > b.name ? 1 : -1\n const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1\n\n return diff + nameAlphabetically + screenNameAlphabetically\n /* eslint-disable camelcase */\n }).map((user) => ({\n user,\n displayText: user.screen_name_ui,\n detailText: user.name,\n imageUrl: user.profile_image_url_original,\n replacement: '@' + user.screen_name + ' '\n }))\n /* eslint-enable camelcase */\n\n suggestions = newSuggestions || []\n return suggestions\n }\n}\n","/**\n * Extract tag name from tag opener/closer.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {String} - tagname, i.e. \"div\"\n */\nexport const getTagName = (tag) => {\n const result = /(?:<\\/(\\w+)>|<(\\w+)\\s?.*?\\/?>)/gi.exec(tag)\n return result && (result[1] || result[2])\n}\n\n/**\n * Extract attributes from tag opener.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {Object} - map of attributes key = attribute name, value = attribute value\n * attributes without values represented as boolean true\n */\nexport const getAttrs = (tag, filter) => {\n const innertag = tag\n .substring(1, tag.length - 1)\n .replace(new RegExp('^' + getTagName(tag)), '')\n .replace(/\\/?$/, '')\n .trim()\n const attrs = Array.from(innertag.matchAll(/([a-z0-9-]+)(?:=(\"[^\"]+?\"|'[^']+?'))?/gi))\n .map(([trash, key, value]) => [key, value])\n .map(([k, v]) => {\n if (!v) return [k, true]\n return [k, v.substring(1, v.length - 1)]\n })\n const defaultFilter = ([k, v]) => {\n const attrKey = k.toLowerCase()\n if (attrKey === 'style') return false\n if (attrKey === 'class') {\n return v === 'greentext' || v === 'cyantext'\n }\n return true\n }\n return Object.fromEntries(attrs.filter(filter || defaultFilter))\n}\n\n/**\n * Finds shortcodes in text\n *\n * @param {String} text - original text to find emojis in\n * @param {{ url: String, shortcode: Sring }[]} emoji - list of shortcodes to find\n * @param {Function} processor - function to call on each encountered emoji,\n * function is passed single object containing matching emoji ({ url, shortcode })\n * return value will be inserted into resulting array instead of :shortcode:\n * @return {Array} resulting array with non-emoji parts of text and whatever {processor}\n * returned for emoji\n */\nexport const processTextForEmoji = (text, emojis, processor) => {\n const buffer = []\n let textBuffer = ''\n for (let i = 0; i < text.length; i++) {\n const char = text[i]\n if (char === ':') {\n const next = text.slice(i + 1)\n let found = false\n for (const emoji of emojis) {\n if (next.slice(0, emoji.shortcode.length + 1) === (emoji.shortcode + ':')) {\n found = emoji\n break\n }\n }\n if (found) {\n buffer.push(textBuffer)\n textBuffer = ''\n buffer.push(processor(found))\n i += found.shortcode.length + 1\n } else {\n textBuffer += char\n }\n } else {\n textBuffer += char\n }\n }\n if (textBuffer) buffer.push(textBuffer)\n return buffer\n}\n","import { getTagName } from './utility.service.js'\n\n/**\n * This is a tiny purpose-built HTML parser/processor. This basically detects\n * any type of visual newline and converts entire HTML into a array structure.\n *\n * Text nodes are represented as object with single property - text - containing\n * the visual line. Intended usage is to process the array with .map() in which\n * map function returns a string and resulting array can be converted back to html\n * with a .join('').\n *\n * Generally this isn't very useful except for when you really need to either\n * modify visual lines (greentext i.e. simple quoting) or do something with\n * first/last line.\n *\n * known issue: doesn't handle CDATA so nested CDATA might not work well\n *\n * @param {Object} input - input data\n * @return {(string|{ text: string })[]} processed html in form of a list.\n */\nexport const convertHtmlToLines = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // Block-level element (they make a visual line)\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\n const blockElements = new Set([\n 'address', 'article', 'aside', 'blockquote', 'details', 'dialog', 'dd',\n 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'li', 'main',\n 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'\n ])\n // br is very weird in a way that it's technically not block-level, it's\n // essentially converted to a \\n (or \\r\\n). There's also wbr but it doesn't\n // guarantee linebreak, only suggest it.\n const linebreakElements = new Set(['br'])\n\n const visualLineElements = new Set([\n ...blockElements.values(),\n ...linebreakElements.values()\n ])\n\n // All block-level elements that aren't empty elements, i.e. not <hr>\n const nonEmptyElements = new Set(visualLineElements)\n // Difference\n for (const elem of emptyElements) {\n nonEmptyElements.delete(elem)\n }\n\n // All elements that we are recognizing\n const allElements = new Set([\n ...nonEmptyElements.values(),\n ...emptyElements.values()\n ])\n\n const buffer = [] // Current output buffer\n const level = [] // How deep we are in tags and which tags were there\n let textBuffer = '' // Current line content\n let tagBuffer = null // Current tag buffer, if null = we are not currently reading a tag\n\n const flush = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer.trim().length > 0) {\n buffer.push({ level: [...level], text: textBuffer })\n } else {\n buffer.push(textBuffer)\n }\n textBuffer = ''\n }\n\n const handleBr = (tag) => { // handles single newlines/linebreaks/selfclosing\n flush()\n buffer.push(tag)\n }\n\n const handleOpen = (tag) => { // handles opening tags\n flush()\n buffer.push(tag)\n level.unshift(getTagName(tag))\n }\n\n const handleClose = (tag) => { // handles closing tags\n if (level[0] === getTagName(tag)) {\n flush()\n buffer.push(tag)\n level.shift()\n } else { // Broken case\n textBuffer += tag\n }\n }\n\n for (let i = 0; i < html.length; i++) {\n const char = html[i]\n if (char === '<' && tagBuffer === null) {\n tagBuffer = char\n } else if (char !== '>' && tagBuffer !== null) {\n tagBuffer += char\n } else if (char === '>' && tagBuffer !== null) {\n tagBuffer += char\n const tagFull = tagBuffer\n tagBuffer = null\n const tagName = getTagName(tagFull)\n if (allElements.has(tagName)) {\n if (linebreakElements.has(tagName)) {\n handleBr(tagFull)\n } else if (nonEmptyElements.has(tagName)) {\n if (tagFull[1] === '/') {\n handleClose(tagFull)\n } else if (tagFull[tagFull.length - 2] === '/') {\n // self-closing\n handleBr(tagFull)\n } else {\n handleOpen(tagFull)\n }\n } else {\n textBuffer += tagFull\n }\n } else {\n textBuffer += tagFull\n }\n } else if (char === '\\n') {\n handleBr(char)\n } else {\n textBuffer += char\n }\n }\n if (tagBuffer) {\n textBuffer += tagBuffer\n }\n\n flush()\n\n return buffer\n}\n","<template>\n <span\n class=\"HashtagLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n @click.prevent=\"onClick\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n</template>\n\n<script src=\"./hashtag_link.js\" />\n\n<style lang=\"scss\" src=\"./hashtag_link.scss\" />\n","import { extractTagFromUrl } from 'src/services/matcher/matcher.service.js'\n\nconst HashtagLink = {\n name: 'HashtagLink',\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n tag: {\n required: false,\n type: String,\n default: ''\n }\n },\n methods: {\n onClick () {\n const tag = this.tag || extractTagFromUrl(this.url)\n if (tag) {\n const link = this.generateTagLink(tag)\n this.$router.push(link)\n } else {\n window.open(this.url, '_blank')\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default HashtagLink\n","export const mentionMatchesUrl = (attention, url) => {\n if (url === attention.statusnet_profile_url) {\n return true\n }\n const [namepart, instancepart] = attention.screen_name.split('@')\n const matchstring = new RegExp('://' + instancepart + '/.*' + namepart + '$', 'g')\n\n return !!url.match(matchstring)\n}\n\n/**\n * Extract tag name from pleroma or mastodon url.\n * i.e https://bikeshed.party/tag/photo or https://quey.org/tags/sky\n * @param {string} url\n */\nexport const extractTagFromUrl = (url) => {\n const regex = /tag[s]*\\/(\\w+)$/g\n const result = regex.exec(url)\n if (!result) {\n return false\n }\n return result[1]\n}\n","import { render } from \"./hashtag_link.vue?vue&type=template&id=76a14451\"\nimport script from \"./hashtag_link.js?vue&type=script&lang=js\"\nexport * from \"./hashtag_link.js?vue&type=script&lang=js\"\n\nimport \"./hashtag_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { unescape, flattenDeep } from 'lodash'\nimport { getTagName, processTextForEmoji, getAttrs } from 'src/services/html_converter/utility.service.js'\nimport { convertHtmlToTree } from 'src/services/html_converter/html_tree_converter.service.js'\nimport { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js'\nimport StillImage from 'src/components/still-image/still-image.vue'\nimport MentionsLine, { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.vue'\nimport HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'\n\nimport './rich_content.scss'\n\n/**\n * RichContent, The Über-powered component for rendering Post HTML.\n *\n * This takes post HTML and does multiple things to it:\n * - Groups all mentions into <MentionsLine>, this affects all mentions regardles\n * of where they are (beginning/middle/end), even single mentions are converted\n * to a <MentionsLine> containing single <MentionLink>.\n * - Replaces emoji shortcodes with <StillImage>'d images.\n *\n * There are two problems with this component's architecture:\n * 1. Parsing HTML and rendering are inseparable. Attempts to separate the two\n * proven to be a massive overcomplication due to amount of things done here.\n * 2. We need to output both render and some extra data, which seems to be imp-\n * possible in vue. Current solution is to emit 'parseReady' event when parsing\n * is done within render() function.\n *\n * Apart from that one small hiccup with emit in render this _should_ be vue3-ready\n */\nexport default {\n name: 'RichContent',\n components: {\n MentionsLine,\n HashtagLink\n },\n props: {\n // Original html content\n html: {\n required: true,\n type: String\n },\n attentions: {\n required: false,\n default: () => []\n },\n // Emoji object, as in status.emojis, note the \"s\" at the end...\n emoji: {\n required: true,\n type: Array\n },\n // Whether to handle links or not (posts: yes, everything else: no)\n handleLinks: {\n required: false,\n type: Boolean,\n default: false\n },\n // Meme arrows\n greentext: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n // NEVER EVER TOUCH DATA INSIDE RENDER\n render () {\n // Pre-process HTML\n const { newHtml: html } = preProcessPerLine(this.html, this.greentext)\n let currentMentions = null // Current chain of mentions, we group all mentions together\n // This is used to recover spacing removed when parsing mentions\n let lastSpacing = ''\n\n const lastTags = [] // Tags that appear at the end of post body\n const writtenMentions = [] // All mentions that appear in post body\n const invisibleMentions = [] // All mentions that go beyond the limiter (see MentionsLine)\n // to collapse too many mentions in a row\n const writtenTags = [] // All tags that appear in post body\n // unique index for vue \"tag\" property\n let mentionIndex = 0\n let tagsIndex = 0\n\n const renderImage = (tag) => {\n return <StillImage\n {...getAttrs(tag)}\n class=\"img\"\n />\n }\n\n const renderHashtag = (attrs, children, encounteredTextReverse) => {\n const { index, ...linkData } = getLinkData(attrs, children, tagsIndex++)\n writtenTags.push(linkData)\n if (!encounteredTextReverse) {\n lastTags.push(linkData)\n }\n const { url, tag, content } = linkData\n return <HashtagLink url={url} tag={tag} content={content}/>\n }\n\n const renderMention = (attrs, children) => {\n const linkData = getLinkData(attrs, children, mentionIndex++)\n linkData.notifying = this.attentions.some(a => a.statusnet_profile_url === linkData.url)\n writtenMentions.push(linkData)\n if (currentMentions === null) {\n currentMentions = []\n }\n currentMentions.push(linkData)\n if (currentMentions.length > MENTIONS_LIMIT) {\n invisibleMentions.push(linkData)\n }\n if (currentMentions.length === 1) {\n return <MentionsLine mentions={ currentMentions } />\n } else {\n return ''\n }\n }\n\n // Processor to use with html_tree_converter\n const processItem = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (item.includes('\\n')) {\n currentMentions = null\n }\n if (emptyText) {\n // don't include spaces when processing mentions - we'll include them\n // in MentionsLine\n lastSpacing = item\n // Don't remove last space in a container (fixes poast mentions)\n return (index !== array.length - 1) && (currentMentions !== null) ? item.trim() : item\n }\n\n currentMentions = null\n if (item.includes(':')) {\n item = ['', processTextForEmoji(\n item,\n this.emoji,\n ({ shortcode, url }) => {\n return <StillImage\n class=\"emoji img\"\n src={url}\n title={`:${shortcode}:`}\n alt={`:${shortcode}:`}\n />\n }\n )]\n }\n return item\n }\n\n // Handle tag nodes\n if (Array.isArray(item)) {\n const [opener, children, closer] = item\n const Tag = getTagName(opener)\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener)\n const previouslyMentions = currentMentions !== null\n /* During grouping of mentions we trim all the empty text elements\n * This padding is added to recover last space removed in case\n * we have a tag right next to mentions\n */\n const mentionsLinePadding =\n // Padding is only needed if we just finished parsing mentions\n previouslyMentions &&\n // Don't add padding if content is string and has padding already\n !(children && typeof children[0] === 'string' && children[0].match(/^\\s/))\n ? lastSpacing\n : ''\n switch (Tag) {\n case 'br':\n currentMentions = null\n break\n case 'img': // replace images with StillImage\n return ['', [mentionsLinePadding, renderImage(opener)], '']\n case 'a': // replace mentions with MentionLink\n if (!this.handleLinks) break\n if (fullAttrs.class && fullAttrs.class.includes('mention')) {\n // Handling mentions here\n return renderMention(attrs, children)\n } else {\n currentMentions = null\n break\n }\n case 'span':\n if (this.handleLinks && fullAttrs.class && fullAttrs.class.includes('h-card')) {\n return ['', children.map(processItem), '']\n }\n }\n\n if (children !== undefined) {\n return [\n '',\n [\n mentionsLinePadding,\n [opener, children.map(processItem), closer]\n ],\n ''\n ]\n } else {\n return ['', [mentionsLinePadding, item], '']\n }\n }\n }\n\n // Processor for back direction (for finding \"last\" stuff, just easier this way)\n let encounteredTextReverse = false\n const processItemReverse = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (emptyText) return item\n if (!encounteredTextReverse) encounteredTextReverse = true\n return unescape(item)\n } else if (Array.isArray(item)) {\n // Handle tag nodes\n const [opener, children] = item\n const Tag = opener === '' ? '' : getTagName(opener)\n switch (Tag) {\n case 'a': { // replace mentions with MentionLink\n if (!this.handleLinks) break\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener, () => true)\n // should only be this\n if (\n (fullAttrs.class && fullAttrs.class.includes('hashtag')) || // Pleroma style\n (fullAttrs.rel === 'tag') // Mastodon style\n ) {\n return renderHashtag(attrs, children, encounteredTextReverse)\n } else {\n attrs.target = '_blank'\n const newChildren = [...children].reverse().map(processItemReverse).reverse()\n\n return <a {...attrs}>\n { newChildren }\n </a>\n }\n }\n case '':\n return [...children].reverse().map(processItemReverse).reverse()\n }\n\n // Render tag as is\n if (children !== undefined) {\n const newChildren = Array.isArray(children)\n ? [...children].reverse().map(processItemReverse).reverse()\n : children\n return <Tag {...getAttrs(opener)}>\n { newChildren }\n </Tag>\n } else {\n return <Tag/>\n }\n }\n return item\n }\n\n const pass1 = convertHtmlToTree(html).map(processItem)\n const pass2 = [...pass1].reverse().map(processItemReverse).reverse()\n // DO NOT USE SLOTS they cause a re-render feedback loop here.\n // slots updated -> rerender -> emit -> update up the tree -> rerender -> ...\n // at least until vue3?\n const result = <span class=\"RichContent\">\n { pass2 }\n </span>\n\n const event = {\n lastTags,\n writtenMentions,\n writtenTags,\n invisibleMentions\n }\n\n // DO NOT MOVE TO UPDATE. BAD IDEA.\n this.$emit('parseReady', event)\n\n return result\n }\n}\n\nconst getLinkData = (attrs, children, index) => {\n const stripTags = (item) => {\n if (typeof item === 'string') {\n return item\n } else {\n return item[1].map(stripTags).join('')\n }\n }\n const textContent = children.map(stripTags).join('')\n return {\n index,\n url: attrs.href,\n tag: attrs['data-tag'],\n content: flattenDeep(children).join(''),\n textContent\n }\n}\n\n/** Pre-processing HTML\n *\n * Currently this does one thing:\n * - add green/cyantexting\n *\n * @param {String} html - raw HTML to process\n * @param {Boolean} greentext - whether to enable greentexting or not\n */\nexport const preProcessPerLine = (html, greentext) => {\n const greentextHandle = new Set(['p', 'div'])\n\n const lines = convertHtmlToLines(html)\n const newHtml = lines.reverse().map((item, index, array) => {\n if (!item.text) return item\n const string = item.text\n\n // Greentext stuff\n if (\n // Only if greentext is engaged\n greentext &&\n // Only handle p's and divs. Don't want to affect blockquotes, code etc\n item.level.every(l => greentextHandle.has(l)) &&\n // Only if line begins with '>' or '<'\n (string.includes('&gt;') || string.includes('&lt;'))\n ) {\n const cleanedString = string.replace(/<[^>]+?>/gi, '') // remove all tags\n .replace(/@\\w+/gi, '') // remove mentions (even failed ones)\n .trim()\n if (cleanedString.startsWith('&gt;')) {\n return `<span class='greentext'>${string}</span>`\n } else if (cleanedString.startsWith('&lt;')) {\n return `<span class='cyantext'>${string}</span>`\n }\n }\n\n return string\n }).reverse().join('')\n\n return { newHtml }\n}\n","import { getTagName } from './utility.service.js'\nimport { unescape } from 'lodash'\n\n/**\n * This is a not-so-tiny purpose-built HTML parser/processor. This parses html\n * and converts it into a tree structure representing tag openers/closers and\n * children.\n *\n * Structure follows this pattern: [opener, [...children], closer] except root\n * node which is just [...children]. Text nodes can only be within children and\n * are represented as strings.\n *\n * Intended use is to convert HTML structure and then recursively iterate over it\n * most likely using a map. Very useful for dynamically rendering html replacing\n * tags with JSX elements in a render function.\n *\n * known issue: doesn't handle CDATA so CDATA might not work well\n * known issue: doesn't handle HTML comments\n *\n * @param {Object} input - input data\n * @return {string} processed html\n */\nexport const convertHtmlToTree = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // TODO For future - also parse HTML5 multi-source components?\n\n const buffer = [] // Current output buffer\n const levels = [['', buffer]] // How deep we are in tags and which tags were there\n let textBuffer = '' // Current line content\n let tagBuffer = null // Current tag buffer, if null = we are not currently reading a tag\n\n const getCurrentBuffer = () => {\n return levels[levels.length - 1][1]\n }\n\n const flushText = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer === '') return\n getCurrentBuffer().push(textBuffer)\n textBuffer = ''\n }\n\n const handleSelfClosing = (tag) => {\n getCurrentBuffer().push([tag])\n }\n\n const handleOpen = (tag) => {\n const curBuf = getCurrentBuffer()\n const newLevel = [unescape(tag), []]\n levels.push(newLevel)\n curBuf.push(newLevel)\n }\n\n const handleClose = (tag) => {\n const currentTag = levels[levels.length - 1]\n if (getTagName(levels[levels.length - 1][0]) === getTagName(tag)) {\n currentTag.push(tag)\n levels.pop()\n } else {\n getCurrentBuffer().push(tag)\n }\n }\n\n for (let i = 0; i < html.length; i++) {\n const char = html[i]\n if (char === '<' && tagBuffer === null) {\n flushText()\n tagBuffer = char\n } else if (char !== '>' && tagBuffer !== null) {\n tagBuffer += char\n } else if (char === '>' && tagBuffer !== null) {\n tagBuffer += char\n const tagFull = tagBuffer\n tagBuffer = null\n const tagName = getTagName(tagFull)\n if (tagFull[1] === '/') {\n handleClose(tagFull)\n } else if (emptyElements.has(tagName) || tagFull[tagFull.length - 2] === '/') {\n // self-closing\n handleSelfClosing(tagFull)\n } else {\n handleOpen(tagFull)\n }\n } else {\n textBuffer += char\n }\n }\n if (tagBuffer) {\n textBuffer += tagBuffer\n }\n\n flushText()\n return buffer\n}\n","// eslint-disable-next-line no-unused\nimport { h, Fragment } from 'vue'\nimport { mapState } from 'vuex'\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\n\nimport './tab_switcher.scss'\n\nconst findFirstUsable = (slots) => slots.findIndex(_ => _.props)\n\nexport default {\n name: 'TabSwitcher',\n props: {\n renderOnlyFocused: {\n required: false,\n type: Boolean,\n default: false\n },\n onSwitch: {\n required: false,\n type: Function,\n default: undefined\n },\n activeTab: {\n required: false,\n type: String,\n default: undefined\n },\n scrollableTabs: {\n required: false,\n type: Boolean,\n default: false\n },\n sideTabBar: {\n required: false,\n type: Boolean,\n default: false\n },\n bodyScrollLock: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n active: findFirstUsable(this.slots())\n }\n },\n computed: {\n activeIndex () {\n // In case of controlled component\n if (this.activeTab) {\n return this.slots().findIndex(slot => slot && slot.props && this.activeTab === slot.props.key)\n } else {\n return this.active\n }\n },\n isActive () {\n return tabName => {\n const isWanted = slot => slot.props && slot.props['data-tab-name'] === tabName\n return this.$slots.default().findIndex(isWanted) === this.activeIndex\n }\n },\n settingsModalVisible () {\n return this.settingsModalState === 'visible'\n },\n ...mapState({\n settingsModalState: state => state.interface.settingsModalState\n })\n },\n beforeUpdate () {\n const currentSlot = this.slots()[this.active]\n if (!currentSlot.props) {\n this.active = findFirstUsable(this.slots())\n }\n },\n methods: {\n clickTab (index) {\n return (e) => {\n e.preventDefault()\n this.setTab(index)\n }\n },\n // DO NOT put it to computed, it doesn't work (caching?)\n slots () {\n if (this.$slots.default()[0].type === Fragment) {\n return this.$slots.default()[0].children\n }\n return this.$slots.default()\n },\n setTab (index) {\n if (typeof this.onSwitch === 'function') {\n this.onSwitch.call(null, this.slots()[index].key)\n }\n this.active = index\n if (this.scrollableTabs) {\n this.$refs.contents.scrollTop = 0\n }\n }\n },\n render () {\n const tabs = this.slots()\n .map((slot, index) => {\n const props = slot.props\n if (!props) return\n const classesTab = ['tab', 'button-default']\n const classesWrapper = ['tab-wrapper']\n if (this.activeIndex === index) {\n classesTab.push('active')\n classesWrapper.push('active')\n }\n if (props.image) {\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n >\n <img src={props.image} title={props['image-tooltip']}/>\n {props.label ? '' : props.label}\n </button>\n </div>\n )\n }\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n >\n {!props.icon ? '' : (<FAIcon class=\"tab-icon\" size=\"2x\" fixed-width icon={props.icon}/>)}\n <span class=\"text\">\n {props.label}\n </span>\n </button>\n </div>\n )\n })\n\n const contents = this.slots().map((slot, index) => {\n const props = slot.props\n if (!props) return\n const active = this.activeIndex === index\n const classes = [ active ? 'active' : 'hidden' ]\n if (props.fullHeight) {\n classes.push('full-height')\n }\n const renderSlot = (!this.renderOnlyFocused || active)\n ? slot\n : ''\n\n return (\n <div class={classes}>\n {\n this.sideTabBar\n ? <h1 class=\"mobile-label\">{props.label}</h1>\n : ''\n }\n {renderSlot}\n </div>\n )\n })\n\n return (\n <div class={'tab-switcher ' + (this.sideTabBar ? 'side-tabs' : 'top-tabs')}>\n <div class=\"tabs\">\n {tabs}\n </div>\n <div\n ref=\"contents\"\n class={'contents' + (this.scrollableTabs ? ' scrollable-tabs' : '')}\n v-body-scroll-lock={this.bodyScrollLock}\n >\n {contents}\n </div>\n </div>\n )\n }\n}\n","\nconst languages = [\n 'ar',\n 'ca',\n 'cs',\n 'de',\n 'eo',\n 'en',\n 'es',\n 'et',\n 'eu',\n 'fi',\n 'fr',\n 'ga',\n 'he',\n 'hu',\n 'it',\n 'ja',\n 'ja_easy',\n 'ko',\n 'nb',\n 'nl',\n 'oc',\n 'pl',\n 'pt',\n 'ro',\n 'ru',\n 'sk',\n 'te',\n 'uk',\n 'zh',\n 'zh_Hant'\n]\n\nconst specialJsonName = {\n ja: 'ja_pedantic'\n}\n\nconst langCodeToJsonName = (code) => specialJsonName[code] || code\n\nconst langCodeToCldrName = (code) => code\n\nconst ensureFinalFallback = codes => {\n const codeList = Array.isArray(codes) ? codes : [codes]\n return codeList.includes('en') ? codeList : codeList.concat(['en'])\n}\n\nmodule.exports = {\n languages,\n langCodeToJsonName,\n langCodeToCldrName,\n ensureFinalFallback\n}\n","// When contributing, please sort JSON before committing so it would be easier to see what's missing and what's being added compared to English and other languages. It's not obligatory, but just an advice.\n// To sort json use jq https://stedolan.github.io/jq and invoke it like `jq -S . xx.json > xx.sorted.json`, AFAIK, there's no inplace edit option like in sed\n// Also, when adding a new language to \"messages\" variable, please do it alphabetically by language code so that users can search or check their custom language easily.\n\n// For anyone contributing to old huge messages.js and in need to quickly convert it to JSON\n// sed command for converting currently formatted JS to JSON:\n// sed -i -e \"s/'//gm\" -e 's/\"/\\\\\"/gm' -re 's/^( +)(.+?): ((.+?))?(,?)(\\{?)$/\\1\"\\2\": \"\\4\"/gm' -e 's/\\\"\\{\\\"/{/g' -e 's/,\"$/\",/g' file.json\n// There's only problem that apostrophe character ' gets replaced by \\\\ so you have to fix it manually, sorry.\n\nimport { isEqual } from 'lodash'\nimport { languages, langCodeToJsonName } from './languages.js'\n\nconst ULTIMATE_FALLBACK_LOCALE = 'en'\n\nconst hasLanguageFile = (code) => languages.includes(code)\n\nconst loadLanguageFile = (code) => {\n return import(\n /* webpackInclude: /\\.json$/ */\n /* webpackChunkName: \"i18n/[request]\" */\n `./${langCodeToJsonName(code)}.json`\n )\n}\n\nconst messages = {\n languages,\n default: {\n en: require('./en.json').default\n },\n setLanguage: async (i18n, language) => {\n const languages = (Array.isArray(language) ? language : [language]).filter(k => k)\n\n if (!languages.includes(ULTIMATE_FALLBACK_LOCALE)) {\n languages.push(ULTIMATE_FALLBACK_LOCALE)\n }\n const [first, ...rest] = languages\n\n if (first === i18n.locale && isEqual(rest, i18n.fallbackLocale)) {\n return\n }\n\n for (const lang of languages) {\n if (hasLanguageFile(lang)) {\n const messages = await loadLanguageFile(lang)\n i18n.setLocaleMessage(lang, messages.default)\n }\n }\n\n i18n.fallbackLocale = rest\n i18n.locale = first\n }\n}\n\nexport default messages\n","import EventTargetPolyfill from '@ungap/event-target'\n\ntry {\n /* eslint-disable no-new */\n new EventTarget()\n /* eslint-enable no-new */\n} catch (e) {\n window.EventTarget = EventTargetPolyfill\n}\n","const defaultState = {\n settingsModalState: 'hidden',\n settingsModalLoaded: false,\n settingsModalTargetTab: null,\n settings: {\n currentSaveStateNotice: null,\n noticeClearTimeout: null,\n notificationPermission: null\n },\n browserSupport: {\n cssFilter: window.CSS && window.CSS.supports && (\n window.CSS.supports('filter', 'drop-shadow(0 0)') ||\n window.CSS.supports('-webkit-filter', 'drop-shadow(0 0)')\n )\n },\n layoutType: 'normal',\n globalNotices: [],\n layoutHeight: 0,\n lastTimeline: null\n}\n\nconst interfaceMod = {\n state: defaultState,\n mutations: {\n settingsSaved (state, { success, error }) {\n if (success) {\n if (state.noticeClearTimeout) {\n clearTimeout(state.noticeClearTimeout)\n }\n state.settings.currentSaveStateNotice = { error: false, data: success }\n state.settings.noticeClearTimeout = setTimeout(() => delete state.settings.currentSaveStateNotice, 2000)\n } else {\n state.settings.currentSaveStateNotice = { error: true, errorData: error }\n }\n },\n setNotificationPermission (state, permission) {\n state.notificationPermission = permission\n },\n setLayoutType (state, value) {\n state.layoutType = value\n },\n closeSettingsModal (state) {\n state.settingsModalState = 'hidden'\n },\n togglePeekSettingsModal (state) {\n switch (state.settingsModalState) {\n case 'minimized':\n state.settingsModalState = 'visible'\n return\n case 'visible':\n state.settingsModalState = 'minimized'\n return\n default:\n throw new Error('Illegal minimization state of settings modal')\n }\n },\n openSettingsModal (state) {\n state.settingsModalState = 'visible'\n if (!state.settingsModalLoaded) {\n state.settingsModalLoaded = true\n }\n },\n setSettingsModalTargetTab (state, value) {\n state.settingsModalTargetTab = value\n },\n pushGlobalNotice (state, notice) {\n state.globalNotices.push(notice)\n },\n removeGlobalNotice (state, notice) {\n state.globalNotices = state.globalNotices.filter(n => n !== notice)\n },\n setLayoutHeight (state, value) {\n state.layoutHeight = value\n },\n setLayoutWidth (state, value) {\n state.layoutWidth = value\n },\n setLastTimeline (state, value) {\n state.lastTimeline = value\n }\n },\n actions: {\n setPageTitle ({ rootState }, option = '') {\n document.title = `${option} ${rootState.instance.name}`\n },\n settingsSaved ({ commit, dispatch }, { success, error }) {\n commit('settingsSaved', { success, error })\n },\n setNotificationPermission ({ commit }, permission) {\n commit('setNotificationPermission', permission)\n },\n closeSettingsModal ({ commit }) {\n commit('closeSettingsModal')\n },\n openSettingsModal ({ commit }) {\n commit('openSettingsModal')\n },\n togglePeekSettingsModal ({ commit }) {\n commit('togglePeekSettingsModal')\n },\n clearSettingsModalTargetTab ({ commit }) {\n commit('setSettingsModalTargetTab', null)\n },\n openSettingsModalTab ({ commit }, value) {\n commit('setSettingsModalTargetTab', value)\n commit('openSettingsModal')\n },\n pushGlobalNotice (\n { commit, dispatch, state },\n {\n messageKey,\n messageArgs = {},\n level = 'error',\n timeout = 0\n }) {\n const notice = {\n messageKey,\n messageArgs,\n level\n }\n commit('pushGlobalNotice', notice)\n // Adding a new element to array wraps it in a Proxy, which breaks the comparison\n // TODO: Generate UUID or something instead or relying on !== operator?\n const newNotice = state.globalNotices[state.globalNotices.length - 1]\n if (timeout) {\n setTimeout(() => dispatch('removeGlobalNotice', newNotice), timeout)\n }\n return newNotice\n },\n removeGlobalNotice ({ commit }, notice) {\n commit('removeGlobalNotice', notice)\n },\n setLayoutHeight ({ commit }, value) {\n commit('setLayoutHeight', value)\n },\n // value is optional, assuming it was cached prior\n setLayoutWidth ({ commit, state, rootGetters, rootState }, value) {\n let width = value\n if (value !== undefined) {\n commit('setLayoutWidth', value)\n } else {\n width = state.layoutWidth\n }\n const mobileLayout = width <= 800\n const normalOrMobile = mobileLayout ? 'mobile' : 'normal'\n const { thirdColumnMode } = rootGetters.mergedConfig\n if (thirdColumnMode === 'none' || !rootState.users.currentUser) {\n commit('setLayoutType', normalOrMobile)\n } else {\n const wideLayout = width >= 1300\n commit('setLayoutType', wideLayout ? 'wide' : normalOrMobile)\n }\n },\n setLastTimeline ({ commit }, value) {\n commit('setLastTimeline', value)\n }\n }\n}\n\nexport default interfaceMod\n","import { getPreset, applyTheme } from '../services/style_setter/style_setter.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport apiService from '../services/api/api.service.js'\nimport { instanceDefaultProperties } from './config.js'\nimport { langCodeToCldrName, ensureFinalFallback } from '../i18n/languages.js'\n\nconst SORTED_EMOJI_GROUP_IDS = [\n 'smileys-and-emotion',\n 'people-and-body',\n 'animals-and-nature',\n 'food-and-drink',\n 'travel-and-places',\n 'activities',\n 'objects',\n 'symbols',\n 'flags'\n]\n\nconst REGIONAL_INDICATORS = (() => {\n const start = 0x1F1E6\n const end = 0x1F1FF\n const A = 'A'.codePointAt(0)\n const res = new Array(end - start + 1)\n for (let i = start; i <= end; ++i) {\n const letter = String.fromCodePoint(A + i - start)\n res[i - start] = {\n replacement: String.fromCodePoint(i),\n imageUrl: false,\n displayText: 'regional_indicator_' + letter,\n displayTextI18n: {\n key: 'emoji.regional_indicator',\n args: { letter }\n }\n }\n }\n return res\n})()\n\nconst REMOTE_INTERACTION_URL = '/main/ostatus'\n\nconst defaultState = {\n // Stuff from apiConfig\n name: 'Pleroma FE',\n registrationOpen: true,\n server: 'http://localhost:4040/',\n textlimit: 5000,\n themeData: undefined,\n vapidPublicKey: undefined,\n\n // Stuff from static/config.json\n alwaysShowSubjectInput: true,\n defaultAvatar: '/images/avi.png',\n defaultBanner: '/images/banner.png',\n background: '/static/aurora_borealis.jpg',\n collapseMessageWithSubject: false,\n greentext: false,\n useAtIcon: false,\n mentionLinkDisplay: 'short',\n mentionLinkShowTooltip: true,\n mentionLinkShowAvatar: false,\n mentionLinkFadeDomain: true,\n mentionLinkShowYous: false,\n mentionLinkBoldenYou: true,\n hideFilteredStatuses: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: false,\n hideMutedThreads: true,\n hideWordFilteredPosts: false,\n hidePostStats: false,\n hideBotIndication: false,\n hideSitename: false,\n hideUserStats: false,\n muteBotStatuses: false,\n modalOnRepeat: false,\n modalOnUnfollow: false,\n modalOnBlock: true,\n modalOnMute: false,\n modalOnDelete: true,\n modalOnLogout: true,\n modalOnApproveFollow: false,\n modalOnDenyFollow: false,\n modalOnRemoveUserFromFollowers: false,\n loginMethod: 'password',\n logo: '/static/logo.svg',\n logoMargin: '.2em',\n logoMask: true,\n logoLeft: false,\n disableUpdateNotification: false,\n minimalScopesMode: false,\n nsfwCensorImage: undefined,\n postContentType: 'text/plain',\n redirectRootLogin: '/main/friends',\n redirectRootNoLogin: '/main/all',\n scopeCopy: true,\n showFeaturesPanel: true,\n showInstanceSpecificPanel: false,\n sidebarRight: false,\n subjectLineBehavior: 'email',\n theme: 'pleroma-dark',\n virtualScrolling: true,\n sensitiveByDefault: false,\n conversationDisplay: 'linear',\n conversationTreeAdvanced: false,\n conversationOtherRepliesButton: 'below',\n conversationTreeFadeAncestors: false,\n maxDepthInThread: 6,\n\n // Nasty stuff\n customEmoji: [],\n customEmojiFetched: false,\n emoji: {},\n emojiFetched: false,\n unicodeEmojiAnnotations: {},\n pleromaBackend: true,\n postFormats: [],\n restrictedNicknames: [],\n safeDM: true,\n knownDomains: [],\n birthdayRequired: false,\n birthdayMinAge: 0,\n\n // Feature-set, apparently, not everything here is reported...\n shoutAvailable: false,\n pleromaChatMessagesAvailable: false,\n gopherAvailable: false,\n mediaProxyAvailable: false,\n suggestionsEnabled: false,\n suggestionsWeb: '',\n\n // Html stuff\n instanceSpecificPanelContent: '',\n tos: '',\n\n // Version Information\n backendVersion: '',\n frontendVersion: '',\n\n pollsAvailable: false,\n pollLimits: {\n max_options: 4,\n max_option_chars: 255,\n min_expiration: 60,\n max_expiration: 60 * 60 * 24\n }\n}\n\nconst loadAnnotations = (lang) => {\n return import(\n /* webpackChunkName: \"emoji-annotations/[request]\" */\n `@kazvmoe-infra/unicode-emoji-json/annotations/${langCodeToCldrName(lang)}.json`\n )\n .then(k => k.default)\n}\n\nconst injectAnnotations = (emoji, annotations) => {\n const availableLangs = Object.keys(annotations)\n\n return {\n ...emoji,\n annotations: availableLangs.reduce((acc, cur) => {\n acc[cur] = annotations[cur][emoji.replacement]\n return acc\n }, {})\n }\n}\n\nconst injectRegionalIndicators = groups => {\n groups.symbols.push(...REGIONAL_INDICATORS)\n return groups\n}\n\nconst instance = {\n state: defaultState,\n mutations: {\n setInstanceOption (state, { name, value }) {\n if (typeof value !== 'undefined') {\n state[name] = value\n }\n },\n setKnownDomains (state, domains) {\n state.knownDomains = domains\n },\n setUnicodeEmojiAnnotations (state, { lang, annotations }) {\n state.unicodeEmojiAnnotations[lang] = annotations\n }\n },\n getters: {\n instanceDefaultConfig (state) {\n return instanceDefaultProperties\n .map(key => [key, state[key]])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n },\n groupedCustomEmojis (state) {\n const packsOf = emoji => {\n const packs = emoji.tags\n .filter(k => k.startsWith('pack:'))\n .map(k => {\n const packName = k.slice(5) // remove 'pack:' prefix\n return {\n id: `custom-${packName}`,\n text: packName\n }\n })\n\n if (!packs.length) {\n return [{\n id: 'unpacked'\n }]\n } else {\n return packs\n }\n }\n\n return state.customEmoji\n .reduce((res, emoji) => {\n packsOf(emoji).forEach(({ id: packId, text: packName }) => {\n if (!res[packId]) {\n res[packId] = ({\n id: packId,\n text: packName,\n image: emoji.imageUrl,\n emojis: []\n })\n }\n res[packId].emojis.push(emoji)\n })\n return res\n }, {})\n },\n standardEmojiList (state) {\n return SORTED_EMOJI_GROUP_IDS\n .map(groupId => (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations)))\n .reduce((a, b) => a.concat(b), [])\n },\n standardEmojiGroupList (state) {\n return SORTED_EMOJI_GROUP_IDS.map(groupId => ({\n id: groupId,\n emojis: (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations))\n }))\n },\n instanceDomain (state) {\n return new URL(state.server).hostname\n },\n remoteInteractionLink (state) {\n const server = state.server.endsWith('/') ? state.server.slice(0, -1) : state.server\n const link = server + REMOTE_INTERACTION_URL\n\n return ({ statusId, nickname }) => {\n if (statusId) {\n return `${link}?status_id=${statusId}`\n } else {\n return `${link}?nickname=${nickname}`\n }\n }\n }\n },\n actions: {\n setInstanceOption ({ commit, dispatch }, { name, value }) {\n commit('setInstanceOption', { name, value })\n switch (name) {\n case 'name':\n dispatch('setPageTitle')\n break\n case 'shoutAvailable':\n if (value) {\n dispatch('initializeSocket')\n }\n break\n case 'theme':\n dispatch('setTheme', value)\n break\n }\n },\n async getStaticEmoji ({ commit }) {\n try {\n const values = (await import(/* webpackChunkName: 'emoji' */ '../../static/emoji.json')).default\n\n const emoji = Object.keys(values).reduce((res, groupId) => {\n res[groupId] = values[groupId].map(e => ({\n displayText: e.slug,\n imageUrl: false,\n replacement: e.emoji\n }))\n return res\n }, {})\n commit('setInstanceOption', { name: 'emoji', value: injectRegionalIndicators(emoji) })\n } catch (e) {\n console.warn(\"Can't load static emoji\")\n console.warn(e)\n }\n },\n\n loadUnicodeEmojiData ({ commit, state }, language) {\n const langList = ensureFinalFallback(language)\n\n return Promise.all(\n langList\n .map(async lang => {\n if (!state.unicodeEmojiAnnotations[lang]) {\n try {\n const annotations = await loadAnnotations(lang)\n commit('setUnicodeEmojiAnnotations', { lang, annotations })\n } catch (e) {\n console.warn(`Error loading unicode emoji annotations for ${lang}: `, e)\n // ignore\n }\n }\n }))\n },\n\n async getCustomEmoji ({ commit, state }) {\n try {\n const res = await window.fetch('/api/pleroma/emoji.json')\n if (res.ok) {\n const result = await res.json()\n const values = Array.isArray(result) ? Object.assign({}, ...result) : result\n const caseInsensitiveStrCmp = (a, b) => {\n const la = a.toLowerCase()\n const lb = b.toLowerCase()\n return la > lb ? 1 : (la < lb ? -1 : 0)\n }\n const noPackLast = (a, b) => {\n const aNull = a === ''\n const bNull = b === ''\n if (aNull === bNull) {\n return 0\n } else if (aNull && !bNull) {\n return 1\n } else {\n return -1\n }\n }\n const byPackThenByName = (a, b) => {\n const packOf = emoji => (emoji.tags.filter(k => k.startsWith('pack:'))[0] || '').slice(5)\n const packOfA = packOf(a)\n const packOfB = packOf(b)\n return noPackLast(packOfA, packOfB) || caseInsensitiveStrCmp(packOfA, packOfB) || caseInsensitiveStrCmp(a.displayText, b.displayText)\n }\n\n const emoji = Object.entries(values).map(([key, value]) => {\n const imageUrl = value.image_url\n return {\n displayText: key,\n imageUrl: imageUrl ? state.server + imageUrl : value,\n tags: imageUrl ? value.tags.sort((a, b) => a > b ? 1 : 0) : ['utf'],\n replacement: `:${key}: `\n }\n // Technically could use tags but those are kinda useless right now,\n // should have been \"pack\" field, that would be more useful\n }).sort(byPackThenByName)\n commit('setInstanceOption', { name: 'customEmoji', value: emoji })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load custom emojis\")\n console.warn(e)\n }\n },\n\n setTheme ({ commit, rootState }, themeName) {\n commit('setInstanceOption', { name: 'theme', value: themeName })\n getPreset(themeName)\n .then(themeData => {\n commit('setInstanceOption', { name: 'themeData', value: themeData })\n // No need to apply theme if there's user theme already\n const { customTheme } = rootState.config\n if (customTheme) return\n\n // New theme presets don't have 'theme' property, they use 'source'\n const themeSource = themeData.source\n if (!themeData.theme || (themeSource && themeSource.themeEngineVersion === CURRENT_VERSION)) {\n applyTheme(themeSource)\n } else {\n applyTheme(themeData.theme)\n }\n })\n },\n fetchEmoji ({ dispatch, state }) {\n if (!state.customEmojiFetched) {\n state.customEmojiFetched = true\n dispatch('getCustomEmoji')\n }\n if (!state.emojiFetched) {\n state.emojiFetched = true\n dispatch('getStaticEmoji')\n }\n },\n\n async getKnownDomains ({ commit, rootState }) {\n try {\n const result = await apiService.fetchKnownDomains({\n credentials: rootState.users.currentUser.credentials\n })\n commit('setKnownDomains', result)\n } catch (e) {\n console.warn(\"Can't load known domains\")\n console.warn(e)\n }\n }\n }\n}\n\nexport default instance\n","import {\n remove,\n slice,\n each,\n findIndex,\n find,\n maxBy,\n minBy,\n merge,\n first,\n last,\n isArray,\n omitBy\n} from 'lodash'\nimport {\n isStatusNotification,\n isValidNotification,\n maybeShowNotification\n} from '../services/notification_utils/notification_utils.js'\nimport apiService from '../services/api/api.service.js'\n\nconst emptyTl = (userId = 0) => ({\n statuses: [],\n statusesObject: {},\n faves: [],\n visibleStatuses: [],\n visibleStatusesObject: {},\n newStatusCount: 0,\n maxId: 0,\n minId: 0,\n minVisibleId: 0,\n loading: false,\n followers: [],\n friends: [],\n userId,\n flushMarker: 0\n})\n\nconst emptyNotifications = () => ({\n desktopNotificationSilence: true,\n maxId: 0,\n minId: Number.POSITIVE_INFINITY,\n data: [],\n idStore: {},\n loading: false\n})\n\nexport const defaultState = () => ({\n allStatuses: [],\n allStatusesObject: {},\n conversationsObject: {},\n maxId: 0,\n notifications: emptyNotifications(),\n favorites: new Set(),\n timelines: {\n mentions: emptyTl(),\n public: emptyTl(),\n user: emptyTl(),\n favorites: emptyTl(),\n media: emptyTl(),\n publicAndExternal: emptyTl(),\n friends: emptyTl(),\n tag: emptyTl(),\n dms: emptyTl(),\n bookmarks: emptyTl(),\n list: emptyTl()\n }\n})\n\nexport const prepareStatus = (status) => {\n // Set deleted flag\n status.deleted = false\n\n // To make the array reactive\n status.attachments = status.attachments || []\n\n return status\n}\n\nconst mergeOrAdd = (arr, obj, item) => {\n const oldItem = obj[item.id]\n\n if (oldItem) {\n // We already have this, so only merge the new info.\n // We ignore null values to avoid overwriting existing properties with missing data\n // we also skip 'user' because that is handled by users module\n merge(oldItem, omitBy(item, (v, k) => v === null || k === 'user'))\n // Reactivity fix.\n oldItem.attachments.splice(oldItem.attachments.length)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n prepareStatus(item)\n arr.push(item)\n obj[item.id] = item\n return { item, new: true }\n }\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst sortTimeline = (timeline) => {\n timeline.visibleStatuses = timeline.visibleStatuses.sort(sortById)\n timeline.statuses = timeline.statuses.sort(sortById)\n timeline.minVisibleId = (last(timeline.visibleStatuses) || {}).id\n return timeline\n}\n\n// Add status to the global storages (arrays and objects maintaining statuses) except timelines\nconst addStatusToGlobalStorage = (state, data) => {\n const result = mergeOrAdd(state.allStatuses, state.allStatusesObject, data)\n if (result.new) {\n // Add to conversation\n const status = result.item\n const conversationsObject = state.conversationsObject\n const conversationId = status.statusnet_conversation_id\n if (conversationsObject[conversationId]) {\n conversationsObject[conversationId].push(status)\n } else {\n conversationsObject[conversationId] = [status]\n }\n }\n return result\n}\n\n// Remove status from the global storages (arrays and objects maintaining statuses) except timelines\nconst removeStatusFromGlobalStorage = (state, status) => {\n remove(state.allStatuses, { id: status.id })\n\n // TODO: Need to remove from allStatusesObject?\n\n // Remove possible notification\n remove(state.notifications.data, ({ action: { id } }) => id === status.id)\n\n // Remove from conversation\n const conversationId = status.statusnet_conversation_id\n if (state.conversationsObject[conversationId]) {\n remove(state.conversationsObject[conversationId], { id: status.id })\n }\n}\n\nconst addNewStatuses = (state, { statuses, showImmediately = false, timeline, user = {}, noIdUpdate = false, userId, pagination = {} }) => {\n // Sanity check\n if (!isArray(statuses)) {\n return false\n }\n\n const allStatuses = state.allStatuses\n const timelineObject = state.timelines[timeline]\n\n // Mismatch between API pagination and our internal minId/maxId tracking systems:\n // pagination.maxId is the oldest of the returned statuses when fetching older,\n // and pagination.minId is the newest when fetching newer. The names come directly\n // from the arguments they're supposed to be passed as for the next fetch.\n const minNew = pagination.maxId || (statuses.length > 0 ? minBy(statuses, 'id').id : 0)\n const maxNew = pagination.minId || (statuses.length > 0 ? maxBy(statuses, 'id').id : 0)\n\n const newer = timeline && (maxNew > timelineObject.maxId || timelineObject.maxId === 0) && statuses.length > 0\n const older = timeline && (minNew < timelineObject.minId || timelineObject.minId === 0) && statuses.length > 0\n\n if (!noIdUpdate && newer) {\n timelineObject.maxId = maxNew\n }\n if (!noIdUpdate && older) {\n timelineObject.minId = minNew\n }\n\n // This makes sure that user timeline won't get data meant for other\n // user. I.e. opening different user profiles makes request which could\n // return data late after user already viewing different user profile\n if ((timeline === 'user' || timeline === 'media') && timelineObject.userId !== userId) {\n return\n }\n\n const addStatus = (data, showImmediately, addToTimeline = true) => {\n const result = addStatusToGlobalStorage(state, data)\n const status = result.item\n\n if (result.new) {\n // We are mentioned in a post\n if (status.type === 'status' && find(status.attentions, { id: user.id })) {\n const mentions = state.timelines.mentions\n\n // Add the mention to the mentions timeline\n if (timelineObject !== mentions) {\n mergeOrAdd(mentions.statuses, mentions.statusesObject, status)\n mentions.newStatusCount += 1\n\n sortTimeline(mentions)\n }\n }\n if (status.visibility === 'direct') {\n const dms = state.timelines.dms\n\n mergeOrAdd(dms.statuses, dms.statusesObject, status)\n dms.newStatusCount += 1\n\n sortTimeline(dms)\n }\n }\n\n // Decide if we should treat the status as new for this timeline.\n let resultForCurrentTimeline\n // Some statuses should only be added to the global status repository.\n if (timeline && addToTimeline) {\n resultForCurrentTimeline = mergeOrAdd(timelineObject.statuses, timelineObject.statusesObject, status)\n }\n\n if (timeline && showImmediately) {\n // Add it directly to the visibleStatuses, don't change\n // newStatusCount\n mergeOrAdd(timelineObject.visibleStatuses, timelineObject.visibleStatusesObject, status)\n } else if (timeline && addToTimeline && resultForCurrentTimeline.new) {\n // Just change newStatuscount\n timelineObject.newStatusCount += 1\n }\n\n return status\n }\n\n const favoriteStatus = (favorite, counter) => {\n const status = find(allStatuses, { id: favorite.in_reply_to_status_id })\n if (status) {\n // This is our favorite, so the relevant bit.\n if (favorite.user.id === user.id) {\n status.favorited = true\n } else {\n status.fave_num += 1\n }\n }\n return status\n }\n\n const processors = {\n status: (status) => {\n addStatus(status, showImmediately)\n },\n edit: (status) => {\n addStatus(status, showImmediately)\n },\n retweet: (status) => {\n // RetweetedStatuses are never shown immediately\n const retweetedStatus = addStatus(status.retweeted_status, false, false)\n\n let retweet\n // If the retweeted status is already there, don't add the retweet\n // to the timeline.\n if (timeline && find(timelineObject.statuses, (s) => {\n if (s.retweeted_status) {\n return s.id === retweetedStatus.id || s.retweeted_status.id === retweetedStatus.id\n } else {\n return s.id === retweetedStatus.id\n }\n })) {\n // Already have it visible (either as the original or another RT), don't add to timeline, don't show.\n retweet = addStatus(status, false, false)\n } else {\n retweet = addStatus(status, showImmediately)\n }\n\n retweet.retweeted_status = retweetedStatus\n },\n favorite: (favorite) => {\n // Only update if this is a new favorite.\n // Ignore our own favorites because we get info about likes as response to like request\n if (!state.favorites.has(favorite.id)) {\n state.favorites.add(favorite.id)\n favoriteStatus(favorite)\n }\n },\n deletion: (deletion) => {\n const uri = deletion.uri\n const status = find(allStatuses, { uri })\n if (!status) {\n return\n }\n\n removeStatusFromGlobalStorage(state, status)\n\n if (timeline) {\n remove(timelineObject.statuses, { uri })\n remove(timelineObject.visibleStatuses, { uri })\n }\n },\n follow: (follow) => {\n // NOOP, it is known status but we don't do anything about it for now\n },\n default: (unknown) => {\n console.log('unknown status type')\n console.log(unknown)\n }\n }\n\n each(statuses, (status) => {\n const type = status.type\n const processor = processors[type] || processors.default\n processor(status)\n })\n\n // Keep the visible statuses sorted\n if (timeline && !(timeline === 'bookmarks')) {\n sortTimeline(timelineObject)\n }\n}\n\nconst updateNotificationsMinMaxId = (state, notification) => {\n state.notifications.maxId = notification.id > state.notifications.maxId\n ? notification.id\n : state.notifications.maxId\n state.notifications.minId = notification.id < state.notifications.minId\n ? notification.id\n : state.notifications.minId\n}\n\nconst addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters, newNotificationSideEffects }) => {\n each(notifications, (notification) => {\n // If invalid notification, update ids but don't add it to store\n if (!isValidNotification(notification)) {\n console.error('Invalid notification:', notification)\n updateNotificationsMinMaxId(state, notification)\n return\n }\n\n if (isStatusNotification(notification.type)) {\n notification.action = addStatusToGlobalStorage(state, notification.action).item\n notification.status = notification.status && addStatusToGlobalStorage(state, notification.status).item\n }\n\n if (notification.type === 'pleroma:report') {\n dispatch('addReport', notification.report)\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n dispatch('fetchEmojiReactionsBy', notification.status.id)\n }\n\n // Only add a new notification if we don't have one for the same action\n // eslint-disable-next-line no-prototype-builtins\n if (!state.notifications.idStore.hasOwnProperty(notification.id)) {\n updateNotificationsMinMaxId(state, notification)\n\n state.notifications.data.push(notification)\n state.notifications.idStore[notification.id] = notification\n\n newNotificationSideEffects(notification)\n } else if (notification.seen) {\n state.notifications.idStore[notification.id].seen = true\n }\n })\n}\n\nconst removeStatus = (state, { timeline, userId }) => {\n const timelineObject = state.timelines[timeline]\n if (userId) {\n remove(timelineObject.statuses, { user: { id: userId } })\n remove(timelineObject.visibleStatuses, { user: { id: userId } })\n timelineObject.minVisibleId = timelineObject.visibleStatuses.length > 0 ? last(timelineObject.visibleStatuses).id : 0\n timelineObject.maxId = timelineObject.statuses.length > 0 ? first(timelineObject.statuses).id : 0\n }\n}\n\nexport const mutations = {\n addNewStatuses,\n addNewNotifications,\n removeStatus,\n showNewStatuses (state, { timeline }) {\n const oldTimeline = (state.timelines[timeline])\n\n oldTimeline.newStatusCount = 0\n oldTimeline.visibleStatuses = slice(oldTimeline.statuses, 0, 50)\n oldTimeline.minVisibleId = last(oldTimeline.visibleStatuses).id\n oldTimeline.minId = oldTimeline.minVisibleId\n oldTimeline.visibleStatusesObject = {}\n each(oldTimeline.visibleStatuses, (status) => { oldTimeline.visibleStatusesObject[status.id] = status })\n },\n resetStatuses (state) {\n const emptyState = defaultState()\n Object.entries(emptyState).forEach(([key, value]) => {\n state[key] = value\n })\n },\n clearTimeline (state, { timeline, excludeUserId = false }) {\n const userId = excludeUserId ? state.timelines[timeline].userId : undefined\n state.timelines[timeline] = emptyTl(userId)\n },\n clearNotifications (state) {\n state.notifications = emptyNotifications()\n },\n setFavorited (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n\n if (newStatus.favorited !== value) {\n if (value) {\n newStatus.fave_num++\n } else {\n newStatus.fave_num--\n }\n }\n\n newStatus.favorited = value\n },\n setFavoritedConfirm (state, { status, user }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.favorited = status.favorited\n newStatus.fave_num = status.fave_num\n const index = findIndex(newStatus.favoritedBy, { id: user.id })\n if (index !== -1 && !newStatus.favorited) {\n newStatus.favoritedBy.splice(index, 1)\n } else if (index === -1 && newStatus.favorited) {\n newStatus.favoritedBy.push(user)\n }\n },\n setMutedStatus (state, status) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.thread_muted = status.thread_muted\n\n if (newStatus.thread_muted !== undefined) {\n state.conversationsObject[newStatus.statusnet_conversation_id].forEach(status => { status.thread_muted = newStatus.thread_muted })\n }\n },\n setRetweeted (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n\n if (newStatus.repeated !== value) {\n if (value) {\n newStatus.repeat_num++\n } else {\n newStatus.repeat_num--\n }\n }\n\n newStatus.repeated = value\n },\n setRetweetedConfirm (state, { status, user }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.repeated = status.repeated\n newStatus.repeat_num = status.repeat_num\n const index = findIndex(newStatus.rebloggedBy, { id: user.id })\n if (index !== -1 && !newStatus.repeated) {\n newStatus.rebloggedBy.splice(index, 1)\n } else if (index === -1 && newStatus.repeated) {\n newStatus.rebloggedBy.push(user)\n }\n },\n setBookmarked (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = value\n },\n setBookmarkedConfirm (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = status.bookmarked\n },\n setDeleted (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n if (newStatus) newStatus.deleted = true\n },\n setManyDeleted (state, condition) {\n Object.values(state.allStatusesObject).forEach(status => {\n if (condition(status)) {\n status.deleted = true\n }\n })\n },\n setLoading (state, { timeline, value }) {\n state.timelines[timeline].loading = value\n },\n setNsfw (state, { id, nsfw }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.nsfw = nsfw\n },\n setNotificationsLoading (state, { value }) {\n state.notifications.loading = value\n },\n setNotificationsSilence (state, { value }) {\n state.notifications.desktopNotificationSilence = value\n },\n markNotificationsAsSeen (state) {\n each(state.notifications.data, (notification) => {\n notification.seen = true\n })\n },\n markSingleNotificationAsSeen (state, { id }) {\n const notification = find(state.notifications.data, n => n.id === id)\n if (notification) notification.seen = true\n },\n dismissNotification (state, { id }) {\n state.notifications.data = state.notifications.data.filter(n => n.id !== id)\n },\n dismissNotifications (state, { finder }) {\n state.notifications.data = state.notifications.data.filter(n => finder)\n },\n updateNotification (state, { id, updater }) {\n const notification = find(state.notifications.data, n => n.id === id)\n notification && updater(notification)\n },\n queueFlush (state, { timeline, id }) {\n state.timelines[timeline].flushMarker = id\n },\n queueFlushAll (state) {\n Object.keys(state.timelines).forEach((timeline) => {\n state.timelines[timeline].flushMarker = state.timelines[timeline].maxId\n })\n },\n addRepeats (state, { id, rebloggedByUsers, currentUser }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.rebloggedBy = rebloggedByUsers.filter(_ => _)\n // repeats stats can be incorrect based on polling condition, let's update them using the most recent data\n newStatus.repeat_num = newStatus.rebloggedBy.length\n newStatus.repeated = !!newStatus.rebloggedBy.find(({ id }) => currentUser.id === id)\n },\n addFavs (state, { id, favoritedByUsers, currentUser }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.favoritedBy = favoritedByUsers.filter(_ => _)\n // favorites stats can be incorrect based on polling condition, let's update them using the most recent data\n newStatus.fave_num = newStatus.favoritedBy.length\n newStatus.favorited = !!newStatus.favoritedBy.find(({ id }) => currentUser.id === id)\n },\n addEmojiReactionsBy (state, { id, emojiReactions, currentUser }) {\n const status = state.allStatusesObject[id]\n status.emoji_reactions = emojiReactions\n },\n addOwnReaction (state, { id, emoji, currentUser }) {\n const status = state.allStatusesObject[id]\n const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n const reaction = status.emoji_reactions[reactionIndex] || { name: emoji, count: 0, accounts: [] }\n\n const newReaction = {\n ...reaction,\n count: reaction.count + 1,\n me: true,\n accounts: [\n ...reaction.accounts,\n currentUser\n ]\n }\n\n // Update count of existing reaction if it exists, otherwise append at the end\n if (reactionIndex >= 0) {\n status.emoji_reactions[reactionIndex] = newReaction\n } else {\n status.emoji_reactions = [...status.emoji_reactions, newReaction]\n }\n },\n removeOwnReaction (state, { id, emoji, currentUser }) {\n const status = state.allStatusesObject[id]\n const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n if (reactionIndex < 0) return\n\n const reaction = status.emoji_reactions[reactionIndex]\n const accounts = reaction.accounts || []\n\n const newReaction = {\n ...reaction,\n count: reaction.count - 1,\n me: false,\n accounts: accounts.filter(acc => acc.id !== currentUser.id)\n }\n\n if (newReaction.count > 0) {\n status.emoji_reactions[reactionIndex] = newReaction\n } else {\n status.emoji_reactions = status.emoji_reactions.filter(r => r.name !== emoji)\n }\n },\n updateStatusWithPoll (state, { id, poll }) {\n const status = state.allStatusesObject[id]\n status.poll = poll\n },\n setVirtualHeight (state, { statusId, height }) {\n state.allStatusesObject[statusId].virtualHeight = height\n }\n}\n\nconst statuses = {\n state: defaultState(),\n actions: {\n addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) {\n commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, pagination })\n },\n addNewNotifications (store, { notifications, older }) {\n const { commit, dispatch, rootGetters } = store\n\n const newNotificationSideEffects = (notification) => {\n maybeShowNotification(store, notification)\n }\n commit('addNewNotifications', { dispatch, notifications, older, rootGetters, newNotificationSideEffects })\n },\n setNotificationsLoading ({ rootState, commit }, { value }) {\n commit('setNotificationsLoading', { value })\n },\n setNotificationsSilence ({ rootState, commit }, { value }) {\n commit('setNotificationsSilence', { value })\n },\n fetchStatus ({ rootState, dispatch }, id) {\n return rootState.api.backendInteractor.fetchStatus({ id })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n fetchStatusSource ({ rootState, dispatch }, status) {\n return apiService.fetchStatusSource({ id: status.id, credentials: rootState.users.currentUser.credentials })\n },\n fetchStatusHistory ({ rootState, dispatch }, status) {\n return apiService.fetchStatusHistory({ status })\n },\n deleteStatus ({ rootState, commit }, status) {\n commit('setDeleted', { status })\n apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials })\n },\n deleteStatusById ({ rootState, commit }, id) {\n const status = rootState.statuses.allStatusesObject[id]\n commit('setDeleted', { status })\n },\n markStatusesAsDeleted ({ commit }, condition) {\n commit('setManyDeleted', condition)\n },\n favorite ({ rootState, commit }, status) {\n // Optimistic favoriting...\n commit('setFavorited', { status, value: true })\n rootState.api.backendInteractor.favorite({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n unfavorite ({ rootState, commit }, status) {\n // Optimistic unfavoriting...\n commit('setFavorited', { status, value: false })\n rootState.api.backendInteractor.unfavorite({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n fetchPinnedStatuses ({ rootState, dispatch }, userId) {\n rootState.api.backendInteractor.fetchPinnedStatuses({ id: userId })\n .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, noIdUpdate: true }))\n },\n pinStatus ({ rootState, dispatch }, statusId) {\n return rootState.api.backendInteractor.pinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n unpinStatus ({ rootState, dispatch }, statusId) {\n rootState.api.backendInteractor.unpinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n muteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.muteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n unmuteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.unmuteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n retweet ({ rootState, commit }, status) {\n // Optimistic retweeting...\n commit('setRetweeted', { status, value: true })\n rootState.api.backendInteractor.retweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status: status.retweeted_status, user: rootState.users.currentUser }))\n },\n unretweet ({ rootState, commit }, status) {\n // Optimistic unretweeting...\n commit('setRetweeted', { status, value: false })\n rootState.api.backendInteractor.unretweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status, user: rootState.users.currentUser }))\n },\n bookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: true })\n rootState.api.backendInteractor.bookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n unbookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: false })\n rootState.api.backendInteractor.unbookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n queueFlush ({ rootState, commit }, { timeline, id }) {\n commit('queueFlush', { timeline, id })\n },\n queueFlushAll ({ rootState, commit }) {\n commit('queueFlushAll')\n },\n markNotificationsAsSeen ({ rootState, commit }) {\n commit('markNotificationsAsSeen')\n apiService.markNotificationsAsSeen({\n id: rootState.statuses.notifications.maxId,\n credentials: rootState.users.currentUser.credentials\n })\n },\n markSingleNotificationAsSeen ({ rootState, commit }, { id }) {\n commit('markSingleNotificationAsSeen', { id })\n apiService.markNotificationsAsSeen({\n single: true,\n id,\n credentials: rootState.users.currentUser.credentials\n })\n },\n dismissNotificationLocal ({ rootState, commit }, { id }) {\n commit('dismissNotification', { id })\n },\n dismissNotification ({ rootState, commit }, { id }) {\n commit('dismissNotification', { id })\n rootState.api.backendInteractor.dismissNotification({ id })\n },\n updateNotification ({ rootState, commit }, { id, updater }) {\n commit('updateNotification', { id, updater })\n },\n fetchFavsAndRepeats ({ rootState, commit }, id) {\n Promise.all([\n rootState.api.backendInteractor.fetchFavoritedByUsers({ id }),\n rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n ]).then(([favoritedByUsers, rebloggedByUsers]) => {\n commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser })\n commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser })\n })\n },\n reactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n const currentUser = rootState.users.currentUser\n if (!currentUser) return\n\n commit('addOwnReaction', { id, emoji, currentUser })\n rootState.api.backendInteractor.reactWithEmoji({ id, emoji }).then(\n ok => {\n dispatch('fetchEmojiReactionsBy', id)\n }\n )\n },\n unreactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n const currentUser = rootState.users.currentUser\n if (!currentUser) return\n\n commit('removeOwnReaction', { id, emoji, currentUser })\n rootState.api.backendInteractor.unreactWithEmoji({ id, emoji }).then(\n ok => {\n dispatch('fetchEmojiReactionsBy', id)\n }\n )\n },\n fetchEmojiReactionsBy ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchEmojiReactions({ id }).then(\n emojiReactions => {\n commit('addEmojiReactionsBy', { id, emojiReactions, currentUser: rootState.users.currentUser })\n }\n )\n },\n fetchFavs ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchFavoritedByUsers({ id })\n .then(favoritedByUsers => commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser }))\n },\n fetchRepeats ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n .then(rebloggedByUsers => commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser }))\n },\n search (store, { q, resolve, limit, offset, following, type }) {\n return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following, type })\n .then((data) => {\n store.commit('addNewUsers', data.accounts)\n store.commit('addNewUsers', data.statuses.map(s => s.user).filter(u => u))\n store.commit('addNewStatuses', { statuses: data.statuses })\n return data\n })\n },\n setVirtualHeight ({ commit }, { statusId, height }) {\n commit('setVirtualHeight', { statusId, height })\n }\n },\n mutations\n}\n\nexport default statuses\n","import { remove, find } from 'lodash'\n\nexport const defaultState = {\n allLists: [],\n allListsObject: {}\n}\n\nexport const mutations = {\n setLists (state, value) {\n state.allLists = value\n },\n setList (state, { listId, title }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].title = title\n\n const entry = find(state.allLists, { id: listId })\n if (!entry) {\n state.allLists.push({ id: listId, title })\n } else {\n entry.title = title\n }\n },\n setListAccounts (state, { listId, accountIds }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds = accountIds\n },\n addListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds.push(accountId)\n },\n removeListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n const { accountIds } = state.allListsObject[listId]\n const set = new Set(accountIds)\n set.delete(accountId)\n state.allListsObject[listId].accountIds = [...set]\n },\n deleteList (state, { listId }) {\n delete state.allListsObject[listId]\n remove(state.allLists, list => list.id === listId)\n }\n}\n\nconst actions = {\n setLists ({ commit }, value) {\n commit('setLists', value)\n },\n createList ({ rootState, commit }, { title }) {\n return rootState.api.backendInteractor.createList({ title })\n .then((list) => {\n commit('setList', { listId: list.id, title })\n return list\n })\n },\n fetchList ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getList({ listId })\n .then((list) => commit('setList', { listId: list.id, title: list.title }))\n },\n fetchListAccounts ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getListAccounts({ listId })\n .then((accountIds) => commit('setListAccounts', { listId, accountIds }))\n },\n setList ({ rootState, commit }, { listId, title }) {\n rootState.api.backendInteractor.updateList({ listId, title })\n commit('setList', { listId, title })\n },\n setListAccounts ({ rootState, commit }, { listId, accountIds }) {\n const saved = rootState.lists.allListsObject[listId].accountIds || []\n const added = accountIds.filter(id => !saved.includes(id))\n const removed = saved.filter(id => !accountIds.includes(id))\n commit('setListAccounts', { listId, accountIds })\n if (added.length > 0) {\n rootState.api.backendInteractor.addAccountsToList({ listId, accountIds: added })\n }\n if (removed.length > 0) {\n rootState.api.backendInteractor.removeAccountsFromList({ listId, accountIds: removed })\n }\n },\n addListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .addAccountsToList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('addListAccount', { listId, accountId })\n return result\n })\n },\n removeListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .removeAccountsFromList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('removeListAccount', { listId, accountId })\n return result\n })\n },\n deleteList ({ rootState, commit }, { listId }) {\n rootState.api.backendInteractor.deleteList({ listId })\n commit('deleteList', { listId })\n }\n}\n\nexport const getters = {\n findListTitle: state => id => {\n if (!state.allListsObject[id]) return\n return state.allListsObject[id].title\n },\n findListAccounts: state => id => {\n return [...state.allListsObject[id].accountIds]\n }\n}\n\nconst lists = {\n state: defaultState,\n mutations,\n actions,\n getters\n}\n\nexport default lists\n","import { camelCase } from 'lodash'\n\nimport apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst update = ({ store, statuses, timeline, showImmediately, userId, listId, pagination }) => {\n const ccTimeline = camelCase(timeline)\n\n store.dispatch('addNewStatuses', {\n timeline: ccTimeline,\n userId,\n listId,\n statuses,\n showImmediately,\n pagination\n })\n}\n\nconst fetchAndUpdate = ({\n store,\n credentials,\n timeline = 'friends',\n older = false,\n showImmediately = false,\n userId = false,\n listId = false,\n tag = false,\n until,\n since\n}) => {\n const args = { timeline, credentials }\n const rootState = store.rootState || store.state\n const { getters } = store\n const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n const { hideMutedPosts, replyVisibility } = getters.mergedConfig\n const loggedIn = !!rootState.users.currentUser\n\n if (older) {\n args.until = until || timelineData.minId\n } else {\n if (since === undefined) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n }\n\n args.userId = userId\n args.listId = listId\n args.tag = tag\n args.withMuted = !hideMutedPosts\n if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {\n args.replyVisibility = replyVisibility\n }\n\n const numStatusesBeforeFetch = timelineData.statuses.length\n\n return apiService.fetchTimeline(args)\n .then(response => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n\n const { data: statuses, pagination } = response\n if (!older && statuses.length >= 20 && !timelineData.loading && numStatusesBeforeFetch > 0) {\n store.dispatch('queueFlush', { timeline, id: timelineData.maxId })\n }\n update({ store, statuses, timeline, showImmediately, userId, listId, pagination })\n return { statuses, pagination }\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n })\n}\n\nconst startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = false, tag = false }) => {\n const rootState = store.rootState || store.state\n const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n const showImmediately = timelineData.visibleStatuses.length === 0\n timelineData.userId = userId\n timelineData.listId = listId\n fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, tag })\n const boundFetchAndUpdate = () =>\n fetchAndUpdate({ timeline, credentials, store, userId, listId, tag })\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\nconst timelineFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default timelineFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchFollowRequests({ credentials })\n .then((requests) => {\n store.commit('setFollowRequests', requests)\n store.commit('addNewUsers', requests)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst followRequestFetcher = {\n startFetching\n}\n\nexport default followRequestFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchLists({ credentials })\n .then(lists => {\n store.commit('setLists', lists)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 240000)\n}\n\nconst listsFetcher = {\n startFetching\n}\n\nexport default listsFetcher\n","import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'\nimport timelineFetcher from '../timeline_fetcher/timeline_fetcher.service.js'\nimport notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js'\nimport followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service'\nimport listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'\n\nconst backendInteractorService = credentials => ({\n startFetchingTimeline ({ timeline, store, userId = false, listId = false, tag }) {\n return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, tag })\n },\n\n fetchTimeline (args) {\n return timelineFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingNotifications ({ store }) {\n return notificationsFetcher.startFetching({ store, credentials })\n },\n\n fetchNotifications (args) {\n return notificationsFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingFollowRequests ({ store }) {\n return followRequestFetcher.startFetching({ store, credentials })\n },\n\n startFetchingLists ({ store }) {\n return listsFetcher.startFetching({ store, credentials })\n },\n\n startUserSocket ({ store }) {\n const serv = store.rootState.instance.server.replace('http', 'ws')\n const url = serv + getMastodonSocketURI({ credentials, stream: 'user' })\n return ProcessedWS({ url, id: 'User' })\n },\n\n ...Object.entries(apiService).reduce((acc, [key, func]) => {\n return {\n ...acc,\n [key]: (args) => func({ credentials, ...args })\n }\n }, {}),\n\n verifyCredentials: apiService.verifyCredentials\n})\n\nexport default backendInteractorService\n","\nexport const windowWidth = () =>\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n\nexport const windowHeight = () =>\n window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight\n","import { reduce } from 'lodash'\n\nconst REDIRECT_URI = `${window.location.origin}/oauth-callback`\n\nexport const getOrCreateApp = ({ clientId, clientSecret, instance, commit }) => {\n if (clientId && clientSecret) {\n return Promise.resolve({ clientId, clientSecret })\n }\n\n const url = `${instance}/api/v1/apps`\n const form = new window.FormData()\n\n form.append('client_name', `PleromaFE_${window.___pleromafe_commit_hash}_${(new Date()).toISOString()}`)\n form.append('redirect_uris', REDIRECT_URI)\n form.append('scopes', 'read write follow push admin')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n .then((app) => ({ clientId: app.client_id, clientSecret: app.client_secret }))\n .then((app) => commit('setClientData', app) || app)\n}\n\nconst login = ({ instance, clientId }) => {\n const data = {\n response_type: 'code',\n client_id: clientId,\n redirect_uri: REDIRECT_URI,\n scope: 'read write follow push admin'\n }\n\n const dataString = reduce(data, (acc, v, k) => {\n const encoded = `${k}=${encodeURIComponent(v)}`\n if (!acc) {\n return encoded\n } else {\n return `${acc}&${encoded}`\n }\n }, false)\n\n // Do the redirect...\n const url = `${instance}/oauth/authorize?${dataString}`\n\n window.location.href = url\n}\n\nconst getTokenWithCredentials = ({ clientId, clientSecret, instance, username, password }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'password')\n form.append('username', username)\n form.append('password', password)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst getToken = ({ clientId, clientSecret, instance, code }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'authorization_code')\n form.append('code', code)\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n}\n\nexport const getClientToken = ({ clientId, clientSecret, instance }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'client_credentials')\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\nconst verifyOTPCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'totp')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'recovery')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst revokeToken = ({ app, instance, token }) => {\n const url = `${instance}/oauth/revoke`\n const form = new window.FormData()\n\n form.append('client_id', app.clientId)\n form.append('client_secret', app.clientSecret)\n form.append('token', token)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst oauth = {\n login,\n getToken,\n getTokenWithCredentials,\n getOrCreateApp,\n verifyOTPCode,\n verifyRecoveryCode,\n revokeToken\n}\n\nexport default oauth\n","import runtime from 'serviceworker-webpack5-plugin/lib/runtime'\n\nfunction urlBase64ToUint8Array (base64String) {\n const padding = '='.repeat((4 - base64String.length % 4) % 4)\n const base64 = (base64String + padding)\n .replace(/-/g, '+')\n .replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n return Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n}\n\nfunction isPushSupported () {\n return 'serviceWorker' in navigator && 'PushManager' in window\n}\n\nfunction getOrCreateServiceWorker () {\n return runtime.register()\n .catch((err) => console.error('Unable to get or create a service worker.', err))\n}\n\nfunction subscribePush (registration, isEnabled, vapidPublicKey) {\n if (!isEnabled) return Promise.reject(new Error('Web Push is disabled in config'))\n if (!vapidPublicKey) return Promise.reject(new Error('VAPID public key is not found'))\n\n const subscribeOptions = {\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(vapidPublicKey)\n }\n return registration.pushManager.subscribe(subscribeOptions)\n}\n\nfunction unsubscribePush (registration) {\n return registration.pushManager.getSubscription()\n .then((subscribtion) => {\n if (subscribtion === null) { return }\n return subscribtion.unsubscribe()\n })\n}\n\nfunction deleteSubscriptionFromBackEnd (token) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response\n })\n}\n\nfunction sendSubscriptionToBackEnd (subscription, token, notificationVisibility) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n },\n body: JSON.stringify({\n subscription,\n data: {\n alerts: {\n follow: notificationVisibility.follows,\n favourite: notificationVisibility.likes,\n mention: notificationVisibility.mentions,\n reblog: notificationVisibility.repeats,\n move: notificationVisibility.moves\n }\n }\n })\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response.json()\n }).then((responseData) => {\n if (!responseData.id) throw new Error('Bad response from server.')\n return responseData\n })\n}\n\nexport function registerPushNotifications (isEnabled, vapidPublicKey, token, notificationVisibility) {\n if (isPushSupported()) {\n getOrCreateServiceWorker()\n .then((registration) => subscribePush(registration, isEnabled, vapidPublicKey))\n .then((subscription) => sendSubscriptionToBackEnd(subscription, token, notificationVisibility))\n .catch((e) => console.warn(`Failed to setup Web Push Notifications: ${e.message}`))\n }\n}\n\nexport function unregisterPushNotifications (token) {\n if (isPushSupported()) {\n Promise.all([\n deleteSubscriptionFromBackEnd(token),\n getOrCreateServiceWorker()\n .then((registration) => {\n return unsubscribePush(registration).then((result) => [registration, result])\n })\n .then(([registration, unsubResult]) => {\n if (!unsubResult) {\n console.warn('Push subscription cancellation wasn\\'t successful, killing SW anyway...')\n }\n return registration.unregister().then((result) => {\n if (!result) {\n console.warn('Failed to kill SW')\n }\n })\n })\n ]).catch((e) => console.warn(`Failed to disable Web Push Notifications: ${e.message}`))\n }\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { windowWidth, windowHeight } from '../services/window_utils/window_utils'\nimport oauthApi from '../services/new_api/oauth.js'\nimport { compact, map, each, mergeWith, last, concat, uniq, isArray } from 'lodash'\nimport { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js'\n\n// TODO: Unify with mergeOrAdd in statuses.js\nexport const mergeOrAdd = (arr, obj, item) => {\n if (!item) { return false }\n const oldItem = obj[item.id]\n if (oldItem) {\n // We already have this, so only merge the new info.\n mergeWith(oldItem, item, mergeArrayLength)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n arr.push(item)\n obj[item.id] = item\n return { item, new: true }\n }\n}\n\nconst mergeArrayLength = (oldValue, newValue) => {\n if (isArray(oldValue) && isArray(newValue)) {\n oldValue.length = newValue.length\n return mergeWith(oldValue, newValue, mergeArrayLength)\n }\n}\n\nconst getNotificationPermission = () => {\n const Notification = window.Notification\n\n if (!Notification) return Promise.resolve(null)\n if (Notification.permission === 'default') return Notification.requestPermission()\n return Promise.resolve(Notification.permission)\n}\n\nconst blockUser = (store, id) => {\n return store.rootState.api.backendInteractor.blockUser({ id })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addBlockId', id)\n store.commit('removeStatus', { timeline: 'friends', userId: id })\n store.commit('removeStatus', { timeline: 'public', userId: id })\n store.commit('removeStatus', { timeline: 'publicAndExternal', userId: id })\n })\n}\n\nconst unblockUser = (store, id) => {\n return store.rootState.api.backendInteractor.unblockUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst removeUserFromFollowers = (store, id) => {\n return store.rootState.api.backendInteractor.removeUserFromFollowers({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst editUserNote = (store, { id, comment }) => {\n return store.rootState.api.backendInteractor.editUserNote({ id, comment })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteUser = (store, args) => {\n const id = typeof args === 'object' ? args.id : args\n const expiresIn = typeof args === 'object' ? args.expiresIn : 0\n\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = true\n store.commit('updateUserRelationship', [predictedRelationship])\n store.commit('addMuteId', id)\n\n return store.rootState.api.backendInteractor.muteUser({ id, expiresIn })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addMuteId', id)\n })\n}\n\nconst unmuteUser = (store, id) => {\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = false\n store.commit('updateUserRelationship', [predictedRelationship])\n\n return store.rootState.api.backendInteractor.unmuteUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst hideReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: false })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n })\n}\n\nconst showReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: true })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.muteDomain({ domain })\n .then(() => store.commit('addDomainMute', domain))\n}\n\nconst unmuteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.unmuteDomain({ domain })\n .then(() => store.commit('removeDomainMute', domain))\n}\n\nexport const mutations = {\n tagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.concat([tag])\n user.tags = newTags\n },\n untagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.filter(t => t !== tag)\n user.tags = newTags\n },\n updateRight (state, { user: { id }, right, value }) {\n const user = state.usersObject[id]\n const newRights = user.rights\n newRights[right] = value\n user.rights = newRights\n },\n updateActivationStatus (state, { user: { id }, deactivated }) {\n const user = state.usersObject[id]\n user.deactivated = deactivated\n },\n setCurrentUser (state, user) {\n state.lastLoginName = user.screen_name\n state.currentUser = mergeWith(state.currentUser || {}, user, mergeArrayLength)\n },\n clearCurrentUser (state) {\n state.currentUser = false\n state.lastLoginName = false\n },\n beginLogin (state) {\n state.loggingIn = true\n },\n endLogin (state) {\n state.loggingIn = false\n },\n saveFriendIds (state, { id, friendIds }) {\n const user = state.usersObject[id]\n user.friendIds = uniq(concat(user.friendIds || [], friendIds))\n },\n saveFollowerIds (state, { id, followerIds }) {\n const user = state.usersObject[id]\n user.followerIds = uniq(concat(user.followerIds || [], followerIds))\n },\n // Because frontend doesn't have a reason to keep these stuff in memory\n // outside of viewing someones user profile.\n clearFriends (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n user.friendIds = []\n }\n },\n clearFollowers (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n user.followerIds = []\n }\n },\n addNewUsers (state, users) {\n each(users, (user) => {\n if (user.relationship) {\n state.relationships[user.relationship.id] = user.relationship\n }\n const res = mergeOrAdd(state.users, state.usersObject, user)\n const item = res.item\n if (res.new && item.screen_name && !item.screen_name.includes('@')) {\n state.usersByNameObject[item.screen_name.toLowerCase()] = item\n }\n })\n },\n updateUserRelationship (state, relationships) {\n relationships.forEach((relationship) => {\n state.relationships[relationship.id] = relationship\n })\n },\n updateUserInLists (state, { id, inLists }) {\n state.usersObject[id].inLists = inLists\n },\n saveBlockIds (state, blockIds) {\n state.currentUser.blockIds = blockIds\n },\n addBlockId (state, blockId) {\n if (state.currentUser.blockIds.indexOf(blockId) === -1) {\n state.currentUser.blockIds.push(blockId)\n }\n },\n saveMuteIds (state, muteIds) {\n state.currentUser.muteIds = muteIds\n },\n addMuteId (state, muteId) {\n if (state.currentUser.muteIds.indexOf(muteId) === -1) {\n state.currentUser.muteIds.push(muteId)\n }\n },\n saveDomainMutes (state, domainMutes) {\n state.currentUser.domainMutes = domainMutes\n },\n addDomainMute (state, domain) {\n if (state.currentUser.domainMutes.indexOf(domain) === -1) {\n state.currentUser.domainMutes.push(domain)\n }\n },\n removeDomainMute (state, domain) {\n const index = state.currentUser.domainMutes.indexOf(domain)\n if (index !== -1) {\n state.currentUser.domainMutes.splice(index, 1)\n }\n },\n setPinnedToUser (state, status) {\n const user = state.usersObject[status.user.id]\n user.pinnedStatusIds = user.pinnedStatusIds || []\n const index = user.pinnedStatusIds.indexOf(status.id)\n\n if (status.pinned && index === -1) {\n user.pinnedStatusIds.push(status.id)\n } else if (!status.pinned && index !== -1) {\n user.pinnedStatusIds.splice(index, 1)\n }\n },\n setUserForStatus (state, status) {\n status.user = state.usersObject[status.user.id]\n },\n setUserForNotification (state, notification) {\n if (notification.type !== 'follow') {\n notification.action.user = state.usersObject[notification.action.user.id]\n }\n notification.from_profile = state.usersObject[notification.from_profile.id]\n },\n setColor (state, { user: { id }, highlighted }) {\n const user = state.usersObject[id]\n user.highlight = highlighted\n },\n signUpPending (state) {\n state.signUpPending = true\n state.signUpErrors = []\n },\n signUpSuccess (state) {\n state.signUpPending = false\n },\n signUpFailure (state, errors) {\n state.signUpPending = false\n state.signUpErrors = errors\n }\n}\n\nexport const getters = {\n findUser: state => query => {\n return state.usersObject[query]\n },\n findUserByName: state => query => {\n return state.usersByNameObject[query.toLowerCase()]\n },\n findUserByUrl: state => query => {\n return state.users\n .find(u => u.statusnet_profile_url &&\n u.statusnet_profile_url.toLowerCase() === query.toLowerCase())\n },\n relationship: state => id => {\n const rel = id && state.relationships[id]\n return rel || { id, loading: true }\n }\n}\n\nexport const defaultState = {\n loggingIn: false,\n lastLoginName: false,\n currentUser: false,\n users: [],\n usersObject: {},\n usersByNameObject: {},\n signUpPending: false,\n signUpErrors: [],\n relationships: {}\n}\n\nconst users = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchUserIfMissing (store, id) {\n if (!store.getters.findUser(id)) {\n store.dispatch('fetchUser', id)\n }\n },\n fetchUser (store, id) {\n return store.rootState.api.backendInteractor.fetchUser({ id })\n .then((user) => {\n store.commit('addNewUsers', [user])\n return user\n })\n },\n fetchUserByName (store, name) {\n return store.rootState.api.backendInteractor.fetchUserByName({ name })\n .then((user) => {\n store.commit('addNewUsers', [user])\n return user\n })\n },\n fetchUserRelationship (store, id) {\n if (store.state.currentUser) {\n store.rootState.api.backendInteractor.fetchUserRelationship({ id })\n .then((relationships) => store.commit('updateUserRelationship', relationships))\n }\n },\n fetchUserInLists (store, id) {\n if (store.state.currentUser) {\n store.rootState.api.backendInteractor.fetchUserInLists({ id })\n .then((inLists) => store.commit('updateUserInLists', { id, inLists }))\n }\n },\n fetchBlocks (store) {\n return store.rootState.api.backendInteractor.fetchBlocks()\n .then((blocks) => {\n store.commit('saveBlockIds', map(blocks, 'id'))\n store.commit('addNewUsers', blocks)\n return blocks\n })\n },\n blockUser (store, id) {\n return blockUser(store, id)\n },\n unblockUser (store, id) {\n return unblockUser(store, id)\n },\n removeUserFromFollowers (store, id) {\n return removeUserFromFollowers(store, id)\n },\n blockUsers (store, ids = []) {\n return Promise.all(ids.map(id => blockUser(store, id)))\n },\n unblockUsers (store, ids = []) {\n return Promise.all(ids.map(id => unblockUser(store, id)))\n },\n editUserNote (store, args) {\n return editUserNote(store, args)\n },\n fetchMutes (store) {\n return store.rootState.api.backendInteractor.fetchMutes()\n .then((mutes) => {\n store.commit('saveMuteIds', map(mutes, 'id'))\n store.commit('addNewUsers', mutes)\n return mutes\n })\n },\n muteUser (store, id) {\n return muteUser(store, id)\n },\n unmuteUser (store, id) {\n return unmuteUser(store, id)\n },\n hideReblogs (store, id) {\n return hideReblogs(store, id)\n },\n showReblogs (store, id) {\n return showReblogs(store, id)\n },\n muteUsers (store, ids = []) {\n return Promise.all(ids.map(id => muteUser(store, id)))\n },\n unmuteUsers (store, ids = []) {\n return Promise.all(ids.map(id => unmuteUser(store, id)))\n },\n fetchDomainMutes (store) {\n return store.rootState.api.backendInteractor.fetchDomainMutes()\n .then((domainMutes) => {\n store.commit('saveDomainMutes', domainMutes)\n return domainMutes\n })\n },\n muteDomain (store, domain) {\n return muteDomain(store, domain)\n },\n unmuteDomain (store, domain) {\n return unmuteDomain(store, domain)\n },\n muteDomains (store, domains = []) {\n return Promise.all(domains.map(domain => muteDomain(store, domain)))\n },\n unmuteDomains (store, domain = []) {\n return Promise.all(domain.map(domain => unmuteDomain(store, domain)))\n },\n fetchFriends ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.friendIds)\n return rootState.api.backendInteractor.fetchFriends({ id, maxId })\n .then((friends) => {\n commit('addNewUsers', friends)\n commit('saveFriendIds', { id, friendIds: map(friends, 'id') })\n return friends\n })\n },\n fetchFollowers ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.followerIds)\n return rootState.api.backendInteractor.fetchFollowers({ id, maxId })\n .then((followers) => {\n commit('addNewUsers', followers)\n commit('saveFollowerIds', { id, followerIds: map(followers, 'id') })\n return followers\n })\n },\n clearFriends ({ commit }, userId) {\n commit('clearFriends', userId)\n },\n clearFollowers ({ commit }, userId) {\n commit('clearFollowers', userId)\n },\n subscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.subscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n unsubscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.unsubscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n toggleActivationStatus ({ rootState, commit }, { user }) {\n const api = user.deactivated ? rootState.api.backendInteractor.activateUser : rootState.api.backendInteractor.deactivateUser\n api({ user })\n .then((user) => { const deactivated = !user.is_active; commit('updateActivationStatus', { user, deactivated }) })\n },\n registerPushNotifications (store) {\n const token = store.state.currentUser.credentials\n const vapidPublicKey = store.rootState.instance.vapidPublicKey\n const isEnabled = store.rootState.config.webPushNotifications\n const notificationVisibility = store.rootState.config.notificationVisibility\n\n registerPushNotifications(isEnabled, vapidPublicKey, token, notificationVisibility)\n },\n unregisterPushNotifications (store) {\n const token = store.state.currentUser.credentials\n\n unregisterPushNotifications(token)\n },\n addNewUsers ({ commit }, users) {\n commit('addNewUsers', users)\n },\n addNewStatuses (store, { statuses }) {\n const users = map(statuses, 'user')\n const retweetedUsers = compact(map(statuses, 'retweeted_status.user'))\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', retweetedUsers)\n\n each(statuses, (status) => {\n // Reconnect users to statuses\n store.commit('setUserForStatus', status)\n // Set pinned statuses to user\n store.commit('setPinnedToUser', status)\n })\n each(compact(map(statuses, 'retweeted_status')), (status) => {\n // Reconnect users to retweets\n store.commit('setUserForStatus', status)\n // Set pinned retweets to user\n store.commit('setPinnedToUser', status)\n })\n },\n addNewNotifications (store, { notifications }) {\n const users = map(notifications, 'from_profile')\n const targetUsers = map(notifications, 'target').filter(_ => _)\n const notificationIds = notifications.map(_ => _.id)\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', targetUsers)\n\n const notificationsObject = store.rootState.statuses.notifications.idStore\n const relevantNotifications = Object.entries(notificationsObject)\n .filter(([k, val]) => notificationIds.includes(k))\n .map(([k, val]) => val)\n\n // Reconnect users to notifications\n each(relevantNotifications, (notification) => {\n store.commit('setUserForNotification', notification)\n })\n },\n searchUsers ({ rootState, commit }, { query }) {\n return rootState.api.backendInteractor.searchUsers({ query })\n .then((users) => {\n commit('addNewUsers', users)\n return users\n })\n },\n async signUp (store, userInfo) {\n store.commit('signUpPending')\n\n const rootState = store.rootState\n\n try {\n const data = await rootState.api.backendInteractor.register(\n { params: { ...userInfo } }\n )\n store.commit('signUpSuccess')\n store.commit('setToken', data.access_token)\n store.dispatch('loginUser', data.access_token)\n } catch (e) {\n const errors = e.message\n store.commit('signUpFailure', errors)\n throw e\n }\n },\n async getCaptcha (store) {\n return store.rootState.api.backendInteractor.getCaptcha()\n },\n\n logout (store) {\n const { oauth, instance } = store.rootState\n\n const data = {\n ...oauth,\n commit: store.commit,\n instance: instance.server\n }\n\n return oauthApi.getOrCreateApp(data)\n .then((app) => {\n const params = {\n app,\n instance: data.instance,\n token: oauth.userToken\n }\n\n return oauthApi.revokeToken(params)\n })\n .then(() => {\n store.commit('clearCurrentUser')\n store.dispatch('disconnectFromSocket')\n store.commit('clearToken')\n store.dispatch('stopFetchingTimeline', 'friends')\n store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n store.dispatch('stopFetchingNotifications')\n store.dispatch('stopFetchingLists')\n store.dispatch('stopFetchingFollowRequests')\n store.commit('clearNotifications')\n store.commit('resetStatuses')\n store.dispatch('resetChats')\n store.dispatch('setLastTimeline', 'public-timeline')\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n store.commit('clearServerSideStorage')\n })\n },\n loginUser (store, accessToken) {\n return new Promise((resolve, reject) => {\n const commit = store.commit\n commit('beginLogin')\n store.rootState.api.backendInteractor.verifyCredentials(accessToken)\n .then((data) => {\n if (!data.error) {\n const user = data\n // user.credentials = userCredentials\n user.credentials = accessToken\n user.blockIds = []\n user.muteIds = []\n user.domainMutes = []\n commit('setCurrentUser', user)\n commit('setServerSideStorage', user)\n commit('addNewUsers', [user])\n\n store.dispatch('fetchEmoji')\n\n getNotificationPermission()\n .then(permission => commit('setNotificationPermission', permission))\n\n // Set our new backend interactor\n commit('setBackendInteractor', backendInteractorService(accessToken))\n store.dispatch('pushServerSideStorage')\n\n if (user.token) {\n store.dispatch('setWsToken', user.token)\n\n // Initialize the shout socket.\n store.dispatch('initializeSocket')\n }\n\n const startPolling = () => {\n // Start getting fresh posts.\n store.dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n // Start fetching notifications\n store.dispatch('startFetchingNotifications')\n\n // Start fetching chats\n store.dispatch('startFetchingChats')\n }\n\n store.dispatch('startFetchingLists')\n\n if (user.locked) {\n store.dispatch('startFetchingFollowRequests')\n }\n\n if (store.getters.mergedConfig.useStreamingApi) {\n store.dispatch('fetchTimeline', { timeline: 'friends', since: null })\n store.dispatch('fetchNotifications', { since: null })\n store.dispatch('enableMastoSockets', true).catch((error) => {\n console.error('Failed initializing MastoAPI Streaming socket', error)\n }).then(() => {\n store.dispatch('fetchChats', { latest: true })\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n })\n } else {\n startPolling()\n }\n\n // Get user mutes\n store.dispatch('fetchMutes')\n\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n\n // Fetch our friends\n store.rootState.api.backendInteractor.fetchFriends({ id: user.id })\n .then((friends) => commit('addNewUsers', friends))\n } else {\n const response = data.error\n // Authentication failed\n commit('endLogin')\n if (response.status === 401) {\n reject(new Error('Wrong username or password'))\n } else {\n reject(new Error('An error occurred, please try again'))\n }\n }\n commit('endLogin')\n resolve()\n })\n .catch((error) => {\n console.log(error)\n commit('endLogin')\n reject(new Error('Failed to connect to server, try again'))\n })\n })\n }\n }\n}\n\nexport default users\n","import { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const maybeShowChatNotification = (store, chat) => {\n if (!chat.lastMessage) return\n if (store.rootState.chats.currentChatId === chat.id && !document.hidden) return\n if (store.rootState.users.currentUser.id === chat.lastMessage.account_id) return\n\n const opts = {\n tag: chat.lastMessage.id,\n title: chat.account.name,\n icon: chat.account.profile_image_url,\n body: chat.lastMessage.content\n }\n\n if (chat.lastMessage.attachment && chat.lastMessage.attachment.type === 'image') {\n opts.image = chat.lastMessage.attachment.preview_url\n }\n\n showDesktopNotification(store.rootState, opts)\n}\n\nexport const buildFakeMessage = ({ content, chatId, attachments, userId, idempotencyKey }) => {\n const fakeMessage = {\n content,\n chat_id: chatId,\n created_at: new Date(),\n id: `${new Date().getTime()}`,\n attachments,\n account_id: userId,\n idempotency_key: idempotencyKey,\n emojis: [],\n pending: true,\n isNormalized: true\n }\n\n if (attachments[0]) {\n fakeMessage.attachment = attachments[0]\n }\n\n return fakeMessage\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { WSConnectionStatus } from '../services/api/api.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { Socket } from 'phoenix'\n\nconst retryTimeout = (multiplier) => 1000 * multiplier\n\nconst api = {\n state: {\n retryMultiplier: 1,\n backendInteractor: backendInteractorService(),\n fetchers: {},\n socket: null,\n mastoUserSocket: null,\n mastoUserSocketStatus: null,\n followRequests: []\n },\n getters: {\n followRequestCount: state => state.followRequests.length\n },\n mutations: {\n setBackendInteractor (state, backendInteractor) {\n state.backendInteractor = backendInteractor\n },\n addFetcher (state, { fetcherName, fetcher }) {\n state.fetchers[fetcherName] = fetcher\n },\n removeFetcher (state, { fetcherName, fetcher }) {\n state.fetchers[fetcherName].stop()\n delete state.fetchers[fetcherName]\n },\n setWsToken (state, token) {\n state.wsToken = token\n },\n setSocket (state, socket) {\n state.socket = socket\n },\n setFollowRequests (state, value) {\n state.followRequests = value\n },\n setMastoUserSocketStatus (state, value) {\n state.mastoUserSocketStatus = value\n },\n incrementRetryMultiplier (state) {\n state.retryMultiplier = Math.max(++state.retryMultiplier, 3)\n },\n resetRetryMultiplier (state) {\n state.retryMultiplier = 1\n }\n },\n actions: {\n /**\n * Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets\n *\n * @param {Boolean} [initial] - whether this enabling happened at boot time or not\n */\n enableMastoSockets (store, initial) {\n const { state, dispatch, commit } = store\n // Do not initialize unless nonexistent or closed\n if (\n state.mastoUserSocket &&\n ![\n WebSocket.CLOSED,\n WebSocket.CLOSING\n ].includes(state.mastoUserSocket.getState())\n ) {\n return\n }\n if (initial) {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING_INITIAL)\n } else {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING)\n }\n return dispatch('startMastoUserSocket')\n },\n disableMastoSockets (store) {\n const { state, dispatch, commit } = store\n if (!state.mastoUserSocket) return\n commit('setMastoUserSocketStatus', WSConnectionStatus.DISABLED)\n return dispatch('stopMastoUserSocket')\n },\n\n // MastoAPI 'User' sockets\n startMastoUserSocket (store) {\n return new Promise((resolve, reject) => {\n try {\n const { state, commit, dispatch, rootState } = store\n const timelineData = rootState.statuses.timelines.friends\n state.mastoUserSocket = state.backendInteractor.startUserSocket({ store })\n state.mastoUserSocket.addEventListener(\n 'message',\n ({ detail: message }) => {\n if (!message) return // pings\n if (message.event === 'notification') {\n dispatch('addNewNotifications', {\n notifications: [message.notification],\n older: false\n })\n } else if (message.event === 'update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: timelineData.visibleStatuses.length === 0,\n timeline: 'friends'\n })\n } else if (message.event === 'status.update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: message.status.id in timelineData.visibleStatusesObject,\n timeline: 'friends'\n })\n } else if (message.event === 'delete') {\n dispatch('deleteStatusById', message.id)\n } else if (message.event === 'pleroma:chat_update') {\n // The setTimeout wrapper is a temporary band-aid to avoid duplicates for the user's own messages when doing optimistic sending.\n // The cause of the duplicates is the WS event arriving earlier than the HTTP response.\n // This setTimeout wrapper can be removed once the commit `8e41baff` is in the stable Pleroma release.\n // (`8e41baff` adds the idempotency key to the chat message entity, which PleromaFE uses when it's available, and it makes this artificial delay unnecessary).\n setTimeout(() => {\n dispatch('addChatMessages', {\n chatId: message.chatUpdate.id,\n messages: [message.chatUpdate.lastMessage]\n })\n dispatch('updateChat', { chat: message.chatUpdate })\n maybeShowChatNotification(store, message.chatUpdate)\n }, 100)\n }\n }\n )\n state.mastoUserSocket.addEventListener('open', () => {\n // Do not show notification when we just opened up the page\n if (state.mastoUserSocketStatus !== WSConnectionStatus.STARTING_INITIAL) {\n dispatch('pushGlobalNotice', {\n level: 'success',\n messageKey: 'timeline.socket_reconnected',\n timeout: 5000\n })\n }\n // Stop polling if we were errored or disabled\n if (new Set([\n WSConnectionStatus.ERROR,\n WSConnectionStatus.DISABLED\n ]).has(state.mastoUserSocketStatus)) {\n dispatch('stopFetchingTimeline', { timeline: 'friends' })\n dispatch('stopFetchingNotifications')\n dispatch('stopFetchingChats')\n }\n commit('resetRetryMultiplier')\n commit('setMastoUserSocketStatus', WSConnectionStatus.JOINED)\n })\n state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {\n console.error('Error in MastoAPI websocket:', error)\n // TODO is this needed?\n dispatch('clearOpenedChats')\n })\n state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => {\n const ignoreCodes = new Set([\n 1000, // Normal (intended) closure\n 1001 // Going away\n ])\n const { code } = closeEvent\n if (ignoreCodes.has(code)) {\n console.debug(`Not restarting socket becasue of closure code ${code} is in ignore list`)\n commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED)\n } else {\n console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)\n setTimeout(() => {\n dispatch('startMastoUserSocket')\n }, retryTimeout(state.retryMultiplier))\n commit('incrementRetryMultiplier')\n if (state.mastoUserSocketStatus !== WSConnectionStatus.ERROR) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.socket_broke',\n messageArgs: [code],\n timeout: 5000\n })\n }\n commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR)\n }\n dispatch('clearOpenedChats')\n })\n resolve()\n } catch (e) {\n reject(e)\n }\n })\n },\n stopMastoUserSocket ({ state, dispatch }) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n state.mastoUserSocket.close()\n },\n\n // Timelines\n startFetchingTimeline (store, {\n timeline = 'friends',\n tag = false,\n userId = false,\n listId = false\n }) {\n if (store.state.fetchers[timeline]) return\n\n const fetcher = store.state.backendInteractor.startFetchingTimeline({\n timeline, store, userId, listId, tag\n })\n store.commit('addFetcher', { fetcherName: timeline, fetcher })\n },\n stopFetchingTimeline (store, timeline) {\n const fetcher = store.state.fetchers[timeline]\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: timeline, fetcher })\n },\n fetchTimeline (store, { timeline, ...rest }) {\n store.state.backendInteractor.fetchTimeline({\n store,\n timeline,\n ...rest\n })\n },\n\n // Notifications\n startFetchingNotifications (store) {\n if (store.state.fetchers.notifications) return\n const fetcher = store.state.backendInteractor.startFetchingNotifications({ store })\n store.commit('addFetcher', { fetcherName: 'notifications', fetcher })\n },\n stopFetchingNotifications (store) {\n const fetcher = store.state.fetchers.notifications\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'notifications', fetcher })\n },\n fetchNotifications (store, { ...rest }) {\n store.state.backendInteractor.fetchNotifications({\n store,\n ...rest\n })\n },\n\n // Follow requests\n startFetchingFollowRequests (store) {\n if (store.state.fetchers.followRequests) return\n const fetcher = store.state.backendInteractor.startFetchingFollowRequests({ store })\n\n store.commit('addFetcher', { fetcherName: 'followRequests', fetcher })\n },\n stopFetchingFollowRequests (store) {\n const fetcher = store.state.fetchers.followRequests\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'followRequests', fetcher })\n },\n removeFollowRequest (store, request) {\n const requests = store.state.followRequests.filter((it) => it !== request)\n store.commit('setFollowRequests', requests)\n },\n\n // Lists\n startFetchingLists (store) {\n if (store.state.fetchers.lists) return\n const fetcher = store.state.backendInteractor.startFetchingLists({ store })\n store.commit('addFetcher', { fetcherName: 'lists', fetcher })\n },\n stopFetchingLists (store) {\n const fetcher = store.state.fetchers.lists\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'lists', fetcher })\n },\n\n // Pleroma websocket\n setWsToken (store, token) {\n store.commit('setWsToken', token)\n },\n initializeSocket ({ dispatch, commit, state, rootState }) {\n // Set up websocket connection\n const token = state.wsToken\n if (rootState.instance.shoutAvailable && typeof token !== 'undefined' && state.socket === null) {\n const socket = new Socket('/socket', { params: { token } })\n socket.connect()\n\n commit('setSocket', socket)\n dispatch('initializeShout', socket)\n }\n },\n disconnectFromSocket ({ commit, state }) {\n state.socket && state.socket.disconnect()\n commit('setSocket', null)\n }\n }\n}\n\nexport default api\n","import Modal from 'src/components/modal/modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport pleromaTan from 'src/assets/pleromatan_apology.png'\nimport pleromaTanFox from 'src/assets/pleromatan_apology_fox.png'\nimport pleromaTanMask from 'src/assets/pleromatan_apology_mask.png'\nimport pleromaTanFoxMask from 'src/assets/pleromatan_apology_fox_mask.png'\n\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nlibrary.add(\n faTimes\n)\n\nexport const CURRENT_UPDATE_COUNTER = 1\n\nconst UpdateNotification = {\n data () {\n return {\n showingImage: false,\n pleromaTanVariant: Math.random() > 0.5 ? pleromaTan : pleromaTanFox,\n showingMore: false\n }\n },\n components: {\n Modal\n },\n computed: {\n pleromaTanStyles () {\n const mask = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n return {\n 'shape-outside': 'url(' + mask + ')'\n }\n },\n shouldShow () {\n return !this.$store.state.instance.disableUpdateNotification &&\n this.$store.state.users.currentUser &&\n this.$store.state.serverSideStorage.flagStorage.updateCounter < CURRENT_UPDATE_COUNTER &&\n !this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs\n }\n },\n methods: {\n toggleShow () {\n this.showingMore = !this.showingMore\n },\n neverShowAgain () {\n this.toggleShow()\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.commit('setPreference', { path: 'simple.dontShowUpdateNotifs', value: true })\n this.$store.dispatch('pushServerSideStorage')\n },\n dismiss () {\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n mounted () {\n this.contentHeightNoImage = this.$refs.animatedText.scrollHeight\n\n // Workaround to get the text height only after mask loaded. A bit hacky.\n const newImg = new Image()\n newImg.onload = () => {\n setTimeout(() => { this.showingImage = true }, 100)\n }\n newImg.src = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n }\n}\n\nexport default UpdateNotification\n","import { toRaw } from 'vue'\nimport { isEqual, cloneDeep, set, get, clamp, flatten, groupBy, findLastIndex, takeRight, uniqWith } from 'lodash'\nimport { CURRENT_UPDATE_COUNTER } from 'src/components/update_notification/update_notification.js'\n\nexport const VERSION = 1\nexport const NEW_USER_DATE = new Date('2022-08-04') // date of writing this, basically\n\nexport const COMMAND_TRIM_FLAGS = 1000\nexport const COMMAND_TRIM_FLAGS_AND_RESET = 1001\n\nexport const defaultState = {\n // do we need to update data on server?\n dirty: false,\n // storage of flags - stuff that can only be set and incremented\n flagStorage: {\n updateCounter: 0, // Counter for most recent update notification seen\n reset: 0 // special flag that can be used to force-reset all flags, debug purposes only\n // special reset codes:\n // 1000: trim keys to those known by currently running FE\n // 1001: same as above + reset everything to 0\n },\n prefsStorage: {\n _journal: [],\n simple: {\n dontShowUpdateNotifs: false,\n collapseNav: false\n },\n collections: {\n pinnedNavItems: ['home', 'dms', 'chats']\n }\n },\n // raw data\n raw: null,\n // local cache\n cache: null\n}\n\nexport const newUserFlags = {\n ...defaultState.flagStorage,\n updateCounter: CURRENT_UPDATE_COUNTER // new users don't need to see update notification\n}\n\nexport const _moveItemInArray = (array, value, movement) => {\n const oldIndex = array.indexOf(value)\n const newIndex = oldIndex + movement\n const newArray = [...array]\n // remove old\n newArray.splice(oldIndex, 1)\n // add new\n newArray.splice(clamp(newIndex, 0, newArray.length + 1), 0, value)\n return newArray\n}\n\nconst _wrapData = (data, userName) => ({\n ...data,\n _user: userName,\n _timestamp: Date.now(),\n _version: VERSION\n})\n\nconst _checkValidity = (data) => data._timestamp > 0 && data._version > 0\n\nconst _verifyPrefs = (state) => {\n state.prefsStorage = state.prefsStorage || {\n simple: {},\n collections: {}\n }\n Object.entries(defaultState.prefsStorage.simple).forEach(([k, v]) => {\n if (typeof v === 'number' || typeof v === 'boolean') return\n console.warn(`Preference simple.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.simple, k, defaultState.prefsStorage.simple[k])\n })\n Object.entries(defaultState.prefsStorage.collections).forEach(([k, v]) => {\n if (Array.isArray(v)) return\n console.warn(`Preference collections.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.collections, k, defaultState.prefsStorage.collections[k])\n })\n}\n\nexport const _getRecentData = (cache, live) => {\n const result = { recent: null, stale: null, needUpload: false }\n const cacheValid = _checkValidity(cache || {})\n const liveValid = _checkValidity(live || {})\n if (!liveValid && cacheValid) {\n result.needUpload = true\n console.debug('Nothing valid stored on server, assuming cache to be source of truth')\n result.recent = cache\n result.stale = live\n } else if (!cacheValid && liveValid) {\n console.debug('Valid storage on server found, no local cache found, using live as source of truth')\n result.recent = live\n result.stale = cache\n } else if (cacheValid && liveValid) {\n console.debug('Both sources have valid data, figuring things out...')\n if (live._timestamp === cache._timestamp && live._version === cache._version) {\n console.debug('Same version/timestamp on both source, source of truth irrelevant')\n result.recent = cache\n result.stale = live\n } else {\n console.debug('Different timestamp, figuring out which one is more recent')\n if (live._timestamp < cache._timestamp) {\n result.recent = cache\n result.stale = live\n } else {\n result.recent = live\n result.stale = cache\n }\n }\n } else {\n console.debug('Both sources are invalid, start from scratch')\n result.needUpload = true\n }\n return result\n}\n\nexport const _getAllFlags = (recent, stale) => {\n return Array.from(new Set([\n ...Object.keys(toRaw((recent || {}).flagStorage || {})),\n ...Object.keys(toRaw((stale || {}).flagStorage || {}))\n ]))\n}\n\nexport const _mergeFlags = (recent, stale, allFlagKeys) => {\n if (!stale.flagStorage) return recent.flagStorage\n if (!recent.flagStorage) return stale.flagStorage\n return Object.fromEntries(allFlagKeys.map(flag => {\n const recentFlag = recent.flagStorage[flag]\n const staleFlag = stale.flagStorage[flag]\n // use flag that is of higher value\n return [flag, Number((recentFlag > staleFlag ? recentFlag : staleFlag) || 0)]\n }))\n}\n\nconst _mergeJournal = (...journals) => {\n // Ignore invalid journal entries\n const allJournals = flatten(\n journals.map(j => Array.isArray(j) ? j : [])\n ).filter(entry =>\n Object.prototype.hasOwnProperty.call(entry, 'path') &&\n Object.prototype.hasOwnProperty.call(entry, 'operation') &&\n Object.prototype.hasOwnProperty.call(entry, 'args') &&\n Object.prototype.hasOwnProperty.call(entry, 'timestamp')\n )\n const grouped = groupBy(allJournals, 'path')\n const trimmedGrouped = Object.entries(grouped).map(([path, journal]) => {\n // side effect\n journal.sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n\n if (path.startsWith('collections')) {\n const lastRemoveIndex = findLastIndex(journal, ({ operation }) => operation === 'removeFromCollection')\n // everything before last remove is unimportant\n let remainder\n if (lastRemoveIndex > 0) {\n remainder = journal.slice(lastRemoveIndex)\n } else {\n // everything else doesn't need trimming\n remainder = journal\n }\n return uniqWith(remainder, (a, b) => {\n if (a.path !== b.path) { return false }\n if (a.operation !== b.operation) { return false }\n if (a.operation === 'addToCollection') {\n return a.args[0] === b.args[0]\n }\n return false\n })\n } else if (path.startsWith('simple')) {\n // Only the last record is important\n return takeRight(journal)\n } else {\n return journal\n }\n })\n return flatten(trimmedGrouped)\n .sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n}\n\nexport const _mergePrefs = (recent, stale, allFlagKeys) => {\n if (!stale) return recent\n if (!recent) return stale\n const { _journal: recentJournal, ...recentData } = recent\n const { _journal: staleJournal } = stale\n /** Journal entry format:\n * path: path to entry in prefsStorage\n * timestamp: timestamp of the change\n * operation: operation type\n * arguments: array of arguments, depends on operation type\n *\n * currently only supported operation type is \"set\" which just sets the value\n * to requested one. Intended only to be used with simple preferences (boolean, number)\n * shouldn't be used with collections!\n */\n const resultOutput = { ...recentData }\n const totalJournal = _mergeJournal(staleJournal, recentJournal)\n totalJournal.forEach(({ path, timestamp, operation, command, args }) => {\n if (path.startsWith('_')) {\n console.error(`journal contains entry to edit internal (starts with _) field '${path}', something is incorrect here, ignoring.`)\n return\n }\n switch (operation) {\n case 'set':\n set(resultOutput, path, args[0])\n break\n case 'addToCollection':\n set(resultOutput, path, Array.from(new Set(get(resultOutput, path)).add(args[0])))\n break\n case 'removeFromCollection': {\n const newSet = new Set(get(resultOutput, path))\n newSet.delete(args[0])\n set(resultOutput, path, Array.from(newSet))\n break\n }\n case 'reorderCollection': {\n const [value, movement] = args\n set(resultOutput, path, _moveItemInArray(get(resultOutput, path), value, movement))\n break\n }\n default:\n console.error(`Unknown journal operation: '${operation}', did we forget to run reverse migrations beforehand?`)\n }\n })\n return { ...resultOutput, _journal: totalJournal }\n}\n\nexport const _resetFlags = (totalFlags, knownKeys = defaultState.flagStorage) => {\n let result = { ...totalFlags }\n const allFlagKeys = Object.keys(totalFlags)\n // flag reset functionality\n if (totalFlags.reset >= COMMAND_TRIM_FLAGS && totalFlags.reset <= COMMAND_TRIM_FLAGS_AND_RESET) {\n console.debug('Received command to trim the flags')\n const knownKeysSet = new Set(Object.keys(knownKeys))\n\n // Trim\n result = {}\n allFlagKeys.forEach(flag => {\n if (knownKeysSet.has(flag)) {\n result[flag] = totalFlags[flag]\n }\n })\n\n // Reset\n if (totalFlags.reset === COMMAND_TRIM_FLAGS_AND_RESET) {\n // 1001 - and reset everything to 0\n console.debug('Received command to reset the flags')\n Object.keys(knownKeys).forEach(flag => { result[flag] = 0 })\n }\n } else if (totalFlags.reset > 0 && totalFlags.reset < 9000) {\n console.debug('Received command to reset the flags')\n allFlagKeys.forEach(flag => { result[flag] = 0 })\n }\n result.reset = 0\n return result\n}\n\nexport const _doMigrations = (cache) => {\n if (!cache) return cache\n\n if (cache._version < VERSION) {\n console.debug('Local cached data has older version, seeing if there any migrations that can be applied')\n\n // no migrations right now since we only have one version\n console.debug('No migrations found')\n }\n\n if (cache._version > VERSION) {\n console.debug('Local cached data has newer version, seeing if there any reverse migrations that can be applied')\n\n // no reverse migrations right now but we leave a possibility of loading a hotpatch if need be\n if (window._PLEROMA_HOTPATCH) {\n if (window._PLEROMA_HOTPATCH.reverseMigrations) {\n console.debug('Found hotpatch migration, applying')\n return window._PLEROMA_HOTPATCH.reverseMigrations.call({}, 'serverSideStorage', { from: cache._version, to: VERSION }, cache)\n }\n }\n }\n\n return cache\n}\n\nexport const mutations = {\n clearServerSideStorage (state, userData) {\n state = { ...cloneDeep(defaultState) }\n },\n setServerSideStorage (state, userData) {\n const live = userData.storage\n state.raw = live\n let cache = state.cache\n if (cache && cache._user !== userData.fqn) {\n console.warn('cache belongs to another user! reinitializing local cache!')\n cache = null\n }\n\n cache = _doMigrations(cache)\n\n let { recent, stale, needsUpload } = _getRecentData(cache, live)\n\n const userNew = userData.created_at > NEW_USER_DATE\n const flagsTemplate = userNew ? newUserFlags : defaultState.flagStorage\n let dirty = false\n\n if (recent === null) {\n console.debug(`Data is empty, initializing for ${userNew ? 'new' : 'existing'} user`)\n recent = _wrapData({\n flagStorage: { ...flagsTemplate },\n prefsStorage: { ...defaultState.prefsStorage }\n })\n }\n\n if (!needsUpload && recent && stale) {\n console.debug('Checking if data needs merging...')\n // discarding timestamps and versions\n const { _timestamp: _0, _version: _1, ...recentData } = recent\n const { _timestamp: _2, _version: _3, ...staleData } = stale\n dirty = !isEqual(recentData, staleData)\n console.debug(`Data ${dirty ? 'needs' : 'doesn\\'t need'} merging`)\n }\n\n const allFlagKeys = _getAllFlags(recent, stale)\n let totalFlags\n let totalPrefs\n if (dirty) {\n // Merge the flags\n console.debug('Merging the data...')\n totalFlags = _mergeFlags(recent, stale, allFlagKeys)\n _verifyPrefs(recent)\n _verifyPrefs(stale)\n totalPrefs = _mergePrefs(recent.prefsStorage, stale.prefsStorage)\n } else {\n totalFlags = recent.flagStorage\n totalPrefs = recent.prefsStorage\n }\n\n totalFlags = _resetFlags(totalFlags)\n\n recent.flagStorage = { ...flagsTemplate, ...totalFlags }\n recent.prefsStorage = { ...defaultState.prefsStorage, ...totalPrefs }\n\n state.dirty = dirty || needsUpload\n state.cache = recent\n // set local timestamp to smaller one if we don't have any changes\n if (stale && recent && !state.dirty) {\n state.cache._timestamp = Math.min(stale._timestamp, recent._timestamp)\n }\n state.flagStorage = state.cache.flagStorage\n state.prefsStorage = state.cache.prefsStorage\n },\n setFlag (state, { flag, value }) {\n state.flagStorage[flag] = value\n state.dirty = true\n },\n setPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n set(state.prefsStorage, path, value)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'set', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n addCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.add(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'addToCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n removeCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.delete(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'removeFromCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n reorderCollectionPreference (state, { path, value, movement }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = get(state.prefsStorage, path)\n const newCollection = _moveItemInArray(collection, value, movement)\n set(state.prefsStorage, path, newCollection)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'arrangeCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n updateCache (state, { username }) {\n state.prefsStorage._journal = _mergeJournal(state.prefsStorage._journal)\n state.cache = _wrapData({\n flagStorage: toRaw(state.flagStorage),\n prefsStorage: toRaw(state.prefsStorage)\n }, username)\n }\n}\n\nconst serverSideStorage = {\n state: {\n ...cloneDeep(defaultState)\n },\n mutations,\n actions: {\n pushServerSideStorage ({ state, rootState, commit }, { force = false } = {}) {\n const needPush = state.dirty || force\n console.log(needPush)\n if (!needPush) return\n commit('updateCache', { username: rootState.users.currentUser.fqn })\n const params = { pleroma_settings_store: { 'pleroma-fe': state.cache } }\n rootState.api.backendInteractor\n .updateProfile({ params })\n .then((user) => {\n commit('setServerSideStorage', user)\n state.dirty = false\n })\n }\n }\n}\n\nexport default serverSideStorage\n","const shout = {\n state: {\n messages: [],\n channel: { state: '' },\n joined: false\n },\n mutations: {\n setChannel (state, channel) {\n state.channel = channel\n },\n addMessage (state, message) {\n state.messages.push(message)\n state.messages = state.messages.slice(-19, 20)\n },\n setMessages (state, messages) {\n state.messages = messages.slice(-19, 20)\n },\n setJoined (state, joined) {\n state.joined = joined\n }\n },\n actions: {\n initializeShout (store, socket) {\n const channel = socket.channel('chat:public')\n channel.joinPush.receive('ok', () => {\n store.commit('setJoined', true)\n })\n channel.onClose(() => {\n store.commit('setJoined', false)\n })\n channel.onError(() => {\n store.commit('setJoined', false)\n })\n channel.on('new_msg', (msg) => {\n store.commit('addMessage', msg)\n })\n channel.on('messages', ({ messages }) => {\n store.commit('setMessages', messages)\n })\n channel.join()\n store.commit('setChannel', channel)\n }\n }\n}\n\nexport default shout\n","const oauth = {\n state: {\n clientId: false,\n clientSecret: false,\n /* App token is authentication for app without any user, used mostly for\n * MastoAPI's registration of new users, stored so that we can fall back to\n * it on logout\n */\n appToken: false,\n /* User token is authentication for app with user, this is for every calls\n * that need authorized user to be successful (i.e. posting, liking etc)\n */\n userToken: false\n },\n mutations: {\n setClientData (state, { clientId, clientSecret }) {\n state.clientId = clientId\n state.clientSecret = clientSecret\n },\n setAppToken (state, token) {\n state.appToken = token\n },\n setToken (state, token) {\n state.userToken = token\n },\n clearToken (state) {\n state.userToken = false\n // state.token is userToken with older name, coming from persistent state\n // let's clear it as well, since it is being used as a fallback of state.userToken\n delete state.token\n }\n },\n getters: {\n getToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token || state.appToken\n },\n getUserToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token\n }\n }\n}\n\nexport default oauth\n","const PASSWORD_STRATEGY = 'password'\nconst TOKEN_STRATEGY = 'token'\n\n// MFA strategies\nconst TOTP_STRATEGY = 'totp'\nconst RECOVERY_STRATEGY = 'recovery'\n\n// initial state\nconst state = {\n settings: {},\n strategy: PASSWORD_STRATEGY,\n initStrategy: PASSWORD_STRATEGY // default strategy from config\n}\n\nconst resetState = (state) => {\n state.strategy = state.initStrategy\n state.settings = {}\n}\n\n// getters\nconst getters = {\n settings: (state, getters) => {\n return state.settings\n },\n requiredPassword: (state, getters, rootState) => {\n return state.strategy === PASSWORD_STRATEGY\n },\n requiredToken: (state, getters, rootState) => {\n return state.strategy === TOKEN_STRATEGY\n },\n requiredTOTP: (state, getters, rootState) => {\n return state.strategy === TOTP_STRATEGY\n },\n requiredRecovery: (state, getters, rootState) => {\n return state.strategy === RECOVERY_STRATEGY\n }\n}\n\n// mutations\nconst mutations = {\n setInitialStrategy (state, strategy) {\n if (strategy) {\n state.initStrategy = strategy\n state.strategy = strategy\n }\n },\n requirePassword (state) {\n state.strategy = PASSWORD_STRATEGY\n },\n requireToken (state) {\n state.strategy = TOKEN_STRATEGY\n },\n requireMFA (state, { settings }) {\n state.settings = settings\n state.strategy = TOTP_STRATEGY // default strategy of MFA\n },\n requireRecovery (state) {\n state.strategy = RECOVERY_STRATEGY\n },\n requireTOTP (state) {\n state.strategy = TOTP_STRATEGY\n },\n abortMFA (state) {\n resetState(state)\n }\n}\n\n// actions\nconst actions = {\n // eslint-disable-next-line camelcase\n async login ({ state, dispatch, commit }, { access_token }) {\n commit('setToken', access_token, { root: true })\n await dispatch('loginUser', access_token, { root: true })\n resetState(state)\n }\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions\n}\n","import fileTypeService from '../services/file_type/file_type.service.js'\nconst supportedTypes = new Set(['image', 'video', 'audio', 'flash'])\n\nconst mediaViewer = {\n state: {\n media: [],\n currentIndex: 0,\n activated: false\n },\n mutations: {\n setMedia (state, media) {\n state.media = media\n },\n setCurrentMedia (state, index) {\n state.activated = true\n state.currentIndex = index\n },\n close (state) {\n state.activated = false\n }\n },\n actions: {\n setMedia ({ commit }, attachments) {\n const media = attachments.filter(attachment => {\n const type = fileTypeService.fileType(attachment.mimetype)\n return supportedTypes.has(type)\n })\n commit('setMedia', media)\n },\n setCurrentMedia ({ commit, state }, current) {\n const index = state.media.indexOf(current)\n commit('setCurrentMedia', index || 0)\n },\n closeMediaViewer ({ commit }) {\n commit('close')\n }\n }\n}\n\nexport default mediaViewer\n","const oauthTokens = {\n state: {\n tokens: []\n },\n actions: {\n fetchTokens ({ rootState, commit }) {\n rootState.api.backendInteractor.fetchOAuthTokens().then((tokens) => {\n commit('swapTokens', tokens)\n })\n },\n revokeToken ({ rootState, commit, state }, id) {\n rootState.api.backendInteractor.revokeOAuthToken({ id }).then((response) => {\n if (response.status === 201) {\n commit('swapTokens', state.tokens.filter(token => token.id !== id))\n }\n })\n }\n },\n mutations: {\n swapTokens (state, tokens) {\n state.tokens = tokens\n }\n }\n}\n\nexport default oauthTokens\n","import filter from 'lodash/filter'\n\nconst reports = {\n state: {\n reportModal: {\n userId: null,\n statuses: [],\n preTickedIds: [],\n activated: false\n },\n reports: {}\n },\n mutations: {\n openUserReportingModal (state, { userId, statuses, preTickedIds }) {\n state.reportModal.userId = userId\n state.reportModal.statuses = statuses\n state.reportModal.preTickedIds = preTickedIds\n state.reportModal.activated = true\n },\n closeUserReportingModal (state) {\n state.reportModal.activated = false\n },\n setReportState (reportsState, { id, state }) {\n reportsState.reports[id].state = state\n },\n addReport (state, report) {\n state.reports[report.id] = report\n }\n },\n actions: {\n openUserReportingModal ({ rootState, commit }, { userId, statusIds = [] }) {\n const preTickedStatuses = statusIds.map(id => rootState.statuses.allStatusesObject[id])\n const preTickedIds = statusIds\n const statuses = preTickedStatuses.concat(\n filter(rootState.statuses.allStatuses,\n status => status.user.id === userId && !preTickedIds.includes(status.id)\n )\n )\n commit('openUserReportingModal', { userId, statuses, preTickedIds })\n },\n closeUserReportingModal ({ commit }) {\n commit('closeUserReportingModal')\n },\n setReportState ({ commit, dispatch, rootState }, { id, state }) {\n const oldState = rootState.reports.reports[id].state\n commit('setReportState', { id, state })\n rootState.api.backendInteractor.setReportState({ id, state }).catch(e => {\n console.error('Failed to set report state', e)\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'general.generic_error_message',\n messageArgs: [e.message],\n timeout: 5000\n })\n commit('setReportState', { id, state: oldState })\n })\n },\n addReport ({ commit }, report) {\n commit('addReport', report)\n }\n }\n}\n\nexport default reports\n","import { merge } from 'lodash'\n\nconst polls = {\n state: {\n // Contains key = id, value = number of trackers for this poll\n trackedPolls: {},\n pollsObject: {}\n },\n mutations: {\n mergeOrAddPoll (state, poll) {\n const existingPoll = state.pollsObject[poll.id]\n // Make expired-state change trigger re-renders properly\n poll.expired = Date.now() > Date.parse(poll.expires_at)\n if (existingPoll) {\n state.pollsObject[poll.id] = merge(existingPoll, poll)\n } else {\n state.pollsObject[poll.id] = poll\n }\n },\n trackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue + 1\n } else {\n state.trackedPolls[pollId] = 1\n }\n },\n untrackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue - 1\n } else {\n state.trackedPolls[pollId] = 0\n }\n }\n },\n actions: {\n mergeOrAddPoll ({ commit }, poll) {\n commit('mergeOrAddPoll', poll)\n },\n updateTrackedPoll ({ rootState, dispatch, commit }, pollId) {\n rootState.api.backendInteractor.fetchPoll({ pollId }).then(poll => {\n setTimeout(() => {\n if (rootState.polls.trackedPolls[pollId]) {\n dispatch('updateTrackedPoll', pollId)\n }\n }, 30 * 1000)\n commit('mergeOrAddPoll', poll)\n })\n },\n trackPoll ({ rootState, commit, dispatch }, pollId) {\n if (!rootState.polls.trackedPolls[pollId]) {\n setTimeout(() => dispatch('updateTrackedPoll', pollId), 30 * 1000)\n }\n commit('trackPoll', pollId)\n },\n untrackPoll ({ commit }, pollId) {\n commit('untrackPoll', pollId)\n },\n votePoll ({ rootState, commit }, { id, pollId, choices }) {\n return rootState.api.backendInteractor.vote({ pollId, choices }).then(poll => {\n commit('mergeOrAddPoll', poll)\n return poll\n })\n }\n }\n}\n\nexport default polls\n","const postStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openPostStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closePostStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openPostStatusModal ({ commit }, params) {\n commit('openPostStatusModal', params)\n },\n closePostStatusModal ({ commit }) {\n commit('closePostStatusModal')\n }\n }\n}\n\nexport default postStatus\n","const editStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openEditStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeEditStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openEditStatusModal ({ commit }, params) {\n commit('openEditStatusModal', params)\n },\n closeEditStatusModal ({ commit }) {\n commit('closeEditStatusModal')\n }\n }\n}\n\nexport default editStatus\n","const statusHistory = {\n state: {\n params: {},\n modalActivated: false\n },\n mutations: {\n openStatusHistoryModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeStatusHistoryModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openStatusHistoryModal ({ commit }, params) {\n commit('openStatusHistoryModal', params)\n },\n closeStatusHistoryModal ({ commit }) {\n commit('closeStatusHistoryModal')\n }\n }\n}\n\nexport default statusHistory\n","import _ from 'lodash'\n\nconst empty = (chatId) => {\n return {\n idIndex: {},\n idempotencyKeyIndex: {},\n messages: [],\n newMessageCount: 0,\n lastSeenMessageId: '0',\n chatId,\n minId: undefined,\n maxId: undefined\n }\n}\n\nconst clear = (storage) => {\n const failedMessageIds = []\n\n for (const message of storage.messages) {\n if (message.error) {\n failedMessageIds.push(message.id)\n } else {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n\n storage.messages = storage.messages.filter(m => failedMessageIds.includes(m.id))\n storage.newMessageCount = 0\n storage.lastSeenMessageId = '0'\n storage.minId = undefined\n storage.maxId = undefined\n}\n\nconst deleteMessage = (storage, messageId) => {\n if (!storage) { return }\n storage.messages = storage.messages.filter(m => m.id !== messageId)\n delete storage.idIndex[messageId]\n\n if (storage.maxId === messageId) {\n const lastMessage = _.maxBy(storage.messages, 'id')\n storage.maxId = lastMessage.id\n }\n\n if (storage.minId === messageId) {\n const firstMessage = _.minBy(storage.messages, 'id')\n storage.minId = firstMessage.id\n }\n}\n\nconst cullOlderMessages = (storage) => {\n const maxIndex = storage.messages.length\n const minIndex = maxIndex - 50\n if (maxIndex <= 50) return\n\n storage.messages = _.sortBy(storage.messages, ['id'])\n storage.minId = storage.messages[minIndex].id\n for (const message of storage.messages) {\n if (message.id < storage.minId) {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n storage.messages = storage.messages.slice(minIndex, maxIndex)\n}\n\nconst handleMessageError = (storage, fakeId, isRetry) => {\n if (!storage) { return }\n const fakeMessage = storage.idIndex[fakeId]\n if (fakeMessage) {\n fakeMessage.error = true\n fakeMessage.pending = false\n if (!isRetry) {\n // Ensure the failed message doesn't stay at the bottom of the list.\n const lastPersistedMessage = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'desc'])[0]\n if (lastPersistedMessage) {\n const oldId = fakeMessage.id\n fakeMessage.id = `${lastPersistedMessage.id}-${new Date().getTime()}`\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[oldId]\n }\n }\n }\n}\n\nconst add = (storage, { messages: newMessages, updateMaxId = true }) => {\n if (!storage) { return }\n for (let i = 0; i < newMessages.length; i++) {\n const message = newMessages[i]\n\n // sanity check\n if (message.chat_id !== storage.chatId) { return }\n\n if (message.fakeId) {\n const fakeMessage = storage.idIndex[message.fakeId]\n if (fakeMessage) {\n // In case the same id exists (chat update before POST response)\n // make sure to remove the older duplicate message.\n if (storage.idIndex[message.id]) {\n delete storage.idIndex[message.id]\n storage.messages = storage.messages.filter(msg => msg.id !== message.id)\n }\n Object.assign(fakeMessage, message, { error: false })\n delete fakeMessage.fakeId\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[message.fakeId]\n\n return\n }\n }\n\n if (!storage.minId || (!message.pending && message.id < storage.minId)) {\n storage.minId = message.id\n }\n\n if (!storage.maxId || message.id > storage.maxId) {\n if (updateMaxId) {\n storage.maxId = message.id\n }\n }\n\n if (!storage.idIndex[message.id] && !isConfirmation(storage, message)) {\n if (storage.lastSeenMessageId < message.id) {\n storage.newMessageCount++\n }\n storage.idIndex[message.id] = message\n storage.messages.push(storage.idIndex[message.id])\n storage.idempotencyKeyIndex[message.idempotency_key] = true\n }\n }\n}\n\nconst isConfirmation = (storage, message) => {\n if (!message.idempotency_key) return\n return storage.idempotencyKeyIndex[message.idempotency_key]\n}\n\nconst resetNewMessageCount = (storage) => {\n if (!storage) { return }\n storage.newMessageCount = 0\n storage.lastSeenMessageId = storage.maxId\n}\n\n// Inserts date separators and marks the head and tail if it's the chain of messages made by the same user\nconst getView = (storage) => {\n if (!storage) { return [] }\n\n const result = []\n const messages = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'asc'])\n const firstMessage = messages[0]\n let previousMessage = messages[messages.length - 1]\n let currentMessageChainId\n\n if (firstMessage) {\n const date = new Date(firstMessage.created_at)\n date.setHours(0, 0, 0, 0)\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n }\n\n let afterDate = false\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]\n const nextMessage = messages[i + 1]\n\n const date = new Date(message.created_at)\n date.setHours(0, 0, 0, 0)\n\n // insert date separator and start a new message chain\n if (previousMessage && previousMessage.date < date) {\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n\n previousMessage.isTail = true\n currentMessageChainId = undefined\n afterDate = true\n }\n\n const object = {\n type: 'message',\n data: message,\n date,\n id: message.id,\n messageChainId: currentMessageChainId\n }\n\n // end a message chian\n if ((nextMessage && nextMessage.account_id) !== message.account_id) {\n object.isTail = true\n currentMessageChainId = undefined\n }\n\n // start a new message chain\n if ((previousMessage && previousMessage.data && previousMessage.data.account_id) !== message.account_id || afterDate) {\n currentMessageChainId = _.uniqueId()\n object.isHead = true\n object.messageChainId = currentMessageChainId\n }\n\n result.push(object)\n previousMessage = object\n afterDate = false\n }\n\n return result\n}\n\nconst ChatService = {\n add,\n empty,\n getView,\n deleteMessage,\n cullOlderMessages,\n resetNewMessageCount,\n clear,\n handleMessageError\n}\n\nexport default ChatService\n","import { reactive } from 'vue'\nimport { find, omitBy, orderBy, sumBy } from 'lodash'\nimport chatService from '../services/chat_service/chat_service.js'\nimport { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { promiseInterval } from '../services/promise_interval/promise_interval.js'\n\nconst emptyChatList = () => ({\n data: [],\n idStore: {}\n})\n\nconst defaultState = {\n chatList: emptyChatList(),\n chatListFetcher: null,\n openedChats: reactive({}),\n openedChatMessageServices: reactive({}),\n fetcher: undefined,\n currentChatId: null,\n lastReadMessageId: null\n}\n\nconst getChatById = (state, id) => {\n return find(state.chatList.data, { id })\n}\n\nconst sortedChatList = (state) => {\n return orderBy(state.chatList.data, ['updated_at'], ['desc'])\n}\n\nconst unreadChatCount = (state) => {\n return sumBy(state.chatList.data, 'unread')\n}\n\nconst chats = {\n state: { ...defaultState },\n getters: {\n currentChat: state => state.openedChats[state.currentChatId],\n currentChatMessageService: state => state.openedChatMessageServices[state.currentChatId],\n findOpenedChatByRecipientId: state => recipientId => find(state.openedChats, c => c.account.id === recipientId),\n sortedChatList,\n unreadChatCount\n },\n actions: {\n // Chat list\n startFetchingChats ({ dispatch, commit }) {\n const fetcher = () => dispatch('fetchChats', { latest: true })\n fetcher()\n commit('setChatListFetcher', {\n fetcher: () => promiseInterval(fetcher, 5000)\n })\n },\n stopFetchingChats ({ commit }) {\n commit('setChatListFetcher', { fetcher: undefined })\n },\n fetchChats ({ dispatch, rootState, commit }, params = {}) {\n return rootState.api.backendInteractor.chats()\n .then(({ chats }) => {\n dispatch('addNewChats', { chats })\n return chats\n })\n },\n addNewChats (store, { chats }) {\n const { commit, dispatch, rootGetters } = store\n const newChatMessageSideEffects = (chat) => {\n maybeShowChatNotification(store, chat)\n }\n commit('addNewChats', { dispatch, chats, rootGetters, newChatMessageSideEffects })\n },\n updateChat ({ commit }, { chat }) {\n commit('updateChat', { chat })\n },\n\n // Opened Chats\n startFetchingCurrentChat ({ commit, dispatch }, { fetcher }) {\n dispatch('setCurrentChatFetcher', { fetcher })\n },\n setCurrentChatFetcher ({ rootState, commit }, { fetcher }) {\n commit('setCurrentChatFetcher', { fetcher })\n },\n addOpenedChat ({ rootState, commit, dispatch }, { chat }) {\n commit('addOpenedChat', { dispatch, chat: parseChat(chat) })\n dispatch('addNewUsers', [chat.account])\n },\n addChatMessages ({ commit }, value) {\n commit('addChatMessages', { commit, ...value })\n },\n resetChatNewMessageCount ({ commit }, value) {\n commit('resetChatNewMessageCount', value)\n },\n clearCurrentChat ({ rootState, commit, dispatch }, value) {\n commit('setCurrentChatId', { chatId: undefined })\n commit('setCurrentChatFetcher', { fetcher: undefined })\n },\n readChat ({ rootState, commit, dispatch }, { id, lastReadId }) {\n const isNewMessage = rootState.chats.lastReadMessageId !== lastReadId\n\n dispatch('resetChatNewMessageCount')\n commit('readChat', { id, lastReadId })\n\n if (isNewMessage) {\n rootState.api.backendInteractor.readChat({ id, lastReadId })\n }\n },\n deleteChatMessage ({ rootState, commit }, value) {\n rootState.api.backendInteractor.deleteChatMessage(value)\n commit('deleteChatMessage', { commit, ...value })\n },\n resetChats ({ commit, dispatch }) {\n dispatch('clearCurrentChat')\n commit('resetChats', { commit })\n },\n clearOpenedChats ({ rootState, commit, dispatch, rootGetters }) {\n commit('clearOpenedChats', { commit })\n },\n handleMessageError ({ commit }, value) {\n commit('handleMessageError', { commit, ...value })\n },\n cullOlderMessages ({ commit }, chatId) {\n commit('cullOlderMessages', chatId)\n }\n },\n mutations: {\n setChatListFetcher (state, { commit, fetcher }) {\n const prevFetcher = state.chatListFetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.chatListFetcher = fetcher && fetcher()\n },\n setCurrentChatFetcher (state, { fetcher }) {\n const prevFetcher = state.fetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.fetcher = fetcher && fetcher()\n },\n addOpenedChat (state, { _dispatch, chat }) {\n state.currentChatId = chat.id\n state.openedChats[chat.id] = chat\n\n if (!state.openedChatMessageServices[chat.id]) {\n state.openedChatMessageServices[chat.id] = chatService.empty(chat.id)\n }\n },\n setCurrentChatId (state, { chatId }) {\n state.currentChatId = chatId\n },\n addNewChats (state, { chats, newChatMessageSideEffects }) {\n chats.forEach((updatedChat) => {\n const chat = getChatById(state, updatedChat.id)\n\n if (chat) {\n const isNewMessage = (chat.lastMessage && chat.lastMessage.id) !== (updatedChat.lastMessage && updatedChat.lastMessage.id)\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n if (isNewMessage && chat.unread) {\n newChatMessageSideEffects(updatedChat)\n }\n } else {\n state.chatList.data.push(updatedChat)\n state.chatList.idStore[updatedChat.id] = updatedChat\n }\n })\n },\n updateChat (state, { _dispatch, chat: updatedChat, _rootGetters }) {\n const chat = getChatById(state, updatedChat.id)\n if (chat) {\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n }\n if (!chat) { state.chatList.data.unshift(updatedChat) }\n state.chatList.idStore[updatedChat.id] = updatedChat\n },\n deleteChat (state, { _dispatch, id, _rootGetters }) {\n state.chats.data = state.chats.data.filter(conversation =>\n conversation.last_status.id !== id\n )\n state.chats.idStore = omitBy(state.chats.idStore, conversation => conversation.last_status.id === id)\n },\n resetChats (state, { commit }) {\n state.chatList = emptyChatList()\n state.currentChatId = null\n commit('setChatListFetcher', { fetcher: undefined })\n for (const chatId in state.openedChats) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n },\n setChatsLoading (state, { value }) {\n state.chats.loading = value\n },\n addChatMessages (state, { chatId, messages, updateMaxId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.add(chatMessageService, { messages: messages.map(parseChatMessage), updateMaxId })\n }\n },\n deleteChatMessage (state, { chatId, messageId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.deleteMessage(chatMessageService, messageId)\n }\n },\n resetChatNewMessageCount (state, _value) {\n const chatMessageService = state.openedChatMessageServices[state.currentChatId]\n chatService.resetNewMessageCount(chatMessageService)\n },\n // Used when a connection loss occurs\n clearOpenedChats (state) {\n const currentChatId = state.currentChatId\n for (const chatId in state.openedChats) {\n if (currentChatId !== chatId) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n }\n },\n readChat (state, { id, lastReadId }) {\n state.lastReadMessageId = lastReadId\n const chat = getChatById(state, id)\n if (chat) {\n chat.unread = 0\n }\n },\n handleMessageError (state, { chatId, fakeId, isRetry }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n chatService.handleMessageError(chatMessageService, fakeId, isRetry)\n },\n cullOlderMessages (state, chatId) {\n chatService.cullOlderMessages(state.openedChatMessageServices[chatId])\n }\n }\n}\n\nexport default chats\n","const FETCH_ANNOUNCEMENT_INTERVAL_MS = 1000 * 60 * 5\n\nexport const defaultState = {\n announcements: [],\n supportsAnnouncements: true,\n fetchAnnouncementsTimer: undefined\n}\n\nexport const mutations = {\n setAnnouncements (state, announcements) {\n state.announcements = announcements\n },\n setAnnouncementRead (state, { id, read }) {\n const index = state.announcements.findIndex(a => a.id === id)\n\n if (index < 0) {\n return\n }\n\n state.announcements[index].read = read\n },\n setFetchAnnouncementsTimer (state, timer) {\n state.fetchAnnouncementsTimer = timer\n },\n setSupportsAnnouncements (state, supportsAnnouncements) {\n state.supportsAnnouncements = supportsAnnouncements\n }\n}\n\nexport const getters = {\n unreadAnnouncementCount (state, _getters, rootState) {\n if (!rootState.users.currentUser) {\n return 0\n }\n\n const unread = state.announcements.filter(announcement => !(announcement.inactive || announcement.read))\n return unread.length\n }\n}\n\nconst announcements = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchAnnouncements (store) {\n if (!store.state.supportsAnnouncements) {\n return Promise.resolve()\n }\n\n const currentUser = store.rootState.users.currentUser\n const isAdmin = currentUser && currentUser.privileges.includes('announcements_manage_announcements')\n\n const getAnnouncements = async () => {\n if (!isAdmin) {\n return store.rootState.api.backendInteractor.fetchAnnouncements()\n }\n\n const all = await store.rootState.api.backendInteractor.adminFetchAnnouncements()\n const visible = await store.rootState.api.backendInteractor.fetchAnnouncements()\n const visibleObject = visible.reduce((a, c) => {\n a[c.id] = c\n return a\n }, {})\n const getWithinVisible = announcement => visibleObject[announcement.id]\n\n all.forEach(announcement => {\n const visibleAnnouncement = getWithinVisible(announcement)\n if (!visibleAnnouncement) {\n announcement.inactive = true\n } else {\n announcement.read = visibleAnnouncement.read\n }\n })\n\n return all\n }\n\n return getAnnouncements()\n .then(announcements => {\n store.commit('setAnnouncements', announcements)\n })\n .catch(error => {\n // If and only if backend does not support announcements, it would return 404.\n // In this case, silently ignores it.\n if (error && error.statusCode === 404) {\n store.commit('setSupportsAnnouncements', false)\n } else {\n throw error\n }\n })\n },\n markAnnouncementAsRead (store, id) {\n return store.rootState.api.backendInteractor.dismissAnnouncement({ id })\n .then(() => {\n store.commit('setAnnouncementRead', { id, read: true })\n })\n },\n startFetchingAnnouncements (store) {\n if (store.state.fetchAnnouncementsTimer) {\n return\n }\n\n const interval = setInterval(() => store.dispatch('fetchAnnouncements'), FETCH_ANNOUNCEMENT_INTERVAL_MS)\n store.commit('setFetchAnnouncementsTimer', interval)\n\n return store.dispatch('fetchAnnouncements')\n },\n stopFetchingAnnouncements (store) {\n const interval = store.state.fetchAnnouncementsTimer\n store.commit('setFetchAnnouncementsTimer', undefined)\n clearInterval(interval)\n },\n postAnnouncement (store, { content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.postAnnouncement({ content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n editAnnouncement (store, { id, content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.editAnnouncement({ id, content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n deleteAnnouncement (store, id) {\n return store.rootState.api.backendInteractor.deleteAnnouncement({ id })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n }\n }\n}\n\nexport default announcements\n","import merge from 'lodash.merge'\nimport localforage from 'localforage'\nimport { each, get, set, cloneDeep } from 'lodash'\n\nlet loaded = false\n\nconst defaultReducer = (state, paths) => (\n paths.length === 0\n ? state\n : paths.reduce((substate, path) => {\n set(substate, path, get(state, path))\n return substate\n }, {})\n)\n\nconst saveImmedeatelyActions = [\n 'markNotificationsAsSeen',\n 'clearCurrentUser',\n 'setCurrentUser',\n 'setServerSideStorage',\n 'setHighlight',\n 'setOption',\n 'setClientData',\n 'setToken',\n 'clearToken'\n]\n\nconst defaultStorage = (() => {\n return localforage\n})()\n\nexport default function createPersistedState ({\n key = 'vuex-lz',\n paths = [],\n getState = (key, storage) => {\n const value = storage.getItem(key)\n return value\n },\n setState = (key, state, storage) => {\n if (!loaded) {\n console.log('waiting for old state to be loaded...')\n return Promise.resolve()\n } else {\n return storage.setItem(key, state)\n }\n },\n reducer = defaultReducer,\n storage = defaultStorage,\n subscriber = store => handler => store.subscribe(handler)\n} = {}) {\n return getState(key, storage).then((savedState) => {\n return store => {\n try {\n if (savedState !== null && typeof savedState === 'object') {\n // build user cache\n const usersState = savedState.users || {}\n usersState.usersObject = {}\n const users = usersState.users || []\n each(users, (user) => { usersState.usersObject[user.id] = user })\n savedState.users = usersState\n\n store.replaceState(\n merge({}, store.state, savedState)\n )\n }\n loaded = true\n } catch (e) {\n console.log(\"Couldn't load state\")\n console.error(e)\n loaded = true\n }\n subscriber(store)((mutation, state) => {\n try {\n if (saveImmedeatelyActions.includes(mutation.type)) {\n setState(key, reducer(cloneDeep(state), paths), storage)\n .then(success => {\n if (typeof success !== 'undefined') {\n if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n store.dispatch('settingsSaved', { success })\n }\n }\n }, error => {\n if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n store.dispatch('settingsSaved', { error })\n }\n })\n }\n } catch (e) {\n console.log(\"Couldn't persist state:\")\n console.log(e)\n }\n })\n }\n })\n}\n","export default (store) => {\n store.subscribe((mutation, state) => {\n const vapidPublicKey = state.instance.vapidPublicKey\n const webPushNotification = state.config.webPushNotifications\n const permission = state.interface.notificationPermission === 'granted'\n const user = state.users.currentUser\n\n const isUserMutation = mutation.type === 'setCurrentUser'\n const isVapidMutation = mutation.type === 'setInstanceOption' && mutation.payload.name === 'vapidPublicKey'\n const isPermMutation = mutation.type === 'setNotificationPermission' && mutation.payload === 'granted'\n const isUserConfigMutation = mutation.type === 'setOption' && mutation.payload.name === 'webPushNotifications'\n const isVisibilityMutation = mutation.type === 'setOption' && mutation.payload.name === 'notificationVisibility'\n\n if (isUserMutation || isVapidMutation || isPermMutation || isUserConfigMutation || isVisibilityMutation) {\n if (user && vapidPublicKey && permission && webPushNotification) {\n return store.dispatch('registerPushNotifications')\n } else if (isUserConfigMutation && !webPushNotification) {\n return store.dispatch('unregisterPushNotifications')\n }\n }\n })\n}\n","<template>\n <div\n id=\"app-loaded\"\n :style=\"bgStyle\"\n >\n <div\n id=\"app_bg_wrapper\"\n class=\"app-bg-wrapper\"\n />\n <MobileNav v-if=\"layoutType === 'mobile'\" />\n <DesktopNav\n v-else\n :class=\"navClasses\"\n />\n <Notifications v-if=\"currentUser\" />\n <div\n id=\"content\"\n class=\"app-layout container\"\n :class=\"classes\"\n >\n <div class=\"underlay\" />\n <div\n id=\"sidebar\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n >\n <user-panel />\n <template v-if=\"layoutType !== 'mobile'\">\n <nav-panel />\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <features-panel v-if=\"!currentUser && showFeaturesPanel\" />\n <who-to-follow-panel v-if=\"currentUser && suggestionsEnabled\" />\n <div id=\"notifs-sidebar\" />\n </template>\n </div>\n <main\n id=\"main-scroller\"\n class=\"column main\"\n :class=\"{ '-full-height': isChats || isListEdit }\"\n >\n <div\n v-if=\"!currentUser\"\n class=\"login-hint panel panel-default\"\n >\n <router-link\n :to=\"{ name: 'login' }\"\n class=\"panel-body\"\n >\n {{ $t(\"login.hint\") }}\n </router-link>\n </div>\n <router-view />\n </main>\n <div\n id=\"notifs-column\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n />\n </div>\n <MediaModal />\n <shout-panel\n v-if=\"currentUser && shout && !hideShoutbox\"\n :floating=\"true\"\n class=\"floating-shout mobile-hidden\"\n :class=\"{ '-left': shoutboxPosition }\"\n />\n <MobilePostStatusButton />\n <UserReportingModal />\n <PostStatusModal />\n <EditStatusModal v-if=\"editingAvailable\" />\n <StatusHistoryModal v-if=\"editingAvailable\" />\n <SettingsModal />\n <UpdateNotification />\n <GlobalNoticeList />\n </div>\n</template>\n\n<script src=\"./App.js\"></script>\n<style lang=\"scss\" src=\"./App.scss\"></style>\n","<template>\n <aside class=\"user-panel\">\n <div\n v-if=\"signedIn\"\n key=\"user-panel-signed\"\n class=\"panel panel-default signed-in\"\n >\n <UserCard\n :user-id=\"user.id\"\n :hide-bio=\"true\"\n rounded=\"top\"\n />\n <PostStatusForm />\n </div>\n <auth-form\n v-else\n key=\"user-panel\"\n />\n </aside>\n</template>\n\n<script src=\"./user_panel.js\"></script>\n\n<style lang=\"scss\">\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n</style>\n","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.login') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <template v-if=\"isPasswordAuth\">\n <div class=\"form-group\">\n <label for=\"username\">{{ $t('login.username') }}</label>\n <input\n id=\"username\"\n v-model=\"user.username\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n :placeholder=\"$t('login.placeholder')\"\n >\n </div>\n <div class=\"form-group\">\n <label for=\"password\">{{ $t('login.password') }}</label>\n <input\n id=\"password\"\n ref=\"passwordInput\"\n v-model=\"user.password\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n type=\"password\"\n >\n </div>\n <div class=\"form-group\">\n <router-link :to=\"{name: 'password-reset'}\">\n {{ $t('password_reset.forgot_password') }}\n </router-link>\n </div>\n </template>\n\n <div\n v-if=\"isTokenAuth\"\n class=\"form-group\"\n >\n <p>{{ $t('login.description') }}</p>\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <router-link\n v-if=\"registrationOpen\"\n :to=\"{name: 'registration'}\"\n class=\"register\"\n >\n {{ $t('login.register') }}\n </router-link>\n </div>\n <button\n :disabled=\"loggingIn\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('login.login') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./login_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n</style>\n","import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport oauthApi from '../../services/new_api/oauth.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst LoginForm = {\n data: () => ({\n user: {},\n error: false\n }),\n computed: {\n isPasswordAuth () { return this.requiredPassword },\n isTokenAuth () { return this.requiredToken },\n ...mapState({\n registrationOpen: state => state.instance.registrationOpen,\n instance: state => state.instance,\n loggingIn: state => state.users.loggingIn,\n oauth: state => state.oauth\n }),\n ...mapGetters(\n 'authFlow', ['requiredPassword', 'requiredToken', 'requiredMFA']\n )\n },\n methods: {\n ...mapMutations('authFlow', ['requireMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n submit () {\n this.isTokenAuth ? this.submitToken() : this.submitPassword()\n },\n submitToken () {\n const { clientId, clientSecret } = this.oauth\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n commit: this.$store.commit\n }\n\n oauthApi.getOrCreateApp(data)\n .then((app) => { oauthApi.login({ ...app, ...data }) })\n },\n submitPassword () {\n const { clientId } = this.oauth\n const data = {\n clientId,\n oauth: this.oauth,\n instance: this.instance.server,\n commit: this.$store.commit\n }\n this.error = false\n\n oauthApi.getOrCreateApp(data).then((app) => {\n oauthApi.getTokenWithCredentials(\n {\n ...app,\n instance: data.instance,\n username: this.user.username,\n password: this.user.password\n }\n ).then((result) => {\n if (result.error) {\n if (result.error === 'mfa_required') {\n this.requireMFA({ settings: result })\n } else if (result.identifier === 'password_reset_required') {\n this.$router.push({ name: 'password-reset', params: { passwordResetRequested: true } })\n } else {\n this.error = result.error\n this.focusOnPasswordInput()\n }\n return\n }\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n })\n },\n clearError () { this.error = false },\n focusOnPasswordInput () {\n const passwordInput = this.$refs.passwordInput\n passwordInput.focus()\n passwordInput.setSelectionRange(0, passwordInput.value.length)\n }\n }\n}\n\nexport default LoginForm\n","import { render } from \"./login_form.vue?vue&type=template&id=508f3ec3\"\nimport script from \"./login_form.js?vue&type=script&lang=js\"\nexport * from \"./login_form.js?vue&type=script&lang=js\"\n\nimport \"./login_form.vue?vue&type=style&index=0&id=508f3ec3&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.recovery') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">{{ $t('login.recovery_code') }}</label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireTOTP\"\n >\n {{ $t('login.enter_two_factor_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./recovery_form.js\"></script>\n","const verifyOTPCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'totp')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'recovery')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst mfa = {\n verifyOTPCode,\n verifyRecoveryCode\n}\n\nexport default mfa\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nexport default {\n data: () => ({\n code: null,\n error: false\n }),\n computed: {\n ...mapGetters({\n authSettings: 'authFlow/settings'\n }),\n ...mapState({\n instance: 'instance',\n oauth: 'oauth'\n })\n },\n methods: {\n ...mapMutations('authFlow', ['requireTOTP', 'abortMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n clearError () { this.error = false },\n submit () {\n const { clientId, clientSecret } = this.oauth\n\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n mfaToken: this.authSettings.mfa_token,\n code: this.code\n }\n\n mfaApi.verifyRecoveryCode(data).then((result) => {\n if (result.error) {\n this.error = result.error\n this.code = null\n return\n }\n\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n }\n }\n}\n","import { render } from \"./recovery_form.vue?vue&type=template&id=e18da610\"\nimport script from \"./recovery_form.js?vue&type=script&lang=js\"\nexport * from \"./recovery_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.totp') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">\n {{ $t('login.authentication_code') }}\n </label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireRecovery\"\n >\n {{ $t('login.enter_recovery_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n size=\"lg\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./totp_form.js\"></script>\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nexport default {\n data: () => ({\n code: null,\n error: false\n }),\n computed: {\n ...mapGetters({\n authSettings: 'authFlow/settings'\n }),\n ...mapState({\n instance: 'instance',\n oauth: 'oauth'\n })\n },\n methods: {\n ...mapMutations('authFlow', ['requireRecovery', 'abortMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n clearError () { this.error = false },\n submit () {\n const { clientId, clientSecret } = this.oauth\n\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n mfaToken: this.authSettings.mfa_token,\n code: this.code\n }\n\n mfaApi.verifyOTPCode(data).then((result) => {\n if (result.error) {\n this.error = result.error\n this.code = null\n return\n }\n\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n }\n }\n}\n","import { render } from \"./totp_form.vue?vue&type=template&id=6fb04413\"\nimport script from \"./totp_form.js?vue&type=script&lang=js\"\nexport * from \"./totp_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { h, resolveComponent } from 'vue'\nimport LoginForm from '../login_form/login_form.vue'\nimport MFARecoveryForm from '../mfa_form/recovery_form.vue'\nimport MFATOTPForm from '../mfa_form/totp_form.vue'\nimport { mapGetters } from 'vuex'\n\nconst AuthForm = {\n name: 'AuthForm',\n render () {\n return h(resolveComponent(this.authForm))\n },\n computed: {\n authForm () {\n if (this.requiredTOTP) { return 'MFATOTPForm' }\n if (this.requiredRecovery) { return 'MFARecoveryForm' }\n return 'LoginForm'\n },\n ...mapGetters('authFlow', ['requiredTOTP', 'requiredRecovery'])\n },\n components: {\n MFARecoveryForm,\n MFATOTPForm,\n LoginForm\n }\n}\n\nexport default AuthForm\n","import AuthForm from '../auth_form/auth_form.js'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport { mapState } from 'vuex'\n\nconst UserPanel = {\n computed: {\n signedIn () { return this.user },\n ...mapState({ user: state => state.users.currentUser })\n },\n components: {\n AuthForm,\n PostStatusForm,\n UserCard\n }\n}\n\nexport default UserPanel\n","import { render } from \"./user_panel.vue?vue&type=template&id=1a2cb8e9\"\nimport script from \"./user_panel.js?vue&type=script&lang=js\"\nexport * from \"./user_panel.js?vue&type=script&lang=js\"\n\nimport \"./user_panel.vue?vue&type=style&index=0&id=1a2cb8e9&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"NavPanel\">\n <div class=\"panel panel-default\">\n <div\n v-if=\"!forceExpand\"\n class=\"panel-heading nav-panel-heading\"\n >\n <NavigationPins :limit=\"6\" />\n <div class=\"spacer\" />\n <button\n class=\"button-unstyled\"\n @click=\"toggleCollapse\"\n >\n <FAIcon\n class=\"navigation-chevron\"\n fixed-width\n :icon=\"collapsed ? 'chevron-down' : 'chevron-up'\"\n />\n </button>\n </div>\n <ul\n v-if=\"!collapsed || forceExpand\"\n class=\"panel-body\"\n >\n <NavigationEntry\n v-if=\"currentUser || !privateMode\"\n :show-pin=\"false\"\n :item=\"{ icon: 'stream', label: 'nav.timelines' }\"\n :aria-expanded=\"showTimelines ? 'true' : 'false'\"\n @click=\"toggleTimelines\"\n >\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showTimelines ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showTimelines\"\n class=\"timelines-background\"\n >\n <div class=\"timelines\">\n <NavigationEntry\n v-for=\"item in timelinesItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n </div>\n </div>\n <NavigationEntry\n v-if=\"currentUser\"\n :show-pin=\"false\"\n :item=\"{ icon: 'list', label: 'nav.lists' }\"\n :aria-expanded=\"showLists ? 'true' : 'false'\"\n @click=\"toggleLists\"\n >\n <router-link\n :title=\"$t('lists.manage_lists')\"\n class=\"extra-button\"\n :to=\"{ name: 'lists' }\"\n @click.stop\n >\n <FAIcon\n class=\"extra-button\"\n fixed-width\n icon=\"wrench\"\n />\n </router-link>\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showLists ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showLists\"\n class=\"timelines-background\"\n >\n <ListsMenuContent\n :show-pin=\"editMode || forceEditMode\"\n class=\"timelines\"\n />\n </div>\n <NavigationEntry\n v-for=\"item in rootItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n <NavigationEntry\n v-if=\"!forceEditMode && currentUser\"\n :show-pin=\"false\"\n :item=\"{ label: editMode ? $t('nav.edit_finish') : $t('nav.edit_pinned'), icon: editMode ? 'check' : 'wrench' }\"\n @click=\"toggleEditMode\"\n />\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./nav_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n // stylelint-disable-next-line length-zero-no-unit\n --panel-heading-height-padding: 0px;\n }\n}\n</style>\n","<template>\n <OptionalRouterLink\n v-slot=\"{ isActive, href, navigate } = {}\"\n ass=\"ass\"\n :to=\"routeTo\"\n >\n <li\n class=\"NavigationEntry menu-item\"\n :class=\"{ '-active': isActive }\"\n v-bind=\"$attrs\"\n >\n <component\n :is=\"routeTo ? 'a' : 'button'\"\n class=\"main-link button-unstyled\"\n :href=\"href\"\n @click=\"navigate\"\n >\n <span>\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n class=\"fa-scale-110 menu-icon\"\n :icon=\"item.icon\"\n />\n </span>\n <span\n v-if=\"item.iconLetter\"\n class=\"icon iconLetter fa-scale-110 menu-icon\"\n >{{ item.iconLetter }}\n </span>\n <span class=\"label\">\n {{ item.labelRaw || $t(item.label) }}\n </span>\n </component>\n <slot />\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"badge badge-notification\"\n >\n {{ getters[item.badgeGetter] }}\n </div>\n <button\n v-if=\"showPin && currentUser\"\n type=\"button\"\n class=\"button-unstyled extra-button\"\n :title=\"$t(isPinned ? 'general.unpin' : 'general.pin' )\"\n :aria-pressed=\"!!isPinned\"\n @click.stop.prevent=\"togglePin(item.name)\"\n >\n <FAIcon\n v-if=\"showPin && currentUser\"\n fixed-width\n class=\"fa-scale-110\"\n :class=\"{ 'veryfaint': !isPinned(item.name) }\"\n :transform=\"!isPinned(item.name) ? 'rotate-45' : ''\"\n icon=\"thumbtack\"\n />\n </button>\n </li>\n </OptionalRouterLink>\n</template>\n\n<script src=\"./navigation_entry.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n</style>\n","export const USERNAME_ROUTES = new Set([\n 'bookmarks',\n 'dms',\n 'interactions',\n 'notifications',\n 'chat',\n 'chats',\n 'user-profile'\n])\n\nexport const TIMELINES = {\n home: {\n route: 'friends',\n icon: 'home',\n label: 'nav.home_timeline',\n criteria: ['!private']\n },\n public: {\n route: 'public-timeline',\n anon: true,\n icon: 'users',\n label: 'nav.public_tl',\n criteria: ['!private']\n },\n twkn: {\n route: 'public-external-timeline',\n anon: true,\n icon: 'globe',\n label: 'nav.twkn',\n criteria: ['!private', 'federating']\n },\n bookmarks: {\n route: 'bookmarks',\n icon: 'bookmark',\n label: 'nav.bookmarks'\n },\n favorites: {\n routeObject: { name: 'user-profile', query: { tab: 'favorites' } },\n icon: 'star',\n label: 'user_card.favorites'\n },\n dms: {\n route: 'dms',\n icon: 'envelope',\n label: 'nav.dms'\n }\n}\n\nexport const ROOT_ITEMS = {\n interactions: {\n route: 'interactions',\n icon: 'bell',\n label: 'nav.interactions'\n },\n chats: {\n route: 'chats',\n icon: 'comments',\n label: 'nav.chats',\n badgeGetter: 'unreadChatCount',\n criteria: ['chats']\n },\n friendRequests: {\n route: 'friend-requests',\n icon: 'user-plus',\n label: 'nav.friend_requests',\n criteria: ['lockedUser'],\n badgeGetter: 'followRequestCount'\n },\n about: {\n route: 'about',\n anon: true,\n icon: 'info-circle',\n label: 'nav.about'\n },\n announcements: {\n route: 'announcements',\n icon: 'bullhorn',\n label: 'nav.announcements',\n badgeGetter: 'unreadAnnouncementCount',\n criteria: ['announcements']\n }\n}\n","<template>\n <!-- eslint-disable vue/no-multiple-template-root -->\n <router-link\n v-if=\"to\"\n v-slot=\"props\"\n :to=\"to\"\n custom\n >\n <slot\n v-bind=\"props\"\n />\n </router-link>\n <slot\n v-else\n v-bind=\"{}\"\n />\n</template>\n\n<script>\nexport default {\n props: ['to']\n}\n</script>\n","import { render } from \"./optional_router_link.vue?vue&type=template&id=0ec30c00\"\nimport script from \"./optional_router_link.vue?vue&type=script&lang=js\"\nexport * from \"./optional_router_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport { USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport OptionalRouterLink from 'src/components/optional_router_link/optional_router_link.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faThumbtack } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faThumbtack)\n\nconst NavigationEntry = {\n props: ['item', 'showPin'],\n components: {\n OptionalRouterLink\n },\n methods: {\n isPinned (value) {\n return this.pinnedItems.has(value)\n },\n togglePin (value) {\n if (this.isPinned(value)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n routeTo () {\n if (!this.item.route && !this.item.routeObject) return null\n let route\n if (this.item.routeObject) {\n route = this.item.routeObject\n } else {\n route = { name: (this.item.anon || this.currentUser) ? this.item.route : this.item.anonRoute }\n }\n if (USERNAME_ROUTES.has(route.name)) {\n route.params = { username: this.currentUser.screen_name, name: this.currentUser.screen_name }\n }\n return route\n },\n getters () {\n return this.$store.getters\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n })\n }\n}\n\nexport default NavigationEntry\n","import { render } from \"./navigation_entry.vue?vue&type=template&id=de2c2c50\"\nimport script from \"./navigation_entry.js?vue&type=script&lang=js\"\nexport * from \"./navigation_entry.js?vue&type=script&lang=js\"\n\nimport \"./navigation_entry.vue?vue&type=style&index=0&id=de2c2c50&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export const filterNavigation = (list = [], { hasChats, hasAnnouncements, isFederating, isPrivate, currentUser }) => {\n return list.filter(({ criteria, anon, anonRoute }) => {\n const set = new Set(criteria || [])\n if (!isFederating && set.has('federating')) return false\n if (!currentUser && isPrivate && set.has('!private')) return false\n if (!currentUser && !(anon || anonRoute)) return false\n if ((!currentUser || !currentUser.locked) && set.has('lockedUser')) return false\n if (!hasChats && set.has('chats')) return false\n if (!hasAnnouncements && set.has('announcements')) return false\n return true\n })\n}\n\nexport const getListEntries = state => state.lists.allLists.map(list => ({\n name: 'list-' + list.id,\n routeObject: { name: 'lists-timeline', params: { id: list.id } },\n labelRaw: list.title,\n iconLetter: list.title[0]\n}))\n","import { mapState } from 'vuex'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { getListEntries } from 'src/components/navigation/filter.js'\n\nexport const ListsMenuContent = {\n props: [\n 'showPin'\n ],\n components: {\n NavigationEntry\n },\n computed: {\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n })\n }\n}\n\nexport default ListsMenuContent\n","import { render } from \"./lists_menu_content.vue?vue&type=template&id=24f15238\"\nimport script from \"./lists_menu_content.js?vue&type=script&lang=js\"\nexport * from \"./lists_menu_content.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <ul>\n <NavigationEntry\n v-for=\"item in lists\"\n :key=\"item.name\"\n :show-pin=\"showPin\"\n :item=\"item\"\n />\n </ul>\n</template>\n\n<script src=\"./lists_menu_content.js\"></script>\n","<template>\n <span class=\"NavigationPins\">\n <router-link\n v-for=\"item in pinnedList\"\n :key=\"item.name\"\n class=\"pinned-item\"\n :to=\"getRouteTo(item)\"\n :title=\"item.labelRaw || $t(item.label)\"\n >\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n :icon=\"item.icon\"\n />\n <span\n v-if=\"item.iconLetter\"\n class=\"iconLetter fa-scale-110 fa-old-padding\"\n >{{ item.iconLetter }}</span>\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"alert-dot\"\n />\n </router-link>\n </span>\n</template>\n\n<script src=\"./navigation_pins.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS, USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport { getListEntries, filterNavigation } from 'src/components/navigation/filter.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n)\n\nconst NavPanel = {\n props: ['limit'],\n methods: {\n getRouteTo (item) {\n if (item.routeObject) {\n return item.routeObject\n }\n const route = { name: (item.anon || this.currentUser) ? item.route : item.anonRoute }\n if (USERNAME_ROUTES.has(route.name)) {\n route.params = { username: this.currentUser.screen_name }\n }\n return route\n }\n },\n computed: {\n getters () {\n return this.$store.getters\n },\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n }),\n pinnedList () {\n if (!this.currentUser) {\n return filterNavigation([\n { ...TIMELINES.public, name: 'public' },\n { ...TIMELINES.twkn, name: 'twkn' },\n { ...ROOT_ITEMS.about, name: 'about' }\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n })\n }\n return filterNavigation(\n [\n ...Object\n .entries({ ...TIMELINES })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k })),\n ...this.lists.filter((k) => this.pinnedItems.has(k.name)),\n ...Object\n .entries({ ...ROOT_ITEMS })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k }))\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n ).slice(0, this.limit)\n }\n }\n}\n\nexport default NavPanel\n","import { render } from \"./navigation_pins.vue?vue&type=template&id=61dbea24\"\nimport script from \"./navigation_pins.js?vue&type=script&lang=js\"\nexport * from \"./navigation_pins.js?vue&type=script&lang=js\"\n\nimport \"./navigation_pins.vue?vue&type=style&index=0&id=61dbea24&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'\nimport { mapState, mapGetters } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n)\nconst NavPanel = {\n props: ['forceExpand', 'forceEditMode'],\n created () {\n },\n components: {\n ListsMenuContent,\n NavigationEntry,\n NavigationPins,\n Checkbox\n },\n data () {\n return {\n editMode: false,\n showTimelines: false,\n showLists: false,\n timelinesList: Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n rootList: Object.entries(ROOT_ITEMS).map(([k, v]) => ({ ...v, name: k }))\n }\n },\n methods: {\n toggleTimelines () {\n this.showTimelines = !this.showTimelines\n },\n toggleLists () {\n this.showLists = !this.showLists\n },\n toggleEditMode () {\n this.editMode = !this.editMode\n },\n toggleCollapse () {\n this.$store.commit('setPreference', { path: 'simple.collapseNav', value: !this.collapsed })\n this.$store.dispatch('pushServerSideStorage')\n },\n isPinned (item) {\n return this.pinnedItems.has(item)\n },\n togglePin (item) {\n if (this.isPinned(item)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems),\n collapsed: state => state.serverSideStorage.prefsStorage.simple.collapseNav\n }),\n timelinesItems () {\n return filterNavigation(\n Object\n .entries({ ...TIMELINES })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n rootItems () {\n return filterNavigation(\n Object\n .entries({ ...ROOT_ITEMS })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n }\n}\n\nexport default NavPanel\n","import { render } from \"./nav_panel.vue?vue&type=template&id=7c761001\"\nimport script from \"./nav_panel.js?vue&type=script&lang=js\"\nexport * from \"./nav_panel.js?vue&type=script&lang=js\"\n\nimport \"./nav_panel.vue?vue&type=style&index=0&id=7c761001&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"instance-specific-panel\">\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div v-html=\"instanceSpecificPanelContent\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./instance_specific_panel.js\"></script>\n","const InstanceSpecificPanel = {\n computed: {\n instanceSpecificPanelContent () {\n return this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default InstanceSpecificPanel\n","import { render } from \"./instance_specific_panel.vue?vue&type=template&id=707b4e95\"\nimport script from \"./instance_specific_panel.js?vue&type=script&lang=js\"\nexport * from \"./instance_specific_panel.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"features-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('features_panel.title') }}\n </div>\n </div>\n <div class=\"panel-body features-panel\">\n <ul>\n <li v-if=\"shout\">\n {{ $t('features_panel.shout') }}\n </li>\n <li v-if=\"pleromaChatMessages\">\n {{ $t('features_panel.pleroma_chat_messages') }}\n </li>\n <li v-if=\"gopher\">\n {{ $t('features_panel.gopher') }}\n </li>\n <li v-if=\"whoToFollow\">\n {{ $t('features_panel.who_to_follow') }}\n </li>\n <li v-if=\"mediaProxy\">\n {{ $t('features_panel.media_proxy') }}\n </li>\n <li>{{ $t('features_panel.scope_options') }}</li>\n <li>{{ $t('features_panel.text_limit') }} = {{ textlimit }}</li>\n <li>{{ $t('features_panel.upload_limit') }} = {{ uploadlimit.num }} {{ $t('upload.file_size_units.' + uploadlimit.unit) }}</li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./features_panel.js\"></script>\n\n<style lang=\"scss\">\n .features-panel li {\n line-height: 24px;\n }\n</style>\n","import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nconst FeaturesPanel = {\n computed: {\n shout: function () { return this.$store.state.instance.shoutAvailable },\n pleromaChatMessages: function () { return this.$store.state.instance.pleromaChatMessagesAvailable },\n gopher: function () { return this.$store.state.instance.gopherAvailable },\n whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled },\n mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable },\n minimalScopesMode: function () { return this.$store.state.instance.minimalScopesMode },\n textlimit: function () { return this.$store.state.instance.textlimit },\n uploadlimit: function () { return fileSizeFormatService.fileSizeFormat(this.$store.state.instance.uploadlimit) }\n }\n}\n\nexport default FeaturesPanel\n","import { render } from \"./features_panel.vue?vue&type=template&id=76defdfa\"\nimport script from \"./features_panel.js?vue&type=script&lang=js\"\nexport * from \"./features_panel.js?vue&type=script&lang=js\"\n\nimport \"./features_panel.vue?vue&type=style&index=0&id=76defdfa&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"who-to-follow-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n </div>\n <div class=\"who-to-follow\">\n <p\n v-for=\"user in usersToFollow\"\n :key=\"user.id\"\n class=\"who-to-follow-items\"\n >\n <img :src=\"user.img\">\n <router-link :to=\"userProfileLink(user.id, user.name)\">\n {{ user.name }}\n </router-link><br>\n </p>\n <p class=\"who-to-follow-more\">\n <router-link :to=\"{ name: 'who-to-follow' }\">\n {{ $t('who_to_follow.more') }}\n </router-link>\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow_panel.js\"></script>\n\n<style lang=\"scss\">\n .who-to-follow * {\n vertical-align: middle;\n }\n\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n\n .who-to-follow {\n padding: 0 1em;\n margin: 0;\n }\n\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n margin: 1em 0;\n }\n\n .who-to-follow-more {\n padding: 0;\n margin: 1em 0;\n text-align: center;\n }\n</style>\n","import apiService from '../../services/api/api.service.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { shuffle } from 'lodash'\n\nfunction showWhoToFollow (panel, reply) {\n const shuffled = shuffle(reply)\n\n panel.usersToFollow.forEach((toFollow, index) => {\n const user = shuffled[index]\n const img = user.avatar || this.$store.state.instance.defaultAvatar\n const name = user.acct\n\n toFollow.img = img\n toFollow.name = name\n\n panel.$store.state.api.backendInteractor.fetchUser({ id: name })\n .then((externalUser) => {\n if (!externalUser.error) {\n panel.$store.commit('addNewUsers', [externalUser])\n toFollow.id = externalUser.id\n }\n })\n })\n}\n\nfunction getWhoToFollow (panel) {\n const credentials = panel.$store.state.users.currentUser.credentials\n if (credentials) {\n panel.usersToFollow.forEach(toFollow => {\n toFollow.name = 'Loading...'\n })\n apiService.suggestions({ credentials })\n .then((reply) => {\n showWhoToFollow(panel, reply)\n })\n }\n}\n\nconst WhoToFollowPanel = {\n data: () => ({\n usersToFollow: []\n }),\n computed: {\n user: function () {\n return this.$store.state.users.currentUser.screen_name\n },\n suggestionsEnabled () {\n return this.$store.state.instance.suggestionsEnabled\n }\n },\n methods: {\n userProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n }\n },\n watch: {\n user: function (user, oldUser) {\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n },\n mounted:\n function () {\n this.usersToFollow = new Array(3).fill().map(x => (\n {\n img: this.$store.state.instance.defaultAvatar,\n name: '',\n id: 0\n }\n ))\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n}\n\nexport default WhoToFollowPanel\n","import { render } from \"./who_to_follow_panel.vue?vue&type=template&id=f150b2ba\"\nimport script from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\n\nimport \"./who_to_follow_panel.vue?vue&type=style&index=0&id=f150b2ba&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!collapsed || !floating\"\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading timeline-heading\"\n :class=\"{ 'shout-heading': floating }\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n {{ $t('shoutbox.title') }}\n <FAIcon\n v-if=\"floating\"\n icon=\"times\"\n class=\"close-icon\"\n />\n </div>\n </div>\n <div class=\"shout-window\">\n <div\n v-for=\"message in messages\"\n :key=\"message.id\"\n class=\"shout-message\"\n >\n <span class=\"shout-avatar\">\n <img :src=\"message.author.avatar\">\n </span>\n <div class=\"shout-content\">\n <router-link\n class=\"shout-name\"\n :to=\"userProfileLink(message.author)\"\n >\n {{ message.author.username }}\n </router-link>\n <br>\n <span class=\"shout-text\">\n {{ message.text }}\n </span>\n </div>\n </div>\n </div>\n <div class=\"shout-input\">\n <textarea\n v-model=\"currentMessage\"\n class=\"shout-input-textarea\"\n rows=\"1\"\n @keyup.enter=\"submit(currentMessage)\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading -stub timeline-heading shout-heading\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n <FAIcon\n class=\"icon\"\n icon=\"bullhorn\"\n />\n {{ $t('shoutbox.title') }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./shout_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n</style>\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBullhorn,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faBullhorn,\n faTimes\n)\n\nconst shoutPanel = {\n props: ['floating'],\n data () {\n return {\n currentMessage: '',\n channel: null,\n collapsed: true\n }\n },\n computed: {\n messages () {\n return this.$store.state.shout.messages\n }\n },\n methods: {\n submit (message) {\n this.$store.state.shout.channel.push('new_msg', { text: message }, 10000)\n this.currentMessage = ''\n },\n togglePanel () {\n this.collapsed = !this.collapsed\n },\n userProfileLink (user) {\n return generateProfileLink(user.id, user.username, this.$store.state.instance.restrictedNicknames)\n }\n },\n watch: {\n messages (newVal) {\n const scrollEl = this.$el.querySelector('.chat-window')\n if (!scrollEl) return\n if (scrollEl.scrollTop + scrollEl.offsetHeight + 20 > scrollEl.scrollHeight) {\n this.$nextTick(() => {\n if (!scrollEl) return\n scrollEl.scrollTop = scrollEl.scrollHeight - scrollEl.offsetHeight\n })\n }\n }\n }\n}\n\nexport default shoutPanel\n","import { render } from \"./shout_panel.vue?vue&type=template&id=48f55c04\"\nimport script from \"./shout_panel.js?vue&type=script&lang=js\"\nexport * from \"./shout_panel.js?vue&type=script&lang=js\"\n\nimport \"./shout_panel.vue?vue&type=style&index=0&id=48f55c04&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"showing\"\n class=\"media-modal-view\"\n @backdropClicked=\"hideIfNotSwiped\"\n >\n <SwipeClick\n v-if=\"type === 'image'\"\n ref=\"swipeClick\"\n class=\"modal-image-container\"\n :direction=\"swipeDirection\"\n :threshold=\"swipeThreshold\"\n :disable-click-threshold=\"swipeDisableClickThreshold\"\n @preview-requested=\"handleSwipePreview\"\n @swipe-finished=\"handleSwipeEnd\"\n @swipeless-clicked=\"hide\"\n >\n <PinchZoom\n ref=\"pinchZoom\"\n class=\"modal-image-container-inner\"\n selector=\".modal-image\"\n reach-min-scale-strategy=\"reset\"\n stop-propagate-handled=\"stop-propgate-handled\"\n :allow-pan-min-scale=\"pinchZoomMinScale\"\n :min-scale=\"pinchZoomMinScale\"\n :reset-to-min-scale-limit=\"pinchZoomScaleResetLimit\"\n >\n <img\n :class=\"{ loading }\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n @load=\"onImageLoaded\"\n >\n </PinchZoom>\n </SwipeClick>\n <VideoAttachment\n v-if=\"type === 'video'\"\n class=\"modal-image\"\n :attachment=\"currentMedia\"\n :controls=\"true\"\n />\n <audio\n v-if=\"type === 'audio'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n controls\n />\n <Flash\n v-if=\"type === 'flash'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n />\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.previous')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev\"\n @click.stop.prevent=\"goPrev\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-left\"\n />\n </button>\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.next')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--next\"\n @click.stop.prevent=\"goNext\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-right\"\n />\n </button>\n <button\n class=\"modal-view-button modal-view-button-hide\"\n :title=\"$t('media_modal.hide')\"\n @click.stop.prevent=\"hide\"\n >\n <FAIcon\n class=\"button-icon\"\n icon=\"times\"\n />\n </button>\n\n <span\n v-if=\"description\"\n class=\"description\"\n >\n {{ description }}\n </span>\n <span\n class=\"counter\"\n >\n {{ $tc('media_modal.counter', currentIndex + 1, { current: currentIndex + 1, total: media.length }) }}\n </span>\n <span\n v-if=\"loading\"\n class=\"loading-spinner\"\n >\n <FAIcon\n spin\n icon=\"circle-notch\"\n size=\"5x\"\n />\n </span>\n </Modal>\n</template>\n\n<script src=\"./media_modal.js\"></script>\n\n<style lang=\"scss\">\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n\n &--prev {\n left: 0;\n\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n overflow: hidden;\n}\n</style>\n","import PinchZoom from '@kazvmoe-infra/pinch-zoom-element'\n\nexport default {\n methods: {\n setTransform ({ scale, x, y }) {\n this.$el.setTransform({ scale, x, y })\n }\n },\n created () {\n // Make lint happy\n (() => PinchZoom)()\n }\n}\n","import { render } from \"./pinch_zoom.vue?vue&type=template&id=4608b5bf\"\nimport script from \"./pinch_zoom.js?vue&type=script&lang=js\"\nexport * from \"./pinch_zoom.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <pinch-zoom\n class=\"pinch-zoom-parent\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n >\n <slot />\n </pinch-zoom>\n</template>\n\n<script src=\"./pinch_zoom.js\"></script>\n","\nconst DIRECTION_LEFT = [-1, 0]\nconst DIRECTION_RIGHT = [1, 0]\nconst DIRECTION_UP = [0, -1]\nconst DIRECTION_DOWN = [0, 1]\n\nconst BUTTON_LEFT = 0\n\nconst deltaCoord = (oldCoord, newCoord) => [newCoord[0] - oldCoord[0], newCoord[1] - oldCoord[1]]\n\nconst touchCoord = touch => [touch.screenX, touch.screenY]\n\nconst touchEventCoord = e => touchCoord(e.touches[0])\n\nconst pointerEventCoord = e => [e.clientX, e.clientY]\n\nconst vectorLength = v => Math.sqrt(v[0] * v[0] + v[1] * v[1])\n\nconst perpendicular = v => [v[1], -v[0]]\n\nconst dotProduct = (v1, v2) => v1[0] * v2[0] + v1[1] * v2[1]\n\nconst project = (v1, v2) => {\n const scalar = (dotProduct(v1, v2) / dotProduct(v2, v2))\n return [scalar * v2[0], scalar * v2[1]]\n}\n\n// direction: either use the constants above or an arbitrary 2d vector.\n// threshold: how many Px to move from touch origin before checking if the\n// callback should be called.\n// divergentTolerance: a scalar for much of divergent direction we tolerate when\n// above threshold. for example, with 1.0 we only call the callback if\n// divergent component of delta is < 1.0 * direction component of delta.\nconst swipeGesture = (direction, onSwipe, threshold = 30, perpendicularTolerance = 1.0) => {\n return {\n direction,\n onSwipe,\n threshold,\n perpendicularTolerance,\n _startPos: [0, 0],\n _swiping: false\n }\n}\n\nconst beginSwipe = (event, gesture) => {\n gesture._startPos = touchEventCoord(event)\n gesture._swiping = true\n}\n\nconst updateSwipe = (event, gesture) => {\n if (!gesture._swiping) return\n // movement too small\n const delta = deltaCoord(gesture._startPos, touchEventCoord(event))\n if (vectorLength(delta) < gesture.threshold) return\n // movement is opposite from direction\n if (dotProduct(delta, gesture.direction) < 0) return\n // movement perpendicular to direction is too much\n const towardsDir = project(delta, gesture.direction)\n const perpendicularDir = perpendicular(gesture.direction)\n const towardsPerpendicular = project(delta, perpendicularDir)\n if (\n vectorLength(towardsDir) * gesture.perpendicularTolerance <\n vectorLength(towardsPerpendicular)\n ) return\n\n gesture.onSwipe()\n gesture._swiping = false\n}\n\nclass SwipeAndClickGesture {\n // swipePreviewCallback(offsets: Array[Number])\n // offsets: the offset vector which the underlying component should move, from the starting position\n // swipeEndCallback(sign: 0|-1|1)\n // sign: if the swipe does not meet the threshold, 0\n // if the swipe meets the threshold in the positive direction, 1\n // if the swipe meets the threshold in the negative direction, -1\n constructor ({\n direction,\n // swipeStartCallback\n swipePreviewCallback,\n swipeEndCallback,\n swipeCancelCallback,\n swipelessClickCallback,\n threshold = 30,\n perpendicularTolerance = 1.0,\n disableClickThreshold = 1\n }) {\n const nop = () => {}\n this.direction = direction\n this.swipePreviewCallback = swipePreviewCallback || nop\n this.swipeEndCallback = swipeEndCallback || nop\n this.swipeCancelCallback = swipeCancelCallback || nop\n this.swipelessClickCallback = swipelessClickCallback || nop\n this.threshold = typeof threshold === 'function' ? threshold : () => threshold\n this.disableClickThreshold = typeof disableClickThreshold === 'function' ? disableClickThreshold : () => disableClickThreshold\n this.perpendicularTolerance = perpendicularTolerance\n this._reset()\n }\n\n _reset () {\n this._startPos = [0, 0]\n this._pointerId = -1\n this._swiping = false\n this._swiped = false\n this._preventNextClick = false\n }\n\n start (event) {\n // Only handle left click\n if (event.button !== BUTTON_LEFT) {\n return\n }\n\n this._startPos = pointerEventCoord(event)\n this._pointerId = event.pointerId\n this._swiping = true\n this._swiped = false\n }\n\n move (event) {\n if (this._swiping && this._pointerId === event.pointerId) {\n this._swiped = true\n\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n this.swipePreviewCallback(delta)\n }\n }\n\n cancel (event) {\n if (!this._swiping || this._pointerId !== event.pointerId) {\n return\n }\n\n this.swipeCancelCallback()\n }\n\n end (event) {\n if (!this._swiping) {\n return\n }\n\n if (this._pointerId !== event.pointerId) {\n return\n }\n\n this._swiping = false\n\n // movement too small\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n const sign = (() => {\n if (vectorLength(delta) < this.threshold()) {\n return 0\n }\n // movement is opposite from direction\n const isPositive = dotProduct(delta, this.direction) > 0\n\n // movement perpendicular to direction is too much\n const towardsDir = project(delta, this.direction)\n const perpendicularDir = perpendicular(this.direction)\n const towardsPerpendicular = project(delta, perpendicularDir)\n if (\n vectorLength(towardsDir) * this.perpendicularTolerance <\n vectorLength(towardsPerpendicular)\n ) {\n return 0\n }\n\n return isPositive ? 1 : -1\n })()\n\n if (this._swiped) {\n this.swipeEndCallback(sign)\n }\n this._reset()\n // Only a mouse will fire click event when\n // the end point is far from the starting point\n // so for other kinds of pointers do not check\n // whether we have swiped\n if (vectorLength(delta) >= this.disableClickThreshold() && event.pointerType === 'mouse') {\n this._preventNextClick = true\n }\n }\n\n click (event) {\n if (!this._preventNextClick) {\n this.swipelessClickCallback()\n }\n this._reset()\n }\n}\n\nconst GestureService = {\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN,\n swipeGesture,\n beginSwipe,\n updateSwipe,\n SwipeAndClickGesture\n}\n\nexport default GestureService\n","import GestureService from '../../services/gesture_service/gesture_service'\n\n/**\n * props:\n * direction: a vector that indicates the direction of the intended swipe\n * threshold: the minimum distance in pixels the swipe has moved on `direction'\n * for swipe-finished() to have a non-zero sign\n * disableClickThreshold: the minimum distance in pixels for the swipe to\n * not trigger a click\n * perpendicularTolerance: see gesture_service\n *\n * Events:\n * preview-requested(offsets)\n * Emitted when the pointer has moved.\n * offsets: the offsets from the start of the swipe to the current cursor position\n *\n * swipe-canceled()\n * Emitted when the swipe has been canceled due to a pointercancel event.\n *\n * swipe-finished(sign: 0|-1|1)\n * Emitted when the swipe has finished.\n * sign: if the swipe does not meet the threshold, 0\n * if the swipe meets the threshold in the positive direction, 1\n * if the swipe meets the threshold in the negative direction, -1\n *\n * swipeless-clicked()\n * Emitted when there is a click without swipe.\n * This and swipe-finished() cannot be emitted for the same pointerup event.\n */\nconst SwipeClick = {\n props: {\n direction: {\n type: Array\n },\n threshold: {\n type: Function,\n default: () => 30\n },\n disableClickThreshold: {\n type: Function,\n default: () => 1\n },\n perpendicularTolerance: {\n type: Number,\n default: 1.0\n }\n },\n methods: {\n handlePointerDown (event) {\n this.$gesture.start(event)\n },\n handlePointerMove (event) {\n this.$gesture.move(event)\n },\n handlePointerUp (event) {\n this.$gesture.end(event)\n },\n handlePointerCancel (event) {\n this.$gesture.cancel(event)\n },\n handleNativeClick (event) {\n this.$gesture.click(event)\n },\n preview (offsets) {\n this.$emit('preview-requested', offsets)\n },\n end (sign) {\n this.$emit('swipe-finished', sign)\n },\n click () {\n this.$emit('swipeless-clicked')\n },\n cancel () {\n this.$emit('swipe-canceled')\n }\n },\n created () {\n this.$gesture = new GestureService.SwipeAndClickGesture({\n direction: this.direction,\n threshold: this.threshold,\n disableClickThreshold: this.disableClickThreshold,\n perpendicularTolerance: this.perpendicularTolerance,\n swipePreviewCallback: this.preview,\n swipeEndCallback: this.end,\n swipeCancelCallback: this.cancel,\n swipelessClickCallback: this.click\n })\n }\n}\n\nexport default SwipeClick\n","import { render } from \"./swipe_click.vue?vue&type=template&id=4c0f684c\"\nimport script from \"./swipe_click.js?vue&type=script&lang=js\"\nexport * from \"./swipe_click.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-bind=\"$attrs\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerMove\"\n @pointerup=\"handlePointerUp\"\n @pointercancel=\"handlePointerCancel\"\n @click=\"handleNativeClick\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./swipe_click.js\"></script>\n","import StillImage from '../still-image/still-image.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport Modal from '../modal/modal.vue'\nimport PinchZoom from '../pinch_zoom/pinch_zoom.vue'\nimport SwipeClick from '../swipe_click/swipe_click.vue'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport Flash from 'src/components/flash/flash.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n)\n\nconst MediaModal = {\n components: {\n StillImage,\n VideoAttachment,\n PinchZoom,\n SwipeClick,\n Modal,\n Flash\n },\n data () {\n return {\n loading: false,\n swipeDirection: GestureService.DIRECTION_LEFT,\n swipeThreshold: () => {\n const considerableMoveRatio = 1 / 4\n return window.innerWidth * considerableMoveRatio\n },\n pinchZoomMinScale: 1,\n pinchZoomScaleResetLimit: 1.2\n }\n },\n computed: {\n showing () {\n return this.$store.state.mediaViewer.activated\n },\n media () {\n return this.$store.state.mediaViewer.media\n },\n description () {\n return this.currentMedia.description\n },\n currentIndex () {\n return this.$store.state.mediaViewer.currentIndex\n },\n currentMedia () {\n return this.media[this.currentIndex]\n },\n canNavigate () {\n return this.media.length > 1\n },\n type () {\n return this.currentMedia ? this.getType(this.currentMedia) : null\n },\n swipeDisableClickThreshold () {\n // If there is only one media, allow more mouse movements to close the modal\n // because there is less chance that the user wants to switch to another image\n return () => this.canNavigate ? 1 : 30\n }\n },\n methods: {\n getType (media) {\n return fileTypeService.fileType(media.mimetype)\n },\n hide () {\n // HACK: Closing immediately via a touch will cause the click\n // to be processed on the content below the overlay\n const transitionTime = 100 // ms\n setTimeout(() => {\n this.$store.dispatch('closeMediaViewer')\n }, transitionTime)\n },\n hideIfNotSwiped (event) {\n // If we have swiped over SwipeClick, do not trigger hide\n const comp = this.$refs.swipeClick\n if (!comp) {\n this.hide()\n } else {\n comp.$gesture.click(event)\n }\n },\n goPrev () {\n if (this.canNavigate) {\n const prevIndex = this.currentIndex === 0 ? this.media.length - 1 : (this.currentIndex - 1)\n const newMedia = this.media[prevIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n goNext () {\n if (this.canNavigate) {\n const nextIndex = this.currentIndex === this.media.length - 1 ? 0 : (this.currentIndex + 1)\n const newMedia = this.media[nextIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n onImageLoaded () {\n this.loading = false\n },\n handleSwipePreview (offsets) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: offsets[0], y: 0 })\n },\n handleSwipeEnd (sign) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: 0, y: 0 })\n if (sign > 0) {\n this.goNext()\n } else if (sign < 0) {\n this.goPrev()\n }\n },\n handleKeyupEvent (e) {\n if (this.showing && e.keyCode === 27) { // escape\n this.hide()\n }\n },\n handleKeydownEvent (e) {\n if (!this.showing) {\n return\n }\n\n if (e.keyCode === 39) { // arrow right\n this.goNext()\n } else if (e.keyCode === 37) { // arrow left\n this.goPrev()\n }\n }\n },\n mounted () {\n window.addEventListener('popstate', this.hide)\n document.addEventListener('keyup', this.handleKeyupEvent)\n document.addEventListener('keydown', this.handleKeydownEvent)\n },\n unmounted () {\n window.removeEventListener('popstate', this.hide)\n document.removeEventListener('keyup', this.handleKeyupEvent)\n document.removeEventListener('keydown', this.handleKeydownEvent)\n }\n}\n\nexport default MediaModal\n","import { render } from \"./media_modal.vue?vue&type=template&id=a080a8e6\"\nimport script from \"./media_modal.js?vue&type=script&lang=js\"\nexport * from \"./media_modal.js?vue&type=script&lang=js\"\n\nimport \"./media_modal.vue?vue&type=style&index=0&id=a080a8e6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"side-drawer-container\"\n :class=\"{ 'side-drawer-container-closed': closed, 'side-drawer-container-open': !closed }\"\n >\n <div\n class=\"side-drawer-darken\"\n :class=\"{ 'side-drawer-darken-closed': closed}\"\n />\n <div\n class=\"side-drawer\"\n :class=\"{'side-drawer-closed': closed}\"\n @touchstart=\"touchStart\"\n @touchmove=\"touchMove\"\n >\n <div\n class=\"side-drawer-heading\"\n @click=\"toggleDrawer\"\n >\n <UserCard\n v-if=\"currentUser\"\n :user-id=\"currentUser.id\"\n :hide-bio=\"true\"\n />\n <div\n v-else\n class=\"side-drawer-logo-wrapper\"\n >\n <img :src=\"logo\">\n <span v-if=\"!hideSitename\">{{ sitename }}</span>\n </div>\n </div>\n <ul>\n <li\n v-if=\"!currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'login' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-in-alt\"\n /> {{ $t(\"login.login\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"timelinesRoute\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"home\"\n /> {{ $t(\"nav.timelines\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'lists' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"list\"\n /> {{ $t(\"nav.lists\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && pleromaChatMessagesAvailable\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'chats', params: { username: currentUser.screen_name } }\"\n style=\"position: relative;\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"comments\"\n /> {{ $t(\"nav.chats\") }}\n <span\n v-if=\"unreadChatCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadChatCount }}\n </span>\n </router-link>\n </li>\n </ul>\n <ul v-if=\"currentUser\">\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'interactions', params: { username: currentUser.screen_name } }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n /> {{ $t(\"nav.interactions\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser.locked\"\n @click=\"toggleDrawer\"\n >\n <router-link to=\"/friend-requests\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.friend_requests\") }}\n <span\n v-if=\"followRequestCount > 0\"\n class=\"badge badge-notification\"\n >\n {{ followRequestCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"shout\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'shout-panel' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"shoutbox.title\") }}\n </router-link>\n </li>\n </ul>\n <ul>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'search' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n /> {{ $t(\"nav.search\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && suggestionsEnabled\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'who-to-follow' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.who_to_follow\") }}\n </router-link>\n </li>\n <li @click=\"toggleDrawer\">\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n /> {{ $t(\"settings.settings\") }}\n </button>\n </li>\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'about'}\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"info-circle\"\n /> {{ $t(\"nav.about\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && currentUser.role === 'admin'\"\n @click=\"toggleDrawer\"\n >\n <a\n href=\"/pleroma/admin/#/login-pleroma\"\n target=\"_blank\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n /> {{ $t(\"nav.administration\") }}\n </a>\n </li>\n <li\n v-if=\"currentUser && supportsAnnouncements\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'announcements' }\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"nav.announcements\") }}\n <span\n v-if=\"unreadAnnouncementCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadAnnouncementCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'edit-navigation' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"compass\"\n /> {{ $t(\"nav.edit_nav_mobile\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"doLogout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n /> {{ $t(\"login.logout\") }}\n </button>\n </li>\n </ul>\n </div>\n <div\n class=\"side-drawer-click-outside\"\n :class=\"{'side-drawer-click-outside-closed': closed}\"\n @click.stop.prevent=\"toggleDrawer\"\n />\n </div>\n</template>\n\n<script src=\"./side_drawer.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgb(0 0 0 / 50%);\n}\n\n.side-drawer-darken-closed {\n background-color: rgb(0 0 0 / 0%);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition: 0.35s;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a,\n button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport UserCard from '../user_card/user_card.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport { USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n)\n\nconst SideDrawer = {\n props: ['logout'],\n data: () => ({\n closed: true,\n closeGesture: undefined\n }),\n created () {\n this.closeGesture = GestureService.swipeGesture(GestureService.DIRECTION_LEFT, this.toggleDrawer)\n\n if (this.currentUser && this.currentUser.locked) {\n this.$store.dispatch('startFetchingFollowRequests')\n }\n },\n components: { UserCard },\n computed: {\n currentUser () {\n return this.$store.state.users.currentUser\n },\n shout () { return this.$store.state.shout.joined },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n unseenNotificationsCount () {\n return this.unseenNotifications.length\n },\n suggestionsEnabled () {\n return this.$store.state.instance.suggestionsEnabled\n },\n logo () {\n return this.$store.state.instance.logo\n },\n hideSitename () {\n return this.$store.state.instance.hideSitename\n },\n sitename () {\n return this.$store.state.instance.name\n },\n followRequestCount () {\n return this.$store.state.api.followRequests.length\n },\n privateMode () {\n return this.$store.state.instance.private\n },\n federating () {\n return this.$store.state.instance.federating\n },\n timelinesRoute () {\n let name\n if (this.$store.state.interface.lastTimeline) {\n name = this.$store.state.interface.lastTimeline\n }\n name = this.currentUser ? 'friends' : 'public-timeline'\n if (USERNAME_ROUTES.has(name)) {\n return { name, params: { username: this.currentUser.screen_name } }\n } else {\n return { name }\n }\n },\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements\n }),\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n },\n methods: {\n toggleDrawer () {\n this.closed = !this.closed\n },\n doLogout () {\n this.logout()\n this.toggleDrawer()\n },\n touchStart (e) {\n GestureService.beginSwipe(e, this.closeGesture)\n },\n touchMove (e) {\n GestureService.updateSwipe(e, this.closeGesture)\n },\n openSettingsModal () {\n this.$store.dispatch('openSettingsModal')\n }\n }\n}\n\nexport default SideDrawer\n","import { render } from \"./side_drawer.vue?vue&type=template&id=650ad1ba\"\nimport script from \"./side_drawer.js?vue&type=script&lang=js\"\nexport * from \"./side_drawer.js?vue&type=script&lang=js\"\n\nimport \"./side_drawer.vue?vue&type=style&index=0&id=650ad1ba&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { debounce } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faPen\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faPen\n)\n\nconst HIDDEN_FOR_PAGES = new Set([\n 'chats',\n 'chat',\n 'lists-edit'\n])\n\nconst MobilePostStatusButton = {\n data () {\n return {\n hidden: false,\n scrollingDown: false,\n inputActive: false,\n oldScrollPos: 0,\n amountScrolled: 0\n }\n },\n created () {\n if (this.autohideFloatingPostButton) {\n this.activateFloatingPostButtonAutohide()\n }\n window.addEventListener('resize', this.handleOSK)\n },\n unmounted () {\n if (this.autohideFloatingPostButton) {\n this.deactivateFloatingPostButtonAutohide()\n }\n window.removeEventListener('resize', this.handleOSK)\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isHidden () {\n if (HIDDEN_FOR_PAGES.has(this.$route.name)) { return true }\n\n return this.autohideFloatingPostButton && (this.hidden || this.inputActive)\n },\n isPersistent () {\n return !!this.$store.getters.mergedConfig.alwaysShowNewPostButton\n },\n autohideFloatingPostButton () {\n return !!this.$store.getters.mergedConfig.autohideFloatingPostButton\n }\n },\n watch: {\n autohideFloatingPostButton: function (isEnabled) {\n if (isEnabled) {\n this.activateFloatingPostButtonAutohide()\n } else {\n this.deactivateFloatingPostButtonAutohide()\n }\n }\n },\n methods: {\n activateFloatingPostButtonAutohide () {\n window.addEventListener('scroll', this.handleScrollStart)\n window.addEventListener('scroll', this.handleScrollEnd)\n },\n deactivateFloatingPostButtonAutohide () {\n window.removeEventListener('scroll', this.handleScrollStart)\n window.removeEventListener('scroll', this.handleScrollEnd)\n },\n openPostForm () {\n this.$store.dispatch('openPostStatusModal')\n },\n handleOSK () {\n // This is a big hack: we're guessing from changed window sizes if the\n // on-screen keyboard is active or not. This is only really important\n // for phones in portrait mode and it's more important to show the button\n // in normal scenarios on all phones, than it is to hide it when the\n // keyboard is active.\n // Guesswork based on https://www.mydevice.io/#compare-devices\n\n // for example, iphone 4 and android phones from the same time period\n const smallPhone = window.innerWidth < 350\n const smallPhoneKbOpen = smallPhone && window.innerHeight < 345\n\n const biggerPhone = !smallPhone && window.innerWidth < 450\n const biggerPhoneKbOpen = biggerPhone && window.innerHeight < 560\n if (smallPhoneKbOpen || biggerPhoneKbOpen) {\n this.inputActive = true\n } else {\n this.inputActive = false\n }\n },\n handleScrollStart: debounce(function () {\n if (window.scrollY > this.oldScrollPos) {\n this.hidden = true\n } else {\n this.hidden = false\n }\n this.oldScrollPos = window.scrollY\n }, 100, { leading: true, trailing: false }),\n\n handleScrollEnd: debounce(function () {\n this.hidden = false\n this.oldScrollPos = window.scrollY\n }, 100, { leading: false, trailing: true })\n }\n}\n\nexport default MobilePostStatusButton\n","import { render } from \"./mobile_post_status_button.vue?vue&type=template&id=6c0a4c69\"\nimport script from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\nexport * from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\n\nimport \"./mobile_post_status_button.vue?vue&type=style&index=0&id=6c0a4c69&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n v-if=\"isLoggedIn\"\n class=\"MobilePostButton button-default new-status-button\"\n :class=\"{ 'hidden': isHidden, 'always-show': isPersistent }\"\n :title=\"$t('post_status.new_status')\"\n @click=\"openPostForm\"\n >\n <FAIcon icon=\"pen\" />\n </button>\n</template>\n\n<script src=\"./mobile_post_status_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 2px 2px rgb(0 0 0 / 30%), 0 4px 6px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n</style>\n","<template>\n <div\n class=\"MobileNav\"\n >\n <nav\n id=\"nav\"\n class=\"mobile-nav\"\n @click=\"scrollToTop()\"\n >\n <div class=\"item\">\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_sidebar')\"\n :aria-expanaded=\"$refs.sideDrawer && !$refs.sideDrawer.closed\"\n @click.stop.prevent=\"toggleMobileSidebar()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bars\"\n />\n <div\n v-if=\"(unreadChatCount && !chatsPinned) || unreadAnnouncementCount\"\n class=\"alert-dot\"\n />\n </button>\n <NavigationPins class=\"pins\" />\n </div> <div class=\"item right\">\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"unseenNotificationsCount ? $t('nav.mobile_notifications_unread_active') : $t('nav.mobile_notifications')\"\n @click.stop.prevent=\"openMobileNotifications()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n />\n <div\n v-if=\"unseenNotificationsCount\"\n class=\"alert-dot\"\n />\n </button>\n </div>\n </nav>\n <aside\n v-if=\"currentUser\"\n class=\"mobile-notifications-drawer\"\n :class=\"{ '-closed': !notificationsOpen }\"\n @touchstart.stop=\"notificationsTouchStart\"\n @touchmove.stop=\"notificationsTouchMove\"\n >\n <div class=\"mobile-notifications-header\">\n <span class=\"title\">{{ $t('notifications.notifications') }}</span>\n <span class=\"spacer\" />\n <button\n v-if=\"notificationsAtTop\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('general.scroll_to_top')\"\n @click.stop.prevent=\"scrollMobileNotificationsToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_notifications_close')\"\n @click.stop.prevent=\"closeMobileNotifications(true)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <div\n id=\"mobile-notifications\"\n ref=\"mobileNotifications\"\n class=\"mobile-notifications\"\n @scroll=\"onScroll\"\n />\n </aside>\n <SideDrawer\n ref=\"sideDrawer\"\n :logout=\"logout\"\n />\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmLogout\"\n :title=\"$t('login.logout_confirm_title')\"\n :confirm-text=\"$t('login.logout_confirm_accept_button')\"\n :cancel-text=\"$t('login.logout_confirm_cancel_button')\"\n @accepted=\"doLogout\"\n @cancelled=\"hideConfirmLogout\"\n >\n {{ $t('login.logout_confirm') }}\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./mobile_nav.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 0.3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n .confirm-modal.dark-overlay {\n &::before {\n z-index: 3000;\n }\n\n .dialog-modal.panel {\n z-index: 3001;\n }\n }\n}\n\n</style>\n","import SideDrawer from '../side_drawer/side_drawer.vue'\nimport Notifications from '../notifications/notifications.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n)\n\nconst MobileNav = {\n components: {\n SideDrawer,\n Notifications,\n NavigationPins,\n ConfirmModal\n },\n data: () => ({\n notificationsCloseGesture: undefined,\n notificationsOpen: false,\n notificationsAtTop: true,\n showingConfirmLogout: false\n }),\n created () {\n this.notificationsCloseGesture = GestureService.swipeGesture(\n GestureService.DIRECTION_RIGHT,\n () => this.closeMobileNotifications(true),\n 50\n )\n },\n computed: {\n currentUser () {\n return this.$store.state.users.currentUser\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n unseenNotificationsCount () {\n return this.unseenNotifications.length\n },\n hideSitename () { return this.$store.state.instance.hideSitename },\n sitename () { return this.$store.state.instance.name },\n isChat () {\n return this.$route.name === 'chat'\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount']),\n chatsPinned () {\n return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has('chats')\n },\n shouldConfirmLogout () {\n return this.$store.getters.mergedConfig.modalOnLogout\n },\n ...mapGetters(['unreadChatCount'])\n },\n methods: {\n toggleMobileSidebar () {\n this.$refs.sideDrawer.toggleDrawer()\n },\n openMobileNotifications () {\n this.notificationsOpen = true\n },\n closeMobileNotifications (markRead) {\n if (this.notificationsOpen) {\n // make sure to mark notifs seen only when the notifs were open and not\n // from close-calls.\n this.notificationsOpen = false\n if (markRead) {\n this.markNotificationsAsSeen()\n }\n }\n },\n notificationsTouchStart (e) {\n GestureService.beginSwipe(e, this.notificationsCloseGesture)\n },\n notificationsTouchMove (e) {\n GestureService.updateSwipe(e, this.notificationsCloseGesture)\n },\n scrollToTop () {\n window.scrollTo(0, 0)\n },\n scrollMobileNotificationsToTop () {\n this.$refs.mobileNotifications.scrollTo(0, 0)\n },\n showConfirmLogout () {\n this.showingConfirmLogout = true\n },\n hideConfirmLogout () {\n this.showingConfirmLogout = false\n },\n logout () {\n if (!this.shouldConfirmLogout) {\n this.doLogout()\n } else {\n this.showConfirmLogout()\n }\n },\n doLogout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n this.hideConfirmLogout()\n },\n markNotificationsAsSeen () {\n // this.$refs.notifications.markAsSeen()\n this.$store.dispatch('markNotificationsAsSeen')\n },\n onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) {\n this.notificationsAtTop = scrollTop > 0\n if (scrollTop + clientHeight >= scrollHeight) {\n this.$refs.notifications.fetchOlderNotifications()\n }\n }\n },\n watch: {\n $route () {\n // handles closing notificaitons when you press any router-link on the\n // notifications.\n this.closeMobileNotifications()\n }\n }\n}\n\nexport default MobileNav\n","import { render } from \"./mobile_nav.vue?vue&type=template&id=06094f09\"\nimport script from \"./mobile_nav.js?vue&type=script&lang=js\"\nexport * from \"./mobile_nav.js?vue&type=script&lang=js\"\n\nimport \"./mobile_nav.vue?vue&type=style&index=0&id=06094f09&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <nav\n id=\"nav\"\n class=\"DesktopNav\"\n :class=\"{ '-logoLeft': logoLeft }\"\n @click=\"scrollToTop()\"\n >\n <div class=\"inner-nav\">\n <div class=\"item sitename\">\n <router-link\n v-if=\"!hideSitename\"\n class=\"site-name\"\n :to=\"{ name: 'root' }\"\n active-class=\"home\"\n >\n {{ sitename }}\n </router-link>\n </div>\n <router-link\n class=\"logo\"\n :to=\"{ name: 'root' }\"\n :style=\"logoBgStyle\"\n :title=\"sitename\"\n >\n <div\n class=\"mask\"\n :style=\"logoMaskStyle\"\n />\n <img\n :src=\"logo\"\n :style=\"logoStyle\"\n >\n </router-link>\n <div class=\"item right actions\">\n <search-bar\n v-if=\"currentUser || !privateMode\"\n @toggled=\"onSearchBarToggled\"\n @click.stop\n />\n <button\n class=\"button-unstyled nav-icon\"\n :title=\"$t('nav.preferences')\"\n @click.stop=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n />\n </button>\n <a\n v-if=\"currentUser && currentUser.role === 'admin'\"\n href=\"/pleroma/admin/#/login-pleroma\"\n class=\"nav-icon\"\n target=\"_blank\"\n :title=\"$t('nav.administration')\"\n @click.stop\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n />\n </a>\n <span class=\"spacer\" />\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled nav-icon\"\n :title=\"$t('login.logout')\"\n @click.stop.prevent=\"logout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n />\n </button>\n </div>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmLogout\"\n :title=\"$t('login.logout_confirm_title')\"\n :confirm-text=\"$t('login.logout_confirm_accept_button')\"\n :cancel-text=\"$t('login.logout_confirm_cancel_button')\"\n @accepted=\"doLogout\"\n @cancelled=\"hideConfirmLogout\"\n >\n {{ $t('login.logout_confirm') }}\n </confirm-modal>\n </teleport>\n </nav>\n</template>\n<script src=\"./desktop_nav.js\"></script>\n\n<style src=\"./desktop_nav.scss\" lang=\"scss\"></style>\n","<template>\n <div\n class=\"SearchBar\"\n :class=\"{ '-expanded': !hidden }\"\n >\n <button\n v-if=\"hidden\"\n class=\"button-unstyled nav-icon\"\n :title=\"$t('nav.search')\"\n type=\"button\"\n :aria-expanded=\"!hidden\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </button>\n <template v-else>\n <input\n id=\"search-bar-input\"\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-bar-input\"\n :placeholder=\"$t('nav.search')\"\n type=\"text\"\n @keyup.enter=\"find(searchTerm)\"\n >\n <button\n class=\"button-default search-button\"\n type=\"submit\"\n :title=\"$t('nav.search')\"\n @click=\"find(searchTerm)\"\n >\n <FAIcon\n fixed-width\n icon=\"search\"\n />\n </button>\n <button\n class=\"button-unstyled cancel-search\"\n type=\"button\"\n :title=\"$t('nav.search_close')\"\n :aria-expanded=\"!hidden\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n class=\"cancel-icon fa-scale-110 fa-old-padding\"\n />\n </button>\n <span class=\"spacer\" />\n <span class=\"spacer\" />\n </template>\n </div>\n</template>\n\n<script src=\"./search_bar.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faSearch\n)\n\nconst SearchBar = {\n data: () => ({\n searchTerm: undefined,\n hidden: true,\n error: false\n }),\n watch: {\n $route: function (route) {\n if (route.name === 'search') {\n this.searchTerm = route.query.query\n }\n }\n },\n methods: {\n find (searchTerm) {\n this.$router.push({ name: 'search', query: { query: searchTerm } })\n this.$refs.searchInput.focus()\n },\n toggleHidden () {\n this.hidden = !this.hidden\n this.$emit('toggled', this.hidden)\n this.$nextTick(() => {\n if (!this.hidden) {\n this.$refs.searchInput.focus()\n }\n })\n }\n }\n}\n\nexport default SearchBar\n","import { render } from \"./search_bar.vue?vue&type=template&id=3ff3b2d5\"\nimport script from \"./search_bar.js?vue&type=script&lang=js\"\nexport * from \"./search_bar.js?vue&type=script&lang=js\"\n\nimport \"./search_bar.vue?vue&type=style&index=0&id=3ff3b2d5&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import SearchBar from 'components/search_bar/search_bar.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n)\n\nexport default {\n components: {\n SearchBar,\n ConfirmModal\n },\n data: () => ({\n searchBarHidden: true,\n supportsMask: window.CSS && window.CSS.supports && (\n window.CSS.supports('mask-size', 'contain') ||\n window.CSS.supports('-webkit-mask-size', 'contain') ||\n window.CSS.supports('-moz-mask-size', 'contain') ||\n window.CSS.supports('-ms-mask-size', 'contain') ||\n window.CSS.supports('-o-mask-size', 'contain')\n ),\n showingConfirmLogout: false\n }),\n computed: {\n enableMask () { return this.supportsMask && this.$store.state.instance.logoMask },\n logoStyle () {\n return {\n visibility: this.enableMask ? 'hidden' : 'visible'\n }\n },\n logoMaskStyle () {\n return this.enableMask\n ? {\n 'mask-image': `url(${this.$store.state.instance.logo})`\n }\n : {\n 'background-color': this.enableMask ? '' : 'transparent'\n }\n },\n logoBgStyle () {\n return Object.assign({\n margin: `${this.$store.state.instance.logoMargin} 0`,\n opacity: this.searchBarHidden ? 1 : 0\n }, this.enableMask\n ? {}\n : {\n 'background-color': this.enableMask ? '' : 'transparent'\n })\n },\n logo () { return this.$store.state.instance.logo },\n sitename () { return this.$store.state.instance.name },\n hideSitename () { return this.$store.state.instance.hideSitename },\n logoLeft () { return this.$store.state.instance.logoLeft },\n currentUser () { return this.$store.state.users.currentUser },\n privateMode () { return this.$store.state.instance.private },\n shouldConfirmLogout () {\n return this.$store.getters.mergedConfig.modalOnLogout\n }\n },\n methods: {\n scrollToTop () {\n window.scrollTo(0, 0)\n },\n showConfirmLogout () {\n this.showingConfirmLogout = true\n },\n hideConfirmLogout () {\n this.showingConfirmLogout = false\n },\n logout () {\n if (!this.shouldConfirmLogout) {\n this.doLogout()\n } else {\n this.showConfirmLogout()\n }\n },\n doLogout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n this.hideConfirmLogout()\n },\n onSearchBarToggled (hidden) {\n this.searchBarHidden = hidden\n },\n openSettingsModal () {\n this.$store.dispatch('openSettingsModal')\n }\n }\n}\n","import { render } from \"./desktop_nav.vue?vue&type=template&id=1390197e\"\nimport script from \"./desktop_nav.js?vue&type=script&lang=js\"\nexport * from \"./desktop_nav.js?vue&type=script&lang=js\"\n\nimport \"./desktop_nav.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isOpen\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"user-reporting-panel panel\">\n <div class=\"panel-heading\">\n <i18n-t\n tag=\"div\"\n keypath=\"user_reporting.title\"\n class=\"title\"\n >\n <UserLink :user=\"user\" />\n </i18n-t>\n </div>\n <div class=\"panel-body\">\n <div class=\"user-reporting-panel-left\">\n <div>\n <p>{{ $t('user_reporting.add_comment_description') }}</p>\n <textarea\n v-model=\"comment\"\n class=\"form-control\"\n :placeholder=\"$t('user_reporting.additional_comments')\"\n rows=\"1\"\n @input=\"resize\"\n />\n </div>\n <div v-if=\"!user.is_local\">\n <p>{{ $t('user_reporting.forward_description') }}</p>\n <Checkbox v-model=\"forward\">\n {{ $t('user_reporting.forward_to', [remoteInstance]) }}\n </Checkbox>\n </div>\n <div>\n <button\n class=\"btn button-default\"\n :disabled=\"processing\"\n @click=\"reportUser\"\n >\n {{ $t('user_reporting.submit') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('user_reporting.generic_error') }}\n </div>\n </div>\n </div>\n <div class=\"user-reporting-panel-right\">\n <List :items=\"statuses\">\n <template #item=\"{item}\">\n <div class=\"status-fadein user-reporting-panel-sitem\">\n <Status\n :in-conversation=\"false\"\n :focused=\"false\"\n :statusoid=\"item\"\n />\n <Checkbox\n :model-value=\"isChecked(item.id)\"\n @update:model-value=\"checked => toggleStatus(checked, item.id)\"\n />\n </div>\n </template>\n </List>\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./user_reporting_modal.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n</style>\n","import Status from '../status/status.vue'\nimport List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Modal from '../modal/modal.vue'\nimport UserLink from '../user_link/user_link.vue'\n\nconst UserReportingModal = {\n components: {\n Status,\n List,\n Checkbox,\n Modal,\n UserLink\n },\n data () {\n return {\n comment: '',\n forward: false,\n statusIdsToReport: [],\n processing: false,\n error: false\n }\n },\n computed: {\n reportModal () {\n return this.$store.state.reports.reportModal\n },\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isOpen () {\n return this.isLoggedIn && this.reportModal.activated\n },\n userId () {\n return this.reportModal.userId\n },\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n remoteInstance () {\n return !this.user.is_local && this.user.screen_name.substr(this.user.screen_name.indexOf('@') + 1)\n },\n statuses () {\n return this.reportModal.statuses\n },\n preTickedIds () {\n return this.reportModal.preTickedIds\n }\n },\n watch: {\n userId: 'resetState',\n preTickedIds (newValue) {\n this.statusIdsToReport = newValue\n }\n },\n methods: {\n resetState () {\n // Reset state\n this.comment = ''\n this.forward = false\n this.statusIdsToReport = this.preTickedIds\n this.processing = false\n this.error = false\n },\n closeModal () {\n this.$store.dispatch('closeUserReportingModal')\n },\n reportUser () {\n this.processing = true\n this.error = false\n const params = {\n userId: this.userId,\n comment: this.comment,\n forward: this.forward,\n statusIds: this.statusIdsToReport\n }\n this.$store.state.api.backendInteractor.reportUser({ ...params })\n .then(() => {\n this.processing = false\n this.resetState()\n this.closeModal()\n })\n .catch(() => {\n this.processing = false\n this.error = true\n })\n },\n clearError () {\n this.error = false\n },\n isChecked (statusId) {\n return this.statusIdsToReport.indexOf(statusId) !== -1\n },\n toggleStatus (checked, statusId) {\n if (checked === this.isChecked(statusId)) {\n return\n }\n\n if (checked) {\n this.statusIdsToReport.push(statusId)\n } else {\n this.statusIdsToReport.splice(this.statusIdsToReport.indexOf(statusId), 1)\n }\n },\n resize (e) {\n const target = e.target || e\n if (!(target instanceof window.Element)) { return }\n // Auto is needed to make textbox shrink when removing lines\n target.style.height = 'auto'\n target.style.height = `${target.scrollHeight}px`\n if (target.value === '') {\n target.style.height = null\n }\n }\n }\n}\n\nexport default UserReportingModal\n","import { render } from \"./user_reporting_modal.vue?vue&type=template&id=b4c54784\"\nimport script from \"./user_reporting_modal.js?vue&type=script&lang=js\"\nexport * from \"./user_reporting_modal.js?vue&type=script&lang=js\"\n\nimport \"./user_reporting_modal.vue?vue&type=style&index=0&id=b4c54784&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isFormVisible\"\n class=\"edit-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"edit-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.edit_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n :post-handler=\"doEditStatus\"\n :disable-polls=\"true\"\n :disable-visibility-selector=\"true\"\n @posted=\"closeModal\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./edit_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n</style>\n","import PostStatusForm from '../post_status_form/post_status_form.vue'\nimport Modal from '../modal/modal.vue'\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport get from 'lodash/get'\n\nconst EditStatusModal = {\n components: {\n PostStatusForm,\n Modal\n },\n data () {\n return {\n resettingForm: false\n }\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n modalActivated () {\n return this.$store.state.editStatus.modalActivated\n },\n isFormVisible () {\n return this.isLoggedIn && !this.resettingForm && this.modalActivated\n },\n params () {\n return this.$store.state.editStatus.params || {}\n }\n },\n watch: {\n params (newVal, oldVal) {\n if (get(newVal, 'statusId') !== get(oldVal, 'statusId')) {\n this.resettingForm = true\n this.$nextTick(() => {\n this.resettingForm = false\n })\n }\n },\n isFormVisible (val) {\n if (val) {\n this.$nextTick(() => this.$el && this.$el.querySelector('textarea').focus())\n }\n }\n },\n methods: {\n doEditStatus ({ status, spoilerText, sensitive, media, contentType, poll }) {\n const params = {\n store: this.$store,\n statusId: this.$store.state.editStatus.params.statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media,\n contentType\n }\n\n return statusPosterService.editStatus(params)\n .then((data) => {\n return data\n })\n .catch((err) => {\n console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n },\n closeModal () {\n this.$store.dispatch('closeEditStatusModal')\n }\n }\n}\n\nexport default EditStatusModal\n","import { render } from \"./edit_status_modal.vue?vue&type=template&id=7e74cdc2\"\nimport script from \"./edit_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./edit_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./edit_status_modal.vue?vue&type=style&index=0&id=7e74cdc2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isLoggedIn && !resettingForm\"\n :is-open=\"modalActivated\"\n class=\"post-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"post-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.new_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n @posted=\"closeModal\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./post_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","import PostStatusForm from '../post_status_form/post_status_form.vue'\nimport Modal from '../modal/modal.vue'\nimport get from 'lodash/get'\n\nconst PostStatusModal = {\n components: {\n PostStatusForm,\n Modal\n },\n data () {\n return {\n resettingForm: false\n }\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n modalActivated () {\n return this.$store.state.postStatus.modalActivated\n },\n isFormVisible () {\n return this.isLoggedIn && !this.resettingForm && this.modalActivated\n },\n params () {\n return this.$store.state.postStatus.params || {}\n }\n },\n watch: {\n params (newVal, oldVal) {\n if (get(newVal, 'repliedUser.id') !== get(oldVal, 'repliedUser.id')) {\n this.resettingForm = true\n this.$nextTick(() => {\n this.resettingForm = false\n })\n }\n },\n isFormVisible (val) {\n if (val) {\n this.$nextTick(() => this.$el && this.$el.querySelector('textarea').focus())\n }\n }\n },\n methods: {\n closeModal () {\n this.$store.dispatch('closePostStatusModal')\n }\n }\n}\n\nexport default PostStatusModal\n","import { render } from \"./post_status_modal.vue?vue&type=template&id=b6b8d3a2\"\nimport script from \"./post_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./post_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./post_status_modal.vue?vue&type=style&index=0&id=b6b8d3a2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"modalActivated\"\n class=\"status-history-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"status-history-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('status.status_history') }} ({{ historyCount }})\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"historyCount > 0\"\n class=\"history-body\"\n >\n <status\n v-for=\"status in history\"\n :key=\"status.id\"\n :statusoid=\"status\"\n :is-preview=\"true\"\n class=\"conversation-status status-fadein panel-body\"\n />\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./status_history_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","import { get } from 'lodash'\nimport Modal from '../modal/modal.vue'\nimport Status from '../status/status.vue'\n\nconst StatusHistoryModal = {\n components: {\n Modal,\n Status\n },\n data () {\n return {\n statuses: []\n }\n },\n computed: {\n modalActivated () {\n return this.$store.state.statusHistory.modalActivated\n },\n params () {\n return this.$store.state.statusHistory.params\n },\n statusId () {\n return this.params.id\n },\n historyCount () {\n return this.statuses.length\n },\n history () {\n return this.statuses\n }\n },\n watch: {\n params (newVal, oldVal) {\n const newStatusId = get(newVal, 'id') !== get(oldVal, 'id')\n if (newStatusId) {\n this.resetHistory()\n }\n\n if (newStatusId || get(newVal, 'edited_at') !== get(oldVal, 'edited_at')) {\n this.fetchStatusHistory()\n }\n }\n },\n methods: {\n resetHistory () {\n this.statuses = []\n },\n fetchStatusHistory () {\n this.$store.dispatch('fetchStatusHistory', this.params)\n .then(data => {\n this.statuses = data\n })\n },\n closeModal () {\n this.$store.dispatch('closeStatusHistoryModal')\n }\n }\n}\n\nexport default StatusHistoryModal\n","import { render } from \"./status_history_modal.vue?vue&type=template&id=16d58712\"\nimport script from \"./status_history_modal.js?vue&type=script&lang=js\"\nexport * from \"./status_history_modal.js?vue&type=script&lang=js\"\n\nimport \"./status_history_modal.vue?vue&type=style&index=0&id=16d58712&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"global-notice-list\">\n <div\n v-for=\"(notice, index) in notices\"\n :key=\"index\"\n class=\"alert global-notice\"\n :class=\"{ ['global-' + notice.level]: true }\"\n >\n <div class=\"notice-message\">\n {{ $t(notice.messageKey, notice.messageArgs) }}\n </div>\n <button\n class=\"button-unstyled close-notice\"\n @click=\"closeNotice(notice)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script src=\"./global_notice_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_navbar_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst GlobalNoticeList = {\n computed: {\n notices () {\n return this.$store.state.interface.globalNotices\n }\n },\n methods: {\n closeNotice (notice) {\n this.$store.dispatch('removeGlobalNotice', notice)\n }\n }\n}\n\nexport default GlobalNoticeList\n","import { render } from \"./global_notice_list.vue?vue&type=template&id=f3a7303a\"\nimport script from \"./global_notice_list.js?vue&type=script&lang=js\"\nexport * from \"./global_notice_list.js?vue&type=script&lang=js\"\n\nimport \"./global_notice_list.vue?vue&type=style&index=0&id=f3a7303a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserPanel from './components/user_panel/user_panel.vue'\nimport NavPanel from './components/nav_panel/nav_panel.vue'\nimport InstanceSpecificPanel from './components/instance_specific_panel/instance_specific_panel.vue'\nimport FeaturesPanel from './components/features_panel/features_panel.vue'\nimport WhoToFollowPanel from './components/who_to_follow_panel/who_to_follow_panel.vue'\nimport ShoutPanel from './components/shout_panel/shout_panel.vue'\nimport MediaModal from './components/media_modal/media_modal.vue'\nimport SideDrawer from './components/side_drawer/side_drawer.vue'\nimport MobilePostStatusButton from './components/mobile_post_status_button/mobile_post_status_button.vue'\nimport MobileNav from './components/mobile_nav/mobile_nav.vue'\nimport DesktopNav from './components/desktop_nav/desktop_nav.vue'\nimport UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue'\nimport EditStatusModal from './components/edit_status_modal/edit_status_modal.vue'\nimport PostStatusModal from './components/post_status_modal/post_status_modal.vue'\nimport StatusHistoryModal from './components/status_history_modal/status_history_modal.vue'\nimport GlobalNoticeList from './components/global_notice_list/global_notice_list.vue'\nimport { windowWidth, windowHeight } from './services/window_utils/window_utils'\nimport { mapGetters } from 'vuex'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'app',\n components: {\n UserPanel,\n NavPanel,\n Notifications: defineAsyncComponent(() => import('./components/notifications/notifications.vue')),\n InstanceSpecificPanel,\n FeaturesPanel,\n WhoToFollowPanel,\n ShoutPanel,\n MediaModal,\n SideDrawer,\n MobilePostStatusButton,\n MobileNav,\n DesktopNav,\n SettingsModal: defineAsyncComponent(() => import('./components/settings_modal/settings_modal.vue')),\n UpdateNotification: defineAsyncComponent(() => import('./components/update_notification/update_notification.vue')),\n UserReportingModal,\n PostStatusModal,\n EditStatusModal,\n StatusHistoryModal,\n GlobalNoticeList\n },\n data: () => ({\n mobileActivePanel: 'timeline'\n }),\n created () {\n // Load the locale from the storage\n const val = this.$store.getters.mergedConfig.interfaceLanguage\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n window.addEventListener('resize', this.updateMobileState)\n },\n unmounted () {\n window.removeEventListener('resize', this.updateMobileState)\n },\n computed: {\n classes () {\n return [\n {\n '-reverse': this.reverseLayout,\n '-no-sticky-headers': this.noSticky,\n '-has-new-post-button': this.newPostButtonShown\n },\n '-' + this.layoutType\n ]\n },\n navClasses () {\n const { navbarColumnStretch } = this.$store.getters.mergedConfig\n return [\n '-' + this.layoutType,\n ...(navbarColumnStretch ? ['-column-stretch'] : [])\n ]\n },\n currentUser () { return this.$store.state.users.currentUser },\n userBackground () { return this.currentUser.background_image },\n instanceBackground () {\n return this.mergedConfig.hideInstanceWallpaper\n ? null\n : this.$store.state.instance.background\n },\n background () { return this.userBackground || this.instanceBackground },\n bgStyle () {\n if (this.background) {\n return {\n '--body-background-image': `url(${this.background})`\n }\n }\n },\n shout () { return this.$store.state.shout.joined },\n suggestionsEnabled () { return this.$store.state.instance.suggestionsEnabled },\n showInstanceSpecificPanel () {\n return this.$store.state.instance.showInstanceSpecificPanel &&\n !this.$store.getters.mergedConfig.hideISP &&\n this.$store.state.instance.instanceSpecificPanelContent\n },\n isChats () {\n return this.$route.name === 'chat' || this.$route.name === 'chats'\n },\n isListEdit () {\n return this.$route.name === 'lists-edit'\n },\n newPostButtonShown () {\n if (this.isChats) return false\n if (this.isListEdit) return false\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || this.layoutType === 'mobile'\n },\n showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n editingAvailable () { return this.$store.state.instance.editingAvailable },\n shoutboxPosition () {\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || false\n },\n hideShoutbox () {\n return this.$store.getters.mergedConfig.hideShoutbox\n },\n layoutType () { return this.$store.state.interface.layoutType },\n privateMode () { return this.$store.state.instance.private },\n reverseLayout () {\n const { thirdColumnMode, sidebarRight: reverseSetting } = this.$store.getters.mergedConfig\n if (this.layoutType !== 'wide') {\n return reverseSetting\n } else {\n return thirdColumnMode === 'notifications' ? reverseSetting : !reverseSetting\n }\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n showScrollbars () { return this.$store.getters.mergedConfig.showScrollbars },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n updateMobileState () {\n this.$store.dispatch('setLayoutWidth', windowWidth())\n this.$store.dispatch('setLayoutHeight', windowHeight())\n }\n }\n}\n","import { render } from \"./App.vue?vue&type=template&id=8323d9fc\"\nimport script from \"./App.js?vue&type=script&lang=js\"\nexport * from \"./App.js?vue&type=script&lang=js\"\n\nimport \"./App.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :class=\"['Timeline', classes.root]\">\n <div :class=\"classes.header\">\n <TimelineMenu\n v-if=\"!embedded\"\n :timeline-name=\"timelineName\"\n />\n <div\n v-if=\"showScrollTop && !embedded\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <template v-if=\"mobileLayout && !embedded\">\n <div\n v-if=\"showLoadButton\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled loadmore-button\"\n :title=\"loadButtonString\"\n @click.prevent=\"showNewStatuses\"\n >\n <FAIcon\n fixed-width\n icon=\"circle-plus\"\n />\n <div class=\"alert-badge\">\n {{ mobileLoadButtonString }}\n </div>\n </button>\n </div>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint veryfaint rightside-icon\"\n :title=\"$t('timeline.up_to_date')\"\n :aria-disabled=\"true\"\n @click.prevent\n >\n <FAIcon\n fixed-width\n icon=\"check\"\n />\n </div>\n </template>\n <template v-else>\n <button\n v-if=\"showLoadButton\"\n class=\"button-default loadmore-button\"\n @click.prevent=\"showNewStatuses\"\n >\n {{ loadButtonString }}\n </button>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint\"\n @click.prevent\n >\n {{ $t('timeline.up_to_date') }}\n </div>\n </template>\n <QuickFilterSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n </div>\n <div :class=\"classes.body\">\n <div\n ref=\"timeline\"\n class=\"timeline\"\n role=\"feed\"\n >\n <conversation\n v-for=\"statusId in filteredPinnedStatusIds\"\n :key=\"statusId + '-pinned'\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"statusId\"\n :collapsable=\"true\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n />\n <conversation\n v-for=\"status in filteredVisibleStatuses\"\n :key=\"status.id\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"status.id\"\n :collapsable=\"true\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n :virtual-hidden=\"virtualScrollingEnabled && !statusesToDisplay.includes(status.id)\"\n />\n </div>\n </div>\n <div :class=\"classes.footer\">\n <teleport\n :to=\"footerSlipgate\"\n :disabled=\"!embedded || !footerSlipgate\"\n >\n <div\n v-if=\"count===0\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_statuses') }}\n </div>\n <div\n v-else-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_more_statuses') }}\n </div>\n <button\n v-else-if=\"!timeline.loading\"\n class=\"button-unstyled -link\"\n @click.prevent=\"fetchOlderStatuses()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('timeline.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </teleport>\n </div>\n </div>\n</template>\n\n<script src=\"./timeline.js\"></script>\n\n<style src=\"./timeline.scss\" lang=\"scss\"> </style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n :style=\"hiddenStyle\"\n class=\"Conversation\"\n :class=\"{ '-expanded' : isExpanded, 'panel' : isExpanded }\"\n >\n <div\n v-if=\"isExpanded\"\n class=\"panel-heading conversation-heading -sticky\"\n >\n <span class=\"title\"> {{ $t('timeline.conversation') }} </span>\n <button\n v-if=\"collapsable\"\n class=\"button-unstyled -link\"\n @click.prevent=\"toggleExpanded\"\n >\n {{ $t('timeline.collapse') }}\n </button>\n <QuickFilterSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n </div>\n <div class=\"conversation-body panel-body\">\n <div\n v-if=\"isTreeView\"\n class=\"thread-body\"\n >\n <div\n v-if=\"shouldShowAllConversationButton\"\n class=\"conversation-dive-to-top-level-box\"\n >\n <i18n-t\n keypath=\"status.show_all_conversation_with_icon\"\n tag=\"button\"\n class=\"button-unstyled -link\"\n scope=\"global\"\n @click.prevent=\"diveToTopLevel\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-left\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.show_all_conversation', otherTopLevelCount, { numStatus: otherTopLevelCount }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n <div\n v-if=\"shouldShowAncestors\"\n class=\"thread-ancestors\"\n >\n <article\n v-for=\"status in ancestorsOf(diveRoot)\"\n :key=\"status.id\"\n class=\"thread-ancestor\"\n :class=\"{'thread-ancestor-has-other-replies': getReplies(status.id).length > 1, '-faded': shouldFadeAncestors}\"\n >\n <status\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :simple-tree=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :show-other-replies-as-button=\"showOtherRepliesButtonInsideStatus\"\n :dive=\"() => diveIntoStatus(status.id)\"\n\n :controlled-showing-tall=\"statusContentProperties[status.id].showingTall\"\n :controlled-expanding-subject=\"statusContentProperties[status.id].expandingSubject\"\n :controlled-showing-long-subject=\"statusContentProperties[status.id].showingLongSubject\"\n :controlled-replying=\"statusContentProperties[status.id].replying\"\n :controlled-media-playing=\"statusContentProperties[status.id].mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleStatusContentProperty(status.id, 'showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleStatusContentProperty(status.id, 'expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleStatusContentProperty(status.id, 'showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleStatusContentProperty(status.id, 'replying')\"\n :controlled-set-media-playing=\"(newVal) => toggleStatusContentProperty(status.id, 'mediaPlaying', newVal)\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"showOtherRepliesButtonBelowStatus && getReplies(status.id).length > 1\"\n class=\"thread-ancestor-dive-box\"\n >\n <div\n class=\"thread-ancestor-dive-box-inner\"\n >\n <i18n-t\n tag=\"button\"\n scope=\"global\"\n keypath=\"status.ancestor_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"diveIntoStatus(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.ancestor_follow', getReplies(status.id).length - 1, { numReplies: getReplies(status.id).length - 1 }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </div>\n </article>\n </div>\n <thread-tree\n v-for=\"status in showingTopLevel\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :depth=\"0\"\n\n :status=\"status\"\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"maybeHighlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"canDive ? diveIntoStatus : undefined\"\n />\n </div>\n <div\n v-if=\"isLinearView\"\n class=\"thread-body\"\n >\n <article>\n <status\n v-for=\"status in conversation\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n </article>\n </div>\n </div>\n </div>\n <div\n v-else\n :style=\"hiddenStyle\"\n />\n</template>\n\n<script src=\"./conversation.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n &,\n &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n &:last-child .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left: 4px solid $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n</style>\n","<template>\n <article class=\"thread-tree\">\n <status\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"highlight\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status conversation-status-treeview status-fadein panel-body\"\n\n :simple-tree=\"simple\"\n :controlled-thread-display-status=\"threadDisplayStatus[status.id]\"\n :controlled-toggle-thread-display=\"() => toggleThreadDisplay(status.id)\"\n\n :controlled-showing-tall=\"currentProp.showingTall\"\n :controlled-expanding-subject=\"currentProp.expandingSubject\"\n :controlled-showing-long-subject=\"currentProp.showingLongSubject\"\n :controlled-replying=\"currentProp.replying\"\n :controlled-media-playing=\"currentProp.mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleCurrentProp('showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleCurrentProp('expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleCurrentProp('showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleCurrentProp('replying')\"\n :controlled-set-media-playing=\"(newVal) => setCurrentProp('mediaPlaying', newVal)\"\n :dive=\"dive ? () => dive(status.id) : undefined\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"currentReplies.length && threadShowing\"\n class=\"thread-tree-replies\"\n >\n <thread-tree\n v-for=\"replyStatus in currentReplies\"\n :key=\"replyStatus.id\"\n ref=\"childComponent\"\n :depth=\"depth + 1\"\n :status=\"replyStatus\"\n\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"highlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"simple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"dive\"\n />\n </div>\n <div\n v-if=\"currentReplies.length && !threadShowing\"\n class=\"thread-tree-replies thread-tree-replies-hidden\"\n >\n <i18n-t\n v-if=\"simple\"\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"dive(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_follow', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n <i18n-t\n v-else\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_show_full_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"showThreadRecursively(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-down\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_show_full', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id], depth: totalReplyDepth[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </article>\n</template>\n\n<script src=\"./thread_tree.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n</style>\n","import Status from '../status/status.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleRight\n)\n\nconst ThreadTree = {\n components: {\n Status\n },\n name: 'ThreadTree',\n props: {\n depth: Number,\n status: Object,\n inProfile: Boolean,\n conversation: Array,\n collapsable: Boolean,\n isExpanded: Boolean,\n pinnedStatusIdsObject: Object,\n profileUserId: String,\n\n focused: Function,\n highlight: String,\n getReplies: Function,\n setHighlight: Function,\n toggleExpanded: Function,\n\n simple: Boolean,\n // to control display of the whole thread forest\n toggleThreadDisplay: Function,\n threadDisplayStatus: Object,\n showThreadRecursively: Function,\n totalReplyCount: Object,\n totalReplyDepth: Object,\n statusContentProperties: Object,\n setStatusContentProperty: Function,\n toggleStatusContentProperty: Function,\n dive: Function\n },\n computed: {\n suspendable () {\n const selfSuspendable = this.$refs.statusComponent ? this.$refs.statusComponent.suspendable : true\n if (this.$refs.childComponent) {\n return selfSuspendable && this.$refs.childComponent.every(s => s.suspendable)\n }\n return selfSuspendable\n },\n reverseLookupTable () {\n return this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n },\n currentReplies () {\n return this.getReplies(this.status.id).map(({ id }) => this.statusById(id))\n },\n threadShowing () {\n return this.threadDisplayStatus[this.status.id] === 'showing'\n },\n currentProp () {\n return this.statusContentProperties[this.status.id]\n }\n },\n methods: {\n statusById (id) {\n return this.conversation[this.reverseLookupTable[id]]\n },\n collapseThread () {\n },\n showThread () {\n },\n showAllSubthreads () {\n },\n toggleCurrentProp (name) {\n this.toggleStatusContentProperty(this.status.id, name)\n },\n setCurrentProp (name, newVal) {\n this.setStatusContentProperty(this.status.id, name)\n }\n }\n}\n\nexport default ThreadTree\n","import { render } from \"./thread_tree.vue?vue&type=template&id=061df1d9\"\nimport script from \"./thread_tree.js?vue&type=script&lang=js\"\nexport * from \"./thread_tree.js?vue&type=script&lang=js\"\n\nimport \"./thread_tree.vue?vue&type=style&index=0&id=061df1d9&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickFilterSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_filter_settings') }\"\n >\n <template #content>\n <div\n class=\"dropdown-menu\"\n role=\"menu\"\n >\n <div\n v-if=\"loggedIn\"\n role=\"group\"\n >\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilityAll\"\n role=\"menuitemradio\"\n @click=\"replyVisibilityAll = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityAll }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_all') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilityFollowing\"\n role=\"menuitemradio\"\n @click=\"replyVisibilityFollowing = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityFollowing }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_following_short') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilitySelf\"\n role=\"menuitemradio\"\n @click=\"replyVisibilitySelf = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilitySelf }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_self_short') }}\n </button>\n <div\n v-if=\"!conversation\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </div>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"muteBotStatuses\"\n @click=\"muteBotStatuses = !muteBotStatuses\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': muteBotStatuses }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.mute_bot_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"hideMedia\"\n @click=\"hideMedia = !hideMedia\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMedia }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.hide_media_previews') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"hideMutedPosts\"\n @click=\"hideMutedPosts = !hideMutedPosts\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMutedPosts }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.hide_all_muted_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click=\"openTab('filtering')\"\n >\n <FAIcon icon=\"font\" />{{ $t('settings.word_filter_and_more') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"filter\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_filter_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter, faFont, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter,\n faFont,\n faWrench\n)\n\nconst QuickFilterSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setReplyVisibility (visibility) {\n this.$store.dispatch('setOption', { name: 'replyVisibility', value: visibility })\n this.$store.dispatch('queueFlushAll')\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n replyVisibilitySelf: {\n get () { return this.mergedConfig.replyVisibility === 'self' },\n set () { this.setReplyVisibility('self') }\n },\n replyVisibilityFollowing: {\n get () { return this.mergedConfig.replyVisibility === 'following' },\n set () { this.setReplyVisibility('following') }\n },\n replyVisibilityAll: {\n get () { return this.mergedConfig.replyVisibility === 'all' },\n set () { this.setReplyVisibility('all') }\n },\n hideMedia: {\n get () { return this.mergedConfig.hideAttachments || this.mergedConfig.hideAttachmentsInConv },\n set () {\n const value = !this.hideMedia\n this.$store.dispatch('setOption', { name: 'hideAttachments', value })\n this.$store.dispatch('setOption', { name: 'hideAttachmentsInConv', value })\n }\n },\n hideMutedPosts: {\n get () { return this.mergedConfig.hideFilteredStatuses },\n set () {\n const value = !this.hideMutedPosts\n this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickFilterSettings\n","import { render } from \"./quick_filter_settings.vue?vue&type=template&id=43207d13\"\nimport script from \"./quick_filter_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_filter_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickViewSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_view_settings') }\"\n >\n <template #content>\n <div\n class=\"dropdown-menu\"\n role=\"menu\"\n >\n <div role=\"group\">\n <button\n class=\"button-default dropdown-item\"\n :aria-checked=\"conversationDisplay === 'tree'\"\n role=\"menuitemradio\"\n @click=\"conversationDisplay = 'tree'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :aria-hidden=\"true\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'tree' }\"\n /><FAIcon\n icon=\"folder-tree\"\n :aria-hidden=\"true\"\n /> {{ $t('settings.conversation_display_tree_quick') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n :aria-checked=\"conversationDisplay === 'linear'\"\n role=\"menuitemradio\"\n @click=\"conversationDisplay = 'linear'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'linear' }\"\n :aria-hidden=\"true\"\n /><FAIcon\n icon=\"list\"\n :aria-hidden=\"true\"\n /> {{ $t('settings.conversation_display_linear_quick') }}\n </button>\n </div>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"showUserAvatars\"\n @click=\"showUserAvatars = !showUserAvatars\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': showUserAvatars }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.mention_link_show_avatar_quick') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"autoUpdate\"\n @click=\"autoUpdate = !autoUpdate\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': autoUpdate }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.auto_update') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"collapseWithSubjects\"\n @click=\"collapseWithSubjects = !collapseWithSubjects\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': collapseWithSubjects }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.collapse_subject') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click=\"openTab('general')\"\n >\n <FAIcon icon=\"wrench\" />{{ $t('settings.more_settings') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"bars\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_view_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faList, faFolderTree, faBars, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faList,\n faFolderTree,\n faBars,\n faWrench\n)\n\nconst QuickViewSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setConversationDisplay (visibility) {\n this.$store.dispatch('setOption', { name: 'conversationDisplay', value: visibility })\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n conversationDisplay: {\n get () { return this.mergedConfig.conversationDisplay },\n set (newVal) { this.setConversationDisplay(newVal) }\n },\n autoUpdate: {\n get () { return this.mergedConfig.streaming },\n set () {\n const value = !this.autoUpdate\n this.$store.dispatch('setOption', { name: 'streaming', value })\n }\n },\n collapseWithSubjects: {\n get () { return this.mergedConfig.collapseMessageWithSubject },\n set () {\n const value = !this.collapseWithSubjects\n this.$store.dispatch('setOption', { name: 'collapseMessageWithSubject', value })\n }\n },\n showUserAvatars: {\n get () { return this.mergedConfig.mentionLinkShowAvatar },\n set () {\n const value = !this.showUserAvatars\n console.log(value)\n this.$store.dispatch('setOption', { name: 'mentionLinkShowAvatar', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickViewSettings\n","import { render } from \"./quick_view_settings.vue?vue&type=template&id=2a929bb0\"\nimport script from \"./quick_view_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_view_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { reduce, filter, findIndex, clone, get } from 'lodash'\nimport Status from '../status/status.vue'\nimport ThreadTree from '../thread_tree/thread_tree.vue'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n)\n\nconst sortById = (a, b) => {\n const idA = a.type === 'retweet' ? a.retweeted_status.id : a.id\n const idB = b.type === 'retweet' ? b.retweeted_status.id : b.id\n const seqA = Number(idA)\n const seqB = Number(idB)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA < seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return -1\n } else if (!isSeqA && isSeqB) {\n return 1\n } else {\n return idA < idB ? -1 : 1\n }\n}\n\nconst sortAndFilterConversation = (conversation, statusoid) => {\n if (statusoid.type === 'retweet') {\n conversation = filter(\n conversation,\n (status) => (status.type === 'retweet' || status.id !== statusoid.retweeted_status.id)\n )\n } else {\n conversation = filter(conversation, (status) => status.type !== 'retweet')\n }\n return conversation.filter(_ => _).sort(sortById)\n}\n\nconst conversation = {\n data () {\n return {\n highlight: null,\n expanded: false,\n threadDisplayStatusObject: {}, // id => 'showing' | 'hidden'\n statusContentPropertiesObject: {},\n inlineDivePosition: null\n }\n },\n props: [\n 'statusId',\n 'collapsable',\n 'isPage',\n 'pinnedStatusIdsObject',\n 'inProfile',\n 'profileUserId',\n 'virtualHidden'\n ],\n created () {\n if (this.isPage) {\n this.fetchConversation()\n }\n },\n computed: {\n maxDepthToShowByDefault () {\n // maxDepthInThread = max number of depths that is *visible*\n // since our depth starts with 0 and \"showing\" means \"showing children\"\n // there is a -2 here\n const maxDepth = this.$store.getters.mergedConfig.maxDepthInThread - 2\n return maxDepth >= 1 ? maxDepth : 1\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n displayStyle () {\n return this.$store.getters.mergedConfig.conversationDisplay\n },\n isTreeView () {\n return !this.isLinearView\n },\n treeViewIsSimple () {\n return !this.$store.getters.mergedConfig.conversationTreeAdvanced\n },\n isLinearView () {\n return this.displayStyle === 'linear'\n },\n shouldFadeAncestors () {\n return this.$store.getters.mergedConfig.conversationTreeFadeAncestors\n },\n otherRepliesButtonPosition () {\n return this.$store.getters.mergedConfig.conversationOtherRepliesButton\n },\n showOtherRepliesButtonBelowStatus () {\n return this.otherRepliesButtonPosition === 'below'\n },\n showOtherRepliesButtonInsideStatus () {\n return this.otherRepliesButtonPosition === 'inside'\n },\n suspendable () {\n if (this.isTreeView) {\n return Object.entries(this.statusContentProperties)\n .every(([k, prop]) => !prop.replying && prop.mediaPlaying.length === 0)\n }\n if (this.$refs.statusComponent && this.$refs.statusComponent[0]) {\n return this.$refs.statusComponent.every(s => s.suspendable)\n } else {\n return true\n }\n },\n hideStatus () {\n return this.virtualHidden && this.suspendable\n },\n status () {\n return this.$store.state.statuses.allStatusesObject[this.statusId]\n },\n originalStatusId () {\n if (this.status.retweeted_status) {\n return this.status.retweeted_status.id\n } else {\n return this.statusId\n }\n },\n conversationId () {\n return this.getConversationId(this.statusId)\n },\n conversation () {\n if (!this.status) {\n return []\n }\n\n if (!this.isExpanded) {\n return [this.status]\n }\n\n const conversation = clone(this.$store.state.statuses.conversationsObject[this.conversationId])\n const statusIndex = findIndex(conversation, { id: this.originalStatusId })\n if (statusIndex !== -1) {\n conversation[statusIndex] = this.status\n }\n\n return sortAndFilterConversation(conversation, this.status)\n },\n statusMap () {\n return this.conversation.reduce((res, s) => {\n res[s.id] = s\n return res\n }, {})\n },\n threadTree () {\n const reverseLookupTable = this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n\n const threads = this.conversation.reduce((a, cur) => {\n const id = cur.id\n a.forest[id] = this.getReplies(id)\n .map(s => s.id)\n\n return a\n }, {\n forest: {}\n })\n\n const walk = (forest, topLevel, depth = 0, processed = {}) => topLevel.map(id => {\n if (processed[id]) {\n return []\n }\n\n processed[id] = true\n return [{\n status: this.conversation[reverseLookupTable[id]],\n id,\n depth\n }, walk(forest, forest[id], depth + 1, processed)].reduce((a, b) => a.concat(b), [])\n }).reduce((a, b) => a.concat(b), [])\n\n const linearized = walk(threads.forest, this.topLevel.map(k => k.id))\n\n return linearized\n },\n replyIds () {\n return this.conversation.map(k => k.id)\n .reduce((res, id) => {\n res[id] = (this.replies[id] || []).map(k => k.id)\n return res\n }, {})\n },\n totalReplyCount () {\n const sizes = {}\n const subTreeSizeFor = (id) => {\n if (sizes[id]) {\n return sizes[id]\n }\n sizes[id] = 1 + this.replyIds[id].map(cid => subTreeSizeFor(cid)).reduce((a, b) => a + b, 0)\n return sizes[id]\n }\n this.conversation.map(k => k.id).map(subTreeSizeFor)\n return Object.keys(sizes).reduce((res, id) => {\n res[id] = sizes[id] - 1 // exclude itself\n return res\n }, {})\n },\n totalReplyDepth () {\n const depths = {}\n const subTreeDepthFor = (id) => {\n if (depths[id]) {\n return depths[id]\n }\n depths[id] = 1 + this.replyIds[id].map(cid => subTreeDepthFor(cid)).reduce((a, b) => a > b ? a : b, 0)\n return depths[id]\n }\n this.conversation.map(k => k.id).map(subTreeDepthFor)\n return Object.keys(depths).reduce((res, id) => {\n res[id] = depths[id] - 1 // exclude itself\n return res\n }, {})\n },\n depths () {\n return this.threadTree.reduce((a, k) => {\n a[k.id] = k.depth\n return a\n }, {})\n },\n topLevel () {\n const topLevel = this.conversation.reduce((tl, cur) =>\n tl.filter(k => this.getReplies(cur.id).map(v => v.id).indexOf(k.id) === -1), this.conversation)\n return topLevel\n },\n otherTopLevelCount () {\n return this.topLevel.length - 1\n },\n showingTopLevel () {\n if (this.canDive && this.diveRoot) {\n return [this.statusMap[this.diveRoot]]\n }\n return this.topLevel\n },\n diveRoot () {\n const statusId = this.inlineDivePosition || this.statusId\n const isTopLevel = !this.parentOf(statusId)\n return isTopLevel ? null : statusId\n },\n diveDepth () {\n return this.canDive && this.diveRoot ? this.depths[this.diveRoot] : 0\n },\n diveMode () {\n return this.canDive && !!this.diveRoot\n },\n shouldShowAllConversationButton () {\n // The \"show all conversation\" button tells the user that there exist\n // other toplevel statuses, so do not show it if there is only a single root\n return this.isTreeView && this.isExpanded && this.diveMode && this.topLevel.length > 1\n },\n shouldShowAncestors () {\n return this.isTreeView && this.isExpanded && this.ancestorsOf(this.diveRoot).length\n },\n replies () {\n let i = 1\n // eslint-disable-next-line camelcase\n return reduce(this.conversation, (result, { id, in_reply_to_status_id }) => {\n /* eslint-disable camelcase */\n const irid = in_reply_to_status_id\n /* eslint-enable camelcase */\n if (irid) {\n result[irid] = result[irid] || []\n result[irid].push({\n name: `#${i}`,\n id\n })\n }\n i++\n return result\n }, {})\n },\n isExpanded () {\n return !!(this.expanded || this.isPage)\n },\n hiddenStyle () {\n const height = (this.status && this.status.virtualHeight) || '120px'\n return this.virtualHidden ? { height } : {}\n },\n threadDisplayStatus () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const depth = this.depths[id]\n const status = (() => {\n if (this.threadDisplayStatusObject[id]) {\n return this.threadDisplayStatusObject[id]\n }\n if ((depth - this.diveDepth) <= this.maxDepthToShowByDefault) {\n return 'showing'\n } else {\n return 'hidden'\n }\n })()\n\n a[id] = status\n return a\n }, {})\n },\n statusContentProperties () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const props = (() => {\n const def = {\n showingTall: false,\n expandingSubject: false,\n showingLongSubject: false,\n isReplying: false,\n mediaPlaying: []\n }\n\n if (this.statusContentPropertiesObject[id]) {\n return {\n ...def,\n ...this.statusContentPropertiesObject[id]\n }\n }\n return def\n })()\n\n a[id] = props\n return a\n }, {})\n },\n canDive () {\n return this.isTreeView && this.isExpanded\n },\n focused () {\n return (id) => {\n return (this.isExpanded) && id === this.highlight\n }\n },\n maybeHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus\n })\n },\n components: {\n Status,\n ThreadTree,\n QuickFilterSettings,\n QuickViewSettings\n },\n watch: {\n statusId (newVal, oldVal) {\n const newConversationId = this.getConversationId(newVal)\n const oldConversationId = this.getConversationId(oldVal)\n if (newConversationId && oldConversationId && newConversationId === oldConversationId) {\n this.setHighlight(this.originalStatusId)\n } else {\n this.fetchConversation()\n }\n },\n expanded (value) {\n if (value) {\n this.fetchConversation()\n } else {\n this.resetDisplayState()\n }\n },\n virtualHidden (value) {\n this.$store.dispatch(\n 'setVirtualHeight',\n { statusId: this.statusId, height: `${this.$el.clientHeight}px` }\n )\n }\n },\n methods: {\n fetchConversation () {\n if (this.status) {\n this.$store.state.api.backendInteractor.fetchConversation({ id: this.statusId })\n .then(({ ancestors, descendants }) => {\n this.$store.dispatch('addNewStatuses', { statuses: ancestors })\n this.$store.dispatch('addNewStatuses', { statuses: descendants })\n this.setHighlight(this.originalStatusId)\n })\n } else {\n this.$store.state.api.backendInteractor.fetchStatus({ id: this.statusId })\n .then((status) => {\n this.$store.dispatch('addNewStatuses', { statuses: [status] })\n this.fetchConversation()\n })\n }\n },\n getReplies (id) {\n return this.replies[id] || []\n },\n getHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n setHighlight (id) {\n if (!id) return\n this.highlight = id\n\n if (!this.streamingEnabled) {\n this.$store.dispatch('fetchStatus', id)\n }\n\n this.$store.dispatch('fetchFavsAndRepeats', id)\n this.$store.dispatch('fetchEmojiReactionsBy', id)\n },\n toggleExpanded () {\n this.expanded = !this.expanded\n },\n getConversationId (statusId) {\n const status = this.$store.state.statuses.allStatusesObject[statusId]\n return get(status, 'retweeted_status.statusnet_conversation_id', get(status, 'statusnet_conversation_id'))\n },\n setThreadDisplay (id, nextStatus) {\n this.threadDisplayStatusObject = {\n ...this.threadDisplayStatusObject,\n [id]: nextStatus\n }\n },\n toggleThreadDisplay (id) {\n const curStatus = this.threadDisplayStatus[id]\n const nextStatus = curStatus === 'showing' ? 'hidden' : 'showing'\n this.setThreadDisplay(id, nextStatus)\n },\n setThreadDisplayRecursively (id, nextStatus) {\n this.setThreadDisplay(id, nextStatus)\n this.getReplies(id).map(k => k.id).map(id => this.setThreadDisplayRecursively(id, nextStatus))\n },\n showThreadRecursively (id) {\n this.setThreadDisplayRecursively(id, 'showing')\n },\n setStatusContentProperty (id, name, value) {\n this.statusContentPropertiesObject = {\n ...this.statusContentPropertiesObject,\n [id]: {\n ...this.statusContentPropertiesObject[id],\n [name]: value\n }\n }\n },\n toggleStatusContentProperty (id, name) {\n this.setStatusContentProperty(id, name, !this.statusContentProperties[id][name])\n },\n leastVisibleAncestor (id) {\n let cur = id\n let parent = this.parentOf(cur)\n while (cur) {\n // if the parent is showing it means cur is visible\n if (this.threadDisplayStatus[parent] === 'showing') {\n return cur\n }\n parent = this.parentOf(parent)\n cur = this.parentOf(cur)\n }\n // nothing found, fall back to toplevel\n return this.topLevel[0] ? this.topLevel[0].id : undefined\n },\n diveIntoStatus (id, preventScroll) {\n this.tryScrollTo(id)\n },\n diveToTopLevel () {\n this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot) || this.topLevel[0].id)\n },\n // only used when we are not on a page\n undive () {\n this.inlineDivePosition = null\n this.setHighlight(this.statusId)\n },\n tryScrollTo (id) {\n if (!id) {\n return\n }\n if (this.isPage) {\n // set statusId\n this.$router.push({ name: 'conversation', params: { id } })\n } else {\n this.inlineDivePosition = id\n }\n // Because the conversation can be unmounted when out of sight\n // and mounted again when it comes into sight,\n // the `mounted` or `created` function in `status` should not\n // contain scrolling calls, as we do not want the page to jump\n // when we scroll with an expanded conversation.\n //\n // Now the method is to rely solely on the `highlight` watcher\n // in `status` components.\n // In linear views, all statuses are rendered at all times, but\n // in tree views, it is possible that a change in active status\n // removes and adds status components (e.g. an originally child\n // status becomes an ancestor status, and thus they will be\n // different).\n // Here, let the components be rendered first, in order to trigger\n // the `highlight` watcher.\n this.$nextTick(() => {\n this.setHighlight(id)\n })\n },\n goToCurrent () {\n this.tryScrollTo(this.diveRoot || this.topLevel[0].id)\n },\n statusById (id) {\n return this.statusMap[id]\n },\n parentOf (id) {\n const status = this.statusById(id)\n if (!status) {\n return undefined\n }\n const { in_reply_to_status_id: parentId } = status\n if (!this.statusMap[parentId]) {\n return undefined\n }\n return parentId\n },\n parentOrSelf (id) {\n return this.parentOf(id) || id\n },\n // Ancestors of some status, from top to bottom\n ancestorsOf (id) {\n const ancestors = []\n let cur = this.parentOf(id)\n while (cur) {\n ancestors.unshift(this.statusMap[cur])\n cur = this.parentOf(cur)\n }\n return ancestors\n },\n topLevelAncestorOrSelfId (id) {\n let cur = id\n let parent = this.parentOf(id)\n while (parent) {\n cur = this.parentOf(cur)\n parent = this.parentOf(parent)\n }\n return cur\n },\n resetDisplayState () {\n this.undive()\n this.threadDisplayStatusObject = {}\n }\n }\n}\n\nexport default conversation\n","import { render } from \"./conversation.vue?vue&type=template&id=68e3b9cb\"\nimport script from \"./conversation.js?vue&type=script&lang=js\"\nexport * from \"./conversation.js?vue&type=script&lang=js\"\n\nimport \"./conversation.vue?vue&type=style&index=0&id=68e3b9cb&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"TimelineMenu\"\n :class=\"{ 'open': isOpen }\"\n :bound-to=\"{ x: 'container' }\"\n bound-to-selector=\".Timeline\"\n popover-class=\"timeline-menu-popover popover-default\"\n @show=\"openMenu\"\n @close=\"() => isOpen = false\"\n >\n <template #content>\n <ListsMenuContent\n v-if=\"useListsMenu\"\n :show-pin=\"false\"\n class=\"timelines\"\n />\n <ul v-else>\n <NavigationEntry\n v-for=\"item in timelinesList\"\n :key=\"item.name\"\n :show-pin=\"false\"\n :item=\"item\"\n />\n </ul>\n </template>\n <template #trigger>\n <span class=\"button-unstyled title timeline-menu-title\">\n <span class=\"timeline-title\">{{ timelineName() }}</span>\n <span>\n <FAIcon\n size=\"sm\"\n icon=\"chevron-down\"\n />\n </span>\n <span\n class=\"click-blocker\"\n @click=\"blockOpen\"\n />\n </span>\n </template>\n </Popover>\n</template>\n\n<script src=\"./timeline_menu.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n}\n</style>\n","import Popover from '../popover/popover.vue'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { mapState } from 'vuex'\nimport { ListsMenuContent } from '../lists_menu/lists_menu_content.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { TIMELINES } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faChevronDown)\n\n// Route -> i18n key mapping, exported and not in the computed\n// because nav panel benefits from the same information.\nexport const timelineNames = () => {\n return {\n friends: 'nav.home_timeline',\n bookmarks: 'nav.bookmarks',\n dms: 'nav.dms',\n 'public-timeline': 'nav.public_tl',\n 'public-external-timeline': 'nav.twkn'\n }\n}\n\nconst TimelineMenu = {\n components: {\n Popover,\n NavigationEntry,\n ListsMenuContent\n },\n data () {\n return {\n isOpen: false\n }\n },\n created () {\n if (timelineNames()[this.$route.name]) {\n this.$store.dispatch('setLastTimeline', this.$route.name)\n }\n },\n computed: {\n useListsMenu () {\n const route = this.$route.name\n return route === 'lists-timeline'\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n }),\n timelinesList () {\n return filterNavigation(\n Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n }\n },\n methods: {\n openMenu () {\n // $nextTick is too fast, animation won't play back but\n // instead starts in fully open position. Low values\n // like 1-5 work on fast machines but not on mobile, 25\n // seems like a good compromise that plays without significant\n // added lag.\n setTimeout(() => {\n this.isOpen = true\n }, 25)\n },\n blockOpen (event) {\n // For the blank area inside the button element.\n // Just setting @click.stop=\"\" makes unintuitive behavior when\n // menu is open and clicking on the blank area doesn't close it.\n if (!this.isOpen) {\n event.stopPropagation()\n }\n },\n timelineName () {\n const route = this.$route.name\n if (route === 'tag-timeline') {\n return '#' + this.$route.params.tag\n }\n if (route === 'lists-timeline') {\n return this.$store.getters.findListTitle(this.$route.params.id)\n }\n const i18nkey = timelineNames()[this.$route.name]\n return i18nkey ? this.$t(i18nkey) : route\n }\n }\n}\n\nexport default TimelineMenu\n","import { render } from \"./timeline_menu.vue?vue&type=template&id=b7d0cae0\"\nimport script from \"./timeline_menu.js?vue&type=script&lang=js\"\nexport * from \"./timeline_menu.js?vue&type=script&lang=js\"\n\nimport \"./timeline_menu.vue?vue&type=style&index=0&id=b7d0cae0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Status from '../status/status.vue'\nimport { mapState } from 'vuex'\nimport timelineFetcher from '../../services/timeline_fetcher/timeline_fetcher.service.js'\nimport Conversation from '../conversation/conversation.vue'\nimport TimelineMenu from '../timeline_menu/timeline_menu.vue'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\nimport { debounce, throttle, keyBy } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faCirclePlus, faCog, faMinus, faArrowUp, faCheck } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faCog,\n faMinus,\n faArrowUp,\n faCirclePlus,\n faCheck\n)\n\nconst Timeline = {\n props: [\n 'timeline',\n 'timelineName',\n 'title',\n 'userId',\n 'listId',\n 'tag',\n 'embedded',\n 'count',\n 'pinnedStatusIds',\n 'inProfile',\n 'footerSlipgate' // reference to an element where we should put our footer\n ],\n data () {\n return {\n showScrollTop: false,\n paused: false,\n unfocused: false,\n bottomedOut: false,\n virtualScrollIndex: 0,\n blockingClicks: false\n }\n },\n components: {\n Status,\n Conversation,\n TimelineMenu,\n QuickFilterSettings,\n QuickViewSettings\n },\n computed: {\n filteredVisibleStatuses () {\n return this.timeline.visibleStatuses.filter(status => this.timelineName !== 'user' || (status.id >= this.timeline.minId && status.id <= this.timeline.maxId))\n },\n filteredPinnedStatusIds () {\n return (this.pinnedStatusIds || []).filter(statusId => this.timeline.statusesObject[statusId])\n },\n newStatusCount () {\n return this.timeline.newStatusCount\n },\n showLoadButton () {\n return this.timeline.newStatusCount > 0 || this.timeline.flushMarker !== 0\n },\n loadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return this.$t('timeline.reload')\n } else {\n return `${this.$t('timeline.show_new')} (${this.newStatusCount})`\n }\n },\n mobileLoadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return '+'\n } else {\n return this.newStatusCount > 99 ? '∞' : this.newStatusCount\n }\n },\n classes () {\n let rootClasses = !this.embedded ? ['panel', 'panel-default'] : ['-nonpanel']\n if (this.blockingClicks) rootClasses = rootClasses.concat(['-blocked', '_misclick-prevention'])\n return {\n root: rootClasses,\n header: ['timeline-heading'].concat(!this.embedded ? ['panel-heading', '-sticky'] : []),\n body: ['timeline-body'].concat(!this.embedded ? ['panel-body'] : []),\n footer: ['timeline-footer'].concat(!this.embedded ? ['panel-footer'] : [])\n }\n },\n // id map of statuses which need to be hidden in the main list due to pinning logic\n pinnedStatusIdsObject () {\n return keyBy(this.pinnedStatusIds)\n },\n statusesToDisplay () {\n const amount = this.timeline.visibleStatuses.length\n const statusesPerSide = Math.ceil(Math.max(3, window.innerHeight / 80))\n const nonPinnedIndex = this.virtualScrollIndex - this.filteredPinnedStatusIds.length\n const min = Math.max(0, nonPinnedIndex - statusesPerSide)\n const max = Math.min(amount, nonPinnedIndex + statusesPerSide)\n return this.timeline.visibleStatuses.slice(min, max).map(_ => _.id)\n },\n virtualScrollingEnabled () {\n return this.$store.getters.mergedConfig.virtualScrolling\n },\n ...mapState({\n mobileLayout: state => state.interface.layoutType === 'mobile'\n })\n },\n created () {\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n const showImmediately = this.timeline.visibleStatuses.length === 0\n\n window.addEventListener('scroll', this.handleScroll)\n\n if (store.state.api.fetchers[this.timelineName]) { return false }\n\n timelineFetcher.fetchAndUpdate({\n store,\n credentials,\n timeline: this.timelineName,\n showImmediately,\n userId: this.userId,\n listId: this.listId,\n tag: this.tag\n })\n },\n mounted () {\n if (typeof document.hidden !== 'undefined') {\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.unfocused = document.hidden\n }\n window.addEventListener('keydown', this.handleShortKey)\n setTimeout(this.determineVisibleStatuses, 250)\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\n window.removeEventListener('keydown', this.handleShortKey)\n if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.$store.commit('setLoading', { timeline: this.timelineName, value: false })\n },\n methods: {\n scrollToTop () {\n window.scrollTo({ top: this.$el.offsetTop })\n },\n stopBlockingClicks: debounce(function () {\n this.blockingClicks = false\n }, 1000),\n blockClicksTemporarily () {\n if (!this.blockingClicks) {\n this.blockingClicks = true\n }\n this.stopBlockingClicks()\n },\n handleShortKey (e) {\n // Ignore when input fields are focused\n if (['textarea', 'input'].includes(e.target.tagName.toLowerCase())) return\n if (e.key === '.') this.showNewStatuses()\n },\n showNewStatuses () {\n if (this.timeline.flushMarker !== 0) {\n this.$store.commit('clearTimeline', { timeline: this.timelineName, excludeUserId: true })\n this.$store.commit('queueFlush', { timeline: this.timelineName, id: 0 })\n this.fetchOlderStatuses()\n } else {\n this.blockClicksTemporarily()\n this.$store.commit('showNewStatuses', { timeline: this.timelineName })\n this.paused = false\n }\n window.scrollTo({ top: 0 })\n },\n fetchOlderStatuses: throttle(function () {\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setLoading', { timeline: this.timelineName, value: true })\n timelineFetcher.fetchAndUpdate({\n store,\n credentials,\n timeline: this.timelineName,\n older: true,\n showImmediately: true,\n userId: this.userId,\n listId: this.listId,\n tag: this.tag\n }).then(({ statuses }) => {\n if (statuses && statuses.length === 0) {\n this.bottomedOut = true\n }\n }).finally(() =>\n store.commit('setLoading', { timeline: this.timelineName, value: false })\n )\n }, 1000, this),\n determineVisibleStatuses () {\n if (!this.$refs.timeline) return\n if (!this.virtualScrollingEnabled) return\n\n const statuses = this.$refs.timeline.children\n const cappedScrollIndex = Math.max(0, Math.min(this.virtualScrollIndex, statuses.length - 1))\n\n if (statuses.length === 0) return\n\n const height = Math.max(document.body.offsetHeight, window.pageYOffset)\n\n const centerOfScreen = window.pageYOffset + (window.innerHeight * 0.5)\n\n // Start from approximating the index of some visible status by using the\n // the center of the screen on the timeline.\n let approxIndex = Math.floor(statuses.length * (centerOfScreen / height))\n let err = statuses[approxIndex].getBoundingClientRect().y\n\n // if we have a previous scroll index that can be used, test if it's\n // closer than the previous approximation, use it if so\n\n const virtualScrollIndexY = statuses[cappedScrollIndex].getBoundingClientRect().y\n if (Math.abs(err) > virtualScrollIndexY) {\n approxIndex = cappedScrollIndex\n err = virtualScrollIndexY\n }\n\n // if the status is too far from viewport, check the next/previous ones if\n // they happen to be better\n while (err < -20 && approxIndex < statuses.length - 1) {\n err += statuses[approxIndex].offsetHeight\n approxIndex++\n }\n while (err > window.innerHeight + 100 && approxIndex > 0) {\n approxIndex--\n err -= statuses[approxIndex].offsetHeight\n }\n\n // this status is now the center point for virtual scrolling and visible\n // statuses will be nearby statuses before and after it\n this.virtualScrollIndex = approxIndex\n },\n scrollLoad (e) {\n const bodyBRect = document.body.getBoundingClientRect()\n const height = Math.max(bodyBRect.height, -(bodyBRect.y))\n if (this.timeline.loading === false &&\n this.$el.offsetHeight > 0 &&\n (window.innerHeight + window.pageYOffset) >= (height - 750)) {\n this.fetchOlderStatuses()\n }\n },\n handleScroll: throttle(function (e) {\n this.showScrollTop = this.$el.offsetTop < window.scrollY\n this.determineVisibleStatuses()\n this.scrollLoad(e)\n }, 200),\n handleVisibilityChange () {\n this.unfocused = document.hidden\n }\n },\n watch: {\n newStatusCount (count) {\n if (!this.$store.getters.mergedConfig.streaming) {\n return\n }\n if (count > 0) {\n // only 'stream' them when you're scrolled to the top\n const doc = document.documentElement\n const top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\n if (top < 15 &&\n !this.paused &&\n !(this.unfocused && this.$store.getters.mergedConfig.pauseOnUnfocused)\n ) {\n this.showNewStatuses()\n } else {\n this.paused = true\n }\n }\n }\n }\n}\n\nexport default Timeline\n","import { render } from \"./timeline.vue?vue&type=template&id=79de750e\"\nimport script from \"./timeline.js?vue&type=script&lang=js\"\nexport * from \"./timeline.js?vue&type=script&lang=js\"\n\nimport \"./timeline.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\nconst PublicTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.public }\n },\n created () {\n this.$store.dispatch('startFetchingTimeline', { timeline: 'public' })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'public')\n }\n\n}\n\nexport default PublicTimeline\n","import { render } from \"./public_timeline.vue?vue&type=template&id=5f2a502e\"\nimport script from \"./public_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.public_tl')\"\n :timeline=\"timeline\"\n :timeline-name=\"'public'\"\n />\n</template>\n\n<script src=\"./public_timeline.js\"></script>\n","import Timeline from '../timeline/timeline.vue'\nconst PublicAndExternalTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.publicAndExternal }\n },\n created () {\n this.$store.dispatch('startFetchingTimeline', { timeline: 'publicAndExternal' })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'publicAndExternal')\n }\n}\n\nexport default PublicAndExternalTimeline\n","import { render } from \"./public_and_external_timeline.vue?vue&type=template&id=f6923484\"\nimport script from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.twkn')\"\n :timeline=\"timeline\"\n :timeline-name=\"'publicAndExternal'\"\n />\n</template>\n\n<script src=\"./public_and_external_timeline.js\"></script>\n","import Timeline from '../timeline/timeline.vue'\nconst FriendsTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.friends }\n }\n}\n\nexport default FriendsTimeline\n","import { render } from \"./friends_timeline.vue?vue&type=template&id=22490669\"\nimport script from \"./friends_timeline.js?vue&type=script&lang=js\"\nexport * from \"./friends_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.timeline')\"\n :timeline=\"timeline\"\n :timeline-name=\"'friends'\"\n />\n</template>\n\n<script src=\"./friends_timeline.js\"></script>\n","import Timeline from '../timeline/timeline.vue'\n\nconst TagTimeline = {\n created () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n },\n components: {\n Timeline\n },\n computed: {\n tag () { return this.$route.params.tag },\n timeline () { return this.$store.state.statuses.timelines.tag }\n },\n watch: {\n tag () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n }\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'tag')\n }\n}\n\nexport default TagTimeline\n","import { render } from \"./tag_timeline.vue?vue&type=template&id=047310d3\"\nimport script from \"./tag_timeline.js?vue&type=script&lang=js\"\nexport * from \"./tag_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"tag\"\n :timeline=\"timeline\"\n :timeline-name=\"'tag'\"\n :tag=\"tag\"\n />\n</template>\n\n<script src='./tag_timeline.js'></script>\n","import Timeline from '../timeline/timeline.vue'\n\nconst Bookmarks = {\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.bookmarks\n }\n },\n components: {\n Timeline\n },\n unmounted () {\n this.$store.commit('clearTimeline', { timeline: 'bookmarks' })\n }\n}\n\nexport default Bookmarks\n","import { render } from \"./bookmark_timeline.vue?vue&type=template&id=2b9c8ba0\"\nimport script from \"./bookmark_timeline.js?vue&type=script&lang=js\"\nexport * from \"./bookmark_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.bookmarks')\"\n :timeline=\"timeline\"\n :timeline-name=\"'bookmarks'\"\n />\n</template>\n\n<script src=\"./bookmark_timeline.js\"></script>\n","import Conversation from '../conversation/conversation.vue'\n\nconst conversationPage = {\n components: {\n Conversation\n },\n computed: {\n statusId () {\n return this.$route.params.id\n }\n }\n}\n\nexport default conversationPage\n","import { render } from \"./conversation-page.vue?vue&type=template&id=46654d24\"\nimport script from \"./conversation-page.js?vue&type=script&lang=js\"\nexport * from \"./conversation-page.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <conversation\n :collapsable=\"false\"\n is-page=\"true\"\n :status-id=\"statusId\"\n />\n</template>\n\n<script src=\"./conversation-page.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t(\"nav.interactions\") }}\n </div>\n </div>\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onModeSwitch\"\n >\n <span\n key=\"mentions\"\n :label=\"$t('nav.mentions')\"\n />\n <span\n key=\"likes+repeats\"\n :label=\"$t('interactions.favs_repeats')\"\n />\n <span\n key=\"follows\"\n :label=\"$t('interactions.follows')\"\n />\n <span\n key=\"reactions\"\n :label=\"$t('interactions.emoji_reactions')\"\n />\n <span\n v-if=\"canSeeReports\"\n key=\"reports\"\n :label=\"$t('interactions.reports')\"\n />\n <span\n v-if=\"!allowFollowingMove\"\n key=\"moves\"\n :label=\"$t('interactions.moves')\"\n />\n </tab-switcher>\n <Notifications\n ref=\"notifications\"\n :no-heading=\"true\"\n :minimal-mode=\"true\"\n :filter-mode=\"filterMode\"\n />\n </div>\n</template>\n\n<script src=\"./interactions.js\"></script>\n","import Notifications from '../notifications/notifications.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nconst tabModeDict = {\n mentions: ['mention'],\n 'likes+repeats': ['repeat', 'like'],\n follows: ['follow'],\n reactions: ['pleroma:emoji_reaction'],\n reports: ['pleroma:report'],\n moves: ['move']\n}\n\nconst Interactions = {\n data () {\n return {\n allowFollowingMove: this.$store.state.users.currentUser.allow_following_move,\n filterMode: tabModeDict.mentions,\n canSeeReports: this.$store.state.users.currentUser.privileges.includes('reports_manage_reports')\n }\n },\n methods: {\n onModeSwitch (key) {\n this.filterMode = tabModeDict[key]\n }\n },\n components: {\n Notifications,\n TabSwitcher\n }\n}\n\nexport default Interactions\n","import { render } from \"./interactions.vue?vue&type=template&id=3b173532\"\nimport script from \"./interactions.js?vue&type=script&lang=js\"\nexport * from \"./interactions.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\n\nconst DMs = {\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.dms\n }\n },\n components: {\n Timeline\n }\n}\n\nexport default DMs\n","import { render } from \"./dm_timeline.vue?vue&type=template&id=294f8b6d\"\nimport script from \"./dm_timeline.js?vue&type=script&lang=js\"\nexport * from \"./dm_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.dms')\"\n :timeline=\"timeline\"\n :timeline-name=\"'dms'\"\n />\n</template>\n\n<script src=\"./dm_timeline.js\"></script>\n","<template>\n <div v-if=\"isNew\">\n <ChatNew @cancel=\"cancelNewChat\" />\n </div>\n <div\n v-else\n class=\"chat-list panel panel-default\"\n >\n <div class=\"panel-heading -sticky\">\n <span class=\"title\">\n {{ $t(\"chats.chats\") }}\n </span>\n <button\n class=\"button-default\"\n @click=\"newChat\"\n >\n {{ $t(\"chats.new\") }}\n </button>\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"sortedChatList.length > 0\"\n class=\"timeline\"\n >\n <List :items=\"sortedChatList\">\n <template #item=\"{item}\">\n <ChatListItem\n :key=\"item.id\"\n :compact=\"false\"\n :chat=\"item\"\n />\n </template>\n </List>\n </div>\n <div\n v-else\n class=\"emtpy-chat-list-alert\"\n >\n <span>{{ $t('chats.empty_chat_list_placeholder') }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n</style>\n","<template>\n <div\n class=\"chat-list-item\"\n @click.capture.prevent=\"openChat\"\n >\n <div class=\"chat-list-item-left\">\n <UserAvatar\n :user=\"chat.account\"\n height=\"48px\"\n width=\"48px\"\n />\n </div>\n <div class=\"chat-list-item-center\">\n <div class=\"heading\">\n <span\n v-if=\"chat.account\"\n class=\"name-and-account-name\"\n >\n <ChatTitle\n :user=\"chat.account\"\n />\n </span>\n <span class=\"heading-right\" />\n <div class=\"time-wrapper\">\n <Timeago\n :time=\"chat.updated_at\"\n :auto-update=\"60\"\n />\n </div>\n </div>\n <div class=\"chat-preview\">\n <StatusBody\n class=\"chat-preview-body\"\n :status=\"messageForStatusContent\"\n :single-line=\"true\"\n />\n <div\n v-if=\"chat.unread > 0\"\n class=\"badge badge-notification unread-chat-count\"\n >\n {{ chat.unread }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list_item.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat_list_item\";\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'ChatTitle',\n components: {\n UserAvatar,\n RichContent,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: [\n 'user', 'withAvatar'\n ],\n computed: {\n title () {\n return this.user ? this.user.screen_name_ui : ''\n },\n htmlTitle () {\n return this.user ? this.user.name_html : ''\n }\n }\n}\n","import { render } from \"./chat_title.vue?vue&type=template&id=e9d70b10\"\nimport script from \"./chat_title.js?vue&type=script&lang=js\"\nexport * from \"./chat_title.js?vue&type=script&lang=js\"\n\nimport \"./chat_title.vue?vue&type=style&index=0&id=e9d70b10&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"chat-title\"\n :title=\"title\"\n >\n <UserPopover\n v-if=\"withAvatar && user\"\n class=\"avatar-container\"\n :user-id=\"user.id\"\n >\n <UserAvatar\n class=\"titlebar-avatar\"\n :user=\"user\"\n />\n </UserPopover>\n <RichContent\n v-if=\"user\"\n class=\"username\"\n :title=\"'@'+(user && user.screen_name_ui)\"\n :html=\"htmlTitle\"\n :emoji=\"user.emoji || []\"\n />\n </div>\n</template>\n\n<script src=\"./chat_title.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport StatusBody from '../status_content/status_content.vue'\nimport fileType from 'src/services/file_type/file_type.service'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\n\nconst ChatListItem = {\n name: 'ChatListItem',\n props: [\n 'chat'\n ],\n components: {\n UserAvatar,\n AvatarList,\n Timeago,\n ChatTitle,\n StatusBody\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n attachmentInfo () {\n if (this.chat.lastMessage.attachments.length === 0) { return }\n\n const types = this.chat.lastMessage.attachments.map(file => fileType.fileType(file.mimetype))\n if (types.includes('video')) {\n return this.$t('file_type.video')\n } else if (types.includes('audio')) {\n return this.$t('file_type.audio')\n } else if (types.includes('image')) {\n return this.$t('file_type.image')\n } else {\n return this.$t('file_type.file')\n }\n },\n messageForStatusContent () {\n const message = this.chat.lastMessage\n const messageEmojis = message ? message.emojis : []\n const isYou = message && message.account_id === this.currentUser.id\n const content = message ? (this.attachmentInfo || message.content) : ''\n const messagePreview = isYou ? `<i>${this.$t('chats.you')}</i> ${content}` : content\n return {\n summary: '',\n emojis: messageEmojis,\n raw_html: messagePreview,\n text: messagePreview,\n attachments: []\n }\n }\n },\n methods: {\n openChat (_e) {\n if (this.chat.id) {\n this.$router.push({\n name: 'chat',\n params: {\n username: this.currentUser.screen_name,\n recipient_id: this.chat.account.id\n }\n })\n }\n }\n }\n}\n\nexport default ChatListItem\n","import { render } from \"./chat_list_item.vue?vue&type=template&id=a202646c\"\nimport script from \"./chat_list_item.js?vue&type=script&lang=js\"\nexport * from \"./chat_list_item.js?vue&type=script&lang=js\"\n\nimport \"./chat_list_item.vue?vue&type=style&index=0&id=a202646c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"panel-default panel chat-new\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n </div>\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n placeholder=\"Search people\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"member-list\">\n <div\n v-for=\"user in availableUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <div @click.capture.prevent=\"goToChat(user)\">\n <BasicUserCard :user=\"user\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_new.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat_new\";\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst chatNew = {\n components: {\n BasicUserCard,\n UserAvatar\n },\n data () {\n return {\n suggestions: [],\n userIds: [],\n loading: false,\n query: ''\n }\n },\n async created () {\n const { chats } = await this.backendInteractor.chats()\n chats.forEach(chat => this.suggestions.push(chat.account))\n },\n computed: {\n users () {\n return this.userIds.map(userId => this.findUser(userId))\n },\n availableUsers () {\n if (this.query.length !== 0) {\n return this.users\n } else {\n return this.suggestions\n }\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n backendInteractor: state => state.api.backendInteractor\n }),\n ...mapGetters(['findUser'])\n },\n methods: {\n goBack () {\n this.$emit('cancel')\n },\n goToChat (user) {\n this.$router.push({ name: 'chat', params: { recipient_id: user.id } })\n },\n onInput () {\n this.search(this.query)\n },\n addUser (user) {\n this.selectedUserIds.push(user.id)\n this.query = ''\n },\n removeUser (userId) {\n this.selectedUserIds = this.selectedUserIds.filter(id => id !== userId)\n },\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts' })\n .then(data => {\n this.loading = false\n this.userIds = data.accounts.map(a => a.id)\n })\n }\n }\n}\n\nexport default chatNew\n","import { render } from \"./chat_new.vue?vue&type=template&id=527ae593\"\nimport script from \"./chat_new.js?vue&type=script&lang=js\"\nexport * from \"./chat_new.js?vue&type=script&lang=js\"\n\nimport \"./chat_new.vue?vue&type=style&index=0&id=527ae593&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport ChatListItem from '../chat_list_item/chat_list_item.vue'\nimport ChatNew from '../chat_new/chat_new.vue'\nimport List from '../list/list.vue'\n\nconst ChatList = {\n components: {\n ChatListItem,\n List,\n ChatNew\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['sortedChatList'])\n },\n data () {\n return {\n isNew: false\n }\n },\n created () {\n this.$store.dispatch('fetchChats', { latest: true })\n },\n methods: {\n cancelNewChat () {\n this.isNew = false\n this.$store.dispatch('fetchChats', { latest: true })\n },\n newChat () {\n this.isNew = true\n }\n }\n}\n\nexport default ChatList\n","import { render } from \"./chat_list.vue?vue&type=template&id=66fabc09\"\nimport script from \"./chat_list.js?vue&type=script&lang=js\"\nexport * from \"./chat_list.js?vue&type=script&lang=js\"\n\nimport \"./chat_list.vue?vue&type=style&index=0&id=66fabc09&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"chat-view\">\n <div class=\"chat-view-inner\">\n <div\n ref=\"inner\"\n class=\"panel-default panel chat-view-body\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading -sticky chat-view-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title text-center\">\n <ChatTitle\n :user=\"recipient\"\n :with-avatar=\"true\"\n />\n </div>\n </div>\n <div\n class=\"message-list\"\n :style=\"{ height: scrollableContainerHeight }\"\n >\n <template v-if=\"!errorLoadingChat\">\n <ChatMessage\n v-for=\"chatViewItem in chatViewItems\"\n :key=\"chatViewItem.id\"\n :author=\"recipient\"\n :chat-view-item=\"chatViewItem\"\n :hovered-message-chain=\"chatViewItem.messageChainId === hoveredMessageChainId\"\n @hover=\"onMessageHover\"\n />\n </template>\n <div\n v-else\n class=\"chat-loading-error\"\n >\n <div class=\"alert error\">\n {{ $t('chats.error_loading_chat') }}\n </div>\n </div>\n </div>\n <div\n ref=\"footer\"\n class=\"panel-body footer\"\n >\n <div\n class=\"jump-to-bottom-button\"\n :class=\"{ 'visible': jumpToBottomButtonVisible }\"\n @click=\"scrollDown({ behavior: 'smooth' })\"\n >\n <span>\n <FAIcon icon=\"chevron-down\" />\n <div\n v-if=\"newMessageCount\"\n class=\"badge badge-notification unread-chat-count unread-message-count\"\n >\n {{ newMessageCount }}\n </div>\n </span>\n </div>\n <PostStatusForm\n :disable-subject=\"true\"\n :disable-scope-selector=\"true\"\n :disable-notice=\"true\"\n :disable-lock-warning=\"true\"\n :disable-polls=\"true\"\n :disable-sensitivity-checkbox=\"true\"\n :disable-submit=\"errorLoadingChat || !currentChat\"\n :disable-preview=\"true\"\n :optimistic-posting=\"true\"\n :post-handler=\"sendMessage\"\n :submit-on-enter=\"!mobileLayout\"\n :preserve-focus=\"!mobileLayout\"\n :auto-focus=\"!mobileLayout\"\n :placeholder=\"formPlaceholder\"\n :file-limit=\"1\"\n max-height=\"160\"\n emoji-picker-placement=\"top\"\n @resize=\"handleResize\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat\";\n</style>\n","<template>\n <div\n v-if=\"isMessage\"\n class=\"chat-message-wrapper\"\n :class=\"{ 'hovered-message-chain': hoveredMessageChain }\"\n @mouseover=\"onHover(true)\"\n @mouseleave=\"onHover(false)\"\n >\n <div\n class=\"chat-message\"\n :class=\"[{ 'outgoing': isCurrentUser, 'incoming': !isCurrentUser }]\"\n >\n <div\n v-if=\"!isCurrentUser\"\n class=\"avatar-wrapper\"\n >\n <UserPopover\n v-if=\"chatViewItem.isHead\"\n :user-id=\"author.id\"\n >\n <UserAvatar\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"author\"\n />\n </UserPopover>\n </div>\n <div class=\"chat-message-inner\">\n <div\n class=\"status-body\"\n :style=\"{ 'min-width': message.attachment ? '80%' : '' }\"\n >\n <div\n class=\"media status\"\n :class=\"{ 'without-attachment': !hasAttachment, 'pending': chatViewItem.data.pending, 'error': chatViewItem.data.error }\"\n style=\"position: relative;\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n >\n <div\n class=\"chat-message-menu\"\n :class=\"{ 'visible': hovered || menuOpened }\"\n >\n <Popover\n trigger=\"click\"\n placement=\"top\"\n bound-to-selector=\".chat-view-inner\"\n :bound-to=\"{ x: 'container' }\"\n :margin=\"popoverMarginStyle\"\n @show=\"menuOpened = true\"\n @close=\"menuOpened = false\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click=\"deleteMessage\"\n >\n <FAIcon icon=\"times\" /> {{ $t(\"chats.delete\") }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button-default menu-icon\"\n :title=\"$t('chats.more')\"\n >\n <FAIcon icon=\"ellipsis-h\" />\n </button>\n </template>\n </Popover>\n </div>\n <StatusContent\n class=\"message-content\"\n :status=\"messageForStatusContent\"\n :full-content=\"true\"\n >\n <template #footer>\n <span\n class=\"created-at\"\n >\n {{ createdAt }}\n </span>\n </template>\n </StatusContent>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"chat-message-date-separator\"\n >\n <ChatMessageDate :date=\"chatViewItem.date\" />\n </div>\n</template>\n\n<script src=\"./chat_message.js\"></script>\n<style lang=\"scss\">\n@import \"./chat_message\";\n\n</style>\n","<template>\n <time>\n {{ displayDate }}\n </time>\n</template>\n\n<script>\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['date'],\n computed: {\n displayDate () {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n\n if (this.date.getTime() === today.getTime()) {\n return this.$t('display_date.today')\n } else {\n return this.date.toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale), { day: 'numeric', month: 'long' })\n }\n }\n }\n}\n</script>\n","import { render } from \"./chat_message_date.vue?vue&type=template&id=23377998\"\nimport script from \"./chat_message_date.vue?vue&type=script&lang=js\"\nexport * from \"./chat_message_date.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport Popover from '../popover/popover.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport ChatMessageDate from '../chat_message_date/chat_message_date.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faEllipsisH\n)\n\nconst ChatMessage = {\n name: 'ChatMessage',\n props: [\n 'author',\n 'edited',\n 'noHeading',\n 'chatViewItem',\n 'hoveredMessageChain'\n ],\n emits: ['hover'],\n components: {\n Popover,\n Attachment,\n StatusContent,\n UserAvatar,\n Gallery,\n LinkPreview,\n ChatMessageDate,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n computed: {\n // Returns HH:MM (hours and minutes) in local time.\n createdAt () {\n const time = this.chatViewItem.data.created_at\n return time.toLocaleTimeString('en', { hour: '2-digit', minute: '2-digit', hour12: false })\n },\n isCurrentUser () {\n return this.message.account_id === this.currentUser.id\n },\n message () {\n return this.chatViewItem.data\n },\n isMessage () {\n return this.chatViewItem.type === 'message'\n },\n messageForStatusContent () {\n return {\n summary: '',\n emojis: this.message.emojis,\n raw_html: this.message.content || '',\n text: this.message.content || '',\n attachments: this.message.attachments\n }\n },\n hasAttachment () {\n return this.message.attachments.length > 0\n },\n ...mapState({\n betterShadow: state => state.interface.browserSupport.cssFilter,\n currentUser: state => state.users.currentUser,\n restrictedNicknames: state => state.instance.restrictedNicknames\n }),\n popoverMarginStyle () {\n if (this.isCurrentUser) {\n return {}\n } else {\n return { left: 50 }\n }\n },\n ...mapGetters(['mergedConfig', 'findUser'])\n },\n data () {\n return {\n hovered: false,\n menuOpened: false\n }\n },\n methods: {\n onHover (bool) {\n this.$emit('hover', { isHovered: bool, messageChainId: this.chatViewItem.messageChainId })\n },\n async deleteMessage () {\n const confirmed = window.confirm(this.$t('chats.delete_confirm'))\n if (confirmed) {\n await this.$store.dispatch('deleteChatMessage', {\n messageId: this.chatViewItem.data.id,\n chatId: this.chatViewItem.data.chat_id\n })\n }\n this.hovered = false\n this.menuOpened = false\n }\n }\n}\n\nexport default ChatMessage\n","import { render } from \"./chat_message.vue?vue&type=template&id=e61e03a2\"\nimport script from \"./chat_message.js?vue&type=script&lang=js\"\nexport * from \"./chat_message.js?vue&type=script&lang=js\"\n\nimport \"./chat_message.vue?vue&type=style&index=0&id=e61e03a2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Captures a scroll position\nexport const getScrollPosition = () => {\n return {\n scrollTop: window.scrollY,\n scrollHeight: document.documentElement.scrollHeight,\n offsetHeight: window.innerHeight\n }\n}\n\n// A helper function that is used to keep the scroll position fixed as the new elements are added to the top\n// Takes two scroll positions, before and after the update.\nexport const getNewTopPosition = (previousPosition, newPosition) => {\n return previousPosition.scrollTop + (newPosition.scrollHeight - previousPosition.scrollHeight)\n}\n\nexport const isBottomedOut = (offset = 0) => {\n const scrollHeight = window.scrollY + offset\n const totalHeight = document.documentElement.scrollHeight - window.innerHeight\n return totalHeight <= scrollHeight\n}\n// Returns whether or not the scrollbar is visible.\nexport const isScrollable = () => {\n return document.documentElement.scrollHeight > window.innerHeight\n}\n","import _ from 'lodash'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport ChatMessage from '../chat_message/chat_message.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\nimport chatService from '../../services/chat_service/chat_service.js'\nimport { promiseInterval } from '../../services/promise_interval/promise_interval.js'\nimport { getScrollPosition, getNewTopPosition, isBottomedOut, isScrollable } from './chat_layout_utils.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { buildFakeMessage } from '../../services/chat_utils/chat_utils.js'\n\nlibrary.add(\n faChevronDown,\n faChevronLeft\n)\n\nconst BOTTOMED_OUT_OFFSET = 10\nconst JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET = 10\nconst SAFE_RESIZE_TIME_OFFSET = 100\nconst MARK_AS_READ_DELAY = 1500\nconst MAX_RETRIES = 10\n\nconst Chat = {\n components: {\n ChatMessage,\n ChatTitle,\n PostStatusForm\n },\n data () {\n return {\n jumpToBottomButtonVisible: false,\n hoveredMessageChainId: undefined,\n lastScrollPosition: {},\n scrollableContainerHeight: '100%',\n errorLoadingChat: false,\n messageRetriers: {}\n }\n },\n created () {\n this.startFetching()\n window.addEventListener('resize', this.handleResize)\n },\n mounted () {\n window.addEventListener('scroll', this.handleScroll)\n if (typeof document.hidden !== 'undefined') {\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n }\n\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\n window.removeEventListener('resize', this.handleResize)\n if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.$store.dispatch('clearCurrentChat')\n },\n computed: {\n recipient () {\n return this.currentChat && this.currentChat.account\n },\n recipientId () {\n return this.$route.params.recipient_id\n },\n formPlaceholder () {\n if (this.recipient) {\n return this.$t('chats.message_user', { nickname: this.recipient.screen_name_ui })\n } else {\n return ''\n }\n },\n chatViewItems () {\n return chatService.getView(this.currentChatMessageService)\n },\n newMessageCount () {\n return this.currentChatMessageService && this.currentChatMessageService.newMessageCount\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n ...mapGetters([\n 'currentChat',\n 'currentChatMessageService',\n 'findOpenedChatByRecipientId',\n 'mergedConfig'\n ]),\n ...mapState({\n backendInteractor: state => state.api.backendInteractor,\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus,\n mobileLayout: state => state.interface.layoutType === 'mobile',\n currentUser: state => state.users.currentUser\n })\n },\n watch: {\n chatViewItems () {\n // We don't want to scroll to the bottom on a new message when the user is viewing older messages.\n // Therefore we need to know whether the scroll position was at the bottom before the DOM update.\n const bottomedOutBeforeUpdate = this.bottomedOut(BOTTOMED_OUT_OFFSET)\n this.$nextTick(() => {\n if (bottomedOutBeforeUpdate) {\n this.scrollDown()\n }\n })\n },\n $route: function () {\n this.startFetching()\n },\n mastoUserSocketStatus (newValue) {\n if (newValue === WSConnectionStatus.JOINED) {\n this.fetchChat({ isFirstFetch: true })\n }\n }\n },\n methods: {\n // Used to animate the avatar near the first message of the message chain when any message belonging to the chain is hovered\n onMessageHover ({ isHovered, messageChainId }) {\n this.hoveredMessageChainId = isHovered ? messageChainId : undefined\n },\n onFilesDropped () {\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n handleVisibilityChange () {\n this.$nextTick(() => {\n if (!document.hidden && this.bottomedOut(BOTTOMED_OUT_OFFSET)) {\n this.scrollDown({ forceRead: true })\n }\n })\n },\n // \"Sticks\" scroll to bottom instead of top, helps with OSK resizing the viewport\n handleResize (opts = {}) {\n const { delayed = false } = opts\n\n if (delayed) {\n setTimeout(() => {\n this.handleResize({ ...opts, delayed: false })\n }, SAFE_RESIZE_TIME_OFFSET)\n return\n }\n\n this.$nextTick(() => {\n const { offsetHeight = undefined } = getScrollPosition()\n const diff = offsetHeight - this.lastScrollPosition.offsetHeight\n if (diff !== 0 && !this.bottomedOut()) {\n this.$nextTick(() => {\n window.scrollBy({ top: -Math.trunc(diff) })\n })\n }\n this.lastScrollPosition = getScrollPosition()\n })\n },\n scrollDown (options = {}) {\n const { behavior = 'auto', forceRead = false } = options\n this.$nextTick(() => {\n window.scrollTo({ top: document.documentElement.scrollHeight, behavior })\n })\n if (forceRead) {\n this.readChat()\n }\n },\n readChat () {\n if (!(this.currentChatMessageService && this.currentChatMessageService.maxId)) { return }\n if (document.hidden) { return }\n const lastReadId = this.currentChatMessageService.maxId\n this.$store.dispatch('readChat', {\n id: this.currentChat.id,\n lastReadId\n })\n },\n bottomedOut (offset) {\n return isBottomedOut(offset)\n },\n reachedTop () {\n return window.scrollY <= 0\n },\n cullOlderCheck () {\n window.setTimeout(() => {\n if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.$store.dispatch('cullOlderMessages', this.currentChatMessageService.chatId)\n }\n }, 5000)\n },\n handleScroll: _.throttle(function () {\n this.lastScrollPosition = getScrollPosition()\n if (!this.currentChat) { return }\n\n if (this.reachedTop()) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n } else if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.jumpToBottomButtonVisible = false\n this.cullOlderCheck()\n if (this.newMessageCount > 0) {\n // Use a delay before marking as read to prevent situation where new messages\n // arrive just as you're leaving the view and messages that you didn't actually\n // get to see get marked as read.\n window.setTimeout(() => {\n // Don't mark as read if the element doesn't exist, user has left chat view\n if (this.$el) this.readChat()\n }, MARK_AS_READ_DELAY)\n }\n } else {\n this.jumpToBottomButtonVisible = true\n }\n }, 200),\n handleScrollUp (positionBeforeLoading) {\n const positionAfterLoading = getScrollPosition()\n window.scrollTo({\n top: getNewTopPosition(positionBeforeLoading, positionAfterLoading)\n })\n },\n fetchChat ({ isFirstFetch = false, fetchLatest = false, maxId }) {\n const chatMessageService = this.currentChatMessageService\n if (!chatMessageService) { return }\n if (fetchLatest && this.streamingEnabled) { return }\n\n const chatId = chatMessageService.chatId\n const fetchOlderMessages = !!maxId\n const sinceId = fetchLatest && chatMessageService.maxId\n\n return this.backendInteractor.chatMessages({ id: chatId, maxId, sinceId })\n .then((messages) => {\n // Clear the current chat in case we're recovering from a ws connection loss.\n if (isFirstFetch) {\n chatService.clear(chatMessageService)\n }\n\n const positionBeforeUpdate = getScrollPosition()\n this.$store.dispatch('addChatMessages', { chatId, messages }).then(() => {\n this.$nextTick(() => {\n if (fetchOlderMessages) {\n this.handleScrollUp(positionBeforeUpdate)\n }\n\n // In vertical screens, the first batch of fetched messages may not always take the\n // full height of the scrollable container.\n // If this is the case, we want to fetch the messages until the scrollable container\n // is fully populated so that the user has the ability to scroll up and load the history.\n if (!isScrollable() && messages.length > 0) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n }\n })\n })\n })\n },\n async startFetching () {\n let chat = this.findOpenedChatByRecipientId(this.recipientId)\n if (!chat) {\n try {\n chat = await this.backendInteractor.getOrCreateChat({ accountId: this.recipientId })\n } catch (e) {\n console.error('Error creating or getting a chat', e)\n this.errorLoadingChat = true\n }\n }\n if (chat) {\n this.$nextTick(() => {\n this.scrollDown({ forceRead: true })\n })\n this.$store.dispatch('addOpenedChat', { chat })\n this.doStartFetching()\n }\n },\n doStartFetching () {\n this.$store.dispatch('startFetchingCurrentChat', {\n fetcher: () => promiseInterval(() => this.fetchChat({ fetchLatest: true }), 5000)\n })\n this.fetchChat({ isFirstFetch: true })\n },\n handleAttachmentPosting () {\n this.$nextTick(() => {\n this.handleResize()\n // When the posting form size changes because of a media attachment, we need an extra resize\n // to account for the potential delay in the DOM update.\n this.scrollDown({ forceRead: true })\n })\n },\n sendMessage ({ status, media, idempotencyKey }) {\n const params = {\n id: this.currentChat.id,\n content: status,\n idempotencyKey\n }\n\n if (media[0]) {\n params.mediaId = media[0].id\n }\n\n const fakeMessage = buildFakeMessage({\n attachments: media,\n chatId: this.currentChat.id,\n content: status,\n userId: this.currentUser.id,\n idempotencyKey\n })\n\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n messages: [fakeMessage]\n }).then(() => {\n this.handleAttachmentPosting()\n })\n\n return this.doSendMessage({ params, fakeMessage, retriesLeft: MAX_RETRIES })\n },\n doSendMessage ({ params, fakeMessage, retriesLeft = MAX_RETRIES }) {\n if (retriesLeft <= 0) return\n\n this.backendInteractor.sendChatMessage(params)\n .then(data => {\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n updateMaxId: false,\n messages: [{ ...data, fakeId: fakeMessage.id }]\n })\n\n return data\n })\n .catch(error => {\n console.error('Error sending message', error)\n this.$store.dispatch('handleMessageError', {\n chatId: this.currentChat.id,\n fakeId: fakeMessage.id,\n isRetry: retriesLeft !== MAX_RETRIES\n })\n if ((error.statusCode >= 500 && error.statusCode < 600) || error.message === 'Failed to fetch') {\n this.messageRetriers[fakeMessage.id] = setTimeout(() => {\n this.doSendMessage({ params, fakeMessage, retriesLeft: retriesLeft - 1 })\n }, 1000 * (2 ** (MAX_RETRIES - retriesLeft)))\n }\n return {}\n })\n\n return Promise.resolve(fakeMessage)\n },\n goBack () {\n this.$router.push({ name: 'chats', params: { username: this.currentUser.screen_name } })\n }\n }\n}\n\nexport default Chat\n","import { render } from \"./chat.vue?vue&type=template&id=796d1749\"\nimport script from \"./chat.js?vue&type=script&lang=js\"\nexport * from \"./chat.js?vue&type=script&lang=js\"\n\nimport \"./chat.vue?vue&type=style&index=0&id=796d1749&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <div\n v-if=\"user\"\n class=\"user-profile panel panel-default\"\n >\n <UserCard\n :user-id=\"userId\"\n :switcher=\"true\"\n :selected=\"timeline.viewing\"\n avatar-action=\"zoom\"\n rounded=\"top\"\n :has-note-editor=\"true\"\n />\n <span\n v-if=\"!!user.birthday\"\n class=\"user-birthday\"\n >\n <FAIcon\n class=\"fa-old-padding\"\n icon=\"birthday-cake\"\n />\n {{ $t('user_card.birthday', { birthday: formattedBirthday }) }}\n </span>\n <div\n v-if=\"user.fields_html && user.fields_html.length > 0\"\n class=\"user-profile-fields\"\n >\n <dl\n v-for=\"(field, index) in user.fields_html\"\n :key=\"index\"\n class=\"user-profile-field\"\n >\n <dt\n :title=\"user.fields_text[index].name\"\n class=\"user-profile-field-name\"\n >\n <RichContent\n :html=\"field.name\"\n :emoji=\"user.emoji\"\n />\n </dt>\n <dd\n :title=\"user.fields_text[index].value\"\n class=\"user-profile-field-value\"\n >\n <RichContent\n :html=\"field.value\"\n :emoji=\"user.emoji\"\n />\n </dd>\n </dl>\n </div>\n <tab-switcher\n :active-tab=\"tab\"\n :render-only-focused=\"true\"\n :on-switch=\"onTabSwitch\"\n >\n <Timeline\n key=\"statuses\"\n :label=\"$t('user_card.statuses')\"\n :count=\"user.statuses_count\"\n :embedded=\"true\"\n :title=\"$t('user_profile.timeline_title')\"\n :timeline=\"timeline\"\n timeline-name=\"user\"\n :user-id=\"userId\"\n :pinned-status-ids=\"user.pinnedStatusIds\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <div\n v-if=\"followsTabVisible\"\n key=\"followees\"\n :label=\"$t('user_card.followees')\"\n :disabled=\"!user.friends_count\"\n >\n <FriendList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard :user=\"item\" />\n </template>\n </FriendList>\n </div>\n <div\n v-if=\"followersTabVisible\"\n key=\"followers\"\n :label=\"$t('user_card.followers')\"\n :disabled=\"!user.followers_count\"\n >\n <FollowerList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard\n :user=\"item\"\n :no-follows-you=\"isUs\"\n />\n </template>\n </FollowerList>\n </div>\n <Timeline\n key=\"media\"\n :label=\"$t('user_card.media')\"\n :disabled=\"!media.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.media')\"\n timeline-name=\"media\"\n :timeline=\"media\"\n :user-id=\"userId\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <Timeline\n v-if=\"isUs\"\n key=\"favorites\"\n :label=\"$t('user_card.favorites')\"\n :disabled=\"!favorites.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.favorites')\"\n timeline-name=\"favorites\"\n :timeline=\"favorites\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n </tab-switcher>\n <div\n :ref=\"setFooterRef\"\n class=\"panel-footer\"\n />\n </div>\n <div\n v-else\n class=\"panel user-profile-placeholder\"\n >\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('settings.profile_tab') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <span v-if=\"error\">{{ error }}</span>\n <FAIcon\n v-else\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./user_profile.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-birthday {\n margin: 0 0.75em 0.5em;\n }\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name,\n .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n</style>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-card-content-container\">\n <span\n v-if=\"isMe || (!noFollowsYou && relationship.followed_by)\"\n class=\"faint\"\n >\n {{ isMe ? $t('user_card.its_you') : $t('user_card.follows_you') }}\n </span>\n <template v-if=\"!loggedIn\">\n <div\n v-if=\"!relationship.following\"\n class=\"follow-card-follow-button\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n </template>\n <template v-else-if=\"!isMe\">\n <FollowButton\n :relationship=\"relationship\"\n :label-following=\"$t('user_card.follow_unfollow')\"\n class=\"follow-card-follow-button\"\n :user=\"user\"\n />\n <RemoveFollowerButton\n v-if=\"noFollowsYou && relationship.followed_by\"\n :user=\"user\"\n :relationship=\"relationship\"\n class=\"follow-card-button\"\n />\n </template>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n</style>\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\n\nexport default {\n props: ['user', 'relationship'],\n data () {\n return {\n inProgress: false,\n showingConfirmRemoveFollower: false\n }\n },\n components: {\n ConfirmModal\n },\n computed: {\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else {\n return this.$t('user_card.remove_follower')\n }\n },\n shouldConfirmRemoveUserFromFollowers () {\n return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers\n }\n },\n methods: {\n showConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = true\n },\n hideConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = false\n },\n onClick () {\n if (!this.shouldConfirmRemoveUserFromFollowers) {\n this.doRemoveUserFromFollowers()\n } else {\n this.showConfirmRemoveUserFromFollowers()\n }\n },\n doRemoveUserFromFollowers () {\n this.inProgress = true\n this.$store.dispatch('removeUserFromFollowers', this.relationship.id).then(() => {\n this.inProgress = false\n })\n this.hideConfirmRemoveUserFromFollowers()\n }\n }\n}\n","import { render } from \"./remove_follower_button.vue?vue&type=template&id=bc80064a\"\nimport script from \"./remove_follower_button.js?vue&type=script&lang=js\"\nexport * from \"./remove_follower_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: inProgress }\"\n :disabled=\"inProgress\"\n :title=\"$t('user_card.remove_follower')\"\n @click=\"onClick\"\n >\n {{ label }}\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmRemoveFollower\"\n :title=\"$t('user_card.remove_follower_confirm_title')\"\n :confirm-text=\"$t('user_card.remove_follower_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.remove_follower_confirm_cancel_button')\"\n @accepted=\"doRemoveUserFromFollowers\"\n @cancelled=\"hideConfirmRemoveUserFromFollowers\"\n >\n <i18n-t\n keypath=\"user_card.remove_follower_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </button>\n</template>\n\n<script src=\"./remove_follower_button.js\"></script>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\nimport RemoveFollowerButton from '../remove_follower_button/remove_follower_button.vue'\n\nconst FollowCard = {\n props: [\n 'user',\n 'noFollowsYou'\n ],\n components: {\n BasicUserCard,\n RemoteFollow,\n FollowButton,\n RemoveFollowerButton\n },\n computed: {\n isMe () {\n return this.$store.state.users.currentUser.id === this.user.id\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n relationship () {\n return this.$store.getters.relationship(this.user.id)\n }\n }\n}\n\nexport default FollowCard\n","import { render } from \"./follow_card.vue?vue&type=template&id=e6b6839c\"\nimport script from \"./follow_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_card.vue?vue&type=style&index=0&id=e6b6839c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// eslint-disable-next-line no-unused\nimport { h } from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_load_more.scss'\n\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst withLoadMore = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n unmounted, // function called at \"destroyed\" lifecycle\n childPropName = 'entries', // name of the prop to be passed into the wrapped component\n additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n const originalProps = Object.keys(getComponentProps(WrappedComponent))\n const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n return {\n props,\n data () {\n return {\n loading: false,\n bottomedOut: false,\n error: false,\n entries: []\n }\n },\n created () {\n window.addEventListener('scroll', this.scrollLoad)\n if (this.entries.length === 0) {\n this.fetchEntries()\n }\n },\n unmounted () {\n window.removeEventListener('scroll', this.scrollLoad)\n unmounted && unmounted(this.$props, this.$store)\n },\n methods: {\n // Entries is not a computed because computed can't track the dynamic\n // selector for changes and won't trigger after fetch.\n updateEntries () {\n this.entries = select(this.$props, this.$store) || []\n },\n fetchEntries () {\n if (!this.loading) {\n this.loading = true\n this.error = false\n fetch(this.$props, this.$store)\n .then((newEntries) => {\n this.loading = false\n this.bottomedOut = isEmpty(newEntries)\n })\n .catch(() => {\n this.loading = false\n this.error = true\n })\n .finally(() => {\n this.updateEntries()\n })\n }\n },\n scrollLoad (e) {\n const bodyBRect = document.body.getBoundingClientRect()\n const height = Math.max(bodyBRect.height, -(bodyBRect.y))\n if (this.loading === false &&\n this.bottomedOut === false &&\n this.$el.offsetHeight > 0 &&\n (window.innerHeight + window.pageYOffset) >= (height - 750)\n ) {\n this.fetchEntries()\n }\n }\n },\n render () {\n const props = {\n ...this.$props,\n [childPropName]: this.entries\n }\n const children = this.$slots\n return (\n <div class=\"with-load-more\">\n <WrappedComponent {...props}>\n {children}\n </WrappedComponent>\n <div class=\"with-load-more-footer\">\n {this.error &&\n <button onClick={this.fetchEntries} class=\"button-unstyled -link -fullwidth alert error\">\n {this.$t('general.generic_error')}\n </button>\n }\n {!this.error && this.loading && <FAIcon spin icon=\"circle-notch\"/>}\n {!this.error && !this.loading && !this.bottomedOut && <a onClick={this.fetchEntries}>{this.$t('general.more')}</a>}\n </div>\n </div>\n )\n }\n }\n}\n\nexport default withLoadMore\n","import get from 'lodash/get'\nimport UserCard from '../user_card/user_card.vue'\nimport FollowCard from '../follow_card/follow_card.vue'\nimport Timeline from '../timeline/timeline.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport List from '../list/list.vue'\nimport withLoadMore from '../../hocs/with_load_more/with_load_more'\nimport localeService from 'src/services/locale/locale.service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faBirthdayCake\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faBirthdayCake\n)\n\nconst FollowerList = withLoadMore({\n fetch: (props, $store) => $store.dispatch('fetchFollowers', props.userId),\n select: (props, $store) => get($store.getters.findUser(props.userId), 'followerIds', []).map(id => $store.getters.findUser(id)),\n destroy: (props, $store) => $store.dispatch('clearFollowers', props.userId),\n childPropName: 'items',\n additionalPropNames: ['userId']\n})(List)\n\nconst FriendList = withLoadMore({\n fetch: (props, $store) => $store.dispatch('fetchFriends', props.userId),\n select: (props, $store) => get($store.getters.findUser(props.userId), 'friendIds', []).map(id => $store.getters.findUser(id)),\n destroy: (props, $store) => $store.dispatch('clearFriends', props.userId),\n childPropName: 'items',\n additionalPropNames: ['userId']\n})(List)\n\nconst defaultTabKey = 'statuses'\n\nconst UserProfile = {\n data () {\n return {\n error: false,\n userId: null,\n tab: defaultTabKey,\n footerRef: null\n }\n },\n created () {\n const routeParams = this.$route.params\n this.load({ name: routeParams.name, id: routeParams.id })\n this.tab = get(this.$route, 'query.tab', defaultTabKey)\n },\n unmounted () {\n this.stopFetching()\n },\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.user\n },\n favorites () {\n return this.$store.state.statuses.timelines.favorites\n },\n media () {\n return this.$store.state.statuses.timelines.media\n },\n isUs () {\n return this.userId && this.$store.state.users.currentUser.id &&\n this.userId === this.$store.state.users.currentUser.id\n },\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n isExternal () {\n return this.$route.name === 'external-user-profile'\n },\n followsTabVisible () {\n return this.isUs || !this.user.hide_follows\n },\n followersTabVisible () {\n return this.isUs || !this.user.hide_followers\n },\n formattedBirthday () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return this.user.birthday && new Date(Date.parse(this.user.birthday)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })\n }\n },\n methods: {\n setFooterRef (el) {\n this.footerRef = el\n },\n load (userNameOrId) {\n const startFetchingTimeline = (timeline, userId) => {\n // Clear timeline only if load another user's profile\n if (userId !== this.$store.state.statuses.timelines[timeline].userId) {\n this.$store.commit('clearTimeline', { timeline })\n }\n this.$store.dispatch('startFetchingTimeline', { timeline, userId })\n }\n\n const loadById = (userId) => {\n this.userId = userId\n startFetchingTimeline('user', userId)\n startFetchingTimeline('media', userId)\n if (this.isUs) {\n startFetchingTimeline('favorites', userId)\n }\n // Fetch all pinned statuses immediately\n this.$store.dispatch('fetchPinnedStatuses', userId)\n }\n\n // Reset view\n this.userId = null\n this.error = false\n\n const maybeId = userNameOrId.id\n const maybeName = userNameOrId.name\n\n // Check if user data is already loaded in store\n const user = maybeId ? this.$store.getters.findUser(maybeId) : this.$store.getters.findUserByName(maybeName)\n if (user) {\n loadById(user.id)\n } else {\n (maybeId\n ? this.$store.dispatch('fetchUser', maybeId)\n : this.$store.dispatch('fetchUserByName', maybeName))\n .then(({ id }) => loadById(id))\n .catch((reason) => {\n const errorMessage = get(reason, 'error.error')\n if (errorMessage === 'No user with such user_id') { // Known error\n this.error = this.$t('user_profile.profile_does_not_exist')\n } else if (errorMessage) {\n this.error = errorMessage\n } else {\n this.error = this.$t('user_profile.profile_loading_error')\n }\n })\n }\n },\n stopFetching () {\n this.$store.dispatch('stopFetchingTimeline', 'user')\n this.$store.dispatch('stopFetchingTimeline', 'favorites')\n this.$store.dispatch('stopFetchingTimeline', 'media')\n },\n switchUser (userNameOrId) {\n this.stopFetching()\n this.load(userNameOrId)\n },\n onTabSwitch (tab) {\n this.tab = tab\n this.$router.replace({ query: { tab } })\n },\n linkClicked ({ target }) {\n if (target.tagName === 'SPAN') {\n target = target.parentNode\n }\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n }\n },\n watch: {\n '$route.params.id': function (newVal) {\n if (newVal) {\n this.switchUser({ id: newVal })\n }\n },\n '$route.params.name': function (newVal) {\n if (newVal) {\n this.switchUser({ name: newVal })\n }\n },\n '$route.query': function (newVal) {\n this.tab = newVal.tab || defaultTabKey\n }\n },\n components: {\n UserCard,\n Timeline,\n FollowerList,\n FriendList,\n FollowCard,\n TabSwitcher,\n Conversation,\n RichContent\n }\n}\n\nexport default UserProfile\n","import { render } from \"./user_profile.vue?vue&type=template&id=3af4c11e\"\nimport script from \"./user_profile.js?vue&type=script&lang=js\"\nexport * from \"./user_profile.js?vue&type=script&lang=js\"\n\nimport \"./user_profile.vue?vue&type=style&index=0&id=3af4c11e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.search') }}\n </div>\n </div>\n <div class=\"search-input-container\">\n <input\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-input\"\n :placeholder=\"$t('nav.search')\"\n @keyup.enter=\"newQuery(searchTerm)\"\n >\n <button\n class=\"btn button-default search-button\"\n type=\"submit\"\n @click=\"newQuery(searchTerm)\"\n >\n <FAIcon icon=\"search\" />\n </button>\n </div>\n <div\n v-if=\"loading && statusesOffset == 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div v-else-if=\"loaded\">\n <div class=\"search-nav-heading\">\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onResultTabSwitch\"\n :active-tab=\"currenResultTab\"\n >\n <span\n key=\"statuses\"\n :label=\"$t('user_card.statuses') + resultCount('visibleStatuses')\"\n />\n <span\n key=\"people\"\n :label=\"$t('search.people') + resultCount('users')\"\n />\n <span\n key=\"hashtags\"\n :label=\"$t('search.hashtags') + resultCount('hashtags')\"\n />\n </tab-switcher>\n </div>\n </div>\n <div class=\"panel-body\">\n <div v-if=\"currenResultTab === 'statuses'\">\n <Status\n v-for=\"status in visibleStatuses\"\n :key=\"status.id\"\n :collapsable=\"false\"\n :expandable=\"false\"\n :compact=\"false\"\n class=\"search-result\"\n :statusoid=\"status\"\n :no-heading=\"false\"\n />\n <button\n v-if=\"!loading && loaded && lastStatusFetchCount > 0\"\n class=\"more-statuses-button button-unstyled -link -fullwidth\"\n @click.prevent=\"search(searchTerm, 'statuses')\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('search.load_more') }}\n </div>\n </button>\n <div\n v-else-if=\"loading && statusesOffset > 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div\n v-if=\"(visibleStatuses.length === 0 || lastStatusFetchCount === 0) && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>\n {{ visibleStatuses.length === 0 ? $t('search.no_results') : $t('search.no_more_results') }}\n </h4>\n </div>\n </div>\n <div v-else-if=\"currenResultTab === 'people'\">\n <div\n v-if=\"users.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item search-result\"\n />\n </div>\n <div v-else-if=\"currenResultTab === 'hashtags'\">\n <div\n v-if=\"hashtags.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <div\n v-for=\"hashtag in hashtags\"\n :key=\"hashtag.url\"\n class=\"status trend search-result\"\n >\n <div class=\"hashtag\">\n <router-link :to=\"{ name: 'tag-timeline', params: { tag: hashtag.name } }\">\n #{{ hashtag.name }}\n </router-link>\n <div v-if=\"lastHistoryRecord(hashtag)\">\n <span v-if=\"lastHistoryRecord(hashtag).accounts == 1\">\n {{ $t('search.person_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n <span v-else>\n {{ $t('search.people_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n </div>\n </div>\n <div\n v-if=\"lastHistoryRecord(hashtag)\"\n class=\"count\"\n >\n {{ lastHistoryRecord(hashtag).uses }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"search-result-footer text-center panel-footer faint\" />\n </div>\n</template>\n\n<script src=\"./search.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n.more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n}\n\n</style>\n","import FollowCard from '../follow_card/follow_card.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport Status from '../status/status.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport map from 'lodash/map'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\nimport { uniqBy } from 'lodash'\n\nlibrary.add(\n faCircleNotch,\n faSearch\n)\n\nconst Search = {\n components: {\n FollowCard,\n Conversation,\n Status,\n TabSwitcher\n },\n props: [\n 'query'\n ],\n data () {\n return {\n loaded: false,\n loading: false,\n searchTerm: this.query || '',\n userIds: [],\n statuses: [],\n hashtags: [],\n currenResultTab: 'statuses',\n\n statusesOffset: 0,\n lastStatusFetchCount: 0,\n lastQuery: ''\n }\n },\n computed: {\n users () {\n return this.userIds.map(userId => this.$store.getters.findUser(userId))\n },\n visibleStatuses () {\n const allStatusesObject = this.$store.state.statuses.allStatusesObject\n\n return this.statuses.filter(status =>\n allStatusesObject[status.id] && !allStatusesObject[status.id].deleted\n )\n }\n },\n mounted () {\n this.search(this.query)\n },\n watch: {\n query (newValue) {\n this.searchTerm = newValue\n this.search(newValue)\n }\n },\n methods: {\n newQuery (query) {\n this.$router.push({ name: 'search', query: { query } })\n this.$refs.searchInput.focus()\n },\n search (query, searchType = null) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$refs.searchInput.blur()\n if (this.lastQuery !== query) {\n this.userIds = []\n this.hashtags = []\n this.statuses = []\n\n this.statusesOffset = 0\n this.lastStatusFetchCount = 0\n }\n\n this.$store.dispatch('search', { q: query, resolve: true, offset: this.statusesOffset, type: searchType })\n .then(data => {\n this.loading = false\n\n const oldLength = this.statuses.length\n\n // Always append to old results. If new results are empty, this doesn't change anything\n this.userIds = this.userIds.concat(map(data.accounts, 'id'))\n this.statuses = uniqBy(this.statuses.concat(data.statuses), 'id')\n this.hashtags = this.hashtags.concat(data.hashtags)\n\n this.currenResultTab = this.getActiveTab()\n this.loaded = true\n\n // Offset from whatever we already have\n this.statusesOffset = this.statuses.length\n // Because the amount of new statuses can actually be zero, compare to old lenght instead\n this.lastStatusFetchCount = this.statuses.length - oldLength\n this.lastQuery = query\n })\n },\n resultCount (tabName) {\n const length = this[tabName].length\n return length === 0 ? '' : ` (${length})`\n },\n onResultTabSwitch (key) {\n this.currenResultTab = key\n },\n getActiveTab () {\n if (this.visibleStatuses.length > 0) {\n return 'statuses'\n } else if (this.users.length > 0) {\n return 'people'\n } else if (this.hashtags.length > 0) {\n return 'hashtags'\n }\n\n return 'statuses'\n },\n lastHistoryRecord (hashtag) {\n return hashtag.history && hashtag.history[0]\n }\n }\n}\n\nexport default Search\n","import { render } from \"./search.vue?vue&type=template&id=29ec17bc\"\nimport script from \"./search.js?vue&type=script&lang=js\"\nexport * from \"./search.js?vue&type=script&lang=js\"\n\nimport \"./search.vue?vue&type=style&index=0&id=29ec17bc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('registration.registration') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"registration-form\"\n @submit.prevent=\"submit(user)\"\n >\n <div class=\"container\">\n <div class=\"text-fields\">\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.username.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-username\"\n >{{ $t('login.username') }}</label>\n <input\n id=\"sign-up-username\"\n v-model.trim=\"v$.user.username.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.username_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.username.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.username.required\">\n <span>{{ $t('registration.validations.username_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.fullname.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-fullname\"\n >{{ $t('registration.fullname') }}</label>\n <input\n id=\"sign-up-fullname\"\n v-model.trim=\"v$.user.fullname.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.fullname_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.fullname.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.fullname.required\">\n <span>{{ $t('registration.validations.fullname_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.email.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"email\"\n >{{ accountActivationRequired ? $t('registration.email') : $t('registration.email_optional') }}</label>\n <input\n id=\"email\"\n v-model=\"v$.user.email.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"email\"\n :aria-required=\"accountActivationRequired\"\n >\n </div>\n <div\n v-if=\"v$.user.email.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.email.required\">\n <span>{{ $t('registration.validations.email_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div class=\"form-group\">\n <label\n class=\"form--label\"\n for=\"bio\"\n >{{ $t('registration.bio_optional') }}</label>\n <textarea\n id=\"bio\"\n v-model=\"user.bio\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"bioPlaceholder\"\n />\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.password.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password\"\n >{{ $t('login.password') }}</label>\n <input\n id=\"sign-up-password\"\n v-model=\"user.password\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.password.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.password.required\">\n <span>{{ $t('registration.validations.password_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.confirm.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password-confirmation\"\n >{{ $t('registration.password_confirm') }}</label>\n <input\n id=\"sign-up-password-confirmation\"\n v-model=\"user.confirm\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.confirm.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"v$.user.confirm.required.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_required') }}</span>\n </li>\n <li v-if=\"v$.user.confirm.sameAs.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_match') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.birthday.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-birthday\"\n >\n {{ birthdayRequired ? $t('registration.birthday') : $t('registration.birthday_optional') }}\n </label>\n <input\n id=\"sign-up-birthday\"\n v-model=\"user.birthday\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"date\"\n :max=\"birthdayRequired ? birthdayMinAttr : undefined\"\n :aria-required=\"birthdayRequired\"\n >\n </div>\n <div\n v-if=\"v$.user.birthday.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"v$.user.birthday.required.$invalid\">\n <span>{{ $t('registration.validations.birthday_required') }}</span>\n </li>\n <li v-if=\"v$.user.birthday.maxValue.$invalid\">\n <span>{{ $tc('registration.validations.birthday_min_age', { date: birthdayMinFormatted }) }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.language.$error }\"\n >\n <interface-language-switcher\n for=\"email-language\"\n :prompt-text=\"$t('registration.email_language')\"\n :language=\"v$.user.language.$model\"\n :set-language=\"val => v$.user.language.$model = val\"\n @click.stop.prevent\n />\n </div>\n\n <div\n v-if=\"accountApprovalRequired\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"reason\"\n >{{ $t('registration.reason') }}</label>\n <textarea\n id=\"reason\"\n v-model=\"user.reason\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"reasonPlaceholder\"\n />\n </div>\n\n <div\n v-if=\"captcha.type != 'none'\"\n id=\"captcha-group\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"captcha-label\"\n >{{ $t('registration.captcha') }}</label>\n\n <template v-if=\"['kocaptcha', 'native'].includes(captcha.type)\">\n <img\n :src=\"captcha.url\"\n @click=\"setCaptcha\"\n >\n\n <sub>{{ $t('registration.new_captcha') }}</sub>\n\n <input\n id=\"captcha-answer\"\n v-model=\"captcha.solution\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"text\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n >\n </template>\n </div>\n\n <div\n v-if=\"token\"\n class=\"form-group\"\n >\n <label for=\"token\">{{ $t('registration.token') }}</label>\n <input\n id=\"token\"\n v-model=\"token\"\n disabled=\"true\"\n class=\"form-control\"\n type=\"text\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('registration.register') }}\n </button>\n </div>\n </div>\n\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"terms-of-service\"\n v-html=\"termsOfService\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n <div\n v-if=\"serverValidationErrors.length\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n <span\n v-for=\"error in serverValidationErrors\"\n :key=\"error\"\n >{{ error }}</span>\n </div>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./registration.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height: 16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n</style>\n","import useVuelidate from '@vuelidate/core'\nimport { required, requiredIf, sameAs } from '@vuelidate/validators'\nimport { mapActions, mapState } from 'vuex'\nimport InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'\nimport localeService from '../../services/locale/locale.service.js'\nimport { DAY } from 'src/services/date_utils/date_utils.js'\n\nconst registration = {\n setup () { return { v$: useVuelidate() } },\n data: () => ({\n user: {\n email: '',\n fullname: '',\n username: '',\n password: '',\n confirm: '',\n birthday: '',\n reason: '',\n language: ['']\n },\n captcha: {}\n }),\n components: {\n InterfaceLanguageSwitcher\n },\n validations () {\n return {\n user: {\n email: { required: requiredIf(() => this.accountActivationRequired) },\n username: { required },\n fullname: { required },\n password: { required },\n confirm: {\n required,\n sameAs: sameAs(this.user.password)\n },\n birthday: {\n required: requiredIf(() => this.birthdayRequired),\n maxValue: value => {\n return !this.birthdayRequired || new Date(value).getTime() <= this.birthdayMin.getTime()\n }\n },\n reason: { required: requiredIf(() => this.accountApprovalRequired) },\n language: {}\n }\n }\n },\n created () {\n if ((!this.registrationOpen && !this.token) || this.signedIn) {\n this.$router.push({ name: 'root' })\n }\n\n this.setCaptcha()\n },\n computed: {\n token () { return this.$route.params.token },\n bioPlaceholder () {\n return this.replaceNewlines(this.$t('registration.bio_placeholder'))\n },\n reasonPlaceholder () {\n return this.replaceNewlines(this.$t('registration.reason_placeholder'))\n },\n birthdayMin () {\n const minAge = this.birthdayMinAge\n const today = new Date()\n today.setUTCMilliseconds(0)\n today.setUTCSeconds(0)\n today.setUTCMinutes(0)\n today.setUTCHours(0)\n const minDate = new Date()\n minDate.setTime(today.getTime() - minAge * DAY)\n return minDate\n },\n birthdayMinAttr () {\n return this.birthdayMin.toJSON().replace(/T.+$/, '')\n },\n birthdayMinFormatted () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return this.user.birthday && new Date(Date.parse(this.birthdayMin)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })\n },\n ...mapState({\n registrationOpen: (state) => state.instance.registrationOpen,\n signedIn: (state) => !!state.users.currentUser,\n isPending: (state) => state.users.signUpPending,\n serverValidationErrors: (state) => state.users.signUpErrors,\n termsOfService: (state) => state.instance.tos,\n accountActivationRequired: (state) => state.instance.accountActivationRequired,\n accountApprovalRequired: (state) => state.instance.accountApprovalRequired,\n birthdayRequired: (state) => state.instance.birthdayRequired,\n birthdayMinAge: (state) => state.instance.birthdayMinAge\n })\n },\n methods: {\n ...mapActions(['signUp', 'getCaptcha']),\n async submit () {\n this.user.nickname = this.user.username\n this.user.token = this.token\n\n this.user.captcha_solution = this.captcha.solution\n this.user.captcha_token = this.captcha.token\n this.user.captcha_answer_data = this.captcha.answer_data\n if (this.user.language) {\n this.user.language = localeService.internalToBackendLocaleMulti(this.user.language.filter(k => k))\n }\n\n this.v$.$touch()\n\n if (!this.v$.$invalid) {\n try {\n await this.signUp(this.user)\n this.$router.push({ name: 'friends' })\n } catch (error) {\n console.warn('Registration failed: ', error)\n this.setCaptcha()\n }\n }\n },\n setCaptcha () {\n this.getCaptcha().then(cpt => { this.captcha = cpt })\n },\n replaceNewlines (str) {\n return str.replace(/\\s*\\n\\s*/g, ' \\n')\n }\n }\n}\n\nexport default registration\n","import { render } from \"./registration.vue?vue&type=template&id=f9488ca2\"\nimport script from \"./registration.js?vue&type=script&lang=js\"\nexport * from \"./registration.js?vue&type=script&lang=js\"\n\nimport \"./registration.vue?vue&type=style&index=0&id=f9488ca2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('password_reset.password_reset') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"password-reset-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"container\">\n <div v-if=\"!mailerEnabled\">\n <p v-if=\"passwordResetRequested\">\n {{ $t('password_reset.password_reset_required_but_mailer_is_disabled') }}\n </p>\n <p v-else>\n {{ $t('password_reset.password_reset_disabled') }}\n </p>\n </div>\n <div v-else-if=\"success || throttled\">\n <p v-if=\"success\">\n {{ $t('password_reset.check_email') }}\n </p>\n <div class=\"form-group text-center\">\n <router-link :to=\"{name: 'root'}\">\n {{ $t('password_reset.return_home') }}\n </router-link>\n </div>\n </div>\n <div v-else>\n <p\n v-if=\"passwordResetRequested\"\n class=\"password-reset-required error\"\n >\n {{ $t('password_reset.password_reset_required') }}\n </p>\n <p>\n {{ $t('password_reset.instruction') }}\n </p>\n <div class=\"form-group\">\n <input\n ref=\"email\"\n v-model=\"user.email\"\n :disabled=\"isPending\"\n :placeholder=\"$t('password_reset.placeholder')\"\n class=\"form-control\"\n type=\"input\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default btn-block\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n </div>\n <p\n v-if=\"error\"\n class=\"alert error notice-dismissible\"\n >\n <span>{{ error }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n @click.prevent=\"dismissError()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./password_reset.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n</style>\n","import { mapState } from 'vuex'\nimport passwordResetApi from '../../services/new_api/password_reset.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst passwordReset = {\n data: () => ({\n user: {\n email: ''\n },\n isPending: false,\n success: false,\n throttled: false,\n error: null\n }),\n computed: {\n ...mapState({\n signedIn: (state) => !!state.users.currentUser,\n instance: state => state.instance\n }),\n mailerEnabled () {\n return this.instance.mailerEnabled\n }\n },\n created () {\n if (this.signedIn) {\n this.$router.push({ name: 'root' })\n }\n },\n props: {\n passwordResetRequested: {\n default: false,\n type: Boolean\n }\n },\n methods: {\n dismissError () {\n this.error = null\n },\n submit () {\n this.isPending = true\n const email = this.user.email\n const instance = this.instance.server\n\n passwordResetApi({ instance, email }).then(({ status }) => {\n this.isPending = false\n this.user.email = ''\n\n if (status === 204) {\n this.success = true\n this.error = null\n } else if (status === 429) {\n this.throttled = true\n this.error = this.$t('password_reset.too_many_requests')\n }\n }).catch(() => {\n this.isPending = false\n this.user.email = ''\n this.error = this.$t('general.generic_error')\n })\n }\n }\n}\n\nexport default passwordReset\n","import { reduce } from 'lodash'\n\nconst MASTODON_PASSWORD_RESET_URL = '/auth/password'\n\nconst resetPassword = ({ instance, email }) => {\n const params = { email }\n const query = reduce(params, (acc, v, k) => {\n const encoded = `${k}=${encodeURIComponent(v)}`\n return `${acc}&${encoded}`\n }, '')\n const url = `${instance}${MASTODON_PASSWORD_RESET_URL}?${query}`\n\n return window.fetch(url, {\n method: 'POST'\n })\n}\n\nexport default resetPassword\n","import { render } from \"./password_reset.vue?vue&type=template&id=0a88ea38\"\nimport script from \"./password_reset.js?vue&type=script&lang=js\"\nexport * from \"./password_reset.js?vue&type=script&lang=js\"\n\nimport \"./password_reset.vue?vue&type=style&index=0&id=0a88ea38&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.friend_requests') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <FollowRequestCard\n v-for=\"request in requests\"\n :key=\"request.id\"\n :user=\"request\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./follow_requests.js\"></script>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-request-card-content-container\">\n <button\n class=\"btn button-default\"\n @click=\"approveUser\"\n >\n {{ $t('user_card.approve') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"denyUser\"\n >\n {{ $t('user_card.deny') }}\n </button>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingApproveConfirmDialog\"\n :title=\"$t('user_card.approve_confirm_title')\"\n :confirm-text=\"$t('user_card.approve_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.approve_confirm_cancel_button')\"\n @accepted=\"doApprove\"\n @cancelled=\"hideApproveConfirmDialog\"\n >\n {{ $t('user_card.approve_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n <confirm-modal\n v-if=\"showingDenyConfirmDialog\"\n :title=\"$t('user_card.deny_confirm_title')\"\n :confirm-text=\"$t('user_card.deny_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.deny_confirm_cancel_button')\"\n @accepted=\"doDeny\"\n @cancelled=\"hideDenyConfirmDialog\"\n >\n {{ $t('user_card.deny_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n </teleport>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_request_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-request-card-content-container {\n display: flex;\n flex-flow: row wrap;\n\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { notificationsFromStore } from '../../services/notification_utils/notification_utils.js'\n\nconst FollowRequestCard = {\n props: ['user'],\n components: {\n BasicUserCard,\n ConfirmModal\n },\n data () {\n return {\n showingApproveConfirmDialog: false,\n showingDenyConfirmDialog: false\n }\n },\n methods: {\n findFollowRequestNotificationId () {\n const notif = notificationsFromStore(this.$store).find(\n (notif) => notif.from_profile.id === this.user.id && notif.type === 'follow_request'\n )\n return notif && notif.id\n },\n showApproveConfirmDialog () {\n this.showingApproveConfirmDialog = true\n },\n hideApproveConfirmDialog () {\n this.showingApproveConfirmDialog = false\n },\n showDenyConfirmDialog () {\n this.showingDenyConfirmDialog = true\n },\n hideDenyConfirmDialog () {\n this.showingDenyConfirmDialog = false\n },\n approveUser () {\n if (this.shouldConfirmApprove) {\n this.showApproveConfirmDialog()\n } else {\n this.doApprove()\n }\n },\n doApprove () {\n this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n\n const notifId = this.findFollowRequestNotificationId()\n this.$store.dispatch('markSingleNotificationAsSeen', { id: notifId })\n this.$store.dispatch('updateNotification', {\n id: notifId,\n updater: notification => {\n notification.type = 'follow'\n }\n })\n this.hideApproveConfirmDialog()\n },\n denyUser () {\n if (this.shouldConfirmDeny) {\n this.showDenyConfirmDialog()\n } else {\n this.doDeny()\n }\n },\n doDeny () {\n const notifId = this.findFollowRequestNotificationId()\n this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n .then(() => {\n this.$store.dispatch('dismissNotificationLocal', { id: notifId })\n this.$store.dispatch('removeFollowRequest', this.user)\n })\n this.hideDenyConfirmDialog()\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n shouldConfirmApprove () {\n return this.mergedConfig.modalOnApproveFollow\n },\n shouldConfirmDeny () {\n return this.mergedConfig.modalOnDenyFollow\n }\n }\n}\n\nexport default FollowRequestCard\n","import FollowRequestCard from '../follow_request_card/follow_request_card.vue'\n\nconst FollowRequests = {\n components: {\n FollowRequestCard\n },\n computed: {\n requests () {\n return this.$store.state.api.followRequests\n }\n }\n}\n\nexport default FollowRequests\n","import { render } from \"./follow_request_card.vue?vue&type=template&id=3bb26ea8\"\nimport script from \"./follow_request_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_request_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_request_card.vue?vue&type=style&index=0&id=3bb26ea8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./follow_requests.vue?vue&type=template&id=62e19784\"\nimport script from \"./follow_requests.js?vue&type=script&lang=js\"\nexport * from \"./follow_requests.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import oauth from '../../services/new_api/oauth.js'\n\nconst oac = {\n props: ['code'],\n mounted () {\n if (this.code) {\n const { clientId, clientSecret } = this.$store.state.oauth\n\n oauth.getToken({\n clientId,\n clientSecret,\n instance: this.$store.state.instance.server,\n code: this.code\n }).then((result) => {\n this.$store.commit('setToken', result.access_token)\n this.$store.dispatch('loginUser', result.access_token)\n this.$router.push({ name: 'friends' })\n })\n }\n }\n}\n\nexport default oac\n","import { render } from \"./oauth_callback.vue?vue&type=template&id=f514124c\"\nimport script from \"./oauth_callback.js?vue&type=script&lang=js\"\nexport * from \"./oauth_callback.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <h1>...</h1>\n</template>\n\n<script src=\"./oauth_callback.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n <div class=\"panel-body\">\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow.js\"></script>\n","import apiService from '../../services/api/api.service.js'\nimport FollowCard from '../follow_card/follow_card.vue'\n\nconst WhoToFollow = {\n components: {\n FollowCard\n },\n data () {\n return {\n users: []\n }\n },\n mounted () {\n this.getWhoToFollow()\n },\n methods: {\n showWhoToFollow (reply) {\n reply.forEach((i, index) => {\n this.$store.state.api.backendInteractor.fetchUser({ id: i.acct })\n .then((externalUser) => {\n if (!externalUser.error) {\n this.$store.commit('addNewUsers', [externalUser])\n this.users.push(externalUser)\n }\n })\n })\n },\n getWhoToFollow () {\n const credentials = this.$store.state.users.currentUser.credentials\n if (credentials) {\n apiService.suggestions({ credentials })\n .then((reply) => {\n this.showWhoToFollow(reply)\n })\n }\n }\n }\n}\n\nexport default WhoToFollow\n","import { render } from \"./who_to_follow.vue?vue&type=template&id=1d38a2c8\"\nimport script from \"./who_to_follow.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"column-inner\">\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <staff-panel />\n <terms-of-service-panel />\n <MRFTransparencyPanel />\n <features-panel v-if=\"showFeaturesPanel\" />\n </div>\n</template>\n\n<script src=\"./about.js\"></script>\n","<template>\n <div>\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"tos-content\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./terms_of_service_panel.js\"></script>\n\n<style lang=\"scss\">\n.tos-content {\n margin: 1em;\n}\n</style>\n","const TermsOfServicePanel = {\n computed: {\n content () {\n return this.$store.state.instance.tos\n }\n }\n}\n\nexport default TermsOfServicePanel\n","import { render } from \"./terms_of_service_panel.vue?vue&type=template&id=22763f84\"\nimport script from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\nexport * from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\n\nimport \"./terms_of_service_panel.vue?vue&type=style&index=0&id=22763f84&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"staff-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.staff\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div\n v-for=\"group in groupedStaffAccounts\"\n :key=\"group.role\"\n class=\"staff-group\"\n >\n <h4>{{ $t('general.role.' + group.role) }}</h4>\n <basic-user-card\n v-for=\"user in group.users\"\n :key=\"user.screen_name\"\n :user=\"user\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./staff_panel.js\"></script>\n\n<style lang=\"scss\">\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n</style>\n","import map from 'lodash/map'\nimport groupBy from 'lodash/groupBy'\nimport { mapGetters, mapState } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst StaffPanel = {\n created () {\n const nicknames = this.$store.state.instance.staffAccounts\n nicknames.forEach(nickname => this.$store.dispatch('fetchUserIfMissing', nickname))\n },\n components: {\n BasicUserCard\n },\n computed: {\n groupedStaffAccounts () {\n const staffAccounts = map(this.staffAccounts, this.findUserByName).filter(_ => _)\n const groupedStaffAccounts = groupBy(staffAccounts, 'role')\n\n return [\n { role: 'admin', users: groupedStaffAccounts.admin },\n { role: 'moderator', users: groupedStaffAccounts.moderator }\n ].filter(group => group.users)\n },\n ...mapGetters([\n 'findUserByName'\n ]),\n ...mapState({\n staffAccounts: state => state.instance.staffAccounts\n })\n }\n}\n\nexport default StaffPanel\n","import { render } from \"./staff_panel.vue?vue&type=template&id=56c37220\"\nimport script from \"./staff_panel.js?vue&type=script&lang=js\"\nexport * from \"./staff_panel.js?vue&type=script&lang=js\"\n\nimport \"./staff_panel.vue?vue&type=style&index=0&id=56c37220&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"federationPolicy\"\n class=\"mrf-transparency-panel\"\n >\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.mrf.federation\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"mrf-section\">\n <h2>{{ $t(\"about.mrf.mrf_policies\") }}</h2>\n <p>{{ $t(\"about.mrf.mrf_policies_desc\") }}</p>\n\n <ul>\n <li\n v-for=\"policy in mrfPolicies\"\n :key=\"policy\"\n v-text=\"policy\"\n />\n </ul>\n\n <h2 v-if=\"hasInstanceSpecificPolicies\">\n {{ $t(\"about.mrf.simple.simple_policies\") }}\n </h2>\n\n <div v-if=\"acceptInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.accept\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.accept_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in acceptInstances\"\n :key=\"entry.instance + '_accept'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"rejectInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.reject\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.reject_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in rejectInstances\"\n :key=\"entry.instance + '_reject'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"quarantineInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.quarantine\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.quarantine_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in quarantineInstances\"\n :key=\"entry.instance + '_quarantine'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"ftlRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.ftl_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.ftl_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in ftlRemovalInstances\"\n :key=\"entry.instance + '_ftl_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaNsfwInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_nsfw\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_nsfw_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaNsfwInstances\"\n :key=\"entry.instance + '_media_nsfw'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaRemovalInstances\"\n :key=\"entry.instance + '_media_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <h2 v-if=\"hasKeywordPolicies\">\n {{ $t(\"about.mrf.keyword.keyword_policies\") }}\n </h2>\n\n <div v-if=\"keywordsFtlRemoval.length\">\n <h4>{{ $t(\"about.mrf.keyword.ftl_removal\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsFtlRemoval\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReject.length\">\n <h4>{{ $t(\"about.mrf.keyword.reject\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReject\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReplace.length\">\n <h4>{{ $t(\"about.mrf.keyword.replace\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReplace\"\n :key=\"keyword\"\n >\n {{ keyword.pattern }}\n {{ $t(\"about.mrf.keyword.is_replaced_by\") }}\n {{ keyword.replacement }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./mrf_transparency_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./mrf_transparency_panel\";\n</style>\n","import { mapState } from 'vuex'\nimport { get } from 'lodash'\n\n/**\n * This is for backwards compatibility. We originally didn't recieve\n * extra info like a reason why an instance was rejected/quarantined/etc.\n * Because we didn't want to break backwards compatibility it was decided\n * to add an extra \"info\" key.\n */\nconst toInstanceReasonObject = (instances, info, key) => {\n return instances.map(instance => {\n if (info[key] && info[key][instance] && info[key][instance].reason) {\n return { instance, reason: info[key][instance].reason }\n }\n return { instance, reason: '' }\n })\n}\n\nconst MRFTransparencyPanel = {\n computed: {\n ...mapState({\n federationPolicy: state => get(state, 'instance.federationPolicy'),\n mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []),\n quarantineInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.quarantined_instances', []),\n get(state, 'instance.federationPolicy.quarantined_instances_info', []),\n 'quarantined_instances'\n ),\n acceptInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.accept', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'accept'\n ),\n rejectInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.reject', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'reject'\n ),\n ftlRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'federated_timeline_removal'\n ),\n mediaNsfwInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_nsfw'\n ),\n mediaRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_removal'\n ),\n keywordsFtlRemoval: state => get(state, 'instance.federationPolicy.mrf_keyword.federated_timeline_removal', []),\n keywordsReject: state => get(state, 'instance.federationPolicy.mrf_keyword.reject', []),\n keywordsReplace: state => get(state, 'instance.federationPolicy.mrf_keyword.replace', [])\n }),\n hasInstanceSpecificPolicies () {\n return this.quarantineInstances.length ||\n this.acceptInstances.length ||\n this.rejectInstances.length ||\n this.ftlRemovalInstances.length ||\n this.mediaNsfwInstances.length ||\n this.mediaRemovalInstances.length\n },\n hasKeywordPolicies () {\n return this.keywordsFtlRemoval.length ||\n this.keywordsReject.length ||\n this.keywordsReplace.length\n }\n }\n}\n\nexport default MRFTransparencyPanel\n","import InstanceSpecificPanel from '../instance_specific_panel/instance_specific_panel.vue'\nimport FeaturesPanel from '../features_panel/features_panel.vue'\nimport TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'\nimport StaffPanel from '../staff_panel/staff_panel.vue'\nimport MRFTransparencyPanel from '../mrf_transparency_panel/mrf_transparency_panel.vue'\n\nconst About = {\n components: {\n InstanceSpecificPanel,\n FeaturesPanel,\n TermsOfServicePanel,\n StaffPanel,\n MRFTransparencyPanel\n },\n computed: {\n showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n showInstanceSpecificPanel () {\n return this.$store.state.instance.showInstanceSpecificPanel &&\n !this.$store.getters.mergedConfig.hideISP &&\n this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default About\n","import { render } from \"./mrf_transparency_panel.vue?vue&type=template&id=67a05c5c\"\nimport script from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\nexport * from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\n\nimport \"./mrf_transparency_panel.vue?vue&type=style&index=0&id=67a05c5c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./about.vue?vue&type=template&id=4d996902\"\nimport script from \"./about.js?vue&type=script&lang=js\"\nexport * from \"./about.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('remote_user_resolver.remote_user_resolver') }}\n </div>\n <div class=\"panel-body\">\n <p>\n {{ $t('remote_user_resolver.searching_for') }} @{{ $route.params.username }}@{{ $route.params.hostname }}\n </p>\n <p v-if=\"error\">\n {{ $t('remote_user_resolver.error') }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./remote_user_resolver.js\"></script>\n","const RemoteUserResolver = {\n data: () => ({\n error: false\n }),\n mounted () {\n this.redirect()\n },\n methods: {\n redirect () {\n const acct = this.$route.params.username + '@' + this.$route.params.hostname\n this.$store.state.api.backendInteractor.fetchUser({ id: acct })\n .then((externalUser) => {\n if (externalUser.error) {\n this.error = true\n } else {\n this.$store.commit('addNewUsers', [externalUser])\n const id = externalUser.id\n this.$router.replace({\n name: 'external-user-profile',\n params: { id }\n })\n }\n })\n .catch(() => {\n this.error = true\n })\n }\n }\n}\n\nexport default RemoteUserResolver\n","import { render } from \"./remote_user_resolver.vue?vue&type=template&id=147deeb8\"\nimport script from \"./remote_user_resolver.js?vue&type=script&lang=js\"\nexport * from \"./remote_user_resolver.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"Lists panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('lists.lists') }}\n </div>\n <router-link\n :to=\"{ name: 'lists-new' }\"\n class=\"button-default btn new-list-button\"\n >\n {{ $t(\"lists.new\") }}\n </router-link>\n </div>\n <div class=\"panel-body\">\n <ListsCard\n v-for=\"list in lists.slice().reverse()\"\n :key=\"list\"\n :list=\"list\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./lists.js\"></script>\n\n<style lang=\"scss\">\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n</style>\n","<template>\n <div class=\"list-card\">\n <router-link\n :to=\"{ name: 'lists-timeline', params: { id: list.id } }\"\n class=\"list-name\"\n >\n {{ list.title }}\n </router-link>\n <router-link\n :to=\"{ name: 'lists-edit', params: { id: list.id } }\"\n class=\"button-list-edit\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"ellipsis-h\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./lists_card.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.list-card {\n display: flex;\n}\n\n.list-name {\n flex-grow: 1;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisH\n)\n\nconst ListsCard = {\n props: [\n 'list'\n ]\n}\n\nexport default ListsCard\n","import ListsCard from '../lists_card/lists_card.vue'\n\nconst Lists = {\n data () {\n return {\n isNew: false\n }\n },\n components: {\n ListsCard\n },\n computed: {\n lists () {\n return this.$store.state.lists.allLists\n }\n },\n methods: {\n cancelNewList () {\n this.isNew = false\n },\n newList () {\n this.isNew = true\n }\n }\n}\n\nexport default Lists\n","import { render } from \"./lists_card.vue?vue&type=template&id=cb7330aa\"\nimport script from \"./lists_card.js?vue&type=script&lang=js\"\nexport * from \"./lists_card.js?vue&type=script&lang=js\"\n\nimport \"./lists_card.vue?vue&type=style&index=0&id=cb7330aa&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./lists.vue?vue&type=template&id=273aca3d\"\nimport script from \"./lists.js?vue&type=script&lang=js\"\nexport * from \"./lists.js?vue&type=script&lang=js\"\n\nimport \"./lists.vue?vue&type=style&index=0&id=273aca3d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\nconst ListsTimeline = {\n data () {\n return {\n listId: null\n }\n },\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.list }\n },\n watch: {\n $route: function (route) {\n if (route.name === 'lists-timeline' && route.params.id !== this.listId) {\n this.listId = route.params.id\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n }\n }\n },\n created () {\n this.listId = this.$route.params.id\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n }\n}\n\nexport default ListsTimeline\n","import { render } from \"./lists_timeline.vue?vue&type=template&id=464584d8\"\nimport script from \"./lists_timeline.js?vue&type=script&lang=js\"\nexport * from \"./lists_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n title=\"list.name\"\n :timeline=\"timeline\"\n :list-id=\"listId\"\n timeline-name=\"list\"\n />\n</template>\n\n<script src=\"./lists_timeline.js\"></script>\n","<template>\n <div class=\"panel-default panel ListEdit\">\n <div\n ref=\"header\"\n class=\"panel-heading list-edit-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"$router.back\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title\">\n <i18n-t\n v-if=\"id\"\n keypath=\"lists.editing_list\"\n >\n <template #listTitle>\n {{ title }}\n </template>\n </i18n-t>\n <i18n-t\n v-else\n keypath=\"lists.creating_list\"\n />\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"input-wrap\">\n <label for=\"list-edit-title\">{{ $t('lists.title') }}</label>\n {{ ' ' }}\n <input\n id=\"list-edit-title\"\n ref=\"title\"\n v-model=\"titleDraft\"\n >\n <button\n v-if=\"id\"\n class=\"btn button-default follow-button\"\n @click=\"updateListTitle\"\n >\n {{ $t('lists.update_title') }}\n </button>\n </div>\n <tab-switcher\n class=\"list-member-management\"\n :scrollable-tabs=\"true\"\n >\n <div\n v-if=\"id || addedUserIds.size > 0\"\n :label=\"$t('lists.manage_members')\"\n class=\"members-list\"\n >\n <div class=\"users-list\">\n <div\n v-for=\"user in membersUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <button\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n\n <div\n class=\"search-list\"\n :label=\"$t('lists.add_members')\"\n >\n <ListsUserSearch\n @results=\"onSearchResults\"\n @loading=\"onSearchLoading\"\n @loadingDone=\"onSearchLoadingDone\"\n />\n <div\n v-if=\"searchLoading\"\n class=\"loading\"\n >\n <PanelLoading />\n </div>\n <div\n v-else\n class=\"users-list\"\n >\n <div\n v-for=\"user in searchUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <span\n v-if=\"membersUserIds.includes(user.id)\"\n >\n {{ $t('lists.is_in_list') }}\n </span>\n <button\n v-if=\"!membersUserIds.includes(user.id)\"\n class=\"btn button-default follow-button\"\n @click=\"toggleAddFromSearch(user)\"\n >\n {{ isAdded(user) ? $t('general.undo') : $t('lists.add_to_list') }}\n </button>\n <button\n v-else\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n </tab-switcher>\n </div>\n <div class=\"panel-footer\">\n <span class=\"spacer\" />\n <button\n v-if=\"!id\"\n class=\"btn button-default footer-button\"\n @click=\"createList\"\n >\n {{ $t('lists.create') }}\n </button>\n <button\n v-else-if=\"!reallyDelete\"\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = true\"\n >\n {{ $t('lists.delete') }}\n </button>\n <template v-else>\n {{ $t('lists.really_delete') }}\n <button\n class=\"btn button-default footer-button\"\n @click=\"deleteList\"\n >\n {{ $t('general.yes') }}\n </button>\n <button\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = false\"\n >\n {{ $t('general.no') }}\n </button>\n </template>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_edit.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"ListsUserSearch\">\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n :placeholder=\"$t('lists.search')\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"input-wrap\">\n <Checkbox\n v-model=\"followingOnly\"\n @change=\"onInput\"\n >\n {{ $t('lists.following_only') }}\n </Checkbox>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_user_search.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce } from 'lodash'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsUserSearch = {\n components: {\n Checkbox\n },\n emits: ['loading', 'loadingDone', 'results'],\n data () {\n return {\n loading: false,\n query: '',\n followingOnly: true\n }\n },\n methods: {\n onInput: debounce(function () {\n this.search(this.query)\n }, 2000),\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$emit('loading')\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts', following: this.followingOnly })\n .then(data => {\n this.$emit('results', data.accounts.map(a => a.id))\n })\n .finally(() => {\n this.loading = false\n this.$emit('loadingDone')\n })\n }\n }\n}\n\nexport default ListsUserSearch\n","import { render } from \"./lists_user_search.vue?vue&type=template&id=f65a8ae4\"\nimport script from \"./lists_user_search.js?vue&type=script&lang=js\"\nexport * from \"./lists_user_search.js?vue&type=script&lang=js\"\n\nimport \"./lists_user_search.vue?vue&type=style&index=0&id=f65a8ae4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport ListsUserSearch from '../lists_user_search/lists_user_search.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsNew = {\n components: {\n BasicUserCard,\n UserAvatar,\n ListsUserSearch,\n TabSwitcher,\n PanelLoading\n },\n data () {\n return {\n title: '',\n titleDraft: '',\n membersUserIds: [],\n removedUserIds: new Set([]), // users we added for members, to undo\n searchUserIds: [],\n addedUserIds: new Set([]), // users we added from search, to undo\n searchLoading: false,\n reallyDelete: false\n }\n },\n created () {\n if (!this.id) return\n this.$store.dispatch('fetchList', { listId: this.id })\n .then(() => {\n this.title = this.findListTitle(this.id)\n this.titleDraft = this.title\n })\n this.$store.dispatch('fetchListAccounts', { listId: this.id })\n .then(() => {\n this.membersUserIds = this.findListAccounts(this.id)\n this.membersUserIds.forEach(userId => {\n this.$store.dispatch('fetchUserIfMissing', userId)\n })\n })\n },\n computed: {\n id () {\n return this.$route.params.id\n },\n membersUsers () {\n return [...this.membersUserIds, ...this.addedUserIds]\n .map(userId => this.findUser(userId)).filter(user => user)\n },\n searchUsers () {\n return this.searchUserIds.map(userId => this.findUser(userId)).filter(user => user)\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['findUser', 'findListTitle', 'findListAccounts'])\n },\n methods: {\n onInput () {\n this.search(this.query)\n },\n toggleRemoveMember (user) {\n if (this.removedUserIds.has(user.id)) {\n this.id && this.addUser(user)\n this.removedUserIds.delete(user.id)\n } else {\n this.id && this.removeUser(user.id)\n this.removedUserIds.add(user.id)\n }\n },\n toggleAddFromSearch (user) {\n if (this.addedUserIds.has(user.id)) {\n this.id && this.removeUser(user.id)\n this.addedUserIds.delete(user.id)\n } else {\n this.id && this.addUser(user)\n this.addedUserIds.add(user.id)\n }\n },\n isRemoved (user) {\n return this.removedUserIds.has(user.id)\n },\n isAdded (user) {\n return this.addedUserIds.has(user.id)\n },\n addUser (user) {\n this.$store.dispatch('addListAccount', { accountId: user.id, listId: this.id })\n },\n removeUser (userId) {\n this.$store.dispatch('removeListAccount', { accountId: userId, listId: this.id })\n },\n onSearchLoading (results) {\n this.searchLoading = true\n },\n onSearchLoadingDone (results) {\n this.searchLoading = false\n },\n onSearchResults (results) {\n this.searchLoading = false\n this.searchUserIds = results\n },\n updateListTitle () {\n this.$store.dispatch('setList', { listId: this.id, title: this.titleDraft })\n .then(() => {\n this.title = this.findListTitle(this.id)\n })\n },\n createList () {\n this.$store.dispatch('createList', { title: this.titleDraft })\n .then((list) => {\n return this\n .$store\n .dispatch('setListAccounts', { listId: list.id, accountIds: [...this.addedUserIds] })\n .then(() => list.id)\n })\n .then((listId) => {\n this.$router.push({ name: 'lists-timeline', params: { id: listId } })\n })\n .catch((e) => {\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'lists.error',\n messageArgs: [e.message],\n level: 'error'\n })\n })\n },\n deleteList () {\n this.$store.dispatch('deleteList', { listId: this.id })\n this.$router.push({ name: 'lists' })\n }\n }\n}\n\nexport default ListsNew\n","import { render } from \"./lists_edit.vue?vue&type=template&id=722535f4\"\nimport script from \"./lists_edit.js?vue&type=script&lang=js\"\nexport * from \"./lists_edit.js?vue&type=script&lang=js\"\n\nimport \"./lists_edit.vue?vue&type=style&index=0&id=722535f4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default announcements-page\">\n <div class=\"panel-heading\">\n <span>\n {{ $t('announcements.page_header') }}\n </span>\n </div>\n <div class=\"panel-body\">\n <section\n v-if=\"canPostAnnouncement\"\n >\n <div class=\"post-form\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.post_form_header') }}</h4>\n </div>\n <div class=\"body\">\n <announcement-editor\n :announcement=\"newAnnouncement\"\n :disabled=\"posting\"\n />\n </div>\n <div class=\"footer\">\n <button\n class=\"btn button-default post-button\"\n :disabled=\"posting\"\n @click.prevent=\"postAnnouncement\"\n >\n {{ $t('announcements.post_action') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('announcements.post_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </section>\n <section\n v-for=\"announcement in announcements\"\n :key=\"announcement.id\"\n >\n <announcement\n :announcement=\"announcement\"\n />\n </section>\n </div>\n </div>\n</template>\n\n<script src=\"./announcements_page.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.title') }}</h4>\n </div>\n <div class=\"body\">\n <rich-content\n v-if=\"!editing\"\n :html=\"content\"\n :emoji=\"announcement.emojis\"\n :handle-links=\"true\"\n />\n <announcement-editor\n v-else\n :announcement=\"editedAnnouncement\"\n />\n </div>\n <div class=\"footer\">\n <div\n v-if=\"!editing\"\n class=\"times\"\n >\n <span v-if=\"publishedAt\">\n {{ $t('announcements.published_time_display', { time: publishedAt }) }}\n </span>\n <span v-if=\"startsAt\">\n {{ $t('announcements.start_time_display', { time: startsAt }) }}\n </span>\n <span v-if=\"endsAt\">\n {{ $t('announcements.end_time_display', { time: endsAt }) }}\n </span>\n </div>\n <div\n v-if=\"!editing\"\n class=\"actions\"\n >\n <button\n v-if=\"currentUser\"\n class=\"btn button-default\"\n :class=\"{ toggled: isRead }\"\n :disabled=\"inactive\"\n :title=\"inactive ? $t('announcements.inactive_message') : ''\"\n @click=\"markAsRead\"\n >\n {{ $t('announcements.mark_as_read_action') }}\n </button>\n <button\n v-if=\"canEditAnnouncement\"\n class=\"btn button-default\"\n @click=\"enterEditMode\"\n >\n {{ $t('announcements.edit_action') }}\n </button>\n <button\n v-if=\"canEditAnnouncement\"\n class=\"btn button-default\"\n @click=\"deleteAnnouncement\"\n >\n {{ $t('announcements.delete_action') }}\n </button>\n </div>\n <div\n v-else\n class=\"actions\"\n >\n <button\n class=\"btn button-default\"\n @click=\"submitEdit\"\n >\n {{ $t('announcements.submit_edit_action') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"cancelEdit\"\n >\n {{ $t('announcements.cancel_edit_action') }}\n </button>\n <div\n v-if=\"editing && editError\"\n class=\"alert error\"\n >\n {{ $t('announcements.edit_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./announcement.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcement {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement-editor\">\n <textarea\n ref=\"textarea\"\n v-model=\"announcement.content\"\n class=\"post-textarea\"\n rows=\"1\"\n cols=\"1\"\n :placeholder=\"$t('announcements.post_placeholder')\"\n :disabled=\"disabled\"\n />\n <span class=\"announcement-metadata\">\n <label for=\"announcement-start-time\">{{ $t('announcements.start_time_prompt') }}</label>\n <input\n id=\"announcement-start-time\"\n v-model=\"announcement.startsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <label for=\"announcement-end-time\">{{ $t('announcements.end_time_prompt') }}</label>\n <input\n id=\"announcement-end-time\"\n v-model=\"announcement.endsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <Checkbox\n id=\"announcement-all-day\"\n v-model=\"announcement.allDay\"\n :disabled=\"disabled\"\n />\n <label for=\"announcement-all-day\">{{ $t('announcements.all_day_prompt') }}</label>\n </span>\n </div>\n</template>\n\n<script src=\"./announcement_editor.js\"></script>\n\n<style lang=\"scss\">\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n</style>\n","import Checkbox from '../checkbox/checkbox.vue'\n\nconst AnnouncementEditor = {\n components: {\n Checkbox\n },\n props: {\n announcement: Object,\n disabled: Boolean\n }\n}\n\nexport default AnnouncementEditor\n","import { render } from \"./announcement_editor.vue?vue&type=template&id=357f0d7c\"\nimport script from \"./announcement_editor.js?vue&type=script&lang=js\"\nexport * from \"./announcement_editor.js?vue&type=script&lang=js\"\n\nimport \"./announcement_editor.vue?vue&type=style&index=0&id=357f0d7c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\nimport RichContent from '../rich_content/rich_content.jsx'\nimport localeService from '../../services/locale/locale.service.js'\n\nconst Announcement = {\n components: {\n AnnouncementEditor,\n RichContent\n },\n data () {\n return {\n editing: false,\n editedAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: undefined\n },\n editError: ''\n }\n },\n props: {\n announcement: Object\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n canEditAnnouncement () {\n return this.currentUser && this.currentUser.privileges.includes('announcements_manage_announcements')\n },\n content () {\n return this.announcement.content\n },\n isRead () {\n return this.announcement.read\n },\n publishedAt () {\n const time = this.announcement.published_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n startsAt () {\n const time = this.announcement.starts_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n endsAt () {\n const time = this.announcement.ends_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n inactive () {\n return this.announcement.inactive\n }\n },\n methods: {\n markAsRead () {\n if (!this.isRead) {\n return this.$store.dispatch('markAnnouncementAsRead', this.announcement.id)\n }\n },\n deleteAnnouncement () {\n return this.$store.dispatch('deleteAnnouncement', this.announcement.id)\n },\n formatTimeOrDate (time, locale) {\n const d = new Date(time)\n return this.announcement.all_day ? d.toLocaleDateString(locale) : d.toLocaleString(locale)\n },\n enterEditMode () {\n this.editedAnnouncement.content = this.announcement.pleroma.raw_content\n this.editedAnnouncement.startsAt = this.announcement.starts_at\n this.editedAnnouncement.endsAt = this.announcement.ends_at\n this.editedAnnouncement.allDay = this.announcement.all_day\n this.editing = true\n },\n submitEdit () {\n this.$store.dispatch('editAnnouncement', {\n id: this.announcement.id,\n ...this.editedAnnouncement\n })\n .then(() => {\n this.editing = false\n })\n .catch(error => {\n this.editError = error.error\n })\n },\n cancelEdit () {\n this.editing = false\n },\n clearError () {\n this.editError = undefined\n }\n }\n}\n\nexport default Announcement\n","import { mapState } from 'vuex'\nimport Announcement from '../announcement/announcement.vue'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\n\nconst AnnouncementsPage = {\n components: {\n Announcement,\n AnnouncementEditor\n },\n data () {\n return {\n newAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: false\n },\n posting: false,\n error: undefined\n }\n },\n mounted () {\n this.$store.dispatch('fetchAnnouncements')\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n announcements () {\n return this.$store.state.announcements.announcements\n },\n canPostAnnouncement () {\n return this.currentUser && this.currentUser.privileges.includes('announcements_manage_announcements')\n }\n },\n methods: {\n postAnnouncement () {\n this.posting = true\n this.$store.dispatch('postAnnouncement', this.newAnnouncement)\n .then(() => {\n this.newAnnouncement.content = ''\n this.startsAt = undefined\n this.endsAt = undefined\n })\n .catch(error => {\n this.error = error.error\n })\n .finally(() => {\n this.posting = false\n })\n },\n clearError () {\n this.error = undefined\n }\n }\n}\n\nexport default AnnouncementsPage\n","import { render } from \"./announcement.vue?vue&type=template&id=c07fccd0\"\nimport script from \"./announcement.js?vue&type=script&lang=js\"\nexport * from \"./announcement.js?vue&type=script&lang=js\"\n\nimport \"./announcement.vue?vue&type=style&index=0&id=c07fccd0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./announcements_page.vue?vue&type=template&id=33196ec2\"\nimport script from \"./announcements_page.js?vue&type=script&lang=js\"\nexport * from \"./announcements_page.js?vue&type=script&lang=js\"\n\nimport \"./announcements_page.vue?vue&type=style&index=0&id=33196ec2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import PublicTimeline from 'components/public_timeline/public_timeline.vue'\nimport PublicAndExternalTimeline from 'components/public_and_external_timeline/public_and_external_timeline.vue'\nimport FriendsTimeline from 'components/friends_timeline/friends_timeline.vue'\nimport TagTimeline from 'components/tag_timeline/tag_timeline.vue'\nimport BookmarkTimeline from 'components/bookmark_timeline/bookmark_timeline.vue'\nimport ConversationPage from 'components/conversation-page/conversation-page.vue'\nimport Interactions from 'components/interactions/interactions.vue'\nimport DMs from 'components/dm_timeline/dm_timeline.vue'\nimport ChatList from 'components/chat_list/chat_list.vue'\nimport Chat from 'components/chat/chat.vue'\nimport UserProfile from 'components/user_profile/user_profile.vue'\nimport Search from 'components/search/search.vue'\nimport Registration from 'components/registration/registration.vue'\nimport PasswordReset from 'components/password_reset/password_reset.vue'\nimport FollowRequests from 'components/follow_requests/follow_requests.vue'\nimport OAuthCallback from 'components/oauth_callback/oauth_callback.vue'\nimport Notifications from 'components/notifications/notifications.vue'\nimport AuthForm from 'components/auth_form/auth_form.js'\nimport ShoutPanel from 'components/shout_panel/shout_panel.vue'\nimport WhoToFollow from 'components/who_to_follow/who_to_follow.vue'\nimport About from 'components/about/about.vue'\nimport RemoteUserResolver from 'components/remote_user_resolver/remote_user_resolver.vue'\nimport Lists from 'components/lists/lists.vue'\nimport ListsTimeline from 'components/lists_timeline/lists_timeline.vue'\nimport ListsEdit from 'components/lists_edit/lists_edit.vue'\nimport NavPanel from 'src/components/nav_panel/nav_panel.vue'\nimport AnnouncementsPage from 'components/announcements_page/announcements_page.vue'\n\nexport default (store) => {\n const validateAuthenticatedRoute = (to, from, next) => {\n if (store.state.users.currentUser) {\n next()\n } else {\n next(store.state.instance.redirectRootNoLogin || '/main/all')\n }\n }\n\n let routes = [\n {\n name: 'root',\n path: '/',\n redirect: _to => {\n return (store.state.users.currentUser\n ? store.state.instance.redirectRootLogin\n : store.state.instance.redirectRootNoLogin) || '/main/all'\n }\n },\n { name: 'public-external-timeline', path: '/main/all', component: PublicAndExternalTimeline },\n { name: 'public-timeline', path: '/main/public', component: PublicTimeline },\n { name: 'friends', path: '/main/friends', component: FriendsTimeline, beforeEnter: validateAuthenticatedRoute },\n { name: 'tag-timeline', path: '/tag/:tag', component: TagTimeline },\n { name: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },\n { name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },\n {\n name: 'remote-user-profile-acct',\n path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)',\n component: RemoteUserResolver,\n beforeEnter: validateAuthenticatedRoute\n },\n {\n name: 'remote-user-profile',\n path: '/remote-users/:hostname/:username',\n component: RemoteUserResolver,\n beforeEnter: validateAuthenticatedRoute\n },\n { name: 'external-user-profile', path: '/users/$:id', component: UserProfile },\n { name: 'interactions', path: '/users/:username/interactions', component: Interactions, beforeEnter: validateAuthenticatedRoute },\n { name: 'dms', path: '/users/:username/dms', component: DMs, beforeEnter: validateAuthenticatedRoute },\n { name: 'registration', path: '/registration', component: Registration },\n { name: 'password-reset', path: '/password-reset', component: PasswordReset, props: true },\n { name: 'registration-token', path: '/registration/:token', component: Registration },\n { name: 'friend-requests', path: '/friend-requests', component: FollowRequests, beforeEnter: validateAuthenticatedRoute },\n { name: 'notifications', path: '/:username/notifications', component: Notifications, props: () => ({ disableTeleport: true }), beforeEnter: validateAuthenticatedRoute },\n { name: 'login', path: '/login', component: AuthForm },\n { name: 'shout-panel', path: '/shout-panel', component: ShoutPanel, props: () => ({ floating: false }) },\n { name: 'oauth-callback', path: '/oauth-callback', component: OAuthCallback, props: (route) => ({ code: route.query.code }) },\n { name: 'search', path: '/search', component: Search, props: (route) => ({ query: route.query.query }) },\n { name: 'who-to-follow', path: '/who-to-follow', component: WhoToFollow, beforeEnter: validateAuthenticatedRoute },\n { name: 'about', path: '/about', component: About },\n { name: 'announcements', path: '/announcements', component: AnnouncementsPage },\n { name: 'user-profile', path: '/users/:name', component: UserProfile },\n { name: 'legacy-user-profile', path: '/:name', component: UserProfile },\n { name: 'lists', path: '/lists', component: Lists },\n { name: 'lists-timeline', path: '/lists/:id', component: ListsTimeline },\n { name: 'lists-edit', path: '/lists/:id/edit', component: ListsEdit },\n { name: 'lists-new', path: '/lists/new', component: ListsEdit },\n { name: 'edit-navigation', path: '/nav-edit', component: NavPanel, props: () => ({ forceExpand: true, forceEditMode: true }), beforeEnter: validateAuthenticatedRoute }\n ]\n\n if (store.state.instance.pleromaChatMessagesAvailable) {\n routes = routes.concat([\n { name: 'chat', path: '/users/:username/chats/:recipient_id', component: Chat, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute },\n { name: 'chats', path: '/users/:username/chats', component: ChatList, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute }\n ])\n }\n\n return routes\n}\n","import * as bodyScrollLock from 'body-scroll-lock'\n\nlet previousNavPaddingRight\nlet previousAppBgWrapperRight\nconst lockerEls = new Set([])\n\nconst disableBodyScroll = (el) => {\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth\n bodyScrollLock.disableBodyScroll(el, {\n reserveScrollBarGap: true\n })\n lockerEls.add(el)\n setTimeout(() => {\n if (lockerEls.size <= 1) {\n // If previousNavPaddingRight is already set, don't set it again.\n if (previousNavPaddingRight === undefined) {\n const navEl = document.getElementById('nav')\n previousNavPaddingRight = window.getComputedStyle(navEl).getPropertyValue('padding-right')\n navEl.style.paddingRight = previousNavPaddingRight ? `calc(${previousNavPaddingRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n }\n // If previousAppBgWrapeprRight is already set, don't set it again.\n if (previousAppBgWrapperRight === undefined) {\n const appBgWrapperEl = document.getElementById('app_bg_wrapper')\n previousAppBgWrapperRight = window.getComputedStyle(appBgWrapperEl).getPropertyValue('right')\n appBgWrapperEl.style.right = previousAppBgWrapperRight ? `calc(${previousAppBgWrapperRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n }\n document.body.classList.add('scroll-locked')\n }\n })\n}\n\nconst enableBodyScroll = (el) => {\n lockerEls.delete(el)\n setTimeout(() => {\n if (lockerEls.size === 0) {\n if (previousNavPaddingRight !== undefined) {\n document.getElementById('nav').style.paddingRight = previousNavPaddingRight\n // Restore previousNavPaddingRight to undefined so disableBodyScroll knows it can be set again.\n previousNavPaddingRight = undefined\n }\n if (previousAppBgWrapperRight !== undefined) {\n document.getElementById('app_bg_wrapper').style.right = previousAppBgWrapperRight\n // Restore previousAppBgWrapperRight to undefined so disableBodyScroll knows it can be set again.\n previousAppBgWrapperRight = undefined\n }\n document.body.classList.remove('scroll-locked')\n }\n })\n bodyScrollLock.enableBodyScroll(el)\n}\n\nconst directive = {\n mounted: (el, binding) => {\n if (binding.value) {\n disableBodyScroll(el)\n }\n },\n updated: (el, binding) => {\n if (binding.oldValue === binding.value) {\n return\n }\n\n if (binding.value) {\n disableBodyScroll(el)\n } else {\n enableBodyScroll(el)\n }\n },\n unmounted: (el) => {\n enableBodyScroll(el)\n }\n}\n\nexport default (Vue) => {\n Vue.directive('body-scroll-lock', directive)\n}\n","import { createApp } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport vClickOutside from 'click-outside-vue3'\nimport VueVirtualScroller from 'vue-virtual-scroller'\nimport 'vue-virtual-scroller/dist/vue-virtual-scroller.css'\n\nimport { FontAwesomeIcon, FontAwesomeLayers } from '@fortawesome/vue-fontawesome'\n\nimport App from '../App.vue'\nimport routes from './routes'\nimport VBodyScrollLock from 'src/directives/body_scroll_lock'\n\nimport { windowWidth, windowHeight } from '../services/window_utils/window_utils'\nimport { getOrCreateApp, getClientToken } from '../services/new_api/oauth.js'\nimport backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport { applyTheme, applyConfig } from '../services/style_setter/style_setter.js'\nimport FaviconService from '../services/favicon_service/favicon_service.js'\n\nlet staticInitialResults = null\n\nconst parsedInitialResults = () => {\n if (!document.getElementById('initial-results')) {\n return null\n }\n if (!staticInitialResults) {\n staticInitialResults = JSON.parse(document.getElementById('initial-results').textContent)\n }\n return staticInitialResults\n}\n\nconst decodeUTF8Base64 = (data) => {\n const rawData = atob(data)\n const array = Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n const text = new TextDecoder().decode(array)\n return text\n}\n\nconst preloadFetch = async (request) => {\n const data = parsedInitialResults()\n if (!data || !data[request]) {\n return window.fetch(request)\n }\n const decoded = decodeUTF8Base64(data[request])\n const requestData = JSON.parse(decoded)\n return {\n ok: true,\n json: () => requestData,\n text: () => requestData\n }\n}\n\nconst getInstanceConfig = async ({ store }) => {\n try {\n const res = await preloadFetch('/api/v1/instance')\n if (res.ok) {\n const data = await res.json()\n const textlimit = data.max_toot_chars\n const vapidPublicKey = data.pleroma.vapid_public_key\n\n store.dispatch('setInstanceOption', { name: 'textlimit', value: textlimit })\n store.dispatch('setInstanceOption', { name: 'accountApprovalRequired', value: data.approval_required })\n store.dispatch('setInstanceOption', { name: 'birthdayRequired', value: !!data.pleroma.metadata.birthday_required })\n store.dispatch('setInstanceOption', { name: 'birthdayMinAge', value: data.pleroma.metadata.birthday_min_age || 0 })\n\n if (vapidPublicKey) {\n store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })\n }\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load instance config, potentially fatal')\n console.error(error)\n }\n}\n\nconst getBackendProvidedConfig = async ({ store }) => {\n try {\n const res = await window.fetch('/api/pleroma/frontend_configurations')\n if (res.ok) {\n const data = await res.json()\n return data.pleroma_fe\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load backend-provided frontend config, potentially fatal')\n console.error(error)\n }\n}\n\nconst getStaticConfig = async () => {\n try {\n const res = await window.fetch('/static/config.json')\n if (res.ok) {\n return res.json()\n } else {\n throw (res)\n }\n } catch (error) {\n console.warn('Failed to load static/config.json, continuing without it.')\n console.warn(error)\n return {}\n }\n}\n\nconst setSettings = async ({ apiConfig, staticConfig, store }) => {\n const overrides = window.___pleromafe_dev_overrides || {}\n const env = window.___pleromafe_mode.NODE_ENV\n\n // This takes static config and overrides properties that are present in apiConfig\n let config = {}\n if (overrides.staticConfigPreference && env === 'development') {\n console.warn('OVERRIDING API CONFIG WITH STATIC CONFIG')\n config = Object.assign({}, apiConfig, staticConfig)\n } else {\n config = Object.assign({}, staticConfig, apiConfig)\n }\n\n const copyInstanceOption = (name) => {\n store.dispatch('setInstanceOption', { name, value: config[name] })\n }\n\n copyInstanceOption('nsfwCensorImage')\n copyInstanceOption('background')\n copyInstanceOption('hidePostStats')\n copyInstanceOption('hideBotIndication')\n copyInstanceOption('hideUserStats')\n copyInstanceOption('hideFilteredStatuses')\n copyInstanceOption('logo')\n\n store.dispatch('setInstanceOption', {\n name: 'logoMask',\n value: typeof config.logoMask === 'undefined'\n ? true\n : config.logoMask\n })\n\n store.dispatch('setInstanceOption', {\n name: 'logoMargin',\n value: typeof config.logoMargin === 'undefined'\n ? 0\n : config.logoMargin\n })\n copyInstanceOption('logoLeft')\n store.commit('authFlow/setInitialStrategy', config.loginMethod)\n\n copyInstanceOption('redirectRootNoLogin')\n copyInstanceOption('redirectRootLogin')\n copyInstanceOption('showInstanceSpecificPanel')\n copyInstanceOption('minimalScopesMode')\n copyInstanceOption('hideMutedPosts')\n copyInstanceOption('collapseMessageWithSubject')\n copyInstanceOption('scopeCopy')\n copyInstanceOption('subjectLineBehavior')\n copyInstanceOption('postContentType')\n copyInstanceOption('alwaysShowSubjectInput')\n copyInstanceOption('showFeaturesPanel')\n copyInstanceOption('hideSitename')\n copyInstanceOption('sidebarRight')\n\n return store.dispatch('setTheme', config.theme)\n}\n\nconst getTOS = async ({ store }) => {\n try {\n const res = await window.fetch('/static/terms-of-service.html')\n if (res.ok) {\n const html = await res.text()\n store.dispatch('setInstanceOption', { name: 'tos', value: html })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load TOS\")\n console.warn(e)\n }\n}\n\nconst getInstancePanel = async ({ store }) => {\n try {\n const res = await preloadFetch('/instance/panel.html')\n if (res.ok) {\n const html = await res.text()\n store.dispatch('setInstanceOption', { name: 'instanceSpecificPanelContent', value: html })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load instance panel\")\n console.warn(e)\n }\n}\n\nconst getStickers = async ({ store }) => {\n try {\n const res = await window.fetch('/static/stickers.json')\n if (res.ok) {\n const values = await res.json()\n const stickers = (await Promise.all(\n Object.entries(values).map(async ([name, path]) => {\n const resPack = await window.fetch(path + 'pack.json')\n let meta = {}\n if (resPack.ok) {\n meta = await resPack.json()\n }\n return {\n pack: name,\n path,\n meta\n }\n })\n )).sort((a, b) => {\n return a.meta.title.localeCompare(b.meta.title)\n })\n store.dispatch('setInstanceOption', { name: 'stickers', value: stickers })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load stickers\")\n console.warn(e)\n }\n}\n\nconst getAppSecret = async ({ store }) => {\n const { state, commit } = store\n const { oauth, instance } = state\n return getOrCreateApp({ ...oauth, instance: instance.server, commit })\n .then((app) => getClientToken({ ...app, instance: instance.server }))\n .then((token) => {\n commit('setAppToken', token.access_token)\n commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n })\n}\n\nconst resolveStaffAccounts = ({ store, accounts }) => {\n const nicknames = accounts.map(uri => uri.split('/').pop())\n store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })\n}\n\nconst getNodeInfo = async ({ store }) => {\n try {\n const res = await preloadFetch('/nodeinfo/2.0.json')\n if (res.ok) {\n const data = await res.json()\n const metadata = data.metadata\n const features = metadata.features\n store.dispatch('setInstanceOption', { name: 'name', value: metadata.nodeName })\n store.dispatch('setInstanceOption', { name: 'registrationOpen', value: data.openRegistrations })\n store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') })\n store.dispatch('setInstanceOption', { name: 'safeDM', value: features.includes('safe_dm_mentions') })\n store.dispatch('setInstanceOption', { name: 'shoutAvailable', value: features.includes('chat') })\n store.dispatch('setInstanceOption', { name: 'pleromaChatMessagesAvailable', value: features.includes('pleroma_chat_messages') })\n store.dispatch('setInstanceOption', { name: 'gopherAvailable', value: features.includes('gopher') })\n store.dispatch('setInstanceOption', { name: 'pollsAvailable', value: features.includes('polls') })\n store.dispatch('setInstanceOption', { name: 'editingAvailable', value: features.includes('editing') })\n store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })\n store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })\n\n const uploadLimits = metadata.uploadLimits\n store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) })\n store.dispatch('setInstanceOption', { name: 'avatarlimit', value: parseInt(uploadLimits.avatar) })\n store.dispatch('setInstanceOption', { name: 'backgroundlimit', value: parseInt(uploadLimits.background) })\n store.dispatch('setInstanceOption', { name: 'bannerlimit', value: parseInt(uploadLimits.banner) })\n store.dispatch('setInstanceOption', { name: 'fieldsLimits', value: metadata.fieldsLimits })\n\n store.dispatch('setInstanceOption', { name: 'restrictedNicknames', value: metadata.restrictedNicknames })\n store.dispatch('setInstanceOption', { name: 'postFormats', value: metadata.postFormats })\n\n const suggestions = metadata.suggestions\n store.dispatch('setInstanceOption', { name: 'suggestionsEnabled', value: suggestions.enabled })\n store.dispatch('setInstanceOption', { name: 'suggestionsWeb', value: suggestions.web })\n\n const software = data.software\n store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })\n store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })\n\n const priv = metadata.private\n store.dispatch('setInstanceOption', { name: 'private', value: priv })\n\n const frontendVersion = window.___pleromafe_commit_hash\n store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion })\n\n const federation = metadata.federation\n\n store.dispatch('setInstanceOption', {\n name: 'tagPolicyAvailable',\n value: typeof federation.mrf_policies === 'undefined'\n ? false\n : metadata.federation.mrf_policies.includes('TagPolicy')\n })\n\n store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation })\n store.dispatch('setInstanceOption', {\n name: 'federating',\n value: typeof federation.enabled === 'undefined'\n ? true\n : federation.enabled\n })\n\n const accountActivationRequired = metadata.accountActivationRequired\n store.dispatch('setInstanceOption', { name: 'accountActivationRequired', value: accountActivationRequired })\n\n const accounts = metadata.staffAccounts\n resolveStaffAccounts({ store, accounts })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn('Could not load nodeinfo')\n console.warn(e)\n }\n}\n\nconst setConfig = async ({ store }) => {\n // apiConfig, staticConfig\n const configInfos = await Promise.all([getBackendProvidedConfig({ store }), getStaticConfig()])\n const apiConfig = configInfos[0]\n const staticConfig = configInfos[1]\n\n await setSettings({ store, apiConfig, staticConfig }).then(getAppSecret({ store }))\n}\n\nconst checkOAuthToken = async ({ store }) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n if (store.getters.getUserToken()) {\n try {\n await store.dispatch('loginUser', store.getters.getUserToken())\n } catch (e) {\n console.error(e)\n }\n }\n resolve()\n })\n}\n\nconst afterStoreSetup = async ({ store, i18n }) => {\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n\n FaviconService.initFaviconService()\n\n const overrides = window.___pleromafe_dev_overrides || {}\n const server = (typeof overrides.target !== 'undefined') ? overrides.target : window.location.origin\n store.dispatch('setInstanceOption', { name: 'server', value: server })\n\n await setConfig({ store })\n\n const { customTheme, customThemeSource } = store.state.config\n const { theme } = store.state.instance\n const customThemePresent = customThemeSource || customTheme\n\n if (customThemePresent) {\n if (customThemeSource && customThemeSource.themeEngineVersion === CURRENT_VERSION) {\n applyTheme(customThemeSource)\n } else {\n applyTheme(customTheme)\n }\n } else if (theme) {\n // do nothing, it will load asynchronously\n } else {\n console.error('Failed to load any theme!')\n }\n\n applyConfig(store.state.config)\n\n // Now we can try getting the server settings and logging in\n // Most of these are preloaded into the index.html so blocking is minimized\n await Promise.all([\n checkOAuthToken({ store }),\n getInstancePanel({ store }),\n getNodeInfo({ store }),\n getInstanceConfig({ store })\n ])\n\n // Start fetching things that don't need to block the UI\n store.dispatch('fetchMutes')\n store.dispatch('startFetchingAnnouncements')\n getTOS({ store })\n getStickers({ store })\n\n const router = createRouter({\n history: createWebHistory(),\n routes: routes(store),\n scrollBehavior: (to, _from, savedPosition) => {\n if (to.matched.some(m => m.meta.dontScroll)) {\n return false\n }\n return savedPosition || { left: 0, top: 0 }\n }\n })\n\n const app = createApp(App)\n\n app.use(router)\n app.use(store)\n app.use(i18n)\n\n app.use(vClickOutside)\n app.use(VBodyScrollLock)\n app.use(VueVirtualScroller)\n\n app.component('FAIcon', FontAwesomeIcon)\n app.component('FALayers', FontAwesomeLayers)\n\n // remove after vue 3.3\n app.config.unwrapInjectedRef = true\n\n app.mount('#app')\n\n return app\n}\n\nexport default afterStoreSetup\n","import { createStore } from 'vuex'\n\nimport 'custom-event-polyfill'\nimport './lib/event_target_polyfill.js'\n\nimport interfaceModule from './modules/interface.js'\nimport instanceModule from './modules/instance.js'\nimport statusesModule from './modules/statuses.js'\nimport listsModule from './modules/lists.js'\nimport usersModule from './modules/users.js'\nimport apiModule from './modules/api.js'\nimport configModule from './modules/config.js'\nimport serverSideConfigModule from './modules/serverSideConfig.js'\nimport serverSideStorageModule from './modules/serverSideStorage.js'\nimport shoutModule from './modules/shout.js'\nimport oauthModule from './modules/oauth.js'\nimport authFlowModule from './modules/auth_flow.js'\nimport mediaViewerModule from './modules/media_viewer.js'\nimport oauthTokensModule from './modules/oauth_tokens.js'\nimport reportsModule from './modules/reports.js'\nimport pollsModule from './modules/polls.js'\nimport postStatusModule from './modules/postStatus.js'\nimport editStatusModule from './modules/editStatus.js'\nimport statusHistoryModule from './modules/statusHistory.js'\n\nimport chatsModule from './modules/chats.js'\nimport announcementsModule from './modules/announcements.js'\n\nimport { createI18n } from 'vue-i18n'\n\nimport createPersistedState from './lib/persisted_state.js'\nimport pushNotifications from './lib/push_notifications_plugin.js'\n\nimport messages from './i18n/messages.js'\n\nimport afterStoreSetup from './boot/after_store.js'\n\nconst currentLocale = (window.navigator.language || 'en').split('-')[0]\n\nconst i18n = createI18n({\n // By default, use the browser locale, we will update it if neccessary\n locale: 'en',\n fallbackLocale: 'en',\n messages: messages.default\n})\n\nmessages.setLanguage(i18n, currentLocale)\n\nconst persistedStateOptions = {\n paths: [\n 'serverSideStorage.cache',\n 'config',\n 'users.lastLoginName',\n 'oauth'\n ]\n};\n\n(async () => {\n let storageError = false\n const plugins = [pushNotifications]\n try {\n const persistedState = await createPersistedState(persistedStateOptions)\n plugins.push(persistedState)\n } catch (e) {\n console.error(e)\n storageError = true\n }\n const store = createStore({\n modules: {\n i18n: {\n getters: {\n i18n: () => i18n.global\n }\n },\n interface: interfaceModule,\n instance: instanceModule,\n // TODO refactor users/statuses modules, they depend on each other\n users: usersModule,\n statuses: statusesModule,\n lists: listsModule,\n api: apiModule,\n config: configModule,\n serverSideConfig: serverSideConfigModule,\n serverSideStorage: serverSideStorageModule,\n shout: shoutModule,\n oauth: oauthModule,\n authFlow: authFlowModule,\n mediaViewer: mediaViewerModule,\n oauthTokens: oauthTokensModule,\n reports: reportsModule,\n polls: pollsModule,\n postStatus: postStatusModule,\n editStatus: editStatusModule,\n statusHistory: statusHistoryModule,\n chats: chatsModule,\n announcements: announcementsModule\n },\n plugins,\n strict: false // Socket modifies itself, let's ignore this for now.\n // strict: process.env.NODE_ENV !== 'production'\n })\n if (storageError) {\n store.dispatch('pushGlobalNotice', { messageKey: 'errors.storage_unavailable', level: 'error' })\n }\n afterStoreSetup({ store, i18n })\n})()\n\n// These are inlined by webpack's DefinePlugin\n/* eslint-disable */\nwindow.___pleromafe_mode = process.env\nwindow.___pleromafe_commit_hash = COMMIT_HASH\nwindow.___pleromafe_dev_overrides = DEV_OVERRIDES\n","import Cookies from 'js-cookie'\nimport { setPreset, applyTheme, applyConfig } from '../services/style_setter/style_setter.js'\nimport messages from '../i18n/messages'\nimport localeService from '../services/locale/locale.service.js'\n\nconst BACKEND_LANGUAGE_COOKIE_NAME = 'userLanguage'\n\nconst browserLocale = (window.navigator.language || 'en').split('-')[0]\n\n/* TODO this is a bit messy.\n * We need to declare settings with their types and also deal with\n * instance-default settings in some way, hopefully try to avoid copy-pasta\n * in general.\n */\nexport const multiChoiceProperties = [\n 'postContentType',\n 'subjectLineBehavior',\n 'conversationDisplay', // tree | linear\n 'conversationOtherRepliesButton', // below | inside\n 'mentionLinkDisplay', // short | full_for_remote | full\n 'userPopoverAvatarAction' // close | zoom | open\n]\n\nexport const defaultState = {\n expertLevel: 0, // used to track which settings to show and hide\n colors: {},\n theme: undefined,\n customTheme: undefined,\n customThemeSource: undefined,\n hideISP: false,\n hideInstanceWallpaper: false,\n hideShoutbox: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: undefined, // instance default\n hideMutedThreads: undefined, // instance default\n hideWordFilteredPosts: undefined, // instance default\n muteBotStatuses: undefined, // instance default\n collapseMessageWithSubject: undefined, // instance default\n padEmoji: true,\n hideAttachments: false,\n hideAttachmentsInConv: false,\n maxThumbnails: 16,\n hideNsfw: true,\n preloadImage: true,\n loopVideo: true,\n loopVideoSilentOnly: true,\n streaming: false,\n emojiReactionsOnTimeline: true,\n alwaysShowNewPostButton: false,\n autohideFloatingPostButton: false,\n pauseOnUnfocused: true,\n stopGifs: true,\n replyVisibility: 'all',\n thirdColumnMode: 'notifications',\n notificationVisibility: {\n follows: true,\n mentions: true,\n likes: true,\n repeats: true,\n moves: true,\n emojiReactions: true,\n followRequest: true,\n reports: true,\n chatMention: true,\n polls: true\n },\n webPushNotifications: false,\n muteWords: [],\n highlight: {},\n interfaceLanguage: browserLocale,\n hideScopeNotice: false,\n useStreamingApi: false,\n sidebarRight: undefined, // instance default\n scopeCopy: undefined, // instance default\n subjectLineBehavior: undefined, // instance default\n alwaysShowSubjectInput: undefined, // instance default\n postContentType: undefined, // instance default\n minimalScopesMode: undefined, // instance default\n // This hides statuses filtered via a word filter\n hideFilteredStatuses: undefined, // instance default\n modalOnRepeat: undefined, // instance default\n modalOnUnfollow: undefined, // instance default\n modalOnBlock: undefined, // instance default\n modalOnMute: undefined, // instance default\n modalOnDelete: undefined, // instance default\n modalOnLogout: undefined, // instance default\n modalOnApproveFollow: undefined, // instance default\n modalOnDenyFollow: undefined, // instance default\n modalOnRemoveUserFromFollowers: undefined, // instance default\n playVideosInModal: false,\n useOneClickNsfw: false,\n useContainFit: true,\n disableStickyHeaders: false,\n showScrollbars: false,\n userPopoverAvatarAction: 'open',\n userPopoverOverlay: false,\n sidebarColumnWidth: '25rem',\n contentColumnWidth: '45rem',\n notifsColumnWidth: '25rem',\n navbarColumnStretch: false,\n greentext: undefined, // instance default\n useAtIcon: undefined, // instance default\n mentionLinkDisplay: undefined, // instance default\n mentionLinkShowTooltip: undefined, // instance default\n mentionLinkShowAvatar: undefined, // instance default\n mentionLinkFadeDomain: undefined, // instance default\n mentionLinkShowYous: undefined, // instance default\n mentionLinkBoldenYou: undefined, // instance default\n hidePostStats: undefined, // instance default\n hideBotIndication: undefined, // instance default\n hideUserStats: undefined, // instance default\n virtualScrolling: undefined, // instance default\n sensitiveByDefault: undefined, // instance default\n conversationDisplay: undefined, // instance default\n conversationTreeAdvanced: undefined, // instance default\n conversationOtherRepliesButton: undefined, // instance default\n conversationTreeFadeAncestors: undefined, // instance default\n maxDepthInThread: undefined // instance default\n}\n\n// caching the instance default properties\nexport const instanceDefaultProperties = Object.entries(defaultState)\n .filter(([key, value]) => value === undefined)\n .map(([key, value]) => key)\n\nconst config = {\n state: { ...defaultState },\n getters: {\n defaultConfig (state, getters, rootState, rootGetters) {\n const { instance } = rootState\n return {\n ...defaultState,\n ...Object.fromEntries(\n instanceDefaultProperties.map(key => [key, instance[key]])\n )\n }\n },\n mergedConfig (state, getters, rootState, rootGetters) {\n const { defaultConfig } = rootGetters\n return {\n ...defaultConfig,\n // Do not override with undefined\n ...Object.fromEntries(Object.entries(state).filter(([k, v]) => v !== undefined))\n }\n }\n },\n mutations: {\n setOption (state, { name, value }) {\n state[name] = value\n },\n setHighlight (state, { user, color, type }) {\n const data = this.state.config.highlight[user]\n if (color || type) {\n state.highlight[user] = { color: color || data.color, type: type || data.type }\n } else {\n delete state.highlight[user]\n }\n }\n },\n actions: {\n loadSettings ({ dispatch }, data) {\n const knownKeys = new Set(Object.keys(defaultState))\n const presentKeys = new Set(Object.keys(data))\n const intersection = new Set()\n for (const elem of presentKeys) {\n if (knownKeys.has(elem)) {\n intersection.add(elem)\n }\n }\n\n intersection.forEach(\n name => dispatch('setOption', { name, value: data[name] })\n )\n },\n setHighlight ({ commit, dispatch }, { user, color, type }) {\n commit('setHighlight', { user, color, type })\n },\n setOption ({ commit, dispatch, state }, { name, value }) {\n commit('setOption', { name, value })\n switch (name) {\n case 'theme':\n setPreset(value)\n break\n case 'sidebarColumnWidth':\n case 'contentColumnWidth':\n case 'notifsColumnWidth':\n applyConfig(state)\n break\n case 'customTheme':\n case 'customThemeSource':\n applyTheme(value)\n break\n case 'interfaceLanguage':\n messages.setLanguage(this.getters.i18n, value)\n dispatch('loadUnicodeEmojiData', value)\n Cookies.set(\n BACKEND_LANGUAGE_COOKIE_NAME,\n localeService.internalToBackendLocaleMulti(value)\n )\n break\n case 'thirdColumnMode':\n dispatch('setLayoutWidth', undefined)\n break\n }\n }\n }\n}\n\nexport default config\n","import { get, set } from 'lodash'\n\nconst defaultApi = ({ rootState, commit }, { path, value }) => {\n const params = {}\n set(params, path, value)\n return rootState\n .api\n .backendInteractor\n .updateProfile({ params })\n .then(result => {\n commit('addNewUsers', [result])\n commit('setCurrentUser', result)\n })\n}\n\nconst notificationsApi = ({ rootState, commit }, { path, value, oldValue }) => {\n const settings = {}\n set(settings, path, value)\n return rootState\n .api\n .backendInteractor\n .updateNotificationSettings({ settings })\n .then(result => {\n if (result.status === 'success') {\n commit('confirmServerSideOption', { name, value })\n } else {\n commit('confirmServerSideOption', { name, value: oldValue })\n }\n })\n}\n\n/**\n * Map that stores relation between path for reading (from user profile),\n * for writing (into API) an what API to use.\n *\n * Shorthand - instead of { get, set, api? } object it's possible to use string\n * in case default api is used and get = set\n *\n * If no api is specified, defaultApi is used (see above)\n */\nexport const settingsMap = {\n defaultScope: 'source.privacy',\n defaultNSFW: 'source.sensitive', // BROKEN: pleroma/pleroma#2837\n stripRichContent: {\n get: 'source.pleroma.no_rich_text',\n set: 'no_rich_text'\n },\n // Privacy\n locked: 'locked',\n acceptChatMessages: {\n get: 'pleroma.accepts_chat_messages',\n set: 'accepts_chat_messages'\n },\n allowFollowingMove: {\n get: 'pleroma.allow_following_move',\n set: 'allow_following_move'\n },\n discoverable: {\n get: 'source.pleroma.discoverable',\n set: 'discoverable'\n },\n hideFavorites: {\n get: 'pleroma.hide_favorites',\n set: 'hide_favorites'\n },\n hideFollowers: {\n get: 'pleroma.hide_followers',\n set: 'hide_followers'\n },\n hideFollows: {\n get: 'pleroma.hide_follows',\n set: 'hide_follows'\n },\n hideFollowersCount: {\n get: 'pleroma.hide_followers_count',\n set: 'hide_followers_count'\n },\n hideFollowsCount: {\n get: 'pleroma.hide_follows_count',\n set: 'hide_follows_count'\n },\n // NotificationSettingsAPIs\n webPushHideContents: {\n get: 'pleroma.notification_settings.hide_notification_contents',\n set: 'hide_notification_contents',\n api: notificationsApi\n },\n blockNotificationsFromStrangers: {\n get: 'pleroma.notification_settings.block_from_strangers',\n set: 'block_from_strangers',\n api: notificationsApi\n }\n}\n\nexport const defaultState = Object.fromEntries(Object.keys(settingsMap).map(key => [key, null]))\n\nconst serverSideConfig = {\n state: { ...defaultState },\n mutations: {\n confirmServerSideOption (state, { name, value }) {\n set(state, name, value)\n },\n wipeServerSideOption (state, { name }) {\n set(state, name, null)\n },\n wipeAllServerSideOptions (state) {\n Object.keys(settingsMap).forEach(key => {\n set(state, key, null)\n })\n },\n // Set the settings based on their path location\n setCurrentUser (state, user) {\n Object.entries(settingsMap).forEach((map) => {\n const [name, value] = map\n const { get: path = value } = value\n set(state, name, get(user._original, path))\n })\n }\n },\n actions: {\n setServerSideOption ({ rootState, state, commit, dispatch }, { name, value }) {\n const oldValue = get(state, name)\n const map = settingsMap[name]\n if (!map) throw new Error('Invalid server-side setting')\n const { set: path = map, api = defaultApi } = map\n commit('wipeServerSideOption', { name })\n\n api({ rootState, commit }, { path, value, oldValue })\n .catch((e) => {\n console.warn('Error setting server-side option:', e)\n commit('confirmServerSideOption', { name, value: oldValue })\n })\n },\n logout ({ commit }) {\n commit('wipeAllServerSideOptions')\n }\n }\n}\n\nexport default serverSideConfig\n","import { humanizeErrors } from '../../modules/errors'\n\nexport function StatusCodeError (statusCode, body, options, response) {\n this.name = 'StatusCodeError'\n this.statusCode = statusCode\n this.message = statusCode + ' - ' + (JSON && JSON.stringify ? JSON.stringify(body) : body)\n this.error = body // legacy attribute\n this.options = options\n this.response = response\n\n if (Error.captureStackTrace) { // required for non-V8 environments\n Error.captureStackTrace(this)\n }\n}\nStatusCodeError.prototype = Object.create(Error.prototype)\nStatusCodeError.prototype.constructor = StatusCodeError\n\nexport class RegistrationError extends Error {\n constructor (error) {\n super()\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this)\n }\n\n try {\n // the error is probably a JSON object with a single key, \"errors\", whose value is another JSON object containing the real errors\n if (typeof error === 'string') {\n error = JSON.parse(error)\n // eslint-disable-next-line\n if (error.hasOwnProperty('error')) {\n error = JSON.parse(error.error)\n }\n }\n\n if (typeof error === 'object') {\n const errorContents = JSON.parse(error.error)\n // keys will have the property that has the error, for example 'ap_id',\n // 'email' or 'captcha', the value will be an array of its error\n // like \"ap_id\": [\"has been taken\"] or \"captcha\": [\"Invalid CAPTCHA\"]\n\n // replace ap_id with username\n if (errorContents.ap_id) {\n errorContents.username = errorContents.ap_id\n delete errorContents.ap_id\n }\n\n this.message = humanizeErrors(errorContents)\n } else {\n this.message = error\n }\n } catch (e) {\n // can't parse it, so just treat it like a string\n this.message = error\n }\n }\n}\n","import { capitalize } from 'lodash'\n\nexport function humanizeErrors (errors) {\n return Object.entries(errors).reduce((errs, [k, val]) => {\n const message = val.reduce((acc, message) => {\n const key = capitalize(k.replace(/_/g, ' '))\n return acc + [key, message].join(' ') + '. '\n }, '')\n return [...errs, message]\n }, [])\n}\n","import { each, map, concat, last, get } from 'lodash'\nimport { parseStatus, parseSource, parseUser, parseNotification, parseAttachment, parseChat, parseLinkHeaderPagination } from '../entity_normalizer/entity_normalizer.service.js'\nimport { RegistrationError, StatusCodeError } from '../errors/errors'\n\n/* eslint-env browser */\nconst MUTES_IMPORT_URL = '/api/pleroma/mutes_import'\nconst BLOCKS_IMPORT_URL = '/api/pleroma/blocks_import'\nconst FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'\nconst DELETE_ACCOUNT_URL = '/api/pleroma/delete_account'\nconst CHANGE_EMAIL_URL = '/api/pleroma/change_email'\nconst CHANGE_PASSWORD_URL = '/api/pleroma/change_password'\nconst MOVE_ACCOUNT_URL = '/api/pleroma/move_account'\nconst ALIASES_URL = '/api/pleroma/aliases'\nconst TAG_USER_URL = '/api/pleroma/admin/users/tag'\nconst PERMISSION_GROUP_URL = (screenName, right) => `/api/pleroma/admin/users/${screenName}/permission_group/${right}`\nconst ACTIVATE_USER_URL = '/api/pleroma/admin/users/activate'\nconst DEACTIVATE_USER_URL = '/api/pleroma/admin/users/deactivate'\nconst ADMIN_USERS_URL = '/api/pleroma/admin/users'\nconst SUGGESTIONS_URL = '/api/v1/suggestions'\nconst NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'\nconst NOTIFICATION_READ_URL = '/api/v1/pleroma/notifications/read'\n\nconst MFA_SETTINGS_URL = '/api/pleroma/accounts/mfa'\nconst MFA_BACKUP_CODES_URL = '/api/pleroma/accounts/mfa/backup_codes'\n\nconst MFA_SETUP_OTP_URL = '/api/pleroma/accounts/mfa/setup/totp'\nconst MFA_CONFIRM_OTP_URL = '/api/pleroma/accounts/mfa/confirm/totp'\nconst MFA_DISABLE_OTP_URL = '/api/pleroma/accounts/mfa/totp'\n\nconst MASTODON_LOGIN_URL = '/api/v1/accounts/verify_credentials'\nconst MASTODON_REGISTRATION_URL = '/api/v1/accounts'\nconst MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'\nconst MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications'\nconst MASTODON_DISMISS_NOTIFICATION_URL = id => `/api/v1/notifications/${id}/dismiss`\nconst MASTODON_FAVORITE_URL = id => `/api/v1/statuses/${id}/favourite`\nconst MASTODON_UNFAVORITE_URL = id => `/api/v1/statuses/${id}/unfavourite`\nconst MASTODON_RETWEET_URL = id => `/api/v1/statuses/${id}/reblog`\nconst MASTODON_UNRETWEET_URL = id => `/api/v1/statuses/${id}/unreblog`\nconst MASTODON_DELETE_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_FOLLOW_URL = id => `/api/v1/accounts/${id}/follow`\nconst MASTODON_UNFOLLOW_URL = id => `/api/v1/accounts/${id}/unfollow`\nconst MASTODON_FOLLOWING_URL = id => `/api/v1/accounts/${id}/following`\nconst MASTODON_FOLLOWERS_URL = id => `/api/v1/accounts/${id}/followers`\nconst MASTODON_FOLLOW_REQUESTS_URL = '/api/v1/follow_requests'\nconst MASTODON_APPROVE_USER_URL = id => `/api/v1/follow_requests/${id}/authorize`\nconst MASTODON_DENY_USER_URL = id => `/api/v1/follow_requests/${id}/reject`\nconst MASTODON_DIRECT_MESSAGES_TIMELINE_URL = '/api/v1/timelines/direct'\nconst MASTODON_PUBLIC_TIMELINE = '/api/v1/timelines/public'\nconst MASTODON_USER_HOME_TIMELINE_URL = '/api/v1/timelines/home'\nconst MASTODON_STATUS_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_STATUS_CONTEXT_URL = id => `/api/v1/statuses/${id}/context`\nconst MASTODON_STATUS_SOURCE_URL = id => `/api/v1/statuses/${id}/source`\nconst MASTODON_STATUS_HISTORY_URL = id => `/api/v1/statuses/${id}/history`\nconst MASTODON_USER_URL = '/api/v1/accounts'\nconst MASTODON_USER_LOOKUP_URL = '/api/v1/accounts/lookup'\nconst MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships'\nconst MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses`\nconst MASTODON_USER_IN_LISTS = id => `/api/v1/accounts/${id}/lists`\nconst MASTODON_LIST_URL = id => `/api/v1/lists/${id}`\nconst MASTODON_LIST_TIMELINE_URL = id => `/api/v1/timelines/list/${id}`\nconst MASTODON_LIST_ACCOUNTS_URL = id => `/api/v1/lists/${id}/accounts`\nconst MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`\nconst MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'\nconst MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'\nconst MASTODON_USER_MUTES_URL = '/api/v1/mutes/'\nconst MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`\nconst MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`\nconst MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`\nconst MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`\nconst MASTODON_REMOVE_USER_FROM_FOLLOWERS = id => `/api/v1/accounts/${id}/remove_from_followers`\nconst MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`\nconst MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`\nconst MASTODON_USER_NOTE_URL = id => `/api/v1/accounts/${id}/note`\nconst MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`\nconst MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`\nconst MASTODON_POST_STATUS_URL = '/api/v1/statuses'\nconst MASTODON_MEDIA_UPLOAD_URL = '/api/v1/media'\nconst MASTODON_VOTE_URL = id => `/api/v1/polls/${id}/votes`\nconst MASTODON_POLL_URL = id => `/api/v1/polls/${id}`\nconst MASTODON_STATUS_FAVORITEDBY_URL = id => `/api/v1/statuses/${id}/favourited_by`\nconst MASTODON_STATUS_REBLOGGEDBY_URL = id => `/api/v1/statuses/${id}/reblogged_by`\nconst MASTODON_PROFILE_UPDATE_URL = '/api/v1/accounts/update_credentials'\nconst MASTODON_REPORT_USER_URL = '/api/v1/reports'\nconst MASTODON_PIN_OWN_STATUS = id => `/api/v1/statuses/${id}/pin`\nconst MASTODON_UNPIN_OWN_STATUS = id => `/api/v1/statuses/${id}/unpin`\nconst MASTODON_MUTE_CONVERSATION = id => `/api/v1/statuses/${id}/mute`\nconst MASTODON_UNMUTE_CONVERSATION = id => `/api/v1/statuses/${id}/unmute`\nconst MASTODON_SEARCH_2 = '/api/v2/search'\nconst MASTODON_USER_SEARCH_URL = '/api/v1/accounts/search'\nconst MASTODON_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'\nconst MASTODON_LISTS_URL = '/api/v1/lists'\nconst MASTODON_STREAMING = '/api/v1/streaming'\nconst MASTODON_KNOWN_DOMAIN_LIST_URL = '/api/v1/instance/peers'\nconst MASTODON_ANNOUNCEMENTS_URL = '/api/v1/announcements'\nconst MASTODON_ANNOUNCEMENTS_DISMISS_URL = id => `/api/v1/announcements/${id}/dismiss`\nconst PLEROMA_EMOJI_REACTIONS_URL = id => `/api/v1/pleroma/statuses/${id}/reactions`\nconst PLEROMA_EMOJI_REACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_EMOJI_UNREACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_CHATS_URL = '/api/v1/pleroma/chats'\nconst PLEROMA_CHAT_URL = id => `/api/v1/pleroma/chats/by-account-id/${id}`\nconst PLEROMA_CHAT_MESSAGES_URL = id => `/api/v1/pleroma/chats/${id}/messages`\nconst PLEROMA_CHAT_READ_URL = id => `/api/v1/pleroma/chats/${id}/read`\nconst PLEROMA_DELETE_CHAT_MESSAGE_URL = (chatId, messageId) => `/api/v1/pleroma/chats/${chatId}/messages/${messageId}`\nconst PLEROMA_ADMIN_REPORTS = '/api/pleroma/admin/reports'\nconst PLEROMA_BACKUP_URL = '/api/v1/pleroma/backups'\nconst PLEROMA_ANNOUNCEMENTS_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\nconst PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\n\nconst oldfetch = window.fetch\n\nconst fetch = (url, options) => {\n options = options || {}\n const baseUrl = ''\n const fullUrl = baseUrl + url\n options.credentials = 'same-origin'\n return oldfetch(fullUrl, options)\n}\n\nconst promisedRequest = ({ method, url, params, payload, credentials, headers = {} }) => {\n const options = {\n method,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...headers\n }\n }\n if (params) {\n url += '?' + Object.entries(params)\n .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))\n .join('&')\n }\n if (payload) {\n options.body = JSON.stringify(payload)\n }\n if (credentials) {\n options.headers = {\n ...options.headers,\n ...authHeaders(credentials)\n }\n }\n return fetch(url, options)\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url, options }, response))\n }\n return resolve(json)\n })\n .catch((error) => {\n return reject(new StatusCodeError(response.status, error, { url, options }, response))\n })\n )\n })\n}\n\nconst updateNotificationSettings = ({ credentials, settings }) => {\n const form = new FormData()\n\n each(settings, (value, key) => {\n form.append(key, value)\n })\n\n return fetch(`${NOTIFICATION_SETTINGS_URL}?${new URLSearchParams(settings)}`, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst updateProfileImages = ({ credentials, avatar = null, avatarName = null, banner = null, background = null }) => {\n const form = new FormData()\n if (avatar !== null) {\n if (avatarName !== null) {\n form.append('avatar', avatar, avatarName)\n } else {\n form.append('avatar', avatar)\n }\n }\n if (banner !== null) form.append('header', banner)\n if (background !== null) form.append('pleroma_background_image', background)\n return fetch(MASTODON_PROFILE_UPDATE_URL, {\n headers: authHeaders(credentials),\n method: 'PATCH',\n body: form\n })\n .then((data) => data.json())\n .then((data) => {\n if (data.error) {\n throw new Error(data.error)\n }\n return parseUser(data)\n })\n}\n\nconst updateProfile = ({ credentials, params }) => {\n return promisedRequest({\n url: MASTODON_PROFILE_UPDATE_URL,\n method: 'PATCH',\n payload: params,\n credentials\n }).then((data) => parseUser(data))\n}\n\n// Params needed:\n// nickname\n// email\n// fullname\n// password\n// password_confirm\n//\n// Optional\n// bio\n// homepage\n// location\n// token\n// language\nconst register = ({ params, credentials }) => {\n const { nickname, ...rest } = params\n return fetch(MASTODON_REGISTRATION_URL, {\n method: 'POST',\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n nickname,\n locale: 'en_US',\n agreement: true,\n ...rest\n })\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return response.json().then((error) => { throw new RegistrationError(error) })\n }\n })\n}\n\nconst getCaptcha = () => fetch('/api/pleroma/captcha').then(resp => resp.json())\n\nconst authHeaders = (accessToken) => {\n if (accessToken) {\n return { Authorization: `Bearer ${accessToken}` }\n } else {\n return { }\n }\n}\n\nconst followUser = ({ id, credentials, ...options }) => {\n const url = MASTODON_FOLLOW_URL(id)\n const form = {}\n if (options.reblogs !== undefined) { form.reblogs = options.reblogs }\n return fetch(url, {\n body: JSON.stringify(form),\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst unfollowUser = ({ id, credentials }) => {\n const url = MASTODON_UNFOLLOW_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst fetchUserInLists = ({ id, credentials }) => {\n const url = MASTODON_USER_IN_LISTS(id)\n return fetch(url, {\n headers: authHeaders(credentials)\n }).then((data) => data.json())\n}\n\nconst pinOwnStatus = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_PIN_OWN_STATUS(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst unpinOwnStatus = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNPIN_OWN_STATUS(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst muteConversation = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_MUTE_CONVERSATION(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst unmuteConversation = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_CONVERSATION(id), credentials, method: 'POST' })\n .then((data) => parseStatus(data))\n}\n\nconst blockUser = ({ id, credentials }) => {\n return fetch(MASTODON_BLOCK_USER_URL(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst unblockUser = ({ id, credentials }) => {\n return fetch(MASTODON_UNBLOCK_USER_URL(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst removeUserFromFollowers = ({ id, credentials }) => {\n return fetch(MASTODON_REMOVE_USER_FROM_FOLLOWERS(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst editUserNote = ({ id, credentials, comment }) => {\n return promisedRequest({\n url: MASTODON_USER_NOTE_URL(id),\n credentials,\n payload: {\n comment\n },\n method: 'POST'\n })\n}\n\nconst approveUser = ({ id, credentials }) => {\n const url = MASTODON_APPROVE_USER_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst denyUser = ({ id, credentials }) => {\n const url = MASTODON_DENY_USER_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst fetchUser = ({ id, credentials }) => {\n const url = `${MASTODON_USER_URL}/${id}`\n return promisedRequest({ url, credentials })\n .then((data) => parseUser(data))\n}\n\nconst fetchUserByName = ({ name, credentials }) => {\n return promisedRequest({\n url: MASTODON_USER_LOOKUP_URL,\n credentials,\n params: { acct: name }\n })\n .then(data => data.id)\n .catch(error => {\n if (error && error.statusCode === 404) {\n // Either the backend does not support lookup endpoint,\n // or there is no user with such name. Fallback and treat name as id.\n return name\n } else {\n throw error\n }\n })\n .then(id => fetchUser({ id, credentials }))\n}\n\nconst fetchUserRelationship = ({ id, credentials }) => {\n const url = `${MASTODON_USER_RELATIONSHIPS_URL}/?id=${id}`\n return fetch(url, { headers: authHeaders(credentials) })\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url }, response))\n }\n return resolve(json)\n }))\n })\n}\n\nconst fetchFriends = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWING_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst exportFriends = ({ id, credentials }) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n let friends = []\n let more = true\n while (more) {\n const maxId = friends.length > 0 ? last(friends).id : undefined\n const users = await fetchFriends({ id, maxId, credentials })\n friends = concat(friends, users)\n if (users.length === 0) {\n more = false\n }\n }\n resolve(friends)\n } catch (err) {\n reject(err)\n }\n })\n}\n\nconst fetchFollowers = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWERS_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url += args ? '?' + args : ''\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchFollowRequests = ({ credentials }) => {\n const url = MASTODON_FOLLOW_REQUESTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchLists = ({ credentials }) => {\n const url = MASTODON_LISTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst createList = ({ title, credentials }) => {\n const url = MASTODON_LISTS_URL\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ title })\n }).then((data) => data.json())\n}\n\nconst getList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst updateList = ({ listId, title, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'PUT',\n body: JSON.stringify({ title })\n })\n}\n\nconst getListAccounts = ({ listId, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(({ id }) => id))\n}\n\nconst addAccountsToList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst removeAccountsFromList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'DELETE',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst deleteList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, {\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n}\n\nconst fetchConversation = ({ id, credentials }) => {\n const urlContext = MASTODON_STATUS_CONTEXT_URL(id)\n return fetch(urlContext, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching timeline', data)\n })\n .then((data) => data.json())\n .then(({ ancestors, descendants }) => ({\n ancestors: ancestors.map(parseStatus),\n descendants: descendants.map(parseStatus)\n }))\n}\n\nconst fetchStatus = ({ id, credentials }) => {\n const url = MASTODON_STATUS_URL(id)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching timeline', data)\n })\n .then((data) => data.json())\n .then((data) => parseStatus(data))\n}\n\nconst fetchStatusSource = ({ id, credentials }) => {\n const url = MASTODON_STATUS_SOURCE_URL(id)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching source', data)\n })\n .then((data) => data.json())\n .then((data) => parseSource(data))\n}\n\nconst fetchStatusHistory = ({ status, credentials }) => {\n const url = MASTODON_STATUS_HISTORY_URL(status.id)\n return promisedRequest({ url, credentials })\n .then((data) => {\n data.reverse()\n return data.map((item) => {\n item.originalStatus = status\n return parseStatus(item)\n })\n })\n}\n\nconst tagUser = ({ tag, credentials, user }) => {\n const screenName = user.screen_name\n const form = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'PUT',\n headers,\n body: JSON.stringify(form)\n })\n}\n\nconst untagUser = ({ tag, credentials, user }) => {\n const screenName = user.screen_name\n const body = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'DELETE',\n headers,\n body: JSON.stringify(body)\n })\n}\n\nconst addRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'POST',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst deleteRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'DELETE',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst activateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: ACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deactivateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: DEACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deleteUser = ({ credentials, user }) => {\n const screenName = user.screen_name\n const headers = authHeaders(credentials)\n\n return fetch(`${ADMIN_USERS_URL}?nickname=${screenName}`, {\n method: 'DELETE',\n headers\n })\n}\n\nconst fetchTimeline = ({\n timeline,\n credentials,\n since = false,\n until = false,\n userId = false,\n listId = false,\n tag = false,\n withMuted = false,\n replyVisibility = 'all',\n includeTypes = []\n}) => {\n const timelineUrls = {\n public: MASTODON_PUBLIC_TIMELINE,\n friends: MASTODON_USER_HOME_TIMELINE_URL,\n dms: MASTODON_DIRECT_MESSAGES_TIMELINE_URL,\n notifications: MASTODON_USER_NOTIFICATIONS_URL,\n publicAndExternal: MASTODON_PUBLIC_TIMELINE,\n user: MASTODON_USER_TIMELINE_URL,\n media: MASTODON_USER_TIMELINE_URL,\n list: MASTODON_LIST_TIMELINE_URL,\n favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,\n tag: MASTODON_TAG_TIMELINE_URL,\n bookmarks: MASTODON_BOOKMARK_TIMELINE_URL\n }\n const isNotifications = timeline === 'notifications'\n const params = []\n\n let url = timelineUrls[timeline]\n\n if (timeline === 'user' || timeline === 'media') {\n url = url(userId)\n }\n\n if (timeline === 'list') {\n url = url(listId)\n }\n\n if (since) {\n params.push(['since_id', since])\n }\n if (until) {\n params.push(['max_id', until])\n }\n if (tag) {\n url = url(tag)\n }\n if (timeline === 'media') {\n params.push(['only_media', 1])\n }\n if (timeline === 'public') {\n params.push(['local', true])\n }\n if (timeline === 'public' || timeline === 'publicAndExternal') {\n params.push(['only_media', false])\n }\n if (timeline !== 'favorites' && timeline !== 'bookmarks') {\n params.push(['with_muted', withMuted])\n }\n if (replyVisibility !== 'all') {\n params.push(['reply_visibility', replyVisibility])\n }\n if (includeTypes.length > 0) {\n includeTypes.forEach(type => {\n params.push(['include_types[]', type])\n })\n }\n\n params.push(['limit', 20])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then(async (response) => {\n const success = response.ok\n\n const data = await response.json()\n\n if (success && !data.errors) {\n const pagination = parseLinkHeaderPagination(response.headers.get('Link'), {\n flakeId: timeline !== 'bookmarks' && timeline !== 'notifications'\n })\n\n return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination }\n } else {\n data.errors ||= []\n data.status = response.status\n data.statusText = response.statusText\n return data\n }\n })\n}\n\nconst fetchPinnedStatuses = ({ id, credentials }) => {\n const url = MASTODON_USER_TIMELINE_URL(id) + '?pinned=true'\n return promisedRequest({ url, credentials })\n .then((data) => data.map(parseStatus))\n}\n\nconst verifyCredentials = (user) => {\n return fetch(MASTODON_LOGIN_URL, {\n headers: authHeaders(user)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n .then((data) => data.error ? data : parseUser(data))\n}\n\nconst favorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_FAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unfavorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNFAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst retweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_RETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unretweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNRETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst bookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_BOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst unbookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_UNBOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst postStatus = ({\n credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n mediaIds = [],\n inReplyToStatusId,\n contentType,\n preview,\n idempotencyKey\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n form.append('source', 'Pleroma FE')\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (visibility) form.append('visibility', visibility)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: poll.expiresIn,\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n if (inReplyToStatusId) {\n form.append('in_reply_to_id', inReplyToStatusId)\n }\n if (preview) {\n form.append('preview', 'true')\n }\n\n const postHeaders = authHeaders(credentials)\n if (idempotencyKey) {\n postHeaders['idempotency-key'] = idempotencyKey\n }\n\n return fetch(MASTODON_POST_STATUS_URL, {\n body: form,\n method: 'POST',\n headers: postHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst editStatus = ({\n id,\n credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds = [],\n contentType\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: poll.expiresIn,\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n\n const putHeaders = authHeaders(credentials)\n\n return fetch(MASTODON_STATUS_URL(id), {\n body: form,\n method: 'PUT',\n headers: putHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst deleteStatus = ({ id, credentials }) => {\n return fetch(MASTODON_DELETE_URL(id), {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst uploadMedia = ({ formData, credentials }) => {\n return fetch(MASTODON_MEDIA_UPLOAD_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((data) => data.json())\n .then((data) => parseAttachment(data))\n}\n\nconst setMediaDescription = ({ id, description, credentials }) => {\n return promisedRequest({\n url: `${MASTODON_MEDIA_UPLOAD_URL}/${id}`,\n method: 'PUT',\n headers: authHeaders(credentials),\n payload: {\n description\n }\n }).then((data) => parseAttachment(data))\n}\n\nconst importMutes = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(MUTES_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importBlocks = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(BLOCKS_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importFollows = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(FOLLOW_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst deleteAccount = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(DELETE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changeEmail = ({ credentials, email, password }) => {\n const form = new FormData()\n\n form.append('email', email)\n form.append('password', password)\n\n return fetch(CHANGE_EMAIL_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst moveAccount = ({ credentials, password, targetAccount }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('target_account', targetAccount)\n\n return fetch(MOVE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst addAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'PUT',\n credentials,\n payload: { alias }\n })\n}\n\nconst deleteAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'DELETE',\n credentials,\n payload: { alias }\n })\n}\n\nconst listAliases = ({ credentials }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\n}\n\nconst changePassword = ({ credentials, password, newPassword, newPasswordConfirmation }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('new_password', newPassword)\n form.append('new_password_confirmation', newPasswordConfirmation)\n\n return fetch(CHANGE_PASSWORD_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst settingsMFA = ({ credentials }) => {\n return fetch(MFA_SETTINGS_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst mfaDisableOTP = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(MFA_DISABLE_OTP_URL, {\n body: form,\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst mfaConfirmOTP = ({ credentials, password, token }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('code', token)\n\n return fetch(MFA_CONFIRM_OTP_URL, {\n body: form,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\nconst mfaSetupOTP = ({ credentials }) => {\n return fetch(MFA_SETUP_OTP_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\nconst generateMfaBackupCodes = ({ credentials }) => {\n return fetch(MFA_BACKUP_CODES_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst fetchMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_MUTES_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst muteUser = ({ id, expiresIn, credentials }) => {\n const payload = {}\n if (expiresIn) {\n payload.expires_in = expiresIn\n }\n return promisedRequest({ url: MASTODON_MUTE_USER_URL(id), credentials, method: 'POST', payload })\n}\n\nconst unmuteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst subscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst unsubscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst fetchBlocks = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_BLOCKS_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst addBackup = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'POST',\n credentials\n })\n}\n\nconst listBackups = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\n}\n\nconst fetchOAuthTokens = ({ credentials }) => {\n const url = '/api/oauth_tokens.json'\n\n return fetch(url, {\n headers: authHeaders(credentials)\n }).then((data) => {\n if (data.ok) {\n return data.json()\n }\n throw new Error('Error fetching auth tokens', data)\n })\n}\n\nconst revokeOAuthToken = ({ id, credentials }) => {\n const url = `/api/oauth_tokens/${id}`\n\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst suggestions = ({ credentials }) => {\n return fetch(SUGGESTIONS_URL, {\n headers: authHeaders(credentials)\n }).then((data) => data.json())\n}\n\nconst markNotificationsAsSeen = ({ id, credentials, single = false }) => {\n const body = new FormData()\n\n if (single) {\n body.append('id', id)\n } else {\n body.append('max_id', id)\n }\n\n return fetch(NOTIFICATION_READ_URL, {\n body,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst vote = ({ pollId, choices, credentials }) => {\n const form = new FormData()\n form.append('choices', choices)\n\n return promisedRequest({\n url: MASTODON_VOTE_URL(encodeURIComponent(pollId)),\n method: 'POST',\n credentials,\n payload: {\n choices\n }\n })\n}\n\nconst fetchPoll = ({ pollId, credentials }) => {\n return promisedRequest(\n {\n url: MASTODON_POLL_URL(encodeURIComponent(pollId)),\n method: 'GET',\n credentials\n }\n )\n}\n\nconst fetchFavoritedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_FAVORITEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchRebloggedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_REBLOGGEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchEmojiReactions = ({ id, credentials }) => {\n return promisedRequest({ url: PLEROMA_EMOJI_REACTIONS_URL(id), credentials })\n .then((reactions) => reactions.map(r => {\n r.accounts = r.accounts.map(parseUser)\n return r\n }))\n}\n\nconst reactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_REACT_URL(id, emoji),\n method: 'PUT',\n credentials\n }).then(parseStatus)\n}\n\nconst unreactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_UNREACT_URL(id, emoji),\n method: 'DELETE',\n credentials\n }).then(parseStatus)\n}\n\nconst reportUser = ({ credentials, userId, statusIds, comment, forward }) => {\n return promisedRequest({\n url: MASTODON_REPORT_USER_URL,\n method: 'POST',\n payload: {\n account_id: userId,\n status_ids: statusIds,\n comment,\n forward\n },\n credentials\n })\n}\n\nconst searchUsers = ({ credentials, query }) => {\n return promisedRequest({\n url: MASTODON_USER_SEARCH_URL,\n params: {\n q: query,\n resolve: true\n },\n credentials\n })\n .then((data) => data.map(parseUser))\n}\n\nconst search2 = ({ credentials, q, resolve, limit, offset, following, type }) => {\n let url = MASTODON_SEARCH_2\n const params = []\n\n if (q) {\n params.push(['q', encodeURIComponent(q)])\n }\n\n if (resolve) {\n params.push(['resolve', resolve])\n }\n\n if (limit) {\n params.push(['limit', limit])\n }\n\n if (offset) {\n params.push(['offset', offset])\n }\n\n if (following) {\n params.push(['following', true])\n }\n\n if (type) {\n params.push(['following', type])\n }\n\n params.push(['with_relationships', true])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching search result', data)\n })\n .then((data) => { return data.json() })\n .then((data) => {\n data.accounts = data.accounts.slice(0, limit).map(u => parseUser(u))\n data.statuses = data.statuses.slice(0, limit).map(s => parseStatus(s))\n return data\n })\n}\n\nconst fetchKnownDomains = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_KNOWN_DOMAIN_LIST_URL, credentials })\n}\n\nconst fetchDomainMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_DOMAIN_BLOCKS_URL, credentials })\n}\n\nconst muteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'POST',\n payload: { domain },\n credentials\n })\n}\n\nconst unmuteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'DELETE',\n payload: { domain },\n credentials\n })\n}\n\nconst dismissNotification = ({ credentials, id }) => {\n return promisedRequest({\n url: MASTODON_DISMISS_NOTIFICATION_URL(id),\n method: 'POST',\n payload: { id },\n credentials\n })\n}\n\nconst adminFetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: PLEROMA_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst fetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst dismissAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_ANNOUNCEMENTS_DISMISS_URL(id),\n credentials,\n method: 'POST'\n })\n}\n\nconst announcementToPayload = ({ content, startsAt, endsAt, allDay }) => {\n const payload = { content }\n\n if (typeof startsAt !== 'undefined') {\n payload.starts_at = startsAt ? new Date(startsAt).toISOString() : null\n }\n\n if (typeof endsAt !== 'undefined') {\n payload.ends_at = endsAt ? new Date(endsAt).toISOString() : null\n }\n\n if (typeof allDay !== 'undefined') {\n payload.all_day = allDay\n }\n\n return payload\n}\n\nconst postAnnouncement = ({ credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_POST_ANNOUNCEMENT_URL,\n credentials,\n method: 'POST',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst editAnnouncement = ({ id, credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_EDIT_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'PATCH',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst deleteAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'DELETE'\n })\n}\n\nexport const getMastodonSocketURI = ({ credentials, stream, args = {} }) => {\n return Object.entries({\n ...(credentials\n ? { access_token: credentials }\n : {}\n ),\n stream,\n ...args\n }).reduce((acc, [key, val]) => {\n return acc + `${key}=${val}&`\n }, MASTODON_STREAMING + '?')\n}\n\nconst MASTODON_STREAMING_EVENTS = new Set([\n 'update',\n 'notification',\n 'delete',\n 'filters_changed',\n 'status.update'\n])\n\nconst PLEROMA_STREAMING_EVENTS = new Set([\n 'pleroma:chat_update'\n])\n\n// A thin wrapper around WebSocket API that allows adding a pre-processor to it\n// Uses EventTarget and a CustomEvent to proxy events\nexport const ProcessedWS = ({\n url,\n preprocessor = handleMastoWS,\n id = 'Unknown'\n}) => {\n const eventTarget = new EventTarget()\n const socket = new WebSocket(url)\n if (!socket) throw new Error(`Failed to create socket ${id}`)\n const proxy = (original, eventName, processor = a => a) => {\n original.addEventListener(eventName, (eventData) => {\n eventTarget.dispatchEvent(new CustomEvent(\n eventName,\n { detail: processor(eventData) }\n ))\n })\n }\n socket.addEventListener('open', (wsEvent) => {\n console.debug(`[WS][${id}] Socket connected`, wsEvent)\n })\n socket.addEventListener('error', (wsEvent) => {\n console.debug(`[WS][${id}] Socket errored`, wsEvent)\n })\n socket.addEventListener('close', (wsEvent) => {\n console.debug(\n `[WS][${id}] Socket disconnected with code ${wsEvent.code}`,\n wsEvent\n )\n })\n // Commented code reason: very spammy, uncomment to enable message debug logging\n /*\n socket.addEventListener('message', (wsEvent) => {\n console.debug(\n `[WS][${id}] Message received`,\n wsEvent\n )\n })\n /**/\n\n proxy(socket, 'open')\n proxy(socket, 'close')\n proxy(socket, 'message', preprocessor)\n proxy(socket, 'error')\n\n // 1000 = Normal Closure\n eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }\n eventTarget.getState = () => socket.readyState\n\n return eventTarget\n}\n\nexport const handleMastoWS = (wsEvent) => {\n const { data } = wsEvent\n if (!data) return\n const parsedEvent = JSON.parse(data)\n const { event, payload } = parsedEvent\n if (MASTODON_STREAMING_EVENTS.has(event) || PLEROMA_STREAMING_EVENTS.has(event)) {\n // MastoBE and PleromaBE both send payload for delete as a PLAIN string\n if (event === 'delete') {\n return { event, id: payload }\n }\n const data = payload ? JSON.parse(payload) : null\n if (event === 'update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'status.update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'notification') {\n return { event, notification: parseNotification(data) }\n } else if (event === 'pleroma:chat_update') {\n return { event, chatUpdate: parseChat(data) }\n }\n } else {\n console.warn('Unknown event', wsEvent)\n return null\n }\n}\n\nexport const WSConnectionStatus = Object.freeze({\n JOINED: 1,\n CLOSED: 2,\n ERROR: 3,\n DISABLED: 4,\n STARTING: 5,\n STARTING_INITIAL: 6\n})\n\nconst chats = ({ credentials }) => {\n return fetch(PLEROMA_CHATS_URL, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => {\n return { chats: data.map(parseChat).filter(c => c) }\n })\n}\n\nconst getOrCreateChat = ({ accountId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_URL(accountId),\n method: 'POST',\n credentials\n })\n}\n\nconst chatMessages = ({ id, credentials, maxId, sinceId, limit = 20 }) => {\n let url = PLEROMA_CHAT_MESSAGES_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n\n return promisedRequest({\n url,\n method: 'GET',\n credentials\n })\n}\n\nconst sendChatMessage = ({ id, content, mediaId = null, idempotencyKey, credentials }) => {\n const payload = {\n content\n }\n\n if (mediaId) {\n payload.media_id = mediaId\n }\n\n const headers = {}\n\n if (idempotencyKey) {\n headers['idempotency-key'] = idempotencyKey\n }\n\n return promisedRequest({\n url: PLEROMA_CHAT_MESSAGES_URL(id),\n method: 'POST',\n payload,\n credentials,\n headers\n })\n}\n\nconst readChat = ({ id, lastReadId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_READ_URL(id),\n method: 'POST',\n payload: {\n last_read_id: lastReadId\n },\n credentials\n })\n}\n\nconst deleteChatMessage = ({ chatId, messageId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_CHAT_MESSAGE_URL(chatId, messageId),\n method: 'DELETE',\n credentials\n })\n}\n\nconst setReportState = ({ id, state, credentials }) => {\n // TODO: Can't use promisedRequest because on OK this does not return json\n // See https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1322\n return fetch(PLEROMA_ADMIN_REPORTS, {\n headers: {\n ...authHeaders(credentials),\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n method: 'PATCH',\n body: JSON.stringify({\n reports: [{\n id,\n state\n }]\n })\n })\n .then(data => {\n if (data.status >= 500) {\n throw Error(data.statusText)\n } else if (data.status >= 400) {\n return data.json()\n }\n return data\n })\n .then(data => {\n if (data.errors) {\n throw Error(data.errors[0].message)\n }\n })\n}\n\nconst apiService = {\n verifyCredentials,\n fetchTimeline,\n fetchPinnedStatuses,\n fetchConversation,\n fetchStatus,\n fetchStatusSource,\n fetchStatusHistory,\n fetchFriends,\n exportFriends,\n fetchFollowers,\n followUser,\n unfollowUser,\n pinOwnStatus,\n unpinOwnStatus,\n muteConversation,\n unmuteConversation,\n blockUser,\n unblockUser,\n removeUserFromFollowers,\n editUserNote,\n fetchUser,\n fetchUserByName,\n fetchUserRelationship,\n favorite,\n unfavorite,\n retweet,\n unretweet,\n bookmarkStatus,\n unbookmarkStatus,\n postStatus,\n editStatus,\n deleteStatus,\n uploadMedia,\n setMediaDescription,\n fetchMutes,\n muteUser,\n unmuteUser,\n subscribeUser,\n unsubscribeUser,\n fetchBlocks,\n fetchOAuthTokens,\n revokeOAuthToken,\n tagUser,\n untagUser,\n deleteUser,\n addRight,\n deleteRight,\n activateUser,\n deactivateUser,\n register,\n getCaptcha,\n updateProfileImages,\n updateProfile,\n importMutes,\n importBlocks,\n importFollows,\n deleteAccount,\n changeEmail,\n moveAccount,\n addAlias,\n deleteAlias,\n listAliases,\n changePassword,\n settingsMFA,\n mfaDisableOTP,\n generateMfaBackupCodes,\n mfaSetupOTP,\n mfaConfirmOTP,\n addBackup,\n listBackups,\n fetchFollowRequests,\n fetchLists,\n createList,\n getList,\n updateList,\n getListAccounts,\n addAccountsToList,\n removeAccountsFromList,\n deleteList,\n approveUser,\n denyUser,\n suggestions,\n markNotificationsAsSeen,\n dismissNotification,\n vote,\n fetchPoll,\n fetchFavoritedByUsers,\n fetchRebloggedByUsers,\n fetchEmojiReactions,\n reactWithEmoji,\n unreactWithEmoji,\n reportUser,\n updateNotificationSettings,\n search2,\n searchUsers,\n fetchKnownDomains,\n fetchDomainMutes,\n muteDomain,\n unmuteDomain,\n chats,\n getOrCreateChat,\n chatMessages,\n sendChatMessage,\n readChat,\n deleteChatMessage,\n setReportState,\n fetchUserInLists,\n fetchAnnouncements,\n dismissAnnouncement,\n postAnnouncement,\n editAnnouncement,\n deleteAnnouncement,\n adminFetchAnnouncements\n}\n\nexport default apiService\n","import { kebabCase } from 'lodash'\n\nconst propsToNative = props => Object.keys(props).reduce((acc, cur) => {\n acc[kebabCase(cur)] = props[cur]\n return acc\n}, {})\n\nexport { propsToNative }\n","import { invertLightness, contrastRatio } from 'chromatism'\n\n// useful for visualizing color when debugging\nexport const consoleColor = (color) => console.log('%c##########', 'background: ' + color + '; color: ' + color)\n\n/**\n * Convert r, g, b values into hex notation. All components are [0-255]\n *\n * @param {Number|String|Object} r - Either red component, {r,g,b} object, or hex string\n * @param {Number} [g] - Green component\n * @param {Number} [b] - Blue component\n */\nexport const rgb2hex = (r, g, b) => {\n if (r === null || typeof r === 'undefined') {\n return undefined\n }\n // TODO: clean up this mess\n if (r[0] === '#' || r === 'transparent') {\n return r\n }\n if (typeof r === 'object') {\n ({ r, g, b } = r)\n }\n [r, g, b] = [r, g, b].map(val => {\n val = Math.ceil(val)\n val = val < 0 ? 0 : val\n val = val > 255 ? 255 : val\n return val\n })\n return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`\n}\n\n/**\n * Converts 8-bit RGB component into linear component\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n * https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation\n *\n * @param {Number} bit - color component [0..255]\n * @returns {Number} linear component [0..1]\n */\nconst c2linear = (bit) => {\n // W3C gives 0.03928 while wikipedia states 0.04045\n // what those magical numbers mean - I don't know.\n // something about gamma-correction, i suppose.\n // Sticking with W3C example.\n const c = bit / 255\n if (c < 0.03928) {\n return c / 12.92\n } else {\n return Math.pow((c + 0.055) / 1.055, 2.4)\n }\n}\n\n/**\n * Converts sRGB into linear RGB\n * @param {Object} srgb - sRGB color\n * @returns {Object} linear rgb color\n */\nconst srgbToLinear = (srgb) => {\n return 'rgb'.split('').reduce((acc, c) => { acc[c] = c2linear(srgb[c]); return acc }, {})\n}\n\n/**\n * Calculates relative luminance for given color\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n *\n * @param {Object} srgb - sRGB color\n * @returns {Number} relative luminance\n */\nexport const relativeLuminance = (srgb) => {\n const { r, g, b } = srgbToLinear(srgb)\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n\n/**\n * Generates color ratio between two colors. Order is unimporant\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n *\n * @param {Object} a - sRGB color\n * @param {Object} b - sRGB color\n * @returns {Number} color ratio\n */\nexport const getContrastRatio = (a, b) => {\n const la = relativeLuminance(a)\n const lb = relativeLuminance(b)\n const [l1, l2] = la > lb ? [la, lb] : [lb, la]\n\n return (l1 + 0.05) / (l2 + 0.05)\n}\n\n/**\n * Same as `getContrastRatio` but for multiple layers in-between\n *\n * @param {Object} text - text color (topmost layer)\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n * @param {Object} bedrock - layer at the very bottom\n */\nexport const getContrastRatioLayers = (text, layers, bedrock) => {\n return getContrastRatio(alphaBlendLayers(bedrock, layers), text)\n}\n\n/**\n * This performs alpha blending between solid background and semi-transparent foreground\n *\n * @param {Object} fg - top layer color\n * @param {Number} fga - top layer's alpha\n * @param {Object} bg - bottom layer color\n * @returns {Object} sRGB of resulting color\n */\nexport const alphaBlend = (fg, fga, bg) => {\n if (fga === 1 || typeof fga === 'undefined') return fg\n return 'rgb'.split('').reduce((acc, c) => {\n // Simplified https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending\n // for opaque bg and transparent fg\n acc[c] = (fg[c] * fga + bg[c] * (1 - fga))\n return acc\n }, {})\n}\n\n/**\n * Same as `alphaBlend` but for multiple layers in-between\n *\n * @param {Object} bedrock - layer at the very bottom\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n */\nexport const alphaBlendLayers = (bedrock, layers) => layers.reduce((acc, [color, opacity]) => {\n return alphaBlend(color, opacity, acc)\n}, bedrock)\n\nexport const invert = (rgb) => {\n return 'rgb'.split('').reduce((acc, c) => {\n acc[c] = 255 - rgb[c]\n return acc\n }, {})\n}\n\n/**\n * Converts #rrggbb hex notation into an {r, g, b} object\n *\n * @param {String} hex - #rrggbb string\n * @returns {Object} rgb representation of the color, values are 0-255\n */\nexport const hex2rgb = (hex) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n }\n : null\n}\n\n/**\n * Old somewhat weird function for mixing two colors together\n *\n * @param {Object} a - one color (rgb)\n * @param {Object} b - other color (rgb)\n * @returns {Object} result\n */\nexport const mixrgb = (a, b) => {\n return 'rgb'.split('').reduce((acc, k) => {\n acc[k] = (a[k] + b[k]) / 2\n return acc\n }, {})\n}\n/**\n * Converts rgb object into a CSS rgba() color\n *\n * @param {Object} color - rgb\n * @returns {String} CSS rgba() color\n */\nexport const rgba2css = function (rgba) {\n return `rgba(${Math.floor(rgba.r)}, ${Math.floor(rgba.g)}, ${Math.floor(rgba.b)}, ${rgba.a})`\n}\n\n/**\n * Get text color for given background color and intended text color\n * This checks if text and background don't have enough color and inverts\n * text color's lightness if needed. If text color is still not enough it\n * will fall back to black or white\n *\n * @param {Object} bg - background color\n * @param {Object} text - intended text color\n * @param {Boolean} preserve - try to preserve intended text color's hue/saturation (i.e. no BW)\n */\nexport const getTextColor = function (bg, text, preserve) {\n const contrast = getContrastRatio(bg, text)\n\n if (contrast < 4.5) {\n const base = typeof text.a !== 'undefined' ? { a: text.a } : {}\n const result = Object.assign(base, invertLightness(text).rgb)\n if (!preserve && getContrastRatio(bg, result) < 4.5) {\n // B&W\n return contrastRatio(bg, text).rgb\n }\n // Inverted color\n return result\n }\n return text\n}\n\n/**\n * Converts color to CSS Color value\n *\n * @param {Object|String} input - color\n * @param {Number} [a] - alpha value\n * @returns {String} a CSS Color value\n */\nexport const getCssColor = (input, a) => {\n let rgb = {}\n if (typeof input === 'object') {\n rgb = input\n } else if (typeof input === 'string') {\n if (input.startsWith('#')) {\n rgb = hex2rgb(input)\n } else {\n return input\n }\n }\n return rgba2css({ ...rgb, a })\n}\n","import isFunction from 'lodash/isFunction'\n\nconst getComponentOptions = (Component) => (isFunction(Component)) ? Component.options : Component\n\nconst getComponentProps = (Component) => getComponentOptions(Component).props\n\nexport {\n getComponentOptions,\n getComponentProps\n}\n","export const SECOND = 1000\nexport const MINUTE = 60 * SECOND\nexport const HOUR = 60 * MINUTE\nexport const DAY = 24 * HOUR\nexport const WEEK = 7 * DAY\nexport const MONTH = 30 * DAY\nexport const YEAR = 365.25 * DAY\n\nexport const relativeTime = (date, nowThreshold = 1) => {\n if (typeof date === 'string') date = Date.parse(date)\n const round = Date.now() > date ? Math.floor : Math.ceil\n const d = Math.abs(Date.now() - date)\n const r = { num: round(d / YEAR), key: 'time.unit.years' }\n if (d < nowThreshold * SECOND) {\n r.num = 0\n r.key = 'time.now'\n } else if (d < MINUTE) {\n r.num = round(d / SECOND)\n r.key = 'time.unit.seconds'\n } else if (d < HOUR) {\n r.num = round(d / MINUTE)\n r.key = 'time.unit.minutes'\n } else if (d < DAY) {\n r.num = round(d / HOUR)\n r.key = 'time.unit.hours'\n } else if (d < WEEK) {\n r.num = round(d / DAY)\n r.key = 'time.unit.days'\n } else if (d < MONTH) {\n r.num = round(d / WEEK)\n r.key = 'time.unit.weeks'\n } else if (d < YEAR) {\n r.num = round(d / MONTH)\n r.key = 'time.unit.months'\n }\n return r\n}\n\nexport const relativeTimeShort = (date, nowThreshold = 1) => {\n const r = relativeTime(date, nowThreshold)\n r.key += '_short'\n return r\n}\n\nexport const unitToSeconds = (unit, amount) => {\n switch (unit) {\n case 'minutes': return 0.001 * amount * MINUTE\n case 'hours': return 0.001 * amount * HOUR\n case 'days': return 0.001 * amount * DAY\n }\n}\n\nexport const secondsToUnit = (unit, amount) => {\n switch (unit) {\n case 'minutes': return (1000 * amount) / MINUTE\n case 'hours': return (1000 * amount) / HOUR\n case 'days': return (1000 * amount) / DAY\n }\n}\n","export const showDesktopNotification = (rootState, desktopNotificationOpts) => {\n if (!('Notification' in window && window.Notification.permission === 'granted')) return\n if (rootState.statuses.notifications.desktopNotificationSilence) { return }\n\n const desktopNotification = new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts)\n // Chrome is known for not closing notifications automatically\n // according to MDN, anyway.\n setTimeout(desktopNotification.close.bind(desktopNotification), 5000)\n}\n","import escape from 'escape-html'\nimport parseLinkHeader from 'parse-link-header'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\nimport punycode from 'punycode.js'\n\n/** NOTICE! **\n * Do not initialize UI-generated data here.\n * It will override existing data.\n *\n * i.e. user.pinnedStatusIds was set to [] here\n * UI code would update it with data but upon next user fetch\n * it would be reverted back to []\n */\n\nconst qvitterStatusType = (status) => {\n if (status.is_post_verb) {\n return 'status'\n }\n\n if (status.retweeted_status) {\n return 'retweet'\n }\n\n if ((typeof status.uri === 'string' && status.uri.match(/(fave|objectType=Favourite)/)) ||\n (typeof status.text === 'string' && status.text.match(/favorited/))) {\n return 'favorite'\n }\n\n if (status.text.match(/deleted notice {{tag/) || status.qvitter_delete_notice) {\n return 'deletion'\n }\n\n if (status.text.match(/started following/) || status.activity_type === 'follow') {\n return 'follow'\n }\n\n return 'unknown'\n}\n\nexport const parseUser = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !Object.prototype.hasOwnProperty.call(data, 'avatar')\n\n output.inLists = null\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.fqn = data.fqn\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n if (data.pleroma.settings_store) {\n output.storage = data.pleroma.settings_store['pleroma-fe']\n }\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n\n output.birthday = data.pleroma.birthday\n\n if (data.pleroma.privileges) {\n output.privileges = data.pleroma.privileges\n } else if (data.pleroma.is_admin) {\n output.privileges = [\n 'users_read',\n 'users_manage_invites',\n 'users_manage_activation_state',\n 'users_manage_tags',\n 'users_manage_credentials',\n 'users_delete',\n 'messages_read',\n 'messages_delete',\n 'instances_delete',\n 'reports_manage_reports',\n 'moderation_log_read',\n 'announcements_manage_announcements',\n 'emoji_manage_emoji',\n 'statistics_read'\n ]\n } else if (data.pleroma.is_moderator) {\n output.privileges = [\n 'messages_delete',\n 'reports_manage_reports'\n ]\n } else {\n output.privileges = []\n }\n }\n\n if (data.source) {\n output.description = data.source.note\n output.default_scope = data.source.privacy\n output.fields = data.source.fields\n if (data.source.pleroma) {\n output.no_rich_text = data.source.pleroma.no_rich_text\n output.show_role = data.source.pleroma.show_role\n output.discoverable = data.source.pleroma.discoverable\n output.show_birthday = data.pleroma.show_birthday\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n const unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n output.screen_name_ui_contains_non_ascii = true\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n } else {\n output.screen_name_ui_contains_non_ascii = false\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !Object.prototype.hasOwnProperty.call(data, 'oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseSource = (data) => {\n const output = {}\n\n output.text = data.text\n output.spoiler_text = data.spoiler_text\n output.content_type = data.content_type\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n output.edited_at = data.edited_at\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n if (Object.prototype.hasOwnProperty.call(data, 'originalStatus')) {\n Object.assign(output, data.originalStatus)\n }\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n favourite: 'like',\n reblog: 'repeat'\n }\n const masto = !Object.prototype.hasOwnProperty.call(data, 'ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n if (data.report) {\n output.report = data.report\n output.report.content = data.report.content\n output.report.acct = parseUser(data.report.account)\n output.report.actor = parseUser(data.report.actor)\n output.report.statuses = data.report.statuses.map(parseStatus)\n }\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","const createFaviconService = () => {\n const favicons = []\n const faviconWidth = 128\n const faviconHeight = 128\n const badgeRadius = 32\n\n const initFaviconService = () => {\n const nodes = document.querySelectorAll('link[rel=\"icon\"]')\n nodes.forEach(favicon => {\n if (favicon) {\n const favcanvas = document.createElement('canvas')\n favcanvas.width = faviconWidth\n favcanvas.height = faviconHeight\n const favimg = new Image()\n favimg.crossOrigin = 'anonymous'\n favimg.src = favicon.href\n const favcontext = favcanvas.getContext('2d')\n favicons.push({ favcanvas, favimg, favcontext, favicon })\n }\n })\n }\n\n const isImageLoaded = (img) => img.complete && img.naturalHeight !== 0\n\n const clearFaviconBadge = () => {\n if (favicons.length === 0) return\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favicon) return\n\n favcontext.clearRect(0, 0, faviconWidth, faviconHeight)\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n const drawFaviconBadge = () => {\n if (favicons.length === 0) return\n clearFaviconBadge()\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favcontext) return\n\n const style = getComputedStyle(document.body)\n const badgeColor = `${style.getPropertyValue('--badgeNotification') || 'rgb(240, 100, 100)'}`\n\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favcontext.fillStyle = badgeColor\n favcontext.beginPath()\n favcontext.arc(faviconWidth - badgeRadius, badgeRadius, badgeRadius, 0, 2 * Math.PI, false)\n favcontext.fill()\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n return {\n initFaviconService,\n clearFaviconBadge,\n drawFaviconBadge\n }\n}\n\nconst FaviconService = createFaviconService()\n\nexport default FaviconService\n","const fileSizeFormat = (numArg) => {\n const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB']\n let num = numArg\n if (num < 1) {\n return num + ' ' + units[0]\n }\n\n const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1)\n num = (num / Math.pow(1024, exponent)).toFixed(2) * 1\n const unit = units[exponent]\n return { num, unit }\n}\nconst fileSizeFormatService = {\n fileSizeFormat\n}\nexport default fileSizeFormatService\n","// TODO this func might as well take the entire file and use its mimetype\n// or the entire service could be just mimetype service that only operates\n// on mimetypes and not files. Currently the naming is confusing.\nconst fileType = mimetype => {\n if (mimetype.match(/flash/)) {\n return 'flash'\n }\n\n if (mimetype.match(/text\\/html/)) {\n return 'html'\n }\n\n if (mimetype.match(/image/)) {\n return 'image'\n }\n\n if (mimetype.match(/video/)) {\n return 'video'\n }\n\n if (mimetype.match(/audio/)) {\n return 'audio'\n }\n\n return 'unknown'\n}\n\nconst fileMatchesSomeType = (types, file) =>\n types.some(type => fileType(file.mimetype) === type)\n\nconst fileTypeService = {\n fileType,\n fileMatchesSomeType\n}\n\nexport default fileTypeService\n","import languagesObject from '../../i18n/messages'\nimport ISO6391 from 'iso-639-1'\nimport _ from 'lodash'\n\nconst specialLanguageCodes = {\n ja_easy: 'ja',\n zh_Hant: 'zh-HANT',\n zh: 'zh-Hans'\n}\n\nconst internalToBrowserLocale = code => specialLanguageCodes[code] || code\n\nconst internalToBackendLocale = code => internalToBrowserLocale(code).replace('_', '-')\nconst internalToBackendLocaleMulti = codes => {\n const langs = Array.isArray(codes) ? codes : [codes]\n return langs.map(internalToBackendLocale).join(',')\n}\n\nconst getLanguageName = (code) => {\n const specialLanguageNames = {\n ja_easy: 'やさしいにほんご',\n zh: '简体中文',\n zh_Hant: '繁體中文'\n }\n const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code)\n const browserLocale = internalToBrowserLocale(code)\n return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1)\n}\n\nconst languages = _.map(languagesObject.languages, (code) => ({ code, name: getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name))\n\nconst localeService = {\n internalToBrowserLocale,\n internalToBackendLocale,\n internalToBackendLocaleMulti,\n languages,\n getLanguageName\n}\n\nexport default localeService\n","import { filter, sortBy, includes } from 'lodash'\nimport { muteWordHits } from '../status_parser/status_parser.js'\nimport { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => {\n const rootState = store.rootState || store.state\n\n return ([\n rootState.config.notificationVisibility.likes && 'like',\n rootState.config.notificationVisibility.mentions && 'mention',\n rootState.config.notificationVisibility.repeats && 'repeat',\n rootState.config.notificationVisibility.follows && 'follow',\n rootState.config.notificationVisibility.followRequest && 'follow_request',\n rootState.config.notificationVisibility.moves && 'move',\n rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction',\n rootState.config.notificationVisibility.reports && 'pleroma:report',\n rootState.config.notificationVisibility.polls && 'poll'\n ].filter(_ => _))\n}\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction', 'poll']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nexport const isValidNotification = (notification) => {\n if (isStatusNotification(notification.type) && !notification.status) {\n return false\n }\n return true\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst isMutedNotification = (store, notification) => {\n if (!notification.status) return\n return notification.status.muted || muteWordHits(notification.status, store.rootGetters.mergedConfig.muteWords).length > 0\n}\n\nexport const maybeShowNotification = (store, notification) => {\n const rootState = store.rootState || store.state\n\n if (notification.seen) return\n if (!visibleTypes(store).includes(notification.type)) return\n if (notification.type === 'mention' && isMutedNotification(store, notification)) return\n\n const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)\n showDesktopNotification(rootState, notificationObject)\n}\n\nexport const filteredNotificationsFromStore = (store, types) => {\n // map is just to clone the array since sort mutates it and it causes some issues\n let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n sortedNotifications = sortBy(sortedNotifications, 'seen')\n return sortedNotifications.filter(\n (notification) => (types || visibleTypes(store)).includes(notification.type)\n )\n}\n\nexport const unseenNotificationsFromStore = store =>\n filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)\n\nexport const prepareNotificationObject = (notification, i18n) => {\n const notifObj = {\n tag: notification.id\n }\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.title = title\n notifObj.icon = notification.from_profile.profile_image_url\n let i18nString\n switch (notification.type) {\n case 'like':\n i18nString = 'favorited_you'\n break\n case 'repeat':\n i18nString = 'repeated_you'\n break\n case 'follow':\n i18nString = 'followed_you'\n break\n case 'move':\n i18nString = 'migrated_to'\n break\n case 'follow_request':\n i18nString = 'follow_request'\n break\n case 'pleroma:report':\n i18nString = 'submitted_report'\n break\n case 'poll':\n i18nString = 'poll_ended'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = i18n.t('notifications.' + i18nString)\n } else if (isStatusNotification(notification.type)) {\n notifObj.body = notification.status.text\n }\n\n // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...\n if (status && status.attachments && status.attachments.length > 0 && !status.nsfw &&\n status.attachments[0].mimetype.startsWith('image/')) {\n notifObj.image = status.attachments[0].url\n }\n\n return notifObj\n}\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\n// For using include_types when fetching notifications.\n// Note: chat_mention excluded as pleroma-fe polls them separately\nconst mastoApiNotificationTypes = [\n 'mention',\n 'favourite',\n 'reblog',\n 'follow',\n 'move',\n 'pleroma:emoji_reaction',\n 'pleroma:report'\n]\n\nconst update = ({ store, notifications, older }) => {\n store.dispatch('addNewNotifications', { notifications, older })\n}\n\nconst fetchAndUpdate = ({ store, credentials, older = false, since }) => {\n const args = { credentials }\n const { getters } = store\n const rootState = store.rootState || store.state\n const timelineData = rootState.statuses.notifications\n const hideMutedPosts = getters.mergedConfig.hideMutedPosts\n\n args.includeTypes = mastoApiNotificationTypes\n args.withMuted = !hideMutedPosts\n\n args.timeline = 'notifications'\n if (older) {\n if (timelineData.minId !== Number.POSITIVE_INFINITY) {\n args.until = timelineData.minId\n }\n return fetchNotifications({ store, args, older })\n } else {\n // fetch new notifications\n if (since === undefined && timelineData.maxId !== Number.POSITIVE_INFINITY) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n const result = fetchNotifications({ store, args, older })\n\n // If there's any unread notifications, try fetch notifications since\n // the newest read notification to check if any of the unread notifs\n // have changed their 'seen' state (marked as read in another session), so\n // we can update the state in this session to mark them as read as well.\n // The normal maxId-check does not tell if older notifications have changed\n const notifications = timelineData.data\n const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)\n const numUnseenNotifs = notifications.length - readNotifsIds.length\n if (numUnseenNotifs > 0 && readNotifsIds.length > 0) {\n args.since = Math.max(...readNotifsIds)\n fetchNotifications({ store, args, older })\n }\n\n return result\n }\n}\n\nconst fetchNotifications = ({ store, args, older }) => {\n return apiService.fetchTimeline(args)\n .then((response) => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n const notifications = response.data\n update({ store, notifications, older })\n return notifications\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'notifications.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n console.error(error)\n })\n}\n\nconst startFetching = ({ credentials, store }) => {\n // Initially there's set flag to silence all desktop notifications so\n // that there won't spam of them when user just opened up the FE we\n // reset that flag after a while to show new notifications once again.\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst notificationsFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default notificationsFetcher\n","export const findOffset = (child, parent, { top = 0, left = 0 } = {}, ignorePadding = true) => {\n const result = {\n top: top + child.offsetTop,\n left: left + child.offsetLeft\n }\n if (!ignorePadding && child !== window) {\n const { topPadding, leftPadding } = findPadding(child)\n result.top += ignorePadding ? 0 : topPadding\n result.left += ignorePadding ? 0 : leftPadding\n }\n\n if (child.offsetParent && window.getComputedStyle(child.offsetParent).position !== 'sticky' && (parent === window || parent.contains(child.offsetParent) || parent === child.offsetParent)) {\n return findOffset(child.offsetParent, parent, result, false)\n } else {\n if (parent !== window) {\n const { topPadding, leftPadding } = findPadding(parent)\n result.top += topPadding\n result.left += leftPadding\n }\n return result\n }\n}\n\nconst findPadding = (el) => {\n const topPaddingStr = window.getComputedStyle(el)['padding-top']\n const topPadding = Number(topPaddingStr.substring(0, topPaddingStr.length - 2))\n const leftPaddingStr = window.getComputedStyle(el)['padding-left']\n const leftPadding = Number(leftPaddingStr.substring(0, leftPaddingStr.length - 2))\n\n return { topPadding, leftPadding }\n}\n","\n// promiseInterval - replacement for setInterval for promises, starts counting\n// the interval only after a promise is done instead of immediately.\n// - promiseCall is a function that returns a promise, it's called the first\n// time after the first interval.\n// - interval is the interval delay in ms.\n\nexport const promiseInterval = (promiseCall, interval) => {\n let stopped = false\n let timeout = null\n\n const func = () => {\n const promise = promiseCall()\n // something unexpected happened and promiseCall did not\n // return a promise, abort the loop.\n if (!(promise && promise.finally)) {\n console.warn('promiseInterval: promise call did not return a promise, stopping interval.')\n return\n }\n promise.finally(() => {\n if (stopped) return\n timeout = window.setTimeout(func, interval)\n })\n }\n\n const stopFetcher = () => {\n stopped = true\n window.clearTimeout(timeout)\n }\n\n timeout = window.setTimeout(func, interval)\n\n return { stop: stopFetcher }\n}\n","import { filter } from 'lodash'\n\nexport const muteWordHits = (status, muteWords) => {\n const statusText = status.text.toLowerCase()\n const statusSummary = status.summary.toLowerCase()\n const hits = filter(muteWords, (muteWord) => {\n return statusText.includes(muteWord.toLowerCase()) || statusSummary.includes(muteWord.toLowerCase())\n })\n\n return hits\n}\n","import { map } from 'lodash'\nimport apiService from '../api/api.service.js'\n\nconst postStatus = ({\n store,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n media = [],\n inReplyToStatusId = undefined,\n contentType = 'text/plain',\n preview = false,\n idempotencyKey = ''\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.postStatus({\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n mediaIds,\n inReplyToStatusId,\n contentType,\n poll,\n preview,\n idempotencyKey\n })\n .then((data) => {\n if (!data.error && !preview) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n return {\n error: err.message\n }\n })\n}\n\nconst editStatus = ({\n store,\n statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media = [],\n contentType = 'text/plain'\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.editStatus({\n id: statusId,\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds,\n contentType\n })\n .then((data) => {\n if (!data.error) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n}\n\nconst uploadMedia = ({ store, formData }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.uploadMedia({ credentials, formData })\n}\n\nconst setMediaDescription = ({ store, id, description }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.setMediaDescription({ credentials, id, description })\n}\n\nconst statusPosterService = {\n postStatus,\n editStatus,\n uploadMedia,\n setMediaDescription\n}\n\nexport default statusPosterService\n","import { convert } from 'chromatism'\nimport { rgb2hex, hex2rgb, rgba2css, getCssColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { getColors, computeDynamicColor, getOpacitySlot } from '../theme_data/theme_data.service.js'\nimport { defaultState } from '../../modules/config.js'\n\nexport const applyTheme = (input) => {\n const { rules } = generatePreset(input)\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules.radii} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.colors} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.shadows} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.fonts} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nconst configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth }) =>\n ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth })\n\nconst defaultConfigColumns = configColumns(defaultState)\n\nexport const applyConfig = (config) => {\n const columns = configColumns(config)\n\n if (columns === defaultConfigColumns) {\n return\n }\n\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const rules = Object\n .entries(columns)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`).join(';')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nexport const getCssShadow = (input, usesDropShadow) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n .filter(_ => usesDropShadow ? _.inset : _)\n .map((shad) => [\n shad.x,\n shad.y,\n shad.blur,\n shad.spread\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha),\n shad.inset ? 'inset' : ''\n ]).join(' ')).join(', ')\n}\n\nconst getCssShadowFilter = (input) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n // drop-shadow doesn't support inset or spread\n .filter((shad) => !shad.inset && Number(shad.spread) === 0)\n .map((shad) => [\n shad.x,\n shad.y,\n // drop-shadow's blur is twice as strong compared to box-shadow\n shad.blur / 2\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha)\n ]).join(' '))\n .map(_ => `drop-shadow(${_})`)\n .join(' ')\n}\n\nexport const generateColors = (themeData) => {\n const sourceColors = !themeData.themeEngineVersion\n ? colors2to3(themeData.colors || themeData)\n : themeData.colors || themeData\n\n const { colors, opacity } = getColors(sourceColors, themeData.opacity || {})\n\n const htmlColors = Object.entries(colors)\n .reduce((acc, [k, v]) => {\n if (!v) return acc\n acc.solid[k] = rgb2hex(v)\n acc.complete[k] = typeof v.a === 'undefined' ? rgb2hex(v) : rgba2css(v)\n return acc\n }, { complete: {}, solid: {} })\n return {\n rules: {\n colors: Object.entries(htmlColors.complete)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`)\n .join(';')\n },\n theme: {\n colors: htmlColors.solid,\n opacity\n }\n }\n}\n\nexport const generateRadii = (input) => {\n let inputRadii = input.radii || {}\n // v1 -> v2\n if (typeof input.btnRadius !== 'undefined') {\n inputRadii = Object\n .entries(input)\n .filter(([k, v]) => k.endsWith('Radius'))\n .reduce((acc, e) => { acc[e[0].split('Radius')[0]] = e[1]; return acc }, {})\n }\n const radii = Object.entries(inputRadii).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {\n btn: 4,\n input: 4,\n checkbox: 2,\n panel: 10,\n avatar: 5,\n avatarAlt: 50,\n tooltip: 2,\n attachment: 5,\n chatMessage: inputRadii.panel\n })\n\n return {\n rules: {\n radii: Object.entries(radii).filter(([k, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';')\n },\n theme: {\n radii\n }\n }\n}\n\nexport const generateFonts = (input) => {\n const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, acc[k])\n return acc\n }, {\n interface: {\n family: 'sans-serif'\n },\n input: {\n family: 'inherit'\n },\n post: {\n family: 'inherit'\n },\n postCode: {\n family: 'monospace'\n }\n })\n\n return {\n rules: {\n fonts: Object\n .entries(fonts)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}Font: ${v.family}`).join(';')\n },\n theme: {\n fonts\n }\n }\n}\n\nconst border = (top, shadow) => ({\n x: 0,\n y: top ? 1 : -1,\n blur: 0,\n spread: 0,\n color: shadow ? '#000000' : '#FFFFFF',\n alpha: 0.2,\n inset: true\n})\nconst buttonInsetFakeBorders = [border(true, false), border(false, true)]\nconst inputInsetFakeBorders = [border(true, true), border(false, false)]\nconst hoverGlow = {\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '--faint',\n alpha: 1\n}\n\nexport const DEFAULT_SHADOWS = {\n panel: [{\n x: 1,\n y: 1,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n topBar: [{\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n popup: [{\n x: 2,\n y: 2,\n blur: 3,\n spread: 0,\n color: '#000000',\n alpha: 0.5\n }],\n avatar: [{\n x: 0,\n y: 1,\n blur: 8,\n spread: 0,\n color: '#000000',\n alpha: 0.7\n }],\n avatarStatus: [],\n panelHeader: [],\n button: [{\n x: 0,\n y: 0,\n blur: 2,\n spread: 0,\n color: '#000000',\n alpha: 1\n }, ...buttonInsetFakeBorders],\n buttonHover: [hoverGlow, ...buttonInsetFakeBorders],\n buttonPressed: [hoverGlow, ...inputInsetFakeBorders],\n input: [...inputInsetFakeBorders, {\n x: 0,\n y: 0,\n blur: 2,\n inset: true,\n spread: 0,\n color: '#000000',\n alpha: 1\n }]\n}\nexport const generateShadows = (input, colors) => {\n // TODO this is a small hack for `mod` to work with shadows\n // this is used to get the \"context\" of shadow, i.e. for `mod` properly depend on background color of element\n const hackContextDict = {\n button: 'btn',\n panel: 'bg',\n top: 'topBar',\n popup: 'popover',\n avatar: 'bg',\n panelHeader: 'panel',\n input: 'input'\n }\n\n const cleanInputShadows = Object.fromEntries(\n Object.entries(input.shadows || {})\n .map(([name, shadowSlot]) => [\n name,\n // defaulting color to black to avoid potential problems\n shadowSlot.map(shadowDef => ({ color: '#000000', ...shadowDef }))\n ])\n )\n const inputShadows = cleanInputShadows && !input.themeEngineVersion\n ? shadows2to3(cleanInputShadows, input.opacity)\n : cleanInputShadows || {}\n const shadows = Object.entries({\n ...DEFAULT_SHADOWS,\n ...inputShadows\n }).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const slotFirstWord = slotName.replace(/[A-Z].*$/, '')\n const colorSlotName = hackContextDict[slotFirstWord]\n const isLightOnDark = relativeLuminance(convert(colors[colorSlotName]).rgb) < 0.5\n const mod = isLightOnDark ? 1 : -1\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n color: rgb2hex(computeDynamicColor(\n def.color,\n (variableSlot) => convert(colors[variableSlot]).rgb,\n mod\n ))\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n\n return {\n rules: {\n shadows: Object\n .entries(shadows)\n // TODO for v2.2: if shadow doesn't have non-inset shadows with spread > 0 - optionally\n // convert all non-inset shadows into filter: drop-shadow() to boost performance\n .map(([k, v]) => [\n `--${k}Shadow: ${getCssShadow(v)}`,\n `--${k}ShadowFilter: ${getCssShadowFilter(v)}`,\n `--${k}ShadowInset: ${getCssShadow(v, true)}`\n ].join(';'))\n .join(';')\n },\n theme: {\n shadows\n }\n }\n}\n\nexport const composePreset = (colors, radii, shadows, fonts) => {\n return {\n rules: {\n ...shadows.rules,\n ...colors.rules,\n ...radii.rules,\n ...fonts.rules\n },\n theme: {\n ...shadows.theme,\n ...colors.theme,\n ...radii.theme,\n ...fonts.theme\n }\n }\n}\n\nexport const generatePreset = (input) => {\n const colors = generateColors(input)\n return composePreset(\n colors,\n generateRadii(input),\n generateShadows(input, colors.theme.colors, colors.mod),\n generateFonts(input)\n )\n}\n\nexport const getThemes = () => {\n const cache = 'no-store'\n\n return window.fetch('/static/styles.json', { cache })\n .then((data) => data.json())\n .then((themes) => {\n return Object.entries(themes).map(([k, v]) => {\n let promise = null\n if (typeof v === 'object') {\n promise = Promise.resolve(v)\n } else if (typeof v === 'string') {\n promise = window.fetch(v, { cache })\n .then((data) => data.json())\n .catch((e) => {\n console.error(e)\n return null\n })\n }\n return [k, promise]\n })\n })\n .then((promises) => {\n return promises\n .reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {})\n })\n}\nexport const colors2to3 = (colors) => {\n return Object.entries(colors).reduce((acc, [slotName, color]) => {\n const btnPositions = ['', 'Panel', 'TopBar']\n switch (slotName) {\n case 'lightBg':\n return { ...acc, highlight: color }\n case 'btnText':\n return {\n ...acc,\n ...btnPositions\n .reduce(\n (statePositionAcc, position) =>\n ({ ...statePositionAcc, ['btn' + position + 'Text']: color })\n , {}\n )\n }\n default:\n return { ...acc, [slotName]: color }\n }\n }, {})\n}\n\n/**\n * This handles compatibility issues when importing v2 theme's shadows to current format\n *\n * Back in v2 shadows allowed you to use dynamic colors however those used pure CSS3 variables\n */\nexport const shadows2to3 = (shadows, opacity) => {\n return Object.entries(shadows).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const isDynamic = ({ color = '#000000' }) => color.startsWith('--')\n const getOpacity = ({ color }) => opacity[getOpacitySlot(color.substring(2).split(',')[0])]\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n alpha: isDynamic(def) ? getOpacity(def) || 1 : def.alpha\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n}\n\nexport const getPreset = (val) => {\n return getThemes()\n .then((themes) => themes[val] ? themes[val] : themes['pleroma-dark'])\n .then((theme) => {\n const isV1 = Array.isArray(theme)\n const data = isV1 ? {} : theme.theme\n\n if (isV1) {\n const bg = hex2rgb(theme[1])\n const fg = hex2rgb(theme[2])\n const text = hex2rgb(theme[3])\n const link = hex2rgb(theme[4])\n\n const cRed = hex2rgb(theme[5] || '#FF0000')\n const cGreen = hex2rgb(theme[6] || '#00FF00')\n const cBlue = hex2rgb(theme[7] || '#0000FF')\n const cOrange = hex2rgb(theme[8] || '#E3FF00')\n\n data.colors = { bg, fg, text, link, cRed, cBlue, cGreen, cOrange }\n }\n\n return { theme: data, source: theme.source }\n })\n}\n\nexport const setPreset = (val) => getPreset(val).then(data => applyTheme(data.theme))\n","import { invertLightness, brightness } from 'chromatism'\nimport { alphaBlend, mixrgb } from '../color_convert/color_convert.js'\n/* This is a definition of all layer combinations\n * each key is a topmost layer, each value represents layer underneath\n * this is essentially a simplified tree\n */\nexport const LAYERS = {\n undelay: null, // root\n topBar: null, // no transparency support\n badge: null, // no transparency support\n profileTint: null, // doesn't matter\n fg: null,\n bg: 'underlay',\n highlight: 'bg',\n panel: 'bg',\n popover: 'bg',\n selectedMenu: 'popover',\n btn: 'bg',\n btnPanel: 'panel',\n btnTopBar: 'topBar',\n input: 'bg',\n inputPanel: 'panel',\n inputTopBar: 'topBar',\n alert: 'bg',\n alertPanel: 'panel',\n poll: 'bg',\n chatBg: 'underlay',\n chatMessage: 'chatBg'\n}\n\n/* By default opacity slots have 1 as default opacity\n * this allows redefining it to something else\n */\nexport const DEFAULT_OPACITY = {\n profileTint: 0.5,\n alert: 0.5,\n input: 0.5,\n faint: 0.5,\n underlay: 0.15,\n alertPopup: 0.95\n}\n\n/** SUBJECT TO CHANGE IN THE FUTURE, this is all beta\n * Color and opacity slots definitions. Each key represents a slot.\n *\n * Short-hands:\n * String beginning with `--` - value after dashes treated as sole\n * dependency - i.e. `--value` equivalent to { depends: ['value']}\n * String beginning with `#` - value would be treated as solid color\n * defined in hexadecimal representation (i.e. #FFFFFF) and will be\n * used as default. `#FFFFFF` is equivalent to { default: '#FFFFFF'}\n *\n * Full definition:\n * @property {String[]} depends - color slot names this color depends ones.\n * cyclic dependencies are supported to some extent but not recommended.\n * @property {String} [opacity] - opacity slot used by this color slot.\n * opacity is inherited from parents. To break inheritance graph use null\n * @property {Number} [priority] - EXPERIMENTAL. used to pre-sort slots so\n * that slots with higher priority come earlier\n * @property {Function(mod, ...colors)} [color] - function that will be\n * used to determine the color. By default it just copies first color in\n * dependency list.\n * @argument {Number} mod - `1` (light-on-dark) or `-1` (dark-on-light)\n * depending on background color (for textColor)/given color.\n * @argument {...Object} deps - each argument after mod represents each\n * color from `depends` array. All colors take user customizations into\n * account and represented by { r, g, b } objects.\n * @returns {Object} resulting color, should be in { r, g, b } form\n *\n * @property {Boolean|String} [textColor] - true to mark color slot as text\n * color. This enables automatic text color generation for the slot. Use\n * 'preserve' string if you don't want text color to fall back to\n * black/white. Use 'bw' to only ever use black or white. This also makes\n * following properties required:\n * @property {String} [layer] - which layer the text sit on top on - used\n * to account for transparency in text color calculation\n * layer is inherited from parents. To break inheritance graph use null\n * @property {String} [variant] - which color slot is background (same as\n * above, used to account for transparency)\n */\nexport const SLOT_INHERITANCE = {\n bg: {\n depends: [],\n opacity: 'bg',\n priority: 1\n },\n wallpaper: {\n depends: ['bg'],\n color: (mod, bg) => brightness(-2 * mod, bg).rgb\n },\n fg: {\n depends: [],\n priority: 1\n },\n text: {\n depends: [],\n layer: 'bg',\n opacity: null,\n priority: 1\n },\n underlay: {\n default: '#000000',\n opacity: 'underlay'\n },\n link: {\n depends: ['accent'],\n priority: 1\n },\n accent: {\n depends: ['link'],\n priority: 1\n },\n faint: {\n depends: ['text'],\n opacity: 'faint'\n },\n faintLink: {\n depends: ['link'],\n opacity: 'faint'\n },\n postFaintLink: {\n depends: ['postLink'],\n opacity: 'faint'\n },\n\n cBlue: '#0000ff',\n cRed: '#FF0000',\n cGreen: '#00FF00',\n cOrange: '#E3FF00',\n\n profileBg: {\n depends: ['bg'],\n color: (mod, bg) => ({\n r: Math.floor(bg.r * 0.53),\n g: Math.floor(bg.g * 0.56),\n b: Math.floor(bg.b * 0.59)\n })\n },\n profileTint: {\n depends: ['bg'],\n layer: 'profileTint',\n opacity: 'profileTint'\n },\n\n highlight: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n highlightLightText: {\n depends: ['lightText'],\n layer: 'highlight',\n textColor: true\n },\n highlightPostLink: {\n depends: ['postLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightFaintText: {\n depends: ['faint'],\n layer: 'highlight',\n textColor: true\n },\n highlightFaintLink: {\n depends: ['faintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightText: {\n depends: ['text'],\n layer: 'highlight',\n textColor: true\n },\n highlightLink: {\n depends: ['link'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightIcon: {\n depends: ['highlight', 'highlightText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n popover: {\n depends: ['bg'],\n opacity: 'popover'\n },\n popoverLightText: {\n depends: ['lightText'],\n layer: 'popover',\n textColor: true\n },\n popoverPostLink: {\n depends: ['postLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverFaintText: {\n depends: ['faint'],\n layer: 'popover',\n textColor: true\n },\n popoverFaintLink: {\n depends: ['faintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverText: {\n depends: ['text'],\n layer: 'popover',\n textColor: true\n },\n popoverLink: {\n depends: ['link'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverIcon: {\n depends: ['popover', 'popoverText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedPost: '--highlight',\n selectedPostFaintText: {\n depends: ['highlightFaintText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLightText: {\n depends: ['highlightLightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostPostLink: {\n depends: ['highlightPostLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostText: {\n depends: ['highlightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLink: {\n depends: ['highlightLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostIcon: {\n depends: ['selectedPost', 'selectedPostText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenu: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuLightText: {\n depends: ['highlightLightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintText: {\n depends: ['highlightFaintText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuText: {\n depends: ['highlightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuLink: {\n depends: ['highlightLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuIcon: {\n depends: ['selectedMenu', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenuPopover: {\n depends: ['popover'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuPopoverLightText: {\n depends: ['selectedMenuLightText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintText: {\n depends: ['selectedMenuFaintText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintLink: {\n depends: ['selectedMenuFaintLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverText: {\n depends: ['selectedMenuText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverLink: {\n depends: ['selectedMenuLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverIcon: {\n depends: ['selectedMenuPopover', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n lightText: {\n depends: ['text'],\n layer: 'bg',\n textColor: 'preserve',\n color: (mod, text) => brightness(20 * mod, text).rgb\n },\n\n postLink: {\n depends: ['link'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postGreentext: {\n depends: ['cGreen'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postCyantext: {\n depends: ['cBlue'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n border: {\n depends: ['fg'],\n opacity: 'border',\n color: (mod, fg) => brightness(2 * mod, fg).rgb\n },\n\n poll: {\n depends: ['accent', 'bg'],\n copacity: 'poll',\n color: (mod, accent, bg) => alphaBlend(accent, 0.4, bg)\n },\n pollText: {\n depends: ['text'],\n layer: 'poll',\n textColor: true\n },\n\n icon: {\n depends: ['bg', 'text'],\n inheritsOpacity: false,\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n // Foreground\n fgText: {\n depends: ['text'],\n layer: 'fg',\n textColor: true\n },\n fgLink: {\n depends: ['link'],\n layer: 'fg',\n textColor: 'preserve'\n },\n\n // Panel header\n panel: {\n depends: ['fg'],\n opacity: 'panel'\n },\n panelText: {\n depends: ['text'],\n layer: 'panel',\n textColor: true\n },\n panelFaint: {\n depends: ['fgText'],\n layer: 'panel',\n opacity: 'faint',\n textColor: true\n },\n panelLink: {\n depends: ['fgLink'],\n layer: 'panel',\n textColor: 'preserve'\n },\n\n // Top bar\n topBar: '--fg',\n topBarText: {\n depends: ['fgText'],\n layer: 'topBar',\n textColor: true\n },\n topBarLink: {\n depends: ['fgLink'],\n layer: 'topBar',\n textColor: 'preserve'\n },\n\n // Tabs\n tab: {\n depends: ['btn']\n },\n tabText: {\n depends: ['btnText'],\n layer: 'btn',\n textColor: true\n },\n tabActiveText: {\n depends: ['text'],\n layer: 'bg',\n textColor: true\n },\n\n // Buttons\n btn: {\n depends: ['fg'],\n variant: 'btn',\n opacity: 'btn'\n },\n btnText: {\n depends: ['fgText'],\n layer: 'btn',\n textColor: true\n },\n btnPanelText: {\n depends: ['btnText'],\n layer: 'btnPanel',\n variant: 'btn',\n textColor: true\n },\n btnTopBarText: {\n depends: ['btnText'],\n layer: 'btnTopBar',\n variant: 'btn',\n textColor: true\n },\n\n // Buttons: pressed\n btnPressed: {\n depends: ['btn'],\n layer: 'btn'\n },\n btnPressedText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedPanel: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedTopBar: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnPressed',\n textColor: true\n },\n\n // Buttons: toggled\n btnToggled: {\n depends: ['btn'],\n layer: 'btn',\n color: (mod, btn) => brightness(mod * 20, btn).rgb\n },\n btnToggledText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnToggled',\n textColor: true\n },\n\n // Buttons: disabled\n btnDisabled: {\n depends: ['btn', 'bg'],\n color: (mod, btn, bg) => alphaBlend(btn, 0.25, bg)\n },\n btnDisabledText: {\n depends: ['btnText', 'btnDisabled'],\n layer: 'btn',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledPanelText: {\n depends: ['btnPanelText', 'btnDisabled'],\n layer: 'btnPanel',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledTopBarText: {\n depends: ['btnTopBarText', 'btnDisabled'],\n layer: 'btnTopBar',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n\n // Input fields\n input: {\n depends: ['fg'],\n opacity: 'input'\n },\n inputText: {\n depends: ['text'],\n layer: 'input',\n textColor: true\n },\n inputPanelText: {\n depends: ['panelText'],\n layer: 'inputPanel',\n variant: 'input',\n textColor: true\n },\n inputTopbarText: {\n depends: ['topBarText'],\n layer: 'inputTopBar',\n variant: 'input',\n textColor: true\n },\n\n alertError: {\n depends: ['cRed'],\n opacity: 'alert'\n },\n alertErrorText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertError',\n textColor: true\n },\n alertErrorPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertError',\n textColor: true\n },\n\n alertWarning: {\n depends: ['cOrange'],\n opacity: 'alert'\n },\n alertWarningText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertWarning',\n textColor: true\n },\n alertWarningPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertWarning',\n textColor: true\n },\n\n alertSuccess: {\n depends: ['cGreen'],\n opacity: 'alert'\n },\n alertSuccessText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertSuccess',\n textColor: true\n },\n alertSuccessPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertSuccess',\n textColor: true\n },\n\n alertNeutral: {\n depends: ['text'],\n opacity: 'alert'\n },\n alertNeutralText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertNeutral',\n color: (mod, text) => invertLightness(text).rgb,\n textColor: true\n },\n alertNeutralPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertNeutral',\n textColor: true\n },\n\n alertPopupError: {\n depends: ['alertError'],\n opacity: 'alertPopup'\n },\n alertPopupErrorText: {\n depends: ['alertErrorText'],\n layer: 'popover',\n variant: 'alertPopupError',\n textColor: true\n },\n\n alertPopupWarning: {\n depends: ['alertWarning'],\n opacity: 'alertPopup'\n },\n alertPopupWarningText: {\n depends: ['alertWarningText'],\n layer: 'popover',\n variant: 'alertPopupWarning',\n textColor: true\n },\n\n alertPopupSuccess: {\n depends: ['alertSuccess'],\n opacity: 'alertPopup'\n },\n alertPopupSuccessText: {\n depends: ['alertSuccessText'],\n layer: 'popover',\n variant: 'alertPopupSuccess',\n textColor: true\n },\n\n alertPopupNeutral: {\n depends: ['alertNeutral'],\n opacity: 'alertPopup'\n },\n alertPopupNeutralText: {\n depends: ['alertNeutralText'],\n layer: 'popover',\n variant: 'alertPopupNeutral',\n textColor: true\n },\n\n badgeNotification: '--cRed',\n badgeNotificationText: {\n depends: ['text', 'badgeNotification'],\n layer: 'badge',\n variant: 'badgeNotification',\n textColor: 'bw'\n },\n\n badgeNeutral: '--cGreen',\n badgeNeutralText: {\n depends: ['text', 'badgeNeutral'],\n layer: 'badge',\n variant: 'badgeNeutral',\n textColor: 'bw'\n },\n\n chatBg: {\n depends: ['bg']\n },\n\n chatMessageIncomingBg: {\n depends: ['chatBg']\n },\n\n chatMessageIncomingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: true\n },\n\n chatMessageIncomingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: 'preserve'\n },\n\n chatMessageIncomingBorder: {\n depends: ['border'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n },\n\n chatMessageOutgoingBg: {\n depends: ['chatMessageIncomingBg'],\n color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb\n },\n\n chatMessageOutgoingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: true\n },\n\n chatMessageOutgoingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: 'preserve'\n },\n\n chatMessageOutgoingBorder: {\n depends: ['chatMessageOutgoingBg'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n }\n}\n","import { convert, brightness, contrastRatio } from 'chromatism'\nimport { alphaBlendLayers, getTextColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { LAYERS, DEFAULT_OPACITY, SLOT_INHERITANCE } from './pleromafe.js'\n\n/*\n * # What's all this?\n * Here be theme engine for pleromafe. All of this supposed to ease look\n * and feel customization, making widget styles and make developer's life\n * easier when it comes to supporting themes. Like many other theme systems\n * it operates on color definitions, or \"slots\" - for example you define\n * \"button\" color slot and then in UI component Button's CSS you refer to\n * it as a CSS3 Variable.\n *\n * Some applications allow you to customize colors for certain things.\n * Some UI toolkits allow you to define colors for each type of widget.\n * Most of them are pretty barebones and have no assistance for common\n * problems and cases, and in general themes themselves are very hard to\n * maintain in all aspects. This theme engine tries to solve all of the\n * common problems with themes.\n *\n * You don't have redefine several similar colors if you just want to\n * change one color - all color slots are derived from other ones, so you\n * can have at least one or two \"basic\" colors defined and have all other\n * components inherit and modify basic ones.\n *\n * You don't have to test contrast ratio for colors or pick text color for\n * each element even if you have light-on-dark elements in dark-on-light\n * theme.\n *\n * You don't have to maintain order of code for inheriting slots from othet\n * slots - dependency graph resolving does it for you.\n */\n\n/* This indicates that this version of code outputs similar theme data and\n * should be incremented if output changes - for instance if getTextColor\n * function changes and older themes no longer render text colors as\n * author intended previously.\n */\nexport const CURRENT_VERSION = 3\n\nexport const getLayersArray = (layer, data = LAYERS) => {\n const array = [layer]\n let parent = data[layer]\n while (parent) {\n array.unshift(parent)\n parent = data[parent]\n }\n return array\n}\n\nexport const getLayers = (layer, variant = layer, opacitySlot, colors, opacity) => {\n return getLayersArray(layer).map((currentLayer) => ([\n currentLayer === layer\n ? colors[variant]\n : colors[currentLayer],\n currentLayer === layer\n ? opacity[opacitySlot] || 1\n : opacity[currentLayer]\n ]))\n}\n\nconst getDependencies = (key, inheritance) => {\n const data = inheritance[key]\n if (typeof data === 'string' && data.startsWith('--')) {\n return [data.substring(2)]\n } else {\n if (data === null) return []\n const { depends, layer, variant } = data\n const layerDeps = layer\n ? getLayersArray(layer).map(currentLayer => {\n return currentLayer === layer\n ? variant || layer\n : currentLayer\n })\n : []\n if (Array.isArray(depends)) {\n return [...depends, ...layerDeps]\n } else {\n return [...layerDeps]\n }\n }\n}\n\n/**\n * Sorts inheritance object topologically - dependant slots come after\n * dependencies\n *\n * @property {Object} inheritance - object defining the nodes\n * @property {Function} getDeps - function that returns dependencies for\n * given value and inheritance object.\n * @returns {String[]} keys of inheritance object, sorted in topological\n * order. Additionally, dependency-less nodes will always be first in line\n */\nexport const topoSort = (\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n // This is an implementation of https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm\n\n const allKeys = Object.keys(inheritance)\n const whites = new Set(allKeys)\n const grays = new Set()\n const blacks = new Set()\n const unprocessed = [...allKeys]\n const output = []\n\n const step = (node) => {\n if (whites.has(node)) {\n // Make node \"gray\"\n whites.delete(node)\n grays.add(node)\n // Do step for each node connected to it (one way)\n getDeps(node, inheritance).forEach(step)\n // Make node \"black\"\n grays.delete(node)\n blacks.add(node)\n // Put it into the output list\n output.push(node)\n } else if (grays.has(node)) {\n console.debug('Cyclic depenency in topoSort, ignoring')\n output.push(node)\n } else if (blacks.has(node)) {\n // do nothing\n } else {\n throw new Error('Unintended condition in topoSort!')\n }\n }\n while (unprocessed.length > 0) {\n step(unprocessed.pop())\n }\n\n // The index thing is to make sorting stable on browsers\n // where Array.sort() isn't stable\n return output.map((data, index) => ({ data, index })).sort(({ data: a, index: ai }, { data: b, index: bi }) => {\n const depsA = getDeps(a, inheritance).length\n const depsB = getDeps(b, inheritance).length\n\n if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return ai - bi\n if (depsA === 0 && depsB !== 0) return -1\n if (depsB === 0 && depsA !== 0) return 1\n return 0 // failsafe, shouldn't happen?\n }).map(({ data }) => data)\n}\n\nconst expandSlotValue = (value) => {\n if (typeof value === 'object') return value\n return {\n depends: value.startsWith('--') ? [value.substring(2)] : [],\n default: value.startsWith('#') ? value : undefined\n }\n}\n/**\n * retrieves opacity slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * TODO refactor this\n */\nexport const getOpacitySlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (value.opacity === null) return\n if (value.opacity) return value.opacity\n const findInheritedOpacity = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.opacity || dependency === null) {\n return dependency.opacity\n } else if (dependency.depends && visited.includes(depSlot)) {\n return findInheritedOpacity(depSlot, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedOpacity(k)\n }\n}\n\n/**\n * retrieves layer slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * this is basically copypaste of getOpacitySlot except it checks if key is\n * in LAYERS\n * TODO refactor this\n */\nexport const getLayerSlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (LAYERS[k]) return k\n if (value.layer === null) return\n if (value.layer) return value.layer\n const findInheritedLayer = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.layer || dependency === null) {\n return dependency.layer\n } else if (dependency.depends) {\n return findInheritedLayer(dependency, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedLayer(k)\n }\n}\n\n/**\n * topologically sorted SLOT_INHERITANCE\n */\nexport const SLOT_ORDERED = topoSort(\n Object.entries(SLOT_INHERITANCE)\n .sort(([aK, aV], [bK, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0))\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})\n)\n\n/**\n * All opacity slots used in color slots, their default values and affected\n * color slots.\n */\nexport const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k, v]) => {\n const opacity = getOpacitySlot(k, SLOT_INHERITANCE, getDependencies)\n if (opacity) {\n return {\n ...acc,\n [opacity]: {\n defaultValue: DEFAULT_OPACITY[opacity] || 1,\n affectedSlots: [...((acc[opacity] && acc[opacity].affectedSlots) || []), k]\n }\n }\n } else {\n return acc\n }\n}, {})\n\n/**\n * Handle dynamic color\n */\nexport const computeDynamicColor = (sourceColor, getColor, mod) => {\n if (typeof sourceColor !== 'string' || !sourceColor.startsWith('--')) return sourceColor\n let targetColor = null\n // Color references other color\n const [variable, modifier] = sourceColor.split(/,/g).map(str => str.trim())\n const variableSlot = variable.substring(2)\n targetColor = getColor(variableSlot)\n if (modifier) {\n targetColor = brightness(Number.parseFloat(modifier) * mod, targetColor).rgb\n }\n return targetColor\n}\n\n/**\n * THE function you want to use. Takes provided colors and opacities\n * value and uses inheritance data to figure out color needed for the slot.\n */\nexport const getColors = (sourceColors, sourceOpacity) => SLOT_ORDERED.reduce(({ colors, opacity }, key) => {\n const sourceColor = sourceColors[key]\n const value = expandSlotValue(SLOT_INHERITANCE[key])\n const deps = getDependencies(key, SLOT_INHERITANCE)\n const isTextColor = !!value.textColor\n const variant = value.variant || value.layer\n\n let backgroundColor = null\n\n if (isTextColor) {\n backgroundColor = alphaBlendLayers(\n { ...(colors[deps[0]] || convert(sourceColors[key] || '#FF00FF').rgb) },\n getLayers(\n getLayerSlot(key) || 'bg',\n variant || 'bg',\n getOpacitySlot(variant),\n colors,\n opacity\n )\n )\n } else if (variant && variant !== key) {\n backgroundColor = colors[variant] || convert(sourceColors[variant]).rgb\n } else {\n backgroundColor = colors.bg || convert(sourceColors.bg)\n }\n\n const isLightOnDark = relativeLuminance(backgroundColor) < 0.5\n const mod = isLightOnDark ? 1 : -1\n\n let outputColor = null\n if (sourceColor) {\n // Color is defined in source color\n let targetColor = sourceColor\n if (targetColor === 'transparent') {\n // We take only layers below current one\n const layers = getLayers(\n getLayerSlot(key),\n key,\n getOpacitySlot(key) || key,\n colors,\n opacity\n ).slice(0, -1)\n targetColor = {\n ...alphaBlendLayers(\n convert('#FF00FF').rgb,\n layers\n ),\n a: 0\n }\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('--')) {\n targetColor = computeDynamicColor(\n sourceColor,\n variableSlot => colors[variableSlot] || sourceColors[variableSlot],\n mod\n )\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('#')) {\n targetColor = convert(targetColor).rgb\n }\n outputColor = { ...targetColor }\n } else if (value.default) {\n // same as above except in object form\n outputColor = convert(value.default).rgb\n } else {\n // calculate color\n const defaultColorFunc = (mod, dep) => ({ ...dep })\n const colorFunc = value.color || defaultColorFunc\n\n if (value.textColor) {\n if (value.textColor === 'bw') {\n outputColor = contrastRatio(backgroundColor).rgb\n } else {\n let color = { ...colors[deps[0]] }\n if (value.color) {\n color = colorFunc(mod, ...deps.map((dep) => ({ ...colors[dep] })))\n }\n outputColor = getTextColor(\n backgroundColor,\n { ...color },\n value.textColor === 'preserve'\n )\n }\n } else {\n // background color case\n outputColor = colorFunc(\n mod,\n ...deps.map((dep) => ({ ...colors[dep] }))\n )\n }\n }\n if (!outputColor) {\n throw new Error('Couldn\\'t generate color for ' + key)\n }\n\n const opacitySlot = value.opacity || getOpacitySlot(key)\n const ownOpacitySlot = value.opacity\n\n if (ownOpacitySlot === null) {\n outputColor.a = 1\n } else if (sourceColor === 'transparent') {\n outputColor.a = 0\n } else {\n const opacityOverriden = ownOpacitySlot && sourceOpacity[opacitySlot] !== undefined\n\n const dependencySlot = deps[0]\n const dependencyColor = dependencySlot && colors[dependencySlot]\n\n if (!ownOpacitySlot && dependencyColor && !value.textColor && ownOpacitySlot !== null) {\n // Inheriting color from dependency (weird, i know)\n // except if it's a text color or opacity slot is set to 'null'\n outputColor.a = dependencyColor.a\n } else if (!dependencyColor && !opacitySlot) {\n // Remove any alpha channel if no dependency and no opacitySlot found\n delete outputColor.a\n } else {\n // Otherwise try to assign opacity\n if (dependencyColor && dependencyColor.a === 0) {\n // transparent dependency shall make dependents transparent too\n outputColor.a = 0\n } else {\n // Otherwise check if opacity is overriden and use that or default value instead\n outputColor.a = Number(\n opacityOverriden\n ? sourceOpacity[opacitySlot]\n : (OPACITIES[opacitySlot] || {}).defaultValue\n )\n }\n }\n }\n\n if (Number.isNaN(outputColor.a) || outputColor.a === undefined) {\n outputColor.a = 1\n }\n\n if (opacitySlot) {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity: { ...opacity, [opacitySlot]: outputColor.a }\n }\n } else {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity\n }\n }\n}, { colors: {}, opacity: {} })\n","import { hex2rgb } from '../color_convert/color_convert.js'\nconst highlightStyle = (prefs) => {\n if (prefs === undefined) return\n const { color, type } = prefs\n if (typeof color !== 'string') return\n const rgb = hex2rgb(color)\n if (rgb == null) return\n const solidColor = `rgb(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)})`\n const tintColor = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .1)`\n const tintColor2 = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .2)`\n const customProps = {\n '--____highlight-solidColor': solidColor,\n '--____highlight-tintColor': tintColor,\n '--____highlight-tintColor2': tintColor2\n }\n if (type === 'striped') {\n return {\n backgroundImage: [\n 'repeating-linear-gradient(135deg,',\n `${tintColor} ,`,\n `${tintColor} 20px,`,\n `${tintColor2} 20px,`,\n `${tintColor2} 40px`\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n } else if (type === 'solid') {\n return {\n backgroundColor: tintColor2,\n ...customProps\n }\n } else if (type === 'side') {\n return {\n backgroundImage: [\n 'linear-gradient(to right,',\n `${solidColor} ,`,\n `${solidColor} 2px,`,\n 'transparent 6px'\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n }\n}\n\nconst highlightClass = (user) => {\n return 'USER____' + user.screen_name\n .replace(/\\./g, '_')\n .replace(/@/g, '_AT_')\n}\n\nexport {\n highlightClass,\n highlightStyle\n}\n","import { includes } from 'lodash'\n\nconst generateProfileLink = (id, screenName, restrictedNicknames) => {\n const complicated = !screenName || (isExternal(screenName) || includes(restrictedNicknames, screenName))\n return {\n name: (complicated ? 'external-user-profile' : 'user-profile'),\n params: (complicated ? { id } : { name: screenName })\n }\n}\n\nconst isExternal = screenName => screenName && screenName.includes('@')\n\nexport default generateProfileLink\n","<template>\n <button\n v-if=\"usePlaceholder\"\n class=\"Attachment -placeholder button-unstyled\"\n :class=\"classNames\"\n @click=\"openModal\"\n >\n <a\n v-if=\"type !== 'html'\"\n class=\"placeholder\"\n target=\"_blank\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent\n >\n <FAIcon :icon=\"placeholderIconClass\" />\n <b>{{ nsfw ? \"NSFW / \" : \"\" }}</b>{{ edit ? '' : placeholderName }}\n </a>\n <div\n v-if=\"edit || remove\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || localDescription || showDescription)\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </button>\n <div\n v-else\n class=\"Attachment\"\n :class=\"classNames\"\n >\n <div\n v-show=\"!isEmpty\"\n class=\"attachment-wrapper\"\n >\n <a\n v-if=\"hidden\"\n class=\"image-container\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <img\n :key=\"nsfwImage\"\n class=\"nsfw\"\n :src=\"nsfwImage\"\n >\n <FAIcon\n v-if=\"type === 'video'\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </a>\n <div\n v-if=\"!hidden\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"type === 'flash' && flashLoaded\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.attachment_stop_flash')\"\n @click.prevent=\"stopFlash\"\n >\n <FAIcon icon=\"stop\" />\n </button>\n <button\n v-if=\"attachment.description && size !== 'small' && !edit && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_description')\"\n @click.prevent=\"toggleDescription\"\n >\n <FAIcon icon=\"align-right\" />\n </button>\n <button\n v-if=\"!useModal && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_in_modal')\"\n @click.prevent=\"openModalForce\"\n >\n <FAIcon icon=\"search-plus\" />\n </button>\n <button\n v-if=\"nsfw && hideNsfwLocal\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.hide_attachment')\"\n @click.prevent=\"toggleHidden\"\n >\n <FAIcon icon=\"times\" />\n </button>\n <button\n v-if=\"shiftUp\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_up')\"\n @click.prevent=\"onShiftUp\"\n >\n <FAIcon icon=\"chevron-left\" />\n </button>\n <button\n v-if=\"shiftDn\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_down')\"\n @click.prevent=\"onShiftDn\"\n >\n <FAIcon icon=\"chevron-right\" />\n </button>\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.remove_attachment')\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n\n <a\n v-if=\"type === 'image' && (!hidden || preloadImage)\"\n class=\"image-container\"\n :class=\"{'-hidden': hidden && preloadImage }\"\n :href=\"attachment.url\"\n target=\"_blank\"\n @click.stop.prevent=\"openModal\"\n >\n <StillImage\n class=\"image\"\n :referrerpolicy=\"referrerpolicy\"\n :mimetype=\"attachment.mimetype\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n :image-load-handler=\"onImageLoad\"\n :alt=\"attachment.description\"\n />\n </a>\n\n <a\n v-if=\"type === 'unknown' && !hidden\"\n class=\"placeholder-container\"\n :href=\"attachment.url\"\n target=\"_blank\"\n >\n <FAIcon\n :size=\"compact ? '2x' : '5x'\"\n :icon=\"placeholderIconClass\"\n :title=\"localDescription\"\n />\n <p v-if=\"!compact\">\n {{ localDescription }}\n </p>\n </a>\n\n <component\n :is=\"videoTag\"\n v-if=\"type === 'video' && !hidden\"\n class=\"video-container\"\n :class=\"{ 'button-unstyled': 'isModal' }\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <VideoAttachment\n class=\"video\"\n :attachment=\"attachment\"\n :controls=\"!useModal\"\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n <FAIcon\n v-if=\"useModal\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </component>\n\n <span\n v-if=\"type === 'audio' && !hidden\"\n class=\"audio-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <audio\n v-if=\"type === 'audio'\"\n :src=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n controls\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n </span>\n\n <div\n v-if=\"type === 'html' && attachment.oembed\"\n class=\"oembed-container\"\n @click.prevent=\"linkClicked\"\n >\n <div\n v-if=\"attachment.thumb_url\"\n class=\"image\"\n >\n <img :src=\"attachment.thumb_url\">\n </div>\n <div class=\"text\">\n <!-- eslint-disable vue/no-v-html -->\n <h1><a :href=\"attachment.url\">{{ attachment.oembed.title }}</a></h1>\n <div v-html=\"attachment.oembed.oembedHTML\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n\n <span\n v-if=\"type === 'flash' && !hidden\"\n class=\"flash-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <Flash\n ref=\"flash\"\n class=\"flash\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n @playerOpened=\"setFlashLoaded(true)\"\n @playerClosed=\"setFlashLoaded(false)\"\n />\n </span>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || (localDescription && showDescription))\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./attachment.js\"></script>\n\n<style src=\"./attachment.scss\" lang=\"scss\"></style>\n","import StillImage from '../still-image/still-image.vue'\nimport Flash from '../flash/flash.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport nsfwImage from '../../assets/nsfw.png'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n)\n\nconst Attachment = {\n props: [\n 'attachment',\n 'compact',\n 'description',\n 'hideDescription',\n 'nsfw',\n 'size',\n 'setMedia',\n 'remove',\n 'shiftUp',\n 'shiftDn',\n 'edit'\n ],\n data () {\n return {\n localDescription: this.description || this.attachment.description,\n nsfwImage: this.$store.state.instance.nsfwCensorImage || nsfwImage,\n hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw,\n preloadImage: this.$store.getters.mergedConfig.preloadImage,\n loading: false,\n img: fileTypeService.fileType(this.attachment.mimetype) === 'image' && document.createElement('img'),\n modalOpen: false,\n showHidden: false,\n flashLoaded: false,\n showDescription: false\n }\n },\n components: {\n Flash,\n StillImage,\n VideoAttachment\n },\n computed: {\n classNames () {\n return [\n {\n '-loading': this.loading,\n '-nsfw-placeholder': this.hidden,\n '-editable': this.edit !== undefined,\n '-compact': this.compact\n },\n '-type-' + this.type,\n this.size && '-size-' + this.size,\n `-${this.useContainFit ? 'contain' : 'cover'}-fit`\n ]\n },\n usePlaceholder () {\n return this.size === 'hide'\n },\n useContainFit () {\n return this.$store.getters.mergedConfig.useContainFit\n },\n placeholderName () {\n if (this.attachment.description === '' || !this.attachment.description) {\n return this.type.toUpperCase()\n }\n return this.attachment.description\n },\n placeholderIconClass () {\n if (this.type === 'image') return 'image'\n if (this.type === 'video') return 'video'\n if (this.type === 'audio') return 'music'\n return 'file'\n },\n referrerpolicy () {\n return this.$store.state.instance.mediaProxyAvailable ? '' : 'no-referrer'\n },\n type () {\n return fileTypeService.fileType(this.attachment.mimetype)\n },\n hidden () {\n return this.nsfw && this.hideNsfwLocal && !this.showHidden\n },\n isEmpty () {\n return (this.type === 'html' && !this.attachment.oembed)\n },\n useModal () {\n let modalTypes = []\n switch (this.size) {\n case 'hide':\n case 'small':\n modalTypes = ['image', 'video', 'audio', 'flash']\n break\n default:\n modalTypes = this.mergedConfig.playVideosInModal\n ? ['image', 'video', 'flash']\n : ['image']\n break\n }\n return modalTypes.includes(this.type)\n },\n videoTag () {\n return this.useModal ? 'button' : 'span'\n },\n ...mapGetters(['mergedConfig'])\n },\n watch: {\n 'attachment.description' (newVal) {\n this.localDescription = newVal\n },\n localDescription (newVal) {\n this.onEdit(newVal)\n }\n },\n methods: {\n linkClicked ({ target }) {\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n openModal (event) {\n if (this.useModal) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n } else if (this.type === 'unknown') {\n window.open(this.attachment.url)\n }\n },\n openModalForce (event) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n },\n onEdit (event) {\n this.edit && this.edit(this.attachment, event)\n },\n onRemove () {\n this.remove && this.remove(this.attachment)\n },\n onShiftUp () {\n this.shiftUp && this.shiftUp(this.attachment)\n },\n onShiftDn () {\n this.shiftDn && this.shiftDn(this.attachment)\n },\n stopFlash () {\n this.$refs.flash.closePlayer()\n },\n setFlashLoaded (event) {\n this.flashLoaded = event\n },\n toggleDescription () {\n this.showDescription = !this.showDescription\n },\n toggleHidden (event) {\n if (\n (this.mergedConfig.useOneClickNsfw && !this.showHidden) &&\n (this.type !== 'video' || this.mergedConfig.playVideosInModal)\n ) {\n this.openModal(event)\n return\n }\n if (this.img && !this.preloadImage) {\n if (this.img.onload) {\n this.img.onload()\n } else {\n this.loading = true\n this.img.src = this.attachment.url\n this.img.onload = () => {\n this.loading = false\n this.showHidden = !this.showHidden\n }\n }\n } else {\n this.showHidden = !this.showHidden\n }\n },\n onImageLoad (image) {\n const width = image.naturalWidth\n const height = image.naturalHeight\n this.$emit('naturalSizeLoad', { id: this.attachment.id, width, height })\n }\n }\n}\n\nexport default Attachment\n","import { render } from \"./attachment.vue?vue&type=template&id=581d66b2\"\nimport script from \"./attachment.js?vue&type=script&lang=js\"\nexport * from \"./attachment.js?vue&type=script&lang=js\"\n\nimport \"./attachment.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"avatars\">\n <router-link\n v-for=\"user in slicedUsers\"\n :key=\"user.id\"\n :to=\"userProfileLink(user)\"\n class=\"avatars-item\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./avatar_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst AvatarList = {\n props: ['users'],\n computed: {\n slicedUsers () {\n return this.users ? this.users.slice(0, 15) : []\n }\n },\n components: {\n UserAvatar\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default AvatarList\n","import { render } from \"./avatar_list.vue?vue&type=template&id=432beb66\"\nimport script from \"./avatar_list.js?vue&type=script&lang=js\"\nexport * from \"./avatar_list.js?vue&type=script&lang=js\"\n\nimport \"./avatar_list.vue?vue&type=style&index=0&id=432beb66&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"basic-user-card\">\n <router-link\n :to=\"userProfileLink(user)\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"user.id\"\n :overlay-centers=\"true\"\n overlay-centers-selector=\".avatar\"\n >\n <UserAvatar\n class=\"user-avatar avatar\"\n :user=\"user\"\n @click.prevent\n />\n </UserPopover>\n </router-link>\n <div\n class=\"basic-user-card-collapsed-content\"\n >\n <div\n :title=\"user.name\"\n class=\"basic-user-card-user-name\"\n >\n <RichContent\n class=\"basic-user-card-user-name-value\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </div>\n <div>\n <user-link\n class=\"basic-user-card-screen-name\"\n :user=\"user\"\n />\n </div>\n <slot />\n </div>\n </div>\n</template>\n\n<script src=\"./basic_user_card.js\"></script>\n\n<style lang=\"scss\">\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n</style>\n","import UserPopover from '../user_popover/user_popover.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst BasicUserCard = {\n props: [\n 'user'\n ],\n components: {\n UserPopover,\n UserAvatar,\n RichContent,\n UserLink\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default BasicUserCard\n","import { render } from \"./basic_user_card.vue?vue&type=template&id=d8a50982\"\nimport script from \"./basic_user_card.js?vue&type=script&lang=js\"\nexport * from \"./basic_user_card.js?vue&type=script&lang=js\"\n\nimport \"./basic_user_card.vue?vue&type=style&index=0&id=d8a50982&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"checkbox\"\n :class=\"{ disabled, indeterminate }\"\n >\n <input\n type=\"checkbox\"\n class=\"visible-for-screenreader-only\"\n :disabled=\"disabled\"\n :checked=\"modelValue\"\n :indeterminate=\"indeterminate\"\n @change=\"$emit('update:modelValue', $event.target.checked)\"\n >\n <i\n class=\"checkbox-indicator\"\n :aria-hidden=\"true\"\n />\n <span\n v-if=\"!!$slots.default\"\n class=\"label\"\n >\n <slot />\n </span>\n </label>\n</template>\n\n<script>\nexport default {\n props: [\n 'modelValue',\n 'indeterminate',\n 'disabled'\n ],\n emits: ['update:modelValue']\n}\n</script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.checkbox {\n position: relative;\n display: inline-block;\n min-height: 1.2em;\n\n &-indicator {\n position: relative;\n padding-left: 1.2em;\n }\n\n &-indicator::before {\n position: absolute;\n right: 0;\n top: 0;\n display: block;\n content: \"✓\";\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: $fallback--checkboxRadius;\n border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1em;\n font-size: 1.1em;\n color: transparent;\n overflow: hidden;\n box-sizing: border-box;\n }\n\n &.disabled {\n .checkbox-indicator::before,\n .label {\n opacity: 0.5;\n }\n\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=\"checkbox\"] {\n &:checked + .checkbox-indicator::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:indeterminate + .checkbox-indicator::before {\n content: \"–\";\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n }\n\n & > span {\n margin-left: 0.5em;\n }\n}\n</style>\n","import { render } from \"./checkbox.vue?vue&type=template&id=66e895aa\"\nimport script from \"./checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./checkbox.vue?vue&type=script&lang=js\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=66e895aa&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import DialogModal from '../dialog_modal/dialog_modal.vue'\n\n/**\n * This component emits the following events:\n * cancelled, emitted when the action should not be performed;\n * accepted, emitted when the action should be performed;\n *\n * The caller should close this dialog after receiving any of the two events.\n */\nconst ConfirmModal = {\n components: {\n DialogModal\n },\n props: {\n title: {\n type: String\n },\n cancelText: {\n type: String\n },\n confirmText: {\n type: String\n }\n },\n computed: {\n },\n methods: {\n onCancel () {\n this.$emit('cancelled')\n },\n onAccept () {\n this.$emit('accepted')\n }\n }\n}\n\nexport default ConfirmModal\n","import { render } from \"./confirm_modal.vue?vue&type=template&id=c74bcd96\"\nimport script from \"./confirm_modal.js?vue&type=script&lang=js\"\nexport * from \"./confirm_modal.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <dialog-modal\n v-body-scroll-lock=\"true\"\n class=\"confirm-modal\"\n :on-cancel=\"onCancel\"\n >\n <template #header>\n <span v-text=\"title\" />\n </template>\n\n <slot />\n\n <template #footer>\n <button\n class=\"btn button-default\"\n @click.prevent=\"onAccept\"\n v-text=\"confirmText\"\n />\n\n <button\n class=\"btn button-default\"\n @click.prevent=\"onCancel\"\n v-text=\"cancelText\"\n />\n </template>\n </dialog-modal>\n</template>\n\n<script src=\"./confirm_modal.js\"></script>\n","<template>\n <span\n :class=\"{ 'dark-overlay': darkOverlay }\"\n @click.self.stop=\"onCancel()\"\n >\n <div\n class=\"dialog-modal panel panel-default\"\n @click.stop=\"\"\n >\n <div class=\"panel-heading dialog-modal-heading\">\n <div class=\"title\">\n <slot name=\"header\" />\n </div>\n </div>\n <div class=\"dialog-modal-content\">\n <slot name=\"default\" />\n </div>\n <div class=\"dialog-modal-footer user-interactions panel-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </span>\n</template>\n\n<script src=\"./dialog_modal.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgb(27 31 35 / 50%);\n z-index: 2000;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 2001;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: 0.5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: 0.5rem;\n }\n }\n}\n\n</style>\n","const DialogModal = {\n props: {\n darkOverlay: {\n default: true,\n type: Boolean\n },\n onCancel: {\n default: () => {},\n type: Function\n }\n }\n}\n\nexport default DialogModal\n","import { render } from \"./dialog_modal.vue?vue&type=template&id=5b856fbc\"\nimport script from \"./dialog_modal.js?vue&type=script&lang=js\"\nexport * from \"./dialog_modal.js?vue&type=script&lang=js\"\n\nimport \"./dialog_modal.vue?vue&type=style&index=0&id=5b856fbc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n ref=\"root\"\n class=\"emoji-input\"\n :class=\"{ 'with-picker': !hideEmojiButton }\"\n >\n <slot\n :id=\"'textbox-' + randomSeed\"\n :aria-owns=\"suggestionListId\"\n aria-autocomplete=\"both\"\n :aria-expanded=\"showSuggestions\"\n :aria-activedescendant=\"(!showSuggestions || highlighted === -1) ? '' : suggestionItemId(highlighted)\"\n />\n <!-- TODO: make the 'x' disappear if at the end maybe? -->\n <div\n ref=\"hiddenOverlay\"\n class=\"hidden-overlay\"\n :style=\"overlayStyle\"\n :aria-hidden=\"true\"\n >\n <span>{{ preText }}</span>\n <span\n ref=\"hiddenOverlayCaret\"\n class=\"caret\"\n >x</span>\n <span>{{ postText }}</span>\n </div>\n <screen-reader-notice\n ref=\"screenReaderNotice\"\n aria-live=\"assertive\"\n />\n <template v-if=\"enableEmojiPicker\">\n <button\n v-if=\"!hideEmojiButton\"\n class=\"button-unstyled emoji-picker-icon\"\n type=\"button\"\n :title=\"$t('emoji.add_emoji')\"\n @click.prevent=\"togglePicker\"\n >\n <FAIcon :icon=\"['far', 'smile-beam']\" />\n </button>\n <EmojiPicker\n v-if=\"enableEmojiPicker\"\n ref=\"picker\"\n :enable-sticker-picker=\"enableStickerPicker\"\n class=\"emoji-picker-panel\"\n @emoji=\"insert\"\n @sticker-uploaded=\"onStickerUploaded\"\n @sticker-upload-failed=\"onStickerUploadFailed\"\n @show=\"onPickerShown\"\n @close=\"onPickerClosed\"\n />\n </template>\n <Popover\n ref=\"suggestorPopover\"\n class=\"autocomplete-panel\"\n placement=\"bottom\"\n :trigger-attrs=\"{ 'aria-hidden': true }\"\n >\n <template #content>\n <div\n :id=\"suggestionListId\"\n ref=\"panel-body\"\n class=\"autocomplete-panel-body\"\n role=\"listbox\"\n >\n <div\n v-for=\"(suggestion, index) in suggestions\"\n :id=\"suggestionItemId(index)\"\n :key=\"index\"\n class=\"autocomplete-item\"\n role=\"option\"\n :class=\"{ highlighted: index === highlighted }\"\n :aria-label=\"autoCompleteItemLabel(suggestion)\"\n :aria-selected=\"index === highlighted\"\n @click.stop.prevent=\"onClick($event, suggestion)\"\n >\n <span class=\"image\">\n <img\n v-if=\"suggestion.img\"\n :src=\"suggestion.img\"\n >\n <span v-else>{{ suggestion.replacement }}</span>\n </span>\n <div class=\"label\">\n <span\n v-if=\"suggestion.user\"\n class=\"displayText\"\n >\n {{ suggestion.displayText }}<UnicodeDomainIndicator\n :user=\"suggestion.user\"\n :at=\"false\"\n />\n </span>\n <span\n v-if=\"!suggestion.user\"\n class=\"displayText\"\n >\n {{ maybeLocalizedEmojiName(suggestion) }}\n </span>\n <span class=\"detailText\">{{ suggestion.detailText }}</span>\n </div>\n </div>\n </div>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./emoji_input.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none;\n }\n }\n\n input,\n textarea {\n flex: 1 0 auto;\n }\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n\n /* DEBUG STUFF */\n color: red;\n\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgb(0 0 0 / 40%);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { reduce, find } from 'lodash'\n\nexport const replaceWord = (str, toReplace, replacement) => {\n return str.slice(0, toReplace.start) + replacement + str.slice(toReplace.end)\n}\n\nexport const wordAtPosition = (str, pos) => {\n const words = splitByWhitespaceBoundary(str)\n const wordsWithPosition = addPositionToWords(words)\n\n return find(wordsWithPosition, ({ start, end }) => start <= pos && end > pos)\n}\n\nexport const addPositionToWords = (words) => {\n return reduce(words, (result, word) => {\n const data = {\n word,\n start: 0,\n end: word.length\n }\n\n if (result.length > 0) {\n const previous = result.pop()\n\n data.start += previous.end\n data.end += previous.end\n\n result.push(previous)\n }\n\n result.push(data)\n\n return result\n }, [])\n}\n\nexport const splitByWhitespaceBoundary = (str) => {\n const result = []\n let currentWord = ''\n for (let i = 0; i < str.length; i++) {\n const currentChar = str[i]\n // Starting a new word\n if (!currentWord) {\n currentWord = currentChar\n continue\n }\n // current character is whitespace while word isn't, or vice versa:\n // add our current word to results, start over the current word.\n if (!!currentChar.trim() !== !!currentWord.trim()) {\n result.push(currentWord)\n currentWord = currentChar\n continue\n }\n currentWord += currentChar\n }\n // Add the last word we were working on\n if (currentWord) {\n result.push(currentWord)\n }\n return result\n}\n\nconst completion = {\n wordAtPosition,\n addPositionToWords,\n splitByWhitespaceBoundary,\n replaceWord\n}\n\nexport default completion\n","<template>\n <Popover\n ref=\"popover\"\n trigger=\"click\"\n popover-class=\"emoji-picker popover-default\"\n :trigger-attrs=\"{ 'aria-hidden': true }\"\n @show=\"onPopoverShown\"\n @close=\"onPopoverClosed\"\n >\n <template #content>\n <div class=\"heading\">\n <span\n ref=\"header\"\n class=\"emoji-tabs\"\n >\n <span\n v-for=\"group in filteredEmojiGroups\"\n :ref=\"setGroupRef('group-header-' + group.id)\"\n :key=\"group.id\"\n class=\"emoji-tabs-item\"\n :class=\"{\n active: activeGroupView === group.id\n }\"\n :title=\"group.text\"\n @click.prevent=\"highlight(group.id)\"\n >\n <span\n v-if=\"group.image\"\n class=\"emoji-picker-header-image\"\n >\n <still-image\n :alt=\"group.text\"\n :src=\"group.image\"\n />\n </span>\n <FAIcon\n v-else\n :icon=\"group.icon\"\n fixed-width\n />\n </span>\n </span>\n <span\n v-if=\"stickerPickerEnabled\"\n class=\"additional-tabs\"\n >\n <span\n class=\"stickers-tab-icon additional-tabs-item\"\n :class=\"{active: showingStickers}\"\n :title=\"$t('emoji.stickers')\"\n @click.prevent=\"toggleStickers\"\n >\n <FAIcon\n icon=\"sticky-note\"\n fixed-width\n />\n </span>\n </span>\n </div>\n <div\n v-if=\"contentLoaded\"\n class=\"content\"\n >\n <div\n class=\"emoji-content\"\n :class=\"{hidden: showingStickers}\"\n >\n <div class=\"emoji-search\">\n <input\n ref=\"search\"\n v-model=\"keyword\"\n type=\"text\"\n class=\"form-control\"\n :placeholder=\"$t('emoji.search_emoji')\"\n @input=\"$event.target.composing = false\"\n >\n </div>\n <DynamicScroller\n ref=\"emoji-groups\"\n class=\"emoji-groups\"\n :class=\"groupsScrolledClass\"\n :min-item-size=\"minItemSize\"\n :items=\"emojiItems\"\n :emit-update=\"true\"\n @update=\"onScroll\"\n @visible=\"recalculateItemPerRow\"\n @resize=\"recalculateItemPerRow\"\n >\n <template #default=\"{ item: group, index, active }\">\n <DynamicScrollerItem\n :ref=\"setGroupRef('group-' + group.id)\"\n :item=\"group\"\n :active=\"active\"\n :data-index=\"index\"\n :size-dependencies=\"[group.emojis.length]\"\n >\n <div\n class=\"emoji-group\"\n >\n <h6\n v-if=\"group.isFirstRow\"\n class=\"emoji-group-title\"\n >\n {{ group.text }}\n </h6>\n <span\n v-for=\"emoji in group.emojis\"\n :key=\"group.id + emoji.displayText\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n class=\"emoji-item\"\n @click.stop.prevent=\"onEmoji(emoji)\"\n >\n <span\n v-if=\"!emoji.imageUrl\"\n class=\"emoji-picker-emoji -unicode\"\n >{{ emoji.replacement }}</span>\n <still-image\n v-else\n class=\"emoji-picker-emoji -custom\"\n loading=\"lazy\"\n :src=\"emoji.imageUrl\"\n :data-emoji-name=\"group.id + emoji.displayText\"\n />\n </span>\n </div>\n </DynamicScrollerItem>\n </template>\n </DynamicScroller>\n <div class=\"keep-open\">\n <Checkbox v-model=\"keepOpen\">\n {{ $t('emoji.keep_open') }}\n </Checkbox>\n </div>\n </div>\n <div\n v-if=\"showingStickers\"\n class=\"stickers-content\"\n >\n <sticker-picker\n @uploaded=\"onStickerUploaded\"\n @upload-failed=\"onStickerUploadFailed\"\n />\n </div>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./emoji_picker.js\"></script>\n<style lang=\"scss\" src=\"./emoji_picker.scss\"></style>\n","import { defineAsyncComponent } from 'vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport StillImage from '../still-image/still-image.vue'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce, trim, chunk } from 'lodash'\n\nlibrary.add(\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n)\n\nconst UNICODE_EMOJI_GROUP_ICON = {\n 'smileys-and-emotion': 'smile',\n 'people-and-body': 'user',\n 'animals-and-nature': 'paw',\n 'food-and-drink': 'ice-cream',\n 'travel-and-places': 'bus',\n activities: 'basketball-ball',\n objects: 'lightbulb',\n symbols: 'code',\n flags: 'flag'\n}\n\nconst maybeLocalizedKeywords = (emoji, languages, nameLocalizer) => {\n const res = [emoji.displayText, nameLocalizer(emoji)]\n if (emoji.annotations) {\n languages.forEach(lang => {\n const keywords = emoji.annotations[lang]?.keywords || []\n const name = emoji.annotations[lang]?.name\n res.push(...(keywords.concat([name]).filter(k => k)))\n })\n }\n return res\n}\n\nconst filterByKeyword = (list, keyword = '', languages, nameLocalizer) => {\n if (keyword === '') return list\n\n const keywordLowercase = keyword.toLowerCase()\n const orderedEmojiList = []\n for (const emoji of list) {\n const indices = maybeLocalizedKeywords(emoji, languages, nameLocalizer)\n .map(k => k.toLowerCase().indexOf(keywordLowercase))\n .filter(k => k > -1)\n\n const indexOfKeyword = indices.length ? Math.min(...indices) : -1\n\n if (indexOfKeyword > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {\n orderedEmojiList[indexOfKeyword] = []\n }\n orderedEmojiList[indexOfKeyword].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n}\n\nconst getOffset = (elem) => {\n const style = elem.style.transform\n const res = /translateY\\((\\d+)px\\)/.exec(style)\n if (!res) { return 0 }\n return res[1]\n}\n\nconst toHeaderId = id => {\n return id.replace(/^row-\\d+-/, '')\n}\n\nconst EmojiPicker = {\n props: {\n enableStickerPicker: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n keyword: '',\n activeGroup: 'custom',\n showingStickers: false,\n groupsScrolledClass: 'scrolled-top',\n keepOpen: false,\n customEmojiTimeout: null,\n // Lazy-load only after the first time `showing` becomes true.\n contentLoaded: false,\n groupRefs: {},\n emojiRefs: {},\n filteredEmojiGroups: [],\n width: 0\n }\n },\n components: {\n StickerPicker: defineAsyncComponent(() => import('../sticker_picker/sticker_picker.vue')),\n Checkbox,\n StillImage,\n Popover\n },\n methods: {\n showPicker () {\n this.$refs.popover.showPopover()\n this.onShowing()\n },\n hidePicker () {\n this.$refs.popover.hidePopover()\n },\n setAnchorEl (el) {\n this.$refs.popover.setAnchorEl(el)\n },\n setGroupRef (name) {\n return el => { this.groupRefs[name] = el }\n },\n onPopoverShown () {\n this.$emit('show')\n },\n onPopoverClosed () {\n this.$emit('close')\n },\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-failed', e)\n },\n onEmoji (emoji) {\n const value = emoji.imageUrl ? `:${emoji.displayText}:` : emoji.replacement\n if (!this.keepOpen) {\n this.$refs.popover.hidePopover()\n }\n this.$emit('emoji', { insertion: value, keepOpen: this.keepOpen })\n },\n onScroll (startIndex, endIndex, visibleStartIndex, visibleEndIndex) {\n const target = this.$refs['emoji-groups'].$el\n this.scrolledGroup(target, visibleStartIndex, visibleEndIndex)\n },\n scrolledGroup (target, start, end) {\n const top = target.scrollTop + 5\n this.$nextTick(() => {\n this.emojiItems.slice(start, end + 1).forEach(group => {\n const headerId = toHeaderId(group.id)\n const ref = this.groupRefs['group-' + group.id]\n if (!ref) { return }\n const elem = ref.$el.parentElement\n if (!elem) { return }\n if (elem && getOffset(elem) <= top) {\n this.activeGroup = headerId\n }\n })\n this.scrollHeader()\n })\n },\n scrollHeader () {\n // Scroll the active tab's header into view\n const headerRef = this.groupRefs['group-header-' + this.activeGroup]\n const left = headerRef.offsetLeft\n const right = left + headerRef.offsetWidth\n const headerCont = this.$refs.header\n const currentScroll = headerCont.scrollLeft\n const currentScrollRight = currentScroll + headerCont.clientWidth\n const setScroll = s => { headerCont.scrollLeft = s }\n\n const margin = 7 // .emoji-tabs-item: padding\n if (left - margin < currentScroll) {\n setScroll(left - margin)\n } else if (right + margin > currentScrollRight) {\n setScroll(right + margin - headerCont.clientWidth)\n }\n },\n highlight (groupId) {\n this.setShowStickers(false)\n const indexInList = this.emojiItems.findIndex(k => k.id === groupId)\n this.$refs['emoji-groups'].scrollToItem(indexInList)\n },\n updateScrolledClass (target) {\n if (target.scrollTop <= 5) {\n this.groupsScrolledClass = 'scrolled-top'\n } else if (target.scrollTop >= target.scrollTopMax - 5) {\n this.groupsScrolledClass = 'scrolled-bottom'\n } else {\n this.groupsScrolledClass = 'scrolled-middle'\n }\n },\n toggleStickers () {\n this.showingStickers = !this.showingStickers\n },\n setShowStickers (value) {\n this.showingStickers = value\n },\n filterByKeyword (list, keyword) {\n return filterByKeyword(list, keyword, this.languages, this.maybeLocalizedEmojiName)\n },\n onShowing () {\n const oldContentLoaded = this.contentLoaded\n this.recalculateItemPerRow()\n this.$nextTick(() => {\n this.$refs.search.focus()\n })\n this.contentLoaded = true\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n if (!oldContentLoaded) {\n this.$nextTick(() => {\n if (this.defaultGroup) {\n this.highlight(this.defaultGroup)\n }\n })\n }\n },\n getFilteredEmojiGroups () {\n return this.allEmojiGroups\n .map(group => ({\n ...group,\n emojis: this.filterByKeyword(group.emojis, trim(this.keyword))\n }))\n .filter(group => group.emojis.length > 0)\n },\n recalculateItemPerRow () {\n this.$nextTick(() => {\n if (!this.$refs['emoji-groups']) {\n return\n }\n this.width = this.$refs['emoji-groups'].$el.clientWidth\n })\n }\n },\n watch: {\n keyword () {\n this.onScroll()\n this.debouncedHandleKeywordChange()\n },\n allCustomGroups () {\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }\n },\n computed: {\n minItemSize () {\n return this.emojiHeight\n },\n emojiHeight () {\n return 32 + 4\n },\n emojiWidth () {\n return 32 + 4\n },\n itemPerRow () {\n return this.width ? Math.floor(this.width / this.emojiWidth - 1) : 6\n },\n activeGroupView () {\n return this.showingStickers ? '' : this.activeGroup\n },\n stickersAvailable () {\n if (this.$store.state.instance.stickers) {\n return this.$store.state.instance.stickers.length > 0\n }\n return 0\n },\n allCustomGroups () {\n const emojis = this.$store.getters.groupedCustomEmojis\n if (emojis.unpacked) {\n emojis.unpacked.text = this.$t('emoji.unpacked')\n }\n return emojis\n },\n defaultGroup () {\n return Object.keys(this.allCustomGroups)[0]\n },\n unicodeEmojiGroups () {\n return this.$store.getters.standardEmojiGroupList.map(group => ({\n id: `standard-${group.id}`,\n text: this.$t(`emoji.unicode_groups.${group.id}`),\n icon: UNICODE_EMOJI_GROUP_ICON[group.id],\n emojis: group.emojis\n }))\n },\n allEmojiGroups () {\n return Object.entries(this.allCustomGroups)\n .map(([_, v]) => v)\n .concat(this.unicodeEmojiGroups)\n },\n stickerPickerEnabled () {\n return (this.$store.state.instance.stickers || []).length !== 0\n },\n debouncedHandleKeywordChange () {\n return debounce(() => {\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }, 500)\n },\n emojiItems () {\n return this.filteredEmojiGroups.map(group =>\n chunk(group.emojis, this.itemPerRow)\n .map((items, index) => ({\n ...group,\n id: index === 0 ? group.id : `row-${index}-${group.id}`,\n emojis: items,\n isFirstRow: index === 0\n })))\n .reduce((a, c) => a.concat(c), [])\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n }\n }\n}\n\nexport default EmojiPicker\n","import { render } from \"./emoji_picker.vue?vue&type=template&id=22e1493a\"\nimport script from \"./emoji_picker.js?vue&type=script&lang=js\"\nexport * from \"./emoji_picker.js?vue&type=script&lang=js\"\n\nimport \"./emoji_picker.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const ScreenReaderNotice = {\n props: {\n ariaLive: {\n type: String,\n defualt: 'assertive'\n }\n },\n data () {\n return {\n currentText: ''\n }\n },\n methods: {\n announce (text) {\n this.currentText = text\n setTimeout(() => { this.currentText = '' }, 1000)\n }\n }\n}\n\nexport default ScreenReaderNotice\n","import { render } from \"./screen_reader_notice.vue?vue&type=template&id=4978e64a\"\nimport script from \"./screen_reader_notice.js?vue&type=script&lang=js\"\nexport * from \"./screen_reader_notice.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"visible-for-screenreader-only\"\n :aria-live=\"ariaLive\"\n >\n {{ currentText }}\n </div>\n</template>\n\n<script src=\"./screen_reader_notice.js\"></script>\n","import Completion from '../../services/completion/completion.js'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport ScreenReaderNotice from 'src/components/screen_reader_notice/screen_reader_notice.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { take } from 'lodash'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faSmileBeam\n)\n\n/**\n * EmojiInput - augmented inputs for emoji and autocomplete support in inputs\n * without having to give up the comfort of <input/> and <textarea/> elements\n *\n * Intended usage is:\n * <EmojiInput v-model=\"something\">\n * <input v-model=\"something\"/>\n * </EmojiInput>\n *\n * Works only with <input> and <textarea>. Intended to use with only one nested\n * input. It will find first input or textarea and work with that, multiple\n * nested children not tested. You HAVE TO duplicate v-model for both\n * <emoji-input> and <input>/<textarea> otherwise it will not work.\n *\n * Be prepared for CSS troubles though because it still wraps component in a div\n * while TRYING to make it look like nothing happened, but it could break stuff.\n */\n\nconst EmojiInput = {\n emits: ['update:modelValue', 'shown'],\n props: {\n suggest: {\n /**\n * suggest: function (input: String) => Suggestion[]\n *\n * Function that takes input string which takes string (textAtCaret)\n * and returns an array of Suggestions\n *\n * Suggestion is an object containing following properties:\n * displayText: string. Main display text, what actual suggestion\n * represents (user's screen name/emoji shortcode)\n * replacement: string. Text that should replace the textAtCaret\n * detailText: string, optional. Subtitle text, providing additional info\n * if present (user's nickname)\n * imageUrl: string, optional. Image to display alongside with suggestion,\n * currently if no image is provided, replacement will be used (for\n * unicode emojis)\n *\n * TODO: make it asynchronous when adding proper server-provided user\n * suggestions\n *\n * For commonly used suggestors (emoji, users, both) use suggestor.js\n */\n required: true,\n type: Function\n },\n modelValue: {\n /**\n * Used for v-model\n */\n required: true,\n type: String\n },\n enableEmojiPicker: {\n /**\n * Enables emoji picker support, this implies that custom emoji are supported\n */\n required: false,\n type: Boolean,\n default: false\n },\n hideEmojiButton: {\n /**\n * intended to use with external picker trigger, i.e. you have a button outside\n * input that will open up the picker, see triggerShowPicker()\n */\n required: false,\n type: Boolean,\n default: false\n },\n enableStickerPicker: {\n /**\n * Enables sticker picker support, only makes sense when enableEmojiPicker=true\n */\n required: false,\n type: Boolean,\n default: false\n },\n placement: {\n /**\n * Forces the panel to take a specific position relative to the input element.\n * The 'auto' placement chooses either bottom or top depending on which has the available space (when both have available space, bottom is preferred).\n */\n required: false,\n type: String, // 'auto', 'top', 'bottom'\n default: 'auto'\n },\n newlineOnCtrlEnter: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n randomSeed: `${Math.random()}`.replace('.', '-'),\n input: undefined,\n caretEl: undefined,\n highlighted: -1,\n caret: 0,\n focused: false,\n blurTimeout: null,\n temporarilyHideSuggestions: false,\n disableClickOutside: false,\n suggestions: [],\n overlayStyle: {},\n pickerShown: false\n }\n },\n components: {\n Popover,\n EmojiPicker,\n UnicodeDomainIndicator,\n ScreenReaderNotice\n },\n computed: {\n padEmoji () {\n return this.$store.getters.mergedConfig.padEmoji\n },\n preText () {\n return this.modelValue.slice(0, this.caret)\n },\n postText () {\n return this.modelValue.slice(this.caret)\n },\n showSuggestions () {\n return this.focused &&\n this.suggestions &&\n this.suggestions.length > 0 &&\n !this.pickerShown &&\n !this.temporarilyHideSuggestions\n },\n textAtCaret () {\n return this.wordAtCaret?.word\n },\n wordAtCaret () {\n if (this.modelValue && this.caret) {\n const word = Completion.wordAtPosition(this.modelValue, this.caret - 1) || {}\n return word\n }\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiNamesAndKeywords () {\n return emoji => {\n const names = [emoji.displayText]\n const keywords = []\n\n if (emoji.displayTextI18n) {\n names.push(this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args))\n }\n\n if (emoji.annotations) {\n this.languages.forEach(lang => {\n names.push(emoji.annotations[lang]?.name)\n\n keywords.push(...(emoji.annotations[lang]?.keywords || []))\n })\n }\n\n return {\n names: names.filter(k => k),\n keywords: keywords.filter(k => k)\n }\n }\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n onInputScroll () {\n this.$refs.hiddenOverlay.scrollTo({\n top: this.input.scrollTop,\n left: this.input.scrollLeft\n })\n },\n suggestionListId () {\n return `suggestions-${this.randomSeed}`\n },\n suggestionItemId () {\n return (index) => `suggestion-item-${index}-${this.randomSeed}`\n }\n },\n mounted () {\n const { root, hiddenOverlayCaret, suggestorPopover } = this.$refs\n const input = root.querySelector('.emoji-input > input') || root.querySelector('.emoji-input > textarea')\n if (!input) return\n this.input = input\n this.caretEl = hiddenOverlayCaret\n if (suggestorPopover.setAnchorEl) {\n suggestorPopover.setAnchorEl(this.caretEl) // unit test compat\n this.$refs.picker.setAnchorEl(this.caretEl)\n } else {\n console.warn('setAnchorEl not found, are we in a unit test?')\n }\n const style = getComputedStyle(this.input)\n this.overlayStyle.padding = style.padding\n this.overlayStyle.border = style.border\n this.overlayStyle.margin = style.margin\n this.overlayStyle.lineHeight = style.lineHeight\n this.overlayStyle.fontFamily = style.fontFamily\n this.overlayStyle.fontSize = style.fontSize\n this.overlayStyle.wordWrap = style.wordWrap\n this.overlayStyle.whiteSpace = style.whiteSpace\n this.resize()\n input.addEventListener('blur', this.onBlur)\n input.addEventListener('focus', this.onFocus)\n input.addEventListener('paste', this.onPaste)\n input.addEventListener('keyup', this.onKeyUp)\n input.addEventListener('keydown', this.onKeyDown)\n input.addEventListener('click', this.onClickInput)\n input.addEventListener('transitionend', this.onTransition)\n input.addEventListener('input', this.onInput)\n input.addEventListener('scroll', this.onInputScroll)\n },\n unmounted () {\n const { input } = this\n if (input) {\n input.removeEventListener('blur', this.onBlur)\n input.removeEventListener('focus', this.onFocus)\n input.removeEventListener('paste', this.onPaste)\n input.removeEventListener('keyup', this.onKeyUp)\n input.removeEventListener('keydown', this.onKeyDown)\n input.removeEventListener('click', this.onClickInput)\n input.removeEventListener('transitionend', this.onTransition)\n input.removeEventListener('input', this.onInput)\n input.removeEventListener('scroll', this.onInputScroll)\n }\n },\n watch: {\n showSuggestions: function (newValue, oldValue) {\n this.$emit('shown', newValue)\n if (newValue) {\n this.$refs.suggestorPopover.showPopover()\n } else {\n this.$refs.suggestorPopover.hidePopover()\n }\n },\n textAtCaret: async function (newWord) {\n if (newWord === undefined) return\n const firstchar = newWord.charAt(0)\n if (newWord === firstchar) {\n this.suggestions = []\n return\n }\n const matchedSuggestions = await this.suggest(newWord, this.maybeLocalizedEmojiNamesAndKeywords)\n // Async: cancel if textAtCaret has changed during wait\n if (this.textAtCaret !== newWord || matchedSuggestions.length <= 0) {\n this.suggestions = []\n return\n }\n this.suggestions = take(matchedSuggestions, 5)\n .map(({ imageUrl, ...rest }) => ({\n ...rest,\n img: imageUrl || ''\n }))\n this.highlighted = -1\n this.$refs.screenReaderNotice.announce(\n this.$tc('tool_tip.autocomplete_available',\n this.suggestions.length,\n { number: this.suggestions.length }))\n }\n },\n methods: {\n triggerShowPicker () {\n this.$nextTick(() => {\n this.$refs.picker.showPicker()\n this.scrollIntoView()\n })\n // This temporarily disables \"click outside\" handler\n // since external trigger also means click originates\n // from outside, thus preventing picker from opening\n this.disableClickOutside = true\n setTimeout(() => {\n this.disableClickOutside = false\n }, 0)\n },\n togglePicker () {\n this.input.focus()\n if (!this.pickerShown) {\n this.scrollIntoView()\n this.$refs.picker.showPicker()\n this.$refs.picker.startEmojiLoad()\n } else {\n this.$refs.picker.hidePicker()\n }\n },\n replace (replacement) {\n const newValue = Completion.replaceWord(this.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', newValue)\n this.caret = 0\n },\n insert ({ insertion, keepOpen, surroundingSpace = true }) {\n const before = this.modelValue.substring(0, this.caret) || ''\n const after = this.modelValue.substring(this.caret) || ''\n\n /* Using a bit more smart approach to padding emojis with spaces:\n * - put a space before cursor if there isn't one already, unless we\n * are at the beginning of post or in spam mode\n * - put a space after emoji if there isn't one already unless we are\n * in spam mode\n *\n * The idea is that when you put a cursor somewhere in between sentence\n * inserting just ' :emoji: ' will add more spaces to post which might\n * break the flow/spacing, as well as the case where user ends sentence\n * with a space before adding emoji.\n *\n * Spam mode is intended for creating multi-part emojis and overall spamming\n * them, masto seem to be rendering :emoji::emoji: correctly now so why not\n */\n const isSpaceRegex = /\\s/\n const spaceBefore = (surroundingSpace && !isSpaceRegex.exec(before.slice(-1)) && before.length && this.padEmoji > 0) ? ' ' : ''\n const spaceAfter = (surroundingSpace && !isSpaceRegex.exec(after[0]) && this.padEmoji) ? ' ' : ''\n\n const newValue = [\n before,\n spaceBefore,\n insertion,\n spaceAfter,\n after\n ].join('')\n this.$emit('update:modelValue', newValue)\n const position = this.caret + (insertion + spaceAfter + spaceBefore).length\n if (!keepOpen) {\n this.input.focus()\n }\n\n this.$nextTick(function () {\n // Re-focus inputbox after clicking suggestion\n // Set selection right after the replacement instead of the very end\n this.input.setSelectionRange(position, position)\n this.caret = position\n })\n },\n replaceText (e, suggestion) {\n const len = this.suggestions.length || 0\n if (this.textAtCaret.length === 1) { return }\n if (len > 0 || suggestion) {\n const chosenSuggestion = suggestion || this.suggestions[this.highlighted]\n const replacement = chosenSuggestion.replacement\n const newValue = Completion.replaceWord(this.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', newValue)\n this.highlighted = 0\n const position = this.wordAtCaret.start + replacement.length\n\n this.$nextTick(function () {\n // Re-focus inputbox after clicking suggestion\n this.input.focus()\n // Set selection right after the replacement instead of the very end\n this.input.setSelectionRange(position, position)\n this.caret = position\n })\n e.preventDefault()\n }\n },\n cycleBackward (e) {\n const len = this.suggestions.length || 0\n\n this.highlighted -= 1\n if (this.highlighted === -1) {\n this.input.focus()\n } else if (this.highlighted < -1) {\n this.highlighted = len - 1\n }\n if (len > 0) {\n e.preventDefault()\n }\n },\n cycleForward (e) {\n const len = this.suggestions.length || 0\n\n this.highlighted += 1\n if (this.highlighted >= len) {\n this.highlighted = -1\n this.input.focus()\n }\n if (len > 0) {\n e.preventDefault()\n }\n },\n scrollIntoView () {\n const rootRef = this.$refs.picker.$el\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const scrollerRef = this.$el.closest('.sidebar-scroller') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n\n const scrollerBottomBorder = currentScroll + scrollerHeight\n // We check where the bottom border of root element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const rootBottomBorder = rootRef.offsetHeight + findOffset(rootRef, scrollerRef).top\n\n const bottomDelta = Math.max(0, rootBottomBorder - scrollerBottomBorder)\n // could also check top delta but there's no case for it\n const targetScroll = currentScroll + bottomDelta\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n\n this.$nextTick(() => {\n const { offsetHeight } = this.input\n const { picker } = this.$refs\n const pickerBottom = picker.$el.getBoundingClientRect().bottom\n if (pickerBottom > window.innerHeight) {\n picker.$el.style.top = 'auto'\n picker.$el.style.bottom = offsetHeight + 'px'\n }\n })\n },\n onPickerShown () {\n this.pickerShown = true\n },\n onPickerClosed () {\n this.pickerShown = false\n },\n onBlur (e) {\n // Clicking on any suggestion removes focus from autocomplete,\n // preventing click handler ever executing.\n this.blurTimeout = setTimeout(() => {\n this.focused = false\n this.setCaret(e)\n }, 200)\n },\n onClick (e, suggestion) {\n this.replaceText(e, suggestion)\n },\n onFocus (e) {\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout)\n this.blurTimeout = null\n }\n\n this.focused = true\n this.setCaret(e)\n this.temporarilyHideSuggestions = false\n },\n onKeyUp (e) {\n const { key } = e\n this.setCaret(e)\n\n // Setting hider in keyUp to prevent suggestions from blinking\n // when moving away from suggested spot\n if (key === 'Escape') {\n this.temporarilyHideSuggestions = true\n } else {\n this.temporarilyHideSuggestions = false\n }\n },\n onPaste (e) {\n this.setCaret(e)\n },\n onKeyDown (e) {\n const { ctrlKey, shiftKey, key } = e\n if (this.newlineOnCtrlEnter && ctrlKey && key === 'Enter') {\n this.insert({ insertion: '\\n', surroundingSpace: false })\n // Ensure only one new line is added on macos\n e.stopPropagation()\n e.preventDefault()\n\n // Scroll the input element to the position of the cursor\n this.$nextTick(() => {\n this.input.blur()\n this.input.focus()\n })\n }\n // Disable suggestions hotkeys if suggestions are hidden\n if (!this.temporarilyHideSuggestions) {\n if (key === 'Tab') {\n if (shiftKey) {\n this.cycleBackward(e)\n } else {\n this.cycleForward(e)\n }\n }\n if (key === 'ArrowUp') {\n this.cycleBackward(e)\n } else if (key === 'ArrowDown') {\n this.cycleForward(e)\n }\n if (key === 'Enter') {\n if (!ctrlKey) {\n this.replaceText(e)\n }\n }\n }\n // Probably add optional keyboard controls for emoji picker?\n\n // Escape hides suggestions, if suggestions are hidden it\n // de-focuses the element (i.e. default browser behavior)\n if (key === 'Escape') {\n if (!this.temporarilyHideSuggestions) {\n this.input.focus()\n }\n }\n },\n onInput (e) {\n this.setCaret(e)\n this.$emit('update:modelValue', e.target.value)\n },\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-Failed', e)\n },\n setCaret ({ target: { selectionStart } }) {\n this.caret = selectionStart\n this.$nextTick(() => {\n this.$refs.suggestorPopover.updateStyles()\n })\n },\n resize () {\n },\n autoCompleteItemLabel (suggestion) {\n if (suggestion.user) {\n return suggestion.displayText + ' ' + suggestion.detailText\n } else {\n return this.maybeLocalizedEmojiName(suggestion)\n }\n }\n }\n}\n\nexport default EmojiInput\n","import { render } from \"./emoji_input.vue?vue&type=template&id=401ef83a\"\nimport script from \"./emoji_input.js?vue&type=script&lang=js\"\nexport * from \"./emoji_input.js?vue&type=script&lang=js\"\n\nimport \"./emoji_input.vue?vue&type=style&index=0&id=401ef83a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const createRuffleService = () => {\n let ruffleInstance = null\n\n const getRuffle = () => new Promise((resolve, reject) => {\n if (ruffleInstance) {\n resolve(ruffleInstance)\n return\n }\n // Ruffle needs these to be set before it's loaded\n // https://github.com/ruffle-rs/ruffle/issues/3952\n window.RufflePlayer = {}\n window.RufflePlayer.config = {\n polyfills: false,\n publicPath: '/static/ruffle'\n }\n\n // Currently it's seems like a better way of loading ruffle\n // because it needs the wasm publically accessible, but it needs path to it\n // and filename of wasm seems to be pseudo-randomly generated (is it a hash?)\n const script = document.createElement('script')\n // see webpack config, using CopyPlugin to copy it from node_modules\n // provided via ruffle-mirror\n script.src = '/static/ruffle/ruffle.js'\n script.type = 'text/javascript'\n script.onerror = (e) => { reject(e) }\n script.onabort = (e) => { reject(e) }\n script.oncancel = (e) => { reject(e) }\n script.onload = () => {\n ruffleInstance = window.RufflePlayer\n resolve(ruffleInstance)\n }\n document.body.appendChild(script)\n })\n\n return { getRuffle }\n}\n\nconst RuffleService = createRuffleService()\n\nexport default RuffleService\n","<template>\n <div class=\"Flash\">\n <div\n v-if=\"player === true || player === 'hidden'\"\n ref=\"container\"\n class=\"player\"\n :class=\"{ hidden: player === 'hidden' }\"\n />\n <button\n v-if=\"player !== true\"\n class=\"button-unstyled placeholder\"\n @click=\"openPlayer\"\n >\n <span\n v-if=\"player === 'hidden'\"\n class=\"label\"\n >\n {{ $t('general.loading') }}\n </span>\n <span\n v-if=\"player === 'error'\"\n class=\"label\"\n >\n {{ $t('general.flash_fail') }}\n </span>\n <span\n v-else\n class=\"label\"\n >\n <p>\n {{ $t('general.flash_content') }}\n </p>\n <p>\n <FAIcon icon=\"exclamation-triangle\" />\n {{ $t('general.flash_security') }}\n </p>\n </span>\n </button>\n </div>\n</template>\n\n<script src=\"./flash.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: \"hidden\";\n }\n}\n</style>\n","import RuffleService from '../../services/ruffle_service/ruffle_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStop,\n faExclamationTriangle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faStop,\n faExclamationTriangle\n)\n\nconst Flash = {\n props: ['src'],\n data () {\n return {\n player: false, // can be true, \"hidden\", false. hidden = element exists\n loaded: false,\n ruffleInstance: null\n }\n },\n methods: {\n openPlayer () {\n if (this.player) return // prevent double-loading, or re-loading on failure\n this.player = 'hidden'\n RuffleService.getRuffle().then((ruffle) => {\n const player = ruffle.newest().createPlayer()\n player.config = {\n letterbox: 'on'\n }\n const container = this.$refs.container\n container.appendChild(player)\n player.style.width = '100%'\n player.style.height = '100%'\n player.load(this.src).then(() => {\n this.player = true\n }).catch((e) => {\n console.error('Error loading ruffle', e)\n this.player = 'error'\n })\n this.ruffleInstance = player\n this.$emit('playerOpened')\n })\n },\n closePlayer () {\n this.ruffleInstance && this.ruffleInstance.remove()\n this.player = false\n this.$emit('playerClosed')\n }\n }\n}\n\nexport default Flash\n","import { render } from \"./flash.vue?vue&type=template&id=651ce37d\"\nimport script from \"./flash.js?vue&type=script&lang=js\"\nexport * from \"./flash.js?vue&type=script&lang=js\"\n\nimport \"./flash.vue?vue&type=style&index=0&id=651ce37d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reject) => {\n setTimeout(() => {\n store.state.api.backendInteractor.fetchUserRelationship({ id: userId })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n return relationship\n })\n .then((relationship) => resolve([relationship.following, relationship.requested, relationship.locked, attempt]))\n .catch((e) => reject(e))\n }, 500)\n}).then(([following, sent, locked, attempt]) => {\n if (!following && !(locked && sent) && attempt <= 3) {\n // If we BE reports that we still not following that user - retry,\n // increment attempts by one\n fetchRelationship(++attempt, userId, store)\n }\n})\n\nexport const requestFollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.followUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n\n if (updated.following || (updated.locked && updated.requested)) {\n // If we get result immediately or the account is locked, just stop.\n resolve()\n return\n }\n\n // But usually we don't get result immediately, so we ask server\n // for updated user profile to confirm if we are following them\n // Sometimes it takes several tries. Sometimes we end up not following\n // user anyway, probably because they locked themselves and we\n // don't know that yet.\n // Recursive Promise, it will call itself up to 3 times.\n\n return fetchRelationship(1, updated, store)\n .then(() => {\n resolve()\n })\n })\n})\n\nexport const requestUnfollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.unfollowUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n resolve({\n updated\n })\n })\n})\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'\nexport default {\n props: ['relationship', 'user', 'labelFollowing', 'buttonClass'],\n components: {\n ConfirmModal\n },\n data () {\n return {\n inProgress: false,\n showingConfirmUnfollow: false\n }\n },\n computed: {\n shouldConfirmUnfollow () {\n return this.$store.getters.mergedConfig.modalOnUnfollow\n },\n isPressed () {\n return this.inProgress || this.relationship.following\n },\n title () {\n if (this.inProgress || this.relationship.following) {\n return this.$t('user_card.follow_unfollow')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_cancel')\n } else {\n return this.$t('user_card.follow')\n }\n },\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else if (this.relationship.following) {\n return this.labelFollowing || this.$t('user_card.following')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_sent')\n } else {\n return this.$t('user_card.follow')\n }\n },\n disabled () {\n return this.inProgress || this.user.deactivated\n }\n },\n methods: {\n showConfirmUnfollow () {\n this.showingConfirmUnfollow = true\n },\n hideConfirmUnfollow () {\n this.showingConfirmUnfollow = false\n },\n onClick () {\n this.relationship.following || this.relationship.requested ? this.unfollow() : this.follow()\n },\n follow () {\n this.inProgress = true\n requestFollow(this.relationship.id, this.$store).then(() => {\n this.inProgress = false\n })\n },\n unfollow () {\n if (this.shouldConfirmUnfollow) {\n this.showConfirmUnfollow()\n } else {\n this.doUnfollow()\n }\n },\n doUnfollow () {\n const store = this.$store\n this.inProgress = true\n requestUnfollow(this.relationship.id, store).then(() => {\n this.inProgress = false\n store.commit('removeStatus', { timeline: 'friends', userId: this.relationship.id })\n })\n\n this.hideConfirmUnfollow()\n }\n }\n}\n","import { render } from \"./follow_button.vue?vue&type=template&id=6a0717e7\"\nimport script from \"./follow_button.js?vue&type=script&lang=js\"\nexport * from \"./follow_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: isPressed }\"\n :disabled=\"disabled\"\n :title=\"title\"\n @click=\"onClick\"\n >\n {{ label }}\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmUnfollow\"\n :title=\"$t('user_card.unfollow_confirm_title')\"\n :confirm-text=\"$t('user_card.unfollow_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.unfollow_confirm_cancel_button')\"\n @accepted=\"doUnfollow\"\n @cancelled=\"hideConfirmUnfollow\"\n >\n <i18n-t\n keypath=\"user_card.unfollow_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </button>\n</template>\n\n<script src=\"./follow_button.js\"></script>\n","<template>\n <div\n ref=\"galleryContainer\"\n class=\"Gallery\"\n :class=\"{ '-long': tooManyAttachments && hidingLong }\"\n >\n <div class=\"gallery-rows\">\n <div\n v-for=\"(row, rowIndex) in rows\"\n :key=\"rowIndex\"\n class=\"gallery-row\"\n :style=\"rowStyle(row)\"\n :class=\"{ '-audio': row.audio, '-minimal': row.minimal, '-grid': grid }\"\n >\n <div\n class=\"gallery-row-inner\"\n :class=\"{ '-grid': grid }\"\n >\n <Attachment\n v-for=\"(attachment, attachmentIndex) in row.items\"\n :key=\"attachment.id\"\n class=\"gallery-item\"\n :compact=\"compact\"\n :nsfw=\"nsfw\"\n :attachment=\"attachment\"\n :size=\"size\"\n :editable=\"editable\"\n :remove=\"removeAttachment\"\n :shift-up=\"!(attachmentIndex === 0 && rowIndex === 0) && shiftUpAttachment\"\n :shift-dn=\"!(attachmentIndex === row.items.length - 1 && rowIndex === rows.length - 1) && shiftDnAttachment\"\n :edit=\"editAttachment\"\n :description=\"descriptions && descriptions[attachment.id]\"\n :hide-description=\"size === 'small' || tooManyAttachments && hidingLong\"\n :style=\"itemStyle(attachment.id, row.items)\"\n @setMedia=\"onMedia\"\n @naturalSizeLoad=\"onNaturalSizeLoad\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"tooManyAttachments\"\n class=\"many-attachments\"\n >\n <div class=\"many-attachments-text\">\n {{ $t(\"status.many_attachments\", { number: attachments.length }) }}\n </div>\n <div class=\"many-attachments-buttons\">\n <span\n v-if=\"!hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(true)\"\n >\n {{ $t(\"status.collapse_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(false)\"\n >\n {{ $t(\"status.show_all_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openGallery\"\n >\n {{ $t(\"status.open_gallery\") }}\n </button>\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<script src='./gallery.js'></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-flow: row wrap;\n align-content: stretch;\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n\n &:last-child {\n margin: 0;\n }\n }\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n &.-grid,\n &.-minimal {\n height: auto;\n\n .gallery-row-inner {\n position: relative;\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n}\n</style>\n","import Attachment from '../attachment/attachment.vue'\nimport { sumBy, set } from 'lodash'\n\nconst Gallery = {\n props: [\n 'attachments',\n 'compact',\n 'limitRows',\n 'descriptions',\n 'limit',\n 'nsfw',\n 'setMedia',\n 'size',\n 'editable',\n 'removeAttachment',\n 'shiftUpAttachment',\n 'shiftDnAttachment',\n 'editAttachment',\n 'grid'\n ],\n data () {\n return {\n sizes: {},\n hidingLong: true\n }\n },\n components: { Attachment },\n computed: {\n rows () {\n if (!this.attachments) {\n return []\n }\n const attachments = this.limit > 0\n ? this.attachments.slice(0, this.limit)\n : this.attachments\n if (this.size === 'hide') {\n return attachments.map(item => ({ minimal: true, items: [item] }))\n }\n const rows = this.grid\n ? [{ grid: true, items: attachments }]\n : attachments.reduce((acc, attachment, i) => {\n if (attachment.mimetype.includes('audio')) {\n return [...acc, { audio: true, items: [attachment] }, { items: [] }]\n }\n if (!(\n attachment.mimetype.includes('image') ||\n attachment.mimetype.includes('video') ||\n attachment.mimetype.includes('flash')\n )) {\n return [...acc, { minimal: true, items: [attachment] }, { items: [] }]\n }\n const maxPerRow = 3\n const attachmentsRemaining = this.attachments.length - i + 1\n const currentRow = acc[acc.length - 1].items\n currentRow.push(attachment)\n if (currentRow.length >= maxPerRow && attachmentsRemaining > maxPerRow) {\n return [...acc, { items: [] }]\n } else {\n return acc\n }\n }, [{ items: [] }]).filter(_ => _.items.length > 0)\n return rows\n },\n attachmentsDimensionalScore () {\n return this.rows.reduce((acc, row) => {\n let size = 0\n if (row.minimal) {\n size += 1 / 8\n } else if (row.audio) {\n size += 1 / 4\n } else {\n size += 1 / (row.items.length + 0.6)\n }\n return acc + size\n }, 0)\n },\n tooManyAttachments () {\n if (this.editable || this.size === 'small') {\n return false\n } else if (this.size === 'hide') {\n return this.attachments.length > 8\n } else {\n return this.attachmentsDimensionalScore > 1\n }\n }\n },\n methods: {\n onNaturalSizeLoad ({ id, width, height }) {\n set(this.sizes, id, { width, height })\n },\n rowStyle (row) {\n if (row.audio) {\n return { 'padding-bottom': '25%' } // fixed reduced height for audio\n } else if (!row.minimal && !row.grid) {\n return { 'padding-bottom': `${(100 / (row.items.length + 0.6))}%` }\n }\n },\n itemStyle (id, row) {\n const total = sumBy(row, item => this.getAspectRatio(item.id))\n return { flex: `${this.getAspectRatio(id) / total} 1 0%` }\n },\n getAspectRatio (id) {\n const size = this.sizes[id]\n return size ? size.width / size.height : 1\n },\n toggleHidingLong (event) {\n this.hidingLong = event\n },\n openGallery () {\n this.$store.dispatch('setMedia', this.attachments)\n this.$store.dispatch('setCurrentMedia', this.attachments[0])\n },\n onMedia () {\n this.$store.dispatch('setMedia', this.attachments)\n }\n }\n}\n\nexport default Gallery\n","import { render } from \"./gallery.vue?vue&type=template&id=3f62ea7c\"\nimport script from \"./gallery.js?vue&type=script&lang=js\"\nexport * from \"./gallery.js?vue&type=script&lang=js\"\n\nimport \"./gallery.vue?vue&type=style&index=0&id=3f62ea7c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"interface-language-switcher\">\n <label>\n {{ promptText }}\n </label>\n <ul class=\"setting-list\">\n <li\n v-for=\"index of controlledLanguage.keys()\"\n :key=\"index\"\n >\n <label>\n {{ index === 0 ? $t('settings.primary_language') : $tc('settings.fallback_language', index, { index }) }}\n <Select\n class=\"language-select\"\n :model-value=\"controlledLanguage[index]\"\n @update:modelValue=\"val => setLanguageAt(index, val)\"\n >\n <option\n v-for=\"lang in languages\"\n :key=\"lang.code\"\n :value=\"lang.code\"\n >\n {{ lang.name }}\n </option>\n </Select>\n </label>\n <button\n v-if=\"controlledLanguage.length > 1 && index !== 0\"\n class=\"button-default btn\"\n @click=\"() => removeLanguageAt(index)\"\n >\n {{ $t('settings.remove_language') }}\n </button>\n </li>\n <li>\n <button\n class=\"button-default btn\"\n @click=\"addLanguage\"\n >{{ $t('settings.add_language') }}</button>\n </li>\n </ul>\n </div>\n</template>\n\n<script>\nimport localeService from '../../services/locale/locale.service.js'\nimport Select from '../select/select.vue'\n\nexport default {\n components: {\n // eslint-disable-next-line vue/no-reserved-component-names\n Select\n },\n props: {\n promptText: {\n type: String,\n required: true\n },\n language: {\n type: [Array, String],\n required: true\n },\n setLanguage: {\n type: Function,\n required: true\n }\n },\n computed: {\n languages () {\n return localeService.languages\n },\n\n controlledLanguage: {\n get: function () {\n return Array.isArray(this.language) ? this.language : [this.language]\n },\n set: function (val) {\n this.setLanguage(val)\n }\n }\n },\n\n methods: {\n getLanguageName (code) {\n return localeService.getLanguageName(code)\n },\n addLanguage () {\n this.controlledLanguage = [...this.controlledLanguage, '']\n },\n setLanguageAt (index, val) {\n const lang = [...this.controlledLanguage]\n lang[index] = val\n this.controlledLanguage = lang\n },\n removeLanguageAt (index) {\n const lang = [...this.controlledLanguage]\n lang.splice(index, 1)\n this.controlledLanguage = lang\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.interface-language-switcher {\n .language-select {\n margin-right: 1em;\n }\n}\n</style>\n","import { render } from \"./interface_language_switcher.vue?vue&type=template&id=8768357e\"\nimport script from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\nexport * from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\n\nimport \"./interface_language_switcher.vue?vue&type=style&index=0&id=8768357e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <a\n class=\"link-preview-card\"\n :href=\"card.url\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <div\n v-if=\"useImage && imageLoaded\"\n class=\"card-image\"\n >\n <img :src=\"card.image\">\n </div>\n <div class=\"card-content\">\n <span class=\"card-host faint\">\n <span\n v-if=\"censored\"\n class=\"nsfw-alert alert warning\"\n >{{ $t('status.nsfw') }}</span>\n {{ card.provider_name }}\n </span>\n <h4 class=\"card-title\">{{ card.title }}</h4>\n <p\n v-if=\"useDescription\"\n class=\"card-description\"\n >{{ card.description }}</p>\n </div>\n </a>\n </div>\n</template>\n\n<script src=\"./link-preview.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n</style>\n","import { mapGetters } from 'vuex'\n\nconst LinkPreview = {\n name: 'LinkPreview',\n props: [\n 'card',\n 'size',\n 'nsfw'\n ],\n data () {\n return {\n imageLoaded: false\n }\n },\n computed: {\n useImage () {\n // Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid\n // as it makes sure to hide the image if somehow NSFW tagged preview can\n // exist.\n return this.card.image && !this.censored && this.size !== 'hide'\n },\n censored () {\n return this.nsfw && this.hideNsfwConfig\n },\n useDescription () {\n return this.card.description && /\\S/.test(this.card.description)\n },\n hideNsfwConfig () {\n return this.mergedConfig.hideNsfw\n },\n ...mapGetters([\n 'mergedConfig'\n ])\n },\n created () {\n if (this.useImage) {\n const newImg = new Image()\n newImg.onload = () => {\n this.imageLoaded = true\n }\n newImg.src = this.card.image\n }\n }\n}\n\nexport default LinkPreview\n","import { render } from \"./link-preview.vue?vue&type=template&id=5bb8ccfc\"\nimport script from \"./link-preview.js?vue&type=script&lang=js\"\nexport * from \"./link-preview.js?vue&type=script&lang=js\"\n\nimport \"./link-preview.vue?vue&type=style&index=0&id=5bb8ccfc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"list\">\n <div\n v-for=\"item in items\"\n :key=\"getKey(item)\"\n class=\"list-item\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n />\n </div>\n <div\n v-if=\"items.length === 0 && !!$slots.empty\"\n class=\"list-empty-content faint\"\n >\n <slot name=\"empty\" />\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n items: {\n type: Array,\n default: () => []\n },\n getKey: {\n type: Function,\n default: item => item.id\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.list {\n &-item:not(:last-child) {\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n &-empty-content {\n text-align: center;\n padding: 10px;\n }\n}\n</style>\n","import { render } from \"./list.vue?vue&type=template&id=2a928b1c\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\n\nimport \"./list.vue?vue&type=style&index=0&id=2a928b1c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n class=\"MentionLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n v-if=\"!user\"\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n v-html=\"content\"\n /><!-- eslint-enable vue/no-v-html -->\n <UserPopover\n v-else\n :user-id=\"user.id\"\n :disabled=\"!shouldShowTooltip\"\n >\n <span\n v-if=\"user\"\n class=\"new\"\n :style=\"style\"\n :class=\"classnames\"\n >\n <a\n class=\"short button-unstyled\"\n :class=\"{ '-with-tooltip': shouldShowTooltip }\"\n :href=\"url\"\n @click.prevent=\"onClick\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <UserAvatar\n v-if=\"shouldShowAvatar\"\n class=\"mention-avatar\"\n :user=\"user\"\n /><span\n class=\"shortName\"\n ><FAIcon\n v-if=\"useAtIcon\"\n size=\"sm\"\n icon=\"at\"\n class=\"at\"\n />{{ !useAtIcon ? '@' : '' }}<span\n class=\"userName\"\n v-html=\"userName\"\n /><span\n v-if=\"shouldShowFullUserName\"\n class=\"serverName\"\n :class=\"{ '-faded': shouldFadeDomain }\"\n v-html=\"'@' + serverName\"\n /><UnicodeDomainIndicator\n v-if=\"shouldShowFullUserName\"\n :user=\"user\"\n />\n </span>\n <span\n v-if=\"isYou && shouldShowYous\"\n :class=\"{ '-you': shouldBoldenYou }\"\n > {{ ' ' + $t('status.you') }}</span>\n <!-- eslint-enable vue/no-v-html -->\n </a><span\n ref=\"full\"\n class=\"full\"\n >\n <!-- eslint-disable vue/no-v-html -->\n @<span v-html=\"userName\" /><span v-html=\"'@' + serverName\" />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n </span>\n </UserPopover>\n </span>\n</template>\n\n<script src=\"./mention_link.js\" />\n\n<style lang=\"scss\" src=\"./mention_link.scss\" />\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters, mapState } from 'vuex'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAt\n)\n\nconst MentionLink = {\n name: 'MentionLink',\n components: {\n UserAvatar,\n UnicodeDomainIndicator,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n userId: {\n required: false,\n type: String\n },\n userScreenName: {\n required: false,\n type: String\n }\n },\n data () {\n return {\n hasSelection: false\n }\n },\n methods: {\n onClick () {\n if (this.shouldShowTooltip) return\n const link = generateProfileLink(\n this.userId || this.user.id,\n this.userScreenName || this.user.screen_name\n )\n this.$router.push(link)\n },\n handleSelection () {\n this.hasSelection = document.getSelection().containsNode(this.$refs.full, true)\n }\n },\n mounted () {\n document.addEventListener('selectionchange', this.handleSelection)\n },\n unmounted () {\n document.removeEventListener('selectionchange', this.handleSelection)\n },\n computed: {\n user () {\n return this.url && this.$store && this.$store.getters.findUserByUrl(this.url)\n },\n isYou () {\n // FIXME why user !== currentUser???\n return this.user && this.user.id === this.currentUser.id\n },\n userName () {\n return this.user && this.userNameFullUi.split('@')[0]\n },\n serverName () {\n // XXX assumed that domain does not contain @\n return this.user && (this.userNameFullUi.split('@')[1] || this.$store.getters.instanceDomain)\n },\n userNameFull () {\n return this.user && this.user.screen_name\n },\n userNameFullUi () {\n return this.user && this.user.screen_name_ui\n },\n highlight () {\n return this.user && this.mergedConfig.highlight[this.user.screen_name]\n },\n highlightType () {\n return this.highlight && ('-' + this.highlight.type)\n },\n highlightClass () {\n if (this.highlight) return highlightClass(this.user)\n },\n style () {\n if (this.highlight) {\n const {\n backgroundColor,\n backgroundPosition,\n backgroundImage,\n ...rest\n } = highlightStyle(this.highlight)\n return rest\n }\n },\n classnames () {\n return [\n {\n '-you': this.isYou && this.shouldBoldenYou,\n '-highlighted': this.highlight,\n '-has-selection': this.hasSelection\n },\n this.highlightType\n ]\n },\n useAtIcon () {\n return this.mergedConfig.useAtIcon\n },\n isRemote () {\n return this.userName !== this.userNameFull\n },\n shouldShowFullUserName () {\n const conf = this.mergedConfig.mentionLinkDisplay\n if (conf === 'short') {\n return false\n } else if (conf === 'full') {\n return true\n } else { // full_for_remote\n return this.isRemote\n }\n },\n shouldShowTooltip () {\n return this.mergedConfig.mentionLinkShowTooltip\n },\n shouldShowAvatar () {\n return this.mergedConfig.mentionLinkShowAvatar\n },\n shouldShowYous () {\n return this.mergedConfig.mentionLinkShowYous\n },\n shouldBoldenYou () {\n return this.mergedConfig.mentionLinkBoldenYou\n },\n shouldFadeDomain () {\n return this.mergedConfig.mentionLinkFadeDomain\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default MentionLink\n","import { render } from \"./mention_link.vue?vue&type=template&id=11ab9a6c\"\nimport script from \"./mention_link.js?vue&type=script&lang=js\"\nexport * from \"./mention_link.js?vue&type=script&lang=js\"\n\nimport \"./mention_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span class=\"MentionsLine\">\n <MentionLink\n v-for=\"mention in mentionsComputed\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n /><span\n v-if=\"manyMentions\"\n class=\"extraMentions\"\n >\n <span\n v-if=\"expanded\"\n class=\"fullExtraMentions\"\n >{{ ' ' }}<MentionLink\n v-for=\"mention in extraMentions\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n />\n </span><button\n v-if=\"!expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('status.plus_more', { number: extraMentions.length }) }}\n </button><button\n v-if=\"expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('general.show_less') }}\n </button>\n </span>\n </span>\n</template>\n<script src=\"./mentions_line.js\"></script>\n<style lang=\"scss\" src=\"./mentions_line.scss\" />\n","import MentionLink from 'src/components/mention_link/mention_link.vue'\nimport { mapGetters } from 'vuex'\n\nexport const MENTIONS_LIMIT = 5\n\nconst MentionsLine = {\n name: 'MentionsLine',\n props: {\n mentions: {\n required: true,\n type: Array\n }\n },\n data: () => ({ expanded: false }),\n components: {\n MentionLink\n },\n computed: {\n mentionsComputed () {\n return this.mentions.slice(0, MENTIONS_LIMIT)\n },\n extraMentions () {\n return this.mentions.slice(MENTIONS_LIMIT)\n },\n manyMentions () {\n return this.extraMentions.length > 0\n },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n toggleShowMore () {\n this.expanded = !this.expanded\n }\n }\n}\n\nexport default MentionsLine\n","import { render } from \"./mentions_line.vue?vue&type=template&id=0e41a1da\"\nimport script from \"./mentions_line.js?vue&type=script&lang=js\"\nexport * from \"./mentions_line.js?vue&type=script&lang=js\"\n\nimport \"./mentions_line.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-show=\"isOpen\"\n v-body-scroll-lock=\"isOpen && !noBackground\"\n class=\"modal-view\"\n :class=\"classes\"\n @click.self=\"$emit('backdropClicked')\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n provide: {\n popoversZLayer: 'modals'\n },\n props: {\n isOpen: {\n type: Boolean,\n default: true\n },\n noBackground: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n classes () {\n return {\n 'modal-background': !this.noBackground,\n open: this.isOpen\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.modal-view {\n z-index: var(--ZI_modals);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgb(0 0 0 / 50%);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgb(0 0 0 / 0%);\n }\n\n to {\n background-color: rgb(0 0 0 / 50%);\n }\n}\n</style>\n","import { render } from \"./modal.vue?vue&type=template&id=e92832fc\"\nimport script from \"./modal.vue?vue&type=script&lang=js\"\nexport * from \"./modal.vue?vue&type=script&lang=js\"\n\nimport \"./modal.vue?vue&type=style&index=0&id=e92832fc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <teleport\n :disabled=\"minimalMode || disableTeleport\"\n :to=\"teleportTarget\"\n >\n <component\n :is=\"noHeading ? 'div' : 'aside'\"\n ref=\"root\"\n :class=\"{ minimal: minimalMode }\"\n class=\"Notifications\"\n >\n <div :class=\"mainClass\">\n <div\n v-if=\"!noHeading\"\n class=\"notifications-heading panel-heading -sticky\"\n >\n <div class=\"title\">\n {{ $t('notifications.notifications') }}\n <span\n v-if=\"unseenCount\"\n class=\"badge badge-notification unseen-count\"\n >{{ unseenCount }}</span>\n </div>\n <div\n v-if=\"showScrollTop\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <button\n v-if=\"unseenCount\"\n class=\"button-default read-button\"\n type=\"button\"\n @click.prevent=\"markAsSeen\"\n >\n {{ $t('notifications.read') }}\n </button>\n <NotificationFilters class=\"rightside-button\" />\n </div>\n <div\n class=\"panel-body\"\n role=\"feed\"\n >\n <div\n v-for=\"notification in notificationsToDisplay\"\n :key=\"notification.id\"\n role=\"listitem\"\n class=\"notification\"\n :class=\"{unseen: !minimalMode && !notification.seen}\"\n >\n <div class=\"notification-overlay\" />\n <notification :notification=\"notification\" />\n </div>\n </div>\n <div class=\"panel-footer\">\n <div\n v-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('notifications.no_more_notifications') }}\n </div>\n <button\n v-else-if=\"!loading\"\n class=\"button-unstyled -link -fullwidth\"\n @click.prevent=\"fetchOlderNotifications()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ minimalMode ? $t('interactions.load_older') : $t('notifications.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </div>\n </div>\n </component>\n </teleport>\n</template>\n\n<script src=\"./notifications.js\"></script>\n<style lang=\"scss\" src=\"./notifications.scss\"></style>\n","<template>\n <article\n v-if=\"notification.type === 'mention'\"\n >\n <Status\n class=\"Notification\"\n :compact=\"true\"\n :statusoid=\"notification.status\"\n />\n </article>\n <article v-else>\n <div\n v-if=\"needMute && !unmuted\"\n class=\"Notification container -muted\"\n >\n <small>\n <user-link\n :user=\"notification.from_profile\"\n :at=\"false\"\n />\n </small>\n <button\n class=\"button-unstyled unmute\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"Notification non-mention\"\n :class=\"[userClass, { highlighted: userStyle }, '-type--' + notification.type]\"\n :style=\"[ userStyle ]\"\n >\n <a\n class=\"avatar-container\"\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"notification.from_profile.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"notification.from_profile\"\n />\n </UserPopover>\n </a>\n <div class=\"notification-right\">\n <span class=\"notification-details\">\n <div class=\"name-and-action\">\n <!-- eslint-disable vue/no-v-html -->\n <bdi v-if=\"!!notification.from_profile.name_html\">\n <RichContent\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n :html=\"notification.from_profile.name_html\"\n :emoji=\"notification.from_profile.emoji\"\n />\n </bdi>\n <!-- eslint-enable vue/no-v-html -->\n <span\n v-else\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n >\n {{ notification.from_profile.name }}\n </span>\n {{ ' ' }}\n <span v-if=\"notification.type === 'like'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"star\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.favorited_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'repeat'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"retweet\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.repeated_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user-plus\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.followed_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow_request'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.follow_request') }}</small>\n </span>\n <span v-if=\"notification.type === 'move'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"suitcase-rolling\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.migrated_to') }}</small>\n </span>\n <span v-if=\"notification.type === 'pleroma:emoji_reaction'\">\n <small>\n <i18n-t\n scope=\"global\"\n keypath=\"notifications.reacted_with\"\n >\n <span class=\"emoji-reaction-emoji\">{{ notification.emoji }}</span>\n </i18n-t>\n </small>\n </span>\n <span v-if=\"notification.type === 'pleroma:report'\">\n <small>{{ $t('notifications.submitted_report') }}</small>\n </span>\n <span v-if=\"notification.type === 'poll'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"poll-h\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.poll_ended') }}</small>\n </span>\n </div>\n <div\n v-if=\"isStatusNotification\"\n class=\"timeago\"\n >\n <router-link\n v-if=\"notification.status\"\n :to=\"{ name: 'conversation', params: { id: notification.status.id } }\"\n class=\"timeago-link faint-link\"\n >\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </router-link>\n <button\n class=\"button-unstyled expand-icon\"\n @click.prevent=\"toggleStatusExpanded\"\n :title=\"$t('tool_tip.toggle_expand')\"\n :aria-expanded=\"statusExpanded\"\n >\n <FAIcon\n class=\"fa-scale-110\"\n fixed-width\n :icon=\"statusExpanded ? 'compress-alt' : 'expand-alt'\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"timeago\"\n >\n <span class=\"faint\">\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </span>\n </div>\n <button\n v-if=\"needMute\"\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.toggle_mute')\"\n :aria-expanded=\"!unmuted\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </span>\n <div\n v-if=\"notification.type === 'follow' || notification.type === 'follow_request'\"\n class=\"follow-text\"\n >\n <user-link\n class=\"follow-name\"\n :user=\"notification.from_profile\"\n />\n <div\n v-if=\"notification.type === 'follow_request'\"\n style=\"white-space: nowrap;\"\n >\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.accept_follow_request')\"\n @click=\"approveUser()\"\n >\n <FAIcon\n icon=\"check\"\n class=\"fa-scale-110 fa-old-padding follow-request-accept\"\n />\n </button>\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.reject_follow_request')\"\n @click=\"denyUser()\"\n >\n <FAIcon\n icon=\"times\"\n class=\"fa-scale-110 fa-old-padding follow-request-reject\"\n />\n </button>\n </div>\n </div>\n <div\n v-else-if=\"notification.type === 'move'\"\n class=\"move-text\"\n >\n <user-link\n :user=\"notification.target\"\n />\n </div>\n <Report\n v-else-if=\"notification.type === 'pleroma:report'\"\n :report-id=\"notification.report.id\"\n />\n <template v-else>\n <StatusContent\n :class=\"{ faint: !statusExpanded }\"\n :compact=\"!statusExpanded\"\n :status=\"notification.action\"\n />\n </template>\n </div>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingApproveConfirmDialog\"\n :title=\"$t('user_card.approve_confirm_title')\"\n :confirm-text=\"$t('user_card.approve_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.approve_confirm_cancel_button')\"\n @accepted=\"doApprove\"\n @cancelled=\"hideApproveConfirmDialog\"\n >\n {{ $t('user_card.approve_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n <confirm-modal\n v-if=\"showingDenyConfirmDialog\"\n :title=\"$t('user_card.deny_confirm_title')\"\n :confirm-text=\"$t('user_card.deny_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.deny_confirm_cancel_button')\"\n @accepted=\"doDeny\"\n @cancelled=\"hideDenyConfirmDialog\"\n >\n {{ $t('user_card.deny_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n </teleport>\n </article>\n</template>\n\n<script src=\"./notification.js\"></script>\n<style src=\"./notification.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"Report\">\n <div class=\"reported-user\">\n <span>{{ $t('report.reported_user') }}</span>\n <router-link :to=\"generateUserProfileLink(report.acct)\">\n @{{ report.acct.screen_name }}\n </router-link>\n </div>\n <div class=\"reporter\">\n <span>{{ $t('report.reporter') }}</span>\n <router-link :to=\"generateUserProfileLink(report.actor)\">\n @{{ report.actor.screen_name }}\n </router-link>\n </div>\n <div class=\"report-state\">\n <span>{{ $t('report.state') }}</span>\n <Select\n :id=\"report-state\"\n v-model=\"state\"\n class=\"form-control\"\n >\n <option\n v-for=\"state in ['open', 'closed', 'resolved']\"\n :key=\"state\"\n :value=\"state\"\n >\n {{ $t('report.state_' + state) }}\n </option>\n </Select>\n </div>\n <RichContent\n class=\"report-content\"\n :html=\"report.content\"\n :emoji=\"[]\"\n />\n <div v-if=\"report.statuses.length\">\n <small>{{ $t('report.reported_statuses') }}</small>\n <router-link\n v-for=\"status in report.statuses\"\n :key=\"status.id\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n class=\"reported-status\"\n >\n <div class=\"reported-status-heading\">\n <span class=\"reported-status-name\">{{ status.user.name }}</span>\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n <status-content :status=\"status\" />\n </router-link>\n </div>\n <div v-if=\"report.notes.length\">\n <small>{{ $t('report.notes') }}</small>\n <div\n v-for=\"note in report.notes\"\n :key=\"note.id\"\n class=\"note\"\n >\n <span>{{ note.content }}</span>\n <Timeago\n :time=\"note.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./report.js\"></script>\n<style src=\"./report.scss\" lang=\"scss\"></style>\n","import Select from '../select/select.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst Report = {\n props: [\n 'reportId'\n ],\n components: {\n Select,\n StatusContent,\n Timeago\n },\n computed: {\n report () {\n return this.$store.state.reports.reports[this.reportId] || {}\n },\n state: {\n get: function () { return this.report.state },\n set: function (val) { this.setReportState(val) }\n }\n },\n methods: {\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n setReportState (state) {\n return this.$store.dispatch('setReportState', { id: this.report.id, state })\n }\n }\n}\n\nexport default Report\n","import { render } from \"./report.vue?vue&type=template&id=86a2fdce\"\nimport script from \"./report.js?vue&type=script&lang=js\"\nexport * from \"./report.js?vue&type=script&lang=js\"\n\nimport \"./report.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StatusContent from '../status_content/status_content.vue'\nimport { mapState } from 'vuex'\nimport Status from '../status/status.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport Report from '../report/report.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { isStatusNotification } from '../../services/notification_utils/notification_utils.js'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faEyeSlash,\n faUser,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faUser,\n faEyeSlash,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n)\n\nconst Notification = {\n data () {\n return {\n statusExpanded: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n unmuted: false,\n showingApproveConfirmDialog: false,\n showingDenyConfirmDialog: false\n }\n },\n props: ['notification'],\n components: {\n StatusContent,\n UserAvatar,\n UserCard,\n Timeago,\n Status,\n Report,\n RichContent,\n UserPopover,\n UserLink,\n ConfirmModal\n },\n methods: {\n toggleStatusExpanded () {\n this.statusExpanded = !this.statusExpanded\n },\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n getUser (notification) {\n return this.$store.state.users.usersObject[notification.from_profile.id]\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n showApproveConfirmDialog () {\n this.showingApproveConfirmDialog = true\n },\n hideApproveConfirmDialog () {\n this.showingApproveConfirmDialog = false\n },\n showDenyConfirmDialog () {\n this.showingDenyConfirmDialog = true\n },\n hideDenyConfirmDialog () {\n this.showingDenyConfirmDialog = false\n },\n approveUser () {\n if (this.shouldConfirmApprove) {\n this.showApproveConfirmDialog()\n } else {\n this.doApprove()\n }\n },\n doApprove () {\n this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n this.$store.dispatch('markSingleNotificationAsSeen', { id: this.notification.id })\n this.$store.dispatch('updateNotification', {\n id: this.notification.id,\n updater: notification => {\n notification.type = 'follow'\n }\n })\n this.hideApproveConfirmDialog()\n },\n denyUser () {\n if (this.shouldConfirmDeny) {\n this.showDenyConfirmDialog()\n } else {\n this.doDeny()\n }\n },\n doDeny () {\n this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n .then(() => {\n this.$store.dispatch('dismissNotificationLocal', { id: this.notification.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n })\n this.hideDenyConfirmDialog()\n }\n },\n computed: {\n userClass () {\n return highlightClass(this.notification.from_profile)\n },\n userStyle () {\n const highlight = this.$store.getters.mergedConfig.highlight\n const user = this.notification.from_profile\n return highlightStyle(highlight[user.screen_name])\n },\n user () {\n return this.$store.getters.findUser(this.notification.from_profile.id)\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.user)\n },\n targetUser () {\n return this.$store.getters.findUser(this.notification.target.id)\n },\n targetUserProfileLink () {\n return this.generateUserProfileLink(this.targetUser)\n },\n needMute () {\n return this.$store.getters.relationship(this.user.id).muting\n },\n isStatusNotification () {\n return isStatusNotification(this.notification.type)\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n shouldConfirmApprove () {\n return this.mergedConfig.modalOnApproveFollow\n },\n shouldConfirmDeny () {\n return this.mergedConfig.modalOnDenyFollow\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default Notification\n","import { render } from \"./notification.vue?vue&type=template&id=69ada7ad\"\nimport script from \"./notification.js?vue&type=script&lang=js\"\nexport * from \"./notification.js?vue&type=script&lang=js\"\n\nimport \"./notification.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"NotificationFilters\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('likes')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.likes }\"\n />{{ $t('settings.notification_visibility_likes') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('repeats')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.repeats }\"\n />{{ $t('settings.notification_visibility_repeats') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('follows')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.follows }\"\n />{{ $t('settings.notification_visibility_follows') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('mentions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.mentions }\"\n />{{ $t('settings.notification_visibility_mentions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('emojiReactions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.emojiReactions }\"\n />{{ $t('settings.notification_visibility_emoji_reactions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('moves')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.moves }\"\n />{{ $t('settings.notification_visibility_moves') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('polls')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.polls }\"\n />{{ $t('settings.notification_visibility_polls') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"filter-trigger-button button-unstyled\">\n <FAIcon icon=\"filter\" />\n </button>\n </template>\n </Popover>\n</template>\n\n<script>\nimport Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter\n)\n\nexport default {\n components: { Popover },\n computed: {\n filters () {\n return this.$store.getters.mergedConfig.notificationVisibility\n }\n },\n methods: {\n toggleNotificationFilter (type) {\n this.$store.dispatch('setOption', {\n name: 'notificationVisibility',\n value: {\n ...this.filters,\n [type]: !this.filters[type]\n }\n })\n }\n }\n}\n</script>\n","import { render } from \"./notification_filters.vue?vue&type=template&id=0ad39446\"\nimport script from \"./notification_filters.vue?vue&type=script&lang=js\"\nexport * from \"./notification_filters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed } from 'vue'\nimport { mapGetters } from 'vuex'\nimport Notification from '../notification/notification.vue'\nimport NotificationFilters from './notification_filters.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n notificationsFromStore,\n filteredNotificationsFromStore,\n unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\nimport FaviconService from '../../services/favicon_service/favicon_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faArrowUp, faMinus } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faArrowUp,\n faMinus\n)\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n components: {\n Notification,\n NotificationFilters\n },\n props: {\n // Disables panel styles, unread mark, potentially other notification-related actions\n // meant for \"Interactions\" timeline\n minimalMode: Boolean,\n // Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in \"Interactions\" timeline\n filterMode: Array,\n // Disable teleporting (i.e. for /users/user/notifications)\n disableTeleport: Boolean\n },\n data () {\n return {\n showScrollTop: false,\n bottomedOut: false,\n // How many seen notifications to display in the list. The more there are,\n // the heavier the page becomes. This count is increased when loading\n // older notifications, and cut back to default whenever hitting \"Read!\".\n seenToDisplayCount: DEFAULT_SEEN_TO_DISPLAY_COUNT\n }\n },\n provide () {\n return {\n popoversZLayer: computed(() => this.popoversZLayer)\n }\n },\n computed: {\n mainClass () {\n return this.minimalMode ? '' : 'panel panel-default'\n },\n notifications () {\n return notificationsFromStore(this.$store)\n },\n error () {\n return this.$store.state.statuses.notifications.error\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n filteredNotifications () {\n return filteredNotificationsFromStore(this.$store, this.filterMode)\n },\n unseenCount () {\n return this.unseenNotifications.length\n },\n unseenCountTitle () {\n return this.unseenCount + (this.unreadChatCount) + this.unreadAnnouncementCount\n },\n loading () {\n return this.$store.state.statuses.notifications.loading\n },\n noHeading () {\n const { layoutType } = this.$store.state.interface\n return this.minimalMode || layoutType === 'mobile'\n },\n teleportTarget () {\n const { layoutType } = this.$store.state.interface\n const map = {\n wide: '#notifs-column',\n mobile: '#mobile-notifications'\n }\n return map[layoutType] || '#notifs-sidebar'\n },\n popoversZLayer () {\n const { layoutType } = this.$store.state.interface\n return layoutType === 'mobile' ? 'navbar' : null\n },\n notificationsToDisplay () {\n return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n },\n mounted () {\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.column.main')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n },\n unmounted () {\n if (!this.scrollerRef) return\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n },\n watch: {\n unseenCountTitle (count) {\n if (count > 0) {\n FaviconService.drawFaviconBadge()\n this.$store.dispatch('setPageTitle', `(${count})`)\n } else {\n FaviconService.clearFaviconBadge()\n this.$store.dispatch('setPageTitle', '')\n }\n },\n teleportTarget () {\n // handle scroller change\n this.$nextTick(() => {\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n this.updateScrollPosition()\n })\n }\n },\n methods: {\n scrollToTop () {\n const scrollable = this.scrollerRef\n scrollable.scrollTo({ top: this.$refs.root.offsetTop })\n // this.$refs.root.scrollIntoView({ behavior: 'smooth', block: 'start' })\n },\n updateScrollPosition () {\n this.showScrollTop = this.$refs.root.offsetTop < this.scrollerRef.scrollTop\n },\n markAsSeen () {\n this.$store.dispatch('markNotificationsAsSeen')\n this.seenToDisplayCount = DEFAULT_SEEN_TO_DISPLAY_COUNT\n },\n fetchOlderNotifications () {\n if (this.loading) {\n return\n }\n\n const seenCount = this.filteredNotifications.length - this.unseenCount\n if (this.seenToDisplayCount < seenCount) {\n this.seenToDisplayCount = Math.min(this.seenToDisplayCount + 20, seenCount)\n return\n } else if (this.seenToDisplayCount > seenCount) {\n this.seenToDisplayCount = seenCount\n }\n\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setNotificationsLoading', { value: true })\n notificationsFetcher.fetchAndUpdate({\n store,\n credentials,\n older: true\n }).then(notifs => {\n store.commit('setNotificationsLoading', { value: false })\n if (notifs.length === 0) {\n this.bottomedOut = true\n }\n this.seenToDisplayCount += notifs.length\n })\n }\n }\n}\n\nexport default Notifications\n","import { render } from \"./notifications.vue?vue&type=template&id=fdd5b5f4\"\nimport script from \"./notifications.js?vue&type=script&lang=js\"\nexport * from \"./notifications.js?vue&type=script&lang=js\"\n\nimport \"./notifications.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel-loading\">\n <span class=\"loading-text\">\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n {{ $t('general.loading') }}\n </span>\n </div>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nexport default {}\n</script>\n\n<style lang=\"scss\">\n@import \"src/variables\";\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n</style>\n","import { render } from \"./panel_loading.vue?vue&type=template&id=0255a870\"\nimport script from \"./panel_loading.vue?vue&type=script&lang=js\"\nexport * from \"./panel_loading.vue?vue&type=script&lang=js\"\n\nimport \"./panel_loading.vue?vue&type=style&index=0&id=0255a870&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const Popover = {\n name: 'Popover',\n props: {\n // Action to trigger popover: either 'hover' or 'click'\n trigger: String,\n\n // 'top', 'bottom', 'left', 'right'\n placement: String,\n\n // Takes object with properties 'x' and 'y', values of these can be\n // 'container' for using offsetParent as boundaries for either axis\n // or 'viewport'\n boundTo: Object,\n\n // Takes a selector to use as a replacement for the parent container\n // for getting boundaries for x an y axis\n boundToSelector: String,\n\n // Takes a top/bottom/left/right object, how much space to leave\n // between boundary and popover element\n margin: Object,\n\n // Takes a x/y object and tells how many pixels to offset from\n // anchor point on either axis\n offset: Object,\n\n // Replaces the classes you may want for the popover container.\n // Use 'popover-default' in addition to get the default popover\n // styles with your custom class.\n popoverClass: String,\n\n // If true, subtract padding when calculating position for the popover,\n // use it when popover offset looks to be different on top vs bottom.\n removePadding: Boolean,\n\n // self-explanatory (i hope)\n disabled: Boolean,\n\n // Instead of putting popover next to anchor, overlay popover's center on top of anchor's center\n overlayCenters: Boolean,\n\n // What selector (witin popover!) to use for determining center of popover\n overlayCentersSelector: String,\n\n // Lets hover popover stay when clicking inside of it\n stayOnClick: Boolean,\n\n triggerAttrs: {\n type: Object,\n default: {}\n }\n },\n inject: ['popoversZLayer'], // override popover z layer\n data () {\n return {\n // lockReEntry is a flag that is set when mouse cursor is leaving the popover's content\n // so that if mouse goes back into popover it won't be re-shown again to prevent annoyance\n // with popovers refusing to be hidden when user wants to interact with something in below popover\n anchorEl: null,\n // There's an issue where having teleport enabled by default causes things just...\n // not render at all, i.e. main post status form and its emoji inputs\n teleport: false,\n lockReEntry: false,\n hidden: true,\n styles: {},\n oldSize: { width: 0, height: 0 },\n scrollable: null,\n // used to avoid blinking if hovered onto popover\n graceTimeout: null,\n parentPopover: null,\n disableClickOutside: false,\n childrenShown: new Set()\n }\n },\n methods: {\n setAnchorEl (el) {\n this.anchorEl = el\n this.updateStyles()\n },\n containerBoundingClientRect () {\n const container = this.boundToSelector ? this.$el.closest(this.boundToSelector) : this.$el.offsetParent\n return container.getBoundingClientRect()\n },\n updateStyles () {\n if (this.hidden) {\n this.styles = {}\n return\n }\n\n // Popover will be anchored around this element, trigger ref is the container, so\n // its children are what are inside the slot. Expect only one v-slot:trigger.\n const anchorEl = this.anchorEl || (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el\n // SVGs don't have offsetWidth/Height, use fallback\n const anchorHeight = anchorEl.offsetHeight || anchorEl.clientHeight\n const anchorWidth = anchorEl.offsetWidth || anchorEl.clientWidth\n const anchorScreenBox = anchorEl.getBoundingClientRect()\n\n const anchorStyle = getComputedStyle(anchorEl)\n const topPadding = parseFloat(anchorStyle.paddingTop)\n const bottomPadding = parseFloat(anchorStyle.paddingBottom)\n const rightPadding = parseFloat(anchorStyle.paddingRight)\n const leftPadding = parseFloat(anchorStyle.paddingLeft)\n\n // Screen position of the origin point for popover = center of the anchor\n const origin = {\n x: anchorScreenBox.left + anchorWidth * 0.5,\n y: anchorScreenBox.top + anchorHeight * 0.5\n }\n const content = this.$refs.content\n const overlayCenter = this.overlayCenters\n ? this.$refs.content.querySelector(this.overlayCentersSelector)\n : null\n\n // Minor optimization, don't call a slow reflow call if we don't have to\n const parentScreenBox = this.boundTo &&\n (this.boundTo.x === 'container' || this.boundTo.y === 'container') &&\n this.containerBoundingClientRect()\n\n const margin = this.margin || {}\n\n // What are the screen bounds for the popover? Viewport vs container\n // when using viewport, using default margin values to dodge the navbar\n const xBounds = this.boundTo && this.boundTo.x === 'container'\n ? {\n min: parentScreenBox.left + (margin.left || 0),\n max: parentScreenBox.right - (margin.right || 0)\n }\n : {\n min: 0 + (margin.left || 10),\n max: window.innerWidth - (margin.right || 10)\n }\n\n const yBounds = this.boundTo && this.boundTo.y === 'container'\n ? {\n min: parentScreenBox.top + (margin.top || 0),\n max: parentScreenBox.bottom - (margin.bottom || 0)\n }\n : {\n min: 0 + (margin.top || 50),\n max: window.innerHeight - (margin.bottom || 5)\n }\n\n let horizOffset = 0\n let vertOffset = 0\n\n if (overlayCenter) {\n const box = content.getBoundingClientRect()\n const overlayCenterScreenBox = overlayCenter.getBoundingClientRect()\n const leftInnerOffset = overlayCenterScreenBox.left - box.left\n const topInnerOffset = overlayCenterScreenBox.top - box.top\n horizOffset = -leftInnerOffset - overlayCenter.offsetWidth * 0.5\n vertOffset = -topInnerOffset - overlayCenter.offsetHeight * 0.5\n } else {\n horizOffset = content.offsetWidth * -0.5\n vertOffset = content.offsetHeight * -0.5\n }\n\n const leftBorder = origin.x + horizOffset\n const rightBorder = leftBorder + content.offsetWidth\n const topBorder = origin.y + vertOffset\n const bottomBorder = topBorder + content.offsetHeight\n\n // If overflowing from left, move it so that it doesn't\n if (leftBorder < xBounds.min) {\n horizOffset += xBounds.min - leftBorder\n }\n\n // If overflowing from right, move it so that it doesn't\n if (rightBorder > xBounds.max) {\n horizOffset -= rightBorder - xBounds.max\n }\n\n // If overflowing from top, move it so that it doesn't\n if (topBorder < yBounds.min) {\n vertOffset += yBounds.min - topBorder\n }\n\n // If overflowing from bottom, move it so that it doesn't\n if (bottomBorder > yBounds.max) {\n vertOffset -= bottomBorder - yBounds.max\n }\n\n let translateX = 0\n let translateY = 0\n\n if (overlayCenter) {\n translateX = origin.x + horizOffset\n translateY = origin.y + vertOffset\n } else if (this.placement !== 'right' && this.placement !== 'left') {\n // Default to whatever user wished with placement prop\n let usingTop = this.placement !== 'bottom'\n\n // Handle special cases, first force to displaying on top if there's not space on bottom,\n // regardless of what placement value was. Then check if there's not space on top, and\n // force to bottom, again regardless of what placement value was.\n const topBoundary = origin.y - anchorHeight * 0.5 + (this.removePadding ? topPadding : 0)\n const bottomBoundary = origin.y + anchorHeight * 0.5 - (this.removePadding ? bottomPadding : 0)\n if (bottomBoundary + content.offsetHeight > yBounds.max) usingTop = true\n if (topBoundary - content.offsetHeight < yBounds.min) usingTop = false\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = usingTop\n ? topBoundary - yOffset - content.offsetHeight\n : bottomBoundary + yOffset\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = origin.x + horizOffset + xOffset\n } else {\n // Default to whatever user wished with placement prop\n let usingRight = this.placement !== 'left'\n\n // Handle special cases, first force to displaying on top if there's not space on bottom,\n // regardless of what placement value was. Then check if there's not space on top, and\n // force to bottom, again regardless of what placement value was.\n const rightBoundary = origin.x - anchorWidth * 0.5 + (this.removePadding ? rightPadding : 0)\n const leftBoundary = origin.x + anchorWidth * 0.5 - (this.removePadding ? leftPadding : 0)\n if (leftBoundary + content.offsetWidth > xBounds.max) usingRight = true\n if (rightBoundary - content.offsetWidth < xBounds.min) usingRight = false\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = usingRight\n ? rightBoundary - xOffset - content.offsetWidth\n : leftBoundary + xOffset\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = origin.y + vertOffset + yOffset\n }\n\n this.styles = {\n left: `${Math.round(translateX)}px`,\n top: `${Math.round(translateY)}px`\n }\n\n if (this.popoversZLayer) {\n this.styles['--ZI_popover_override'] = `var(--ZI_${this.popoversZLayer}_popovers)`\n }\n if (parentScreenBox) {\n this.styles.maxWidth = `${Math.round(parentScreenBox.width)}px`\n }\n },\n showPopover () {\n if (this.disabled) return\n this.disableClickOutside = true\n setTimeout(() => {\n this.disableClickOutside = false\n }, 0)\n const wasHidden = this.hidden\n this.hidden = false\n this.parentPopover && this.parentPopover.onChildPopoverState(this, true)\n if (this.trigger === 'click' || this.stayOnClick) {\n document.addEventListener('click', this.onClickOutside)\n }\n this.scrollable.addEventListener('scroll', this.onScroll)\n this.scrollable.addEventListener('resize', this.onResize)\n this.$nextTick(() => {\n if (wasHidden) this.$emit('show')\n this.updateStyles()\n })\n },\n hidePopover () {\n if (this.disabled) return\n if (!this.hidden) this.$emit('close')\n this.hidden = true\n this.parentPopover && this.parentPopover.onChildPopoverState(this, false)\n if (this.trigger === 'click') {\n document.removeEventListener('click', this.onClickOutside)\n }\n this.scrollable.removeEventListener('scroll', this.onScroll)\n this.scrollable.removeEventListener('resize', this.onResize)\n },\n onMouseenter (e) {\n if (this.trigger === 'hover') {\n this.lockReEntry = false\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleave (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\n },\n onMouseenterContent (e) {\n if (this.trigger === 'hover' && !this.lockReEntry) {\n this.lockReEntry = true\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleaveContent (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\n },\n onClick (e) {\n if (this.trigger === 'click') {\n if (this.hidden) {\n this.showPopover()\n } else {\n this.hidePopover()\n }\n }\n },\n onClickOutside (e) {\n if (this.disableClickOutside) return\n if (this.hidden) return\n if (this.$refs.content && this.$refs.content.contains(e.target)) return\n if (this.$el.contains(e.target)) return\n if (this.childrenShown.size > 0) return\n this.hidePopover()\n if (this.parentPopover) this.parentPopover.onClickOutside(e)\n },\n onScroll (e) {\n this.updateStyles()\n },\n onResize (e) {\n this.updateStyles()\n },\n onChildPopoverState (childRef, state) {\n if (state) {\n this.childrenShown.add(childRef)\n } else {\n this.childrenShown.delete(childRef)\n }\n }\n },\n updated () {\n // Monitor changes to content size, update styles only when content sizes have changed,\n // that should be the only time we need to move the popover box if we don't care about scroll\n // or resize\n const content = this.$refs.content\n if (!content) return\n if (this.oldSize.width !== content.offsetWidth || this.oldSize.height !== content.offsetHeight) {\n this.updateStyles()\n this.oldSize = { width: content.offsetWidth, height: content.offsetHeight }\n }\n },\n mounted () {\n this.teleport = true\n let scrollable = this.$refs.trigger.closest('.column.-scrollable') ||\n this.$refs.trigger.closest('.mobile-notifications')\n if (!scrollable) scrollable = window\n this.scrollable = scrollable\n let parent = this.$parent\n while (parent && parent.$.type.name !== 'Popover') {\n parent = parent.$parent\n }\n this.parentPopover = parent\n },\n beforeUnmount () {\n this.hidePopover()\n }\n}\n\nexport default Popover\n","import { render } from \"./popover.vue?vue&type=template&id=1de5634b\"\nimport script from \"./popover.js?vue&type=script&lang=js\"\nexport * from \"./popover.js?vue&type=script&lang=js\"\n\nimport \"./popover.vue?vue&type=style&index=0&id=1de5634b&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n @mouseenter=\"onMouseenter\"\n @mouseleave=\"onMouseleave\"\n >\n <button\n ref=\"trigger\"\n class=\"button-unstyled popover-trigger-button\"\n type=\"button\"\n v-bind=\"triggerAttrs\"\n @click=\"onClick\"\n >\n <slot name=\"trigger\" />\n </button>\n <teleport\n :disabled=\"!teleport\"\n to=\"#popovers\"\n >\n <transition name=\"fade\">\n <div\n v-if=\"!hidden\"\n ref=\"content\"\n :style=\"styles\"\n class=\"popover\"\n :class=\"popoverClass || 'popover-default'\"\n @mouseenter=\"onMouseenterContent\"\n @mouseleave=\"onMouseleaveContent\"\n @click=\"onClickContent\"\n >\n <slot\n name=\"content\"\n class=\"popover-inner\"\n :close=\"hidePopover\"\n />\n </div>\n </transition>\n </teleport>\n </span>\n</template>\n\n<script src=\"./popover.js\" />\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgb(0 0 0 / 50%);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon);\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active,\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"✓\";\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"•\";\n }\n }\n }\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n</style>\n","<template>\n <div\n ref=\"form\"\n class=\"post-status-form\"\n >\n <form\n autocomplete=\"off\"\n @submit.prevent\n @dragover.prevent=\"fileDrag\"\n >\n <div class=\"form-group\">\n <i18n-t\n v-if=\"!$store.state.users.currentUser.locked && newStatus.visibility == 'private' && !disableLockWarning\"\n keypath=\"post_status.account_not_locked_warning\"\n tag=\"p\"\n class=\"visibility-notice\"\n scope=\"global\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openProfileTab\"\n >\n {{ $t('post_status.account_not_locked_warning_link') }}\n </button>\n </i18n-t>\n <p\n v-if=\"!hideScopeNotice && newStatus.visibility === 'public'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.public') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'unlisted'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.unlisted') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'private' && $store.state.users.currentUser.locked\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.private') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"newStatus.visibility === 'direct'\"\n class=\"visibility-notice\"\n >\n <span v-if=\"safeDMEnabled\">{{ $t('post_status.direct_warning_to_first_only') }}</span>\n <span v-else>{{ $t('post_status.direct_warning_to_all') }}</span>\n </p>\n <div\n v-if=\"isEdit\"\n class=\"visibility-notice edit-warning\"\n >\n <p>{{ $t('post_status.edit_remote_warning') }}</p>\n <p>{{ $t('post_status.edit_unsupported_warning') }}</p>\n </div>\n <div\n v-if=\"!disablePreview\"\n class=\"preview-heading faint\"\n >\n <a\n class=\"preview-toggle faint\"\n @click.stop.prevent=\"togglePreview\"\n >\n {{ $t('post_status.preview') }}\n <FAIcon :icon=\"showPreview ? 'chevron-left' : 'chevron-right'\" />\n </a>\n <div\n v-show=\"previewLoading\"\n class=\"preview-spinner\"\n >\n <FAIcon\n class=\"fa-old-padding\"\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n <div\n v-if=\"showPreview\"\n class=\"preview-container\"\n >\n <div\n v-if=\"!preview\"\n class=\"preview-status\"\n >\n {{ $t('general.loading') }}\n </div>\n <div\n v-else-if=\"preview.error\"\n class=\"preview-status preview-error\"\n >\n {{ preview.error }}\n </div>\n <StatusContent\n v-else\n :status=\"preview\"\n class=\"preview-status\"\n />\n </div>\n <EmojiInput\n v-if=\"!disableSubject && (newStatus.spoilerText || alwaysShowSubject)\"\n v-model=\"newStatus.spoilerText\"\n enable-emoji-picker\n :suggest=\"emojiSuggestor\"\n class=\"form-control\"\n >\n <template #default=\"inputProps\">\n <input\n v-model=\"newStatus.spoilerText\"\n type=\"text\"\n :placeholder=\"$t('post_status.content_warning')\"\n :disabled=\"posting && !optimisticPosting\"\n v-bind=\"propsToNative(inputProps)\"\n size=\"1\"\n class=\"form-post-subject\"\n >\n </template>\n </EmojiInput>\n <EmojiInput\n ref=\"emoji-input\"\n v-model=\"newStatus.status\"\n :suggest=\"emojiUserSuggestor\"\n :placement=\"emojiPickerPlacement\"\n class=\"form-control main-input\"\n enable-emoji-picker\n hide-emoji-button\n :newline-on-ctrl-enter=\"submitOnEnter\"\n enable-sticker-picker\n @input=\"onEmojiInputInput\"\n @sticker-uploaded=\"addMediaFile\"\n @sticker-upload-failed=\"uploadFailed\"\n @shown=\"handleEmojiInputShow\"\n >\n <template #default=\"inputProps\">\n <textarea\n ref=\"textarea\"\n v-model=\"newStatus.status\"\n :placeholder=\"placeholder || $t('post_status.default')\"\n rows=\"1\"\n cols=\"1\"\n :disabled=\"posting && !optimisticPosting\"\n class=\"form-post-body\"\n :class=\"{ 'scrollable-form': !!maxHeight }\"\n v-bind=\"propsToNative(inputProps)\"\n @keydown.exact.enter=\"submitOnEnter && postStatus($event, newStatus)\"\n @keydown.meta.enter=\"postStatus($event, newStatus)\"\n @keydown.ctrl.enter=\"!submitOnEnter && postStatus($event, newStatus)\"\n @input=\"resize\"\n @compositionupdate=\"resize\"\n @paste=\"paste\"\n />\n <p\n v-if=\"hasStatusLengthLimit\"\n class=\"character-counter faint\"\n :class=\"{ error: isOverLengthLimit }\"\n >\n {{ charactersLeft }}\n </p>\n </template>\n </EmojiInput>\n <div\n v-if=\"!disableScopeSelector\"\n class=\"visibility-tray\"\n >\n <scope-selector\n v-if=\"!disableVisibilitySelector\"\n :show-all=\"showAllScopes\"\n :user-default=\"userDefaultScope\"\n :original-scope=\"copyMessageScope\"\n :initial-scope=\"newStatus.visibility\"\n :on-scope-change=\"changeVis\"\n />\n\n <div\n v-if=\"postFormats.length > 1\"\n class=\"text-format\"\n >\n <Select\n id=\"post-content-type\"\n v-model=\"newStatus.contentType\"\n class=\"form-control\"\n :attrs=\"{ 'aria-label': $t('post_status.content_type_selection') }\"\n >\n <option\n v-for=\"postFormat in postFormats\"\n :key=\"postFormat\"\n :value=\"postFormat\"\n >\n {{ $t(`post_status.content_type[\"${postFormat}\"]`) }}\n </option>\n </Select>\n </div>\n <div\n v-if=\"postFormats.length === 1 && postFormats[0] !== 'text/plain'\"\n class=\"text-format\"\n >\n <span class=\"only-format\">\n {{ $t(`post_status.content_type[\"${postFormats[0]}\"]`) }}\n </span>\n </div>\n </div>\n </div>\n <poll-form\n v-if=\"pollsAvailable\"\n ref=\"pollForm\"\n :visible=\"pollFormVisible\"\n @update-poll=\"setPoll\"\n />\n <div\n ref=\"bottom\"\n class=\"form-bottom\"\n >\n <div class=\"form-bottom-left\">\n <media-upload\n ref=\"mediaUpload\"\n class=\"media-upload-icon\"\n :drop-files=\"dropFiles\"\n :disabled=\"uploadFileLimitReached\"\n @uploading=\"startedUploadingFiles\"\n @uploaded=\"addMediaFile\"\n @upload-failed=\"uploadFailed\"\n @all-uploaded=\"finishedUploadingFiles\"\n />\n <button\n class=\"emoji-icon button-unstyled\"\n :title=\"$t('emoji.add_emoji')\"\n @click=\"showEmojiPicker\"\n >\n <FAIcon icon=\"smile-beam\" />\n </button>\n <button\n v-if=\"pollsAvailable\"\n class=\"poll-icon button-unstyled\"\n :class=\"{ selected: pollFormVisible }\"\n :title=\"$t('polls.add_poll')\"\n @click=\"togglePollForm\"\n >\n <FAIcon icon=\"poll-h\" />\n </button>\n </div>\n <button\n v-if=\"posting\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.posting') }}\n </button>\n <button\n v-else-if=\"isOverLengthLimit\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.post') }}\n </button>\n <!-- touchstart is used to keep the OSK at the same position after a message send -->\n <button\n v-else\n :disabled=\"uploadingFiles || disableSubmit\"\n class=\"btn button-default\"\n @touchstart.stop.prevent=\"postStatus($event, newStatus)\"\n @click.stop.prevent=\"postStatus($event, newStatus)\"\n >\n {{ $t('post_status.post') }}\n </button>\n </div>\n <div\n v-show=\"showDropIcon !== 'hide'\"\n :style=\"{ animation: showDropIcon === 'show' ? 'fade-in 0.25s' : 'fade-out 0.5s' }\"\n class=\"drop-indicator\"\n @dragleave=\"fileDragStop\"\n @drop.stop=\"fileDrop\"\n >\n <FAIcon :icon=\"uploadFileLimitReached ? 'ban' : 'upload'\" />\n </div>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n Error: {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <gallery\n v-if=\"newStatus.files && newStatus.files.length > 0\"\n class=\"attachments\"\n :grid=\"true\"\n :nsfw=\"false\"\n :attachments=\"newStatus.files\"\n :descriptions=\"newStatus.mediaDescriptions\"\n :set-media=\"() => $store.dispatch('setMedia', newStatus.files)\"\n :editable=\"true\"\n :edit-attachment=\"editAttachment\"\n :remove-attachment=\"removeMediaFile\"\n :shift-up-attachment=\"newStatus.files.length > 1 && shiftUpMediaFile\"\n :shift-dn-attachment=\"newStatus.files.length > 1 && shiftDnMediaFile\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n <div\n v-if=\"newStatus.files.length > 0 && !disableSensitivityCheckbox\"\n class=\"upload_settings\"\n >\n <Checkbox v-model=\"newStatus.nsfw\">\n {{ $t('post_status.attachments_sensitive') }}\n </Checkbox>\n </div>\n </form>\n </div>\n</template>\n\n<script src=\"./post_status_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n svg,\n i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .media-upload-icon,\n .poll-icon,\n .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected,\n &:hover {\n // needs to be specific to override icon default color\n svg,\n i,\n label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg,\n i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n\n img,\n video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n</style>\n","/* eslint-env browser */\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faUpload, faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUpload,\n faCircleNotch\n)\n\nconst mediaUpload = {\n data () {\n return {\n uploadCount: 0,\n uploadReady: true\n }\n },\n computed: {\n uploading () {\n return this.uploadCount > 0\n }\n },\n methods: {\n uploadFile (file) {\n const self = this\n const store = this.$store\n if (file.size > store.state.instance.uploadlimit) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(store.state.instance.uploadlimit)\n self.$emit('upload-failed', 'file_too_big', { filesize: filesize.num, filesizeunit: filesize.unit, allowedsize: allowedsize.num, allowedsizeunit: allowedsize.unit })\n return\n }\n const formData = new FormData()\n formData.append('file', file)\n\n self.$emit('uploading')\n self.uploadCount++\n\n statusPosterService.uploadMedia({ store, formData })\n .then((fileData) => {\n self.$emit('uploaded', fileData)\n self.decreaseUploadCount()\n }, (error) => {\n console.error('Error uploading file', error)\n self.$emit('upload-failed', 'default')\n self.decreaseUploadCount()\n })\n },\n decreaseUploadCount () {\n this.uploadCount--\n if (this.uploadCount === 0) {\n this.$emit('all-uploaded')\n }\n },\n clearFile () {\n this.uploadReady = false\n this.$nextTick(() => {\n this.uploadReady = true\n })\n },\n multiUpload (files) {\n for (const file of files) {\n this.uploadFile(file)\n }\n },\n change ({ target }) {\n this.multiUpload(target.files)\n }\n },\n props: [\n 'dropFiles',\n 'disabled'\n ],\n watch: {\n dropFiles: function (fileInfos) {\n if (!this.uploading) {\n this.multiUpload(fileInfos)\n }\n }\n }\n}\n\nexport default mediaUpload\n","import { render } from \"./media_upload.vue?vue&type=template&id=6bb23d2c\"\nimport script from \"./media_upload.js?vue&type=script&lang=js\"\nexport * from \"./media_upload.js?vue&type=script&lang=js\"\n\nimport \"./media_upload.vue?vue&type=style&index=0&id=6bb23d2c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"media-upload\"\n :class=\"{ disabled: disabled }\"\n :title=\"$t('tool_tip.media_upload')\"\n >\n <FAIcon\n v-if=\"uploading\"\n class=\"progress-icon\"\n icon=\"circle-notch\"\n spin\n />\n <FAIcon\n v-if=\"!uploading\"\n class=\"new-icon\"\n icon=\"upload\"\n />\n <input\n v-if=\"uploadReady\"\n class=\"hidden-input-file\"\n :disabled=\"disabled\"\n type=\"file\"\n multiple=\"true\"\n @change=\"change\"\n >\n </label>\n</template>\n\n<script src=\"./media_upload.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n\n .hidden-input-file {\n display: none;\n }\n}\n </style>\n","<template>\n <div\n v-if=\"visible\"\n class=\"poll-form\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div class=\"input-container\">\n <input\n :id=\"`poll-${index}`\"\n v-model=\"options[index]\"\n size=\"1\"\n class=\"poll-option-input\"\n type=\"text\"\n :placeholder=\"$t('polls.option')\"\n :maxlength=\"maxLength\"\n @change=\"updatePollToParent\"\n @keydown.enter.stop.prevent=\"nextOption(index)\"\n >\n </div>\n <button\n v-if=\"options.length > 2\"\n class=\"delete-option button-unstyled -hover-highlight\"\n @click=\"deleteOption(index)\"\n >\n <FAIcon icon=\"times\" />\n </button>\n </div>\n <button\n v-if=\"options.length < maxOptions\"\n class=\"add-option faint button-unstyled -hover-highlight\"\n @click=\"addOption\"\n >\n <FAIcon\n icon=\"plus\"\n size=\"sm\"\n />\n\n {{ $t(\"polls.add_option\") }}\n </button>\n <div class=\"poll-type-expiry\">\n <div\n class=\"poll-type\"\n :title=\"$t('polls.type')\"\n >\n <Select\n v-model=\"pollType\"\n class=\"poll-type-select\"\n unstyled=\"true\"\n @change=\"updatePollToParent\"\n >\n <option value=\"single\">\n {{ $t('polls.single_choice') }}\n </option>\n <option value=\"multiple\">\n {{ $t('polls.multiple_choices') }}\n </option>\n </Select>\n </div>\n <div\n class=\"poll-expiry\"\n :title=\"$t('polls.expiry')\"\n >\n <input\n v-model=\"expiryAmount\"\n type=\"number\"\n class=\"expiry-amount hide-number-spinner\"\n :min=\"minExpirationInCurrentUnit\"\n :max=\"maxExpirationInCurrentUnit\"\n @change=\"expiryAmountChange\"\n >\n {{ ' ' }}\n <Select\n v-model=\"expiryUnit\"\n unstyled=\"true\"\n class=\"expiry-unit\"\n @change=\"expiryAmountChange\"\n >\n <option\n v-for=\"unit in expiryUnits\"\n :key=\"unit\"\n :value=\"unit\"\n >\n {{ $tc(`time.unit.${unit}_short`, expiryAmount, ['']) }}\n </option>\n </Select>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./poll_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n</style>\n","import * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport { uniq } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport Select from '../select/select.vue'\nimport {\n faTimes,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus\n)\n\nexport default {\n components: {\n Select\n },\n name: 'PollForm',\n props: ['visible'],\n data: () => ({\n pollType: 'single',\n options: ['', ''],\n expiryAmount: 10,\n expiryUnit: 'minutes'\n }),\n computed: {\n pollLimits () {\n return this.$store.state.instance.pollLimits\n },\n maxOptions () {\n return this.pollLimits.max_options\n },\n maxLength () {\n return this.pollLimits.max_option_chars\n },\n expiryUnits () {\n const allUnits = ['minutes', 'hours', 'days']\n const expiry = this.convertExpiryFromUnit\n return allUnits.filter(\n unit => this.pollLimits.max_expiration >= expiry(unit, 1)\n )\n },\n minExpirationInCurrentUnit () {\n return Math.ceil(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.min_expiration\n )\n )\n },\n maxExpirationInCurrentUnit () {\n return Math.floor(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.max_expiration\n )\n )\n }\n },\n methods: {\n clear () {\n this.pollType = 'single'\n this.options = ['', '']\n this.expiryAmount = 10\n this.expiryUnit = 'minutes'\n },\n nextOption (index) {\n const element = this.$el.querySelector(`#poll-${index + 1}`)\n if (element) {\n element.focus()\n } else {\n // Try adding an option and try focusing on it\n const addedOption = this.addOption()\n if (addedOption) {\n this.$nextTick(function () {\n this.nextOption(index)\n })\n }\n }\n },\n addOption () {\n if (this.options.length < this.maxOptions) {\n this.options.push('')\n return true\n }\n return false\n },\n deleteOption (index, event) {\n if (this.options.length > 2) {\n this.options.splice(index, 1)\n this.updatePollToParent()\n }\n },\n convertExpiryToUnit (unit, amount) {\n // Note: we want seconds and not milliseconds\n return DateUtils.secondsToUnit(unit, amount)\n },\n convertExpiryFromUnit (unit, amount) {\n return DateUtils.unitToSeconds(unit, amount)\n },\n expiryAmountChange () {\n this.expiryAmount =\n Math.max(this.minExpirationInCurrentUnit, this.expiryAmount)\n this.expiryAmount =\n Math.min(this.maxExpirationInCurrentUnit, this.expiryAmount)\n this.updatePollToParent()\n },\n updatePollToParent () {\n const expiresIn = this.convertExpiryFromUnit(\n this.expiryUnit,\n this.expiryAmount\n )\n\n const options = uniq(this.options.filter(option => option !== ''))\n if (options.length < 2) {\n this.$emit('update-poll', { error: this.$t('polls.not_enough_options') })\n return\n }\n this.$emit('update-poll', {\n options,\n multiple: this.pollType === 'multiple',\n expiresIn\n })\n }\n }\n}\n","import { render } from \"./poll_form.vue?vue&type=template&id=24ea52c8\"\nimport script from \"./poll_form.js?vue&type=script&lang=js\"\nexport * from \"./poll_form.js?vue&type=script&lang=js\"\n\nimport \"./poll_form.vue?vue&type=style&index=0&id=24ea52c8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import statusPoster from '../../services/status_poster/status_poster.service.js'\nimport MediaUpload from '../media_upload/media_upload.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport EmojiInput from '../emoji_input/emoji_input.vue'\nimport PollForm from '../poll/poll_form.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport Gallery from 'src/components/gallery/gallery.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { propsToNative } from '../../services/attributes_helper/attributes_helper.service.js'\nimport { reject, map, uniqBy, debounce } from 'lodash'\nimport suggestor from '../emoji_input/suggestor.js'\nimport { mapGetters, mapState } from 'vuex'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Select from '../select/select.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n)\n\nconst buildMentionsString = ({ user, attentions = [] }, currentUser) => {\n let allAttentions = [...attentions]\n\n allAttentions.unshift(user)\n\n allAttentions = uniqBy(allAttentions, 'id')\n allAttentions = reject(allAttentions, { id: currentUser.id })\n\n const mentions = map(allAttentions, (attention) => {\n return `@${attention.screen_name}`\n })\n\n return mentions.length > 0 ? mentions.join(' ') + ' ' : ''\n}\n\n// Converts a string with px to a number like '2px' -> 2\nconst pxStringToNumber = (str) => {\n return Number(str.substring(0, str.length - 2))\n}\n\nconst PostStatusForm = {\n props: [\n 'statusId',\n 'statusText',\n 'statusIsSensitive',\n 'statusPoll',\n 'statusFiles',\n 'statusMediaDescriptions',\n 'statusScope',\n 'statusContentType',\n 'replyTo',\n 'repliedUser',\n 'attentions',\n 'copyMessageScope',\n 'subject',\n 'disableSubject',\n 'disableScopeSelector',\n 'disableVisibilitySelector',\n 'disableNotice',\n 'disableLockWarning',\n 'disablePolls',\n 'disableSensitivityCheckbox',\n 'disableSubmit',\n 'disablePreview',\n 'placeholder',\n 'maxHeight',\n 'postHandler',\n 'preserveFocus',\n 'autoFocus',\n 'fileLimit',\n 'submitOnEnter',\n 'emojiPickerPlacement',\n 'optimisticPosting'\n ],\n emits: [\n 'posted',\n 'resize',\n 'mediaplay',\n 'mediapause'\n ],\n components: {\n MediaUpload,\n EmojiInput,\n PollForm,\n ScopeSelector,\n Checkbox,\n Select,\n Attachment,\n StatusContent,\n Gallery\n },\n mounted () {\n this.updateIdempotencyKey()\n this.resize(this.$refs.textarea)\n\n if (this.replyTo) {\n const textLength = this.$refs.textarea.value.length\n this.$refs.textarea.setSelectionRange(textLength, textLength)\n }\n\n if (this.replyTo || this.autoFocus) {\n this.$refs.textarea.focus()\n }\n },\n data () {\n const preset = this.$route.query.message\n let statusText = preset || ''\n\n const { scopeCopy } = this.$store.getters.mergedConfig\n\n if (this.replyTo) {\n const currentUser = this.$store.state.users.currentUser\n statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)\n }\n\n const scope = ((this.copyMessageScope && scopeCopy) || this.copyMessageScope === 'direct')\n ? this.copyMessageScope\n : this.$store.state.users.currentUser.default_scope\n\n const { postContentType: contentType, sensitiveByDefault } = this.$store.getters.mergedConfig\n\n let statusParams = {\n spoilerText: this.subject || '',\n status: statusText,\n nsfw: !!sensitiveByDefault,\n files: [],\n poll: {},\n mediaDescriptions: {},\n visibility: scope,\n contentType\n }\n\n if (this.statusId) {\n const statusContentType = this.statusContentType || contentType\n statusParams = {\n spoilerText: this.subject || '',\n status: this.statusText || '',\n nsfw: this.statusIsSensitive || !!sensitiveByDefault,\n files: this.statusFiles || [],\n poll: this.statusPoll || {},\n mediaDescriptions: this.statusMediaDescriptions || {},\n visibility: this.statusScope || scope,\n contentType: statusContentType\n }\n }\n\n return {\n dropFiles: [],\n uploadingFiles: false,\n error: null,\n posting: false,\n highlighted: 0,\n newStatus: statusParams,\n caret: 0,\n pollFormVisible: false,\n showDropIcon: 'hide',\n dropStopTimeout: null,\n preview: null,\n previewLoading: false,\n emojiInputShown: false,\n idempotencyKey: ''\n }\n },\n computed: {\n users () {\n return this.$store.state.users.users\n },\n userDefaultScope () {\n return this.$store.state.users.currentUser.default_scope\n },\n showAllScopes () {\n return !this.mergedConfig.minimalScopesMode\n },\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ]\n })\n },\n emoji () {\n return this.$store.getters.standardEmojiList || []\n },\n customEmoji () {\n return this.$store.state.instance.customEmoji || []\n },\n statusLength () {\n return this.newStatus.status.length\n },\n spoilerTextLength () {\n return this.newStatus.spoilerText.length\n },\n statusLengthLimit () {\n return this.$store.state.instance.textlimit\n },\n hasStatusLengthLimit () {\n return this.statusLengthLimit > 0\n },\n charactersLeft () {\n return this.statusLengthLimit - (this.statusLength + this.spoilerTextLength)\n },\n isOverLengthLimit () {\n return this.hasStatusLengthLimit && (this.charactersLeft < 0)\n },\n minimalScopesMode () {\n return this.$store.state.instance.minimalScopesMode\n },\n alwaysShowSubject () {\n return this.mergedConfig.alwaysShowSubjectInput\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n safeDMEnabled () {\n return this.$store.state.instance.safeDM\n },\n pollsAvailable () {\n return this.$store.state.instance.pollsAvailable &&\n this.$store.state.instance.pollLimits.max_options >= 2 &&\n this.disablePolls !== true\n },\n hideScopeNotice () {\n return this.disableNotice || this.$store.getters.mergedConfig.hideScopeNotice\n },\n pollContentError () {\n return this.pollFormVisible &&\n this.newStatus.poll &&\n this.newStatus.poll.error\n },\n showPreview () {\n return !this.disablePreview && (!!this.preview || this.previewLoading)\n },\n emptyStatus () {\n return this.newStatus.status.trim() === '' && this.newStatus.files.length === 0\n },\n uploadFileLimitReached () {\n return this.newStatus.files.length >= this.fileLimit\n },\n isEdit () {\n return typeof this.statusId !== 'undefined' && this.statusId.trim() !== ''\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mobileLayout: state => state.interface.mobileLayout\n })\n },\n watch: {\n newStatus: {\n deep: true,\n handler () {\n this.statusChanged()\n }\n }\n },\n methods: {\n statusChanged () {\n this.autoPreview()\n this.updateIdempotencyKey()\n },\n clearStatus () {\n const newStatus = this.newStatus\n this.newStatus = {\n status: '',\n spoilerText: '',\n files: [],\n visibility: newStatus.visibility,\n contentType: newStatus.contentType,\n poll: {},\n mediaDescriptions: {}\n }\n this.pollFormVisible = false\n this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()\n this.clearPollForm()\n if (this.preserveFocus) {\n this.$nextTick(() => {\n this.$refs.textarea.focus()\n })\n }\n const el = this.$el.querySelector('textarea')\n el.style.height = 'auto'\n el.style.height = undefined\n this.error = null\n if (this.preview) this.previewStatus()\n },\n async postStatus (event, newStatus, opts = {}) {\n if (this.posting && !this.optimisticPosting) { return }\n if (this.disableSubmit) { return }\n if (this.emojiInputShown) { return }\n if (this.submitOnEnter) {\n event.stopPropagation()\n event.preventDefault()\n }\n\n if (this.optimisticPosting && (this.emptyStatus || this.isOverLengthLimit)) { return }\n\n if (this.emptyStatus) {\n this.error = this.$t('post_status.empty_status_error')\n return\n }\n\n const poll = this.pollFormVisible ? this.newStatus.poll : {}\n if (this.pollContentError) {\n this.error = this.pollContentError\n return\n }\n\n this.posting = true\n\n try {\n await this.setAllMediaDescriptions()\n } catch (e) {\n this.error = this.$t('post_status.media_description_error')\n this.posting = false\n return\n }\n\n const postingOptions = {\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: newStatus.files,\n store: this.$store,\n inReplyToStatusId: this.replyTo,\n contentType: newStatus.contentType,\n poll,\n idempotencyKey: this.idempotencyKey\n }\n\n const postHandler = this.postHandler ? this.postHandler : statusPoster.postStatus\n\n postHandler(postingOptions).then((data) => {\n if (!data.error) {\n this.clearStatus()\n this.$emit('posted', data)\n } else {\n this.error = data.error\n }\n this.posting = false\n })\n },\n previewStatus () {\n if (this.emptyStatus && this.newStatus.spoilerText.trim() === '') {\n this.preview = { error: this.$t('post_status.preview_empty') }\n this.previewLoading = false\n return\n }\n const newStatus = this.newStatus\n this.previewLoading = true\n statusPoster.postStatus({\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: [],\n store: this.$store,\n inReplyToStatusId: this.replyTo,\n contentType: newStatus.contentType,\n poll: {},\n preview: true\n }).then((data) => {\n // Don't apply preview if not loading, because it means\n // user has closed the preview manually.\n if (!this.previewLoading) return\n if (!data.error) {\n this.preview = data\n } else {\n this.preview = { error: data.error }\n }\n }).catch((error) => {\n this.preview = { error }\n }).finally(() => {\n this.previewLoading = false\n })\n },\n debouncePreviewStatus: debounce(function () { this.previewStatus() }, 500),\n autoPreview () {\n if (!this.preview) return\n this.previewLoading = true\n this.debouncePreviewStatus()\n },\n closePreview () {\n this.preview = null\n this.previewLoading = false\n },\n togglePreview () {\n if (this.showPreview) {\n this.closePreview()\n } else {\n this.previewStatus()\n }\n },\n addMediaFile (fileInfo) {\n this.newStatus.files.push(fileInfo)\n this.$emit('resize', { delayed: true })\n },\n removeMediaFile (fileInfo) {\n const index = this.newStatus.files.indexOf(fileInfo)\n this.newStatus.files.splice(index, 1)\n this.$emit('resize')\n },\n editAttachment (fileInfo, newText) {\n this.newStatus.mediaDescriptions[fileInfo.id] = newText\n },\n shiftUpMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index - 1, 0, fileInfo)\n },\n shiftDnMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index + 1, 0, fileInfo)\n },\n uploadFailed (errString, templateArgs) {\n templateArgs = templateArgs || {}\n this.error = this.$t('upload.error.base') + ' ' + this.$t('upload.error.' + errString, templateArgs)\n },\n startedUploadingFiles () {\n this.uploadingFiles = true\n },\n finishedUploadingFiles () {\n this.$emit('resize')\n this.uploadingFiles = false\n },\n type (fileInfo) {\n return fileTypeService.fileType(fileInfo.mimetype)\n },\n paste (e) {\n this.autoPreview()\n this.resize(e)\n if (e.clipboardData.files.length > 0) {\n // prevent pasting of file as text\n e.preventDefault()\n // Strangely, files property gets emptied after event propagation\n // Trying to wrap it in array doesn't work. Plus I doubt it's possible\n // to hold more than one file in clipboard.\n this.dropFiles = [e.clipboardData.files[0]]\n }\n },\n fileDrop (e) {\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n e.preventDefault() // allow dropping text like before\n this.dropFiles = e.dataTransfer.files\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'hide'\n }\n },\n fileDragStop (e) {\n // The false-setting is done with delay because just using leave-events\n // directly caused unwanted flickering, this is not perfect either but\n // much less noticable.\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'fade'\n this.dropStopTimeout = setTimeout(() => (this.showDropIcon = 'hide'), 500)\n },\n fileDrag (e) {\n e.dataTransfer.dropEffect = this.uploadFileLimitReached ? 'none' : 'copy'\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'show'\n }\n },\n onEmojiInputInput (e) {\n this.$nextTick(() => {\n this.resize(this.$refs.textarea)\n })\n },\n resize (e) {\n const target = e.target || e\n if (!(target instanceof window.Element)) { return }\n\n // Reset to default height for empty form, nothing else to do here.\n if (target.value === '') {\n target.style.height = null\n this.$emit('resize')\n return\n }\n\n const formRef = this.$refs.form\n const bottomRef = this.$refs.bottom\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const bottomBottomPaddingStr = window.getComputedStyle(bottomRef)['padding-bottom']\n const bottomBottomPadding = pxStringToNumber(bottomBottomPaddingStr)\n\n const scrollerRef = this.$el.closest('.column.-scrollable') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n\n // Getting info about padding we have to account for, removing 'px' part\n const topPaddingStr = window.getComputedStyle(target)['padding-top']\n const bottomPaddingStr = window.getComputedStyle(target)['padding-bottom']\n const topPadding = pxStringToNumber(topPaddingStr)\n const bottomPadding = pxStringToNumber(bottomPaddingStr)\n const vertPadding = topPadding + bottomPadding\n\n const oldHeight = pxStringToNumber(target.style.height)\n\n /* Explanation:\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n * scrollHeight returns element's scrollable content height, i.e. visible\n * element + overscrolled parts of it. We use it to determine when text\n * inside the textarea exceeded its height, so we can set height to prevent\n * overscroll, i.e. make textarea grow with the text. HOWEVER, since we\n * explicitly set new height, scrollHeight won't go below that, so we can't\n * SHRINK the textarea when there's extra space. To workaround that we set\n * height to 'auto' which makes textarea tiny again, so that scrollHeight\n * will match text height again. HOWEVER, shrinking textarea can screw with\n * the scroll since there might be not enough padding around form-bottom to even\n * warrant a scroll, so it will jump to 0 and refuse to move anywhere,\n * so we check current scroll position before shrinking and then restore it\n * with needed delta.\n */\n\n // this part has to be BEFORE the content size update\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n const scrollerBottomBorder = currentScroll + scrollerHeight\n\n // BEGIN content size update\n target.style.height = 'auto'\n const heightWithoutPadding = Math.floor(target.scrollHeight - vertPadding)\n let newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding\n // This is a bit of a hack to combat target.scrollHeight being different on every other input\n // on some browsers for whatever reason. Don't change the height if difference is 1px or less.\n if (Math.abs(newHeight - oldHeight) <= 1) {\n newHeight = oldHeight\n }\n target.style.height = `${newHeight}px`\n this.$emit('resize', newHeight)\n // END content size update\n\n // We check where the bottom border of form-bottom element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const bottomBottomBorder = bottomRef.offsetHeight + findOffset(bottomRef, scrollerRef).top + bottomBottomPadding\n\n const isBottomObstructed = scrollerBottomBorder < bottomBottomBorder\n const isFormBiggerThanScroller = scrollerHeight < formRef.offsetHeight\n const bottomChangeDelta = bottomBottomBorder - scrollerBottomBorder\n // The intention is basically this;\n // Keep form-bottom always visible so that submit button is in view EXCEPT\n // if form element bigger than scroller and caret isn't at the end, so that\n // if you scroll up and edit middle of text you won't get scrolled back to bottom\n const shouldScrollToBottom = isBottomObstructed &&\n !(isFormBiggerThanScroller &&\n this.$refs.textarea.selectionStart !== this.$refs.textarea.value.length)\n const totalDelta = shouldScrollToBottom ? bottomChangeDelta : 0\n const targetScroll = Math.round(currentScroll + totalDelta)\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n },\n showEmojiPicker () {\n this.$refs.textarea.focus()\n this.$refs['emoji-input'].triggerShowPicker()\n },\n clearError () {\n this.error = null\n },\n changeVis (visibility) {\n this.newStatus.visibility = visibility\n },\n togglePollForm () {\n this.pollFormVisible = !this.pollFormVisible\n },\n setPoll (poll) {\n this.newStatus.poll = poll\n },\n clearPollForm () {\n if (this.$refs.pollForm) {\n this.$refs.pollForm.clear()\n }\n },\n dismissScopeNotice () {\n this.$store.dispatch('setOption', { name: 'hideScopeNotice', value: true })\n },\n setMediaDescription (id) {\n const description = this.newStatus.mediaDescriptions[id]\n if (!description || description.trim() === '') return\n return statusPoster.setMediaDescription({ store: this.$store, id, description })\n },\n setAllMediaDescriptions () {\n const ids = this.newStatus.files.map(file => file.id)\n return Promise.all(ids.map(id => this.setMediaDescription(id)))\n },\n handleEmojiInputShow (value) {\n this.emojiInputShown = value\n },\n updateIdempotencyKey () {\n this.idempotencyKey = Date.now().toString()\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n propsToNative (props) {\n return propsToNative(props)\n }\n }\n}\n\nexport default PostStatusForm\n","import { render } from \"./post_status_form.vue?vue&type=template&id=4cafd28a\"\nimport script from \"./post_status_form.js?vue&type=script&lang=js\"\nexport * from \"./post_status_form.js?vue&type=script&lang=js\"\n\nimport \"./post_status_form.vue?vue&type=style&index=0&id=4cafd28a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n :disabled=\"progress || disabled\"\n @click=\"onClick\"\n >\n <template v-if=\"progress && $slots.progress\">\n <slot name=\"progress\" />\n </template>\n <template v-else>\n <slot />\n </template>\n </button>\n</template>\n\n<script>\nexport default {\n props: {\n disabled: {\n type: Boolean\n },\n click: { // click event handler. Must return a promise\n type: Function,\n default: () => Promise.resolve()\n }\n },\n data () {\n return {\n progress: false\n }\n },\n methods: {\n onClick () {\n this.progress = true\n this.click().then(() => { this.progress = false })\n }\n }\n}\n</script>\n","import { render } from \"./progress_button.vue?vue&type=template&id=9f751ae6\"\nimport script from \"./progress_button.vue?vue&type=script&lang=js\"\nexport * from \"./progress_button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"remote-follow\">\n <form\n method=\"POST\"\n :action=\"subscribeUrl\"\n >\n <input\n type=\"hidden\"\n name=\"nickname\"\n :value=\"user.screen_name\"\n >\n <input\n type=\"hidden\"\n name=\"profile\"\n value=\"\"\n >\n <button\n click=\"submit\"\n class=\"button-default remote-button\"\n >\n {{ $t('user_card.remote_follow') }}\n </button>\n </form>\n </div>\n</template>\n\n<script src=\"./remote_follow.js\"></script>\n\n<style lang=\"scss\">\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n</style>\n","export default {\n props: ['user'],\n computed: {\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n }\n }\n}\n","import { render } from \"./remote_follow.vue?vue&type=template&id=2aed8421\"\nimport script from \"./remote_follow.js?vue&type=script&lang=js\"\nexport * from \"./remote_follow.js?vue&type=script&lang=js\"\n\nimport \"./remote_follow.vue?vue&type=style&index=0&id=2aed8421&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!showNothing\"\n class=\"ScopeSelector\"\n >\n <button\n v-if=\"showDirect\"\n class=\"button-unstyled scope\"\n :class=\"css.direct\"\n :title=\"$t('post_status.scope.direct')\"\n type=\"button\"\n @click=\"changeVis('direct')\"\n >\n <FAIcon\n icon=\"envelope\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPrivate\"\n class=\"button-unstyled scope\"\n :class=\"css.private\"\n :title=\"$t('post_status.scope.private')\"\n type=\"button\"\n @click=\"changeVis('private')\"\n >\n <FAIcon\n icon=\"lock\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showUnlisted\"\n class=\"button-unstyled scope\"\n :class=\"css.unlisted\"\n :title=\"$t('post_status.scope.unlisted')\"\n type=\"button\"\n @click=\"changeVis('unlisted')\"\n >\n <FAIcon\n icon=\"lock-open\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPublic\"\n class=\"button-unstyled scope\"\n :class=\"css.public\"\n :title=\"$t('post_status.scope.public')\"\n type=\"button\"\n @click=\"changeVis('public')\"\n >\n <FAIcon\n icon=\"globe\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n</template>\n\n<script src=\"./scope_selector.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ScopeSelector {\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen\n)\n\nconst ScopeSelector = {\n props: [\n 'showAll',\n 'userDefault',\n 'originalScope',\n 'initialScope',\n 'onScopeChange'\n ],\n data () {\n return {\n currentScope: this.initialScope\n }\n },\n computed: {\n showNothing () {\n return !this.showPublic && !this.showUnlisted && !this.showPrivate && !this.showDirect\n },\n showPublic () {\n return this.originalScope !== 'direct' && this.shouldShow('public')\n },\n showUnlisted () {\n return this.originalScope !== 'direct' && this.shouldShow('unlisted')\n },\n showPrivate () {\n return this.originalScope !== 'direct' && this.shouldShow('private')\n },\n showDirect () {\n return this.shouldShow('direct')\n },\n css () {\n return {\n public: { selected: this.currentScope === 'public' },\n unlisted: { selected: this.currentScope === 'unlisted' },\n private: { selected: this.currentScope === 'private' },\n direct: { selected: this.currentScope === 'direct' }\n }\n }\n },\n methods: {\n shouldShow (scope) {\n return this.showAll ||\n this.currentScope === scope ||\n this.originalScope === scope ||\n this.userDefault === scope ||\n scope === 'direct'\n },\n changeVis (scope) {\n this.currentScope = scope\n this.onScopeChange && this.onScopeChange(scope)\n }\n }\n}\n\nexport default ScopeSelector\n","import { render } from \"./scope_selector.vue?vue&type=template&id=3b2dbc9a\"\nimport script from \"./scope_selector.js?vue&type=script&lang=js\"\nexport * from \"./scope_selector.js?vue&type=script&lang=js\"\n\nimport \"./scope_selector.vue?vue&type=style&index=0&id=3b2dbc9a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown\n)\n\nexport default {\n emits: ['update:modelValue'],\n props: [\n 'modelValue',\n 'disabled',\n 'unstyled',\n 'kind',\n 'attrs'\n ]\n}\n","import { render } from \"./select.vue?vue&type=template&id=1f77c9b6\"\nimport script from \"./select.js?vue&type=script&lang=js\"\nexport * from \"./select.js?vue&type=script&lang=js\"\n\nimport \"./select.vue?vue&type=style&index=0&id=1f77c9b6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"Select input\"\n :class=\"{ disabled, unstyled }\"\n >\n <select\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-bind=\"attrs\"\n @change=\"$emit('update:modelValue', $event.target.value)\"\n >\n <slot />\n </select>\n {{ ' ' }}\n <FAIcon\n class=\"select-down-icon\"\n icon=\"chevron-down\"\n />\n </label>\n</template>\n\n<script src=\"./select.js\"> </script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n ref=\"root\"\n class=\"Status\"\n :class=\"[{ '-focused': isFocused }, { '-conversation': inlineExpanded }]\"\n >\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n <span\n class=\"fa-scale-110 fa-old-padding\"\n @click=\"clearError\"\n >\n <FAIcon icon=\"times\" />\n </span>\n </div>\n <template v-if=\"muted && !isPreview\">\n <div class=\"status-container muted\">\n <small class=\"status-username\">\n <FAIcon\n v-if=\"muted && retweet\"\n class=\"fa-scale-110 fa-old-padding repeat-icon\"\n icon=\"retweet\"\n />\n <user-link\n :user=\"status.user\"\n :at=\"false\"\n />\n </small>\n <small\n v-if=\"showReasonMutedThread\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted') }}\n </small>\n <small\n v-if=\"showReasonMutedThread && muteWordHits.length > 0\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted_and_words') }}\n </small>\n <small\n class=\"mute-words\"\n :title=\"muteWordHits.join(', ')\"\n >\n {{ muteWordHits.join(', ') }}\n </small>\n <button\n class=\"unmute button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n icon=\"eye-slash\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n </template>\n <template v-else>\n <div\n v-if=\"showPinned\"\n class=\"pin\"\n >\n <FAIcon\n icon=\"thumbtack\"\n class=\"faint\"\n />\n <span class=\"faint\">{{ $t('status.pinned') }}</span>\n </div>\n <div\n v-if=\"retweet && !noHeading && !inConversation\"\n :class=\"[repeaterClass, { highlighted: repeaterStyle }]\"\n :style=\"[repeaterStyle]\"\n class=\"status-container repeat-info\"\n >\n <UserAvatar\n v-if=\"retweet\"\n class=\"left-side repeater-avatar\"\n :bot=\"rtBotIndicator\"\n :better-shadow=\"betterShadow\"\n :user=\"statusoid.user\"\n />\n <div class=\"right-side faint\">\n <bdi\n class=\"status-username repeater-name\"\n :title=\"retweeter\"\n >\n <router-link\n v-if=\"retweeterHtml\"\n :to=\"retweeterProfileLink\"\n >\n <RichContent\n :html=\"retweeterHtml\"\n :emoji=\"retweeterUser.emoji\"\n />\n </router-link>\n <router-link\n v-else\n :to=\"retweeterProfileLink\"\n >{{ retweeter }}</router-link>\n </bdi>\n {{ ' ' }}\n <FAIcon\n icon=\"retweet\"\n class=\"repeat-icon\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ $t('timeline.repeated') }}\n </div>\n </div>\n\n <div\n v-if=\"!deleted\"\n :class=\"[userClass, { highlighted: userStyle, '-repeat': retweet && !inConversation }]\"\n :style=\"[ userStyle ]\"\n class=\"status-container\"\n :data-tags=\"tags\"\n >\n <div\n v-if=\"!noHeading\"\n class=\"left-side\"\n >\n <a\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"status.user.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"compact\"\n :better-shadow=\"betterShadow\"\n :user=\"status.user\"\n />\n </UserPopover>\n </a>\n </div>\n <div class=\"right-side\">\n <div\n v-if=\"!noHeading\"\n class=\"status-heading\"\n >\n <div class=\"heading-name-row\">\n <div class=\"heading-left\">\n <h4\n v-if=\"status.user.name_html\"\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n <RichContent\n :html=\"status.user.name\"\n :emoji=\"status.user.emoji\"\n />\n </h4>\n <h4\n v-else\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n {{ status.user.name }}\n </h4>\n <user-link\n class=\"account-name\"\n :title=\"status.user.screen_name_ui\"\n :user=\"status.user\"\n :at=\"false\"\n />\n <img\n v-if=\"!!(status.user && status.user.favicon)\"\n class=\"status-favicon\"\n :src=\"status.user.favicon\"\n >\n </div>\n\n <span class=\"heading-right\">\n <router-link\n class=\"timeago faint-link\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n >\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"60\"\n />\n </router-link>\n <span\n v-if=\"status.visibility\"\n class=\"visibility-icon\"\n :title=\"visibilityLocalized\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"visibilityIcon(status.visibility)\"\n />\n </span>\n <button\n v-if=\"expandable && !isPreview\"\n class=\"button-unstyled\"\n :title=\"$t('status.expand')\"\n @click.prevent=\"toggleExpanded\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n icon=\"plus-square\"\n />\n </button>\n <button\n v-if=\"unmuted\"\n class=\"button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n class=\"fa-scale-110\"\n />\n </button>\n <button\n v-if=\"inThreadForest && replies && replies.length && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"threadShowing ? $t('status.thread_hide') : $t('status.thread_show')\"\n :aria-expanded=\"threadShowing ? 'true' : 'false'\"\n @click.prevent=\"toggleThreadDisplay\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"threadShowing ? 'chevron-up' : 'chevron-down'\"\n />\n </button>\n <button\n v-if=\"dive && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"$t('status.show_only_conversation_under_this')\"\n @click.prevent=\"dive\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"'angle-double-right'\"\n />\n </button>\n </span>\n </div>\n <div\n v-if=\"isReply || hasMentionsLine\"\n class=\"heading-reply-row\"\n >\n <span\n v-if=\"isReply\"\n class=\"glued-label reply-glued-label\"\n >\n <StatusPopover\n v-if=\"!isPreview\"\n :status-id=\"status.parent_visible && status.in_reply_to_status_id\"\n class=\"reply-to-popover\"\n style=\"min-width: 0;\"\n :class=\"{ '-strikethrough': !status.parent_visible }\"\n >\n <button\n class=\"button-unstyled reply-to\"\n :aria-label=\"$t('tool_tip.reply')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"reply\"\n flip=\"horizontal\"\n />\n {{ ' ' }}\n <span\n class=\"reply-to-text\"\n >\n {{ $t('status.reply_to') }}\n </span>\n </button>\n </StatusPopover>\n\n <span\n v-else\n class=\"reply-to-no-popover\"\n >\n <span class=\"reply-to-text\">{{ $t('status.reply_to') }}</span>\n </span>\n <MentionLink\n :content=\"replyToName\"\n :url=\"replyProfileLink\"\n :user-id=\"status.in_reply_to_user_id\"\n :user-screen-name=\"status.in_reply_to_screen_name\"\n />\n </span>\n\n <!-- This little wrapper is made for sole purpose of \"gluing\" -->\n <!-- \"Mentions\" label to the first mention -->\n <span\n v-if=\"hasMentionsLine\"\n class=\"glued-label\"\n >\n <span\n class=\"mentions\"\n :aria-label=\"$t('tool_tip.mentions')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <span\n class=\"mentions-text\"\n >\n {{ $t('status.mentions') }}\n </span>\n </span>\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(0, 1)\"\n class=\"mentions-line-first\"\n />\n </span>\n {{ ' ' }}\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(1)\"\n class=\"mentions-line\"\n />\n </div>\n <div\n v-if=\"isEdited && editingAvailable && !isPreview\"\n class=\"heading-edited-row\"\n >\n <i18n-t\n keypath=\"status.edited_at\"\n tag=\"span\"\n >\n <template #time>\n <Timeago\n template-key=\"time.in_past\"\n :time=\"status.edited_at\"\n :auto-update=\"60\"\n :long-format=\"true\"\n />\n </template>\n </i18n-t>\n </div>\n </div>\n\n <StatusContent\n ref=\"content\"\n :status=\"status\"\n :no-heading=\"noHeading\"\n :highlight=\"highlight\"\n :focused=\"isFocused\"\n :controlled-showing-tall=\"controlledShowingTall\"\n :controlled-expanding-subject=\"controlledExpandingSubject\"\n :controlled-showing-long-subject=\"controlledShowingLongSubject\"\n :controlled-toggle-showing-tall=\"controlledToggleShowingTall\"\n :controlled-toggle-expanding-subject=\"controlledToggleExpandingSubject\"\n :controlled-toggle-showing-long-subject=\"controlledToggleShowingLongSubject\"\n @mediaplay=\"addMediaPlaying($event)\"\n @mediapause=\"removeMediaPlaying($event)\"\n @parseReady=\"setHeadTailLinks\"\n />\n\n <div\n v-if=\"inConversation && !isPreview && replies && replies.length\"\n class=\"replies\"\n >\n <button\n v-if=\"showOtherRepliesAsButton && replies.length > 1\"\n class=\"button-unstyled -link faint\"\n :title=\"$tc('status.ancestor_follow', replies.length - 1, { numReplies: replies.length - 1 })\"\n @click.prevent=\"dive\"\n >\n {{ $tc('status.replies_list_with_others', replies.length - 1, { numReplies: replies.length - 1 }) }}\n </button>\n <span\n v-else\n class=\"faint\"\n >\n {{ $t('status.replies_list') }}\n </span>\n <StatusPopover\n v-for=\"reply in replies\"\n :key=\"reply.id\"\n :status-id=\"reply.id\"\n >\n <button\n class=\"button-unstyled -link reply-link\"\n @click.prevent=\"gotoOriginal(reply.id)\"\n >\n {{ reply.name }}\n </button>\n </StatusPopover>\n </div>\n\n <transition name=\"fade\">\n <div\n v-if=\"!hidePostStats && isFocused && combinedFavsAndRepeatsUsers.length > 0\"\n class=\"favs-repeated-users\"\n >\n <div class=\"stats\">\n <UserListPopover\n v-if=\"statusFromGlobalRepository.rebloggedBy && statusFromGlobalRepository.rebloggedBy.length > 0\"\n :users=\"statusFromGlobalRepository.rebloggedBy\"\n >\n <div class=\"stat-count\">\n <a class=\"stat-title\">{{ $t('status.repeats') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.rebloggedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <UserListPopover\n v-if=\"statusFromGlobalRepository.favoritedBy && statusFromGlobalRepository.favoritedBy.length > 0\"\n :users=\"statusFromGlobalRepository.favoritedBy\"\n >\n <div\n class=\"stat-count\"\n >\n <a class=\"stat-title\">{{ $t('status.favorites') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.favoritedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <div class=\"avatar-row\">\n <AvatarList :users=\"combinedFavsAndRepeatsUsers\" />\n </div>\n </div>\n </div>\n </transition>\n\n <EmojiReactions\n v-if=\"(mergedConfig.emojiReactionsOnTimeline || isFocused) && (!noHeading && !isPreview)\"\n :status=\"status\"\n />\n\n <div\n v-if=\"!noHeading && !isPreview\"\n class=\"status-actions\"\n >\n <reply-button\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n <retweet-button\n :visibility=\"status.visibility\"\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <favorite-button\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <ReactButton\n v-if=\"loggedIn\"\n :status=\"status\"\n />\n <extra-buttons\n :status=\"status\"\n @onError=\"showError\"\n @onSuccess=\"clearError\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"gravestone\"\n >\n <div class=\"left-side\">\n <UserAvatar\n class=\"post-avatar\"\n :compact=\"compact\"\n :bot=\"botIndicator\"\n />\n </div>\n <div class=\"right-side\">\n <div class=\"deleted-text\">\n {{ $t('status.status_deleted') }}\n </div>\n <reply-button\n v-if=\"replying\"\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n </div>\n </div>\n <div\n v-if=\"replying\"\n class=\"status-container reply-form\"\n >\n <PostStatusForm\n class=\"reply-body\"\n :reply-to=\"status.id\"\n :attentions=\"status.attentions\"\n :replied-user=\"status.user\"\n :copy-message-scope=\"status.visibility\"\n :subject=\"replySubject\"\n @posted=\"toggleReplying\"\n />\n </div>\n </template>\n </div>\n</template>\n\n<script src=\"./status.js\"></script>\n\n<style src=\"./status.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"ReplyButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"{'-active': replying}\"\n :title=\"$t('tool_tip.reply')\"\n @click.prevent=\"$emit('toggle')\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"reply\"\n />\n <FAIcon\n v-if=\"!replying\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"times\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :href=\"remoteInteractionLink\"\n :title=\"$t('tool_tip.reply')\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"reply\"\n />\n <FAIcon\n v-if=\"!replying\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"status.replies_count > 0\"\n class=\"action-counter\"\n >\n {{ status.replies_count }}\n </span>\n </div>\n</template>\n\n<script src=\"./reply_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faReply,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faReply,\n faPlus,\n faTimes\n)\n\nconst ReplyButton = {\n name: 'ReplyButton',\n props: ['status', 'replying'],\n computed: {\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default ReplyButton\n","import { render } from \"./reply_button.vue?vue&type=template&id=a7dc5ddc\"\nimport script from \"./reply_button.js?vue&type=script&lang=js\"\nexport * from \"./reply_button.js?vue&type=script&lang=js\"\n\nimport \"./reply_button.vue?vue&type=style&index=0&id=a7dc5ddc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"FavoriteButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.favorited && '-favorited'\"\n :title=\"$t('tool_tip.favorite')\"\n @click.prevent=\"favorite()\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n :icon=\"[status.favorited ? 'fas' : 'far', 'star']\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.favorited\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.favorited\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :title=\"$t('tool_tip.favorite')\"\n :href=\"remoteInteractionLink\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n :icon=\"['far', 'star']\"\n />\n <FAIcon\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.fave_num > 0\"\n class=\"action-counter\"\n >\n {{ status.fave_num }}\n </span>\n </div>\n</template>\n\n<script src=\"./favorite_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStar,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faStar as faStarRegular\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faStar,\n faStarRegular,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst FavoriteButton = {\n props: ['status', 'loggedIn'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n favorite () {\n if (!this.status.favorited) {\n this.$store.dispatch('favorite', { id: this.status.id })\n } else {\n this.$store.dispatch('unfavorite', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default FavoriteButton\n","import { render } from \"./favorite_button.vue?vue&type=template&id=195db34e\"\nimport script from \"./favorite_button.js?vue&type=script&lang=js\"\nexport * from \"./favorite_button.js?vue&type=script&lang=js\"\n\nimport \"./favorite_button.vue?vue&type=style&index=0&id=195db34e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"ReactButton\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n popover-class=\"ReactButton popover-default\"\n @show=\"onShow\"\n @close=\"onClose\"\n >\n <template #content=\"{close}\">\n <div class=\"reaction-picker-filter\">\n <input\n v-model=\"filterWord\"\n size=\"1\"\n :placeholder=\"$t('emoji.search_emoji')\"\n @input=\"$event.target.composing = false\"\n >\n </div>\n <div class=\"reaction-picker\">\n <span\n v-for=\"emoji in commonEmojis\"\n :key=\"emoji.replacement\"\n class=\"emoji-button\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n @click=\"addReaction($event, emoji.replacement, close)\"\n >\n {{ emoji.replacement }}\n </span>\n <div class=\"reaction-picker-divider\" />\n <span\n v-for=\"(emoji, key) in emojis\"\n :key=\"key\"\n class=\"emoji-button\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n @click=\"addReaction($event, emoji.replacement, close)\"\n >\n {{ emoji.replacement }}\n </span>\n <div class=\"reaction-bottom-fader\" />\n </div>\n </template>\n <template #trigger>\n <span\n class=\"button-unstyled popover-trigger\"\n :title=\"$t('tool_tip.add_reaction')\"\n >\n <FALayers>\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n :icon=\"['far', 'smile-beam']\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n </template>\n </Popover>\n</template>\n\n<script src=\"./react_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n</style>\n","import Popover from '../popover/popover.vue'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faPlus, faTimes } from '@fortawesome/free-solid-svg-icons'\nimport { faSmileBeam } from '@fortawesome/free-regular-svg-icons'\nimport { trim } from 'lodash'\n\nlibrary.add(\n faPlus,\n faTimes,\n faSmileBeam\n)\n\nconst ReactButton = {\n props: ['status'],\n data () {\n return {\n filterWord: '',\n expanded: false\n }\n },\n components: {\n Popover\n },\n methods: {\n addReaction (event, emoji, close) {\n const existingReaction = this.status.emoji_reactions.find(r => r.name === emoji)\n if (existingReaction && existingReaction.me) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n } else {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n }\n close()\n },\n onShow () {\n this.expanded = true\n this.focusInput()\n },\n onClose () {\n this.expanded = false\n },\n focusInput () {\n this.$nextTick(() => {\n const input = document.querySelector('.reaction-picker-filter > input')\n if (input) input.focus()\n })\n },\n // Vaguely adjusted copypaste from emoji_input and emoji_picker!\n maybeLocalizedEmojiNamesAndKeywords (emoji) {\n const names = [emoji.displayText]\n const keywords = []\n\n if (emoji.displayTextI18n) {\n names.push(this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args))\n }\n\n if (emoji.annotations) {\n this.languages.forEach(lang => {\n names.push(emoji.annotations[lang]?.name)\n\n keywords.push(...(emoji.annotations[lang]?.keywords || []))\n })\n }\n\n return {\n names: names.filter(k => k),\n keywords: keywords.filter(k => k)\n }\n },\n maybeLocalizedEmojiName (emoji) {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n computed: {\n commonEmojis () {\n const hardcodedSet = new Set(['👍', '😠', '👀', '😂', '🔥'])\n return this.$store.getters.standardEmojiList.filter(emoji => hardcodedSet.has(emoji.replacement))\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n emojis () {\n if (this.filterWord !== '') {\n const keywordLowercase = trim(this.filterWord.toLowerCase())\n\n const orderedEmojiList = []\n for (const emoji of this.$store.getters.standardEmojiList) {\n const indices = this.maybeLocalizedEmojiNamesAndKeywords(emoji)\n .keywords\n .map(k => k.toLowerCase().indexOf(keywordLowercase))\n .filter(k => k > -1)\n\n const indexOfKeyword = indices.length ? Math.min(...indices) : -1\n\n if (indexOfKeyword > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {\n orderedEmojiList[indexOfKeyword] = []\n }\n orderedEmojiList[indexOfKeyword].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n }\n return this.$store.getters.standardEmojiList || []\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n }\n }\n}\n\nexport default ReactButton\n","import { render } from \"./react_button.vue?vue&type=template&id=2ab2dac0\"\nimport script from \"./react_button.js?vue&type=script&lang=js\"\nexport * from \"./react_button.js?vue&type=script&lang=js\"\n\nimport \"./react_button.vue?vue&type=style&index=0&id=2ab2dac0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"RetweetButton\">\n <button\n v-if=\"visibility !== 'private' && visibility !== 'direct' && loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.repeated && '-repeated'\"\n :title=\"$t('tool_tip.repeat')\"\n @click.prevent=\"retweet()\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"retweet\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.repeated\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.repeated\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <span v-else-if=\"loggedIn\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"lock\"\n :title=\"$t('timeline.no_retweet_hint')\"\n />\n </span>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :title=\"$t('tool_tip.repeat')\"\n :href=\"remoteInteractionLink\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"retweet\"\n />\n <FAIcon\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.repeat_num > 0\"\n class=\"no-event\"\n >\n {{ status.repeat_num }}\n </span>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmDialog\"\n :title=\"$t('status.repeat_confirm_title')\"\n :confirm-text=\"$t('status.repeat_confirm_accept_button')\"\n :cancel-text=\"$t('status.repeat_confirm_cancel_button')\"\n @accepted=\"doRetweet\"\n @cancelled=\"hideConfirmDialog\"\n >\n {{ $t('status.repeat_confirm') }}\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./retweet_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst RetweetButton = {\n props: ['status', 'loggedIn', 'visibility'],\n components: {\n ConfirmModal\n },\n data () {\n return {\n animated: false,\n showingConfirmDialog: false\n }\n },\n methods: {\n retweet () {\n if (!this.status.repeated && this.shouldConfirmRepeat) {\n this.showConfirmDialog()\n } else {\n this.doRetweet()\n }\n },\n doRetweet () {\n if (!this.status.repeated) {\n this.$store.dispatch('retweet', { id: this.status.id })\n } else {\n this.$store.dispatch('unretweet', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n this.hideConfirmDialog()\n },\n showConfirmDialog () {\n this.showingConfirmDialog = true\n },\n hideConfirmDialog () {\n this.showingConfirmDialog = false\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n },\n shouldConfirmRepeat () {\n return this.mergedConfig.modalOnRepeat\n }\n }\n}\n\nexport default RetweetButton\n","import { render } from \"./retweet_button.vue?vue&type=template&id=3a6122b4\"\nimport script from \"./retweet_button.js?vue&type=script&lang=js\"\nexport * from \"./retweet_button.js?vue&type=script&lang=js\"\n\nimport \"./retweet_button.vue?vue&type=style&index=0&id=3a6122b4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n class=\"ExtraButtons\"\n trigger=\"click\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n @show=\"onShow\"\n @close=\"onClose\"\n >\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n v-if=\"canMute && !status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"muteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.mute_conversation\") }}</span>\n </button>\n <button\n v-if=\"canMute && status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unmuteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.unmute_conversation\") }}</span>\n </button>\n <button\n v-if=\"!status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"pinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.pin\") }}</span>\n </button>\n <button\n v-if=\"status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unpinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.unpin\") }}</span>\n </button>\n <template v-if=\"canBookmark\">\n <button\n v-if=\"!status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"bookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'bookmark']\"\n /><span>{{ $t(\"status.bookmark\") }}</span>\n </button>\n <button\n v-if=\"status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unbookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"bookmark\"\n /><span>{{ $t(\"status.unbookmark\") }}</span>\n </button>\n </template>\n <button\n v-if=\"ownStatus && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"editStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"pen\"\n /><span>{{ $t(\"status.edit\") }}</span>\n </button>\n <button\n v-if=\"isEdited && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"showStatusHistory\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"history\"\n /><span>{{ $t(\"status.status_history\") }}</span>\n </button>\n <button\n v-if=\"canDelete\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"deleteStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n /><span>{{ $t(\"status.delete\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"copyLink\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"share-alt\"\n /><span>{{ $t(\"status.copy_link\") }}</span>\n </button>\n <a\n v-if=\"!status.is_local\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n title=\"Source\"\n :href=\"status.external_url\"\n target=\"_blank\"\n >\n <FAIcon\n fixed-width\n icon=\"external-link-alt\"\n /><span>{{ $t(\"status.external_source\") }}</span>\n </a>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"reportStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'flag']\"\n /><span>{{ $t(\"user_card.report\") }}</span>\n </button>\n </div>\n </template>\n <template #trigger>\n <span class=\"button-unstyled popover-trigger\">\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110 \"\n icon=\"ellipsis-h\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n <teleport to=\"#modal\">\n <ConfirmModal\n v-if=\"showingDeleteDialog\"\n :title=\"$t('status.delete_confirm_title')\"\n :cancel-text=\"$t('status.delete_confirm_cancel_button')\"\n :confirm-text=\"$t('status.delete_confirm_accept_button')\"\n @cancelled=\"hideDeleteStatusConfirmDialog\"\n @accepted=\"doDeleteStatus\"\n >\n {{ $t('status.delete_confirm') }}\n </ConfirmModal>\n </teleport>\n </template>\n </Popover>\n</template>\n\n<script src=\"./extra_buttons.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ExtraButtons {\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n</style>\n","import Popover from '../popover/popover.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH,\n faBookmark,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faHistory,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faBookmark as faBookmarkReg,\n faFlag\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faEllipsisH,\n faBookmark,\n faBookmarkReg,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faFlag,\n faHistory,\n faPlus,\n faTimes\n)\n\nconst ExtraButtons = {\n props: ['status'],\n components: {\n Popover,\n ConfirmModal\n },\n data () {\n return {\n expanded: false,\n showingDeleteDialog: false\n }\n },\n methods: {\n onShow () {\n this.expanded = true\n },\n onClose () {\n this.expanded = false\n },\n deleteStatus () {\n if (this.shouldConfirmDelete) {\n this.showDeleteStatusConfirmDialog()\n } else {\n this.doDeleteStatus()\n }\n },\n doDeleteStatus () {\n this.$store.dispatch('deleteStatus', { id: this.status.id })\n this.hideDeleteStatusConfirmDialog()\n },\n showDeleteStatusConfirmDialog () {\n this.showingDeleteDialog = true\n },\n hideDeleteStatusConfirmDialog () {\n this.showingDeleteDialog = false\n },\n pinStatus () {\n this.$store.dispatch('pinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unpinStatus () {\n this.$store.dispatch('unpinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n muteConversation () {\n this.$store.dispatch('muteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unmuteConversation () {\n this.$store.dispatch('unmuteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n copyLink () {\n navigator.clipboard.writeText(this.statusLink)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n bookmarkStatus () {\n this.$store.dispatch('bookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unbookmarkStatus () {\n this.$store.dispatch('unbookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n reportStatus () {\n this.$store.dispatch('openUserReportingModal', { userId: this.status.user.id, statusIds: [this.status.id] })\n },\n editStatus () {\n this.$store.dispatch('fetchStatusSource', { id: this.status.id })\n .then(data => this.$store.dispatch('openEditStatusModal', {\n statusId: this.status.id,\n subject: data.spoiler_text,\n statusText: data.text,\n statusIsSensitive: this.status.nsfw,\n statusPoll: this.status.poll,\n statusFiles: [...this.status.attachments],\n visibility: this.status.visibility,\n statusContentType: data.content_type\n }))\n },\n showStatusHistory () {\n const originalStatus = { ...this.status }\n const stripFieldsList = ['attachments', 'created_at', 'emojis', 'text', 'raw_html', 'nsfw', 'poll', 'summary', 'summary_raw_html']\n stripFieldsList.forEach(p => delete originalStatus[p])\n this.$store.dispatch('openStatusHistoryModal', originalStatus)\n }\n },\n computed: {\n currentUser () { return this.$store.state.users.currentUser },\n canDelete () {\n if (!this.currentUser) { return }\n return this.currentUser.privileges.includes('messages_delete') || this.status.user.id === this.currentUser.id\n },\n ownStatus () {\n return this.status.user.id === this.currentUser.id\n },\n canPin () {\n return this.ownStatus && (this.status.visibility === 'public' || this.status.visibility === 'unlisted')\n },\n canMute () {\n return !!this.currentUser\n },\n canBookmark () {\n return !!this.currentUser\n },\n statusLink () {\n return `${this.$store.state.instance.server}${this.$router.resolve({ name: 'conversation', params: { id: this.status.id } }).href}`\n },\n isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () { return this.$store.state.instance.editingAvailable },\n shouldConfirmDelete () {\n return this.$store.getters.mergedConfig.modalOnDelete\n }\n }\n}\n\nexport default ExtraButtons\n","import { render } from \"./extra_buttons.vue?vue&type=template&id=6fcf5bb3\"\nimport script from \"./extra_buttons.js?vue&type=script&lang=js\"\nexport * from \"./extra_buttons.js?vue&type=script&lang=js\"\n\nimport \"./extra_buttons.vue?vue&type=style&index=0&id=6fcf5bb3&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n ref=\"popover\"\n trigger=\"hover\"\n :stay-on-click=\"true\"\n popover-class=\"popover-default status-popover\"\n :bound-to=\"{ x: 'container' }\"\n @show=\"enter\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <Status\n v-if=\"status\"\n :is-preview=\"true\"\n :statusoid=\"status\"\n :compact=\"true\"\n />\n <div\n v-else-if=\"error\"\n class=\"status-preview-no-content faint\"\n >\n {{ $t('status.status_unavailable') }}\n </div>\n <div\n v-else\n class=\"status-preview-no-content\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"2x\"\n />\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./status_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n</style>\n","import { find } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\nimport { defineAsyncComponent } from 'vue'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst StatusPopover = {\n name: 'StatusPopover',\n props: [\n 'statusId'\n ],\n data () {\n return {\n error: false\n }\n },\n computed: {\n status () {\n return find(this.$store.state.statuses.allStatuses, { id: this.statusId })\n }\n },\n components: {\n Status: defineAsyncComponent(() => import('../status/status.vue')),\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n methods: {\n enter () {\n if (!this.status) {\n if (!this.statusId) {\n this.error = true\n return\n }\n this.$store.dispatch('fetchStatus', this.statusId)\n .then(data => (this.error = false))\n .catch(e => (this.error = true))\n }\n }\n },\n watch: {\n status (newStatus, oldStatus) {\n if (newStatus !== oldStatus) {\n this.$nextTick(() => this.$refs.popover.updateStyles())\n }\n }\n }\n}\n\nexport default StatusPopover\n","import { render } from \"./status_popover.vue?vue&type=template&id=0c237860\"\nimport script from \"./status_popover.js?vue&type=script&lang=js\"\nexport * from \"./status_popover.js?vue&type=script&lang=js\"\n\nimport \"./status_popover.vue?vue&type=style&index=0&id=0c237860&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"hover\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <div class=\"user-list-popover\">\n <template v-if=\"users.length\">\n <div\n v-for=\"(user) in usersCapped\"\n :key=\"user.id\"\n class=\"user-list-row\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n :compact=\"true\"\n />\n <div class=\"user-list-names\">\n <!-- eslint-disable vue/no-v-html -->\n <RichContent\n class=\"username\"\n :title=\"'@'+user.screen_name_ui\"\n :html=\"user.name_html\"\n :emoji=\"user.emoji\"\n />\n <!-- eslint-enable vue/no-v-html -->\n <span class=\"user-list-screen-name\">{{ user.screen_name_ui }}</span><UnicodeDomainIndicator :user=\"user\" />\n </div>\n </div>\n </template>\n <template v-else>\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n </template>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_list_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n</style>\n","import { defineAsyncComponent } from 'vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst UserListPopover = {\n name: 'UserListPopover',\n props: [\n 'users'\n ],\n components: {\n RichContent,\n UnicodeDomainIndicator,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue')),\n UserAvatar: defineAsyncComponent(() => import('../user_avatar/user_avatar.vue'))\n },\n computed: {\n usersCapped () {\n return this.users.slice(0, 16)\n }\n }\n}\n\nexport default UserListPopover\n","import { render } from \"./user_list_popover.vue?vue&type=template&id=6fc1c392\"\nimport script from \"./user_list_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_list_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_list_popover.vue?vue&type=style&index=0&id=6fc1c392&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"EmojiReactions\">\n <UserListPopover\n v-for=\"(reaction) in emojiReactions\"\n :key=\"reaction.name\"\n :users=\"accountsForEmoji[reaction.name]\"\n >\n <button\n class=\"emoji-reaction btn button-default\"\n :class=\"{ '-picked-reaction': reactedWith(reaction.name), 'not-clickable': !loggedIn }\"\n @click=\"emojiOnClick(reaction.name, $event)\"\n @mouseenter=\"fetchEmojiReactionsByIfMissing()\"\n >\n <span class=\"reaction-emoji\">{{ reaction.name }}</span>\n <span>{{ reaction.count }}</span>\n </button>\n </UserListPopover>\n <a\n v-if=\"tooManyReactions\"\n class=\"emoji-reaction-expand faint\"\n href=\"javascript:void(0)\"\n @click=\"toggleShowAll\"\n >\n {{ showAll ? $t('general.show_less') : showMoreString }}\n </a>\n </div>\n</template>\n\n<script src=\"./emoji_reactions.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n .emoji-reaction {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n\n .reaction-emoji {\n width: 1.25em;\n margin-right: 0.25em;\n }\n\n &:focus {\n outline: none;\n }\n\n &.not-clickable {\n cursor: default;\n\n &:hover {\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n }\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: calc(0.5em - 1px);\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\n\nconst EMOJI_REACTION_COUNT_CUTOFF = 12\n\nconst EmojiReactions = {\n name: 'EmojiReactions',\n components: {\n UserAvatar,\n UserListPopover\n },\n props: ['status'],\n data: () => ({\n showAll: false\n }),\n computed: {\n tooManyReactions () {\n return this.status.emoji_reactions.length > EMOJI_REACTION_COUNT_CUTOFF\n },\n emojiReactions () {\n return this.showAll\n ? this.status.emoji_reactions\n : this.status.emoji_reactions.slice(0, EMOJI_REACTION_COUNT_CUTOFF)\n },\n showMoreString () {\n return `+${this.status.emoji_reactions.length - EMOJI_REACTION_COUNT_CUTOFF}`\n },\n accountsForEmoji () {\n return this.status.emoji_reactions.reduce((acc, reaction) => {\n acc[reaction.name] = reaction.accounts || []\n return acc\n }, {})\n },\n loggedIn () {\n return !!this.$store.state.users.currentUser\n }\n },\n methods: {\n toggleShowAll () {\n this.showAll = !this.showAll\n },\n reactedWith (emoji) {\n return this.status.emoji_reactions.find(r => r.name === emoji).me\n },\n fetchEmojiReactionsByIfMissing () {\n const hasNoAccounts = this.status.emoji_reactions.find(r => !r.accounts)\n if (hasNoAccounts) {\n this.$store.dispatch('fetchEmojiReactionsBy', this.status.id)\n }\n },\n reactWith (emoji) {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n },\n unreact (emoji) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n },\n emojiOnClick (emoji, event) {\n if (!this.loggedIn) return\n\n if (this.reactedWith(emoji)) {\n this.unreact(emoji)\n } else {\n this.reactWith(emoji)\n }\n }\n }\n}\n\nexport default EmojiReactions\n","import { render } from \"./emoji_reactions.vue?vue&type=template&id=07b3d2b1\"\nimport script from \"./emoji_reactions.js?vue&type=script&lang=js\"\nexport * from \"./emoji_reactions.js?vue&type=script&lang=js\"\n\nimport \"./emoji_reactions.vue?vue&type=style&index=0&id=07b3d2b1&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ReplyButton from '../reply_button/reply_button.vue'\nimport FavoriteButton from '../favorite_button/favorite_button.vue'\nimport ReactButton from '../react_button/react_button.vue'\nimport RetweetButton from '../retweet_button/retweet_button.vue'\nimport ExtraButtons from '../extra_buttons/extra_buttons.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport StatusPopover from '../status_popover/status_popover.vue'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\nimport EmojiReactions from '../emoji_reactions/emoji_reactions.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport MentionsLine from 'src/components/mentions_line/mentions_line.vue'\nimport MentionLink from 'src/components/mention_link/mention_link.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport { muteWordHits } from '../../services/status_parser/status_parser.js'\nimport { unescape, uniqBy } from 'lodash'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faSmileBeam,\n faEllipsisH,\n faStar,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faStar,\n faSmileBeam,\n faEllipsisH,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst controlledOrUncontrolledSet = (obj, name, val) => {\n const camelized = camelCase(name)\n const set = `controlledSet${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[set]) {\n obj[set](val)\n } else {\n obj[uncontrolledName] = val\n }\n}\n\nconst Status = {\n name: 'Status',\n components: {\n ReplyButton,\n FavoriteButton,\n ReactButton,\n RetweetButton,\n ExtraButtons,\n PostStatusForm,\n UserAvatar,\n AvatarList,\n Timeago,\n StatusPopover,\n UserListPopover,\n EmojiReactions,\n StatusContent,\n RichContent,\n MentionLink,\n MentionsLine,\n UserPopover,\n UserLink\n },\n props: [\n 'statusoid',\n 'expandable',\n 'inConversation',\n 'focused',\n 'highlight',\n 'compact',\n 'replies',\n 'isPreview',\n 'noHeading',\n 'inlineExpanded',\n 'showPinned',\n 'inProfile',\n 'profileUserId',\n\n 'simpleTree',\n 'controlledThreadDisplayStatus',\n 'controlledToggleThreadDisplay',\n 'showOtherRepliesAsButton',\n\n 'controlledShowingTall',\n 'controlledToggleShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject',\n 'controlledReplying',\n 'controlledToggleReplying',\n 'controlledMediaPlaying',\n 'controlledSetMediaPlaying',\n 'dive'\n ],\n data () {\n return {\n uncontrolledReplying: false,\n unmuted: false,\n userExpanded: false,\n uncontrolledMediaPlaying: [],\n suspendable: true,\n error: null,\n headTailLinks: null\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['replying', 'mediaPlaying']),\n muteWords () {\n return this.mergedConfig.muteWords\n },\n showReasonMutedThread () {\n return (\n this.status.thread_muted ||\n (this.status.reblog && this.status.reblog.thread_muted)\n ) && !this.inConversation\n },\n repeaterClass () {\n const user = this.statusoid.user\n return highlightClass(user)\n },\n userClass () {\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n return highlightClass(user)\n },\n deleted () {\n return this.statusoid.deleted\n },\n repeaterStyle () {\n const user = this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userStyle () {\n if (this.noHeading) return\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name)\n },\n replyProfileLink () {\n if (this.isReply) {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n // FIXME Why user not found sometimes???\n return user ? user.statusnet_profile_url : 'NOT_FOUND'\n }\n },\n retweet () { return !!this.statusoid.retweeted_status },\n retweeterUser () { return this.statusoid.user },\n retweeter () { return this.statusoid.user.name || this.statusoid.user.screen_name_ui },\n retweeterHtml () { return this.statusoid.user.name },\n retweeterProfileLink () { return this.generateUserProfileLink(this.statusoid.user.id, this.statusoid.user.screen_name) },\n status () {\n if (this.retweet) {\n return this.statusoid.retweeted_status\n } else {\n return this.statusoid\n }\n },\n statusFromGlobalRepository () {\n // NOTE: Consider to replace status with statusFromGlobalRepository\n return this.$store.state.statuses.allStatusesObject[this.status.id]\n },\n loggedIn () {\n return !!this.currentUser\n },\n muteWordHits () {\n return muteWordHits(this.status, this.muteWords)\n },\n rtBotStatus () {\n return this.statusoid.user.bot\n },\n botStatus () {\n return this.status.user.bot\n },\n botIndicator () {\n return this.botStatus && !this.hideBotIndication\n },\n rtBotIndicator () {\n return this.rtBotStatus && !this.hideBotIndication\n },\n mentionsLine () {\n if (!this.headTailLinks) return []\n const writtenSet = new Set(this.headTailLinks.writtenMentions.map(_ => _.url))\n return this.status.attentions.filter(attn => {\n // no reply user\n return attn.id !== this.status.in_reply_to_user_id &&\n // no self-replies\n attn.statusnet_profile_url !== this.status.user.statusnet_profile_url &&\n // don't include if mentions is written\n !writtenSet.has(attn.statusnet_profile_url)\n }).map(attn => ({\n url: attn.statusnet_profile_url,\n content: attn.screen_name,\n userId: attn.id\n }))\n },\n hasMentionsLine () {\n return this.mentionsLine.length > 0\n },\n muted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const reasonsToMute = this.userIsMuted ||\n // Thread is muted\n status.thread_muted ||\n // Wordfiltered\n this.muteWordHits.length > 0 ||\n // bot status\n (this.muteBotStatuses && this.botStatus && !this.compact)\n return !this.unmuted && !this.shouldNotMute && reasonsToMute\n },\n userIsMuted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const { status } = this\n const { reblog } = status\n const relationship = this.$store.getters.relationship(status.user.id)\n const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)\n return status.muted ||\n // Reprööt of a muted post according to BE\n (reblog && reblog.muted) ||\n // Muted user\n relationship.muting ||\n // Muted user of a reprööt\n (relationshipReblog && relationshipReblog.muting)\n },\n shouldNotMute () {\n const { status } = this\n const { reblog } = status\n return (\n (\n this.inProfile && (\n // Don't mute user's posts on user timeline (except reblogs)\n (!reblog && status.user.id === this.profileUserId) ||\n // Same as above but also allow self-reblogs\n (reblog && reblog.user.id === this.profileUserId)\n )\n ) ||\n // Don't mute statuses in muted conversation when said conversation is opened\n (this.inConversation && status.thread_muted)\n // No excuses if post has muted words\n ) && !this.muteWordHits.length > 0\n },\n hideMutedUsers () {\n return this.mergedConfig.hideMutedPosts\n },\n hideMutedThreads () {\n return this.mergedConfig.hideMutedThreads\n },\n hideFilteredStatuses () {\n return this.mergedConfig.hideFilteredStatuses\n },\n hideWordFilteredPosts () {\n return this.mergedConfig.hideWordFilteredPosts\n },\n hideStatus () {\n return (!this.shouldNotMute) && (\n (this.muted && this.hideFilteredStatuses) ||\n (this.userIsMuted && this.hideMutedUsers) ||\n (this.status.thread_muted && this.hideMutedThreads) ||\n (this.muteWordHits.length > 0 && this.hideWordFilteredPosts)\n )\n },\n isFocused () {\n // retweet or root of an expanded conversation\n if (this.focused) {\n return true\n } else if (!this.inConversation) {\n return false\n }\n // use conversation highlight only when in conversation\n return this.status.id === this.highlight\n },\n isReply () {\n return !!(this.status.in_reply_to_status_id && this.status.in_reply_to_user_id)\n },\n replyToName () {\n if (this.status.in_reply_to_screen_name) {\n return this.status.in_reply_to_screen_name\n } else {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n return user && user.screen_name_ui\n }\n },\n replySubject () {\n if (!this.status.summary) return ''\n const decodedSummary = unescape(this.status.summary)\n const behavior = this.mergedConfig.subjectLineBehavior\n const startsWithRe = decodedSummary.match(/^re[: ]/i)\n if ((behavior !== 'noop' && startsWithRe) || behavior === 'masto') {\n return decodedSummary\n } else if (behavior === 'email') {\n return 're: '.concat(decodedSummary)\n } else if (behavior === 'noop') {\n return ''\n }\n },\n combinedFavsAndRepeatsUsers () {\n // Use the status from the global status repository since favs and repeats are saved in it\n const combinedUsers = [].concat(\n this.statusFromGlobalRepository.favoritedBy,\n this.statusFromGlobalRepository.rebloggedBy\n )\n return uniqBy(combinedUsers, 'id')\n },\n tags () {\n // eslint-disable-next-line no-prototype-builtins\n return this.status.tags.filter(tagObj => tagObj.hasOwnProperty('name')).map(tagObj => tagObj.name).join(' ')\n },\n hidePostStats () {\n return this.mergedConfig.hidePostStats\n },\n muteBotStatuses () {\n return this.mergedConfig.muteBotStatuses\n },\n hideBotIndication () {\n return this.mergedConfig.hideBotIndication\n },\n currentUser () {\n return this.$store.state.users.currentUser\n },\n betterShadow () {\n return this.$store.state.interface.browserSupport.cssFilter\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n isSuspendable () {\n return !this.replying && this.mediaPlaying.length === 0\n },\n inThreadForest () {\n return !!this.controlledThreadDisplayStatus\n },\n threadShowing () {\n return this.controlledThreadDisplayStatus === 'showing'\n },\n visibilityLocalized () {\n return this.$i18n.t('general.scope_in_timeline.' + this.status.visibility)\n },\n isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () {\n return this.$store.state.instance.editingAvailable\n }\n },\n methods: {\n visibilityIcon (visibility) {\n switch (visibility) {\n case 'private':\n return 'lock'\n case 'unlisted':\n return 'lock-open'\n case 'direct':\n return 'envelope'\n default:\n return 'globe'\n }\n },\n showError (error) {\n this.error = error\n },\n clearError () {\n this.error = undefined\n },\n toggleReplying () {\n controlledOrUncontrolledToggle(this, 'replying')\n },\n gotoOriginal (id) {\n if (this.inConversation) {\n this.$emit('goto', id)\n }\n },\n toggleExpanded () {\n this.$emit('toggleExpanded')\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n },\n addMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.concat(id))\n },\n removeMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.filter(mediaId => mediaId !== id))\n },\n setHeadTailLinks (headTailLinks) {\n this.headTailLinks = headTailLinks\n },\n toggleThreadDisplay () {\n this.controlledToggleThreadDisplay()\n },\n scrollIfHighlighted (highlightId) {\n const id = highlightId\n if (this.status.id === id) {\n const rect = this.$el.getBoundingClientRect()\n if (rect.top < 100) {\n // Post is above screen, match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.height >= (window.innerHeight - 50)) {\n // Post we want to see is taller than screen so match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.bottom > window.innerHeight - 50) {\n // Post is below screen, match its bottom to screen bottom\n window.scrollBy(0, rect.bottom - window.innerHeight + 50)\n }\n }\n }\n },\n watch: {\n highlight: function (id) {\n this.scrollIfHighlighted(id)\n },\n 'status.repeat_num': function (num) {\n // refetch repeats when repeat_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.rebloggedBy && this.statusFromGlobalRepository.rebloggedBy.length !== num) {\n this.$store.dispatch('fetchRepeats', this.status.id)\n }\n },\n 'status.fave_num': function (num) {\n // refetch favs when fave_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.favoritedBy && this.statusFromGlobalRepository.favoritedBy.length !== num) {\n this.$store.dispatch('fetchFavs', this.status.id)\n }\n },\n isSuspendable: function (val) {\n this.suspendable = val\n }\n }\n}\n\nexport default Status\n","import { render } from \"./status.vue?vue&type=template&id=c1ace060\"\nimport script from \"./status.js?vue&type=script&lang=js\"\nexport * from \"./status.js?vue&type=script&lang=js\"\n\nimport \"./status.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusContent\"\n :class=\"{ '-compact': compact }\"\n >\n <slot name=\"header\" />\n <StatusBody\n :status=\"status\"\n :compact=\"compact\"\n :single-line=\"singleLine\"\n :showing-tall=\"showingTall\"\n :expanding-subject=\"expandingSubject\"\n :showing-long-subject=\"showingLongSubject\"\n :toggle-showing-tall=\"toggleShowingTall\"\n :toggle-expanding-subject=\"toggleExpandingSubject\"\n :toggle-showing-long-subject=\"toggleShowingLongSubject\"\n @parseReady=\"$emit('parseReady', $event)\"\n >\n <div v-if=\"status.poll && status.poll.options && !compact\">\n <Poll\n :base-poll=\"status.poll\"\n :emoji=\"status.emojis\"\n />\n </div>\n\n <div v-else-if=\"status.poll && status.poll.options && compact\">\n <FAIcon\n icon=\"poll-h\"\n size=\"2x\"\n />\n </div>\n\n <gallery\n v-if=\"status.attachments.length !== 0\"\n class=\"attachments media-body\"\n :compact=\"compact\"\n :nsfw=\"nsfwClickthrough\"\n :attachments=\"status.attachments\"\n :limit=\"compact ? 1 : 0\"\n :size=\"attachmentSize\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n\n <div\n v-if=\"status.card && !noHeading && !compact\"\n class=\"link-preview media-body\"\n >\n <link-preview\n :card=\"status.card\"\n :size=\"attachmentSize\"\n :nsfw=\"nsfwClickthrough\"\n />\n </div>\n </StatusBody>\n <slot name=\"footer\" />\n </div>\n</template>\n\n<script src=\"./status_content.js\"></script>\n<style lang=\"scss\">\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n</style>\n","<template>\n <div\n class=\"poll\"\n :class=\"containerClass\"\n >\n <div\n :role=\"showResults ? 'section' : (poll.multiple ? 'group' : 'radiogroup')\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div\n v-if=\"showResults\"\n :title=\"resultTitle(option)\"\n class=\"option-result\"\n >\n <div class=\"option-result-label\">\n <span class=\"result-percentage\">\n {{ percentageForOption(option.votes_count) }}%\n </span>\n <RichContent\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </div>\n <div\n class=\"result-fill\"\n :style=\"{ 'width': `${percentageForOption(option.votes_count)}%` }\"\n />\n </div>\n <div\n v-else\n tabindex=\"0\"\n :role=\"poll.multiple ? 'checkbox' : 'radio'\"\n :aria-labelledby=\"`option-vote-${randomSeed}-${index}`\"\n :aria-checked=\"choices[index]\"\n @click=\"activateOption(index)\"\n >\n <input\n v-if=\"poll.multiple\"\n type=\"checkbox\"\n class=\"poll-checkbox\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <input\n v-else\n type=\"radio\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <label class=\"option-vote\">\n <RichContent\n :id=\"`option-vote-${randomSeed}-${index}`\"\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </label>\n </div>\n </div>\n </div>\n <div class=\"footer faint\">\n <button\n v-if=\"!showResults\"\n class=\"btn button-default poll-vote-button\"\n type=\"button\"\n :disabled=\"isDisabled\"\n @click=\"vote\"\n >\n {{ $t('polls.vote') }}\n </button>\n <div class=\"total\">\n <template v-if=\"typeof poll.voters_count === 'number'\">\n {{ $tc(\"polls.people_voted_count\", poll.voters_count, { count: poll.voters_count }) }}&nbsp;·&nbsp;\n </template>\n <template v-else>\n {{ $tc(\"polls.votes_count\", poll.votes_count, { count: poll.votes_count }) }}&nbsp;·&nbsp;\n </template>\n </div>\n <span>\n <i18n-t\n scope=\"global\"\n :keypath=\"expired ? 'polls.expired' : 'polls.expires_in'\"\n >\n <Timeago\n :time=\"expiresAt\"\n :auto-update=\"60\"\n :now-threshold=\"0\"\n />\n </i18n-t>\n </span>\n </div>\n </div>\n</template>\n\n<script src=\"./poll.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n\n .poll-option {\n margin: 0.75em 0.5em;\n }\n\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n\n .option-vote {\n display: flex;\n align-items: center;\n }\n\n input {\n width: 3.5em;\n }\n\n .footer {\n display: flex;\n align-items: center;\n }\n\n &.loading * {\n cursor: progress;\n }\n\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n\n .poll-checkbox {\n display: none;\n }\n}\n</style>\n","import Timeago from 'components/timeago/timeago.vue'\nimport RichContent from 'components/rich_content/rich_content.jsx'\nimport { forEach, map } from 'lodash'\n\nexport default {\n name: 'Poll',\n props: ['basePoll', 'emoji'],\n components: {\n Timeago,\n RichContent\n },\n data () {\n return {\n loading: false,\n choices: [],\n randomSeed: `${Math.random()}`.replace('.', '-')\n }\n },\n created () {\n if (!this.$store.state.polls.pollsObject[this.pollId]) {\n this.$store.dispatch('mergeOrAddPoll', this.basePoll)\n }\n this.$store.dispatch('trackPoll', this.pollId)\n },\n unmounted () {\n this.$store.dispatch('untrackPoll', this.pollId)\n },\n computed: {\n pollId () {\n return this.basePoll.id\n },\n poll () {\n const storePoll = this.$store.state.polls.pollsObject[this.pollId]\n return storePoll || {}\n },\n options () {\n return (this.poll && this.poll.options) || []\n },\n expiresAt () {\n return (this.poll && this.poll.expires_at) || 0\n },\n expired () {\n return (this.poll && this.poll.expired) || false\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n showResults () {\n return this.poll.voted || this.expired || !this.loggedIn\n },\n totalVotesCount () {\n return this.poll.votes_count\n },\n containerClass () {\n return {\n loading: this.loading\n }\n },\n choiceIndices () {\n // Convert array of booleans into an array of indices of the\n // items that were 'true', so [true, false, false, true] becomes\n // [0, 3].\n return this.choices\n .map((entry, index) => entry && index)\n .filter(value => typeof value === 'number')\n },\n isDisabled () {\n const noChoice = this.choiceIndices.length === 0\n return this.loading || noChoice\n }\n },\n methods: {\n percentageForOption (count) {\n return this.totalVotesCount === 0 ? 0 : Math.round(count / this.totalVotesCount * 100)\n },\n resultTitle (option) {\n return `${option.votes_count}/${this.totalVotesCount} ${this.$t('polls.votes')}`\n },\n fetchPoll () {\n this.$store.dispatch('refreshPoll', { id: this.statusId, pollId: this.poll.id })\n },\n activateOption (index) {\n // forgive me father: doing checking the radio/checkboxes\n // in code because of customized input elements need either\n // a) an extra element for the actual graphic, or b) use a\n // pseudo element for the label. We use b) which mandates\n // using \"for\" and \"id\" matching which isn't nice when the\n // same poll appears multiple times on the site (notifs and\n // timeline for example). With code we can make sure it just\n // works without altering the pseudo element implementation.\n const allElements = this.$el.querySelectorAll('input')\n const clickedElement = this.$el.querySelector(`input[value=\"${index}\"]`)\n if (this.poll.multiple) {\n // Checkboxes, toggle only the clicked one\n clickedElement.checked = !clickedElement.checked\n } else {\n // Radio button, uncheck everything and check the clicked one\n forEach(allElements, element => { element.checked = false })\n clickedElement.checked = true\n }\n this.choices = map(allElements, e => e.checked)\n },\n optionId (index) {\n return `poll${this.poll.id}-${index}`\n },\n vote () {\n if (this.choiceIndices.length === 0) return\n this.loading = true\n this.$store.dispatch(\n 'votePoll',\n { id: this.statusId, pollId: this.poll.id, choices: this.choiceIndices }\n ).then(poll => {\n this.loading = false\n })\n }\n }\n}\n","import { render } from \"./poll.vue?vue&type=template&id=02c7de4c\"\nimport script from \"./poll.js?vue&type=script&lang=js\"\nexport * from \"./poll.js?vue&type=script&lang=js\"\n\nimport \"./poll.vue?vue&type=style&index=0&id=02c7de4c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusBody\"\n :class=\"{ '-compact': compact }\"\n >\n <div class=\"body\">\n <div\n v-if=\"status.summary_raw_html\"\n class=\"summary-wrapper\"\n :class=\"{ '-tall': (longSubject && !showingLongSubject) }\"\n >\n <RichContent\n class=\"media-body summary\"\n :html=\"status.summary_raw_html\"\n :emoji=\"status.emojis\"\n />\n <button\n v-show=\"longSubject && showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.hide_full_subject\") }}\n </button>\n <button\n v-show=\"longSubject && !showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.show_full_subject\") }}\n </button>\n </div>\n <div\n :class=\"{'-tall-status': hideTallStatus}\"\n class=\"text-wrapper\"\n >\n <button\n v-show=\"hideTallStatus\"\n class=\"button-unstyled -link tall-status-hider\"\n :class=\"{ '-focused': focused }\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"general.show_more\") }}\n </button>\n <RichContent\n v-if=\"!hideSubjectStatus && !(singleLine && status.summary_raw_html)\"\n :class=\"{ '-single-line': singleLine }\"\n class=\"text media-body\"\n :html=\"status.raw_html\"\n :emoji=\"status.emojis\"\n :handle-links=\"true\"\n :greentext=\"mergedConfig.greentext\"\n :attentions=\"status.attentions\"\n @parseReady=\"onParseReady\"\n />\n\n <button\n v-show=\"hideSubjectStatus\"\n class=\"button-unstyled -link cw-status-hider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"status.show_content\") }}\n <FAIcon\n v-if=\"attachmentTypes.includes('image')\"\n icon=\"image\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('video')\"\n icon=\"video\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('audio')\"\n icon=\"music\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('unknown')\"\n icon=\"file\"\n />\n <FAIcon\n v-if=\"status.poll && status.poll.options\"\n icon=\"poll-h\"\n />\n <FAIcon\n v-if=\"status.card\"\n icon=\"link\"\n />\n </button>\n <button\n v-show=\"showingMore && !fullContent\"\n class=\"button-unstyled -link status-unhider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ tallStatus ? $t(\"general.show_less\") : $t(\"status.hide_content\") }}\n </button>\n </div>\n </div>\n <slot v-if=\"!hideSubjectStatus\" />\n </div>\n</template>\n<script src=\"./status_body.js\"></script>\n<style lang=\"scss\" src=\"./status_body.scss\" />\n","import fileType from 'src/services/file_type/file_type.service'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'compact',\n 'status',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'showingTall',\n 'expandingSubject',\n 'showingLongSubject',\n 'toggleShowingTall',\n 'toggleExpandingSubject',\n 'toggleShowingLongSubject'\n ],\n data () {\n return {\n postLength: this.status.text.length,\n parseReadyDone: false\n }\n },\n computed: {\n localCollapseSubjectDefault () {\n return this.mergedConfig.collapseMessageWithSubject\n },\n // This is a bit hacky, but we want to approximate post height before rendering\n // so we count newlines (masto uses <p> for paragraphs, GS uses <br> between them)\n // as well as approximate line count by counting characters and approximating ~80\n // per line.\n //\n // Using max-height + overflow: auto for status components resulted in false positives\n // very often with japanese characters, and it was very annoying.\n tallStatus () {\n if (this.singleLine || this.compact) return false\n const lengthScore = this.status.raw_html.split(/<p|<br/).length + this.postLength / 80\n return lengthScore > 20\n },\n longSubject () {\n return this.status.summary.length > 240\n },\n // When a status has a subject and is also tall, we should only have one show more/less button. If the default is to collapse statuses with subjects, we just treat it like a status with a subject; otherwise, we just treat it like a tall status.\n mightHideBecauseSubject () {\n return !!this.status.summary && this.localCollapseSubjectDefault\n },\n mightHideBecauseTall () {\n return this.tallStatus && !(this.status.summary && this.localCollapseSubjectDefault)\n },\n hideSubjectStatus () {\n return this.mightHideBecauseSubject && !this.expandingSubject\n },\n hideTallStatus () {\n return this.mightHideBecauseTall && !this.showingTall\n },\n showingMore () {\n return (this.mightHideBecauseTall && this.showingTall) || (this.mightHideBecauseSubject && this.expandingSubject)\n },\n attachmentTypes () {\n return this.status.attachments.map(file => fileType.fileType(file.mimetype))\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n RichContent\n },\n mounted () {\n this.status.attentions && this.status.attentions.forEach(attn => {\n const { id } = attn\n this.$store.dispatch('fetchUserIfMissing', id)\n })\n },\n methods: {\n onParseReady (event) {\n if (this.parseReadyDone) return\n this.parseReadyDone = true\n this.$emit('parseReady', event)\n const { writtenMentions, invisibleMentions } = event\n writtenMentions\n .filter(mention => !mention.notifying)\n .forEach(mention => {\n const { content, url } = mention\n const cleanedString = content.replace(/<[^>]+?>/gi, '') // remove all tags\n if (!cleanedString.startsWith('@')) return\n const handle = cleanedString.slice(1)\n const host = url.replace(/^https?:\\/\\//, '').replace(/\\/.+?$/, '')\n this.$store.dispatch('fetchUserIfMissing', `${handle}@${host}`)\n })\n /* This is a bit of a hack to make current tall status detector work\n * with rich mentions. Invisible mentions are detected at RichContent level\n * and also we generate plaintext version of mentions by stripping tags\n * so here we subtract from post length by each mention that became invisible\n * via MentionsLine\n */\n this.postLength = invisibleMentions.reduce((acc, mention) => {\n return acc - mention.textContent.length - 1\n }, this.postLength)\n },\n toggleShowMore () {\n if (this.mightHideBecauseTall) {\n this.toggleShowingTall()\n } else if (this.mightHideBecauseSubject) {\n this.toggleExpandingSubject()\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default StatusContent\n","import { render } from \"./status_body.vue?vue&type=template&id=7a590a2c\"\nimport script from \"./status_body.js?vue&type=script&lang=js\"\nexport * from \"./status_body.js?vue&type=script&lang=js\"\n\nimport \"./status_body.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Attachment from '../attachment/attachment.vue'\nimport Poll from '../poll/poll.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport StatusBody from 'src/components/status_body/status_body.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport { mapGetters, mapState } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'status',\n 'compact',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'controlledShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleShowingTall',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject'\n ],\n data () {\n return {\n uncontrolledShowingTall: this.fullContent || (this.inConversation && this.focused),\n uncontrolledShowingLongSubject: false,\n // not as computed because it sets the initial state which will be changed later\n uncontrolledExpandingSubject: !this.$store.getters.mergedConfig.collapseMessageWithSubject\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['showingTall', 'expandingSubject', 'showingLongSubject']),\n hideAttachments () {\n return (this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation)\n },\n nsfwClickthrough () {\n if (!this.status.nsfw) {\n return false\n }\n if (this.status.summary && this.localCollapseSubjectDefault) {\n return false\n }\n return true\n },\n attachmentSize () {\n if (this.compact) {\n return 'small'\n } else if ((this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation) ||\n (this.status.attachments.length > this.maxThumbnails)) {\n return 'hide'\n }\n return 'normal'\n },\n maxThumbnails () {\n return this.mergedConfig.maxThumbnails\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n },\n components: {\n Attachment,\n Poll,\n Gallery,\n LinkPreview,\n StatusBody\n },\n methods: {\n toggleShowingTall () {\n controlledOrUncontrolledToggle(this, 'showingTall')\n },\n toggleExpandingSubject () {\n controlledOrUncontrolledToggle(this, 'expandingSubject')\n },\n toggleShowingLongSubject () {\n controlledOrUncontrolledToggle(this, 'showingLongSubject')\n },\n setMedia () {\n const attachments = this.attachmentSize === 'hide' ? this.status.attachments : this.galleryAttachments\n return () => this.$store.dispatch('setMedia', attachments)\n }\n }\n}\n\nexport default StatusContent\n","import { render } from \"./status_content.vue?vue&type=template&id=33f92051\"\nimport script from \"./status_content.js?vue&type=script&lang=js\"\nexport * from \"./status_content.js?vue&type=script&lang=js\"\n\nimport \"./status_content.vue?vue&type=style&index=0&id=33f92051&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"still-image\"\n :class=\"{ animated: animated }\"\n :style=\"style\"\n >\n <canvas\n v-if=\"animated\"\n ref=\"canvas\"\n />\n <!-- NOTE: key is required to force to re-render img tag when src is changed -->\n <img\n ref=\"src\"\n :key=\"realSrc\"\n :alt=\"alt\"\n :title=\"alt\"\n :data-src=\"dataSrc\"\n :src=\"realSrc\"\n :referrerpolicy=\"referrerpolicy\"\n :loading=\"loading\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./still-image.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n</style>\n","const StillImage = {\n props: [\n 'src',\n 'referrerpolicy',\n 'mimetype',\n 'imageLoadError',\n 'imageLoadHandler',\n 'alt',\n 'height',\n 'width',\n 'dataSrc',\n 'loading'\n ],\n data () {\n return {\n // for lazy loading, see loadLazy()\n realSrc: this.src,\n stopGifs: this.$store.getters.mergedConfig.stopGifs\n }\n },\n computed: {\n animated () {\n if (!this.realSrc) {\n return false\n }\n\n return this.stopGifs && (this.mimetype === 'image/gif' || this.realSrc.endsWith('.gif'))\n },\n style () {\n const appendPx = (str) => /\\d$/.test(str) ? str + 'px' : str\n return {\n height: this.height ? appendPx(this.height) : null,\n width: this.width ? appendPx(this.width) : null\n }\n }\n },\n methods: {\n loadLazy () {\n if (this.dataSrc) {\n this.realSrc = this.dataSrc\n }\n },\n onLoad () {\n if (!this.realSrc) {\n return\n }\n const image = this.$refs.src\n if (!image) return\n this.imageLoadHandler && this.imageLoadHandler(image)\n const canvas = this.$refs.canvas\n if (!canvas) return\n const width = image.naturalWidth\n const height = image.naturalHeight\n canvas.width = width\n canvas.height = height\n canvas.getContext('2d').drawImage(image, 0, 0, width, height)\n },\n onError () {\n this.imageLoadError && this.imageLoadError()\n }\n },\n watch: {\n src () {\n this.realSrc = this.src\n },\n dataSrc () {\n this.$el.removeAttribute('data-loaded')\n }\n }\n}\n\nexport default StillImage\n","import { render } from \"./still-image.vue?vue&type=template&id=75385b10\"\nimport script from \"./still-image.js?vue&type=script&lang=js\"\nexport * from \"./still-image.js?vue&type=script&lang=js\"\n\nimport \"./still-image.vue?vue&type=style&index=0&id=75385b10&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <time\n :datetime=\"time\"\n :title=\"localeDateString\"\n >\n {{ relativeTimeString }}\n </time>\n</template>\n\n<script>\nimport * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['time', 'autoUpdate', 'longFormat', 'nowThreshold', 'templateKey'],\n data () {\n return {\n relativeTime: { key: 'time.now', num: 0 },\n interval: null\n }\n },\n computed: {\n localeDateString () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return typeof this.time === 'string'\n ? new Date(Date.parse(this.time)).toLocaleString(browserLocale)\n : this.time.toLocaleString(browserLocale)\n },\n relativeTimeString () {\n const timeString = this.$i18n.tc(this.relativeTime.key, this.relativeTime.num, [this.relativeTime.num])\n\n if (typeof this.templateKey === 'string' && this.relativeTime.key !== 'time.now') {\n return this.$i18n.t(this.templateKey, [timeString])\n }\n\n return timeString\n }\n },\n watch: {\n time (newVal, oldVal) {\n if (oldVal !== newVal) {\n clearTimeout(this.interval)\n this.refreshRelativeTimeObject()\n }\n }\n },\n created () {\n this.refreshRelativeTimeObject()\n },\n unmounted () {\n clearTimeout(this.interval)\n },\n methods: {\n refreshRelativeTimeObject () {\n const nowThreshold = typeof this.nowThreshold === 'number' ? this.nowThreshold : 1\n this.relativeTime = this.longFormat\n ? DateUtils.relativeTime(this.time, nowThreshold)\n : DateUtils.relativeTimeShort(this.time, nowThreshold)\n\n if (this.autoUpdate) {\n this.interval = setTimeout(\n this.refreshRelativeTimeObject,\n 1000 * this.autoUpdate\n )\n }\n }\n }\n}\n</script>\n","import { render } from \"./timeago.vue?vue&type=template&id=3269671b\"\nimport script from \"./timeago.vue?vue&type=script&lang=js\"\nexport * from \"./timeago.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <FAIcon\n v-if=\"user && user.screen_name_ui_contains_non_ascii\"\n icon=\"code\"\n :title=\"$t('unicode_domain_indicator.tooltip')\"\n />\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCode\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCode\n)\n\nconst UnicodeDomainIndicator = {\n props: {\n user: Object\n }\n}\n\nexport default UnicodeDomainIndicator\n</script>\n","import { render } from \"./unicode_domain_indicator.vue?vue&type=template&id=3e044e46\"\nimport script from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StillImage from '../still-image/still-image.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\n\nimport {\n faRobot\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRobot\n)\n\nconst UserAvatar = {\n props: [\n 'user',\n 'betterShadow',\n 'compact',\n 'bot'\n ],\n data () {\n return {\n showPlaceholder: false,\n defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`\n }\n },\n components: {\n StillImage\n },\n methods: {\n imgSrc (src) {\n return (!src || this.showPlaceholder) ? this.defaultAvatar : src\n },\n imageLoadError () {\n this.showPlaceholder = true\n }\n }\n}\n\nexport default UserAvatar\n","import { render } from \"./user_avatar.vue?vue&type=template&id=9c4bf79e\"\nimport script from \"./user_avatar.js?vue&type=script&lang=js\"\nexport * from \"./user_avatar.js?vue&type=script&lang=js\"\n\nimport \"./user_avatar.vue?vue&type=style&index=0&id=9c4bf79e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n class=\"Avatar\"\n :class=\"{ '-compact': compact }\"\n >\n <StillImage\n v-if=\"user\"\n class=\"avatar\"\n :alt=\"user.screen_name_ui\"\n :title=\"user.screen_name_ui\"\n :src=\"imgSrc(user.profile_image_url_original)\"\n :image-load-error=\"imageLoadError\"\n :class=\"{ '-compact': compact, '-better-shadow': betterShadow }\"\n />\n <div\n v-else\n class=\"avatar -placeholder\"\n :class=\"{ '-compact': compact }\"\n />\n <FAIcon\n v-if=\"bot\"\n icon=\"robot\"\n class=\"bot-indicator\"\n />\n </span>\n</template>\n\n<script src=\"./user_avatar.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n}\n</style>\n","<template>\n <div\n class=\"user-card\"\n :class=\"classes\"\n >\n <div\n :class=\"{ 'hide-bio': hideBio }\"\n :style=\"style\"\n class=\"background-image\"\n />\n <div :class=\"onClose ? '' : panel-heading -flexible-height\">\n <div class=\"user-info\">\n <div class=\"container\">\n <a\n v-if=\"avatarAction === 'zoom'\"\n class=\"user-info-avatar -link\"\n @click=\"zoomAvatar\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n <div class=\"user-info-avatar -link -overlay\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search-plus\"\n />\n </div>\n </a>\n <UserAvatar\n v-else-if=\"typeof avatarAction === 'function'\"\n class=\"user-info-avatar\"\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n @click=\"avatarAction\"\n />\n <router-link\n v-else\n :to=\"userProfileLink(user)\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n </router-link>\n <div class=\"user-summary\">\n <div class=\"top-line\">\n <router-link\n :to=\"userProfileLink(user)\"\n class=\"user-name\"\n >\n <RichContent\n :title=\"user.name\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </router-link>\n <button\n v-if=\"!isOtherUser && user.is_local\"\n class=\"button-unstyled edit-profile-button\"\n @click.stop=\"openProfileTab\"\n >\n <FAIcon\n fixed-width\n class=\"icon\"\n icon=\"edit\"\n :title=\"$t('user_card.edit_profile')\"\n />\n </button>\n <a\n v-if=\"isOtherUser && !user.is_local\"\n :href=\"user.statusnet_profile_url\"\n target=\"_blank\"\n class=\"button-unstyled external-link-button\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"external-link-alt\"\n />\n </a>\n <AccountActions\n v-if=\"isOtherUser && loggedIn\"\n :user=\"user\"\n :relationship=\"relationship\"\n />\n <router-link\n v-if=\"onClose\"\n :to=\"userProfileLink(user)\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"expand-alt\"\n />\n </router-link>\n <button\n v-if=\"onClose\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"times\"\n />\n </button>\n </div>\n <div class=\"bottom-line\">\n <user-link\n class=\"user-screen-name\"\n :user=\"user\"\n />\n <template v-if=\"!hideBio\">\n <span\n v-if=\"user.deactivated\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.deactivated') }}\n </span>\n <span\n v-if=\"!!visibleRole\"\n class=\"alert user-role\"\n >\n {{ $t(`general.role.${visibleRole}`) }}\n </span>\n <span\n v-if=\"user.bot\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.bot') }}\n </span>\n </template>\n <span v-if=\"user.locked\">\n <FAIcon\n class=\"lock-icon\"\n icon=\"lock\"\n size=\"sm\"\n />\n </span>\n <span\n v-if=\"!mergedConfig.hideUserStats && !hideBio\"\n class=\"dailyAvg\"\n >{{ dailyAvg }} {{ $t('user_card.per_day') }}</span>\n </div>\n </div>\n </div>\n <div class=\"user-meta\">\n <div\n v-if=\"relationship.followed_by && loggedIn && isOtherUser\"\n class=\"following\"\n >\n {{ $t('user_card.follows_you') }}\n </div>\n <div\n v-if=\"isOtherUser && (loggedIn || !switcher)\"\n class=\"highlighter\"\n >\n <!-- id's need to be unique, otherwise vue confuses which user-card checkbox belongs to -->\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColorTx'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightText\"\n type=\"text\"\n >\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColor'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightCl\"\n type=\"color\"\n >\n {{ ' ' }}\n <Select\n :id=\"'userHighlightSel'+user.id\"\n v-model=\"userHighlightType\"\n class=\"userHighlightSel\"\n >\n <option value=\"disabled\">\n {{ $t('user_card.highlight.disabled') }}\n </option>\n <option value=\"solid\">\n {{ $t('user_card.highlight.solid') }}\n </option>\n <option value=\"striped\">\n {{ $t('user_card.highlight.striped') }}\n </option>\n <option value=\"side\">\n {{ $t('user_card.highlight.side') }}\n </option>\n </Select>\n </div>\n </div>\n <div\n v-if=\"loggedIn && isOtherUser\"\n class=\"user-interactions\"\n >\n <div class=\"btn-group\">\n <FollowButton\n :relationship=\"relationship\"\n :user=\"user\"\n />\n <template v-if=\"relationship.following\">\n <ProgressButton\n v-if=\"!relationship.subscribing\"\n class=\"btn button-default\"\n :click=\"subscribeUser\"\n :title=\"$t('user_card.subscribe')\"\n >\n <FAIcon icon=\"bell\" />\n </ProgressButton>\n <ProgressButton\n v-else\n class=\"btn button-default toggled\"\n :click=\"unsubscribeUser\"\n :title=\"$t('user_card.unsubscribe')\"\n >\n <FALayers>\n <FAIcon\n icon=\"rss\"\n transform=\"left-5 shrink-6 up-3 rotate-20\"\n flip=\"horizontal\"\n />\n <FAIcon\n icon=\"rss\"\n transform=\"right-5 shrink-6 up-3 rotate-20\"\n />\n <FAIcon icon=\"bell\" />\n </FALayers>\n </ProgressButton>\n </template>\n </div>\n <div>\n <button\n v-if=\"relationship.muting\"\n class=\"btn button-default btn-block toggled\"\n :disabled=\"user.deactivated\"\n @click=\"unmuteUser\"\n >\n {{ $t('user_card.muted') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"muteUser\"\n >\n {{ $t('user_card.mute') }}\n </button>\n </div>\n <div>\n <button\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"mentionUser\"\n >\n {{ $t('user_card.mention') }}\n </button>\n </div>\n <ModerationTools\n v-if=\"showModerationMenu\"\n :user=\"user\"\n />\n </div>\n <div\n v-if=\"!loggedIn && user.is_local\"\n class=\"user-interactions\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n <UserNote\n v-if=\"loggedIn && isOtherUser && (hasNote || (hasNoteEditor && supportsNote))\"\n :user=\"user\"\n :relationship=\"relationship\"\n :editable=\"hasNoteEditor\"\n />\n </div>\n </div>\n <div\n v-if=\"!hideBio\"\n class=\"panel-body\"\n >\n <div\n v-if=\"!mergedConfig.hideUserStats && switcher\"\n class=\"user-counts\"\n >\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('statuses')\"\n >\n <h5>{{ $t('user_card.statuses') }}</h5>\n <span>{{ user.statuses_count }} <br></span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('friends')\"\n >\n <h5>{{ $t('user_card.followees') }}</h5>\n <span>{{ hideFollowsCount ? $t('user_card.hidden') : user.friends_count }}</span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('followers')\"\n >\n <h5>{{ $t('user_card.followers') }}</h5>\n <span>{{ hideFollowersCount ? $t('user_card.hidden') : user.followers_count }}</span>\n </div>\n </div>\n <RichContent\n v-if=\"!hideBio\"\n class=\"user-card-bio\"\n :html=\"user.description_html\"\n :emoji=\"user.emoji\"\n :handle-links=\"true\"\n />\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmMute\"\n :title=\"$t('user_card.mute_confirm_title')\"\n :confirm-text=\"$t('user_card.mute_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.mute_confirm_cancel_button')\"\n @accepted=\"doMuteUser\"\n @cancelled=\"hideConfirmMute\"\n >\n <i18n-t\n keypath=\"user_card.mute_confirm\"\n tag=\"div\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n <div\n class=\"mute-expiry\"\n >\n <label>\n {{ $t('user_card.mute_duration_prompt') }}\n </label>\n <input\n v-model=\"muteExpiryAmount\"\n type=\"number\"\n class=\"expiry-amount hide-number-spinner\"\n :min=\"0\"\n >\n <Select\n v-model=\"muteExpiryUnit\"\n unstyled=\"true\"\n class=\"expiry-unit\"\n >\n <option\n v-for=\"unit in muteExpiryUnits\"\n :key=\"unit\"\n :value=\"unit\"\n >\n {{ $t(`time.${unit}_short`, ['']) }}\n </option>\n </Select>\n </div>\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./user_card.js\"></script>\n\n<style lang=\"scss\" src=\"./user_card.scss\" />\n","<template>\n <div>\n <Popover\n trigger=\"click\"\n class=\"moderation-tools-popover\"\n placement=\"bottom\"\n :offset=\"{ y: 5 }\"\n @show=\"setToggled(true)\"\n @close=\"setToggled(false)\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <span v-if=\"canGrantRole\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;admin&quot;)\"\n >\n {{ $t(!!user.rights.admin ? 'user_card.admin_menu.revoke_admin' : 'user_card.admin_menu.grant_admin') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;moderator&quot;)\"\n >\n {{ $t(!!user.rights.moderator ? 'user_card.admin_menu.revoke_moderator' : 'user_card.admin_menu.grant_moderator') }}\n </button>\n <div\n v-if=\"canChangeActivationState || canDeleteAccount\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </span>\n <button\n v-if=\"canChangeActivationState\"\n class=\"button-default dropdown-item\"\n @click=\"toggleActivationStatus()\"\n >\n {{ $t(!!user.deactivated ? 'user_card.admin_menu.activate_account' : 'user_card.admin_menu.deactivate_account') }}\n </button>\n <button\n v-if=\"canDeleteAccount\"\n class=\"button-default dropdown-item\"\n @click=\"deleteUserDialog(true)\"\n >\n {{ $t('user_card.admin_menu.delete_account') }}\n </button>\n <div\n v-if=\"canUseTagPolicy\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <span v-if=\"canUseTagPolicy\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_NSFW)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_NSFW) }\"\n />\n {{ $t('user_card.admin_menu.force_nsfw') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.STRIP_MEDIA)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.STRIP_MEDIA) }\"\n />\n {{ $t('user_card.admin_menu.strip_media') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_UNLISTED)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_UNLISTED) }\"\n />\n {{ $t('user_card.admin_menu.force_unlisted') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.SANDBOX)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.SANDBOX) }\"\n />\n {{ $t('user_card.admin_menu.sandbox') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_REMOTE_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_REMOTE_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_remote_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_ANY_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_ANY_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_any_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.QUARANTINE)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.QUARANTINE) }\"\n />\n {{ $t('user_card.admin_menu.quarantine') }}\n </button>\n </span>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"btn button-default btn-block moderation-tools-button\"\n :class=\"{ toggled }\"\n >\n {{ $t('user_card.admin_menu.moderation') }}\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n <teleport to=\"#modal\">\n <DialogModal\n v-if=\"showDeleteUserDialog\"\n :on-cancel=\"deleteUserDialog.bind(this, false)\"\n >\n <template #header>\n {{ $t('user_card.admin_menu.delete_user') }}\n </template>\n <p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p>\n <template #footer>\n <button\n class=\"btn button-default\"\n @click=\"deleteUserDialog(false)\"\n >\n {{ $t('general.cancel') }}\n </button>\n <button\n class=\"btn button-default danger\"\n @click=\"deleteUser()\"\n >\n {{ $t('user_card.admin_menu.delete_user') }}\n </button>\n </template>\n </DialogModal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./moderation_tools.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.moderation-tools-popover {\n height: 100%;\n\n .trigger {\n /* stylelint-disable-next-line declaration-no-important */\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,\n i {\n font-size: 0.8em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronDown } from '@fortawesome/free-solid-svg-icons'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronDown)\n\nconst FORCE_NSFW = 'mrf_tag:media-force-nsfw'\nconst STRIP_MEDIA = 'mrf_tag:media-strip'\nconst FORCE_UNLISTED = 'mrf_tag:force-unlisted'\nconst DISABLE_REMOTE_SUBSCRIPTION = 'mrf_tag:disable-remote-subscription'\nconst DISABLE_ANY_SUBSCRIPTION = 'mrf_tag:disable-any-subscription'\nconst SANDBOX = 'mrf_tag:sandbox'\nconst QUARANTINE = 'mrf_tag:quarantine'\n\nconst ModerationTools = {\n props: [\n 'user'\n ],\n data () {\n return {\n tags: {\n FORCE_NSFW,\n STRIP_MEDIA,\n FORCE_UNLISTED,\n DISABLE_REMOTE_SUBSCRIPTION,\n DISABLE_ANY_SUBSCRIPTION,\n SANDBOX,\n QUARANTINE\n },\n showDeleteUserDialog: false,\n toggled: false\n }\n },\n components: {\n DialogModal,\n Popover\n },\n computed: {\n tagsSet () {\n return new Set(this.user.tags)\n },\n canGrantRole () {\n return this.user.is_local && !this.user.deactivated && this.$store.state.users.currentUser.role === 'admin'\n },\n canChangeActivationState () {\n return this.privileged('users_manage_activation_state')\n },\n canDeleteAccount () {\n return this.privileged('users_delete')\n },\n canUseTagPolicy () {\n return this.$store.state.instance.tagPolicyAvailable && this.privileged('users_manage_tags')\n }\n },\n methods: {\n hasTag (tagName) {\n return this.tagsSet.has(tagName)\n },\n privileged (privilege) {\n return this.$store.state.users.currentUser.privileges.includes(privilege)\n },\n toggleTag (tag) {\n const store = this.$store\n if (this.tagsSet.has(tag)) {\n store.state.api.backendInteractor.untagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('untagUser', { user: this.user, tag })\n })\n } else {\n store.state.api.backendInteractor.tagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('tagUser', { user: this.user, tag })\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default ModerationTools\n","import { render } from \"./moderation_tools.vue?vue&type=template&id=352f537c\"\nimport script from \"./moderation_tools.js?vue&type=script&lang=js\"\nexport * from \"./moderation_tools.js?vue&type=script&lang=js\"\n\nimport \"./moderation_tools.vue?vue&type=style&index=0&id=352f537c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"AccountActions\">\n <Popover\n trigger=\"click\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <template v-if=\"relationship.following\">\n <button\n v-if=\"relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"hideRepeats\"\n >\n {{ $t('user_card.hide_repeats') }}\n </button>\n <button\n v-if=\"!relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"showRepeats\"\n >\n {{ $t('user_card.show_repeats') }}\n </button>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </template>\n <UserListMenu :user=\"user\" />\n <button\n v-if=\"relationship.followed_by\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"removeUserFromFollowers\"\n >\n {{ $t('user_card.remove_follower') }}\n </button>\n <button\n v-if=\"relationship.blocking\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"unblockUser\"\n >\n {{ $t('user_card.unblock') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"blockUser\"\n >\n {{ $t('user_card.block') }}\n </button>\n <button\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"reportUser\"\n >\n {{ $t('user_card.report') }}\n </button>\n <button\n v-if=\"pleromaChatMessagesAvailable\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"openChat\"\n >\n {{ $t('user_card.message') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"button-unstyled ellipsis-button\">\n <FAIcon\n class=\"icon\"\n icon=\"ellipsis-v\"\n />\n </button>\n </template>\n </Popover>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmBlock\"\n :title=\"$t('user_card.block_confirm_title')\"\n :confirm-text=\"$t('user_card.block_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.block_confirm_cancel_button')\"\n @accepted=\"doBlockUser\"\n @cancelled=\"hideConfirmBlock\"\n >\n <i18n-t\n keypath=\"user_card.block_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmRemoveFollower\"\n :title=\"$t('user_card.remove_follower_confirm_title')\"\n :confirm-text=\"$t('user_card.remove_follower_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.remove_follower_confirm_cancel_button')\"\n @accepted=\"doRemoveUserFromFollowers\"\n @cancelled=\"hideConfirmRemoveUserFromFollowers\"\n >\n <i18n-t\n keypath=\"user_card.remove_follower_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./account_actions.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","<template>\n <div class=\"UserListMenu\">\n <Popover\n trigger=\"hover\"\n placement=\"left\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n v-for=\"list in lists\"\n :key=\"list.id\"\n class=\"button-default dropdown-item\"\n @click=\"toggleList(list.id)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': list.inList }\"\n />\n {{ list.title }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"btn button-default dropdown-item -has-submenu\">\n {{ $t('lists.manage_lists') }}\n <FAIcon\n class=\"chevron-icon\"\n size=\"lg\"\n icon=\"chevron-right\"\n />\n </button>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./user_list_menu.js\"></script>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons'\nimport { mapState } from 'vuex'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronRight)\n\nconst UserListMenu = {\n props: [\n 'user'\n ],\n data () {\n return {}\n },\n components: {\n DialogModal,\n Popover\n },\n created () {\n this.$store.dispatch('fetchUserInLists', this.user.id)\n },\n computed: {\n ...mapState({\n allLists: state => state.lists.allLists\n }),\n inListsSet () {\n return new Set(this.user.inLists.map(x => x.id))\n },\n lists () {\n if (!this.user.inLists) return []\n return this.allLists.map(list => ({\n ...list,\n inList: this.inListsSet.has(list.id)\n }))\n }\n },\n methods: {\n toggleList (listId) {\n if (this.inListsSet.has(listId)) {\n this.$store.dispatch('removeListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\n })\n } else {\n this.$store.dispatch('addListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default UserListMenu\n","import { render } from \"./user_list_menu.vue?vue&type=template&id=aeea2640\"\nimport script from \"./user_list_menu.js?vue&type=script&lang=js\"\nexport * from \"./user_list_menu.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport Popover from '../popover/popover.vue'\nimport UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisV\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisV\n)\n\nconst AccountActions = {\n props: [\n 'user', 'relationship'\n ],\n data () {\n return {\n showingConfirmBlock: false,\n showingConfirmRemoveFollower: false\n }\n },\n components: {\n ProgressButton,\n Popover,\n UserListMenu,\n ConfirmModal\n },\n methods: {\n showConfirmBlock () {\n this.showingConfirmBlock = true\n },\n hideConfirmBlock () {\n this.showingConfirmBlock = false\n },\n showConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = true\n },\n hideConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = false\n },\n showRepeats () {\n this.$store.dispatch('showReblogs', this.user.id)\n },\n hideRepeats () {\n this.$store.dispatch('hideReblogs', this.user.id)\n },\n blockUser () {\n if (!this.shouldConfirmBlock) {\n this.doBlockUser()\n } else {\n this.showConfirmBlock()\n }\n },\n doBlockUser () {\n this.$store.dispatch('blockUser', this.user.id)\n this.hideConfirmBlock()\n },\n unblockUser () {\n this.$store.dispatch('unblockUser', this.user.id)\n },\n removeUserFromFollowers () {\n if (!this.shouldConfirmRemoveUserFromFollowers) {\n this.doRemoveUserFromFollowers()\n } else {\n this.showConfirmRemoveUserFromFollowers()\n }\n },\n doRemoveUserFromFollowers () {\n this.$store.dispatch('removeUserFromFollowers', this.user.id)\n this.hideConfirmRemoveUserFromFollowers()\n },\n reportUser () {\n this.$store.dispatch('openUserReportingModal', { userId: this.user.id })\n },\n openChat () {\n this.$router.push({\n name: 'chat',\n params: { username: this.$store.state.users.currentUser.screen_name, recipient_id: this.user.id }\n })\n }\n },\n computed: {\n shouldConfirmBlock () {\n return this.$store.getters.mergedConfig.modalOnBlock\n },\n shouldConfirmRemoveUserFromFollowers () {\n return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers\n },\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable\n })\n }\n}\n\nexport default AccountActions\n","import { render } from \"./account_actions.vue?vue&type=template&id=2d1f537d\"\nimport script from \"./account_actions.js?vue&type=script&lang=js\"\nexport * from \"./account_actions.js?vue&type=script&lang=js\"\n\nimport \"./account_actions.vue?vue&type=style&index=0&id=2d1f537d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"user-note\"\n >\n <div class=\"heading\">\n <span>{{ $t('user_card.note') }}</span>\n <div class=\"buttons\">\n <button\n v-show=\"!editing && editable\"\n class=\"button-default btn\"\n @click=\"startEditing\"\n >\n {{ $t('user_card.edit_note') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"finalizeEditing\"\n >\n {{ $t('user_card.edit_note_apply') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"cancelEditing\"\n >\n {{ $t('user_card.edit_note_cancel') }}\n </button>\n </div>\n </div>\n <textarea\n v-show=\"editing\"\n v-model=\"localNote\"\n class=\"note-text\"\n />\n <span\n v-show=\"!editing\"\n class=\"note-text\"\n :class=\"{ '-blank': !relationship.note }\"\n >\n {{ relationship.note || $t('user_card.note_blank') }}\n </span>\n </div>\n</template>\n\n<script src=\"./user_note.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n</style>\n","const UserNote = {\n props: {\n user: Object,\n relationship: Object,\n editable: Boolean\n },\n data () {\n return {\n localNote: '',\n editing: false,\n frozen: false\n }\n },\n computed: {\n shouldShow () {\n return this.relationship.note || this.editing\n }\n },\n methods: {\n startEditing () {\n this.localNote = this.relationship.note\n this.editing = true\n },\n cancelEditing () {\n this.editing = false\n },\n finalizeEditing () {\n this.frozen = true\n\n this.$store.dispatch('editUserNote', {\n id: this.user.id,\n comment: this.localNote\n })\n .then(() => {\n this.frozen = false\n this.editing = false\n })\n .catch(() => {\n this.frozen = false\n })\n }\n }\n}\n\nexport default UserNote\n","import { render } from \"./user_note.vue?vue&type=template&id=3c543a1e\"\nimport script from \"./user_note.js?vue&type=script&lang=js\"\nexport * from \"./user_note.js?vue&type=script&lang=js\"\n\nimport \"./user_note.vue?vue&type=style&index=0&id=3c543a1e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { unitToSeconds } from 'src/services/date_utils/date_utils.js'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\nimport ModerationTools from '../moderation_tools/moderation_tools.vue'\nimport AccountActions from '../account_actions/account_actions.vue'\nimport UserNote from '../user_note/user_note.vue'\nimport Select from '../select/select.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBell,\n faRss,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRss,\n faBell,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n)\n\nexport default {\n props: [\n 'userId',\n 'switcher',\n 'selected',\n 'hideBio',\n 'rounded',\n 'bordered',\n 'avatarAction', // default - open profile, 'zoom' - zoom, function - call function\n 'onClose',\n 'hasNoteEditor'\n ],\n data () {\n return {\n followRequestInProgress: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n showingConfirmMute: false,\n muteExpiryAmount: 0,\n muteExpiryUnit: 'minutes'\n }\n },\n created () {\n this.$store.dispatch('fetchUserRelationship', this.user.id)\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n classes () {\n return [{\n '-rounded-t': this.rounded === 'top', // set border-top-left-radius and border-top-right-radius\n '-rounded': this.rounded === true, // set border-radius for all sides\n '-bordered': this.bordered === true, // set border for all sides\n '-popover': !!this.onClose // set popover rounding\n }]\n },\n style () {\n return {\n backgroundImage: [\n 'linear-gradient(to bottom, var(--profileTint), var(--profileTint))',\n `url(${this.user.cover_photo})`\n ].join(', ')\n }\n },\n isOtherUser () {\n return this.user.id !== this.$store.state.users.currentUser.id\n },\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n dailyAvg () {\n const days = Math.ceil((new Date() - new Date(this.user.created_at)) / (60 * 60 * 24 * 1000))\n return Math.round(this.user.statuses_count / days)\n },\n userHighlightType: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return (data && data.type) || 'disabled'\n },\n set (type) {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n if (type !== 'disabled') {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: (data && data.color) || '#FFFFFF', type })\n } else {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: undefined })\n }\n },\n ...mapGetters(['mergedConfig'])\n },\n userHighlightColor: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return data && data.color\n },\n set (color) {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color })\n }\n },\n visibleRole () {\n const rights = this.user.rights\n if (!rights) { return }\n const validRole = rights.admin || rights.moderator\n const roleTitle = rights.admin ? 'admin' : 'moderator'\n return validRole && roleTitle\n },\n hideFollowsCount () {\n return this.isOtherUser && this.user.hide_follows_count\n },\n hideFollowersCount () {\n return this.isOtherUser && this.user.hide_followers_count\n },\n showModerationMenu () {\n const privileges = this.loggedIn.privileges\n return this.loggedIn.role === 'admin' || privileges.includes('users_manage_activation_state') || privileges.includes('users_delete') || privileges.includes('users_manage_tags')\n },\n hasNote () {\n return this.relationship.note\n },\n supportsNote () {\n return 'note' in this.relationship\n },\n shouldConfirmMute () {\n return this.mergedConfig.modalOnMute\n },\n muteExpiryUnits () {\n return ['minutes', 'hours', 'days']\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n UserAvatar,\n RemoteFollow,\n ModerationTools,\n AccountActions,\n ProgressButton,\n FollowButton,\n Select,\n RichContent,\n UserLink,\n UserNote,\n ConfirmModal\n },\n methods: {\n showConfirmMute () {\n this.showingConfirmMute = true\n },\n hideConfirmMute () {\n this.showingConfirmMute = false\n },\n muteUser () {\n if (!this.shouldConfirmMute) {\n this.doMuteUser()\n } else {\n this.showConfirmMute()\n }\n },\n doMuteUser () {\n this.$store.dispatch('muteUser', {\n id: this.user.id,\n expiresIn: this.shouldConfirmMute ? unitToSeconds(this.muteExpiryUnit, this.muteExpiryAmount) : 0\n })\n this.hideConfirmMute()\n },\n unmuteUser () {\n this.$store.dispatch('unmuteUser', this.user.id)\n },\n subscribeUser () {\n return this.$store.dispatch('subscribeUser', this.user.id)\n },\n unsubscribeUser () {\n return this.$store.dispatch('unsubscribeUser', this.user.id)\n },\n setProfileView (v) {\n if (this.switcher) {\n const store = this.$store\n store.commit('setProfileView', { v })\n }\n },\n linkClicked ({ target }) {\n if (target.tagName === 'SPAN') {\n target = target.parentNode\n }\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n zoomAvatar () {\n const attachment = {\n url: this.user.profile_image_url_original,\n mimetype: 'image'\n }\n this.$store.dispatch('setMedia', [attachment])\n this.$store.dispatch('setCurrentMedia', attachment)\n },\n mentionUser () {\n this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })\n },\n onAvatarClickHandler (e) {\n if (this.onAvatarClick) {\n e.preventDefault()\n this.onAvatarClick()\n }\n }\n }\n}\n","import { render } from \"./user_card.vue?vue&type=template&id=bc098958\"\nimport script from \"./user_card.js?vue&type=script&lang=js\"\nexport * from \"./user_card.js?vue&type=script&lang=js\"\n\nimport \"./user_card.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <router-link\n :title=\"user.screen_name_ui\"\n :to=\"userProfileLink(user)\"\n >\n {{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator\n :user=\"user\"\n />\n </router-link>\n</template>\n\n<script>\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst UserLink = {\n props: {\n user: Object,\n at: {\n type: Boolean,\n default: true\n }\n },\n components: {\n UnicodeDomainIndicator\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n }\n }\n}\n\nexport default UserLink\n</script>\n","import { render } from \"./user_link.vue?vue&type=template&id=2cae9070\"\nimport script from \"./user_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserCard from '../user_card/user_card.vue'\nimport { defineAsyncComponent } from 'vue'\n\nconst UserPopover = {\n name: 'UserPopover',\n props: [\n 'userId', 'overlayCenters', 'disabled', 'overlayCentersSelector'\n ],\n components: {\n UserCard,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n computed: {\n userPopoverAvatarAction () {\n return this.$store.getters.mergedConfig.userPopoverAvatarAction\n },\n userPopoverOverlay () {\n return this.$store.getters.mergedConfig.userPopoverOverlay\n }\n }\n}\n\nexport default UserPopover\n","import { render } from \"./user_popover.vue?vue&type=template&id=6d5beeb8\"\nimport script from \"./user_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_popover.vue?vue&type=style&index=0&id=6d5beeb8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n popover-class=\"popover-default user-popover\"\n :overlay-centers-selector=\"overlayCentersSelector || '.user-info .Avatar'\"\n :overlay-centers=\"overlayCenters && userPopoverOverlay\"\n :disabled=\"disabled\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content=\"{close}\">\n <UserCard\n class=\"user-popover\"\n :user-id=\"userId\"\n :hide-bio=\"true\"\n :avatar-action=\"userPopoverAvatarAction == 'close' ? close : userPopoverAvatarAction\"\n :on-close=\"close\"\n />\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n/* stylelint-disable block-no-empty */\n.user-popover.popover {\n}\n/* stylelint-enable block-no-empty */\n\n</style>\n","\nconst VideoAttachment = {\n props: ['attachment', 'controls'],\n data () {\n return {\n blocksSuspend: false,\n // Start from true because removing \"loop\" property seems buggy in Vue\n hasAudio: true\n }\n },\n computed: {\n loopVideo () {\n if (this.$store.getters.mergedConfig.loopVideoSilentOnly) {\n return !this.hasAudio\n }\n return this.$store.getters.mergedConfig.loopVideo\n }\n },\n methods: {\n onPlaying (e) {\n this.setHasAudio(e)\n if (this.loopVideo) {\n this.$emit('play', { looping: true })\n return\n }\n this.$emit('play')\n },\n onPaused (e) {\n this.$emit('pause')\n },\n setHasAudio (e) {\n const target = e.srcElement || e.target\n // If hasAudio is false, we've already marked this video to not have audio,\n // a video can't gain audio out of nowhere so don't bother checking again.\n if (!this.hasAudio) return\n if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n // non-zero if video has audio track\n if (target.webkitAudioDecodedByteCount > 0) return\n }\n if (typeof target.mozHasAudio !== 'undefined') {\n // true if video has audio track\n if (target.mozHasAudio) return\n }\n if (typeof target.audioTracks !== 'undefined') {\n if (target.audioTracks.length > 0) return\n }\n this.hasAudio = false\n }\n }\n}\n\nexport default VideoAttachment\n","import { render } from \"./video_attachment.vue?vue&type=template&id=dda2841a\"\nimport script from \"./video_attachment.js?vue&type=script&lang=js\"\nexport * from \"./video_attachment.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <video\n class=\"video\"\n preload=\"metadata\"\n :src=\"attachment.url\"\n :loop=\"loopVideo\"\n :controls=\"controls\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n playsinline\n @playing=\"onPlaying\"\n @pause=\"onPaused\"\n />\n</template>\n\n<script src=\"./video_attachment.js\"></script>\n","var map = {\n\t\"./ar.json\": [\n\t\t36224,\n\t\t7808\n\t],\n\t\"./ca.json\": [\n\t\t49394,\n\t\t6234\n\t],\n\t\"./cs.json\": [\n\t\t87436,\n\t\t7433\n\t],\n\t\"./de.json\": [\n\t\t25195,\n\t\t9459\n\t],\n\t\"./en.json\": [\n\t\t88797\n\t],\n\t\"./eo.json\": [\n\t\t97898,\n\t\t4646\n\t],\n\t\"./es.json\": [\n\t\t98559,\n\t\t3968\n\t],\n\t\"./et.json\": [\n\t\t13230,\n\t\t4451\n\t],\n\t\"./eu.json\": [\n\t\t84826,\n\t\t4542\n\t],\n\t\"./fa.json\": [\n\t\t52006,\n\t\t2953\n\t],\n\t\"./fi.json\": [\n\t\t70823,\n\t\t9738\n\t],\n\t\"./fr.json\": [\n\t\t61341,\n\t\t3746\n\t],\n\t\"./ga.json\": [\n\t\t41647,\n\t\t830\n\t],\n\t\"./he.json\": [\n\t\t92215,\n\t\t379\n\t],\n\t\"./hu.json\": [\n\t\t95028,\n\t\t5494\n\t],\n\t\"./id.json\": [\n\t\t62263,\n\t\t2513\n\t],\n\t\"./it.json\": [\n\t\t2533,\n\t\t1159\n\t],\n\t\"./ja_easy.json\": [\n\t\t8439,\n\t\t8714\n\t],\n\t\"./ja_pedantic.json\": [\n\t\t22838,\n\t\t325\n\t],\n\t\"./ko.json\": [\n\t\t10707,\n\t\t9670\n\t],\n\t\"./nb.json\": [\n\t\t72358,\n\t\t7845\n\t],\n\t\"./nl.json\": [\n\t\t49922,\n\t\t6256\n\t],\n\t\"./oc.json\": [\n\t\t47297,\n\t\t617\n\t],\n\t\"./pl.json\": [\n\t\t82098,\n\t\t5571\n\t],\n\t\"./pt.json\": [\n\t\t94465,\n\t\t4047\n\t],\n\t\"./ro.json\": [\n\t\t64367,\n\t\t6342\n\t],\n\t\"./ru.json\": [\n\t\t73289,\n\t\t5964\n\t],\n\t\"./sk.json\": [\n\t\t31478,\n\t\t1547\n\t],\n\t\"./te.json\": [\n\t\t32781,\n\t\t2044\n\t],\n\t\"./uk.json\": [\n\t\t8411,\n\t\t5253\n\t],\n\t\"./vi.json\": [\n\t\t6294,\n\t\t4975\n\t],\n\t\"./zh.json\": [\n\t\t4425,\n\t\t5929\n\t],\n\t\"./zh_Hant.json\": [\n\t\t37644,\n\t\t6544\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 27650;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"50\":\"emoji-annotations/en_GB-json\",\"227\":\"emoji-annotations/ha-json\",\"278\":\"emoji-annotations/kn-json\",\"313\":\"emoji-annotations/tg-json\",\"325\":\"i18n/ja_pedantic-json\",\"346\":\"emoji-annotations/rw-json\",\"379\":\"i18n/he-json\",\"420\":\"emoji-annotations/fi-json\",\"457\":\"emoji-annotations/zh-json\",\"577\":\"emoji-annotations/en_001-json\",\"617\":\"i18n/oc-json\",\"625\":\"emoji-annotations/so-json\",\"678\":\"emoji-annotations/ps-json\",\"786\":\"emoji-annotations/xh-json\",\"830\":\"i18n/ga-json\",\"1012\":\"emoji-annotations/or-json\",\"1044\":\"emoji-annotations/zh_Hant_HK-json\",\"1056\":\"emoji-annotations/uz-json\",\"1095\":\"emoji-annotations/pl-json\",\"1159\":\"i18n/it-json\",\"1162\":\"emoji-annotations/ccp-json\",\"1236\":\"emoji-annotations/fil-json\",\"1290\":\"emoji-annotations/ja-json\",\"1404\":\"emoji-annotations/km-json\",\"1452\":\"emoji-annotations/yue-json\",\"1546\":\"emoji-annotations/pt_PT-json\",\"1547\":\"i18n/sk-json\",\"1553\":\"emoji-annotations/sl-json\",\"1584\":\"emoji-annotations/to-json\",\"1596\":\"emoji-annotations/da-json\",\"1613\":\"emoji-annotations/mai-json\",\"1780\":\"emoji-annotations/tk-json\",\"1790\":\"emoji-annotations/dsb-json\",\"1821\":\"emoji-annotations/fr_CA-json\",\"1911\":\"emoji-annotations/mr-json\",\"1959\":\"emoji-annotations/su-json\",\"2044\":\"i18n/te-json\",\"2223\":\"emoji-annotations/fr-json\",\"2243\":\"emoji-annotations/sa-json\",\"2342\":\"emoji-annotations/az-json\",\"2350\":\"emoji-annotations/sk-json\",\"2397\":\"emoji-annotations/kl-json\",\"2479\":\"emoji-annotations/jv-json\",\"2513\":\"i18n/id-json\",\"2569\":\"emoji-annotations/tt-json\",\"2599\":\"emoji-annotations/kok-json\",\"2656\":\"emoji-annotations/ckb-json\",\"2685\":\"emoji-annotations/ml-json\",\"2699\":\"emoji-annotations/es_MX-json\",\"2767\":\"emoji-annotations/zh_Hant-json\",\"2861\":\"emoji-annotations/hr-json\",\"2873\":\"emoji-annotations/kk-json\",\"2874\":\"emoji-annotations/sc-json\",\"2883\":\"emoji-annotations/ku-json\",\"2953\":\"i18n/fa-json\",\"2966\":\"emoji-annotations/ko-json\",\"2992\":\"emoji-annotations/eu-json\",\"3056\":\"emoji-annotations/hi_Latn-json\",\"3241\":\"emoji-annotations/sv-json\",\"3276\":\"emoji-annotations/et-json\",\"3313\":\"emoji-annotations/es_US-json\",\"3377\":\"emoji-annotations/as-json\",\"3568\":\"emoji-annotations/ti-json\",\"3687\":\"emoji\",\"3746\":\"i18n/fr-json\",\"3887\":\"emoji-annotations/sr-json\",\"3951\":\"emoji-annotations/th-json\",\"3968\":\"i18n/es-json\",\"3974\":\"emoji-annotations/bg-json\",\"3994\":\"emoji-annotations/sw_KE-json\",\"4047\":\"i18n/pt-json\",\"4209\":\"emoji-annotations/doi-json\",\"4354\":\"emoji-annotations/si-json\",\"4368\":\"emoji-annotations/sq-json\",\"4424\":\"emoji-annotations/yue_Hans-json\",\"4451\":\"i18n/et-json\",\"4542\":\"i18n/eu-json\",\"4571\":\"emoji-annotations/ga-json\",\"4646\":\"i18n/eo-json\",\"4691\":\"emoji-annotations/ca-json\",\"4710\":\"emoji-annotations/cs-json\",\"4718\":\"emoji-annotations/mn-json\",\"4770\":\"emoji-annotations/lb-json\",\"4785\":\"emoji-annotations/ky-json\",\"4786\":\"emoji-annotations/te-json\",\"4879\":\"emoji-annotations/en_CA-json\",\"4902\":\"emoji-annotations/hu-json\",\"4975\":\"i18n/vi-json\",\"5041\":\"emoji-annotations/pt-json\",\"5104\":\"emoji-annotations/pcm-json\",\"5115\":\"emoji-annotations/sr_Latn_BA-json\",\"5119\":\"emoji-annotations/am-json\",\"5224\":\"emoji-annotations/vi-json\",\"5253\":\"i18n/uk-json\",\"5304\":\"emoji-annotations/ha_NE-json\",\"5401\":\"emoji-annotations/mni-json\",\"5494\":\"i18n/hu-json\",\"5521\":\"emoji-annotations/fa-json\",\"5548\":\"emoji-annotations/he-json\",\"5571\":\"i18n/pl-json\",\"5728\":\"emoji-annotations/en-json\",\"5887\":\"emoji-annotations/rm-json\",\"5929\":\"i18n/zh-json\",\"5964\":\"i18n/ru-json\",\"5968\":\"emoji-annotations/hi-json\",\"6060\":\"emoji-annotations/sr_Cyrl_BA-json\",\"6068\":\"emoji-annotations/ka-json\",\"6116\":\"emoji-annotations/gd-json\",\"6126\":\"emoji-annotations/gl-json\",\"6148\":\"emoji-annotations/br-json\",\"6226\":\"emoji-annotations/de-json\",\"6234\":\"i18n/ca-json\",\"6256\":\"i18n/nl-json\",\"6272\":\"emoji-annotations/cy-json\",\"6342\":\"i18n/ro-json\",\"6344\":\"emoji-annotations/hy-json\",\"6355\":\"emoji-annotations/af-json\",\"6544\":\"i18n/zh_Hant-json\",\"6701\":\"emoji-annotations/mi-json\",\"6773\":\"emoji-annotations/nl-json\",\"6790\":\"emoji-annotations/my-json\",\"6797\":\"emoji-annotations/ur-json\",\"6826\":\"emoji-annotations/sd-json\",\"6831\":\"emoji-annotations/es-json\",\"6869\":\"emoji-annotations/chr-json\",\"6936\":\"emoji-annotations/ia-json\",\"6946\":\"emoji-annotations/pa-json\",\"7164\":\"emoji-annotations/de_CH-json\",\"7169\":\"emoji-annotations/lt-json\",\"7261\":\"emoji-annotations/gu-json\",\"7300\":\"emoji-annotations/is-json\",\"7303\":\"emoji-annotations/wo-json\",\"7304\":\"emoji-annotations/be-json\",\"7360\":\"emoji-annotations/ar_SA-json\",\"7433\":\"i18n/cs-json\",\"7464\":\"emoji-annotations/lo-json\",\"7569\":\"emoji-annotations/ast-json\",\"7585\":\"emoji-annotations/sw-json\",\"7808\":\"i18n/ar-json\",\"7845\":\"i18n/nb-json\",\"7855\":\"emoji-annotations/sat-json\",\"7879\":\"emoji-annotations/el-json\",\"7897\":\"emoji-annotations/ta-json\",\"8015\":\"emoji-annotations/hsb-json\",\"8031\":\"emoji-annotations/qu-json\",\"8134\":\"emoji-annotations/bs-json\",\"8395\":\"emoji-annotations/ru-json\",\"8681\":\"emoji-annotations/sr_Latn-json\",\"8714\":\"i18n/ja_easy-json\",\"8732\":\"emoji-annotations/yo-json\",\"8873\":\"emoji-annotations/es_419-json\",\"8898\":\"emoji-annotations/lv-json\",\"8970\":\"emoji-annotations/it-json\",\"8988\":\"emoji-annotations/en_IN-json\",\"8995\":\"emoji-annotations/fo-json\",\"9064\":\"emoji-annotations/bn-json\",\"9319\":\"emoji-annotations/zu-json\",\"9360\":\"emoji-annotations/en_AU-json\",\"9377\":\"emoji-annotations/ne-json\",\"9399\":\"emoji-annotations/mt-json\",\"9414\":\"emoji-annotations/nn-json\",\"9459\":\"i18n/de-json\",\"9465\":\"emoji-annotations/id-json\",\"9670\":\"i18n/ko-json\",\"9738\":\"i18n/fi-json\",\"9757\":\"emoji-annotations/ug-json\",\"9780\":\"emoji-annotations/kab-json\",\"9790\":\"emoji-annotations/ceb-json\",\"9864\":\"emoji-annotations/ro-json\",\"9871\":\"emoji-annotations/uk-json\",\"9873\":\"emoji-annotations/ar-json\",\"9895\":\"emoji-annotations/ig-json\",\"9921\":\"emoji-annotations/mk-json\",\"9924\":\"emoji-annotations/ms-json\",\"9926\":\"emoji-annotations/yo_BJ-json\",\"9978\":\"emoji-annotations/tr-json\",\"9979\":\"emoji-annotations/no-json\",\"9994\":\"emoji-annotations/pa_Arab-json\"}[chunkId] || chunkId) + \".\" + {\"48\":\"d7e479b200a6c89c4958\",\"50\":\"bd687f904492facc81d1\",\"159\":\"3a9274574f1e33801c4a\",\"227\":\"2a08912b38925c10f970\",\"278\":\"efdac8ac0cb00991ba1e\",\"313\":\"9647f559a4477d7d8e96\",\"325\":\"b52fa70f0bf89ae01cfb\",\"346\":\"031838c5374676191131\",\"379\":\"03c5d271a4034de06e6f\",\"420\":\"0f254bb4b0faaba4abcc\",\"457\":\"e42a28127d5c1aff6c85\",\"577\":\"72d8c47269350f59aa9f\",\"617\":\"4f52bf1b6e3213acc33c\",\"625\":\"f75abd16637c8924c075\",\"678\":\"a0d9eea5b81bcad11e64\",\"786\":\"21e88c05ad3113dfc7f2\",\"830\":\"3f1981817977a16f1d7e\",\"1012\":\"b007c2f6f92dcc95efac\",\"1044\":\"7eee03c705347a21c612\",\"1056\":\"ac43f4c54d4587324a20\",\"1095\":\"e9e8f1ed84dc6c169516\",\"1159\":\"99a21d5c98376af17141\",\"1162\":\"02836537ffe2b02291cb\",\"1236\":\"4fca833f178d1b889b69\",\"1290\":\"0bd51f8c40c106355b0e\",\"1404\":\"9bc922b2e0faa64b4c53\",\"1452\":\"15102c0ddfdf19bdfb4c\",\"1546\":\"c381b13e323f91b0e6b3\",\"1547\":\"d8d0eba80f94e6f55145\",\"1553\":\"a40c5548da34fce6f1d0\",\"1584\":\"50ac37d101caaf592c94\",\"1596\":\"8d074e27df71edafc543\",\"1613\":\"302386b3358f4d34f9c8\",\"1780\":\"23a9a6229829921704ad\",\"1790\":\"7635686ffd8d62264466\",\"1821\":\"59ed6b59e2ca68707292\",\"1911\":\"cb0a87d9aabf8a52161d\",\"1959\":\"daff15251020cbecea7d\",\"2044\":\"ce6db28261b2f824064f\",\"2223\":\"da49ed0d1a6622fe1c67\",\"2243\":\"21b06234a08c7469ccb4\",\"2342\":\"9a32f2941d9c4d1f834c\",\"2350\":\"5d96bdb4da82655d0314\",\"2397\":\"87ab8661b4bdecd09faf\",\"2479\":\"1c8d5ffcff22b46b6214\",\"2513\":\"3e42564ce7a3a847ecb0\",\"2569\":\"4c089389ba9983ec8ef7\",\"2599\":\"116e4f72db3bfb846233\",\"2656\":\"13dc83db1e15aa76051a\",\"2685\":\"3f2902a84240faff1b48\",\"2699\":\"ee359d4b611fdb1aeb33\",\"2767\":\"9cbb765c181d443828a9\",\"2861\":\"fe847ade1f18a60e513c\",\"2873\":\"a20b59d47bdfe99786ad\",\"2874\":\"c84c9c47d2e104c43e4c\",\"2883\":\"2173ed87f8d7372ee209\",\"2953\":\"a19100f6a5a9431e2adb\",\"2966\":\"d175900fe48f48ce87c8\",\"2992\":\"931b429f5fcc141549a5\",\"3056\":\"3cb73c456f31261f1908\",\"3241\":\"8b0374cbca3a77519876\",\"3276\":\"c42e3f186a55ecb061cd\",\"3313\":\"280bdb036dfd651d079a\",\"3377\":\"34cf67edc1cecd195738\",\"3568\":\"5b173bd33bb960be805b\",\"3687\":\"33eab91b64f59431137d\",\"3746\":\"36ef21ccb1203d3e65ae\",\"3887\":\"e29a20e59a708df0c6a8\",\"3951\":\"34709bae223bb9d2587c\",\"3968\":\"4a302899a65e1f67d8a2\",\"3974\":\"7c69c52572a7bf87e1db\",\"3994\":\"f3563cbeac1c158563d5\",\"4047\":\"3fc5593e030268bcd291\",\"4209\":\"7841c3f3ceb4e3da0bd1\",\"4354\":\"841b356da03623c10dbf\",\"4368\":\"bcf154ed8a6138aa089c\",\"4424\":\"cc60bb10d32fab3d8207\",\"4451\":\"580b101d6bb83a8aee75\",\"4542\":\"d2eab39b0427995fc314\",\"4571\":\"cb3f9e613a8c445aea23\",\"4646\":\"d81690d5be30b23e516b\",\"4691\":\"ce029e860b10b242c6a5\",\"4710\":\"48d8bba230dc9fe6b3dc\",\"4718\":\"764169f1168d0432640f\",\"4770\":\"499c526f3a653618ea9b\",\"4785\":\"310bda579c819eda9472\",\"4786\":\"8a69a10f62cdf626244e\",\"4879\":\"5de965778a6b8a5a4bb4\",\"4902\":\"1faf52040deda872b416\",\"4975\":\"703c1e731be6e857bbf3\",\"5041\":\"2b2512ee44291bdb2ae7\",\"5104\":\"eac3a5ad0b4b5b33289d\",\"5115\":\"72933405032b81344754\",\"5119\":\"94388548f7c18233fec3\",\"5224\":\"f6a364b2add7f8c8bc67\",\"5253\":\"003908af9b15becdd382\",\"5304\":\"e4855d92aaccfdd6ba57\",\"5401\":\"7db7f76ab1ce34e3683d\",\"5494\":\"0487899ca7a7a8505ed8\",\"5521\":\"819c7f263c8594ccf4fa\",\"5548\":\"a3d7631f32182b0955a2\",\"5571\":\"c963247822381b05579b\",\"5728\":\"6c3947f7c49c3952084d\",\"5887\":\"985d4934f386fd05a75c\",\"5929\":\"63e4c9fe0197374a5dac\",\"5948\":\"2b7b4e97487f2539eb44\",\"5964\":\"b913eb7f7e9f0c642438\",\"5968\":\"04bc5f73dc2169def97e\",\"6060\":\"83c7c64b9696ae2339f2\",\"6068\":\"567e7b051d90a37003f3\",\"6116\":\"e3d0aea3725be774ad81\",\"6126\":\"ce89036f0ae72224c994\",\"6148\":\"c7175423d8965ed10bae\",\"6226\":\"e1443c01a191af1665e1\",\"6234\":\"1eb24bc001efa3c0627f\",\"6256\":\"3fb9758b10c29434b613\",\"6272\":\"e09dd13da5ad56530ead\",\"6342\":\"3fd9977ed1c1413059ae\",\"6344\":\"2d819f7faabfeba8457f\",\"6355\":\"96c988285a6a2cce6246\",\"6464\":\"fea96fa80a7373e4e5f8\",\"6544\":\"bfa569654a5cd74767ce\",\"6701\":\"9efe6f146ecd8987f80a\",\"6773\":\"52f4b93b8fa5e22cb585\",\"6790\":\"8e7dd1485813d15bba7e\",\"6797\":\"983c02109444c883a18f\",\"6826\":\"8f2a6a06dc3cf185f79d\",\"6831\":\"f593b0dc2367a9d7fb30\",\"6869\":\"e7e542ab5a74167dec10\",\"6936\":\"8e8365e2bf41779e2beb\",\"6946\":\"7d60d69762a108270669\",\"7164\":\"b4a5891ea2f38d616ec0\",\"7169\":\"ced4d5e70edc60127df6\",\"7261\":\"8a899f364cf260376905\",\"7300\":\"62e220c65215b034533d\",\"7303\":\"e0d689e22cda0dd77e9a\",\"7304\":\"f92f80669873a4100c69\",\"7360\":\"4a6f4402931a867070f0\",\"7433\":\"5eedbe9f7084c349fbe8\",\"7464\":\"ecb06d61465a355b8157\",\"7569\":\"7e4da8cb7e539c19a9b9\",\"7585\":\"d5f350641b9cbcc0e126\",\"7808\":\"d09609af3224232857d6\",\"7845\":\"a54af3b1f47d576ad4aa\",\"7855\":\"71e92700b2aaca8e021c\",\"7879\":\"b36610f2ea16d56c2314\",\"7897\":\"675cc6c7607449d4a91b\",\"8015\":\"438721731b4171bc6fc3\",\"8031\":\"55f4df57e71076dbad9f\",\"8134\":\"48ef42da1c7976cf083c\",\"8395\":\"a81d0df34460837ccacc\",\"8681\":\"ff27d1f455bf2afb8d70\",\"8714\":\"1d5ea7e755b066ac2cdd\",\"8732\":\"ea1150d6bc360dd86f2e\",\"8873\":\"d81991295392b6ed83bb\",\"8898\":\"5600c2eb6d59fa0aa2e2\",\"8970\":\"9c1758f4fd3391f7f61a\",\"8988\":\"002faa48c09121928fca\",\"8995\":\"9b060e8009b3a8be4597\",\"9064\":\"657aac057f36ad06c58d\",\"9114\":\"e761a1c6846fea99aaf1\",\"9319\":\"e0cb7cd3890583fd0f6d\",\"9360\":\"33aac9bbd887273a34b1\",\"9377\":\"a0118dca2096a101b8e8\",\"9399\":\"3ddf7dbc114adf90c500\",\"9414\":\"7293cd5d7205681cf48c\",\"9459\":\"bfa48615ac92f87ff37a\",\"9465\":\"55f83c46d753b0b69330\",\"9670\":\"4bd28b26a7390a09afc2\",\"9738\":\"d1934c18f12d80493ab1\",\"9757\":\"bf768bd32e9ff02b0a8a\",\"9780\":\"1a2de4774f4ddc2b51dd\",\"9790\":\"9db0336f168aa77ee395\",\"9864\":\"cb62f86ce78c94d1e813\",\"9871\":\"af110c8eef232638fc4d\",\"9873\":\"5527466d349f2954d49b\",\"9895\":\"f19fa5fe3582463ba73c\",\"9921\":\"a254cabb8570419cc426\",\"9924\":\"272ee4735aabc37015dd\",\"9926\":\"650318c25fe4da92bad8\",\"9978\":\"6462e8cfd5006cf5b6cf\",\"9979\":\"22bdbbc77cc3c14ada58\",\"9994\":\"5ae021308b1c5f6dd8a7\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"159\":\"1d523a00378ebd68c5b3\",\"5948\":\"06d2a0d84620cba6a4fb\",\"6464\":\"169260b661120cc50815\",\"9114\":\"8def3b2b7fe70b3b3712\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"159\":1,\"5948\":1,\"6464\":1,\"9114\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpleroma_fe\"] = self[\"webpackChunkpleroma_fe\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [2724], () => (__webpack_require__(43002)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","ctx","normalize","_normalize","interpolate","_interpolate","named","_named","list","_list","plural","_plural","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","data","emojiCurry","suggestEmoji","emoji","usersCurry","store","suggestUsers","input","nameKeywordLocalizer","firstChar","emojis","noPrefix","toLowerCase","substr","filter","names","concat","keywords","kw","match","length","k","score","Math","max","name","imageUrl","startsWith","displayText","sort","a","b","alphabetically","dispatch","state","suggestions","previousQuery","timeout","cancelUserSearch","debounceUserSearch","query","reject","setTimeout","userSearch","clearTimeout","includes","newSuggestions","users","user","screen_name","slice","aScore","bScore","screen_name_ui","detailText","profile_image_url_original","replacement","getTagName","tag","result","exec","getAttrs","innertag","substring","replace","RegExp","trim","attrs","Array","from","matchAll","v","fromEntries","attrKey","processTextForEmoji","text","processor","buffer","textBuffer","i","char","next","found","shortcode","push","class","props","url","required","type","String","content","default","methods","onClick","this","link","generateTagLink","$router","window","open","_createElementBlock","_hoisted_1","_createElementVNode","href","_ctx","target","innerHTML","components","MentionsLine","HashtagLink","html","attentions","handleLinks","Boolean","greentext","render","preProcessPerLine","newHtml","currentMentions","lastSpacing","lastTags","writtenMentions","invisibleMentions","writtenTags","mentionIndex","tagsIndex","encounteredTextReverse","pass1","emptyElements","Set","levels","tagBuffer","getCurrentBuffer","flushText","handleSelfClosing","handleOpen","curBuf","newLevel","handleClose","currentTag","pop","tagFull","tagName","has","convertHtmlToTree","processItem","item","index","array","what","emptyText","isArray","opener","children","closer","Tag","fullAttrs","mentionsLinePadding","linkData","getLinkData","notifying","some","statusnet_profile_url","MENTIONS_LIMIT","renderMention","undefined","pass2","reverse","processItemReverse","rel","renderHashtag","newChildren","event","$emit","textContent","stripTags","join","greentextHandle","lines","blockElements","linebreakElements","visualLineElements","values","nonEmptyElements","elem","allElements","level","flush","handleBr","unshift","shift","convertHtmlToLines","string","every","l","cleanedString","findFirstUsable","slots","findIndex","_","renderOnlyFocused","onSwitch","Function","activeTab","scrollableTabs","sideTabBar","bodyScrollLock","active","computed","activeIndex","slot","key","isActive","tabName","$slots","settingsModalVisible","settingsModalState","mapState","beforeUpdate","clickTab","preventDefault","setTab","Fragment","call","$refs","contents","scrollTop","tabs","classesTab","classesWrapper","image","disabled","label","icon","classes","fullHeight","renderSlot","specialJsonName","ja","languages","langCodeToJsonName","langCodeToCldrName","ensureFinalFallback","codes","codeList","loadLanguageFile","en","require","setLanguage","i18n","language","first","rest","locale","fallbackLocale","lang","messages","setLocaleMessage","EventTarget","EventTargetPolyfill","settingsModalLoaded","settingsModalTargetTab","settings","currentSaveStateNotice","noticeClearTimeout","notificationPermission","browserSupport","cssFilter","CSS","supports","layoutType","globalNotices","layoutHeight","lastTimeline","mutations","settingsSaved","success","error","errorData","setNotificationPermission","permission","setLayoutType","value","closeSettingsModal","togglePeekSettingsModal","openSettingsModal","setSettingsModalTargetTab","pushGlobalNotice","notice","removeGlobalNotice","n","setLayoutHeight","setLayoutWidth","layoutWidth","setLastTimeline","actions","setPageTitle","rootState","option","document","title","instance","commit","clearSettingsModalTargetTab","openSettingsModalTab","messageKey","messageArgs","newNotice","rootGetters","width","normalOrMobile","mergedConfig","thirdColumnMode","currentUser","SORTED_EMOJI_GROUP_IDS","REGIONAL_INDICATORS","start","A","codePointAt","res","end","letter","fromCodePoint","displayTextI18n","args","loadAnnotations","injectAnnotations","annotations","availableLangs","reduce","acc","cur","registrationOpen","server","textlimit","themeData","vapidPublicKey","alwaysShowSubjectInput","defaultAvatar","defaultBanner","background","collapseMessageWithSubject","useAtIcon","mentionLinkDisplay","mentionLinkShowTooltip","mentionLinkShowAvatar","mentionLinkFadeDomain","mentionLinkShowYous","mentionLinkBoldenYou","hideFilteredStatuses","hideMutedPosts","hideMutedThreads","hideWordFilteredPosts","hidePostStats","hideBotIndication","hideSitename","hideUserStats","muteBotStatuses","modalOnRepeat","modalOnUnfollow","modalOnBlock","modalOnMute","modalOnDelete","modalOnLogout","modalOnApproveFollow","modalOnDenyFollow","modalOnRemoveUserFromFollowers","loginMethod","logo","logoMargin","logoMask","logoLeft","disableUpdateNotification","minimalScopesMode","nsfwCensorImage","postContentType","redirectRootLogin","redirectRootNoLogin","scopeCopy","showFeaturesPanel","showInstanceSpecificPanel","sidebarRight","subjectLineBehavior","theme","virtualScrolling","sensitiveByDefault","conversationDisplay","conversationTreeAdvanced","conversationOtherRepliesButton","conversationTreeFadeAncestors","maxDepthInThread","customEmoji","customEmojiFetched","emojiFetched","unicodeEmojiAnnotations","pleromaBackend","postFormats","restrictedNicknames","safeDM","knownDomains","birthdayRequired","birthdayMinAge","shoutAvailable","pleromaChatMessagesAvailable","gopherAvailable","mediaProxyAvailable","suggestionsEnabled","suggestionsWeb","instanceSpecificPanelContent","tos","backendVersion","frontendVersion","pollsAvailable","pollLimits","max_options","max_option_chars","min_expiration","max_expiration","setInstanceOption","setKnownDomains","domains","setUnicodeEmojiAnnotations","getters","instanceDefaultConfig","instanceDefaultProperties","groupedCustomEmojis","packs","tags","packName","packsOf","forEach","packId","standardEmojiList","groupId","standardEmojiGroupList","instanceDomain","URL","hostname","remoteInteractionLink","endsWith","statusId","nickname","getStaticEmoji","slug","groups","symbols","console","warn","loadUnicodeEmojiData","langList","all","getCustomEmoji","fetch","ok","json","assign","caseInsensitiveStrCmp","la","lb","noPackLast","aNull","bNull","byPackThenByName","packOf","packOfA","packOfB","entries","image_url","setTheme","themeName","getPreset","config","customTheme","themeSource","source","themeEngineVersion","CURRENT_VERSION","applyTheme","fetchEmoji","getKnownDomains","apiService","credentials","emptyTl","userId","statuses","statusesObject","faves","visibleStatuses","visibleStatusesObject","newStatusCount","maxId","minId","minVisibleId","loading","followers","friends","flushMarker","emptyNotifications","desktopNotificationSilence","Number","POSITIVE_INFINITY","idStore","defaultState","allStatuses","allStatusesObject","conversationsObject","notifications","favorites","timelines","mentions","public","media","publicAndExternal","dms","bookmarks","mergeOrAdd","arr","obj","oldItem","attachments","splice","new","status","deleted","prepareStatus","sortById","seqA","seqB","isSeqA","isNaN","isSeqB","sortTimeline","timeline","addStatusToGlobalStorage","conversationId","statusnet_conversation_id","updateNotificationsMinMaxId","notification","addNewStatuses","showImmediately","noIdUpdate","pagination","timelineObject","minNew","maxNew","newer","older","addStatus","resultForCurrentTimeline","addToTimeline","visibility","processors","edit","retweet","retweetedStatus","retweeted_status","s","favorite","add","counter","in_reply_to_status_id","favorited","fave_num","favoriteStatus","deletion","uri","action","removeStatusFromGlobalStorage","follow","unknown","log","addNewNotifications","newNotificationSideEffects","visibleNotificationTypes","isValidNotification","isStatusNotification","report","hasOwnProperty","seen","removeStatus","showNewStatuses","oldTimeline","resetStatuses","emptyState","clearTimeline","excludeUserId","clearNotifications","setFavorited","newStatus","setFavoritedConfirm","favoritedBy","setMutedStatus","thread_muted","setRetweeted","repeated","repeat_num","setRetweetedConfirm","rebloggedBy","setBookmarked","bookmarked","setBookmarkedConfirm","setDeleted","setManyDeleted","condition","setLoading","setNsfw","nsfw","setNotificationsLoading","setNotificationsSilence","markNotificationsAsSeen","markSingleNotificationAsSeen","dismissNotification","dismissNotifications","finder","updateNotification","updater","queueFlush","queueFlushAll","addRepeats","rebloggedByUsers","find","addFavs","favoritedByUsers","addEmojiReactionsBy","emojiReactions","emoji_reactions","addOwnReaction","reactionIndex","reaction","count","accounts","newReaction","me","removeOwnReaction","r","updateStatusWithPoll","poll","setVirtualHeight","height","virtualHeight","maybeShowNotification","fetchStatus","api","backendInteractor","fetchStatusSource","fetchStatusHistory","deleteStatus","deleteStatusById","markStatusesAsDeleted","unfavorite","fetchPinnedStatuses","pinStatus","pinOwnStatus","unpinStatus","unpinOwnStatus","muteConversation","unmuteConversation","unretweet","bookmark","bookmarkStatus","unbookmark","unbookmarkStatus","single","dismissNotificationLocal","fetchFavsAndRepeats","fetchFavoritedByUsers","fetchRebloggedByUsers","reactWithEmoji","unreactWithEmoji","fetchEmojiReactionsBy","fetchEmojiReactions","fetchFavs","fetchRepeats","search","q","limit","offset","following","search2","u","setLists","allLists","setList","listId","allListsObject","accountIds","entry","setListAccounts","addListAccount","accountId","removeListAccount","set","deleteList","lists","createList","fetchList","getList","fetchListAccounts","getListAccounts","updateList","saved","added","removed","addAccountsToList","removeAccountsFromList","findListTitle","findListAccounts","fetchAndUpdate","until","since","timelineData","replyVisibility","loggedIn","withMuted","numStatusesBeforeFetch","response","errors","statusText","ccTimeline","update","message","timelineFetcher","startFetching","promiseInterval","boundFetchAndUpdate","requests","listsFetcher","startFetchingTimeline","fetchTimeline","startFetchingNotifications","notificationsFetcher","fetchNotifications","startFetchingFollowRequests","followRequestFetcher","startFetchingLists","startUserSocket","getMastodonSocketURI","stream","ProcessedWS","func","verifyCredentials","windowWidth","innerWidth","documentElement","clientWidth","body","windowHeight","innerHeight","clientHeight","REDIRECT_URI","location","origin","getOrCreateApp","clientId","clientSecret","form","FormData","append","___pleromafe_commit_hash","Date","toISOString","method","app","client_id","client_secret","getClientToken","oauth","login","response_type","redirect_uri","scope","dataString","encoded","encodeURIComponent","getToken","getTokenWithCredentials","username","password","verifyOTPCode","mfaToken","verifyRecoveryCode","revokeToken","token","isPushSupported","navigator","getOrCreateServiceWorker","runtime","err","deleteSubscriptionFromBackEnd","headers","Authorization","mergeArrayLength","oldValue","newValue","blockUser","relationship","unblockUser","muteUser","expiresIn","predictedRelationship","relationships","muting","unmuteUser","muteDomain","domain","unmuteDomain","tagUser","usersObject","newTags","untagUser","updateRight","right","newRights","rights","updateActivationStatus","deactivated","setCurrentUser","lastLoginName","clearCurrentUser","beginLogin","loggingIn","endLogin","saveFriendIds","friendIds","saveFollowerIds","followerIds","clearFriends","clearFollowers","addNewUsers","usersByNameObject","updateUserRelationship","updateUserInLists","inLists","saveBlockIds","blockIds","addBlockId","blockId","indexOf","saveMuteIds","muteIds","addMuteId","muteId","saveDomainMutes","domainMutes","addDomainMute","removeDomainMute","setPinnedToUser","pinnedStatusIds","pinned","setUserForStatus","setUserForNotification","from_profile","setColor","highlighted","highlight","signUpPending","signUpErrors","signUpSuccess","signUpFailure","findUser","findUserByName","findUserByUrl","fetchUserIfMissing","fetchUser","fetchUserByName","fetchUserRelationship","fetchUserInLists","fetchBlocks","blocks","removeUserFromFollowers","blockUsers","unblockUsers","editUserNote","comment","fetchMutes","mutes","hideReblogs","followUser","reblogs","showReblogs","muteUsers","unmuteUsers","fetchDomainMutes","muteDomains","unmuteDomains","fetchFriends","fetchFollowers","subscribeUser","unsubscribeUser","toggleActivationStatus","activateUser","deactivateUser","is_active","registerPushNotifications","isEnabled","notificationVisibility","registration","base64String","base64","rawData","subscribeOptions","userVisibleOnly","applicationServerKey","repeat","atob","Uint8Array","charCodeAt","pushManager","subscribe","subscribePush","subscription","JSON","stringify","alerts","follows","favourite","likes","mention","reblog","repeats","move","moves","responseData","sendSubscriptionToBackEnd","webPushNotifications","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","targetUsers","notificationIds","notificationsObject","relevantNotifications","searchUsers","signUp","userInfo","register","params","access_token","getCaptcha","logout","oauthApi","userToken","backendInteractorService","loginUser","accessToken","Notification","requestPermission","locked","useStreamingApi","latest","maybeShowChatNotification","chat","lastMessage","chats","currentChatId","hidden","account_id","opts","account","profile_image_url","attachment","preview_url","showDesktopNotification","retryMultiplier","fetchers","socket","mastoUserSocket","mastoUserSocketStatus","followRequests","followRequestCount","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","stop","setWsToken","wsToken","setSocket","setFollowRequests","setMastoUserSocketStatus","incrementRetryMultiplier","resetRetryMultiplier","enableMastoSockets","initial","WebSocket","CLOSED","CLOSING","getState","WSConnectionStatus","disableMastoSockets","startMastoUserSocket","addEventListener","detail","chatId","chatUpdate","closeEvent","ignoreCodes","debug","stopMastoUserSocket","close","stopFetchingTimeline","stopFetchingNotifications","stopFetchingFollowRequests","removeFollowRequest","request","it","stopFetchingLists","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","library","faTimes","Modal","NEW_USER_DATE","COMMAND_TRIM_FLAGS_AND_RESET","dirty","flagStorage","updateCounter","reset","prefsStorage","_journal","simple","dontShowUpdateNotifs","collapseNav","collections","pinnedNavItems","raw","cache","newUserFlags","_moveItemInArray","movement","oldIndex","newIndex","newArray","_wrapData","userName","_user","_timestamp","now","_version","_checkValidity","_verifyPrefs","_mergeJournal","journals","allJournals","j","prototype","grouped","trimmedGrouped","path","journal","timestamp","remainder","lastRemoveIndex","operation","clearServerSideStorage","userData","setServerSideStorage","live","storage","fqn","recent","stale","needUpload","cacheValid","liveValid","_getRecentData","_PLEROMA_HOTPATCH","reverseMigrations","to","_doMigrations","needsUpload","userNew","created_at","flagsTemplate","recentData","staleData","totalFlags","totalPrefs","allFlagKeys","toRaw","_getAllFlags","flag","recentFlag","staleFlag","_mergeFlags","recentJournal","staleJournal","resultOutput","totalJournal","command","newSet","_mergePrefs","knownKeys","knownKeysSet","_resetFlags","min","setFlag","setPreference","addCollectionPreference","collection","removeCollectionPreference","reorderCollectionPreference","newCollection","updateCache","pushServerSideStorage","force","needPush","pleroma_settings_store","updateProfile","channel","joined","setChannel","addMessage","setMessages","setJoined","initializeShout","joinPush","receive","onClose","onError","on","msg","appToken","setClientData","setAppToken","setToken","clearToken","getUserToken","PASSWORD_STRATEGY","TOKEN_STRATEGY","TOTP_STRATEGY","RECOVERY_STRATEGY","resetState","strategy","initStrategy","namespaced","requiredPassword","requiredToken","requiredTOTP","requiredRecovery","setInitialStrategy","requirePassword","requireToken","requireMFA","requireRecovery","requireTOTP","abortMFA","root","supportedTypes","mediaViewer","currentIndex","activated","setMedia","setCurrentMedia","fileTypeService","mimetype","current","closeMediaViewer","tokens","fetchTokens","fetchOAuthTokens","revokeOAuthToken","swapTokens","reports","reportModal","preTickedIds","openUserReportingModal","closeUserReportingModal","setReportState","reportsState","addReport","statusIds","preTickedStatuses","oldState","trackedPolls","pollsObject","mergeOrAddPoll","existingPoll","expired","parse","expires_at","trackPoll","pollId","currentValue","untrackPoll","updateTrackedPoll","fetchPoll","polls","votePoll","choices","vote","modalActivated","openPostStatusModal","closePostStatusModal","openEditStatusModal","closeEditStatusModal","openStatusHistoryModal","closeStatusHistoryModal","ChatService","newMessages","updateMaxId","chat_id","fakeId","fakeMessage","idIndex","pending","idempotency_key","idempotencyKeyIndex","isConfirmation","lastSeenMessageId","newMessageCount","empty","getView","currentMessageChainId","firstMessage","previousMessage","date","setHours","getTime","toString","afterDate","nextMessage","isTail","object","messageChainId","isHead","deleteMessage","messageId","m","cullOlderMessages","maxIndex","minIndex","resetNewMessageCount","clear","failedMessageIds","handleMessageError","isRetry","lastPersistedMessage","oldId","chatList","chatListFetcher","openedChats","reactive","openedChatMessageServices","lastReadMessageId","getChatById","currentChat","currentChatMessageService","findOpenedChatByRecipientId","recipientId","c","sortedChatList","unreadChatCount","startFetchingChats","stopFetchingChats","fetchChats","addNewChats","newChatMessageSideEffects","updateChat","startFetchingCurrentChat","setCurrentChatFetcher","addOpenedChat","parseChat","addChatMessages","resetChatNewMessageCount","clearCurrentChat","readChat","lastReadId","isNewMessage","deleteChatMessage","resetChats","clearOpenedChats","setChatListFetcher","prevFetcher","_dispatch","chatService","setCurrentChatId","updatedChat","unread","updated_at","_rootGetters","deleteChat","conversation","last_status","setChatsLoading","chatMessageService","parseChatMessage","_value","announcements","supportsAnnouncements","fetchAnnouncementsTimer","setAnnouncements","setAnnouncementRead","read","setFetchAnnouncementsTimer","timer","setSupportsAnnouncements","unreadAnnouncementCount","_getters","announcement","inactive","fetchAnnouncements","isAdmin","privileges","getAnnouncements","adminFetchAnnouncements","visible","visibleObject","getWithinVisible","visibleAnnouncement","statusCode","markAnnouncementAsRead","dismissAnnouncement","startFetchingAnnouncements","interval","setInterval","stopFetchingAnnouncements","clearInterval","postAnnouncement","startsAt","endsAt","allDay","editAnnouncement","deleteAnnouncement","loaded","defaultReducer","paths","substate","saveImmedeatelyActions","defaultStorage","localforage","createPersistedState","getItem","setState","setItem","reducer","subscriber","handler","savedState","usersState","replaceState","merge","mutation","webPushNotification","isUserMutation","isVapidMutation","payload","isPermMutation","isUserConfigMutation","isVisibilityMutation","for","isPasswordAuth","isTokenAuth","mapGetters","mapMutations","mapActions","submit","submitToken","submitPassword","$store","identifier","passwordResetRequested","focusOnPasswordInput","clearError","passwordInput","focus","setSelectionRange","_hoisted_2","_hoisted_3","onSubmit","_Fragment","_hoisted_4","_hoisted_5","placeholder","_hoisted_7","_hoisted_8","ref","_hoisted_10","_createVNode","_component_router_link","_hoisted_11","_hoisted_12","_hoisted_13","_createBlock","_hoisted_15","_hoisted_16","_component_FAIcon","mfa","authSettings","mfa_token","mfaApi","_hoisted_6","_hoisted_9","size","h","resolveComponent","authForm","MFARecoveryForm","MFATOTPForm","LoginForm","signedIn","AuthForm","PostStatusForm","UserCard","_component_UserCard","rounded","_component_PostStatusForm","_component_auth_form","USERNAME_ROUTES","TIMELINES","home","route","criteria","anon","twkn","routeObject","tab","ROOT_ITEMS","interactions","badgeGetter","friendRequests","about","$props","custom","_renderSlot","faThumbtack","OptionalRouterLink","isPinned","pinnedItems","togglePin","routeTo","anonRoute","serverSideStorage","_component_OptionalRouterLink","ass","navigate","_mergeProps","_resolveDynamicComponent","iconLetter","labelRaw","_normalizeClass","transform","filterNavigation","hasChats","hasAnnouncements","isFederating","isPrivate","getListEntries","ListsMenuContent","NavigationEntry","privateMode","federating","_component_NavigationEntry","faUsers","faGlobe","faBookmark","faEnvelope","faComments","faBell","faInfoCircle","faStream","faList","getRouteTo","pinnedList","faChevronDown","faChevronUp","faBullhorn","created","NavigationPins","Checkbox","editMode","showTimelines","showLists","timelinesList","rootList","toggleTimelines","toggleLists","toggleEditMode","toggleCollapse","collapsed","timelinesItems","rootItems","_component_NavigationPins","_component_ListsMenuContent","shout","pleromaChatMessages","gopher","whoToFollow","mediaProxy","uploadlimit","fileSizeFormatService","num","unit","getWhoToFollow","panel","usersToFollow","toFollow","reply","shuffled","img","avatar","acct","externalUser","showWhoToFollow","userProfileLink","generateProfileLink","watch","oldUser","mounted","fill","x","src","currentMessage","togglePanel","newVal","scrollEl","$el","querySelector","offsetHeight","scrollHeight","$nextTick","author","rows","onKeyup","setTransform","scale","y","PinchZoom","_toHandlers","deltaCoord","oldCoord","newCoord","touchEventCoord","touch","touches","screenX","screenY","pointerEventCoord","clientX","clientY","vectorLength","sqrt","perpendicular","dotProduct","v1","v2","project","scalar","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","swipeGesture","direction","onSwipe","threshold","perpendicularTolerance","_startPos","_swiping","beginSwipe","gesture","updateSwipe","delta","towardsDir","perpendicularDir","towardsPerpendicular","SwipeAndClickGesture","swipePreviewCallback","swipeEndCallback","swipeCancelCallback","swipelessClickCallback","disableClickThreshold","nop","_reset","_pointerId","_swiped","_preventNextClick","button","pointerId","coord","sign","isPositive","pointerType","handlePointerDown","$gesture","handlePointerMove","handlePointerUp","handlePointerCancel","cancel","handleNativeClick","click","preview","offsets","GestureService","onPointerdown","onPointermove","onPointerup","onPointercancel","faChevronLeft","faChevronRight","faCircleNotch","StillImage","VideoAttachment","SwipeClick","Flash","swipeDirection","swipeThreshold","pinchZoomMinScale","pinchZoomScaleResetLimit","showing","description","currentMedia","canNavigate","getType","swipeDisableClickThreshold","hide","hideIfNotSwiped","comp","swipeClick","goPrev","prevIndex","newMedia","goNext","nextIndex","onImageLoaded","handleSwipePreview","pinchZoom","handleSwipeEnd","handleKeyupEvent","keyCode","handleKeydownEvent","unmounted","removeEventListener","_component_Modal","onBackdropClicked","_component_SwipeClick","onPreviewRequested","onSwipeFinished","onSwipelessClicked","_component_PinchZoom","selector","alt","onLoad","_component_VideoAttachment","controls","_component_Flash","total","spin","faSignInAlt","faSignOutAlt","faHome","faUserPlus","faSearch","faTachometerAlt","faCog","faCompass","closed","closeGesture","toggleDrawer","unseenNotifications","unseenNotificationsFromStore","unseenNotificationsCount","sitename","timelinesRoute","doLogout","touchStart","touchMove","onTouchstart","onTouchmove","style","role","faPen","HIDDEN_FOR_PAGES","scrollingDown","inputActive","oldScrollPos","amountScrolled","autohideFloatingPostButton","activateFloatingPostButtonAutohide","handleOSK","deactivateFloatingPostButtonAutohide","isLoggedIn","isHidden","$route","isPersistent","alwaysShowNewPostButton","handleScrollStart","handleScrollEnd","openPostForm","smallPhone","smallPhoneKbOpen","biggerPhoneKbOpen","scrollY","leading","trailing","faBars","faArrowUp","faMinus","SideDrawer","Notifications","ConfirmModal","notificationsCloseGesture","notificationsOpen","notificationsAtTop","showingConfirmLogout","closeMobileNotifications","isChat","chatsPinned","shouldConfirmLogout","toggleMobileSidebar","sideDrawer","openMobileNotifications","markRead","notificationsTouchStart","notificationsTouchMove","scrollToTop","scrollTo","scrollMobileNotificationsToTop","mobileNotifications","showConfirmLogout","hideConfirmLogout","onScroll","fetchOlderNotifications","_component_FALayers","_component_SideDrawer","_Teleport","_component_confirm_modal","onAccepted","onCancelled","searchTerm","searchInput","toggleHidden","SearchBar","searchBarHidden","supportsMask","enableMask","logoStyle","logoMaskStyle","logoBgStyle","margin","opacity","onSearchBarToggled","_component_search_bar","onToggled","Status","List","UserLink","forward","statusIdsToReport","processing","isOpen","remoteInstance","is_local","closeModal","reportUser","isChecked","toggleStatus","checked","resize","Element","_component_i18n_t","keypath","_component_UserLink","onInput","_component_Checkbox","_component_List","items","_component_Status","focused","statusoid","resettingForm","editStatus","isFormVisible","oldVal","get","val","doEditStatus","spoilerText","sensitive","contentType","statusPosterService","onPosted","postStatus","statusHistory","historyCount","history","newStatusId","resetHistory","_component_status","notices","closeNotice","UserPanel","NavPanel","defineAsyncComponent","InstanceSpecificPanel","FeaturesPanel","WhoToFollowPanel","ShoutPanel","MediaModal","MobilePostStatusButton","MobileNav","DesktopNav","SettingsModal","UpdateNotification","UserReportingModal","PostStatusModal","EditStatusModal","StatusHistoryModal","GlobalNoticeList","mobileActivePanel","interfaceLanguage","updateMobileState","reverseLayout","noSticky","newPostButtonShown","navClasses","navbarColumnStretch","userBackground","background_image","instanceBackground","hideInstanceWallpaper","bgStyle","hideISP","isChats","isListEdit","editingAvailable","shoutboxPosition","hideShoutbox","reverseSetting","disableStickyHeaders","showScrollbars","_component_MobileNav","_component_DesktopNav","_component_Notifications","_component_user_panel","_component_nav_panel","_component_instance_specific_panel","_component_features_panel","_component_who_to_follow_panel","_component_router_view","_component_MediaModal","_component_shout_panel","floating","_component_MobilePostStatusButton","_component_UserReportingModal","_component_PostStatusModal","_component_EditStatusModal","_component_StatusHistoryModal","_component_SettingsModal","_component_UpdateNotification","_component_GlobalNoticeList","faAngleDoubleDown","faAngleDoubleRight","depth","inProfile","collapsable","isExpanded","pinnedStatusIdsObject","profileUserId","getReplies","setHighlight","toggleExpanded","toggleThreadDisplay","threadDisplayStatus","showThreadRecursively","totalReplyCount","totalReplyDepth","statusContentProperties","setStatusContentProperty","toggleStatusContentProperty","dive","suspendable","selfSuspendable","statusComponent","childComponent","reverseLookupTable","table","currentReplies","statusById","threadShowing","currentProp","collapseThread","showThread","showAllSubthreads","toggleCurrentProp","setCurrentProp","expandable","replies","showingTall","expandingSubject","showingLongSubject","replying","mediaPlaying","onGoto","onToggleExpanded","replyStatus","_component_thread_tree","numStatus","faFilter","faFont","faWrench","Popover","setReplyVisibility","openTab","replyVisibilitySelf","replyVisibilityFollowing","replyVisibilityAll","hideMedia","hideAttachments","hideAttachmentsInConv","_component_Popover","trigger","faFolderTree","setConversationDisplay","autoUpdate","streaming","collapseWithSubjects","showUserAvatars","faAngleDoubleLeft","idA","idB","expanded","threadDisplayStatusObject","statusContentPropertiesObject","inlineDivePosition","isPage","fetchConversation","maxDepthToShowByDefault","maxDepth","streamingEnabled","displayStyle","isTreeView","isLinearView","treeViewIsSimple","shouldFadeAncestors","otherRepliesButtonPosition","showOtherRepliesButtonBelowStatus","showOtherRepliesButtonInsideStatus","prop","hideStatus","virtualHidden","originalStatusId","getConversationId","statusIndex","sortAndFilterConversation","statusMap","threadTree","linearized","walk","forest","topLevel","processed","replyIds","sizes","subTreeSizeFor","cid","depths","subTreeDepthFor","tl","otherTopLevelCount","showingTopLevel","canDive","diveRoot","parentOf","diveDepth","diveMode","shouldShowAllConversationButton","shouldShowAncestors","ancestorsOf","irid","hiddenStyle","def","isReplying","maybeHighlight","ThreadTree","QuickFilterSettings","QuickViewSettings","newConversationId","oldConversationId","resetDisplayState","ancestors","descendants","getHighlight","setThreadDisplay","nextStatus","setThreadDisplayRecursively","leastVisibleAncestor","parent","diveIntoStatus","preventScroll","tryScrollTo","diveToTopLevel","topLevelAncestorOrSelfId","undive","goToCurrent","parentId","parentOrSelf","_component_QuickFilterSettings","_component_QuickViewSettings","numReplies","useListsMenu","openMenu","blockOpen","stopPropagation","timelineName","i18nkey","$t","onShow","faCirclePlus","faCheck","Timeline","showScrollTop","paused","unfocused","bottomedOut","virtualScrollIndex","blockingClicks","Conversation","TimelineMenu","filteredVisibleStatuses","filteredPinnedStatusIds","showLoadButton","loadButtonString","mobileLoadButtonString","rootClasses","embedded","header","footer","statusesToDisplay","amount","statusesPerSide","ceil","nonPinnedIndex","virtualScrollingEnabled","mobileLayout","handleScroll","handleVisibilityChange","handleShortKey","determineVisibleStatuses","top","offsetTop","stopBlockingClicks","blockClicksTemporarily","fetchOlderStatuses","cappedScrollIndex","pageYOffset","centerOfScreen","approxIndex","floor","getBoundingClientRect","virtualScrollIndexY","abs","scrollLoad","bodyBRect","doc","clientTop","pauseOnUnfocused","_component_TimelineMenu","_component_conversation","_component_Timeline","tabModeDict","reactions","allowFollowingMove","allow_following_move","filterMode","canSeeReports","onModeSwitch","TabSwitcher","_component_tab_switcher","UserAvatar","RichContent","UserPopover","htmlTitle","name_html","_component_UserPopover","_component_UserAvatar","_component_RichContent","AvatarList","Timeago","ChatTitle","StatusBody","attachmentInfo","types","file","fileType","messageForStatusContent","messageEmojis","isYou","messagePreview","summary","raw_html","openChat","_e","recipient_id","_component_ChatTitle","_component_Timeago","time","_component_StatusBody","chatNew","BasicUserCard","userIds","availableUsers","goBack","goToChat","addUser","selectedUserIds","removeUser","_component_BasicUserCard","ChatListItem","ChatNew","isNew","cancelNewChat","newChat","_component_ChatNew","onCancel","_component_ChatListItem","compact","displayDate","today","toLocaleDateString","localeService","$i18n","day","month","$options","faEllipsisH","emits","Attachment","StatusContent","Gallery","LinkPreview","ChatMessageDate","createdAt","chatViewItem","toLocaleTimeString","hour","minute","hour12","isCurrentUser","isMessage","hasAttachment","betterShadow","popoverMarginStyle","left","hovered","menuOpened","onHover","bool","isHovered","confirm","onMouseover","onMouseleave","onMouseenter","placement","_component_StatusContent","_component_ChatMessageDate","getScrollPosition","Chat","ChatMessage","jumpToBottomButtonVisible","hoveredMessageChainId","lastScrollPosition","scrollableContainerHeight","errorLoadingChat","messageRetriers","handleResize","recipient","formPlaceholder","chatViewItems","bottomedOutBeforeUpdate","scrollDown","fetchChat","isFirstFetch","onMessageHover","onFilesDropped","forceRead","delayed","diff","scrollBy","trunc","options","behavior","isBottomedOut","reachedTop","cullOlderCheck","handleScrollUp","positionBeforeLoading","previousPosition","newPosition","positionAfterLoading","fetchLatest","fetchOlderMessages","sinceId","chatMessages","positionBeforeUpdate","getOrCreateChat","doStartFetching","handleAttachmentPosting","sendMessage","idempotencyKey","mediaId","isNormalized","buildFakeMessage","doSendMessage","retriesLeft","sendChatMessage","_component_ChatMessage","onResize","showingConfirmRemoveFollower","shouldConfirmRemoveUserFromFollowers","showConfirmRemoveUserFromFollowers","hideConfirmRemoveUserFromFollowers","doRemoveUserFromFollowers","toggled","_toDisplayString","RemoteFollow","FollowButton","RemoveFollowerButton","isMe","_component_basic_user_card","followed_by","_component_FollowButton","_component_RemoveFollowerButton","_component_RemoteFollow","select","childPropName","additionalPropNames","WrappedComponent","getComponentProps","fetchEntries","updateEntries","newEntries","isEmpty","faBirthdayCake","FollowerList","withLoadMore","destroy","FriendList","defaultTabKey","footerRef","routeParams","load","stopFetching","isUs","isExternal","followsTabVisible","hide_follows","followersTabVisible","hide_followers","formattedBirthday","browserLocale","birthday","timeZone","year","setFooterRef","el","userNameOrId","loadById","maybeId","maybeName","reason","errorMessage","switchUser","onTabSwitch","linkClicked","parentNode","FollowCard","switcher","selected","viewing","fields_html","field","fields_text","statuses_count","friends_count","_component_FriendList","_component_FollowCard","followers_count","_component_FollowerList","hashtags","currenResultTab","statusesOffset","lastStatusFetchCount","lastQuery","newQuery","searchType","blur","oldLength","getActiveTab","resultCount","onResultTabSwitch","lastHistoryRecord","hashtag","_hoisted_14","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_25","uses","_hoisted_26","setup","v$","useVuelidate","email","fullname","captcha","InterfaceLanguageSwitcher","validations","requiredIf","accountActivationRequired","sameAs","maxValue","birthdayMin","accountApprovalRequired","setCaptcha","bioPlaceholder","replaceNewlines","reasonPlaceholder","minAge","setUTCMilliseconds","setUTCSeconds","setUTCMinutes","setUTCHours","minDate","setTime","DAY","birthdayMinAttr","toJSON","birthdayMinFormatted","isPending","serverValidationErrors","termsOfService","captcha_solution","solution","captcha_token","captcha_answer_data","answer_data","$touch","$invalid","cpt","str","$error","$model","$dirty","_hoisted_19","bio","_hoisted_23","_hoisted_27","_hoisted_30","_hoisted_32","_component_interface_language_switcher","_hoisted_35","_hoisted_36","_hoisted_38","_hoisted_39","autocomplete","autocorrect","autocapitalize","spellcheck","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_47","_hoisted_48","passwordReset","throttled","mailerEnabled","dismissError","passwordResetApi","_hoisted_17","showingApproveConfirmDialog","showingDenyConfirmDialog","findFollowRequestNotificationId","notif","notificationsFromStore","showApproveConfirmDialog","hideApproveConfirmDialog","showDenyConfirmDialog","hideDenyConfirmDialog","approveUser","shouldConfirmApprove","doApprove","notifId","denyUser","shouldConfirmDeny","doDeny","FollowRequestCard","_component_FollowRequestCard","staffAccounts","groupedStaffAccounts","groupBy","admin","moderator","group","toInstanceReasonObject","instances","info","federationPolicy","mrfPolicies","quarantineInstances","acceptInstances","rejectInstances","ftlRemovalInstances","mediaNsfwInstances","mediaRemovalInstances","keywordsFtlRemoval","keywordsReject","keywordsReplace","hasInstanceSpecificPolicies","hasKeywordPolicies","TermsOfServicePanel","StaffPanel","MRFTransparencyPanel","policy","keyword","pattern","_component_staff_panel","_component_terms_of_service_panel","_component_MRFTransparencyPanel","redirect","ListsCard","cancelNewList","newList","_component_ListsCard","followingOnly","onChange","ListsNew","ListsUserSearch","PanelLoading","titleDraft","membersUserIds","removedUserIds","searchUserIds","addedUserIds","searchLoading","reallyDelete","membersUsers","toggleRemoveMember","toggleAddFromSearch","isRemoved","isAdded","onSearchLoading","results","onSearchLoadingDone","onSearchResults","updateListTitle","back","listTitle","_component_ListsUserSearch","onResults","onLoading","onLoadingDone","_component_PanelLoading","cols","AnnouncementEditor","editing","editedAnnouncement","editError","canEditAnnouncement","isRead","publishedAt","published_at","formatTimeOrDate","starts_at","ends_at","markAsRead","d","all_day","toLocaleString","enterEditMode","pleroma","raw_content","submitEdit","cancelEdit","Announcement","_component_announcement_editor","_component_rich_content","newAnnouncement","posting","canPostAnnouncement","_component_announcement","validateAuthenticatedRoute","routes","_to","component","PublicAndExternalTimeline","PublicTimeline","FriendsTimeline","beforeEnter","TagTimeline","BookmarkTimeline","ConversationPage","meta","dontScroll","RemoteUserResolver","UserProfile","Interactions","DMs","Registration","PasswordReset","FollowRequests","disableTeleport","OAuthCallback","Search","WhoToFollow","About","AnnouncementsPage","Lists","ListsTimeline","ListsEdit","forceExpand","forceEditMode","ChatList","previousNavPaddingRight","previousAppBgWrapperRight","lockerEls","disableBodyScroll","scrollBarGap","reserveScrollBarGap","navEl","getElementById","getComputedStyle","getPropertyValue","paddingRight","appBgWrapperEl","classList","enableBodyScroll","remove","directive","binding","updated","Vue","staticInitialResults","decodeUTF8Base64","TextDecoder","decode","preloadFetch","decoded","requestData","getInstanceConfig","max_toot_chars","vapid_public_key","approval_required","metadata","birthday_required","birthday_min_age","getBackendProvidedConfig","pleroma_fe","getStaticConfig","setSettings","apiConfig","staticConfig","overrides","___pleromafe_dev_overrides","env","___pleromafe_mode","NODE_ENV","staticConfigPreference","copyInstanceOption","getTOS","getInstancePanel","getStickers","resPack","pack","stickers","localeCompare","getAppSecret","resolveStaffAccounts","nicknames","split","getNodeInfo","features","nodeName","openRegistrations","uploadLimits","parseInt","general","banner","fieldsLimits","enabled","web","software","version","priv","federation","mrf_policies","setConfig","configInfos","checkOAuthToken","FaviconService","customThemeSource","applyConfig","router","createRouter","createWebHistory","scrollBehavior","_from","savedPosition","matched","createApp","App","use","vClickOutside","VBodyScrollLock","VueVirtualScroller","FontAwesomeIcon","FontAwesomeLayers","unwrapInjectedRef","mount","currentLocale","createI18n","persistedStateOptions","storageError","plugins","pushNotifications","persistedState","createStore","modules","global","interface","interfaceModule","instanceModule","usersModule","statusesModule","listsModule","apiModule","configModule","serverSideConfig","serverSideConfigModule","serverSideStorageModule","shoutModule","oauthModule","authFlow","authFlowModule","mediaViewerModule","oauthTokens","oauthTokensModule","reportsModule","pollsModule","postStatusModule","editStatusModule","statusHistoryModule","chatsModule","announcementsModule","strict","afterStoreSetup","process","COMMIT_HASH","DEV_OVERRIDES","expertLevel","colors","padEmoji","maxThumbnails","hideNsfw","preloadImage","loopVideo","loopVideoSilentOnly","emojiReactionsOnTimeline","stopGifs","followRequest","chatMention","muteWords","hideScopeNotice","playVideosInModal","useOneClickNsfw","useContainFit","userPopoverAvatarAction","userPopoverOverlay","sidebarColumnWidth","contentColumnWidth","notifsColumnWidth","defaultConfig","setOption","color","loadSettings","presentKeys","intersection","setPreset","Cookies","defaultApi","notificationsApi","updateNotificationSettings","settingsMap","defaultScope","defaultNSFW","stripRichContent","acceptChatMessages","discoverable","hideFavorites","hideFollowers","hideFollows","hideFollowersCount","hideFollowsCount","webPushHideContents","blockNotificationsFromStrangers","confirmServerSideOption","wipeServerSideOption","wipeAllServerSideOptions","_original","setServerSideOption","StatusCodeError","captureStackTrace","create","constructor","RegistrationError","errorContents","ap_id","errs","ALIASES_URL","TAG_USER_URL","PERMISSION_GROUP_URL","screenName","MASTODON_DISMISS_NOTIFICATION_URL","MASTODON_FAVORITE_URL","MASTODON_UNFAVORITE_URL","MASTODON_RETWEET_URL","MASTODON_UNRETWEET_URL","MASTODON_PUBLIC_TIMELINE","MASTODON_STATUS_URL","MASTODON_USER_TIMELINE_URL","MASTODON_LIST_URL","MASTODON_LIST_TIMELINE_URL","MASTODON_LIST_ACCOUNTS_URL","MASTODON_TAG_TIMELINE_URL","MASTODON_MUTE_USER_URL","MASTODON_UNMUTE_USER_URL","MASTODON_SUBSCRIBE_USER","MASTODON_UNSUBSCRIBE_USER","MASTODON_USER_NOTE_URL","MASTODON_BOOKMARK_STATUS_URL","MASTODON_UNBOOKMARK_STATUS_URL","MASTODON_MEDIA_UPLOAD_URL","MASTODON_STATUS_FAVORITEDBY_URL","MASTODON_STATUS_REBLOGGEDBY_URL","MASTODON_PROFILE_UPDATE_URL","MASTODON_PIN_OWN_STATUS","MASTODON_UNPIN_OWN_STATUS","MASTODON_MUTE_CONVERSATION","MASTODON_UNMUTE_CONVERSATION","MASTODON_DOMAIN_BLOCKS_URL","MASTODON_ANNOUNCEMENTS_DISMISS_URL","PLEROMA_EMOJI_REACTIONS_URL","PLEROMA_EMOJI_REACT_URL","PLEROMA_EMOJI_UNREACT_URL","PLEROMA_CHAT_MESSAGES_URL","PLEROMA_CHAT_READ_URL","PLEROMA_DELETE_CHAT_MESSAGE_URL","PLEROMA_BACKUP_URL","PLEROMA_EDIT_ANNOUNCEMENT_URL","PLEROMA_DELETE_ANNOUNCEMENT_URL","oldfetch","fullUrl","promisedRequest","Accept","authHeaders","parseUser","MASTODON_FOLLOWING_URL","announcementToPayload","MASTODON_STREAMING","MASTODON_STREAMING_EVENTS","PLEROMA_STREAMING_EVENTS","preprocessor","handleMastoWS","eventTarget","proxy","original","eventName","eventData","dispatchEvent","CustomEvent","wsEvent","readyState","parsedEvent","parseStatus","parseNotification","freeze","JOINED","ERROR","DISABLED","STARTING","STARTING_INITIAL","includeTypes","isNotifications","queryString","param","parseLinkHeaderPagination","flakeId","urlContext","MASTODON_STATUS_CONTEXT_URL","MASTODON_STATUS_SOURCE_URL","parseSource","originalStatus","exportFriends","more","MASTODON_FOLLOWERS_URL","MASTODON_FOLLOW_URL","unfollowUser","MASTODON_UNFOLLOW_URL","MASTODON_BLOCK_USER_URL","MASTODON_UNBLOCK_USER_URL","MASTODON_REMOVE_USER_FROM_FOLLOWERS","mediaIds","inReplyToStatusId","pollOptions","normalizedPoll","expires_in","multiple","postHeaders","putHeaders","MASTODON_DELETE_URL","uploadMedia","formData","parseAttachment","setMediaDescription","deleteUser","addRight","deleteRight","agreement","resp","updateProfileImages","avatarName","importMutes","importBlocks","importFollows","deleteAccount","changeEmail","moveAccount","targetAccount","addAlias","alias","deleteAlias","listAliases","_cacheBooster","changePassword","newPassword","newPasswordConfirmation","settingsMFA","mfaDisableOTP","generateMfaBackupCodes","mfaSetupOTP","mfaConfirmOTP","addBackup","listBackups","fetchFollowRequests","fetchLists","MASTODON_LISTS_URL","account_ids","MASTODON_APPROVE_USER_URL","MASTODON_DENY_USER_URL","status_ids","URLSearchParams","fetchKnownDomains","media_id","last_read_id","MASTODON_USER_IN_LISTS","propsToNative","rgb2hex","g","relativeLuminance","srgb","bit","pow","c2linear","srgbToLinear","getContrastRatio","getContrastRatioLayers","layers","bedrock","alphaBlendLayers","alphaBlend","fg","fga","bg","hex2rgb","hex","mixrgb","rgba2css","rgba","getTextColor","preserve","base","invertLightness","rgb","contrastRatio","getCssColor","Component","isFunction","getComponentOptions","SECOND","MINUTE","HOUR","WEEK","MONTH","YEAR","relativeTime","nowThreshold","round","relativeTimeShort","unitToSeconds","secondsToUnit","desktopNotificationOpts","desktopNotification","bind","output","masto","mastoShort","escape","display_name","name_unescaped","note","description_html","fields","unescape","cover_photo","following_count","bot","settings_store","favicon","chat_token","hide_follows_count","hide_followers_count","is_moderator","is_admin","default_scope","privacy","no_rich_text","show_role","show_birthday","delete_others_notice","muted","blocking","statusnet_blocking","follows_you","follow_request_count","notification_settings","unread_chat_count","parts","unicodeDomain","punycode","screen_name_ui_contains_non_ascii","mime_type","large_thumb_url","spoiler_text","content_type","favourited","favourites_count","reblogged","reblogs_count","edited_at","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","parent_visible","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","summary_raw_html","external_url","title_html","is_post_verb","qvitter_delete_notice","activity_type","qvitterStatusType","isNsfw","statusnet_html","summary_html","card","media_attachments","parsedNotice","ntype","is_seen","favorited_status","actor","linkHeader","parsedLinkHeader","parseLinkHeader","max_id","prev","min_id","last_message","favicons","faviconWidth","faviconHeight","isImageLoaded","clearFaviconBadge","complete","naturalHeight","initFaviconService","querySelectorAll","favcanvas","createElement","favimg","Image","crossOrigin","favcontext","getContext","clearRect","drawImage","toDataURL","drawFaviconBadge","badgeColor","fillStyle","beginPath","arc","PI","fileSizeFormat","numArg","units","exponent","toFixed","fileMatchesSomeType","specialLanguageCodes","ja_easy","zh_Hant","zh","internalToBrowserLocale","internalToBackendLocale","getLanguageName","languageName","ISO6391","charAt","toLocaleUpperCase","languagesObject","internalToBackendLocaleMulti","visibleTypes","statusNotifications","muteWordHits","isMutedNotification","notificationObject","prepareNotificationObject","filteredNotificationsFromStore","sortedNotifications","i18nString","notifObj","mastoApiNotificationTypes","readNotifsIds","findOffset","child","ignorePadding","offsetLeft","findPadding","topPadding","leftPadding","offsetParent","position","contains","topPaddingStr","leftPaddingStr","promiseCall","stopped","promise","statusSummary","muteWord","rules","generatePreset","head","styleEl","appendChild","styleSheet","sheet","insertRule","radii","shadows","fonts","configColumns","defaultConfigColumns","columns","getCssShadow","usesDropShadow","inset","shad","spread","alpha","getCssShadowFilter","generateColors","sourceColors","colors2to3","getColors","htmlColors","solid","generateRadii","inputRadii","btnRadius","btn","checkbox","avatarAlt","tooltip","chatMessage","generateFonts","family","post","postCode","border","shadow","buttonInsetFakeBorders","inputInsetFakeBorders","hoverGlow","DEFAULT_SHADOWS","topBar","popup","avatarStatus","panelHeader","buttonHover","buttonPressed","generateShadows","hackContextDict","cleanInputShadows","shadowDef","inputShadows","shadows2to3","shadowsAcc","slotName","shadowDefs","slotFirstWord","colorSlotName","mod","convert","newShadow","shadowAcc","computeDynamicColor","variableSlot","composePreset","getThemes","themes","promises","statePositionAcc","getOpacitySlot","isV1","cRed","cGreen","cBlue","cOrange","LAYERS","undelay","badge","profileTint","popover","selectedMenu","btnPanel","btnTopBar","inputPanel","inputTopBar","alert","alertPanel","chatBg","DEFAULT_OPACITY","faint","underlay","alertPopup","SLOT_INHERITANCE","depends","priority","wallpaper","brightness","layer","accent","faintLink","postFaintLink","profileBg","highlightLightText","textColor","highlightPostLink","highlightFaintText","highlightFaintLink","highlightPostFaintLink","highlightText","highlightLink","highlightIcon","popoverLightText","popoverPostLink","popoverFaintText","popoverFaintLink","popoverPostFaintLink","popoverText","popoverLink","popoverIcon","selectedPost","selectedPostFaintText","variant","selectedPostLightText","selectedPostPostLink","selectedPostFaintLink","selectedPostText","selectedPostLink","selectedPostIcon","selectedMenuLightText","selectedMenuFaintText","selectedMenuFaintLink","selectedMenuText","selectedMenuLink","selectedMenuIcon","selectedMenuPopover","selectedMenuPopoverLightText","selectedMenuPopoverFaintText","selectedMenuPopoverFaintLink","selectedMenuPopoverText","selectedMenuPopoverLink","selectedMenuPopoverIcon","lightText","postLink","postGreentext","postCyantext","copacity","pollText","inheritsOpacity","fgText","fgLink","panelText","panelFaint","panelLink","topBarText","topBarLink","tabText","tabActiveText","btnText","btnPanelText","btnTopBarText","btnPressed","btnPressedText","btnPressedPanel","btnPressedPanelText","btnPressedTopBar","btnPressedTopBarText","btnToggled","btnToggledText","btnToggledPanelText","btnToggledTopBarText","btnDisabled","btnDisabledText","btnDisabledPanelText","btnDisabledTopBarText","inputText","inputPanelText","inputTopbarText","alertError","alertErrorText","alertErrorPanelText","alertWarning","alertWarningText","alertWarningPanelText","alertSuccess","alertSuccessText","alertSuccessPanelText","alertNeutral","alertNeutralText","alertNeutralPanelText","alertPopupError","alertPopupErrorText","alertPopupWarning","alertPopupWarningText","alertPopupSuccess","alertPopupSuccessText","alertPopupNeutral","alertPopupNeutralText","badgeNotification","badgeNotificationText","badgeNeutral","badgeNeutralText","chatMessageIncomingBg","chatMessageIncomingText","chatMessageIncomingLink","chatMessageIncomingBorder","chatMessageOutgoingBg","chatMessageOutgoingText","chatMessageOutgoingLink","chatMessageOutgoingBorder","getLayersArray","getLayers","opacitySlot","currentLayer","getDependencies","inheritance","layerDeps","expandSlotValue","getDeps","findInheritedOpacity","visited","depSlot","dependency","getLayerSlot","findInheritedLayer","SLOT_ORDERED","allKeys","whites","grays","blacks","unprocessed","step","node","ai","bi","depsA","depsB","topoSort","aV","bV","OPACITIES","defaultValue","affectedSlots","sourceColor","getColor","targetColor","variable","modifier","parseFloat","sourceOpacity","backgroundColor","deps","isTextColor","outputColor","colorFunc","dep","ownOpacitySlot","opacityOverriden","dependencySlot","dependencyColor","highlightStyle","prefs","solidColor","tintColor","tintColor2","customProps","backgroundImage","backgroundPosition","highlightClass","complicated","faFile","faMusic","faImage","faVideo","faPlayCircle","faStop","faSearchPlus","faTrashAlt","faPencilAlt","faAlignRight","localDescription","nsfwImage","hideNsfwLocal","modalOpen","showHidden","flashLoaded","showDescription","classNames","usePlaceholder","placeholderName","toUpperCase","placeholderIconClass","referrerpolicy","oembed","useModal","modalTypes","videoTag","onEdit","openModal","openModalForce","onRemove","onShiftUp","shiftUp","onShiftDn","shiftDn","stopFlash","flash","closePlayer","setFlashLoaded","toggleDescription","onload","onImageLoad","naturalWidth","onKeydown","_component_StillImage","onPlay","onPause","thumb_url","oembedHTML","onPlayerOpened","onPlayerClosed","slicedUsers","_component_user_link","indeterminate","$event","DialogModal","cancelText","confirmText","onAccept","_component_dialog_modal","darkOverlay","addPositionToWords","words","word","previous","splitByWhitespaceBoundary","currentWord","currentChar","pos","wordsWithPosition","toReplace","faBoxOpen","faStickyNote","faSmileBeam","faSmile","faUser","faPaw","faIceCream","faBus","faBasketballBall","faLightbulb","faCode","faFlag","UNICODE_EMOJI_GROUP_ICON","activities","objects","flags","maybeLocalizedKeywords","nameLocalizer","enableStickerPicker","activeGroup","showingStickers","groupsScrolledClass","keepOpen","customEmojiTimeout","contentLoaded","groupRefs","emojiRefs","filteredEmojiGroups","StickerPicker","showPicker","showPopover","onShowing","hidePicker","hidePopover","setAnchorEl","setGroupRef","onPopoverShown","onPopoverClosed","onStickerUploaded","onStickerUploadFailed","onEmoji","insertion","startIndex","endIndex","visibleStartIndex","visibleEndIndex","scrolledGroup","emojiItems","headerId","parentElement","getOffset","scrollHeader","headerRef","offsetWidth","headerCont","currentScroll","scrollLeft","currentScrollRight","setScroll","setShowStickers","indexInList","scrollToItem","updateScrolledClass","scrollTopMax","toggleStickers","filterByKeyword","keywordLowercase","orderedEmojiList","indices","indexOfKeyword","flat","maybeLocalizedEmojiName","oldContentLoaded","recalculateItemPerRow","getFilteredEmojiGroups","defaultGroup","allEmojiGroups","debouncedHandleKeywordChange","allCustomGroups","minItemSize","emojiHeight","emojiWidth","itemPerRow","activeGroupView","stickersAvailable","unpacked","unicodeEmojiGroups","stickerPickerEnabled","isFirstRow","_component_still_image","composing","_component_DynamicScroller","onUpdate","onVisible","_withCtx","_component_DynamicScrollerItem","_component_sticker_picker","onUploaded","onUploadFailed","ariaLive","defualt","currentText","announce","suggest","modelValue","enableEmojiPicker","hideEmojiButton","newlineOnCtrlEnter","randomSeed","random","caretEl","caret","blurTimeout","temporarilyHideSuggestions","disableClickOutside","overlayStyle","pickerShown","EmojiPicker","UnicodeDomainIndicator","ScreenReaderNotice","preText","postText","showSuggestions","textAtCaret","wordAtCaret","Completion","maybeLocalizedEmojiNamesAndKeywords","onInputScroll","hiddenOverlay","suggestionListId","suggestionItemId","hiddenOverlayCaret","suggestorPopover","picker","padding","lineHeight","fontFamily","fontSize","wordWrap","whiteSpace","onBlur","onFocus","onPaste","onKeyUp","onKeyDown","onClickInput","onTransition","newWord","firstchar","matchedSuggestions","screenReaderNotice","$tc","number","triggerShowPicker","scrollIntoView","togglePicker","startEmojiLoad","insert","surroundingSpace","before","after","isSpaceRegex","spaceBefore","spaceAfter","replaceText","suggestion","len","cycleBackward","cycleForward","rootRef","scrollerRef","closest","scrollerBottomBorder","rootBottomBorder","targetScroll","scroll","bottom","onPickerShown","onPickerClosed","setCaret","ctrlKey","shiftKey","selectionStart","updateStyles","autoCompleteItemLabel","ariaOwns","ariaAutocomplete","ariaExpanded","ariaActivedescendant","_component_screen_reader_notice","_component_EmojiPicker","_component_UnicodeDomainIndicator","at","ruffleInstance","getRuffle","RufflePlayer","polyfills","publicPath","script","onerror","onabort","oncancel","faExclamationTriangle","player","openPlayer","RuffleService","ruffle","newest","createPlayer","letterbox","container","fetchRelationship","attempt","requested","sent","requestFollow","showingConfirmUnfollow","shouldConfirmUnfollow","isPressed","labelFollowing","showConfirmUnfollow","hideConfirmUnfollow","unfollow","doUnfollow","requestUnfollow","hidingLong","minimal","grid","audio","attachmentsRemaining","currentRow","attachmentsDimensionalScore","row","tooManyAttachments","editable","onNaturalSizeLoad","rowStyle","itemStyle","getAspectRatio","flex","toggleHidingLong","openGallery","onMedia","rowIndex","attachmentIndex","_component_Attachment","onSetMedia","Select","promptText","controlledLanguage","addLanguage","setLanguageAt","removeLanguageAt","_component_Select","imageLoaded","useImage","censored","hideNsfwConfig","useDescription","test","newImg","provider_name","getKey","faAt","userScreenName","hasSelection","shouldShowTooltip","handleSelection","getSelection","containsNode","full","userNameFullUi","serverName","userNameFull","highlightType","classnames","shouldBoldenYou","isRemote","shouldShowFullUserName","conf","shouldShowAvatar","shouldShowYous","shouldFadeDomain","MentionLink","mentionsComputed","extraMentions","manyMentions","toggleShowMore","_component_MentionLink","provide","popoversZLayer","noBackground","reportId","generateUserProfileLink","_component_status_content","notes","faStar","faRetweet","faEyeSlash","faSuitcaseRolling","faExpandAlt","faCompressAlt","statusExpanded","unmuted","Report","toggleStatusExpanded","getUser","toggleMute","userClass","userStyle","targetUser","targetUserProfileLink","needMute","_hoisted_22","_hoisted_24","_hoisted_28","_component_Report","filters","toggleNotificationFilter","NotificationFilters","minimalMode","seenToDisplayCount","mainClass","filteredNotifications","unseenCount","unseenCountTitle","noHeading","teleportTarget","wide","mobile","notificationsToDisplay","updateScrollPosition","markAsSeen","seenCount","notifs","_component_NotificationFilters","unseen","_component_notification","boundTo","boundToSelector","popoverClass","removePadding","overlayCenters","overlayCentersSelector","stayOnClick","triggerAttrs","inject","anchorEl","teleport","lockReEntry","styles","oldSize","scrollable","graceTimeout","parentPopover","childrenShown","containerBoundingClientRect","anchorHeight","anchorWidth","anchorScreenBox","anchorStyle","paddingTop","bottomPadding","paddingBottom","rightPadding","paddingLeft","overlayCenter","parentScreenBox","xBounds","yBounds","horizOffset","vertOffset","box","overlayCenterScreenBox","leftInnerOffset","topInnerOffset","leftBorder","rightBorder","topBorder","bottomBorder","translateX","translateY","usingTop","topBoundary","bottomBoundary","yOffset","usingRight","rightBoundary","leftBoundary","xOffset","maxWidth","wasHidden","onChildPopoverState","onClickOutside","onMouseenterContent","onMouseleaveContent","childRef","$parent","$","beforeUnmount","_Transition","faUpload","uploadCount","uploadReady","uploading","uploadFile","self","filesize","allowedsize","filesizeunit","allowedsizeunit","fileData","decreaseUploadCount","clearFile","multiUpload","files","change","dropFiles","fileInfos","faPlus","pollType","expiryAmount","expiryUnit","maxOptions","maxLength","expiryUnits","expiry","convertExpiryFromUnit","minExpirationInCurrentUnit","convertExpiryToUnit","maxExpirationInCurrentUnit","nextOption","element","addOption","deleteOption","updatePollToParent","DateUtils","expiryAmountChange","maxlength","unstyled","faPollH","faBan","pxStringToNumber","MediaUpload","EmojiInput","PollForm","ScopeSelector","updateIdempotencyKey","textarea","replyTo","textLength","autoFocus","allAttentions","attention","buildMentionsString","repliedUser","copyMessageScope","statusParams","subject","mediaDescriptions","statusContentType","statusIsSensitive","statusFiles","statusPoll","statusMediaDescriptions","statusScope","uploadingFiles","pollFormVisible","showDropIcon","dropStopTimeout","previewLoading","emojiInputShown","userDefaultScope","showAllScopes","emojiUserSuggestor","suggestor","emojiSuggestor","statusLength","spoilerTextLength","statusLengthLimit","hasStatusLengthLimit","charactersLeft","isOverLengthLimit","alwaysShowSubject","safeDMEnabled","disablePolls","disableNotice","pollContentError","showPreview","disablePreview","emptyStatus","uploadFileLimitReached","fileLimit","isEdit","deep","statusChanged","autoPreview","clearStatus","mediaUpload","clearPollForm","preserveFocus","previewStatus","optimisticPosting","disableSubmit","submitOnEnter","setAllMediaDescriptions","postingOptions","postHandler","statusPoster","debouncePreviewStatus","closePreview","togglePreview","addMediaFile","fileInfo","removeMediaFile","editAttachment","newText","shiftUpMediaFile","shiftDnMediaFile","uploadFailed","errString","templateArgs","startedUploadingFiles","finishedUploadingFiles","paste","clipboardData","fileDrop","dataTransfer","fileDragStop","fileDrag","dropEffect","onEmojiInputInput","formRef","bottomRef","bottomBottomPaddingStr","bottomBottomPadding","bottomPaddingStr","vertPadding","oldHeight","scrollerHeight","heightWithoutPadding","newHeight","maxHeight","bottomBottomBorder","isBottomObstructed","isFormBiggerThanScroller","bottomChangeDelta","totalDelta","showEmojiPicker","changeVis","togglePollForm","setPoll","pollForm","dismissScopeNotice","handleEmojiInputShow","openProfileTab","onDragover","tabindex","_component_EmojiInput","inputProps","onShown","onCompositionupdate","_component_scope_selector","postFormat","_component_poll_form","onUpdatePoll","_component_media_upload","onUploading","onAllUploaded","_hoisted_29","animation","onDragleave","onDrop","_component_gallery","descriptions","_hoisted_33","progress","$data","subscribeUrl","serverUrl","protocol","host","faLock","faLockOpen","currentScope","initialScope","showNothing","showPublic","showUnlisted","showPrivate","showDirect","originalScope","shouldShow","css","unlisted","private","direct","showAll","userDefault","onScopeChange","faReply","faStarRegular","animated","filterWord","addReaction","existingReaction","focusInput","commonEmojis","hardcodedSet","showingConfirmDialog","shouldConfirmRepeat","showConfirmDialog","doRetweet","hideConfirmDialog","faBookmarkReg","faShareAlt","faExternalLinkAlt","faHistory","showingDeleteDialog","shouldConfirmDelete","showDeleteStatusConfirmDialog","doDeleteStatus","hideDeleteStatusConfirmDialog","copyLink","clipboard","writeText","statusLink","reportStatus","showStatusHistory","p","canDelete","ownStatus","canPin","canMute","canBookmark","isEdited","_component_ConfirmModal","enter","oldStatus","usersCapped","UserListPopover","tooManyReactions","showMoreString","accountsForEmoji","toggleShowAll","reactedWith","fetchEmojiReactionsByIfMissing","reactWith","unreact","emojiOnClick","_component_UserListPopover","faPlusSquare","faEye","camelCase","controlledOrUncontrolledSet","camelized","uncontrolledName","ReplyButton","FavoriteButton","ReactButton","RetweetButton","ExtraButtons","StatusPopover","EmojiReactions","uncontrolledReplying","userExpanded","uncontrolledMediaPlaying","headTailLinks","toggle","controlledName","showReasonMutedThread","inConversation","repeaterClass","repeaterStyle","replyProfileLink","isReply","retweeterUser","retweeter","retweeterHtml","retweeterProfileLink","statusFromGlobalRepository","rtBotStatus","botStatus","botIndicator","rtBotIndicator","mentionsLine","writtenSet","attn","hasMentionsLine","reasonsToMute","userIsMuted","shouldNotMute","relationshipReblog","hideMutedUsers","isFocused","replyToName","replySubject","decodedSummary","startsWithRe","combinedFavsAndRepeatsUsers","combinedUsers","tagObj","isSuspendable","inThreadForest","controlledThreadDisplayStatus","visibilityLocalized","visibilityIcon","showError","toggleReplying","gotoOriginal","toggleUserExpanded","addMediaPlaying","removeMediaPlaying","setHeadTailLinks","controlledToggleThreadDisplay","scrollIfHighlighted","highlightId","rect","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_component_reply_button","onToggle","_hoisted_31","_component_StatusPopover","flip","_hoisted_34","_component_MentionsLine","onMediaplay","onMediapause","onParseReady","_hoisted_40","_hoisted_41","_hoisted_45","_hoisted_46","_component_AvatarList","_component_EmojiReactions","_hoisted_49","_component_retweet_button","_component_favorite_button","_component_ReactButton","_component_extra_buttons","onOnError","onOnSuccess","_hoisted_54","basePoll","expiresAt","showResults","voted","totalVotesCount","votes_count","containerClass","choiceIndices","isDisabled","noChoice","percentageForOption","resultTitle","activateOption","clickedElement","optionId","voters_count","faLink","postLength","parseReadyDone","localCollapseSubjectDefault","tallStatus","singleLine","longSubject","mightHideBecauseSubject","mightHideBecauseTall","hideSubjectStatus","hideTallStatus","showingMore","attachmentTypes","handle","toggleShowingTall","toggleExpandingSubject","controlledOrUncontrolledToggle","uncontrolledShowingTall","fullContent","uncontrolledShowingLongSubject","uncontrolledExpandingSubject","nsfwClickthrough","attachmentSize","Poll","toggleShowingLongSubject","galleryAttachments","_component_Poll","_component_link_preview","realSrc","appendPx","loadLazy","dataSrc","imageLoadHandler","canvas","imageLoadError","removeAttribute","localeDateString","relativeTimeString","timeString","tc","templateKey","refreshRelativeTimeObject","longFormat","datetime","faRobot","showPlaceholder","imgSrc","FORCE_NSFW","STRIP_MEDIA","FORCE_UNLISTED","DISABLE_REMOTE_SUBSCRIPTION","DISABLE_ANY_SUBSCRIPTION","SANDBOX","QUARANTINE","showDeleteUserDialog","tagsSet","canGrantRole","canChangeActivationState","privileged","canDeleteAccount","canUseTagPolicy","tagPolicyAvailable","hasTag","privilege","toggleTag","toggleRight","deleteUserDialog","show","isProfile","isTargetUser","setToggled","_component_DialogModal","inListsSet","inList","toggleList","faEllipsisV","showingConfirmBlock","ProgressButton","UserListMenu","showConfirmBlock","hideConfirmBlock","showRepeats","hideRepeats","shouldConfirmBlock","doBlockUser","showing_reblogs","_component_UserListMenu","localNote","frozen","startEditing","cancelEditing","finalizeEditing","faRss","faEdit","followRequestInProgress","showingConfirmMute","muteExpiryAmount","muteExpiryUnit","bordered","isOtherUser","dailyAvg","days","userHighlightType","userHighlightColor","visibleRole","validRole","roleTitle","showModerationMenu","hasNote","supportsNote","shouldConfirmMute","muteExpiryUnits","ModerationTools","AccountActions","UserNote","showConfirmMute","hideConfirmMute","doMuteUser","setProfileView","zoomAvatar","mentionUser","onAvatarClickHandler","onAvatarClick","_component_AccountActions","subscribing","_component_ProgressButton","_component_ModerationTools","_component_UserNote","blocksSuspend","hasAudio","onPlaying","setHasAudio","looping","onPaused","srcElement","webkitAudioDecodedByteCount","mozHasAudio","audioTracks","preload","loop","playsinline","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","getter","__esModule","getPrototypeOf","mode","ns","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","miniCssF","globalThis","done","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","setAttribute","onScriptComplete","doneFns","removeChild","Symbol","toStringTag","nmd","installedCssChunks","miniCss","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","createStylesheet","loadStylesheet","installedChunks","installedChunkData","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js b/priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js
deleted file mode 100644
index a20dde299..000000000
--- a/priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[4646],{97898:(n,o,e)=>{e.r(o),e.d(o,{default:()=>r});const r={chat:{title:n=>{const{normalize:o}=n;return o(["Babilejo"])}},features_panel:{chat:n=>{const{normalize:o}=n;return o(["Babilejo"])},gopher:n=>{const{normalize:o}=n;return o(["Gopher"])},media_proxy:n=>{const{normalize:o}=n;return o(["Vidaŭdaĵa retperilo"])},scope_options:n=>{const{normalize:o}=n;return o(["Agordoj de amplekso"])},text_limit:n=>{const{normalize:o}=n;return o(["Limo de teksto"])},title:n=>{const{normalize:o}=n;return o(["Funkcioj"])},who_to_follow:n=>{const{normalize:o}=n;return o(["Kiun aboni"])},pleroma_chat_messages:n=>{const{normalize:o}=n;return o(["Babilejo de Pleroma"])},upload_limit:n=>{const{normalize:o}=n;return o(["Limo de alŝutoj"])},shout:n=>{const{normalize:o}=n;return o(["Kriujo"])}},finder:{error_fetching_user:n=>{const{normalize:o}=n;return o(["Eraris alporto de uzanto"])},find_user:n=>{const{normalize:o}=n;return o(["Trovi uzanton"])}},general:{apply:n=>{const{normalize:o}=n;return o(["Apliki"])},submit:n=>{const{normalize:o}=n;return o(["Sendi"])},more:n=>{const{normalize:o}=n;return o(["Pli"])},generic_error:n=>{const{normalize:o}=n;return o(["Eraro okazis"])},optional:n=>{const{normalize:o}=n;return o(["malnepra"])},close:n=>{const{normalize:o}=n;return o(["Fermi"])},verify:n=>{const{normalize:o}=n;return o(["Kontroli"])},confirm:n=>{const{normalize:o}=n;return o(["Konfirmi"])},enable:n=>{const{normalize:o}=n;return o(["Ŝalti"])},disable:n=>{const{normalize:o}=n;return o(["Malŝalti"])},cancel:n=>{const{normalize:o}=n;return o(["Nuligi"])},dismiss:n=>{const{normalize:o}=n;return o(["Forlasi"])},show_less:n=>{const{normalize:o}=n;return o(["Montri malplion"])},show_more:n=>{const{normalize:o}=n;return o(["Montri plion"])},retry:n=>{const{normalize:o}=n;return o(["Reprovi"])},error_retry:n=>{const{normalize:o}=n;return o(["Bonvolu reprovi"])},loading:n=>{const{normalize:o}=n;return o(["Enlegante…"])},peek:n=>{const{normalize:o}=n;return o(["Antaŭmontri"])},role:{moderator:n=>{const{normalize:o}=n;return o(["Reguligisto"])},admin:n=>{const{normalize:o}=n;return o(["Administranto"])}},flash_content:n=>{const{normalize:o}=n;return o(["Klaku por montri enhavon de Flash per Ruffle. (Eksperimente, eble ne funkcios.)"])},flash_security:n=>{const{normalize:o}=n;return o(["Sciu, ke tio povas esti danĝera, ĉar la enhavo de Flash ja estas arbitra programo."])},flash_fail:n=>{const{normalize:o}=n;return o(["Malsukcesis enlegi enhavon de Flash; vidu detalojn en konzolo."])},scope_in_timeline:{direct:n=>{const{normalize:o}=n;return o(["Persona"])},private:n=>{const{normalize:o}=n;return o(["Nur abonantoj"])},public:n=>{const{normalize:o}=n;return o(["Publika"])},unlisted:n=>{const{normalize:o}=n;return o(["Nelistigita"])}},generic_error_message:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris: ",e(r(0))])},never_show_again:n=>{const{normalize:o}=n;return o(["Neniam remontri"])},undo:n=>{const{normalize:o}=n;return o(["Malfari"])},yes:n=>{const{normalize:o}=n;return o(["Jes"])},no:n=>{const{normalize:o}=n;return o(["Ne"])},unpin:n=>{const{normalize:o}=n;return o(["Malfiksi eron"])},pin:n=>{const{normalize:o}=n;return o(["Fiksi eron"])},scroll_to_top:n=>{const{normalize:o}=n;return o(["Rulumi supren"])}},image_cropper:{crop_picture:n=>{const{normalize:o}=n;return o(["Tondi bildon"])},save:n=>{const{normalize:o}=n;return o(["Konservi"])},cancel:n=>{const{normalize:o}=n;return o(["Nuligi"])},save_without_cropping:n=>{const{normalize:o}=n;return o(["Konservi sen tondado"])}},login:{login:n=>{const{normalize:o}=n;return o(["Saluti"])},description:n=>{const{normalize:o}=n;return o(["Saluti per OAuth"])},logout:n=>{const{normalize:o}=n;return o(["Adiaŭi"])},password:n=>{const{normalize:o}=n;return o(["Pasvorto"])},placeholder:n=>{const{normalize:o}=n;return o(["ekz. lain"])},register:n=>{const{normalize:o}=n;return o(["Registriĝi"])},username:n=>{const{normalize:o}=n;return o(["Uzantonomo"])},hint:n=>{const{normalize:o}=n;return o(["Salutu por partopreni la diskutadon"])},heading:{recovery:n=>{const{normalize:o}=n;return o(["Rehavo de duobla aŭtentikigo"])},totp:n=>{const{normalize:o}=n;return o(["Duobla aŭtentikigo"])}},recovery_code:n=>{const{normalize:o}=n;return o(["Rehava kodo"])},enter_two_factor_code:n=>{const{normalize:o}=n;return o(["Enigu kodon de duobla aŭtentikigo"])},enter_recovery_code:n=>{const{normalize:o}=n;return o(["Enigu rehavan kodon"])},authentication_code:n=>{const{normalize:o}=n;return o(["Aŭtentikiga kodo"])}},media_modal:{previous:n=>{const{normalize:o}=n;return o(["Antaŭa"])},next:n=>{const{normalize:o}=n;return o(["Sekva"])},counter:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("current"))," / ",e(r("total"))])},hide:n=>{const{normalize:o}=n;return o(["Fermi vidilon de vidaŭdaĵoj"])}},nav:{about:n=>{const{normalize:o}=n;return o(["Pri"])},back:n=>{const{normalize:o}=n;return o(["Reen"])},chat:n=>{const{normalize:o}=n;return o(["Loka babilejo"])},friend_requests:n=>{const{normalize:o}=n;return o(["Petoj pri abono"])},mentions:n=>{const{normalize:o}=n;return o(["Mencioj"])},dms:n=>{const{normalize:o}=n;return o(["Rektaj mesaĝoj"])},public_tl:n=>{const{normalize:o}=n;return o(["Loka historio"])},timeline:n=>{const{normalize:o}=n;return o(["Historio"])},twkn:n=>{const{normalize:o}=n;return o(["Federa historio"])},user_search:n=>{const{normalize:o}=n;return o(["Serĉi uzantojn"])},who_to_follow:n=>{const{normalize:o}=n;return o(["Kiun aboni"])},preferences:n=>{const{normalize:o}=n;return o(["Agordoj"])},chats:n=>{const{normalize:o}=n;return o(["Babiloj"])},search:n=>{const{normalize:o}=n;return o(["Serĉi"])},interactions:n=>{const{normalize:o}=n;return o(["Interagoj"])},administration:n=>{const{normalize:o}=n;return o(["Administrado"])},bookmarks:n=>{const{normalize:o}=n;return o(["Legosignoj"])},timelines:n=>{const{normalize:o}=n;return o(["Historioj"])},home_timeline:n=>{const{normalize:o}=n;return o(["Hejma historio"])},edit_pinned:n=>{const{normalize:o}=n;return o(["Redakti fiksitajn erojn"])},lists:n=>{const{normalize:o}=n;return o(["Listoj"])},edit_nav_mobile:n=>{const{normalize:o}=n;return o(["Adapti navigan breton"])},edit_finish:n=>{const{normalize:o}=n;return o(["Fini redakton"])}},notifications:{broken_favorite:n=>{const{normalize:o}=n;return o(["Nekonata stato, serĉante ĝin…"])},favorited_you:n=>{const{normalize:o}=n;return o(["ŝatis vian staton"])},followed_you:n=>{const{normalize:o}=n;return o(["ekabonis vin"])},load_older:n=>{const{normalize:o}=n;return o(["Enlegi pli malnovajn sciigojn"])},notifications:n=>{const{normalize:o}=n;return o(["Sciigoj"])},read:n=>{const{normalize:o}=n;return o(["Legite!"])},repeated_you:n=>{const{normalize:o}=n;return o(["ripetis vian staton"])},no_more_notifications:n=>{const{normalize:o}=n;return o(["Neniuj pliaj sciigoj"])},reacted_with:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["reagis per ",e(r(0))])},migrated_to:n=>{const{normalize:o}=n;return o(["migris al"])},follow_request:n=>{const{normalize:o}=n;return o(["volas vin aboni"])},error:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris akirado de sciigoj: ",e(r(0))])},submitted_report:n=>{const{normalize:o}=n;return o(["sendis raporton"])},poll_ended:n=>{const{normalize:o}=n;return o(["enketo finiĝis"])}},post_status:{new_status:n=>{const{normalize:o}=n;return o(["Afiŝi novan staton"])},account_not_locked_warning:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Via konto ne estas ",e(r(0)),". Iu ajn povas vin aboni por vidi eĉ viajn afiŝoj nur por abonantoj."])},account_not_locked_warning_link:n=>{const{normalize:o}=n;return o(["ŝlosita"])},attachments_sensitive:n=>{const{normalize:o}=n;return o(["Marki kunsendaĵojn konsternaj"])},content_type:{"text/plain":n=>{const{normalize:o}=n;return o(["Plata teksto"])},"text/bbcode":n=>{const{normalize:o}=n;return o(["BBCode"])},"text/markdown":n=>{const{normalize:o}=n;return o(["Markdown"])},"text/html":n=>{const{normalize:o}=n;return o(["HTML"])}},content_warning:n=>{const{normalize:o}=n;return o(["Temo (malnepra)"])},default:n=>{const{normalize:o}=n;return o(["Ĵus alvenis Esperantujon!"])},direct_warning:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla nur por ĉiuj menciitaj uzantoj."])},posting:n=>{const{normalize:o}=n;return o(["Afiŝante"])},scope:{direct:n=>{const{normalize:o}=n;return o(["Rekta – afiŝi nur al menciitaj uzantoj"])},private:n=>{const{normalize:o}=n;return o(["Nur abonantoj – afiŝi nur al abonantoj"])},public:n=>{const{normalize:o}=n;return o(["Publika – afiŝi al publikaj historioj"])},unlisted:n=>{const{normalize:o}=n;return o(["Nelistigita – ne afiŝi al publikaj historioj"])}},scope_notice:{unlisted:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo ne estos videbla en la Loka historio kaj la Federa historio"])},private:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla nur al viaj abonantoj"])},public:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla al ĉiuj"])}},media_description_error:n=>{const{normalize:o}=n;return o(["Malsukcesis afiŝo de vidaŭdaĵoj; reprovu"])},empty_status_error:n=>{const{normalize:o}=n;return o(["Ne povas afiŝi malplenan staton sen dosieroj"])},preview_empty:n=>{const{normalize:o}=n;return o(["Malplena"])},preview:n=>{const{normalize:o}=n;return o(["Antaŭrigardo"])},direct_warning_to_first_only:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo."])},direct_warning_to_all:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj."])},media_description:n=>{const{normalize:o}=n;return o(["Priskribo de vidaŭdaĵo"])},post:n=>{const{normalize:o}=n;return o(["Afiŝo"])},edit_remote_warning:n=>{const{normalize:o}=n;return o(["Aliaj foraj nodoj eble ne subtenas redaktadon, kaj ne povos ricevi pli novan version de via afiŝo."])},edit_unsupported_warning:n=>{const{normalize:o}=n;return o(["Pleroma ne subtenas redaktadon de mencioj aŭ enketoj."])},edit_status:n=>{const{normalize:o}=n;return o(["Stato de redakto"])}},registration:{bio:n=>{const{normalize:o}=n;return o(["Priskribo"])},email:n=>{const{normalize:o}=n;return o(["Retpoŝtadreso"])},fullname:n=>{const{normalize:o}=n;return o(["Prezenta nomo"])},password_confirm:n=>{const{normalize:o}=n;return o(["Konfirmo de pasvorto"])},registration:n=>{const{normalize:o}=n;return o(["Registriĝo"])},token:n=>{const{normalize:o}=n;return o(["Invita peco"])},captcha:n=>{const{normalize:o}=n;return o(["TESTO DE HOMECO"])},new_captcha:n=>{const{normalize:o}=n;return o(["Klaku la bildon por akiri novan teston"])},username_placeholder:n=>{const{normalize:o}=n;return o(["ekz. lain"])},fullname_placeholder:n=>{const{normalize:o}=n;return o(["ekz. Lain Ivakura"])},bio_placeholder:n=>{const{normalize:o}=n;return o(["ekz.\nSaluton, mi estas Lain.\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo « Wired »."])},validations:{username_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},fullname_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},email_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},password_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},password_confirmation_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},password_confirmation_match:n=>{const{normalize:o}=n;return o(["samu la pasvorton"])}},reason_placeholder:n=>{const{normalize:o}=n;return o(["Ĉi-node oni aprobas registriĝojn permane.\nSciigu la administrantojn kial vi volas registriĝi."])},reason:n=>{const{normalize:o}=n;return o(["Kialo registriĝi"])},register:n=>{const{normalize:o}=n;return o(["Registriĝi"])},bio_optional:n=>{const{normalize:o}=n;return o(["Prio (malnepra)"])},email_optional:n=>{const{normalize:o}=n;return o(["Retpoŝtadreso (malnepra)"])},email_language:n=>{const{normalize:o}=n;return o(["En kiu lingvo vi volus ricevi retleterojn de la servilo?"])}},settings:{app_name:n=>{const{normalize:o}=n;return o(["Nomo de aplikaĵo"])},attachmentRadius:n=>{const{normalize:o}=n;return o(["Kunsendaĵoj"])},attachments:n=>{const{normalize:o}=n;return o(["Kunsendaĵoj"])},avatar:n=>{const{normalize:o}=n;return o(["Profilbildo"])},avatarAltRadius:n=>{const{normalize:o}=n;return o(["Profilbildoj (sciigoj)"])},avatarRadius:n=>{const{normalize:o}=n;return o(["Profilbildoj"])},background:n=>{const{normalize:o}=n;return o(["Fono"])},bio:n=>{const{normalize:o}=n;return o(["Priskribo"])},blocks_tab:n=>{const{normalize:o}=n;return o(["Blokitoj"])},btnRadius:n=>{const{normalize:o}=n;return o(["Butonoj"])},cBlue:n=>{const{normalize:o}=n;return o(["Blua (respondi, aboni)"])},cGreen:n=>{const{normalize:o}=n;return o(["Verda (diskonigi)"])},cOrange:n=>{const{normalize:o}=n;return o(["Oranĝa (ŝati)"])},cRed:n=>{const{normalize:o}=n;return o(["Ruĝa (nuligi)"])},change_password:n=>{const{normalize:o}=n;return o(["Ŝanĝi pasvorton"])},change_password_error:n=>{const{normalize:o}=n;return o(["Eraris ŝanĝo de via pasvorto."])},changed_password:n=>{const{normalize:o}=n;return o(["Pasvorto sukcese ŝanĝiĝis!"])},collapse_subject:n=>{const{normalize:o}=n;return o(["Maletendi afiŝojn kun temoj"])},composing:n=>{const{normalize:o}=n;return o(["Verkado"])},confirm_new_password:n=>{const{normalize:o}=n;return o(["Konfirmu novan pasvorton"])},current_avatar:n=>{const{normalize:o}=n;return o(["Via nuna profilbildo"])},current_password:n=>{const{normalize:o}=n;return o(["Nuna pasvorto"])},current_profile_banner:n=>{const{normalize:o}=n;return o(["Via nuna profila rubando"])},data_import_export_tab:n=>{const{normalize:o}=n;return o(["Enporto / Elporto de datumoj"])},default_vis:n=>{const{normalize:o}=n;return o(["Implicita amplekso de vidibleco"])},delete_account:n=>{const{normalize:o}=n;return o(["Forigi konton"])},delete_account_description:n=>{const{normalize:o}=n;return o(["Por ĉiam forigi viajn datumojn kaj malaktivigi vian konton."])},delete_account_error:n=>{const{normalize:o}=n;return o(["Eraris forigo de via kanto. Se tio daŭre ripetiĝos, bonvolu kontakti la administranton de via nodo."])},delete_account_instructions:n=>{const{normalize:o}=n;return o(["Entajpu sube vian pasvorton por konfirmi forigon de konto."])},avatar_size_instruction:n=>{const{normalize:o}=n;return o(["La rekomendata minimuma grando de profilbildoj estas 150×150 bilderoj."])},export_theme:n=>{const{normalize:o}=n;return o(["Konservi antaŭagordon"])},filtering:n=>{const{normalize:o}=n;return o(["Filtrado"])},filtering_explanation:n=>{const{normalize:o}=n;return o(["Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos; skribu po unu linie"])},follow_export:n=>{const{normalize:o}=n;return o(["Elporto de abonoj"])},follow_export_button:n=>{const{normalize:o}=n;return o(["Elporti viajn abonojn al CSV-dosiero"])},follow_export_processing:n=>{const{normalize:o}=n;return o(["Traktante; baldaŭ vi ricevos peton elŝuti la dosieron"])},follow_import:n=>{const{normalize:o}=n;return o(["Enporto de abonoj"])},follow_import_error:n=>{const{normalize:o}=n;return o(["Eraro enportante abonojn"])},follows_imported:n=>{const{normalize:o}=n;return o(["Abonoj enportiĝis! Traktado daŭros iom da tempo."])},foreground:n=>{const{normalize:o}=n;return o(["Malfono"])},general:n=>{const{normalize:o}=n;return o(["Ĝenerala"])},hide_attachments_in_convo:n=>{const{normalize:o}=n;return o(["Kaŝi kunsendaĵojn en interparoloj"])},hide_attachments_in_tl:n=>{const{normalize:o}=n;return o(["Kaŝi kunsendaĵojn en historioj"])},max_thumbnails:n=>{const{normalize:o}=n;return o(["Maksimuma nombro da bildetoj en afiŝo"])},hide_isp:n=>{const{normalize:o}=n;return o(["Kaŝi breton propran al nodo"])},preload_images:n=>{const{normalize:o}=n;return o(["Antaŭ-enlegi bildojn"])},use_one_click_nsfw:n=>{const{normalize:o}=n;return o(["Malfermi konsternajn kunsendaĵojn per nur unu klako"])},hide_post_stats:n=>{const{normalize:o}=n;return o(["Kaŝi statistikon de afiŝoj (ekz. nombron de ŝatoj)"])},hide_user_stats:n=>{const{normalize:o}=n;return o(["Kaŝi statistikon de uzantoj (ekz. nombron de abonantoj)"])},hide_filtered_statuses:n=>{const{normalize:o}=n;return o(["Kaŝi filtritajn statojn"])},import_followers_from_a_csv_file:n=>{const{normalize:o}=n;return o(["Enporti abonojn el CSV-dosiero"])},import_theme:n=>{const{normalize:o}=n;return o(["Enlegi antaŭagordojn"])},inputRadius:n=>{const{normalize:o}=n;return o(["Enigaj kampoj"])},checkboxRadius:n=>{const{normalize:o}=n;return o(["Markbutonoj"])},instance_default:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["(originale: ",e(r("value")),")"])},instance_default_simple:n=>{const{normalize:o}=n;return o(["(originale)"])},interface:n=>{const{normalize:o}=n;return o(["Fasado"])},interfaceLanguage:n=>{const{normalize:o}=n;return o(["Lingvo de fasado"])},invalid_theme_imported:n=>{const{normalize:o}=n;return o(["La elektita dosiero ne estas subtenata haŭto de Pleromo. Neniuj ŝanĝoj al via haŭto okazis."])},limited_availability:n=>{const{normalize:o}=n;return o(["Nehavebla en via foliumilo"])},links:n=>{const{normalize:o}=n;return o(["Ligiloj"])},lock_account_description:n=>{const{normalize:o}=n;return o(["Limigi vian konton al nur abonantoj aprobitaj"])},loop_video:n=>{const{normalize:o}=n;return o(["Ripetadi filmojn"])},loop_video_silent_only:n=>{const{normalize:o}=n;return o(["Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)"])},mutes_tab:n=>{const{normalize:o}=n;return o(["Silentigoj"])},play_videos_in_modal:n=>{const{normalize:o}=n;return o(["Ludi filmojn en ŝpruca kadro"])},use_contain_fit:n=>{const{normalize:o}=n;return o(["Ne pritondi bildetojn de kunsendaĵoj"])},name:n=>{const{normalize:o}=n;return o(["Nomo"])},name_bio:n=>{const{normalize:o}=n;return o(["Nomo kaj priskribo"])},new_password:n=>{const{normalize:o}=n;return o(["Nova pasvorto"])},notification_visibility:n=>{const{normalize:o}=n;return o(["Montrotaj specoj de sciigoj"])},notification_visibility_follows:n=>{const{normalize:o}=n;return o(["Abonoj"])},notification_visibility_likes:n=>{const{normalize:o}=n;return o(["Ŝatoj"])},notification_visibility_mentions:n=>{const{normalize:o}=n;return o(["Mencioj"])},notification_visibility_repeats:n=>{const{normalize:o}=n;return o(["Ripetoj"])},no_rich_text_description:n=>{const{normalize:o}=n;return o(["Forigi riĉtekstajn formojn de ĉiuj afiŝoj"])},no_blocks:n=>{const{normalize:o}=n;return o(["Neniuj blokitoj"])},no_mutes:n=>{const{normalize:o}=n;return o(["Neniuj silentigoj"])},hide_follows_description:n=>{const{normalize:o}=n;return o(["Ne montri kiun mi sekvas"])},hide_followers_description:n=>{const{normalize:o}=n;return o(["Ne montri kiu min sekvas"])},show_admin_badge:n=>{const{normalize:o}=n;return o(["Montri la insignon de administranto en mia profilo"])},show_moderator_badge:n=>{const{normalize:o}=n;return o(["Montri la insignon de reguligisto en mia profilo"])},nsfw_clickthrough:n=>{const{normalize:o}=n;return o(["Ŝalti traklakan kaŝadon de kunsendaĵoj kaj antaŭmontroj de ligiloj por konsternaj statoj"])},oauth_tokens:n=>{const{normalize:o}=n;return o(["Pecoj de OAuth"])},token:n=>{const{normalize:o}=n;return o(["Peco"])},refresh_token:n=>{const{normalize:o}=n;return o(["Aktualiga peco"])},valid_until:n=>{const{normalize:o}=n;return o(["Valida ĝis"])},revoke_token:n=>{const{normalize:o}=n;return o(["Senvalidigi"])},panelRadius:n=>{const{normalize:o}=n;return o(["Bretoj"])},pause_on_unfocused:n=>{const{normalize:o}=n;return o(["Paŭzigi elsendfluon kiam langeto ne estas fokusata"])},presets:n=>{const{normalize:o}=n;return o(["Antaŭagordoj"])},profile_background:n=>{const{normalize:o}=n;return o(["Fono de profilo"])},profile_banner:n=>{const{normalize:o}=n;return o(["Rubando de profilo"])},profile_tab:n=>{const{normalize:o}=n;return o(["Profilo"])},radii_help:n=>{const{normalize:o}=n;return o(["Agordi fasadan rondigon de randoj (bildere)"])},replies_in_timeline:n=>{const{normalize:o}=n;return o(["Respondoj en historioj"])},reply_visibility_all:n=>{const{normalize:o}=n;return o(["Montri ĉiujn respondojn"])},reply_visibility_following:n=>{const{normalize:o}=n;return o(["Montri nur respondojn por mi aŭ miaj abonatoj"])},reply_visibility_self:n=>{const{normalize:o}=n;return o(["Montri nur respondojn por mi"])},saving_err:n=>{const{normalize:o}=n;return o(["Eraris konservado de agordoj"])},saving_ok:n=>{const{normalize:o}=n;return o(["Agordoj konserviĝis"])},security_tab:n=>{const{normalize:o}=n;return o(["Sekureco"])},scope_copy:n=>{const{normalize:o}=n;return o(["Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)"])},set_new_avatar:n=>{const{normalize:o}=n;return o(["Agordi novan profilbildon"])},set_new_profile_background:n=>{const{normalize:o}=n;return o(["Agordi novan fonon de profilo"])},set_new_profile_banner:n=>{const{normalize:o}=n;return o(["Agordi novan rubandon de profilo"])},settings:n=>{const{normalize:o}=n;return o(["Agordoj"])},subject_input_always_show:n=>{const{normalize:o}=n;return o(["Ĉiam montri kampon de temo"])},subject_line_behavior:n=>{const{normalize:o}=n;return o(["Kopii temon dum respondado"])},subject_line_email:n=>{const{normalize:o}=n;return o(["Kiel retpoŝto: «re: temo»"])},subject_line_mastodon:n=>{const{normalize:o}=n;return o(["Kiel Mastodon: kopii senŝanĝe"])},subject_line_noop:n=>{const{normalize:o}=n;return o(["Ne kopii"])},post_status_content_type:n=>{const{normalize:o}=n;return o(["Speco de enhavo de afiŝo"])},stop_gifs:n=>{const{normalize:o}=n;return o(["Movi GIF-bildojn dum ŝvebo de muso"])},streaming:n=>{const{normalize:o}=n;return o(["Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo"])},text:n=>{const{normalize:o}=n;return o(["Teksto"])},theme:n=>{const{normalize:o}=n;return o(["Haŭto"])},theme_help:n=>{const{normalize:o}=n;return o(["Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton."])},theme_help_v2_1:n=>{const{normalize:o}=n;return o(["Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon «Vakigi ĉion» por forigi ĉîujn superagordojn."])},theme_help_v2_2:n=>{const{normalize:o}=n;return o(["Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; ŝvebigu muson por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo."])},tooltipRadius:n=>{const{normalize:o}=n;return o(["Ŝpruchelpiloj/avertoj"])},upload_a_photo:n=>{const{normalize:o}=n;return o(["Alŝuti foton"])},user_settings:n=>{const{normalize:o}=n;return o(["Agordoj de uzanto"])},values:{false:n=>{const{normalize:o}=n;return o(["ne"])},true:n=>{const{normalize:o}=n;return o(["jes"])}},notifications:n=>{const{normalize:o}=n;return o(["Sciigoj"])},enable_web_push_notifications:n=>{const{normalize:o}=n;return o(["Ŝalti retajn pasivajn sciigojn"])},style:{switcher:{keep_color:n=>{const{normalize:o}=n;return o(["Konservi kolorojn"])},keep_shadows:n=>{const{normalize:o}=n;return o(["Konservi ombrojn"])},keep_opacity:n=>{const{normalize:o}=n;return o(["Konservi maltravideblecon"])},keep_roundness:n=>{const{normalize:o}=n;return o(["Konservi rondecon"])},keep_fonts:n=>{const{normalize:o}=n;return o(["Konservi tiparojn"])},save_load_hint:n=>{const{normalize:o}=n;return o(["Elektebloj de «konservi» konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos."])},reset:n=>{const{normalize:o}=n;return o(["Restarigi"])},clear_all:n=>{const{normalize:o}=n;return o(["Vakigi ĉion"])},clear_opacity:n=>{const{normalize:o}=n;return o(["Vakigi maltravideblecon"])},help:{fe_downgraded:n=>{const{normalize:o}=n;return o(["Versio de PleromaFE reen iris."])},fe_upgraded:n=>{const{normalize:o}=n;return o(["La motoro de haŭtoj de PleromaFE ĝisdatiĝis post ĝisdatigo de la versio."])},older_version_imported:n=>{const{normalize:o}=n;return o(["La enportita dosiero estis farita per pli malnova versio de PleromaFE."])},future_version_imported:n=>{const{normalize:o}=n;return o(["La enportita dosiero estis farita per pli nova versio de PleromaFE."])},v2_imported:n=>{const{normalize:o}=n;return o(["La dosiero, kiun vi enportis, estis farita por malnova versio de PleromaFE. Ni provas maksimumigi interkonformecon, sed tamen eble montriĝos misoj."])},upgraded_from_v2:n=>{const{normalize:o}=n;return o(["PleromaFE estis ĝisdatigita; la haŭto eble aspektos malsame ol kiel vi ĝin memoras."])},snapshot_missing:n=>{const{normalize:o}=n;return o(["Neniu momentokopio de haŭto estis en la dosiero, ĝi povas aspekti iom malsame ol oni intencis."])},snapshot_present:n=>{const{normalize:o}=n;return o(["Ĉiuj valoroj estas transpasataj, ĉar momentokopio de haŭto estas enlegita. Vi povas enlegi anstataŭe la aktualajn datumojn de haŭto."])},snapshot_source_mismatch:n=>{const{normalize:o}=n;return o(["Versioj konfliktas: plej probable la fasado estis reirigita kaj ree ĝisdatigita; se vi ŝanĝis la haŭton per pli malnova versio de la fasado, vi probable volas uzi la malnovan version. Alie uzu la novan."])},migration_napshot_gone:n=>{const{normalize:o}=n;return o(["Ial mankis momentokopio; io povus aspekti malsame ol en via memoro."])},migration_snapshot_ok:n=>{const{normalize:o}=n;return o(["Certige, momentokopio de la haŭto enlegiĝis. Vi povas provi enlegi datumojn de la haŭto."])}},use_source:n=>{const{normalize:o}=n;return o(["Nova versio"])},use_snapshot:n=>{const{normalize:o}=n;return o(["Malnova versio"])},keep_as_is:n=>{const{normalize:o}=n;return o(["Teni senŝanĝa"])},load_theme:n=>{const{normalize:o}=n;return o(["Enlegi haŭton"])}},common:{color:n=>{const{normalize:o}=n;return o(["Koloro"])},opacity:n=>{const{normalize:o}=n;return o(["Maltravidebleco"])},contrast:{hint:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Proporcio de kontrasto estas ",e(r("ratio")),", ĝi ",e(r("level"))," ",e(r("context"))])},level:{aa:n=>{const{normalize:o}=n;return o(["plenumas la gvidilon je nivelo AA (minimuma)"])},aaa:n=>{const{normalize:o}=n;return o(["plenumas la gvidilon je nivela AAA (rekomendita)"])},bad:n=>{const{normalize:o}=n;return o(["plenumas neniujn faciluzajn gvidilojn"])}},context:{"18pt":n=>{const{normalize:o}=n;return o(["por granda (18pt+) teksto"])},text:n=>{const{normalize:o}=n;return o(["por teksto"])}}}},common_colors:{_tab_label:n=>{const{normalize:o}=n;return o(["Komunaj"])},main:n=>{const{normalize:o}=n;return o(["Komunaj koloroj"])},foreground_hint:n=>{const{normalize:o}=n;return o(["Vidu langeton «Specialaj» por pli detalaj agordoj"])},rgbo:n=>{const{normalize:o}=n;return o(["Bildsimboloj, emfazoj, insignoj"])}},advanced_colors:{_tab_label:n=>{const{normalize:o}=n;return o(["Specialaj"])},alert:n=>{const{normalize:o}=n;return o(["Fono de averto"])},alert_error:n=>{const{normalize:o}=n;return o(["Eraro"])},badge:n=>{const{normalize:o}=n;return o(["Fono de insigno"])},badge_notification:n=>{const{normalize:o}=n;return o(["Sciigo"])},panel_header:n=>{const{normalize:o}=n;return o(["Kapo de breto"])},top_bar:n=>{const{normalize:o}=n;return o(["Supra breto"])},borders:n=>{const{normalize:o}=n;return o(["Limoj"])},buttons:n=>{const{normalize:o}=n;return o(["Butonoj"])},inputs:n=>{const{normalize:o}=n;return o(["Enigaj kampoj"])},faint_text:n=>{const{normalize:o}=n;return o(["Malvigla teksto"])},chat:{border:n=>{const{normalize:o}=n;return o(["Limo"])},outgoing:n=>{const{normalize:o}=n;return o(["Eliraj"])},incoming:n=>{const{normalize:o}=n;return o(["Envenaj"])}},tabs:n=>{const{normalize:o}=n;return o(["Langetoj"])},disabled:n=>{const{normalize:o}=n;return o(["Malŝaltita"])},selectedMenu:n=>{const{normalize:o}=n;return o(["Elektita menuero"])},selectedPost:n=>{const{normalize:o}=n;return o(["Elektita afiŝo"])},pressed:n=>{const{normalize:o}=n;return o(["Premita"])},highlight:n=>{const{normalize:o}=n;return o(["Emfazitaj eroj"])},icons:n=>{const{normalize:o}=n;return o(["Bildsimboloj"])},poll:n=>{const{normalize:o}=n;return o(["Grafo de enketo"])},underlay:n=>{const{normalize:o}=n;return o(["Subtavolo"])},popover:n=>{const{normalize:o}=n;return o(["Ŝprucaĵoj, menuoj"])},post:n=>{const{normalize:o}=n;return o(["Afiŝoj/Priskriboj de uzantoj"])},alert_neutral:n=>{const{normalize:o}=n;return o(["Neŭtrala"])},alert_warning:n=>{const{normalize:o}=n;return o(["Averto"])},toggled:n=>{const{normalize:o}=n;return o(["Ŝaltita"])},wallpaper:n=>{const{normalize:o}=n;return o(["Fonbildo"])}},radii:{_tab_label:n=>{const{normalize:o}=n;return o(["Rondeco"])}},shadows:{_tab_label:n=>{const{normalize:o}=n;return o(["Ombro kaj lumo"])},component:n=>{const{normalize:o}=n;return o(["Ero"])},override:n=>{const{normalize:o}=n;return o(["Transpasi"])},shadow_id:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Ombro #",e(r("value"))])},blur:n=>{const{normalize:o}=n;return o(["Malklarigo"])},spread:n=>{const{normalize:o}=n;return o(["Vastigo"])},inset:n=>{const{normalize:o}=n;return o(["Internigo"])},hint:n=>{const{normalize:o}=n;return o(["Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios."])},filter_hint:{always_drop_shadow:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Averto: ĉi tiu ombro ĉiam uzas ",e(r(0))," kiam la foliumilo tion subtenas."])},drop_shadow_syntax:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," ne subtenas parametron ",e(r(1))," kaj ĉefvorton ",e(r(2)),"."])},avatar_inset:n=>{const{normalize:o}=n;return o(["Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj."])},spread_zero:n=>{const{normalize:o}=n;return o(["Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo"])},inset_classic:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Internaj ombroj uzos ",e(r(0))])}},components:{panel:n=>{const{normalize:o}=n;return o(["Breto"])},panelHeader:n=>{const{normalize:o}=n;return o(["Kapo de breto"])},topBar:n=>{const{normalize:o}=n;return o(["Supra breto"])},avatar:n=>{const{normalize:o}=n;return o(["Profilbildo de uzanto (en profila vido)"])},avatarStatus:n=>{const{normalize:o}=n;return o(["Profilbildo de uzanto (en afiŝa vido)"])},popup:n=>{const{normalize:o}=n;return o(["Ŝprucaĵoj"])},button:n=>{const{normalize:o}=n;return o(["Butono"])},buttonHover:n=>{const{normalize:o}=n;return o(["Butono (je ŝvebo)"])},buttonPressed:n=>{const{normalize:o}=n;return o(["Butono (premita)"])},buttonPressedHover:n=>{const{normalize:o}=n;return o(["Butono (je premo kaj ŝvebo)"])},input:n=>{const{normalize:o}=n;return o(["Eniga kampo"])}},hintV3:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Kolorojn de ombroj vi ankaŭ povas skribi per la sistemo ",e(r(0)),"."])}},fonts:{_tab_label:n=>{const{normalize:o}=n;return o(["Tiparoj"])},help:n=>{const{normalize:o}=n;return o(["Elektu tiparon uzotan por eroj de la fasado. Por «propra» vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo."])},components:{interface:n=>{const{normalize:o}=n;return o(["Fasado"])},input:n=>{const{normalize:o}=n;return o(["Enigaj kampoj"])},post:n=>{const{normalize:o}=n;return o(["Teksto de afiŝo"])},postCode:n=>{const{normalize:o}=n;return o(["Egallarĝa teksto en afiŝo (riĉteksto)"])}},family:n=>{const{normalize:o}=n;return o(["Nomo de tiparo"])},size:n=>{const{normalize:o}=n;return o(["Grando (en bilderoj)"])},weight:n=>{const{normalize:o}=n;return o(["Pezo (graseco)"])},custom:n=>{const{normalize:o}=n;return o(["Propra"])}},preview:{header:n=>{const{normalize:o}=n;return o(["Antaŭrigardo"])},content:n=>{const{normalize:o}=n;return o(["Enhavo"])},error:n=>{const{normalize:o}=n;return o(["Ekzempla eraro"])},button:n=>{const{normalize:o}=n;return o(["Butono"])},text:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Kelko da pliaj ",e(r(0))," kaj ",e(r(1))])},mono:n=>{const{normalize:o}=n;return o(["enhavo"])},input:n=>{const{normalize:o}=n;return o(["Ĵus alvenis Esperantujon!"])},faint_link:n=>{const{normalize:o}=n;return o(["helpan manlibron"])},fine_print:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Legu nian ",e(r(0))," por nenion utilan ekscii!"])},header_faint:n=>{const{normalize:o}=n;return o(["Tio estas en ordo"])},checkbox:n=>{const{normalize:o}=n;return o(["Mi legetis la kondiĉojn de uzado"])},link:n=>{const{normalize:o}=n;return o(["bela eta ligil’"])}}},discoverable:n=>{const{normalize:o}=n;return o(["Permesi trovon de ĉi tiu konto en serĉrezultoj kaj aliaj servoj"])},mutes_and_blocks:n=>{const{normalize:o}=n;return o(["Blokado kaj silentigoj"])},chatMessageRadius:n=>{const{normalize:o}=n;return o(["Babileja mesaĝo"])},changed_email:n=>{const{normalize:o}=n;return o(["Retpoŝtadreso sukcese ŝanĝiĝis!"])},change_email_error:n=>{const{normalize:o}=n;return o(["Eraris ŝanĝo de via retpoŝtadreso."])},change_email:n=>{const{normalize:o}=n;return o(["Ŝanĝi retpoŝtadreson"])},bot:n=>{const{normalize:o}=n;return o(["Ĉi tio estas robota konto"])},blocks_imported:n=>{const{normalize:o}=n;return o(["Blokitoj enportiĝis! Traktado daŭros iom da tempo."])},block_import_error:n=>{const{normalize:o}=n;return o(["Eraris enporto de blokitoj"])},block_export:n=>{const{normalize:o}=n;return o(["Elporto de blokitoj"])},block_import:n=>{const{normalize:o}=n;return o(["Enporto de blokitoj"])},block_export_button:n=>{const{normalize:o}=n;return o(["Elporti viajn blokitojn al CSV-dosiero"])},allow_following_move:n=>{const{normalize:o}=n;return o(["Permesi memagan abonadon kiam abonata konto migras"])},mfa:{verify:{desc:n=>{const{normalize:o}=n;return o(["Por ŝalti duoblan aŭtentikigon, enigu la kodon el via aplikaĵo por duobla aŭtentikigo:"])}},scan:{secret_code:n=>{const{normalize:o}=n;return o(["Ŝlosilo"])},desc:n=>{const{normalize:o}=n;return o(["Uzante vian aplikaĵon por duobla aŭtentikigo, skanu ĉi tiun rapidrespondan kodon aŭ enigu tekstan ŝlosilon:"])},title:n=>{const{normalize:o}=n;return o(["Skani"])}},authentication_methods:n=>{const{normalize:o}=n;return o(["Metodoj de aŭtentikigo"])},recovery_codes_warning:n=>{const{normalize:o}=n;return o(["Notu la kodojn aŭ konservu ilin en sekura loko – alie vi ne revidos ilin. Se vi perdos aliron al via aplikaĵo por duobla aŭtentikigo kaj al la rehavaj kodoj, vi ne povos aliri vian konton."])},waiting_a_recovery_codes:n=>{const{normalize:o}=n;return o(["Ricevante savkopiajn kodojn…"])},recovery_codes:n=>{const{normalize:o}=n;return o(["Rehavaj kodoj."])},warning_of_generate_new_codes:n=>{const{normalize:o}=n;return o(["Kiam vi estigos novajn rehavajn kodojn, viaj malnovaj ne plu funkcios."])},generate_new_recovery_codes:n=>{const{normalize:o}=n;return o(["Estigi novajn rehavajn kodojn"])},title:n=>{const{normalize:o}=n;return o(["Duobla aŭtentikigo"])},otp:n=>{const{normalize:o}=n;return o(["OTP"])},wait_pre_setup_otp:n=>{const{normalize:o}=n;return o(["antaŭagordante OTP"])},setup_otp:n=>{const{normalize:o}=n;return o(["Agordi OTP"])},confirm_and_enable:n=>{const{normalize:o}=n;return o(["Konfirmi kaj ŝalti OTP"])}},enter_current_password_to_confirm:n=>{const{normalize:o}=n;return o(["Enigu vian pasvorton por konfirmi vian identecon"])},security:n=>{const{normalize:o}=n;return o(["Sekureco"])},fun:n=>{const{normalize:o}=n;return o(["Amuzo"])},type_domains_to_mute:n=>{const{normalize:o}=n;return o(["Serĉu silentigotajn retnomojn"])},useStreamingApiWarning:n=>{const{normalize:o}=n;return o(["(Nerekomendate, eksperimente, povas preterpasi afiŝojn)"])},useStreamingApi:n=>{const{normalize:o}=n;return o(["Ricevi afiŝojn kaj sciigojn realtempe"])},user_mutes:n=>{const{normalize:o}=n;return o(["Uzantoj"])},reset_background_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas restarigi la fonon?"])},reset_banner_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas restarigi la rubandon?"])},reset_avatar_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas restarigi la profilbildon?"])},reset_profile_banner:n=>{const{normalize:o}=n;return o(["Restarigi rubandon de profilo"])},reset_profile_background:n=>{const{normalize:o}=n;return o(["Restarigi fonon de profilo"])},reset_avatar:n=>{const{normalize:o}=n;return o(["Restarigi profilbildon"])},minimal_scopes_mode:n=>{const{normalize:o}=n;return o(["Minimumigi elekteblojn pri amplekso de afiŝoj"])},search_user_to_block:n=>{const{normalize:o}=n;return o(["Serĉu, kiun vi volas bloki"])},search_user_to_mute:n=>{const{normalize:o}=n;return o(["Serĉu, kiun vi volas silentigi"])},autohide_floating_post_button:n=>{const{normalize:o}=n;return o(["Memage kaŝi la butonon por Nova afiŝo (poŝtelefone)"])},hide_followers_count_description:n=>{const{normalize:o}=n;return o(["Ne montri nombron de abonantoj"])},hide_follows_count_description:n=>{const{normalize:o}=n;return o(["Ne montri nombron de abonoj"])},notification_visibility_emoji_reactions:n=>{const{normalize:o}=n;return o(["Reagoj"])},notification_visibility_moves:n=>{const{normalize:o}=n;return o(["Migroj"])},new_email:n=>{const{normalize:o}=n;return o(["Nova retpoŝtadreso"])},profile_fields:{value:n=>{const{normalize:o}=n;return o(["Enhavo"])},name:n=>{const{normalize:o}=n;return o(["Etikedo"])},add_field:n=>{const{normalize:o}=n;return o(["Aldoni kampon"])},label:n=>{const{normalize:o}=n;return o(["Pridatumoj de profilo"])}},import_blocks_from_a_csv_file:n=>{const{normalize:o}=n;return o(["Enporti blokitojn el CSV-dosiero"])},hide_muted_posts:n=>{const{normalize:o}=n;return o(["Kaŝi afiŝojn de silentigitaj uzantoj"])},emoji_reactions_on_timeline:n=>{const{normalize:o}=n;return o(["Montri bildosignajn reagojn en historioj"])},pad_emoji:n=>{const{normalize:o}=n;return o(["Meti spacetojn ĉirkaŭ bildosigno post ties elekto"])},domain_mutes:n=>{const{normalize:o}=n;return o(["Retnomoj"])},notification_blocks:n=>{const{normalize:o}=n;return o(["Blokinte uzanton vi malabonos ĝin kaj haltigos ĉiujn sciigojn."])},notification_mutes:n=>{const{normalize:o}=n;return o(["Por ne plu ricevi sciigojn de certa uzanto, silentigu ĝin."])},notification_setting_hide_notification_contents:n=>{const{normalize:o}=n;return o(["Kaŝi la sendinton kaj la enhavojn de pasivaj sciigoj"])},notification_setting_privacy:n=>{const{normalize:o}=n;return o(["Privateco"])},notification_setting_block_from_strangers:n=>{const{normalize:o}=n;return o(["Bloki sciigojn de uzantoj, kiujn vi ne abonas"])},notification_setting_filters:n=>{const{normalize:o}=n;return o(["Filtriloj"])},greentext:n=>{const{normalize:o}=n;return o(["Memecitaĵoj"])},version:{frontend_version:n=>{const{normalize:o}=n;return o(["Versio de fasado"])},backend_version:n=>{const{normalize:o}=n;return o(["Versio de internaĵo"])},title:n=>{const{normalize:o}=n;return o(["Versio"])}},accent:n=>{const{normalize:o}=n;return o(["Emfazo"])},virtual_scrolling:n=>{const{normalize:o}=n;return o(["Optimumigi bildigon de historioj"])},import_mutes_from_a_csv_file:n=>{const{normalize:o}=n;return o(["Enporti silentigojn el CSV-dosiero"])},mutes_imported:n=>{const{normalize:o}=n;return o(["Silentigoj enportiĝis! Traktado daŭros iom da tempo."])},mute_import_error:n=>{const{normalize:o}=n;return o(["Eraris enporto de silentigoj"])},mute_import:n=>{const{normalize:o}=n;return o(["Enporto de silentigoj"])},mute_export_button:n=>{const{normalize:o}=n;return o(["Elportu viajn silentigojn al CSV-dosiero"])},mute_export:n=>{const{normalize:o}=n;return o(["Elporto de silentigoj"])},hide_wallpaper:n=>{const{normalize:o}=n;return o(["Kaŝi fonbildon de nodo"])},setting_changed:n=>{const{normalize:o}=n;return o(["Agordo malsamas de la implicita"])},more_settings:n=>{const{normalize:o}=n;return o(["Pliaj agordoj"])},sensitive_by_default:n=>{const{normalize:o}=n;return o(["Implicite marki afiŝojn konsternaj"])},reply_visibility_following_short:n=>{const{normalize:o}=n;return o(["Montri respondojn por miaj abonatoj"])},hide_all_muted_posts:n=>{const{normalize:o}=n;return o(["Kaŝi silentigitajn afiŝojn"])},hide_media_previews:n=>{const{normalize:o}=n;return o(["Kaŝi antaŭrigardojn al vidaŭdaĵoj"])},word_filter:n=>{const{normalize:o}=n;return o(["Vortofiltro"])},reply_visibility_self_short:n=>{const{normalize:o}=n;return o(["Montri nur respondojn por mi"])},file_export_import:{errors:{file_slightly_new:n=>{const{normalize:o}=n;return o(["Etversio de dosiero malsamas, iuj agordoj eble ne funkcios"])},file_too_old:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Nekonforma ĉefa versio: ",e(r("fileMajor")),", versio de dosiero estas tro malnova kaj nesubtenata (minimuma estas ",e(r("feMajor")),")"])},file_too_new:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Nekonforma ĉefa versio: ",e(r("fileMajor")),", ĉi tiu PleromaFE (agordoj je versio ",e(r("feMajor")),") tro malnovas por tio"])},invalid_file:n=>{const{normalize:o}=n;return o(["La elektita dosiero ne estas subtenata savkopio de agordoj de Pleroma. Nenio ŝanĝiĝis."])}},restore_settings:n=>{const{normalize:o}=n;return o(["Rehavi agordojn el dosiero"])},backup_settings_theme:n=>{const{normalize:o}=n;return o(["Savkopii agordojn kaj haŭton al dosiero"])},backup_settings:n=>{const{normalize:o}=n;return o(["Savkopii agordojn al dosiero"])},backup_restore:n=>{const{normalize:o}=n;return o(["Savkopio de agordoj"])}},right_sidebar:n=>{const{normalize:o}=n;return o(["Montri flankan breton dekstre"])},save:n=>{const{normalize:o}=n;return o(["Konservi ŝanĝojn"])},hide_shoutbox:n=>{const{normalize:o}=n;return o(["Kaŝi kriujon de nodo"])},always_show_post_button:n=>{const{normalize:o}=n;return o(["Ĉiam montri ŝvebantan butonon por nova afiŝo"])},mentions_new_style:n=>{const{normalize:o}=n;return o(["Pli mojosaj menciligiloj"])},mentions_new_place:n=>{const{normalize:o}=n;return o(["Meti menciojn sur apartan linion"])},lists_navigation:n=>{const{normalize:o}=n;return o(["Montri listojn en navigiloj"])},account_backup:n=>{const{normalize:o}=n;return o(["Savkopio de konto"])},account_backup_description:n=>{const{normalize:o}=n;return o(["Ĉi tio povigas vin elŝuti arĥivon de viaj afiŝoj kaj ĉiuj informoj pri via konto, sed ili ne jam povas enportiĝi en konton de Pleroma."])},list_aliases_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris akirado de kromnomoj: ",e(r("error"))])},move_account_notes:n=>{const{normalize:o}=n;return o(["Se vi volas movi la konton aliloken, vi devas iri al via celata konto, kaj aldoni kromnomon ligitan al tie ĉi."])},navbar_column_stretch:n=>{const{normalize:o}=n;return o(["Etendi navigan breton laŭ larĝeco de kolumnoj"])},posts:n=>{const{normalize:o}=n;return o(["Afiŝoj"])},notification_visibility_polls:n=>{const{normalize:o}=n;return o(["Finoj de enketoj kun via voĉo"])},conversation_display:n=>{const{normalize:o}=n;return o(["Aspekto de interparoloj"])},disable_sticky_headers:n=>{const{normalize:o}=n;return o(["Ne alglui kapojn de kolumnoj al supro de la ekrano"])},conversation_display_linear_quick:n=>{const{normalize:o}=n;return o(["Linia vido"])},use_websockets:n=>{const{normalize:o}=n;return o(["Uzi teĥnikaron «websockets» (tuja ĝisdatigo)"])},mention_link_display_full_for_remote:n=>{const{normalize:o}=n;return o(["plene nur je uzantoj foraj (ekz. ","@","zozo","@","ekzemplo.org)"])},expert_mode:n=>{const{normalize:o}=n;return o(["Montri altnivelajn"])},setting_server_side:n=>{const{normalize:o}=n;return o(["Ĉi tiu agordo estas ligita al via profilo, kaj efektiviĝon en ĉiuj viaj salutoj kaj klientoj"])},post_look_feel:n=>{const{normalize:o}=n;return o(["Aspekto de afiŝoj"])},mention_links:n=>{const{normalize:o}=n;return o(["Menciaj ligiloj"])},email_language:n=>{const{normalize:o}=n;return o(["Lingvo de leteroj ricevotaj de la servilo"])},account_backup_table_head:n=>{const{normalize:o}=n;return o(["Savkopio"])},download_backup:n=>{const{normalize:o}=n;return o(["Elŝuti"])},backup_not_ready:n=>{const{normalize:o}=n;return o(["Ĉi tiu savkopio ne jam pretas."])},remove_backup:n=>{const{normalize:o}=n;return o(["Forigi"])},list_backups_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris akirado de listo de savkopioj: ",e(r("error"))])},add_backup:n=>{const{normalize:o}=n;return o(["Fari novan savkopion"])},added_backup:n=>{const{normalize:o}=n;return o(["Aldonis novan savkopion."])},add_backup_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris aldono de nova savkopio: ",e(r("error"))])},account_alias:n=>{const{normalize:o}=n;return o(["Kromnomoj de konto"])},account_alias_table_head:n=>{const{normalize:o}=n;return o(["Kromnomo"])},hide_list_aliases_error_action:n=>{const{normalize:o}=n;return o(["Fermi"])},remove_alias:n=>{const{normalize:o}=n;return o(["Forigi ĉi tiun kromnomon"])},new_alias_target:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Aldoni novan kromnomon (ekz. ",e(r("example")),")"])},added_alias:n=>{const{normalize:o}=n;return o(["Kromnomo estas aldonita."])},add_alias_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris aldono de kromnomo: ",e(r("error"))])},move_account:n=>{const{normalize:o}=n;return o(["Movi konton"])},move_account_target:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Celata konto (ekz. ",e(r("example")),")"])},moved_account:n=>{const{normalize:o}=n;return o(["Konto moviĝis."])},move_account_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris movado de konto: ",e(r("error"))])},wordfilter:n=>{const{normalize:o}=n;return o(["Vortofiltrado"])},word_filter_and_more:n=>{const{normalize:o}=n;return o(["Vortofiltrado kaj pli…"])},mute_bot_posts:n=>{const{normalize:o}=n;return o(["Silentigi afiŝojn de robotoj"])},hide_bot_indication:n=>{const{normalize:o}=n;return o(["Kaŝi markon de roboteco en afiŝoj"])},hide_wordfiltered_statuses:n=>{const{normalize:o}=n;return o(["Kaŝi vorte filtritajn statojn"])},hide_muted_threads:n=>{const{normalize:o}=n;return o(["Kaŝi silentigitajn fadenojn"])},account_privacy:n=>{const{normalize:o}=n;return o(["Privateco"])},user_profiles:n=>{const{normalize:o}=n;return o(["Profiloj de uzantoj"])},hide_favorites_description:n=>{const{normalize:o}=n;return o(["Ne montri liston de miaj ŝatatoj (oni tamen sciiĝas)"])},conversation_display_tree:n=>{const{normalize:o}=n;return o(["Arba stilo"])},conversation_display_tree_quick:n=>{const{normalize:o}=n;return o(["Arba vido"])},show_scrollbars:n=>{const{normalize:o}=n;return o(["Montri rulumajn bretojn de flankaj kolumnoj"])},third_column_mode_none:n=>{const{normalize:o}=n;return o(["Neniam montri trian kolumnon"])},third_column_mode_notifications:n=>{const{normalize:o}=n;return o(["Kolumno de sciigoj"])},columns:n=>{const{normalize:o}=n;return o(["Kolumnoj"])},column_sizes:n=>{const{normalize:o}=n;return o(["Grandeco de kolumnoj"])},column_sizes_sidebar:n=>{const{normalize:o}=n;return o(["Flanka breto"])},column_sizes_content:n=>{const{normalize:o}=n;return o(["Enhavo"])},column_sizes_notifs:n=>{const{normalize:o}=n;return o(["Sciigoj"])},tree_advanced:n=>{const{normalize:o}=n;return o(["Permesi pli flekseblan navigadon en arba vido"])},conversation_display_linear:n=>{const{normalize:o}=n;return o(["Linia stilo"])},conversation_other_replies_button:n=>{const{normalize:o}=n;return o(["Montri la butonon «aliaj respondoj»"])},conversation_other_replies_button_below:n=>{const{normalize:o}=n;return o(["Sub statoj"])},conversation_other_replies_button_inside:n=>{const{normalize:o}=n;return o(["En statoj"])},max_depth_in_thread:n=>{const{normalize:o}=n;return o(["Maksimuma nombro de niveloj implicite montrataj en fadeno"])},auto_update:n=>{const{normalize:o}=n;return o(["Montri novajn afiŝojn memage"])},use_at_icon:n=>{const{normalize:o}=n;return o(["Montri simbolon ","@"," kiel bildon anstataŭ teksto"])},mention_link_display:n=>{const{normalize:o}=n;return o(["Montri menciajn ligilojn"])},mention_link_display_short:n=>{const{normalize:o}=n;return o(["ĉiam mallonge (ekz. ","@","zozo)"])},mention_link_display_full:n=>{const{normalize:o}=n;return o(["ĉiam plene (ekz. ","@","zozo","@","ekzemplo.org)"])},mention_link_show_avatar:n=>{const{normalize:o}=n;return o(["Montri profilbildon de uzanto apud la ligilo"])},mention_link_show_avatar_quick:n=>{const{normalize:o}=n;return o(["Montri profilbildon de uzanto apud mencioj"])},mention_link_fade_domain:n=>{const{normalize:o}=n;return o(["Malvigligi retnomojn (ekz. ","@","ekzemplo.org en ","@","zozo","@","ekzemplo.org)"])},mention_link_bolden_you:n=>{const{normalize:o}=n;return o(["Emfazi vian mencion, se vi estas menciita"])},mention_link_use_tooltip:n=>{const{normalize:o}=n;return o(["Montri karton de uzanto per klako al mencia ligilo"])},user_popover_avatar_action_close:n=>{const{normalize:o}=n;return o(["Fermi la ŝprucaĵon"])},user_popover_avatar_action_open:n=>{const{normalize:o}=n;return o(["Malfermi la profilon"])},user_popover_avatar_overlay:n=>{const{normalize:o}=n;return o(["Aperigi ŝprucaĵon pri uzanto sur profilbildo"])},show_yous:n=>{const{normalize:o}=n;return o(["Montri la markon «(Vi)»"])},user_popover_avatar_action_zoom:n=>{const{normalize:o}=n;return o(["Zomi la profilbildon"])}},timeline:{collapse:n=>{const{normalize:o}=n;return o(["Maletendi"])},conversation:n=>{const{normalize:o}=n;return o(["Interparolo"])},error_fetching:n=>{const{normalize:o}=n;return o(["Eraris ĝisdatigo"])},load_older:n=>{const{normalize:o}=n;return o(["Montri pli malnovajn statojn"])},no_retweet_hint:n=>{const{normalize:o}=n;return o(["Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti"])},repeated:n=>{const{normalize:o}=n;return o(["ripetis"])},show_new:n=>{const{normalize:o}=n;return o(["Montri novajn"])},up_to_date:n=>{const{normalize:o}=n;return o(["Ĝisdata"])},no_more_statuses:n=>{const{normalize:o}=n;return o(["Neniuj pliaj statoj"])},no_statuses:n=>{const{normalize:o}=n;return o(["Neniuj statoj"])},reload:n=>{const{normalize:o}=n;return o(["Enlegi ree"])},error:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris akirado de historio: ",e(r(0))])},socket_reconnected:n=>{const{normalize:o}=n;return o(["Realtempa konekto fariĝis"])},socket_broke:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Realtempa konekto perdiĝis: CloseEvent code ",e(r(0))])}},user_card:{approve:n=>{const{normalize:o}=n;return o(["Aprobi"])},block:n=>{const{normalize:o}=n;return o(["Bloki"])},blocked:n=>{const{normalize:o}=n;return o(["Blokita!"])},deny:n=>{const{normalize:o}=n;return o(["Rifuzi"])},favorites:n=>{const{normalize:o}=n;return o(["Ŝatataj"])},follow:n=>{const{normalize:o}=n;return o(["Aboni"])},follow_sent:n=>{const{normalize:o}=n;return o(["Peto sendiĝis!"])},follow_progress:n=>{const{normalize:o}=n;return o(["Petante…"])},follow_unfollow:n=>{const{normalize:o}=n;return o(["Malaboni"])},followees:n=>{const{normalize:o}=n;return o(["Abonatoj"])},followers:n=>{const{normalize:o}=n;return o(["Abonantoj"])},following:n=>{const{normalize:o}=n;return o(["Abonata!"])},follows_you:n=>{const{normalize:o}=n;return o(["Abonas vin!"])},its_you:n=>{const{normalize:o}=n;return o(["Tio estas vi!"])},media:n=>{const{normalize:o}=n;return o(["Vidaŭdaĵoj"])},mute:n=>{const{normalize:o}=n;return o(["Silentigi"])},muted:n=>{const{normalize:o}=n;return o(["Silentigita"])},per_day:n=>{const{normalize:o}=n;return o(["tage"])},remote_follow:n=>{const{normalize:o}=n;return o(["Fore aboni"])},statuses:n=>{const{normalize:o}=n;return o(["Statoj"])},unblock:n=>{const{normalize:o}=n;return o(["Malbloki"])},unblock_progress:n=>{const{normalize:o}=n;return o(["Malblokante…"])},block_progress:n=>{const{normalize:o}=n;return o(["Blokante…"])},unmute:n=>{const{normalize:o}=n;return o(["Malsilentigi"])},unmute_progress:n=>{const{normalize:o}=n;return o(["Malsilentigante…"])},mute_progress:n=>{const{normalize:o}=n;return o(["Silentigante…"])},report:n=>{const{normalize:o}=n;return o(["Raporti"])},message:n=>{const{normalize:o}=n;return o(["Mesaĝo"])},mention:n=>{const{normalize:o}=n;return o(["Mencio"])},hidden:n=>{const{normalize:o}=n;return o(["Kaŝita"])},admin_menu:{delete_user:n=>{const{normalize:o}=n;return o(["Forigi uzanton"])},quarantine:n=>{const{normalize:o}=n;return o(["Malpermesi federadon de afiŝoj de uzanto"])},disable_any_subscription:n=>{const{normalize:o}=n;return o(["Malpermesi ĉian abonadon al uzanto"])},disable_remote_subscription:n=>{const{normalize:o}=n;return o(["Malpermesi abonadon al uzanto el foraj nodoj"])},sandbox:n=>{const{normalize:o}=n;return o(["Devigi afiŝojn esti nur por abonantoj"])},force_unlisted:n=>{const{normalize:o}=n;return o(["Devigi afiŝojn nelistiĝi"])},strip_media:n=>{const{normalize:o}=n;return o(["Forigi vidaŭdaĵojn de afiŝoj"])},force_nsfw:n=>{const{normalize:o}=n;return o(["Marki ĉiujn afiŝojn konsternaj"])},delete_account:n=>{const{normalize:o}=n;return o(["Forigi konton"])},deactivate_account:n=>{const{normalize:o}=n;return o(["Malaktivigi konton"])},activate_account:n=>{const{normalize:o}=n;return o(["Aktivigi konton"])},revoke_moderator:n=>{const{normalize:o}=n;return o(["Malnomumi reguligiston"])},grant_moderator:n=>{const{normalize:o}=n;return o(["Nomumi reguligiston"])},revoke_admin:n=>{const{normalize:o}=n;return o(["Malnomumi administranton"])},grant_admin:n=>{const{normalize:o}=n;return o(["Nomumi administranton"])},moderation:n=>{const{normalize:o}=n;return o(["Reguligado"])},delete_user_data_and_deactivate_confirmation:n=>{const{normalize:o}=n;return o(["Tio ĉi por ĉiam forigos datumojn de tiu ĉi konto, kaj malaktivigos ĝin. Ĉu vi plene certas?"])}},show_repeats:n=>{const{normalize:o}=n;return o(["Montri ripetojn"])},hide_repeats:n=>{const{normalize:o}=n;return o(["Kaŝi ripetojn"])},unsubscribe:n=>{const{normalize:o}=n;return o(["Ne ricevi sciigojn"])},subscribe:n=>{const{normalize:o}=n;return o(["Ricevi sciigojn"])},bot:n=>{const{normalize:o}=n;return o(["Roboto"])},highlight:{side:n=>{const{normalize:o}=n;return o(["Flanka strio"])},striped:n=>{const{normalize:o}=n;return o(["Stria fono"])},solid:n=>{const{normalize:o}=n;return o(["Unueca fono"])},disabled:n=>{const{normalize:o}=n;return o(["Senemfaze"])}},edit_profile:n=>{const{normalize:o}=n;return o(["Redakti profilon"])},deactivated:n=>{const{normalize:o}=n;return o(["Malaktiva"])},follow_cancel:n=>{const{normalize:o}=n;return o(["Nuligi peton"])},remove_follower:n=>{const{normalize:o}=n;return o(["Forigi abonanton"])}},user_profile:{timeline_title:n=>{const{normalize:o}=n;return o(["Historio de uzanto"])},profile_does_not_exist:n=>{const{normalize:o}=n;return o(["Pardonu, ĉi tiu profilo ne ekzistas."])},profile_loading_error:n=>{const{normalize:o}=n;return o(["Pardonu, eraris enlego de ĉi tiu profilo."])}},who_to_follow:{more:n=>{const{normalize:o}=n;return o(["Pli"])},who_to_follow:n=>{const{normalize:o}=n;return o(["Kiun aboni"])}},tool_tip:{media_upload:n=>{const{normalize:o}=n;return o(["Alŝuti vidaŭdaĵon"])},repeat:n=>{const{normalize:o}=n;return o(["Ripeti"])},reply:n=>{const{normalize:o}=n;return o(["Respondi"])},favorite:n=>{const{normalize:o}=n;return o(["Ŝati"])},user_settings:n=>{const{normalize:o}=n;return o(["Agordoj de uzanto"])},bookmark:n=>{const{normalize:o}=n;return o(["Legosigno"])},reject_follow_request:n=>{const{normalize:o}=n;return o(["Rifuzi abonpeton"])},accept_follow_request:n=>{const{normalize:o}=n;return o(["Akcepti abonpeton"])},add_reaction:n=>{const{normalize:o}=n;return o(["Aldoni reagon"])}},upload:{error:{base:n=>{const{normalize:o}=n;return o(["Alŝuto malsukcesis."])},file_too_big:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Dosiero estas tro granda [",e(r("filesize")),e(r("filesizeunit"))," / ",e(r("allowedsize")),e(r("allowedsizeunit")),"]"])},default:n=>{const{normalize:o}=n;return o(["Reprovu pli poste"])},message:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Malsukcesis alŝuto: ",e(r(0))])}},file_size_units:{B:n=>{const{normalize:o}=n;return o(["B"])},KiB:n=>{const{normalize:o}=n;return o(["KiB"])},MiB:n=>{const{normalize:o}=n;return o(["MiB"])},GiB:n=>{const{normalize:o}=n;return o(["GiB"])},TiB:n=>{const{normalize:o}=n;return o(["TiB"])}}},emoji:{search_emoji:n=>{const{normalize:o}=n;return o(["Serĉi bildosignon"])},keep_open:n=>{const{normalize:o}=n;return o(["Teni elektilon malfermita"])},emoji:n=>{const{normalize:o}=n;return o(["Bildsignoj"])},stickers:n=>{const{normalize:o}=n;return o(["Glumarkoj"])},add_emoji:n=>{const{normalize:o}=n;return o(["Enigi bildosignon"])},load_all:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Enlegante ĉiujn ",e(r("emojiAmount"))," bildosignojn"])},load_all_hint:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Enlegis la ",e(r("saneAmount"))," unuajn bildosignojn; enlego de ĉiuj povus kaŭzi problemojn pri efikeco."])},unicode:n=>{const{normalize:o}=n;return o(["Unikoda bildosigno"])},custom:n=>{const{normalize:o}=n;return o(["Propra bildosigno"])},unicode_groups:{activities:n=>{const{normalize:o}=n;return o(["Agado"])},"animals-and-nature":n=>{const{normalize:o}=n;return o(["Bestoj kaj naturo"])},flags:n=>{const{normalize:o}=n;return o(["Flagoj"])},"food-and-drink":n=>{const{normalize:o}=n;return o(["Manĝaĵoj kaj trinkaĵoj"])},objects:n=>{const{normalize:o}=n;return o(["Aĵoj"])},"people-and-body":n=>{const{normalize:o}=n;return o(["Homoj kaj korpo"])},"smileys-and-emotion":n=>{const{normalize:o}=n;return o(["Mienbildoj kaj sentoj"])},symbols:n=>{const{normalize:o}=n;return o(["Simboloj"])},"travel-and-places":n=>{const{normalize:o}=n;return o(["Vojaĝoj kaj lokoj"])}},regional_indicator:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Regiona marko ",e(r("letter"))])}},polls:{not_enough_options:n=>{const{normalize:o}=n;return o(["Tro malmultaj unikaj elektebloj en la enketo"])},expired:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Enketo finiĝis antaŭ ",e(r(0))])},expires_in:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Enketo finiĝas je ",e(r(0))])},expiry:n=>{const{normalize:o}=n;return o(["Aĝo de enketo"])},multiple_choices:n=>{const{normalize:o}=n;return o(["Pluraj elektoj"])},single_choice:n=>{const{normalize:o}=n;return o(["Unu elekto"])},type:n=>{const{normalize:o}=n;return o(["Speco de enketo"])},vote:n=>{const{normalize:o}=n;return o(["Voĉi"])},votes:n=>{const{normalize:o}=n;return o(["voĉoj"])},option:n=>{const{normalize:o}=n;return o(["Elekteblo"])},add_option:n=>{const{normalize:o}=n;return o(["Aldoni elekteblon"])},add_poll:n=>{const{normalize:o}=n;return o(["Aldoni enketon"])},votes_count:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o([e(r("count"))," voĉdono"]),o([e(r("count"))," voĉdonoj"])])},people_voted_count:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o([e(r("count"))," persono voĉdonis"]),o([e(r("count"))," personoj voĉdonis"])])}},importer:{error:n=>{const{normalize:o}=n;return o(["Eraris enporto de ĉi tiu dosiero."])},success:n=>{const{normalize:o}=n;return o(["Enportita sukcese."])},submit:n=>{const{normalize:o}=n;return o(["Sendi"])}},exporter:{processing:n=>{const{normalize:o}=n;return o(["Traktante; baldaŭ vi ricevos peton elŝuti vian dosieron"])},export:n=>{const{normalize:o}=n;return o(["Elporti"])}},domain_mute_card:{unmute_progress:n=>{const{normalize:o}=n;return o(["Malsilentigante…"])},unmute:n=>{const{normalize:o}=n;return o(["Malsilentigi"])},mute_progress:n=>{const{normalize:o}=n;return o(["Silentigante…"])},mute:n=>{const{normalize:o}=n;return o(["Silentigi"])}},about:{staff:n=>{const{normalize:o}=n;return o(["Skipo"])},mrf:{simple:{media_nsfw_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo devigas vidaŭdaĵojn esti markitaj kiel konsternaj en afiŝoj el la jenaj nodoj:"])},media_nsfw:n=>{const{normalize:o}=n;return o(["Devige marki vidaŭdaĵojn konsternaj"])},media_removal_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:"])},media_removal:n=>{const{normalize:o}=n;return o(["Forigo de vidaŭdaĵoj"])},ftl_removal:n=>{const{normalize:o}=n;return o(["Forigo el la «Federa historio»"])},quarantine_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:"])},quarantine:n=>{const{normalize:o}=n;return o(["Kvaranteno"])},reject_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:"])},reject:n=>{const{normalize:o}=n;return o(["Rifuzi"])},accept_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:"])},accept:n=>{const{normalize:o}=n;return o(["Akcepti"])},simple_policies:n=>{const{normalize:o}=n;return o(["Specialaj politikoj de la nodo"])},ftl_removal_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo forigas la jenajn nodojn el la «Federa historio»:"])},instance:n=>{const{normalize:o}=n;return o(["Nodo"])},reason:n=>{const{normalize:o}=n;return o(["Kialo"])}},mrf_policies:n=>{const{normalize:o}=n;return o(["Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)"])},keyword:{is_replaced_by:n=>{const{normalize:o}=n;return o(["→"])},replace:n=>{const{normalize:o}=n;return o(["Anstataŭigi"])},reject:n=>{const{normalize:o}=n;return o(["Rifuzi"])},ftl_removal:n=>{const{normalize:o}=n;return o(["Forigo el la historio de la «Federa historio»"])},keyword_policies:n=>{const{normalize:o}=n;return o(["Politiko pri ĉefvortoj"])}},federation:n=>{const{normalize:o}=n;return o(["Federado"])},mrf_policies_desc:n=>{const{normalize:o}=n;return o(["Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo. La sekvaj politikoj estas ŝaltitaj:"])}}},selectable_list:{select_all:n=>{const{normalize:o}=n;return o(["Elekti ĉion"])}},remote_user_resolver:{error:n=>{const{normalize:o}=n;return o(["Netrovinte."])},searching_for:n=>{const{normalize:o}=n;return o(["Serĉante"])},remote_user_resolver:n=>{const{normalize:o}=n;return o(["Trovilo de foraj uzantoj"])}},interactions:{load_older:n=>{const{normalize:o}=n;return o(["Enlegi pli malnovajn interagojn"])},moves:n=>{const{normalize:o}=n;return o(["Migrado de uzantoj"])},follows:n=>{const{normalize:o}=n;return o(["Novaj abonoj"])},favs_repeats:n=>{const{normalize:o}=n;return o(["Ripetoj kaj ŝatoj"])},emoji_reactions:n=>{const{normalize:o}=n;return o(["Bildosignaj reagoj"])},reports:n=>{const{normalize:o}=n;return o(["Raportoj"])}},errors:{storage_unavailable:n=>{const{normalize:o}=n;return o(["Pleroma ne povis aliri deponejon de la foliumilo. Via saluto kaj viaj lokaj agordoj ne estos konservitaj, kaj vi eble renkontos neatenditajn problemojn. Provu permesi kuketojn."])}},status:{hide_content:n=>{const{normalize:o}=n;return o(["Kaŝi enhavon"])},show_content:n=>{const{normalize:o}=n;return o(["Montri enhavon"])},hide_full_subject:n=>{const{normalize:o}=n;return o(["Kaŝi plenan temon"])},show_full_subject:n=>{const{normalize:o}=n;return o(["Montri plenan temon"])},thread_muted_and_words:n=>{const{normalize:o}=n;return o([", enhavas vortojn:"])},thread_muted:n=>{const{normalize:o}=n;return o(["Fadeno silentigita"])},copy_link:n=>{const{normalize:o}=n;return o(["Kopii ligilon al stato"])},status_unavailable:n=>{const{normalize:o}=n;return o(["Stato ne estas disponebla"])},unmute_conversation:n=>{const{normalize:o}=n;return o(["Malsilentigi interparolon"])},mute_conversation:n=>{const{normalize:o}=n;return o(["Silentigi interparolon"])},replies_list:n=>{const{normalize:o}=n;return o(["Respondoj:"])},reply_to:n=>{const{normalize:o}=n;return o(["Responde al"])},delete_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas forigi ĉi tiun staton?"])},unbookmark:n=>{const{normalize:o}=n;return o(["Senlegosigni"])},bookmark:n=>{const{normalize:o}=n;return o(["Legosigni"])},pinned:n=>{const{normalize:o}=n;return o(["Fiksita"])},unpin:n=>{const{normalize:o}=n;return o(["Malfiksi de profilo"])},pin:n=>{const{normalize:o}=n;return o(["Fiksi al profilo"])},delete:n=>{const{normalize:o}=n;return o(["Forigi staton"])},repeats:n=>{const{normalize:o}=n;return o(["Ripetoj"])},favorites:n=>{const{normalize:o}=n;return o(["Ŝatoj"])},status_deleted:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo foriĝis"])},nsfw:n=>{const{normalize:o}=n;return o(["Konsterna"])},expand:n=>{const{normalize:o}=n;return o(["Etendi"])},external_source:n=>{const{normalize:o}=n;return o(["Ekstera fonto"])},mentions:n=>{const{normalize:o}=n;return o(["Mencioj"])},you:n=>{const{normalize:o}=n;return o(["(Vi)"])},plus_more:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["+",e(r("number"))," pli"])},show_all_attachments:n=>{const{normalize:o}=n;return o(["Montri ĉiujn kunsendaĵojn"])},collapse_attachments:n=>{const{normalize:o}=n;return o(["Kaŝi iujn kunsendaĵojn"])},many_attachments:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Afiŝo havas ",e(r("number"))," kunsendaĵo(j)n"])},show_attachment_in_modal:n=>{const{normalize:o}=n;return o(["Montri en vidilo de vidaŭdaĵoj"])},edit:n=>{const{normalize:o}=n;return o(["Redakti afiŝon"])},replies_list_with_others:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Respondoj (+",e(r("numReplies"))," alia):"]),o(["Respondoj (+",e(r("numReplies"))," aliaj):"])])},thread_show:n=>{const{normalize:o}=n;return o(["Malkaŝi ĉi tiun fadenon"])},thread_show_full:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Montri ĉion en ĉi tiu fadeno (",e(r("numStatus"))," afiŝon sume, maksimume en profundeco ",e(r("depth")),")"]),o(["Montri ĉion en ĉi tiu fadeno (",e(r("numStatus"))," afiŝojn sume, maksimume en profundeco ",e(r("depth")),")"])])},show_all_conversation:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Montri plenan interparolon (",e(r("numStatus"))," alian afiŝon)"]),o(["Montri plenan interparolon (",e(r("numStatus"))," aliajn afiŝojn)"])])},edited_at:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["(lastafoje redaktita je ",e(r("time")),")"])},remove_attachment:n=>{const{normalize:o}=n;return o(["Forigi kunsendaĵon"])},show_attachment_description:n=>{const{normalize:o}=n;return o(["Antaŭvidi priskribon (malfermu kunsendaĵon por vidi plenan priskribon)"])},hide_attachment:n=>{const{normalize:o}=n;return o(["Kaŝi kunsendaĵon"])},attachment_stop_flash:n=>{const{normalize:o}=n;return o(["Ĉesigi ludilon de [Flash]"])},move_up:n=>{const{normalize:o}=n;return o(["Ŝovi kunsendaĵon antaŭen"])},move_down:n=>{const{normalize:o}=n;return o(["Ŝovi kunsendaĵon posten"])},thread_hide:n=>{const{normalize:o}=n;return o(["Kaŝi ĉi tiun fadenon"])},thread_show_full_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},thread_follow:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Montri ceteron de ĉi tiu fadeno (",e(r("numStatus"))," afiŝon sume)"]),o(["Montri ceteron de ĉi tiu fadeno (",e(r("numStatus"))," afiŝojn sume)"])])},thread_follow_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},ancestor_follow:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Vidi ",e(r("numReplies"))," alian respondon sub ĉi tiu afiŝo"]),o(["Vidi ",e(r("numReplies"))," aliajn respondojn sub ĉi tiu afiŝo"])])},ancestor_follow_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},show_all_conversation_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},show_only_conversation_under_this:n=>{const{normalize:o}=n;return o(["Montri nur respondojn al ĉi tiu afiŝo"])},status_history:n=>{const{normalize:o}=n;return o(["Historio de afiŝo"])}},time:{years_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"j"])},year_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"j"])},years:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," jaroj"])},year:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," jaro"])},weeks_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"s"])},week_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"s"])},weeks:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," semajnoj"])},week:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," semajno"])},seconds_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sek"])},second_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sek"])},seconds:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," sekundoj"])},second:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," sekundo"])},now_short:n=>{const{normalize:o}=n;return o(["nun"])},now:n=>{const{normalize:o}=n;return o(["ĵus"])},months_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"m"])},month_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"m"])},months:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," monatoj"])},month:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," monato"])},minutes_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"min"])},minute_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"min"])},minutes:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," minutoj"])},minute:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," minuto"])},in_past:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["antaŭ ",e(r(0))])},in_future:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["post ",e(r(0))])},hours_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"hor"])},hour_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"hor"])},hours:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," horoj"])},hour:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," horo"])},days_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"t"])},day_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"t"])},days:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," tagoj"])},day:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," tago"])},unit:{days:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," tago"]),o([e(r(0))," tagoj"])])},minutes:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," minuto"]),o([e(r(0))," minutoj"])])},days_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"t"])},hours:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," horo"]),o([e(r(0))," horoj"])])},hours_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"h"])},minutes_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"min"])},months:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," monato"]),o([e(r(0))," monatoj"])])},months_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"mo"])},seconds:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," sekundo"]),o([e(r(0))," sekundoj"])])},seconds_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sek"])},weeks:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," semajno"]),o([e(r(0))," semajnoj"])])},weeks_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sem"])},years:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," jaro"]),o([e(r(0))," jaroj"])])},years_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"j"])}}},search:{people:n=>{const{normalize:o}=n;return o(["Personoj"])},no_results:n=>{const{normalize:o}=n;return o(["Neniuj rezultoj"])},people_talking:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("count"))," personoj parolas"])},person_talking:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("count"))," persono parolas"])},hashtags:n=>{const{normalize:o}=n;return o(["Kradvortoj"])}},display_date:{today:n=>{const{normalize:o}=n;return o(["Hodiaŭ"])}},file_type:{file:n=>{const{normalize:o}=n;return o(["Dosiero"])},image:n=>{const{normalize:o}=n;return o(["Bildo"])},video:n=>{const{normalize:o}=n;return o(["Filmo"])},audio:n=>{const{normalize:o}=n;return o(["Sono"])}},chats:{empty_chat_list_placeholder:n=>{const{normalize:o}=n;return o(["Vi ankoraŭ havas neniun babilon. Komencu novan babilon!"])},error_sending_message:n=>{const{normalize:o}=n;return o(["Io misokazis dum sendado de la mesaĝo."])},error_loading_chat:n=>{const{normalize:o}=n;return o(["Io misokazis dum enlego de la babilo."])},delete_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas forigi ĉi tiun mesaĝon?"])},more:n=>{const{normalize:o}=n;return o(["Pli"])},empty_message_error:n=>{const{normalize:o}=n;return o(["Ne povas sendi malplenan mesaĝon"])},new:n=>{const{normalize:o}=n;return o(["Nova babilo"])},chats:n=>{const{normalize:o}=n;return o(["Babiloj"])},delete:n=>{const{normalize:o}=n;return o(["Forigi"])},you:n=>{const{normalize:o}=n;return o(["Vi:"])},message_user:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Mesaĝi al ",e(r("nickname"))])}},password_reset:{password_reset_required_but_mailer_is_disabled:n=>{const{normalize:o}=n;return o(["Vi devas restarigi vian pasvorton, sed restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo."])},password_reset_required:n=>{const{normalize:o}=n;return o(["Vi devas restarigi vian pasvorton por saluti."])},password_reset_disabled:n=>{const{normalize:o}=n;return o(["Restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo."])},too_many_requests:n=>{const{normalize:o}=n;return o(["Vi atingis la limon de provoj, reprovu pli poste."])},return_home:n=>{const{normalize:o}=n;return o(["Reiri al la hejmpaĝo"])},check_email:n=>{const{normalize:o}=n;return o(["Kontrolu vian retpoŝton pro ligilo por restarigi vian pasvorton."])},placeholder:n=>{const{normalize:o}=n;return o(["Via retpoŝtadreso aŭ uzantonomo"])},instruction:n=>{const{normalize:o}=n;return o(["Enigu vian retpoŝtadreson aŭ uzantonomon. Ni sendos al vi ligilon por restarigi vian pasvorton."])},password_reset:n=>{const{normalize:o}=n;return o(["Restarigi pasvorton"])},forgot_password:n=>{const{normalize:o}=n;return o(["Ĉu vi forgesis pasvorton?"])}},user_reporting:{generic_error:n=>{const{normalize:o}=n;return o(["Eraris traktado de via peto."])},submit:n=>{const{normalize:o}=n;return o(["Sendi"])},forward_to:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Plusendi al ",e(r(0))])},forward_description:n=>{const{normalize:o}=n;return o(["La konto venas de alia servilo. Ĉu kopio de la raporto sendiĝu ankaŭ tien?"])},additional_comments:n=>{const{normalize:o}=n;return o(["Aldonaj komentoj"])},add_comment_description:n=>{const{normalize:o}=n;return o(["Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:"])},title:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Raportante ",e(r(0))])}},shoutbox:{title:n=>{const{normalize:o}=n;return o(["Kriujo"])}},report:{reporter:n=>{const{normalize:o}=n;return o(["Raportinto:"])},reported_user:n=>{const{normalize:o}=n;return o(["Raportito:"])},reported_statuses:n=>{const{normalize:o}=n;return o(["Raportitaj statoj:"])},notes:n=>{const{normalize:o}=n;return o(["Notoj:"])},state:n=>{const{normalize:o}=n;return o(["Stato:"])},state_open:n=>{const{normalize:o}=n;return o(["Malfermita"])},state_closed:n=>{const{normalize:o}=n;return o(["Fermita"])},state_resolved:n=>{const{normalize:o}=n;return o(["Solvita"])}},lists:{editing_list:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Redaktado de listo ",e(r("listTitle"))])},lists:n=>{const{normalize:o}=n;return o(["Listoj"])},new:n=>{const{normalize:o}=n;return o(["Nova listo"])},title:n=>{const{normalize:o}=n;return o(["Nomo de listo"])},search:n=>{const{normalize:o}=n;return o(["Serĉi uzantojn"])},create:n=>{const{normalize:o}=n;return o(["Krei"])},save:n=>{const{normalize:o}=n;return o(["Konservi ŝanĝojn"])},delete:n=>{const{normalize:o}=n;return o(["Forigi liston"])},following_only:n=>{const{normalize:o}=n;return o(["Limigi al abonatoj"])},manage_lists:n=>{const{normalize:o}=n;return o(["Mastrumi listojn"])},manage_members:n=>{const{normalize:o}=n;return o(["Mastrumi listanojn"])},add_members:n=>{const{normalize:o}=n;return o(["Serĉi pliajn uzantojn"])},remove_from_list:n=>{const{normalize:o}=n;return o(["Forigi de listo"])},add_to_list:n=>{const{normalize:o}=n;return o(["Aldoni al listo"])},is_in_list:n=>{const{normalize:o}=n;return o(["Jam en listo"])},creating_list:n=>{const{normalize:o}=n;return o(["Kreado de nova listo"])},update_title:n=>{const{normalize:o}=n;return o(["Konservi nomon"])},really_delete:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas forigi la liston?"])},error:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris umado je listoj: ",e(r(0))])}},update:{big_update_content:n=>{const{normalize:o}=n;return o(["Ni longe ne eldonis novan version, kaj tial aferoj eble aspektos iom malsame, ol antaŭe."])},update_bugs:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Bonvolu raporti problemojn kaj erarojn ĉe ",e(r("pleromaGitlab")),", ĉar ni ŝanĝis multon, kaj kvankam ni zorge testas kaj mem uzas la prilaboratajn versiojn, ni tamen povas preteratenti ion. Ni bonvenigas viajn rimarkojn kaj proponojn pri renkontitaj eraroj aŭ proponoj plibonigi Pleromon."])},big_update_title:n=>{const{normalize:o}=n;return o(["Bonvolu pacienci"])},update_bugs_gitlab:n=>{const{normalize:o}=n;return o(["GitLab de Pleroma"])},update_changelog:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Por legi detalojn pri ŝanĝoj, vidu ",e(r("theFullChangelog")),"."])},update_changelog_here:n=>{const{normalize:o}=n;return o(["la plenan ŝanĝaron"])},art_by:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Arto de ",e(r("linkToArtist"))])}},unicode_domain_indicator:{tooltip:n=>{const{normalize:o}=n;return o(["Ĉi tiu retnomo enhavas signojn ekster ASCII."])}},announcements:{all_day_prompt:n=>{const{normalize:o}=n;return o(["Ĉi tio estas tuttaga okazo"])},page_header:n=>{const{normalize:o}=n;return o(["Anoncoj"])},title:n=>{const{normalize:o}=n;return o(["Anonco"])},mark_as_read_action:n=>{const{normalize:o}=n;return o(["Marki legita"])},post_placeholder:n=>{const{normalize:o}=n;return o(["Entajpu vian anoncon tie ĉi…"])},post_action:n=>{const{normalize:o}=n;return o(["Afiŝi"])},post_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraro: ",e(r("error"))])},close_error:n=>{const{normalize:o}=n;return o(["Fermi"])},delete_action:n=>{const{normalize:o}=n;return o(["Forigi"])},start_time_prompt:n=>{const{normalize:o}=n;return o(["Komenca tempo: "])},end_time_prompt:n=>{const{normalize:o}=n;return o(["Fina tempo: "])},published_time_display:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Publikigita je ",e(r("time"))])},start_time_display:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Komenciĝas je ",e(r("time"))])},end_time_display:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Finiĝas je ",e(r("time"))])},edit_action:n=>{const{normalize:o}=n;return o(["Redakti"])},submit_edit_action:n=>{const{normalize:o}=n;return o(["Afiŝi"])},cancel_edit_action:n=>{const{normalize:o}=n;return o(["Nuligi"])},inactive_message:n=>{const{normalize:o}=n;return o(["Ĉi tiu anonco estas neaktiva"])}}}}}]);
-//# sourceMappingURL=eo-json.8b17b5b5653ed558d931.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js.map b/priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js.map
deleted file mode 100644
index ed404c533..000000000
--- a/priv/static/static/js/i18n/eo-json.8b17b5b5653ed558d931.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/i18n/eo-json.8b17b5b5653ed558d931.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/eo.json"],"sourcesContent":["export default {\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babilejo\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babilejo\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vidaŭdaĵa retperilo\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj de amplekso\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limo de teksto\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Funkcioj\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiun aboni\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babilejo de Pleroma\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limo de alŝutoj\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kriujo\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris alporto de uzanto\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trovi uzanton\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apliki\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sendi\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraro okazis\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"malnepra\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontroli\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmi\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malŝalti\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forlasi\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri malplion\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri plion\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reprovi\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bonvolu reprovi\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegante…\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭmontri\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reguligisto\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administranto\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Klaku por montri enhavon de Flash per Ruffle. (Eksperimente, eble ne funkcios.)\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciu, ke tio povas esti danĝera, ĉar la enhavo de Flash ja estas arbitra programo.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsukcesis enlegi enhavon de Flash; vidu detalojn en konzolo.\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Persona\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nur abonantoj\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publika\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nelistigita\"])}\n },\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris: \", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniam remontri\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfari\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jes\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfiksi eron\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fiksi eron\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rulumi supren\"])}\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tondi bildon\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi sen tondado\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saluti\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saluti per OAuth\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adiaŭi\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pasvorto\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz. lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registriĝi\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzantonomo\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Salutu por partopreni la diskutadon\"])},\n \"heading\": {\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehavo de duobla aŭtentikigo\"])},\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Duobla aŭtentikigo\"])}\n },\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehava kodo\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu kodon de duobla aŭtentikigo\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu rehavan kodon\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aŭtentikiga kodo\"])}\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭa\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sekva\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi vidilon de vidaŭdaĵoj\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pri\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reen\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loka babilejo\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Petoj pri abono\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencioj\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rektaj mesaĝoj\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loka historio\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historio\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federa historio\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi uzantojn\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiun aboni\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babiloj\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interagoj\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrado\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legosignoj\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historioj\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hejma historio\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti fiksitajn erojn\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Listoj\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adapti navigan breton\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fini redakton\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nekonata stato, serĉante ĝin…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ŝatis vian staton\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekabonis vin\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pli malnovajn sciigojn\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legite!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ripetis vian staton\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj sciigoj\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagis per \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migris al\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volas vin aboni\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris akirado de sciigoj: \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sendis raporton\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enketo finiĝis\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝi novan staton\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Via konto ne estas \", _interpolate(_list(0)), \". Iu ajn povas vin aboni por vidi eĉ viajn afiŝoj nur por abonantoj.\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ŝlosita\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marki kunsendaĵojn konsternaj\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Plata teksto\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Temo (malnepra)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĵus alvenis Esperantujon!\"])},\n \"direct_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla nur por ĉiuj menciitaj uzantoj.\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝante\"])},\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rekta – afiŝi nur al menciitaj uzantoj\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nur abonantoj – afiŝi nur al abonantoj\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publika – afiŝi al publikaj historioj\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nelistigita – ne afiŝi al publikaj historioj\"])}\n },\n \"scope_notice\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo ne estos videbla en la Loka historio kaj la Federa historio\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla nur al viaj abonantoj\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla al ĉiuj\"])}\n },\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsukcesis afiŝo de vidaŭdaĵoj; reprovu\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne povas afiŝi malplenan staton sen dosieroj\"])},\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malplena\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭrigardo\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj.\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priskribo de vidaŭdaĵo\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝo\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aliaj foraj nodoj eble ne subtenas redaktadon, kaj ne povos ricevi pli novan version de via afiŝo.\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma ne subtenas redaktadon de mencioj aŭ enketoj.\"])},\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stato de redakto\"])}\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priskribo\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retpoŝtadreso\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prezenta nomo\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmo de pasvorto\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registriĝo\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invita peco\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TESTO DE HOMECO\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Klaku la bildon por akiri novan teston\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz. lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz. Lain Ivakura\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz.\\nSaluton, mi estas Lain.\\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo « Wired ».\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"samu la pasvorton\"])}\n },\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi-node oni aprobas registriĝojn permane.\\nSciigu la administrantojn kial vi volas registriĝi.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kialo registriĝi\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registriĝi\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prio (malnepra)\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retpoŝtadreso (malnepra)\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En kiu lingvo vi volus ricevi retleterojn de la servilo?\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo de aplikaĵo\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kunsendaĵoj\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kunsendaĵoj\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildo\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildoj (sciigoj)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildoj\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priskribo\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokitoj\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butonoj\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blua (respondi, aboni)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verda (diskonigi)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oranĝa (ŝati)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ruĝa (nuligi)\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝanĝi pasvorton\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris ŝanĝo de via pasvorto.\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pasvorto sukcese ŝanĝiĝis!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maletendi afiŝojn kun temoj\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verkado\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmu novan pasvorton\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Via nuna profilbildo\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuna pasvorto\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Via nuna profila rubando\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto / Elporto de datumoj\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Implicita amplekso de vidibleco\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi konton\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ĉiam forigi viajn datumojn kaj malaktivigi vian konton.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris forigo de via kanto. Se tio daŭre ripetiĝos, bonvolu kontakti la administranton de via nodo.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entajpu sube vian pasvorton por konfirmi forigon de konto.\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La rekomendata minimuma grando de profilbildoj estas 150×150 bilderoj.\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi antaŭagordon\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrado\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos; skribu po unu linie\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporto de abonoj\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporti viajn abonojn al CSV-dosiero\"])},\n \"follow_export_processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Traktante; baldaŭ vi ricevos peton elŝuti la dosieron\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto de abonoj\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraro enportante abonojn\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonoj enportiĝis! Traktado daŭros iom da tempo.\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfono\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĝenerala\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kunsendaĵojn en interparoloj\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kunsendaĵojn en historioj\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maksimuma nombro da bildetoj en afiŝo\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi breton propran al nodo\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭ-enlegi bildojn\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermi konsternajn kunsendaĵojn per nur unu klako\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi statistikon de afiŝoj (ekz. nombron de ŝatoj)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi statistikon de uzantoj (ekz. nombron de abonantoj)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi filtritajn statojn\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporti abonojn el CSV-dosiero\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi antaŭagordojn\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigaj kampoj\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markbutonoj\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(originale: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(originale)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fasado\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingvo de fasado\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La elektita dosiero ne estas subtenata haŭto de Pleromo. Neniuj ŝanĝoj al via haŭto okazis.\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nehavebla en via foliumilo\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ligiloj\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limigi vian konton al nur abonantoj aprobitaj\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetadi filmojn\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigoj\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ludi filmojn en ŝpruca kadro\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne pritondi bildetojn de kunsendaĵoj\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo kaj priskribo\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova pasvorto\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montrotaj specoj de sciigoj\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonoj\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝatoj\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencioj\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetoj\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi riĉtekstajn formojn de ĉiuj afiŝoj\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj blokitoj\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj silentigoj\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri kiun mi sekvas\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri kiu min sekvas\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la insignon de administranto en mia profilo\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la insignon de reguligisto en mia profilo\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti traklakan kaŝadon de kunsendaĵoj kaj antaŭmontroj de ligiloj por konsternaj statoj\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pecoj de OAuth\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peco\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualiga peco\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valida ĝis\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senvalidigi\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bretoj\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Paŭzigi elsendfluon kiam langeto ne estas fokusata\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭagordoj\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono de profilo\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rubando de profilo\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilo\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi fasadan rondigon de randoj (bildere)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Respondoj en historioj\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri ĉiujn respondojn\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn por mi aŭ miaj abonatoj\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn por mi\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris konservado de agordoj\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj konserviĝis\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sekureco\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi novan profilbildon\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi novan fonon de profilo\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi novan rubandon de profilo\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiam montri kampon de temo\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kopii temon dum respondado\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiel retpoŝto: «re: temo»\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiel Mastodon: kopii senŝanĝe\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne kopii\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speco de enhavo de afiŝo\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Movi GIF-bildojn dum ŝvebo de muso\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teksto\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Haŭto\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon «Vakigi ĉion» por forigi ĉîujn superagordojn.\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; ŝvebigu muson por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo.\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝpruchelpiloj/avertoj\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alŝuti foton\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj de uzanto\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jes\"])}\n },\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti retajn pasivajn sciigojn\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi kolorojn\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi ombrojn\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi maltravideblecon\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi rondecon\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi tiparojn\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektebloj de «konservi» konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos.\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vakigi ĉion\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vakigi maltravideblecon\"])},\n \"help\": {\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio de PleromaFE reen iris.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La motoro de haŭtoj de PleromaFE ĝisdatiĝis post ĝisdatigo de la versio.\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La enportita dosiero estis farita per pli malnova versio de PleromaFE.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La enportita dosiero estis farita per pli nova versio de PleromaFE.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La dosiero, kiun vi enportis, estis farita por malnova versio de PleromaFE. Ni provas maksimumigi interkonformecon, sed tamen eble montriĝos misoj.\"])},\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE estis ĝisdatigita; la haŭto eble aspektos malsame ol kiel vi ĝin memoras.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniu momentokopio de haŭto estis en la dosiero, ĝi povas aspekti iom malsame ol oni intencis.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiuj valoroj estas transpasataj, ĉar momentokopio de haŭto estas enlegita. Vi povas enlegi anstataŭe la aktualajn datumojn de haŭto.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versioj konfliktas: plej probable la fasado estis reirigita kaj ree ĝisdatigita; se vi ŝanĝis la haŭton per pli malnova versio de la fasado, vi probable volas uzi la malnovan version. Alie uzu la novan.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ial mankis momentokopio; io povus aspekti malsame ol en via memoro.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Certige, momentokopio de la haŭto enlegiĝis. Vi povas provi enlegi datumojn de la haŭto.\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova versio\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malnova versio\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teni senŝanĝa\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi haŭton\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Koloro\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maltravidebleco\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Proporcio de kontrasto estas \", _interpolate(_named(\"ratio\")), \", ĝi \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plenumas la gvidilon je nivelo AA (minimuma)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plenumas la gvidilon je nivela AAA (rekomendita)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plenumas neniujn faciluzajn gvidilojn\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"por granda (18pt+) teksto\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"por teksto\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Komunaj\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Komunaj koloroj\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vidu langeton «Specialaj» por pli detalaj agordoj\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsimboloj, emfazoj, insignoj\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Specialaj\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono de averto\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraro\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono de insigno\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigo\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kapo de breto\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supra breto\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limoj\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butonoj\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigaj kampoj\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malvigla teksto\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limo\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliraj\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envenaj\"])}\n },\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langetoj\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malŝaltita\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektita menuero\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektita afiŝo\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premita\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emfazitaj eroj\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsimboloj\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grafo de enketo\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subtavolo\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝprucaĵoj, menuoj\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝoj/Priskriboj de uzantoj\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neŭtrala\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Averto\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝaltita\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fonbildo\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rondeco\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ombro kaj lumo\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ero\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Transpasi\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ombro #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malklarigo\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vastigo\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Internigo\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios.\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Averto: ĉi tiu ombro ĉiam uzas \", _interpolate(_list(0)), \" kiam la foliumilo tion subtenas.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" ne subtenas parametron \", _interpolate(_list(1)), \" kaj ĉefvorton \", _interpolate(_list(2)), \".\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj.\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Internaj ombroj uzos \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Breto\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kapo de breto\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supra breto\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildo de uzanto (en profila vido)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildo de uzanto (en afiŝa vido)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝprucaĵoj\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono (je ŝvebo)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono (premita)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono (je premo kaj ŝvebo)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eniga kampo\"])}\n },\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Kolorojn de ombroj vi ankaŭ povas skribi per la sistemo \", _interpolate(_list(0)), \".\"])}\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tiparoj\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektu tiparon uzotan por eroj de la fasado. Por «propra» vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo.\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fasado\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigaj kampoj\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teksto de afiŝo\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Egallarĝa teksto en afiŝo (riĉteksto)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo de tiparo\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grando (en bilderoj)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pezo (graseco)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Propra\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭrigardo\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enhavo\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ekzempla eraro\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Kelko da pliaj \", _interpolate(_list(0)), \" kaj \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enhavo\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĵus alvenis Esperantujon!\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"helpan manlibron\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Legu nian \", _interpolate(_list(0)), \" por nenion utilan ekscii!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tio estas en ordo\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi legetis la kondiĉojn de uzado\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bela eta ligil’\"])}\n }\n },\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permesi trovon de ĉi tiu konto en serĉrezultoj kaj aliaj servoj\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokado kaj silentigoj\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babileja mesaĝo\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retpoŝtadreso sukcese ŝanĝiĝis!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris ŝanĝo de via retpoŝtadreso.\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝanĝi retpoŝtadreson\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tio estas robota konto\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokitoj enportiĝis! Traktado daŭros iom da tempo.\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris enporto de blokitoj\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporto de blokitoj\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto de blokitoj\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporti viajn blokitojn al CSV-dosiero\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permesi memagan abonadon kiam abonata konto migras\"])},\n \"mfa\": {\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ŝalti duoblan aŭtentikigon, enigu la kodon el via aplikaĵo por duobla aŭtentikigo:\"])}\n },\n \"scan\": {\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝlosilo\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzante vian aplikaĵon por duobla aŭtentikigo, skanu ĉi tiun rapidrespondan kodon aŭ enigu tekstan ŝlosilon:\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skani\"])}\n },\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metodoj de aŭtentikigo\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notu la kodojn aŭ konservu ilin en sekura loko – alie vi ne revidos ilin. Se vi perdos aliron al via aplikaĵo por duobla aŭtentikigo kaj al la rehavaj kodoj, vi ne povos aliri vian konton.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ricevante savkopiajn kodojn…\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehavaj kodoj.\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiam vi estigos novajn rehavajn kodojn, viaj malnovaj ne plu funkcios.\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estigi novajn rehavajn kodojn\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Duobla aŭtentikigo\"])},\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"antaŭagordante OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmi kaj ŝalti OTP\"])}\n },\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu vian pasvorton por konfirmi vian identecon\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sekureco\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amuzo\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉu silentigotajn retnomojn\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Nerekomendate, eksperimente, povas preterpasi afiŝojn)\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ricevi afiŝojn kaj sciigojn realtempe\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzantoj\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas restarigi la fonon?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas restarigi la rubandon?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas restarigi la profilbildon?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi rubandon de profilo\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi fonon de profilo\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi profilbildon\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimumigi elekteblojn pri amplekso de afiŝoj\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉu, kiun vi volas bloki\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉu, kiun vi volas silentigi\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Memage kaŝi la butonon por Nova afiŝo (poŝtelefone)\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri nombron de abonantoj\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri nombron de abonoj\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reagoj\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Migroj\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova retpoŝtadreso\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enhavo\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etikedo\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni kampon\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pridatumoj de profilo\"])}\n },\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporti blokitojn el CSV-dosiero\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi afiŝojn de silentigitaj uzantoj\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri bildosignajn reagojn en historioj\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meti spacetojn ĉirkaŭ bildosigno post ties elekto\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retnomoj\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokinte uzanton vi malabonos ĝin kaj haltigos ĉiujn sciigojn.\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ne plu ricevi sciigojn de certa uzanto, silentigu ĝin.\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi la sendinton kaj la enhavojn de pasivaj sciigoj\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privateco\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bloki sciigojn de uzantoj, kiujn vi ne abonas\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtriloj\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Memecitaĵoj\"])},\n \"version\": {\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio de fasado\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio de internaĵo\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio\"])}\n },\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emfazo\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Optimumigi bildigon de historioj\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporti silentigojn el CSV-dosiero\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigoj enportiĝis! Traktado daŭros iom da tempo.\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris enporto de silentigoj\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto de silentigoj\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elportu viajn silentigojn al CSV-dosiero\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporto de silentigoj\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi fonbildon de nodo\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordo malsamas de la implicita\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pliaj agordoj\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Implicite marki afiŝojn konsternaj\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri respondojn por miaj abonatoj\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi silentigitajn afiŝojn\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi antaŭrigardojn al vidaŭdaĵoj\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vortofiltro\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn por mi\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etversio de dosiero malsamas, iuj agordoj eble ne funkcios\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Nekonforma ĉefa versio: \", _interpolate(_named(\"fileMajor\")), \", versio de dosiero estas tro malnova kaj nesubtenata (minimuma estas \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Nekonforma ĉefa versio: \", _interpolate(_named(\"fileMajor\")), \", ĉi tiu PleromaFE (agordoj je versio \", _interpolate(_named(\"feMajor\")), \") tro malnovas por tio\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La elektita dosiero ne estas subtenata savkopio de agordoj de Pleroma. Nenio ŝanĝiĝis.\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehavi agordojn el dosiero\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopii agordojn kaj haŭton al dosiero\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopii agordojn al dosiero\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopio de agordoj\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri flankan breton dekstre\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi ŝanĝojn\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kriujon de nodo\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiam montri ŝvebantan butonon por nova afiŝo\"])},\n \"mentions_new_style\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli mojosaj menciligiloj\"])},\n \"mentions_new_place\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meti menciojn sur apartan linion\"])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri listojn en navigiloj\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopio de konto\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tio povigas vin elŝuti arĥivon de viaj afiŝoj kaj ĉiuj informoj pri via konto, sed ili ne jam povas enportiĝi en konton de Pleroma.\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris akirado de kromnomoj: \", _interpolate(_named(\"error\"))])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se vi volas movi la konton aliloken, vi devas iri al via celata konto, kaj aldoni kromnomon ligitan al tie ĉi.\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etendi navigan breton laŭ larĝeco de kolumnoj\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝoj\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Finoj de enketoj kun via voĉo\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aspekto de interparoloj\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne alglui kapojn de kolumnoj al supro de la ekrano\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linia vido\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzi teĥnikaron «websockets» (tuja ĝisdatigo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plene nur je uzantoj foraj (ekz. \", \"@\", \"zozo\", \"@\", \"ekzemplo.org)\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri altnivelajn\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu agordo estas ligita al via profilo, kaj efektiviĝon en ĉiuj viaj salutoj kaj klientoj\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aspekto de afiŝoj\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Menciaj ligiloj\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingvo de leteroj ricevotaj de la servilo\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopio\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elŝuti\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu savkopio ne jam pretas.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris akirado de listo de savkopioj: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fari novan savkopion\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldonis novan savkopion.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris aldono de nova savkopio: \", _interpolate(_named(\"error\"))])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kromnomoj de konto\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kromnomo\"])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi ĉi tiun kromnomon\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Aldoni novan kromnomon (ekz. \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kromnomo estas aldonita.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris aldono de kromnomo: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Movi konton\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Celata konto (ekz. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto moviĝis.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris movado de konto: \", _interpolate(_named(\"error\"))])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vortofiltrado\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vortofiltrado kaj pli…\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi afiŝojn de robotoj\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi markon de roboteco en afiŝoj\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi vorte filtritajn statojn\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi silentigitajn fadenojn\"])},\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privateco\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiloj de uzantoj\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri liston de miaj ŝatatoj (oni tamen sciiĝas)\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arba stilo\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arba vido\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri rulumajn bretojn de flankaj kolumnoj\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniam montri trian kolumnon\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kolumno de sciigoj\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kolumnoj\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grandeco de kolumnoj\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flanka breto\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enhavo\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permesi pli flekseblan navigadon en arba vido\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linia stilo\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la butonon «aliaj respondoj»\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sub statoj\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En statoj\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maksimuma nombro de niveloj implicite montrataj en fadeno\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri novajn afiŝojn memage\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri simbolon \", \"@\", \" kiel bildon anstataŭ teksto\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri menciajn ligilojn\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ĉiam mallonge (ekz. \", \"@\", \"zozo)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ĉiam plene (ekz. \", \"@\", \"zozo\", \"@\", \"ekzemplo.org)\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri profilbildon de uzanto apud la ligilo\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri profilbildon de uzanto apud mencioj\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malvigligi retnomojn (ekz. \", \"@\", \"ekzemplo.org en \", \"@\", \"zozo\", \"@\", \"ekzemplo.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emfazi vian mencion, se vi estas menciita\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri karton de uzanto per klako al mencia ligilo\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi la ŝprucaĵon\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermi la profilon\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aperigi ŝprucaĵon pri uzanto sur profilbildo\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la markon «(Vi)»\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zomi la profilbildon\"])}\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maletendi\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interparolo\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris ĝisdatigo\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri pli malnovajn statojn\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ripetis\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri novajn\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĝisdata\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj statoj\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj statoj\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi ree\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris akirado de historio: \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Realtempa konekto fariĝis\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Realtempa konekto perdiĝis: CloseEvent code \", _interpolate(_list(0))])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aprobi\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bloki\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokita!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝatataj\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aboni\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peto sendiĝis!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Petante…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malaboni\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonatoj\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonantoj\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonata!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonas vin!\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tio estas vi!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vidaŭdaĵoj\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigita\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tage\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fore aboni\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statoj\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malbloki\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malblokante…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokante…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigi\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigante…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigante…\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raporti\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mesaĝo\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencio\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝita\"])},\n \"admin_menu\": {\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi uzanton\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malpermesi federadon de afiŝoj de uzanto\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malpermesi ĉian abonadon al uzanto\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malpermesi abonadon al uzanto el foraj nodoj\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Devigi afiŝojn esti nur por abonantoj\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Devigi afiŝojn nelistiĝi\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi vidaŭdaĵojn de afiŝoj\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marki ĉiujn afiŝojn konsternaj\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi konton\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malaktivigi konton\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivigi konton\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malnomumi reguligiston\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomumi reguligiston\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malnomumi administranton\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomumi administranton\"])},\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reguligado\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tio ĉi por ĉiam forigos datumojn de tiu ĉi konto, kaj malaktivigos ĝin. Ĉu vi plene certas?\"])}\n },\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri ripetojn\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi ripetojn\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne ricevi sciigojn\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ricevi sciigojn\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roboto\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flanka strio\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stria fono\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unueca fono\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senemfaze\"])}\n },\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti profilon\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malaktiva\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi peton\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi abonanton\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historio de uzanto\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pardonu, ĉi tiu profilo ne ekzistas.\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pardonu, eraris enlego de ĉi tiu profilo.\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiun aboni\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alŝuti vidaŭdaĵon\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripeti\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Respondi\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝati\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj de uzanto\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legosigno\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi abonpeton\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Akcepti abonpeton\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni reagon\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alŝuto malsukcesis.\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Dosiero estas tro granda [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reprovu pli poste\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Malsukcesis alŝuto: \", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"emoji\": {\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi bildosignon\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teni elektilon malfermita\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsignoj\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Glumarkoj\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigi bildosignon\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Enlegante ĉiujn \", _interpolate(_named(\"emojiAmount\")), \" bildosignojn\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Enlegis la \", _interpolate(_named(\"saneAmount\")), \" unuajn bildosignojn; enlego de ĉiuj povus kaŭzi problemojn pri efikeco.\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unikoda bildosigno\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Propra bildosigno\"])},\n \"unicode_groups\": {\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agado\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestoj kaj naturo\"])},\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flagoj\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manĝaĵoj kaj trinkaĵoj\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aĵoj\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Homoj kaj korpo\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mienbildoj kaj sentoj\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Simboloj\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vojaĝoj kaj lokoj\"])}\n },\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Regiona marko \", _interpolate(_named(\"letter\"))])}\n },\n \"polls\": {\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tro malmultaj unikaj elektebloj en la enketo\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Enketo finiĝis antaŭ \", _interpolate(_list(0))])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Enketo finiĝas je \", _interpolate(_list(0))])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aĝo de enketo\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pluraj elektoj\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unu elekto\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speco de enketo\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voĉi\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"voĉoj\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elekteblo\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni elekteblon\"])},\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni enketon\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" voĉdono\"]), _normalize([_interpolate(_named(\"count\")), \" voĉdonoj\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" persono voĉdonis\"]), _normalize([_interpolate(_named(\"count\")), \" personoj voĉdonis\"])])}\n },\n \"importer\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris enporto de ĉi tiu dosiero.\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enportita sukcese.\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sendi\"])}\n },\n \"exporter\": {\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Traktante; baldaŭ vi ricevos peton elŝuti vian dosieron\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporti\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigante…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigi\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigante…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi\"])}\n },\n \"about\": {\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skipo\"])},\n \"mrf\": {\n \"simple\": {\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo devigas vidaŭdaĵojn esti markitaj kiel konsternaj en afiŝoj el la jenaj nodoj:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Devige marki vidaŭdaĵojn konsternaj\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigo de vidaŭdaĵoj\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigo el la «Federa historio»\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kvaranteno\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Akcepti\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Specialaj politikoj de la nodo\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo forigas la jenajn nodojn el la «Federa historio»:\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nodo\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kialo\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)\"])},\n \"keyword\": {\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstataŭigi\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigo el la historio de la «Federa historio»\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Politiko pri ĉefvortoj\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federado\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo. La sekvaj politikoj estas ŝaltitaj:\"])}\n }\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elekti ĉion\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netrovinte.\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉante\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trovilo de foraj uzantoj\"])}\n },\n \"interactions\": {\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pli malnovajn interagojn\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Migrado de uzantoj\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Novaj abonoj\"])},\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetoj kaj ŝatoj\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildosignaj reagoj\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportoj\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma ne povis aliri deponejon de la foliumilo. Via saluto kaj viaj lokaj agordoj ne estos konservitaj, kaj vi eble renkontos neatenditajn problemojn. Provu permesi kuketojn.\"])}\n },\n \"status\": {\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi enhavon\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri enhavon\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi plenan temon\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri plenan temon\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", enhavas vortojn:\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fadeno silentigita\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kopii ligilon al stato\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stato ne estas disponebla\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigi interparolon\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi interparolon\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Respondoj:\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Responde al\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas forigi ĉi tiun staton?\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senlegosigni\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legosigni\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fiksita\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfiksi de profilo\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fiksi al profilo\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi staton\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetoj\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝatoj\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo foriĝis\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konsterna\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etendi\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ekstera fonto\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencioj\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Vi)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"+\", _interpolate(_named(\"number\")), \" pli\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri ĉiujn kunsendaĵojn\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi iujn kunsendaĵojn\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Afiŝo havas \", _interpolate(_named(\"number\")), \" kunsendaĵo(j)n\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri en vidilo de vidaŭdaĵoj\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti afiŝon\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Respondoj (+\", _interpolate(_named(\"numReplies\")), \" alia):\"]), _normalize([\"Respondoj (+\", _interpolate(_named(\"numReplies\")), \" aliaj):\"])])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malkaŝi ĉi tiun fadenon\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Montri ĉion en ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝon sume, maksimume en profundeco \", _interpolate(_named(\"depth\")), \")\"]), _normalize([\"Montri ĉion en ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝojn sume, maksimume en profundeco \", _interpolate(_named(\"depth\")), \")\"])])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Montri plenan interparolon (\", _interpolate(_named(\"numStatus\")), \" alian afiŝon)\"]), _normalize([\"Montri plenan interparolon (\", _interpolate(_named(\"numStatus\")), \" aliajn afiŝojn)\"])])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(lastafoje redaktita je \", _interpolate(_named(\"time\")), \")\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi kunsendaĵon\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭvidi priskribon (malfermu kunsendaĵon por vidi plenan priskribon)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kunsendaĵon\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉesigi ludilon de [Flash]\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝovi kunsendaĵon antaŭen\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝovi kunsendaĵon posten\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi ĉi tiun fadenon\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Montri ceteron de ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝon sume)\"]), _normalize([\"Montri ceteron de ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝojn sume)\"])])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Vidi \", _interpolate(_named(\"numReplies\")), \" alian respondon sub ĉi tiu afiŝo\"]), _normalize([\"Vidi \", _interpolate(_named(\"numReplies\")), \" aliajn respondojn sub ĉi tiu afiŝo\"])])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn al ĉi tiu afiŝo\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historio de afiŝo\"])}\n },\n \"time\": {\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"j\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"j\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" jaroj\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" jaro\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" semajnoj\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" semajno\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sek\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sek\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" sekundoj\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" sekundo\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nun\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ĵus\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"m\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"m\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" monatoj\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" monato\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" minutoj\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" minuto\"])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"antaŭ \", _interpolate(_list(0))])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"post \", _interpolate(_list(0))])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"hor\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"hor\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" horoj\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" horo\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"t\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"t\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" tagoj\"])},\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" tago\"])},\n \"unit\": {\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" tago\"]), _normalize([_interpolate(_list(0)), \" tagoj\"])])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" minuto\"]), _normalize([_interpolate(_list(0)), \" minutoj\"])])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"t\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" horo\"]), _normalize([_interpolate(_list(0)), \" horoj\"])])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" monato\"]), _normalize([_interpolate(_list(0)), \" monatoj\"])])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" sekundo\"]), _normalize([_interpolate(_list(0)), \" sekundoj\"])])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sek\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" semajno\"]), _normalize([_interpolate(_list(0)), \" semajnoj\"])])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sem\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" jaro\"]), _normalize([_interpolate(_list(0)), \" jaroj\"])])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"j\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personoj\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj rezultoj\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" personoj parolas\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" persono parolas\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kradvortoj\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hodiaŭ\"])}\n },\n \"file_type\": {\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dosiero\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildo\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filmo\"])},\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sono\"])}\n },\n \"chats\": {\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi ankoraŭ havas neniun babilon. Komencu novan babilon!\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Io misokazis dum sendado de la mesaĝo.\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Io misokazis dum enlego de la babilo.\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas forigi ĉi tiun mesaĝon?\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne povas sendi malplenan mesaĝon\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova babilo\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babiloj\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Mesaĝi al \", _interpolate(_named(\"nickname\"))])}\n },\n \"password_reset\": {\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi devas restarigi vian pasvorton, sed restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi devas restarigi vian pasvorton por saluti.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi atingis la limon de provoj, reprovu pli poste.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reiri al la hejmpaĝo\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontrolu vian retpoŝton pro ligilo por restarigi vian pasvorton.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Via retpoŝtadreso aŭ uzantonomo\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu vian retpoŝtadreson aŭ uzantonomon. Ni sendos al vi ligilon por restarigi vian pasvorton.\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi pasvorton\"])},\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi forgesis pasvorton?\"])}\n },\n \"user_reporting\": {\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris traktado de via peto.\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sendi\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Plusendi al \", _interpolate(_list(0))])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La konto venas de alia servilo. Ĉu kopio de la raporto sendiĝu ankaŭ tien?\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldonaj komentoj\"])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:\"])},\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Raportante \", _interpolate(_list(0))])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kriujo\"])}\n },\n \"report\": {\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportinto:\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportito:\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportitaj statoj:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notoj:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stato:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermita\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermita\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solvita\"])}\n },\n \"lists\": {\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Redaktado de listo \", _interpolate(_named(\"listTitle\"))])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Listoj\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova listo\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo de listo\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi uzantojn\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Krei\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi ŝanĝojn\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi liston\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limigi al abonatoj\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mastrumi listojn\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mastrumi listanojn\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi pliajn uzantojn\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi de listo\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni al listo\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jam en listo\"])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kreado de nova listo\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi nomon\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas forigi la liston?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris umado je listoj: \", _interpolate(_list(0))])}\n },\n \"update\": {\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ni longe ne eldonis novan version, kaj tial aferoj eble aspektos iom malsame, ol antaŭe.\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Bonvolu raporti problemojn kaj erarojn ĉe \", _interpolate(_named(\"pleromaGitlab\")), \", ĉar ni ŝanĝis multon, kaj kvankam ni zorge testas kaj mem uzas la prilaboratajn versiojn, ni tamen povas preteratenti ion. Ni bonvenigas viajn rimarkojn kaj proponojn pri renkontitaj eraroj aŭ proponoj plibonigi Pleromon.\"])},\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bonvolu pacienci\"])},\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GitLab de Pleroma\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Por legi detalojn pri ŝanĝoj, vidu \", _interpolate(_named(\"theFullChangelog\")), \".\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"la plenan ŝanĝaron\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Arto de \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu retnomo enhavas signojn ekster ASCII.\"])}\n },\n \"announcements\": {\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tio estas tuttaga okazo\"])},\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anoncoj\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anonco\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marki legita\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entajpu vian anoncon tie ĉi…\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝi\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraro: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Komenca tempo: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fina tempo: \"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Publikigita je \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Komenciĝas je \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Finiĝas je \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝi\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu anonco estas neaktiva\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js b/priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js
new file mode 100644
index 000000000..81998d129
--- /dev/null
+++ b/priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[4646],{97898:(n,o,e)=>{e.r(o),e.d(o,{default:()=>r});const r={chat:{title:n=>{const{normalize:o}=n;return o(["Babilejo"])}},features_panel:{chat:n=>{const{normalize:o}=n;return o(["Babilejo"])},gopher:n=>{const{normalize:o}=n;return o(["Gopher"])},media_proxy:n=>{const{normalize:o}=n;return o(["Vidaŭdaĵa retperilo"])},scope_options:n=>{const{normalize:o}=n;return o(["Agordoj de amplekso"])},text_limit:n=>{const{normalize:o}=n;return o(["Limo de teksto"])},title:n=>{const{normalize:o}=n;return o(["Funkcioj"])},who_to_follow:n=>{const{normalize:o}=n;return o(["Kiun aboni"])},pleroma_chat_messages:n=>{const{normalize:o}=n;return o(["Babilejo de Pleroma"])},upload_limit:n=>{const{normalize:o}=n;return o(["Limo de alŝutoj"])},shout:n=>{const{normalize:o}=n;return o(["Kriujo"])}},finder:{error_fetching_user:n=>{const{normalize:o}=n;return o(["Eraris alporto de uzanto"])},find_user:n=>{const{normalize:o}=n;return o(["Trovi uzanton"])}},general:{apply:n=>{const{normalize:o}=n;return o(["Apliki"])},submit:n=>{const{normalize:o}=n;return o(["Sendi"])},more:n=>{const{normalize:o}=n;return o(["Pli"])},generic_error:n=>{const{normalize:o}=n;return o(["Eraro okazis"])},optional:n=>{const{normalize:o}=n;return o(["malnepra"])},close:n=>{const{normalize:o}=n;return o(["Fermi"])},verify:n=>{const{normalize:o}=n;return o(["Kontroli"])},confirm:n=>{const{normalize:o}=n;return o(["Konfirmi"])},enable:n=>{const{normalize:o}=n;return o(["Ŝalti"])},disable:n=>{const{normalize:o}=n;return o(["Malŝalti"])},cancel:n=>{const{normalize:o}=n;return o(["Nuligi"])},dismiss:n=>{const{normalize:o}=n;return o(["Forlasi"])},show_less:n=>{const{normalize:o}=n;return o(["Montri malplion"])},show_more:n=>{const{normalize:o}=n;return o(["Montri plion"])},retry:n=>{const{normalize:o}=n;return o(["Reprovi"])},error_retry:n=>{const{normalize:o}=n;return o(["Bonvolu reprovi"])},loading:n=>{const{normalize:o}=n;return o(["Enlegante…"])},peek:n=>{const{normalize:o}=n;return o(["Antaŭmontri"])},role:{moderator:n=>{const{normalize:o}=n;return o(["Reguligisto"])},admin:n=>{const{normalize:o}=n;return o(["Administranto"])}},flash_content:n=>{const{normalize:o}=n;return o(["Klaku por montri enhavon de Flash per Ruffle. (Eksperimente, eble ne funkcios.)"])},flash_security:n=>{const{normalize:o}=n;return o(["Sciu, ke tio povas esti danĝera, ĉar la enhavo de Flash ja estas arbitra programo."])},flash_fail:n=>{const{normalize:o}=n;return o(["Malsukcesis enlegi enhavon de Flash; vidu detalojn en konzolo."])},scope_in_timeline:{direct:n=>{const{normalize:o}=n;return o(["Persona"])},private:n=>{const{normalize:o}=n;return o(["Nur abonantoj"])},public:n=>{const{normalize:o}=n;return o(["Publika"])},unlisted:n=>{const{normalize:o}=n;return o(["Nelistigita"])}},generic_error_message:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris: ",e(r(0))])},never_show_again:n=>{const{normalize:o}=n;return o(["Neniam remontri"])},undo:n=>{const{normalize:o}=n;return o(["Malfari"])},yes:n=>{const{normalize:o}=n;return o(["Jes"])},no:n=>{const{normalize:o}=n;return o(["Ne"])},unpin:n=>{const{normalize:o}=n;return o(["Malfiksi eron"])},pin:n=>{const{normalize:o}=n;return o(["Fiksi eron"])},scroll_to_top:n=>{const{normalize:o}=n;return o(["Rulumi supren"])}},image_cropper:{crop_picture:n=>{const{normalize:o}=n;return o(["Tondi bildon"])},save:n=>{const{normalize:o}=n;return o(["Konservi"])},cancel:n=>{const{normalize:o}=n;return o(["Nuligi"])},save_without_cropping:n=>{const{normalize:o}=n;return o(["Konservi sen tondado"])}},login:{login:n=>{const{normalize:o}=n;return o(["Saluti"])},description:n=>{const{normalize:o}=n;return o(["Saluti per OAuth"])},logout:n=>{const{normalize:o}=n;return o(["Adiaŭi"])},password:n=>{const{normalize:o}=n;return o(["Pasvorto"])},placeholder:n=>{const{normalize:o}=n;return o(["ekz. lain"])},register:n=>{const{normalize:o}=n;return o(["Registriĝi"])},username:n=>{const{normalize:o}=n;return o(["Uzantonomo"])},hint:n=>{const{normalize:o}=n;return o(["Salutu por partopreni la diskutadon"])},heading:{recovery:n=>{const{normalize:o}=n;return o(["Rehavo de duobla aŭtentikigo"])},totp:n=>{const{normalize:o}=n;return o(["Duobla aŭtentikigo"])}},recovery_code:n=>{const{normalize:o}=n;return o(["Rehava kodo"])},enter_two_factor_code:n=>{const{normalize:o}=n;return o(["Enigu kodon de duobla aŭtentikigo"])},enter_recovery_code:n=>{const{normalize:o}=n;return o(["Enigu rehavan kodon"])},authentication_code:n=>{const{normalize:o}=n;return o(["Aŭtentikiga kodo"])}},media_modal:{previous:n=>{const{normalize:o}=n;return o(["Antaŭa"])},next:n=>{const{normalize:o}=n;return o(["Sekva"])},counter:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("current"))," / ",e(r("total"))])},hide:n=>{const{normalize:o}=n;return o(["Fermi vidilon de vidaŭdaĵoj"])}},nav:{about:n=>{const{normalize:o}=n;return o(["Pri"])},back:n=>{const{normalize:o}=n;return o(["Reen"])},chat:n=>{const{normalize:o}=n;return o(["Loka babilejo"])},friend_requests:n=>{const{normalize:o}=n;return o(["Petoj pri abono"])},mentions:n=>{const{normalize:o}=n;return o(["Mencioj"])},dms:n=>{const{normalize:o}=n;return o(["Rektaj mesaĝoj"])},public_tl:n=>{const{normalize:o}=n;return o(["Noda historio"])},timeline:n=>{const{normalize:o}=n;return o(["Historio"])},twkn:n=>{const{normalize:o}=n;return o(["Federa historio"])},user_search:n=>{const{normalize:o}=n;return o(["Serĉi uzantojn"])},who_to_follow:n=>{const{normalize:o}=n;return o(["Kiun aboni"])},preferences:n=>{const{normalize:o}=n;return o(["Agordoj"])},chats:n=>{const{normalize:o}=n;return o(["Babiloj"])},search:n=>{const{normalize:o}=n;return o(["Serĉi"])},interactions:n=>{const{normalize:o}=n;return o(["Interagoj"])},administration:n=>{const{normalize:o}=n;return o(["Administrado"])},bookmarks:n=>{const{normalize:o}=n;return o(["Legosignoj"])},timelines:n=>{const{normalize:o}=n;return o(["Historioj"])},home_timeline:n=>{const{normalize:o}=n;return o(["Hejma historio"])},edit_pinned:n=>{const{normalize:o}=n;return o(["Redakti fiksitajn erojn"])},lists:n=>{const{normalize:o}=n;return o(["Listoj"])},edit_nav_mobile:n=>{const{normalize:o}=n;return o(["Adapti navigan breton"])},edit_finish:n=>{const{normalize:o}=n;return o(["Fini redakton"])},mobile_notifications:n=>{const{normalize:o}=n;return o(["Malfermi sciigojn (estas nelegitaj)"])},mobile_notifications_close:n=>{const{normalize:o}=n;return o(["Fermi sciigojn"])},announcements:n=>{const{normalize:o}=n;return o(["Anoncoj"])}},notifications:{broken_favorite:n=>{const{normalize:o}=n;return o(["Nekonata afiŝo, serĉante ĝin…"])},favorited_you:n=>{const{normalize:o}=n;return o(["ŝatis vian afiŝon"])},followed_you:n=>{const{normalize:o}=n;return o(["ekabonis vin"])},load_older:n=>{const{normalize:o}=n;return o(["Enlegi pli malnovajn sciigojn"])},notifications:n=>{const{normalize:o}=n;return o(["Sciigoj"])},read:n=>{const{normalize:o}=n;return o(["Legite!"])},repeated_you:n=>{const{normalize:o}=n;return o(["ripetis vian afiŝon"])},no_more_notifications:n=>{const{normalize:o}=n;return o(["Neniuj pliaj sciigoj"])},reacted_with:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["reagis per ",e(r(0))])},migrated_to:n=>{const{normalize:o}=n;return o(["migris al"])},follow_request:n=>{const{normalize:o}=n;return o(["volas vin aboni"])},error:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris akirado de sciigoj: ",e(r(0))])},submitted_report:n=>{const{normalize:o}=n;return o(["sendis raporton"])},poll_ended:n=>{const{normalize:o}=n;return o(["enketo finiĝis"])}},post_status:{new_status:n=>{const{normalize:o}=n;return o(["Afiŝi"])},account_not_locked_warning:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Via konto ne estas ",e(r(0)),". Iu ajn povas vin aboni por vidi eĉ viajn afiŝoj nur por abonantoj."])},account_not_locked_warning_link:n=>{const{normalize:o}=n;return o(["ŝlosita"])},attachments_sensitive:n=>{const{normalize:o}=n;return o(["Marki kunsendaĵojn konsternaj"])},content_type:{"text/plain":n=>{const{normalize:o}=n;return o(["Plata teksto"])},"text/bbcode":n=>{const{normalize:o}=n;return o(["BBCode"])},"text/markdown":n=>{const{normalize:o}=n;return o(["Markdown"])},"text/html":n=>{const{normalize:o}=n;return o(["HTML"])}},content_warning:n=>{const{normalize:o}=n;return o(["Temo (malnepra)"])},default:n=>{const{normalize:o}=n;return o(["Ĵus alvenis Esperantujon!"])},direct_warning:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla nur por ĉiuj menciitaj uzantoj."])},posting:n=>{const{normalize:o}=n;return o(["Afiŝante"])},scope:{direct:n=>{const{normalize:o}=n;return o(["Rekta – afiŝi nur al menciitaj uzantoj"])},private:n=>{const{normalize:o}=n;return o(["Nur abonantoj – afiŝi nur al abonantoj"])},public:n=>{const{normalize:o}=n;return o(["Publika – afiŝi al publikaj historioj"])},unlisted:n=>{const{normalize:o}=n;return o(["Nelistigita – ne afiŝi al publikaj historioj"])}},scope_notice:{unlisted:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo ne estos videbla en la Noda kaj la Federa historioj"])},private:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla nur al viaj abonantoj"])},public:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla al ĉiuj"])}},media_description_error:n=>{const{normalize:o}=n;return o(["Malsukcesis afiŝo de vidaŭdaĵoj; reprovu"])},empty_status_error:n=>{const{normalize:o}=n;return o(["Ne povas fari malplenan afiŝon sen dosieroj"])},preview_empty:n=>{const{normalize:o}=n;return o(["Malplena"])},preview:n=>{const{normalize:o}=n;return o(["Antaŭrigardo"])},direct_warning_to_first_only:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo."])},direct_warning_to_all:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj."])},media_description:n=>{const{normalize:o}=n;return o(["Priskribo de vidaŭdaĵo"])},post:n=>{const{normalize:o}=n;return o(["Afiŝo"])},edit_remote_warning:n=>{const{normalize:o}=n;return o(["Aliaj foraj nodoj eble ne subtenas redaktadon, kaj ne povos ricevi pli novan version de via afiŝo."])},edit_unsupported_warning:n=>{const{normalize:o}=n;return o(["Pleroma ne subtenas redaktadon de mencioj aŭ enketoj."])},edit_status:n=>{const{normalize:o}=n;return o(["Redakti afiŝon"])}},registration:{bio:n=>{const{normalize:o}=n;return o(["Priskribo"])},email:n=>{const{normalize:o}=n;return o(["Retpoŝtadreso"])},fullname:n=>{const{normalize:o}=n;return o(["Prezenta nomo"])},password_confirm:n=>{const{normalize:o}=n;return o(["Konfirmo de pasvorto"])},registration:n=>{const{normalize:o}=n;return o(["Registriĝo"])},token:n=>{const{normalize:o}=n;return o(["Invita peco"])},captcha:n=>{const{normalize:o}=n;return o(["TESTO DE HOMECO"])},new_captcha:n=>{const{normalize:o}=n;return o(["Klaku la bildon por akiri novan teston"])},username_placeholder:n=>{const{normalize:o}=n;return o(["ekz. lain"])},fullname_placeholder:n=>{const{normalize:o}=n;return o(["ekz. Lain Ivakura"])},bio_placeholder:n=>{const{normalize:o}=n;return o(["ekz.\nSaluton, mi estas Lain.\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo « Wired »."])},validations:{username_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},fullname_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},email_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},password_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},password_confirmation_required:n=>{const{normalize:o}=n;return o(["ne povas resti malplena"])},password_confirmation_match:n=>{const{normalize:o}=n;return o(["samu la pasvorton"])}},reason_placeholder:n=>{const{normalize:o}=n;return o(["Ĉi-node oni aprobas registriĝojn permane.\nSciigu la administrantojn kial vi volas registriĝi."])},reason:n=>{const{normalize:o}=n;return o(["Kialo registriĝi"])},register:n=>{const{normalize:o}=n;return o(["Registriĝi"])},bio_optional:n=>{const{normalize:o}=n;return o(["Prio (malnepra)"])},email_optional:n=>{const{normalize:o}=n;return o(["Retpoŝtadreso (malnepra)"])},email_language:n=>{const{normalize:o}=n;return o(["En kiu lingvo vi volus ricevi retleterojn de la servilo?"])}},settings:{app_name:n=>{const{normalize:o}=n;return o(["Nomo de aplikaĵo"])},attachmentRadius:n=>{const{normalize:o}=n;return o(["Kunsendaĵoj"])},attachments:n=>{const{normalize:o}=n;return o(["Kunsendaĵoj"])},avatar:n=>{const{normalize:o}=n;return o(["Profilbildo"])},avatarAltRadius:n=>{const{normalize:o}=n;return o(["Profilbildoj (sciigoj)"])},avatarRadius:n=>{const{normalize:o}=n;return o(["Profilbildoj"])},background:n=>{const{normalize:o}=n;return o(["Fono"])},bio:n=>{const{normalize:o}=n;return o(["Priskribo"])},blocks_tab:n=>{const{normalize:o}=n;return o(["Blokitoj"])},btnRadius:n=>{const{normalize:o}=n;return o(["Butonoj"])},cBlue:n=>{const{normalize:o}=n;return o(["Blua (respondi, aboni)"])},cGreen:n=>{const{normalize:o}=n;return o(["Verda (diskonigi)"])},cOrange:n=>{const{normalize:o}=n;return o(["Oranĝa (ŝati)"])},cRed:n=>{const{normalize:o}=n;return o(["Ruĝa (nuligi)"])},change_password:n=>{const{normalize:o}=n;return o(["Ŝanĝi pasvorton"])},change_password_error:n=>{const{normalize:o}=n;return o(["Eraris ŝanĝo de via pasvorto."])},changed_password:n=>{const{normalize:o}=n;return o(["Pasvorto sukcese ŝanĝiĝis!"])},collapse_subject:n=>{const{normalize:o}=n;return o(["Maletendi afiŝojn kun temoj"])},composing:n=>{const{normalize:o}=n;return o(["Verkado"])},confirm_new_password:n=>{const{normalize:o}=n;return o(["Konfirmu novan pasvorton"])},current_avatar:n=>{const{normalize:o}=n;return o(["Via nuna profilbildo"])},current_password:n=>{const{normalize:o}=n;return o(["Nuna pasvorto"])},current_profile_banner:n=>{const{normalize:o}=n;return o(["Via nuna profila rubando"])},data_import_export_tab:n=>{const{normalize:o}=n;return o(["Enporto / Elporto de datumoj"])},default_vis:n=>{const{normalize:o}=n;return o(["Implicita amplekso de vidibleco"])},delete_account:n=>{const{normalize:o}=n;return o(["Forigi konton"])},delete_account_description:n=>{const{normalize:o}=n;return o(["Por ĉiam forigi viajn datumojn kaj malaktivigi vian konton."])},delete_account_error:n=>{const{normalize:o}=n;return o(["Eraris forigo de via kanto. Se tio daŭre ripetiĝos, bonvolu kontakti la administranton de via nodo."])},delete_account_instructions:n=>{const{normalize:o}=n;return o(["Entajpu sube vian pasvorton por konfirmi forigon de konto."])},avatar_size_instruction:n=>{const{normalize:o}=n;return o(["La rekomendata minimuma grando de profilbildoj estas 150×150 bilderoj."])},export_theme:n=>{const{normalize:o}=n;return o(["Konservi antaŭagordon"])},filtering:n=>{const{normalize:o}=n;return o(["Filtrado"])},filtering_explanation:n=>{const{normalize:o}=n;return o(["Ĉiuj afiŝoj kun tiuj ĉi vortoj silentiĝos; skribu po unu linie"])},follow_export:n=>{const{normalize:o}=n;return o(["Elporto de abonoj"])},follow_export_button:n=>{const{normalize:o}=n;return o(["Elporti viajn abonojn al CSV-dosiero"])},follow_export_processing:n=>{const{normalize:o}=n;return o(["Traktante; baldaŭ vi ricevos peton elŝuti la dosieron"])},follow_import:n=>{const{normalize:o}=n;return o(["Enporto de abonoj"])},follow_import_error:n=>{const{normalize:o}=n;return o(["Eraro enportante abonojn"])},follows_imported:n=>{const{normalize:o}=n;return o(["Abonoj enportiĝis! Traktado daŭros iom da tempo."])},foreground:n=>{const{normalize:o}=n;return o(["Malfono"])},general:n=>{const{normalize:o}=n;return o(["Ĝenerala"])},hide_attachments_in_convo:n=>{const{normalize:o}=n;return o(["Kaŝi kunsendaĵojn en interparoloj"])},hide_attachments_in_tl:n=>{const{normalize:o}=n;return o(["Kaŝi kunsendaĵojn en historioj"])},max_thumbnails:n=>{const{normalize:o}=n;return o(["Maksimuma nombro da bildetoj en afiŝo"])},hide_isp:n=>{const{normalize:o}=n;return o(["Kaŝi breton propran al nodo"])},preload_images:n=>{const{normalize:o}=n;return o(["Antaŭ-enlegi bildojn"])},use_one_click_nsfw:n=>{const{normalize:o}=n;return o(["Malfermi konsternajn kunsendaĵojn per nur unu klako"])},hide_post_stats:n=>{const{normalize:o}=n;return o(["Kaŝi statistikon de afiŝoj (ekz. nombron de ŝatoj)"])},hide_user_stats:n=>{const{normalize:o}=n;return o(["Kaŝi statistikon de uzantoj (ekz. nombron de abonantoj)"])},hide_filtered_statuses:n=>{const{normalize:o}=n;return o(["Kaŝi ĉiujn filtritajn afiŝojn"])},import_followers_from_a_csv_file:n=>{const{normalize:o}=n;return o(["Enporti abonojn el CSV-dosiero"])},import_theme:n=>{const{normalize:o}=n;return o(["Enlegi antaŭagordojn"])},inputRadius:n=>{const{normalize:o}=n;return o(["Enigaj kampoj"])},checkboxRadius:n=>{const{normalize:o}=n;return o(["Markbutonoj"])},instance_default:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["(originale: ",e(r("value")),")"])},instance_default_simple:n=>{const{normalize:o}=n;return o(["(originale)"])},interface:n=>{const{normalize:o}=n;return o(["Fasado"])},interfaceLanguage:n=>{const{normalize:o}=n;return o(["Lingvo de fasado"])},invalid_theme_imported:n=>{const{normalize:o}=n;return o(["La elektita dosiero ne estas subtenata haŭto de Pleromo. Neniuj ŝanĝoj al via haŭto okazis."])},limited_availability:n=>{const{normalize:o}=n;return o(["Nehavebla en via foliumilo"])},links:n=>{const{normalize:o}=n;return o(["Ligiloj"])},lock_account_description:n=>{const{normalize:o}=n;return o(["Limigi vian konton al nur abonantoj aprobitaj"])},loop_video:n=>{const{normalize:o}=n;return o(["Ripetadi filmojn"])},loop_video_silent_only:n=>{const{normalize:o}=n;return o(["Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)"])},mutes_tab:n=>{const{normalize:o}=n;return o(["Silentigoj"])},play_videos_in_modal:n=>{const{normalize:o}=n;return o(["Ludi filmojn en ŝpruca kadro"])},use_contain_fit:n=>{const{normalize:o}=n;return o(["Ne pritondi bildetojn de kunsendaĵoj"])},name:n=>{const{normalize:o}=n;return o(["Nomo"])},name_bio:n=>{const{normalize:o}=n;return o(["Nomo kaj priskribo"])},new_password:n=>{const{normalize:o}=n;return o(["Nova pasvorto"])},notification_visibility:n=>{const{normalize:o}=n;return o(["Montrotaj specoj de sciigoj"])},notification_visibility_follows:n=>{const{normalize:o}=n;return o(["Abonoj"])},notification_visibility_likes:n=>{const{normalize:o}=n;return o(["Ŝatoj"])},notification_visibility_mentions:n=>{const{normalize:o}=n;return o(["Mencioj"])},notification_visibility_repeats:n=>{const{normalize:o}=n;return o(["Ripetoj"])},no_rich_text_description:n=>{const{normalize:o}=n;return o(["Forigi riĉtekstajn formojn de ĉiuj afiŝoj"])},no_blocks:n=>{const{normalize:o}=n;return o(["Neniuj blokitoj"])},no_mutes:n=>{const{normalize:o}=n;return o(["Neniuj silentigoj"])},hide_follows_description:n=>{const{normalize:o}=n;return o(["Ne montri kiun mi sekvas"])},hide_followers_description:n=>{const{normalize:o}=n;return o(["Ne montri kiu min sekvas"])},show_admin_badge:n=>{const{normalize:o}=n;return o(["Montri la insignon de administranto en mia profilo"])},show_moderator_badge:n=>{const{normalize:o}=n;return o(["Montri la insignon de reguligisto en mia profilo"])},nsfw_clickthrough:n=>{const{normalize:o}=n;return o(["Ŝalti traklakan kaŝadon de kunsendaĵoj kaj antaŭmontroj de ligiloj por konsternaj afiŝoj"])},oauth_tokens:n=>{const{normalize:o}=n;return o(["Pecoj de OAuth"])},token:n=>{const{normalize:o}=n;return o(["Peco"])},refresh_token:n=>{const{normalize:o}=n;return o(["Aktualiga peco"])},valid_until:n=>{const{normalize:o}=n;return o(["Valida ĝis"])},revoke_token:n=>{const{normalize:o}=n;return o(["Senvalidigi"])},panelRadius:n=>{const{normalize:o}=n;return o(["Bretoj"])},pause_on_unfocused:n=>{const{normalize:o}=n;return o(["Paŭzigi elsendfluon kiam langeto ne estas fokusata"])},presets:n=>{const{normalize:o}=n;return o(["Antaŭagordoj"])},profile_background:n=>{const{normalize:o}=n;return o(["Fono de profilo"])},profile_banner:n=>{const{normalize:o}=n;return o(["Rubando de profilo"])},profile_tab:n=>{const{normalize:o}=n;return o(["Profilo"])},radii_help:n=>{const{normalize:o}=n;return o(["Agordi fasadan rondigon de randoj (bildere)"])},replies_in_timeline:n=>{const{normalize:o}=n;return o(["Respondoj en historioj"])},reply_visibility_all:n=>{const{normalize:o}=n;return o(["Montri ĉiujn respondojn"])},reply_visibility_following:n=>{const{normalize:o}=n;return o(["Montri nur respondojn por mi aŭ miaj abonatoj"])},reply_visibility_self:n=>{const{normalize:o}=n;return o(["Montri nur respondojn por mi"])},saving_err:n=>{const{normalize:o}=n;return o(["Eraris konservado de agordoj"])},saving_ok:n=>{const{normalize:o}=n;return o(["Agordoj konserviĝis"])},security_tab:n=>{const{normalize:o}=n;return o(["Sekureco"])},scope_copy:n=>{const{normalize:o}=n;return o(["Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)"])},set_new_avatar:n=>{const{normalize:o}=n;return o(["Agordi novan profilbildon"])},set_new_profile_background:n=>{const{normalize:o}=n;return o(["Agordi novan fonon de profilo"])},set_new_profile_banner:n=>{const{normalize:o}=n;return o(["Agordi novan rubandon de profilo"])},settings:n=>{const{normalize:o}=n;return o(["Agordoj"])},subject_input_always_show:n=>{const{normalize:o}=n;return o(["Ĉiam montri kampon de temo"])},subject_line_behavior:n=>{const{normalize:o}=n;return o(["Kopii temon dum respondado"])},subject_line_email:n=>{const{normalize:o}=n;return o(["Kiel retpoŝto: «re: temo»"])},subject_line_mastodon:n=>{const{normalize:o}=n;return o(["Kiel Mastodon: kopii senŝanĝe"])},subject_line_noop:n=>{const{normalize:o}=n;return o(["Ne kopii"])},post_status_content_type:n=>{const{normalize:o}=n;return o(["Speco de enhavo de afiŝo"])},stop_gifs:n=>{const{normalize:o}=n;return o(["Movi GIF-bildojn dum ŝvebo de muso"])},streaming:n=>{const{normalize:o}=n;return o(["Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo"])},text:n=>{const{normalize:o}=n;return o(["Teksto"])},theme:n=>{const{normalize:o}=n;return o(["Haŭto"])},theme_help:n=>{const{normalize:o}=n;return o(["Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton."])},theme_help_v2_1:n=>{const{normalize:o}=n;return o(["Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon «Vakigi ĉion» por forigi ĉîujn superagordojn."])},theme_help_v2_2:n=>{const{normalize:o}=n;return o(["Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; ŝvebigu muson por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo."])},tooltipRadius:n=>{const{normalize:o}=n;return o(["Ŝpruchelpiloj/avertoj"])},upload_a_photo:n=>{const{normalize:o}=n;return o(["Alŝuti foton"])},user_settings:n=>{const{normalize:o}=n;return o(["Agordoj de uzanto"])},values:{false:n=>{const{normalize:o}=n;return o(["ne"])},true:n=>{const{normalize:o}=n;return o(["jes"])}},notifications:n=>{const{normalize:o}=n;return o(["Sciigoj"])},enable_web_push_notifications:n=>{const{normalize:o}=n;return o(["Ŝalti retajn pasivajn sciigojn"])},style:{switcher:{keep_color:n=>{const{normalize:o}=n;return o(["Konservi kolorojn"])},keep_shadows:n=>{const{normalize:o}=n;return o(["Konservi ombrojn"])},keep_opacity:n=>{const{normalize:o}=n;return o(["Konservi maltravideblecon"])},keep_roundness:n=>{const{normalize:o}=n;return o(["Konservi rondecon"])},keep_fonts:n=>{const{normalize:o}=n;return o(["Konservi tiparojn"])},save_load_hint:n=>{const{normalize:o}=n;return o(["Elektebloj de «konservi» konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos."])},reset:n=>{const{normalize:o}=n;return o(["Restarigi"])},clear_all:n=>{const{normalize:o}=n;return o(["Vakigi ĉion"])},clear_opacity:n=>{const{normalize:o}=n;return o(["Vakigi maltravideblecon"])},help:{fe_downgraded:n=>{const{normalize:o}=n;return o(["Versio de PleromaFE reen iris."])},fe_upgraded:n=>{const{normalize:o}=n;return o(["La motoro de haŭtoj de PleromaFE ĝisdatiĝis post ĝisdatigo de la versio."])},older_version_imported:n=>{const{normalize:o}=n;return o(["La enportita dosiero estis farita per pli malnova versio de PleromaFE."])},future_version_imported:n=>{const{normalize:o}=n;return o(["La enportita dosiero estis farita per pli nova versio de PleromaFE."])},v2_imported:n=>{const{normalize:o}=n;return o(["La dosiero, kiun vi enportis, estis farita por malnova versio de PleromaFE. Ni provas maksimumigi interkonformecon, sed tamen eble montriĝos misoj."])},upgraded_from_v2:n=>{const{normalize:o}=n;return o(["PleromaFE estis ĝisdatigita; la haŭto eble aspektos malsame ol kiel vi ĝin memoras."])},snapshot_missing:n=>{const{normalize:o}=n;return o(["Neniu momentokopio de haŭto estis en la dosiero, ĝi povas aspekti iom malsame ol oni intencis."])},snapshot_present:n=>{const{normalize:o}=n;return o(["Ĉiuj valoroj estas transpasataj, ĉar momentokopio de haŭto estas enlegita. Vi povas enlegi anstataŭe la aktualajn datumojn de haŭto."])},snapshot_source_mismatch:n=>{const{normalize:o}=n;return o(["Versioj konfliktas: plej probable la fasado estis reirigita kaj ree ĝisdatigita; se vi ŝanĝis la haŭton per pli malnova versio de la fasado, vi probable volas uzi la malnovan version. Alie uzu la novan."])},migration_napshot_gone:n=>{const{normalize:o}=n;return o(["Ial mankis momentokopio; io povus aspekti malsame ol en via memoro."])},migration_snapshot_ok:n=>{const{normalize:o}=n;return o(["Certige, momentokopio de la haŭto enlegiĝis. Vi povas provi enlegi datumojn de la haŭto."])}},use_source:n=>{const{normalize:o}=n;return o(["Nova versio"])},use_snapshot:n=>{const{normalize:o}=n;return o(["Malnova versio"])},keep_as_is:n=>{const{normalize:o}=n;return o(["Teni senŝanĝa"])},load_theme:n=>{const{normalize:o}=n;return o(["Enlegi haŭton"])}},common:{color:n=>{const{normalize:o}=n;return o(["Koloro"])},opacity:n=>{const{normalize:o}=n;return o(["Maltravidebleco"])},contrast:{hint:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Proporcio de kontrasto estas ",e(r("ratio")),", ĝi ",e(r("level"))," ",e(r("context"))])},level:{aa:n=>{const{normalize:o}=n;return o(["plenumas la gvidilon je nivelo AA (minimuma)"])},aaa:n=>{const{normalize:o}=n;return o(["plenumas la gvidilon je nivela AAA (rekomendita)"])},bad:n=>{const{normalize:o}=n;return o(["plenumas neniujn faciluzajn gvidilojn"])}},context:{"18pt":n=>{const{normalize:o}=n;return o(["por granda (18pt+) teksto"])},text:n=>{const{normalize:o}=n;return o(["por teksto"])}}}},common_colors:{_tab_label:n=>{const{normalize:o}=n;return o(["Komunaj"])},main:n=>{const{normalize:o}=n;return o(["Komunaj koloroj"])},foreground_hint:n=>{const{normalize:o}=n;return o(["Vidu langeton «Specialaj» por pli detalaj agordoj"])},rgbo:n=>{const{normalize:o}=n;return o(["Bildsimboloj, emfazoj, insignoj"])}},advanced_colors:{_tab_label:n=>{const{normalize:o}=n;return o(["Specialaj"])},alert:n=>{const{normalize:o}=n;return o(["Fono de averto"])},alert_error:n=>{const{normalize:o}=n;return o(["Eraro"])},badge:n=>{const{normalize:o}=n;return o(["Fono de insigno"])},badge_notification:n=>{const{normalize:o}=n;return o(["Sciigo"])},panel_header:n=>{const{normalize:o}=n;return o(["Kapo de breto"])},top_bar:n=>{const{normalize:o}=n;return o(["Supra breto"])},borders:n=>{const{normalize:o}=n;return o(["Limoj"])},buttons:n=>{const{normalize:o}=n;return o(["Butonoj"])},inputs:n=>{const{normalize:o}=n;return o(["Enigaj kampoj"])},faint_text:n=>{const{normalize:o}=n;return o(["Malvigla teksto"])},chat:{border:n=>{const{normalize:o}=n;return o(["Limo"])},outgoing:n=>{const{normalize:o}=n;return o(["Eliraj"])},incoming:n=>{const{normalize:o}=n;return o(["Envenaj"])}},tabs:n=>{const{normalize:o}=n;return o(["Langetoj"])},disabled:n=>{const{normalize:o}=n;return o(["Malŝaltita"])},selectedMenu:n=>{const{normalize:o}=n;return o(["Elektita menuero"])},selectedPost:n=>{const{normalize:o}=n;return o(["Elektita afiŝo"])},pressed:n=>{const{normalize:o}=n;return o(["Premita"])},highlight:n=>{const{normalize:o}=n;return o(["Emfazitaj eroj"])},icons:n=>{const{normalize:o}=n;return o(["Bildsimboloj"])},poll:n=>{const{normalize:o}=n;return o(["Grafo de enketo"])},underlay:n=>{const{normalize:o}=n;return o(["Subtavolo"])},popover:n=>{const{normalize:o}=n;return o(["Ŝprucaĵoj, menuoj"])},post:n=>{const{normalize:o}=n;return o(["Afiŝoj/Priskriboj de uzantoj"])},alert_neutral:n=>{const{normalize:o}=n;return o(["Neŭtrala"])},alert_warning:n=>{const{normalize:o}=n;return o(["Averto"])},toggled:n=>{const{normalize:o}=n;return o(["Ŝaltita"])},wallpaper:n=>{const{normalize:o}=n;return o(["Fonbildo"])}},radii:{_tab_label:n=>{const{normalize:o}=n;return o(["Rondeco"])}},shadows:{_tab_label:n=>{const{normalize:o}=n;return o(["Ombro kaj lumo"])},component:n=>{const{normalize:o}=n;return o(["Ero"])},override:n=>{const{normalize:o}=n;return o(["Transpasi"])},shadow_id:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Ombro #",e(r("value"))])},blur:n=>{const{normalize:o}=n;return o(["Malklarigo"])},spread:n=>{const{normalize:o}=n;return o(["Vastigo"])},inset:n=>{const{normalize:o}=n;return o(["Internigo"])},hint:n=>{const{normalize:o}=n;return o(["Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios."])},filter_hint:{always_drop_shadow:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Averto: ĉi tiu ombro ĉiam uzas ",e(r(0))," kiam la foliumilo tion subtenas."])},drop_shadow_syntax:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," ne subtenas parametron ",e(r(1))," kaj ĉefvorton ",e(r(2)),"."])},avatar_inset:n=>{const{normalize:o}=n;return o(["Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj."])},spread_zero:n=>{const{normalize:o}=n;return o(["Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo"])},inset_classic:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Internaj ombroj uzos ",e(r(0))])}},components:{panel:n=>{const{normalize:o}=n;return o(["Breto"])},panelHeader:n=>{const{normalize:o}=n;return o(["Kapo de breto"])},topBar:n=>{const{normalize:o}=n;return o(["Supra breto"])},avatar:n=>{const{normalize:o}=n;return o(["Profilbildo de uzanto (en profila vido)"])},avatarStatus:n=>{const{normalize:o}=n;return o(["Profilbildo de uzanto (en afiŝa vido)"])},popup:n=>{const{normalize:o}=n;return o(["Ŝprucaĵoj"])},button:n=>{const{normalize:o}=n;return o(["Butono"])},buttonHover:n=>{const{normalize:o}=n;return o(["Butono (je ŝvebo)"])},buttonPressed:n=>{const{normalize:o}=n;return o(["Butono (premita)"])},buttonPressedHover:n=>{const{normalize:o}=n;return o(["Butono (je premo kaj ŝvebo)"])},input:n=>{const{normalize:o}=n;return o(["Eniga kampo"])}},hintV3:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Kolorojn de ombroj vi ankaŭ povas skribi per la sistemo ",e(r(0)),"."])}},fonts:{_tab_label:n=>{const{normalize:o}=n;return o(["Tiparoj"])},help:n=>{const{normalize:o}=n;return o(["Elektu tiparon uzotan por eroj de la fasado. Por «propra» vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo."])},components:{interface:n=>{const{normalize:o}=n;return o(["Fasado"])},input:n=>{const{normalize:o}=n;return o(["Enigaj kampoj"])},post:n=>{const{normalize:o}=n;return o(["Teksto de afiŝo"])},postCode:n=>{const{normalize:o}=n;return o(["Egallarĝa teksto en afiŝo (riĉteksto)"])}},family:n=>{const{normalize:o}=n;return o(["Nomo de tiparo"])},size:n=>{const{normalize:o}=n;return o(["Grando (en bilderoj)"])},weight:n=>{const{normalize:o}=n;return o(["Pezo (graseco)"])},custom:n=>{const{normalize:o}=n;return o(["Propra"])}},preview:{header:n=>{const{normalize:o}=n;return o(["Antaŭrigardo"])},content:n=>{const{normalize:o}=n;return o(["Enhavo"])},error:n=>{const{normalize:o}=n;return o(["Ekzempla eraro"])},button:n=>{const{normalize:o}=n;return o(["Butono"])},text:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Kelko da pliaj ",e(r(0))," kaj ",e(r(1))])},mono:n=>{const{normalize:o}=n;return o(["enhavo"])},input:n=>{const{normalize:o}=n;return o(["Ĵus alvenis Esperantujon!"])},faint_link:n=>{const{normalize:o}=n;return o(["helpan manlibron"])},fine_print:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Legu nian ",e(r(0))," por nenion utilan ekscii!"])},header_faint:n=>{const{normalize:o}=n;return o(["Tio estas en ordo"])},checkbox:n=>{const{normalize:o}=n;return o(["Mi legetis la kondiĉojn de uzado"])},link:n=>{const{normalize:o}=n;return o(["bela eta ligil’"])}}},discoverable:n=>{const{normalize:o}=n;return o(["Permesi trovon de ĉi tiu konto en serĉrezultoj kaj aliaj servoj"])},mutes_and_blocks:n=>{const{normalize:o}=n;return o(["Blokado kaj silentigoj"])},chatMessageRadius:n=>{const{normalize:o}=n;return o(["Babileja mesaĝo"])},changed_email:n=>{const{normalize:o}=n;return o(["Retpoŝtadreso sukcese ŝanĝiĝis!"])},change_email_error:n=>{const{normalize:o}=n;return o(["Eraris ŝanĝo de via retpoŝtadreso."])},change_email:n=>{const{normalize:o}=n;return o(["Ŝanĝi retpoŝtadreson"])},bot:n=>{const{normalize:o}=n;return o(["Ĉi tio estas robota konto"])},blocks_imported:n=>{const{normalize:o}=n;return o(["Blokitoj enportiĝis! Traktado daŭros iom da tempo."])},block_import_error:n=>{const{normalize:o}=n;return o(["Eraris enporto de blokitoj"])},block_export:n=>{const{normalize:o}=n;return o(["Elporto de blokitoj"])},block_import:n=>{const{normalize:o}=n;return o(["Enporto de blokitoj"])},block_export_button:n=>{const{normalize:o}=n;return o(["Elporti viajn blokitojn al CSV-dosiero"])},allow_following_move:n=>{const{normalize:o}=n;return o(["Permesi memagan abonadon kiam abonata konto migras"])},mfa:{verify:{desc:n=>{const{normalize:o}=n;return o(["Por ŝalti duoblan aŭtentikigon, enigu la kodon el via aplikaĵo por duobla aŭtentikigo:"])}},scan:{secret_code:n=>{const{normalize:o}=n;return o(["Ŝlosilo"])},desc:n=>{const{normalize:o}=n;return o(["Uzante vian aplikaĵon por duobla aŭtentikigo, skanu ĉi tiun rapidrespondan kodon aŭ enigu tekstan ŝlosilon:"])},title:n=>{const{normalize:o}=n;return o(["Skani"])}},authentication_methods:n=>{const{normalize:o}=n;return o(["Metodoj de aŭtentikigo"])},recovery_codes_warning:n=>{const{normalize:o}=n;return o(["Notu la kodojn aŭ konservu ilin en sekura loko – alie vi ne revidos ilin. Se vi perdos aliron al via aplikaĵo por duobla aŭtentikigo kaj al la rehavaj kodoj, vi ne povos aliri vian konton."])},waiting_a_recovery_codes:n=>{const{normalize:o}=n;return o(["Ricevante savkopiajn kodojn…"])},recovery_codes:n=>{const{normalize:o}=n;return o(["Rehavaj kodoj."])},warning_of_generate_new_codes:n=>{const{normalize:o}=n;return o(["Kiam vi estigos novajn rehavajn kodojn, viaj malnovaj ne plu funkcios."])},generate_new_recovery_codes:n=>{const{normalize:o}=n;return o(["Estigi novajn rehavajn kodojn"])},title:n=>{const{normalize:o}=n;return o(["Duobla aŭtentikigo"])},otp:n=>{const{normalize:o}=n;return o(["OTP"])},wait_pre_setup_otp:n=>{const{normalize:o}=n;return o(["antaŭagordante OTP"])},setup_otp:n=>{const{normalize:o}=n;return o(["Agordi OTP"])},confirm_and_enable:n=>{const{normalize:o}=n;return o(["Konfirmi kaj ŝalti OTP"])}},enter_current_password_to_confirm:n=>{const{normalize:o}=n;return o(["Enigu vian pasvorton por konfirmi vian identecon"])},security:n=>{const{normalize:o}=n;return o(["Sekureco"])},fun:n=>{const{normalize:o}=n;return o(["Amuzo"])},type_domains_to_mute:n=>{const{normalize:o}=n;return o(["Serĉu silentigotajn retnomojn"])},useStreamingApiWarning:n=>{const{normalize:o}=n;return o(["(Nerekomendate, eksperimente, povas preterpasi afiŝojn)"])},useStreamingApi:n=>{const{normalize:o}=n;return o(["Ricevi afiŝojn kaj sciigojn realtempe"])},user_mutes:n=>{const{normalize:o}=n;return o(["Uzantoj"])},reset_background_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas restarigi la fonon?"])},reset_banner_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas restarigi la rubandon?"])},reset_avatar_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas restarigi la profilbildon?"])},reset_profile_banner:n=>{const{normalize:o}=n;return o(["Restarigi rubandon de profilo"])},reset_profile_background:n=>{const{normalize:o}=n;return o(["Restarigi fonon de profilo"])},reset_avatar:n=>{const{normalize:o}=n;return o(["Restarigi profilbildon"])},minimal_scopes_mode:n=>{const{normalize:o}=n;return o(["Minimumigi elekteblojn pri amplekso de afiŝoj"])},search_user_to_block:n=>{const{normalize:o}=n;return o(["Serĉu, kiun vi volas bloki"])},search_user_to_mute:n=>{const{normalize:o}=n;return o(["Serĉu, kiun vi volas silentigi"])},autohide_floating_post_button:n=>{const{normalize:o}=n;return o(["Memage kaŝi la butonon por Nova afiŝo (poŝtelefone)"])},hide_followers_count_description:n=>{const{normalize:o}=n;return o(["Ne montri nombron de abonantoj"])},hide_follows_count_description:n=>{const{normalize:o}=n;return o(["Ne montri nombron de abonoj"])},notification_visibility_emoji_reactions:n=>{const{normalize:o}=n;return o(["Reagoj"])},notification_visibility_moves:n=>{const{normalize:o}=n;return o(["Migroj"])},new_email:n=>{const{normalize:o}=n;return o(["Nova retpoŝtadreso"])},profile_fields:{value:n=>{const{normalize:o}=n;return o(["Enhavo"])},name:n=>{const{normalize:o}=n;return o(["Etikedo"])},add_field:n=>{const{normalize:o}=n;return o(["Aldoni kampon"])},label:n=>{const{normalize:o}=n;return o(["Pridatumoj de profilo"])}},import_blocks_from_a_csv_file:n=>{const{normalize:o}=n;return o(["Enporti blokitojn el CSV-dosiero"])},hide_muted_posts:n=>{const{normalize:o}=n;return o(["Kaŝi afiŝojn de silentigitaj uzantoj"])},emoji_reactions_on_timeline:n=>{const{normalize:o}=n;return o(["Montri bildosignajn reagojn en historioj"])},pad_emoji:n=>{const{normalize:o}=n;return o(["Meti spacetojn ĉirkaŭ bildosigno post ties elekto"])},domain_mutes:n=>{const{normalize:o}=n;return o(["Retnomoj"])},notification_blocks:n=>{const{normalize:o}=n;return o(["Blokinte uzanton vi malabonos ĝin kaj haltigos ĉiujn sciigojn."])},notification_mutes:n=>{const{normalize:o}=n;return o(["Por ne plu ricevi sciigojn de certa uzanto, silentigu ĝin."])},notification_setting_hide_notification_contents:n=>{const{normalize:o}=n;return o(["Kaŝi la sendinton kaj la enhavojn de pasivaj sciigoj"])},notification_setting_privacy:n=>{const{normalize:o}=n;return o(["Privateco"])},notification_setting_block_from_strangers:n=>{const{normalize:o}=n;return o(["Bloki sciigojn de uzantoj, kiujn vi ne abonas"])},notification_setting_filters:n=>{const{normalize:o}=n;return o(["Filtriloj"])},greentext:n=>{const{normalize:o}=n;return o(["Memecitaĵoj"])},version:{frontend_version:n=>{const{normalize:o}=n;return o(["Versio de fasado"])},backend_version:n=>{const{normalize:o}=n;return o(["Versio de internaĵo"])},title:n=>{const{normalize:o}=n;return o(["Versio"])}},accent:n=>{const{normalize:o}=n;return o(["Emfazo"])},virtual_scrolling:n=>{const{normalize:o}=n;return o(["Optimumigi bildigon de historioj"])},import_mutes_from_a_csv_file:n=>{const{normalize:o}=n;return o(["Enporti silentigojn el CSV-dosiero"])},mutes_imported:n=>{const{normalize:o}=n;return o(["Silentigoj enportiĝis! Traktado daŭros iom da tempo."])},mute_import_error:n=>{const{normalize:o}=n;return o(["Eraris enporto de silentigoj"])},mute_import:n=>{const{normalize:o}=n;return o(["Enporto de silentigoj"])},mute_export_button:n=>{const{normalize:o}=n;return o(["Elportu viajn silentigojn al CSV-dosiero"])},mute_export:n=>{const{normalize:o}=n;return o(["Elporto de silentigoj"])},hide_wallpaper:n=>{const{normalize:o}=n;return o(["Kaŝi fonbildon de nodo"])},setting_changed:n=>{const{normalize:o}=n;return o(["Agordo malsamas de la implicita"])},more_settings:n=>{const{normalize:o}=n;return o(["Pliaj agordoj"])},sensitive_by_default:n=>{const{normalize:o}=n;return o(["Implicite marki afiŝojn konsternaj"])},reply_visibility_following_short:n=>{const{normalize:o}=n;return o(["Montri respondojn por miaj abonatoj"])},hide_all_muted_posts:n=>{const{normalize:o}=n;return o(["Kaŝi silentigitajn afiŝojn"])},hide_media_previews:n=>{const{normalize:o}=n;return o(["Kaŝi antaŭrigardojn al vidaŭdaĵoj"])},word_filter:n=>{const{normalize:o}=n;return o(["Vortofiltro"])},reply_visibility_self_short:n=>{const{normalize:o}=n;return o(["Montri nur respondojn por mi"])},file_export_import:{errors:{file_slightly_new:n=>{const{normalize:o}=n;return o(["Etversio de dosiero malsamas, iuj agordoj eble ne funkcios"])},file_too_old:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Nekonforma ĉefa versio: ",e(r("fileMajor")),", versio de dosiero estas tro malnova kaj nesubtenata (minimuma estas ",e(r("feMajor")),")"])},file_too_new:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Nekonforma ĉefa versio: ",e(r("fileMajor")),", ĉi tiu PleromaFE (agordoj je versio ",e(r("feMajor")),") tro malnovas por tio"])},invalid_file:n=>{const{normalize:o}=n;return o(["La elektita dosiero ne estas subtenata savkopio de agordoj de Pleroma. Nenio ŝanĝiĝis."])}},restore_settings:n=>{const{normalize:o}=n;return o(["Rehavi agordojn el dosiero"])},backup_settings_theme:n=>{const{normalize:o}=n;return o(["Savkopii agordojn kaj haŭton al dosiero"])},backup_settings:n=>{const{normalize:o}=n;return o(["Savkopii agordojn al dosiero"])},backup_restore:n=>{const{normalize:o}=n;return o(["Savkopio de agordoj"])}},right_sidebar:n=>{const{normalize:o}=n;return o(["Montri flankan breton dekstre"])},save:n=>{const{normalize:o}=n;return o(["Konservi ŝanĝojn"])},hide_shoutbox:n=>{const{normalize:o}=n;return o(["Kaŝi kriujon de nodo"])},always_show_post_button:n=>{const{normalize:o}=n;return o(["Ĉiam montri ŝvebantan butonon por nova afiŝo"])},mentions_new_style:n=>{const{normalize:o}=n;return o(["Pli mojosaj menciligiloj"])},mentions_new_place:n=>{const{normalize:o}=n;return o(["Meti menciojn sur apartan linion"])},lists_navigation:n=>{const{normalize:o}=n;return o(["Montri listojn en navigiloj"])},account_backup:n=>{const{normalize:o}=n;return o(["Savkopio de konto"])},account_backup_description:n=>{const{normalize:o}=n;return o(["Ĉi tio povigas vin elŝuti arĥivon de viaj afiŝoj kaj ĉiuj informoj pri via konto, sed ili ne jam povas enportiĝi en konton de Pleroma."])},list_aliases_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris akirado de kromnomoj: ",e(r("error"))])},move_account_notes:n=>{const{normalize:o}=n;return o(["Se vi volas movi la konton aliloken, vi devas iri al via celata konto, kaj aldoni kromnomon ligitan al tie ĉi."])},navbar_column_stretch:n=>{const{normalize:o}=n;return o(["Etendi navigan breton laŭ larĝeco de kolumnoj"])},posts:n=>{const{normalize:o}=n;return o(["Afiŝoj"])},notification_visibility_polls:n=>{const{normalize:o}=n;return o(["Finoj de enketoj kun via voĉo"])},conversation_display:n=>{const{normalize:o}=n;return o(["Aspekto de interparoloj"])},disable_sticky_headers:n=>{const{normalize:o}=n;return o(["Ne alglui kapojn de kolumnoj al supro de la ekrano"])},conversation_display_linear_quick:n=>{const{normalize:o}=n;return o(["Linia vido"])},use_websockets:n=>{const{normalize:o}=n;return o(["Uzi teĥnikaron «websockets» (tuja ĝisdatigo)"])},mention_link_display_full_for_remote:n=>{const{normalize:o}=n;return o(["plene nur je uzantoj foraj (ekz. ","@","zozo","@","ekzemplo.org)"])},expert_mode:n=>{const{normalize:o}=n;return o(["Montri altnivelajn"])},setting_server_side:n=>{const{normalize:o}=n;return o(["Ĉi tiu agordo estas ligita al via profilo, kaj efektiviĝos en ĉiuj viaj salutoj kaj klientoj"])},post_look_feel:n=>{const{normalize:o}=n;return o(["Aspekto de afiŝoj"])},mention_links:n=>{const{normalize:o}=n;return o(["Menciaj ligiloj"])},email_language:n=>{const{normalize:o}=n;return o(["Lingvo de leteroj ricevotaj de la servilo"])},account_backup_table_head:n=>{const{normalize:o}=n;return o(["Savkopio"])},download_backup:n=>{const{normalize:o}=n;return o(["Elŝuti"])},backup_not_ready:n=>{const{normalize:o}=n;return o(["Ĉi tiu savkopio ne jam pretas."])},remove_backup:n=>{const{normalize:o}=n;return o(["Forigi"])},list_backups_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris akirado de listo de savkopioj: ",e(r("error"))])},add_backup:n=>{const{normalize:o}=n;return o(["Fari novan savkopion"])},added_backup:n=>{const{normalize:o}=n;return o(["Aldonis novan savkopion."])},add_backup_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris aldono de nova savkopio: ",e(r("error"))])},account_alias:n=>{const{normalize:o}=n;return o(["Kromnomoj de konto"])},account_alias_table_head:n=>{const{normalize:o}=n;return o(["Kromnomo"])},hide_list_aliases_error_action:n=>{const{normalize:o}=n;return o(["Fermi"])},remove_alias:n=>{const{normalize:o}=n;return o(["Forigi ĉi tiun kromnomon"])},new_alias_target:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Aldoni novan kromnomon (ekz. ",e(r("example")),")"])},added_alias:n=>{const{normalize:o}=n;return o(["Kromnomo estas aldonita."])},add_alias_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris aldono de kromnomo: ",e(r("error"))])},move_account:n=>{const{normalize:o}=n;return o(["Movi konton"])},move_account_target:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Celata konto (ekz. ",e(r("example")),")"])},moved_account:n=>{const{normalize:o}=n;return o(["Konto moviĝis."])},move_account_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraris movado de konto: ",e(r("error"))])},wordfilter:n=>{const{normalize:o}=n;return o(["Vortofiltrado"])},word_filter_and_more:n=>{const{normalize:o}=n;return o(["Vortofiltrado kaj pli…"])},mute_bot_posts:n=>{const{normalize:o}=n;return o(["Silentigi afiŝojn de robotoj"])},hide_bot_indication:n=>{const{normalize:o}=n;return o(["Kaŝi markon de roboteco en afiŝoj"])},hide_wordfiltered_statuses:n=>{const{normalize:o}=n;return o(["Kaŝi vorte filtritajn afiŝojn"])},hide_muted_threads:n=>{const{normalize:o}=n;return o(["Kaŝi silentigitajn fadenojn"])},account_privacy:n=>{const{normalize:o}=n;return o(["Privateco"])},user_profiles:n=>{const{normalize:o}=n;return o(["Profiloj de uzantoj"])},hide_favorites_description:n=>{const{normalize:o}=n;return o(["Ne montri liston de miaj ŝatatoj (oni tamen sciiĝas)"])},conversation_display_tree:n=>{const{normalize:o}=n;return o(["Arba stilo"])},conversation_display_tree_quick:n=>{const{normalize:o}=n;return o(["Arba vido"])},show_scrollbars:n=>{const{normalize:o}=n;return o(["Montri rulumskalojn de flankaj kolumnoj"])},third_column_mode_none:n=>{const{normalize:o}=n;return o(["Neniam montri trian kolumnon"])},third_column_mode_notifications:n=>{const{normalize:o}=n;return o(["Kolumno de sciigoj"])},columns:n=>{const{normalize:o}=n;return o(["Kolumnoj"])},column_sizes:n=>{const{normalize:o}=n;return o(["Grandeco de kolumnoj"])},column_sizes_sidebar:n=>{const{normalize:o}=n;return o(["Flanka breto"])},column_sizes_content:n=>{const{normalize:o}=n;return o(["Enhavo"])},column_sizes_notifs:n=>{const{normalize:o}=n;return o(["Sciigoj"])},tree_advanced:n=>{const{normalize:o}=n;return o(["Permesi pli flekseblan navigadon en arba vido"])},conversation_display_linear:n=>{const{normalize:o}=n;return o(["Linia stilo"])},conversation_other_replies_button:n=>{const{normalize:o}=n;return o(["Montri la butonon pri «aliaj respondoj»"])},conversation_other_replies_button_below:n=>{const{normalize:o}=n;return o(["Sub afiŝoj"])},conversation_other_replies_button_inside:n=>{const{normalize:o}=n;return o(["En afiŝoj"])},max_depth_in_thread:n=>{const{normalize:o}=n;return o(["Maksimuma nombro de niveloj implicite montrataj en fadeno"])},auto_update:n=>{const{normalize:o}=n;return o(["Montri novajn afiŝojn memage"])},use_at_icon:n=>{const{normalize:o}=n;return o(["Montri simbolon ","@"," kiel bildon anstataŭ teksto"])},mention_link_display:n=>{const{normalize:o}=n;return o(["Montri menciajn ligilojn"])},mention_link_display_short:n=>{const{normalize:o}=n;return o(["ĉiam mallonge (ekz. ","@","zozo)"])},mention_link_display_full:n=>{const{normalize:o}=n;return o(["ĉiam plene (ekz. ","@","zozo","@","ekzemplo.org)"])},mention_link_show_avatar:n=>{const{normalize:o}=n;return o(["Montri profilbildon de uzanto apud la ligilo"])},mention_link_show_avatar_quick:n=>{const{normalize:o}=n;return o(["Montri profilbildon de uzanto apud mencioj"])},mention_link_fade_domain:n=>{const{normalize:o}=n;return o(["Malvigligi retnomojn (ekz. ","@","ekzemplo.org en ","@","zozo","@","ekzemplo.org)"])},mention_link_bolden_you:n=>{const{normalize:o}=n;return o(["Emfazi vian mencion, se vi estas menciita"])},mention_link_use_tooltip:n=>{const{normalize:o}=n;return o(["Montri karton de uzanto per klako al mencia ligilo"])},user_popover_avatar_action_close:n=>{const{normalize:o}=n;return o(["Fermi la ŝprucaĵon"])},user_popover_avatar_action_open:n=>{const{normalize:o}=n;return o(["Malfermi la profilon"])},user_popover_avatar_overlay:n=>{const{normalize:o}=n;return o(["Aperigi ŝprucaĵon pri uzanto sur profilbildo"])},show_yous:n=>{const{normalize:o}=n;return o(["Montri la markon «(Vi)»"])},user_popover_avatar_action_zoom:n=>{const{normalize:o}=n;return o(["Zomi la profilbildon"])},third_column_mode:n=>{const{normalize:o}=n;return o(["Kun sufiĉo da spaco, montri trian kolumnon kun"])}},timeline:{collapse:n=>{const{normalize:o}=n;return o(["Maletendi"])},conversation:n=>{const{normalize:o}=n;return o(["Interparolo"])},error_fetching:n=>{const{normalize:o}=n;return o(["Eraris ĝisdatigo"])},load_older:n=>{const{normalize:o}=n;return o(["Montri pli malnovajn afiŝojn"])},no_retweet_hint:n=>{const{normalize:o}=n;return o(["Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti"])},repeated:n=>{const{normalize:o}=n;return o(["ripetis"])},show_new:n=>{const{normalize:o}=n;return o(["Montri novajn"])},up_to_date:n=>{const{normalize:o}=n;return o(["Ĝisdata"])},no_more_statuses:n=>{const{normalize:o}=n;return o(["Neniuj pliaj afiŝoj"])},no_statuses:n=>{const{normalize:o}=n;return o(["Neniuj afiŝoj"])},reload:n=>{const{normalize:o}=n;return o(["Enlegi ree"])},error:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris akirado de historio: ",e(r(0))])},socket_reconnected:n=>{const{normalize:o}=n;return o(["Realtempa konekto fariĝis"])},socket_broke:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Realtempa konekto perdiĝis: CloseEvent code ",e(r(0))])}},user_card:{approve:n=>{const{normalize:o}=n;return o(["Aprobi"])},block:n=>{const{normalize:o}=n;return o(["Bloki"])},blocked:n=>{const{normalize:o}=n;return o(["Blokita!"])},deny:n=>{const{normalize:o}=n;return o(["Rifuzi"])},favorites:n=>{const{normalize:o}=n;return o(["Ŝatataj"])},follow:n=>{const{normalize:o}=n;return o(["Aboni"])},follow_sent:n=>{const{normalize:o}=n;return o(["Peto sendiĝis!"])},follow_progress:n=>{const{normalize:o}=n;return o(["Petante…"])},follow_unfollow:n=>{const{normalize:o}=n;return o(["Malaboni"])},followees:n=>{const{normalize:o}=n;return o(["Abonatoj"])},followers:n=>{const{normalize:o}=n;return o(["Abonantoj"])},following:n=>{const{normalize:o}=n;return o(["Abonata!"])},follows_you:n=>{const{normalize:o}=n;return o(["Abonas vin!"])},its_you:n=>{const{normalize:o}=n;return o(["Tio estas vi!"])},media:n=>{const{normalize:o}=n;return o(["Vidaŭdaĵoj"])},mute:n=>{const{normalize:o}=n;return o(["Silentigi"])},muted:n=>{const{normalize:o}=n;return o(["Silentigita"])},per_day:n=>{const{normalize:o}=n;return o(["tage"])},remote_follow:n=>{const{normalize:o}=n;return o(["Fore aboni"])},statuses:n=>{const{normalize:o}=n;return o(["Afiŝoj"])},unblock:n=>{const{normalize:o}=n;return o(["Malbloki"])},unblock_progress:n=>{const{normalize:o}=n;return o(["Malblokante…"])},block_progress:n=>{const{normalize:o}=n;return o(["Blokante…"])},unmute:n=>{const{normalize:o}=n;return o(["Malsilentigi"])},unmute_progress:n=>{const{normalize:o}=n;return o(["Malsilentigante…"])},mute_progress:n=>{const{normalize:o}=n;return o(["Silentigante…"])},report:n=>{const{normalize:o}=n;return o(["Raporti"])},message:n=>{const{normalize:o}=n;return o(["Mesaĝo"])},mention:n=>{const{normalize:o}=n;return o(["Mencio"])},hidden:n=>{const{normalize:o}=n;return o(["Kaŝita"])},admin_menu:{delete_user:n=>{const{normalize:o}=n;return o(["Forigi uzanton"])},quarantine:n=>{const{normalize:o}=n;return o(["Malpermesi federadon de afiŝoj de uzanto"])},disable_any_subscription:n=>{const{normalize:o}=n;return o(["Malpermesi ĉian abonadon al uzanto"])},disable_remote_subscription:n=>{const{normalize:o}=n;return o(["Malpermesi abonadon al uzanto el foraj nodoj"])},sandbox:n=>{const{normalize:o}=n;return o(["Devigi afiŝojn esti nur por abonantoj"])},force_unlisted:n=>{const{normalize:o}=n;return o(["Devigi afiŝojn nelistiĝi"])},strip_media:n=>{const{normalize:o}=n;return o(["Forigi vidaŭdaĵojn de afiŝoj"])},force_nsfw:n=>{const{normalize:o}=n;return o(["Marki ĉiujn afiŝojn konsternaj"])},delete_account:n=>{const{normalize:o}=n;return o(["Forigi konton"])},deactivate_account:n=>{const{normalize:o}=n;return o(["Malaktivigi konton"])},activate_account:n=>{const{normalize:o}=n;return o(["Aktivigi konton"])},revoke_moderator:n=>{const{normalize:o}=n;return o(["Malnomumi reguligiston"])},grant_moderator:n=>{const{normalize:o}=n;return o(["Nomumi reguligiston"])},revoke_admin:n=>{const{normalize:o}=n;return o(["Malnomumi administranton"])},grant_admin:n=>{const{normalize:o}=n;return o(["Nomumi administranton"])},moderation:n=>{const{normalize:o}=n;return o(["Reguligado"])},delete_user_data_and_deactivate_confirmation:n=>{const{normalize:o}=n;return o(["Tio ĉi por ĉiam forigos datumojn de tiu ĉi konto, kaj malaktivigos ĝin. Ĉu vi plene certas?"])}},show_repeats:n=>{const{normalize:o}=n;return o(["Montri ripetojn"])},hide_repeats:n=>{const{normalize:o}=n;return o(["Kaŝi ripetojn"])},unsubscribe:n=>{const{normalize:o}=n;return o(["Ne ricevi sciigojn"])},subscribe:n=>{const{normalize:o}=n;return o(["Ricevi sciigojn"])},bot:n=>{const{normalize:o}=n;return o(["Roboto"])},highlight:{side:n=>{const{normalize:o}=n;return o(["Flanka strio"])},striped:n=>{const{normalize:o}=n;return o(["Stria fono"])},solid:n=>{const{normalize:o}=n;return o(["Unueca fono"])},disabled:n=>{const{normalize:o}=n;return o(["Senemfaze"])}},edit_profile:n=>{const{normalize:o}=n;return o(["Redakti profilon"])},deactivated:n=>{const{normalize:o}=n;return o(["Malaktiva"])},follow_cancel:n=>{const{normalize:o}=n;return o(["Nuligi peton"])},remove_follower:n=>{const{normalize:o}=n;return o(["Forigi abonanton"])},note:n=>{const{normalize:o}=n;return o(["Noto"])},note_blank:n=>{const{normalize:o}=n;return o(["(Neniu)"])},edit_note_apply:n=>{const{normalize:o}=n;return o(["Apliki"])},edit_note_cancel:n=>{const{normalize:o}=n;return o(["Nuligi"])},edit_note:n=>{const{normalize:o}=n;return o(["Redakti noton"])}},user_profile:{timeline_title:n=>{const{normalize:o}=n;return o(["Historio de uzanto"])},profile_does_not_exist:n=>{const{normalize:o}=n;return o(["Pardonu, ĉi tiu profilo ne ekzistas."])},profile_loading_error:n=>{const{normalize:o}=n;return o(["Pardonu, eraris enlego de ĉi tiu profilo."])}},who_to_follow:{more:n=>{const{normalize:o}=n;return o(["Pli"])},who_to_follow:n=>{const{normalize:o}=n;return o(["Kiun aboni"])}},tool_tip:{media_upload:n=>{const{normalize:o}=n;return o(["Alŝuti vidaŭdaĵon"])},repeat:n=>{const{normalize:o}=n;return o(["Ripeti"])},reply:n=>{const{normalize:o}=n;return o(["Respondi"])},favorite:n=>{const{normalize:o}=n;return o(["Ŝati"])},user_settings:n=>{const{normalize:o}=n;return o(["Agordoj de uzanto"])},bookmark:n=>{const{normalize:o}=n;return o(["Legosigno"])},reject_follow_request:n=>{const{normalize:o}=n;return o(["Rifuzi abonpeton"])},accept_follow_request:n=>{const{normalize:o}=n;return o(["Akcepti abonpeton"])},add_reaction:n=>{const{normalize:o}=n;return o(["Aldoni reagon"])},toggle_expand:n=>{const{normalize:o}=n;return o(["Etendi aŭ maletendi sciigon por montri plenan afiŝon"])},toggle_mute:n=>{const{normalize:o}=n;return o(["Etendi aŭ maletendi afiŝon por montri silentigitan enhavon"])}},upload:{error:{base:n=>{const{normalize:o}=n;return o(["Alŝuto malsukcesis."])},file_too_big:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Dosiero estas tro granda [",e(r("filesize")),e(r("filesizeunit"))," / ",e(r("allowedsize")),e(r("allowedsizeunit")),"]"])},default:n=>{const{normalize:o}=n;return o(["Reprovu pli poste"])},message:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Malsukcesis alŝuto: ",e(r(0))])}},file_size_units:{B:n=>{const{normalize:o}=n;return o(["B"])},KiB:n=>{const{normalize:o}=n;return o(["KiB"])},MiB:n=>{const{normalize:o}=n;return o(["MiB"])},GiB:n=>{const{normalize:o}=n;return o(["GiB"])},TiB:n=>{const{normalize:o}=n;return o(["TiB"])}}},emoji:{search_emoji:n=>{const{normalize:o}=n;return o(["Serĉi bildosignon"])},keep_open:n=>{const{normalize:o}=n;return o(["Teni elektilon malfermita"])},emoji:n=>{const{normalize:o}=n;return o(["Bildsignoj"])},stickers:n=>{const{normalize:o}=n;return o(["Glumarkoj"])},add_emoji:n=>{const{normalize:o}=n;return o(["Enigi bildosignon"])},load_all:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Enlegante ĉiujn ",e(r("emojiAmount"))," bildosignojn"])},load_all_hint:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Enlegis la ",e(r("saneAmount"))," unuajn bildosignojn; enlego de ĉiuj povus kaŭzi problemojn pri efikeco."])},unicode:n=>{const{normalize:o}=n;return o(["Unikoda bildosigno"])},custom:n=>{const{normalize:o}=n;return o(["Propra bildosigno"])},unicode_groups:{activities:n=>{const{normalize:o}=n;return o(["Agado"])},"animals-and-nature":n=>{const{normalize:o}=n;return o(["Bestoj kaj naturo"])},flags:n=>{const{normalize:o}=n;return o(["Flagoj"])},"food-and-drink":n=>{const{normalize:o}=n;return o(["Manĝaĵoj kaj trinkaĵoj"])},objects:n=>{const{normalize:o}=n;return o(["Aĵoj"])},"people-and-body":n=>{const{normalize:o}=n;return o(["Homoj kaj korpo"])},"smileys-and-emotion":n=>{const{normalize:o}=n;return o(["Mienbildoj kaj sentoj"])},symbols:n=>{const{normalize:o}=n;return o(["Simboloj"])},"travel-and-places":n=>{const{normalize:o}=n;return o(["Vojaĝoj kaj lokoj"])}},regional_indicator:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Regiona marko ",e(r("letter"))])}},polls:{not_enough_options:n=>{const{normalize:o}=n;return o(["Tro malmultaj unikaj elektebloj en la enketo"])},expired:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Enketo finiĝis antaŭ ",e(r(0))])},expires_in:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Enketo finiĝas je ",e(r(0))])},expiry:n=>{const{normalize:o}=n;return o(["Aĝo de enketo"])},multiple_choices:n=>{const{normalize:o}=n;return o(["Pluraj elektoj"])},single_choice:n=>{const{normalize:o}=n;return o(["Unu elekto"])},type:n=>{const{normalize:o}=n;return o(["Speco de enketo"])},vote:n=>{const{normalize:o}=n;return o(["Voĉi"])},votes:n=>{const{normalize:o}=n;return o(["voĉoj"])},option:n=>{const{normalize:o}=n;return o(["Elekteblo"])},add_option:n=>{const{normalize:o}=n;return o(["Aldoni elekteblon"])},add_poll:n=>{const{normalize:o}=n;return o(["Aldoni enketon"])},votes_count:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o([e(r("count"))," voĉdono"]),o([e(r("count"))," voĉdonoj"])])},people_voted_count:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o([e(r("count"))," persono voĉdonis"]),o([e(r("count"))," personoj voĉdonis"])])}},importer:{error:n=>{const{normalize:o}=n;return o(["Eraris enporto de ĉi tiu dosiero."])},success:n=>{const{normalize:o}=n;return o(["Enportita sukcese."])},submit:n=>{const{normalize:o}=n;return o(["Sendi"])}},exporter:{processing:n=>{const{normalize:o}=n;return o(["Traktante; baldaŭ vi ricevos peton elŝuti vian dosieron"])},export:n=>{const{normalize:o}=n;return o(["Elporti"])}},domain_mute_card:{unmute_progress:n=>{const{normalize:o}=n;return o(["Malsilentigante…"])},unmute:n=>{const{normalize:o}=n;return o(["Malsilentigi"])},mute_progress:n=>{const{normalize:o}=n;return o(["Silentigante…"])},mute:n=>{const{normalize:o}=n;return o(["Silentigi"])}},about:{staff:n=>{const{normalize:o}=n;return o(["Skipo"])},mrf:{simple:{media_nsfw_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo devigas vidaŭdaĵojn esti markitaj kiel konsternaj en afiŝoj el la jenaj nodoj:"])},media_nsfw:n=>{const{normalize:o}=n;return o(["Devige marki vidaŭdaĵojn konsternaj"])},media_removal_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:"])},media_removal:n=>{const{normalize:o}=n;return o(["Forigo de vidaŭdaĵoj"])},ftl_removal:n=>{const{normalize:o}=n;return o(["Forigo el la «Federa historio»"])},quarantine_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:"])},quarantine:n=>{const{normalize:o}=n;return o(["Kvaranteno"])},reject_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:"])},reject:n=>{const{normalize:o}=n;return o(["Rifuzi"])},accept_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:"])},accept:n=>{const{normalize:o}=n;return o(["Akcepti"])},simple_policies:n=>{const{normalize:o}=n;return o(["Specialaj politikoj de la nodo"])},ftl_removal_desc:n=>{const{normalize:o}=n;return o(["Ĉi tiu nodo forigas la jenajn nodojn el la «Federa historio»:"])},instance:n=>{const{normalize:o}=n;return o(["Nodo"])},reason:n=>{const{normalize:o}=n;return o(["Kialo"])}},mrf_policies:n=>{const{normalize:o}=n;return o(["Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)"])},keyword:{is_replaced_by:n=>{const{normalize:o}=n;return o(["→"])},replace:n=>{const{normalize:o}=n;return o(["Anstataŭigi"])},reject:n=>{const{normalize:o}=n;return o(["Rifuzi"])},ftl_removal:n=>{const{normalize:o}=n;return o(["Forigo el la historio de la «Federa historio»"])},keyword_policies:n=>{const{normalize:o}=n;return o(["Politiko pri ĉefvortoj"])}},federation:n=>{const{normalize:o}=n;return o(["Federado"])},mrf_policies_desc:n=>{const{normalize:o}=n;return o(["Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo. La sekvaj politikoj estas ŝaltitaj:"])}}},selectable_list:{select_all:n=>{const{normalize:o}=n;return o(["Elekti ĉion"])}},remote_user_resolver:{error:n=>{const{normalize:o}=n;return o(["Netrovinte."])},searching_for:n=>{const{normalize:o}=n;return o(["Serĉante"])},remote_user_resolver:n=>{const{normalize:o}=n;return o(["Trovilo de foraj uzantoj"])}},interactions:{load_older:n=>{const{normalize:o}=n;return o(["Enlegi pli malnovajn interagojn"])},moves:n=>{const{normalize:o}=n;return o(["Migrado de uzantoj"])},follows:n=>{const{normalize:o}=n;return o(["Novaj abonoj"])},favs_repeats:n=>{const{normalize:o}=n;return o(["Ripetoj kaj ŝatoj"])},emoji_reactions:n=>{const{normalize:o}=n;return o(["Bildosignaj reagoj"])},reports:n=>{const{normalize:o}=n;return o(["Raportoj"])}},errors:{storage_unavailable:n=>{const{normalize:o}=n;return o(["Pleroma ne povis aliri deponejon de la foliumilo. Via saluto kaj viaj lokaj agordoj ne estos konservitaj, kaj vi eble renkontos neatenditajn problemojn. Provu permesi kuketojn."])}},status:{hide_content:n=>{const{normalize:o}=n;return o(["Kaŝi enhavon"])},show_content:n=>{const{normalize:o}=n;return o(["Montri enhavon"])},hide_full_subject:n=>{const{normalize:o}=n;return o(["Kaŝi plenan temon"])},show_full_subject:n=>{const{normalize:o}=n;return o(["Montri plenan temon"])},thread_muted_and_words:n=>{const{normalize:o}=n;return o([", enhavas vortojn:"])},thread_muted:n=>{const{normalize:o}=n;return o(["Fadeno silentigita"])},copy_link:n=>{const{normalize:o}=n;return o(["Kopii ligilon al afiŝo"])},status_unavailable:n=>{const{normalize:o}=n;return o(["Afiŝo ne estas disponebla"])},unmute_conversation:n=>{const{normalize:o}=n;return o(["Malsilentigi interparolon"])},mute_conversation:n=>{const{normalize:o}=n;return o(["Silentigi interparolon"])},replies_list:n=>{const{normalize:o}=n;return o(["Respondoj:"])},reply_to:n=>{const{normalize:o}=n;return o(["Responde al"])},delete_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas forigi ĉi tiun afiŝon?"])},unbookmark:n=>{const{normalize:o}=n;return o(["Senlegosigni"])},bookmark:n=>{const{normalize:o}=n;return o(["Legosigni"])},pinned:n=>{const{normalize:o}=n;return o(["Fiksita"])},unpin:n=>{const{normalize:o}=n;return o(["Malfiksi de profilo"])},pin:n=>{const{normalize:o}=n;return o(["Fiksi al profilo"])},delete:n=>{const{normalize:o}=n;return o(["Forigi afiŝon"])},repeats:n=>{const{normalize:o}=n;return o(["Ripetoj"])},favorites:n=>{const{normalize:o}=n;return o(["Ŝatoj"])},status_deleted:n=>{const{normalize:o}=n;return o(["Ĉi tiu afiŝo foriĝis"])},nsfw:n=>{const{normalize:o}=n;return o(["Konsterna"])},expand:n=>{const{normalize:o}=n;return o(["Etendi"])},external_source:n=>{const{normalize:o}=n;return o(["Ekstera fonto"])},mentions:n=>{const{normalize:o}=n;return o(["Mencioj"])},you:n=>{const{normalize:o}=n;return o(["(Vi)"])},plus_more:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["+",e(r("number"))," pli"])},show_all_attachments:n=>{const{normalize:o}=n;return o(["Montri ĉiujn kunsendaĵojn"])},collapse_attachments:n=>{const{normalize:o}=n;return o(["Kaŝi iujn kunsendaĵojn"])},many_attachments:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Afiŝo havas ",e(r("number"))," kunsendaĵo(j)n"])},show_attachment_in_modal:n=>{const{normalize:o}=n;return o(["Montri en vidilo de vidaŭdaĵoj"])},edit:n=>{const{normalize:o}=n;return o(["Redakti afiŝon"])},replies_list_with_others:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Respondoj (+",e(r("numReplies"))," alia):"]),o(["Respondoj (+",e(r("numReplies"))," aliaj):"])])},thread_show:n=>{const{normalize:o}=n;return o(["Malkaŝi ĉi tiun fadenon"])},thread_show_full:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Montri ĉion en ĉi tiu fadeno (",e(r("numStatus"))," afiŝon sume, maksimume en profundeco ",e(r("depth")),")"]),o(["Montri ĉion en ĉi tiu fadeno (",e(r("numStatus"))," afiŝojn sume, maksimume en profundeco ",e(r("depth")),")"])])},show_all_conversation:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Montri plenan interparolon (",e(r("numStatus"))," alian afiŝon)"]),o(["Montri plenan interparolon (",e(r("numStatus"))," aliajn afiŝojn)"])])},edited_at:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["(lastafoje redaktita je ",e(r("time")),")"])},remove_attachment:n=>{const{normalize:o}=n;return o(["Forigi kunsendaĵon"])},show_attachment_description:n=>{const{normalize:o}=n;return o(["Antaŭvidi priskribon (malfermu kunsendaĵon por vidi plenan priskribon)"])},hide_attachment:n=>{const{normalize:o}=n;return o(["Kaŝi kunsendaĵon"])},attachment_stop_flash:n=>{const{normalize:o}=n;return o(["Ĉesigi ludilon de [Flash]"])},move_up:n=>{const{normalize:o}=n;return o(["Ŝovi kunsendaĵon antaŭen"])},move_down:n=>{const{normalize:o}=n;return o(["Ŝovi kunsendaĵon posten"])},thread_hide:n=>{const{normalize:o}=n;return o(["Kaŝi ĉi tiun fadenon"])},thread_show_full_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},thread_follow:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Montri ceteron de ĉi tiu fadeno (",e(r("numStatus"))," afiŝon sume)"]),o(["Montri ceteron de ĉi tiu fadeno (",e(r("numStatus"))," afiŝojn sume)"])])},thread_follow_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},ancestor_follow:n=>{const{normalize:o,interpolate:e,named:r,plural:t}=n;return t([o(["Vidi ",e(r("numReplies"))," alian respondon sub ĉi tiu afiŝo"]),o(["Vidi ",e(r("numReplies"))," aliajn respondojn sub ĉi tiu afiŝo"])])},ancestor_follow_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},show_all_conversation_with_icon:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("icon"))," ",e(r("text"))])},show_only_conversation_under_this:n=>{const{normalize:o}=n;return o(["Montri nur respondojn al ĉi tiu afiŝo"])},status_history:n=>{const{normalize:o}=n;return o(["Historio de afiŝo"])},open_gallery:n=>{const{normalize:o}=n;return o(["Malfermi galerion"])}},time:{years_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"j"])},year_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"j"])},years:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," jaroj"])},year:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," jaro"])},weeks_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"s"])},week_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"s"])},weeks:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," semajnoj"])},week:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," semajno"])},seconds_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sek"])},second_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sek"])},seconds:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," sekundoj"])},second:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," sekundo"])},now_short:n=>{const{normalize:o}=n;return o(["nun"])},now:n=>{const{normalize:o}=n;return o(["ĵus"])},months_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"m"])},month_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"m"])},months:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," monatoj"])},month:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," monato"])},minutes_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"min"])},minute_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"min"])},minutes:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," minutoj"])},minute:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," minuto"])},in_past:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["antaŭ ",e(r(0))])},in_future:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["post ",e(r(0))])},hours_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"hor"])},hour_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"hor"])},hours:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," horoj"])},hour:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," horo"])},days_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"t"])},day_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"t"])},days:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," tagoj"])},day:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0))," tago"])},unit:{days:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," tago"]),o([e(r(0))," tagoj"])])},minutes:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," minuto"]),o([e(r(0))," minutoj"])])},days_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"t"])},hours:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," horo"]),o([e(r(0))," horoj"])])},hours_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"h"])},minutes_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"min"])},months:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," monato"]),o([e(r(0))," monatoj"])])},months_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"mo"])},seconds:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," sekundo"]),o([e(r(0))," sekundoj"])])},seconds_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sek"])},weeks:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," semajno"]),o([e(r(0))," semajnoj"])])},weeks_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"sem"])},years:n=>{const{normalize:o,interpolate:e,list:r,plural:t}=n;return t([o([e(r(0))," jaro"]),o([e(r(0))," jaroj"])])},years_short:n=>{const{normalize:o,interpolate:e,list:r}=n;return o([e(r(0)),"j"])}}},search:{people:n=>{const{normalize:o}=n;return o(["Personoj"])},no_results:n=>{const{normalize:o}=n;return o(["Neniuj rezultoj"])},people_talking:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("count"))," personoj parolas"])},person_talking:n=>{const{normalize:o,interpolate:e,named:r}=n;return o([e(r("count"))," persono parolas"])},hashtags:n=>{const{normalize:o}=n;return o(["Kradvortoj"])},no_more_results:n=>{const{normalize:o}=n;return o(["Neniuj pliaj rezultoj"])},load_more:n=>{const{normalize:o}=n;return o(["Enlegi pliajn rezultojn"])}},display_date:{today:n=>{const{normalize:o}=n;return o(["Hodiaŭ"])}},file_type:{file:n=>{const{normalize:o}=n;return o(["Dosiero"])},image:n=>{const{normalize:o}=n;return o(["Bildo"])},video:n=>{const{normalize:o}=n;return o(["Filmo"])},audio:n=>{const{normalize:o}=n;return o(["Sono"])}},chats:{empty_chat_list_placeholder:n=>{const{normalize:o}=n;return o(["Vi ankoraŭ havas neniun babilon. Komencu novan babilon!"])},error_sending_message:n=>{const{normalize:o}=n;return o(["Io misokazis dum sendado de la mesaĝo."])},error_loading_chat:n=>{const{normalize:o}=n;return o(["Io misokazis dum enlego de la babilo."])},delete_confirm:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas forigi ĉi tiun mesaĝon?"])},more:n=>{const{normalize:o}=n;return o(["Pli"])},empty_message_error:n=>{const{normalize:o}=n;return o(["Ne povas sendi malplenan mesaĝon"])},new:n=>{const{normalize:o}=n;return o(["Nova babilo"])},chats:n=>{const{normalize:o}=n;return o(["Babiloj"])},delete:n=>{const{normalize:o}=n;return o(["Forigi"])},you:n=>{const{normalize:o}=n;return o(["Vi:"])},message_user:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Mesaĝi al ",e(r("nickname"))])}},password_reset:{password_reset_required_but_mailer_is_disabled:n=>{const{normalize:o}=n;return o(["Vi devas restarigi vian pasvorton, sed restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo."])},password_reset_required:n=>{const{normalize:o}=n;return o(["Vi devas restarigi vian pasvorton por saluti."])},password_reset_disabled:n=>{const{normalize:o}=n;return o(["Restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo."])},too_many_requests:n=>{const{normalize:o}=n;return o(["Vi atingis la limon de provoj, reprovu pli poste."])},return_home:n=>{const{normalize:o}=n;return o(["Reiri al la hejmpaĝo"])},check_email:n=>{const{normalize:o}=n;return o(["Kontrolu vian retpoŝton pro ligilo por restarigi vian pasvorton."])},placeholder:n=>{const{normalize:o}=n;return o(["Via retpoŝtadreso aŭ uzantonomo"])},instruction:n=>{const{normalize:o}=n;return o(["Enigu vian retpoŝtadreson aŭ uzantonomon. Ni sendos al vi ligilon por restarigi vian pasvorton."])},password_reset:n=>{const{normalize:o}=n;return o(["Restarigi pasvorton"])},forgot_password:n=>{const{normalize:o}=n;return o(["Ĉu vi forgesis pasvorton?"])}},user_reporting:{generic_error:n=>{const{normalize:o}=n;return o(["Eraris traktado de via peto."])},submit:n=>{const{normalize:o}=n;return o(["Sendi"])},forward_to:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Plusendi al ",e(r(0))])},forward_description:n=>{const{normalize:o}=n;return o(["La konto venas de alia servilo. Ĉu kopio de la raporto sendiĝu ankaŭ tien?"])},additional_comments:n=>{const{normalize:o}=n;return o(["Aldonaj komentoj"])},add_comment_description:n=>{const{normalize:o}=n;return o(["Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:"])},title:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Raportante ",e(r(0))])}},shoutbox:{title:n=>{const{normalize:o}=n;return o(["Kriujo"])}},report:{reporter:n=>{const{normalize:o}=n;return o(["Raportinto:"])},reported_user:n=>{const{normalize:o}=n;return o(["Raportito:"])},reported_statuses:n=>{const{normalize:o}=n;return o(["Raportitaj afiŝoj:"])},notes:n=>{const{normalize:o}=n;return o(["Notoj:"])},state:n=>{const{normalize:o}=n;return o(["Afiŝo:"])},state_open:n=>{const{normalize:o}=n;return o(["Malfermita"])},state_closed:n=>{const{normalize:o}=n;return o(["Fermita"])},state_resolved:n=>{const{normalize:o}=n;return o(["Solvita"])}},lists:{editing_list:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Redaktado de listo ",e(r("listTitle"))])},lists:n=>{const{normalize:o}=n;return o(["Listoj"])},new:n=>{const{normalize:o}=n;return o(["Nova listo"])},title:n=>{const{normalize:o}=n;return o(["Nomo de listo"])},search:n=>{const{normalize:o}=n;return o(["Serĉi uzantojn"])},create:n=>{const{normalize:o}=n;return o(["Krei"])},save:n=>{const{normalize:o}=n;return o(["Konservi ŝanĝojn"])},delete:n=>{const{normalize:o}=n;return o(["Forigi liston"])},following_only:n=>{const{normalize:o}=n;return o(["Limigi al abonatoj"])},manage_lists:n=>{const{normalize:o}=n;return o(["Mastrumi listojn"])},manage_members:n=>{const{normalize:o}=n;return o(["Mastrumi listanojn"])},add_members:n=>{const{normalize:o}=n;return o(["Serĉi pliajn uzantojn"])},remove_from_list:n=>{const{normalize:o}=n;return o(["Forigi de listo"])},add_to_list:n=>{const{normalize:o}=n;return o(["Aldoni al listo"])},is_in_list:n=>{const{normalize:o}=n;return o(["Jam en listo"])},creating_list:n=>{const{normalize:o}=n;return o(["Kreado de nova listo"])},update_title:n=>{const{normalize:o}=n;return o(["Konservi nomon"])},really_delete:n=>{const{normalize:o}=n;return o(["Ĉu vi certe volas forigi la liston?"])},error:n=>{const{normalize:o,interpolate:e,list:r}=n;return o(["Eraris umado je listoj: ",e(r(0))])}},update:{big_update_content:n=>{const{normalize:o}=n;return o(["Ni longe ne eldonis novan version, kaj tial aferoj eble aspektos iom malsame, ol antaŭe."])},update_bugs:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Bonvolu raporti problemojn kaj erarojn ĉe ",e(r("pleromaGitlab")),", ĉar ni ŝanĝis multon, kaj kvankam ni zorge testas kaj mem uzas la prilaboratajn versiojn, ni tamen povas preteratenti ion. Ni bonvenigas viajn rimarkojn kaj proponojn pri renkontitaj eraroj aŭ proponoj plibonigi Pleromon."])},big_update_title:n=>{const{normalize:o}=n;return o(["Bonvolu pacienci"])},update_bugs_gitlab:n=>{const{normalize:o}=n;return o(["GitLab de Pleroma"])},update_changelog:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Por legi detalojn pri ŝanĝoj, vidu ",e(r("theFullChangelog")),"."])},update_changelog_here:n=>{const{normalize:o}=n;return o(["la plenan ŝanĝaron"])},art_by:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Arto de ",e(r("linkToArtist"))])}},unicode_domain_indicator:{tooltip:n=>{const{normalize:o}=n;return o(["Ĉi tiu retnomo enhavas signojn ekster ASCII."])}},announcements:{all_day_prompt:n=>{const{normalize:o}=n;return o(["Ĉi tio estas tuttaga okazo"])},page_header:n=>{const{normalize:o}=n;return o(["Anoncoj"])},title:n=>{const{normalize:o}=n;return o(["Anonco"])},mark_as_read_action:n=>{const{normalize:o}=n;return o(["Marki legita"])},post_placeholder:n=>{const{normalize:o}=n;return o(["Entajpu vian anoncon tie ĉi…"])},post_action:n=>{const{normalize:o}=n;return o(["Afiŝi"])},post_error:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Eraro: ",e(r("error"))])},close_error:n=>{const{normalize:o}=n;return o(["Fermi"])},delete_action:n=>{const{normalize:o}=n;return o(["Forigi"])},start_time_prompt:n=>{const{normalize:o}=n;return o(["Komenca tempo: "])},end_time_prompt:n=>{const{normalize:o}=n;return o(["Fina tempo: "])},published_time_display:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Publikigita je ",e(r("time"))])},start_time_display:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Komenciĝas je ",e(r("time"))])},end_time_display:n=>{const{normalize:o,interpolate:e,named:r}=n;return o(["Finiĝas je ",e(r("time"))])},edit_action:n=>{const{normalize:o}=n;return o(["Redakti"])},submit_edit_action:n=>{const{normalize:o}=n;return o(["Afiŝi"])},cancel_edit_action:n=>{const{normalize:o}=n;return o(["Nuligi"])},inactive_message:n=>{const{normalize:o}=n;return o(["Ĉi tiu anonco estas neaktiva"])}}}}}]);
+//# sourceMappingURL=eo-json.d81690d5be30b23e516b.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js.map b/priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js.map
new file mode 100644
index 000000000..d00b38656
--- /dev/null
+++ b/priv/static/static/js/i18n/eo-json.d81690d5be30b23e516b.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/i18n/eo-json.d81690d5be30b23e516b.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/eo.json"],"sourcesContent":["export default {\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babilejo\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babilejo\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vidaŭdaĵa retperilo\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj de amplekso\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limo de teksto\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Funkcioj\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiun aboni\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babilejo de Pleroma\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limo de alŝutoj\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kriujo\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris alporto de uzanto\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trovi uzanton\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apliki\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sendi\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraro okazis\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"malnepra\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontroli\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmi\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malŝalti\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forlasi\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri malplion\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri plion\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reprovi\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bonvolu reprovi\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegante…\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭmontri\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reguligisto\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administranto\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Klaku por montri enhavon de Flash per Ruffle. (Eksperimente, eble ne funkcios.)\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciu, ke tio povas esti danĝera, ĉar la enhavo de Flash ja estas arbitra programo.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsukcesis enlegi enhavon de Flash; vidu detalojn en konzolo.\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Persona\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nur abonantoj\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publika\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nelistigita\"])}\n },\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris: \", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniam remontri\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfari\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jes\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfiksi eron\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fiksi eron\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rulumi supren\"])}\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tondi bildon\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi sen tondado\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saluti\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saluti per OAuth\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adiaŭi\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pasvorto\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz. lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registriĝi\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzantonomo\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Salutu por partopreni la diskutadon\"])},\n \"heading\": {\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehavo de duobla aŭtentikigo\"])},\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Duobla aŭtentikigo\"])}\n },\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehava kodo\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu kodon de duobla aŭtentikigo\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu rehavan kodon\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aŭtentikiga kodo\"])}\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭa\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sekva\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi vidilon de vidaŭdaĵoj\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pri\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reen\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loka babilejo\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Petoj pri abono\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencioj\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rektaj mesaĝoj\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Noda historio\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historio\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federa historio\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi uzantojn\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiun aboni\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babiloj\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interagoj\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrado\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legosignoj\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historioj\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hejma historio\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti fiksitajn erojn\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Listoj\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adapti navigan breton\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fini redakton\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermi sciigojn (estas nelegitaj)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi sciigojn\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anoncoj\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nekonata afiŝo, serĉante ĝin…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ŝatis vian afiŝon\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekabonis vin\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pli malnovajn sciigojn\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legite!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ripetis vian afiŝon\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj sciigoj\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagis per \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migris al\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volas vin aboni\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris akirado de sciigoj: \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sendis raporton\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enketo finiĝis\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝi\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Via konto ne estas \", _interpolate(_list(0)), \". Iu ajn povas vin aboni por vidi eĉ viajn afiŝoj nur por abonantoj.\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ŝlosita\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marki kunsendaĵojn konsternaj\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Plata teksto\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Temo (malnepra)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĵus alvenis Esperantujon!\"])},\n \"direct_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla nur por ĉiuj menciitaj uzantoj.\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝante\"])},\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rekta – afiŝi nur al menciitaj uzantoj\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nur abonantoj – afiŝi nur al abonantoj\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publika – afiŝi al publikaj historioj\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nelistigita – ne afiŝi al publikaj historioj\"])}\n },\n \"scope_notice\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo ne estos videbla en la Noda kaj la Federa historioj\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla nur al viaj abonantoj\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla al ĉiuj\"])}\n },\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsukcesis afiŝo de vidaŭdaĵoj; reprovu\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne povas fari malplenan afiŝon sen dosieroj\"])},\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malplena\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭrigardo\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj.\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priskribo de vidaŭdaĵo\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝo\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aliaj foraj nodoj eble ne subtenas redaktadon, kaj ne povos ricevi pli novan version de via afiŝo.\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma ne subtenas redaktadon de mencioj aŭ enketoj.\"])},\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti afiŝon\"])}\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priskribo\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retpoŝtadreso\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prezenta nomo\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmo de pasvorto\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registriĝo\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invita peco\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TESTO DE HOMECO\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Klaku la bildon por akiri novan teston\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz. lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz. Lain Ivakura\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekz.\\nSaluton, mi estas Lain.\\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo « Wired ».\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne povas resti malplena\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"samu la pasvorton\"])}\n },\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi-node oni aprobas registriĝojn permane.\\nSciigu la administrantojn kial vi volas registriĝi.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kialo registriĝi\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registriĝi\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prio (malnepra)\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retpoŝtadreso (malnepra)\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En kiu lingvo vi volus ricevi retleterojn de la servilo?\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo de aplikaĵo\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kunsendaĵoj\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kunsendaĵoj\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildo\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildoj (sciigoj)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildoj\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Priskribo\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokitoj\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butonoj\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blua (respondi, aboni)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verda (diskonigi)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oranĝa (ŝati)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ruĝa (nuligi)\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝanĝi pasvorton\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris ŝanĝo de via pasvorto.\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pasvorto sukcese ŝanĝiĝis!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maletendi afiŝojn kun temoj\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verkado\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmu novan pasvorton\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Via nuna profilbildo\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuna pasvorto\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Via nuna profila rubando\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto / Elporto de datumoj\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Implicita amplekso de vidibleco\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi konton\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ĉiam forigi viajn datumojn kaj malaktivigi vian konton.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris forigo de via kanto. Se tio daŭre ripetiĝos, bonvolu kontakti la administranton de via nodo.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entajpu sube vian pasvorton por konfirmi forigon de konto.\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La rekomendata minimuma grando de profilbildoj estas 150×150 bilderoj.\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi antaŭagordon\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrado\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiuj afiŝoj kun tiuj ĉi vortoj silentiĝos; skribu po unu linie\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporto de abonoj\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporti viajn abonojn al CSV-dosiero\"])},\n \"follow_export_processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Traktante; baldaŭ vi ricevos peton elŝuti la dosieron\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto de abonoj\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraro enportante abonojn\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonoj enportiĝis! Traktado daŭros iom da tempo.\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfono\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĝenerala\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kunsendaĵojn en interparoloj\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kunsendaĵojn en historioj\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maksimuma nombro da bildetoj en afiŝo\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi breton propran al nodo\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭ-enlegi bildojn\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermi konsternajn kunsendaĵojn per nur unu klako\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi statistikon de afiŝoj (ekz. nombron de ŝatoj)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi statistikon de uzantoj (ekz. nombron de abonantoj)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi ĉiujn filtritajn afiŝojn\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporti abonojn el CSV-dosiero\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi antaŭagordojn\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigaj kampoj\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markbutonoj\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(originale: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(originale)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fasado\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingvo de fasado\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La elektita dosiero ne estas subtenata haŭto de Pleromo. Neniuj ŝanĝoj al via haŭto okazis.\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nehavebla en via foliumilo\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ligiloj\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limigi vian konton al nur abonantoj aprobitaj\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetadi filmojn\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigoj\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ludi filmojn en ŝpruca kadro\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne pritondi bildetojn de kunsendaĵoj\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo kaj priskribo\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova pasvorto\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montrotaj specoj de sciigoj\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonoj\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝatoj\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencioj\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetoj\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi riĉtekstajn formojn de ĉiuj afiŝoj\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj blokitoj\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj silentigoj\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri kiun mi sekvas\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri kiu min sekvas\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la insignon de administranto en mia profilo\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la insignon de reguligisto en mia profilo\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti traklakan kaŝadon de kunsendaĵoj kaj antaŭmontroj de ligiloj por konsternaj afiŝoj\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pecoj de OAuth\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peco\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualiga peco\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valida ĝis\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senvalidigi\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bretoj\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Paŭzigi elsendfluon kiam langeto ne estas fokusata\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭagordoj\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono de profilo\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rubando de profilo\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilo\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi fasadan rondigon de randoj (bildere)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Respondoj en historioj\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri ĉiujn respondojn\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn por mi aŭ miaj abonatoj\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn por mi\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris konservado de agordoj\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj konserviĝis\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sekureco\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi novan profilbildon\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi novan fonon de profilo\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi novan rubandon de profilo\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiam montri kampon de temo\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kopii temon dum respondado\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiel retpoŝto: «re: temo»\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiel Mastodon: kopii senŝanĝe\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne kopii\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speco de enhavo de afiŝo\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Movi GIF-bildojn dum ŝvebo de muso\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teksto\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Haŭto\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon «Vakigi ĉion» por forigi ĉîujn superagordojn.\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; ŝvebigu muson por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo.\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝpruchelpiloj/avertoj\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alŝuti foton\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj de uzanto\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ne\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jes\"])}\n },\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝalti retajn pasivajn sciigojn\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi kolorojn\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi ombrojn\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi maltravideblecon\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi rondecon\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi tiparojn\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektebloj de «konservi» konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos.\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vakigi ĉion\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vakigi maltravideblecon\"])},\n \"help\": {\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio de PleromaFE reen iris.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La motoro de haŭtoj de PleromaFE ĝisdatiĝis post ĝisdatigo de la versio.\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La enportita dosiero estis farita per pli malnova versio de PleromaFE.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La enportita dosiero estis farita per pli nova versio de PleromaFE.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La dosiero, kiun vi enportis, estis farita por malnova versio de PleromaFE. Ni provas maksimumigi interkonformecon, sed tamen eble montriĝos misoj.\"])},\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE estis ĝisdatigita; la haŭto eble aspektos malsame ol kiel vi ĝin memoras.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniu momentokopio de haŭto estis en la dosiero, ĝi povas aspekti iom malsame ol oni intencis.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiuj valoroj estas transpasataj, ĉar momentokopio de haŭto estas enlegita. Vi povas enlegi anstataŭe la aktualajn datumojn de haŭto.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versioj konfliktas: plej probable la fasado estis reirigita kaj ree ĝisdatigita; se vi ŝanĝis la haŭton per pli malnova versio de la fasado, vi probable volas uzi la malnovan version. Alie uzu la novan.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ial mankis momentokopio; io povus aspekti malsame ol en via memoro.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Certige, momentokopio de la haŭto enlegiĝis. Vi povas provi enlegi datumojn de la haŭto.\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova versio\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malnova versio\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teni senŝanĝa\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi haŭton\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Koloro\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maltravidebleco\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Proporcio de kontrasto estas \", _interpolate(_named(\"ratio\")), \", ĝi \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plenumas la gvidilon je nivelo AA (minimuma)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plenumas la gvidilon je nivela AAA (rekomendita)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plenumas neniujn faciluzajn gvidilojn\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"por granda (18pt+) teksto\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"por teksto\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Komunaj\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Komunaj koloroj\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vidu langeton «Specialaj» por pli detalaj agordoj\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsimboloj, emfazoj, insignoj\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Specialaj\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono de averto\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraro\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fono de insigno\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigo\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kapo de breto\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supra breto\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limoj\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butonoj\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigaj kampoj\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malvigla teksto\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limo\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliraj\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envenaj\"])}\n },\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langetoj\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malŝaltita\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektita menuero\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektita afiŝo\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premita\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emfazitaj eroj\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsimboloj\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grafo de enketo\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subtavolo\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝprucaĵoj, menuoj\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝoj/Priskriboj de uzantoj\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neŭtrala\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Averto\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝaltita\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fonbildo\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rondeco\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ombro kaj lumo\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ero\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Transpasi\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ombro #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malklarigo\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vastigo\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Internigo\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios.\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Averto: ĉi tiu ombro ĉiam uzas \", _interpolate(_list(0)), \" kiam la foliumilo tion subtenas.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" ne subtenas parametron \", _interpolate(_list(1)), \" kaj ĉefvorton \", _interpolate(_list(2)), \".\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj.\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Internaj ombroj uzos \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Breto\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kapo de breto\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supra breto\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildo de uzanto (en profila vido)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilbildo de uzanto (en afiŝa vido)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝprucaĵoj\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono (je ŝvebo)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono (premita)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono (je premo kaj ŝvebo)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eniga kampo\"])}\n },\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Kolorojn de ombroj vi ankaŭ povas skribi per la sistemo \", _interpolate(_list(0)), \".\"])}\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tiparoj\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elektu tiparon uzotan por eroj de la fasado. Por «propra» vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo.\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fasado\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigaj kampoj\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teksto de afiŝo\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Egallarĝa teksto en afiŝo (riĉteksto)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo de tiparo\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grando (en bilderoj)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pezo (graseco)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Propra\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭrigardo\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enhavo\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ekzempla eraro\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Butono\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Kelko da pliaj \", _interpolate(_list(0)), \" kaj \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enhavo\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĵus alvenis Esperantujon!\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"helpan manlibron\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Legu nian \", _interpolate(_list(0)), \" por nenion utilan ekscii!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tio estas en ordo\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi legetis la kondiĉojn de uzado\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bela eta ligil’\"])}\n }\n },\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permesi trovon de ĉi tiu konto en serĉrezultoj kaj aliaj servoj\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokado kaj silentigoj\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babileja mesaĝo\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retpoŝtadreso sukcese ŝanĝiĝis!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris ŝanĝo de via retpoŝtadreso.\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝanĝi retpoŝtadreson\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tio estas robota konto\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokitoj enportiĝis! Traktado daŭros iom da tempo.\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris enporto de blokitoj\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporto de blokitoj\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto de blokitoj\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporti viajn blokitojn al CSV-dosiero\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permesi memagan abonadon kiam abonata konto migras\"])},\n \"mfa\": {\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ŝalti duoblan aŭtentikigon, enigu la kodon el via aplikaĵo por duobla aŭtentikigo:\"])}\n },\n \"scan\": {\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝlosilo\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzante vian aplikaĵon por duobla aŭtentikigo, skanu ĉi tiun rapidrespondan kodon aŭ enigu tekstan ŝlosilon:\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skani\"])}\n },\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metodoj de aŭtentikigo\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notu la kodojn aŭ konservu ilin en sekura loko – alie vi ne revidos ilin. Se vi perdos aliron al via aplikaĵo por duobla aŭtentikigo kaj al la rehavaj kodoj, vi ne povos aliri vian konton.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ricevante savkopiajn kodojn…\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehavaj kodoj.\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiam vi estigos novajn rehavajn kodojn, viaj malnovaj ne plu funkcios.\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estigi novajn rehavajn kodojn\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Duobla aŭtentikigo\"])},\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"antaŭagordante OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordi OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konfirmi kaj ŝalti OTP\"])}\n },\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu vian pasvorton por konfirmi vian identecon\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sekureco\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amuzo\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉu silentigotajn retnomojn\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Nerekomendate, eksperimente, povas preterpasi afiŝojn)\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ricevi afiŝojn kaj sciigojn realtempe\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzantoj\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas restarigi la fonon?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas restarigi la rubandon?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas restarigi la profilbildon?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi rubandon de profilo\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi fonon de profilo\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi profilbildon\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimumigi elekteblojn pri amplekso de afiŝoj\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉu, kiun vi volas bloki\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉu, kiun vi volas silentigi\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Memage kaŝi la butonon por Nova afiŝo (poŝtelefone)\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri nombron de abonantoj\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri nombron de abonoj\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reagoj\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Migroj\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova retpoŝtadreso\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enhavo\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etikedo\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni kampon\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pridatumoj de profilo\"])}\n },\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporti blokitojn el CSV-dosiero\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi afiŝojn de silentigitaj uzantoj\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri bildosignajn reagojn en historioj\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meti spacetojn ĉirkaŭ bildosigno post ties elekto\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retnomoj\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokinte uzanton vi malabonos ĝin kaj haltigos ĉiujn sciigojn.\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por ne plu ricevi sciigojn de certa uzanto, silentigu ĝin.\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi la sendinton kaj la enhavojn de pasivaj sciigoj\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privateco\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bloki sciigojn de uzantoj, kiujn vi ne abonas\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtriloj\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Memecitaĵoj\"])},\n \"version\": {\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio de fasado\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio de internaĵo\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versio\"])}\n },\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emfazo\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Optimumigi bildigon de historioj\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporti silentigojn el CSV-dosiero\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigoj enportiĝis! Traktado daŭros iom da tempo.\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris enporto de silentigoj\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enporto de silentigoj\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elportu viajn silentigojn al CSV-dosiero\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporto de silentigoj\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi fonbildon de nodo\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordo malsamas de la implicita\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pliaj agordoj\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Implicite marki afiŝojn konsternaj\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri respondojn por miaj abonatoj\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi silentigitajn afiŝojn\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi antaŭrigardojn al vidaŭdaĵoj\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vortofiltro\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn por mi\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etversio de dosiero malsamas, iuj agordoj eble ne funkcios\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Nekonforma ĉefa versio: \", _interpolate(_named(\"fileMajor\")), \", versio de dosiero estas tro malnova kaj nesubtenata (minimuma estas \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Nekonforma ĉefa versio: \", _interpolate(_named(\"fileMajor\")), \", ĉi tiu PleromaFE (agordoj je versio \", _interpolate(_named(\"feMajor\")), \") tro malnovas por tio\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La elektita dosiero ne estas subtenata savkopio de agordoj de Pleroma. Nenio ŝanĝiĝis.\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rehavi agordojn el dosiero\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopii agordojn kaj haŭton al dosiero\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopii agordojn al dosiero\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopio de agordoj\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri flankan breton dekstre\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi ŝanĝojn\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kriujon de nodo\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉiam montri ŝvebantan butonon por nova afiŝo\"])},\n \"mentions_new_style\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli mojosaj menciligiloj\"])},\n \"mentions_new_place\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meti menciojn sur apartan linion\"])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri listojn en navigiloj\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopio de konto\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tio povigas vin elŝuti arĥivon de viaj afiŝoj kaj ĉiuj informoj pri via konto, sed ili ne jam povas enportiĝi en konton de Pleroma.\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris akirado de kromnomoj: \", _interpolate(_named(\"error\"))])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se vi volas movi la konton aliloken, vi devas iri al via celata konto, kaj aldoni kromnomon ligitan al tie ĉi.\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etendi navigan breton laŭ larĝeco de kolumnoj\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝoj\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Finoj de enketoj kun via voĉo\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aspekto de interparoloj\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne alglui kapojn de kolumnoj al supro de la ekrano\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linia vido\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uzi teĥnikaron «websockets» (tuja ĝisdatigo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"plene nur je uzantoj foraj (ekz. \", \"@\", \"zozo\", \"@\", \"ekzemplo.org)\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri altnivelajn\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu agordo estas ligita al via profilo, kaj efektiviĝos en ĉiuj viaj salutoj kaj klientoj\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aspekto de afiŝoj\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Menciaj ligiloj\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingvo de leteroj ricevotaj de la servilo\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Savkopio\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elŝuti\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu savkopio ne jam pretas.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris akirado de listo de savkopioj: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fari novan savkopion\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldonis novan savkopion.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris aldono de nova savkopio: \", _interpolate(_named(\"error\"))])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kromnomoj de konto\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kromnomo\"])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi ĉi tiun kromnomon\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Aldoni novan kromnomon (ekz. \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kromnomo estas aldonita.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris aldono de kromnomo: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Movi konton\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Celata konto (ekz. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto moviĝis.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraris movado de konto: \", _interpolate(_named(\"error\"))])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vortofiltrado\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vortofiltrado kaj pli…\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi afiŝojn de robotoj\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi markon de roboteco en afiŝoj\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi vorte filtritajn afiŝojn\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi silentigitajn fadenojn\"])},\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privateco\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiloj de uzantoj\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne montri liston de miaj ŝatatoj (oni tamen sciiĝas)\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arba stilo\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arba vido\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri rulumskalojn de flankaj kolumnoj\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniam montri trian kolumnon\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kolumno de sciigoj\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kolumnoj\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grandeco de kolumnoj\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flanka breto\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enhavo\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permesi pli flekseblan navigadon en arba vido\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linia stilo\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la butonon pri «aliaj respondoj»\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sub afiŝoj\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En afiŝoj\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maksimuma nombro de niveloj implicite montrataj en fadeno\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri novajn afiŝojn memage\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri simbolon \", \"@\", \" kiel bildon anstataŭ teksto\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri menciajn ligilojn\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ĉiam mallonge (ekz. \", \"@\", \"zozo)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ĉiam plene (ekz. \", \"@\", \"zozo\", \"@\", \"ekzemplo.org)\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri profilbildon de uzanto apud la ligilo\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri profilbildon de uzanto apud mencioj\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malvigligi retnomojn (ekz. \", \"@\", \"ekzemplo.org en \", \"@\", \"zozo\", \"@\", \"ekzemplo.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emfazi vian mencion, se vi estas menciita\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri karton de uzanto per klako al mencia ligilo\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi la ŝprucaĵon\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermi la profilon\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aperigi ŝprucaĵon pri uzanto sur profilbildo\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri la markon «(Vi)»\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zomi la profilbildon\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kun sufiĉo da spaco, montri trian kolumnon kun\"])}\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maletendi\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interparolo\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris ĝisdatigo\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri pli malnovajn afiŝojn\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ripetis\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri novajn\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĝisdata\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj afiŝoj\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj afiŝoj\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi ree\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris akirado de historio: \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Realtempa konekto fariĝis\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Realtempa konekto perdiĝis: CloseEvent code \", _interpolate(_list(0))])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aprobi\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bloki\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokita!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝatataj\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aboni\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peto sendiĝis!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Petante…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malaboni\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonatoj\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonantoj\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonata!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abonas vin!\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tio estas vi!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vidaŭdaĵoj\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigita\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tage\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fore aboni\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝoj\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malbloki\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malblokante…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blokante…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigi\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigante…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigante…\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raporti\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mesaĝo\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencio\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝita\"])},\n \"admin_menu\": {\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi uzanton\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malpermesi federadon de afiŝoj de uzanto\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malpermesi ĉian abonadon al uzanto\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malpermesi abonadon al uzanto el foraj nodoj\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Devigi afiŝojn esti nur por abonantoj\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Devigi afiŝojn nelistiĝi\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi vidaŭdaĵojn de afiŝoj\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marki ĉiujn afiŝojn konsternaj\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi konton\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malaktivigi konton\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivigi konton\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malnomumi reguligiston\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomumi reguligiston\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malnomumi administranton\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomumi administranton\"])},\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reguligado\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tio ĉi por ĉiam forigos datumojn de tiu ĉi konto, kaj malaktivigos ĝin. Ĉu vi plene certas?\"])}\n },\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri ripetojn\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi ripetojn\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne ricevi sciigojn\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ricevi sciigojn\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roboto\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flanka strio\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stria fono\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unueca fono\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senemfaze\"])}\n },\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti profilon\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malaktiva\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi peton\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi abonanton\"])},\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Noto\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Neniu)\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apliki\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti noton\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historio de uzanto\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pardonu, ĉi tiu profilo ne ekzistas.\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pardonu, eraris enlego de ĉi tiu profilo.\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kiun aboni\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alŝuti vidaŭdaĵon\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripeti\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Respondi\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝati\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agordoj de uzanto\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legosigno\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi abonpeton\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Akcepti abonpeton\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni reagon\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etendi aŭ maletendi sciigon por montri plenan afiŝon\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etendi aŭ maletendi afiŝon por montri silentigitan enhavon\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alŝuto malsukcesis.\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Dosiero estas tro granda [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reprovu pli poste\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Malsukcesis alŝuto: \", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"emoji\": {\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi bildosignon\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teni elektilon malfermita\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildsignoj\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Glumarkoj\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigi bildosignon\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Enlegante ĉiujn \", _interpolate(_named(\"emojiAmount\")), \" bildosignojn\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Enlegis la \", _interpolate(_named(\"saneAmount\")), \" unuajn bildosignojn; enlego de ĉiuj povus kaŭzi problemojn pri efikeco.\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unikoda bildosigno\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Propra bildosigno\"])},\n \"unicode_groups\": {\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agado\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestoj kaj naturo\"])},\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flagoj\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manĝaĵoj kaj trinkaĵoj\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aĵoj\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Homoj kaj korpo\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mienbildoj kaj sentoj\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Simboloj\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vojaĝoj kaj lokoj\"])}\n },\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Regiona marko \", _interpolate(_named(\"letter\"))])}\n },\n \"polls\": {\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tro malmultaj unikaj elektebloj en la enketo\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Enketo finiĝis antaŭ \", _interpolate(_list(0))])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Enketo finiĝas je \", _interpolate(_list(0))])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aĝo de enketo\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pluraj elektoj\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unu elekto\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speco de enketo\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voĉi\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"voĉoj\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elekteblo\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni elekteblon\"])},\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni enketon\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" voĉdono\"]), _normalize([_interpolate(_named(\"count\")), \" voĉdonoj\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" persono voĉdonis\"]), _normalize([_interpolate(_named(\"count\")), \" personoj voĉdonis\"])])}\n },\n \"importer\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris enporto de ĉi tiu dosiero.\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enportita sukcese.\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sendi\"])}\n },\n \"exporter\": {\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Traktante; baldaŭ vi ricevos peton elŝuti vian dosieron\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elporti\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigante…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigi\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigante…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi\"])}\n },\n \"about\": {\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skipo\"])},\n \"mrf\": {\n \"simple\": {\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo devigas vidaŭdaĵojn esti markitaj kiel konsternaj en afiŝoj el la jenaj nodoj:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Devige marki vidaŭdaĵojn konsternaj\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigo de vidaŭdaĵoj\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigo el la «Federa historio»\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kvaranteno\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Akcepti\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Specialaj politikoj de la nodo\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu nodo forigas la jenajn nodojn el la «Federa historio»:\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nodo\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kialo\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)\"])},\n \"keyword\": {\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstataŭigi\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rifuzi\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigo el la historio de la «Federa historio»\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Politiko pri ĉefvortoj\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federado\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo. La sekvaj politikoj estas ŝaltitaj:\"])}\n }\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elekti ĉion\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netrovinte.\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉante\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trovilo de foraj uzantoj\"])}\n },\n \"interactions\": {\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pli malnovajn interagojn\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Migrado de uzantoj\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Novaj abonoj\"])},\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetoj kaj ŝatoj\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildosignaj reagoj\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportoj\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma ne povis aliri deponejon de la foliumilo. Via saluto kaj viaj lokaj agordoj ne estos konservitaj, kaj vi eble renkontos neatenditajn problemojn. Provu permesi kuketojn.\"])}\n },\n \"status\": {\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi enhavon\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri enhavon\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi plenan temon\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri plenan temon\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", enhavas vortojn:\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fadeno silentigita\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kopii ligilon al afiŝo\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝo ne estas disponebla\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malsilentigi interparolon\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Silentigi interparolon\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Respondoj:\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Responde al\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas forigi ĉi tiun afiŝon?\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senlegosigni\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legosigni\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fiksita\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfiksi de profilo\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fiksi al profilo\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi afiŝon\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ripetoj\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝatoj\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu afiŝo foriĝis\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konsterna\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etendi\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ekstera fonto\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mencioj\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Vi)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"+\", _interpolate(_named(\"number\")), \" pli\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri ĉiujn kunsendaĵojn\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi iujn kunsendaĵojn\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Afiŝo havas \", _interpolate(_named(\"number\")), \" kunsendaĵo(j)n\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri en vidilo de vidaŭdaĵoj\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti afiŝon\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Respondoj (+\", _interpolate(_named(\"numReplies\")), \" alia):\"]), _normalize([\"Respondoj (+\", _interpolate(_named(\"numReplies\")), \" aliaj):\"])])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malkaŝi ĉi tiun fadenon\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Montri ĉion en ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝon sume, maksimume en profundeco \", _interpolate(_named(\"depth\")), \")\"]), _normalize([\"Montri ĉion en ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝojn sume, maksimume en profundeco \", _interpolate(_named(\"depth\")), \")\"])])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Montri plenan interparolon (\", _interpolate(_named(\"numStatus\")), \" alian afiŝon)\"]), _normalize([\"Montri plenan interparolon (\", _interpolate(_named(\"numStatus\")), \" aliajn afiŝojn)\"])])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(lastafoje redaktita je \", _interpolate(_named(\"time\")), \")\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi kunsendaĵon\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antaŭvidi priskribon (malfermu kunsendaĵon por vidi plenan priskribon)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi kunsendaĵon\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉesigi ludilon de [Flash]\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝovi kunsendaĵon antaŭen\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ŝovi kunsendaĵon posten\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kaŝi ĉi tiun fadenon\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Montri ceteron de ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝon sume)\"]), _normalize([\"Montri ceteron de ĉi tiu fadeno (\", _interpolate(_named(\"numStatus\")), \" afiŝojn sume)\"])])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Vidi \", _interpolate(_named(\"numReplies\")), \" alian respondon sub ĉi tiu afiŝo\"]), _normalize([\"Vidi \", _interpolate(_named(\"numReplies\")), \" aliajn respondojn sub ĉi tiu afiŝo\"])])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montri nur respondojn al ĉi tiu afiŝo\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Historio de afiŝo\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermi galerion\"])}\n },\n \"time\": {\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"j\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"j\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" jaroj\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" jaro\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" semajnoj\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" semajno\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sek\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sek\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" sekundoj\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" sekundo\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nun\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ĵus\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"m\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"m\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" monatoj\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" monato\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" minutoj\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" minuto\"])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"antaŭ \", _interpolate(_list(0))])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"post \", _interpolate(_list(0))])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"hor\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"hor\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" horoj\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" horo\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"t\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"t\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" tagoj\"])},\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" tago\"])},\n \"unit\": {\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" tago\"]), _normalize([_interpolate(_list(0)), \" tagoj\"])])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" minuto\"]), _normalize([_interpolate(_list(0)), \" minutoj\"])])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"t\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" horo\"]), _normalize([_interpolate(_list(0)), \" horoj\"])])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" monato\"]), _normalize([_interpolate(_list(0)), \" monatoj\"])])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" sekundo\"]), _normalize([_interpolate(_list(0)), \" sekundoj\"])])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sek\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" semajno\"]), _normalize([_interpolate(_list(0)), \" semajnoj\"])])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"sem\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" jaro\"]), _normalize([_interpolate(_list(0)), \" jaroj\"])])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"j\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personoj\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj rezultoj\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" personoj parolas\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" persono parolas\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kradvortoj\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj rezultoj\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pliajn rezultojn\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hodiaŭ\"])}\n },\n \"file_type\": {\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dosiero\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildo\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filmo\"])},\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sono\"])}\n },\n \"chats\": {\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi ankoraŭ havas neniun babilon. Komencu novan babilon!\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Io misokazis dum sendado de la mesaĝo.\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Io misokazis dum enlego de la babilo.\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas forigi ĉi tiun mesaĝon?\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pli\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ne povas sendi malplenan mesaĝon\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova babilo\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Babiloj\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Mesaĝi al \", _interpolate(_named(\"nickname\"))])}\n },\n \"password_reset\": {\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi devas restarigi vian pasvorton, sed restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi devas restarigi vian pasvorton por saluti.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vi atingis la limon de provoj, reprovu pli poste.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reiri al la hejmpaĝo\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontrolu vian retpoŝton pro ligilo por restarigi vian pasvorton.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Via retpoŝtadreso aŭ uzantonomo\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enigu vian retpoŝtadreson aŭ uzantonomon. Ni sendos al vi ligilon por restarigi vian pasvorton.\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restarigi pasvorton\"])},\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi forgesis pasvorton?\"])}\n },\n \"user_reporting\": {\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eraris traktado de via peto.\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sendi\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Plusendi al \", _interpolate(_list(0))])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La konto venas de alia servilo. Ĉu kopio de la raporto sendiĝu ankaŭ tien?\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldonaj komentoj\"])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:\"])},\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Raportante \", _interpolate(_list(0))])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kriujo\"])}\n },\n \"report\": {\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportinto:\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportito:\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raportitaj afiŝoj:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notoj:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝo:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Malfermita\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermita\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solvita\"])}\n },\n \"lists\": {\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Redaktado de listo \", _interpolate(_named(\"listTitle\"))])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Listoj\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nova listo\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nomo de listo\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi uzantojn\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Krei\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi ŝanĝojn\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi liston\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limigi al abonatoj\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mastrumi listojn\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mastrumi listanojn\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Serĉi pliajn uzantojn\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi de listo\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aldoni al listo\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jam en listo\"])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kreado de nova listo\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konservi nomon\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉu vi certe volas forigi la liston?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris umado je listoj: \", _interpolate(_list(0))])}\n },\n \"update\": {\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ni longe ne eldonis novan version, kaj tial aferoj eble aspektos iom malsame, ol antaŭe.\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Bonvolu raporti problemojn kaj erarojn ĉe \", _interpolate(_named(\"pleromaGitlab\")), \", ĉar ni ŝanĝis multon, kaj kvankam ni zorge testas kaj mem uzas la prilaboratajn versiojn, ni tamen povas preteratenti ion. Ni bonvenigas viajn rimarkojn kaj proponojn pri renkontitaj eraroj aŭ proponoj plibonigi Pleromon.\"])},\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bonvolu pacienci\"])},\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GitLab de Pleroma\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Por legi detalojn pri ŝanĝoj, vidu \", _interpolate(_named(\"theFullChangelog\")), \".\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"la plenan ŝanĝaron\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Arto de \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu retnomo enhavas signojn ekster ASCII.\"])}\n },\n \"announcements\": {\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tio estas tuttaga okazo\"])},\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anoncoj\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anonco\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marki legita\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entajpu vian anoncon tie ĉi…\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝi\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Eraro: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fermi\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forigi\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Komenca tempo: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fina tempo: \"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Publikigita je \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Komenciĝas je \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Finiĝas je \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redakti\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afiŝi\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuligi\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ĉi tiu anonco estas neaktiva\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js b/priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js
new file mode 100644
index 000000000..1c2d18099
--- /dev/null
+++ b/priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[8714],{8439:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={about:{mrf:{federation:r=>{const{normalize:n}=r;return n(["フェデレーション"])},mrf_policies:r=>{const{normalize:n}=r;return n(["ゆうこうなMRFポリシー"])},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRFポリシーは、このインスタンスのフェデレーションのふるまいを、いじります。これらのMRFポリシーがゆうこうになっています:"])},simple:{simple_policies:r=>{const{normalize:n}=r;return n(["インスタンスのポリシー"])},accept:r=>{const{normalize:n}=r;return n(["うけいれ"])},accept_desc:r=>{const{normalize:n}=r;return n(["このインスンスは、これらのインスタンスからのメッセージのみをうけいれます:"])},reject:r=>{const{normalize:n}=r;return n(["おことわり"])},reject_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスからのメッセージをうけいれません:"])},quarantine:r=>{const{normalize:n}=r;return n(["けんえき"])},quarantine_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスに、パブリックなとうこうのみを、おくります:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["「つながっているすべてのネットワーク」タイムラインからのぞく"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:"])},media_removal:r=>{const{normalize:n}=r;return n(["メディアをのぞく"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスからおくられてきたメディアを、とりのぞきます:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["メディアをすべてセンシティブにする"])},media_nsfw_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスからおくられてきたメディアを、すべて、センシティブにマークします:"])},reason:r=>{const{normalize:n}=r;return n(["りゆう"])},instance:r=>{const{normalize:n}=r;return n(["インスタンス"])},not_applicable:r=>{const{normalize:n}=r;return n(["なし"])}},keyword:{keyword_policies:r=>{const{normalize:n}=r;return n(["キーワードポリシー"])},reject:r=>{const{normalize:n}=r;return n(["おことわり"])},replace:r=>{const{normalize:n}=r;return n(["おきかえ"])},ftl_removal:r=>{const{normalize:n}=r;return n(["「つながっているすべてのネットワーク」タイムラインからのぞく"])},is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])}}},staff:r=>{const{normalize:n}=r;return n(["スタッフ"])}},chat:{title:r=>{const{normalize:n}=r;return n(["チャット"])}},exporter:{export:r=>{const{normalize:n}=r;return n(["エクスポート"])},processing:r=>{const{normalize:n}=r;return n(["おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます"])}},features_panel:{chat:r=>{const{normalize:n}=r;return n(["チャット"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},media_proxy:r=>{const{normalize:n}=r;return n(["メディアプロクシ"])},scope_options:r=>{const{normalize:n}=r;return n(["こうかいはんいせんたく"])},text_limit:r=>{const{normalize:n}=r;return n(["もじのかず"])},title:r=>{const{normalize:n}=r;return n(["ゆうこうなきのう"])},who_to_follow:r=>{const{normalize:n}=r;return n(["おすすめユーザー"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Pleroma チャット"])},upload_limit:r=>{const{normalize:n}=r;return n(["アップロードできるファイルのおおきさ"])},shout:r=>{const{normalize:n}=r;return n(["Shoutbox"])}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["ユーザーけんさくがエラーになりました"])},find_user:r=>{const{normalize:n}=r;return n(["ユーザーをさがす"])}},general:{apply:r=>{const{normalize:n}=r;return n(["てきよう"])},submit:r=>{const{normalize:n}=r;return n(["そうしん"])},more:r=>{const{normalize:n}=r;return n(["つづき"])},generic_error:r=>{const{normalize:n}=r;return n(["エラーになりました"])},optional:r=>{const{normalize:n}=r;return n(["かかなくてもよい"])},show_more:r=>{const{normalize:n}=r;return n(["つづきをみる"])},show_less:r=>{const{normalize:n}=r;return n(["たたむ"])},cancel:r=>{const{normalize:n}=r;return n(["キャンセル"])},disable:r=>{const{normalize:n}=r;return n(["なし"])},enable:r=>{const{normalize:n}=r;return n(["あり"])},confirm:r=>{const{normalize:n}=r;return n(["たしかめる"])},verify:r=>{const{normalize:n}=r;return n(["たしかめる"])},retry:r=>{const{normalize:n}=r;return n(["もういちど、ためしてください"])},loading:r=>{const{normalize:n}=r;return n(["よみこんでいます…"])},undo:r=>{const{normalize:n}=r;return n(["もとにもどす"])},yes:r=>{const{normalize:n}=r;return n(["はい"])},no:r=>{const{normalize:n}=r;return n(["いいえ"])},unpin:r=>{const{normalize:n}=r;return n(["ピンどめするのをやめる"])},scroll_to_top:r=>{const{normalize:n}=r;return n(["いちばんうえにもどる"])},role:{moderator:r=>{const{normalize:n}=r;return n(["モデレーター"])},admin:r=>{const{normalize:n}=r;return n(["かんりするひと"])}},flash_security:r=>{const{normalize:n}=r;return n(["Flash コンテンツはどんなコードでもじっこうできるので、あぶないかもしれません。"])},flash_fail:r=>{const{normalize:n}=r;return n(["Flash コンテンツをよみこむことに、しっぱいしました。コンソールで、くわしいないようを、よむことができます。"])},scope_in_timeline:{private:r=>{const{normalize:n}=r;return n(["フォロワーげんてい"])},public:r=>{const{normalize:n}=r;return n(["パブリック"])},unlisted:r=>{const{normalize:n}=r;return n(["アンリステッド"])},direct:r=>{const{normalize:n}=r;return n(["ダイレクト"])}},pin:r=>{const{normalize:n}=r;return n(["ピンどめする"])},flash_content:r=>{const{normalize:n}=r;return n(["Flash コンテンツを、 Ruffle をつかってひょうじする (うごかないかもしれません)。"])},generic_error_message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["エラーになりました: ",e(t(0))])},error_retry:r=>{const{normalize:n}=r;return n(["もういちど、ためしてください"])},never_show_again:r=>{const{normalize:n}=r;return n(["にどとひょうじしない"])},close:r=>{const{normalize:n}=r;return n(["とじる"])},dismiss:r=>{const{normalize:n}=r;return n(["むしする"])},peek:r=>{const{normalize:n}=r;return n(["かくす"])}},image_cropper:{crop_picture:r=>{const{normalize:n}=r;return n(["がぞうをきりぬく"])},save:r=>{const{normalize:n}=r;return n(["セーブ"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["きりぬかずにセーブ"])},cancel:r=>{const{normalize:n}=r;return n(["キャンセル"])}},importer:{submit:r=>{const{normalize:n}=r;return n(["そうしん"])},success:r=>{const{normalize:n}=r;return n(["インポートできました。"])},error:r=>{const{normalize:n}=r;return n(["インポートがエラーになりました。"])}},login:{login:r=>{const{normalize:n}=r;return n(["ログイン"])},description:r=>{const{normalize:n}=r;return n(["OAuthでログイン"])},logout:r=>{const{normalize:n}=r;return n(["ログアウト"])},password:r=>{const{normalize:n}=r;return n(["パスワード"])},placeholder:r=>{const{normalize:n}=r;return n(["れい: lain"])},register:r=>{const{normalize:n}=r;return n(["はじめる"])},username:r=>{const{normalize:n}=r;return n(["ユーザーめい"])},hint:r=>{const{normalize:n}=r;return n(["はなしあいにくわわるには、ログインしてください"])},authentication_code:r=>{const{normalize:n}=r;return n(["にんしょうコード"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["リカバリーコードをいれてください"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["2-ファクターコードをいれてください"])},recovery_code:r=>{const{normalize:n}=r;return n(["リカバリーコード"])},heading:{totp:r=>{const{normalize:n}=r;return n(["2-ファクターにんしょう"])},recovery:r=>{const{normalize:n}=r;return n(["2-ファクターリカバリー"])}},logout_confirm_title:r=>{const{normalize:n}=r;return n(["ログアウトのかくにん"])},logout_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、ログアウトしますか?"])},logout_confirm_accept_button:r=>{const{normalize:n}=r;return n(["ログアウトする"])},logout_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["ログアウトしない"])}},media_modal:{previous:r=>{const{normalize:n}=r;return n(["まえ"])},next:r=>{const{normalize:n}=r;return n(["つぎ"])},counter:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("current"))," / ",e(t("total"))])},hide:r=>{const{normalize:n}=r;return n(["メディアビューアーをとじる"])}},nav:{about:r=>{const{normalize:n}=r;return n(["これはなに?"])},administration:r=>{const{normalize:n}=r;return n(["アドミニストレーション"])},back:r=>{const{normalize:n}=r;return n(["もどる"])},chat:r=>{const{normalize:n}=r;return n(["ローカルチャット"])},friend_requests:r=>{const{normalize:n}=r;return n(["フォローリクエスト"])},mentions:r=>{const{normalize:n}=r;return n(["メンション"])},interactions:r=>{const{normalize:n}=r;return n(["やりとり"])},dms:r=>{const{normalize:n}=r;return n(["ダイレクトメッセージ"])},public_tl:r=>{const{normalize:n}=r;return n(["パブリックタイムライン"])},timeline:r=>{const{normalize:n}=r;return n(["タイムライン"])},twkn:r=>{const{normalize:n}=r;return n(["つながっているすべてのネットワーク"])},user_search:r=>{const{normalize:n}=r;return n(["ユーザーをさがす"])},search:r=>{const{normalize:n}=r;return n(["さがす"])},who_to_follow:r=>{const{normalize:n}=r;return n(["おすすめユーザー"])},preferences:r=>{const{normalize:n}=r;return n(["せってい"])},home_timeline:r=>{const{normalize:n}=r;return n(["ホームタイムライン"])},bookmarks:r=>{const{normalize:n}=r;return n(["ブックマーク"])},timelines:r=>{const{normalize:n}=r;return n(["タイムライン"])},chats:r=>{const{normalize:n}=r;return n(["チャット"])},lists:r=>{const{normalize:n}=r;return n(["リスト"])},mobile_notifications:r=>{const{normalize:n}=r;return n(["つうちをひらく (よんでないものがあります)"])},mobile_notifications_close:r=>{const{normalize:n}=r;return n(["つうちをとじる"])},announcements:r=>{const{normalize:n}=r;return n(["おしらせ"])},edit_pinned:r=>{const{normalize:n}=r;return n(["ピンどめをへんしゅう"])},search_close:r=>{const{normalize:n}=r;return n(["けんさくバーをとじる"])},edit_nav_mobile:r=>{const{normalize:n}=r;return n(["ナビゲーションバーのせっていをかえる"])},mobile_sidebar:r=>{const{normalize:n}=r;return n(["モバイルのサイドバーをきりかえる"])},edit_finish:r=>{const{normalize:n}=r;return n(["へんしゅうをおわりにする"])}},notifications:{broken_favorite:r=>{const{normalize:n}=r;return n(["ステータスがみつかりません。さがしています…"])},favorited_you:r=>{const{normalize:n}=r;return n(["あなたのステータスがおきにいりされました"])},followed_you:r=>{const{normalize:n}=r;return n(["フォローされました"])},load_older:r=>{const{normalize:n}=r;return n(["ふるいつうちをみる"])},notifications:r=>{const{normalize:n}=r;return n(["つうち"])},read:r=>{const{normalize:n}=r;return n(["よんだ!"])},repeated_you:r=>{const{normalize:n}=r;return n(["あなたのステータスがリピートされました"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["つうちはありません"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["つうちをとりにいくことに、しっぱいしました: ",e(t(0))])},follow_request:r=>{const{normalize:n}=r;return n(["あなたをフォローしたいです"])},migrated_to:r=>{const{normalize:n}=r;return n(["インスタンスを、ひっこしました"])},reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," でリアクションしました"])},poll_ended:r=>{const{normalize:n}=r;return n(["とうひょうが、おわりました"])},submitted_report:r=>{const{normalize:n}=r;return n(["つうほうしました"])}},polls:{add_poll:r=>{const{normalize:n}=r;return n(["とうひょうをはじめる"])},add_option:r=>{const{normalize:n}=r;return n(["オプションをふやす"])},option:r=>{const{normalize:n}=r;return n(["オプション"])},votes:r=>{const{normalize:n}=r;return n(["ひょう"])},vote:r=>{const{normalize:n}=r;return n(["とうひょうする"])},type:r=>{const{normalize:n}=r;return n(["とうひょうのけいしき"])},single_choice:r=>{const{normalize:n}=r;return n(["ひとつえらぶ"])},multiple_choices:r=>{const{normalize:n}=r;return n(["いくつでもえらべる"])},expiry:r=>{const{normalize:n}=r;return n(["とうひょうのながさ"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["とうひょうは ",e(t(0))," で、おわります"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["とうひょうは ",e(t(0))," まえに、おわりました"])},not_enough_options:r=>{const{normalize:n}=r;return n(["ユニークなオプションが、たりません"])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," にんが、とうひょうしました"])},votes_count:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," ひょう"])}},emoji:{stickers:r=>{const{normalize:n}=r;return n(["ステッカー"])},emoji:r=>{const{normalize:n}=r;return n(["えもじ"])},keep_open:r=>{const{normalize:n}=r;return n(["ピッカーをあけたままにする"])},search_emoji:r=>{const{normalize:n}=r;return n(["えもじをさがす"])},add_emoji:r=>{const{normalize:n}=r;return n(["えもじをうちこむ"])},custom:r=>{const{normalize:n}=r;return n(["カスタムえもじ"])},unicode:r=>{const{normalize:n}=r;return n(["ユニコードえもじ"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["はじめの ",e(t("saneAmount"))," このえもじだけがロードされています。すべてのえもじをロードすると、パフォーマンスがわるくなるかもしれません。"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["すべてのえもじをロード (",e(t("emojiAmount"))," こあります)"])},unicode_groups:{flags:r=>{const{normalize:n}=r;return n(["はた"])},activities:r=>{const{normalize:n}=r;return n(["かつどう"])},"animals-and-nature":r=>{const{normalize:n}=r;return n(["どうぶつ・しぜん"])},"food-and-drink":r=>{const{normalize:n}=r;return n(["たべもの・のみもの"])},objects:r=>{const{normalize:n}=r;return n(["もの"])},"people-and-body":r=>{const{normalize:n}=r;return n(["ひと・からだ"])},"smileys-and-emotion":r=>{const{normalize:n}=r;return n(["えがお・きもち"])},symbols:r=>{const{normalize:n}=r;return n(["きごう"])},"travel-and-places":r=>{const{normalize:n}=r;return n(["りょこう・ばしょ"])}},regional_indicator:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ばしょをしめすきごう ",e(t("letter"))])}},stickers:{add_sticker:r=>{const{normalize:n}=r;return n(["ステッカーをふやす"])}},interactions:{favs_repeats:r=>{const{normalize:n}=r;return n(["リピートとおきにいり"])},follows:r=>{const{normalize:n}=r;return n(["あたらしいフォロー"])},load_older:r=>{const{normalize:n}=r;return n(["ふるいやりとりをみる"])},emoji_reactions:r=>{const{normalize:n}=r;return n(["えもじリアクション"])},moves:r=>{const{normalize:n}=r;return n(["ユーザーのひっこし"])},reports:r=>{const{normalize:n}=r;return n(["つうほう"])}},post_status:{new_status:r=>{const{normalize:n}=r;return n(["とうこうする"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["あなたのアカウントは ",e(t(0))," ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["ロックされたアカウント"])},attachments_sensitive:r=>{const{normalize:n}=r;return n(["ファイルをNSFWにする"])},content_type:{"text/plain":r=>{const{normalize:n}=r;return n(["プレーンテキスト"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])}},content_warning:r=>{const{normalize:n}=r;return n(["せつめい (かかなくてもよい)"])},default:r=>{const{normalize:n}=r;return n(["はねだくうこうに、つきました。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["このとうこうは、メンションされたすべてのユーザーが、みることができます。"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。"])},direct_warning:r=>{const{normalize:n}=r;return n(["このステータスは、メンションされたユーザーだけが、よむことができます。"])},posting:r=>{const{normalize:n}=r;return n(["とうこう"])},scope_notice:{public:r=>{const{normalize:n}=r;return n(["このとうこうは、だれでもみることができます"])},private:r=>{const{normalize:n}=r;return n(["このとうこうは、あなたのフォロワーだけが、みることができます"])},unlisted:r=>{const{normalize:n}=r;return n(["このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません"])}},scope:{direct:r=>{const{normalize:n}=r;return n(["ダイレクト: メンションされたユーザーのみにとどきます"])},private:r=>{const{normalize:n}=r;return n(["フォロワーげんてい: フォロワーのみにとどきます"])},public:r=>{const{normalize:n}=r;return n(["パブリック: パブリックタイムラインにとどきます"])},unlisted:r=>{const{normalize:n}=r;return n(["アンリステッド: パブリックタイムラインにとどきません"])}},media_description_error:r=>{const{normalize:n}=r;return n(["メディアのアップロードにしっぱいしました。もういちどためしてください"])},edit_status:r=>{const{normalize:n}=r;return n(["ステータスをへんしゅうする"])},media_description:r=>{const{normalize:n}=r;return n(["メディアのせつめい"])},content_type_selection:r=>{const{normalize:n}=r;return n(["とうこうのけいしき"])},edit_remote_warning:r=>{const{normalize:n}=r;return n(["ほかのリモートインスタンスは、へんしゅうをサポートしていないかもしれません。そして、へんしゅうされたとうこうをうけとることができないかもしれません。"])},post:r=>{const{normalize:n}=r;return n(["とうこう"])},edit_unsupported_warning:r=>{const{normalize:n}=r;return n(["Pleroma は、メンションやとうひょうのへんしゅうを、サポートしていません。"])},preview:r=>{const{normalize:n}=r;return n(["プレビュー"])},preview_empty:r=>{const{normalize:n}=r;return n(["なにもありません"])},empty_status_error:r=>{const{normalize:n}=r;return n(["とうこうないようを、にゅうりょくしてください"])},scope_notice_dismiss:r=>{const{normalize:n}=r;return n(["このつうちをとじる"])}},registration:{bio:r=>{const{normalize:n}=r;return n(["プロフィール"])},email:r=>{const{normalize:n}=r;return n(["Eメール"])},fullname:r=>{const{normalize:n}=r;return n(["スクリーンネーム"])},password_confirm:r=>{const{normalize:n}=r;return n(["パスワードのかくにん"])},registration:r=>{const{normalize:n}=r;return n(["はじめる"])},token:r=>{const{normalize:n}=r;return n(["しょうたいトークン"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},new_captcha:r=>{const{normalize:n}=r;return n(["もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります"])},username_placeholder:r=>{const{normalize:n}=r;return n(["れい: lain"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["れい: いわくら れいん"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["れい:\nごきげんよう。わたしはれいん。\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。"])},validations:{username_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},fullname_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},email_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},password_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},password_confirmation_match:r=>{const{normalize:n}=r;return n(["パスワードがちがいます"])},birthday_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},birthday_min_age:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("date"))," か、それよりまえにしてください"])}},reason_placeholder:r=>{const{normalize:n}=r;return n(["このインスタンスでは、ひとがかくにんして、とうろくをうけいれています。\nなぜあなたがとうろくしたいのかを、かんりしているひとに、おしえてください。"])},bio_optional:r=>{const{normalize:n}=r;return n(["プロフィール (かかなくてもよい)"])},reason:r=>{const{normalize:n}=r;return n(["とうろくするりゆう"])},email_optional:r=>{const{normalize:n}=r;return n(["Eメール (かかなくてもよい)"])},register:r=>{const{normalize:n}=r;return n(["とうろくする"])},email_language:r=>{const{normalize:n}=r;return n(["サーバーからのメールは、なにご(どのことば)がいいですか?"])},birthday:r=>{const{normalize:n}=r;return n(["たんじょうび:"])},birthday_optional:r=>{const{normalize:n}=r;return n(["たんじょうび (かかなくてもよい):"])}},remote_user_resolver:{remote_user_resolver:r=>{const{normalize:n}=r;return n(["リモートユーザーリゾルバー"])},searching_for:r=>{const{normalize:n}=r;return n(["さがしています:"])},error:r=>{const{normalize:n}=r;return n(["みつかりませんでした。"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["すべてえらぶ"])}},settings:{app_name:r=>{const{normalize:n}=r;return n(["アプリのなまえ"])},security:r=>{const{normalize:n}=r;return n(["セキュリティ"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください"])},mfa:{otp:r=>{const{normalize:n}=r;return n(["OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["OTPをつくる"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["OTPをよういしています"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["OTPをたしかめて、ゆうこうにする"])},title:r=>{const{normalize:n}=r;return n(["2-ファクターにんしょう"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["あたらしいリカバリーコードをつくる"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。"])},recovery_codes:r=>{const{normalize:n}=r;return n(["リカバリーコード。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["バックアップコードをうけとっています…"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。"])},authentication_methods:r=>{const{normalize:n}=r;return n(["にんしょうメソッド"])},scan:{title:r=>{const{normalize:n}=r;return n(["スキャン"])},desc:r=>{const{normalize:n}=r;return n(["あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:"])},secret_code:r=>{const{normalize:n}=r;return n(["キー"])}},verify:{desc:r=>{const{normalize:n}=r;return n(["2-ファクターにんしょうをつかうには、あなたの2-ファクターアプリのコードをいれてください:"])}}},attachmentRadius:r=>{const{normalize:n}=r;return n(["ファイル"])},attachments:r=>{const{normalize:n}=r;return n(["ファイル"])},avatar:r=>{const{normalize:n}=r;return n(["アバター"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["つうちのアバター"])},avatarRadius:r=>{const{normalize:n}=r;return n(["アバター"])},background:r=>{const{normalize:n}=r;return n(["バックグラウンド"])},bio:r=>{const{normalize:n}=r;return n(["プロフィール"])},block_export:r=>{const{normalize:n}=r;return n(["ブロックのエクスポート"])},block_export_button:r=>{const{normalize:n}=r;return n(["ブロックをCSVファイルにエクスポート"])},block_import:r=>{const{normalize:n}=r;return n(["ブロックのインポート"])},block_import_error:r=>{const{normalize:n}=r;return n(["ブロックのインポートがエラーになりました"])},blocks_imported:r=>{const{normalize:n}=r;return n(["ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。"])},blocks_tab:r=>{const{normalize:n}=r;return n(["ブロック"])},btnRadius:r=>{const{normalize:n}=r;return n(["ボタン"])},cBlue:r=>{const{normalize:n}=r;return n(["リプライとフォロー"])},cGreen:r=>{const{normalize:n}=r;return n(["リピート"])},cOrange:r=>{const{normalize:n}=r;return n(["おきにいり"])},cRed:r=>{const{normalize:n}=r;return n(["キャンセル"])},change_email:r=>{const{normalize:n}=r;return n(["メールアドレスをかえる"])},change_email_error:r=>{const{normalize:n}=r;return n(["メールアドレスをかえようとしましたが、なにかがおかしいです。"])},changed_email:r=>{const{normalize:n}=r;return n(["メールアドレスをかえることができました!"])},change_password:r=>{const{normalize:n}=r;return n(["パスワードをかえる"])},change_password_error:r=>{const{normalize:n}=r;return n(["パスワードをかえることが、できなかったかもしれません。"])},changed_password:r=>{const{normalize:n}=r;return n(["パスワードが、かわりました!"])},collapse_subject:r=>{const{normalize:n}=r;return n(["せつめいのあるとうこうをたたむ"])},composing:r=>{const{normalize:n}=r;return n(["とうこう"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["あたらしいパスワードのかくにん"])},current_avatar:r=>{const{normalize:n}=r;return n(["いまのアバター"])},current_password:r=>{const{normalize:n}=r;return n(["いまのパスワード"])},current_profile_banner:r=>{const{normalize:n}=r;return n(["いまのプロフィールバナー"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["インポートとエクスポート"])},default_vis:r=>{const{normalize:n}=r;return n(["デフォルトのこうかいはんい"])},delete_account:r=>{const{normalize:n}=r;return n(["アカウントをけす"])},delete_account_description:r=>{const{normalize:n}=r;return n(["あなたのアカウントとメッセージが、きえます。"])},delete_account_error:r=>{const{normalize:n}=r;return n(["アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。"])},discoverable:r=>{const{normalize:n}=r;return n(["けんさくなどのサービスで、このアカウントをみつけてもよい"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。"])},pad_emoji:r=>{const{normalize:n}=r;return n(["えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる"])},export_theme:r=>{const{normalize:n}=r;return n(["セーブ"])},filtering:r=>{const{normalize:n}=r;return n(["フィルタリング"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください"])},follow_export:r=>{const{normalize:n}=r;return n(["フォローのエクスポート"])},follow_export_button:r=>{const{normalize:n}=r;return n(["エクスポート"])},follow_export_processing:r=>{const{normalize:n}=r;return n(["おまちください。まもなくファイルをダウンロードできます。"])},follow_import:r=>{const{normalize:n}=r;return n(["フォローインポート"])},follow_import_error:r=>{const{normalize:n}=r;return n(["フォローのインポートがエラーになりました"])},follows_imported:r=>{const{normalize:n}=r;return n(["フォローがインポートされました! すこしじかんがかかるかもしれません。"])},foreground:r=>{const{normalize:n}=r;return n(["フォアグラウンド"])},general:r=>{const{normalize:n}=r;return n(["ぜんぱん"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["スレッドのファイルをかくす"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["タイムラインのファイルをかくす"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["ミュートしたユーザーのとうこうをかくす"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["ひとつのとうこうにいれられるサムネイルのかず"])},hide_isp:r=>{const{normalize:n}=r;return n(["インスタンススペシフィックパネルをかくす"])},preload_images:r=>{const{normalize:n}=r;return n(["がぞうをさきよみする"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["NSFWなファイルを1クリックでひらく"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["とうこうのとうけいをかくす (れい: おきにいりのかず)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["ユーザーのとうけいをかくす (れい: フォロワーのかず)"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["フィルターされたとうこうをかくす"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["CSVファイルからブロックをインポートする"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["CSVファイルからフォローをインポートする"])},import_theme:r=>{const{normalize:n}=r;return n(["ロード"])},inputRadius:r=>{const{normalize:n}=r;return n(["インプットフィールド"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["チェックボックス"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(デフォルト: ",e(t("value")),")"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(デフォルト)"])},interface:r=>{const{normalize:n}=r;return n(["インターフェース"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["インターフェースのことば"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["このファイルはPleromaのテーマではありません。テーマはへんこうされませんでした。"])},limited_availability:r=>{const{normalize:n}=r;return n(["あなたのブラウザではできません"])},links:r=>{const{normalize:n}=r;return n(["リンク"])},lock_account_description:r=>{const{normalize:n}=r;return n(["あなたがみとめたひとだけ、あなたのアカウントをフォローできる"])},loop_video:r=>{const{normalize:n}=r;return n(["ビデオをくりかえす"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["おとのないビデオだけくりかえす"])},mutes_tab:r=>{const{normalize:n}=r;return n(["ミュート"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["ビデオをメディアビューアーでみる"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["がぞうのサムネイルを、きりぬかない"])},name:r=>{const{normalize:n}=r;return n(["なまえ"])},name_bio:r=>{const{normalize:n}=r;return n(["なまえとプロフィール"])},new_email:r=>{const{normalize:n}=r;return n(["あたらしいメールアドレス"])},new_password:r=>{const{normalize:n}=r;return n(["あたらしいパスワード"])},notification_visibility:r=>{const{normalize:n}=r;return n(["ひょうじするつうち"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["フォロー"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["おきにいり"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["メンション"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["リピート"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["リッチテキストをつかわない"])},no_blocks:r=>{const{normalize:n}=r;return n(["ブロックしていません"])},no_mutes:r=>{const{normalize:n}=r;return n(["ミュートしていません"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["フォローしているひとをみせない"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["フォロワーをみせない"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["フォローしているひとのかずをみせない"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["フォロワーのかずをみせない"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["アドミンのしるしをみせる"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["モデレーターのしるしをみせる"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["NSFWなファイルをかくす"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuthトークン"])},token:r=>{const{normalize:n}=r;return n(["トークン"])},refresh_token:r=>{const{normalize:n}=r;return n(["トークンをリフレッシュ"])},valid_until:r=>{const{normalize:n}=r;return n(["おわりのとき"])},revoke_token:r=>{const{normalize:n}=r;return n(["とりけす"])},panelRadius:r=>{const{normalize:n}=r;return n(["パネル"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["タブにフォーカスがないときストリーミングをとめる"])},presets:r=>{const{normalize:n}=r;return n(["プリセット"])},profile_background:r=>{const{normalize:n}=r;return n(["プロフィールのバックグラウンド"])},profile_banner:r=>{const{normalize:n}=r;return n(["プロフィールバナー"])},profile_tab:r=>{const{normalize:n}=r;return n(["プロフィール"])},radii_help:r=>{const{normalize:n}=r;return n(["インターフェースのまるさをせっていする"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["タイムラインのリプライ"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["すべてのリプライをみる"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["わたしにあてられたリプライと、フォローしているひとからのリプライをみる"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["わたしにあてられたリプライをみる"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["あたらしいとうこうのボタンを、じどうてきにかくす (モバイル)"])},saving_err:r=>{const{normalize:n}=r;return n(["せっていをセーブできませんでした"])},saving_ok:r=>{const{normalize:n}=r;return n(["せっていをセーブしました"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["ブロックしたいひとを、ここでけんさくできます"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["ミュートしたいひとを、ここでけんさくできます"])},security_tab:r=>{const{normalize:n}=r;return n(["セキュリティ"])},scope_copy:r=>{const{normalize:n}=r;return n(["リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["こうかいはんいせんたくオプションを、ちいさくする"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["あたらしいアバターをせっていする"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["あたらしいプロフィールのバックグラウンドをせっていする"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["あたらしいプロフィールバナーを設定する"])},settings:r=>{const{normalize:n}=r;return n(["せってい"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["サブジェクトフィールドをいつでもひょうじする"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["リプライするときサブジェクトをコピーする"])},subject_line_email:r=>{const{normalize:n}=r;return n(['メールふう: "re: サブジェクト"'])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["マストドンふう: そのままコピー"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["コピーしない"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["とうこうのコンテントタイプ"])},stop_gifs:r=>{const{normalize:n}=r;return n(["カーソルをかさねたとき、GIFをうごかす"])},streaming:r=>{const{normalize:n}=r;return n(["うえまでスクロールしたとき、じどうてきにストリーミングする"])},text:r=>{const{normalize:n}=r;return n(["もじ"])},theme:r=>{const{normalize:n}=r;return n(["テーマ"])},theme_help:r=>{const{normalize:n}=r;return n(["カラーテーマをカスタマイズできます。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["がぞうをアップロード"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["ツールチップとアラート"])},user_settings:r=>{const{normalize:n}=r;return n(["ユーザーせってい"])},values:{false:r=>{const{normalize:n}=r;return n(["いいえ"])},true:r=>{const{normalize:n}=r;return n(["はい"])}},fun:r=>{const{normalize:n}=r;return n(["おたのしみ"])},greentext:r=>{const{normalize:n}=r;return n(["ミームやじるし"])},notifications:r=>{const{normalize:n}=r;return n(["つうち"])},notification_mutes:r=>{const{normalize:n}=r;return n(["あるユーザーからのつうちをとめるには、ミュートしてください。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["ブロックしているユーザーからのつうちは、すべてとまります。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["ウェブプッシュつうちをゆるす"])},style:{switcher:{keep_color:r=>{const{normalize:n}=r;return n(["いろをのこす"])},keep_shadows:r=>{const{normalize:n}=r;return n(["かげをのこす"])},keep_opacity:r=>{const{normalize:n}=r;return n(["とうめいどをのこす"])},keep_roundness:r=>{const{normalize:n}=r;return n(["まるさをのこす"])},keep_fonts:r=>{const{normalize:n}=r;return n(["フォントをのこす"])},save_load_hint:r=>{const{normalize:n}=r;return n(["「のこす」オプションをONにすると、テーマをえらんだときとロードしたとき、いまのせっていをのこします。また、テーマをエクスポートするとき、これらのオプションをストアします。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべてのせっていをセーブします。"])},reset:r=>{const{normalize:n}=r;return n(["リセット"])},clear_all:r=>{const{normalize:n}=r;return n(["すべてクリア"])},clear_opacity:r=>{const{normalize:n}=r;return n(["とうめいどをクリア"])},help:{older_version_imported:r=>{const{normalize:n}=r;return n(["ふるいバージョンのフロントエンドでつくられたファイルをインポートしました。"])},snapshot_missing:r=>{const{normalize:n}=r;return n(["ファイルにはテーマのスナップショットがありません。おもっていたみためと、ちがうかもしれません。"])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["あんぜんのため、テーマのスナップショットがよみこまれました。テーマのデータをよみこむことができます。"])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["バージョンがただしくないです。フロントエンドのバージョンをもとにもどしたあと、あたらしくしたことが、りゆうかもしれません。ふるいフロントエンドでテーマをへんこうしていたばあい、ふるいバージョンをつかうのがいいです。そうでないばあい、あたらしいバージョンをつかってください。"])},snapshot_present:r=>{const{normalize:n}=r;return n(["テーマのスナップショットをよみこみました。せっていはうわがきされました。かわりに、テーマのじっさいのデータをよみこむことができます。"])},fe_upgraded:r=>{const{normalize:n}=r;return n(["フロントエンドといっしょに、テーマエンジンもあたらしくなりました。"])},fe_downgraded:r=>{const{normalize:n}=r;return n(["フロントエンドが、まえのバージョンにもどりました。"])},migration_napshot_gone:r=>{const{normalize:n}=r;return n(["スナップショットがありません。おぼえているみためと、ちがうかもしれません。"])},upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFEがあたらしくなったので、いままでのみためとすこしちがうかもしれません。"])},v2_imported:r=>{const{normalize:n}=r;return n(["ふるいフロントエンドのためのファイルをインポートしました。せっていしたのとは、すこしちがうかもしれません。"])},future_version_imported:r=>{const{normalize:n}=r;return n(["あたらしいフロントエンドでつくられたファイルをインポートしました。"])}},load_theme:r=>{const{normalize:n}=r;return n(["テーマをよみこむ"])},keep_as_is:r=>{const{normalize:n}=r;return n(["そのままにする"])},use_snapshot:r=>{const{normalize:n}=r;return n(["ふるいバージョン"])},use_source:r=>{const{normalize:n}=r;return n(["あたらしいバージョン"])}},common:{color:r=>{const{normalize:n}=r;return n(["いろ"])},opacity:r=>{const{normalize:n}=r;return n(["とうめいど"])},contrast:{hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["コントラストは ",e(t("ratio"))," です。",e(t("level")),"。(",e(t("context")),")"])},level:{aa:r=>{const{normalize:n}=r;return n(["AAレベルガイドライン (ミニマル) をみたします"])},aaa:r=>{const{normalize:n}=r;return n(["AAAレベルガイドライン (レコメンデッド) をみたします"])},bad:r=>{const{normalize:n}=r;return n(["ガイドラインをみたしません"])}},context:{"18pt":r=>{const{normalize:n}=r;return n(["おおきい (18ポイントいじょう) テキスト"])},text:r=>{const{normalize:n}=r;return n(["テキスト"])}}}},common_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["きょうつう"])},main:r=>{const{normalize:n}=r;return n(["きょうつうのいろ"])},foreground_hint:r=>{const{normalize:n}=r;return n(["「くわしく」タブで、もっとこまかくせっていできます"])},rgbo:r=>{const{normalize:n}=r;return n(["アイコンとアクセントとバッジ"])}},advanced_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["くわしく"])},alert:r=>{const{normalize:n}=r;return n(["アラートのバックグラウンド"])},alert_error:r=>{const{normalize:n}=r;return n(["エラー"])},alert_warning:r=>{const{normalize:n}=r;return n(["けいこく"])},badge:r=>{const{normalize:n}=r;return n(["バッジのバックグラウンド"])},badge_notification:r=>{const{normalize:n}=r;return n(["つうち"])},panel_header:r=>{const{normalize:n}=r;return n(["パネルヘッダー"])},top_bar:r=>{const{normalize:n}=r;return n(["トップバー"])},borders:r=>{const{normalize:n}=r;return n(["さかいめ"])},buttons:r=>{const{normalize:n}=r;return n(["ボタン"])},inputs:r=>{const{normalize:n}=r;return n(["インプットフィールド"])},faint_text:r=>{const{normalize:n}=r;return n(["うすいテキスト"])},post:r=>{const{normalize:n}=r;return n(["とうこう / プロフィール"])},wallpaper:r=>{const{normalize:n}=r;return n(["かべがみ"])},icons:r=>{const{normalize:n}=r;return n(["アイコン"])},highlight:r=>{const{normalize:n}=r;return n(["よくみえるようにした、ようそ"])},pressed:r=>{const{normalize:n}=r;return n(["おしたとき"])},chat:{border:r=>{const{normalize:n}=r;return n(["さかいめ"])},incoming:r=>{const{normalize:n}=r;return n(["うけとったもの"])},outgoing:r=>{const{normalize:n}=r;return n(["おくったもの"])}},underlay:r=>{const{normalize:n}=r;return n(["アンダーレイ"])},alert_neutral:r=>{const{normalize:n}=r;return n(["それいがい"])},popover:r=>{const{normalize:n}=r;return n(["ツールチップ、メニュー、ポップオーバー"])},poll:r=>{const{normalize:n}=r;return n(["とうひょうのグラフ"])},selectedPost:r=>{const{normalize:n}=r;return n(["えらんだとうこう"])},selectedMenu:r=>{const{normalize:n}=r;return n(["えらんだメニューアイテム"])},disabled:r=>{const{normalize:n}=r;return n(["つかえないとき"])},toggled:r=>{const{normalize:n}=r;return n(["きりかえたとき"])},tabs:r=>{const{normalize:n}=r;return n(["タブ"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["まるさ"])}},shadows:{_tab_label:r=>{const{normalize:n}=r;return n(["ひかりとかげ"])},component:r=>{const{normalize:n}=r;return n(["コンポーネント"])},override:r=>{const{normalize:n}=r;return n(["オーバーライド"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["かげ #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["ぼかし"])},spread:r=>{const{normalize:n}=r;return n(["ひろがり"])},inset:r=>{const{normalize:n}=r;return n(["うちがわ"])},hint:r=>{const{normalize:n}=r;return n(["かげのせっていでは、いろのあたいとして --variable をつかうことができます。これはCSS3へんすうです。ただし、とうめいどのせっていは、きかなくなります。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["ブラウザーがサポートしていれば、つねに ",e(t(0))," がつかわれます。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," は、",e(t(1))," パラメーターと ",e(t(2))," キーワードをサポートしていません。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。"])},spread_zero:r=>{const{normalize:n}=r;return n(["ひろがりが 0 よりもおおきなかげは、0 とおなじです"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["うちがわのかげは ",e(t(0))," をつかいます"])}},components:{panel:r=>{const{normalize:n}=r;return n(["パネル"])},panelHeader:r=>{const{normalize:n}=r;return n(["パネルヘッダー"])},topBar:r=>{const{normalize:n}=r;return n(["トップバー"])},avatar:r=>{const{normalize:n}=r;return n(["ユーザーアバター (プロフィール)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["ユーザーアバター (とうこう)"])},popup:r=>{const{normalize:n}=r;return n(["ポップアップとツールチップ"])},button:r=>{const{normalize:n}=r;return n(["ボタン"])},buttonHover:r=>{const{normalize:n}=r;return n(["ボタン (ホバー)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["ボタン (おされているとき)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["ボタン (ホバー、かつ、おされているとき)"])},input:r=>{const{normalize:n}=r;return n(["インプットフィールド"])}},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["かげのばあいは、 ",e(t(0))," というかきかたをつかうことができます。そうすると、ほかのいろのスロットをつかうことができます。"])}},fonts:{_tab_label:r=>{const{normalize:n}=r;return n(["フォント"])},help:r=>{const{normalize:n}=r;return n(["「カスタム」をえらんだときは、システムにあるフォントのなまえを、ただしくにゅうりょくしてください。"])},components:{interface:r=>{const{normalize:n}=r;return n(["インターフェース"])},input:r=>{const{normalize:n}=r;return n(["インプットフィールド"])},post:r=>{const{normalize:n}=r;return n(["とうこう"])},postCode:r=>{const{normalize:n}=r;return n(["モノスペース (とうこうがリッチテキストであるとき)"])}},family:r=>{const{normalize:n}=r;return n(["フォントめい"])},size:r=>{const{normalize:n}=r;return n(["おおきさ (px)"])},weight:r=>{const{normalize:n}=r;return n(["ふとさ"])},custom:r=>{const{normalize:n}=r;return n(["カスタム"])}},preview:{header:r=>{const{normalize:n}=r;return n(["プレビュー"])},content:r=>{const{normalize:n}=r;return n(["ほんぶん"])},error:r=>{const{normalize:n}=r;return n(["エラーのれい"])},button:r=>{const{normalize:n}=r;return n(["ボタン"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["これは",e(t(0)),"と",e(t(1)),"のれいです"])},mono:r=>{const{normalize:n}=r;return n(["monospace"])},input:r=>{const{normalize:n}=r;return n(["はねだくうこうに、つきました。"])},faint_link:r=>{const{normalize:n}=r;return n(["とてもたすけになるマニュアル"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["わたしたちの",e(t(0)),"を、よまないでください!"])},header_faint:r=>{const{normalize:n}=r;return n(["エラーではありません"])},checkbox:r=>{const{normalize:n}=r;return n(["りようきやくを、よみました"])},link:r=>{const{normalize:n}=r;return n(["ハイパーリンク"])}}},version:{title:r=>{const{normalize:n}=r;return n(["バージョン"])},backend_version:r=>{const{normalize:n}=r;return n(["バックエンドのバージョン"])},frontend_version:r=>{const{normalize:n}=r;return n(["フロントエンドのバージョン"])}},notification_visibility_polls:r=>{const{normalize:n}=r;return n(["あなたがさんかしたとうひょうが、おわりました"])},setting_server_side:r=>{const{normalize:n}=r;return n(["このせっていは、あなたのプロフィールについてのものです。へんこうすると、すべてのセッションとクライアントにえいきょうします"])},mute_import_error:r=>{const{normalize:n}=r;return n(["ミュートのインポートが、エラーになりました"])},account_backup_description:r=>{const{normalize:n}=r;return n(["あなたのアカウントじょうほうや、とうこうのアーカイブを、ダウンロードすることができます。しかし、 Pleroma アカウントにインポートすることはまだできません。"])},list_backups_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["バックアップリストをとりにいくことが、エラーになりました: ",e(t("error"))])},list_aliases_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["エイリアスをとりにいくときに、エラーになりました: ",e(t("error"))])},added_alias:r=>{const{normalize:n}=r;return n(["エイリアスをつくりました。"])},move_account_notes:r=>{const{normalize:n}=r;return n(["もしあなたがアカウントをほかのインスタンスにひっこしたいのなら、ひっこすさきのアカウントからここへのエイリアスをつくってください。"])},file_export_import:{backup_settings_theme:r=>{const{normalize:n}=r;return n(["せっていとテーマをファイルにバックアップする"])},restore_settings:r=>{const{normalize:n}=r;return n(["ファイルからせっていをもとにもどす"])},errors:{file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["メジャーバージョン(",e(t("fileMajor")),")がちがいます。この PleromaFE (せっていのバージョン ",e(t("feMajor")),") はふるいので、つかうことができません"])},file_slightly_new:r=>{const{normalize:n}=r;return n(["ファイルのマイナーバージョンがちがっています。いくつかのせっていは、よみこまれないかもしれません"])},invalid_file:r=>{const{normalize:n}=r;return n(["これは Pleroma のせっていをバックアップしたファイルではありません。"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["メジャーバージョン(",e(t("fileMajor")),")がちがいます。ファイルのバージョンが古いので、使うことができません(バージョン ",e(t("feMajor"))," いじょうのせっていバージョンをつかってください)"])}},backup_settings:r=>{const{normalize:n}=r;return n(["せっていをファイルにバックアップする"])},backup_restore:r=>{const{normalize:n}=r;return n(["せっていのバックアップ"])}},hide_wallpaper:r=>{const{normalize:n}=r;return n(["このインスタンスのバックグラウンドをかくす"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["わたしのフォローしているひとにあてられたリプライをみる"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["じぶんにあてられたリプライだけをみる"])},save:r=>{const{normalize:n}=r;return n(["へんこうをほぞんする"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、バナーをリセットしますか?"])},tree_advanced:r=>{const{normalize:n}=r;return n(["ツリービューで、ナビゲーションをもっとじゅうなんにする"])},third_column_mode:r=>{const{normalize:n}=r;return n(["じゅうぶんなくうかんがあれば、3ばんめのれつをひょうじする"])},conversation_other_replies_button:r=>{const{normalize:n}=r;return n(["「ほかのリプライ」ボタンをひょうじするばしょ"])},user_popover_avatar_action_open:r=>{const{normalize:n}=r;return n(["プロフィールをひらく"])},notification_setting_filters:r=>{const{normalize:n}=r;return n(["フィルター"])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["おくったひとと、ないようを、プッシュつうちにひょうじしない"])},backup_running:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["バックアップしています。",e(t("number")),"このデータをしょりしました。"])},word_filter_and_more:r=>{const{normalize:n}=r;return n(["ことばのフィルターと、そのほか…"])},account_privacy:r=>{const{normalize:n}=r;return n(["プライバシー"])},posts:r=>{const{normalize:n}=r;return n(["とうこう"])},move_account:r=>{const{normalize:n}=r;return n(["アカウントをひっこす"])},move_account_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ひっこしさきのアカウント (れい: ",e(t("example")),")"])},mute_bot_posts:r=>{const{normalize:n}=r;return n(["Bot のとうこうをミュートする"])},hide_bot_indication:r=>{const{normalize:n}=r;return n(["Bot によるとうこうであることを、とうこうにひょうじしない"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["ミュートしたとうこうをかくす"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["Shoutbox をかくす"])},conversation_display_tree:r=>{const{normalize:n}=r;return n(["ツリーけいしき"])},mention_link_display_full_for_remote:r=>{const{normalize:n}=r;return n(["リモートユーザーだけ、ながいなまえでひょうじする (れい: ","@","hoge","@","example.org)"])},mention_link_bolden_you:r=>{const{normalize:n}=r;return n(["あなたがメンションされたとき、あなたへのメンションを、よくみえるようにする"])},user_popover_avatar_action:r=>{const{normalize:n}=r;return n(["ポップオーバーのアバターをクリックしたとき"])},user_popover_avatar_action_zoom:r=>{const{normalize:n}=r;return n(["アバターをおおきくする"])},user_popover_avatar_action_close:r=>{const{normalize:n}=r;return n(["ポップオーバーをとじる"])},always_show_post_button:r=>{const{normalize:n}=r;return n(["とうこうボタンをいつもひょうじする"])},auto_update:r=>{const{normalize:n}=r;return n(["あたらしいとうこうを、じどうてきにみせる"])},user_mutes:r=>{const{normalize:n}=r;return n(["ユーザー"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["とうこうとつうちを、リアルタイムにうけとる"])},use_websockets:r=>{const{normalize:n}=r;return n(["Websockets をつかう (リアルタイムアップデート)"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["ミュートとブロック"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["えもじリアクションをタイムラインにひょうじする"])},accent:r=>{const{normalize:n}=r;return n(["アクセント"])},domain_mutes:r=>{const{normalize:n}=r;return n(["ドメイン"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["CSVファイルからミュートをインポートする"])},reset_avatar:r=>{const{normalize:n}=r;return n(["アバターをリセットする"])},remove_language:r=>{const{normalize:n}=r;return n(["とりのぞく"])},primary_language:r=>{const{normalize:n}=r;return n(["いちばんわかることば:"])},add_language:r=>{const{normalize:n}=r;return n(["よびとしてつかうことばを、ついかする"])},fallback_language:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["よびとしてつかうことば ",e(t("index")),":"])},lists_navigation:r=>{const{normalize:n}=r;return n(["ナビゲーションにリストをひょうじする"])},account_alias:r=>{const{normalize:n}=r;return n(["アカウントのエイリアス"])},mention_link_display_full:r=>{const{normalize:n}=r;return n(["いつも、ながいなまえをひょうじする (れい: ","@","hoge","@","example.org)"])},setting_changed:r=>{const{normalize:n}=r;return n(["せっていは、デフォルトとちがっています"])},email_language:r=>{const{normalize:n}=r;return n(["サーバーからうけとるEメールのことば"])},mute_export:r=>{const{normalize:n}=r;return n(["ミュートのエクスポート"])},mute_export_button:r=>{const{normalize:n}=r;return n(["あなたのミュートを、 CSV ファイルにエクスポートします"])},mute_import:r=>{const{normalize:n}=r;return n(["ミュートのインポート"])},mutes_imported:r=>{const{normalize:n}=r;return n(["ミュートをインポートしました!すこしじかんがかかるかもしれません。"])},account_backup:r=>{const{normalize:n}=r;return n(["アカウントのバックアップ"])},account_backup_table_head:r=>{const{normalize:n}=r;return n(["バックアップ"])},download_backup:r=>{const{normalize:n}=r;return n(["ダウンロード"])},backup_not_ready:r=>{const{normalize:n}=r;return n(["バックアップのじゅんびが、まだできていません。"])},backup_failed:r=>{const{normalize:n}=r;return n(["バックアップにしっぱいしました。"])},remove_backup:r=>{const{normalize:n}=r;return n(["とりのぞく"])},add_backup:r=>{const{normalize:n}=r;return n(["あたらしいバックアップをつくる"])},added_backup:r=>{const{normalize:n}=r;return n(["あたらしいバックアップをつくりました。"])},add_backup_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["あたらしいバックアップをつくるときに、エラーになりました: ",e(t("error"))])},bot:r=>{const{normalize:n}=r;return n(["これは bot アカウントです"])},account_alias_table_head:r=>{const{normalize:n}=r;return n(["エイリアス"])},hide_list_aliases_error_action:r=>{const{normalize:n}=r;return n(["とじる"])},remove_alias:r=>{const{normalize:n}=r;return n(["このエイリアスをけす"])},add_alias_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["エイリアスをつくるときに、エラーになりました: ",e(t("error"))])},new_alias_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["あたらしいエイリアスをつくる (れい: ",e(t("example")),")"])},moved_account:r=>{const{normalize:n}=r;return n(["アカウントをひっこしました。"])},move_account_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["アカウントをひっこしているときに、エラーになりました: ",e(t("error"))])},wordfilter:r=>{const{normalize:n}=r;return n(["ことばのフィルター"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["メディアのプレビューをかくす"])},right_sidebar:r=>{const{normalize:n}=r;return n(["サイドバーをみぎにひょうじする"])},hide_wordfiltered_statuses:r=>{const{normalize:n}=r;return n(["ことばのフィルターでフィルターされたステータスをかくす"])},hide_muted_threads:r=>{const{normalize:n}=r;return n(["ミュートされたスレッドをかくす"])},navbar_column_stretch:r=>{const{normalize:n}=r;return n(["ナビゲーションバーをれつのはばまでのばす"])},birthday:{label:r=>{const{normalize:n}=r;return n(["たんじょうび"])},show_birthday:r=>{const{normalize:n}=r;return n(["たんじょうびを、ひょうじする"])}},profile_fields:{label:r=>{const{normalize:n}=r;return n(["プロフィールのメタデータ"])},add_field:r=>{const{normalize:n}=r;return n(["フィールドをふやす"])},name:r=>{const{normalize:n}=r;return n(["ラベル"])},value:r=>{const{normalize:n}=r;return n(["ないよう"])}},user_profiles:r=>{const{normalize:n}=r;return n(["ユーザープロフィール"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["ユーザーのひっこし"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["リアクション"])},hide_favorites_description:r=>{const{normalize:n}=r;return n(["おきにいりのリストをみせない (つうちはおくられます)"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["プロフィールバックグラウンドをリセットする"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["プロフィールバナーをリセットする"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、アバターをリセットしますか?"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、バックグラウンドをリセットしますか?"])},column_sizes_sidebar:r=>{const{normalize:n}=r;return n(["サイドバー"])},column_sizes_notifs:r=>{const{normalize:n}=r;return n(["つうち"])},columns:r=>{const{normalize:n}=r;return n(["れつ"])},column_sizes:r=>{const{normalize:n}=r;return n(["れつのおおきさ"])},column_sizes_content:r=>{const{normalize:n}=r;return n(["コンテンツ"])},conversation_display:r=>{const{normalize:n}=r;return n(["スレッドのひょうじけいしき"])},conversation_display_linear:r=>{const{normalize:n}=r;return n(["リニアけいしき"])},conversation_display_linear_quick:r=>{const{normalize:n}=r;return n(["リニアビュー"])},show_scrollbars:r=>{const{normalize:n}=r;return n(["よこのれつにスクロールバーをひょうじする"])},third_column_mode_none:r=>{const{normalize:n}=r;return n(["3ばんめのれつをひょうじしない"])},third_column_mode_postform:r=>{const{normalize:n}=r;return n(["とうこうフォームとナビゲーション"])},third_column_mode_notifications:r=>{const{normalize:n}=r;return n(["つうちのれつをひょうじする"])},tree_fade_ancestors:r=>{const{normalize:n}=r;return n(["げんざいのステータスのおやを、うすいいろのもじでひょうじする"])},conversation_other_replies_button_below:r=>{const{normalize:n}=r;return n(["ステータスのした"])},conversation_other_replies_button_inside:r=>{const{normalize:n}=r;return n(["ステータスのなか"])},max_depth_in_thread:r=>{const{normalize:n}=r;return n(["デフォルトでひょうじするスレッドのふかさ"])},sensitive_by_default:r=>{const{normalize:n}=r;return n(["デフォルトで、とうこうをNSFWにする"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["ミュートしたいドメインを、ここでけんさくできます"])},mention_link_use_tooltip:r=>{const{normalize:n}=r;return n(["メンションのリンクをクリックしたとき、ユーザーカードをみせる"])},mention_link_show_avatar:r=>{const{normalize:n}=r;return n(["ユーザーのアバターをリンクのよこにひょうじする"])},mention_link_show_avatar_quick:r=>{const{normalize:n}=r;return n(["ユーザーのアバターをメンションのとなりにひょうじする"])},mention_link_fade_domain:r=>{const{normalize:n}=r;return n(["ドメイン(れい: ","@","hoge","@","example.org のなかの ","@","example.org)を、うすいいろにする"])},user_popover_avatar_overlay:r=>{const{normalize:n}=r;return n(["ユーザーのポップオーバーを、ユーザーのアバターのうえにひょうじする"])},show_yous:r=>{const{normalize:n}=r;return n(["(あなた)をひょうじする"])},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["フォローしていないユーザーからのつうちをブロックする"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["プライバシー"])},more_settings:r=>{const{normalize:n}=r;return n(["そのたのせってい"])},expert_mode:r=>{const{normalize:n}=r;return n(["くわしいせっていを、ひょうじする"])},mention_links:r=>{const{normalize:n}=r;return n(["メンションのリンク"])},post_look_feel:r=>{const{normalize:n}=r;return n(["とうこうのみためとかんかく"])},allow_following_move:r=>{const{normalize:n}=r;return n(["フォローしているアカウントがインスタンスをひっこしたばあい、じどうでフォローしてもよい"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["チャットメッセージ"])},confirm_dialogs:r=>{const{normalize:n}=r;return n(["つぎのばあいに、かくにんをする"])},confirm_dialogs_repeat:r=>{const{normalize:n}=r;return n(["ステータスをリピートするとき"])},confirm_dialogs_unfollow:r=>{const{normalize:n}=r;return n(["ユーザーのフォローをはずすとき"])},confirm_dialogs_block:r=>{const{normalize:n}=r;return n(["ユーザーをブロックするとき"])},confirm_dialogs_mute:r=>{const{normalize:n}=r;return n(["ユーザーをミュートするとき"])},confirm_dialogs_delete:r=>{const{normalize:n}=r;return n(["ステータスをけすとき"])},confirm_dialogs_logout:r=>{const{normalize:n}=r;return n(["ログアウトするとき"])},confirm_dialogs_approve_follow:r=>{const{normalize:n}=r;return n(["フォローをうけいれるとき"])},confirm_dialogs_deny_follow:r=>{const{normalize:n}=r;return n(["フォローをことわるとき"])},confirm_dialogs_remove_follower:r=>{const{normalize:n}=r;return n(["フォロワーをとりのぞくとき"])},conversation_display_tree_quick:r=>{const{normalize:n}=r;return n(["ツリービュー"])},disable_sticky_headers:r=>{const{normalize:n}=r;return n(["れつのヘッダーを、がめんのいちばんうえにこていしない"])},virtual_scrolling:r=>{const{normalize:n}=r;return n(["タイムラインのレンダリングをよくする"])},use_at_icon:r=>{const{normalize:n}=r;return n(["@"," きごうを、もじのかわりに、アイコンでひょうじする"])},mention_link_display_short:r=>{const{normalize:n}=r;return n(["いつも、みじかいなまえにする (れい: ","@","hoge)"])},mention_link_display:r=>{const{normalize:n}=r;return n(["メンションのリンクをひょうじするけいしき"])}},time:{day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"で"])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},now:r=>{const{normalize:n}=r;return n(["たった今"])},now_short:r=>{const{normalize:n}=r;return n(["たった今"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])},unit:{minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ふん"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"びょう"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"しゅうかん"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"しゅう"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ねん"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ねん"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"にち"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"にち"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"じかん"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"じかん"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ふん"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"かげつ"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"かげつ"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"びょう"])}}},timeline:{collapse:r=>{const{normalize:n}=r;return n(["たたむ"])},conversation:r=>{const{normalize:n}=r;return n(["スレッド"])},error_fetching:r=>{const{normalize:n}=r;return n(["よみこみがエラーになりました"])},load_older:r=>{const{normalize:n}=r;return n(["ふるいステータス"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります"])},repeated:r=>{const{normalize:n}=r;return n(["リピート"])},show_new:r=>{const{normalize:n}=r;return n(["よみこみ"])},up_to_date:r=>{const{normalize:n}=r;return n(["さいしん"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["これでおわりです"])},no_statuses:r=>{const{normalize:n}=r;return n(["ありません"])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["コード",e(t(0)),"により、リアルタイムでつながることがなくなりました"])},socket_reconnected:r=>{const{normalize:n}=r;return n(["リアルタイムでつながることを、つくりました"])},reload:r=>{const{normalize:n}=r;return n(["もういちど、よみこむ"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["タイムラインをとりにいくときに、エラーになりました: ",e(t(0))])}},status:{favorites:r=>{const{normalize:n}=r;return n(["おきにいり"])},repeats:r=>{const{normalize:n}=r;return n(["リピート"])},delete:r=>{const{normalize:n}=r;return n(["ステータスをけす"])},pin:r=>{const{normalize:n}=r;return n(["プロフィールにピンどめする"])},unpin:r=>{const{normalize:n}=r;return n(["プロフィールにピンどめするのをやめる"])},pinned:r=>{const{normalize:n}=r;return n(["ピンどめ"])},delete_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、このステータスを、けしてもいいですか?"])},reply_to:r=>{const{normalize:n}=r;return n(["へんしん:"])},replies_list:r=>{const{normalize:n}=r;return n(["へんしん:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["スレッドをミュートする"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["スレッドをミュートするのをやめる"])},repeat_confirm_title:r=>{const{normalize:n}=r;return n(["リピートのかくにん"])},mentions:r=>{const{normalize:n}=r;return n(["メンション"])},thread_muted:r=>{const{normalize:n}=r;return n(["ミュートされたスレッド"])},collapse_attachments:r=>{const{normalize:n}=r;return n(["ファイルをかくす"])},remove_attachment:r=>{const{normalize:n}=r;return n(["ファイルをとりのぞく"])},thread_show_full:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["このスレッドのすべてのとうこうをみる (ぜんぶで",e(t("numStatus")),"このステータス、ふかさ",e(t("depth")),")"])},show_all_attachments:r=>{const{normalize:n}=r;return n(["すべてのファイルをみる"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["かくす"])},nsfw:r=>{const{normalize:n}=r;return n(["NSFW"])},hide_content:r=>{const{normalize:n}=r;return n(["かくす"])},status_deleted:r=>{const{normalize:n}=r;return n(["このとうこうは、けされました"])},you:r=>{const{normalize:n}=r;return n(["(あなた)"])},expand:r=>{const{normalize:n}=r;return n(["ひろげる"])},repeat_confirm_accept_button:r=>{const{normalize:n}=r;return n(["リピートする"])},repeat_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["リピートしない"])},edited_at:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(",e(t("time"))," まえにへんしゅう)"])},delete_confirm_title:r=>{const{normalize:n}=r;return n(["けすことのかくにん"])},delete_confirm_accept_button:r=>{const{normalize:n}=r;return n(["けす"])},delete_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["のこす"])},edit:r=>{const{normalize:n}=r;return n(["ステータスをへんしゅうする"])},bookmark:r=>{const{normalize:n}=r;return n(["ブックマークする"])},unbookmark:r=>{const{normalize:n}=r;return n(["ブックマークをはずす"])},replies_list_with_others:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["へんしん (ほかに +",e(t("numReplies")),"こ):"])},status_unavailable:r=>{const{normalize:n}=r;return n(["ステータスがありません"])},copy_link:r=>{const{normalize:n}=r;return n(["リンクをコピー"])},external_source:r=>{const{normalize:n}=r;return n(["そとにあるソース"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n(["つぎのことばをふくむので:"])},show_content:r=>{const{normalize:n}=r;return n(["みる"])},plus_more:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["あと ",e(t("number")),"こ"])},many_attachments:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["とうこうには、",e(t("number")),"このファイルがついています"])},show_attachment_in_modal:r=>{const{normalize:n}=r;return n(["メディアモーダルでみる"])},show_attachment_description:r=>{const{normalize:n}=r;return n(["せつめいのプレビュー (ぜんぶみるには、ファイルをひらいてください)"])},hide_attachment:r=>{const{normalize:n}=r;return n(["ファイルをかくす"])},attachment_stop_flash:r=>{const{normalize:n}=r;return n(["Flash プレーヤーをとめる"])},move_up:r=>{const{normalize:n}=r;return n(["ファイルをひだりにうごかす"])},move_down:r=>{const{normalize:n}=r;return n(["ファイルをみぎにうごかす"])},open_gallery:r=>{const{normalize:n}=r;return n(["ギャラリーをひらく"])},thread_hide:r=>{const{normalize:n}=r;return n(["スレッドをかくす"])},thread_show:r=>{const{normalize:n}=r;return n(["スレッドをみる"])},show_full_subject:r=>{const{normalize:n}=r;return n(["すべてをみる"])},repeat_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、このステータスをリピートしますか?"])},show_all_conversation:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["このスレッドをぜんぶみる (あと ",e(t("numStatus")),"このステータス)"])},show_only_conversation_under_this:r=>{const{normalize:n}=r;return n(["このステータスへのへんしんだけをみる"])},status_history:r=>{const{normalize:n}=r;return n(["ステータスのれきし"])},thread_show_full_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},thread_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["のこりのとうこうをみる (ぜんぶで ",e(t("numStatus")),"このステータス)"])},thread_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},ancestor_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["このステータスよりしたの、",e(t("numReplies")),"このへんしんをみる"])},ancestor_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])}},user_card:{approve:r=>{const{normalize:n}=r;return n(["うけいれ"])},block:r=>{const{normalize:n}=r;return n(["ブロック"])},blocked:r=>{const{normalize:n}=r;return n(["ブロックしています!"])},deny:r=>{const{normalize:n}=r;return n(["おことわり"])},favorites:r=>{const{normalize:n}=r;return n(["おきにいり"])},follow:r=>{const{normalize:n}=r;return n(["フォロー"])},follow_sent:r=>{const{normalize:n}=r;return n(["リクエストを、おくりました!"])},follow_progress:r=>{const{normalize:n}=r;return n(["リクエストしています…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["フォローをやめる"])},followees:r=>{const{normalize:n}=r;return n(["フォロー"])},followers:r=>{const{normalize:n}=r;return n(["フォロワー"])},following:r=>{const{normalize:n}=r;return n(["フォローしています!"])},follows_you:r=>{const{normalize:n}=r;return n(["フォローされました!"])},hidden:r=>{const{normalize:n}=r;return n(["かくされています"])},its_you:r=>{const{normalize:n}=r;return n(["これはあなたです!"])},media:r=>{const{normalize:n}=r;return n(["メディア"])},mention:r=>{const{normalize:n}=r;return n(["メンション"])},mute:r=>{const{normalize:n}=r;return n(["ミュート"])},muted:r=>{const{normalize:n}=r;return n(["ミュートしています"])},per_day:r=>{const{normalize:n}=r;return n(["/日"])},remote_follow:r=>{const{normalize:n}=r;return n(["リモートフォロー"])},report:r=>{const{normalize:n}=r;return n(["つうほう"])},statuses:r=>{const{normalize:n}=r;return n(["ステータス"])},subscribe:r=>{const{normalize:n}=r;return n(["サブスクライブ"])},unsubscribe:r=>{const{normalize:n}=r;return n(["サブスクライブをやめる"])},unblock:r=>{const{normalize:n}=r;return n(["ブロックをやめる"])},unblock_progress:r=>{const{normalize:n}=r;return n(["ブロックをとりけしています…"])},block_progress:r=>{const{normalize:n}=r;return n(["ブロックしています…"])},unmute:r=>{const{normalize:n}=r;return n(["ミュートをやめる"])},unmute_progress:r=>{const{normalize:n}=r;return n(["ミュートをとりけしています…"])},mute_progress:r=>{const{normalize:n}=r;return n(["ミュートしています…"])},hide_repeats:r=>{const{normalize:n}=r;return n(["リピートをかくす"])},show_repeats:r=>{const{normalize:n}=r;return n(["リピートをみる"])},admin_menu:{moderation:r=>{const{normalize:n}=r;return n(["モデレーション"])},grant_admin:r=>{const{normalize:n}=r;return n(["アドミンにする"])},revoke_admin:r=>{const{normalize:n}=r;return n(["アドミンをやめさせる"])},grant_moderator:r=>{const{normalize:n}=r;return n(["モデレーターにする"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["モデレーターをやめさせる"])},activate_account:r=>{const{normalize:n}=r;return n(["アカウントをアクティブにする"])},deactivate_account:r=>{const{normalize:n}=r;return n(["アカウントをアクティブでなくする"])},delete_account:r=>{const{normalize:n}=r;return n(["アカウントをけす"])},force_nsfw:r=>{const{normalize:n}=r;return n(["すべてのとうこうをNSFWにする"])},strip_media:r=>{const{normalize:n}=r;return n(["とうこうからメディアをなくす"])},force_unlisted:r=>{const{normalize:n}=r;return n(["とうこうをアンリステッドにする"])},sandbox:r=>{const{normalize:n}=r;return n(["とうこうをフォロワーのみにする"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["ほかのインスタンスからフォローされないようにする"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["フォローされないようにする"])},quarantine:r=>{const{normalize:n}=r;return n(["ほかのインスタンスのユーザーのとうこうをとめる"])},delete_user:r=>{const{normalize:n}=r;return n(["ユーザーをけす"])},delete_user_data_and_deactivate_confirmation:r=>{const{normalize:n}=r;return n(["これをすると、このアカウントのデータがきえて、にどとつかえなくなります。ほんとうに、していいですか?"])}},mute_confirm_accept_button:r=>{const{normalize:n}=r;return n(["ミュートする"])},unfollow_confirm_title:r=>{const{normalize:n}=r;return n(["フォローをやめることのかくにん"])},mute_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ほんとうに、 ",e(t("user"))," をミュートしますか?"])},mute_duration_prompt:r=>{const{normalize:n}=r;return n(["このユーザーをつぎのじかんだけミュートする (0にすると、おわりがありません):"])},edit_note_apply:r=>{const{normalize:n}=r;return n(["てきよう"])},block_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ほんとうに、 ",e(t("user"))," をブロックしますか?"])},deactivated:r=>{const{normalize:n}=r;return n(["つかえない"])},remove_follower:r=>{const{normalize:n}=r;return n(["フォロワーをとりのぞく"])},highlight:{solid:r=>{const{normalize:n}=r;return n(["バッググラウンドをひとつのいろにする"])},striped:r=>{const{normalize:n}=r;return n(["しまもようのバックグラウンドにする"])},side:r=>{const{normalize:n}=r;return n(["はじにせんをつける"])},disabled:r=>{const{normalize:n}=r;return n(["めだたせない"])}},mute_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["ミュートしない"])},unfollow_confirm_accept_button:r=>{const{normalize:n}=r;return n(["フォローをやめる"])},unfollow_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ほんとうに、 ",e(t("user"))," のフォローをやめますか?"])},unfollow_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["フォローしたままにする"])},mute_confirm_title:r=>{const{normalize:n}=r;return n(["ミュートのかくにん"])},block_confirm_accept_button:r=>{const{normalize:n}=r;return n(["ブロックする"])},block_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["ブロックしない"])},deny_confirm_title:r=>{const{normalize:n}=r;return n(["おことわりのかくにん"])},deny_confirm_accept_button:r=>{const{normalize:n}=r;return n(["ことわる"])},deny_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["ことわらない"])},deny_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("user"))," のフォローリクエストをことわりますか?"])},follow_cancel:r=>{const{normalize:n}=r;return n(["リクエストをキャンセル"])},birthday:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("birthday"))," に、うまれました"])},remove_follower_confirm_title:r=>{const{normalize:n}=r;return n(["フォロワーをとりのぞくことのかくにん"])},remove_follower_confirm_accept_button:r=>{const{normalize:n}=r;return n(["とりのぞく"])},remove_follower_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["のこす"])},remove_follower_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ほんとうに、 ",e(t("user"))," をあなたのフォロワーからとりのぞきますか?"])},edit_note:r=>{const{normalize:n}=r;return n(["メモをへんしゅうする"])},edit_note_cancel:r=>{const{normalize:n}=r;return n(["キャンセル"])},message:r=>{const{normalize:n}=r;return n(["メッセージ"])},bot:r=>{const{normalize:n}=r;return n(["bot"])},approve_confirm_title:r=>{const{normalize:n}=r;return n(["うけいれのかくにん"])},approve_confirm_accept_button:r=>{const{normalize:n}=r;return n(["うけいれる"])},approve_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["うけいれない"])},approve_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("user"))," のフォローリクエストをうけいれますか?"])},edit_profile:r=>{const{normalize:n}=r;return n(["プロフィールをへんしゅう"])},block_confirm_title:r=>{const{normalize:n}=r;return n(["ブロックのかくにん"])},note_blank:r=>{const{normalize:n}=r;return n(["(なし)"])},note:r=>{const{normalize:n}=r;return n(["メモ"])}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["ユーザータイムライン"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["ごめんなさい。このプロフィールは、そんざいしません。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["ごめんなさい。プロフィールのロードがエラーになりました。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["つうほうする: ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["このつうほうは、あなたのインスタンスのモデレーターに、おくられます。このアカウントを、つうほうするりゆうを、せつめいすることができます:"])},additional_comments:r=>{const{normalize:n}=r;return n(["ついかのコメント"])},forward_description:r=>{const{normalize:n}=r;return n(["このアカウントは、ほかのインスタンスのものです。そのインスタンスにも、このつうほうのコピーを、おくりますか?"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["コピーをおくる: ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["そうしん"])},generic_error:r=>{const{normalize:n}=r;return n(["あなたのリクエストをうけつけようとしましたが、エラーになってしまいました。"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["くわしく"])},who_to_follow:r=>{const{normalize:n}=r;return n(["おすすめユーザー"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["メディアをアップロード"])},repeat:r=>{const{normalize:n}=r;return n(["リピート"])},reply:r=>{const{normalize:n}=r;return n(["リプライ"])},favorite:r=>{const{normalize:n}=r;return n(["おきにいり"])},user_settings:r=>{const{normalize:n}=r;return n(["ユーザーせってい"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["フォローのおねがいを、うけいれる"])},toggle_mute:r=>{const{normalize:n}=r;return n(["ミュートされたないようをみるために、つうちをひらくか、とじる"])},autocomplete_available:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("number")),"このけっかが、あります。うえとしたのキーをつかって、けっかをみることができます。"])},add_reaction:r=>{const{normalize:n}=r;return n(["リアクションをつける"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["フォローのおねがいを、ことわる"])},bookmark:r=>{const{normalize:n}=r;return n(["ブックマーク"])},toggle_expand:r=>{const{normalize:n}=r;return n(["とうこうをすべてみるために、つうちをひらくか、とじる"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["アップロードにしっぱいしました。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ファイルがおおきすぎます [",e(t("filesize"))," ",e(t("filesizeunit"))," / ",e(t("allowedsize"))," ",e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["しばらくしてから、ためしてください"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["アップロードにしっぱいしました: ",e(t(0))])}},file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])}}},search:{people:r=>{const{normalize:n}=r;return n(["ひとびと"])},hashtags:r=>{const{normalize:n}=r;return n(["ハッシュタグ"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," にんが、はなしています"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," にんが、はなしています"])},no_results:r=>{const{normalize:n}=r;return n(["みつかりませんでした"])},no_more_results:r=>{const{normalize:n}=r;return n(["これでおわりです"])},load_more:r=>{const{normalize:n}=r;return n(["もっとみる"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["パスワードを、わすれましたか?"])},password_reset:r=>{const{normalize:n}=r;return n(["パスワードリセット"])},instruction:r=>{const{normalize:n}=r;return n(["あなたのメールアドレスかユーザーめいをいれてください。パスワードをリセットするためのリンクをおくります。"])},placeholder:r=>{const{normalize:n}=r;return n(["あなたのメールアドレスかユーザーめい"])},check_email:r=>{const{normalize:n}=r;return n(["パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。"])},return_home:r=>{const{normalize:n}=r;return n(["ホームページにもどる"])},too_many_requests:r=>{const{normalize:n}=r;return n(["パスワードリセットを、ためすことが、おおすぎます。しばらくしてから、ためしてください。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["このインスタンスでは、パスワードリセットは、できません。インスタンスのアドミニストレーターに、おといあわせください。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["ログインするには、パスワードをリセットしてください。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["あなたはパスワードのリセットがひつようです。しかし、まずいことに、このインスタンスでは、パスワードのリセットができなくなっています。このインスタンスのアドミニストレーターに、おといあわせください。"])}},announcements:{post_placeholder:r=>{const{normalize:n}=r;return n(["おしらせのないようを、にゅうりょくしてください。"])},end_time_prompt:r=>{const{normalize:n}=r;return n(["おわるじかん: "])},inactive_message:r=>{const{normalize:n}=r;return n(["このおしらせは、つかわれていません"])},page_header:r=>{const{normalize:n}=r;return n(["おしらせ"])},title:r=>{const{normalize:n}=r;return n(["おしらせ"])},post_action:r=>{const{normalize:n}=r;return n(["とうこう"])},post_form_header:r=>{const{normalize:n}=r;return n(["おしらせをとうこう"])},mark_as_read_action:r=>{const{normalize:n}=r;return n(["よんだことにする"])},post_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["エラー: ",e(t("error"))])},close_error:r=>{const{normalize:n}=r;return n(["とじる"])},delete_action:r=>{const{normalize:n}=r;return n(["けす"])},start_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("time")),"にはじまります"])},end_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("time")),"におわります"])},edit_action:r=>{const{normalize:n}=r;return n(["へんしゅう"])},start_time_prompt:r=>{const{normalize:n}=r;return n(["はじまるじかん: "])},all_day_prompt:r=>{const{normalize:n}=r;return n(["このイベントはいちにちじゅうやります"])},published_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("time")),"にこうかいされました"])},submit_edit_action:r=>{const{normalize:n}=r;return n(["そうしん"])},cancel_edit_action:r=>{const{normalize:n}=r;return n(["キャンセル"])}},report:{reported_statuses:r=>{const{normalize:n}=r;return n(["つうほうされたステータス:"])},reporter:r=>{const{normalize:n}=r;return n(["つうほうしたひと:"])},state_closed:r=>{const{normalize:n}=r;return n(["クローズ"])},state_resolved:r=>{const{normalize:n}=r;return n(["かいけつしました"])},reported_user:r=>{const{normalize:n}=r;return n(["つうほうされたユーザー:"])},notes:r=>{const{normalize:n}=r;return n(["メモ:"])},state:r=>{const{normalize:n}=r;return n(["じょうたい:"])},state_open:r=>{const{normalize:n}=r;return n(["オープン"])}},update:{update_bugs:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["もんだいや、バグがあれば、 ",e(t("pleromaGitlab"))," でおしえてください。ちゃんとテストはしているのですが、たくさんのことをかえているので、そしてかいはつバージョンをつかっているので、もんだいやバグに、きづかないことがあります。あなたがきづいたもんだいについての、フィードバックやていあんを、まっています。 Pleroma や Pleroma-FE をよくするやりかたについても、おしえてください。"])},update_changelog_here:r=>{const{normalize:n}=r;return n(["すべてのかわったことのきろく"])},art_by:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("linkToArtist")),"によるさくひん"])},big_update_title:r=>{const{normalize:n}=r;return n(["すこし、まってください"])},big_update_content:r=>{const{normalize:n}=r;return n(["しばらくリリースがありませんでした。おもっていたみためと、ちがうかもしれません。"])},update_bugs_gitlab:r=>{const{normalize:n}=r;return n(["Pleroma GitLab"])},update_changelog:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["かわったことをすべてみるには、",e(t("theFullChangelog")),"をみてください。"])}},chats:{new:r=>{const{normalize:n}=r;return n(["あたらしいチャット"])},chats:r=>{const{normalize:n}=r;return n(["チャット"])},you:r=>{const{normalize:n}=r;return n(["あなた:"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("nickname"))," にメッセージ"])},delete:r=>{const{normalize:n}=r;return n(["けす"])},empty_message_error:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},more:r=>{const{normalize:n}=r;return n(["もっとみる"])},delete_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、このメッセージをけしますか?"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["チャットをよみこむことに、しっぱいしました。"])},error_sending_message:r=>{const{normalize:n}=r;return n(["メッセージをおくることに、しっぱいしました。"])},empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["チャットがありません。あたらしいチャットボタンをおして、はじめてください!"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["Shoutbox"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma はブラウザーのストレージにアクセスすることができません。あなたがログインしたことと、あなたのローカルのせっていは、ほぞんされません。ほかにももんだいがおきるかもしれません。 Cookie をゆうこうにしてください。"])}},lists:{lists:r=>{const{normalize:n}=r;return n(["リスト"])},new:r=>{const{normalize:n}=r;return n(["あたらしいリスト"])},search:r=>{const{normalize:n}=r;return n(["ユーザーをさがす"])},title:r=>{const{normalize:n}=r;return n(["リストのなまえ"])},create:r=>{const{normalize:n}=r;return n(["つくる"])},save:r=>{const{normalize:n}=r;return n(["へんこうをほぞんする"])},delete:r=>{const{normalize:n}=r;return n(["リストをけす"])},following_only:r=>{const{normalize:n}=r;return n(["フォローしているひとげんていにする"])},manage_lists:r=>{const{normalize:n}=r;return n(["リストをかんりする"])},manage_members:r=>{const{normalize:n}=r;return n(["リストにふくまれるひとを、かんりする"])},add_members:r=>{const{normalize:n}=r;return n(["もっとユーザーをさがす"])},remove_from_list:r=>{const{normalize:n}=r;return n(["リストからとりのぞく"])},add_to_list:r=>{const{normalize:n}=r;return n(["リストにいれる"])},editing_list:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["リスト ",e(t("listTitle"))," をへんしゅうしています"])},creating_list:r=>{const{normalize:n}=r;return n(["あたらしいリストをつくっています"])},update_title:r=>{const{normalize:n}=r;return n(["なまえをほぞんする"])},really_delete:r=>{const{normalize:n}=r;return n(["ほんとうに、リストをけしますか?"])},is_in_list:r=>{const{normalize:n}=r;return n(["すでにリストのなかにあります"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["リストをへんしゅうするときに、エラーになりました: ",e(t(0))])}},file_type:{audio:r=>{const{normalize:n}=r;return n(["オーディオ"])},video:r=>{const{normalize:n}=r;return n(["ビデオ"])},image:r=>{const{normalize:n}=r;return n(["がぞう"])},file:r=>{const{normalize:n}=r;return n(["ファイル"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["きょう"])}},unicode_domain_indicator:{tooltip:r=>{const{normalize:n}=r;return n(["このドメインは、ASCIIいがいのもじをふくんでいます。"])}},domain_mute_card:{mute:r=>{const{normalize:n}=r;return n(["ミュート"])},mute_progress:r=>{const{normalize:n}=r;return n(["ミュートしています…"])},unmute:r=>{const{normalize:n}=r;return n(["ミュートをやめる"])},unmute_progress:r=>{const{normalize:n}=r;return n(["ミュートをやめています…"])}}}}}]);
+//# sourceMappingURL=ja_easy-json.1d5ea7e755b066ac2cdd.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js.map b/priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js.map
new file mode 100644
index 000000000..d2ba609ba
--- /dev/null
+++ b/priv/static/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/ja_easy.json"],"sourcesContent":["export default {\n \"about\": {\n \"mrf\": {\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フェデレーション\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ゆうこうなMRFポリシー\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRFポリシーは、このインスタンスのフェデレーションのふるまいを、いじります。これらのMRFポリシーがゆうこうになっています:\"])},\n \"simple\": {\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスのポリシー\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけいれ\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスンスは、これらのインスタンスからのメッセージのみをうけいれます:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おことわり\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスからのメッセージをうけいれません:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けんえき\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスに、パブリックなとうこうのみを、おくります:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「つながっているすべてのネットワーク」タイムラインからのぞく\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアをのぞく\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスからおくられてきたメディアを、とりのぞきます:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアをすべてセンシティブにする\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスからおくられてきたメディアを、すべて、センシティブにマークします:\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"りゆう\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンス\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なし\"])}\n },\n \"keyword\": {\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キーワードポリシー\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おことわり\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきかえ\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「つながっているすべてのネットワーク」タイムラインからのぞく\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])}\n }\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スタッフ\"])}\n },\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャット\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エクスポート\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャット\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアプロクシ\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"こうかいはんいせんたく\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もじのかず\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ゆうこうなきのう\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おすすめユーザー\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma チャット\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アップロードできるファイルのおおきさ\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーけんさくがエラーになりました\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをさがす\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"てきよう\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そうしん\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つづき\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラーになりました\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かかなくてもよい\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つづきをみる\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たたむ\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なし\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あり\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たしかめる\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たしかめる\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もういちど、ためしてください\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よみこんでいます…\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もとにもどす\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はい\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いいえ\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ピンどめするのをやめる\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いちばんうえにもどる\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーター\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かんりするひと\"])}\n },\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash コンテンツはどんなコードでもじっこうできるので、あぶないかもしれません。\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash コンテンツをよみこむことに、しっぱいしました。コンソールで、くわしいないようを、よむことができます。\"])},\n \"scope_in_timeline\": {\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーげんてい\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パブリック\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アンリステッド\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ダイレクト\"])}\n },\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ピンどめする\"])},\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash コンテンツを、 Ruffle をつかってひょうじする (うごかないかもしれません)。\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"エラーになりました: \", _interpolate(_list(0))])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もういちど、ためしてください\"])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"にどとひょうじしない\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とじる\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"むしする\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かくす\"])}\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうをきりぬく\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セーブ\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きりぬかずにセーブ\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そうしん\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インポートできました。\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インポートがエラーになりました。\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログイン\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuthでログイン\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログアウト\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワード\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい: lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はじめる\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーめい\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はなしあいにくわわるには、ログインしてください\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"にんしょうコード\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リカバリーコードをいれてください\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターコードをいれてください\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リカバリーコード\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターにんしょう\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターリカバリー\"])}\n },\n \"logout_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログアウトのかくにん\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、ログアウトしますか?\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログアウトする\"])},\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログアウトしない\"])}\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"まえ\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つぎ\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアビューアーをとじる\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これはなに?\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミニストレーション\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もどる\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ローカルチャット\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローリクエスト\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンション\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"やりとり\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ダイレクトメッセージ\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パブリックタイムライン\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムライン\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つながっているすべてのネットワーク\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをさがす\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さがす\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おすすめユーザー\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せってい\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ホームタイムライン\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブックマーク\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムライン\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャット\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リスト\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちをひらく (よんでないものがあります)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちをとじる\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おしらせ\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ピンどめをへんしゅう\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けんさくバーをとじる\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ナビゲーションバーのせっていをかえる\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モバイルのサイドバーをきりかえる\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんしゅうをおわりにする\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがみつかりません。さがしています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがおきにいりされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいつうちをみる\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よんだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちはありません\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"つうちをとりにいくことに、しっぱいしました: \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたをフォローしたいです\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスを、ひっこしました\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" でリアクションしました\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうが、おわりました\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほうしました\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうをはじめる\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オプションをふやす\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オプション\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひょう\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうする\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうのけいしき\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひとつえらぶ\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いくつでもえらべる\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうのながさ\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"とうひょうは \", _interpolate(_list(0)), \" で、おわります\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"とうひょうは \", _interpolate(_list(0)), \" まえに、おわりました\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユニークなオプションが、たりません\"])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" にんが、とうひょうしました\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" ひょう\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステッカー\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじ\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ピッカーをあけたままにする\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじをさがす\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじをうちこむ\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カスタムえもじ\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユニコードえもじ\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"はじめの \", _interpolate(_named(\"saneAmount\")), \" このえもじだけがロードされています。すべてのえもじをロードすると、パフォーマンスがわるくなるかもしれません。\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"すべてのえもじをロード (\", _interpolate(_named(\"emojiAmount\")), \" こあります)\"])},\n \"unicode_groups\": {\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はた\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かつどう\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"どうぶつ・しぜん\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たべもの・のみもの\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もの\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひと・からだ\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えがお・きもち\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きごう\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"りょこう・ばしょ\"])}\n },\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ばしょをしめすきごう \", _interpolate(_named(\"letter\"))])}\n },\n \"stickers\": {\n \"add_sticker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステッカーをふやす\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートとおきにいり\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいフォロー\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいやりとりをみる\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじリアクション\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのひっこし\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほう\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうする\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"あなたのアカウントは \", _interpolate(_list(0)), \" ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ロックされたアカウント\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルをNSFWにする\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プレーンテキスト\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せつめい (かかなくてもよい)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はねだくうこうに、つきました。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、メンションされたすべてのユーザーが、みることができます。\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。\"])},\n \"direct_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このステータスは、メンションされたユーザーだけが、よむことができます。\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、だれでもみることができます\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、あなたのフォロワーだけが、みることができます\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません\"])}\n },\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ダイレクト: メンションされたユーザーのみにとどきます\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーげんてい: フォロワーのみにとどきます\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パブリック: パブリックタイムラインにとどきます\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アンリステッド: パブリックタイムラインにとどきません\"])}\n },\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアのアップロードにしっぱいしました。もういちどためしてください\"])},\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスをへんしゅうする\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアのせつめい\"])},\n \"content_type_selection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうのけいしき\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほかのリモートインスタンスは、へんしゅうをサポートしていないかもしれません。そして、へんしゅうされたとうこうをうけとることができないかもしれません。\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma は、メンションやとうひょうのへんしゅうを、サポートしていません。\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プレビュー\"])},\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにもありません\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうないようを、にゅうりょくしてください\"])},\n \"scope_notice_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このつうちをとじる\"])}\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィール\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eメール\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スクリーンネーム\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードのかくにん\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はじめる\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"しょうたいトークン\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい: lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい: いわくら れいん\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい:\\nごきげんよう。わたしはれいん。\\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードがちがいます\"])},\n \"birthday_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"birthday_min_age\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"date\")), \" か、それよりまえにしてください\"])}\n },\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスでは、ひとがかくにんして、とうろくをうけいれています。\\nなぜあなたがとうろくしたいのかを、かんりしているひとに、おしえてください。\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィール (かかなくてもよい)\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうろくするりゆう\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eメール (かかなくてもよい)\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうろくする\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サーバーからのメールは、なにご(どのことば)がいいですか?\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たんじょうび:\"])},\n \"birthday_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たんじょうび (かかなくてもよい):\"])}\n },\n \"remote_user_resolver\": {\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リモートユーザーリゾルバー\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さがしています:\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"みつかりませんでした。\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてえらぶ\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アプリのなまえ\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セキュリティ\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTPをつくる\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTPをよういしています\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTPをたしかめて、ゆうこうにする\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターにんしょう\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいリカバリーコードをつくる\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リカバリーコード。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックアップコードをうけとっています…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"にんしょうメソッド\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スキャン\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キー\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターにんしょうをつかうには、あなたの2-ファクターアプリのコードをいれてください:\"])}\n }\n },\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイル\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイル\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバター\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちのアバター\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバター\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックグラウンド\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィール\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックのエクスポート\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをCSVファイルにエクスポート\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックのインポート\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックのインポートがエラーになりました\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロック\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライとフォロー\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールアドレスをかえる\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールアドレスをかえようとしましたが、なにかがおかしいです。\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールアドレスをかえることができました!\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードをかえる\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードをかえることが、できなかったかもしれません。\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードが、かわりました!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せつめいのあるとうこうをたたむ\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいパスワードのかくにん\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いまのアバター\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いまのパスワード\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いまのプロフィールバナー\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インポートとエクスポート\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"デフォルトのこうかいはんい\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをけす\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのアカウントとメッセージが、きえます。\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けんさくなどのサービスで、このアカウントをみつけてもよい\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セーブ\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フィルタリング\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローのエクスポート\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エクスポート\"])},\n \"follow_export_processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おまちください。まもなくファイルをダウンロードできます。\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローインポート\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローのインポートがエラーになりました\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローがインポートされました! すこしじかんがかかるかもしれません。\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォアグラウンド\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ぜんぱん\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドのファイルをかくす\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムラインのファイルをかくす\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしたユーザーのとうこうをかくす\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひとつのとうこうにいれられるサムネイルのかず\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンススペシフィックパネルをかくす\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうをさきよみする\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFWなファイルを1クリックでひらく\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうのとうけいをかくす (れい: おきにいりのかず)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのとうけいをかくす (れい: フォロワーのかず)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フィルターされたとうこうをかくす\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CSVファイルからブロックをインポートする\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CSVファイルからフォローをインポートする\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ロード\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チェックボックス\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(デフォルト: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(デフォルト)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェース\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェースのことば\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このファイルはPleromaのテーマではありません。テーマはへんこうされませんでした。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのブラウザではできません\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リンク\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたがみとめたひとだけ、あなたのアカウントをフォローできる\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ビデオをくりかえす\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おとのないビデオだけくりかえす\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュート\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ビデオをメディアビューアーでみる\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうのサムネイルを、きりぬかない\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なまえ\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なまえとプロフィール\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいメールアドレス\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいパスワード\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひょうじするつうち\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロー\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンション\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リッチテキストをつかわない\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしていません\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしていません\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしているひとをみせない\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーをみせない\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしているひとのかずをみせない\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーのかずをみせない\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミンのしるしをみせる\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーターのしるしをみせる\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFWなファイルをかくす\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuthトークン\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トークン\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トークンをリフレッシュ\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おわりのとき\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とりけす\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネル\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タブにフォーカスがないときストリーミングをとめる\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プリセット\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールのバックグラウンド\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールバナー\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィール\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェースのまるさをせっていする\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムラインのリプライ\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてのリプライをみる\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"わたしにあてられたリプライと、フォローしているひとからのリプライをみる\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"わたしにあてられたリプライをみる\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいとうこうのボタンを、じどうてきにかくす (モバイル)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていをセーブできませんでした\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていをセーブしました\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしたいひとを、ここでけんさくできます\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしたいひとを、ここでけんさくできます\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セキュリティ\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"こうかいはんいせんたくオプションを、ちいさくする\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいアバターをせっていする\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいプロフィールのバックグラウンドをせっていする\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいプロフィールバナーを設定する\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せってい\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サブジェクトフィールドをいつでもひょうじする\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライするときサブジェクトをコピーする\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールふう: \\\"re: サブジェクト\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"マストドンふう: そのままコピー\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"コピーしない\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうのコンテントタイプ\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カーソルをかさねたとき、GIFをうごかす\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うえまでスクロールしたとき、じどうてきにストリーミングする\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もじ\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"テーマ\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カラーテーマをカスタマイズできます。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうをアップロード\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ツールチップとアラート\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーせってい\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いいえ\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はい\"])}\n },\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おたのしみ\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミームやじるし\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あるユーザーからのつうちをとめるには、ミュートしてください。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしているユーザーからのつうちは、すべてとまります。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ウェブプッシュつうちをゆるす\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いろをのこす\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かげをのこす\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうめいどをのこす\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"まるさをのこす\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォントをのこす\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「のこす」オプションをONにすると、テーマをえらんだときとロードしたとき、いまのせっていをのこします。また、テーマをエクスポートするとき、これらのオプションをストアします。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべてのせっていをセーブします。\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リセット\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてクリア\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうめいどをクリア\"])},\n \"help\": {\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいバージョンのフロントエンドでつくられたファイルをインポートしました。\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルにはテーマのスナップショットがありません。おもっていたみためと、ちがうかもしれません。\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あんぜんのため、テーマのスナップショットがよみこまれました。テーマのデータをよみこむことができます。\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バージョンがただしくないです。フロントエンドのバージョンをもとにもどしたあと、あたらしくしたことが、りゆうかもしれません。ふるいフロントエンドでテーマをへんこうしていたばあい、ふるいバージョンをつかうのがいいです。そうでないばあい、あたらしいバージョンをつかってください。\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"テーマのスナップショットをよみこみました。せっていはうわがきされました。かわりに、テーマのじっさいのデータをよみこむことができます。\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フロントエンドといっしょに、テーマエンジンもあたらしくなりました。\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フロントエンドが、まえのバージョンにもどりました。\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スナップショットがありません。おぼえているみためと、ちがうかもしれません。\"])},\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFEがあたらしくなったので、いままでのみためとすこしちがうかもしれません。\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいフロントエンドのためのファイルをインポートしました。せっていしたのとは、すこしちがうかもしれません。\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいフロントエンドでつくられたファイルをインポートしました。\"])}\n },\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"テーマをよみこむ\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そのままにする\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいバージョン\"])},\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいバージョン\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いろ\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうめいど\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"コントラストは \", _interpolate(_named(\"ratio\")), \" です。\", _interpolate(_named(\"level\")), \"。(\", _interpolate(_named(\"context\")), \")\"])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"AAレベルガイドライン (ミニマル) をみたします\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"AAAレベルガイドライン (レコメンデッド) をみたします\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ガイドラインをみたしません\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おおきい (18ポイントいじょう) テキスト\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"テキスト\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きょうつう\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きょうつうのいろ\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「くわしく」タブで、もっとこまかくせっていできます\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アイコンとアクセントとバッジ\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"くわしく\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アラートのバックグラウンド\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラー\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けいこく\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バッジのバックグラウンド\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネルヘッダー\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トップバー\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さかいめ\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うすいテキスト\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう / プロフィール\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かべがみ\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アイコン\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よくみえるようにした、ようそ\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おしたとき\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さかいめ\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけとったもの\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おくったもの\"])}\n },\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アンダーレイ\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"それいがい\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ツールチップ、メニュー、ポップオーバー\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうのグラフ\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えらんだとうこう\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えらんだメニューアイテム\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つかえないとき\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きりかえたとき\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タブ\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"まるさ\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひかりとかげ\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"コンポーネント\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オーバーライド\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"かげ #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ぼかし\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひろがり\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うちがわ\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かげのせっていでは、いろのあたいとして --variable をつかうことができます。これはCSS3へんすうです。ただし、とうめいどのせっていは、きかなくなります。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ブラウザーがサポートしていれば、つねに \", _interpolate(_list(0)), \" がつかわれます。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" は、\", _interpolate(_list(1)), \" パラメーターと \", _interpolate(_list(2)), \" キーワードをサポートしていません。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひろがりが 0 よりもおおきなかげは、0 とおなじです\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"うちがわのかげは \", _interpolate(_list(0)), \" をつかいます\"])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネル\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネルヘッダー\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トップバー\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーアバター (プロフィール)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーアバター (とうこう)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ポップアップとツールチップ\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン (ホバー)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン (おされているとき)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン (ホバー、かつ、おされているとき)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])}\n },\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"かげのばあいは、 \", _interpolate(_list(0)), \" というかきかたをつかうことができます。そうすると、ほかのいろのスロットをつかうことができます。\"])}\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォント\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「カスタム」をえらんだときは、システムにあるフォントのなまえを、ただしくにゅうりょくしてください。\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェース\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モノスペース (とうこうがリッチテキストであるとき)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォントめい\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おおきさ (px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふとさ\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カスタム\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プレビュー\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんぶん\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラーのれい\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"これは\", _interpolate(_list(0)), \"と\", _interpolate(_list(1)), \"のれいです\"])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"monospace\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はねだくうこうに、つきました。\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とてもたすけになるマニュアル\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"わたしたちの\", _interpolate(_list(0)), \"を、よまないでください!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラーではありません\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"りようきやくを、よみました\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ハイパーリンク\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バージョン\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックエンドのバージョン\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フロントエンドのバージョン\"])}\n },\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたがさんかしたとうひょうが、おわりました\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このせっていは、あなたのプロフィールについてのものです。へんこうすると、すべてのセッションとクライアントにえいきょうします\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートのインポートが、エラーになりました\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのアカウントじょうほうや、とうこうのアーカイブを、ダウンロードすることができます。しかし、 Pleroma アカウントにインポートすることはまだできません。\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"バックアップリストをとりにいくことが、エラーになりました: \", _interpolate(_named(\"error\"))])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"エイリアスをとりにいくときに、エラーになりました: \", _interpolate(_named(\"error\"))])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エイリアスをつくりました。\"])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もしあなたがアカウントをほかのインスタンスにひっこしたいのなら、ひっこすさきのアカウントからここへのエイリアスをつくってください。\"])},\n \"file_export_import\": {\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていとテーマをファイルにバックアップする\"])},\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルからせっていをもとにもどす\"])},\n \"errors\": {\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"メジャーバージョン(\", _interpolate(_named(\"fileMajor\")), \")がちがいます。この PleromaFE (せっていのバージョン \", _interpolate(_named(\"feMajor\")), \") はふるいので、つかうことができません\"])},\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルのマイナーバージョンがちがっています。いくつかのせっていは、よみこまれないかもしれません\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これは Pleroma のせっていをバックアップしたファイルではありません。\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"メジャーバージョン(\", _interpolate(_named(\"fileMajor\")), \")がちがいます。ファイルのバージョンが古いので、使うことができません(バージョン \", _interpolate(_named(\"feMajor\")), \" いじょうのせっていバージョンをつかってください)\"])}\n },\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていをファイルにバックアップする\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていのバックアップ\"])}\n },\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスのバックグラウンドをかくす\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"わたしのフォローしているひとにあてられたリプライをみる\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"じぶんにあてられたリプライだけをみる\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんこうをほぞんする\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、バナーをリセットしますか?\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ツリービューで、ナビゲーションをもっとじゅうなんにする\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"じゅうぶんなくうかんがあれば、3ばんめのれつをひょうじする\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「ほかのリプライ」ボタンをひょうじするばしょ\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールをひらく\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フィルター\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おくったひとと、ないようを、プッシュつうちにひょうじしない\"])},\n \"backup_running\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"バックアップしています。\", _interpolate(_named(\"number\")), \"このデータをしょりしました。\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ことばのフィルターと、そのほか…\"])},\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プライバシー\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをひっこす\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ひっこしさきのアカウント (れい: \", _interpolate(_named(\"example\")), \")\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bot のとうこうをミュートする\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bot によるとうこうであることを、とうこうにひょうじしない\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしたとうこうをかくす\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox をかくす\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ツリーけいしき\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リモートユーザーだけ、ながいなまえでひょうじする (れい: \", \"@\", \"hoge\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたがメンションされたとき、あなたへのメンションを、よくみえるようにする\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ポップオーバーのアバターをクリックしたとき\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバターをおおきくする\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ポップオーバーをとじる\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうボタンをいつもひょうじする\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいとうこうを、じどうてきにみせる\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザー\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうとつうちを、リアルタイムにうけとる\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Websockets をつかう (リアルタイムアップデート)\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートとブロック\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじリアクションをタイムラインにひょうじする\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アクセント\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ドメイン\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CSVファイルからミュートをインポートする\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバターをリセットする\"])},\n \"remove_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とりのぞく\"])},\n \"primary_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いちばんわかることば:\"])},\n \"add_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よびとしてつかうことばを、ついかする\"])},\n \"fallback_language\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"よびとしてつかうことば \", _interpolate(_named(\"index\")), \":\"])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ナビゲーションにリストをひょうじする\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントのエイリアス\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いつも、ながいなまえをひょうじする (れい: \", \"@\", \"hoge\", \"@\", \"example.org)\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていは、デフォルトとちがっています\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サーバーからうけとるEメールのことば\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートのエクスポート\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのミュートを、 CSV ファイルにエクスポートします\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートのインポート\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートをインポートしました!すこしじかんがかかるかもしれません。\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントのバックアップ\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックアップ\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ダウンロード\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックアップのじゅんびが、まだできていません。\"])},\n \"backup_failed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックアップにしっぱいしました。\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とりのぞく\"])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいバックアップをつくる\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいバックアップをつくりました。\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"あたらしいバックアップをつくるときに、エラーになりました: \", _interpolate(_named(\"error\"))])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これは bot アカウントです\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エイリアス\"])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とじる\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このエイリアスをけす\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"エイリアスをつくるときに、エラーになりました: \", _interpolate(_named(\"error\"))])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"あたらしいエイリアスをつくる (れい: \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをひっこしました。\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"アカウントをひっこしているときに、エラーになりました: \", _interpolate(_named(\"error\"))])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ことばのフィルター\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアのプレビューをかくす\"])},\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サイドバーをみぎにひょうじする\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ことばのフィルターでフィルターされたステータスをかくす\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートされたスレッドをかくす\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ナビゲーションバーをれつのはばまでのばす\"])},\n \"birthday\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たんじょうび\"])},\n \"show_birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たんじょうびを、ひょうじする\"])}\n },\n \"profile_fields\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールのメタデータ\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フィールドをふやす\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ラベル\"])},\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ないよう\"])}\n },\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザープロフィール\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのひっこし\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リアクション\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいりのリストをみせない (つうちはおくられます)\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールバックグラウンドをリセットする\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールバナーをリセットする\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、アバターをリセットしますか?\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、バックグラウンドをリセットしますか?\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サイドバー\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れつ\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れつのおおきさ\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"コンテンツ\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドのひょうじけいしき\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リニアけいしき\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リニアビュー\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よこのれつにスクロールバーをひょうじする\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3ばんめのれつをひょうじしない\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうフォームとナビゲーション\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちのれつをひょうじする\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"げんざいのステータスのおやを、うすいいろのもじでひょうじする\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスのした\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスのなか\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"デフォルトでひょうじするスレッドのふかさ\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"デフォルトで、とうこうをNSFWにする\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしたいドメインを、ここでけんさくできます\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンションのリンクをクリックしたとき、ユーザーカードをみせる\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのアバターをリンクのよこにひょうじする\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのアバターをメンションのとなりにひょうじする\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ドメイン(れい: \", \"@\", \"hoge\", \"@\", \"example.org のなかの \", \"@\", \"example.org)を、うすいいろにする\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのポップオーバーを、ユーザーのアバターのうえにひょうじする\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(あなた)をひょうじする\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしていないユーザーからのつうちをブロックする\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プライバシー\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そのたのせってい\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"くわしいせっていを、ひょうじする\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンションのリンク\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうのみためとかんかく\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしているアカウントがインスタンスをひっこしたばあい、じどうでフォローしてもよい\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャットメッセージ\"])},\n \"confirm_dialogs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つぎのばあいに、かくにんをする\"])},\n \"confirm_dialogs_repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスをリピートするとき\"])},\n \"confirm_dialogs_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのフォローをはずすとき\"])},\n \"confirm_dialogs_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをブロックするとき\"])},\n \"confirm_dialogs_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをミュートするとき\"])},\n \"confirm_dialogs_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスをけすとき\"])},\n \"confirm_dialogs_logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログアウトするとき\"])},\n \"confirm_dialogs_approve_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローをうけいれるとき\"])},\n \"confirm_dialogs_deny_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローをことわるとき\"])},\n \"confirm_dialogs_remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーをとりのぞくとき\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ツリービュー\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れつのヘッダーを、がめんのいちばんうえにこていしない\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムラインのレンダリングをよくする\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"@\", \" きごうを、もじのかわりに、アイコンでひょうじする\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いつも、みじかいなまえにする (れい: \", \"@\", \"hoge)\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンションのリンクをひょうじするけいしき\"])}\n },\n \"time\": {\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"で\"])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たった今\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たった今\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])},\n \"unit\": {\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ふん\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"びょう\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"しゅうかん\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"しゅう\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ねん\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ねん\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"にち\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"にち\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"じかん\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"じかん\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ふん\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"かげつ\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"かげつ\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"びょう\"])}\n }\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たたむ\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッド\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よみこみがエラーになりました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいステータス\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よみこみ\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さいしん\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これでおわりです\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ありません\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"コード\", _interpolate(_list(0)), \"により、リアルタイムでつながることがなくなりました\"])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リアルタイムでつながることを、つくりました\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もういちど、よみこむ\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"タイムラインをとりにいくときに、エラーになりました: \", _interpolate(_list(0))])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスをけす\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールにピンどめする\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールにピンどめするのをやめる\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ピンどめ\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、このステータスを、けしてもいいですか?\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんしん:\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんしん:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドをミュートする\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドをミュートするのをやめる\"])},\n \"repeat_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートのかくにん\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンション\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートされたスレッド\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルをかくす\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルをとりのぞく\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"このスレッドのすべてのとうこうをみる (ぜんぶで\", _interpolate(_named(\"numStatus\")), \"このステータス、ふかさ\", _interpolate(_named(\"depth\")), \")\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてのファイルをみる\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かくす\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かくす\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、けされました\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(あなた)\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひろげる\"])},\n \"repeat_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートする\"])},\n \"repeat_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートしない\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(\", _interpolate(_named(\"time\")), \" まえにへんしゅう)\"])},\n \"delete_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けすことのかくにん\"])},\n \"delete_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けす\"])},\n \"delete_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"のこす\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスをへんしゅうする\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブックマークする\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブックマークをはずす\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"へんしん (ほかに +\", _interpolate(_named(\"numReplies\")), \"こ):\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがありません\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リンクをコピー\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そとにあるソース\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つぎのことばをふくむので:\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"みる\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"あと \", _interpolate(_named(\"number\")), \"こ\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"とうこうには、\", _interpolate(_named(\"number\")), \"このファイルがついています\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアモーダルでみる\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せつめいのプレビュー (ぜんぶみるには、ファイルをひらいてください)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルをかくす\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash プレーヤーをとめる\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルをひだりにうごかす\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルをみぎにうごかす\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ギャラリーをひらく\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドをかくす\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドをみる\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてをみる\"])},\n \"repeat_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、このステータスをリピートしますか?\"])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"このスレッドをぜんぶみる (あと \", _interpolate(_named(\"numStatus\")), \"このステータス)\"])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このステータスへのへんしんだけをみる\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスのれきし\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"のこりのとうこうをみる (ぜんぶで \", _interpolate(_named(\"numStatus\")), \"このステータス)\"])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"このステータスよりしたの、\", _interpolate(_named(\"numReplies\")), \"このへんしんをみる\"])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけいれ\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロック\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしています!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おことわり\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロー\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リクエストを、おくりました!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リクエストしています…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローをやめる\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロー\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワー\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしています!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かくされています\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これはあなたです!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディア\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンション\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュート\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしています\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"/日\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リモートフォロー\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほう\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータス\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サブスクライブ\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サブスクライブをやめる\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをやめる\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをとりけしています…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしています…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートをやめる\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートをとりけしています…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしています…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートをかくす\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートをみる\"])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーション\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミンにする\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミンをやめさせる\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーターにする\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーターをやめさせる\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをアクティブにする\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをアクティブでなくする\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをけす\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてのとうこうをNSFWにする\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうからメディアをなくす\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうをアンリステッドにする\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうをフォロワーのみにする\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほかのインスタンスからフォローされないようにする\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされないようにする\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほかのインスタンスのユーザーのとうこうをとめる\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをけす\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これをすると、このアカウントのデータがきえて、にどとつかえなくなります。ほんとうに、していいですか?\"])}\n },\n \"mute_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートする\"])},\n \"unfollow_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローをやめることのかくにん\"])},\n \"mute_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ほんとうに、 \", _interpolate(_named(\"user\")), \" をミュートしますか?\"])},\n \"mute_duration_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このユーザーをつぎのじかんだけミュートする (0にすると、おわりがありません):\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"てきよう\"])},\n \"block_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ほんとうに、 \", _interpolate(_named(\"user\")), \" をブロックしますか?\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つかえない\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーをとりのぞく\"])},\n \"highlight\": {\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バッググラウンドをひとつのいろにする\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"しまもようのバックグラウンドにする\"])},\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はじにせんをつける\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"めだたせない\"])}\n },\n \"mute_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしない\"])},\n \"unfollow_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローをやめる\"])},\n \"unfollow_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ほんとうに、 \", _interpolate(_named(\"user\")), \" のフォローをやめますか?\"])},\n \"unfollow_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしたままにする\"])},\n \"mute_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートのかくにん\"])},\n \"block_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックする\"])},\n \"block_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしない\"])},\n \"deny_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おことわりのかくにん\"])},\n \"deny_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ことわる\"])},\n \"deny_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ことわらない\"])},\n \"deny_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"user\")), \" のフォローリクエストをことわりますか?\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リクエストをキャンセル\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"birthday\")), \" に、うまれました\"])},\n \"remove_follower_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーをとりのぞくことのかくにん\"])},\n \"remove_follower_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とりのぞく\"])},\n \"remove_follower_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"のこす\"])},\n \"remove_follower_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ほんとうに、 \", _interpolate(_named(\"user\")), \" をあなたのフォロワーからとりのぞきますか?\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メモをへんしゅうする\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メッセージ\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bot\"])},\n \"approve_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけいれのかくにん\"])},\n \"approve_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけいれる\"])},\n \"approve_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけいれない\"])},\n \"approve_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"user\")), \" のフォローリクエストをうけいれますか?\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールをへんしゅう\"])},\n \"block_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックのかくにん\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(なし)\"])},\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メモ\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザータイムライン\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ごめんなさい。このプロフィールは、そんざいしません。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ごめんなさい。プロフィールのロードがエラーになりました。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"つうほうする: \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このつうほうは、あなたのインスタンスのモデレーターに、おくられます。このアカウントを、つうほうするりゆうを、せつめいすることができます:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ついかのコメント\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このアカウントは、ほかのインスタンスのものです。そのインスタンスにも、このつうほうのコピーを、おくりますか?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"コピーをおくる: \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そうしん\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのリクエストをうけつけようとしましたが、エラーになってしまいました。\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"くわしく\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おすすめユーザー\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアをアップロード\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライ\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーせってい\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローのおねがいを、うけいれる\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートされたないようをみるために、つうちをひらくか、とじる\"])},\n \"autocomplete_available\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"number\")), \"このけっかが、あります。うえとしたのキーをつかって、けっかをみることができます。\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リアクションをつける\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローのおねがいを、ことわる\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブックマーク\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうをすべてみるために、つうちをひらくか、とじる\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アップロードにしっぱいしました。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ファイルがおおきすぎます [\", _interpolate(_named(\"filesize\")), \" \", _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), \" \", _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"しばらくしてから、ためしてください\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"アップロードにしっぱいしました: \", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひとびと\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ハッシュタグ\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" にんが、はなしています\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" にんが、はなしています\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"みつかりませんでした\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これでおわりです\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もっとみる\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードを、わすれましたか?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードリセット\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのメールアドレスかユーザーめいをいれてください。パスワードをリセットするためのリンクをおくります。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのメールアドレスかユーザーめい\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ホームページにもどる\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードリセットを、ためすことが、おおすぎます。しばらくしてから、ためしてください。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスでは、パスワードリセットは、できません。インスタンスのアドミニストレーターに、おといあわせください。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログインするには、パスワードをリセットしてください。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたはパスワードのリセットがひつようです。しかし、まずいことに、このインスタンスでは、パスワードのリセットができなくなっています。このインスタンスのアドミニストレーターに、おといあわせください。\"])}\n },\n \"announcements\": {\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おしらせのないようを、にゅうりょくしてください。\"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おわるじかん: \"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このおしらせは、つかわれていません\"])},\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おしらせ\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おしらせ\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おしらせをとうこう\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よんだことにする\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"エラー: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とじる\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けす\"])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"time\")), \"にはじまります\"])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"time\")), \"におわります\"])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんしゅう\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はじまるじかん: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このイベントはいちにちじゅうやります\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"time\")), \"にこうかいされました\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そうしん\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])}\n },\n \"report\": {\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほうされたステータス:\"])},\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほうしたひと:\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"クローズ\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かいけつしました\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほうされたユーザー:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メモ:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"じょうたい:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オープン\"])}\n },\n \"update\": {\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"もんだいや、バグがあれば、 \", _interpolate(_named(\"pleromaGitlab\")), \" でおしえてください。ちゃんとテストはしているのですが、たくさんのことをかえているので、そしてかいはつバージョンをつかっているので、もんだいやバグに、きづかないことがあります。あなたがきづいたもんだいについての、フィードバックやていあんを、まっています。 Pleroma や Pleroma-FE をよくするやりかたについても、おしえてください。\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてのかわったことのきろく\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"linkToArtist\")), \"によるさくひん\"])},\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すこし、まってください\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"しばらくリリースがありませんでした。おもっていたみためと、ちがうかもしれません。\"])},\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"かわったことをすべてみるには、\", _interpolate(_named(\"theFullChangelog\")), \"をみてください。\"])}\n },\n \"chats\": {\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいチャット\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャット\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなた:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"nickname\")), \" にメッセージ\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けす\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もっとみる\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、このメッセージをけしますか?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャットをよみこむことに、しっぱいしました。\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メッセージをおくることに、しっぱいしました。\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャットがありません。あたらしいチャットボタンをおして、はじめてください!\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma はブラウザーのストレージにアクセスすることができません。あなたがログインしたことと、あなたのローカルのせっていは、ほぞんされません。ほかにももんだいがおきるかもしれません。 Cookie をゆうこうにしてください。\"])}\n },\n \"lists\": {\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リスト\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいリスト\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをさがす\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リストのなまえ\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つくる\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんこうをほぞんする\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リストをけす\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしているひとげんていにする\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リストをかんりする\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リストにふくまれるひとを、かんりする\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もっとユーザーをさがす\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リストからとりのぞく\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リストにいれる\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"リスト \", _interpolate(_named(\"listTitle\")), \" をへんしゅうしています\"])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいリストをつくっています\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なまえをほぞんする\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、リストをけしますか?\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すでにリストのなかにあります\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"リストをへんしゅうするときに、エラーになりました: \", _interpolate(_list(0))])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オーディオ\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ビデオ\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞう\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイル\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きょう\"])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このドメインは、ASCIIいがいのもじをふくんでいます。\"])}\n },\n \"domain_mute_card\": {\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュート\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしています…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートをやめる\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートをやめています…\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js b/priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js
deleted file mode 100644
index d821b20d9..000000000
--- a/priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[8714],{8439:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={about:{mrf:{federation:r=>{const{normalize:n}=r;return n(["フェデレーション"])},mrf_policies:r=>{const{normalize:n}=r;return n(["ゆうこうなMRFポリシー"])},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRFポリシーは、このインスタンスのフェデレーションのふるまいを、いじります。これらのMRFポリシーがゆうこうになっています:"])},simple:{simple_policies:r=>{const{normalize:n}=r;return n(["インスタンスのポリシー"])},accept:r=>{const{normalize:n}=r;return n(["うけいれ"])},accept_desc:r=>{const{normalize:n}=r;return n(["このインスンスは、これらのインスタンスからのメッセージのみをうけいれます:"])},reject:r=>{const{normalize:n}=r;return n(["おことわり"])},reject_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスからのメッセージをうけいれません:"])},quarantine:r=>{const{normalize:n}=r;return n(["けんえき"])},quarantine_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスに、パブリックなとうこうのみを、おくります:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["「つながっているすべてのネットワーク」タイムラインからのぞく"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:"])},media_removal:r=>{const{normalize:n}=r;return n(["メディアをのぞく"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスからおくられてきたメディアを、とりのぞきます:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["メディアをすべてセンシティブにする"])},media_nsfw_desc:r=>{const{normalize:n}=r;return n(["このインスタンスは、これらのインスタンスからおくられてきたメディアを、すべて、センシティブにマークします:"])}}},staff:r=>{const{normalize:n}=r;return n(["スタッフ"])}},chat:{title:r=>{const{normalize:n}=r;return n(["チャット"])}},exporter:{export:r=>{const{normalize:n}=r;return n(["エクスポート"])},processing:r=>{const{normalize:n}=r;return n(["おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます"])}},features_panel:{chat:r=>{const{normalize:n}=r;return n(["チャット"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},media_proxy:r=>{const{normalize:n}=r;return n(["メディアプロクシ"])},scope_options:r=>{const{normalize:n}=r;return n(["こうかいはんいせんたく"])},text_limit:r=>{const{normalize:n}=r;return n(["もじのかず"])},title:r=>{const{normalize:n}=r;return n(["ゆうこうなきのう"])},who_to_follow:r=>{const{normalize:n}=r;return n(["おすすめユーザー"])}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["ユーザーけんさくがエラーになりました"])},find_user:r=>{const{normalize:n}=r;return n(["ユーザーをさがす"])}},general:{apply:r=>{const{normalize:n}=r;return n(["てきよう"])},submit:r=>{const{normalize:n}=r;return n(["そうしん"])},more:r=>{const{normalize:n}=r;return n(["つづき"])},generic_error:r=>{const{normalize:n}=r;return n(["エラーになりました"])},optional:r=>{const{normalize:n}=r;return n(["かかなくてもよい"])},show_more:r=>{const{normalize:n}=r;return n(["つづきをみる"])},show_less:r=>{const{normalize:n}=r;return n(["たたむ"])},cancel:r=>{const{normalize:n}=r;return n(["キャンセル"])},disable:r=>{const{normalize:n}=r;return n(["なし"])},enable:r=>{const{normalize:n}=r;return n(["あり"])},confirm:r=>{const{normalize:n}=r;return n(["たしかめる"])},verify:r=>{const{normalize:n}=r;return n(["たしかめる"])}},image_cropper:{crop_picture:r=>{const{normalize:n}=r;return n(["がぞうをきりぬく"])},save:r=>{const{normalize:n}=r;return n(["セーブ"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["きりぬかずにセーブ"])},cancel:r=>{const{normalize:n}=r;return n(["キャンセル"])}},importer:{submit:r=>{const{normalize:n}=r;return n(["そうしん"])},success:r=>{const{normalize:n}=r;return n(["インポートできました。"])},error:r=>{const{normalize:n}=r;return n(["インポートがエラーになりました。"])}},login:{login:r=>{const{normalize:n}=r;return n(["ログイン"])},description:r=>{const{normalize:n}=r;return n(["OAuthでログイン"])},logout:r=>{const{normalize:n}=r;return n(["ログアウト"])},password:r=>{const{normalize:n}=r;return n(["パスワード"])},placeholder:r=>{const{normalize:n}=r;return n(["れい: lain"])},register:r=>{const{normalize:n}=r;return n(["はじめる"])},username:r=>{const{normalize:n}=r;return n(["ユーザーめい"])},hint:r=>{const{normalize:n}=r;return n(["はなしあいにくわわるには、ログインしてください"])},authentication_code:r=>{const{normalize:n}=r;return n(["にんしょうコード"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["リカバリーコードをいれてください"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["2-ファクターコードをいれてください"])},recovery_code:r=>{const{normalize:n}=r;return n(["リカバリーコード"])},heading:{totp:r=>{const{normalize:n}=r;return n(["2-ファクターにんしょう"])},recovery:r=>{const{normalize:n}=r;return n(["2-ファクターリカバリー"])}}},media_modal:{previous:r=>{const{normalize:n}=r;return n(["まえ"])},next:r=>{const{normalize:n}=r;return n(["つぎ"])}},nav:{about:r=>{const{normalize:n}=r;return n(["これはなに?"])},administration:r=>{const{normalize:n}=r;return n(["アドミニストレーション"])},back:r=>{const{normalize:n}=r;return n(["もどる"])},chat:r=>{const{normalize:n}=r;return n(["ローカルチャット"])},friend_requests:r=>{const{normalize:n}=r;return n(["フォローリクエスト"])},mentions:r=>{const{normalize:n}=r;return n(["メンション"])},interactions:r=>{const{normalize:n}=r;return n(["やりとり"])},dms:r=>{const{normalize:n}=r;return n(["ダイレクトメッセージ"])},public_tl:r=>{const{normalize:n}=r;return n(["パブリックタイムライン"])},timeline:r=>{const{normalize:n}=r;return n(["タイムライン"])},twkn:r=>{const{normalize:n}=r;return n(["つながっているすべてのネットワーク"])},user_search:r=>{const{normalize:n}=r;return n(["ユーザーをさがす"])},search:r=>{const{normalize:n}=r;return n(["さがす"])},who_to_follow:r=>{const{normalize:n}=r;return n(["おすすめユーザー"])},preferences:r=>{const{normalize:n}=r;return n(["せってい"])}},notifications:{broken_favorite:r=>{const{normalize:n}=r;return n(["ステータスがみつかりません。さがしています…"])},favorited_you:r=>{const{normalize:n}=r;return n(["あなたのステータスがおきにいりされました"])},followed_you:r=>{const{normalize:n}=r;return n(["フォローされました"])},load_older:r=>{const{normalize:n}=r;return n(["ふるいつうちをみる"])},notifications:r=>{const{normalize:n}=r;return n(["つうち"])},read:r=>{const{normalize:n}=r;return n(["よんだ!"])},repeated_you:r=>{const{normalize:n}=r;return n(["あなたのステータスがリピートされました"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["つうちはありません"])}},polls:{add_poll:r=>{const{normalize:n}=r;return n(["いれふだをはじめる"])},add_option:r=>{const{normalize:n}=r;return n(["オプションをふやす"])},option:r=>{const{normalize:n}=r;return n(["オプション"])},votes:r=>{const{normalize:n}=r;return n(["いれふだ"])},vote:r=>{const{normalize:n}=r;return n(["ふだをいれる"])},type:r=>{const{normalize:n}=r;return n(["いれふだのかた"])},single_choice:r=>{const{normalize:n}=r;return n(["ひとつえらぶ"])},multiple_choices:r=>{const{normalize:n}=r;return n(["いくつでもえらべる"])},expiry:r=>{const{normalize:n}=r;return n(["いれふだのながさ"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["いれふだは ",e(t(0))," で、おわります"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["いれふだは ",e(t(0))," まえに、おわりました"])},not_enough_options:r=>{const{normalize:n}=r;return n(["ユニークなオプションが、たりません"])}},emoji:{stickers:r=>{const{normalize:n}=r;return n(["ステッカー"])},emoji:r=>{const{normalize:n}=r;return n(["えもじ"])},keep_open:r=>{const{normalize:n}=r;return n(["ピッカーをあけたままにする"])},search_emoji:r=>{const{normalize:n}=r;return n(["えもじをさがす"])},add_emoji:r=>{const{normalize:n}=r;return n(["えもじをうちこむ"])},custom:r=>{const{normalize:n}=r;return n(["カスタムえもじ"])},unicode:r=>{const{normalize:n}=r;return n(["ユニコードえもじ"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["はじめの ",e(t("saneAmount"))," このえもじだけがロードされています。すべてのえもじをロードすると、パフォーマンスがわるくなるかもしれません。"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["すべてのえもじをロード (",e(t("emojiAmount"))," こあります)"])}},stickers:{add_sticker:r=>{const{normalize:n}=r;return n(["ステッカーをふやす"])}},interactions:{favs_repeats:r=>{const{normalize:n}=r;return n(["リピートとおきにいり"])},follows:r=>{const{normalize:n}=r;return n(["あたらしいフォロー"])},load_older:r=>{const{normalize:n}=r;return n(["ふるいやりとりをみる"])}},post_status:{new_status:r=>{const{normalize:n}=r;return n(["とうこうする"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["あなたのアカウントは ",e(t(0))," ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["ロックされたアカウント"])},attachments_sensitive:r=>{const{normalize:n}=r;return n(["ファイルをNSFWにする"])},content_type:{"text/plain":r=>{const{normalize:n}=r;return n(["プレーンテキスト"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])}},content_warning:r=>{const{normalize:n}=r;return n(["せつめい (かかなくてもよい)"])},default:r=>{const{normalize:n}=r;return n(["はねだくうこうに、つきました。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["このとうこうは、メンションされたすべてのユーザーが、みることができます。"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。"])},direct_warning:r=>{const{normalize:n}=r;return n(["このステータスは、メンションされたユーザーだけが、よむことができます。"])},posting:r=>{const{normalize:n}=r;return n(["とうこう"])},scope_notice:{public:r=>{const{normalize:n}=r;return n(["このとうこうは、だれでもみることができます"])},private:r=>{const{normalize:n}=r;return n(["このとうこうは、あなたのフォロワーだけが、みることができます"])},unlisted:r=>{const{normalize:n}=r;return n(["このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません"])}},scope:{direct:r=>{const{normalize:n}=r;return n(["ダイレクト: メンションされたユーザーのみにとどきます"])},private:r=>{const{normalize:n}=r;return n(["フォロワーげんてい: フォロワーのみにとどきます"])},public:r=>{const{normalize:n}=r;return n(["パブリック: パブリックタイムラインにとどきます"])},unlisted:r=>{const{normalize:n}=r;return n(["アンリステッド: パブリックタイムラインにとどきません"])}}},registration:{bio:r=>{const{normalize:n}=r;return n(["プロフィール"])},email:r=>{const{normalize:n}=r;return n(["Eメール"])},fullname:r=>{const{normalize:n}=r;return n(["スクリーンネーム"])},password_confirm:r=>{const{normalize:n}=r;return n(["パスワードのかくにん"])},registration:r=>{const{normalize:n}=r;return n(["はじめる"])},token:r=>{const{normalize:n}=r;return n(["しょうたいトークン"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},new_captcha:r=>{const{normalize:n}=r;return n(["もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります"])},username_placeholder:r=>{const{normalize:n}=r;return n(["れい: lain"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["れい: いわくら れいん"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["れい:\nごきげんよう。わたしはれいん。\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。"])},validations:{username_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},fullname_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},email_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},password_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["なにかかいてください"])},password_confirmation_match:r=>{const{normalize:n}=r;return n(["パスワードがちがいます"])}}},remote_user_resolver:{remote_user_resolver:r=>{const{normalize:n}=r;return n(["リモートユーザーリゾルバー"])},searching_for:r=>{const{normalize:n}=r;return n(["さがしています:"])},error:r=>{const{normalize:n}=r;return n(["みつかりませんでした。"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["すべてえらぶ"])}},settings:{app_name:r=>{const{normalize:n}=r;return n(["アプリのなまえ"])},security:r=>{const{normalize:n}=r;return n(["セキュリティ"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください"])},mfa:{otp:r=>{const{normalize:n}=r;return n(["OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["OTPをつくる"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["OTPをよういしています"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["OTPをたしかめて、ゆうこうにする"])},title:r=>{const{normalize:n}=r;return n(["2-ファクターにんしょう"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["あたらしいリカバリーコードをつくる"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。"])},recovery_codes:r=>{const{normalize:n}=r;return n(["リカバリーコード。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["バックアップコードをうけとっています…"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。"])},authentication_methods:r=>{const{normalize:n}=r;return n(["にんしょうメソッド"])},scan:{title:r=>{const{normalize:n}=r;return n(["スキャン"])},desc:r=>{const{normalize:n}=r;return n(["あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:"])},secret_code:r=>{const{normalize:n}=r;return n(["キー"])}},verify:{desc:r=>{const{normalize:n}=r;return n(["2-ファクターにんしょうをつかうには、あなたの2-ファクターアプリのコードをいれてください:"])}}},attachmentRadius:r=>{const{normalize:n}=r;return n(["ファイル"])},attachments:r=>{const{normalize:n}=r;return n(["ファイル"])},avatar:r=>{const{normalize:n}=r;return n(["アバター"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["つうちのアバター"])},avatarRadius:r=>{const{normalize:n}=r;return n(["アバター"])},background:r=>{const{normalize:n}=r;return n(["バックグラウンド"])},bio:r=>{const{normalize:n}=r;return n(["プロフィール"])},block_export:r=>{const{normalize:n}=r;return n(["ブロックのエクスポート"])},block_export_button:r=>{const{normalize:n}=r;return n(["ブロックをCSVファイルにエクスポート"])},block_import:r=>{const{normalize:n}=r;return n(["ブロックのインポート"])},block_import_error:r=>{const{normalize:n}=r;return n(["ブロックのインポートがエラーになりました"])},blocks_imported:r=>{const{normalize:n}=r;return n(["ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。"])},blocks_tab:r=>{const{normalize:n}=r;return n(["ブロック"])},btnRadius:r=>{const{normalize:n}=r;return n(["ボタン"])},cBlue:r=>{const{normalize:n}=r;return n(["リプライとフォロー"])},cGreen:r=>{const{normalize:n}=r;return n(["リピート"])},cOrange:r=>{const{normalize:n}=r;return n(["おきにいり"])},cRed:r=>{const{normalize:n}=r;return n(["キャンセル"])},change_email:r=>{const{normalize:n}=r;return n(["メールアドレスをかえる"])},change_email_error:r=>{const{normalize:n}=r;return n(["メールアドレスをかえようとしましたが、なにかがおかしいです。"])},changed_email:r=>{const{normalize:n}=r;return n(["メールアドレスをかえることができました!"])},change_password:r=>{const{normalize:n}=r;return n(["パスワードをかえる"])},change_password_error:r=>{const{normalize:n}=r;return n(["パスワードをかえることが、できなかったかもしれません。"])},changed_password:r=>{const{normalize:n}=r;return n(["パスワードが、かわりました!"])},collapse_subject:r=>{const{normalize:n}=r;return n(["せつめいのあるとうこうをたたむ"])},composing:r=>{const{normalize:n}=r;return n(["とうこう"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["あたらしいパスワードのかくにん"])},current_avatar:r=>{const{normalize:n}=r;return n(["いまのアバター"])},current_password:r=>{const{normalize:n}=r;return n(["いまのパスワード"])},current_profile_banner:r=>{const{normalize:n}=r;return n(["いまのプロフィールバナー"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["インポートとエクスポート"])},default_vis:r=>{const{normalize:n}=r;return n(["デフォルトのこうかいはんい"])},delete_account:r=>{const{normalize:n}=r;return n(["アカウントをけす"])},delete_account_description:r=>{const{normalize:n}=r;return n(["あなたのアカウントとメッセージが、きえます。"])},delete_account_error:r=>{const{normalize:n}=r;return n(["アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。"])},discoverable:r=>{const{normalize:n}=r;return n(["けんさくなどのサービスで、このアカウントをみつけてもよい"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。"])},pad_emoji:r=>{const{normalize:n}=r;return n(["えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる"])},export_theme:r=>{const{normalize:n}=r;return n(["セーブ"])},filtering:r=>{const{normalize:n}=r;return n(["フィルタリング"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください"])},follow_export:r=>{const{normalize:n}=r;return n(["フォローのエクスポート"])},follow_export_button:r=>{const{normalize:n}=r;return n(["エクスポート"])},follow_export_processing:r=>{const{normalize:n}=r;return n(["おまちください。まもなくファイルをダウンロードできます。"])},follow_import:r=>{const{normalize:n}=r;return n(["フォローインポート"])},follow_import_error:r=>{const{normalize:n}=r;return n(["フォローのインポートがエラーになりました"])},follows_imported:r=>{const{normalize:n}=r;return n(["フォローがインポートされました! すこしじかんがかかるかもしれません。"])},foreground:r=>{const{normalize:n}=r;return n(["フォアグラウンド"])},general:r=>{const{normalize:n}=r;return n(["ぜんぱん"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["スレッドのファイルをかくす"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["タイムラインのファイルをかくす"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["ミュートしたユーザーのとうこうをかくす"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["ひとつのとうこうにいれられるサムネイルのかず"])},hide_isp:r=>{const{normalize:n}=r;return n(["インスタンススペシフィックパネルをかくす"])},preload_images:r=>{const{normalize:n}=r;return n(["がぞうをさきよみする"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["NSFWなファイルを1クリックでひらく"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["とうこうのとうけいをかくす (れい: おきにいりのかず)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["ユーザーのとうけいをかくす (れい: フォロワーのかず)"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["フィルターされたとうこうをかくす"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["CSVファイルからブロックをインポートする"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["CSVファイルからフォローをインポートする"])},import_theme:r=>{const{normalize:n}=r;return n(["ロード"])},inputRadius:r=>{const{normalize:n}=r;return n(["インプットフィールド"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["チェックボックス"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(デフォルト: ",e(t("value")),")"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(デフォルト)"])},interface:r=>{const{normalize:n}=r;return n(["インターフェース"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["インターフェースのことば"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["このファイルはPleromaのテーマではありません。テーマはへんこうされませんでした。"])},limited_availability:r=>{const{normalize:n}=r;return n(["あなたのブラウザではできません"])},links:r=>{const{normalize:n}=r;return n(["リンク"])},lock_account_description:r=>{const{normalize:n}=r;return n(["あなたがみとめたひとだけ、あなたのアカウントをフォローできる"])},loop_video:r=>{const{normalize:n}=r;return n(["ビデオをくりかえす"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["おとのないビデオだけくりかえす"])},mutes_tab:r=>{const{normalize:n}=r;return n(["ミュート"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["ビデオをメディアビューアーでみる"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["がぞうのサムネイルを、きりぬかない"])},name:r=>{const{normalize:n}=r;return n(["なまえ"])},name_bio:r=>{const{normalize:n}=r;return n(["なまえとプロフィール"])},new_email:r=>{const{normalize:n}=r;return n(["あたらしいメールアドレス"])},new_password:r=>{const{normalize:n}=r;return n(["あたらしいパスワード"])},notification_visibility:r=>{const{normalize:n}=r;return n(["ひょうじするつうち"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["フォロー"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["おきにいり"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["メンション"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["リピート"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["リッチテキストをつかわない"])},no_blocks:r=>{const{normalize:n}=r;return n(["ブロックしていません"])},no_mutes:r=>{const{normalize:n}=r;return n(["ミュートしていません"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["フォローしているひとをみせない"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["フォロワーをみせない"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["フォローしているひとのかずをみせない"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["フォロワーのかずをみせない"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["アドミンのしるしをみせる"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["モデレーターのしるしをみせる"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["NSFWなファイルをかくす"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuthトークン"])},token:r=>{const{normalize:n}=r;return n(["トークン"])},refresh_token:r=>{const{normalize:n}=r;return n(["トークンをリフレッシュ"])},valid_until:r=>{const{normalize:n}=r;return n(["おわりのとき"])},revoke_token:r=>{const{normalize:n}=r;return n(["とりけす"])},panelRadius:r=>{const{normalize:n}=r;return n(["パネル"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["タブにフォーカスがないときストリーミングをとめる"])},presets:r=>{const{normalize:n}=r;return n(["プリセット"])},profile_background:r=>{const{normalize:n}=r;return n(["プロフィールのバックグラウンド"])},profile_banner:r=>{const{normalize:n}=r;return n(["プロフィールバナー"])},profile_tab:r=>{const{normalize:n}=r;return n(["プロフィール"])},radii_help:r=>{const{normalize:n}=r;return n(["インターフェースのまるさをせっていする"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["タイムラインのリプライ"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["すべてのリプライをみる"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["わたしにあてられたリプライと、フォローしているひとからのリプライをみる"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["わたしにあてられたリプライをみる"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["あたらしいとうこうのボタンを、じどうてきにかくす (モバイル)"])},saving_err:r=>{const{normalize:n}=r;return n(["せっていをセーブできませんでした"])},saving_ok:r=>{const{normalize:n}=r;return n(["せっていをセーブしました"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["ブロックしたいひとを、ここでけんさくできます"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["ミュートしたいひとを、ここでけんさくできます"])},security_tab:r=>{const{normalize:n}=r;return n(["セキュリティ"])},scope_copy:r=>{const{normalize:n}=r;return n(["リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["こうかいはんいせんたくオプションを、ちいさくする"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["あたらしいアバターをせっていする"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["あたらしいプロフィールのバックグラウンドをせっていする"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["あたらしいプロフィールバナーを設定する"])},settings:r=>{const{normalize:n}=r;return n(["せってい"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["サブジェクトフィールドをいつでもひょうじする"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["リプライするときサブジェクトをコピーする"])},subject_line_email:r=>{const{normalize:n}=r;return n(['メールふう: "re: サブジェクト"'])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["マストドンふう: そのままコピー"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["コピーしない"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["とうこうのコンテントタイプ"])},stop_gifs:r=>{const{normalize:n}=r;return n(["カーソルをかさねたとき、GIFをうごかす"])},streaming:r=>{const{normalize:n}=r;return n(["うえまでスクロールしたとき、じどうてきにストリーミングする"])},text:r=>{const{normalize:n}=r;return n(["もじ"])},theme:r=>{const{normalize:n}=r;return n(["テーマ"])},theme_help:r=>{const{normalize:n}=r;return n(["カラーテーマをカスタマイズできます。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["がぞうをアップロード"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["ツールチップとアラート"])},user_settings:r=>{const{normalize:n}=r;return n(["ユーザーせってい"])},values:{false:r=>{const{normalize:n}=r;return n(["いいえ"])},true:r=>{const{normalize:n}=r;return n(["はい"])}},fun:r=>{const{normalize:n}=r;return n(["おたのしみ"])},greentext:r=>{const{normalize:n}=r;return n(["ミームやじるし"])},notifications:r=>{const{normalize:n}=r;return n(["つうち"])},notification_mutes:r=>{const{normalize:n}=r;return n(["あるユーザーからのつうちをとめるには、ミュートしてください。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["ブロックしているユーザーからのつうちは、すべてとまります。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["ウェブプッシュつうちをゆるす"])},style:{switcher:{keep_color:r=>{const{normalize:n}=r;return n(["いろをのこす"])},keep_shadows:r=>{const{normalize:n}=r;return n(["かげをのこす"])},keep_opacity:r=>{const{normalize:n}=r;return n(["とうめいどをのこす"])},keep_roundness:r=>{const{normalize:n}=r;return n(["まるさをのこす"])},keep_fonts:r=>{const{normalize:n}=r;return n(["フォントをのこす"])},save_load_hint:r=>{const{normalize:n}=r;return n(["「のこす」オプションをONにすると、テーマをえらんだときとロードしたとき、いまのせっていをのこします。また、テーマをエクスポートするとき、これらのオプションをストアします。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべてのせっていをセーブします。"])},reset:r=>{const{normalize:n}=r;return n(["リセット"])},clear_all:r=>{const{normalize:n}=r;return n(["すべてクリア"])},clear_opacity:r=>{const{normalize:n}=r;return n(["とうめいどをクリア"])}},common:{color:r=>{const{normalize:n}=r;return n(["いろ"])},opacity:r=>{const{normalize:n}=r;return n(["とうめいど"])},contrast:{hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["コントラストは ",e(t("ratio"))," です。",e(t("level")),"。(",e(t("context")),")"])},level:{aa:r=>{const{normalize:n}=r;return n(["AAレベルガイドライン (ミニマル) をみたします"])},aaa:r=>{const{normalize:n}=r;return n(["AAAレベルガイドライン (レコメンデッド) をみたします"])},bad:r=>{const{normalize:n}=r;return n(["ガイドラインをみたしません"])}},context:{"18pt":r=>{const{normalize:n}=r;return n(["おおきい (18ポイントいじょう) テキスト"])},text:r=>{const{normalize:n}=r;return n(["テキスト"])}}}},common_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["きょうつう"])},main:r=>{const{normalize:n}=r;return n(["きょうつうのいろ"])},foreground_hint:r=>{const{normalize:n}=r;return n(["「くわしく」タブで、もっとこまかくせっていできます"])},rgbo:r=>{const{normalize:n}=r;return n(["アイコンとアクセントとバッジ"])}},advanced_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["くわしく"])},alert:r=>{const{normalize:n}=r;return n(["アラートのバックグラウンド"])},alert_error:r=>{const{normalize:n}=r;return n(["エラー"])},alert_warning:r=>{const{normalize:n}=r;return n(["けいこく"])},badge:r=>{const{normalize:n}=r;return n(["バッジのバックグラウンド"])},badge_notification:r=>{const{normalize:n}=r;return n(["つうち"])},panel_header:r=>{const{normalize:n}=r;return n(["パネルヘッダー"])},top_bar:r=>{const{normalize:n}=r;return n(["トップバー"])},borders:r=>{const{normalize:n}=r;return n(["さかいめ"])},buttons:r=>{const{normalize:n}=r;return n(["ボタン"])},inputs:r=>{const{normalize:n}=r;return n(["インプットフィールド"])},faint_text:r=>{const{normalize:n}=r;return n(["うすいテキスト"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["まるさ"])}},shadows:{_tab_label:r=>{const{normalize:n}=r;return n(["ひかりとかげ"])},component:r=>{const{normalize:n}=r;return n(["コンポーネント"])},override:r=>{const{normalize:n}=r;return n(["オーバーライド"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["かげ #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["ぼかし"])},spread:r=>{const{normalize:n}=r;return n(["ひろがり"])},inset:r=>{const{normalize:n}=r;return n(["うちがわ"])},hint:r=>{const{normalize:n}=r;return n(["かげのせっていでは、いろのあたいとして --variable をつかうことができます。これはCSS3へんすうです。ただし、とうめいどのせっていは、きかなくなります。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["ブラウザーがサポートしていれば、つねに ",e(t(0))," がつかわれます。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," は、",e(t(1))," パラメーターと ",e(t(2))," キーワードをサポートしていません。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。"])},spread_zero:r=>{const{normalize:n}=r;return n(["ひろがりが 0 よりもおおきなかげは、0 とおなじです"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["うちがわのかげは ",e(t(0))," をつかいます"])}},components:{panel:r=>{const{normalize:n}=r;return n(["パネル"])},panelHeader:r=>{const{normalize:n}=r;return n(["パネルヘッダー"])},topBar:r=>{const{normalize:n}=r;return n(["トップバー"])},avatar:r=>{const{normalize:n}=r;return n(["ユーザーアバター (プロフィール)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["ユーザーアバター (とうこう)"])},popup:r=>{const{normalize:n}=r;return n(["ポップアップとツールチップ"])},button:r=>{const{normalize:n}=r;return n(["ボタン"])},buttonHover:r=>{const{normalize:n}=r;return n(["ボタン (ホバー)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["ボタン (おされているとき)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["ボタン (ホバー、かつ、おされているとき)"])},input:r=>{const{normalize:n}=r;return n(["インプットフィールド"])}}},fonts:{_tab_label:r=>{const{normalize:n}=r;return n(["フォント"])},help:r=>{const{normalize:n}=r;return n(["「カスタム」をえらんだときは、システムにあるフォントのなまえを、ただしくにゅうりょくしてください。"])},components:{interface:r=>{const{normalize:n}=r;return n(["インターフェース"])},input:r=>{const{normalize:n}=r;return n(["インプットフィールド"])},post:r=>{const{normalize:n}=r;return n(["とうこう"])},postCode:r=>{const{normalize:n}=r;return n(["モノスペース (とうこうがリッチテキストであるとき)"])}},family:r=>{const{normalize:n}=r;return n(["フォントめい"])},size:r=>{const{normalize:n}=r;return n(["おおきさ (px)"])},weight:r=>{const{normalize:n}=r;return n(["ふとさ"])},custom:r=>{const{normalize:n}=r;return n(["カスタム"])}},preview:{header:r=>{const{normalize:n}=r;return n(["プレビュー"])},content:r=>{const{normalize:n}=r;return n(["ほんぶん"])},error:r=>{const{normalize:n}=r;return n(["エラーのれい"])},button:r=>{const{normalize:n}=r;return n(["ボタン"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["これは",e(t(0)),"と",e(t(1)),"のれいです"])},mono:r=>{const{normalize:n}=r;return n(["monospace"])},input:r=>{const{normalize:n}=r;return n(["はねだくうこうに、つきました。"])},faint_link:r=>{const{normalize:n}=r;return n(["とてもたすけになるマニュアル"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["わたしたちの",e(t(0)),"を、よまないでください!"])},header_faint:r=>{const{normalize:n}=r;return n(["エラーではありません"])},checkbox:r=>{const{normalize:n}=r;return n(["りようきやくを、よみました"])},link:r=>{const{normalize:n}=r;return n(["ハイパーリンク"])}}},version:{title:r=>{const{normalize:n}=r;return n(["バージョン"])},backend_version:r=>{const{normalize:n}=r;return n(["バックエンドのバージョン"])},frontend_version:r=>{const{normalize:n}=r;return n(["フロントエンドのバージョン"])}}},time:{day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"日"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時間"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"で"])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"分"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"ヶ月前"])},now:r=>{const{normalize:n}=r;return n(["たった今"])},now_short:r=>{const{normalize:n}=r;return n(["たった今"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"秒"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"週間"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])}},timeline:{collapse:r=>{const{normalize:n}=r;return n(["たたむ"])},conversation:r=>{const{normalize:n}=r;return n(["スレッド"])},error_fetching:r=>{const{normalize:n}=r;return n(["よみこみがエラーになりました"])},load_older:r=>{const{normalize:n}=r;return n(["ふるいステータス"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります"])},repeated:r=>{const{normalize:n}=r;return n(["リピート"])},show_new:r=>{const{normalize:n}=r;return n(["よみこみ"])},up_to_date:r=>{const{normalize:n}=r;return n(["さいしん"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["これでおわりです"])},no_statuses:r=>{const{normalize:n}=r;return n(["ありません"])}},status:{favorites:r=>{const{normalize:n}=r;return n(["おきにいり"])},repeats:r=>{const{normalize:n}=r;return n(["リピート"])},delete:r=>{const{normalize:n}=r;return n(["ステータスをけす"])},pin:r=>{const{normalize:n}=r;return n(["プロフィールにピンどめする"])},unpin:r=>{const{normalize:n}=r;return n(["プロフィールにピンどめするのをやめる"])},pinned:r=>{const{normalize:n}=r;return n(["ピンどめ"])},delete_confirm:r=>{const{normalize:n}=r;return n(["ほんとうに、このステータスを、けしてもいいですか?"])},reply_to:r=>{const{normalize:n}=r;return n(["へんしん:"])},replies_list:r=>{const{normalize:n}=r;return n(["へんしん:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["スレッドをミュートする"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["スレッドをミュートするのをやめる"])}},user_card:{approve:r=>{const{normalize:n}=r;return n(["うけいれ"])},block:r=>{const{normalize:n}=r;return n(["ブロック"])},blocked:r=>{const{normalize:n}=r;return n(["ブロックしています!"])},deny:r=>{const{normalize:n}=r;return n(["おことわり"])},favorites:r=>{const{normalize:n}=r;return n(["おきにいり"])},follow:r=>{const{normalize:n}=r;return n(["フォロー"])},follow_sent:r=>{const{normalize:n}=r;return n(["リクエストを、おくりました!"])},follow_progress:r=>{const{normalize:n}=r;return n(["リクエストしています…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["フォローをやめる"])},followees:r=>{const{normalize:n}=r;return n(["フォロー"])},followers:r=>{const{normalize:n}=r;return n(["フォロワー"])},following:r=>{const{normalize:n}=r;return n(["フォローしています!"])},follows_you:r=>{const{normalize:n}=r;return n(["フォローされました!"])},hidden:r=>{const{normalize:n}=r;return n(["かくされています"])},its_you:r=>{const{normalize:n}=r;return n(["これはあなたです!"])},media:r=>{const{normalize:n}=r;return n(["メディア"])},mention:r=>{const{normalize:n}=r;return n(["メンション"])},mute:r=>{const{normalize:n}=r;return n(["ミュート"])},muted:r=>{const{normalize:n}=r;return n(["ミュートしています!"])},per_day:r=>{const{normalize:n}=r;return n(["/日"])},remote_follow:r=>{const{normalize:n}=r;return n(["リモートフォロー"])},report:r=>{const{normalize:n}=r;return n(["つうほう"])},statuses:r=>{const{normalize:n}=r;return n(["ステータス"])},subscribe:r=>{const{normalize:n}=r;return n(["サブスクライブ"])},unsubscribe:r=>{const{normalize:n}=r;return n(["サブスクライブをやめる"])},unblock:r=>{const{normalize:n}=r;return n(["ブロックをやめる"])},unblock_progress:r=>{const{normalize:n}=r;return n(["ブロックをとりけしています…"])},block_progress:r=>{const{normalize:n}=r;return n(["ブロックしています…"])},unmute:r=>{const{normalize:n}=r;return n(["ミュートをやめる"])},unmute_progress:r=>{const{normalize:n}=r;return n(["ミュートをとりけしています…"])},mute_progress:r=>{const{normalize:n}=r;return n(["ミュートしています…"])},hide_repeats:r=>{const{normalize:n}=r;return n(["リピートをかくす"])},show_repeats:r=>{const{normalize:n}=r;return n(["リピートをみる"])},admin_menu:{moderation:r=>{const{normalize:n}=r;return n(["モデレーション"])},grant_admin:r=>{const{normalize:n}=r;return n(["アドミンにする"])},revoke_admin:r=>{const{normalize:n}=r;return n(["アドミンをやめさせる"])},grant_moderator:r=>{const{normalize:n}=r;return n(["モデレーターにする"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["モデレーターをやめさせる"])},activate_account:r=>{const{normalize:n}=r;return n(["アカウントをアクティブにする"])},deactivate_account:r=>{const{normalize:n}=r;return n(["アカウントをアクティブでなくする"])},delete_account:r=>{const{normalize:n}=r;return n(["アカウントをけす"])},force_nsfw:r=>{const{normalize:n}=r;return n(["すべてのとうこうをNSFWにする"])},strip_media:r=>{const{normalize:n}=r;return n(["とうこうからメディアをなくす"])},force_unlisted:r=>{const{normalize:n}=r;return n(["とうこうをアンリステッドにする"])},sandbox:r=>{const{normalize:n}=r;return n(["とうこうをフォロワーのみにする"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["ほかのインスタンスからフォローされないようにする"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["フォローされないようにする"])},quarantine:r=>{const{normalize:n}=r;return n(["ほかのインスタンスのユーザーのとうこうをとめる"])},delete_user:r=>{const{normalize:n}=r;return n(["ユーザーをけす"])}}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["ユーザータイムライン"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["ごめんなさい。このプロフィールは、そんざいしません。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["ごめんなさい。プロフィールのロードがエラーになりました。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["つうほうする: ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["このつうほうは、あなたのインスタンスのモデレーターに、おくられます。このアカウントを、つうほうするりゆうを、せつめいすることができます:"])},additional_comments:r=>{const{normalize:n}=r;return n(["ついかのコメント"])},forward_description:r=>{const{normalize:n}=r;return n(["このアカウントは、ほかのインスタンスのものです。そのインスタンスにも、このつうほうのコピーを、おくりますか?"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["コピーをおくる: ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["そうしん"])},generic_error:r=>{const{normalize:n}=r;return n(["あなたのリクエストをうけつけようとしましたが、エラーになってしまいました。"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["くわしく"])},who_to_follow:r=>{const{normalize:n}=r;return n(["おすすめユーザー"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["メディアをアップロード"])},repeat:r=>{const{normalize:n}=r;return n(["リピート"])},reply:r=>{const{normalize:n}=r;return n(["リプライ"])},favorite:r=>{const{normalize:n}=r;return n(["おきにいり"])},user_settings:r=>{const{normalize:n}=r;return n(["ユーザーせってい"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["アップロードにしっぱいしました。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["ファイルがおおきすぎます [",e(t("filesize"))," ",e(t("filesizeunit"))," / ",e(t("allowedsize"))," ",e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["しばらくしてから、ためしてください"])}},file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])}}},search:{people:r=>{const{normalize:n}=r;return n(["ひとびと"])},hashtags:r=>{const{normalize:n}=r;return n(["ハッシュタグ"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," にんが、はなしています"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," にんが、はなしています"])},no_results:r=>{const{normalize:n}=r;return n(["みつかりませんでした"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["パスワードを、わすれましたか?"])},password_reset:r=>{const{normalize:n}=r;return n(["パスワードリセット"])},instruction:r=>{const{normalize:n}=r;return n(["あなたのメールアドレスかユーザーめいをいれてください。パスワードをリセットするためのリンクをおくります。"])},placeholder:r=>{const{normalize:n}=r;return n(["あなたのメールアドレスかユーザーめい"])},check_email:r=>{const{normalize:n}=r;return n(["パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。"])},return_home:r=>{const{normalize:n}=r;return n(["ホームページにもどる"])},too_many_requests:r=>{const{normalize:n}=r;return n(["パスワードリセットを、ためすことが、おおすぎます。しばらくしてから、ためしてください。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["このインスタンスでは、パスワードリセットは、できません。インスタンスのアドミニストレーターに、おといあわせください。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["ログインするには、パスワードをリセットしてください。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["あなたはパスワードのリセットがひつようです。しかし、まずいことに、このインスタンスでは、パスワードのリセットができなくなっています。このインスタンスのアドミニストレーターに、おといあわせください。"])}}}}}]);
-//# sourceMappingURL=ja_easy-json.79705c1ec254307d2224.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js.map b/priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js.map
deleted file mode 100644
index 0a427e44c..000000000
--- a/priv/static/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/i18n/ja_easy-json.79705c1ec254307d2224.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/ja_easy.json"],"sourcesContent":["export default {\n \"about\": {\n \"mrf\": {\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フェデレーション\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ゆうこうなMRFポリシー\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRFポリシーは、このインスタンスのフェデレーションのふるまいを、いじります。これらのMRFポリシーがゆうこうになっています:\"])},\n \"simple\": {\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスのポリシー\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけいれ\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスンスは、これらのインスタンスからのメッセージのみをうけいれます:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おことわり\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスからのメッセージをうけいれません:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けんえき\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスに、パブリックなとうこうのみを、おくります:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「つながっているすべてのネットワーク」タイムラインからのぞく\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアをのぞく\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスからおくられてきたメディアを、とりのぞきます:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアをすべてセンシティブにする\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスは、これらのインスタンスからおくられてきたメディアを、すべて、センシティブにマークします:\"])}\n }\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スタッフ\"])}\n },\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャット\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エクスポート\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チャット\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアプロクシ\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"こうかいはんいせんたく\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もじのかず\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ゆうこうなきのう\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おすすめユーザー\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーけんさくがエラーになりました\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをさがす\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"てきよう\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そうしん\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つづき\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラーになりました\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かかなくてもよい\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つづきをみる\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たたむ\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なし\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あり\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たしかめる\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たしかめる\"])}\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうをきりぬく\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セーブ\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きりぬかずにセーブ\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そうしん\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インポートできました。\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インポートがエラーになりました。\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログイン\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuthでログイン\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログアウト\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワード\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい: lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はじめる\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーめい\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はなしあいにくわわるには、ログインしてください\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"にんしょうコード\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リカバリーコードをいれてください\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターコードをいれてください\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リカバリーコード\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターにんしょう\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターリカバリー\"])}\n }\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"まえ\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つぎ\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これはなに?\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミニストレーション\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もどる\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ローカルチャット\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローリクエスト\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンション\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"やりとり\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ダイレクトメッセージ\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パブリックタイムライン\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムライン\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つながっているすべてのネットワーク\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをさがす\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さがす\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おすすめユーザー\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せってい\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがみつかりません。さがしています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがおきにいりされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいつうちをみる\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よんだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちはありません\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いれふだをはじめる\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オプションをふやす\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オプション\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いれふだ\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふだをいれる\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いれふだのかた\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひとつえらぶ\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いくつでもえらべる\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いれふだのながさ\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"いれふだは \", _interpolate(_list(0)), \" で、おわります\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"いれふだは \", _interpolate(_list(0)), \" まえに、おわりました\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユニークなオプションが、たりません\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステッカー\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじ\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ピッカーをあけたままにする\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじをさがす\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじをうちこむ\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カスタムえもじ\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユニコードえもじ\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"はじめの \", _interpolate(_named(\"saneAmount\")), \" このえもじだけがロードされています。すべてのえもじをロードすると、パフォーマンスがわるくなるかもしれません。\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"すべてのえもじをロード (\", _interpolate(_named(\"emojiAmount\")), \" こあります)\"])}\n },\n \"stickers\": {\n \"add_sticker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステッカーをふやす\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートとおきにいり\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいフォロー\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいやりとりをみる\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうする\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"あなたのアカウントは \", _interpolate(_list(0)), \" ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ロックされたアカウント\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイルをNSFWにする\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プレーンテキスト\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せつめい (かかなくてもよい)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はねだくうこうに、つきました。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、メンションされたすべてのユーザーが、みることができます。\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。\"])},\n \"direct_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このステータスは、メンションされたユーザーだけが、よむことができます。\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、だれでもみることができます\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、あなたのフォロワーだけが、みることができます\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません\"])}\n },\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ダイレクト: メンションされたユーザーのみにとどきます\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーげんてい: フォロワーのみにとどきます\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パブリック: パブリックタイムラインにとどきます\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アンリステッド: パブリックタイムラインにとどきません\"])}\n }\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィール\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eメール\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スクリーンネーム\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードのかくにん\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はじめる\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"しょうたいトークン\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい: lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい: いわくら れいん\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"れい:\\nごきげんよう。わたしはれいん。\\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なにかかいてください\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードがちがいます\"])}\n }\n },\n \"remote_user_resolver\": {\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リモートユーザーリゾルバー\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さがしています:\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"みつかりませんでした。\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてえらぶ\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アプリのなまえ\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セキュリティ\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTPをつくる\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTPをよういしています\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTPをたしかめて、ゆうこうにする\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターにんしょう\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいリカバリーコードをつくる\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リカバリーコード。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックアップコードをうけとっています…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"にんしょうメソッド\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スキャン\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キー\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"2-ファクターにんしょうをつかうには、あなたの2-ファクターアプリのコードをいれてください:\"])}\n }\n },\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイル\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ファイル\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバター\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちのアバター\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバター\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックグラウンド\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィール\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックのエクスポート\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをCSVファイルにエクスポート\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックのインポート\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックのインポートがエラーになりました\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロック\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライとフォロー\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"キャンセル\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールアドレスをかえる\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールアドレスをかえようとしましたが、なにかがおかしいです。\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールアドレスをかえることができました!\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードをかえる\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードをかえることが、できなかったかもしれません。\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードが、かわりました!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せつめいのあるとうこうをたたむ\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいパスワードのかくにん\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いまのアバター\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いまのパスワード\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いまのプロフィールバナー\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インポートとエクスポート\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"デフォルトのこうかいはんい\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをけす\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのアカウントとメッセージが、きえます。\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けんさくなどのサービスで、このアカウントをみつけてもよい\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セーブ\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フィルタリング\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローのエクスポート\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エクスポート\"])},\n \"follow_export_processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おまちください。まもなくファイルをダウンロードできます。\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローインポート\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローのインポートがエラーになりました\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローがインポートされました! すこしじかんがかかるかもしれません。\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォアグラウンド\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ぜんぱん\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドのファイルをかくす\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムラインのファイルをかくす\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしたユーザーのとうこうをかくす\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひとつのとうこうにいれられるサムネイルのかず\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンススペシフィックパネルをかくす\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうをさきよみする\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFWなファイルを1クリックでひらく\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうのとうけいをかくす (れい: おきにいりのかず)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーのとうけいをかくす (れい: フォロワーのかず)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フィルターされたとうこうをかくす\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CSVファイルからブロックをインポートする\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CSVファイルからフォローをインポートする\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ロード\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チェックボックス\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(デフォルト: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(デフォルト)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェース\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェースのことば\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このファイルはPleromaのテーマではありません。テーマはへんこうされませんでした。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのブラウザではできません\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リンク\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたがみとめたひとだけ、あなたのアカウントをフォローできる\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ビデオをくりかえす\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おとのないビデオだけくりかえす\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュート\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ビデオをメディアビューアーでみる\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうのサムネイルを、きりぬかない\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なまえ\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"なまえとプロフィール\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいメールアドレス\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいパスワード\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひょうじするつうち\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロー\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンション\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リッチテキストをつかわない\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしていません\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしていません\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしているひとをみせない\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーをみせない\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしているひとのかずをみせない\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワーのかずをみせない\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミンのしるしをみせる\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーターのしるしをみせる\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFWなファイルをかくす\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuthトークン\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トークン\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トークンをリフレッシュ\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おわりのとき\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とりけす\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネル\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タブにフォーカスがないときストリーミングをとめる\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プリセット\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールのバックグラウンド\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールバナー\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィール\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェースのまるさをせっていする\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"タイムラインのリプライ\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてのリプライをみる\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"わたしにあてられたリプライと、フォローしているひとからのリプライをみる\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"わたしにあてられたリプライをみる\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいとうこうのボタンを、じどうてきにかくす (モバイル)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていをセーブできませんでした\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せっていをセーブしました\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしたいひとを、ここでけんさくできます\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしたいひとを、ここでけんさくできます\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"セキュリティ\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"こうかいはんいせんたくオプションを、ちいさくする\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいアバターをせっていする\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいプロフィールのバックグラウンドをせっていする\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あたらしいプロフィールバナーを設定する\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"せってい\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サブジェクトフィールドをいつでもひょうじする\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライするときサブジェクトをコピーする\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メールふう: \\\"re: サブジェクト\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"マストドンふう: そのままコピー\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"コピーしない\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうのコンテントタイプ\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カーソルをかさねたとき、GIFをうごかす\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うえまでスクロールしたとき、じどうてきにストリーミングする\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"もじ\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"テーマ\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カラーテーマをカスタマイズできます。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"がぞうをアップロード\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ツールチップとアラート\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーせってい\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いいえ\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はい\"])}\n },\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おたのしみ\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミームやじるし\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あるユーザーからのつうちをとめるには、ミュートしてください。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしているユーザーからのつうちは、すべてとまります。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ウェブプッシュつうちをゆるす\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いろをのこす\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かげをのこす\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうめいどをのこす\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"まるさをのこす\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォントをのこす\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「のこす」オプションをONにすると、テーマをえらんだときとロードしたとき、いまのせっていをのこします。また、テーマをエクスポートするとき、これらのオプションをストアします。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべてのせっていをセーブします。\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リセット\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてクリア\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうめいどをクリア\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"いろ\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうめいど\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"コントラストは \", _interpolate(_named(\"ratio\")), \" です。\", _interpolate(_named(\"level\")), \"。(\", _interpolate(_named(\"context\")), \")\"])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"AAレベルガイドライン (ミニマル) をみたします\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"AAAレベルガイドライン (レコメンデッド) をみたします\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ガイドラインをみたしません\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おおきい (18ポイントいじょう) テキスト\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"テキスト\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きょうつう\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"きょうつうのいろ\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「くわしく」タブで、もっとこまかくせっていできます\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アイコンとアクセントとバッジ\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"くわしく\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アラートのバックグラウンド\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラー\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"けいこく\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バッジのバックグラウンド\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネルヘッダー\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トップバー\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さかいめ\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うすいテキスト\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"まるさ\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひかりとかげ\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"コンポーネント\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"オーバーライド\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"かげ #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ぼかし\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひろがり\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うちがわ\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かげのせっていでは、いろのあたいとして --variable をつかうことができます。これはCSS3へんすうです。ただし、とうめいどのせっていは、きかなくなります。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ブラウザーがサポートしていれば、つねに \", _interpolate(_list(0)), \" がつかわれます。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" は、\", _interpolate(_list(1)), \" パラメーターと \", _interpolate(_list(2)), \" キーワードをサポートしていません。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひろがりが 0 よりもおおきなかげは、0 とおなじです\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"うちがわのかげは \", _interpolate(_list(0)), \" をつかいます\"])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネル\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パネルヘッダー\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"トップバー\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーアバター (プロフィール)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーアバター (とうこう)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ポップアップとツールチップ\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン (ホバー)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン (おされているとき)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン (ホバー、かつ、おされているとき)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])}\n }\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォント\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"「カスタム」をえらんだときは、システムにあるフォントのなまえを、ただしくにゅうりょくしてください。\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インターフェース\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インプットフィールド\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこう\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モノスペース (とうこうがリッチテキストであるとき)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォントめい\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おおきさ (px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふとさ\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"カスタム\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プレビュー\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんぶん\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラーのれい\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ボタン\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"これは\", _interpolate(_list(0)), \"と\", _interpolate(_list(1)), \"のれいです\"])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"monospace\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"はねだくうこうに、つきました。\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とてもたすけになるマニュアル\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"わたしたちの\", _interpolate(_list(0)), \"を、よまないでください!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"エラーではありません\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"りようきやくを、よみました\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ハイパーリンク\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バージョン\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"バックエンドのバージョン\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フロントエンドのバージョン\"])}\n }\n },\n \"time\": {\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"日\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時間\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"で\"])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"分\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"ヶ月前\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たった今\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たった今\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"秒\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"週間\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])}\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"たたむ\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッド\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よみこみがエラーになりました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいステータス\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よみこみ\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"さいしん\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これでおわりです\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ありません\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスをけす\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールにピンどめする\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"プロフィールにピンどめするのをやめる\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ピンどめ\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほんとうに、このステータスを、けしてもいいですか?\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんしん:\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"へんしん:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドをミュートする\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"スレッドをミュートするのをやめる\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"うけいれ\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロック\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしています!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おことわり\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロー\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リクエストを、おくりました!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リクエストしています…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローをやめる\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロー\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォロワー\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローしています!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"かくされています\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"これはあなたです!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディア\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メンション\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュート\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしています!\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"/日\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リモートフォロー\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほう\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータス\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サブスクライブ\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"サブスクライブをやめる\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをやめる\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックをとりけしています…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ブロックしています…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートをやめる\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートをとりけしています…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ミュートしています…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートをかくす\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピートをみる\"])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーション\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミンにする\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アドミンをやめさせる\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーターにする\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"モデレーターをやめさせる\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをアクティブにする\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをアクティブでなくする\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アカウントをけす\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"すべてのとうこうをNSFWにする\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうからメディアをなくす\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうをアンリステッドにする\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうこうをフォロワーのみにする\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほかのインスタンスからフォローされないようにする\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされないようにする\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ほかのインスタンスのユーザーのとうこうをとめる\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーをけす\"])}\n }\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザータイムライン\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ごめんなさい。このプロフィールは、そんざいしません。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ごめんなさい。プロフィールのロードがエラーになりました。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"つうほうする: \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このつうほうは、あなたのインスタンスのモデレーターに、おくられます。このアカウントを、つうほうするりゆうを、せつめいすることができます:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ついかのコメント\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このアカウントは、ほかのインスタンスのものです。そのインスタンスにも、このつうほうのコピーを、おくりますか?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"コピーをおくる: \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"そうしん\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのリクエストをうけつけようとしましたが、エラーになってしまいました。\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"くわしく\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おすすめユーザー\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"メディアをアップロード\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リピート\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"リプライ\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"おきにいり\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ユーザーせってい\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"アップロードにしっぱいしました。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"ファイルがおおきすぎます [\", _interpolate(_named(\"filesize\")), \" \", _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), \" \", _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"しばらくしてから、ためしてください\"])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ひとびと\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ハッシュタグ\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" にんが、はなしています\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" にんが、はなしています\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"みつかりませんでした\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードを、わすれましたか?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードリセット\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのメールアドレスかユーザーめいをいれてください。パスワードをリセットするためのリンクをおくります。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのメールアドレスかユーザーめい\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ホームページにもどる\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"パスワードリセットを、ためすことが、おおすぎます。しばらくしてから、ためしてください。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"このインスタンスでは、パスワードリセットは、できません。インスタンスのアドミニストレーターに、おといあわせください。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ログインするには、パスワードをリセットしてください。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたはパスワードのリセットがひつようです。しかし、まずいことに、このインスタンスでは、パスワードのリセットができなくなっています。このインスタンスのアドミニストレーターに、おといあわせください。\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js b/priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js
new file mode 100644
index 000000000..54a7b0409
--- /dev/null
+++ b/priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[5253],{8411:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={general:{dismiss:r=>{const{normalize:n}=r;return n(["Закрити"])},close:r=>{const{normalize:n}=r;return n(["Закрити"])},verify:r=>{const{normalize:n}=r;return n(["Перевірити"])},confirm:r=>{const{normalize:n}=r;return n(["Підтвердити"])},enable:r=>{const{normalize:n}=r;return n(["Увімкнути"])},disable:r=>{const{normalize:n}=r;return n(["Вимкнути"])},cancel:r=>{const{normalize:n}=r;return n(["Скасувати"])},show_less:r=>{const{normalize:n}=r;return n(["Показати менше"])},show_more:r=>{const{normalize:n}=r;return n(["Показати більше"])},optional:r=>{const{normalize:n}=r;return n(["необов'язково"])},retry:r=>{const{normalize:n}=r;return n(["Спробуйте ще раз"])},error_retry:r=>{const{normalize:n}=r;return n(["Будь ласка, спробуйте ще раз"])},generic_error:r=>{const{normalize:n}=r;return n(["Виникла помилка"])},loading:r=>{const{normalize:n}=r;return n(["Завантаження…"])},more:r=>{const{normalize:n}=r;return n(["Більше"])},submit:r=>{const{normalize:n}=r;return n(["Відправити"])},apply:r=>{const{normalize:n}=r;return n(["Застосувати"])},peek:r=>{const{normalize:n}=r;return n(["Глянути"])},role:{moderator:r=>{const{normalize:n}=r;return n(["Модератор"])},admin:r=>{const{normalize:n}=r;return n(["Адміністратор"])}},flash_content:r=>{const{normalize:n}=r;return n(["Натисніть для перегляду змісту Flash за допомогою Ruffle (експериментально, може не працювати)."])},flash_security:r=>{const{normalize:n}=r;return n(["Ця функція може становити ризик, оскільки Flash-вміст все ще є потенційно небезпечним."])},flash_fail:r=>{const{normalize:n}=r;return n(["Не вдалося завантажити Flash-вміст, докладнішу інформацію дивись у консолі."])},generic_error_message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Виникла помилка: ",e(t(0))])},never_show_again:r=>{const{normalize:n}=r;return n(["Ніколи не показувати знову"])},scope_in_timeline:{direct:r=>{const{normalize:n}=r;return n(["Приватне"])},private:r=>{const{normalize:n}=r;return n(["Лише читачі"])},public:r=>{const{normalize:n}=r;return n(["Публічне"])},unlisted:r=>{const{normalize:n}=r;return n(["Непублічне"])}},undo:r=>{const{normalize:n}=r;return n(["Відмінити"])},yes:r=>{const{normalize:n}=r;return n(["Так"])},no:r=>{const{normalize:n}=r;return n(["Ні"])},unpin:r=>{const{normalize:n}=r;return n(["Відкріпити"])},scroll_to_top:r=>{const{normalize:n}=r;return n(["Вгору"])},pin:r=>{const{normalize:n}=r;return n(["Прикріпити"])}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["Користувача не знайдено"])},find_user:r=>{const{normalize:n}=r;return n(["Знайти користувача"])}},features_panel:{gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Чати"])},chat:r=>{const{normalize:n}=r;return n(["Оголошення"])},who_to_follow:r=>{const{normalize:n}=r;return n(["Кого відстежувати"])},title:r=>{const{normalize:n}=r;return n(["Особливості"])},scope_options:r=>{const{normalize:n}=r;return n(["Параметри обсягу"])},media_proxy:r=>{const{normalize:n}=r;return n(["Посередник медіа-даних"])},text_limit:r=>{const{normalize:n}=r;return n(["Ліміт символів"])},upload_limit:r=>{const{normalize:n}=r;return n(["Обмеження завантажень"])},shout:r=>{const{normalize:n}=r;return n(["Гучномовець"])}},exporter:{processing:r=>{const{normalize:n}=r;return n(["Опрацьовую, скоро ви зможете завантажити файл"])},export:r=>{const{normalize:n}=r;return n(["Експорт"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["Вмикаю…"])},unmute:r=>{const{normalize:n}=r;return n(["Вимкнути заглушення"])},mute_progress:r=>{const{normalize:n}=r;return n(["Вимикаю…"])},mute:r=>{const{normalize:n}=r;return n(["Ігнорувати"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["Гучномовець"])}},about:{staff:r=>{const{normalize:n}=r;return n(["Адміністрація"])},mrf:{simple:{media_nsfw_desc:r=>{const{normalize:n}=r;return n(["Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["Примусове визначення медіа як дратівливого"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс видаляє медіа з дописів на перелічених інстансах:"])},media_removal:r=>{const{normalize:n}=r;return n(["Видалення медіа"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["Видалення зі стрічки Федеративної мережі"])},quarantine_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:"])},quarantine:r=>{const{normalize:n}=r;return n(["Карантин"])},reject_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс не прийматиме повідомлення з перелічених інстансів:"])},accept:r=>{const{normalize:n}=r;return n(["Прийняти"])},reject:r=>{const{normalize:n}=r;return n(["Відхилити"])},accept_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс приймає повідомлення тільки з перелічених інстансів:"])},simple_policies:r=>{const{normalize:n}=r;return n(["Правила поточного інстансу"])},reason:r=>{const{normalize:n}=r;return n(["Причина"])},not_applicable:r=>{const{normalize:n}=r;return n(["н/в"])},instance:r=>{const{normalize:n}=r;return n(["Інстанс"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:"])},mrf_policies:r=>{const{normalize:n}=r;return n(["Активувати правила MRF (модуль переписування повідомлень)"])},keyword:{is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},replace:r=>{const{normalize:n}=r;return n(["Замінити"])},reject:r=>{const{normalize:n}=r;return n(["Відхилити"])},ftl_removal:r=>{const{normalize:n}=r;return n(["Прибрати з федеративної стрічки"])},keyword_policies:r=>{const{normalize:n}=r;return n(["Політика щодо ключових слів"])}},federation:r=>{const{normalize:n}=r;return n(["Федерація"])}}},login:{hint:r=>{const{normalize:n}=r;return n(["Увійдіть, щоб доєднатися до дискусії"])},username:r=>{const{normalize:n}=r;return n(["Ім'я користувача"])},register:r=>{const{normalize:n}=r;return n(["Зареєструватись"])},password:r=>{const{normalize:n}=r;return n(["Пароль"])},logout:r=>{const{normalize:n}=r;return n(["Вийти"])},description:r=>{const{normalize:n}=r;return n(["Увійти за допомогою OAuth"])},login:r=>{const{normalize:n}=r;return n(["Увійти"])},recovery_code:r=>{const{normalize:n}=r;return n(["Код відновлення"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["Введіть код відновлення"])},authentication_code:r=>{const{normalize:n}=r;return n(["Код автентифікації"])},heading:{recovery:r=>{const{normalize:n}=r;return n(["Двофакторне відновлення"])},totp:r=>{const{normalize:n}=r;return n(["Двофакторна автентифікація"])}},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["Введіть двофакторний код автентифікації"])},placeholder:r=>{const{normalize:n}=r;return n(["напр. stepan"])},logout_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете вийти?"])},logout_confirm_accept_button:r=>{const{normalize:n}=r;return n(["Вийти"])},logout_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["Ні, хочу назад!"])}},importer:{error:r=>{const{normalize:n}=r;return n(["Під час імпортування файлу сталася помилка."])},success:r=>{const{normalize:n}=r;return n(["Імпортовано успішно."])},submit:r=>{const{normalize:n}=r;return n(["Відправити"])}},image_cropper:{cancel:r=>{const{normalize:n}=r;return n(["Відмінити"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["Зберегти не обрізаючи"])},crop_picture:r=>{const{normalize:n}=r;return n(["Обрізати малюнок"])},save:r=>{const{normalize:n}=r;return n(["Зберегти"])}},polls:{expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Опитування закінчилось ",e(t(0))," тому"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Опитування закінчується через ",e(t(0))])},expiry:r=>{const{normalize:n}=r;return n(["Термін опитування"])},multiple_choices:r=>{const{normalize:n}=r;return n(["Декілька варіантів"])},single_choice:r=>{const{normalize:n}=r;return n(["Один варіант"])},add_option:r=>{const{normalize:n}=r;return n(["Додати опцію"])},type:r=>{const{normalize:n}=r;return n(["Тип опитування"])},vote:r=>{const{normalize:n}=r;return n(["Проголосувати"])},votes:r=>{const{normalize:n}=r;return n(["голосів"])},option:r=>{const{normalize:n}=r;return n(["Відповідь"])},add_poll:r=>{const{normalize:n}=r;return n(["Додати опитування"])},not_enough_options:r=>{const{normalize:n}=r;return n(["Замало унікальних варіантів в опитуванні"])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," особа проголосувала"]),n([e(t("count"))," осіб проголосувало"])])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," голос"]),n([e(t("count"))," голосів"])])}},notifications:{reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["додав реакцію: ",e(t(0))])},migrated_to:r=>{const{normalize:n}=r;return n(["мігрував на"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["Немає більше сповіщень"])},repeated_you:r=>{const{normalize:n}=r;return n(["поширив(-ла) ваш допис"])},read:r=>{const{normalize:n}=r;return n(["Прочитано!"])},notifications:r=>{const{normalize:n}=r;return n(["Сповіщення"])},load_older:r=>{const{normalize:n}=r;return n(["Завантажити давніші сповіщення"])},follow_request:r=>{const{normalize:n}=r;return n(["хоче підписатись на вас"])},followed_you:r=>{const{normalize:n}=r;return n(["підписався(-лась) на вас"])},favorited_you:r=>{const{normalize:n}=r;return n(["вподобав(-ла) ваш допис"])},broken_favorite:r=>{const{normalize:n}=r;return n(["Невідомий допис, шукаю його…"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Помилка при оновленні сповіщень: ",e(t(0))])},poll_ended:r=>{const{normalize:n}=r;return n(["опитування закінчено"])},submitted_report:r=>{const{normalize:n}=r;return n(["подав скаргу"])}},nav:{chats:r=>{const{normalize:n}=r;return n(["Чати"])},timelines:r=>{const{normalize:n}=r;return n(["Стрічки"])},twkn:r=>{const{normalize:n}=r;return n(["Уся відома мережа"])},about:r=>{const{normalize:n}=r;return n(["Інформація"])},preferences:r=>{const{normalize:n}=r;return n(["Налаштування"])},friend_requests:r=>{const{normalize:n}=r;return n(["Запити послідовників"])},who_to_follow:r=>{const{normalize:n}=r;return n(["Кого відстежувати"])},search:r=>{const{normalize:n}=r;return n(["Пошук"])},user_search:r=>{const{normalize:n}=r;return n(["Пошук користувача"])},bookmarks:r=>{const{normalize:n}=r;return n(["Закладки"])},timeline:r=>{const{normalize:n}=r;return n(["Домашня стрічка"])},public_tl:r=>{const{normalize:n}=r;return n(["Публічна стрічка"])},dms:r=>{const{normalize:n}=r;return n(["Приватні повідомлення"])},interactions:r=>{const{normalize:n}=r;return n(["Взаємодії"])},mentions:r=>{const{normalize:n}=r;return n(["Згадування"])},back:r=>{const{normalize:n}=r;return n(["Назад"])},administration:r=>{const{normalize:n}=r;return n(["Адміністрування"])},home_timeline:r=>{const{normalize:n}=r;return n(["Домашня стрічка"])},lists:r=>{const{normalize:n}=r;return n(["Списки"])},edit_pinned:r=>{const{normalize:n}=r;return n(["Редагувати прикріплене"])},edit_finish:r=>{const{normalize:n}=r;return n(["Завершити редагування"])},mobile_sidebar:r=>{const{normalize:n}=r;return n(["Ввімкнути бокову панель"])},mobile_notifications:r=>{const{normalize:n}=r;return n(["Відкрити сповіщення (є непрочитані)"])},mobile_notifications_close:r=>{const{normalize:n}=r;return n(["Закрити сповіщення"])},edit_nav_mobile:r=>{const{normalize:n}=r;return n(["Редагувати панель навігації"])},announcements:r=>{const{normalize:n}=r;return n(["Анонси"])},search_close:r=>{const{normalize:n}=r;return n(["Закрити панель пошуку"])}},media_modal:{next:r=>{const{normalize:n}=r;return n(["Наступна"])},previous:r=>{const{normalize:n}=r;return n(["Попередня"])},counter:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("current"))," / ",e(t("total"))])},hide:r=>{const{normalize:n}=r;return n(["Закрити медіапереглядач"])}},password_reset:{instruction:r=>{const{normalize:n}=r;return n(["Введіть свою адресу електронної пошти або ім’я користувача. Ми надішлемо вам посилання для скидання пароля."])},placeholder:r=>{const{normalize:n}=r;return n(["Ваша електронна адреса або ім'я користувача"])},check_email:r=>{const{normalize:n}=r;return n(["Перевірте електронну пошту на наявність посилання для скидання пароля."])},return_home:r=>{const{normalize:n}=r;return n(["Повернутися на головну сторінку"])},too_many_requests:r=>{const{normalize:n}=r;return n(["Ви досягли ліміту спроб, спробуйте ще раз пізніше."])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["Ви повинні скинути свій пароль, але скидання пароля вимкнено. Зверніться до адміністратора інстансу."])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["Скидання пароля вимкнено. Зверніться до адміністратора інстансу."])},password_reset_required:r=>{const{normalize:n}=r;return n(["Для входу потрібно скинути пароль."])},password_reset:r=>{const{normalize:n}=r;return n(["Відновити пароль"])},forgot_password:r=>{const{normalize:n}=r;return n(["Забули пароль?"])}},chats:{you:r=>{const{normalize:n}=r;return n(["Ви:"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Повідомлення для ",e(t("nickname"))])},delete:r=>{const{normalize:n}=r;return n(["Видалити"])},chats:r=>{const{normalize:n}=r;return n(["Чати"])},new:r=>{const{normalize:n}=r;return n(["Новий чат"])},empty_message_error:r=>{const{normalize:n}=r;return n(["Не вдається опублікувати порожнє повідомлення"])},more:r=>{const{normalize:n}=r;return n(["Більше"])},delete_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете видалити це повідомлення?"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["Під час завантаження чату сталася помилка."])},error_sending_message:r=>{const{normalize:n}=r;return n(["Під час надсилання повідомлення сталася помилка."])},empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["У вас ще немає чатів. Почніть новий чат!"])}},file_type:{audio:r=>{const{normalize:n}=r;return n(["Аудіо"])},video:r=>{const{normalize:n}=r;return n(["Відео"])},image:r=>{const{normalize:n}=r;return n(["Зображення"])},file:r=>{const{normalize:n}=r;return n(["Файл"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["Сьогодні"])}},interactions:{load_older:r=>{const{normalize:n}=r;return n(["Завантажити давніші взаємодії"])},follows:r=>{const{normalize:n}=r;return n(["Нові підписки"])},favs_repeats:r=>{const{normalize:n}=r;return n(["Поширення та вподобайки"])},moves:r=>{const{normalize:n}=r;return n(["Міграції користувачів"])},emoji_reactions:r=>{const{normalize:n}=r;return n(["Емоджі реакції"])},reports:r=>{const{normalize:n}=r;return n(["Скарги"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma не змогла отримати доступ до сховища браузеру. Ваша сесія та налаштування не будуть збережені, це може спричинити непередбачувані проблеми. Спробуйте увімкнути cookie."])}},emoji:{stickers:r=>{const{normalize:n}=r;return n(["Стікери"])},custom:r=>{const{normalize:n}=r;return n(["Користувацькі емодзі"])},search_emoji:r=>{const{normalize:n}=r;return n(["Пошук емодзі"])},keep_open:r=>{const{normalize:n}=r;return n(["Тримати панель відкритою"])},add_emoji:r=>{const{normalize:n}=r;return n(["Додати емодзі"])},emoji:r=>{const{normalize:n}=r;return n(["Емодзі"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Всі ",e(t("emojiAmount"))," эмодзі завантажуються"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Завантажені перші ",e(t("saneAmount"))," емодзі, завантаження всіх емодзі може призвести до проблем з продуктивністю."])},unicode:r=>{const{normalize:n}=r;return n(["Стандартні емодзі"])},regional_indicator:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Регіональний індикатор ",e(t("letter"))])},unicode_groups:{"animals-and-nature":r=>{const{normalize:n}=r;return n(["Тварини і Рослини"])},flags:r=>{const{normalize:n}=r;return n(["Прапори"])},"food-and-drink":r=>{const{normalize:n}=r;return n(["Їжа та Напої"])},objects:r=>{const{normalize:n}=r;return n(["Об'єкти"])},"people-and-body":r=>{const{normalize:n}=r;return n(["Люди та Тіло"])},"smileys-and-emotion":r=>{const{normalize:n}=r;return n(["Смайлики та Емотікони"])},activities:r=>{const{normalize:n}=r;return n(["Активності"])},symbols:r=>{const{normalize:n}=r;return n(["Символи"])},"travel-and-places":r=>{const{normalize:n}=r;return n(["Подорожі та Місця"])}}},post_status:{content_type:{"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/plain":r=>{const{normalize:n}=r;return n(["Текстові дані"])}},attachments_sensitive:r=>{const{normalize:n}=r;return n(["Позначити вкладення як чутливі"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["замкнена"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Ваша обліковка не ",e(t(0)),". Будь-хто може відстежувати вас для перегляду дописів тільки для підписників."])},new_status:r=>{const{normalize:n}=r;return n(["Створити допис"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["Цей допис побачать лише користувачі, що були згадані на початку повідомлення."])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["Цей допис побачать всі згадані користувачі."])},default:r=>{const{normalize:n}=r;return n(["Що нового?"])},content_warning:r=>{const{normalize:n}=r;return n(["Тема (необов'язково)"])},preview:r=>{const{normalize:n}=r;return n(["Попередній перегляд"])},posting:r=>{const{normalize:n}=r;return n(["Відправляється"])},empty_status_error:r=>{const{normalize:n}=r;return n(["Не можу опублікувати пустий статус без вкладень"])},scope:{unlisted:r=>{const{normalize:n}=r;return n(["Непублічний - цей допис буде відсутній у публічних стрічках"])},public:r=>{const{normalize:n}=r;return n(["Публічний - цей допис побачать усі"])},private:r=>{const{normalize:n}=r;return n(["Для читачів - цей допис побачать лише ваші читачі"])},direct:r=>{const{normalize:n}=r;return n(["Приватний - цей допис побачать лише згадані користувачі"])}},scope_notice:{unlisted:r=>{const{normalize:n}=r;return n(["Цей допис не буде видно в публічній стрічці та усій відомій мережі"])},private:r=>{const{normalize:n}=r;return n(["Цей допис побачать лише ваші підписники"])},public:r=>{const{normalize:n}=r;return n(["Цей допис бачитимуть усі"])}},preview_empty:r=>{const{normalize:n}=r;return n(["Пустий"])},media_description_error:r=>{const{normalize:n}=r;return n(["Не вдалось оновити медіа, спробуйте ще раз"])},media_description:r=>{const{normalize:n}=r;return n(["Опис медіа"])},post:r=>{const{normalize:n}=r;return n(["Опублікувати"])},edit_unsupported_warning:r=>{const{normalize:n}=r;return n(["Pleroma не підтримує редагування згадувань чи голосувань."])},edit_status:r=>{const{normalize:n}=r;return n(["Редагувати допис"])},edit_remote_warning:r=>{const{normalize:n}=r;return n(["Інші віддалені інстанси можуть не підтримувати редагування та вони можуть не отримати актуальну версію допису."])}},settings:{blocks_imported:r=>{const{normalize:n}=r;return n(["Блокування імпортовані! Їх обробка триватиме певний час."])},block_import_error:r=>{const{normalize:n}=r;return n(["Помилка імпортування блокувань"])},block_import:r=>{const{normalize:n}=r;return n(["Імпорт блокувань"])},block_export_button:r=>{const{normalize:n}=r;return n(["Експорт блокувань у файл CSV"])},block_export:r=>{const{normalize:n}=r;return n(["Експорт блокувань"])},bio:r=>{const{normalize:n}=r;return n(["Про Вас"])},background:r=>{const{normalize:n}=r;return n(["Обкладинка"])},app_name:r=>{const{normalize:n}=r;return n(["Назва програми"])},follow_export:r=>{const{normalize:n}=r;return n(["Експортувати відстежуваних"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["Усі статуси з цими словами будуть приховані, один на рядок"])},filtering:r=>{const{normalize:n}=r;return n(["Фільтрування"])},export_theme:r=>{const{normalize:n}=r;return n(["Зберегти переднабір"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів."])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["Введіть ваш пароль в поле нижче, аби підтвердити видалення облікового запису."])},delete_account_error:r=>{const{normalize:n}=r;return n(["Під час видалення вашого облікового запису виникла проблема. Якщо це трапляється постійно, будь ласка, зверніться до адміністратора вашого сервера."])},delete_account_description:r=>{const{normalize:n}=r;return n(["Остаточно видалити ваш обліковий запис та усі ваші повідомлення."])},delete_account:r=>{const{normalize:n}=r;return n(["Видалити обліковий запис"])},default_vis:r=>{const{normalize:n}=r;return n(["Обсяг видимості за замовчуванням"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["Імпорт/експорт даних"])},current_password:r=>{const{normalize:n}=r;return n(["Поточний пароль"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["Підтвердіть новий пароль"])},composing:r=>{const{normalize:n}=r;return n(["Складання відповіді"])},collapse_subject:r=>{const{normalize:n}=r;return n(["Згорнути дописи з темами"])},changed_password:r=>{const{normalize:n}=r;return n(["Пароль успішно змінено!"])},change_password_error:r=>{const{normalize:n}=r;return n(["Не вдалося змінити пароль."])},change_password:r=>{const{normalize:n}=r;return n(["Змінити пароль"])},cRed:r=>{const{normalize:n}=r;return n(["Червоний (Скасувати)"])},cGreen:r=>{const{normalize:n}=r;return n(["Зелений (Поширити)"])},cOrange:r=>{const{normalize:n}=r;return n(["Жовтогарячий (Вподобайки)"])},cBlue:r=>{const{normalize:n}=r;return n(["Блакитний (Відповісти, читати)"])},btnRadius:r=>{const{normalize:n}=r;return n(["Кнопки"])},blocks_tab:r=>{const{normalize:n}=r;return n(["Блокування"])},avatarRadius:r=>{const{normalize:n}=r;return n(["Аватарки"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["Аватарки у сповіщеннях"])},avatar:r=>{const{normalize:n}=r;return n(["Аватар"])},attachments:r=>{const{normalize:n}=r;return n(["Вкладення"])},attachmentRadius:r=>{const{normalize:n}=r;return n(["Вкладення"])},general:r=>{const{normalize:n}=r;return n(["Загальні"])},foreground:r=>{const{normalize:n}=r;return n(["Передній план"])},follows_imported:r=>{const{normalize:n}=r;return n(["Відстежуваних імпортовано! Їхня обробка потребує часу."])},follow_import_error:r=>{const{normalize:n}=r;return n(["Помилка імпортування відстежуваних"])},follow_import:r=>{const{normalize:n}=r;return n(["Імпортувати відстежуваних"])},follow_export_button:r=>{const{normalize:n}=r;return n(["Експортувати відстежуваних до csv файлу"])},lock_account_description:r=>{const{normalize:n}=r;return n(["Обмежте свій обліковий запис лише схваленими читачами"])},links:r=>{const{normalize:n}=r;return n(["Посилання"])},limited_availability:r=>{const{normalize:n}=r;return n(["Недоступно у вашому браузері"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін."])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["Мова оболонки"])},interface:r=>{const{normalize:n}=r;return n(["Оболонка"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(за замовчуванням)"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(за замовчуванням: ",e(t("value")),")"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["Прапорці"])},inputRadius:r=>{const{normalize:n}=r;return n(["Поля вводу"])},import_theme:r=>{const{normalize:n}=r;return n(["Завантажити переднабір"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["Імпортувати відстежуваних з csv файлу"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["Імпортувати заблокованих з csv файлу"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["Сховати відфільтровані статуси"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["Приховувати статистику користувачів (напр. кількість відстежувачів)"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["Приховувати статистику дописів (напр. кількість вподобаних)"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["Відкривати NSFW вкладення одним кліком миші"])},preload_images:r=>{const{normalize:n}=r;return n(["Передзавантажувати світлини"])},hide_isp:r=>{const{normalize:n}=r;return n(["Сховати панель з особливостями сервера"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["Максимальна кількість мініатюр на повідомлення"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["Приховати повідомлення приглушених користувачів"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["Приховувати вкладення у стрічці"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["Приховувати вкладення у розмовах"])},mutes_tab:r=>{const{normalize:n}=r;return n(["Заглушені"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(['Зациклити відео без звуку (напр. Mastodon "gifs")'])},loop_video:r=>{const{normalize:n}=r;return n(["Зациклити відео"])},mfa:{verify:{desc:r=>{const{normalize:n}=r;return n(["Щоб увімкнути двофакторну автентифікацію, введіть код з вашого застосунку для двофакторної автентифікації:"])}},scan:{desc:r=>{const{normalize:n}=r;return n(["Відскануйте цей QR-код за допомогою програми двофакторної автентифікації або введіть текстовий ключ:"])},title:r=>{const{normalize:n}=r;return n(["Сканування"])},secret_code:r=>{const{normalize:n}=r;return n(["Ключ"])}},authentication_methods:r=>{const{normalize:n}=r;return n(["Методи автентифікації"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["Запишіть ці коди і тримайте в безпечному місці - інакше ви їх ніколи не побачите. Якщо ви втратите доступ до OTP додатку - без резервних кодів ви не зможете отримати доступ до свого облікового запису."])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["Отримую резервні коди…"])},recovery_codes:r=>{const{normalize:n}=r;return n(["Резервні коди."])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["Після отримання нових резервних кодів, старі перестануть працювати."])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["Згенерувати нові резервні коди"])},title:r=>{const{normalize:n}=r;return n(["Двофакторна автентифікація"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["Підтвердити та увімкнути OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["попереднє налаштування OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["Налаштування OTP"])},otp:r=>{const{normalize:n}=r;return n(["OTP"])}},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["Введіть свій поточний пароль"])},security:r=>{const{normalize:n}=r;return n(["Безпека"])},domain_mutes:r=>{const{normalize:n}=r;return n(["Домени"])},discoverable:r=>{const{normalize:n}=r;return n(["Дозволити виявлення цього облікового запису в результатах пошуку та інших службах"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["Заглушення та блокування"])},changed_email:r=>{const{normalize:n}=r;return n(["Email успішно змінено!"])},change_email_error:r=>{const{normalize:n}=r;return n(["Сталася помилка під час зміни email."])},change_email:r=>{const{normalize:n}=r;return n(["Змінити email"])},bot:r=>{const{normalize:n}=r;return n(["Це обліковий запис бота"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["Імпорт заглушених з csv файлу"])},mutes_imported:r=>{const{normalize:n}=r;return n(["Заглушені імпортовані! Їх обробка триватиме певний час."])},mute_export_button:r=>{const{normalize:n}=r;return n(["Експорт заглушених у csv файл"])},mute_import_error:r=>{const{normalize:n}=r;return n(["Під час імпорту заглушених сталася помилка"])},mute_import:r=>{const{normalize:n}=r;return n(["Імпорт ігнорувань"])},mute_export:r=>{const{normalize:n}=r;return n(["Експорт ігнорувань"])},new_password:r=>{const{normalize:n}=r;return n(["Новий пароль"])},new_email:r=>{const{normalize:n}=r;return n(["Нова ел. пошта"])},name_bio:r=>{const{normalize:n}=r;return n(["Особисті дані"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["Встановити новий банер"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["Встановити новий аватар"])},security_tab:r=>{const{normalize:n}=r;return n(["Безпека"])},saving_ok:r=>{const{normalize:n}=r;return n(["Налаштування збережені"])},saving_err:r=>{const{normalize:n}=r;return n(["Помилка при збереженні налаштувань"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["Показувати лише адресовані мені відповіді"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["Показувати відповіді адресовані лише мені або користувачам, яких я читаю"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["Показати всі відповіді"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["Відповіді в стрічці"])},profile_tab:r=>{const{normalize:n}=r;return n(["Профіль"])},profile_banner:r=>{const{normalize:n}=r;return n(["Банер профілю"])},profile_background:r=>{const{normalize:n}=r;return n(["Обкладинка профілю"])},revoke_token:r=>{const{normalize:n}=r;return n(["Відкликати"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth ключі"])},token:r=>{const{normalize:n}=r;return n(["Ключ"])},refresh_token:r=>{const{normalize:n}=r;return n(["Оновити ключ"])},valid_until:r=>{const{normalize:n}=r;return n(["Діє до"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["Не обрізати краї мініатюр"])},name:r=>{const{normalize:n}=r;return n(["Ім'я"])},profile_fields:{value:r=>{const{normalize:n}=r;return n(["Зміст"])},name:r=>{const{normalize:n}=r;return n(["Назва"])},add_field:r=>{const{normalize:n}=r;return n(["Додати поле"])},label:r=>{const{normalize:n}=r;return n(["Метадані профілю"])}},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["Відтворювати відео у спливаючій рамці"])},accent:r=>{const{normalize:n}=r;return n(["Акцент"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["Повідомлення в бесіді"])},notification_mutes:r=>{const{normalize:n}=r;return n(["Щоб перестати отримувати сповіщення від певного користувача, заглушіть його."])},user_mutes:r=>{const{normalize:n}=r;return n(["Користувачі"])},no_mutes:r=>{const{normalize:n}=r;return n(["Заглушені відсутні"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["Показувати реакції емоджі на стрічці"])},pad_emoji:r=>{const{normalize:n}=r;return n(["Автоматично додавати простір з обидвох сторін емоджі"])},allow_following_move:r=>{const{normalize:n}=r;return n(["Дозволити автостеження при переміщенні на інший інстанс"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["Встановити нову обкладинку профілю"])},radii_help:r=>{const{normalize:n}=r;return n(["Радіус заокруглення кутів інтерфейсу (в пікселях)"])},presets:r=>{const{normalize:n}=r;return n(["Переднабір"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["Показувати значок модератора в моєму профілі"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["Показувати значок адміністратора в моєму профілі"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["Не показувати хто підписаний на мене"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["Не показувати на кого я підписаний"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["Видалення всього форматування тексту з усіх дописів"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["Реакції"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["Міграція користувача"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["Поширення допису"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["Згадування"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["Вподобайки"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["Нові підписки"])},notification_visibility:r=>{const{normalize:n}=r;return n(["Отримувати сповіщення про наступні події"])},settings:r=>{const{normalize:n}=r;return n(["Налаштування"])},panelRadius:r=>{const{normalize:n}=r;return n(["Панелі"])},text:r=>{const{normalize:n}=r;return n(["Текст"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["Підказки/попередження"])},values:{true:r=>{const{normalize:n}=r;return n(["так"])},false:r=>{const{normalize:n}=r;return n(["ні"])}},user_settings:r=>{const{normalize:n}=r;return n(["Користувацькі налаштування"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["Завантажити фото"])},theme:r=>{const{normalize:n}=r;return n(["Тема"])},style:{switcher:{keep_fonts:r=>{const{normalize:n}=r;return n(["Залишити шрифти"])},keep_roundness:r=>{const{normalize:n}=r;return n(["Залишити скруглення"])},keep_opacity:r=>{const{normalize:n}=r;return n(["Залишити прозорості"])},keep_shadows:r=>{const{normalize:n}=r;return n(["Залишити тіні"])},keep_color:r=>{const{normalize:n}=r;return n(["Залишити кольори"])},use_source:r=>{const{normalize:n}=r;return n(["Нова версія"])},use_snapshot:r=>{const{normalize:n}=r;return n(["Стара версія"])},load_theme:r=>{const{normalize:n}=r;return n(["Завантажити тему"])},reset:r=>{const{normalize:n}=r;return n(["Скинути"])},clear_all:r=>{const{normalize:n}=r;return n(["Очистити все"])},help:{older_version_imported:r=>{const{normalize:n}=r;return n(["Імпортований файл було створено в старішій версії FE."])},future_version_imported:r=>{const{normalize:n}=r;return n(["Імпортований файл було створено в новішій версії FE."])},v2_imported:r=>{const{normalize:n}=r;return n(["Файл, який ви імпортували, був створений для старішої версії інтерфейсу Pleroma. Ми намагаємось покращити сумісність, але все одно можуть бути розбіжності."])},upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE було оновлено, тема може дещо відрізнятися від тієї, яку ви пам’ятаєте."])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["Конфлікт версій: Швидше за все, FE повернуто до попередньої версії та оновлено знову, якщо ви змінили тему за допомогою старішої версії FE, швидше за все, ви хочете використовувати стару версію, інакше використовуйте нову версію."])},migration_napshot_gone:r=>{const{normalize:n}=r;return n(["З якоїсь причини знімок зник, деякі речі можуть бути не такими, як ви пам’ятаєте."])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["Для безпеки, знімок теми завантажено. Ви можете спробувати завантажити дані теми."])},fe_downgraded:r=>{const{normalize:n}=r;return n(["Версію PleromaFE змінено на старшу."])},fe_upgraded:r=>{const{normalize:n}=r;return n(["Двигун теми PleromaFE оновлено."])},snapshot_missing:r=>{const{normalize:n}=r;return n(["У файлі немає жодного знімка теми, тому він може виглядати інакше, ніж передбачалося спочатку."])},snapshot_present:r=>{const{normalize:n}=r;return n(["Знімок теми завантажено, тому всі значення було перезаписано. Натомість ви можете завантажити правильні дані теми."])}},keep_as_is:r=>{const{normalize:n}=r;return n(["Залишити як є"])},clear_opacity:r=>{const{normalize:n}=r;return n(["Очистити прозорість"])},save_load_hint:r=>{const{normalize:n}=r;return n(['Параметри "Зберегти" зберігають поточні параметри під час вибору або завантаження тем, вони також зберігають зазначені параметри під час експорту теми. Коли всі прапорці знято, експортування теми збереже все.'])}},common:{color:r=>{const{normalize:n}=r;return n(["Колір"])},contrast:{context:{text:r=>{const{normalize:n}=r;return n(["для тексту"])},"18pt":r=>{const{normalize:n}=r;return n(["для великого (18pt+) тексту"])}},level:{bad:r=>{const{normalize:n}=r;return n(["Не відповідає жодним вимогам щодо доступності"])},aaa:r=>{const{normalize:n}=r;return n(["відповідає вимогам рівня ААA (рекомендований)"])},aa:r=>{const{normalize:n}=r;return n(["відповідає вимогам рівня АА (мінімальний)"])}},hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Рівень контрасту: ",e(t("ratio")),", ",e(t("level"))," ",e(t("context"))])}},opacity:r=>{const{normalize:n}=r;return n(["Прозорість"])}},preview:{mono:r=>{const{normalize:n}=r;return n(["змісту"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Трохи більше ",e(t(0))," та ",e(t(1))])},button:r=>{const{normalize:n}=r;return n(["Кнопка"])},error:r=>{const{normalize:n}=r;return n(["Приклад помилки"])},content:r=>{const{normalize:n}=r;return n(["Зміст"])},header:r=>{const{normalize:n}=r;return n(["Попередній перегляд"])},link:r=>{const{normalize:n}=r;return n(["невеличке посилання"])},header_faint:r=>{const{normalize:n}=r;return n(["Це нормально"])},input:r=>{const{normalize:n}=r;return n(["Що нового?"])},checkbox:r=>{const{normalize:n}=r;return n(["Я переглянув умови використання"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Прочитайте наш ",e(t(0))," аби нічого нового не дізнатись!"])},faint_link:r=>{const{normalize:n}=r;return n(["корисний підручник"])}},shadows:{components:{button:r=>{const{normalize:n}=r;return n(["Кнопка"])},input:r=>{const{normalize:n}=r;return n(["Поле вводу"])},panel:r=>{const{normalize:n}=r;return n(["Панель"])},panelHeader:r=>{const{normalize:n}=r;return n(["Заголовок панелі"])},avatarStatus:r=>{const{normalize:n}=r;return n(["Аватар користувача (в стрічці)"])},avatar:r=>{const{normalize:n}=r;return n(["Аватар користувача (профіль)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["Кнопка (натиснута + наведений курсор)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["Кнопка (натиснута)"])},buttonHover:r=>{const{normalize:n}=r;return n(["Кнопка (при наведенні)"])},popup:r=>{const{normalize:n}=r;return n(["Спливаючі вікна та підказки"])},topBar:r=>{const{normalize:n}=r;return n(["Верхня панель"])}},component:r=>{const{normalize:n}=r;return n(["Компонент"])},filter_hint:{inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Тіні спрямовані всередину використовуватимуть ",e(t(0))])},spread_zero:r=>{const{normalize:n}=r;return n(["Тіні з поширенням > 0 відображатимуться так, ніби було встановлено нуль"])},avatar_inset:r=>{const{normalize:n}=r;return n(["Зауважте, що використання як вставних, так і невставних тіней на аватарах може привести до непередбачуваних результатів із прозорими аватарами."])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," не підтримує параметр ",e(t(1))," та ключове слово ",e(t(2)),"."])},always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Увага! Ця тінь завжди використовує ",e(t(0)),", якщо підтримується браузером."])}},inset:r=>{const{normalize:n}=r;return n(["Всередину"])},blur:r=>{const{normalize:n}=r;return n(["Розмиття"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Тінь №",e(t("value"))])},override:r=>{const{normalize:n}=r;return n(["Перевизначити"])},_tab_label:r=>{const{normalize:n}=r;return n(["Тінь і підсвічування"])},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Для тіней ви також можете використовувати позначення ",e(t(0))," для використання іншого кольорового слота."])},spread:r=>{const{normalize:n}=r;return n(["Розмах"])}},fonts:{components:{input:r=>{const{normalize:n}=r;return n(["Поля вводу"])},interface:r=>{const{normalize:n}=r;return n(["Інтерфейс"])},postCode:r=>{const{normalize:n}=r;return n(["Моноширинний текст в дописі (форматований текст)"])},post:r=>{const{normalize:n}=r;return n(["Текст допису"])}},_tab_label:r=>{const{normalize:n}=r;return n(["Шрифти"])},size:r=>{const{normalize:n}=r;return n(["Розмір (в пікселях)"])},custom:r=>{const{normalize:n}=r;return n(["Нестандартний"])},weight:r=>{const{normalize:n}=r;return n(["Товщина"])},family:r=>{const{normalize:n}=r;return n(["Назва шрифту"])},help:r=>{const{normalize:n}=r;return n(['Виберіть шрифт для елементів інтерфейсу. Для "нестандартного" потрібно ввести точну назву шрифту, так як вона відображається в системі.'])}},advanced_colors:{alert_warning:r=>{const{normalize:n}=r;return n(["Попередження"])},underlay:r=>{const{normalize:n}=r;return n(["Тло"])},inputs:r=>{const{normalize:n}=r;return n(["Поля входу"])},buttons:r=>{const{normalize:n}=r;return n(["Кнопки"])},borders:r=>{const{normalize:n}=r;return n(["Кордони"])},top_bar:r=>{const{normalize:n}=r;return n(["Верхня панель"])},panel_header:r=>{const{normalize:n}=r;return n(["Заголовок панелі"])},badge_notification:r=>{const{normalize:n}=r;return n(["Сповіщення"])},popover:r=>{const{normalize:n}=r;return n(["Підказки, меню, поповери"])},badge:r=>{const{normalize:n}=r;return n(["Тло значків"])},post:r=>{const{normalize:n}=r;return n(["Дописи/Дані користувачів"])},alert_neutral:r=>{const{normalize:n}=r;return n(["Нейтральний"])},alert_error:r=>{const{normalize:n}=r;return n(["Помилки"])},alert:r=>{const{normalize:n}=r;return n(["Фон сповіщень"])},_tab_label:r=>{const{normalize:n}=r;return n(["Додатково"])},selectedPost:r=>{const{normalize:n}=r;return n(["Вибраний допис"])},highlight:r=>{const{normalize:n}=r;return n(["Виділені елементи"])},poll:r=>{const{normalize:n}=r;return n(["Діаграма опитування"])},icons:r=>{const{normalize:n}=r;return n(["Іконки"])},faint_text:r=>{const{normalize:n}=r;return n(["Затемнений текст"])},chat:{border:r=>{const{normalize:n}=r;return n(["Кайма"])},outgoing:r=>{const{normalize:n}=r;return n(["Вихідні повідомлення"])},incoming:r=>{const{normalize:n}=r;return n(["Вхідні повідомлення"])}},toggled:r=>{const{normalize:n}=r;return n(["Переключено"])},disabled:r=>{const{normalize:n}=r;return n(["Вимкнено"])},selectedMenu:r=>{const{normalize:n}=r;return n(["Вибраний пункт меню"])},tabs:r=>{const{normalize:n}=r;return n(["Вкладки"])},pressed:r=>{const{normalize:n}=r;return n(["Натиснуто"])},wallpaper:r=>{const{normalize:n}=r;return n(["Шпалери"])}},common_colors:{rgbo:r=>{const{normalize:n}=r;return n(["Піктограми, акценти, значки"])},foreground_hint:r=>{const{normalize:n}=r;return n(['Перегляньте вкладку "Додатково" для більшого контролю'])},main:r=>{const{normalize:n}=r;return n(["Загальні кольори"])},_tab_label:r=>{const{normalize:n}=r;return n(["Загальні"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["Скруглення"])}}},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["Увімкнути web push-сповіщення"])},notifications:r=>{const{normalize:n}=r;return n(["Сповіщення"])},fun:r=>{const{normalize:n}=r;return n(["Розваги"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["Приватність"])},notification_setting_filters:r=>{const{normalize:n}=r;return n(["Фільтри"])},reset_avatar:r=>{const{normalize:n}=r;return n(["Скинути аватар"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["Скинути обкладинку профілю"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете скинути аватар?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["Скинули банер профілю"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["Не показувати кількість підписників"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете скинути банер?"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете скинути обкладинку?"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["Вигляд теми при відповіді"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["Завжди показувати поле для вводу теми"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["Мінімізувати набір варіантів осягу для допису"])},scope_copy:r=>{const{normalize:n}=r;return n(["Копіювати осяг при відповіді (завжди ввімкнено для особистих повідомлень)"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["Шукайте кого ви хочете заглушити"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["Шукайте кого ви хочете заблокувати"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(['Автоматично ховати кнопку "Новий допис" (в мобільній версії)'])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["Призупинити трансляцію, коли вкладка неактивна"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["Не показувати кількість моїх підписників"])},notification_blocks:r=>{const{normalize:n}=r;return n(["Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження."])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["Ховати відправника та вміст push-сповіщень"])},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["Блокувати сповіщення від користувачів за якими ви не слідкуєте"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["Пошук доменів для заглушення"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["Увімкнути приховування NSFW медіа"])},greentext:r=>{const{normalize:n}=r;return n(["Мемний текст"])},virtual_scrolling:r=>{const{normalize:n}=r;return n(["Оптимізувати оновлення стрічки"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["Піктограми під деякими записами є показниками контрасту між фоном та текстом. Коли ви наведете на них курсор, ви отримаєте детальну інформацію. Пам'ятайте, якщо ви використовуєте прозорість, індикатори показують найгірший варіант."])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(['Ви також можете замінити кольори та видимість окремих компонентів, перемикаючи прапорці, використовуйте "Очистити все", щоб видалити всі заміни.'])},theme_help:r=>{const{normalize:n}=r;return n(["Використовувати шістнадцяткові коди кольору (#rrggbb) щоб редагувати тему."])},no_blocks:r=>{const{normalize:n}=r;return n(["Блокування відсутні"])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["Як в mastodon: просто скопіювати"])},subject_line_email:r=>{const{normalize:n}=r;return n(['Як в email: "re: тема"'])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(Не рекомендується, експериментально, повідомлення можуть зникати)"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["Отримувати повідомлення та сповіщення в режимі реального часу"])},streaming:r=>{const{normalize:n}=r;return n(["Ввімкнути автоматичне завантаження нових повідомлень при прокручуванні вгору"])},stop_gifs:r=>{const{normalize:n}=r;return n(["Відтворювати GIF анімації тільки при наведенні"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["Тип вмісту допису"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["Не копіювати"])},version:{frontend_version:r=>{const{normalize:n}=r;return n(["Версія фронтенду"])},backend_version:r=>{const{normalize:n}=r;return n(["Версія бекенду"])},title:r=>{const{normalize:n}=r;return n(["Версія"])}},hide_wallpaper:r=>{const{normalize:n}=r;return n(["Сховати шпалери екземпляру"])},more_settings:r=>{const{normalize:n}=r;return n(["Більше налаштувань"])},sensitive_by_default:r=>{const{normalize:n}=r;return n(["Визначати допис як дратівливий за замовчуванням"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["Показувати відповіді лише мені"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["Показувати відповіді тим, на кого я підписаний"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["Приховати приглушені повідомлення"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["Приховати попередній перегляд медіа"])},word_filter:r=>{const{normalize:n}=r;return n(["Фільтр слів"])},setting_changed:r=>{const{normalize:n}=r;return n(["Конфігурація відрізняється від типової"])},save:r=>{const{normalize:n}=r;return n(["Зберегти зміни"])},file_export_import:{errors:{file_slightly_new:r=>{const{normalize:n}=r;return n(["Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Несумісна основна версія: ",e(t("fileMajor")),", версія файлу занадто стара і не підтримується (мінімальна версія налаштувань ",e(t("feMajor")),")"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Несумісна основна версія: ",e(t("fileMajor")),", ця версія PleromaFE (",e(t("feMajor")),") занадто стара для його обробки"])},invalid_file:r=>{const{normalize:n}=r;return n(["Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено."])}},restore_settings:r=>{const{normalize:n}=r;return n(["Відновити налаштування з файлу"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["Резервне копіювання налаштувань та теми у файл"])},backup_settings:r=>{const{normalize:n}=r;return n(["Резервне копіювання налаштувань у файл"])},backup_restore:r=>{const{normalize:n}=r;return n(["Резервне копіювання налаштувань"])}},right_sidebar:r=>{const{normalize:n}=r;return n(["Показувати бокову панель справа"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["Приховати гучномовець"])},setting_server_side:r=>{const{normalize:n}=r;return n(["Цей параметр прив’язаний до вашого профілю та впливає на всі сеанси та клієнти"])},lists_navigation:r=>{const{normalize:n}=r;return n(["Показувати списки в навігації"])},account_backup:r=>{const{normalize:n}=r;return n(["Резервне копіювання облікового запису"])},account_backup_description:r=>{const{normalize:n}=r;return n(["Це дозволяє завантажити архів даних вашого облікового запису та ваших дописів, але їх ще не можна імпортувати в обліковий запис Pleroma."])},add_backup_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Не вдалося додати нову резервну копію: ",e(t("error"))])},account_alias:r=>{const{normalize:n}=r;return n(["Псевдоніми облікового запису"])},new_alias_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Додати новий псевдонім (напр. ",e(t("example")),")"])},move_account_notes:r=>{const{normalize:n}=r;return n(["Якщо ви хочете перемістити обліковий запис на інший інстанс, вам потрібно перейти до свого цільового облікового запису та додати псевдонім, що вказує цей обліковий запис."])},added_backup:r=>{const{normalize:n}=r;return n(["Додано нову резервну копію."])},expert_mode:r=>{const{normalize:n}=r;return n(["Показати додаткові параметри"])},post_look_feel:r=>{const{normalize:n}=r;return n(["Відображення дописів"])},email_language:r=>{const{normalize:n}=r;return n(["Мова для отримання електронних листів від сервера"])},account_backup_table_head:r=>{const{normalize:n}=r;return n(["Резервне копіювання"])},download_backup:r=>{const{normalize:n}=r;return n(["Завантажити"])},backup_not_ready:r=>{const{normalize:n}=r;return n(["Резервна копія ще не готова."])},remove_backup:r=>{const{normalize:n}=r;return n(["Видалити"])},list_backups_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час отримання списку резервних копій: ",e(t("error"))])},add_backup:r=>{const{normalize:n}=r;return n(["Створити нову резервну копію"])},account_alias_table_head:r=>{const{normalize:n}=r;return n(["Псевдонім"])},list_aliases_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час отримання псевдонімів: ",e(t("error"))])},hide_list_aliases_error_action:r=>{const{normalize:n}=r;return n(["Закрити"])},remove_alias:r=>{const{normalize:n}=r;return n(["Видалити цей псевдонім"])},added_alias:r=>{const{normalize:n}=r;return n(["Псевдонім додано."])},add_alias_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час додавання псевдоніма: ",e(t("error"))])},move_account:r=>{const{normalize:n}=r;return n(["Перемістити обліковий запис"])},move_account_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Цільовий обліковий запис (напр. ",e(t("example")),")"])},moved_account:r=>{const{normalize:n}=r;return n(["Обліковий запис переміщено."])},move_account_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час переміщення облікового запису: ",e(t("error"))])},word_filter_and_more:r=>{const{normalize:n}=r;return n(["Фільтр слів та більше..."])},hide_bot_indication:r=>{const{normalize:n}=r;return n(["Сховати позначку бот у дописах"])},navbar_column_stretch:r=>{const{normalize:n}=r;return n(["Розтягнути панель навігації на ширину колонок"])},hide_wordfiltered_statuses:r=>{const{normalize:n}=r;return n(["Ховати фільтровані статуси"])},hide_muted_threads:r=>{const{normalize:n}=r;return n(["Ховати приглушені треди"])},posts:r=>{const{normalize:n}=r;return n(["Дописи"])},account_privacy:r=>{const{normalize:n}=r;return n(["Безпека"])},conversation_display:r=>{const{normalize:n}=r;return n(["Стиль відображення розмови"])},conversation_display_tree:r=>{const{normalize:n}=r;return n(["Деревоподібне"])},conversation_display_tree_quick:r=>{const{normalize:n}=r;return n(["Вигляд дерева"])},disable_sticky_headers:r=>{const{normalize:n}=r;return n(["Не закріплювати заголовок колонки зверху на сторінці"])},third_column_mode_none:r=>{const{normalize:n}=r;return n(["Не показувати третю колонку взагалі"])},third_column_mode_notifications:r=>{const{normalize:n}=r;return n(["Колонка сповіщень"])},columns:r=>{const{normalize:n}=r;return n(["Колонки"])},auto_update:r=>{const{normalize:n}=r;return n(["Автоматично показувати нові дописи"])},use_websockets:r=>{const{normalize:n}=r;return n(["Використовувати вебсокети (Оновлення в реальному часі)"])},use_at_icon:r=>{const{normalize:n}=r;return n(["Показувати ","@"," символ як іконку замість тексту"])},mute_bot_posts:r=>{const{normalize:n}=r;return n(["Приховати дописи ботів"])},always_show_post_button:r=>{const{normalize:n}=r;return n(["Завжди показувати плаваючу кнопку «Новий Допис»"])},hide_favorites_description:r=>{const{normalize:n}=r;return n(["Не показувати список моїх вподобань (люди все одно отримують сповіщення)"])},third_column_mode:r=>{const{normalize:n}=r;return n(["Коли достатньо місця, показувати третю колонку, що містить"])},user_popover_avatar_action_open:r=>{const{normalize:n}=r;return n(["Відкрити профіль"])},wordfilter:r=>{const{normalize:n}=r;return n(["Фільтр слів"])},mention_links:r=>{const{normalize:n}=r;return n(["Посилання для згадування"])},user_profiles:r=>{const{normalize:n}=r;return n(["Профілі користувачів"])},notification_visibility_polls:r=>{const{normalize:n}=r;return n(["Закінчення опитувань, в яких ви проголосували"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["Вибрати все"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["Не знайдено."])},searching_for:r=>{const{normalize:n}=r;return n(["Шукаю"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["Пошукова система для віддалених користувачів"])}},registration:{validations:{password_confirmation_match:r=>{const{normalize:n}=r;return n(["пароль та підтвердження паролю мають бути однаковими"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},password_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},email_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},fullname_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},username_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])}},bio_placeholder:r=>{const{normalize:n}=r;return n(["напр.\nНаш народ завжди прагне волі для себе і бажає її для інших народів. Він боровся і бореться за правду і справедливість. Ми хочемо жити у згоді і взаємному шануванні з усіми народами доброї волі. Такі самі права визнаємо за іншими народами, за які боремося для себе."])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["напр. Степан Бандера"])},username_placeholder:r=>{const{normalize:n}=r;return n(["напр. stepan"])},new_captcha:r=>{const{normalize:n}=r;return n(["Натисніть на зображення, щоб оновити код, якщо він нерозбірливий"])},token:r=>{const{normalize:n}=r;return n(["Ключ запрошення"])},registration:r=>{const{normalize:n}=r;return n(["Реєстрація"])},password_confirm:r=>{const{normalize:n}=r;return n(["Підтвердження паролю"])},fullname:r=>{const{normalize:n}=r;return n(["Відображене ім'я"])},email:r=>{const{normalize:n}=r;return n(["Ел. пошта"])},bio:r=>{const{normalize:n}=r;return n(["Про себе"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},register:r=>{const{normalize:n}=r;return n(["Зареєструватися"])},reason_placeholder:r=>{const{normalize:n}=r;return n(["Цей інстанс обробляє запити на реєстрацію вручну.\nРозкажіть адміністрації чому ви хочете зареєструватися."])},reason:r=>{const{normalize:n}=r;return n(["Причина реєстрації"])},bio_optional:r=>{const{normalize:n}=r;return n(["Біографія (необов'язково)"])},email_language:r=>{const{normalize:n}=r;return n(["Якою мовою ви бажаєте отримувати електронні листи від сервера?"])},email_optional:r=>{const{normalize:n}=r;return n(["Ел. пошта (необов'язково)"])}},who_to_follow:{who_to_follow:r=>{const{normalize:n}=r;return n(["На кого підписатися"])},more:r=>{const{normalize:n}=r;return n(["Більше"])}},tool_tip:{repeat:r=>{const{normalize:n}=r;return n(["Поширити"])},reply:r=>{const{normalize:n}=r;return n(["Відповісти"])},add_reaction:r=>{const{normalize:n}=r;return n(["Додати реакцію"])},user_settings:r=>{const{normalize:n}=r;return n(["Налаштування користувача"])},favorite:r=>{const{normalize:n}=r;return n(["Подобається"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["Відхилити запит на підписку"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["Прийняти запит на підписку"])},media_upload:r=>{const{normalize:n}=r;return n(["Завантажити медіа"])},bookmark:r=>{const{normalize:n}=r;return n(["Додати до закладок"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["Збій при завантаженні."])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Файл завеликий [",e(t("filesize")),e(t("filesizeunit"))," / ",e(t("allowedsize")),e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["Спробуйте ще раз пізніше"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Помилка завантаження: ",e(t(0))])}},file_size_units:{TiB:r=>{const{normalize:n}=r;return n(["ТіБ"])},GiB:r=>{const{normalize:n}=r;return n(["ГіБ"])},MiB:r=>{const{normalize:n}=r;return n(["МіБ"])},KiB:r=>{const{normalize:n}=r;return n(["КіБ"])},B:r=>{const{normalize:n}=r;return n(["Б"])}}},time:{weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"тижд."])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"тижд."])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"р"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"р"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," роки"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," рік"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," тижнів"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," тиждень"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"с"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," секунда"])},now_short:r=>{const{normalize:n}=r;return n(["щойно"])},now:r=>{const{normalize:n}=r;return n(["щойно"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"міс."])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"міс."])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," місяці"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," місяць"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"хв"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"год"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"год"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"д"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"хв"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," хвилини"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," хвилина"])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," тому"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," години"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," година"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"д"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," дні"])},day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," день"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"с"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," секунди"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["через ",e(t(0))])},unit:{months:r=>{const{normalize:n,interpolate:e,list:t,plural:o}=r;return o([n([e(t(0))," місяць"]),n([e(t(0))," місяців"])])},minutes:r=>{const{normalize:n,interpolate:e,list:t,plural:o}=r;return o([n([e(t(0))," хвилина"]),n([e(t(0))," хвилин"])])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"год"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"хв"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"міс"])},seconds:r=>{const{normalize:n,interpolate:e,list:t,plural:o}=r;return o([n([e(t(0))," секунда"]),n([e(t(0))," секунд"])])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"с"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"тижд"])},years:r=>{const{normalize:n,interpolate:e,list:t,plural:o}=r;return o([n([e(t(0))," рік"]),n([e(t(0))," років"])])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"р."])},days:r=>{const{normalize:n,interpolate:e,list:t,plural:o}=r;return o([n([e(t(0))," день"]),n([e(t(0))," днів"])])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"д"])},hours:r=>{const{normalize:n,interpolate:e,list:t,plural:o}=r;return o([n([e(t(0))," година"]),n([e(t(0))," годин"])])},weeks:r=>{const{normalize:n,interpolate:e,list:t,plural:o}=r;return o([n([e(t(0))," тиждень"]),n([e(t(0))," тижнів"])])}}},search:{no_results:r=>{const{normalize:n}=r;return n(["Немає результатів"])},hashtags:r=>{const{normalize:n}=r;return n(["Хештеги"])},people:r=>{const{normalize:n}=r;return n(["Люди"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," людей говорять про це"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," особа говорить про це"])}},user_card:{statuses:r=>{const{normalize:n}=r;return n(["Дописи"])},message:r=>{const{normalize:n}=r;return n(["Повідомлення"])},follow:r=>{const{normalize:n}=r;return n(["Підписатись"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["Відписатись"])},follow_sent:r=>{const{normalize:n}=r;return n(["Запит відправлено!"])},blocked:r=>{const{normalize:n}=r;return n(["Заблоковано!"])},admin_menu:{activate_account:r=>{const{normalize:n}=r;return n(["Активувати обліковий запис"])},deactivate_account:r=>{const{normalize:n}=r;return n(["Деактивувати обліковий запис"])},delete_account:r=>{const{normalize:n}=r;return n(["Видалити обліковий запис"])},moderation:r=>{const{normalize:n}=r;return n(["Модерація"])},delete_user:r=>{const{normalize:n}=r;return n(["Видалити обліковий запис"])},strip_media:r=>{const{normalize:n}=r;return n(["Вилучити медіа з дописів користувача"])},force_nsfw:r=>{const{normalize:n}=r;return n(["Позначити всі дописи як NSFW"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["Взагалі заборонити підписку на користувача"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["Заборонити підписуватись на користувачів з віддалених інстансів"])},sandbox:r=>{const{normalize:n}=r;return n(["Показувати дописи лише підписникам"])},force_unlisted:r=>{const{normalize:n}=r;return n(["Не показувати дописи в стрічці"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["Позбавити прав модератора"])},grant_moderator:r=>{const{normalize:n}=r;return n(["Надати права модератора"])},revoke_admin:r=>{const{normalize:n}=r;return n(["Позбавити прав адміністратора"])},grant_admin:r=>{const{normalize:n}=r;return n(["Надати права адміністратора"])},quarantine:r=>{const{normalize:n}=r;return n(["Не розповсюджувати дописи на інших інстансах"])}},deny:r=>{const{normalize:n}=r;return n(["Відмовити"])},block:r=>{const{normalize:n}=r;return n(["Заблокувати"])},approve:r=>{const{normalize:n}=r;return n(["Схвалити"])},mention:r=>{const{normalize:n}=r;return n(["Згадати"])},unsubscribe:r=>{const{normalize:n}=r;return n(["Відписатись"])},subscribe:r=>{const{normalize:n}=r;return n(["Підписатись"])},report:r=>{const{normalize:n}=r;return n(["Поскаржитись"])},per_day:r=>{const{normalize:n}=r;return n(["на день"])},favorites:r=>{const{normalize:n}=r;return n(["Вподобання"])},media:r=>{const{normalize:n}=r;return n(["Медіа"])},show_repeats:r=>{const{normalize:n}=r;return n(["Показати поширення"])},hide_repeats:r=>{const{normalize:n}=r;return n(["Приховати поширення"])},its_you:r=>{const{normalize:n}=r;return n(["Це ти!"])},follows_you:r=>{const{normalize:n}=r;return n(["Підписаний на вас!"])},followers:r=>{const{normalize:n}=r;return n(["Підписники"])},followees:r=>{const{normalize:n}=r;return n(["Підписаний(-а)"])},follow_progress:r=>{const{normalize:n}=r;return n(["Запитую…"])},mute_progress:r=>{const{normalize:n}=r;return n(["Глушимо…"])},unmute_progress:r=>{const{normalize:n}=r;return n(["Знімаємо глушення…"])},unmute:r=>{const{normalize:n}=r;return n(["Зняти глушення"])},hidden:r=>{const{normalize:n}=r;return n(["Приховано"])},following:r=>{const{normalize:n}=r;return n(["Підписаний!"])},block_progress:r=>{const{normalize:n}=r;return n(["Блокуємо…"])},unblock_progress:r=>{const{normalize:n}=r;return n(["Розблоковуємо…"])},unblock:r=>{const{normalize:n}=r;return n(["Розблокувати"])},remote_follow:r=>{const{normalize:n}=r;return n(["Підписатись"])},muted:r=>{const{normalize:n}=r;return n(["Заглушений"])},mute:r=>{const{normalize:n}=r;return n(["Заглушити"])},highlight:{side:r=>{const{normalize:n}=r;return n(["Смужка ліворуч"])},striped:r=>{const{normalize:n}=r;return n(["Смугастий фон"])},solid:r=>{const{normalize:n}=r;return n(["Суцільний фон"])},disabled:r=>{const{normalize:n}=r;return n(["Не виділяти"])}},bot:r=>{const{normalize:n}=r;return n(["Бот"])},edit_profile:r=>{const{normalize:n}=r;return n(["Редагувати профіль"])},deactivated:r=>{const{normalize:n}=r;return n(["Деактивований"])},follow_cancel:r=>{const{normalize:n}=r;return n(["Скасувати запит"])}},status:{copy_link:r=>{const{normalize:n}=r;return n(["Скопіювати посилання на допис"])},status_unavailable:r=>{const{normalize:n}=r;return n(["Допис недоступний"])},replies_list:r=>{const{normalize:n}=r;return n(["Відповіді:"])},delete_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете видалити цей допис?"])},delete:r=>{const{normalize:n}=r;return n(["Видалити допис"])},pin:r=>{const{normalize:n}=r;return n(["Закріпити в профілі"])},status_deleted:r=>{const{normalize:n}=r;return n(["Цей допис був видалений"])},favorites:r=>{const{normalize:n}=r;return n(["Вподобане"])},hide_content:r=>{const{normalize:n}=r;return n(["Сховати вміст"])},show_content:r=>{const{normalize:n}=r;return n(["Показати вміст"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["Сховати всю тему"])},show_full_subject:r=>{const{normalize:n}=r;return n(["Показати всю тему"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([", має слова:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["Заглушити розмову"])},reply_to:r=>{const{normalize:n}=r;return n(["Відповідь"])},unbookmark:r=>{const{normalize:n}=r;return n(["Видалити із закладок"])},bookmark:r=>{const{normalize:n}=r;return n(["Додати до закладок"])},pinned:r=>{const{normalize:n}=r;return n(["Закріплено"])},unpin:r=>{const{normalize:n}=r;return n(["Відкріпити від профілю"])},repeats:r=>{const{normalize:n}=r;return n(["Поширення"])},nsfw:r=>{const{normalize:n}=r;return n(["Дратівливий вміст"])},thread_muted:r=>{const{normalize:n}=r;return n(["Нитка заглушена"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["Припинити глушити розмову"])},external_source:r=>{const{normalize:n}=r;return n(["Зовнішнє джерело"])},expand:r=>{const{normalize:n}=r;return n(["Розгорнути"])},edit:r=>{const{normalize:n}=r;return n(["Редагувати допис"])},edited_at:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(змінено: ",e(t("time")),")"])},thread_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},ancestor_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},plus_more:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["+",e(t("number"))," більше"])},thread_show_full_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_only_conversation_under_this:r=>{const{normalize:n}=r;return n(["Показати всі відповіді на цей допис"])},status_history:r=>{const{normalize:n}=r;return n(["Історія змін"])}},timeline:{no_more_statuses:r=>{const{normalize:n}=r;return n(["Більше немає дописів"])},up_to_date:r=>{const{normalize:n}=r;return n(["Оновлено"])},reload:r=>{const{normalize:n}=r;return n(["Оновити"])},show_new:r=>{const{normalize:n}=r;return n(["Показати нові"])},load_older:r=>{const{normalize:n}=r;return n(["Завантажити давніші дописи"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Помилка завантаження стрічки: ",e(t(0))])},collapse:r=>{const{normalize:n}=r;return n(["Згорнути"])},conversation:r=>{const{normalize:n}=r;return n(["Розмова"])},no_statuses:r=>{const{normalize:n}=r;return n(["Ніяких статусів"])},repeated:r=>{const{normalize:n}=r;return n(["поширив(-ла)"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(['Запис, позначено як "тільки для підписників" або "особисте" і тому не може бути поширений'])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Втрачено з'єднання у реальному часі: код ",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["Встановлено з'єднання у реальному часі"])}},user_reporting:{submit:r=>{const{normalize:n}=r;return n(["Відправити"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Переслати до ",e(t(0))])},forward_description:r=>{const{normalize:n}=r;return n(["Цей обліковий запис належить іншому інстансу. Відправити їм копію скарги?"])},additional_comments:r=>{const{normalize:n}=r;return n(["Додаткове пояснення"])},add_comment_description:r=>{const{normalize:n}=r;return n(["Скарга буде надіслана модераторам вашого інстансу. Нижче Ви можете додати пояснення чому ви вирішили поскаржитись на цей обліковий запис:"])},title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Поскаржитись на ",e(t(0))])},generic_error:r=>{const{normalize:n}=r;return n(["Виникла помилка під час обробки вашого запиту."])}},user_profile:{profile_loading_error:r=>{const{normalize:n}=r;return n(["Вибачте, під час завантаження цього профілю виникла помилка."])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["Вибачте, цей профіль більше не існує."])},timeline_title:r=>{const{normalize:n}=r;return n(["Стрічка користувача"])}},report:{notes:r=>{const{normalize:n}=r;return n(["Примітки:"])},state:r=>{const{normalize:n}=r;return n(["Статус:"])},state_open:r=>{const{normalize:n}=r;return n(["відкритий"])},state_closed:r=>{const{normalize:n}=r;return n(["закритий"])},state_resolved:r=>{const{normalize:n}=r;return n(["вирішений"])},reported_statuses:r=>{const{normalize:n}=r;return n(["Дописи, на які подано скаргу:"])},reporter:r=>{const{normalize:n}=r;return n(["Позивач:"])},reported_user:r=>{const{normalize:n}=r;return n(["Відповідач:"])}},announcements:{delete_action:r=>{const{normalize:n}=r;return n(["Видалити"])},page_header:r=>{const{normalize:n}=r;return n(["Анонси"])},title:r=>{const{normalize:n}=r;return n(["Анонси"])},mark_as_read_action:r=>{const{normalize:n}=r;return n(["Позначити як прочитане"])},post_form_header:r=>{const{normalize:n}=r;return n(["Розмістити оголошення"])},post_placeholder:r=>{const{normalize:n}=r;return n(["Введіть текст вашого оголошення тут..."])},post_action:r=>{const{normalize:n}=r;return n(["Пост"])},post_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка: ",e(t("error"))])},close_error:r=>{const{normalize:n}=r;return n(["Закрити"])},start_time_prompt:r=>{const{normalize:n}=r;return n(["Початок: "])},end_time_prompt:r=>{const{normalize:n}=r;return n(["Кінець: "])},all_day_prompt:r=>{const{normalize:n}=r;return n(["Це захід на цілий день"])},published_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Опубліковано в ",e(t("time"))])},start_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Початок о ",e(t("time"))])},end_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Кінець о ",e(t("time"))])},edit_action:r=>{const{normalize:n}=r;return n(["Редагувати"])},submit_edit_action:r=>{const{normalize:n}=r;return n(["Надіслати"])},cancel_edit_action:r=>{const{normalize:n}=r;return n(["Скасувати"])},inactive_message:r=>{const{normalize:n}=r;return n(["Це оголошення неактивне"])}}}}}]);
+//# sourceMappingURL=uk-json.003908af9b15becdd382.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js.map b/priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js.map
new file mode 100644
index 000000000..0bc713664
--- /dev/null
+++ b/priv/static/static/js/i18n/uk-json.003908af9b15becdd382.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/i18n/uk-json.003908af9b15becdd382.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/uk.json"],"sourcesContent":["export default {\n \"general\": {\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перевірити\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердити\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увімкнути\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимкнути\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скасувати\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати менше\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати більше\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"необов'язково\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Спробуйте ще раз\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Будь ласка, спробуйте ще раз\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виникла помилка\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантаження…\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправити\"])},\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Застосувати\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Глянути\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Модератор\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Адміністратор\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Натисніть для перегляду змісту Flash за допомогою Ruffle (експериментально, може не працювати).\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ця функція може становити ризик, оскільки Flash-вміст все ще є потенційно небезпечним.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдалося завантажити Flash-вміст, докладнішу інформацію дивись у консолі.\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Виникла помилка: \", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ніколи не показувати знову\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватне\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Лише читачі\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Публічне\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Непублічне\"])}\n },\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відмінити\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Так\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ні\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкріпити\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вгору\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прикріпити\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувача не знайдено\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Знайти користувача\"])}\n },\n \"features_panel\": {\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Чати\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оголошення\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кого відстежувати\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Особливості\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Параметри обсягу\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Посередник медіа-даних\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ліміт символів\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обмеження завантажень\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Гучномовець\"])}\n },\n \"exporter\": {\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Опрацьовую, скоро ви зможете завантажити файл\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вмикаю…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимкнути заглушення\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимикаю…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ігнорувати\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Гучномовець\"])}\n },\n \"about\": {\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Адміністрація\"])},\n \"mrf\": {\n \"simple\": {\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Примусове визначення медіа як дратівливого\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс видаляє медіа з дописів на перелічених інстансах:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалення медіа\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалення зі стрічки Федеративної мережі\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Карантин\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс не прийматиме повідомлення з перелічених інстансів:\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прийняти\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відхилити\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс приймає повідомлення тільки з перелічених інстансів:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Правила поточного інстансу\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Причина\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"н/в\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Інстанс\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Активувати правила MRF (модуль переписування повідомлень)\"])},\n \"keyword\": {\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Замінити\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відхилити\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прибрати з федеративної стрічки\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Політика щодо ключових слів\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Федерація\"])}\n }\n },\n \"login\": {\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увійдіть, щоб доєднатися до дискусії\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ім'я користувача\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зареєструватись\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пароль\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вийти\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увійти за допомогою OAuth\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увійти\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Код відновлення\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть код відновлення\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Код автентифікації\"])},\n \"heading\": {\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двофакторне відновлення\"])},\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двофакторна автентифікація\"])}\n },\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть двофакторний код автентифікації\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр. stepan\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете вийти?\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вийти\"])},\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ні, хочу назад!\"])}\n },\n \"importer\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час імпортування файлу сталася помилка.\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортовано успішно.\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправити\"])}\n },\n \"image_cropper\": {\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відмінити\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти не обрізаючи\"])},\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обрізати малюнок\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти\"])}\n },\n \"polls\": {\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Опитування закінчилось \", _interpolate(_list(0)), \" тому\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Опитування закінчується через \", _interpolate(_list(0))])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Термін опитування\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Декілька варіантів\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Один варіант\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати опцію\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тип опитування\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Проголосувати\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"голосів\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповідь\"])},\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати опитування\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Замало унікальних варіантів в опитуванні\"])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" особа проголосувала\"]), _normalize([_interpolate(_named(\"count\")), \" осіб проголосувало\"])])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" голос\"]), _normalize([_interpolate(_named(\"count\")), \" голосів\"])])}\n },\n \"notifications\": {\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"додав реакцію: \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"мігрував на\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Немає більше сповіщень\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"поширив(-ла) ваш допис\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прочитано!\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сповіщення\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити давніші сповіщення\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"хоче підписатись на вас\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"підписався(-лась) на вас\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"вподобав(-ла) ваш допис\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Невідомий допис, шукаю його…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Помилка при оновленні сповіщень: \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"опитування закінчено\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"подав скаргу\"])}\n },\n \"nav\": {\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Чати\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стрічки\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Уся відома мережа\"])},\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Інформація\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запити послідовників\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кого відстежувати\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук користувача\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закладки\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Домашня стрічка\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Публічна стрічка\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватні повідомлення\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Взаємодії\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згадування\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назад\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Адміністрування\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Домашня стрічка\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Списки\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Редагувати прикріплене\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завершити редагування\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ввімкнути бокову панель\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкрити сповіщення (є непрочитані)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити сповіщення\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Редагувати панель навігації\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Анонси\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити панель пошуку\"])}\n },\n \"media_modal\": {\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Наступна\"])},\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередня\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити медіапереглядач\"])}\n },\n \"password_reset\": {\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть свою адресу електронної пошти або ім’я користувача. Ми надішлемо вам посилання для скидання пароля.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ваша електронна адреса або ім'я користувача\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перевірте електронну пошту на наявність посилання для скидання пароля.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Повернутися на головну сторінку\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви досягли ліміту спроб, спробуйте ще раз пізніше.\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви повинні скинути свій пароль, але скидання пароля вимкнено. Зверніться до адміністратора інстансу.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скидання пароля вимкнено. Зверніться до адміністратора інстансу.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Для входу потрібно скинути пароль.\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відновити пароль\"])},\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Забули пароль?\"])}\n },\n \"chats\": {\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Повідомлення для \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Чати\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Новий чат\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдається опублікувати порожнє повідомлення\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете видалити це повідомлення?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час завантаження чату сталася помилка.\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час надсилання повідомлення сталася помилка.\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"У вас ще немає чатів. Почніть новий чат!\"])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аудіо\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відео\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зображення\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Файл\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сьогодні\"])}\n },\n \"interactions\": {\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити давніші взаємодії\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нові підписки\"])},\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширення та вподобайки\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Міграції користувачів\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Емоджі реакції\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скарги\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma не змогла отримати доступ до сховища браузеру. Ваша сесія та налаштування не будуть збережені, це може спричинити непередбачувані проблеми. Спробуйте увімкнути cookie.\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стікери\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувацькі емодзі\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук емодзі\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тримати панель відкритою\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати емодзі\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Емодзі\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Всі \", _interpolate(_named(\"emojiAmount\")), \" эмодзі завантажуються\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Завантажені перші \", _interpolate(_named(\"saneAmount\")), \" емодзі, завантаження всіх емодзі може призвести до проблем з продуктивністю.\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стандартні емодзі\"])},\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Регіональний індикатор \", _interpolate(_named(\"letter\"))])},\n \"unicode_groups\": {\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тварини і Рослини\"])},\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прапори\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Їжа та Напої\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Об'єкти\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Люди та Тіло\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Смайлики та Емотікони\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Активності\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Символи\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Подорожі та Місця\"])}\n }\n },\n \"post_status\": {\n \"content_type\": {\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Текстові дані\"])}\n },\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позначити вкладення як чутливі\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"замкнена\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Ваша обліковка не \", _interpolate(_list(0)), \". Будь-хто може відстежувати вас для перегляду дописів тільки для підписників.\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Створити допис\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис побачать лише користувачі, що були згадані на початку повідомлення.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис побачать всі згадані користувачі.\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Що нового?\"])},\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тема (необов'язково)\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередній перегляд\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправляється\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не можу опублікувати пустий статус без вкладень\"])},\n \"scope\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Непублічний - цей допис буде відсутній у публічних стрічках\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Публічний - цей допис побачать усі\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Для читачів - цей допис побачать лише ваші читачі\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватний - цей допис побачать лише згадані користувачі\"])}\n },\n \"scope_notice\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис не буде видно в публічній стрічці та усій відомій мережі\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис побачать лише ваші підписники\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис бачитимуть усі\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пустий\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдалось оновити медіа, спробуйте ще раз\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Опис медіа\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Опублікувати\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma не підтримує редагування згадувань чи голосувань.\"])},\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Редагувати допис\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Інші віддалені інстанси можуть не підтримувати редагування та вони можуть не отримати актуальну версію допису.\"])}\n },\n \"settings\": {\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування імпортовані! Їх обробка триватиме певний час.\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилка імпортування блокувань\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт блокувань\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт блокувань у файл CSV\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт блокувань\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Про Вас\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обкладинка\"])},\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назва програми\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експортувати відстежуваних\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Усі статуси з цими словами будуть приховані, один на рядок\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтрування\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти переднабір\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть ваш пароль в поле нижче, аби підтвердити видалення облікового запису.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час видалення вашого облікового запису виникла проблема. Якщо це трапляється постійно, будь ласка, зверніться до адміністратора вашого сервера.\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Остаточно видалити ваш обліковий запис та усі ваші повідомлення.\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити обліковий запис\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обсяг видимості за замовчуванням\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт/експорт даних\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний пароль\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердіть новий пароль\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Складання відповіді\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згорнути дописи з темами\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пароль успішно змінено!\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдалося змінити пароль.\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Змінити пароль\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Червоний (Скасувати)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зелений (Поширити)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Жовтогарячий (Вподобайки)\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блакитний (Відповісти, читати)\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопки\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватарки\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватарки у сповіщеннях\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватар\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вкладення\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вкладення\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загальні\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Передній план\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відстежуваних імпортовано! Їхня обробка потребує часу.\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилка імпортування відстежуваних\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортувати відстежуваних\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експортувати відстежуваних до csv файлу\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обмежте свій обліковий запис лише схваленими читачами\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Посилання\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Недоступно у вашому браузері\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін.\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мова оболонки\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оболонка\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(за замовчуванням)\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(за замовчуванням: \", _interpolate(_named(\"value\")), \")\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прапорці\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поля вводу\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити переднабір\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортувати відстежуваних з csv файлу\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортувати заблокованих з csv файлу\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати відфільтровані статуси\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати статистику користувачів (напр. кількість відстежувачів)\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати статистику дописів (напр. кількість вподобаних)\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкривати NSFW вкладення одним кліком миші\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Передзавантажувати світлини\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати панель з особливостями сервера\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Максимальна кількість мініатюр на повідомлення\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати повідомлення приглушених користувачів\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати вкладення у стрічці\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати вкладення у розмовах\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушені\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зациклити відео без звуку (напр. Mastodon \\\"gifs\\\")\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зациклити відео\"])},\n \"mfa\": {\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Щоб увімкнути двофакторну автентифікацію, введіть код з вашого застосунку для двофакторної автентифікації:\"])}\n },\n \"scan\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відскануйте цей QR-код за допомогою програми двофакторної автентифікації або введіть текстовий ключ:\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сканування\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ключ\"])}\n },\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Методи автентифікації\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запишіть ці коди і тримайте в безпечному місці - інакше ви їх ніколи не побачите. Якщо ви втратите доступ до OTP додатку - без резервних кодів ви не зможете отримати доступ до свого облікового запису.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Отримую резервні коди…\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервні коди.\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Після отримання нових резервних кодів, старі перестануть працювати.\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згенерувати нові резервні коди\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двофакторна автентифікація\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердити та увімкнути OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"попереднє налаштування OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування OTP\"])},\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])}\n },\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть свій поточний пароль\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Безпека\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Домени\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дозволити виявлення цього облікового запису в результатах пошуку та інших службах\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушення та блокування\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email успішно змінено!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сталася помилка під час зміни email.\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Змінити email\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це обліковий запис бота\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт заглушених з csv файлу\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушені імпортовані! Їх обробка триватиме певний час.\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт заглушених у csv файл\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час імпорту заглушених сталася помилка\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт ігнорувань\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт ігнорувань\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Новий пароль\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нова ел. пошта\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Особисті дані\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановити новий банер\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановити новий аватар\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Безпека\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування збережені\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилка при збереженні налаштувань\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати лише адресовані мені відповіді\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати відповіді адресовані лише мені або користувачам, яких я читаю\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати всі відповіді\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповіді в стрічці\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Профіль\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Банер профілю\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обкладинка профілю\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкликати\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth ключі\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ключ\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оновити ключ\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Діє до\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не обрізати краї мініатюр\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ім'я\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зміст\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назва\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати поле\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Метадані профілю\"])}\n },\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відтворювати відео у спливаючій рамці\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Акцент\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Повідомлення в бесіді\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Щоб перестати отримувати сповіщення від певного користувача, заглушіть його.\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувачі\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушені відсутні\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати реакції емоджі на стрічці\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Автоматично додавати простір з обидвох сторін емоджі\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дозволити автостеження при переміщенні на інший інстанс\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановити нову обкладинку профілю\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Радіус заокруглення кутів інтерфейсу (в пікселях)\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Переднабір\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати значок модератора в моєму профілі\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати значок адміністратора в моєму профілі\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати хто підписаний на мене\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати на кого я підписаний\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалення всього форматування тексту з усіх дописів\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Реакції\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Міграція користувача\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширення допису\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згадування\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вподобайки\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нові підписки\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Отримувати сповіщення про наступні події\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Панелі\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Текст\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підказки/попередження\"])},\n \"values\": {\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"так\"])},\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ні\"])}\n },\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувацькі налаштування\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити фото\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тема\"])},\n \"style\": {\n \"switcher\": {\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити шрифти\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити скруглення\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити прозорості\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити тіні\"])},\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити кольори\"])},\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нова версія\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стара версія\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити тему\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинути\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Очистити все\"])},\n \"help\": {\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортований файл було створено в старішій версії FE.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортований файл було створено в новішій версії FE.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Файл, який ви імпортували, був створений для старішої версії інтерфейсу Pleroma. Ми намагаємось покращити сумісність, але все одно можуть бути розбіжності.\"])},\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE було оновлено, тема може дещо відрізнятися від тієї, яку ви пам’ятаєте.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Конфлікт версій: Швидше за все, FE повернуто до попередньої версії та оновлено знову, якщо ви змінили тему за допомогою старішої версії FE, швидше за все, ви хочете використовувати стару версію, інакше використовуйте нову версію.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"З якоїсь причини знімок зник, деякі речі можуть бути не такими, як ви пам’ятаєте.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Для безпеки, знімок теми завантажено. Ви можете спробувати завантажити дані теми.\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версію PleromaFE змінено на старшу.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двигун теми PleromaFE оновлено.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"У файлі немає жодного знімка теми, тому він може виглядати інакше, ніж передбачалося спочатку.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Знімок теми завантажено, тому всі значення було перезаписано. Натомість ви можете завантажити правильні дані теми.\"])}\n },\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити як є\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Очистити прозорість\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Параметри \\\"Зберегти\\\" зберігають поточні параметри під час вибору або завантаження тем, вони також зберігають зазначені параметри під час експорту теми. Коли всі прапорці знято, експортування теми збереже все.\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Колір\"])},\n \"contrast\": {\n \"context\": {\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"для тексту\"])},\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"для великого (18pt+) тексту\"])}\n },\n \"level\": {\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не відповідає жодним вимогам щодо доступності\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"відповідає вимогам рівня ААA (рекомендований)\"])},\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"відповідає вимогам рівня АА (мінімальний)\"])}\n },\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Рівень контрасту: \", _interpolate(_named(\"ratio\")), \", \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])}\n },\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прозорість\"])}\n },\n \"preview\": {\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"змісту\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Трохи більше \", _interpolate(_list(0)), \" та \", _interpolate(_list(1))])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приклад помилки\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зміст\"])},\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередній перегляд\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"невеличке посилання\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це нормально\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Що нового?\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Я переглянув умови використання\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Прочитайте наш \", _interpolate(_list(0)), \" аби нічого нового не дізнатись!\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"корисний підручник\"])}\n },\n \"shadows\": {\n \"components\": {\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поле вводу\"])},\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Панель\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заголовок панелі\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватар користувача (в стрічці)\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватар користувача (профіль)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка (натиснута + наведений курсор)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка (натиснута)\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка (при наведенні)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Спливаючі вікна та підказки\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Верхня панель\"])}\n },\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Компонент\"])},\n \"filter_hint\": {\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Тіні спрямовані всередину використовуватимуть \", _interpolate(_list(0))])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тіні з поширенням > 0 відображатимуться так, ніби було встановлено нуль\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зауважте, що використання як вставних, так і невставних тіней на аватарах може привести до непередбачуваних результатів із прозорими аватарами.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" не підтримує параметр \", _interpolate(_list(1)), \" та ключове слово \", _interpolate(_list(2)), \".\"])},\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Увага! Ця тінь завжди використовує \", _interpolate(_list(0)), \", якщо підтримується браузером.\"])}\n },\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Всередину\"])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмиття\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Тінь №\", _interpolate(_named(\"value\"))])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перевизначити\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тінь і підсвічування\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Для тіней ви також можете використовувати позначення \", _interpolate(_list(0)), \" для використання іншого кольорового слота.\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмах\"])}\n },\n \"fonts\": {\n \"components\": {\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поля вводу\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Інтерфейс\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Моноширинний текст в дописі (форматований текст)\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Текст допису\"])}\n },\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шрифти\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмір (в пікселях)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нестандартний\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Товщина\"])},\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назва шрифту\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виберіть шрифт для елементів інтерфейсу. Для \\\"нестандартного\\\" потрібно ввести точну назву шрифту, так як вона відображається в системі.\"])}\n },\n \"advanced_colors\": {\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередження\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тло\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поля входу\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопки\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кордони\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Верхня панель\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заголовок панелі\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сповіщення\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підказки, меню, поповери\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тло значків\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дописи/Дані користувачів\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нейтральний\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилки\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фон сповіщень\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додатково\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний допис\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виділені елементи\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Діаграма опитування\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Іконки\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Затемнений текст\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кайма\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вихідні повідомлення\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вхідні повідомлення\"])}\n },\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Переключено\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимкнено\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний пункт меню\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вкладки\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Натиснуто\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шпалери\"])}\n },\n \"common_colors\": {\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Піктограми, акценти, значки\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перегляньте вкладку \\\"Додатково\\\" для більшого контролю\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загальні кольори\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загальні\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скруглення\"])}\n }\n },\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увімкнути web push-сповіщення\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сповіщення\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розваги\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватність\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтри\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинути аватар\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинути обкладинку профілю\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете скинути аватар?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинули банер профілю\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати кількість підписників\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете скинути банер?\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете скинути обкладинку?\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вигляд теми при відповіді\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завжди показувати поле для вводу теми\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мінімізувати набір варіантів осягу для допису\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Копіювати осяг при відповіді (завжди ввімкнено для особистих повідомлень)\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шукайте кого ви хочете заглушити\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шукайте кого ви хочете заблокувати\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Автоматично ховати кнопку \\\"Новий допис\\\" (в мобільній версії)\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Призупинити трансляцію, коли вкладка неактивна\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати кількість моїх підписників\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження.\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ховати відправника та вміст push-сповіщень\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокувати сповіщення від користувачів за якими ви не слідкуєте\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук доменів для заглушення\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увімкнути приховування NSFW медіа\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мемний текст\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оптимізувати оновлення стрічки\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Піктограми під деякими записами є показниками контрасту між фоном та текстом. Коли ви наведете на них курсор, ви отримаєте детальну інформацію. Пам'ятайте, якщо ви використовуєте прозорість, індикатори показують найгірший варіант.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви також можете замінити кольори та видимість окремих компонентів, перемикаючи прапорці, використовуйте \\\"Очистити все\\\", щоб видалити всі заміни.\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Використовувати шістнадцяткові коди кольору (#rrggbb) щоб редагувати тему.\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування відсутні\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Як в mastodon: просто скопіювати\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Як в email: \\\"re: тема\\\"\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Не рекомендується, експериментально, повідомлення можуть зникати)\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Отримувати повідомлення та сповіщення в режимі реального часу\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ввімкнути автоматичне завантаження нових повідомлень при прокручуванні вгору\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відтворювати GIF анімації тільки при наведенні\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тип вмісту допису\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не копіювати\"])},\n \"version\": {\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версія фронтенду\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версія бекенду\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версія\"])}\n },\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати шпалери екземпляру\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше налаштувань\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Визначати допис як дратівливий за замовчуванням\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати відповіді лише мені\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати відповіді тим, на кого я підписаний\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати приглушені повідомлення\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати попередній перегляд медіа\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтр слів\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Конфігурація відрізняється від типової\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти зміни\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Несумісна основна версія: \", _interpolate(_named(\"fileMajor\")), \", версія файлу занадто стара і не підтримується (мінімальна версія налаштувань \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Несумісна основна версія: \", _interpolate(_named(\"fileMajor\")), \", ця версія PleromaFE (\", _interpolate(_named(\"feMajor\")), \") занадто стара для його обробки\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено.\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відновити налаштування з файлу\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання налаштувань та теми у файл\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання налаштувань у файл\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання налаштувань\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати бокову панель справа\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати гучномовець\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей параметр прив’язаний до вашого профілю та впливає на всі сеанси та клієнти\"])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати списки в навігації\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання облікового запису\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це дозволяє завантажити архів даних вашого облікового запису та ваших дописів, але їх ще не можна імпортувати в обліковий запис Pleroma.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Не вдалося додати нову резервну копію: \", _interpolate(_named(\"error\"))])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Псевдоніми облікового запису\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Додати новий псевдонім (напр. \", _interpolate(_named(\"example\")), \")\"])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Якщо ви хочете перемістити обліковий запис на інший інстанс, вам потрібно перейти до свого цільового облікового запису та додати псевдонім, що вказує цей обліковий запис.\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додано нову резервну копію.\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати додаткові параметри\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відображення дописів\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мова для отримання електронних листів від сервера\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервна копія ще не готова.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час отримання списку резервних копій: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Створити нову резервну копію\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Псевдонім\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час отримання псевдонімів: \", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити цей псевдонім\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Псевдонім додано.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час додавання псевдоніма: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перемістити обліковий запис\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Цільовий обліковий запис (напр. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обліковий запис переміщено.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час переміщення облікового запису: \", _interpolate(_named(\"error\"))])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтр слів та більше...\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати позначку бот у дописах\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розтягнути панель навігації на ширину колонок\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ховати фільтровані статуси\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ховати приглушені треди\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дописи\"])},\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Безпека\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стиль відображення розмови\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Деревоподібне\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вигляд дерева\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не закріплювати заголовок колонки зверху на сторінці\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати третю колонку взагалі\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Колонка сповіщень\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Колонки\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Автоматично показувати нові дописи\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Використовувати вебсокети (Оновлення в реальному часі)\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати \", \"@\", \" символ як іконку замість тексту\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати дописи ботів\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завжди показувати плаваючу кнопку «Новий Допис»\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати список моїх вподобань (люди все одно отримують сповіщення)\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Коли достатньо місця, показувати третю колонку, що містить\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкрити профіль\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтр слів\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Посилання для згадування\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Профілі користувачів\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закінчення опитувань, в яких ви проголосували\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибрати все\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не знайдено.\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шукаю\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошукова система для віддалених користувачів\"])}\n },\n \"registration\": {\n \"validations\": {\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"пароль та підтвердження паролю мають бути однаковими\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])}\n },\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр.\\nНаш народ завжди прагне волі для себе і бажає її для інших народів. Він боровся і бореться за правду і справедливість. Ми хочемо жити у згоді і взаємному шануванні з усіми народами доброї волі. Такі самі права визнаємо за іншими народами, за які боремося для себе.\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр. Степан Бандера\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр. stepan\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Натисніть на зображення, щоб оновити код, якщо він нерозбірливий\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ключ запрошення\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Реєстрація\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердження паролю\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відображене ім'я\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ел. пошта\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Про себе\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зареєструватися\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей інстанс обробляє запити на реєстрацію вручну.\\nРозкажіть адміністрації чому ви хочете зареєструватися.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Причина реєстрації\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Біографія (необов'язково)\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Якою мовою ви бажаєте отримувати електронні листи від сервера?\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ел. пошта (необов'язково)\"])}\n },\n \"who_to_follow\": {\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"На кого підписатися\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше\"])}\n },\n \"tool_tip\": {\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширити\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповісти\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати реакцію\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування користувача\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Подобається\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відхилити запит на підписку\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прийняти запит на підписку\"])},\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити медіа\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати до закладок\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Збій при завантаженні.\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Файл завеликий [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Спробуйте ще раз пізніше\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Помилка завантаження: \", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ТіБ\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ГіБ\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"МіБ\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"КіБ\"])},\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Б\"])}\n }\n },\n \"time\": {\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"тижд.\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"тижд.\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"р\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"р\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" роки\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" рік\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" тижнів\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" тиждень\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"с\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" секунда\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"щойно\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"щойно\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"міс.\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"міс.\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" місяці\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" місяць\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"хв\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"год\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"год\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"д\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"хв\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" хвилини\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" хвилина\"])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" тому\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" години\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" година\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"д\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" дні\"])},\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" день\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"с\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" секунди\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"через \", _interpolate(_list(0))])},\n \"unit\": {\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" місяць\"]), _normalize([_interpolate(_list(0)), \" місяців\"])])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" хвилина\"]), _normalize([_interpolate(_list(0)), \" хвилин\"])])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"год\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"хв\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"міс\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" секунда\"]), _normalize([_interpolate(_list(0)), \" секунд\"])])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"с\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"тижд\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" рік\"]), _normalize([_interpolate(_list(0)), \" років\"])])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"р.\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" день\"]), _normalize([_interpolate(_list(0)), \" днів\"])])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"д\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" година\"]), _normalize([_interpolate(_list(0)), \" годин\"])])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" тиждень\"]), _normalize([_interpolate(_list(0)), \" тижнів\"])])}\n }\n },\n \"search\": {\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Немає результатів\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Хештеги\"])},\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Люди\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" людей говорять про це\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" особа говорить про це\"])}\n },\n \"user_card\": {\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дописи\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Повідомлення\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписатись\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відписатись\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запит відправлено!\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заблоковано!\"])},\n \"admin_menu\": {\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Активувати обліковий запис\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Деактивувати обліковий запис\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити обліковий запис\"])},\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Модерація\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити обліковий запис\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вилучити медіа з дописів користувача\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позначити всі дописи як NSFW\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Взагалі заборонити підписку на користувача\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заборонити підписуватись на користувачів з віддалених інстансів\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати дописи лише підписникам\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати дописи в стрічці\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позбавити прав модератора\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Надати права модератора\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позбавити прав адміністратора\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Надати права адміністратора\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не розповсюджувати дописи на інших інстансах\"])}\n },\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відмовити\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заблокувати\"])},\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Схвалити\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згадати\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відписатись\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписатись\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поскаржитись\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"на день\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вподобання\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Медіа\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати поширення\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати поширення\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це ти!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписаний на вас!\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписники\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписаний(-а)\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запитую…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Глушимо…\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Знімаємо глушення…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зняти глушення\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховано\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписаний!\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокуємо…\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розблоковуємо…\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розблокувати\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписатись\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушений\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушити\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Смужка ліворуч\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Смугастий фон\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Суцільний фон\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не виділяти\"])}\n },\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Бот\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Редагувати профіль\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Деактивований\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скасувати запит\"])}\n },\n \"status\": {\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скопіювати посилання на допис\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Допис недоступний\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповіді:\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете видалити цей допис?\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити допис\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закріпити в профілі\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис був видалений\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вподобане\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати вміст\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати вміст\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати всю тему\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати всю тему\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", має слова:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушити розмову\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповідь\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити із закладок\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати до закладок\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закріплено\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкріпити від профілю\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширення\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дратівливий вміст\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нитка заглушена\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Припинити глушити розмову\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зовнішнє джерело\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розгорнути\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Редагувати допис\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(змінено: \", _interpolate(_named(\"time\")), \")\"])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"+\", _interpolate(_named(\"number\")), \" більше\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати всі відповіді на цей допис\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Історія змін\"])}\n },\n \"timeline\": {\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше немає дописів\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оновлено\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оновити\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати нові\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити давніші дописи\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Помилка завантаження стрічки: \", _interpolate(_list(0))])},\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згорнути\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмова\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ніяких статусів\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"поширив(-ла)\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запис, позначено як \\\"тільки для підписників\\\" або \\\"особисте\\\" і тому не може бути поширений\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Втрачено з'єднання у реальному часі: код \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановлено з'єднання у реальному часі\"])}\n },\n \"user_reporting\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправити\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Переслати до \", _interpolate(_list(0))])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей обліковий запис належить іншому інстансу. Відправити їм копію скарги?\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додаткове пояснення\"])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скарга буде надіслана модераторам вашого інстансу. Нижче Ви можете додати пояснення чому ви вирішили поскаржитись на цей обліковий запис:\"])},\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Поскаржитись на \", _interpolate(_list(0))])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виникла помилка під час обробки вашого запиту.\"])}\n },\n \"user_profile\": {\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибачте, під час завантаження цього профілю виникла помилка.\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибачте, цей профіль більше не існує.\"])},\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стрічка користувача\"])}\n },\n \"report\": {\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Примітки:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Статус:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"відкритий\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"закритий\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"вирішений\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дописи, на які подано скаргу:\"])},\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позивач:\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповідач:\"])}\n },\n \"announcements\": {\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити\"])},\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Анонси\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Анонси\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позначити як прочитане\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмістити оголошення\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть текст вашого оголошення тут...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пост\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Початок: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кінець: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це захід на цілий день\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Опубліковано в \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Початок о \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Кінець о \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Редагувати\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Надіслати\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скасувати\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це оголошення неактивне\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js b/priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js
deleted file mode 100644
index 60220c36d..000000000
--- a/priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[5253],{8411:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={general:{dismiss:r=>{const{normalize:n}=r;return n(["Закрити"])},close:r=>{const{normalize:n}=r;return n(["Закрити"])},verify:r=>{const{normalize:n}=r;return n(["Перевірити"])},confirm:r=>{const{normalize:n}=r;return n(["Підтвердити"])},enable:r=>{const{normalize:n}=r;return n(["Увімкнути"])},disable:r=>{const{normalize:n}=r;return n(["Вимкнути"])},cancel:r=>{const{normalize:n}=r;return n(["Скасувати"])},show_less:r=>{const{normalize:n}=r;return n(["Показати менше"])},show_more:r=>{const{normalize:n}=r;return n(["Показати більше"])},optional:r=>{const{normalize:n}=r;return n(["необов'язково"])},retry:r=>{const{normalize:n}=r;return n(["Спробуйте ще раз"])},error_retry:r=>{const{normalize:n}=r;return n(["Будь ласка, спробуйте ще раз"])},generic_error:r=>{const{normalize:n}=r;return n(["Виникла помилка"])},loading:r=>{const{normalize:n}=r;return n(["Завантаження…"])},more:r=>{const{normalize:n}=r;return n(["Більше"])},submit:r=>{const{normalize:n}=r;return n(["Відправити"])},apply:r=>{const{normalize:n}=r;return n(["Застосувати"])},peek:r=>{const{normalize:n}=r;return n(["Глянути"])},role:{moderator:r=>{const{normalize:n}=r;return n(["Модератор"])},admin:r=>{const{normalize:n}=r;return n(["Адміністратор"])}},flash_content:r=>{const{normalize:n}=r;return n(["Натисніть для перегляду змісту Flash за допомогою Ruffle (експериментально, може не працювати)."])},flash_security:r=>{const{normalize:n}=r;return n(["Ця функція може становити ризик, оскільки Flash-вміст все ще є потенційно небезпечним."])},flash_fail:r=>{const{normalize:n}=r;return n(["Не вдалося завантажити Flash-вміст, докладнішу інформацію дивись у консолі."])},generic_error_message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Виникла помилка: ",e(t(0))])},never_show_again:r=>{const{normalize:n}=r;return n(["Ніколи не показувати знову"])},scope_in_timeline:{direct:r=>{const{normalize:n}=r;return n(["Приватне"])},private:r=>{const{normalize:n}=r;return n(["Лише читачі"])},public:r=>{const{normalize:n}=r;return n(["Публічне"])},unlisted:r=>{const{normalize:n}=r;return n(["Непублічне"])}}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["Користувача не знайдено"])},find_user:r=>{const{normalize:n}=r;return n(["Знайти користувача"])}},features_panel:{gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Чати"])},chat:r=>{const{normalize:n}=r;return n(["Оголошення"])},who_to_follow:r=>{const{normalize:n}=r;return n(["Кого відстежувати"])},title:r=>{const{normalize:n}=r;return n(["Особливості"])},scope_options:r=>{const{normalize:n}=r;return n(["Параметри обсягу"])},media_proxy:r=>{const{normalize:n}=r;return n(["Посередник медіа-даних"])},text_limit:r=>{const{normalize:n}=r;return n(["Ліміт символів"])},upload_limit:r=>{const{normalize:n}=r;return n(["Обмеження завантажень"])},shout:r=>{const{normalize:n}=r;return n(["Оголошення"])}},exporter:{processing:r=>{const{normalize:n}=r;return n(["Опрацьовую, скоро ви зможете завантажити файл"])},export:r=>{const{normalize:n}=r;return n(["Експорт"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["Вмикаю…"])},unmute:r=>{const{normalize:n}=r;return n(["Вимкнути заглушення"])},mute_progress:r=>{const{normalize:n}=r;return n(["Вимикаю…"])},mute:r=>{const{normalize:n}=r;return n(["Ігнорувати"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["Оголошення"])}},about:{staff:r=>{const{normalize:n}=r;return n(["Адміністрація"])},mrf:{simple:{media_nsfw_desc:r=>{const{normalize:n}=r;return n(["Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["Примусове визначення медіа як дратівливого"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс видаляє медіа з дописів на перелічених інстансах:"])},media_removal:r=>{const{normalize:n}=r;return n(["Видалення медіа"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["Видалення зі стрічки Федеративної мережі"])},quarantine_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:"])},quarantine:r=>{const{normalize:n}=r;return n(["Карантин"])},reject_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс не прийматиме повідомлення з перелічених інстансів:"])},accept:r=>{const{normalize:n}=r;return n(["Прийняти"])},reject:r=>{const{normalize:n}=r;return n(["Відхилити"])},accept_desc:r=>{const{normalize:n}=r;return n(["Поточний інстанс приймає повідомлення тільки з перелічених інстансів:"])},simple_policies:r=>{const{normalize:n}=r;return n(["Правила поточного інстансу"])},reason:r=>{const{normalize:n}=r;return n(["Причина"])},not_applicable:r=>{const{normalize:n}=r;return n(["н/в"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:"])},mrf_policies:r=>{const{normalize:n}=r;return n(["Активувати правила MRF (модуль переписування повідомлень)"])},keyword:{is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},replace:r=>{const{normalize:n}=r;return n(["Замінити"])},reject:r=>{const{normalize:n}=r;return n(["Відхилити"])},ftl_removal:r=>{const{normalize:n}=r;return n(["Прибрати з федеративної стрічки"])},keyword_policies:r=>{const{normalize:n}=r;return n(["Політика щодо ключових слів"])}},federation:r=>{const{normalize:n}=r;return n(["Федерація"])}}},login:{hint:r=>{const{normalize:n}=r;return n(["Увійдіть, щоб доєднатися до дискусії"])},username:r=>{const{normalize:n}=r;return n(["Ім'я користувача"])},register:r=>{const{normalize:n}=r;return n(["Зареєструватись"])},password:r=>{const{normalize:n}=r;return n(["Пароль"])},logout:r=>{const{normalize:n}=r;return n(["Вийти"])},description:r=>{const{normalize:n}=r;return n(["Увійти за допомогою OAuth"])},login:r=>{const{normalize:n}=r;return n(["Увійти"])},recovery_code:r=>{const{normalize:n}=r;return n(["Код відновлення"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["Введіть код відновлення"])},authentication_code:r=>{const{normalize:n}=r;return n(["Код автентифікації"])},heading:{recovery:r=>{const{normalize:n}=r;return n(["Двофакторне відновлення"])},totp:r=>{const{normalize:n}=r;return n(["Двофакторна автентифікація"])}},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["Введіть двофакторний код автентифікації"])},placeholder:r=>{const{normalize:n}=r;return n(["напр. stepan"])}},importer:{error:r=>{const{normalize:n}=r;return n(["Під час імпортування файлу сталася помилка."])},success:r=>{const{normalize:n}=r;return n(["Імпортовано успішно."])},submit:r=>{const{normalize:n}=r;return n(["Відправити"])}},image_cropper:{cancel:r=>{const{normalize:n}=r;return n(["Відмінити"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["Зберегти не обрізаючи"])},crop_picture:r=>{const{normalize:n}=r;return n(["Обрізати малюнок"])},save:r=>{const{normalize:n}=r;return n(["Зберегти"])}},polls:{expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Опитування закінчилось ",e(t(0))," тому"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Опитування закінчується через ",e(t(0))])},expiry:r=>{const{normalize:n}=r;return n(["Термін опитування"])},multiple_choices:r=>{const{normalize:n}=r;return n(["Декілька варіантів"])},single_choice:r=>{const{normalize:n}=r;return n(["Один варіант"])},add_option:r=>{const{normalize:n}=r;return n(["Додати опцію"])},type:r=>{const{normalize:n}=r;return n(["Тип опитування"])},vote:r=>{const{normalize:n}=r;return n(["Проголосувати"])},votes:r=>{const{normalize:n}=r;return n(["голосів"])},option:r=>{const{normalize:n}=r;return n(["Відповідь"])},add_poll:r=>{const{normalize:n}=r;return n(["Додати опитування"])},not_enough_options:r=>{const{normalize:n}=r;return n(["Замало унікальних варіантів в опитуванні"])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," особа проголосувала"]),n([e(t("count"))," осіб проголосувало"])])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," голос"]),n([e(t("count"))," голосів"])])}},notifications:{reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["додав реакцію: ",e(t(0))])},migrated_to:r=>{const{normalize:n}=r;return n(["мігрував на"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["Немає більше сповіщень"])},repeated_you:r=>{const{normalize:n}=r;return n(["поширив(-ла) ваш допис"])},read:r=>{const{normalize:n}=r;return n(["Прочитано!"])},notifications:r=>{const{normalize:n}=r;return n(["Сповіщення"])},load_older:r=>{const{normalize:n}=r;return n(["Завантажити давніші сповіщення"])},follow_request:r=>{const{normalize:n}=r;return n(["хоче підписатись на вас"])},followed_you:r=>{const{normalize:n}=r;return n(["підписався(-лась) на вас"])},favorited_you:r=>{const{normalize:n}=r;return n(["вподобав(-ла) ваш допис"])},broken_favorite:r=>{const{normalize:n}=r;return n(["Невідомий допис, шукаю його…"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Помилка при оновленні сповіщень: ",e(t(0))])},poll_ended:r=>{const{normalize:n}=r;return n(["опитування закінчено"])}},nav:{chats:r=>{const{normalize:n}=r;return n(["Чати"])},timelines:r=>{const{normalize:n}=r;return n(["Стрічки"])},twkn:r=>{const{normalize:n}=r;return n(["Уся відома мережа"])},about:r=>{const{normalize:n}=r;return n(["Інформація"])},preferences:r=>{const{normalize:n}=r;return n(["Налаштування"])},friend_requests:r=>{const{normalize:n}=r;return n(["Запити послідовників"])},who_to_follow:r=>{const{normalize:n}=r;return n(["Кого відстежувати"])},search:r=>{const{normalize:n}=r;return n(["Пошук"])},user_search:r=>{const{normalize:n}=r;return n(["Пошук користувача"])},bookmarks:r=>{const{normalize:n}=r;return n(["Закладки"])},timeline:r=>{const{normalize:n}=r;return n(["Домашня стрічка"])},public_tl:r=>{const{normalize:n}=r;return n(["Публічна стрічка"])},dms:r=>{const{normalize:n}=r;return n(["Приватні повідомлення"])},interactions:r=>{const{normalize:n}=r;return n(["Взаємодії"])},mentions:r=>{const{normalize:n}=r;return n(["Згадування"])},back:r=>{const{normalize:n}=r;return n(["Назад"])},administration:r=>{const{normalize:n}=r;return n(["Адміністрування"])},home_timeline:r=>{const{normalize:n}=r;return n(["Домашня стрічка"])},lists:r=>{const{normalize:n}=r;return n(["Списки"])}},media_modal:{next:r=>{const{normalize:n}=r;return n(["Наступна"])},previous:r=>{const{normalize:n}=r;return n(["Попередня"])},counter:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("current"))," / ",e(t("total"))])},hide:r=>{const{normalize:n}=r;return n(["Закрити медіапереглядач"])}},password_reset:{instruction:r=>{const{normalize:n}=r;return n(["Введіть свою адресу електронної пошти або ім’я користувача. Ми надішлемо вам посилання для скидання пароля."])},placeholder:r=>{const{normalize:n}=r;return n(["Ваша електронна адреса або ім'я користувача"])},check_email:r=>{const{normalize:n}=r;return n(["Перевірте електронну пошту на наявність посилання для скидання пароля."])},return_home:r=>{const{normalize:n}=r;return n(["Повернутися на головну сторінку"])},too_many_requests:r=>{const{normalize:n}=r;return n(["Ви досягли ліміту спроб, спробуйте ще раз пізніше."])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["Ви повинні скинути свій пароль, але скидання пароля вимкнено. Зверніться до адміністратора інстансу."])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["Скидання пароля вимкнено. Зверніться до адміністратора інстансу."])},password_reset_required:r=>{const{normalize:n}=r;return n(["Для входу потрібно скинути пароль."])},password_reset:r=>{const{normalize:n}=r;return n(["Відновити пароль"])},forgot_password:r=>{const{normalize:n}=r;return n(["Забули пароль?"])}},chats:{you:r=>{const{normalize:n}=r;return n(["Ви:"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Повідомлення для ",e(t("nickname"))])},delete:r=>{const{normalize:n}=r;return n(["Видалити"])},chats:r=>{const{normalize:n}=r;return n(["Чати"])},new:r=>{const{normalize:n}=r;return n(["Новий чат"])},empty_message_error:r=>{const{normalize:n}=r;return n(["Не вдається опублікувати порожнє повідомлення"])},more:r=>{const{normalize:n}=r;return n(["Більше"])},delete_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете видалити це повідомлення?"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["Під час завантаження чату сталася помилка."])},error_sending_message:r=>{const{normalize:n}=r;return n(["Під час надсилання повідомлення сталася помилка."])},empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["У вас ще немає чатів. Почніть новий чат!"])}},file_type:{audio:r=>{const{normalize:n}=r;return n(["Аудіо"])},video:r=>{const{normalize:n}=r;return n(["Відео"])},image:r=>{const{normalize:n}=r;return n(["Зображення"])},file:r=>{const{normalize:n}=r;return n(["Файл"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["Сьогодні"])}},interactions:{load_older:r=>{const{normalize:n}=r;return n(["Завантажити давніші взаємодії"])},follows:r=>{const{normalize:n}=r;return n(["Нові підписки"])},favs_repeats:r=>{const{normalize:n}=r;return n(["Поширення та вподобайки"])},moves:r=>{const{normalize:n}=r;return n(["Міграції користувачів"])},emoji_reactions:r=>{const{normalize:n}=r;return n(["Емоджі реакції"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma не змогла отримати доступ до сховища браузеру. Ваша сесія та налаштування не будуть збережені, це може спричинити непередбачувані проблеми. Спробуйте увімкнути cookie."])}},emoji:{stickers:r=>{const{normalize:n}=r;return n(["Стікери"])},custom:r=>{const{normalize:n}=r;return n(["Користувацькі емодзі"])},search_emoji:r=>{const{normalize:n}=r;return n(["Пошук емодзі"])},keep_open:r=>{const{normalize:n}=r;return n(["Тримати панель відкритою"])},add_emoji:r=>{const{normalize:n}=r;return n(["Додати емодзі"])},emoji:r=>{const{normalize:n}=r;return n(["Емодзі"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Всі ",e(t("emojiAmount"))," эмодзі завантажуються"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Завантажені перші ",e(t("saneAmount"))," емодзі, завантаження всіх емодзі може призвести до проблем з продуктивністю."])},unicode:r=>{const{normalize:n}=r;return n(["Стандартні емодзі"])}},post_status:{content_type:{"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/plain":r=>{const{normalize:n}=r;return n(["Текстові дані"])}},attachments_sensitive:r=>{const{normalize:n}=r;return n(["Позначити вкладення як чутливі"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["замкнена"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Ваша обліковка не ",e(t(0)),". Будь-хто може відстежувати вас для перегляду дописів тільки для підписників."])},new_status:r=>{const{normalize:n}=r;return n(["Створити допис"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["Цей допис побачать лише користувачі, що були згадані на початку повідомлення."])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["Цей допис побачать всі згадані користувачі."])},default:r=>{const{normalize:n}=r;return n(["Що нового?"])},content_warning:r=>{const{normalize:n}=r;return n(["Тема (необов'язково)"])},preview:r=>{const{normalize:n}=r;return n(["Попередній перегляд"])},posting:r=>{const{normalize:n}=r;return n(["Відправляється"])},empty_status_error:r=>{const{normalize:n}=r;return n(["Не можу опублікувати пустий статус без вкладень"])},scope:{unlisted:r=>{const{normalize:n}=r;return n(["Непублічний - цей допис буде відсутній у публічних стрічках"])},public:r=>{const{normalize:n}=r;return n(["Публічний - цей допис побачать усі"])},private:r=>{const{normalize:n}=r;return n(["Для читачів - цей допис побачать лише ваші читачі"])},direct:r=>{const{normalize:n}=r;return n(["Приватний - цей допис побачать лише згадані користувачі"])}},scope_notice:{unlisted:r=>{const{normalize:n}=r;return n(["Цей допис не буде видно в публічній стрічці та усій відомій мережі"])},private:r=>{const{normalize:n}=r;return n(["Цей допис побачать лише ваші підписники"])},public:r=>{const{normalize:n}=r;return n(["Цей допис бачитимуть усі"])}},preview_empty:r=>{const{normalize:n}=r;return n(["Пустий"])},media_description_error:r=>{const{normalize:n}=r;return n(["Не вдалось оновити медіа, спробуйте ще раз"])},media_description:r=>{const{normalize:n}=r;return n(["Опис медіа"])},post:r=>{const{normalize:n}=r;return n(["Опублікувати"])}},settings:{blocks_imported:r=>{const{normalize:n}=r;return n(["Блокування імпортовані! Їх обробка триватиме певний час."])},block_import_error:r=>{const{normalize:n}=r;return n(["Помилка імпортування блокувань"])},block_import:r=>{const{normalize:n}=r;return n(["Імпорт блокувань"])},block_export_button:r=>{const{normalize:n}=r;return n(["Експорт блокувань у файл CSV"])},block_export:r=>{const{normalize:n}=r;return n(["Експорт блокувань"])},bio:r=>{const{normalize:n}=r;return n(["Про Вас"])},background:r=>{const{normalize:n}=r;return n(["Обкладинка"])},app_name:r=>{const{normalize:n}=r;return n(["Назва програми"])},follow_export:r=>{const{normalize:n}=r;return n(["Експортувати відстежуваних"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["Усі статуси з цими словами будуть приховані, один на рядок"])},filtering:r=>{const{normalize:n}=r;return n(["Фільтрування"])},export_theme:r=>{const{normalize:n}=r;return n(["Зберегти переднабір"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів."])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["Введіть ваш пароль в поле нижче, аби підтвердити видалення облікового запису."])},delete_account_error:r=>{const{normalize:n}=r;return n(["Під час видалення вашого облікового запису виникла проблема. Якщо це трапляється постійно, будь ласка, зверніться до адміністратора вашого сервера."])},delete_account_description:r=>{const{normalize:n}=r;return n(["Остаточно видалити ваш обліковий запис та усі ваші повідомлення."])},delete_account:r=>{const{normalize:n}=r;return n(["Видалити обліковий запис"])},default_vis:r=>{const{normalize:n}=r;return n(["Обсяг видимості за замовчуванням"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["Імпорт/експорт даних"])},current_password:r=>{const{normalize:n}=r;return n(["Поточний пароль"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["Підтвердіть новий пароль"])},composing:r=>{const{normalize:n}=r;return n(["Складання відповіді"])},collapse_subject:r=>{const{normalize:n}=r;return n(["Згорнути дописи з темами"])},changed_password:r=>{const{normalize:n}=r;return n(["Пароль успішно змінено!"])},change_password_error:r=>{const{normalize:n}=r;return n(["Не вдалося змінити пароль."])},change_password:r=>{const{normalize:n}=r;return n(["Змінити пароль"])},cRed:r=>{const{normalize:n}=r;return n(["Червоний (Скасувати)"])},cGreen:r=>{const{normalize:n}=r;return n(["Зелений (Поширити)"])},cOrange:r=>{const{normalize:n}=r;return n(["Жовтогарячий (Вподобайки)"])},cBlue:r=>{const{normalize:n}=r;return n(["Блакитний (Відповісти, читати)"])},btnRadius:r=>{const{normalize:n}=r;return n(["Кнопки"])},blocks_tab:r=>{const{normalize:n}=r;return n(["Блокування"])},avatarRadius:r=>{const{normalize:n}=r;return n(["Аватарки"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["Аватарки у сповіщеннях"])},avatar:r=>{const{normalize:n}=r;return n(["Аватар"])},attachments:r=>{const{normalize:n}=r;return n(["Вкладення"])},attachmentRadius:r=>{const{normalize:n}=r;return n(["Вкладення"])},general:r=>{const{normalize:n}=r;return n(["Загальні"])},foreground:r=>{const{normalize:n}=r;return n(["Передній план"])},follows_imported:r=>{const{normalize:n}=r;return n(["Відстежуваних імпортовано! Їхня обробка потребує часу."])},follow_import_error:r=>{const{normalize:n}=r;return n(["Помилка імпортування відстежуваних"])},follow_import:r=>{const{normalize:n}=r;return n(["Імпортувати відстежуваних"])},follow_export_button:r=>{const{normalize:n}=r;return n(["Експортувати відстежуваних до csv файлу"])},lock_account_description:r=>{const{normalize:n}=r;return n(["Обмежте свій обліковий запис лише схваленими читачами"])},links:r=>{const{normalize:n}=r;return n(["Посилання"])},limited_availability:r=>{const{normalize:n}=r;return n(["Недоступно у вашому браузері"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін."])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["Мова оболонки"])},interface:r=>{const{normalize:n}=r;return n(["Оболонка"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(за замовчуванням)"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(за замовчуванням: ",e(t("value")),")"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["Прапорці"])},inputRadius:r=>{const{normalize:n}=r;return n(["Поля вводу"])},import_theme:r=>{const{normalize:n}=r;return n(["Завантажити переднабір"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["Імпортувати відстежуваних з csv файлу"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["Імпортувати заблокованих з csv файлу"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["Сховати відфільтровані статуси"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["Приховувати статистику користувачів (напр. кількість відстежувачів)"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["Приховувати статистику дописів (напр. кількість вподобаних)"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["Відкривати NSFW вкладення одним кліком миші"])},preload_images:r=>{const{normalize:n}=r;return n(["Передзавантажувати світлини"])},hide_isp:r=>{const{normalize:n}=r;return n(["Сховати панель з особливостями сервера"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["Максимальна кількість мініатюр на повідомлення"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["Приховати повідомлення приглушених користувачів"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["Приховувати вкладення у стрічці"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["Приховувати вкладення у розмовах"])},mutes_tab:r=>{const{normalize:n}=r;return n(["Заглушені"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(['Зациклити відео без звуку (напр. Mastodon "gifs")'])},loop_video:r=>{const{normalize:n}=r;return n(["Зациклити відео"])},mfa:{verify:{desc:r=>{const{normalize:n}=r;return n(["Щоб увімкнути двофакторну автентифікацію, введіть код з вашого застосунку для двофакторної автентифікації:"])}},scan:{desc:r=>{const{normalize:n}=r;return n(["Відскануйте цей QR-код за допомогою програми двофакторної автентифікації або введіть текстовий ключ:"])},title:r=>{const{normalize:n}=r;return n(["Сканування"])},secret_code:r=>{const{normalize:n}=r;return n(["Ключ"])}},authentication_methods:r=>{const{normalize:n}=r;return n(["Методи автентифікації"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["Запишіть ці коди і тримайте в безпечному місці - інакше ви їх ніколи не побачите. Якщо ви втратите доступ до OTP додатку - без резервних кодів ви не зможете отримати доступ до свого облікового запису."])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["Отримую резервні коди…"])},recovery_codes:r=>{const{normalize:n}=r;return n(["Резервні коди."])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["Після отримання нових резервних кодів, старі перестануть працювати."])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["Згенерувати нові резервні коди"])},title:r=>{const{normalize:n}=r;return n(["Двофакторна автентифікація"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["Підтвердити та увімкнути OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["попереднє налаштування OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["Налаштування OTP"])},otp:r=>{const{normalize:n}=r;return n(["OTP"])}},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["Введіть свій поточний пароль"])},security:r=>{const{normalize:n}=r;return n(["Безпека"])},domain_mutes:r=>{const{normalize:n}=r;return n(["Домени"])},discoverable:r=>{const{normalize:n}=r;return n(["Дозволити виявлення цього облікового запису в результатах пошуку та інших службах"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["Заглушення та блокування"])},changed_email:r=>{const{normalize:n}=r;return n(["Email успішно змінено!"])},change_email_error:r=>{const{normalize:n}=r;return n(["Сталася помилка під час зміни email."])},change_email:r=>{const{normalize:n}=r;return n(["Змінити email"])},bot:r=>{const{normalize:n}=r;return n(["Це обліковий запис бота"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["Імпорт заглушених з csv файлу"])},mutes_imported:r=>{const{normalize:n}=r;return n(["Заглушені імпортовані! Їх обробка триватиме певний час."])},mute_export_button:r=>{const{normalize:n}=r;return n(["Експорт заглушених у csv файл"])},mute_import_error:r=>{const{normalize:n}=r;return n(["Під час імпорту заглушених сталася помилка"])},mute_import:r=>{const{normalize:n}=r;return n(["Імпорт ігнорувань"])},mute_export:r=>{const{normalize:n}=r;return n(["Експорт ігнорувань"])},new_password:r=>{const{normalize:n}=r;return n(["Новий пароль"])},new_email:r=>{const{normalize:n}=r;return n(["Нова ел. пошта"])},name_bio:r=>{const{normalize:n}=r;return n(["Особисті дані"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["Встановити новий банер"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["Встановити новий аватар"])},security_tab:r=>{const{normalize:n}=r;return n(["Безпека"])},saving_ok:r=>{const{normalize:n}=r;return n(["Налаштування збережені"])},saving_err:r=>{const{normalize:n}=r;return n(["Помилка при збереженні налаштувань"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["Показувати лише адресовані мені відповіді"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["Показувати відповіді адресовані лише мені або користувачам, яких я читаю"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["Показати всі відповіді"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["Відповіді в стрічці"])},profile_tab:r=>{const{normalize:n}=r;return n(["Профіль"])},profile_banner:r=>{const{normalize:n}=r;return n(["Банер профілю"])},profile_background:r=>{const{normalize:n}=r;return n(["Обкладинка профілю"])},revoke_token:r=>{const{normalize:n}=r;return n(["Відкликати"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth ключі"])},token:r=>{const{normalize:n}=r;return n(["Ключ"])},refresh_token:r=>{const{normalize:n}=r;return n(["Оновити ключ"])},valid_until:r=>{const{normalize:n}=r;return n(["Діє до"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["Не обрізати краї мініатюр"])},name:r=>{const{normalize:n}=r;return n(["Ім'я"])},profile_fields:{value:r=>{const{normalize:n}=r;return n(["Зміст"])},name:r=>{const{normalize:n}=r;return n(["Назва"])},add_field:r=>{const{normalize:n}=r;return n(["Додати поле"])},label:r=>{const{normalize:n}=r;return n(["Метадані профілю"])}},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["Відтворювати відео у спливаючій рамці"])},accent:r=>{const{normalize:n}=r;return n(["Акцент"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["Повідомлення в бесіді"])},notification_mutes:r=>{const{normalize:n}=r;return n(["Щоб перестати отримувати сповіщення від певного користувача, заглушіть його."])},user_mutes:r=>{const{normalize:n}=r;return n(["Користувачі"])},no_mutes:r=>{const{normalize:n}=r;return n(["Заглушені відсутні"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["Показувати реакції емоджі на стрічці"])},pad_emoji:r=>{const{normalize:n}=r;return n(["Автоматично додавати простір з обидвох сторін емоджі"])},allow_following_move:r=>{const{normalize:n}=r;return n(["Дозволити автостеження при переміщенні на інший інстанс"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["Встановити нову обкладинку профілю"])},radii_help:r=>{const{normalize:n}=r;return n(["Радіус заокруглення кутів інтерфейсу (в пікселях)"])},presets:r=>{const{normalize:n}=r;return n(["Переднабір"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["Показувати значок модератора в моєму профілі"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["Показувати значок адміністратора в моєму профілі"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["Не показувати хто підписаний на мене"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["Не показувати на кого я підписаний"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["Видалення всього форматування тексту з усіх дописів"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["Реакції"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["Міграція користувача"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["Поширення допису"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["Згадування"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["Вподобайки"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["Нові підписки"])},notification_visibility:r=>{const{normalize:n}=r;return n(["Отримувати сповіщення про наступні події"])},settings:r=>{const{normalize:n}=r;return n(["Налаштування"])},panelRadius:r=>{const{normalize:n}=r;return n(["Панелі"])},text:r=>{const{normalize:n}=r;return n(["Текст"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["Підказки/попередження"])},values:{true:r=>{const{normalize:n}=r;return n(["так"])},false:r=>{const{normalize:n}=r;return n(["ні"])}},user_settings:r=>{const{normalize:n}=r;return n(["Користувацькі налаштування"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["Завантажити фото"])},theme:r=>{const{normalize:n}=r;return n(["Тема"])},style:{switcher:{keep_fonts:r=>{const{normalize:n}=r;return n(["Залишити шрифти"])},keep_roundness:r=>{const{normalize:n}=r;return n(["Залишити скруглення"])},keep_opacity:r=>{const{normalize:n}=r;return n(["Залишити прозорості"])},keep_shadows:r=>{const{normalize:n}=r;return n(["Залишити тіні"])},keep_color:r=>{const{normalize:n}=r;return n(["Залишити кольори"])},use_source:r=>{const{normalize:n}=r;return n(["Нова версія"])},use_snapshot:r=>{const{normalize:n}=r;return n(["Стара версія"])},load_theme:r=>{const{normalize:n}=r;return n(["Завантажити тему"])},reset:r=>{const{normalize:n}=r;return n(["Скинути"])},clear_all:r=>{const{normalize:n}=r;return n(["Очистити все"])},help:{older_version_imported:r=>{const{normalize:n}=r;return n(["Імпортований файл було створено в старішій версії FE."])},future_version_imported:r=>{const{normalize:n}=r;return n(["Імпортований файл було створено в новішій версії FE."])},v2_imported:r=>{const{normalize:n}=r;return n(["Файл, який ви імпортували, був створений для старішої версії інтерфейсу Pleroma. Ми намагаємось покращити сумісність, але все одно можуть бути розбіжності."])},upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE було оновлено, тема може дещо відрізнятися від тієї, яку ви пам’ятаєте."])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["Конфлікт версій: Швидше за все, FE повернуто до попередньої версії та оновлено знову, якщо ви змінили тему за допомогою старішої версії FE, швидше за все, ви хочете використовувати стару версію, інакше використовуйте нову версію."])},migration_napshot_gone:r=>{const{normalize:n}=r;return n(["З якоїсь причини знімок зник, деякі речі можуть бути не такими, як ви пам’ятаєте."])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["Для безпеки, знімок теми завантажено. Ви можете спробувати завантажити дані теми."])},fe_downgraded:r=>{const{normalize:n}=r;return n(["Версію PleromaFE змінено на старшу."])},fe_upgraded:r=>{const{normalize:n}=r;return n(["Двигун теми PleromaFE оновлено."])},snapshot_missing:r=>{const{normalize:n}=r;return n(["У файлі немає жодного знімка теми, тому він може виглядати інакше, ніж передбачалося спочатку."])},snapshot_present:r=>{const{normalize:n}=r;return n(["Знімок теми завантажено, тому всі значення було перезаписано. Натомість ви можете завантажити правильні дані теми."])}},keep_as_is:r=>{const{normalize:n}=r;return n(["Залишити як є"])},clear_opacity:r=>{const{normalize:n}=r;return n(["Очистити прозорість"])},save_load_hint:r=>{const{normalize:n}=r;return n(['Параметри "Зберегти" зберігають поточні параметри під час вибору або завантаження тем, вони також зберігають зазначені параметри під час експорту теми. Коли всі прапорці знято, експортування теми збереже все.'])}},common:{color:r=>{const{normalize:n}=r;return n(["Колір"])},contrast:{context:{text:r=>{const{normalize:n}=r;return n(["для тексту"])},"18pt":r=>{const{normalize:n}=r;return n(["для великого (18pt+) тексту"])}},level:{bad:r=>{const{normalize:n}=r;return n(["Не відповідає жодним вимогам щодо доступності"])},aaa:r=>{const{normalize:n}=r;return n(["відповідає вимогам рівня ААA (рекомендований)"])},aa:r=>{const{normalize:n}=r;return n(["відповідає вимогам рівня АА (мінімальний)"])}},hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Рівень контрасту: ",e(t("ratio")),", ",e(t("level"))," ",e(t("context"))])}},opacity:r=>{const{normalize:n}=r;return n(["Прозорість"])}},preview:{mono:r=>{const{normalize:n}=r;return n(["змісту"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Трохи більше ",e(t(0))," та ",e(t(1))])},button:r=>{const{normalize:n}=r;return n(["Кнопка"])},error:r=>{const{normalize:n}=r;return n(["Приклад помилки"])},content:r=>{const{normalize:n}=r;return n(["Зміст"])},header:r=>{const{normalize:n}=r;return n(["Попередній перегляд"])},link:r=>{const{normalize:n}=r;return n(["невеличке посилання"])},header_faint:r=>{const{normalize:n}=r;return n(["Це нормально"])},input:r=>{const{normalize:n}=r;return n(["Що нового?"])},checkbox:r=>{const{normalize:n}=r;return n(["Я переглянув умови використання"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Прочитайте наш ",e(t(0))," аби нічого нового не дізнатись!"])},faint_link:r=>{const{normalize:n}=r;return n(["корисний підручник"])}},shadows:{components:{button:r=>{const{normalize:n}=r;return n(["Кнопка"])},input:r=>{const{normalize:n}=r;return n(["Поле вводу"])},panel:r=>{const{normalize:n}=r;return n(["Панель"])},panelHeader:r=>{const{normalize:n}=r;return n(["Заголовок панелі"])},avatarStatus:r=>{const{normalize:n}=r;return n(["Аватар користувача (в стрічці)"])},avatar:r=>{const{normalize:n}=r;return n(["Аватар користувача (профіль)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["Кнопка (натиснута + наведений курсор)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["Кнопка (натиснута)"])},buttonHover:r=>{const{normalize:n}=r;return n(["Кнопка (при наведенні)"])},popup:r=>{const{normalize:n}=r;return n(["Спливаючі вікна та підказки"])},topBar:r=>{const{normalize:n}=r;return n(["Верхня панель"])}},component:r=>{const{normalize:n}=r;return n(["Компонент"])},filter_hint:{inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Тіні спрямовані всередину використовуватимуть ",e(t(0))])},spread_zero:r=>{const{normalize:n}=r;return n(["Тіні з поширенням > 0 відображатимуться так, ніби було встановлено нуль"])},avatar_inset:r=>{const{normalize:n}=r;return n(["Зауважте, що використання як вставних, так і невставних тіней на аватарах може привести до непередбачуваних результатів із прозорими аватарами."])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," не підтримує параметр ",e(t(1))," та ключове слово ",e(t(2)),"."])},always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Увага! Ця тінь завжди використовує ",e(t(0)),", якщо підтримується браузером."])}},inset:r=>{const{normalize:n}=r;return n(["Всередину"])},blur:r=>{const{normalize:n}=r;return n(["Розмиття"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Тінь №",e(t("value"))])},override:r=>{const{normalize:n}=r;return n(["Перевизначити"])},_tab_label:r=>{const{normalize:n}=r;return n(["Тінь і підсвічування"])},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Для тіней ви також можете використовувати позначення ",e(t(0))," для використання іншого кольорового слота."])},spread:r=>{const{normalize:n}=r;return n(["Розмах"])}},fonts:{components:{input:r=>{const{normalize:n}=r;return n(["Поля вводу"])},interface:r=>{const{normalize:n}=r;return n(["Інтерфейс"])},postCode:r=>{const{normalize:n}=r;return n(["Моноширинний текст в дописі (форматований текст)"])},post:r=>{const{normalize:n}=r;return n(["Текст допису"])}},_tab_label:r=>{const{normalize:n}=r;return n(["Шрифти"])},size:r=>{const{normalize:n}=r;return n(["Розмір (в пікселях)"])},custom:r=>{const{normalize:n}=r;return n(["Нестандартний"])},weight:r=>{const{normalize:n}=r;return n(["Товщина"])},family:r=>{const{normalize:n}=r;return n(["Назва шрифту"])},help:r=>{const{normalize:n}=r;return n(['Виберіть шрифт для елементів інтерфейсу. Для "нестандартного" потрібно ввести точну назву шрифту, так як вона відображається в системі.'])}},advanced_colors:{alert_warning:r=>{const{normalize:n}=r;return n(["Попередження"])},underlay:r=>{const{normalize:n}=r;return n(["Тло"])},inputs:r=>{const{normalize:n}=r;return n(["Поля входу"])},buttons:r=>{const{normalize:n}=r;return n(["Кнопки"])},borders:r=>{const{normalize:n}=r;return n(["Кордони"])},top_bar:r=>{const{normalize:n}=r;return n(["Верхня панель"])},panel_header:r=>{const{normalize:n}=r;return n(["Заголовок панелі"])},badge_notification:r=>{const{normalize:n}=r;return n(["Сповіщення"])},popover:r=>{const{normalize:n}=r;return n(["Підказки, меню, поповери"])},badge:r=>{const{normalize:n}=r;return n(["Тло значків"])},post:r=>{const{normalize:n}=r;return n(["Дописи/Дані користувачів"])},alert_neutral:r=>{const{normalize:n}=r;return n(["Нейтральний"])},alert_error:r=>{const{normalize:n}=r;return n(["Помилки"])},alert:r=>{const{normalize:n}=r;return n(["Фон сповіщень"])},_tab_label:r=>{const{normalize:n}=r;return n(["Додатково"])},selectedPost:r=>{const{normalize:n}=r;return n(["Вибраний допис"])},highlight:r=>{const{normalize:n}=r;return n(["Виділені елементи"])},poll:r=>{const{normalize:n}=r;return n(["Діаграма опитування"])},icons:r=>{const{normalize:n}=r;return n(["Іконки"])},faint_text:r=>{const{normalize:n}=r;return n(["Затемнений текст"])},chat:{border:r=>{const{normalize:n}=r;return n(["Кайма"])},outgoing:r=>{const{normalize:n}=r;return n(["Вихідні повідомлення"])},incoming:r=>{const{normalize:n}=r;return n(["Вхідні повідомлення"])}},toggled:r=>{const{normalize:n}=r;return n(["Переключено"])},disabled:r=>{const{normalize:n}=r;return n(["Вимкнено"])},selectedMenu:r=>{const{normalize:n}=r;return n(["Вибраний пункт меню"])},tabs:r=>{const{normalize:n}=r;return n(["Вкладки"])},pressed:r=>{const{normalize:n}=r;return n(["Натиснуто"])},wallpaper:r=>{const{normalize:n}=r;return n(["Шпалери"])}},common_colors:{rgbo:r=>{const{normalize:n}=r;return n(["Піктограми, акценти, значки"])},foreground_hint:r=>{const{normalize:n}=r;return n(['Перегляньте вкладку "Додатково" для більшого контролю'])},main:r=>{const{normalize:n}=r;return n(["Загальні кольори"])},_tab_label:r=>{const{normalize:n}=r;return n(["Загальні"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["Скруглення"])}}},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["Увімкнути web push-сповіщення"])},notifications:r=>{const{normalize:n}=r;return n(["Сповіщення"])},fun:r=>{const{normalize:n}=r;return n(["Розваги"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["Приватність"])},notification_setting_filters:r=>{const{normalize:n}=r;return n(["Фільтри"])},reset_avatar:r=>{const{normalize:n}=r;return n(["Скинути аватар"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["Скинути обкладинку профілю"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете скинути аватар?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["Скинули банер профілю"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["Не показувати кількість підписників"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете скинути банер?"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете скинути обкладинку?"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["Вигляд теми при відповіді"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["Завжди показувати поле для вводу теми"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["Мінімізувати набір варіантів осягу для допису"])},scope_copy:r=>{const{normalize:n}=r;return n(["Копіювати осяг при відповіді (завжди ввімкнено для особистих повідомлень)"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["Шукайте кого ви хочете заглушити"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["Шукайте кого ви хочете заблокувати"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(['Автоматично ховати кнопку "Новий допис" (в мобільній версії)'])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["Призупинити трансляцію, коли вкладка неактивна"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["Не показувати кількість моїх підписників"])},notification_blocks:r=>{const{normalize:n}=r;return n(["Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження."])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["Ховати відправника та вміст push-сповіщень"])},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["Блокувати сповіщення від користувачів за якими ви не слідкуєте"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["Пошук доменів для заглушення"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["Увімкнути приховування NSFW медіа"])},greentext:r=>{const{normalize:n}=r;return n(["Мемний текст"])},virtual_scrolling:r=>{const{normalize:n}=r;return n(["Оптимізувати оновлення стрічки"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["Піктограми під деякими записами є показниками контрасту між фоном та текстом. Коли ви наведете на них курсор, ви отримаєте детальну інформацію. Пам'ятайте, якщо ви використовуєте прозорість, індикатори показують найгірший варіант."])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(['Ви також можете замінити кольори та видимість окремих компонентів, перемикаючи прапорці, використовуйте "Очистити все", щоб видалити всі заміни.'])},theme_help:r=>{const{normalize:n}=r;return n(["Використовувати шістнадцяткові коди кольору (#rrggbb) щоб редагувати тему."])},no_blocks:r=>{const{normalize:n}=r;return n(["Блокування відсутні"])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["Як в mastodon: просто скопіювати"])},subject_line_email:r=>{const{normalize:n}=r;return n(['Як в email: "re: тема"'])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(Не рекомендується, експериментально, повідомлення можуть зникати)"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["Отримувати повідомлення та сповіщення в режимі реального часу"])},streaming:r=>{const{normalize:n}=r;return n(["Ввімкнути автоматичне завантаження нових повідомлень при прокручуванні вгору"])},stop_gifs:r=>{const{normalize:n}=r;return n(["Відтворювати GIF анімації тільки при наведенні"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["Тип вмісту допису"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["Не копіювати"])},version:{frontend_version:r=>{const{normalize:n}=r;return n(["Версія фронтенду"])},backend_version:r=>{const{normalize:n}=r;return n(["Версія бекенду"])},title:r=>{const{normalize:n}=r;return n(["Версія"])}},hide_wallpaper:r=>{const{normalize:n}=r;return n(["Сховати шпалери екземпляру"])},more_settings:r=>{const{normalize:n}=r;return n(["Більше налаштувань"])},sensitive_by_default:r=>{const{normalize:n}=r;return n(["Визначати допис як дратівливий за замовчуванням"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["Показувати відповіді лише мені"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["Показувати відповіді тим, на кого я підписаний"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["Приховати приглушені повідомлення"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["Приховати попередній перегляд медіа"])},word_filter:r=>{const{normalize:n}=r;return n(["Фільтр слів"])},setting_changed:r=>{const{normalize:n}=r;return n(["Конфігурація відрізняється від типової"])},save:r=>{const{normalize:n}=r;return n(["Зберегти зміни"])},file_export_import:{errors:{file_slightly_new:r=>{const{normalize:n}=r;return n(["Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Несумісна основна версія: ",e(t("fileMajor")),", версія файлу занадто стара і не підтримується (мінімальна версія налаштувань ",e(t("feMajor")),")"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Несумісна основна версія: ",e(t("fileMajor")),", ця версія PleromaFE (",e(t("feMajor")),") занадто стара для його обробки"])},invalid_file:r=>{const{normalize:n}=r;return n(["Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено."])}},restore_settings:r=>{const{normalize:n}=r;return n(["Відновити налаштування з файлу"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["Резервне копіювання налаштувань та теми у файл"])},backup_settings:r=>{const{normalize:n}=r;return n(["Резервне копіювання налаштувань у файл"])},backup_restore:r=>{const{normalize:n}=r;return n(["Резервне копіювання налаштувань"])}},right_sidebar:r=>{const{normalize:n}=r;return n(["Показувати бокову панель справа"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["Приховати оголошення інстансу"])},setting_server_side:r=>{const{normalize:n}=r;return n(["Цей параметр прив’язаний до вашого профілю та впливає на всі сеанси та клієнти"])},lists_navigation:r=>{const{normalize:n}=r;return n(["Показувати списки в навігації"])},account_backup:r=>{const{normalize:n}=r;return n(["Резервне копіювання облікового запису"])},account_backup_description:r=>{const{normalize:n}=r;return n(["Це дозволяє завантажити архів даних вашого облікового запису та ваших дописів, але їх ще не можна імпортувати в обліковий запис Pleroma."])},add_backup_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Не вдалося додати нову резервну копію: ",e(t("error"))])},account_alias:r=>{const{normalize:n}=r;return n(["Псевдоніми облікового запису"])},new_alias_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Додати новий псевдонім (напр. ",e(t("example")),")"])},move_account_notes:r=>{const{normalize:n}=r;return n(["Якщо ви хочете перемістити обліковий запис на інший інстанс, вам потрібно перейти до свого цільового облікового запису та додати псевдонім, що вказує цей обліковий запис."])},added_backup:r=>{const{normalize:n}=r;return n(["Додано нову резервну копію."])},expert_mode:r=>{const{normalize:n}=r;return n(["Показати додаткові параметри"])},post_look_feel:r=>{const{normalize:n}=r;return n(["Відображення дописів"])},email_language:r=>{const{normalize:n}=r;return n(["Мова для отримання електронних листів від сервера"])},account_backup_table_head:r=>{const{normalize:n}=r;return n(["Резервне копіювання"])},download_backup:r=>{const{normalize:n}=r;return n(["Завантажити"])},backup_not_ready:r=>{const{normalize:n}=r;return n(["Резервна копія ще не готова."])},remove_backup:r=>{const{normalize:n}=r;return n(["Видалити"])},list_backups_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час отримання списку резервних копій: ",e(t("error"))])},add_backup:r=>{const{normalize:n}=r;return n(["Створити нову резервну копію"])},account_alias_table_head:r=>{const{normalize:n}=r;return n(["Псевдонім"])},list_aliases_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час отримання псевдонімів: ",e(t("error"))])},hide_list_aliases_error_action:r=>{const{normalize:n}=r;return n(["Закрити"])},remove_alias:r=>{const{normalize:n}=r;return n(["Видалити цей псевдонім"])},added_alias:r=>{const{normalize:n}=r;return n(["Псевдонім додано."])},add_alias_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час додавання псевдоніма: ",e(t("error"))])},move_account:r=>{const{normalize:n}=r;return n(["Перемістити обліковий запис"])},move_account_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Цільовий обліковий запис (напр. ",e(t("example")),")"])},moved_account:r=>{const{normalize:n}=r;return n(["Обліковий запис переміщено."])},move_account_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Помилка під час переміщення облікового запису: ",e(t("error"))])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["Вибрати все"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["Не знайдено."])},searching_for:r=>{const{normalize:n}=r;return n(["Шукаю"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["Пошукова система для віддалених користувачів"])}},registration:{validations:{password_confirmation_match:r=>{const{normalize:n}=r;return n(["пароль та підтвердження паролю мають бути однаковими"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},password_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},email_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},fullname_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])},username_required:r=>{const{normalize:n}=r;return n(["не може бути порожнім"])}},bio_placeholder:r=>{const{normalize:n}=r;return n(["напр.\nНаш народ завжди прагне волі для себе і бажає її для інших народів. Він боровся і бореться за правду і справедливість. Ми хочемо жити у згоді і взаємному шануванні з усіми народами доброї волі. Такі самі права визнаємо за іншими народами, за які боремося для себе."])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["напр. Степан Бандера"])},username_placeholder:r=>{const{normalize:n}=r;return n(["напр. stepan"])},new_captcha:r=>{const{normalize:n}=r;return n(["Натисніть на зображення, щоб оновити код, якщо він нерозбірливий"])},token:r=>{const{normalize:n}=r;return n(["Ключ запрошення"])},registration:r=>{const{normalize:n}=r;return n(["Реєстрація"])},password_confirm:r=>{const{normalize:n}=r;return n(["Підтвердження паролю"])},fullname:r=>{const{normalize:n}=r;return n(["Відображене ім'я"])},email:r=>{const{normalize:n}=r;return n(["Ел. пошта"])},bio:r=>{const{normalize:n}=r;return n(["Про себе"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},register:r=>{const{normalize:n}=r;return n(["Зареєструватися"])},reason_placeholder:r=>{const{normalize:n}=r;return n(["Цей інстанс обробляє запити на реєстрацію вручну.\nРозкажіть адміністрації чому ви хочете зареєструватися."])},reason:r=>{const{normalize:n}=r;return n(["Причина реєстрації"])},bio_optional:r=>{const{normalize:n}=r;return n(["Біографія (необов'язково)"])},email_language:r=>{const{normalize:n}=r;return n(["Якою мовою ви бажаєте отримувати електронні листи від сервера?"])},email_optional:r=>{const{normalize:n}=r;return n(["Ел. пошта (необов'язково)"])}},who_to_follow:{who_to_follow:r=>{const{normalize:n}=r;return n(["На кого підписатися"])},more:r=>{const{normalize:n}=r;return n(["Більше"])}},tool_tip:{repeat:r=>{const{normalize:n}=r;return n(["Поширити"])},reply:r=>{const{normalize:n}=r;return n(["Відповісти"])},add_reaction:r=>{const{normalize:n}=r;return n(["Додати реакцію"])},user_settings:r=>{const{normalize:n}=r;return n(["Налаштування користувача"])},favorite:r=>{const{normalize:n}=r;return n(["Подобається"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["Відхилити запит на підписку"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["Прийняти запит на підписку"])},media_upload:r=>{const{normalize:n}=r;return n(["Завантажити медіа"])},bookmark:r=>{const{normalize:n}=r;return n(["Додати до закладок"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["Збій при завантаженні."])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Файл завеликий [",e(t("filesize")),e(t("filesizeunit"))," / ",e(t("allowedsize")),e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["Спробуйте ще раз пізніше"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Помилка завантаження: ",e(t(0))])}},file_size_units:{TiB:r=>{const{normalize:n}=r;return n(["ТіБ"])},GiB:r=>{const{normalize:n}=r;return n(["ГіБ"])},MiB:r=>{const{normalize:n}=r;return n(["МіБ"])},KiB:r=>{const{normalize:n}=r;return n(["КіБ"])},B:r=>{const{normalize:n}=r;return n(["Б"])}}},time:{weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"тижд."])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"тижд."])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"р"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"р"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," роки"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," рік"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," тижнів"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," тиждень"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"с"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," секунда"])},now_short:r=>{const{normalize:n}=r;return n(["щойно"])},now:r=>{const{normalize:n}=r;return n(["щойно"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"міс."])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"міс."])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," місяці"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," місяць"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"хв"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"год"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"год"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"д"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"хв"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," хвилини"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," хвилина"])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," тому"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," години"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," година"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"д"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," дні"])},day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," день"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"с"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," секунди"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["через ",e(t(0))])}},search:{no_results:r=>{const{normalize:n}=r;return n(["Немає результатів"])},hashtags:r=>{const{normalize:n}=r;return n(["Хештеги"])},people:r=>{const{normalize:n}=r;return n(["Люди"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," людей говорять про це"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," особа говорить про це"])}},user_card:{statuses:r=>{const{normalize:n}=r;return n(["Дописи"])},message:r=>{const{normalize:n}=r;return n(["Повідомлення"])},follow:r=>{const{normalize:n}=r;return n(["Підписатись"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["Відписатись"])},follow_sent:r=>{const{normalize:n}=r;return n(["Запит відправлено!"])},blocked:r=>{const{normalize:n}=r;return n(["Заблоковано!"])},admin_menu:{activate_account:r=>{const{normalize:n}=r;return n(["Активувати обліковий запис"])},deactivate_account:r=>{const{normalize:n}=r;return n(["Деактивувати обліковий запис"])},delete_account:r=>{const{normalize:n}=r;return n(["Видалити обліковий запис"])},moderation:r=>{const{normalize:n}=r;return n(["Модерація"])},delete_user:r=>{const{normalize:n}=r;return n(["Видалити обліковий запис"])},strip_media:r=>{const{normalize:n}=r;return n(["Вилучити медіа з дописів користувача"])},force_nsfw:r=>{const{normalize:n}=r;return n(["Позначити всі дописи як NSFW"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["Взагалі заборонити підписку на користувача"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["Заборонити підписуватись на користувачів з віддалених інстансів"])},sandbox:r=>{const{normalize:n}=r;return n(["Показувати дописи лише підписникам"])},force_unlisted:r=>{const{normalize:n}=r;return n(["Не показувати дописи в стрічці"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["Позбавити прав модератора"])},grant_moderator:r=>{const{normalize:n}=r;return n(["Надати права модератора"])},revoke_admin:r=>{const{normalize:n}=r;return n(["Позбавити прав адміністратора"])},grant_admin:r=>{const{normalize:n}=r;return n(["Надати права адміністратора"])},quarantine:r=>{const{normalize:n}=r;return n(["Не розповсюджувати дописи на інших інстансах"])}},deny:r=>{const{normalize:n}=r;return n(["Відмовити"])},block:r=>{const{normalize:n}=r;return n(["Заблокувати"])},approve:r=>{const{normalize:n}=r;return n(["Схвалити"])},mention:r=>{const{normalize:n}=r;return n(["Згадати"])},unsubscribe:r=>{const{normalize:n}=r;return n(["Відписатись"])},subscribe:r=>{const{normalize:n}=r;return n(["Підписатись"])},report:r=>{const{normalize:n}=r;return n(["Поскаржитись"])},per_day:r=>{const{normalize:n}=r;return n(["на день"])},favorites:r=>{const{normalize:n}=r;return n(["Вподобання"])},media:r=>{const{normalize:n}=r;return n(["Медіа"])},show_repeats:r=>{const{normalize:n}=r;return n(["Показати поширення"])},hide_repeats:r=>{const{normalize:n}=r;return n(["Приховати поширення"])},its_you:r=>{const{normalize:n}=r;return n(["Це ти!"])},follows_you:r=>{const{normalize:n}=r;return n(["Підписаний на вас!"])},followers:r=>{const{normalize:n}=r;return n(["Підписники"])},followees:r=>{const{normalize:n}=r;return n(["Підписаний(-а)"])},follow_progress:r=>{const{normalize:n}=r;return n(["Запитую…"])},mute_progress:r=>{const{normalize:n}=r;return n(["Глушимо…"])},unmute_progress:r=>{const{normalize:n}=r;return n(["Знімаємо глушення…"])},unmute:r=>{const{normalize:n}=r;return n(["Зняти глушення"])},hidden:r=>{const{normalize:n}=r;return n(["Приховано"])},following:r=>{const{normalize:n}=r;return n(["Підписаний!"])},block_progress:r=>{const{normalize:n}=r;return n(["Блокуємо…"])},unblock_progress:r=>{const{normalize:n}=r;return n(["Розблоковуємо…"])},unblock:r=>{const{normalize:n}=r;return n(["Розблокувати"])},remote_follow:r=>{const{normalize:n}=r;return n(["Підписатись"])},muted:r=>{const{normalize:n}=r;return n(["Заглушений"])},mute:r=>{const{normalize:n}=r;return n(["Заглушити"])},highlight:{side:r=>{const{normalize:n}=r;return n(["Смужка ліворуч"])},striped:r=>{const{normalize:n}=r;return n(["Смугастий фон"])},solid:r=>{const{normalize:n}=r;return n(["Суцільний фон"])},disabled:r=>{const{normalize:n}=r;return n(["Не виділяти"])}},bot:r=>{const{normalize:n}=r;return n(["Бот"])},edit_profile:r=>{const{normalize:n}=r;return n(["Редагувати профіль"])}},status:{copy_link:r=>{const{normalize:n}=r;return n(["Скопіювати посилання на допис"])},status_unavailable:r=>{const{normalize:n}=r;return n(["Допис недоступний"])},replies_list:r=>{const{normalize:n}=r;return n(["Відповіді:"])},delete_confirm:r=>{const{normalize:n}=r;return n(["Ви дійсно хочете видалити цей допис?"])},delete:r=>{const{normalize:n}=r;return n(["Видалити допис"])},pin:r=>{const{normalize:n}=r;return n(["Закріпити в профілі"])},status_deleted:r=>{const{normalize:n}=r;return n(["Цей допис був видалений"])},favorites:r=>{const{normalize:n}=r;return n(["Вподобане"])},hide_content:r=>{const{normalize:n}=r;return n(["Сховати вміст"])},show_content:r=>{const{normalize:n}=r;return n(["Показати вміст"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["Сховати всю тему"])},show_full_subject:r=>{const{normalize:n}=r;return n(["Показати всю тему"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([", має слова:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["Заглушити розмову"])},reply_to:r=>{const{normalize:n}=r;return n(["Відповідь"])},unbookmark:r=>{const{normalize:n}=r;return n(["Видалити із закладок"])},bookmark:r=>{const{normalize:n}=r;return n(["Додати до закладок"])},pinned:r=>{const{normalize:n}=r;return n(["Закріплено"])},unpin:r=>{const{normalize:n}=r;return n(["Відкріпити від профілю"])},repeats:r=>{const{normalize:n}=r;return n(["Поширення"])},nsfw:r=>{const{normalize:n}=r;return n(["Дратівливий вміст"])},thread_muted:r=>{const{normalize:n}=r;return n(["Нитка заглушена"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["Припинити глушити розмову"])},external_source:r=>{const{normalize:n}=r;return n(["Зовнішнє джерело"])},expand:r=>{const{normalize:n}=r;return n(["Розгорнути"])}},timeline:{no_more_statuses:r=>{const{normalize:n}=r;return n(["Більше немає дописів"])},up_to_date:r=>{const{normalize:n}=r;return n(["Оновлено"])},reload:r=>{const{normalize:n}=r;return n(["Оновити"])},show_new:r=>{const{normalize:n}=r;return n(["Показати нові"])},load_older:r=>{const{normalize:n}=r;return n(["Завантажити давніші дописи"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Помилка завантаження стрічки: ",e(t(0))])},collapse:r=>{const{normalize:n}=r;return n(["Згорнути"])},conversation:r=>{const{normalize:n}=r;return n(["Розмова"])},no_statuses:r=>{const{normalize:n}=r;return n(["Ніяких статусів"])},repeated:r=>{const{normalize:n}=r;return n(["поширив(-ла)"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(['Запис, позначено як "тільки для підписників" або "особисте" і тому не може бути поширений'])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Втрачено з'єднання у реальному часі: код ",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["Встановлено з'єднання у реальному часі"])}},user_reporting:{submit:r=>{const{normalize:n}=r;return n(["Відправити"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Переслати до ",e(t(0))])},forward_description:r=>{const{normalize:n}=r;return n(["Цей обліковий запис належить іншому інстансу. Відправити їм копію скарги?"])},additional_comments:r=>{const{normalize:n}=r;return n(["Додаткове пояснення"])},add_comment_description:r=>{const{normalize:n}=r;return n(["Скарга буде надіслана модераторам вашого інстансу. Нижче Ви можете додати пояснення чому ви вирішили поскаржитись на цей обліковий запис:"])},title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["Поскаржитись на ",e(t(0))])},generic_error:r=>{const{normalize:n}=r;return n(["Виникла помилка під час обробки вашого запиту."])}},user_profile:{profile_loading_error:r=>{const{normalize:n}=r;return n(["Вибачте, під час завантаження цього профілю виникла помилка."])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["Вибачте, цей профіль більше не існує."])},timeline_title:r=>{const{normalize:n}=r;return n(["Стрічка користувача"])}},report:{notes:r=>{const{normalize:n}=r;return n(["Примітки:"])},state:r=>{const{normalize:n}=r;return n(["Статус:"])},state_open:r=>{const{normalize:n}=r;return n(["відкритий"])},state_closed:r=>{const{normalize:n}=r;return n(["закритий"])},state_resolved:r=>{const{normalize:n}=r;return n(["вирішений"])}}}}}]);
-//# sourceMappingURL=uk-json.c33e4c72a2dfe9a9d143.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js.map b/priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js.map
deleted file mode 100644
index a63875955..000000000
--- a/priv/static/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/uk.json"],"sourcesContent":["export default {\n \"general\": {\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перевірити\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердити\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увімкнути\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимкнути\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скасувати\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати менше\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати більше\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"необов'язково\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Спробуйте ще раз\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Будь ласка, спробуйте ще раз\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виникла помилка\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантаження…\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправити\"])},\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Застосувати\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Глянути\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Модератор\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Адміністратор\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Натисніть для перегляду змісту Flash за допомогою Ruffle (експериментально, може не працювати).\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ця функція може становити ризик, оскільки Flash-вміст все ще є потенційно небезпечним.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдалося завантажити Flash-вміст, докладнішу інформацію дивись у консолі.\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Виникла помилка: \", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ніколи не показувати знову\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватне\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Лише читачі\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Публічне\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Непублічне\"])}\n }\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувача не знайдено\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Знайти користувача\"])}\n },\n \"features_panel\": {\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Чати\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оголошення\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кого відстежувати\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Особливості\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Параметри обсягу\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Посередник медіа-даних\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ліміт символів\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обмеження завантажень\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оголошення\"])}\n },\n \"exporter\": {\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Опрацьовую, скоро ви зможете завантажити файл\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вмикаю…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимкнути заглушення\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимикаю…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ігнорувати\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оголошення\"])}\n },\n \"about\": {\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Адміністрація\"])},\n \"mrf\": {\n \"simple\": {\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Примусове визначення медіа як дратівливого\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс видаляє медіа з дописів на перелічених інстансах:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалення медіа\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалення зі стрічки Федеративної мережі\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Карантин\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс не прийматиме повідомлення з перелічених інстансів:\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прийняти\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відхилити\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний інстанс приймає повідомлення тільки з перелічених інстансів:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Правила поточного інстансу\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Причина\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"н/в\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Активувати правила MRF (модуль переписування повідомлень)\"])},\n \"keyword\": {\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Замінити\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відхилити\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прибрати з федеративної стрічки\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Політика щодо ключових слів\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Федерація\"])}\n }\n },\n \"login\": {\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увійдіть, щоб доєднатися до дискусії\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ім'я користувача\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зареєструватись\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пароль\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вийти\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увійти за допомогою OAuth\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увійти\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Код відновлення\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть код відновлення\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Код автентифікації\"])},\n \"heading\": {\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двофакторне відновлення\"])},\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двофакторна автентифікація\"])}\n },\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть двофакторний код автентифікації\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр. stepan\"])}\n },\n \"importer\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час імпортування файлу сталася помилка.\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортовано успішно.\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправити\"])}\n },\n \"image_cropper\": {\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відмінити\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти не обрізаючи\"])},\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обрізати малюнок\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти\"])}\n },\n \"polls\": {\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Опитування закінчилось \", _interpolate(_list(0)), \" тому\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Опитування закінчується через \", _interpolate(_list(0))])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Термін опитування\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Декілька варіантів\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Один варіант\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати опцію\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тип опитування\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Проголосувати\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"голосів\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповідь\"])},\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати опитування\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Замало унікальних варіантів в опитуванні\"])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" особа проголосувала\"]), _normalize([_interpolate(_named(\"count\")), \" осіб проголосувало\"])])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" голос\"]), _normalize([_interpolate(_named(\"count\")), \" голосів\"])])}\n },\n \"notifications\": {\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"додав реакцію: \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"мігрував на\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Немає більше сповіщень\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"поширив(-ла) ваш допис\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прочитано!\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сповіщення\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити давніші сповіщення\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"хоче підписатись на вас\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"підписався(-лась) на вас\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"вподобав(-ла) ваш допис\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Невідомий допис, шукаю його…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Помилка при оновленні сповіщень: \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"опитування закінчено\"])}\n },\n \"nav\": {\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Чати\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стрічки\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Уся відома мережа\"])},\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Інформація\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запити послідовників\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кого відстежувати\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук користувача\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закладки\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Домашня стрічка\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Публічна стрічка\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватні повідомлення\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Взаємодії\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згадування\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назад\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Адміністрування\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Домашня стрічка\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Списки\"])}\n },\n \"media_modal\": {\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Наступна\"])},\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередня\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити медіапереглядач\"])}\n },\n \"password_reset\": {\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть свою адресу електронної пошти або ім’я користувача. Ми надішлемо вам посилання для скидання пароля.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ваша електронна адреса або ім'я користувача\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перевірте електронну пошту на наявність посилання для скидання пароля.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Повернутися на головну сторінку\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви досягли ліміту спроб, спробуйте ще раз пізніше.\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви повинні скинути свій пароль, але скидання пароля вимкнено. Зверніться до адміністратора інстансу.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скидання пароля вимкнено. Зверніться до адміністратора інстансу.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Для входу потрібно скинути пароль.\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відновити пароль\"])},\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Забули пароль?\"])}\n },\n \"chats\": {\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Повідомлення для \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Чати\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Новий чат\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдається опублікувати порожнє повідомлення\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете видалити це повідомлення?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час завантаження чату сталася помилка.\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час надсилання повідомлення сталася помилка.\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"У вас ще немає чатів. Почніть новий чат!\"])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аудіо\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відео\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зображення\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Файл\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сьогодні\"])}\n },\n \"interactions\": {\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити давніші взаємодії\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нові підписки\"])},\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширення та вподобайки\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Міграції користувачів\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Емоджі реакції\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma не змогла отримати доступ до сховища браузеру. Ваша сесія та налаштування не будуть збережені, це може спричинити непередбачувані проблеми. Спробуйте увімкнути cookie.\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стікери\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувацькі емодзі\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук емодзі\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тримати панель відкритою\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати емодзі\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Емодзі\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Всі \", _interpolate(_named(\"emojiAmount\")), \" эмодзі завантажуються\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Завантажені перші \", _interpolate(_named(\"saneAmount\")), \" емодзі, завантаження всіх емодзі може призвести до проблем з продуктивністю.\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стандартні емодзі\"])}\n },\n \"post_status\": {\n \"content_type\": {\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Текстові дані\"])}\n },\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позначити вкладення як чутливі\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"замкнена\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Ваша обліковка не \", _interpolate(_list(0)), \". Будь-хто може відстежувати вас для перегляду дописів тільки для підписників.\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Створити допис\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис побачать лише користувачі, що були згадані на початку повідомлення.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис побачать всі згадані користувачі.\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Що нового?\"])},\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тема (необов'язково)\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередній перегляд\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправляється\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не можу опублікувати пустий статус без вкладень\"])},\n \"scope\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Непублічний - цей допис буде відсутній у публічних стрічках\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Публічний - цей допис побачать усі\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Для читачів - цей допис побачать лише ваші читачі\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватний - цей допис побачать лише згадані користувачі\"])}\n },\n \"scope_notice\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис не буде видно в публічній стрічці та усій відомій мережі\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис побачать лише ваші підписники\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис бачитимуть усі\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пустий\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдалось оновити медіа, спробуйте ще раз\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Опис медіа\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Опублікувати\"])}\n },\n \"settings\": {\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування імпортовані! Їх обробка триватиме певний час.\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилка імпортування блокувань\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт блокувань\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт блокувань у файл CSV\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт блокувань\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Про Вас\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обкладинка\"])},\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назва програми\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експортувати відстежуваних\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Усі статуси з цими словами будуть приховані, один на рядок\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтрування\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти переднабір\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть ваш пароль в поле нижче, аби підтвердити видалення облікового запису.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час видалення вашого облікового запису виникла проблема. Якщо це трапляється постійно, будь ласка, зверніться до адміністратора вашого сервера.\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Остаточно видалити ваш обліковий запис та усі ваші повідомлення.\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити обліковий запис\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обсяг видимості за замовчуванням\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт/експорт даних\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поточний пароль\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердіть новий пароль\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Складання відповіді\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згорнути дописи з темами\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пароль успішно змінено!\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не вдалося змінити пароль.\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Змінити пароль\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Червоний (Скасувати)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зелений (Поширити)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Жовтогарячий (Вподобайки)\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блакитний (Відповісти, читати)\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопки\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватарки\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватарки у сповіщеннях\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватар\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вкладення\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вкладення\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загальні\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Передній план\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відстежуваних імпортовано! Їхня обробка потребує часу.\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилка імпортування відстежуваних\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортувати відстежуваних\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експортувати відстежуваних до csv файлу\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обмежте свій обліковий запис лише схваленими читачами\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Посилання\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Недоступно у вашому браузері\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін.\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мова оболонки\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оболонка\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(за замовчуванням)\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(за замовчуванням: \", _interpolate(_named(\"value\")), \")\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прапорці\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поля вводу\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити переднабір\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортувати відстежуваних з csv файлу\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортувати заблокованих з csv файлу\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати відфільтровані статуси\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати статистику користувачів (напр. кількість відстежувачів)\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати статистику дописів (напр. кількість вподобаних)\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкривати NSFW вкладення одним кліком миші\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Передзавантажувати світлини\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати панель з особливостями сервера\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Максимальна кількість мініатюр на повідомлення\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати повідомлення приглушених користувачів\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати вкладення у стрічці\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховувати вкладення у розмовах\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушені\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зациклити відео без звуку (напр. Mastodon \\\"gifs\\\")\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зациклити відео\"])},\n \"mfa\": {\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Щоб увімкнути двофакторну автентифікацію, введіть код з вашого застосунку для двофакторної автентифікації:\"])}\n },\n \"scan\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відскануйте цей QR-код за допомогою програми двофакторної автентифікації або введіть текстовий ключ:\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сканування\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ключ\"])}\n },\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Методи автентифікації\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запишіть ці коди і тримайте в безпечному місці - інакше ви їх ніколи не побачите. Якщо ви втратите доступ до OTP додатку - без резервних кодів ви не зможете отримати доступ до свого облікового запису.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Отримую резервні коди…\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервні коди.\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Після отримання нових резервних кодів, старі перестануть працювати.\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згенерувати нові резервні коди\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двофакторна автентифікація\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердити та увімкнути OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"попереднє налаштування OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування OTP\"])},\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])}\n },\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Введіть свій поточний пароль\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Безпека\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Домени\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дозволити виявлення цього облікового запису в результатах пошуку та інших службах\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушення та блокування\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email успішно змінено!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сталася помилка під час зміни email.\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Змінити email\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це обліковий запис бота\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт заглушених з csv файлу\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушені імпортовані! Їх обробка триватиме певний час.\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт заглушених у csv файл\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Під час імпорту заглушених сталася помилка\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпорт ігнорувань\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Експорт ігнорувань\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Новий пароль\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нова ел. пошта\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Особисті дані\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановити новий банер\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановити новий аватар\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Безпека\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування збережені\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилка при збереженні налаштувань\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати лише адресовані мені відповіді\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати відповіді адресовані лише мені або користувачам, яких я читаю\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати всі відповіді\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповіді в стрічці\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Профіль\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Банер профілю\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обкладинка профілю\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкликати\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth ключі\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ключ\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оновити ключ\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Діє до\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не обрізати краї мініатюр\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ім'я\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зміст\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назва\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати поле\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Метадані профілю\"])}\n },\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відтворювати відео у спливаючій рамці\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Акцент\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Повідомлення в бесіді\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Щоб перестати отримувати сповіщення від певного користувача, заглушіть його.\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувачі\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушені відсутні\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати реакції емоджі на стрічці\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Автоматично додавати простір з обидвох сторін емоджі\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дозволити автостеження при переміщенні на інший інстанс\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановити нову обкладинку профілю\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Радіус заокруглення кутів інтерфейсу (в пікселях)\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Переднабір\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати значок модератора в моєму профілі\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати значок адміністратора в моєму профілі\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати хто підписаний на мене\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати на кого я підписаний\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалення всього форматування тексту з усіх дописів\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Реакції\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Міграція користувача\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширення допису\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згадування\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вподобайки\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нові підписки\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Отримувати сповіщення про наступні події\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Панелі\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Текст\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підказки/попередження\"])},\n \"values\": {\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"так\"])},\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ні\"])}\n },\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Користувацькі налаштування\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити фото\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тема\"])},\n \"style\": {\n \"switcher\": {\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити шрифти\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити скруглення\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити прозорості\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити тіні\"])},\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити кольори\"])},\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нова версія\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стара версія\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити тему\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинути\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Очистити все\"])},\n \"help\": {\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортований файл було створено в старішій версії FE.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Імпортований файл було створено в новішій версії FE.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Файл, який ви імпортували, був створений для старішої версії інтерфейсу Pleroma. Ми намагаємось покращити сумісність, але все одно можуть бути розбіжності.\"])},\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE було оновлено, тема може дещо відрізнятися від тієї, яку ви пам’ятаєте.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Конфлікт версій: Швидше за все, FE повернуто до попередньої версії та оновлено знову, якщо ви змінили тему за допомогою старішої версії FE, швидше за все, ви хочете використовувати стару версію, інакше використовуйте нову версію.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"З якоїсь причини знімок зник, деякі речі можуть бути не такими, як ви пам’ятаєте.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Для безпеки, знімок теми завантажено. Ви можете спробувати завантажити дані теми.\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версію PleromaFE змінено на старшу.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Двигун теми PleromaFE оновлено.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"У файлі немає жодного знімка теми, тому він може виглядати інакше, ніж передбачалося спочатку.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Знімок теми завантажено, тому всі значення було перезаписано. Натомість ви можете завантажити правильні дані теми.\"])}\n },\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Залишити як є\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Очистити прозорість\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Параметри \\\"Зберегти\\\" зберігають поточні параметри під час вибору або завантаження тем, вони також зберігають зазначені параметри під час експорту теми. Коли всі прапорці знято, експортування теми збереже все.\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Колір\"])},\n \"contrast\": {\n \"context\": {\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"для тексту\"])},\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"для великого (18pt+) тексту\"])}\n },\n \"level\": {\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не відповідає жодним вимогам щодо доступності\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"відповідає вимогам рівня ААA (рекомендований)\"])},\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"відповідає вимогам рівня АА (мінімальний)\"])}\n },\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Рівень контрасту: \", _interpolate(_named(\"ratio\")), \", \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])}\n },\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прозорість\"])}\n },\n \"preview\": {\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"змісту\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Трохи більше \", _interpolate(_list(0)), \" та \", _interpolate(_list(1))])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приклад помилки\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зміст\"])},\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередній перегляд\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"невеличке посилання\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це нормально\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Що нового?\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Я переглянув умови використання\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Прочитайте наш \", _interpolate(_list(0)), \" аби нічого нового не дізнатись!\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"корисний підручник\"])}\n },\n \"shadows\": {\n \"components\": {\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поле вводу\"])},\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Панель\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заголовок панелі\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватар користувача (в стрічці)\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Аватар користувача (профіль)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка (натиснута + наведений курсор)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка (натиснута)\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопка (при наведенні)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Спливаючі вікна та підказки\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Верхня панель\"])}\n },\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Компонент\"])},\n \"filter_hint\": {\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Тіні спрямовані всередину використовуватимуть \", _interpolate(_list(0))])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тіні з поширенням > 0 відображатимуться так, ніби було встановлено нуль\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зауважте, що використання як вставних, так і невставних тіней на аватарах може привести до непередбачуваних результатів із прозорими аватарами.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" не підтримує параметр \", _interpolate(_list(1)), \" та ключове слово \", _interpolate(_list(2)), \".\"])},\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Увага! Ця тінь завжди використовує \", _interpolate(_list(0)), \", якщо підтримується браузером.\"])}\n },\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Всередину\"])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмиття\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Тінь №\", _interpolate(_named(\"value\"))])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перевизначити\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тінь і підсвічування\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Для тіней ви також можете використовувати позначення \", _interpolate(_list(0)), \" для використання іншого кольорового слота.\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмах\"])}\n },\n \"fonts\": {\n \"components\": {\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поля вводу\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Інтерфейс\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Моноширинний текст в дописі (форматований текст)\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Текст допису\"])}\n },\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шрифти\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмір (в пікселях)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нестандартний\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Товщина\"])},\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Назва шрифту\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виберіть шрифт для елементів інтерфейсу. Для \\\"нестандартного\\\" потрібно ввести точну назву шрифту, так як вона відображається в системі.\"])}\n },\n \"advanced_colors\": {\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Попередження\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тло\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поля входу\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кнопки\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кордони\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Верхня панель\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заголовок панелі\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сповіщення\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підказки, меню, поповери\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тло значків\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дописи/Дані користувачів\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нейтральний\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Помилки\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фон сповіщень\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додатково\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний допис\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виділені елементи\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Діаграма опитування\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Іконки\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Затемнений текст\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Кайма\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вихідні повідомлення\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вхідні повідомлення\"])}\n },\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Переключено\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вимкнено\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний пункт меню\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вкладки\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Натиснуто\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шпалери\"])}\n },\n \"common_colors\": {\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Піктограми, акценти, значки\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перегляньте вкладку \\\"Додатково\\\" для більшого контролю\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загальні кольори\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загальні\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скруглення\"])}\n }\n },\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увімкнути web push-сповіщення\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сповіщення\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розваги\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приватність\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтри\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинути аватар\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинути обкладинку профілю\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете скинути аватар?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скинули банер профілю\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати кількість підписників\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете скинути банер?\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете скинути обкладинку?\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вигляд теми при відповіді\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завжди показувати поле для вводу теми\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мінімізувати набір варіантів осягу для допису\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Копіювати осяг при відповіді (завжди ввімкнено для особистих повідомлень)\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шукайте кого ви хочете заглушити\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шукайте кого ви хочете заблокувати\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Автоматично ховати кнопку \\\"Новий допис\\\" (в мобільній версії)\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Призупинити трансляцію, коли вкладка неактивна\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати кількість моїх підписників\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження.\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ховати відправника та вміст push-сповіщень\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокувати сповіщення від користувачів за якими ви не слідкуєте\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошук доменів для заглушення\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Увімкнути приховування NSFW медіа\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мемний текст\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оптимізувати оновлення стрічки\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Піктограми під деякими записами є показниками контрасту між фоном та текстом. Коли ви наведете на них курсор, ви отримаєте детальну інформацію. Пам'ятайте, якщо ви використовуєте прозорість, індикатори показують найгірший варіант.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви також можете замінити кольори та видимість окремих компонентів, перемикаючи прапорці, використовуйте \\\"Очистити все\\\", щоб видалити всі заміни.\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Використовувати шістнадцяткові коди кольору (#rrggbb) щоб редагувати тему.\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокування відсутні\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Як в mastodon: просто скопіювати\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Як в email: \\\"re: тема\\\"\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Не рекомендується, експериментально, повідомлення можуть зникати)\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Отримувати повідомлення та сповіщення в режимі реального часу\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ввімкнути автоматичне завантаження нових повідомлень при прокручуванні вгору\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відтворювати GIF анімації тільки при наведенні\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Тип вмісту допису\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не копіювати\"])},\n \"version\": {\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версія фронтенду\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версія бекенду\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Версія\"])}\n },\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати шпалери екземпляру\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше налаштувань\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Визначати допис як дратівливий за замовчуванням\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати відповіді лише мені\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати відповіді тим, на кого я підписаний\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати приглушені повідомлення\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати попередній перегляд медіа\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Фільтр слів\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Конфігурація відрізняється від типової\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зберегти зміни\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Несумісна основна версія: \", _interpolate(_named(\"fileMajor\")), \", версія файлу занадто стара і не підтримується (мінімальна версія налаштувань \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Несумісна основна версія: \", _interpolate(_named(\"fileMajor\")), \", ця версія PleromaFE (\", _interpolate(_named(\"feMajor\")), \") занадто стара для його обробки\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено.\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відновити налаштування з файлу\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання налаштувань та теми у файл\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання налаштувань у файл\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання налаштувань\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати бокову панель справа\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати оголошення інстансу\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей параметр прив’язаний до вашого профілю та впливає на всі сеанси та клієнти\"])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати списки в навігації\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання облікового запису\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це дозволяє завантажити архів даних вашого облікового запису та ваших дописів, але їх ще не можна імпортувати в обліковий запис Pleroma.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Не вдалося додати нову резервну копію: \", _interpolate(_named(\"error\"))])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Псевдоніми облікового запису\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Додати новий псевдонім (напр. \", _interpolate(_named(\"example\")), \")\"])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Якщо ви хочете перемістити обліковий запис на інший інстанс, вам потрібно перейти до свого цільового облікового запису та додати псевдонім, що вказує цей обліковий запис.\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додано нову резервну копію.\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати додаткові параметри\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відображення дописів\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Мова для отримання електронних листів від сервера\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервне копіювання\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Резервна копія ще не готова.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час отримання списку резервних копій: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Створити нову резервну копію\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Псевдонім\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час отримання псевдонімів: \", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закрити\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити цей псевдонім\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Псевдонім додано.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час додавання псевдоніма: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Перемістити обліковий запис\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Цільовий обліковий запис (напр. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Обліковий запис переміщено.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Помилка під час переміщення облікового запису: \", _interpolate(_named(\"error\"))])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибрати все\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не знайдено.\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Шукаю\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Пошукова система для віддалених користувачів\"])}\n },\n \"registration\": {\n \"validations\": {\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"пароль та підтвердження паролю мають бути однаковими\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])},\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"не може бути порожнім\"])}\n },\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр.\\nНаш народ завжди прагне волі для себе і бажає її для інших народів. Він боровся і бореться за правду і справедливість. Ми хочемо жити у згоді і взаємному шануванні з усіми народами доброї волі. Такі самі права визнаємо за іншими народами, за які боремося для себе.\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр. Степан Бандера\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"напр. stepan\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Натисніть на зображення, щоб оновити код, якщо він нерозбірливий\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ключ запрошення\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Реєстрація\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підтвердження паролю\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відображене ім'я\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ел. пошта\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Про себе\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зареєструватися\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей інстанс обробляє запити на реєстрацію вручну.\\nРозкажіть адміністрації чому ви хочете зареєструватися.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Причина реєстрації\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Біографія (необов'язково)\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Якою мовою ви бажаєте отримувати електронні листи від сервера?\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ел. пошта (необов'язково)\"])}\n },\n \"who_to_follow\": {\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"На кого підписатися\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше\"])}\n },\n \"tool_tip\": {\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширити\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповісти\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати реакцію\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Налаштування користувача\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Подобається\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відхилити запит на підписку\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прийняти запит на підписку\"])},\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити медіа\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати до закладок\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Збій при завантаженні.\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Файл завеликий [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Спробуйте ще раз пізніше\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Помилка завантаження: \", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ТіБ\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ГіБ\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"МіБ\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"КіБ\"])},\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Б\"])}\n }\n },\n \"time\": {\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"тижд.\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"тижд.\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"р\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"р\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" роки\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" рік\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" тижнів\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" тиждень\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"с\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" секунда\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"щойно\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"щойно\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"міс.\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"міс.\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" місяці\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" місяць\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"хв\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"год\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"год\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"д\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"хв\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" хвилини\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" хвилина\"])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" тому\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" години\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" година\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"д\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" дні\"])},\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" день\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"с\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" секунди\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"через \", _interpolate(_list(0))])}\n },\n \"search\": {\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Немає результатів\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Хештеги\"])},\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Люди\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" людей говорять про це\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" особа говорить про це\"])}\n },\n \"user_card\": {\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дописи\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Повідомлення\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписатись\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відписатись\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запит відправлено!\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заблоковано!\"])},\n \"admin_menu\": {\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Активувати обліковий запис\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Деактивувати обліковий запис\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити обліковий запис\"])},\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Модерація\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити обліковий запис\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вилучити медіа з дописів користувача\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позначити всі дописи як NSFW\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Взагалі заборонити підписку на користувача\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заборонити підписуватись на користувачів з віддалених інстансів\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показувати дописи лише підписникам\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не показувати дописи в стрічці\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позбавити прав модератора\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Надати права модератора\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Позбавити прав адміністратора\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Надати права адміністратора\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не розповсюджувати дописи на інших інстансах\"])}\n },\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відмовити\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заблокувати\"])},\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Схвалити\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згадати\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відписатись\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписатись\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поскаржитись\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"на день\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вподобання\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Медіа\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати поширення\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховати поширення\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Це ти!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписаний на вас!\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписники\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписаний(-а)\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запитую…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Глушимо…\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Знімаємо глушення…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зняти глушення\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Приховано\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписаний!\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Блокуємо…\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розблоковуємо…\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розблокувати\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Підписатись\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушений\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушити\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Смужка ліворуч\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Смугастий фон\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Суцільний фон\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Не виділяти\"])}\n },\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Бот\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Редагувати профіль\"])}\n },\n \"status\": {\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скопіювати посилання на допис\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Допис недоступний\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповіді:\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ви дійсно хочете видалити цей допис?\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити допис\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закріпити в профілі\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей допис був видалений\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вподобане\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати вміст\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати вміст\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Сховати всю тему\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати всю тему\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", має слова:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Заглушити розмову\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відповідь\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Видалити із закладок\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додати до закладок\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Закріплено\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відкріпити від профілю\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Поширення\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Дратівливий вміст\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нитка заглушена\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Припинити глушити розмову\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Зовнішнє джерело\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розгорнути\"])}\n },\n \"timeline\": {\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Більше немає дописів\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оновлено\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Оновити\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Показати нові\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Завантажити давніші дописи\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Помилка завантаження стрічки: \", _interpolate(_list(0))])},\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Згорнути\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Розмова\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ніяких статусів\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"поширив(-ла)\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Запис, позначено як \\\"тільки для підписників\\\" або \\\"особисте\\\" і тому не може бути поширений\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Втрачено з'єднання у реальному часі: код \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Встановлено з'єднання у реальному часі\"])}\n },\n \"user_reporting\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Відправити\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Переслати до \", _interpolate(_list(0))])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Цей обліковий запис належить іншому інстансу. Відправити їм копію скарги?\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Додаткове пояснення\"])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Скарга буде надіслана модераторам вашого інстансу. Нижче Ви можете додати пояснення чому ви вирішили поскаржитись на цей обліковий запис:\"])},\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Поскаржитись на \", _interpolate(_list(0))])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Виникла помилка під час обробки вашого запиту.\"])}\n },\n \"user_profile\": {\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибачте, під час завантаження цього профілю виникла помилка.\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Вибачте, цей профіль більше не існує.\"])},\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Стрічка користувача\"])}\n },\n \"report\": {\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Примітки:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Статус:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"відкритий\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"закритий\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"вирішений\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js b/priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js
new file mode 100644
index 000000000..8a96c11c2
--- /dev/null
+++ b/priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[5929],{4425:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={chat:{title:r=>{const{normalize:n}=r;return n(["聊天"])}},exporter:{export:r=>{const{normalize:n}=r;return n(["导出"])},processing:r=>{const{normalize:n}=r;return n(["正在处理,稍后会提示您下载文件"])}},features_panel:{chat:r=>{const{normalize:n}=r;return n(["聊天"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},media_proxy:r=>{const{normalize:n}=r;return n(["媒体代理"])},scope_options:r=>{const{normalize:n}=r;return n(["可见范围设置"])},text_limit:r=>{const{normalize:n}=r;return n(["文字数量限制"])},title:r=>{const{normalize:n}=r;return n(["功能"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Pleroma 聊天"])},upload_limit:r=>{const{normalize:n}=r;return n(["上传限制"])},shout:r=>{const{normalize:n}=r;return n(["留言板"])}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["获取用户时发生错误"])},find_user:r=>{const{normalize:n}=r;return n(["寻找用户"])}},general:{apply:r=>{const{normalize:n}=r;return n(["应用"])},submit:r=>{const{normalize:n}=r;return n(["提交"])},more:r=>{const{normalize:n}=r;return n(["更多"])},generic_error:r=>{const{normalize:n}=r;return n(["发生了一个错误"])},optional:r=>{const{normalize:n}=r;return n(["可选"])},show_more:r=>{const{normalize:n}=r;return n(["展开"])},show_less:r=>{const{normalize:n}=r;return n(["收起"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])},disable:r=>{const{normalize:n}=r;return n(["禁用"])},enable:r=>{const{normalize:n}=r;return n(["启用"])},confirm:r=>{const{normalize:n}=r;return n(["确认"])},verify:r=>{const{normalize:n}=r;return n(["验证"])},dismiss:r=>{const{normalize:n}=r;return n(["忽略"])},peek:r=>{const{normalize:n}=r;return n(["预览"])},close:r=>{const{normalize:n}=r;return n(["关闭"])},retry:r=>{const{normalize:n}=r;return n(["重试"])},error_retry:r=>{const{normalize:n}=r;return n(["请重试"])},loading:r=>{const{normalize:n}=r;return n(["载入中…"])},role:{moderator:r=>{const{normalize:n}=r;return n(["监察员"])},admin:r=>{const{normalize:n}=r;return n(["管理员"])}},flash_content:r=>{const{normalize:n}=r;return n(["点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。"])},flash_security:r=>{const{normalize:n}=r;return n(["注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。"])},flash_fail:r=>{const{normalize:n}=r;return n(["Flash 内容加载失败,请在控制台查看详情。"])},scope_in_timeline:{public:r=>{const{normalize:n}=r;return n(["公开"])},direct:r=>{const{normalize:n}=r;return n(["私讯"])},private:r=>{const{normalize:n}=r;return n(["仅关注者"])},unlisted:r=>{const{normalize:n}=r;return n(["列外"])}},scroll_to_top:r=>{const{normalize:n}=r;return n(["滚动至顶"])},generic_error_message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["发生一个错误:",e(t(0))])},never_show_again:r=>{const{normalize:n}=r;return n(["不再显示"])},undo:r=>{const{normalize:n}=r;return n(["撤销"])},yes:r=>{const{normalize:n}=r;return n(["是"])},no:r=>{const{normalize:n}=r;return n(["否"])},unpin:r=>{const{normalize:n}=r;return n(["取消固定该项"])},pin:r=>{const{normalize:n}=r;return n(["固定该项"])}},image_cropper:{crop_picture:r=>{const{normalize:n}=r;return n(["裁剪图片"])},save:r=>{const{normalize:n}=r;return n(["保存"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["保存未经裁剪的图片"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])}},importer:{submit:r=>{const{normalize:n}=r;return n(["提交"])},success:r=>{const{normalize:n}=r;return n(["导入成功。"])},error:r=>{const{normalize:n}=r;return n(["导入此文件时出现一个错误。"])}},login:{login:r=>{const{normalize:n}=r;return n(["登录"])},description:r=>{const{normalize:n}=r;return n(["用 OAuth 登录"])},logout:r=>{const{normalize:n}=r;return n(["登出"])},password:r=>{const{normalize:n}=r;return n(["密码"])},placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},register:r=>{const{normalize:n}=r;return n(["注册"])},username:r=>{const{normalize:n}=r;return n(["用户名"])},hint:r=>{const{normalize:n}=r;return n(["登录后加入讨论"])},authentication_code:r=>{const{normalize:n}=r;return n(["验证码"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["输入一个恢复码"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["输入一个双重因素验证码"])},recovery_code:r=>{const{normalize:n}=r;return n(["恢复码"])},heading:{totp:r=>{const{normalize:n}=r;return n(["双重因素验证"])},recovery:r=>{const{normalize:n}=r;return n(["双重因素恢复"])}},logout_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要登出"])},logout_confirm_title:r=>{const{normalize:n}=r;return n(["确认登出"])},logout_confirm_accept_button:r=>{const{normalize:n}=r;return n(["登出"])},logout_confirm:r=>{const{normalize:n}=r;return n(["您确定要登出吗?"])}},media_modal:{previous:r=>{const{normalize:n}=r;return n(["往前"])},next:r=>{const{normalize:n}=r;return n(["往后"])},hide:r=>{const{normalize:n}=r;return n(["关闭媒体查看器"])},counter:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("current"))," / ",e(t("total"))])}},nav:{about:r=>{const{normalize:n}=r;return n(["关于"])},back:r=>{const{normalize:n}=r;return n(["后退"])},chat:r=>{const{normalize:n}=r;return n(["本站聊天"])},friend_requests:r=>{const{normalize:n}=r;return n(["关注请求"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},interactions:r=>{const{normalize:n}=r;return n(["互动"])},dms:r=>{const{normalize:n}=r;return n(["私信"])},public_tl:r=>{const{normalize:n}=r;return n(["公共时间线"])},timeline:r=>{const{normalize:n}=r;return n(["时间线"])},twkn:r=>{const{normalize:n}=r;return n(["已知网络"])},user_search:r=>{const{normalize:n}=r;return n(["用户搜索"])},search:r=>{const{normalize:n}=r;return n(["搜索"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},preferences:r=>{const{normalize:n}=r;return n(["偏好设置"])},administration:r=>{const{normalize:n}=r;return n(["管理员"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},timelines:r=>{const{normalize:n}=r;return n(["时间线"])},bookmarks:r=>{const{normalize:n}=r;return n(["书签"])},home_timeline:r=>{const{normalize:n}=r;return n(["主页时间线"])},lists:r=>{const{normalize:n}=r;return n(["列表"])},edit_finish:r=>{const{normalize:n}=r;return n(["完成编辑"])},mobile_notifications:r=>{const{normalize:n}=r;return n(["打开通知(有未读的)"])},mobile_notifications_close:r=>{const{normalize:n}=r;return n(["关闭通知"])},announcements:r=>{const{normalize:n}=r;return n(["公告"])},edit_nav_mobile:r=>{const{normalize:n}=r;return n(["自定义导航栏"])},edit_pinned:r=>{const{normalize:n}=r;return n(["编辑固定的项目"])},mobile_sidebar:r=>{const{normalize:n}=r;return n(["切换移动设备侧栏"])},search_close:r=>{const{normalize:n}=r;return n(["关闭搜索栏"])}},notifications:{broken_favorite:r=>{const{normalize:n}=r;return n(["未知的状态,正在搜索中…"])},favorited_you:r=>{const{normalize:n}=r;return n(["喜欢了你的状态"])},followed_you:r=>{const{normalize:n}=r;return n(["关注了你"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的通知"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},read:r=>{const{normalize:n}=r;return n(["已阅!"])},repeated_you:r=>{const{normalize:n}=r;return n(["转发了你的状态"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["没有更多的通知"])},reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["作出了 ",e(t(0))," 的反应"])},migrated_to:r=>{const{normalize:n}=r;return n(["迁移到了"])},follow_request:r=>{const{normalize:n}=r;return n(["想要关注你"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得通知时发生错误:",e(t(0))])},poll_ended:r=>{const{normalize:n}=r;return n(["投票结束了"])},submitted_report:r=>{const{normalize:n}=r;return n(["提交举报"])}},polls:{add_poll:r=>{const{normalize:n}=r;return n(["增加投票"])},add_option:r=>{const{normalize:n}=r;return n(["增加选项"])},option:r=>{const{normalize:n}=r;return n(["选项"])},votes:r=>{const{normalize:n}=r;return n(["投票"])},vote:r=>{const{normalize:n}=r;return n(["投票"])},type:r=>{const{normalize:n}=r;return n(["投票类型"])},single_choice:r=>{const{normalize:n}=r;return n(["单选"])},multiple_choices:r=>{const{normalize:n}=r;return n(["多选"])},expiry:r=>{const{normalize:n}=r;return n(["投票期限"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票于 ",e(t(0))," 后结束"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票 ",e(t(0))," 前已结束"])},not_enough_options:r=>{const{normalize:n}=r;return n(["投票的选项太少"])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 票"]),n([e(t("count"))," 票"])])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 人已投票"]),n([e(t("count"))," 人已投票"])])}},stickers:{add_sticker:r=>{const{normalize:n}=r;return n(["添加贴纸"])}},interactions:{favs_repeats:r=>{const{normalize:n}=r;return n(["转发和喜欢"])},follows:r=>{const{normalize:n}=r;return n(["新的关注者"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的互动"])},moves:r=>{const{normalize:n}=r;return n(["用户迁移"])},reports:r=>{const{normalize:n}=r;return n(["举报"])},emoji_reactions:r=>{const{normalize:n}=r;return n(["表情回应"])}},post_status:{new_status:r=>{const{normalize:n}=r;return n(["发布新状态"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["你的帐号没有 ",e(t(0)),"。任何人都可以关注你并浏览你的上锁内容。"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["上锁"])},attachments_sensitive:r=>{const{normalize:n}=r;return n(["标记附件为敏感内容"])},content_type:{"text/plain":r=>{const{normalize:n}=r;return n(["纯文本"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])}},content_warning:r=>{const{normalize:n}=r;return n(["主题(可选)"])},default:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["本条内容只有被提及的用户能够看到。"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["本条内容只有被在消息开始处提及的用户能够看到。"])},posting:r=>{const{normalize:n}=r;return n(["发送中"])},scope_notice:{public:r=>{const{normalize:n}=r;return n(["本条内容可以被所有人看到"])},private:r=>{const{normalize:n}=r;return n(["关注你的人才能看到本条内容"])},unlisted:r=>{const{normalize:n}=r;return n(["本条内容既不在公共时间线,也不会在所有已知网络上可见"])}},scope:{direct:r=>{const{normalize:n}=r;return n(["私信 - 只发送给被提及的用户"])},private:r=>{const{normalize:n}=r;return n(["仅关注者 - 只有关注了你的人能看到"])},public:r=>{const{normalize:n}=r;return n(["公共 - 发送到公共时间轴"])},unlisted:r=>{const{normalize:n}=r;return n(["不公开 - 不会发送到公共时间轴"])}},preview_empty:r=>{const{normalize:n}=r;return n(["空的"])},preview:r=>{const{normalize:n}=r;return n(["预览"])},media_description:r=>{const{normalize:n}=r;return n(["媒体描述"])},media_description_error:r=>{const{normalize:n}=r;return n(["更新媒体失败,请重试"])},empty_status_error:r=>{const{normalize:n}=r;return n(["不能发布没有内容、没有附件的发文"])},post:r=>{const{normalize:n}=r;return n(["发送"])},edit_remote_warning:r=>{const{normalize:n}=r;return n(["其它远程实例可能不支持编辑并且无法接收您的帖子的最新版本。"])},edit_unsupported_warning:r=>{const{normalize:n}=r;return n(["Pleroma 不支持对提及或投票进行编辑。"])},edit_status:r=>{const{normalize:n}=r;return n(["编辑状态"])},content_type_selection:r=>{const{normalize:n}=r;return n(["发帖格式"])},scope_notice_dismiss:r=>{const{normalize:n}=r;return n(["关闭此提示"])}},registration:{bio:r=>{const{normalize:n}=r;return n(["简介"])},email:r=>{const{normalize:n}=r;return n(["电子邮箱"])},fullname:r=>{const{normalize:n}=r;return n(["显示名称"])},password_confirm:r=>{const{normalize:n}=r;return n(["确认密码"])},registration:r=>{const{normalize:n}=r;return n(["注册"])},token:r=>{const{normalize:n}=r;return n(["邀请码"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},new_captcha:r=>{const{normalize:n}=r;return n(["点击图片获取新的验证码"])},username_placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["例如:岩仓玲音"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["例如:\n你好,我是玲音。\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。"])},validations:{username_required:r=>{const{normalize:n}=r;return n(["不能留空"])},fullname_required:r=>{const{normalize:n}=r;return n(["不能留空"])},email_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_match:r=>{const{normalize:n}=r;return n(["密码不一致"])},birthday_required:r=>{const{normalize:n}=r;return n(["不能为空"])},birthday_min_age:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["必须在 ",e(t("date"))," 或之前"])}},reason_placeholder:r=>{const{normalize:n}=r;return n(["此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。"])},reason:r=>{const{normalize:n}=r;return n(["注册理由"])},register:r=>{const{normalize:n}=r;return n(["注册"])},email_language:r=>{const{normalize:n}=r;return n(["你想从服务器收到什么语言的邮件?"])},bio_optional:r=>{const{normalize:n}=r;return n(["介绍(可选)"])},email_optional:r=>{const{normalize:n}=r;return n(["电子邮件(可选)"])},birthday:r=>{const{normalize:n}=r;return n(["生日:"])},birthday_optional:r=>{const{normalize:n}=r;return n(["生日(可选):"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["选择全部"])}},settings:{app_name:r=>{const{normalize:n}=r;return n(["App 名称"])},security:r=>{const{normalize:n}=r;return n(["安全"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["输入您当前的密码来确认您的身份"])},mfa:{otp:r=>{const{normalize:n}=r;return n(["OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["设置 OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["预设 OTP"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["确认并启用 OTP"])},title:r=>{const{normalize:n}=r;return n(["双因素验证"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["生成新的恢复码"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["当您生成新的恢复码时,您旧的恢复码将会失效。"])},recovery_codes:r=>{const{normalize:n}=r;return n(["恢复码。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["正在接收备份码…"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。"])},authentication_methods:r=>{const{normalize:n}=r;return n(["身份验证方法"])},scan:{title:r=>{const{normalize:n}=r;return n(["扫一下"])},desc:r=>{const{normalize:n}=r;return n(["使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:"])},secret_code:r=>{const{normalize:n}=r;return n(["密钥"])}},verify:{desc:r=>{const{normalize:n}=r;return n(["要启用双因素验证,请输入您的双因素验证 app 里的数字:"])}}},attachmentRadius:r=>{const{normalize:n}=r;return n(["附件"])},attachments:r=>{const{normalize:n}=r;return n(["附件"])},avatar:r=>{const{normalize:n}=r;return n(["头像"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["头像(通知)"])},avatarRadius:r=>{const{normalize:n}=r;return n(["头像"])},background:r=>{const{normalize:n}=r;return n(["背景"])},bio:r=>{const{normalize:n}=r;return n(["简介"])},block_export:r=>{const{normalize:n}=r;return n(["屏蔽名单导出"])},block_export_button:r=>{const{normalize:n}=r;return n(["导出你的屏蔽名单到一个 csv 文件"])},block_import:r=>{const{normalize:n}=r;return n(["屏蔽名单导入"])},block_import_error:r=>{const{normalize:n}=r;return n(["导入屏蔽名单出错"])},blocks_imported:r=>{const{normalize:n}=r;return n(["屏蔽名单导入成功!需要一点时间来处理。"])},blocks_tab:r=>{const{normalize:n}=r;return n(["屏蔽"])},btnRadius:r=>{const{normalize:n}=r;return n(["按钮"])},cBlue:r=>{const{normalize:n}=r;return n(["蓝色(回复,关注)"])},cGreen:r=>{const{normalize:n}=r;return n(["绿色(转发)"])},cOrange:r=>{const{normalize:n}=r;return n(["橙色(喜欢)"])},cRed:r=>{const{normalize:n}=r;return n(["红色(取消)"])},change_password:r=>{const{normalize:n}=r;return n(["修改密码"])},change_password_error:r=>{const{normalize:n}=r;return n(["修改密码的时候出了点问题。"])},changed_password:r=>{const{normalize:n}=r;return n(["成功修改了密码!"])},collapse_subject:r=>{const{normalize:n}=r;return n(["折叠带主题的内容"])},composing:r=>{const{normalize:n}=r;return n(["写作"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["确认新密码"])},current_avatar:r=>{const{normalize:n}=r;return n(["当前头像"])},current_password:r=>{const{normalize:n}=r;return n(["当前密码"])},current_profile_banner:r=>{const{normalize:n}=r;return n(["您当前的横幅图片"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["数据导入/导出"])},default_vis:r=>{const{normalize:n}=r;return n(["默认可见范围"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账户"])},delete_account_description:r=>{const{normalize:n}=r;return n(["永久删除你的帐号和所有数据。"])},delete_account_error:r=>{const{normalize:n}=r;return n(["删除账户时发生错误,如果一直删除不了,请联系实例管理员。"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["在下面输入您的密码来确认删除账户。"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["推荐的头像图片最小尺寸为 150x150 像素。"])},export_theme:r=>{const{normalize:n}=r;return n(["导出预置主题"])},filtering:r=>{const{normalize:n}=r;return n(["过滤器"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["所有包含以下词汇的内容都会被隐藏,一行一个"])},follow_export:r=>{const{normalize:n}=r;return n(["导出关注"])},follow_export_button:r=>{const{normalize:n}=r;return n(["将关注导出成 csv 文件"])},follow_import:r=>{const{normalize:n}=r;return n(["导入关注"])},follow_import_error:r=>{const{normalize:n}=r;return n(["导入关注时错误"])},follows_imported:r=>{const{normalize:n}=r;return n(["关注已导入!尚需要一些时间来处理。"])},foreground:r=>{const{normalize:n}=r;return n(["前景"])},general:r=>{const{normalize:n}=r;return n(["通用"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["在对话中隐藏附件"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["在时间线上隐藏附件"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["不显示被隐藏的用户的帖子"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["每个帖子最多能显示的缩略图数量"])},hide_isp:r=>{const{normalize:n}=r;return n(["隐藏实例独有的面板"])},preload_images:r=>{const{normalize:n}=r;return n(["预载图片"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["点击一次以打开工作场所不适宜(NSFW)的附件"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["隐藏帖子的统计数据(例如:喜欢的次数)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["隐藏用户的统计数据(例如:关注者的数量)"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["隐藏过滤的状态"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入拉黑名单"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入关注"])},import_theme:r=>{const{normalize:n}=r;return n(["导入预置主题"])},inputRadius:r=>{const{normalize:n}=r;return n(["输入框"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["复选框"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默认:",e(t("value")),")"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(默认)"])},interface:r=>{const{normalize:n}=r;return n(["界面"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["界面语言"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。"])},limited_availability:r=>{const{normalize:n}=r;return n(["在您的浏览器中无法使用"])},links:r=>{const{normalize:n}=r;return n(["链接"])},lock_account_description:r=>{const{normalize:n}=r;return n(["您需要手动审核关注请求"])},loop_video:r=>{const{normalize:n}=r;return n(["循环视频"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["只循环没有声音的视频(例如:Mastodon 里的“GIF”)"])},mutes_tab:r=>{const{normalize:n}=r;return n(["隐藏"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["在弹出框内播放视频"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["生成缩略图时不要裁剪附件"])},name:r=>{const{normalize:n}=r;return n(["名字"])},name_bio:r=>{const{normalize:n}=r;return n(["名字及简介"])},new_password:r=>{const{normalize:n}=r;return n(["新密码"])},notification_visibility:r=>{const{normalize:n}=r;return n(["要显示的通知类型"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["关注"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["喜欢"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["提及"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["转发"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["不显示富文本格式"])},no_blocks:r=>{const{normalize:n}=r;return n(["没有屏蔽"])},no_mutes:r=>{const{normalize:n}=r;return n(["没有隐藏"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["不要显示我所关注的人"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["不要显示关注我的人"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“管理员”徽章"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“监察员”徽章"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["将不和谐附件和链接预览隐藏,点击才会显示"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth令牌"])},token:r=>{const{normalize:n}=r;return n(["令牌"])},refresh_token:r=>{const{normalize:n}=r;return n(["刷新令牌"])},valid_until:r=>{const{normalize:n}=r;return n(["有效期至"])},revoke_token:r=>{const{normalize:n}=r;return n(["撤消"])},panelRadius:r=>{const{normalize:n}=r;return n(["面板"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["在离开页面时暂停时间线推送"])},presets:r=>{const{normalize:n}=r;return n(["预置"])},profile_background:r=>{const{normalize:n}=r;return n(["个人背景图"])},profile_banner:r=>{const{normalize:n}=r;return n(["横幅图片"])},profile_tab:r=>{const{normalize:n}=r;return n(["个人资料"])},radii_help:r=>{const{normalize:n}=r;return n(["设置界面边缘的圆角 (单位:像素)"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["时间线中的回复"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["显示所有回复"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复/发送给我关注的用户的回复"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["自动隐藏新帖子的按钮(移动设备)"])},saving_err:r=>{const{normalize:n}=r;return n(["保存设置时发生错误"])},saving_ok:r=>{const{normalize:n}=r;return n(["设置已保存"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["搜索你想屏蔽的用户"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["搜索你想要隐藏的用户"])},security_tab:r=>{const{normalize:n}=r;return n(["安全"])},scope_copy:r=>{const{normalize:n}=r;return n(["回复时复制可见范围(私信中永远会复制)"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["使发文可见范围的选项最少化"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["设置新头像"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["设置新的个人资料背景"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["设置新的横幅图片"])},settings:r=>{const{normalize:n}=r;return n(["设置"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["总是显示主题框"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["回复时复制主题"])},subject_line_email:r=>{const{normalize:n}=r;return n(['类似电子邮件: "re: 主题"'])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["类似 mastodon: 与原主题相同"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["不要复制"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["发文状态内容类型"])},stop_gifs:r=>{const{normalize:n}=r;return n(["鼠标悬停时播放GIF"])},streaming:r=>{const{normalize:n}=r;return n(["滚动到顶部时自动推送新内容"])},text:r=>{const{normalize:n}=r;return n(["文本"])},theme:r=>{const{normalize:n}=r;return n(["主题"])},theme_help:r=>{const{normalize:n}=r;return n(["使用十六进制代码(#rrggbb)来设置主题颜色。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["提醒"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["上传照片"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},values:{false:r=>{const{normalize:n}=r;return n(["否"])},true:r=>{const{normalize:n}=r;return n(["是"])}},notifications:r=>{const{normalize:n}=r;return n(["通知"])},notification_mutes:r=>{const{normalize:n}=r;return n(["要停止收到某个指定的用户的通知,请使用隐藏功能。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["启用 web 推送通知"])},style:{switcher:{keep_color:r=>{const{normalize:n}=r;return n(["保留颜色"])},keep_shadows:r=>{const{normalize:n}=r;return n(["保留阴影"])},keep_opacity:r=>{const{normalize:n}=r;return n(["保留透明度"])},keep_roundness:r=>{const{normalize:n}=r;return n(["保留圆角"])},keep_fonts:r=>{const{normalize:n}=r;return n(["保留字体"])},save_load_hint:r=>{const{normalize:n}=r;return n(['"保留" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。'])},reset:r=>{const{normalize:n}=r;return n(["重置"])},clear_all:r=>{const{normalize:n}=r;return n(["清除全部"])},clear_opacity:r=>{const{normalize:n}=r;return n(["清除透明度"])},load_theme:r=>{const{normalize:n}=r;return n(["加载主题"])},help:{upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE 已升级,主题会与您记忆中的不太一样。"])},older_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自旧版本的 FE。"])},future_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自更高版本的 FE。"])},v2_imported:r=>{const{normalize:n}=r;return n(["您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。"])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。"])},migration_napshot_gone:r=>{const{normalize:n}=r;return n(["不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。"])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["为保万无一失,加载了主题快照。您可以试着加载主题数据。"])},fe_downgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的版本回滚了。"])},fe_upgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的主题引擎随着版本更新升级了。"])},snapshot_missing:r=>{const{normalize:n}=r;return n(["在文件中没有主题快照,所以网站外观可能会与原来预想的不同。"])},snapshot_present:r=>{const{normalize:n}=r;return n(["主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。"])}},use_source:r=>{const{normalize:n}=r;return n(["新版本"])},use_snapshot:r=>{const{normalize:n}=r;return n(["老版本"])},keep_as_is:r=>{const{normalize:n}=r;return n(["保持原状"])}},common:{color:r=>{const{normalize:n}=r;return n(["颜色"])},opacity:r=>{const{normalize:n}=r;return n(["透明度"])},contrast:{hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["对比度是 ",e(t("ratio")),", 它 ",e(t("level"))," ",e(t("context"))])},level:{aa:r=>{const{normalize:n}=r;return n(["符合 AA 等级准则(最低)"])},aaa:r=>{const{normalize:n}=r;return n(["符合 AAA 等级准则(推荐)"])},bad:r=>{const{normalize:n}=r;return n(["不符合任何辅助功能指南"])}},context:{"18pt":r=>{const{normalize:n}=r;return n(["大字文本 (18pt+)"])},text:r=>{const{normalize:n}=r;return n(["文本"])}}}},common_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["常规"])},main:r=>{const{normalize:n}=r;return n(["常用颜色"])},foreground_hint:r=>{const{normalize:n}=r;return n(["点击”高级“ 标签进行细致的控制"])},rgbo:r=>{const{normalize:n}=r;return n(["图标,强调,徽章"])}},advanced_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["高级"])},alert:r=>{const{normalize:n}=r;return n(["提醒或警告背景色"])},alert_error:r=>{const{normalize:n}=r;return n(["错误"])},badge:r=>{const{normalize:n}=r;return n(["徽章背景"])},badge_notification:r=>{const{normalize:n}=r;return n(["通知"])},panel_header:r=>{const{normalize:n}=r;return n(["面板标题"])},top_bar:r=>{const{normalize:n}=r;return n(["顶栏"])},borders:r=>{const{normalize:n}=r;return n(["边框"])},buttons:r=>{const{normalize:n}=r;return n(["按钮"])},inputs:r=>{const{normalize:n}=r;return n(["输入框"])},faint_text:r=>{const{normalize:n}=r;return n(["灰度文字"])},chat:{border:r=>{const{normalize:n}=r;return n(["边框"])},outgoing:r=>{const{normalize:n}=r;return n(["发出的"])},incoming:r=>{const{normalize:n}=r;return n(["收到的"])}},disabled:r=>{const{normalize:n}=r;return n(["禁用的"])},pressed:r=>{const{normalize:n}=r;return n(["压下的"])},highlight:r=>{const{normalize:n}=r;return n(["强调元素"])},selectedMenu:r=>{const{normalize:n}=r;return n(["选中的菜单项"])},selectedPost:r=>{const{normalize:n}=r;return n(["选中的发布内容"])},icons:r=>{const{normalize:n}=r;return n(["图标"])},poll:r=>{const{normalize:n}=r;return n(["投票统计图"])},popover:r=>{const{normalize:n}=r;return n(["提示框,菜单,弹出框"])},post:r=>{const{normalize:n}=r;return n(["发布内容/用户简介"])},alert_neutral:r=>{const{normalize:n}=r;return n(["中性"])},alert_warning:r=>{const{normalize:n}=r;return n(["警告"])},tabs:r=>{const{normalize:n}=r;return n(["标签页"])},underlay:r=>{const{normalize:n}=r;return n(["底衬"])},toggled:r=>{const{normalize:n}=r;return n(["按下的"])},wallpaper:r=>{const{normalize:n}=r;return n(["壁纸"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["圆角"])}},shadows:{_tab_label:r=>{const{normalize:n}=r;return n(["阴影和照明"])},component:r=>{const{normalize:n}=r;return n(["组件"])},override:r=>{const{normalize:n}=r;return n(["覆盖"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["阴影 #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["模糊"])},spread:r=>{const{normalize:n}=r;return n(["扩散"])},inset:r=>{const{normalize:n}=r;return n(["内阴影"])},hint:r=>{const{normalize:n}=r;return n(["对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["警告,此阴影设置会总是使用 ",e(t(0))," ,如果浏览器支持的话。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 不支持参数 ",e(t(1))," 和关键词 ",e(t(2))," 。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。"])},spread_zero:r=>{const{normalize:n}=r;return n(["阴影的扩散 > 0 会同设置成零一样"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["内阴影会使用 ",e(t(0))])}},components:{panel:r=>{const{normalize:n}=r;return n(["面板"])},panelHeader:r=>{const{normalize:n}=r;return n(["面板标题"])},topBar:r=>{const{normalize:n}=r;return n(["顶栏"])},avatar:r=>{const{normalize:n}=r;return n(["用户头像(在个人资料栏)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["用户头像(在帖子显示栏)"])},popup:r=>{const{normalize:n}=r;return n(["弹窗与工具提示"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},buttonHover:r=>{const{normalize:n}=r;return n(["按钮(悬停)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["按钮(压下)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["按钮(压下和悬停)"])},input:r=>{const{normalize:n}=r;return n(["输入框"])}},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["对于阴影,您还可以使用 ",e(t(0))," 表示法来使用其它颜色插槽。"])}},fonts:{_tab_label:r=>{const{normalize:n}=r;return n(["字体"])},help:r=>{const{normalize:n}=r;return n(["为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。"])},components:{interface:r=>{const{normalize:n}=r;return n(["界面"])},input:r=>{const{normalize:n}=r;return n(["输入框"])},post:r=>{const{normalize:n}=r;return n(["发帖文字"])},postCode:r=>{const{normalize:n}=r;return n(["帖子中使用等间距文字(富文本)"])}},family:r=>{const{normalize:n}=r;return n(["字体名称"])},size:r=>{const{normalize:n}=r;return n(["大小 (in px)"])},weight:r=>{const{normalize:n}=r;return n(["字重 (粗体)"])},custom:r=>{const{normalize:n}=r;return n(["自选"])}},preview:{header:r=>{const{normalize:n}=r;return n(["预览"])},content:r=>{const{normalize:n}=r;return n(["内容"])},error:r=>{const{normalize:n}=r;return n(["错误示例"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["有堆 ",e(t(0))," 和 ",e(t(1))])},mono:r=>{const{normalize:n}=r;return n(["monospace 内容"])},input:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},faint_link:r=>{const{normalize:n}=r;return n(["帮助手册"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["阅读我们的 ",e(t(0))," ,然而什么也学不到!"])},header_faint:r=>{const{normalize:n}=r;return n(["这很正常"])},checkbox:r=>{const{normalize:n}=r;return n(["我已经浏览了条款及细则"])},link:r=>{const{normalize:n}=r;return n(["一个棒棒的小小链接"])}}},version:{title:r=>{const{normalize:n}=r;return n(["版本"])},backend_version:r=>{const{normalize:n}=r;return n(["后端版本"])},frontend_version:r=>{const{normalize:n}=r;return n(["前端版本"])}},notification_setting_filters:r=>{const{normalize:n}=r;return n(["过滤器"])},domain_mutes:r=>{const{normalize:n}=r;return n(["域名"])},changed_email:r=>{const{normalize:n}=r;return n(["邮箱修改成功!"])},change_email_error:r=>{const{normalize:n}=r;return n(["修改您的电子邮箱时发生错误。"])},change_email:r=>{const{normalize:n}=r;return n(["修改电子邮箱"])},allow_following_move:r=>{const{normalize:n}=r;return n(["正在关注的账号迁移时自动重新关注"])},notification_setting_privacy_option:r=>{const{normalize:n}=r;return n(["在通知推送中隐藏发送者和内容"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["隐私"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["不显示关注数"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["互动"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["用户迁移"])},new_email:r=>{const{normalize:n}=r;return n(["新邮箱"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["在时间线上显示表情符号互动"])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["隐藏推送通知中的发送者与内容信息"])},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["屏蔽来自你没有关注的用户的通知"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["搜索需要隐藏的域名"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["实时接收帖子和通知"])},user_mutes:r=>{const{normalize:n}=r;return n(["用户"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置背景图吗?"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置横幅图片吗?"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置头像吗?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["重置横幅图片"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["重置个人背景图"])},reset_avatar:r=>{const{normalize:n}=r;return n(["重置头像"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["不显示关注者数量"])},profile_fields:{value:r=>{const{normalize:n}=r;return n(["内容"])},name:r=>{const{normalize:n}=r;return n(["标签"])},add_field:r=>{const{normalize:n}=r;return n(["添加字段"])},label:r=>{const{normalize:n}=r;return n(["个人资料元数据"])}},accent:r=>{const{normalize:n}=r;return n(["强调色"])},pad_emoji:r=>{const{normalize:n}=r;return n(["从表情符号选择器插入表情符号时,在表情两侧插入空格"])},discoverable:r=>{const{normalize:n}=r;return n(["允许通过搜索检索等服务找到此账号"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["隐藏与屏蔽"])},bot:r=>{const{normalize:n}=r;return n(["这是一个机器人账号"])},fun:r=>{const{normalize:n}=r;return n(["趣味"])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(不推荐使用,试验性,已知会跳过一些帖子)"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["聊天消息"])},greentext:r=>{const{normalize:n}=r;return n(["Meme 箭头"])},virtual_scrolling:r=>{const{normalize:n}=r;return n(["优化时间线渲染"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件导入隐藏名单"])},mutes_imported:r=>{const{normalize:n}=r;return n(["隐藏名单导入成功!处理它们将需要一段时间。"])},mute_import_error:r=>{const{normalize:n}=r;return n(["导入隐藏名单出错"])},mute_import:r=>{const{normalize:n}=r;return n(["隐藏名单导入"])},mute_export_button:r=>{const{normalize:n}=r;return n(["导出你的隐藏名单到一个 csv 文件"])},mute_export:r=>{const{normalize:n}=r;return n(["隐藏名单导出"])},hide_wallpaper:r=>{const{normalize:n}=r;return n(["隐藏实例壁纸"])},setting_changed:r=>{const{normalize:n}=r;return n(["与默认设置不同"])},more_settings:r=>{const{normalize:n}=r;return n(["更多设置"])},sensitive_by_default:r=>{const{normalize:n}=r;return n(["默认标记发文为敏感内容"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["只显示对我本人的回复"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["显示对我关注的人的回复"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["不显示已隐藏的发文"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["隐藏媒体预览"])},word_filter:r=>{const{normalize:n}=r;return n(["词语过滤"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},file_export_import:{errors:{file_slightly_new:r=>{const{normalize:n}=r;return n(["文件的小版本不同,有些设置可能无法加载"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",文件版本过旧,不受支持(最小设置版本 ",e(t("feMajor")),")"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",此 PleromaFE(设置版本 ",e(t("feMajor")),")过旧,无法处理"])},invalid_file:r=>{const{normalize:n}=r;return n(["所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。"])}},restore_settings:r=>{const{normalize:n}=r;return n(["从文件恢复设置"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["备份设置和主题到文件"])},backup_settings:r=>{const{normalize:n}=r;return n(["备份设置到文件"])},backup_restore:r=>{const{normalize:n}=r;return n(["设置备份"])}},right_sidebar:r=>{const{normalize:n}=r;return n(["反转分栏的顺序"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["隐藏实例留言板"])},expert_mode:r=>{const{normalize:n}=r;return n(["显示高级"])},download_backup:r=>{const{normalize:n}=r;return n(["下载"])},mention_links:r=>{const{normalize:n}=r;return n(["提及链接"])},account_backup:r=>{const{normalize:n}=r;return n(["账号备份"])},account_backup_table_head:r=>{const{normalize:n}=r;return n(["备份"])},remove_backup:r=>{const{normalize:n}=r;return n(["移除"])},list_backups_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取备份列表出错:",e(t("error"))])},add_backup:r=>{const{normalize:n}=r;return n(["创建一个新备份"])},added_backup:r=>{const{normalize:n}=r;return n(["创建了一个新备份。"])},account_alias:r=>{const{normalize:n}=r;return n(["账号别名"])},account_alias_table_head:r=>{const{normalize:n}=r;return n(["别名"])},list_aliases_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取别名时出错:",e(t("error"))])},hide_list_aliases_error_action:r=>{const{normalize:n}=r;return n(["关闭"])},remove_alias:r=>{const{normalize:n}=r;return n(["移除这个别名"])},new_alias_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加一个新别名(例如 ",e(t("example")),")"])},added_alias:r=>{const{normalize:n}=r;return n(["别名添加好了。"])},move_account:r=>{const{normalize:n}=r;return n(["移动账号"])},move_account_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["目标账号(例如 ",e(t("example")),")"])},moved_account:r=>{const{normalize:n}=r;return n(["账号移动好了。"])},move_account_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["移动账号时出错:",e(t("error"))])},setting_server_side:r=>{const{normalize:n}=r;return n(["这个设置是捆绑到你的个人资料的,能影响所有会话和客户端"])},post_look_feel:r=>{const{normalize:n}=r;return n(["文章的样子跟感受"])},email_language:r=>{const{normalize:n}=r;return n(["从服务器收邮件的语言"])},account_backup_description:r=>{const{normalize:n}=r;return n(["这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。"])},backup_not_ready:r=>{const{normalize:n}=r;return n(["备份还没准备好。"])},add_backup_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加新备份时出错:",e(t("error"))])},add_alias_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加别名时出错:",e(t("error"))])},move_account_notes:r=>{const{normalize:n}=r;return n(["如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。"])},wordfilter:r=>{const{normalize:n}=r;return n(["词语过滤器"])},user_profiles:r=>{const{normalize:n}=r;return n(["用户资料"])},third_column_mode_notifications:r=>{const{normalize:n}=r;return n(["通知栏"])},backup_running:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n(["此备份正在进行,已处理 ",e(t("number"))," 条记录。"]),n(["此备份正在进行,已处理 ",e(t("number"))," 条记录。"])])},lists_navigation:r=>{const{normalize:n}=r;return n(["在导航中显示列表"])},word_filter_and_more:r=>{const{normalize:n}=r;return n(["词过滤器及其它..."])},backup_failed:r=>{const{normalize:n}=r;return n(["此备份已失败。"])},birthday:{label:r=>{const{normalize:n}=r;return n(["生日"])},show_birthday:r=>{const{normalize:n}=r;return n(["展示我的生日"])}},hide_favorites_description:r=>{const{normalize:n}=r;return n(["不显示我的喜欢列表(人们仍然会收到通知)"])},third_column_mode:r=>{const{normalize:n}=r;return n(["当有足够的空间时,显示第三栏包含"])},third_column_mode_postform:r=>{const{normalize:n}=r;return n(["主要的发文形式和导航"])},columns:r=>{const{normalize:n}=r;return n(["分栏"])},user_popover_avatar_overlay:r=>{const{normalize:n}=r;return n(["在用户头像上显示用户弹出窗口"])},navbar_column_stretch:r=>{const{normalize:n}=r;return n(["延伸导航栏至分栏宽度"])},posts:r=>{const{normalize:n}=r;return n(["帖子"])},conversation_display_linear_quick:r=>{const{normalize:n}=r;return n(["线性视图"])},conversation_other_replies_button:r=>{const{normalize:n}=r;return n(["显示 “其它回复” 按钮"])},confirm_dialogs_delete:r=>{const{normalize:n}=r;return n(["删除状态"])},confirm_dialogs_mute:r=>{const{normalize:n}=r;return n(["隐藏用户"])},column_sizes:r=>{const{normalize:n}=r;return n(["分栏大小"])},column_sizes_sidebar:r=>{const{normalize:n}=r;return n(["侧栏"])},column_sizes_content:r=>{const{normalize:n}=r;return n(["內容"])},column_sizes_notifs:r=>{const{normalize:n}=r;return n(["通知"])},conversation_other_replies_button_below:r=>{const{normalize:n}=r;return n(["在状态下方"])},conversation_other_replies_button_inside:r=>{const{normalize:n}=r;return n(["在状态中"])},auto_update:r=>{const{normalize:n}=r;return n(["自动显示新的帖子"])},use_websockets:r=>{const{normalize:n}=r;return n(["使用 websockets(实时更新)"])},max_depth_in_thread:r=>{const{normalize:n}=r;return n(["默认显示同主题帖子中的最大层数"])},hide_wordfiltered_statuses:r=>{const{normalize:n}=r;return n(["隐藏经过词语过滤的状态"])},hide_muted_threads:r=>{const{normalize:n}=r;return n(["不显示已隐藏的同主题帖子"])},notification_visibility_polls:r=>{const{normalize:n}=r;return n(["你所投的投票的结束于"])},tree_advanced:r=>{const{normalize:n}=r;return n(["允许在树状视图中进行更灵活的导航"])},tree_fade_ancestors:r=>{const{normalize:n}=r;return n(["以模糊的文字显示当前状态的原型"])},conversation_display_linear:r=>{const{normalize:n}=r;return n(["线性样式"])},mention_link_fade_domain:r=>{const{normalize:n}=r;return n(["淡化域名(例如:","@","example.org 中的 ","@","foo","@","example.org)"])},mention_link_bolden_you:r=>{const{normalize:n}=r;return n(["当你被提及时突出显示提及你"])},user_popover_avatar_action:r=>{const{normalize:n}=r;return n(["弹出式头像点击动作"])},user_popover_avatar_action_zoom:r=>{const{normalize:n}=r;return n(["缩放头像"])},user_popover_avatar_action_close:r=>{const{normalize:n}=r;return n(["关闭弹出窗口"])},show_yous:r=>{const{normalize:n}=r;return n(["显示 (You)s"])},add_language:r=>{const{normalize:n}=r;return n(["添加备用语言"])},remove_language:r=>{const{normalize:n}=r;return n(["移除"])},primary_language:r=>{const{normalize:n}=r;return n(["主要语言:"])},fallback_language:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["备用语言 ",e(t("index")),":"])},account_privacy:r=>{const{normalize:n}=r;return n(["隐私"])},conversation_display:r=>{const{normalize:n}=r;return n(["对话显示样式"])},conversation_display_tree:r=>{const{normalize:n}=r;return n(["树状样式"])},conversation_display_tree_quick:r=>{const{normalize:n}=r;return n(["树状视图"])},disable_sticky_headers:r=>{const{normalize:n}=r;return n(["不要把分栏的顶栏固定在屏幕的顶部"])},confirm_dialogs:r=>{const{normalize:n}=r;return n(["请求确认于"])},confirm_dialogs_logout:r=>{const{normalize:n}=r;return n(["登出"])},confirm_dialogs_deny_follow:r=>{const{normalize:n}=r;return n(["拒绝关注请求"])},confirm_dialogs_approve_follow:r=>{const{normalize:n}=r;return n(["批准关注请求"])},confirm_dialogs_block:r=>{const{normalize:n}=r;return n(["屏蔽用户"])},confirm_dialogs_unfollow:r=>{const{normalize:n}=r;return n(["取消关注用户"])},confirm_dialogs_repeat:r=>{const{normalize:n}=r;return n(["转发状态"])},confirm_dialogs_remove_follower:r=>{const{normalize:n}=r;return n(["移除关注者"])},mute_bot_posts:r=>{const{normalize:n}=r;return n(["隐藏机器人的帖子"])},hide_bot_indication:r=>{const{normalize:n}=r;return n(["隐藏帖子中的机器人提示"])},always_show_post_button:r=>{const{normalize:n}=r;return n(["始终显示浮动的新帖子按钮"])},show_scrollbars:r=>{const{normalize:n}=r;return n(["显示侧栏的滚动条"])},third_column_mode_none:r=>{const{normalize:n}=r;return n(["完全不显示第三栏"])},use_at_icon:r=>{const{normalize:n}=r;return n(["将 ","@"," 符号显示为图标而不是文本"])},mention_link_display:r=>{const{normalize:n}=r;return n(["显示提及链接"])},mention_link_display_short:r=>{const{normalize:n}=r;return n(["始终以简称的形式出现(例如:","@","foo)"])},mention_link_display_full_for_remote:r=>{const{normalize:n}=r;return n(["仅远程实例用户以全名的形式出现(例如:","@","foo","@","example.org)"])},mention_link_display_full:r=>{const{normalize:n}=r;return n(["始终以全名的形式出现(例如:","@","foo","@","example.org)"])},mention_link_use_tooltip:r=>{const{normalize:n}=r;return n(["点击提及链接时显示用户卡片"])},mention_link_show_avatar:r=>{const{normalize:n}=r;return n(["在链接旁边显示用户头像"])},mention_link_show_avatar_quick:r=>{const{normalize:n}=r;return n(["在提及内容旁边显示用户头像"])},user_popover_avatar_action_open:r=>{const{normalize:n}=r;return n(["打开个人资料"])}},time:{day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["还有 ",e(t(0))])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 之前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},now:r=>{const{normalize:n}=r;return n(["刚刚"])},now_short:r=>{const{normalize:n}=r;return n(["刚刚"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},unit:{days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 时"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 个月"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])}}},timeline:{collapse:r=>{const{normalize:n}=r;return n(["折叠"])},conversation:r=>{const{normalize:n}=r;return n(["对话"])},error_fetching:r=>{const{normalize:n}=r;return n(["获取更新时发生错误"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的状态"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["这条内容仅关注者可见,或者是私信,因此不能转发"])},repeated:r=>{const{normalize:n}=r;return n(["转发了"])},show_new:r=>{const{normalize:n}=r;return n(["显示新内容"])},up_to_date:r=>{const{normalize:n}=r;return n(["已是最新"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["没有更多的状态"])},no_statuses:r=>{const{normalize:n}=r;return n(["没有状态更新"])},reload:r=>{const{normalize:n}=r;return n(["重新载入"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得时间轴时发生错误:",e(t(0))])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["丢失实时连接:CloseEvent code ",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["已建立实时连接"])},quick_view_settings:r=>{const{normalize:n}=r;return n(["快速视图设置"])},quick_filter_settings:r=>{const{normalize:n}=r;return n(["快速过滤设置"])}},status:{favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},repeats:r=>{const{normalize:n}=r;return n(["转发"])},delete:r=>{const{normalize:n}=r;return n(["删除状态"])},pin:r=>{const{normalize:n}=r;return n(["在个人资料置顶"])},unpin:r=>{const{normalize:n}=r;return n(["取消在个人资料置顶"])},pinned:r=>{const{normalize:n}=r;return n(["置顶"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您确定要删除这条状态吗?"])},reply_to:r=>{const{normalize:n}=r;return n(["回复"])},replies_list:r=>{const{normalize:n}=r;return n(["回复:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["隐藏对话"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["对话取消隐藏"])},hide_content:r=>{const{normalize:n}=r;return n(["隐藏内容"])},show_content:r=>{const{normalize:n}=r;return n(["显示内容"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["隐藏此部分标题"])},show_full_subject:r=>{const{normalize:n}=r;return n(["显示全部标题"])},thread_muted:r=>{const{normalize:n}=r;return n(["同主题帖子已被隐藏"])},copy_link:r=>{const{normalize:n}=r;return n(["复制状态链接"])},status_unavailable:r=>{const{normalize:n}=r;return n(["状态不可取得"])},unbookmark:r=>{const{normalize:n}=r;return n(["取消书签"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([",含有过滤词:"])},status_deleted:r=>{const{normalize:n}=r;return n(["该状态已被删除"])},nsfw:r=>{const{normalize:n}=r;return n(["NSFW"])},external_source:r=>{const{normalize:n}=r;return n(["外部来源"])},expand:r=>{const{normalize:n}=r;return n(["展开"])},you:r=>{const{normalize:n}=r;return n(["(你)"])},plus_more:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["还有 ",e(t("number"))," 个"])},many_attachments:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文章有 ",e(t("number"))," 个附件"])},collapse_attachments:r=>{const{normalize:n}=r;return n(["折起附件"])},show_all_attachments:r=>{const{normalize:n}=r;return n(["显示所有附件"])},show_attachment_description:r=>{const{normalize:n}=r;return n(["预览描述(打开附件能看完整描述)"])},hide_attachment:r=>{const{normalize:n}=r;return n(["隐藏附件"])},remove_attachment:r=>{const{normalize:n}=r;return n(["移除附件"])},attachment_stop_flash:r=>{const{normalize:n}=r;return n(["停止 Flash 播放器"])},move_up:r=>{const{normalize:n}=r;return n(["把附件左移"])},open_gallery:r=>{const{normalize:n}=r;return n(["打开图库"])},thread_hide:r=>{const{normalize:n}=r;return n(["隐藏这个同主题帖子"])},thread_show:r=>{const{normalize:n}=r;return n(["显示这个同主题帖子"])},thread_show_full_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},thread_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个同主题帖子的剩余部分(一共有 ",e(t("numStatus"))," 个状态)"])},thread_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},ancestor_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个状态下的别的 ",e(t("numReplies"))," 个回复"])},ancestor_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示完整对话(还有 ",e(t("numStatus"))," 个状态)"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},replies_list_with_others:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["回复(另外 +",e(t("numReplies"))," 个):"])},move_down:r=>{const{normalize:n}=r;return n(["把附件右移"])},thread_show_full:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示这个同主题帖子下的所有东西(一共有 ",e(t("numStatus"))," 个状态,最大深度 ",e(t("depth")),")"])},show_only_conversation_under_this:r=>{const{normalize:n}=r;return n(["只显示这个状态的回复"])},repeat_confirm:r=>{const{normalize:n}=r;return n(["您确定要转发这条状态吗?"])},repeat_confirm_title:r=>{const{normalize:n}=r;return n(["确认转发"])},repeat_confirm_accept_button:r=>{const{normalize:n}=r;return n(["转发"])},repeat_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要转发"])},edit:r=>{const{normalize:n}=r;return n(["编辑状态"])},edited_at:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(最后编辑于 ",e(t("time")),")"])},delete_confirm_title:r=>{const{normalize:n}=r;return n(["确认删除"])},delete_confirm_accept_button:r=>{const{normalize:n}=r;return n(["删除"])},delete_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["保留"])},show_attachment_in_modal:r=>{const{normalize:n}=r;return n(["在媒体模式中显示"])},status_history:r=>{const{normalize:n}=r;return n(["状态历史"])}},user_card:{approve:r=>{const{normalize:n}=r;return n(["核准"])},block:r=>{const{normalize:n}=r;return n(["屏蔽"])},blocked:r=>{const{normalize:n}=r;return n(["已屏蔽!"])},deny:r=>{const{normalize:n}=r;return n(["拒绝"])},favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},follow:r=>{const{normalize:n}=r;return n(["关注"])},follow_sent:r=>{const{normalize:n}=r;return n(["请求已发送!"])},follow_progress:r=>{const{normalize:n}=r;return n(["请求中…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["取消关注"])},followees:r=>{const{normalize:n}=r;return n(["正在关注"])},followers:r=>{const{normalize:n}=r;return n(["关注者"])},following:r=>{const{normalize:n}=r;return n(["正在关注!"])},follows_you:r=>{const{normalize:n}=r;return n(["关注了你!"])},its_you:r=>{const{normalize:n}=r;return n(["就是你!"])},media:r=>{const{normalize:n}=r;return n(["媒体"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])},muted:r=>{const{normalize:n}=r;return n(["已隐藏"])},per_day:r=>{const{normalize:n}=r;return n(["每天"])},remote_follow:r=>{const{normalize:n}=r;return n(["跨站关注"])},report:r=>{const{normalize:n}=r;return n(["报告"])},statuses:r=>{const{normalize:n}=r;return n(["状态"])},subscribe:r=>{const{normalize:n}=r;return n(["订阅"])},unsubscribe:r=>{const{normalize:n}=r;return n(["退订"])},unblock:r=>{const{normalize:n}=r;return n(["取消屏蔽"])},unblock_progress:r=>{const{normalize:n}=r;return n(["正在取消屏蔽…"])},block_progress:r=>{const{normalize:n}=r;return n(["正在屏蔽…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},unmute_progress:r=>{const{normalize:n}=r;return n(["取消隐藏中…"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},admin_menu:{moderation:r=>{const{normalize:n}=r;return n(["仲裁"])},grant_admin:r=>{const{normalize:n}=r;return n(["赋予管理权限"])},revoke_admin:r=>{const{normalize:n}=r;return n(["撤销管理权限"])},grant_moderator:r=>{const{normalize:n}=r;return n(["赋予监察员权限"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["撤销监察员权限"])},activate_account:r=>{const{normalize:n}=r;return n(["激活账号"])},deactivate_account:r=>{const{normalize:n}=r;return n(["关闭账号"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账号"])},force_nsfw:r=>{const{normalize:n}=r;return n(["标记所有的帖子都是 - 工作场合不适"])},strip_media:r=>{const{normalize:n}=r;return n(["从帖子里删除媒体文件"])},force_unlisted:r=>{const{normalize:n}=r;return n(["强制帖子为不公开"])},sandbox:r=>{const{normalize:n}=r;return n(["强制帖子为只有关注者可看"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["禁止从远程实例关注用户"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["完全禁止关注用户"])},quarantine:r=>{const{normalize:n}=r;return n(["从联合实例中禁止用户帖子"])},delete_user:r=>{const{normalize:n}=r;return n(["删除用户"])},delete_user_data_and_deactivate_confirmation:r=>{const{normalize:n}=r;return n(["这将永久删除该账户的数据并停用该账户。你完全确定吗?"])}},hidden:r=>{const{normalize:n}=r;return n(["已隐藏"])},show_repeats:r=>{const{normalize:n}=r;return n(["显示转发"])},hide_repeats:r=>{const{normalize:n}=r;return n(["隐藏转发"])},message:r=>{const{normalize:n}=r;return n(["消息"])},mention:r=>{const{normalize:n}=r;return n(["提及"])},bot:r=>{const{normalize:n}=r;return n(["机器人"])},highlight:{side:r=>{const{normalize:n}=r;return n(["侧边条纹"])},striped:r=>{const{normalize:n}=r;return n(["条纹背景"])},solid:r=>{const{normalize:n}=r;return n(["单一颜色背景"])},disabled:r=>{const{normalize:n}=r;return n(["不突出显示"])}},edit_profile:r=>{const{normalize:n}=r;return n(["编辑个人资料"])},approve_confirm_title:r=>{const{normalize:n}=r;return n(["确认批准"])},approve_confirm_accept_button:r=>{const{normalize:n}=r;return n(["批准"])},block_confirm_accept_button:r=>{const{normalize:n}=r;return n(["屏蔽"])},block_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要屏蔽"])},deactivated:r=>{const{normalize:n}=r;return n(["已停用"])},deny_confirm_title:r=>{const{normalize:n}=r;return n(["确认拒绝"])},deny_confirm_accept_button:r=>{const{normalize:n}=r;return n(["拒绝"])},deny_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要拒绝"])},deny_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您是否要拒绝 ",e(t("user"))," 的关注请求?"])},follow_cancel:r=>{const{normalize:n}=r;return n(["取消请求"])},unfollow_confirm_title:r=>{const{normalize:n}=r;return n(["确认取消关注"])},unfollow_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要取消关注 ",e(t("user"))," 吗?"])},unfollow_confirm_accept_button:r=>{const{normalize:n}=r;return n(["取消关注"])},unfollow_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要取消关注"])},mute_confirm_title:r=>{const{normalize:n}=r;return n(["确认隐藏"])},mute_confirm_accept_button:r=>{const{normalize:n}=r;return n(["隐藏"])},mute_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要隐藏"])},mute_duration_prompt:r=>{const{normalize:n}=r;return n(["让这个用户隐藏(0表示无限期):"])},remove_follower:r=>{const{normalize:n}=r;return n(["移除关注者"])},remove_follower_confirm_title:r=>{const{normalize:n}=r;return n(["确认移除关注者"])},remove_follower_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["保留"])},remove_follower_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要将 ",e(t("user"))," 从您的关注者里移除吗?"])},birthday:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["生于 ",e(t("birthday"))])},note:r=>{const{normalize:n}=r;return n(["备注"])},approve_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要批准"])},approve_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您是否要批准 ",e(t("user"))," 的关注请求?"])},block_confirm_title:r=>{const{normalize:n}=r;return n(["确认屏蔽"])},block_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要屏蔽 ",e(t("user"))," 吗?"])},mute_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要隐藏 ",e(t("user"))," 吗?"])},remove_follower_confirm_accept_button:r=>{const{normalize:n}=r;return n(["移除"])},note_blank:r=>{const{normalize:n}=r;return n(["(空)"])},edit_note:r=>{const{normalize:n}=r;return n(["编辑备注"])},edit_note_apply:r=>{const{normalize:n}=r;return n(["应用"])},edit_note_cancel:r=>{const{normalize:n}=r;return n(["取消"])}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["用户时间线"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["抱歉,此个人资料不存在。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["抱歉,载入个人资料时出错。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["报告 ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:"])},additional_comments:r=>{const{normalize:n}=r;return n(["其它信息"])},forward_description:r=>{const{normalize:n}=r;return n(["这个账号来自另一个服务器。是否同时发送一份报告副本到那里?"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["转发 ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["提交"])},generic_error:r=>{const{normalize:n}=r;return n(["当处理您的请求时,发生了一个错误。"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["更多"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["上传媒体"])},repeat:r=>{const{normalize:n}=r;return n(["转发"])},reply:r=>{const{normalize:n}=r;return n(["回复"])},favorite:r=>{const{normalize:n}=r;return n(["喜欢"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["拒绝关注请求"])},add_reaction:r=>{const{normalize:n}=r;return n(["添加互动"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["接受关注请求"])},toggle_expand:r=>{const{normalize:n}=r;return n(["展开或折叠通知以显示帖子全文"])},toggle_mute:r=>{const{normalize:n}=r;return n(["展开或折叠通知以显示已隐藏的内容"])},autocomplete_available:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["共有 ",e(t("number"))," 个结果可用。使用向上和向下键浏览它们。"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["上传不成功。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文件太大了 [",e(t("filesize")),e(t("filesizeunit"))," / ",e(t("allowedsize")),e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["迟些再试"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["上传错误:",e(t(0))])}},file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])}}},search:{people:r=>{const{normalize:n}=r;return n(["人"])},hashtags:r=>{const{normalize:n}=r;return n(["话题标签"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},no_results:r=>{const{normalize:n}=r;return n(["没有搜索结果"])},no_more_results:r=>{const{normalize:n}=r;return n(["没有更多结果"])},load_more:r=>{const{normalize:n}=r;return n(["加载更多结果"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["忘记密码了?"])},password_reset:r=>{const{normalize:n}=r;return n(["重置密码"])},instruction:r=>{const{normalize:n}=r;return n(["输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。"])},placeholder:r=>{const{normalize:n}=r;return n(["您的电邮地址或者用户名"])},check_email:r=>{const{normalize:n}=r;return n(["检查您的邮箱,会有一个链接用于重置密码。"])},return_home:r=>{const{normalize:n}=r;return n(["回到首页"])},too_many_requests:r=>{const{normalize:n}=r;return n(["您达到了尝试次数的上限,请稍后再试。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["密码重置已被禁用。请联系您的实例管理员。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["您必须重置密码才能登陆。"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["未找到。"])},searching_for:r=>{const{normalize:n}=r;return n(["搜索"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["远程用户解析器"])}},emoji:{keep_open:r=>{const{normalize:n}=r;return n(["选择器保持打开"])},stickers:r=>{const{normalize:n}=r;return n(["贴纸"])},unicode:r=>{const{normalize:n}=r;return n(["Unicode 表情符号"])},custom:r=>{const{normalize:n}=r;return n(["自定义表情符号"])},add_emoji:r=>{const{normalize:n}=r;return n(["插入表情符号"])},search_emoji:r=>{const{normalize:n}=r;return n(["搜索表情符号"])},emoji:r=>{const{normalize:n}=r;return n(["表情符号"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["加载所有表情符号(共 ",e(t("emojiAmount"))," 个)"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["最先加载的 ",e(t("saneAmount"))," 表情符号,加载全部表情符号可能会带来性能问题。"])},unicode_groups:{flags:r=>{const{normalize:n}=r;return n(["旗帜"])},"food-and-drink":r=>{const{normalize:n}=r;return n(["饮食"])},objects:r=>{const{normalize:n}=r;return n(["物件"])},"people-and-body":r=>{const{normalize:n}=r;return n(["人和身体"])},symbols:r=>{const{normalize:n}=r;return n(["符号"])},"travel-and-places":r=>{const{normalize:n}=r;return n(["旅行和地点"])},activities:r=>{const{normalize:n}=r;return n(["活动"])},"animals-and-nature":r=>{const{normalize:n}=r;return n(["动物和自然"])},"smileys-and-emotion":r=>{const{normalize:n}=r;return n(["表情与情感"])}},regional_indicator:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["地区指示符 ",e(t("letter"))])},unpacked:r=>{const{normalize:n}=r;return n(["拆分的表情符号"])}},about:{mrf:{simple:{quarantine_desc:r=>{const{normalize:n}=r;return n(["本实例向以下实例仅发送公开的帖子:"])},quarantine:r=>{const{normalize:n}=r;return n(["隔离"])},reject_desc:r=>{const{normalize:n}=r;return n(["本实例不会接收来自下列实例的消息:"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])},accept_desc:r=>{const{normalize:n}=r;return n(["本实例只接收来自下列实例的消息:"])},simple_policies:r=>{const{normalize:n}=r;return n(["对于特定实例的策略"])},accept:r=>{const{normalize:n}=r;return n(["接受"])},media_removal:r=>{const{normalize:n}=r;return n(["移除媒体"])},media_nsfw_desc:r=>{const{normalize:n}=r;return n(["本实例将来自以下实例的媒体内容强制设置为敏感内容:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["强制设置媒体为敏感内容"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["本实例移除来自以下实例的媒体内容:"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["该实例在从“已知网络”时间线上移除了下列实例:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["从“已知网络”时间线上移除"])},reason:r=>{const{normalize:n}=r;return n(["理由"])},not_applicable:r=>{const{normalize:n}=r;return n(["无"])},instance:r=>{const{normalize:n}=r;return n(["实例"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRF 策略会影响本实例的互通行为。以下策略已启用:"])},mrf_policies:r=>{const{normalize:n}=r;return n(["已启用的 MRF 策略"])},keyword:{ftl_removal:r=>{const{normalize:n}=r;return n(["从“全部已知网络”时间线上移除"])},keyword_policies:r=>{const{normalize:n}=r;return n(["关键词策略"])},is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},replace:r=>{const{normalize:n}=r;return n(["替换"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])}},federation:r=>{const{normalize:n}=r;return n(["联邦互通"])}},staff:r=>{const{normalize:n}=r;return n(["管理人员"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["正在取消隐藏…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["留言板"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["今天"])}},file_type:{file:r=>{const{normalize:n}=r;return n(["文件"])},image:r=>{const{normalize:n}=r;return n(["图片"])},video:r=>{const{normalize:n}=r;return n(["视频"])},audio:r=>{const{normalize:n}=r;return n(["音频"])}},chats:{empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["您还没有任何聊天记录。开始聊天吧!"])},error_sending_message:r=>{const{normalize:n}=r;return n(["发送消息时出了点问题。"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["加载聊天时出了点问题。"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您确定要删除此消息吗?"])},more:r=>{const{normalize:n}=r;return n(["更多"])},empty_message_error:r=>{const{normalize:n}=r;return n(["无法发布空消息"])},new:r=>{const{normalize:n}=r;return n(["新聊天"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},delete:r=>{const{normalize:n}=r;return n(["删除"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["发消息给 ",e(t("nickname"))])},you:r=>{const{normalize:n}=r;return n(["你:"])}},announcements:{page_header:r=>{const{normalize:n}=r;return n(["公告"])},title:r=>{const{normalize:n}=r;return n(["公告"])},mark_as_read_action:r=>{const{normalize:n}=r;return n(["标为已读"])},post_form_header:r=>{const{normalize:n}=r;return n(["发布公告"])},post_placeholder:r=>{const{normalize:n}=r;return n(["在这里输入公告内容..."])},post_action:r=>{const{normalize:n}=r;return n(["发布"])},post_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["错误:",e(t("error"))])},close_error:r=>{const{normalize:n}=r;return n(["关闭"])},delete_action:r=>{const{normalize:n}=r;return n(["删除"])},start_time_prompt:r=>{const{normalize:n}=r;return n(["起始时间: "])},end_time_prompt:r=>{const{normalize:n}=r;return n(["终止时间: "])},all_day_prompt:r=>{const{normalize:n}=r;return n(["这是全天的事件"])},published_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["发表于 ",e(t("time"))])},start_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["开始于 ",e(t("time"))])},end_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["结束于 ",e(t("time"))])},edit_action:r=>{const{normalize:n}=r;return n(["编辑"])},submit_edit_action:r=>{const{normalize:n}=r;return n(["提交"])},cancel_edit_action:r=>{const{normalize:n}=r;return n(["取消"])},inactive_message:r=>{const{normalize:n}=r;return n(["这个公告不活跃"])}},report:{reported_user:r=>{const{normalize:n}=r;return n(["被举报者:"])},state_closed:r=>{const{normalize:n}=r;return n(["已关闭"])},state_resolved:r=>{const{normalize:n}=r;return n(["已解决"])},reporter:r=>{const{normalize:n}=r;return n(["举报者:"])},state_open:r=>{const{normalize:n}=r;return n(["开启"])},reported_statuses:r=>{const{normalize:n}=r;return n(["已举报的状态:"])},notes:r=>{const{normalize:n}=r;return n(["备注:"])},state:r=>{const{normalize:n}=r;return n(["状态:"])}},unicode_domain_indicator:{tooltip:r=>{const{normalize:n}=r;return n(["此域名包含非 ascii 字符。"])}},update:{update_bugs_gitlab:r=>{const{normalize:n}=r;return n(["Pleroma GitLab"])},update_changelog:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["关于变化的更多细节,请参见 ",e(t("theFullChangelog"))," 。"])},update_changelog_here:r=>{const{normalize:n}=r;return n(["完整的更新日志"])},big_update_title:r=>{const{normalize:n}=r;return n(["请忍耐一下"])},big_update_content:r=>{const{normalize:n}=r;return n(["我们已经有一段时间没有发布发行版,所以事情的外观和感觉可能与你习惯的不一样。"])},update_bugs:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["请在 ",e(t("pleromaGitlab"))," 上报告任何问题和bug,因为我们已经改变了很多,虽然我们进行了彻底的测试,并且自己使用了开发版本,但我们可能错过了一些东西。我们欢迎你对你可能遇到的问题或如何改进Pleroma和Pleroma-FE提出反馈和建议。"])},art_by:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Art by ",e(t("linkToArtist"))])}},lists:{search:r=>{const{normalize:n}=r;return n(["搜索用户"])},create:r=>{const{normalize:n}=r;return n(["创建"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},delete:r=>{const{normalize:n}=r;return n(["删除列表"])},following_only:r=>{const{normalize:n}=r;return n(["限制于正在关注"])},manage_lists:r=>{const{normalize:n}=r;return n(["管理列表"])},manage_members:r=>{const{normalize:n}=r;return n(["管理列表成员"])},add_members:r=>{const{normalize:n}=r;return n(["搜索更多用户"])},remove_from_list:r=>{const{normalize:n}=r;return n(["从列表中移除"])},add_to_list:r=>{const{normalize:n}=r;return n(["添加到列表"])},is_in_list:r=>{const{normalize:n}=r;return n(["已在列表中"])},editing_list:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["正在编辑列表 ",e(t("listTitle"))])},creating_list:r=>{const{normalize:n}=r;return n(["正在创建新的列表"])},update_title:r=>{const{normalize:n}=r;return n(["保存标题"])},really_delete:r=>{const{normalize:n}=r;return n(["真的要删除列表吗?"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["操作列表时出错:",e(t(0))])},lists:r=>{const{normalize:n}=r;return n(["列表"])},new:r=>{const{normalize:n}=r;return n(["新的列表"])},title:r=>{const{normalize:n}=r;return n(["列表标题"])}}}}}]);
+//# sourceMappingURL=zh-json.63e4c9fe0197374a5dac.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js.map b/priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js.map
new file mode 100644
index 000000000..1376bc19a
--- /dev/null
+++ b/priv/static/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/i18n/zh-json.63e4c9fe0197374a5dac.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/zh.json"],"sourcesContent":["export default {\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在处理,稍后会提示您下载文件\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体代理\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可见范围设置\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文字数量限制\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"功能\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 聊天\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传限制\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取用户时发生错误\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"寻找用户\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"应用\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发生了一个错误\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可选\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收起\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忽略\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重试\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请重试\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"载入中…\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"监察员\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash 内容加载失败,请在控制台查看详情。\"])},\n \"scope_in_timeline\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公开\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私讯\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列外\"])}\n },\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滚动至顶\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"发生一个错误:\", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不再显示\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消固定该项\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"固定该项\"])}\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"裁剪图片\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存未经裁剪的图片\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入成功。\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入此文件时出现一个错误。\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用 OAuth 登录\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户名\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录后加入讨论\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证码\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个恢复码\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个双重因素验证码\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素验证\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素恢复\"])}\n },\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要登出\"])},\n \"logout_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认登出\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要登出吗?\"])}\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往前\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往后\"])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭媒体查看器\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关于\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后退\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本站聊天\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注请求\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共时间线\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已知网络\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户搜索\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"偏好设置\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主页时间线\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完成编辑\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开通知(有未读的)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭通知\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定义导航栏\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑固定的项目\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"切换移动设备侧栏\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭搜索栏\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的状态,正在搜索中…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢了你的状态\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的通知\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已阅!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了你的状态\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的通知\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反应\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迁移到了\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要关注你\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得通知时发生错误:\", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票结束了\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交举报\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加投票\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加选项\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选项\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票类型\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单选\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"多选\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票期限\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票于 \", _interpolate(_list(0)), \" 后结束\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票 \", _interpolate(_list(0)), \" 前已结束\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票的选项太少\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 票\"]), _normalize([_interpolate(_named(\"count\")), \" 票\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 人已投票\"]), _normalize([_interpolate(_named(\"count\")), \" 人已投票\"])])}\n },\n \"stickers\": {\n \"add_sticker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加贴纸\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发和喜欢\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的关注者\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的互动\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"举报\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情回应\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布新状态\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"你的帐号没有 \", _interpolate(_list(0)), \"。任何人都可以关注你并浏览你的上锁内容。\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上锁\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记附件为敏感内容\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"纯文本\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题(可选)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被提及的用户能够看到。\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被在消息开始处提及的用户能够看到。\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送中\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容可以被所有人看到\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注你的人才能看到本条内容\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容既不在公共时间线,也不会在所有已知网络上可见\"])}\n },\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信 - 只发送给被提及的用户\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者 - 只有关注了你的人能看到\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共 - 发送到公共时间轴\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不公开 - 不会发送到公共时间轴\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"空的\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体描述\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更新媒体失败,请重试\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能发布没有内容、没有附件的发文\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它远程实例可能不支持编辑并且无法接收您的帖子的最新版本。\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 不支持对提及或投票进行编辑。\"])},\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑状态\"])},\n \"content_type_selection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发帖格式\"])},\n \"scope_notice_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭此提示\"])}\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"电子邮箱\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示名称\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认密码\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邀请码\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击图片获取新的验证码\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:岩仓玲音\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:\\n你好,我是玲音。\\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码不一致\"])},\n \"birthday_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能为空\"])},\n \"birthday_min_age\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"必须在 \", _interpolate(_named(\"date\")), \" 或之前\"])}\n },\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此实例的注册需要手动批准。\\n请让管理员知道您为什么想要注册。\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册理由\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你想从服务器收到什么语言的邮件?\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"介绍(可选)\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"电子邮件(可选)\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日:\"])},\n \"birthday_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日(可选):\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择全部\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App 名称\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您当前的密码来确认您的身份\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置 OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预设 OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认并启用 OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双因素验证\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成新的恢复码\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当您生成新的恢复码时,您旧的恢复码将会失效。\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在接收备份码…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"身份验证方法\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扫一下\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密钥\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要启用双因素验证,请输入您的双因素验证 app 里的数字:\"])}\n }\n },\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像(通知)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导出\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的屏蔽名单到一个 csv 文件\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入屏蔽名单出错\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入成功!需要一点时间来处理。\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"蓝色(回复,关注)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"绿色(转发)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橙色(喜欢)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"红色(取消)\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码的时候出了点问题。\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"成功修改了密码!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠带主题的内容\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"写作\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认新密码\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前头像\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前密码\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您当前的横幅图片\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"数据导入/导出\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认可见范围\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"永久删除你的帐号和所有数据。\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户时发生错误,如果一直删除不了,请联系实例管理员。\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在下面输入您的密码来确认删除账户。\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐的头像图片最小尺寸为 150x150 像素。\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出预置主题\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所有包含以下词汇的内容都会被隐藏,一行一个\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出关注\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将关注导出成 csv 文件\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注时错误\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注已导入!尚需要一些时间来处理。\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前景\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通用\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在对话中隐藏附件\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上隐藏附件\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示被隐藏的用户的帖子\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每个帖子最多能显示的缩略图数量\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例独有的面板\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预载图片\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击一次以打开工作场所不适宜(NSFW)的附件\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏帖子的统计数据(例如:喜欢的次数)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏用户的统计数据(例如:关注者的数量)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏过滤的状态\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入拉黑名单\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入关注\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入预置主题\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复选框\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默认:\", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默认)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面语言\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在您的浏览器中无法使用\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"链接\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您需要手动审核关注请求\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"循环视频\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只循环没有声音的视频(例如:Mastodon 里的“GIF”)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在弹出框内播放视频\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成缩略图时不要裁剪附件\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字及简介\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新密码\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要显示的通知类型\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示富文本格式\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有屏蔽\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有隐藏\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示我所关注的人\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示关注我的人\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“管理员”徽章\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“监察员”徽章\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将不和谐附件和链接预览隐藏,点击才会显示\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth令牌\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"令牌\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刷新令牌\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有效期至\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤消\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在离开页面时暂停时间线推送\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预置\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人背景图\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"横幅图片\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置界面边缘的圆角 (单位:像素)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线中的回复\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有回复\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复/发送给我关注的用户的回复\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自动隐藏新帖子的按钮(移动设备)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存设置时发生错误\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置已保存\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想屏蔽的用户\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想要隐藏的用户\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制可见范围(私信中永远会复制)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使发文可见范围的选项最少化\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新头像\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的个人资料背景\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的横幅图片\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"总是显示主题框\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制主题\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似电子邮件: \\\"re: 主题\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似 mastodon: 与原主题相同\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要复制\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发文状态内容类型\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鼠标悬停时播放GIF\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滚动到顶部时自动推送新内容\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用十六进制代码(#rrggbb)来设置主题颜色。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传照片\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])}\n },\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要停止收到某个指定的用户的通知,请使用隐藏功能。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用 web 推送通知\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留颜色\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留阴影\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留透明度\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留圆角\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留字体\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"保留\\\" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除全部\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除透明度\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载主题\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 已升级,主题会与您记忆中的不太一样。\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自旧版本的 FE。\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自更高版本的 FE。\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为保万无一失,加载了主题快照。您可以试着加载主题数据。\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的版本回滚了。\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的主题引擎随着版本更新升级了。\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在文件中没有主题快照,所以网站外观可能会与原来预想的不同。\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新版本\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"老版本\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保持原状\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"颜色\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"透明度\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"对比度是 \", _interpolate(_named(\"ratio\")), \", 它 \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AA 等级准则(最低)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AAA 等级准则(推荐)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不符合任何辅助功能指南\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大字文本 (18pt+)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常规\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常用颜色\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击”高级“ 标签进行细致的控制\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标,强调,徽章\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"高级\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒或警告背景色\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"徽章背景\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"灰度文字\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发出的\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收到的\"])}\n },\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用的\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"压下的\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调元素\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的菜单项\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的发布内容\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票统计图\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提示框,菜单,弹出框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布内容/用户简介\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"中性\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"警告\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签页\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"底衬\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按下的\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"壁纸\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圆角\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影和照明\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"组件\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"覆盖\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"阴影 #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"模糊\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扩散\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内阴影\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"警告,此阴影设置会总是使用 \", _interpolate(_list(0)), \" ,如果浏览器支持的话。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 不支持参数 \", _interpolate(_list(1)), \" 和关键词 \", _interpolate(_list(2)), \" 。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影的扩散 > 0 会同设置成零一样\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"内阴影会使用 \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在个人资料栏)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在帖子显示栏)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"弹窗与工具提示\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(悬停)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下和悬停)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])}\n },\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"对于阴影,您还可以使用 \", _interpolate(_list(0)), \" 表示法来使用其它颜色插槽。\"])}\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发帖文字\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子中使用等间距文字(富文本)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体名称\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大小 (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字重 (粗体)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自选\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误示例\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"有堆 \", _interpolate(_list(0)), \" 和 \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"monospace 内容\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帮助手册\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"阅读我们的 \", _interpolate(_list(0)), \" ,然而什么也学不到!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这很正常\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我已经浏览了条款及细则\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"一个棒棒的小小链接\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后端版本\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端版本\"])}\n },\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"域名\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邮箱修改成功!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改您的电子邮箱时发生错误。\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改电子邮箱\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注的账号迁移时自动重新关注\"])},\n \"notification_setting_privacy_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在通知推送中隐藏发送者和内容\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐私\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注数\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新邮箱\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上显示表情符号互动\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏推送通知中的发送者与内容信息\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽来自你没有关注的用户的通知\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索需要隐藏的域名\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实时接收帖子和通知\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置背景图吗?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置横幅图片吗?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置头像吗?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置横幅图片\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置个人背景图\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置头像\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注者数量\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加字段\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料元数据\"])}\n },\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调色\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从表情符号选择器插入表情符号时,在表情两侧插入空格\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许通过搜索检索等服务找到此账号\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏与屏蔽\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这是一个机器人账号\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"趣味\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(不推荐使用,试验性,已知会跳过一些帖子)\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天消息\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme 箭头\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"优化时间线渲染\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件导入隐藏名单\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入成功!处理它们将需要一段时间。\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入隐藏名单出错\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的隐藏名单到一个 csv 文件\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导出\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例壁纸\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"与默认设置不同\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多设置\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认标记发文为敏感内容\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示对我本人的回复\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示对我关注的人的回复\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示已隐藏的发文\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏媒体预览\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件的小版本不同,有些设置可能无法加载\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",文件版本过旧,不受支持(最小设置版本 \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",此 PleromaFE(设置版本 \", _interpolate(_named(\"feMajor\")), \")过旧,无法处理\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从文件恢复设置\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置和主题到文件\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置到文件\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置备份\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"反转分栏的顺序\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例留言板\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示高级\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"下载\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及链接\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号备份\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取备份列表出错:\", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建一个新备份\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建了一个新备份。\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号别名\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取别名时出错:\", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除这个别名\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加一个新别名(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名添加好了。\"])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移动账号\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"目标账号(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号移动好了。\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"移动账号时出错:\", _interpolate(_named(\"error\"))])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个设置是捆绑到你的个人资料的,能影响所有会话和客户端\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文章的样子跟感受\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从服务器收邮件的语言\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份还没准备好。\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加新备份时出错:\", _interpolate(_named(\"error\"))])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加别名时出错:\", _interpolate(_named(\"error\"))])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤器\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户资料\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知栏\"])},\n \"backup_running\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"此备份正在进行,已处理 \", _interpolate(_named(\"number\")), \" 条记录。\"]), _normalize([\"此备份正在进行,已处理 \", _interpolate(_named(\"number\")), \" 条记录。\"])])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在导航中显示列表\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词过滤器及其它...\"])},\n \"backup_failed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此备份已失败。\"])},\n \"birthday\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日\"])},\n \"show_birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展示我的生日\"])}\n },\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示我的喜欢列表(人们仍然会收到通知)\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当有足够的空间时,显示第三栏包含\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主要的发文形式和导航\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"分栏\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在用户头像上显示用户弹出窗口\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"延伸导航栏至分栏宽度\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"线性视图\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示 “其它回复” 按钮\"])},\n \"confirm_dialogs_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除状态\"])},\n \"confirm_dialogs_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏用户\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"分栏大小\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"侧栏\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在状态下方\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在状态中\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自动显示新的帖子\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用 websockets(实时更新)\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认显示同主题帖子中的最大层数\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏经过词语过滤的状态\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示已隐藏的同主题帖子\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你所投的投票的结束于\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许在树状视图中进行更灵活的导航\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"以模糊的文字显示当前状态的原型\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"线性样式\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"淡化域名(例如:\", \"@\", \"example.org 中的 \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当你被提及时突出显示提及你\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"弹出式头像点击动作\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"缩放头像\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭弹出窗口\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示 (You)s\"])},\n \"add_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加备用语言\"])},\n \"remove_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"primary_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主要语言:\"])},\n \"fallback_language\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"备用语言 \", _interpolate(_named(\"index\")), \":\"])},\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐私\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话显示样式\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"树状样式\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"树状视图\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要把分栏的顶栏固定在屏幕的顶部\"])},\n \"confirm_dialogs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求确认于\"])},\n \"confirm_dialogs_logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"confirm_dialogs_deny_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝关注请求\"])},\n \"confirm_dialogs_approve_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准关注请求\"])},\n \"confirm_dialogs_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽用户\"])},\n \"confirm_dialogs_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注用户\"])},\n \"confirm_dialogs_repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发状态\"])},\n \"confirm_dialogs_remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除关注者\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏机器人的帖子\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏帖子中的机器人提示\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终显示浮动的新帖子按钮\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示侧栏的滚动条\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全不显示第三栏\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将 \", \"@\", \" 符号显示为图标而不是文本\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示提及链接\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终以简称的形式出现(例如:\", \"@\", \"foo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅远程实例用户以全名的形式出现(例如:\", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终以全名的形式出现(例如:\", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击提及链接时显示用户卡片\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在链接旁边显示用户头像\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在提及内容旁边显示用户头像\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开个人资料\"])}\n },\n \"time\": {\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"还有 \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 之前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"unit\": {\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 时\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 个月\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])}\n }\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取更新时发生错误\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的状态\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这条内容仅关注者可见,或者是私信,因此不能转发\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示新内容\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已是最新\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的状态\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有状态更新\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新载入\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得时间轴时发生错误:\", _interpolate(_list(0))])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"丢失实时连接:CloseEvent code \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已建立实时连接\"])},\n \"quick_view_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"快速视图设置\"])},\n \"quick_filter_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"快速过滤设置\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除状态\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在个人资料置顶\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消在个人资料置顶\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"置顶\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要删除这条状态吗?\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏对话\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话取消隐藏\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏内容\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示内容\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏此部分标题\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示全部标题\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"同主题帖子已被隐藏\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复制状态链接\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态不可取得\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消书签\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\",含有过滤词:\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该状态已被删除\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"外部来源\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(你)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"还有 \", _interpolate(_named(\"number\")), \" 个\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文章有 \", _interpolate(_named(\"number\")), \" 个附件\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折起附件\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有附件\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览描述(打开附件能看完整描述)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏附件\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除附件\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"停止 Flash 播放器\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件左移\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开图库\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏这个同主题帖子\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示这个同主题帖子\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个同主题帖子的剩余部分(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个状态下的别的 \", _interpolate(_named(\"numReplies\")), \" 个回复\"])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示完整对话(还有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"回复(另外 +\", _interpolate(_named(\"numReplies\")), \" 个):\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件右移\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示这个同主题帖子下的所有东西(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态,最大深度 \", _interpolate(_named(\"depth\")), \")\"])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示这个状态的回复\"])},\n \"repeat_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要转发这条状态吗?\"])},\n \"repeat_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认转发\"])},\n \"repeat_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"repeat_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要转发\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑状态\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(最后编辑于 \", _interpolate(_named(\"time\")), \")\"])},\n \"delete_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认删除\"])},\n \"delete_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"delete_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在媒体模式中显示\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态历史\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"核准\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已屏蔽!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求已发送!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求中…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注者\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你!\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"就是你!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每天\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"跨站关注\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"报告\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"订阅\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"退订\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消屏蔽\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消屏蔽…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在屏蔽…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏中…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仲裁\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予管理权限\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销管理权限\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予监察员权限\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销监察员权限\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"激活账号\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭账号\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账号\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记所有的帖子都是 - 工作场合不适\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从帖子里删除媒体文件\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为不公开\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为只有关注者可看\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁止从远程实例关注用户\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全禁止关注用户\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从联合实例中禁止用户帖子\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除用户\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这将永久删除该账户的数据并停用该账户。你完全确定吗?\"])}\n },\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示转发\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏转发\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"消息\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"机器人\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"侧边条纹\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"条纹背景\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单一颜色背景\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不突出显示\"])}\n },\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑个人资料\"])},\n \"approve_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认批准\"])},\n \"approve_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准\"])},\n \"block_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"block_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要屏蔽\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已停用\"])},\n \"deny_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认拒绝\"])},\n \"deny_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"deny_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要拒绝\"])},\n \"deny_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您是否要拒绝 \", _interpolate(_named(\"user\")), \" 的关注请求?\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消请求\"])},\n \"unfollow_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认取消关注\"])},\n \"unfollow_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要取消关注 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"unfollow_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注\"])},\n \"unfollow_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要取消关注\"])},\n \"mute_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认隐藏\"])},\n \"mute_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"mute_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要隐藏\"])},\n \"mute_duration_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"让这个用户隐藏(0表示无限期):\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除关注者\"])},\n \"remove_follower_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认移除关注者\"])},\n \"remove_follower_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留\"])},\n \"remove_follower_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要将 \", _interpolate(_named(\"user\")), \" 从您的关注者里移除吗?\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"生于 \", _interpolate(_named(\"birthday\"))])},\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备注\"])},\n \"approve_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要批准\"])},\n \"approve_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您是否要批准 \", _interpolate(_named(\"user\")), \" 的关注请求?\"])},\n \"block_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认屏蔽\"])},\n \"block_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要屏蔽 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"mute_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要隐藏 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"remove_follower_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(空)\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑备注\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"应用\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户时间线\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,此个人资料不存在。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,载入个人资料时出错。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"报告 \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它信息\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个账号来自另一个服务器。是否同时发送一份报告副本到那里?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"转发 \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当处理您的请求时,发生了一个错误。\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传媒体\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝关注请求\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加互动\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受关注请求\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开或折叠通知以显示帖子全文\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开或折叠通知以显示已隐藏的内容\"])},\n \"autocomplete_available\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"共有 \", _interpolate(_named(\"number\")), \" 个结果可用。使用向上和向下键浏览它们。\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传不成功。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文件太大了 [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迟些再试\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"上传错误:\", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"话题标签\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有搜索结果\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多结果\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更多结果\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忘记密码了?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置密码\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您的电邮地址或者用户名\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"检查您的邮箱,会有一个链接用于重置密码。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回到首页\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您达到了尝试次数的上限,请稍后再试。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码重置已被禁用。请联系您的实例管理员。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码才能登陆。\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未找到。\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"远程用户解析器\"])}\n },\n \"emoji\": {\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择器保持打开\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"贴纸\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode 表情符号\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定义表情符号\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插入表情符号\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索表情符号\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情符号\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"加载所有表情符号(共 \", _interpolate(_named(\"emojiAmount\")), \" 个)\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"最先加载的 \", _interpolate(_named(\"saneAmount\")), \" 表情符号,加载全部表情符号可能会带来性能问题。\"])},\n \"unicode_groups\": {\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旗帜\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"饮食\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"物件\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人和身体\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符号\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旅行和地点\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"活动\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"动物和自然\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情与情感\"])}\n },\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"地区指示符 \", _interpolate(_named(\"letter\"))])},\n \"unpacked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拆分的表情符号\"])}\n },\n \"about\": {\n \"mrf\": {\n \"simple\": {\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例向以下实例仅发送公开的帖子:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隔离\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例不会接收来自下列实例的消息:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例只接收来自下列实例的消息:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于特定实例的策略\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除媒体\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例将来自以下实例的媒体内容强制设置为敏感内容:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制设置媒体为敏感内容\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例移除来自以下实例的媒体内容:\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该实例在从“已知网络”时间线上移除了下列实例:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“已知网络”时间线上移除\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"理由\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF 策略会影响本实例的互通行为。以下策略已启用:\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已启用的 MRF 策略\"])},\n \"keyword\": {\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“全部已知网络”时间线上移除\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关键词策略\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"替换\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"联邦互通\"])}\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理人员\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消隐藏…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"今天\"])}\n },\n \"file_type\": {\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图片\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"视频\"])},\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"音频\"])}\n },\n \"chats\": {\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您还没有任何聊天记录。开始聊天吧!\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送消息时出了点问题。\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载聊天时出了点问题。\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要删除此消息吗?\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无法发布空消息\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新聊天\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"发消息给 \", _interpolate(_named(\"nickname\"))])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你:\"])}\n },\n \"announcements\": {\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标为已读\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布公告\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在这里输入公告内容...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"错误:\", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"起始时间: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"终止时间: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这是全天的事件\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"发表于 \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"开始于 \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"结束于 \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个公告不活跃\"])}\n },\n \"report\": {\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"被举报者:\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已关闭\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已解决\"])},\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"举报者:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"开启\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已举报的状态:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备注:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态:\"])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此域名包含非 ascii 字符。\"])}\n },\n \"update\": {\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"关于变化的更多细节,请参见 \", _interpolate(_named(\"theFullChangelog\")), \" 。\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完整的更新日志\"])},\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请忍耐一下\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我们已经有一段时间没有发布发行版,所以事情的外观和感觉可能与你习惯的不一样。\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"请在 \", _interpolate(_named(\"pleromaGitlab\")), \" 上报告任何问题和bug,因为我们已经改变了很多,虽然我们进行了彻底的测试,并且自己使用了开发版本,但我们可能错过了一些东西。我们欢迎你对你可能遇到的问题或如何改进Pleroma和Pleroma-FE提出反馈和建议。\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Art by \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"lists\": {\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索用户\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除列表\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制于正在关注\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理列表\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理列表成员\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索更多用户\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从列表中移除\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加到列表\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已在列表中\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"正在编辑列表 \", _interpolate(_named(\"listTitle\"))])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在创建新的列表\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存标题\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"真的要删除列表吗?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"操作列表时出错:\", _interpolate(_list(0))])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的列表\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表标题\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js b/priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js
deleted file mode 100644
index bb35c1ef8..000000000
--- a/priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[5929],{4425:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={chat:{title:r=>{const{normalize:n}=r;return n(["聊天"])}},exporter:{export:r=>{const{normalize:n}=r;return n(["导出"])},processing:r=>{const{normalize:n}=r;return n(["正在处理,稍后会提示您下载文件"])}},features_panel:{chat:r=>{const{normalize:n}=r;return n(["聊天"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},media_proxy:r=>{const{normalize:n}=r;return n(["媒体代理"])},scope_options:r=>{const{normalize:n}=r;return n(["可见范围设置"])},text_limit:r=>{const{normalize:n}=r;return n(["文字数量限制"])},title:r=>{const{normalize:n}=r;return n(["功能"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Pleroma 聊天"])},upload_limit:r=>{const{normalize:n}=r;return n(["上传限制"])},shout:r=>{const{normalize:n}=r;return n(["留言板"])}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["获取用户时发生错误"])},find_user:r=>{const{normalize:n}=r;return n(["寻找用户"])}},general:{apply:r=>{const{normalize:n}=r;return n(["应用"])},submit:r=>{const{normalize:n}=r;return n(["提交"])},more:r=>{const{normalize:n}=r;return n(["更多"])},generic_error:r=>{const{normalize:n}=r;return n(["发生了一个错误"])},optional:r=>{const{normalize:n}=r;return n(["可选"])},show_more:r=>{const{normalize:n}=r;return n(["展开"])},show_less:r=>{const{normalize:n}=r;return n(["收起"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])},disable:r=>{const{normalize:n}=r;return n(["禁用"])},enable:r=>{const{normalize:n}=r;return n(["启用"])},confirm:r=>{const{normalize:n}=r;return n(["确认"])},verify:r=>{const{normalize:n}=r;return n(["验证"])},dismiss:r=>{const{normalize:n}=r;return n(["忽略"])},peek:r=>{const{normalize:n}=r;return n(["预览"])},close:r=>{const{normalize:n}=r;return n(["关闭"])},retry:r=>{const{normalize:n}=r;return n(["重试"])},error_retry:r=>{const{normalize:n}=r;return n(["请重试"])},loading:r=>{const{normalize:n}=r;return n(["载入中…"])},role:{moderator:r=>{const{normalize:n}=r;return n(["监察员"])},admin:r=>{const{normalize:n}=r;return n(["管理员"])}},flash_content:r=>{const{normalize:n}=r;return n(["点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。"])},flash_security:r=>{const{normalize:n}=r;return n(["注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。"])},flash_fail:r=>{const{normalize:n}=r;return n(["Flash 内容加载失败,请在控制台查看详情。"])},scope_in_timeline:{public:r=>{const{normalize:n}=r;return n(["公开"])},direct:r=>{const{normalize:n}=r;return n(["私讯"])},private:r=>{const{normalize:n}=r;return n(["仅关注者"])},unlisted:r=>{const{normalize:n}=r;return n(["列外"])}}},image_cropper:{crop_picture:r=>{const{normalize:n}=r;return n(["裁剪图片"])},save:r=>{const{normalize:n}=r;return n(["保存"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["保存未经裁剪的图片"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])}},importer:{submit:r=>{const{normalize:n}=r;return n(["提交"])},success:r=>{const{normalize:n}=r;return n(["导入成功。"])},error:r=>{const{normalize:n}=r;return n(["导入此文件时出现一个错误。"])}},login:{login:r=>{const{normalize:n}=r;return n(["登录"])},description:r=>{const{normalize:n}=r;return n(["用 OAuth 登录"])},logout:r=>{const{normalize:n}=r;return n(["登出"])},password:r=>{const{normalize:n}=r;return n(["密码"])},placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},register:r=>{const{normalize:n}=r;return n(["注册"])},username:r=>{const{normalize:n}=r;return n(["用户名"])},hint:r=>{const{normalize:n}=r;return n(["登录后加入讨论"])},authentication_code:r=>{const{normalize:n}=r;return n(["验证码"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["输入一个恢复码"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["输入一个双重因素验证码"])},recovery_code:r=>{const{normalize:n}=r;return n(["恢复码"])},heading:{totp:r=>{const{normalize:n}=r;return n(["双重因素验证"])},recovery:r=>{const{normalize:n}=r;return n(["双重因素恢复"])}}},media_modal:{previous:r=>{const{normalize:n}=r;return n(["往前"])},next:r=>{const{normalize:n}=r;return n(["往后"])},hide:r=>{const{normalize:n}=r;return n(["关闭媒体查看器"])},counter:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("current"))," / ",e(t("total"))])}},nav:{about:r=>{const{normalize:n}=r;return n(["关于"])},back:r=>{const{normalize:n}=r;return n(["后退"])},chat:r=>{const{normalize:n}=r;return n(["本站聊天"])},friend_requests:r=>{const{normalize:n}=r;return n(["关注请求"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},interactions:r=>{const{normalize:n}=r;return n(["互动"])},dms:r=>{const{normalize:n}=r;return n(["私信"])},public_tl:r=>{const{normalize:n}=r;return n(["公共时间线"])},timeline:r=>{const{normalize:n}=r;return n(["时间线"])},twkn:r=>{const{normalize:n}=r;return n(["已知网络"])},user_search:r=>{const{normalize:n}=r;return n(["用户搜索"])},search:r=>{const{normalize:n}=r;return n(["搜索"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},preferences:r=>{const{normalize:n}=r;return n(["偏好设置"])},administration:r=>{const{normalize:n}=r;return n(["管理员"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},timelines:r=>{const{normalize:n}=r;return n(["时间线"])},bookmarks:r=>{const{normalize:n}=r;return n(["书签"])},home_timeline:r=>{const{normalize:n}=r;return n(["主页时间线"])}},notifications:{broken_favorite:r=>{const{normalize:n}=r;return n(["未知的状态,正在搜索中…"])},favorited_you:r=>{const{normalize:n}=r;return n(["喜欢了你的状态"])},followed_you:r=>{const{normalize:n}=r;return n(["关注了你"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的通知"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},read:r=>{const{normalize:n}=r;return n(["已阅!"])},repeated_you:r=>{const{normalize:n}=r;return n(["转发了你的状态"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["没有更多的通知"])},reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["作出了 ",e(t(0))," 的反应"])},migrated_to:r=>{const{normalize:n}=r;return n(["迁移到了"])},follow_request:r=>{const{normalize:n}=r;return n(["想要关注你"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得通知时发生错误:",e(t(0))])},poll_ended:r=>{const{normalize:n}=r;return n(["投票结束了"])}},polls:{add_poll:r=>{const{normalize:n}=r;return n(["增加投票"])},add_option:r=>{const{normalize:n}=r;return n(["增加选项"])},option:r=>{const{normalize:n}=r;return n(["选项"])},votes:r=>{const{normalize:n}=r;return n(["投票"])},vote:r=>{const{normalize:n}=r;return n(["投票"])},type:r=>{const{normalize:n}=r;return n(["投票类型"])},single_choice:r=>{const{normalize:n}=r;return n(["单选"])},multiple_choices:r=>{const{normalize:n}=r;return n(["多选"])},expiry:r=>{const{normalize:n}=r;return n(["投票期限"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票于 ",e(t(0))," 后结束"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票 ",e(t(0))," 前已结束"])},not_enough_options:r=>{const{normalize:n}=r;return n(["投票的选项太少"])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 票"]),n([e(t("count"))," 票"])])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 人已投票"]),n([e(t("count"))," 人已投票"])])}},stickers:{add_sticker:r=>{const{normalize:n}=r;return n(["添加贴纸"])}},interactions:{favs_repeats:r=>{const{normalize:n}=r;return n(["转发和喜欢"])},follows:r=>{const{normalize:n}=r;return n(["新的关注者"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的互动"])},moves:r=>{const{normalize:n}=r;return n(["用户迁移"])}},post_status:{new_status:r=>{const{normalize:n}=r;return n(["发布新状态"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["你的帐号没有 ",e(t(0)),"。任何人都可以关注你并浏览你的上锁内容。"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["上锁"])},attachments_sensitive:r=>{const{normalize:n}=r;return n(["标记附件为敏感内容"])},content_type:{"text/plain":r=>{const{normalize:n}=r;return n(["纯文本"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])}},content_warning:r=>{const{normalize:n}=r;return n(["主题(可选)"])},default:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["本条内容只有被提及的用户能够看到。"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["本条内容只有被在消息开始处提及的用户能够看到。"])},posting:r=>{const{normalize:n}=r;return n(["发送中"])},scope_notice:{public:r=>{const{normalize:n}=r;return n(["本条内容可以被所有人看到"])},private:r=>{const{normalize:n}=r;return n(["关注你的人才能看到本条内容"])},unlisted:r=>{const{normalize:n}=r;return n(["本条内容既不在公共时间线,也不会在所有已知网络上可见"])}},scope:{direct:r=>{const{normalize:n}=r;return n(["私信 - 只发送给被提及的用户"])},private:r=>{const{normalize:n}=r;return n(["仅关注者 - 只有关注了你的人能看到"])},public:r=>{const{normalize:n}=r;return n(["公共 - 发送到公共时间轴"])},unlisted:r=>{const{normalize:n}=r;return n(["不公开 - 不会发送到公共时间轴"])}},preview_empty:r=>{const{normalize:n}=r;return n(["空的"])},preview:r=>{const{normalize:n}=r;return n(["预览"])},media_description:r=>{const{normalize:n}=r;return n(["媒体描述"])},media_description_error:r=>{const{normalize:n}=r;return n(["更新媒体失败,请重试"])},empty_status_error:r=>{const{normalize:n}=r;return n(["不能发布没有内容、没有附件的发文"])},post:r=>{const{normalize:n}=r;return n(["发送"])}},registration:{bio:r=>{const{normalize:n}=r;return n(["简介"])},email:r=>{const{normalize:n}=r;return n(["电子邮箱"])},fullname:r=>{const{normalize:n}=r;return n(["显示名称"])},password_confirm:r=>{const{normalize:n}=r;return n(["确认密码"])},registration:r=>{const{normalize:n}=r;return n(["注册"])},token:r=>{const{normalize:n}=r;return n(["邀请码"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},new_captcha:r=>{const{normalize:n}=r;return n(["点击图片获取新的验证码"])},username_placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["例如:岩仓玲音"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["例如:\n你好,我是玲音。\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。"])},validations:{username_required:r=>{const{normalize:n}=r;return n(["不能留空"])},fullname_required:r=>{const{normalize:n}=r;return n(["不能留空"])},email_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_match:r=>{const{normalize:n}=r;return n(["密码不一致"])}},reason_placeholder:r=>{const{normalize:n}=r;return n(["此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。"])},reason:r=>{const{normalize:n}=r;return n(["注册理由"])},register:r=>{const{normalize:n}=r;return n(["注册"])},email_language:r=>{const{normalize:n}=r;return n(["你想从服务器收到什么语言的邮件?"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["选择全部"])}},settings:{app_name:r=>{const{normalize:n}=r;return n(["App 名称"])},security:r=>{const{normalize:n}=r;return n(["安全"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["输入您当前的密码来确认您的身份"])},mfa:{otp:r=>{const{normalize:n}=r;return n(["OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["设置 OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["预设 OTP"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["确认并启用 OTP"])},title:r=>{const{normalize:n}=r;return n(["双因素验证"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["生成新的恢复码"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["当您生成新的恢复码时,您旧的恢复码将会失效。"])},recovery_codes:r=>{const{normalize:n}=r;return n(["恢复码。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["正在接收备份码…"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。"])},authentication_methods:r=>{const{normalize:n}=r;return n(["身份验证方法"])},scan:{title:r=>{const{normalize:n}=r;return n(["扫一下"])},desc:r=>{const{normalize:n}=r;return n(["使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:"])},secret_code:r=>{const{normalize:n}=r;return n(["密钥"])}},verify:{desc:r=>{const{normalize:n}=r;return n(["要启用双因素验证,请输入您的双因素验证 app 里的数字:"])}}},attachmentRadius:r=>{const{normalize:n}=r;return n(["附件"])},attachments:r=>{const{normalize:n}=r;return n(["附件"])},avatar:r=>{const{normalize:n}=r;return n(["头像"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["头像(通知)"])},avatarRadius:r=>{const{normalize:n}=r;return n(["头像"])},background:r=>{const{normalize:n}=r;return n(["背景"])},bio:r=>{const{normalize:n}=r;return n(["简介"])},block_export:r=>{const{normalize:n}=r;return n(["屏蔽名单导出"])},block_export_button:r=>{const{normalize:n}=r;return n(["导出你的屏蔽名单到一个 csv 文件"])},block_import:r=>{const{normalize:n}=r;return n(["屏蔽名单导入"])},block_import_error:r=>{const{normalize:n}=r;return n(["导入屏蔽名单出错"])},blocks_imported:r=>{const{normalize:n}=r;return n(["屏蔽名单导入成功!需要一点时间来处理。"])},blocks_tab:r=>{const{normalize:n}=r;return n(["屏蔽"])},btnRadius:r=>{const{normalize:n}=r;return n(["按钮"])},cBlue:r=>{const{normalize:n}=r;return n(["蓝色(回复,关注)"])},cGreen:r=>{const{normalize:n}=r;return n(["绿色(转发)"])},cOrange:r=>{const{normalize:n}=r;return n(["橙色(喜欢)"])},cRed:r=>{const{normalize:n}=r;return n(["红色(取消)"])},change_password:r=>{const{normalize:n}=r;return n(["修改密码"])},change_password_error:r=>{const{normalize:n}=r;return n(["修改密码的时候出了点问题。"])},changed_password:r=>{const{normalize:n}=r;return n(["成功修改了密码!"])},collapse_subject:r=>{const{normalize:n}=r;return n(["折叠带主题的内容"])},composing:r=>{const{normalize:n}=r;return n(["写作"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["确认新密码"])},current_avatar:r=>{const{normalize:n}=r;return n(["当前头像"])},current_password:r=>{const{normalize:n}=r;return n(["当前密码"])},current_profile_banner:r=>{const{normalize:n}=r;return n(["您当前的横幅图片"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["数据导入/导出"])},default_vis:r=>{const{normalize:n}=r;return n(["默认可见范围"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账户"])},delete_account_description:r=>{const{normalize:n}=r;return n(["永久删除你的帐号和所有数据。"])},delete_account_error:r=>{const{normalize:n}=r;return n(["删除账户时发生错误,如果一直删除不了,请联系实例管理员。"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["在下面输入您的密码来确认删除账户。"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["推荐的头像图片最小尺寸为 150x150 像素。"])},export_theme:r=>{const{normalize:n}=r;return n(["导出预置主题"])},filtering:r=>{const{normalize:n}=r;return n(["过滤器"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["所有包含以下词汇的内容都会被隐藏,一行一个"])},follow_export:r=>{const{normalize:n}=r;return n(["导出关注"])},follow_export_button:r=>{const{normalize:n}=r;return n(["将关注导出成 csv 文件"])},follow_import:r=>{const{normalize:n}=r;return n(["导入关注"])},follow_import_error:r=>{const{normalize:n}=r;return n(["导入关注时错误"])},follows_imported:r=>{const{normalize:n}=r;return n(["关注已导入!尚需要一些时间来处理。"])},foreground:r=>{const{normalize:n}=r;return n(["前景"])},general:r=>{const{normalize:n}=r;return n(["通用"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["在对话中隐藏附件"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["在时间线上隐藏附件"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["不显示被隐藏的用户的帖子"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["每个帖子最多能显示的缩略图数量"])},hide_isp:r=>{const{normalize:n}=r;return n(["隐藏实例独有的面板"])},preload_images:r=>{const{normalize:n}=r;return n(["预载图片"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["点击一次以打开工作场所不适宜(NSFW)的附件"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["隐藏帖子的统计数据(例如:喜欢的次数)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["隐藏用户的统计数据(例如:关注者的数量)"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["隐藏过滤的状态"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入拉黑名单"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入关注"])},import_theme:r=>{const{normalize:n}=r;return n(["导入预置主题"])},inputRadius:r=>{const{normalize:n}=r;return n(["输入框"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["复选框"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默认:",e(t("value")),")"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(默认)"])},interface:r=>{const{normalize:n}=r;return n(["界面"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["界面语言"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。"])},limited_availability:r=>{const{normalize:n}=r;return n(["在您的浏览器中无法使用"])},links:r=>{const{normalize:n}=r;return n(["链接"])},lock_account_description:r=>{const{normalize:n}=r;return n(["您需要手动审核关注请求"])},loop_video:r=>{const{normalize:n}=r;return n(["循环视频"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["只循环没有声音的视频(例如:Mastodon 里的“GIF”)"])},mutes_tab:r=>{const{normalize:n}=r;return n(["隐藏"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["在弹出框内播放视频"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["生成缩略图时不要裁剪附件"])},name:r=>{const{normalize:n}=r;return n(["名字"])},name_bio:r=>{const{normalize:n}=r;return n(["名字及简介"])},new_password:r=>{const{normalize:n}=r;return n(["新密码"])},notification_visibility:r=>{const{normalize:n}=r;return n(["要显示的通知类型"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["关注"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["喜欢"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["提及"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["转发"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["不显示富文本格式"])},no_blocks:r=>{const{normalize:n}=r;return n(["没有屏蔽"])},no_mutes:r=>{const{normalize:n}=r;return n(["没有隐藏"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["不要显示我所关注的人"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["不要显示关注我的人"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“管理员”徽章"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“监察员”徽章"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["将不和谐附件和链接预览隐藏,点击才会显示"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth令牌"])},token:r=>{const{normalize:n}=r;return n(["令牌"])},refresh_token:r=>{const{normalize:n}=r;return n(["刷新令牌"])},valid_until:r=>{const{normalize:n}=r;return n(["有效期至"])},revoke_token:r=>{const{normalize:n}=r;return n(["撤消"])},panelRadius:r=>{const{normalize:n}=r;return n(["面板"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["在离开页面时暂停时间线推送"])},presets:r=>{const{normalize:n}=r;return n(["预置"])},profile_background:r=>{const{normalize:n}=r;return n(["个人背景图"])},profile_banner:r=>{const{normalize:n}=r;return n(["横幅图片"])},profile_tab:r=>{const{normalize:n}=r;return n(["个人资料"])},radii_help:r=>{const{normalize:n}=r;return n(["设置界面边缘的圆角 (单位:像素)"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["时间线中的回复"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["显示所有回复"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复/发送给我关注的用户的回复"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["自动隐藏新帖子的按钮(移动设备)"])},saving_err:r=>{const{normalize:n}=r;return n(["保存设置时发生错误"])},saving_ok:r=>{const{normalize:n}=r;return n(["设置已保存"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["搜索你想屏蔽的用户"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["搜索你想要隐藏的用户"])},security_tab:r=>{const{normalize:n}=r;return n(["安全"])},scope_copy:r=>{const{normalize:n}=r;return n(["回复时复制可见范围(私信中永远会复制)"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["使发文可见范围的选项最少化"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["设置新头像"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["设置新的个人资料背景"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["设置新的横幅图片"])},settings:r=>{const{normalize:n}=r;return n(["设置"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["总是显示主题框"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["回复时复制主题"])},subject_line_email:r=>{const{normalize:n}=r;return n(['类似电子邮件: "re: 主题"'])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["类似 mastodon: 与原主题相同"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["不要复制"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["发文状态内容类型"])},stop_gifs:r=>{const{normalize:n}=r;return n(["鼠标悬停时播放GIF"])},streaming:r=>{const{normalize:n}=r;return n(["滚动到顶部时自动推送新内容"])},text:r=>{const{normalize:n}=r;return n(["文本"])},theme:r=>{const{normalize:n}=r;return n(["主题"])},theme_help:r=>{const{normalize:n}=r;return n(["使用十六进制代码(#rrggbb)来设置主题颜色。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["提醒"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["上传照片"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},values:{false:r=>{const{normalize:n}=r;return n(["否"])},true:r=>{const{normalize:n}=r;return n(["是"])}},notifications:r=>{const{normalize:n}=r;return n(["通知"])},notification_mutes:r=>{const{normalize:n}=r;return n(["要停止收到某个指定的用户的通知,请使用隐藏功能。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["启用 web 推送通知"])},style:{switcher:{keep_color:r=>{const{normalize:n}=r;return n(["保留颜色"])},keep_shadows:r=>{const{normalize:n}=r;return n(["保留阴影"])},keep_opacity:r=>{const{normalize:n}=r;return n(["保留透明度"])},keep_roundness:r=>{const{normalize:n}=r;return n(["保留圆角"])},keep_fonts:r=>{const{normalize:n}=r;return n(["保留字体"])},save_load_hint:r=>{const{normalize:n}=r;return n(['"保留" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。'])},reset:r=>{const{normalize:n}=r;return n(["重置"])},clear_all:r=>{const{normalize:n}=r;return n(["清除全部"])},clear_opacity:r=>{const{normalize:n}=r;return n(["清除透明度"])},load_theme:r=>{const{normalize:n}=r;return n(["加载主题"])},help:{upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE 已升级,主题会与您记忆中的不太一样。"])},older_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自旧版本的 FE。"])},future_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自更高版本的 FE。"])},v2_imported:r=>{const{normalize:n}=r;return n(["您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。"])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。"])},migration_napshot_gone:r=>{const{normalize:n}=r;return n(["不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。"])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["为保万无一失,加载了主题快照。您可以试着加载主题数据。"])},fe_downgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的版本回滚了。"])},fe_upgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的主题引擎随着版本更新升级了。"])},snapshot_missing:r=>{const{normalize:n}=r;return n(["在文件中没有主题快照,所以网站外观可能会与原来预想的不同。"])},snapshot_present:r=>{const{normalize:n}=r;return n(["主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。"])}},use_source:r=>{const{normalize:n}=r;return n(["新版本"])},use_snapshot:r=>{const{normalize:n}=r;return n(["老版本"])},keep_as_is:r=>{const{normalize:n}=r;return n(["保持原状"])}},common:{color:r=>{const{normalize:n}=r;return n(["颜色"])},opacity:r=>{const{normalize:n}=r;return n(["透明度"])},contrast:{hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["对比度是 ",e(t("ratio")),", 它 ",e(t("level"))," ",e(t("context"))])},level:{aa:r=>{const{normalize:n}=r;return n(["符合 AA 等级准则(最低)"])},aaa:r=>{const{normalize:n}=r;return n(["符合 AAA 等级准则(推荐)"])},bad:r=>{const{normalize:n}=r;return n(["不符合任何辅助功能指南"])}},context:{"18pt":r=>{const{normalize:n}=r;return n(["大字文本 (18pt+)"])},text:r=>{const{normalize:n}=r;return n(["文本"])}}}},common_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["常规"])},main:r=>{const{normalize:n}=r;return n(["常用颜色"])},foreground_hint:r=>{const{normalize:n}=r;return n(["点击”高级“ 标签进行细致的控制"])},rgbo:r=>{const{normalize:n}=r;return n(["图标,强调,徽章"])}},advanced_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["高级"])},alert:r=>{const{normalize:n}=r;return n(["提醒或警告背景色"])},alert_error:r=>{const{normalize:n}=r;return n(["错误"])},badge:r=>{const{normalize:n}=r;return n(["徽章背景"])},badge_notification:r=>{const{normalize:n}=r;return n(["通知"])},panel_header:r=>{const{normalize:n}=r;return n(["面板标题"])},top_bar:r=>{const{normalize:n}=r;return n(["顶栏"])},borders:r=>{const{normalize:n}=r;return n(["边框"])},buttons:r=>{const{normalize:n}=r;return n(["按钮"])},inputs:r=>{const{normalize:n}=r;return n(["输入框"])},faint_text:r=>{const{normalize:n}=r;return n(["灰度文字"])},chat:{border:r=>{const{normalize:n}=r;return n(["边框"])},outgoing:r=>{const{normalize:n}=r;return n(["发出的"])},incoming:r=>{const{normalize:n}=r;return n(["收到的"])}},disabled:r=>{const{normalize:n}=r;return n(["禁用的"])},pressed:r=>{const{normalize:n}=r;return n(["压下的"])},highlight:r=>{const{normalize:n}=r;return n(["强调元素"])},selectedMenu:r=>{const{normalize:n}=r;return n(["选中的菜单项"])},selectedPost:r=>{const{normalize:n}=r;return n(["选中的发布内容"])},icons:r=>{const{normalize:n}=r;return n(["图标"])},poll:r=>{const{normalize:n}=r;return n(["投票统计图"])},popover:r=>{const{normalize:n}=r;return n(["提示框,菜单,弹出框"])},post:r=>{const{normalize:n}=r;return n(["发布内容/用户简介"])},alert_neutral:r=>{const{normalize:n}=r;return n(["中性"])},alert_warning:r=>{const{normalize:n}=r;return n(["警告"])},tabs:r=>{const{normalize:n}=r;return n(["标签页"])},underlay:r=>{const{normalize:n}=r;return n(["底衬"])},toggled:r=>{const{normalize:n}=r;return n(["按下的"])},wallpaper:r=>{const{normalize:n}=r;return n(["壁纸"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["圆角"])}},shadows:{_tab_label:r=>{const{normalize:n}=r;return n(["阴影和照明"])},component:r=>{const{normalize:n}=r;return n(["组件"])},override:r=>{const{normalize:n}=r;return n(["覆盖"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["阴影 #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["模糊"])},spread:r=>{const{normalize:n}=r;return n(["扩散"])},inset:r=>{const{normalize:n}=r;return n(["内阴影"])},hint:r=>{const{normalize:n}=r;return n(["对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["警告,此阴影设置会总是使用 ",e(t(0))," ,如果浏览器支持的话。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 不支持参数 ",e(t(1))," 和关键词 ",e(t(2))," 。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。"])},spread_zero:r=>{const{normalize:n}=r;return n(["阴影的扩散 > 0 会同设置成零一样"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["内阴影会使用 ",e(t(0))])}},components:{panel:r=>{const{normalize:n}=r;return n(["面板"])},panelHeader:r=>{const{normalize:n}=r;return n(["面板标题"])},topBar:r=>{const{normalize:n}=r;return n(["顶栏"])},avatar:r=>{const{normalize:n}=r;return n(["用户头像(在个人资料栏)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["用户头像(在帖子显示栏)"])},popup:r=>{const{normalize:n}=r;return n(["弹窗与工具提示"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},buttonHover:r=>{const{normalize:n}=r;return n(["按钮(悬停)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["按钮(压下)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["按钮(压下和悬停)"])},input:r=>{const{normalize:n}=r;return n(["输入框"])}},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["对于阴影,您还可以使用 ",e(t(0))," 表示法来使用其它颜色插槽。"])}},fonts:{_tab_label:r=>{const{normalize:n}=r;return n(["字体"])},help:r=>{const{normalize:n}=r;return n(["为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。"])},components:{interface:r=>{const{normalize:n}=r;return n(["界面"])},input:r=>{const{normalize:n}=r;return n(["输入框"])},post:r=>{const{normalize:n}=r;return n(["发帖文字"])},postCode:r=>{const{normalize:n}=r;return n(["帖子中使用等间距文字(富文本)"])}},family:r=>{const{normalize:n}=r;return n(["字体名称"])},size:r=>{const{normalize:n}=r;return n(["大小 (in px)"])},weight:r=>{const{normalize:n}=r;return n(["字重 (粗体)"])},custom:r=>{const{normalize:n}=r;return n(["自选"])}},preview:{header:r=>{const{normalize:n}=r;return n(["预览"])},content:r=>{const{normalize:n}=r;return n(["内容"])},error:r=>{const{normalize:n}=r;return n(["错误示例"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["有堆 ",e(t(0))," 和 ",e(t(1))])},mono:r=>{const{normalize:n}=r;return n(["monospace 内容"])},input:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},faint_link:r=>{const{normalize:n}=r;return n(["帮助手册"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["阅读我们的 ",e(t(0))," ,然而什么也学不到!"])},header_faint:r=>{const{normalize:n}=r;return n(["这很正常"])},checkbox:r=>{const{normalize:n}=r;return n(["我已经浏览了条款及细则"])},link:r=>{const{normalize:n}=r;return n(["一个棒棒的小小链接"])}}},version:{title:r=>{const{normalize:n}=r;return n(["版本"])},backend_version:r=>{const{normalize:n}=r;return n(["后端版本"])},frontend_version:r=>{const{normalize:n}=r;return n(["前端版本"])}},notification_setting_filters:r=>{const{normalize:n}=r;return n(["过滤器"])},domain_mutes:r=>{const{normalize:n}=r;return n(["域名"])},changed_email:r=>{const{normalize:n}=r;return n(["邮箱修改成功!"])},change_email_error:r=>{const{normalize:n}=r;return n(["修改您的电子邮箱时发生错误。"])},change_email:r=>{const{normalize:n}=r;return n(["修改电子邮箱"])},allow_following_move:r=>{const{normalize:n}=r;return n(["正在关注的账号迁移时自动重新关注"])},notification_setting_privacy_option:r=>{const{normalize:n}=r;return n(["在通知推送中隐藏发送者和内容"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["隐私"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["不显示关注数"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["互动"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["用户迁移"])},new_email:r=>{const{normalize:n}=r;return n(["新邮箱"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["在时间线上显示表情符号互动"])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["隐藏推送通知中的发送者与内容信息"])},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["屏蔽来自你没有关注的用户的通知"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["搜索需要隐藏的域名"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["实时接收帖子和通知"])},user_mutes:r=>{const{normalize:n}=r;return n(["用户"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置背景图吗?"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置横幅图片吗?"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置头像吗?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["重置横幅图片"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["重置个人背景图"])},reset_avatar:r=>{const{normalize:n}=r;return n(["重置头像"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["不显示关注者数量"])},profile_fields:{value:r=>{const{normalize:n}=r;return n(["内容"])},name:r=>{const{normalize:n}=r;return n(["标签"])},add_field:r=>{const{normalize:n}=r;return n(["添加字段"])},label:r=>{const{normalize:n}=r;return n(["个人资料元数据"])}},accent:r=>{const{normalize:n}=r;return n(["强调色"])},pad_emoji:r=>{const{normalize:n}=r;return n(["从表情符号选择器插入表情符号时,在表情两侧插入空格"])},discoverable:r=>{const{normalize:n}=r;return n(["允许通过搜索检索等服务找到此账号"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["隐藏与屏蔽"])},bot:r=>{const{normalize:n}=r;return n(["这是一个机器人账号"])},fun:r=>{const{normalize:n}=r;return n(["趣味"])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(不推荐使用,试验性,已知会跳过一些帖子)"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["聊天消息"])},greentext:r=>{const{normalize:n}=r;return n(["Meme 箭头"])},virtual_scrolling:r=>{const{normalize:n}=r;return n(["优化时间线渲染"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件导入隐藏名单"])},mutes_imported:r=>{const{normalize:n}=r;return n(["隐藏名单导入成功!处理它们将需要一段时间。"])},mute_import_error:r=>{const{normalize:n}=r;return n(["导入隐藏名单出错"])},mute_import:r=>{const{normalize:n}=r;return n(["隐藏名单导入"])},mute_export_button:r=>{const{normalize:n}=r;return n(["导出你的隐藏名单到一个 csv 文件"])},mute_export:r=>{const{normalize:n}=r;return n(["隐藏名单导出"])},hide_wallpaper:r=>{const{normalize:n}=r;return n(["隐藏实例壁纸"])},setting_changed:r=>{const{normalize:n}=r;return n(["与默认设置不同"])},more_settings:r=>{const{normalize:n}=r;return n(["更多设置"])},sensitive_by_default:r=>{const{normalize:n}=r;return n(["默认标记发文为敏感内容"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["只显示对我本人的回复"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["显示对我关注的人的回复"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["不显示已隐藏的发文"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["隐藏媒体预览"])},word_filter:r=>{const{normalize:n}=r;return n(["词语过滤"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},file_export_import:{errors:{file_slightly_new:r=>{const{normalize:n}=r;return n(["文件的小版本不同,有些设置可能无法加载"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",文件版本过旧,不受支持(最小设置版本 ",e(t("feMajor")),")"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",此 PleromaFE(设置版本 ",e(t("feMajor")),")过旧,无法处理"])},invalid_file:r=>{const{normalize:n}=r;return n(["所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。"])}},restore_settings:r=>{const{normalize:n}=r;return n(["从文件恢复设置"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["备份设置和主题到文件"])},backup_settings:r=>{const{normalize:n}=r;return n(["备份设置到文件"])},backup_restore:r=>{const{normalize:n}=r;return n(["设置备份"])}},right_sidebar:r=>{const{normalize:n}=r;return n(["在右侧显示侧边栏"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["隐藏实例留言板"])},expert_mode:r=>{const{normalize:n}=r;return n(["显示高级"])},download_backup:r=>{const{normalize:n}=r;return n(["下载"])},mention_links:r=>{const{normalize:n}=r;return n(["提及链接"])},account_backup:r=>{const{normalize:n}=r;return n(["账号备份"])},account_backup_table_head:r=>{const{normalize:n}=r;return n(["备份"])},remove_backup:r=>{const{normalize:n}=r;return n(["移除"])},list_backups_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取备份列表出错:",e(t("error"))])},add_backup:r=>{const{normalize:n}=r;return n(["创建一个新备份"])},added_backup:r=>{const{normalize:n}=r;return n(["创建了一个新备份。"])},account_alias:r=>{const{normalize:n}=r;return n(["账号别名"])},account_alias_table_head:r=>{const{normalize:n}=r;return n(["别名"])},list_aliases_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取别名时出错:",e(t("error"))])},hide_list_aliases_error_action:r=>{const{normalize:n}=r;return n(["关闭"])},remove_alias:r=>{const{normalize:n}=r;return n(["移除这个别名"])},new_alias_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加一个新别名(例如 ",e(t("example")),")"])},added_alias:r=>{const{normalize:n}=r;return n(["别名添加好了。"])},move_account:r=>{const{normalize:n}=r;return n(["移动账号"])},move_account_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["目标账号(例如 ",e(t("example")),")"])},moved_account:r=>{const{normalize:n}=r;return n(["账号移动好了。"])},move_account_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["移动账号时出错:",e(t("error"))])},setting_server_side:r=>{const{normalize:n}=r;return n(["这个设置是捆绑到你的个人资料的,能影响所有会话和客户端"])},post_look_feel:r=>{const{normalize:n}=r;return n(["文章的样子跟感受"])},email_language:r=>{const{normalize:n}=r;return n(["从服务器收邮件的语言"])},account_backup_description:r=>{const{normalize:n}=r;return n(["这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。"])},backup_not_ready:r=>{const{normalize:n}=r;return n(["备份还没准备好。"])},add_backup_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加新备份时出错:",e(t("error"))])},add_alias_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加别名时出错:",e(t("error"))])},move_account_notes:r=>{const{normalize:n}=r;return n(["如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。"])},wordfilter:r=>{const{normalize:n}=r;return n(["词语过滤器"])},user_profiles:r=>{const{normalize:n}=r;return n(["用户资料"])},third_column_mode_notifications:r=>{const{normalize:n}=r;return n(["消息栏"])}},time:{day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["还有 ",e(t(0))])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 之前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},now:r=>{const{normalize:n}=r;return n(["刚刚"])},now_short:r=>{const{normalize:n}=r;return n(["刚刚"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},unit:{days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 时"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 个月"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])}}},timeline:{collapse:r=>{const{normalize:n}=r;return n(["折叠"])},conversation:r=>{const{normalize:n}=r;return n(["对话"])},error_fetching:r=>{const{normalize:n}=r;return n(["获取更新时发生错误"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的状态"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["这条内容仅关注者可见,或者是私信,因此不能转发"])},repeated:r=>{const{normalize:n}=r;return n(["转发了"])},show_new:r=>{const{normalize:n}=r;return n(["显示新内容"])},up_to_date:r=>{const{normalize:n}=r;return n(["已是最新"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["没有更多的状态"])},no_statuses:r=>{const{normalize:n}=r;return n(["没有状态更新"])},reload:r=>{const{normalize:n}=r;return n(["重新载入"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得时间轴时发生错误:",e(t(0))])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["丢失实时连接:CloseEvent code ",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["已建立实时连接"])}},status:{favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},repeats:r=>{const{normalize:n}=r;return n(["转发"])},delete:r=>{const{normalize:n}=r;return n(["删除状态"])},pin:r=>{const{normalize:n}=r;return n(["在个人资料置顶"])},unpin:r=>{const{normalize:n}=r;return n(["取消在个人资料置顶"])},pinned:r=>{const{normalize:n}=r;return n(["置顶"])},delete_confirm:r=>{const{normalize:n}=r;return n(["你真的想要删除这条状态吗?"])},reply_to:r=>{const{normalize:n}=r;return n(["回复"])},replies_list:r=>{const{normalize:n}=r;return n(["回复:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["隐藏对话"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["对话取消隐藏"])},hide_content:r=>{const{normalize:n}=r;return n(["隐藏内容"])},show_content:r=>{const{normalize:n}=r;return n(["显示内容"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["隐藏此部分标题"])},show_full_subject:r=>{const{normalize:n}=r;return n(["显示全部标题"])},thread_muted:r=>{const{normalize:n}=r;return n(["此系列消息已被隐藏"])},copy_link:r=>{const{normalize:n}=r;return n(["复制状态链接"])},status_unavailable:r=>{const{normalize:n}=r;return n(["状态不可取得"])},unbookmark:r=>{const{normalize:n}=r;return n(["取消书签"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([",含有过滤词:"])},status_deleted:r=>{const{normalize:n}=r;return n(["该状态已被删除"])},nsfw:r=>{const{normalize:n}=r;return n(["NSFW"])},external_source:r=>{const{normalize:n}=r;return n(["外部来源"])},expand:r=>{const{normalize:n}=r;return n(["展开"])},you:r=>{const{normalize:n}=r;return n(["(你)"])},plus_more:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["还有 ",e(t("number"))," 个"])},many_attachments:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文章有 ",e(t("number"))," 个附件"])},collapse_attachments:r=>{const{normalize:n}=r;return n(["折起附件"])},show_all_attachments:r=>{const{normalize:n}=r;return n(["显示所有附件"])},show_attachment_description:r=>{const{normalize:n}=r;return n(["预览描述(打开附件能看完整描述)"])},hide_attachment:r=>{const{normalize:n}=r;return n(["隐藏附件"])},remove_attachment:r=>{const{normalize:n}=r;return n(["移除附件"])},attachment_stop_flash:r=>{const{normalize:n}=r;return n(["停止 Flash 播放器"])},move_up:r=>{const{normalize:n}=r;return n(["把附件左移"])},open_gallery:r=>{const{normalize:n}=r;return n(["打开图库"])},thread_hide:r=>{const{normalize:n}=r;return n(["隐藏这个线索"])},thread_show:r=>{const{normalize:n}=r;return n(["显示这个线索"])},thread_show_full_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},thread_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个线索的剩余部分(一共有 ",e(t("numStatus"))," 个状态)"])},thread_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},ancestor_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个状态下的别的 ",e(t("numReplies"))," 个回复"])},ancestor_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示完整对话(还有 ",e(t("numStatus"))," 个状态)"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},replies_list_with_others:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["回复(另外 +",e(t("numReplies"))," 个):"])},move_down:r=>{const{normalize:n}=r;return n(["把附件右移"])},thread_show_full:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示这个线索下的所有东西(一共有 ",e(t("numStatus"))," 个状态,最大深度 ",e(t("depth")),")"])},show_only_conversation_under_this:r=>{const{normalize:n}=r;return n(["只显示这个状态的回复"])}},user_card:{approve:r=>{const{normalize:n}=r;return n(["核准"])},block:r=>{const{normalize:n}=r;return n(["屏蔽"])},blocked:r=>{const{normalize:n}=r;return n(["已屏蔽!"])},deny:r=>{const{normalize:n}=r;return n(["拒绝"])},favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},follow:r=>{const{normalize:n}=r;return n(["关注"])},follow_sent:r=>{const{normalize:n}=r;return n(["请求已发送!"])},follow_progress:r=>{const{normalize:n}=r;return n(["请求中…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["取消关注"])},followees:r=>{const{normalize:n}=r;return n(["正在关注"])},followers:r=>{const{normalize:n}=r;return n(["关注者"])},following:r=>{const{normalize:n}=r;return n(["正在关注!"])},follows_you:r=>{const{normalize:n}=r;return n(["关注了你!"])},its_you:r=>{const{normalize:n}=r;return n(["就是你!"])},media:r=>{const{normalize:n}=r;return n(["媒体"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])},muted:r=>{const{normalize:n}=r;return n(["已隐藏"])},per_day:r=>{const{normalize:n}=r;return n(["每天"])},remote_follow:r=>{const{normalize:n}=r;return n(["跨站关注"])},report:r=>{const{normalize:n}=r;return n(["报告"])},statuses:r=>{const{normalize:n}=r;return n(["状态"])},subscribe:r=>{const{normalize:n}=r;return n(["订阅"])},unsubscribe:r=>{const{normalize:n}=r;return n(["退订"])},unblock:r=>{const{normalize:n}=r;return n(["取消屏蔽"])},unblock_progress:r=>{const{normalize:n}=r;return n(["正在取消屏蔽…"])},block_progress:r=>{const{normalize:n}=r;return n(["正在屏蔽…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},unmute_progress:r=>{const{normalize:n}=r;return n(["取消隐藏中…"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},admin_menu:{moderation:r=>{const{normalize:n}=r;return n(["仲裁"])},grant_admin:r=>{const{normalize:n}=r;return n(["赋予管理权限"])},revoke_admin:r=>{const{normalize:n}=r;return n(["撤销管理权限"])},grant_moderator:r=>{const{normalize:n}=r;return n(["赋予监察员权限"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["撤销监察员权限"])},activate_account:r=>{const{normalize:n}=r;return n(["激活账号"])},deactivate_account:r=>{const{normalize:n}=r;return n(["关闭账号"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账号"])},force_nsfw:r=>{const{normalize:n}=r;return n(["标记所有的帖子都是 - 工作场合不适"])},strip_media:r=>{const{normalize:n}=r;return n(["从帖子里删除媒体文件"])},force_unlisted:r=>{const{normalize:n}=r;return n(["强制帖子为不公开"])},sandbox:r=>{const{normalize:n}=r;return n(["强制帖子为只有关注者可看"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["禁止从远程实例关注用户"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["完全禁止关注用户"])},quarantine:r=>{const{normalize:n}=r;return n(["从联合实例中禁止用户帖子"])},delete_user:r=>{const{normalize:n}=r;return n(["删除用户"])}},hidden:r=>{const{normalize:n}=r;return n(["已隐藏"])},show_repeats:r=>{const{normalize:n}=r;return n(["显示转发"])},hide_repeats:r=>{const{normalize:n}=r;return n(["隐藏转发"])},message:r=>{const{normalize:n}=r;return n(["消息"])},mention:r=>{const{normalize:n}=r;return n(["提及"])},bot:r=>{const{normalize:n}=r;return n(["机器人"])},highlight:{side:r=>{const{normalize:n}=r;return n(["侧边条纹"])},striped:r=>{const{normalize:n}=r;return n(["条纹背景"])},solid:r=>{const{normalize:n}=r;return n(["单一颜色背景"])},disabled:r=>{const{normalize:n}=r;return n(["不突出显示"])}},edit_profile:r=>{const{normalize:n}=r;return n(["编辑个人资料"])}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["用户时间线"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["抱歉,此个人资料不存在。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["抱歉,载入个人资料时出错。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["报告 ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:"])},additional_comments:r=>{const{normalize:n}=r;return n(["其它信息"])},forward_description:r=>{const{normalize:n}=r;return n(["这个账号来自另一个服务器。是否同时发送一份报告副本到那里?"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["转发 ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["提交"])},generic_error:r=>{const{normalize:n}=r;return n(["当处理您的请求时,发生了一个错误。"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["更多"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["上传媒体"])},repeat:r=>{const{normalize:n}=r;return n(["转发"])},reply:r=>{const{normalize:n}=r;return n(["回复"])},favorite:r=>{const{normalize:n}=r;return n(["喜欢"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["拒绝关注请求"])},add_reaction:r=>{const{normalize:n}=r;return n(["添加互动"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["接受关注请求"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["上传不成功。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文件太大了 [",e(t("filesize")),e(t("filesizeunit"))," / ",e(t("allowedsize")),e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["迟些再试"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["上传错误:",e(t(0))])}},file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])}}},search:{people:r=>{const{normalize:n}=r;return n(["人"])},hashtags:r=>{const{normalize:n}=r;return n(["话题标签"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},no_results:r=>{const{normalize:n}=r;return n(["没有搜索结果"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["忘记密码了?"])},password_reset:r=>{const{normalize:n}=r;return n(["重置密码"])},instruction:r=>{const{normalize:n}=r;return n(["输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。"])},placeholder:r=>{const{normalize:n}=r;return n(["您的电邮地址或者用户名"])},check_email:r=>{const{normalize:n}=r;return n(["检查您的邮箱,会有一个链接用于重置密码。"])},return_home:r=>{const{normalize:n}=r;return n(["回到首页"])},too_many_requests:r=>{const{normalize:n}=r;return n(["您达到了尝试次数的上限,请稍后再试。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["密码重置已被禁用。请联系您的实例管理员。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["您必须重置密码才能登陆。"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["未找到。"])},searching_for:r=>{const{normalize:n}=r;return n(["搜索"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["远程用户解析器"])}},emoji:{keep_open:r=>{const{normalize:n}=r;return n(["选择器保持打开"])},stickers:r=>{const{normalize:n}=r;return n(["贴纸"])},unicode:r=>{const{normalize:n}=r;return n(["Unicode 表情符号"])},custom:r=>{const{normalize:n}=r;return n(["自定义表情符号"])},add_emoji:r=>{const{normalize:n}=r;return n(["插入表情符号"])},search_emoji:r=>{const{normalize:n}=r;return n(["搜索表情符号"])},emoji:r=>{const{normalize:n}=r;return n(["表情符号"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["加载所有表情符号(共 ",e(t("emojiAmount"))," 个)"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["最先加载的 ",e(t("saneAmount"))," 表情符号,加载全部表情符号可能会带来性能问题。"])}},about:{mrf:{simple:{quarantine_desc:r=>{const{normalize:n}=r;return n(["本实例向以下实例仅发送公开的帖子:"])},quarantine:r=>{const{normalize:n}=r;return n(["隔离"])},reject_desc:r=>{const{normalize:n}=r;return n(["本实例不会接收来自下列实例的消息:"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])},accept_desc:r=>{const{normalize:n}=r;return n(["本实例只接收来自下列实例的消息:"])},simple_policies:r=>{const{normalize:n}=r;return n(["对于特定实例的策略"])},accept:r=>{const{normalize:n}=r;return n(["接受"])},media_removal:r=>{const{normalize:n}=r;return n(["移除媒体"])},media_nsfw_desc:r=>{const{normalize:n}=r;return n(["本实例将来自以下实例的媒体内容强制设置为敏感内容:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["强制设置媒体为敏感内容"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["本实例移除来自以下实例的媒体内容:"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["该实例在从“已知网络”时间线上移除了下列实例:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["从“已知网络”时间线上移除"])},reason:r=>{const{normalize:n}=r;return n(["理由"])},not_applicable:r=>{const{normalize:n}=r;return n(["无"])},instance:r=>{const{normalize:n}=r;return n(["实例"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRF 策略会影响本实例的互通行为。以下策略已启用:"])},mrf_policies:r=>{const{normalize:n}=r;return n(["已启用的 MRF 策略"])},keyword:{ftl_removal:r=>{const{normalize:n}=r;return n(["从“全部已知网络”时间线上移除"])},keyword_policies:r=>{const{normalize:n}=r;return n(["关键词策略"])},is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},replace:r=>{const{normalize:n}=r;return n(["替换"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])}},federation:r=>{const{normalize:n}=r;return n(["联邦互通"])}},staff:r=>{const{normalize:n}=r;return n(["管理人员"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["正在取消隐藏…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["留言板"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["今天"])}},file_type:{file:r=>{const{normalize:n}=r;return n(["文件"])},image:r=>{const{normalize:n}=r;return n(["图片"])},video:r=>{const{normalize:n}=r;return n(["视频"])},audio:r=>{const{normalize:n}=r;return n(["音频"])}},chats:{empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["您还没有任何聊天记录。开始聊天吧!"])},error_sending_message:r=>{const{normalize:n}=r;return n(["发送消息时出了点问题。"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["加载聊天时出了点问题。"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您确实要删除此消息吗?"])},more:r=>{const{normalize:n}=r;return n(["更多"])},empty_message_error:r=>{const{normalize:n}=r;return n(["无法发布空消息"])},new:r=>{const{normalize:n}=r;return n(["新聊天"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},delete:r=>{const{normalize:n}=r;return n(["删除"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["发消息给 ",e(t("nickname"))])},you:r=>{const{normalize:n}=r;return n(["你:"])}}}}}]);
-//# sourceMappingURL=zh-json.de02aa4e82fcb1ec557c.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js.map b/priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js.map
deleted file mode 100644
index 9f140cf95..000000000
--- a/priv/static/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/zh.json"],"sourcesContent":["export default {\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在处理,稍后会提示您下载文件\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体代理\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可见范围设置\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文字数量限制\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"功能\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 聊天\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传限制\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取用户时发生错误\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"寻找用户\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"应用\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发生了一个错误\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可选\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收起\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忽略\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重试\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请重试\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"载入中…\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"监察员\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash 内容加载失败,请在控制台查看详情。\"])},\n \"scope_in_timeline\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公开\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私讯\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列外\"])}\n }\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"裁剪图片\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存未经裁剪的图片\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入成功。\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入此文件时出现一个错误。\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用 OAuth 登录\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户名\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录后加入讨论\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证码\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个恢复码\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个双重因素验证码\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素验证\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素恢复\"])}\n }\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往前\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往后\"])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭媒体查看器\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关于\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后退\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本站聊天\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注请求\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共时间线\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已知网络\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户搜索\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"偏好设置\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主页时间线\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的状态,正在搜索中…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢了你的状态\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的通知\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已阅!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了你的状态\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的通知\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反应\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迁移到了\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要关注你\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得通知时发生错误:\", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票结束了\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加投票\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加选项\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选项\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票类型\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单选\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"多选\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票期限\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票于 \", _interpolate(_list(0)), \" 后结束\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票 \", _interpolate(_list(0)), \" 前已结束\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票的选项太少\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 票\"]), _normalize([_interpolate(_named(\"count\")), \" 票\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 人已投票\"]), _normalize([_interpolate(_named(\"count\")), \" 人已投票\"])])}\n },\n \"stickers\": {\n \"add_sticker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加贴纸\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发和喜欢\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的关注者\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的互动\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布新状态\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"你的帐号没有 \", _interpolate(_list(0)), \"。任何人都可以关注你并浏览你的上锁内容。\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上锁\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记附件为敏感内容\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"纯文本\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题(可选)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被提及的用户能够看到。\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被在消息开始处提及的用户能够看到。\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送中\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容可以被所有人看到\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注你的人才能看到本条内容\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容既不在公共时间线,也不会在所有已知网络上可见\"])}\n },\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信 - 只发送给被提及的用户\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者 - 只有关注了你的人能看到\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共 - 发送到公共时间轴\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不公开 - 不会发送到公共时间轴\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"空的\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体描述\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更新媒体失败,请重试\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能发布没有内容、没有附件的发文\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送\"])}\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"电子邮箱\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示名称\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认密码\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邀请码\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击图片获取新的验证码\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:岩仓玲音\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:\\n你好,我是玲音。\\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码不一致\"])}\n },\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此实例的注册需要手动批准。\\n请让管理员知道您为什么想要注册。\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册理由\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你想从服务器收到什么语言的邮件?\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择全部\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App 名称\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您当前的密码来确认您的身份\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置 OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预设 OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认并启用 OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双因素验证\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成新的恢复码\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当您生成新的恢复码时,您旧的恢复码将会失效。\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在接收备份码…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"身份验证方法\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扫一下\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密钥\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要启用双因素验证,请输入您的双因素验证 app 里的数字:\"])}\n }\n },\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像(通知)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导出\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的屏蔽名单到一个 csv 文件\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入屏蔽名单出错\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入成功!需要一点时间来处理。\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"蓝色(回复,关注)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"绿色(转发)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橙色(喜欢)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"红色(取消)\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码的时候出了点问题。\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"成功修改了密码!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠带主题的内容\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"写作\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认新密码\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前头像\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前密码\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您当前的横幅图片\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"数据导入/导出\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认可见范围\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"永久删除你的帐号和所有数据。\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户时发生错误,如果一直删除不了,请联系实例管理员。\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在下面输入您的密码来确认删除账户。\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐的头像图片最小尺寸为 150x150 像素。\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出预置主题\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所有包含以下词汇的内容都会被隐藏,一行一个\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出关注\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将关注导出成 csv 文件\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注时错误\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注已导入!尚需要一些时间来处理。\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前景\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通用\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在对话中隐藏附件\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上隐藏附件\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示被隐藏的用户的帖子\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每个帖子最多能显示的缩略图数量\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例独有的面板\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预载图片\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击一次以打开工作场所不适宜(NSFW)的附件\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏帖子的统计数据(例如:喜欢的次数)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏用户的统计数据(例如:关注者的数量)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏过滤的状态\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入拉黑名单\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入关注\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入预置主题\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复选框\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默认:\", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默认)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面语言\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在您的浏览器中无法使用\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"链接\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您需要手动审核关注请求\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"循环视频\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只循环没有声音的视频(例如:Mastodon 里的“GIF”)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在弹出框内播放视频\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成缩略图时不要裁剪附件\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字及简介\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新密码\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要显示的通知类型\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示富文本格式\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有屏蔽\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有隐藏\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示我所关注的人\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示关注我的人\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“管理员”徽章\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“监察员”徽章\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将不和谐附件和链接预览隐藏,点击才会显示\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth令牌\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"令牌\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刷新令牌\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有效期至\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤消\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在离开页面时暂停时间线推送\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预置\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人背景图\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"横幅图片\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置界面边缘的圆角 (单位:像素)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线中的回复\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有回复\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复/发送给我关注的用户的回复\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自动隐藏新帖子的按钮(移动设备)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存设置时发生错误\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置已保存\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想屏蔽的用户\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想要隐藏的用户\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制可见范围(私信中永远会复制)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使发文可见范围的选项最少化\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新头像\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的个人资料背景\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的横幅图片\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"总是显示主题框\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制主题\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似电子邮件: \\\"re: 主题\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似 mastodon: 与原主题相同\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要复制\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发文状态内容类型\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鼠标悬停时播放GIF\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滚动到顶部时自动推送新内容\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用十六进制代码(#rrggbb)来设置主题颜色。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传照片\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])}\n },\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要停止收到某个指定的用户的通知,请使用隐藏功能。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用 web 推送通知\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留颜色\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留阴影\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留透明度\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留圆角\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留字体\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"保留\\\" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除全部\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除透明度\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载主题\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 已升级,主题会与您记忆中的不太一样。\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自旧版本的 FE。\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自更高版本的 FE。\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为保万无一失,加载了主题快照。您可以试着加载主题数据。\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的版本回滚了。\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的主题引擎随着版本更新升级了。\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在文件中没有主题快照,所以网站外观可能会与原来预想的不同。\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新版本\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"老版本\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保持原状\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"颜色\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"透明度\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"对比度是 \", _interpolate(_named(\"ratio\")), \", 它 \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AA 等级准则(最低)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AAA 等级准则(推荐)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不符合任何辅助功能指南\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大字文本 (18pt+)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常规\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常用颜色\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击”高级“ 标签进行细致的控制\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标,强调,徽章\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"高级\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒或警告背景色\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"徽章背景\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"灰度文字\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发出的\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收到的\"])}\n },\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用的\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"压下的\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调元素\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的菜单项\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的发布内容\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票统计图\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提示框,菜单,弹出框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布内容/用户简介\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"中性\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"警告\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签页\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"底衬\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按下的\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"壁纸\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圆角\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影和照明\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"组件\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"覆盖\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"阴影 #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"模糊\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扩散\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内阴影\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"警告,此阴影设置会总是使用 \", _interpolate(_list(0)), \" ,如果浏览器支持的话。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 不支持参数 \", _interpolate(_list(1)), \" 和关键词 \", _interpolate(_list(2)), \" 。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影的扩散 > 0 会同设置成零一样\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"内阴影会使用 \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在个人资料栏)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在帖子显示栏)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"弹窗与工具提示\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(悬停)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下和悬停)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])}\n },\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"对于阴影,您还可以使用 \", _interpolate(_list(0)), \" 表示法来使用其它颜色插槽。\"])}\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发帖文字\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子中使用等间距文字(富文本)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体名称\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大小 (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字重 (粗体)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自选\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误示例\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"有堆 \", _interpolate(_list(0)), \" 和 \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"monospace 内容\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帮助手册\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"阅读我们的 \", _interpolate(_list(0)), \" ,然而什么也学不到!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这很正常\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我已经浏览了条款及细则\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"一个棒棒的小小链接\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后端版本\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端版本\"])}\n },\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"域名\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邮箱修改成功!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改您的电子邮箱时发生错误。\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改电子邮箱\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注的账号迁移时自动重新关注\"])},\n \"notification_setting_privacy_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在通知推送中隐藏发送者和内容\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐私\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注数\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新邮箱\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上显示表情符号互动\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏推送通知中的发送者与内容信息\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽来自你没有关注的用户的通知\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索需要隐藏的域名\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实时接收帖子和通知\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置背景图吗?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置横幅图片吗?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置头像吗?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置横幅图片\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置个人背景图\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置头像\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注者数量\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加字段\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料元数据\"])}\n },\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调色\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从表情符号选择器插入表情符号时,在表情两侧插入空格\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许通过搜索检索等服务找到此账号\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏与屏蔽\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这是一个机器人账号\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"趣味\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(不推荐使用,试验性,已知会跳过一些帖子)\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天消息\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme 箭头\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"优化时间线渲染\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件导入隐藏名单\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入成功!处理它们将需要一段时间。\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入隐藏名单出错\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的隐藏名单到一个 csv 文件\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导出\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例壁纸\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"与默认设置不同\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多设置\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认标记发文为敏感内容\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示对我本人的回复\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示对我关注的人的回复\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示已隐藏的发文\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏媒体预览\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件的小版本不同,有些设置可能无法加载\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",文件版本过旧,不受支持(最小设置版本 \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",此 PleromaFE(设置版本 \", _interpolate(_named(\"feMajor\")), \")过旧,无法处理\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从文件恢复设置\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置和主题到文件\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置到文件\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置备份\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在右侧显示侧边栏\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例留言板\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示高级\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"下载\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及链接\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号备份\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取备份列表出错:\", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建一个新备份\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建了一个新备份。\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号别名\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取别名时出错:\", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除这个别名\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加一个新别名(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名添加好了。\"])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移动账号\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"目标账号(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号移动好了。\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"移动账号时出错:\", _interpolate(_named(\"error\"))])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个设置是捆绑到你的个人资料的,能影响所有会话和客户端\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文章的样子跟感受\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从服务器收邮件的语言\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份还没准备好。\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加新备份时出错:\", _interpolate(_named(\"error\"))])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加别名时出错:\", _interpolate(_named(\"error\"))])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤器\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户资料\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"消息栏\"])}\n },\n \"time\": {\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"还有 \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 之前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"unit\": {\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 时\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 个月\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])}\n }\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取更新时发生错误\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的状态\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这条内容仅关注者可见,或者是私信,因此不能转发\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示新内容\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已是最新\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的状态\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有状态更新\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新载入\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得时间轴时发生错误:\", _interpolate(_list(0))])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"丢失实时连接:CloseEvent code \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已建立实时连接\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除状态\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在个人资料置顶\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消在个人资料置顶\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"置顶\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你真的想要删除这条状态吗?\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏对话\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话取消隐藏\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏内容\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示内容\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏此部分标题\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示全部标题\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此系列消息已被隐藏\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复制状态链接\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态不可取得\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消书签\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\",含有过滤词:\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该状态已被删除\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"外部来源\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(你)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"还有 \", _interpolate(_named(\"number\")), \" 个\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文章有 \", _interpolate(_named(\"number\")), \" 个附件\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折起附件\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有附件\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览描述(打开附件能看完整描述)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏附件\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除附件\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"停止 Flash 播放器\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件左移\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开图库\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏这个线索\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示这个线索\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个线索的剩余部分(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个状态下的别的 \", _interpolate(_named(\"numReplies\")), \" 个回复\"])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示完整对话(还有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"回复(另外 +\", _interpolate(_named(\"numReplies\")), \" 个):\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件右移\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示这个线索下的所有东西(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态,最大深度 \", _interpolate(_named(\"depth\")), \")\"])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示这个状态的回复\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"核准\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已屏蔽!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求已发送!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求中…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注者\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你!\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"就是你!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每天\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"跨站关注\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"报告\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"订阅\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"退订\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消屏蔽\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消屏蔽…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在屏蔽…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏中…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仲裁\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予管理权限\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销管理权限\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予监察员权限\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销监察员权限\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"激活账号\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭账号\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账号\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记所有的帖子都是 - 工作场合不适\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从帖子里删除媒体文件\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为不公开\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为只有关注者可看\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁止从远程实例关注用户\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全禁止关注用户\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从联合实例中禁止用户帖子\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除用户\"])}\n },\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示转发\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏转发\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"消息\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"机器人\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"侧边条纹\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"条纹背景\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单一颜色背景\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不突出显示\"])}\n },\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑个人资料\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户时间线\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,此个人资料不存在。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,载入个人资料时出错。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"报告 \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它信息\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个账号来自另一个服务器。是否同时发送一份报告副本到那里?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"转发 \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当处理您的请求时,发生了一个错误。\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传媒体\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝关注请求\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加互动\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受关注请求\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传不成功。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文件太大了 [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迟些再试\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"上传错误:\", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"话题标签\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有搜索结果\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忘记密码了?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置密码\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您的电邮地址或者用户名\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"检查您的邮箱,会有一个链接用于重置密码。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回到首页\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您达到了尝试次数的上限,请稍后再试。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码重置已被禁用。请联系您的实例管理员。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码才能登陆。\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未找到。\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"远程用户解析器\"])}\n },\n \"emoji\": {\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择器保持打开\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"贴纸\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode 表情符号\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定义表情符号\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插入表情符号\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索表情符号\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情符号\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"加载所有表情符号(共 \", _interpolate(_named(\"emojiAmount\")), \" 个)\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"最先加载的 \", _interpolate(_named(\"saneAmount\")), \" 表情符号,加载全部表情符号可能会带来性能问题。\"])}\n },\n \"about\": {\n \"mrf\": {\n \"simple\": {\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例向以下实例仅发送公开的帖子:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隔离\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例不会接收来自下列实例的消息:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例只接收来自下列实例的消息:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于特定实例的策略\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除媒体\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例将来自以下实例的媒体内容强制设置为敏感内容:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制设置媒体为敏感内容\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例移除来自以下实例的媒体内容:\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该实例在从“已知网络”时间线上移除了下列实例:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“已知网络”时间线上移除\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"理由\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF 策略会影响本实例的互通行为。以下策略已启用:\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已启用的 MRF 策略\"])},\n \"keyword\": {\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“全部已知网络”时间线上移除\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关键词策略\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"替换\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"联邦互通\"])}\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理人员\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消隐藏…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"今天\"])}\n },\n \"file_type\": {\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图片\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"视频\"])},\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"音频\"])}\n },\n \"chats\": {\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您还没有任何聊天记录。开始聊天吧!\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送消息时出了点问题。\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载聊天时出了点问题。\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确实要删除此消息吗?\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无法发布空消息\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新聊天\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"发消息给 \", _interpolate(_named(\"nickname\"))])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你:\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","named","_named","list","_list","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js b/priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js
new file mode 100644
index 000000000..e14ebce6b
--- /dev/null
+++ b/priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[6544],{37644:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={emoji:{unicode:r=>{const{normalize:n}=r;return n(["統一碼繪文字"])},custom:r=>{const{normalize:n}=r;return n(["自定義繪文字"])},add_emoji:r=>{const{normalize:n}=r;return n(["插入繪文字"])},search_emoji:r=>{const{normalize:n}=r;return n(["搜索繪文字"])},keep_open:r=>{const{normalize:n}=r;return n(["選擇器保持打開"])},emoji:r=>{const{normalize:n}=r;return n(["繪文字"])},stickers:r=>{const{normalize:n}=r;return n(["貼紙"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["加載所有繪文字(共 ",e(t("emojiAmount"))," 個)"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["最先加載的 ",e(t("saneAmount"))," ,加載全部繪文字可能會帶來性能問題。"])}},polls:{not_enough_options:r=>{const{normalize:n}=r;return n(["投票的選項太少"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票 ",e(t(0))," 前已結束"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票於 ",e(t(0))," 內結束"])},expiry:r=>{const{normalize:n}=r;return n(["投票期限"])},multiple_choices:r=>{const{normalize:n}=r;return n(["多選"])},single_choice:r=>{const{normalize:n}=r;return n(["單選"])},type:r=>{const{normalize:n}=r;return n(["問卷類型"])},vote:r=>{const{normalize:n}=r;return n(["投票"])},votes:r=>{const{normalize:n}=r;return n(["票"])},option:r=>{const{normalize:n}=r;return n(["選項"])},add_option:r=>{const{normalize:n}=r;return n(["增加選項"])},add_poll:r=>{const{normalize:n}=r;return n(["增加投票"])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 票"]),n([e(t("count"))," 票"])])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 人已投票"]),n([e(t("count"))," 人已投票"])])}},notifications:{reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["作出了 ",e(t(0))," 的反應"])},migrated_to:r=>{const{normalize:n}=r;return n(["遷移到"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["沒有更多的通知"])},repeated_you:r=>{const{normalize:n}=r;return n(["轉發了你的發文"])},read:r=>{const{normalize:n}=r;return n(["已閱!"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},load_older:r=>{const{normalize:n}=r;return n(["載入更早的通知"])},follow_request:r=>{const{normalize:n}=r;return n(["想要關注你"])},followed_you:r=>{const{normalize:n}=r;return n(["關注了你"])},favorited_you:r=>{const{normalize:n}=r;return n(["喜歡了你的發文"])},broken_favorite:r=>{const{normalize:n}=r;return n(["未知的狀態,正在搜索中…"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["獲取通知錯誤:",e(t(0))])}},nav:{chats:r=>{const{normalize:n}=r;return n(["聊天"])},timelines:r=>{const{normalize:n}=r;return n(["時間線"])},preferences:r=>{const{normalize:n}=r;return n(["偏好設置"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推薦關注"])},search:r=>{const{normalize:n}=r;return n(["搜索"])},user_search:r=>{const{normalize:n}=r;return n(["用戶搜索"])},bookmarks:r=>{const{normalize:n}=r;return n(["書籤"])},twkn:r=>{const{normalize:n}=r;return n(["已知網絡"])},timeline:r=>{const{normalize:n}=r;return n(["時間線"])},public_tl:r=>{const{normalize:n}=r;return n(["公共時間線"])},dms:r=>{const{normalize:n}=r;return n(["私信"])},interactions:r=>{const{normalize:n}=r;return n(["互動"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},friend_requests:r=>{const{normalize:n}=r;return n(["關注請求"])},back:r=>{const{normalize:n}=r;return n(["後退"])},administration:r=>{const{normalize:n}=r;return n(["管理員"])},about:r=>{const{normalize:n}=r;return n(["關於"])},home_timeline:r=>{const{normalize:n}=r;return n(["家時間線"])}},media_modal:{next:r=>{const{normalize:n}=r;return n(["往後"])},previous:r=>{const{normalize:n}=r;return n(["往前"])}},login:{heading:{recovery:r=>{const{normalize:n}=r;return n(["雙重因素恢復"])},totp:r=>{const{normalize:n}=r;return n(["雙重因素驗證"])}},recovery_code:r=>{const{normalize:n}=r;return n(["恢復碼"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["輸入一個雙重因素驗證碼"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["輸入一個恢復碼"])},authentication_code:r=>{const{normalize:n}=r;return n(["驗證碼"])},hint:r=>{const{normalize:n}=r;return n(["登錄後加入討論"])},username:r=>{const{normalize:n}=r;return n(["用戶名"])},register:r=>{const{normalize:n}=r;return n(["註冊"])},placeholder:r=>{const{normalize:n}=r;return n(["例:鈴音"])},password:r=>{const{normalize:n}=r;return n(["密碼"])},logout:r=>{const{normalize:n}=r;return n(["登出"])},description:r=>{const{normalize:n}=r;return n(["用 OAuth 登入"])},login:r=>{const{normalize:n}=r;return n(["登入"])}},importer:{error:r=>{const{normalize:n}=r;return n(["導入此文件時出現一個錯誤。"])},success:r=>{const{normalize:n}=r;return n(["導入成功。"])},submit:r=>{const{normalize:n}=r;return n(["提交"])}},image_cropper:{cancel:r=>{const{normalize:n}=r;return n(["取消"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["保存不裁剪"])},save:r=>{const{normalize:n}=r;return n(["保存"])},crop_picture:r=>{const{normalize:n}=r;return n(["裁剪圖片"])}},general:{peek:r=>{const{normalize:n}=r;return n(["窺視"])},close:r=>{const{normalize:n}=r;return n(["關閉"])},verify:r=>{const{normalize:n}=r;return n(["驗證"])},confirm:r=>{const{normalize:n}=r;return n(["確認"])},enable:r=>{const{normalize:n}=r;return n(["啟用"])},disable:r=>{const{normalize:n}=r;return n(["禁用"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])},dismiss:r=>{const{normalize:n}=r;return n(["忽略"])},show_less:r=>{const{normalize:n}=r;return n(["收起"])},show_more:r=>{const{normalize:n}=r;return n(["展開"])},optional:r=>{const{normalize:n}=r;return n(["可選"])},retry:r=>{const{normalize:n}=r;return n(["再試"])},error_retry:r=>{const{normalize:n}=r;return n(["請再試"])},generic_error:r=>{const{normalize:n}=r;return n(["發生一個錯誤"])},loading:r=>{const{normalize:n}=r;return n(["載入中…"])},more:r=>{const{normalize:n}=r;return n(["更多"])},submit:r=>{const{normalize:n}=r;return n(["提交"])},apply:r=>{const{normalize:n}=r;return n(["應用"])},role:{moderator:r=>{const{normalize:n}=r;return n(["審查者"])},admin:r=>{const{normalize:n}=r;return n(["管理員"])}},flash_content:r=>{const{normalize:n}=r;return n(["點擊以使用 Ruffle 顯示 Flash 內容(實驗性,可能無效)。"])},flash_security:r=>{const{normalize:n}=r;return n(["請注意,這可能有潜在的危險,因為Flash內容仍然是武斷的程式碼。"])},flash_fail:r=>{const{normalize:n}=r;return n(["無法加載flash內容,請參閱控制台瞭解詳細資訊。"])},no:r=>{const{normalize:n}=r;return n(["否"])},generic_error_message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["發生了一個錯誤: ",e(t(0))])},never_show_again:r=>{const{normalize:n}=r;return n(["不再顯示"])},yes:r=>{const{normalize:n}=r;return n(["是"])},undo:r=>{const{normalize:n}=r;return n(["復原"])},scroll_to_top:r=>{const{normalize:n}=r;return n(["滾動至頂部"])},pin:r=>{const{normalize:n}=r;return n(["置頂"])},scope_in_timeline:{private:r=>{const{normalize:n}=r;return n(["僅關注者"])}},unpin:r=>{const{normalize:n}=r;return n(["停止置頂"])}},finder:{find_user:r=>{const{normalize:n}=r;return n(["尋找用戶"])},error_fetching_user:r=>{const{normalize:n}=r;return n(["獲取用戶時發生錯誤"])}},features_panel:{who_to_follow:r=>{const{normalize:n}=r;return n(["推薦關注"])},title:r=>{const{normalize:n}=r;return n(["特色"])},text_limit:r=>{const{normalize:n}=r;return n(["文字數量限制"])},scope_options:r=>{const{normalize:n}=r;return n(["可見範圍設置"])},media_proxy:r=>{const{normalize:n}=r;return n(["媒體代理"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Pleroma 聊天"])},chat:r=>{const{normalize:n}=r;return n(["聊天"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},upload_limit:r=>{const{normalize:n}=r;return n(["上傳限制"])},shout:r=>{const{normalize:n}=r;return n(["留言板"])}},exporter:{processing:r=>{const{normalize:n}=r;return n(["正在處理,稍後會提示您下載文件"])},export:r=>{const{normalize:n}=r;return n(["導出"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["取消靜音中…"])},unmute:r=>{const{normalize:n}=r;return n(["取消靜音"])},mute_progress:r=>{const{normalize:n}=r;return n(["靜音中…"])},mute:r=>{const{normalize:n}=r;return n(["靜音"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["留言板"])}},about:{staff:r=>{const{normalize:n}=r;return n(["職員"])},mrf:{simple:{media_nsfw_desc:r=>{const{normalize:n}=r;return n(["這個實例強迫以下實例的帖子媒體設定為敏感:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["媒體強制設定為敏感"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["這個實例移除以下實例的帖子媒體:"])},media_removal:r=>{const{normalize:n}=r;return n(["移除媒體"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["這個實例在所有已知網絡中移除下列實例:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["從所有已知網路中移除"])},quarantine_desc:r=>{const{normalize:n}=r;return n(["本實例只會把公開發文發送到下列實例:"])},quarantine:r=>{const{normalize:n}=r;return n(["隔離"])},reject_desc:r=>{const{normalize:n}=r;return n(["本實例不會接收來自下列實例的消息:"])},reject:r=>{const{normalize:n}=r;return n(["拒絕"])},accept_desc:r=>{const{normalize:n}=r;return n(["本實例只接收來自下列實例的消息:"])},simple_policies:r=>{const{normalize:n}=r;return n(["站規"])},accept:r=>{const{normalize:n}=r;return n(["接受"])},instance:r=>{const{normalize:n}=r;return n(["實例"])},reason:r=>{const{normalize:n}=r;return n(["原因"])},not_applicable:r=>{const{normalize:n}=r;return n(["N/A"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRF 策略會影響本實例的互通行為。以下策略已啟用:"])},keyword:{ftl_removal:r=>{const{normalize:n}=r;return n(["從「全部已知網絡」時間線上移除"])},replace:r=>{const{normalize:n}=r;return n(["取代"])},reject:r=>{const{normalize:n}=r;return n(["拒絕"])},is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},keyword_policies:r=>{const{normalize:n}=r;return n(["關鍵字政策"])}},mrf_policies:r=>{const{normalize:n}=r;return n(["已啟用的MRF政策"])},federation:r=>{const{normalize:n}=r;return n(["聯邦"])}}},settings:{style:{common:{color:r=>{const{normalize:n}=r;return n(["顏色"])},contrast:{context:{"18pt":r=>{const{normalize:n}=r;return n(["大字文本 (18pt+)"])},text:r=>{const{normalize:n}=r;return n(["文本"])}},level:{aaa:r=>{const{normalize:n}=r;return n(["符合 AAA 等級準則(推薦)"])},aa:r=>{const{normalize:n}=r;return n(["符合 AA 等級準則(最低)"])},bad:r=>{const{normalize:n}=r;return n(["不符合任何輔助功能指南"])}},hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["對比度是 ",e(t("ratio")),", 它 ",e(t("level"))," ",e(t("context"))])}},opacity:r=>{const{normalize:n}=r;return n(["透明度"])}},advanced_colors:{faint_text:r=>{const{normalize:n}=r;return n(["灰度文字"])},alert_error:r=>{const{normalize:n}=r;return n(["錯誤"])},badge_notification:r=>{const{normalize:n}=r;return n(["通知"])},alert:r=>{const{normalize:n}=r;return n(["提醒或警告背景色"])},_tab_label:r=>{const{normalize:n}=r;return n(["高级"])},alert_warning:r=>{const{normalize:n}=r;return n(["警告"])},alert_neutral:r=>{const{normalize:n}=r;return n(["中性"])},post:r=>{const{normalize:n}=r;return n(["帖子/用戶簡介"])},badge:r=>{const{normalize:n}=r;return n(["徽章背景"])},popover:r=>{const{normalize:n}=r;return n(["提示框,菜單,彈出框"])},panel_header:r=>{const{normalize:n}=r;return n(["面板標題"])},top_bar:r=>{const{normalize:n}=r;return n(["頂欄"])},borders:r=>{const{normalize:n}=r;return n(["邊框"])},buttons:r=>{const{normalize:n}=r;return n(["按鈕"])},inputs:r=>{const{normalize:n}=r;return n(["輸入框"])},underlay:r=>{const{normalize:n}=r;return n(["底襯"])},poll:r=>{const{normalize:n}=r;return n(["投票統計圖"])},icons:r=>{const{normalize:n}=r;return n(["圖標"])},highlight:r=>{const{normalize:n}=r;return n(["強調元素"])},pressed:r=>{const{normalize:n}=r;return n(["按下"])},selectedPost:r=>{const{normalize:n}=r;return n(["選中的帖子"])},selectedMenu:r=>{const{normalize:n}=r;return n(["選中的菜單項"])},disabled:r=>{const{normalize:n}=r;return n(["關閉"])},toggled:r=>{const{normalize:n}=r;return n(["切換"])},tabs:r=>{const{normalize:n}=r;return n(["標籤"])},chat:{incoming:r=>{const{normalize:n}=r;return n(["收到"])},outgoing:r=>{const{normalize:n}=r;return n(["發出"])},border:r=>{const{normalize:n}=r;return n(["邊框"])}},wallpaper:r=>{const{normalize:n}=r;return n(["桌布"])}},preview:{header_faint:r=>{const{normalize:n}=r;return n(["這很正常"])},header:r=>{const{normalize:n}=r;return n(["預覽"])},content:r=>{const{normalize:n}=r;return n(["內容"])},error:r=>{const{normalize:n}=r;return n(["例子錯誤"])},button:r=>{const{normalize:n}=r;return n(["按鈕"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["有堆 ",e(t(0))," 和 ",e(t(1))])},mono:r=>{const{normalize:n}=r;return n(["內容"])},input:r=>{const{normalize:n}=r;return n(["剛剛抵達洛杉磯."])},faint_link:r=>{const{normalize:n}=r;return n(["有用的手冊"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["閱讀我們的 ",e(t(0))," ,然而什麼有用的也學不到!"])},checkbox:r=>{const{normalize:n}=r;return n(["我已經瀏覽了條款及細則"])},link:r=>{const{normalize:n}=r;return n(["一個很好的小鏈接"])}},shadows:{override:r=>{const{normalize:n}=r;return n(["覆寫"])},_tab_label:r=>{const{normalize:n}=r;return n(["陰影和燈光"])},component:r=>{const{normalize:n}=r;return n(["組件"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["陰影 #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["模糊"])},spread:r=>{const{normalize:n}=r;return n(["擴散"])},inset:r=>{const{normalize:n}=r;return n(["插圖"])},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["對於陰影,您還可以使用",e(t(0)),"表示法來使用其他顏色插槽。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["警告,此陰影設置會總是使用 ",e(t(0))," ,如果瀏覽器支持的話。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 不支持參數 ",e(t(1))," 和關鍵詞 ",e(t(2))," 。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["請注意組合兩個內部和非內部的陰影到頭像上,在透明頭像上可能會有意料之外的效果。"])},spread_zero:r=>{const{normalize:n}=r;return n(["陰影的擴散 > 0 會同設置成零一樣"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["插入內部的陰影會使用 ",e(t(0))])}},components:{panel:r=>{const{normalize:n}=r;return n(["面板"])},panelHeader:r=>{const{normalize:n}=r;return n(["面板標題"])},topBar:r=>{const{normalize:n}=r;return n(["頂欄"])},avatar:r=>{const{normalize:n}=r;return n(["用戶頭像(在個人資料欄)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["用戶頭像(在帖子顯示欄)"])},popup:r=>{const{normalize:n}=r;return n(["彈窗和工具提示"])},button:r=>{const{normalize:n}=r;return n(["按鈕"])},buttonHover:r=>{const{normalize:n}=r;return n(["按鈕(懸停)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["按鈕(按下)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["按鈕(按下和懸停)"])},input:r=>{const{normalize:n}=r;return n(["輸入框"])}}},switcher:{use_snapshot:r=>{const{normalize:n}=r;return n(["舊版"])},load_theme:r=>{const{normalize:n}=r;return n(["載入主題"])},keep_color:r=>{const{normalize:n}=r;return n(["保留顏色"])},keep_shadows:r=>{const{normalize:n}=r;return n(["保留陰影"])},keep_opacity:r=>{const{normalize:n}=r;return n(["保留透明度"])},keep_roundness:r=>{const{normalize:n}=r;return n(["保留圓角"])},help:{migration_napshot_gone:r=>{const{normalize:n}=r;return n(["不知出於何種原因,主題快照缺失了,一些地方可能與您印象中的不符。"])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["版本衝突:很有可能是 FE 版本回滾後再次升級了,如果您使用舊版本的 FE 更改了主題那麼您可能需要使用舊版本,否則請使用新版本。"])},future_version_imported:r=>{const{normalize:n}=r;return n(["您導入的文件來自更高版本的 FE。"])},older_version_imported:r=>{const{normalize:n}=r;return n(["您導入的文件來自舊版本的 FE。"])},snapshot_missing:r=>{const{normalize:n}=r;return n(["在文件中沒有主題快照,所以網站外觀可能會與原來預想的不同。"])},fe_upgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的主題引擎隨著版本更新升級了。"])},fe_downgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的版本回滾了。"])},upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE 已升級,主題會和你記憶中的不太一樣。"])},v2_imported:r=>{const{normalize:n}=r;return n(["您導入的文件是舊版 FE 的。我們儘可能保持兼容性,但還是可能出現不一致的情況。"])},snapshot_present:r=>{const{normalize:n}=r;return n(["載入快照已加載,因此所有值均被覆蓋。 您可以改為載入主題實際數據。"])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["為保萬無一失,載入了主題快照。您可以試著載入主題數據。"])}},use_source:r=>{const{normalize:n}=r;return n(["新版本"])},keep_as_is:r=>{const{normalize:n}=r;return n(["保持原狀"])},clear_opacity:r=>{const{normalize:n}=r;return n(["清除透明度"])},clear_all:r=>{const{normalize:n}=r;return n(["清除全部"])},reset:r=>{const{normalize:n}=r;return n(["重置"])},keep_fonts:r=>{const{normalize:n}=r;return n(["保留字體"])},save_load_hint:r=>{const{normalize:n}=r;return n(['"保留" 選項在選擇或載入主題時保留當前設置的選項,在導出主題時還會存儲上述選項。當所有複選框未設置時,導出主題將保存所有內容。'])}},fonts:{components:{interface:r=>{const{normalize:n}=r;return n(["界面"])},input:r=>{const{normalize:n}=r;return n(["輸入框"])},post:r=>{const{normalize:n}=r;return n(["發帖文字"])},postCode:r=>{const{normalize:n}=r;return n(["帖子中使用等間距文字(富文本)"])}},_tab_label:r=>{const{normalize:n}=r;return n(["字體"])},help:r=>{const{normalize:n}=r;return n(["給用戶界面的元素選擇字體。選擇 “自選”的你必須輸入確切的字體名稱。"])},family:r=>{const{normalize:n}=r;return n(["字體名稱"])},size:r=>{const{normalize:n}=r;return n(["大小 (像素)"])},weight:r=>{const{normalize:n}=r;return n(["字重 (粗體))"])},custom:r=>{const{normalize:n}=r;return n(["自選"])}},common_colors:{foreground_hint:r=>{const{normalize:n}=r;return n(["點擊”高級“ 標籤進行細緻的控制"])},main:r=>{const{normalize:n}=r;return n(["常用顏色"])},_tab_label:r=>{const{normalize:n}=r;return n(["共同"])},rgbo:r=>{const{normalize:n}=r;return n(["圖標,強調,徽章"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["圓角"])}}},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["屏蔽來自你沒有關注的用戶的通知"])},user_mutes:r=>{const{normalize:n}=r;return n(["用户"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["不顯示關注者數量"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["不顯示富文本格式"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["用戶遷移"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["轉發"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["提及"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["喜歡"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["界面語言"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默認:",e(t("value")),")"])},inputRadius:r=>{const{normalize:n}=r;return n(["輸入框"])},import_theme:r=>{const{normalize:n}=r;return n(["導入預置主題"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["從 csv 文件中導入關注"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["從 csv 文件中導入封鎖黑名單名單"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["隱藏過濾的發文"])},lock_account_description:r=>{const{normalize:n}=r;return n(["你需要手動審核關注請求"])},loop_video:r=>{const{normalize:n}=r;return n(["循環視頻"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["只循環沒有聲音的視頻(例如:Mastodon 裡的“GIF”)"])},mutes_tab:r=>{const{normalize:n}=r;return n(["靜音"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["在彈出框內播放視頻"])},profile_fields:{add_field:r=>{const{normalize:n}=r;return n(["添加字段"])},name:r=>{const{normalize:n}=r;return n(["標籤"])},value:r=>{const{normalize:n}=r;return n(["內容"])},label:r=>{const{normalize:n}=r;return n(["個人資料元數據"])}},use_contain_fit:r=>{const{normalize:n}=r;return n(["生成縮略圖時不要裁剪附件"])},notification_visibility:r=>{const{normalize:n}=r;return n(["要顯示的通知類型"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["關注"])},new_email:r=>{const{normalize:n}=r;return n(["新電郵"])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["比如mastodon: copy as is"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["您確定要重置個人資料背景圖嗎?"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["您確定要重置橫幅圖片嗎?"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["您確定要重置頭像嗎?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["重置橫幅圖片"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["重置個人資料背景圖"])},reset_avatar:r=>{const{normalize:n}=r;return n(["重置頭像"])},discoverable:r=>{const{normalize:n}=r;return n(["允許通過搜索檢索等服務找到此賬號"])},delete_account_error:r=>{const{normalize:n}=r;return n(["刪除賬戶時發生錯誤,如果一直刪除不了,請聯繫實例管理員。"])},composing:r=>{const{normalize:n}=r;return n(["寫作設置"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["聊天訊息"])},mfa:{confirm_and_enable:r=>{const{normalize:n}=r;return n(["確認並啟用OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["設置OTP"])},otp:r=>{const{normalize:n}=r;return n(["OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["預設OTP"])},verify:{desc:r=>{const{normalize:n}=r;return n(["要啟用雙因素驗證,請把你的雙因素驗證 app 裡的數字輸入:"])}},scan:{secret_code:r=>{const{normalize:n}=r;return n(["密鑰"])},desc:r=>{const{normalize:n}=r;return n(["使用你的雙因素驗證 app,掃瞄這個二維碼,或者輸入這些文字密鑰:"])},title:r=>{const{normalize:n}=r;return n(["掃瞄"])}},authentication_methods:r=>{const{normalize:n}=r;return n(["身份驗證方法"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app,也丟失了你的恢復碼,你的賬號就再也無法登錄了。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["正在接收備份碼…"])},recovery_codes:r=>{const{normalize:n}=r;return n(["恢復碼。"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["當你生成新的恢復碼時,你的舊恢復碼就失效了。"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["生成新的恢復碼"])},title:r=>{const{normalize:n}=r;return n(["雙因素驗證"])}},new_password:r=>{const{normalize:n}=r;return n(["新密碼"])},name_bio:r=>{const{normalize:n}=r;return n(["名字及簡介"])},name:r=>{const{normalize:n}=r;return n(["名字"])},domain_mutes:r=>{const{normalize:n}=r;return n(["域名"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["在下面輸入密碼,以確認刪除帳戶。"])},delete_account_description:r=>{const{normalize:n}=r;return n(["永久刪除你的帳號和所有數據。"])},delete_account:r=>{const{normalize:n}=r;return n(["刪除帳戶"])},default_vis:r=>{const{normalize:n}=r;return n(["默認可見性範圍"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["數據導入/導出"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["靜音與封鎖"])},current_password:r=>{const{normalize:n}=r;return n(["當前密碼"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["確認新密碼"])},collapse_subject:r=>{const{normalize:n}=r;return n(["摺疊帶標題的內容"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["複選框"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(默認)"])},interface:r=>{const{normalize:n}=r;return n(["界面"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["您所選擇的主題文件不被 Pleroma 支持,因此主題未被修改。"])},limited_availability:r=>{const{normalize:n}=r;return n(["在您的瀏覽器中無法使用"])},links:r=>{const{normalize:n}=r;return n(["鏈接"])},changed_password:r=>{const{normalize:n}=r;return n(["成功修改了密碼!"])},change_password_error:r=>{const{normalize:n}=r;return n(["修改密碼的時候出了點問題。"])},change_password:r=>{const{normalize:n}=r;return n(["修改密碼"])},changed_email:r=>{const{normalize:n}=r;return n(["郵箱修改成功!"])},bot:r=>{const{normalize:n}=r;return n(["這是一個機器人賬號"])},change_email:r=>{const{normalize:n}=r;return n(["修改電子郵箱"])},cRed:r=>{const{normalize:n}=r;return n(["紅色(取消)"])},cOrange:r=>{const{normalize:n}=r;return n(["橙色(收藏)"])},cGreen:r=>{const{normalize:n}=r;return n(["綠色(轉發)"])},cBlue:r=>{const{normalize:n}=r;return n(["藍色(回覆,關注)"])},btnRadius:r=>{const{normalize:n}=r;return n(["按鈕"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["互動"])},no_blocks:r=>{const{normalize:n}=r;return n(["沒有封鎖"])},no_mutes:r=>{const{normalize:n}=r;return n(["沒有靜音"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["不要顯示我所關注的人"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["不要顯示關注我的人"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["不顯示關注數"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["將敏感附件和鏈接隱藏,點擊才能打開"])},valid_until:r=>{const{normalize:n}=r;return n(["有效期至"])},panelRadius:r=>{const{normalize:n}=r;return n(["面板"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["在離開頁面時暫停時間線推送"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},notification_setting_filters:r=>{const{normalize:n}=r;return n(["過濾器"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["隱私"])},notification_mutes:r=>{const{normalize:n}=r;return n(["要停止收到某個指定的用戶的通知,請使用靜音功能。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["封鎖一個用戶會停掉所有他的通知,等同於取消關注。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["啟用 web 推送通知"])},presets:r=>{const{normalize:n}=r;return n(["預置"])},profile_background:r=>{const{normalize:n}=r;return n(["配置文件背景圖"])},profile_banner:r=>{const{normalize:n}=r;return n(["橫幅圖片"])},profile_tab:r=>{const{normalize:n}=r;return n(["個人資料"])},radii_help:r=>{const{normalize:n}=r;return n(["設置界面邊緣的圓角 (單位:像素)"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["顯示所有回覆"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["自動隱藏新帖子的按鈕(移動設備)"])},saving_err:r=>{const{normalize:n}=r;return n(["保存設置時發生錯誤"])},saving_ok:r=>{const{normalize:n}=r;return n(["設置已保存"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["搜索你想屏蔽的用戶"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["搜索你想要隱藏的用戶"])},security_tab:r=>{const{normalize:n}=r;return n(["安全"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["設置新頭像"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["設置新的個人背景"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["設置新的個人橫幅"])},settings:r=>{const{normalize:n}=r;return n(["設置"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["總是顯示主題框"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["回覆時複製主題"])},subject_line_email:r=>{const{normalize:n}=r;return n(['比如電郵: "re: 主題"'])},subject_line_noop:r=>{const{normalize:n}=r;return n(["不要複製"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["發文內容類型"])},stop_gifs:r=>{const{normalize:n}=r;return n(["鼠標懸停時播放GIF"])},streaming:r=>{const{normalize:n}=r;return n(["開啟滾動到頂部時的自動推送"])},text:r=>{const{normalize:n}=r;return n(["文本"])},theme:r=>{const{normalize:n}=r;return n(["主題"])},theme_help:r=>{const{normalize:n}=r;return n(["使用十六進制代碼(#rrggbb)來設置主題顏色。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["你也可以通過切換複選框來覆蓋某些組件的顏色和透明。使用“清除所有”來清楚所有覆蓋設置。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["某些條目下的圖標是背景或文本對比指示器,鼠標懸停可以獲取詳細信息。請記住,使用透明度來顯示最差的情況。"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["提醒"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["上傳照片"])},user_settings:r=>{const{normalize:n}=r;return n(["用戶設置"])},values:{false:r=>{const{normalize:n}=r;return n(["否"])},true:r=>{const{normalize:n}=r;return n(["是"])}},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["推薦的頭像圖片最小的尺寸是 150x150 像素。"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["在時間線上顯示繪文字互動"])},export_theme:r=>{const{normalize:n}=r;return n(["導出預置主題"])},filtering:r=>{const{normalize:n}=r;return n(["過濾"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["所有包含以下詞彙的內容都會被隱藏,一行一個"])},follow_export:r=>{const{normalize:n}=r;return n(["導出關注"])},follow_export_button:r=>{const{normalize:n}=r;return n(["將關注導出成 csv 文件"])},follow_import:r=>{const{normalize:n}=r;return n(["導入關注"])},follow_import_error:r=>{const{normalize:n}=r;return n(["導入關注時錯誤"])},follows_imported:r=>{const{normalize:n}=r;return n(["關注已導入!尚需要一些時間來處理。"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["在對話中隱藏附件"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["在時間線上隱藏附件"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["不顯示被靜音的用戶的帖子"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["最多每個帖子所能顯示的縮略圖數量"])},hide_isp:r=>{const{normalize:n}=r;return n(["隱藏指定實例的面板"])},preload_images:r=>{const{normalize:n}=r;return n(["預載圖片"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["點擊一次以打開工作場所不適宜的附件"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["隱藏帖子的統計數據(例如:收藏的次數)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["隱藏用戶的統計數據(例如:關注者的數量)"])},general:r=>{const{normalize:n}=r;return n(["通用"])},foreground:r=>{const{normalize:n}=r;return n(["前景"])},blocks_tab:r=>{const{normalize:n}=r;return n(["封鎖"])},blocks_imported:r=>{const{normalize:n}=r;return n(["封鎖黑名單導入成功!需要一點時間來處理。"])},block_import_error:r=>{const{normalize:n}=r;return n(["導入封鎖黑名單出錯"])},block_import:r=>{const{normalize:n}=r;return n(["封鎖黑名單導入"])},block_export_button:r=>{const{normalize:n}=r;return n(["導出你的封鎖黑名單到一個 csv 文件"])},block_export:r=>{const{normalize:n}=r;return n(["封鎖黑名單導出"])},bio:r=>{const{normalize:n}=r;return n(["簡介"])},background:r=>{const{normalize:n}=r;return n(["背景"])},avatarRadius:r=>{const{normalize:n}=r;return n(["頭像"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["頭像(通知)"])},avatar:r=>{const{normalize:n}=r;return n(["頭像"])},attachments:r=>{const{normalize:n}=r;return n(["附件"])},attachmentRadius:r=>{const{normalize:n}=r;return n(["附件"])},allow_following_move:r=>{const{normalize:n}=r;return n(["正在關注的賬號遷移時自動重新關注"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["輸入你當前密碼來確認你的身份"])},security:r=>{const{normalize:n}=r;return n(["安全"])},app_name:r=>{const{normalize:n}=r;return n(["App 名稱"])},change_email_error:r=>{const{normalize:n}=r;return n(["修改你的電子郵箱時發生錯誤。"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["搜索需要隱藏的域名"])},pad_emoji:r=>{const{normalize:n}=r;return n(["從繪文字選擇器插入繪文字時,在繪文字兩側插入空格"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["實時接收發佈以及通知"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["最小發文範圍"])},scope_copy:r=>{const{normalize:n}=r;return n(["回覆時的複製範圍(私信是總是複製的)"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["只顯示發送給我的回覆"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["只顯示發送給我的回覆/發送給我關注的用戶的回覆"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["時間線中的回覆"])},revoke_token:r=>{const{normalize:n}=r;return n(["撤消"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["顯示管理徽章"])},accent:r=>{const{normalize:n}=r;return n(["強調色"])},greentext:r=>{const{normalize:n}=r;return n(["前文箭頭"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["顯示主持人徽章"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth代幣"])},token:r=>{const{normalize:n}=r;return n(["代幣"])},refresh_token:r=>{const{normalize:n}=r;return n(["刷新token"])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(不推薦使用,實驗性的,已知跳過文章)"])},fun:r=>{const{normalize:n}=r;return n(["有趣"])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["隱藏推送通知中的發送者與內容信息"])},version:{title:r=>{const{normalize:n}=r;return n(["版本"])},backend_version:r=>{const{normalize:n}=r;return n(["後端版本"])},frontend_version:r=>{const{normalize:n}=r;return n(["前端版本"])}},virtual_scrolling:r=>{const{normalize:n}=r;return n(["優化時間線渲染"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["從CSV文件導入靜音"])},mutes_imported:r=>{const{normalize:n}=r;return n(["靜音導入了!處理它們將需要一段時間。"])},mute_import:r=>{const{normalize:n}=r;return n(["靜音導入"])},mute_import_error:r=>{const{normalize:n}=r;return n(["導入靜音時出錯"])},mute_export_button:r=>{const{normalize:n}=r;return n(["將靜音導出到csv文件"])},mute_export:r=>{const{normalize:n}=r;return n(["靜音導出"])},hide_wallpaper:r=>{const{normalize:n}=r;return n(["隱藏實例桌布"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["只顯示對我本人的回复"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["顯示對我關注的人的回复"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["不顯示已隱藏的帖子"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["隱藏媒體預覽"])},word_filter:r=>{const{normalize:n}=r;return n(["詞過濾"])},setting_changed:r=>{const{normalize:n}=r;return n(["與默認設置不同"])},more_settings:r=>{const{normalize:n}=r;return n(["更多設置"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},file_export_import:{errors:{invalid_file:r=>{const{normalize:n}=r;return n(["所選文件不是受支持的Pleroma設置備份。 沒有進行任何更改。"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",此 PleromaFE(設置版本 ",e(t("feMajor")),")過舊,無法處理"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",文件版本過舊,不受支持(最小設置版本 ",e(t("feMajor")),")"])},file_slightly_new:r=>{const{normalize:n}=r;return n(["檔案的小版本不同,有些設置可能無法載入"])}},restore_settings:r=>{const{normalize:n}=r;return n(["從文件還原設置"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["備份設置和主題到文件"])},backup_settings:r=>{const{normalize:n}=r;return n(["備份設置到文件"])},backup_restore:r=>{const{normalize:n}=r;return n(["設定備份"])}},sensitive_by_default:r=>{const{normalize:n}=r;return n(["默認標記發文為敏感內容"])},right_sidebar:r=>{const{normalize:n}=r;return n(["在右側顯示側邊欄"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["隱藏實例留言框"])}},chats:{more:r=>{const{normalize:n}=r;return n(["更多"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您確實要刪除此消息嗎?"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["加載聊天時出了點問題。"])},error_sending_message:r=>{const{normalize:n}=r;return n(["發送消息時出了點問題。"])},empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["您還沒有任何聊天記錄。 開始新的聊天!"])},new:r=>{const{normalize:n}=r;return n(["新聊天"])},empty_message_error:r=>{const{normalize:n}=r;return n(["無法發布空消息"])},you:r=>{const{normalize:n}=r;return n(["你:"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["發消息給 ",e(t("nickname"))])},delete:r=>{const{normalize:n}=r;return n(["刪除"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])}},file_type:{audio:r=>{const{normalize:n}=r;return n(["音頻"])},video:r=>{const{normalize:n}=r;return n(["視頻"])},image:r=>{const{normalize:n}=r;return n(["图片"])},file:r=>{const{normalize:n}=r;return n(["檔案"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["今天"])}},status:{mute_conversation:r=>{const{normalize:n}=r;return n(["靜音對話"])},replies_list:r=>{const{normalize:n}=r;return n(["回覆:"])},reply_to:r=>{const{normalize:n}=r;return n(["回覆"])},pin:r=>{const{normalize:n}=r;return n(["在個人資料置頂"])},unpin:r=>{const{normalize:n}=r;return n(["取消在個人資料置頂"])},favorites:r=>{const{normalize:n}=r;return n(["喜歡"])},repeats:r=>{const{normalize:n}=r;return n(["轉發"])},delete:r=>{const{normalize:n}=r;return n(["刪除發文"])},pinned:r=>{const{normalize:n}=r;return n(["置頂"])},bookmark:r=>{const{normalize:n}=r;return n(["書籤"])},unbookmark:r=>{const{normalize:n}=r;return n(["取消書籤"])},delete_confirm:r=>{const{normalize:n}=r;return n(["你真的想要刪除這條發文嗎?"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["對話取消靜音"])},status_unavailable:r=>{const{normalize:n}=r;return n(["發文不可取得"])},copy_link:r=>{const{normalize:n}=r;return n(["複製發文鏈接"])},thread_muted:r=>{const{normalize:n}=r;return n(["静音線程"])},show_full_subject:r=>{const{normalize:n}=r;return n(["顯示完整標題"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([",有这些字:"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["隱藏完整標題"])},show_content:r=>{const{normalize:n}=r;return n(["顯示內容"])},hide_content:r=>{const{normalize:n}=r;return n(["隱藏內容"])},status_deleted:r=>{const{normalize:n}=r;return n(["該帖已被刪除"])},expand:r=>{const{normalize:n}=r;return n(["展开"])},external_source:r=>{const{normalize:n}=r;return n(["外部來源"])},nsfw:r=>{const{normalize:n}=r;return n(["工作不安全"])}},time:{hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 時"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"天"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"天"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 時"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," y"])},now:r=>{const{normalize:n}=r;return n(["剛剛"])},day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["還有 ",e(t(0))])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 之前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分鐘"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分鐘"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},now_short:r=>{const{normalize:n}=r;return n(["剛剛"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])}},post_status:{media_description_error:r=>{const{normalize:n}=r;return n(["無法更新媒體,請重試"])},media_description:r=>{const{normalize:n}=r;return n(["媒體描述"])},scope:{unlisted:r=>{const{normalize:n}=r;return n(["不公開 - 不會發送到公共時間軸"])},public:r=>{const{normalize:n}=r;return n(["公共 - 發送到公共時間軸"])},private:r=>{const{normalize:n}=r;return n(["僅關注者 - 只有關注了你的人能看到"])},direct:r=>{const{normalize:n}=r;return n(["私信 - 只發送給被提及的用戶"])}},scope_notice:{unlisted:r=>{const{normalize:n}=r;return n(["本條內容既不在公共時間線,也不會在所有已知網絡上可見"])},private:r=>{const{normalize:n}=r;return n(["關注你的人才能看到本條內容"])},public:r=>{const{normalize:n}=r;return n(["本條帖子可以被所有人看到"])}},preview_empty:r=>{const{normalize:n}=r;return n(["空的"])},preview:r=>{const{normalize:n}=r;return n(["預覽"])},posting:r=>{const{normalize:n}=r;return n(["正在發送"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["本條內容只有被在消息開始處提及的用戶能夠看到。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["本條內容只有被提及的用戶能夠看到。"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["你的帳號沒有 ",e(t(0)),"。任何人都可以關注你並瀏覽你的上鎖內容。"])},new_status:r=>{const{normalize:n}=r;return n(["發佈新發文"])},content_warning:r=>{const{normalize:n}=r;return n(["主題(可選)"])},content_type:{"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/plain":r=>{const{normalize:n}=r;return n(["純文本"])}},attachments_sensitive:r=>{const{normalize:n}=r;return n(["標記附件為敏感內容"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["上鎖"])},default:r=>{const{normalize:n}=r;return n(["剛剛抵達洛杉磯。"])},empty_status_error:r=>{const{normalize:n}=r;return n(["不能發布沒有內容,沒有附件的發文"])},post:r=>{const{normalize:n}=r;return n(["發送"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma無法訪問瀏覽器存儲。您的登錄名或本地設置將不會保存,您可能會遇到意外問題。嘗試啟用Cookie。"])}},timeline:{error_fetching:r=>{const{normalize:n}=r;return n(["獲取更新時發生錯誤"])},conversation:r=>{const{normalize:n}=r;return n(["對話"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["這條內容僅關注者可見,或者是私信,因此不能轉發"])},collapse:r=>{const{normalize:n}=r;return n(["摺疊"])},load_older:r=>{const{normalize:n}=r;return n(["載入更早的發文"])},repeated:r=>{const{normalize:n}=r;return n(["已轉發"])},show_new:r=>{const{normalize:n}=r;return n(["顯示新內容"])},reload:r=>{const{normalize:n}=r;return n(["重新載入"])},up_to_date:r=>{const{normalize:n}=r;return n(["已是最新"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["没有更多發文"])},no_statuses:r=>{const{normalize:n}=r;return n(["没有發文"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得時間線時發生錯誤:",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["已建立實時連接"])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["丟失實時連接:CloseEvent代碼",e(t(0))])}},interactions:{load_older:r=>{const{normalize:n}=r;return n(["載入更早的互動"])},moves:r=>{const{normalize:n}=r;return n(["用戶遷移"])},follows:r=>{const{normalize:n}=r;return n(["新的關注者"])},favs_repeats:r=>{const{normalize:n}=r;return n(["轉發和喜歡"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["選擇全部"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["未找到。"])},searching_for:r=>{const{normalize:n}=r;return n(["搜索"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["遠程用戶解析器"])}},registration:{validations:{password_confirmation_match:r=>{const{normalize:n}=r;return n(["不能和密碼一樣"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_required:r=>{const{normalize:n}=r;return n(["不能留空"])},email_required:r=>{const{normalize:n}=r;return n(["不能留空"])},fullname_required:r=>{const{normalize:n}=r;return n(["不能留空"])},username_required:r=>{const{normalize:n}=r;return n(["不能留空"])}},fullname:r=>{const{normalize:n}=r;return n(["顯示名稱"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["例如:\n你好,我是玲音。\n我是一個住在日本郊區的動畫少女。你可能在 Wired 見過我。"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["例如:岩倉玲音"])},username_placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},new_captcha:r=>{const{normalize:n}=r;return n(["點擊圖片獲取新的驗證碼"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},token:r=>{const{normalize:n}=r;return n(["邀請碼"])},registration:r=>{const{normalize:n}=r;return n(["註冊"])},password_confirm:r=>{const{normalize:n}=r;return n(["確認密碼"])},email:r=>{const{normalize:n}=r;return n(["電子郵箱"])},bio:r=>{const{normalize:n}=r;return n(["簡介"])},reason_placeholder:r=>{const{normalize:n}=r;return n(["此實例的註冊需要手動批准。\n請讓管理知道您為什麼想要註冊。"])},reason:r=>{const{normalize:n}=r;return n(["註冊理由"])},register:r=>{const{normalize:n}=r;return n(["註冊"])}},user_card:{its_you:r=>{const{normalize:n}=r;return n(["就是你!!"])},media:r=>{const{normalize:n}=r;return n(["媒體"])},per_day:r=>{const{normalize:n}=r;return n(["每天"])},remote_follow:r=>{const{normalize:n}=r;return n(["跨站關注"])},subscribe:r=>{const{normalize:n}=r;return n(["訂閱"])},mute_progress:r=>{const{normalize:n}=r;return n(["靜音中…"])},admin_menu:{delete_account:r=>{const{normalize:n}=r;return n(["刪除賬號"])},delete_user:r=>{const{normalize:n}=r;return n(["刪除用戶"])},moderation:r=>{const{normalize:n}=r;return n(["調停"])},grant_admin:r=>{const{normalize:n}=r;return n(["賦予管理權限"])},revoke_admin:r=>{const{normalize:n}=r;return n(["撤銷管理權限"])},grant_moderator:r=>{const{normalize:n}=r;return n(["賦予主持人權限"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["撤銷主持人權限"])},activate_account:r=>{const{normalize:n}=r;return n(["啟用賬號"])},deactivate_account:r=>{const{normalize:n}=r;return n(["關閉賬號"])},force_nsfw:r=>{const{normalize:n}=r;return n(["標記所有的帖子都是工作場合不適"])},strip_media:r=>{const{normalize:n}=r;return n(["從帖子裡刪除媒體文件"])},force_unlisted:r=>{const{normalize:n}=r;return n(["強制帖子為不公開"])},sandbox:r=>{const{normalize:n}=r;return n(["強制帖子為只有關注者可看"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["禁止從遠程實例關注用戶"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["完全禁止關注用戶"])},quarantine:r=>{const{normalize:n}=r;return n(["從聯合實例中禁止用戶帖子"])}},approve:r=>{const{normalize:n}=r;return n(["批准"])},block:r=>{const{normalize:n}=r;return n(["封鎖"])},blocked:r=>{const{normalize:n}=r;return n(["已封鎖!"])},deny:r=>{const{normalize:n}=r;return n(["拒絕"])},favorites:r=>{const{normalize:n}=r;return n(["喜歡"])},follow:r=>{const{normalize:n}=r;return n(["關注"])},follow_sent:r=>{const{normalize:n}=r;return n(["請求已發送!"])},follow_progress:r=>{const{normalize:n}=r;return n(["請求中…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["取消關注"])},followees:r=>{const{normalize:n}=r;return n(["正在關注"])},followers:r=>{const{normalize:n}=r;return n(["關注者"])},following:r=>{const{normalize:n}=r;return n(["正在關注!"])},follows_you:r=>{const{normalize:n}=r;return n(["關注了你!"])},hidden:r=>{const{normalize:n}=r;return n(["已隱藏"])},mention:r=>{const{normalize:n}=r;return n(["提及"])},message:r=>{const{normalize:n}=r;return n(["消息"])},mute:r=>{const{normalize:n}=r;return n(["靜音"])},muted:r=>{const{normalize:n}=r;return n(["已靜音"])},report:r=>{const{normalize:n}=r;return n(["報告"])},statuses:r=>{const{normalize:n}=r;return n(["發文"])},unsubscribe:r=>{const{normalize:n}=r;return n(["退訂"])},unblock:r=>{const{normalize:n}=r;return n(["取消封鎖"])},unblock_progress:r=>{const{normalize:n}=r;return n(["取消封鎖中…"])},block_progress:r=>{const{normalize:n}=r;return n(["封鎖中…"])},unmute:r=>{const{normalize:n}=r;return n(["取消靜音"])},unmute_progress:r=>{const{normalize:n}=r;return n(["取消靜音中…"])},hide_repeats:r=>{const{normalize:n}=r;return n(["隱藏轉發"])},show_repeats:r=>{const{normalize:n}=r;return n(["顯示轉發"])},roles:{moderator:r=>{const{normalize:n}=r;return n(["主持人"])},admin:r=>{const{normalize:n}=r;return n(["管理員"])}},highlight:{disabled:r=>{const{normalize:n}=r;return n(["無突出顯示"])},solid:r=>{const{normalize:n}=r;return n(["單色背景"])},striped:r=>{const{normalize:n}=r;return n(["條紋背景"])},side:r=>{const{normalize:n}=r;return n(["彩條"])}},bot:r=>{const{normalize:n}=r;return n(["機器人"])},edit_profile:r=>{const{normalize:n}=r;return n(["編輯個人資料"])}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["用戶時間線"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["抱歉,此個人資料不存在。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["抱歉,載入個人資料時出錯。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["報告 ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["此報告會發送給你的實例管理員。你可以在下面提供更多詳細信息解釋報告的緣由:"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["轉發 ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["提交"])},generic_error:r=>{const{normalize:n}=r;return n(["當處理你的請求時,發生了一個錯誤。"])},additional_comments:r=>{const{normalize:n}=r;return n(["其它評論"])},forward_description:r=>{const{normalize:n}=r;return n(["這個賬號是從另外一個服務器。同時發送一個報告到那裡?"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["更多"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推薦關注"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["上傳多媒體"])},repeat:r=>{const{normalize:n}=r;return n(["轉發"])},favorite:r=>{const{normalize:n}=r;return n(["喜歡"])},add_reaction:r=>{const{normalize:n}=r;return n(["添加互動"])},reply:r=>{const{normalize:n}=r;return n(["回覆"])},user_settings:r=>{const{normalize:n}=r;return n(["用戶設置"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["接受關注請求"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["拒絕關注請求"])},bookmark:r=>{const{normalize:n}=r;return n(["書籤"])}},upload:{file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])}},error:{base:r=>{const{normalize:n}=r;return n(["上傳失敗。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文件太大[",e(t("filesize"))," ",e(t("filesizeunit"))," / ",e(t("allowedsize"))," ",e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["稍後再試"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["上傳錯誤:",e(t(0))])}}},search:{people:r=>{const{normalize:n}=r;return n(["人"])},hashtags:r=>{const{normalize:n}=r;return n(["標籤"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在討論"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在討論"])},no_results:r=>{const{normalize:n}=r;return n(["沒有搜索結果"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["忘記密碼了?"])},password_reset:r=>{const{normalize:n}=r;return n(["重置密碼"])},instruction:r=>{const{normalize:n}=r;return n(["輸入你的電郵地址或者用戶名,我們將發送一個鏈接到你的郵箱,用於重置密碼。"])},placeholder:r=>{const{normalize:n}=r;return n(["你的電郵地址或者用戶名"])},check_email:r=>{const{normalize:n}=r;return n(["檢查你的郵箱,會有一個鏈接用於重置密碼。"])},return_home:r=>{const{normalize:n}=r;return n(["回到首頁"])},too_many_requests:r=>{const{normalize:n}=r;return n(["你觸發了嘗試的限制,請稍後再試。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["密碼重置已經被禁用。請聯繫你的實例管理員。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["您必須重置密碼才能登陸。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["您必須重置密碼,但是密碼重置被禁用了。請聯繫您所在實例的管理員。"])}},announcements:{post_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["錯誤: ",e(t("error"))])},close_error:r=>{const{normalize:n}=r;return n(["關閉"])},delete_action:r=>{const{normalize:n}=r;return n(["刪除"])},start_time_prompt:r=>{const{normalize:n}=r;return n(["開始時間: "])},end_time_prompt:r=>{const{normalize:n}=r;return n(["結束時間: "])},all_day_prompt:r=>{const{normalize:n}=r;return n(["這是全日活動"])},start_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("time"))," 開始"])},end_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("time"))," 結束"])},published_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("time"))," 發布"])},edit_action:r=>{const{normalize:n}=r;return n(["編輯"])},submit_edit_action:r=>{const{normalize:n}=r;return n(["送出"])},cancel_edit_action:r=>{const{normalize:n}=r;return n(["取消"])},inactive_message:r=>{const{normalize:n}=r;return n(["此公告無效"])},page_header:r=>{const{normalize:n}=r;return n(["公告"])},title:r=>{const{normalize:n}=r;return n(["公告"])},mark_as_read_action:r=>{const{normalize:n}=r;return n(["標示為以閱讀"])},post_placeholder:r=>{const{normalize:n}=r;return n(["在此輸入您的公告內容……"])},post_form_header:r=>{const{normalize:n}=r;return n(["發布公告"])},post_action:r=>{const{normalize:n}=r;return n(["發布"])}}}}}]);
+//# sourceMappingURL=zh_Hant-json.bfa569654a5cd74767ce.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js.map b/priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js.map
new file mode 100644
index 000000000..0a369c4bf
--- /dev/null
+++ b/priv/static/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/zh_Hant.json"],"sourcesContent":["export default {\n \"emoji\": {\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"統一碼繪文字\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定義繪文字\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插入繪文字\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索繪文字\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選擇器保持打開\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"繪文字\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"貼紙\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"加載所有繪文字(共 \", _interpolate(_named(\"emojiAmount\")), \" 個)\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"最先加載的 \", _interpolate(_named(\"saneAmount\")), \" ,加載全部繪文字可能會帶來性能問題。\"])}\n },\n \"polls\": {\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票的選項太少\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票 \", _interpolate(_list(0)), \" 前已結束\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票於 \", _interpolate(_list(0)), \" 內結束\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票期限\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"多選\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"單選\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"問卷類型\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"票\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選項\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加選項\"])},\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加投票\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 票\"]), _normalize([_interpolate(_named(\"count\")), \" 票\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 人已投票\"]), _normalize([_interpolate(_named(\"count\")), \" 人已投票\"])])}\n },\n \"notifications\": {\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反應\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"遷移到\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有更多的通知\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發了你的發文\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已閱!\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入更早的通知\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要關注你\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注了你\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡了你的發文\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的狀態,正在搜索中…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"獲取通知錯誤:\", _interpolate(_list(0))])}\n },\n \"nav\": {\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"時間線\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"偏好設置\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦關注\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶搜索\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"書籤\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已知網絡\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"時間線\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共時間線\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互動\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注請求\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"後退\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理員\"])},\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關於\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"家時間線\"])}\n },\n \"media_modal\": {\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往後\"])},\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往前\"])}\n },\n \"login\": {\n \"heading\": {\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"雙重因素恢復\"])},\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"雙重因素驗證\"])}\n },\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢復碼\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入一個雙重因素驗證碼\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入一個恢復碼\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"驗證碼\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登錄後加入討論\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶名\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例:鈴音\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密碼\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用 OAuth 登入\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登入\"])}\n },\n \"importer\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入此文件時出現一個錯誤。\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入成功。\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])}\n },\n \"image_cropper\": {\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存不裁剪\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"裁剪圖片\"])}\n },\n \"general\": {\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"窺視\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關閉\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"驗證\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"啟用\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忽略\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收起\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展開\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可選\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"再試\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請再試\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發生一個錯誤\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入中…\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"應用\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"審查者\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理員\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊以使用 Ruffle 顯示 Flash 內容(實驗性,可能無效)。\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請注意,這可能有潜在的危險,因為Flash內容仍然是武斷的程式碼。\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無法加載flash內容,請參閱控制台瞭解詳細資訊。\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"發生了一個錯誤: \", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不再顯示\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"復原\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滾動至頂部\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"置頂\"])},\n \"scope_in_timeline\": {\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"僅關注者\"])}\n },\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"停止置頂\"])}\n },\n \"finder\": {\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"尋找用戶\"])},\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"獲取用戶時發生錯誤\"])}\n },\n \"features_panel\": {\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦關注\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"特色\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文字數量限制\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可見範圍設置\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體代理\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 聊天\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳限制\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"exporter\": {\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在處理,稍後會提示您下載文件\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音中…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音中…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"about\": {\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"職員\"])},\n \"mrf\": {\n \"simple\": {\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個實例強迫以下實例的帖子媒體設定為敏感:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體強制設定為敏感\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個實例移除以下實例的帖子媒體:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除媒體\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個實例在所有已知網絡中移除下列實例:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從所有已知網路中移除\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本實例只會把公開發文發送到下列實例:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隔離\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本實例不會接收來自下列實例的消息:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本實例只接收來自下列實例的消息:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"站規\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"實例\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"原因\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N/A\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF 策略會影響本實例的互通行為。以下策略已啟用:\"])},\n \"keyword\": {\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從「全部已知網絡」時間線上移除\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取代\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關鍵字政策\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已啟用的MRF政策\"])},\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聯邦\"])}\n }\n },\n \"settings\": {\n \"style\": {\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顏色\"])},\n \"contrast\": {\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大字文本 (18pt+)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])}\n },\n \"level\": {\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AAA 等級準則(推薦)\"])},\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AA 等級準則(最低)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不符合任何輔助功能指南\"])}\n },\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"對比度是 \", _interpolate(_named(\"ratio\")), \", 它 \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])}\n },\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"透明度\"])}\n },\n \"advanced_colors\": {\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"灰度文字\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"錯誤\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒或警告背景色\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"高级\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"警告\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"中性\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子/用戶簡介\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"徽章背景\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提示框,菜單,彈出框\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板標題\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頂欄\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邊框\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"底襯\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票統計圖\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圖標\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強調元素\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按下\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選中的帖子\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選中的菜單項\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關閉\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"切換\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標籤\"])},\n \"chat\": {\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收到\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發出\"])},\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邊框\"])}\n },\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"桌布\"])}\n },\n \"preview\": {\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這很正常\"])},\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預覽\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例子錯誤\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"有堆 \", _interpolate(_list(0)), \" 和 \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛抵達洛杉磯.\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有用的手冊\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"閱讀我們的 \", _interpolate(_list(0)), \" ,然而什麼有用的也學不到!\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我已經瀏覽了條款及細則\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"一個很好的小鏈接\"])}\n },\n \"shadows\": {\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"覆寫\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"陰影和燈光\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"組件\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"陰影 #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"模糊\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"擴散\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插圖\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"對於陰影,您還可以使用\", _interpolate(_list(0)), \"表示法來使用其他顏色插槽。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"警告,此陰影設置會總是使用 \", _interpolate(_list(0)), \" ,如果瀏覽器支持的話。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 不支持參數 \", _interpolate(_list(1)), \" 和關鍵詞 \", _interpolate(_list(2)), \" 。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請注意組合兩個內部和非內部的陰影到頭像上,在透明頭像上可能會有意料之外的效果。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"陰影的擴散 > 0 會同設置成零一樣\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"插入內部的陰影會使用 \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板標題\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頂欄\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶頭像(在個人資料欄)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶頭像(在帖子顯示欄)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"彈窗和工具提示\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕(懸停)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕(按下)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕(按下和懸停)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])}\n }\n },\n \"switcher\": {\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"舊版\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入主題\"])},\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留顏色\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留陰影\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留透明度\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留圓角\"])},\n \"help\": {\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不知出於何種原因,主題快照缺失了,一些地方可能與您印象中的不符。\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本衝突:很有可能是 FE 版本回滾後再次升級了,如果您使用舊版本的 FE 更改了主題那麼您可能需要使用舊版本,否則請使用新版本。\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您導入的文件來自更高版本的 FE。\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您導入的文件來自舊版本的 FE。\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在文件中沒有主題快照,所以網站外觀可能會與原來預想的不同。\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的主題引擎隨著版本更新升級了。\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的版本回滾了。\"])},\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 已升級,主題會和你記憶中的不太一樣。\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您導入的文件是舊版 FE 的。我們儘可能保持兼容性,但還是可能出現不一致的情況。\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入快照已加載,因此所有值均被覆蓋。 您可以改為載入主題實際數據。\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"為保萬無一失,載入了主題快照。您可以試著載入主題數據。\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新版本\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保持原狀\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除透明度\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除全部\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留字體\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"保留\\\" 選項在選擇或載入主題時保留當前設置的選項,在導出主題時還會存儲上述選項。當所有複選框未設置時,導出主題將保存所有內容。\"])}\n },\n \"fonts\": {\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發帖文字\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子中使用等間距文字(富文本)\"])}\n },\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字體\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"給用戶界面的元素選擇字體。選擇 “自選”的你必須輸入確切的字體名稱。\"])},\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字體名稱\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大小 (像素)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字重 (粗體))\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自選\"])}\n },\n \"common_colors\": {\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊”高級“ 標籤進行細緻的控制\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常用顏色\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"共同\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圖標,強調,徽章\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圓角\"])}\n }\n },\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽來自你沒有關注的用戶的通知\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示關注者數量\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示富文本格式\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶遷移\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面語言\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默認:\", _interpolate(_named(\"value\")), \")\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入預置主題\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從 csv 文件中導入關注\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從 csv 文件中導入封鎖黑名單名單\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏過濾的發文\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你需要手動審核關注請求\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"循環視頻\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只循環沒有聲音的視頻(例如:Mastodon 裡的“GIF”)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在彈出框內播放視頻\"])},\n \"profile_fields\": {\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加字段\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標籤\"])},\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"個人資料元數據\"])}\n },\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成縮略圖時不要裁剪附件\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要顯示的通知類型\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新電郵\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"比如mastodon: copy as is\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確定要重置個人資料背景圖嗎?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確定要重置橫幅圖片嗎?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確定要重置頭像嗎?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置橫幅圖片\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置個人資料背景圖\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置頭像\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允許通過搜索檢索等服務找到此賬號\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除賬戶時發生錯誤,如果一直刪除不了,請聯繫實例管理員。\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"寫作設置\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天訊息\"])},\n \"mfa\": {\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認並啟用OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置OTP\"])},\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預設OTP\"])},\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要啟用雙因素驗證,請把你的雙因素驗證 app 裡的數字輸入:\"])}\n },\n \"scan\": {\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密鑰\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用你的雙因素驗證 app,掃瞄這個二維碼,或者輸入這些文字密鑰:\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"掃瞄\"])}\n },\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"身份驗證方法\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app,也丟失了你的恢復碼,你的賬號就再也無法登錄了。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在接收備份碼…\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢復碼。\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"當你生成新的恢復碼時,你的舊恢復碼就失效了。\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成新的恢復碼\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"雙因素驗證\"])}\n },\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新密碼\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字及簡介\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"域名\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在下面輸入密碼,以確認刪除帳戶。\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"永久刪除你的帳號和所有數據。\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除帳戶\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默認可見性範圍\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"數據導入/導出\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音與封鎖\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"當前密碼\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認新密碼\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"摺疊帶標題的內容\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"複選框\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默認)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您所選擇的主題文件不被 Pleroma 支持,因此主題未被修改。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在您的瀏覽器中無法使用\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鏈接\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"成功修改了密碼!\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密碼的時候出了點問題。\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密碼\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"郵箱修改成功!\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這是一個機器人賬號\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改電子郵箱\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"紅色(取消)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橙色(收藏)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"綠色(轉發)\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"藍色(回覆,關注)\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互動\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有封鎖\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有靜音\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要顯示我所關注的人\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要顯示關注我的人\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示關注數\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"將敏感附件和鏈接隱藏,點擊才能打開\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有效期至\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在離開頁面時暫停時間線推送\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"過濾器\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱私\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要停止收到某個指定的用戶的通知,請使用靜音功能。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖一個用戶會停掉所有他的通知,等同於取消關注。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"啟用 web 推送通知\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預置\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"配置文件背景圖\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橫幅圖片\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"個人資料\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置界面邊緣的圓角 (單位:像素)\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示所有回覆\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自動隱藏新帖子的按鈕(移動設備)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存設置時發生錯誤\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置已保存\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想屏蔽的用戶\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想要隱藏的用戶\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置新頭像\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置新的個人背景\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置新的個人橫幅\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"總是顯示主題框\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆時複製主題\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"比如電郵: \\\"re: 主題\\\"\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要複製\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發文內容類型\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鼠標懸停時播放GIF\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"開啟滾動到頂部時的自動推送\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主題\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用十六進制代碼(#rrggbb)來設置主題顏色。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你也可以通過切換複選框來覆蓋某些組件的顏色和透明。使用“清除所有”來清楚所有覆蓋設置。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"某些條目下的圖標是背景或文本對比指示器,鼠標懸停可以獲取詳細信息。請記住,使用透明度來顯示最差的情況。\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳照片\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶設置\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])}\n },\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦的頭像圖片最小的尺寸是 150x150 像素。\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在時間線上顯示繪文字互動\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出預置主題\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"過濾\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所有包含以下詞彙的內容都會被隱藏,一行一個\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出關注\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"將關注導出成 csv 文件\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入關注\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入關注時錯誤\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注已導入!尚需要一些時間來處理。\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在對話中隱藏附件\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在時間線上隱藏附件\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示被靜音的用戶的帖子\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"最多每個帖子所能顯示的縮略圖數量\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏指定實例的面板\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預載圖片\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊一次以打開工作場所不適宜的附件\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏帖子的統計數據(例如:收藏的次數)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏用戶的統計數據(例如:關注者的數量)\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通用\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前景\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖黑名單導入成功!需要一點時間來處理。\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入封鎖黑名單出錯\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖黑名單導入\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出你的封鎖黑名單到一個 csv 文件\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖黑名單導出\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"簡介\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頭像\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頭像(通知)\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頭像\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在關注的賬號遷移時自動重新關注\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入你當前密碼來確認你的身份\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App 名稱\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改你的電子郵箱時發生錯誤。\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索需要隱藏的域名\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從繪文字選擇器插入繪文字時,在繪文字兩側插入空格\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"實時接收發佈以及通知\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"最小發文範圍\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆時的複製範圍(私信是總是複製的)\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只顯示發送給我的回覆\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只顯示發送給我的回覆/發送給我關注的用戶的回覆\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"時間線中的回覆\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤消\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示管理徽章\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強調色\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前文箭頭\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示主持人徽章\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth代幣\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"代幣\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刷新token\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(不推薦使用,實驗性的,已知跳過文章)\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有趣\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏推送通知中的發送者與內容信息\"])},\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"後端版本\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端版本\"])}\n },\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"優化時間線渲染\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從CSV文件導入靜音\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音導入了!處理它們將需要一段時間。\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音導入\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入靜音時出錯\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"將靜音導出到csv文件\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音導出\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏實例桌布\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只顯示對我本人的回复\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示對我關注的人的回复\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示已隱藏的帖子\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏媒體預覽\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"詞過濾\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"與默認設置不同\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多設置\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"file_export_import\": {\n \"errors\": {\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所選文件不是受支持的Pleroma設置備份。 沒有進行任何更改。\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",此 PleromaFE(設置版本 \", _interpolate(_named(\"feMajor\")), \")過舊,無法處理\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",文件版本過舊,不受支持(最小設置版本 \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"檔案的小版本不同,有些設置可能無法載入\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從文件還原設置\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"備份設置和主題到文件\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"備份設置到文件\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設定備份\"])}\n },\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默認標記發文為敏感內容\"])},\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在右側顯示側邊欄\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏實例留言框\"])}\n },\n \"chats\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確實要刪除此消息嗎?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加載聊天時出了點問題。\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發送消息時出了點問題。\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您還沒有任何聊天記錄。 開始新的聊天!\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新聊天\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無法發布空消息\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"發消息給 \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"音頻\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"視頻\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图片\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"檔案\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"今天\"])}\n },\n \"status\": {\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音對話\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆:\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在個人資料置頂\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消在個人資料置頂\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除發文\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"置頂\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"書籤\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消書籤\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你真的想要刪除這條發文嗎?\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"對話取消靜音\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發文不可取得\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"複製發文鏈接\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"静音線程\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示完整標題\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\",有这些字:\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏完整標題\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示內容\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏內容\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"該帖已被刪除\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"外部來源\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"工作不安全\"])}\n },\n \"time\": {\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 時\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"天\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"天\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 時\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" y\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛\"])},\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"還有 \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 之前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分鐘\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分鐘\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])}\n },\n \"post_status\": {\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無法更新媒體,請重試\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體描述\"])},\n \"scope\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不公開 - 不會發送到公共時間軸\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共 - 發送到公共時間軸\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"僅關注者 - 只有關注了你的人能看到\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信 - 只發送給被提及的用戶\"])}\n },\n \"scope_notice\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條內容既不在公共時間線,也不會在所有已知網絡上可見\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注你的人才能看到本條內容\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條帖子可以被所有人看到\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"空的\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預覽\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在發送\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條內容只有被在消息開始處提及的用戶能夠看到。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條內容只有被提及的用戶能夠看到。\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"你的帳號沒有 \", _interpolate(_list(0)), \"。任何人都可以關注你並瀏覽你的上鎖內容。\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發佈新發文\"])},\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主題(可選)\"])},\n \"content_type\": {\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"純文本\"])}\n },\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標記附件為敏感內容\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上鎖\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛抵達洛杉磯。\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能發布沒有內容,沒有附件的發文\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發送\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma無法訪問瀏覽器存儲。您的登錄名或本地設置將不會保存,您可能會遇到意外問題。嘗試啟用Cookie。\"])}\n },\n \"timeline\": {\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"獲取更新時發生錯誤\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"對話\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這條內容僅關注者可見,或者是私信,因此不能轉發\"])},\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"摺疊\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入更早的發文\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已轉發\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示新內容\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新載入\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已是最新\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多發文\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有發文\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得時間線時發生錯誤:\", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已建立實時連接\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"丟失實時連接:CloseEvent代碼\", _interpolate(_list(0))])}\n },\n \"interactions\": {\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入更早的互動\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶遷移\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的關注者\"])},\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發和喜歡\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選擇全部\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未找到。\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"遠程用戶解析器\"])}\n },\n \"registration\": {\n \"validations\": {\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能和密碼一樣\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])}\n },\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示名稱\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:\\n你好,我是玲音。\\n我是一個住在日本郊區的動畫少女。你可能在 Wired 見過我。\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:岩倉玲音\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊圖片獲取新的驗證碼\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邀請碼\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認密碼\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"電子郵箱\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"簡介\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此實例的註冊需要手動批准。\\n請讓管理知道您為什麼想要註冊。\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊理由\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊\"])}\n },\n \"user_card\": {\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"就是你!!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每天\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"跨站關注\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"訂閱\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音中…\"])},\n \"admin_menu\": {\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除賬號\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除用戶\"])},\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"調停\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"賦予管理權限\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤銷管理權限\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"賦予主持人權限\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤銷主持人權限\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"啟用賬號\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關閉賬號\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標記所有的帖子都是工作場合不適\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從帖子裡刪除媒體文件\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強制帖子為不公開\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強制帖子為只有關注者可看\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁止從遠程實例關注用戶\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全禁止關注用戶\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從聯合實例中禁止用戶帖子\"])}\n },\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已封鎖!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請求已發送!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請求中…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消關注\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在關注\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注者\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在關注!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注了你!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隱藏\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"消息\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已靜音\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"報告\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發文\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"退訂\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消封鎖\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消封鎖中…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖中…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音中…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏轉發\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示轉發\"])},\n \"roles\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主持人\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理員\"])}\n },\n \"highlight\": {\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無突出顯示\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"單色背景\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"條紋背景\"])},\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"彩條\"])}\n },\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"機器人\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"編輯個人資料\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶時間線\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,此個人資料不存在。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,載入個人資料時出錯。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"報告 \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此報告會發送給你的實例管理員。你可以在下面提供更多詳細信息解釋報告的緣由:\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"轉發 \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"當處理你的請求時,發生了一個錯誤。\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它評論\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個賬號是從另外一個服務器。同時發送一個報告到那裡?\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦關注\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳多媒體\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加互動\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶設置\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受關注請求\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕關注請求\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"書籤\"])}\n },\n \"upload\": {\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])}\n },\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳失敗。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文件太大[\", _interpolate(_named(\"filesize\")), \" \", _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), \" \", _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"稍後再試\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"上傳錯誤:\", _interpolate(_list(0))])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標籤\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在討論\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在討論\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有搜索結果\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忘記密碼了?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置密碼\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入你的電郵地址或者用戶名,我們將發送一個鏈接到你的郵箱,用於重置密碼。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你的電郵地址或者用戶名\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"檢查你的郵箱,會有一個鏈接用於重置密碼。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回到首頁\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你觸發了嘗試的限制,請稍後再試。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密碼重置已經被禁用。請聯繫你的實例管理員。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必須重置密碼才能登陸。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必須重置密碼,但是密碼重置被禁用了。請聯繫您所在實例的管理員。\"])}\n },\n \"announcements\": {\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"錯誤: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關閉\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"開始時間: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"結束時間: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這是全日活動\"])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"time\")), \" 開始\"])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"time\")), \" 結束\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"time\")), \" 發布\"])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"編輯\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"送出\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此公告無效\"])},\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標示為以閱讀\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在此輸入您的公告內容……\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發布公告\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發布\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","named","_named","list","_list","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js b/priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js
deleted file mode 100644
index 2697cd20d..000000000
--- a/priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[6544],{37644:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={emoji:{unicode:r=>{const{normalize:n}=r;return n(["統一碼繪文字"])},custom:r=>{const{normalize:n}=r;return n(["自定義繪文字"])},add_emoji:r=>{const{normalize:n}=r;return n(["插入繪文字"])},search_emoji:r=>{const{normalize:n}=r;return n(["搜索繪文字"])},keep_open:r=>{const{normalize:n}=r;return n(["選擇器保持打開"])},emoji:r=>{const{normalize:n}=r;return n(["繪文字"])},stickers:r=>{const{normalize:n}=r;return n(["貼紙"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["加載所有繪文字(共 ",e(t("emojiAmount"))," 個)"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["最先加載的 ",e(t("saneAmount"))," ,加載全部繪文字可能會帶來性能問題。"])}},polls:{not_enough_options:r=>{const{normalize:n}=r;return n(["投票的選項太少"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票 ",e(t(0))," 前已結束"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票於 ",e(t(0))," 內結束"])},expiry:r=>{const{normalize:n}=r;return n(["投票期限"])},multiple_choices:r=>{const{normalize:n}=r;return n(["多選"])},single_choice:r=>{const{normalize:n}=r;return n(["單選"])},type:r=>{const{normalize:n}=r;return n(["問卷類型"])},vote:r=>{const{normalize:n}=r;return n(["投票"])},votes:r=>{const{normalize:n}=r;return n(["票"])},option:r=>{const{normalize:n}=r;return n(["選項"])},add_option:r=>{const{normalize:n}=r;return n(["增加選項"])},add_poll:r=>{const{normalize:n}=r;return n(["增加投票"])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 票"]),n([e(t("count"))," 票"])])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 人已投票"]),n([e(t("count"))," 人已投票"])])}},notifications:{reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["作出了 ",e(t(0))," 的反應"])},migrated_to:r=>{const{normalize:n}=r;return n(["遷移到"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["沒有更多的通知"])},repeated_you:r=>{const{normalize:n}=r;return n(["轉發了你的發文"])},read:r=>{const{normalize:n}=r;return n(["已閱!"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},load_older:r=>{const{normalize:n}=r;return n(["載入更早的通知"])},follow_request:r=>{const{normalize:n}=r;return n(["想要關注你"])},followed_you:r=>{const{normalize:n}=r;return n(["關注了你"])},favorited_you:r=>{const{normalize:n}=r;return n(["喜歡了你的發文"])},broken_favorite:r=>{const{normalize:n}=r;return n(["未知的狀態,正在搜索中…"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["獲取通知錯誤:",e(t(0))])}},nav:{chats:r=>{const{normalize:n}=r;return n(["聊天"])},timelines:r=>{const{normalize:n}=r;return n(["時間線"])},preferences:r=>{const{normalize:n}=r;return n(["偏好設置"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推薦關注"])},search:r=>{const{normalize:n}=r;return n(["搜索"])},user_search:r=>{const{normalize:n}=r;return n(["用戶搜索"])},bookmarks:r=>{const{normalize:n}=r;return n(["書籤"])},twkn:r=>{const{normalize:n}=r;return n(["已知網絡"])},timeline:r=>{const{normalize:n}=r;return n(["時間線"])},public_tl:r=>{const{normalize:n}=r;return n(["公共時間線"])},dms:r=>{const{normalize:n}=r;return n(["私信"])},interactions:r=>{const{normalize:n}=r;return n(["互動"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},friend_requests:r=>{const{normalize:n}=r;return n(["關注請求"])},back:r=>{const{normalize:n}=r;return n(["後退"])},administration:r=>{const{normalize:n}=r;return n(["管理員"])},about:r=>{const{normalize:n}=r;return n(["關於"])},home_timeline:r=>{const{normalize:n}=r;return n(["家時間線"])}},media_modal:{next:r=>{const{normalize:n}=r;return n(["往後"])},previous:r=>{const{normalize:n}=r;return n(["往前"])}},login:{heading:{recovery:r=>{const{normalize:n}=r;return n(["雙重因素恢復"])},totp:r=>{const{normalize:n}=r;return n(["雙重因素驗證"])}},recovery_code:r=>{const{normalize:n}=r;return n(["恢復碼"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["輸入一個雙重因素驗證碼"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["輸入一個恢復碼"])},authentication_code:r=>{const{normalize:n}=r;return n(["驗證碼"])},hint:r=>{const{normalize:n}=r;return n(["登錄後加入討論"])},username:r=>{const{normalize:n}=r;return n(["用戶名"])},register:r=>{const{normalize:n}=r;return n(["註冊"])},placeholder:r=>{const{normalize:n}=r;return n(["例:鈴音"])},password:r=>{const{normalize:n}=r;return n(["密碼"])},logout:r=>{const{normalize:n}=r;return n(["登出"])},description:r=>{const{normalize:n}=r;return n(["用 OAuth 登入"])},login:r=>{const{normalize:n}=r;return n(["登入"])}},importer:{error:r=>{const{normalize:n}=r;return n(["導入此文件時出現一個錯誤。"])},success:r=>{const{normalize:n}=r;return n(["導入成功。"])},submit:r=>{const{normalize:n}=r;return n(["提交"])}},image_cropper:{cancel:r=>{const{normalize:n}=r;return n(["取消"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["保存不裁剪"])},save:r=>{const{normalize:n}=r;return n(["保存"])},crop_picture:r=>{const{normalize:n}=r;return n(["裁剪圖片"])}},general:{peek:r=>{const{normalize:n}=r;return n(["窺視"])},close:r=>{const{normalize:n}=r;return n(["關閉"])},verify:r=>{const{normalize:n}=r;return n(["驗證"])},confirm:r=>{const{normalize:n}=r;return n(["確認"])},enable:r=>{const{normalize:n}=r;return n(["啟用"])},disable:r=>{const{normalize:n}=r;return n(["禁用"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])},dismiss:r=>{const{normalize:n}=r;return n(["忽略"])},show_less:r=>{const{normalize:n}=r;return n(["收起"])},show_more:r=>{const{normalize:n}=r;return n(["展開"])},optional:r=>{const{normalize:n}=r;return n(["可選"])},retry:r=>{const{normalize:n}=r;return n(["再試"])},error_retry:r=>{const{normalize:n}=r;return n(["請再試"])},generic_error:r=>{const{normalize:n}=r;return n(["發生一個錯誤"])},loading:r=>{const{normalize:n}=r;return n(["載入中…"])},more:r=>{const{normalize:n}=r;return n(["更多"])},submit:r=>{const{normalize:n}=r;return n(["提交"])},apply:r=>{const{normalize:n}=r;return n(["應用"])},role:{moderator:r=>{const{normalize:n}=r;return n(["主持人"])},admin:r=>{const{normalize:n}=r;return n(["管理員"])}},flash_content:r=>{const{normalize:n}=r;return n(["點擊以使用 Ruffle 顯示 Flash 內容(實驗性,可能無效)。"])},flash_security:r=>{const{normalize:n}=r;return n(["請注意,這可能有潜在的危險,因為Flash內容仍然是武斷的程式碼。"])},flash_fail:r=>{const{normalize:n}=r;return n(["無法加載flash內容,請參閱控制台瞭解詳細資訊。"])}},finder:{find_user:r=>{const{normalize:n}=r;return n(["尋找用戶"])},error_fetching_user:r=>{const{normalize:n}=r;return n(["獲取用戶時發生錯誤"])}},features_panel:{who_to_follow:r=>{const{normalize:n}=r;return n(["推薦關注"])},title:r=>{const{normalize:n}=r;return n(["特色"])},text_limit:r=>{const{normalize:n}=r;return n(["文字數量限制"])},scope_options:r=>{const{normalize:n}=r;return n(["可見範圍設置"])},media_proxy:r=>{const{normalize:n}=r;return n(["媒體代理"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Pleroma 聊天"])},chat:r=>{const{normalize:n}=r;return n(["聊天"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},upload_limit:r=>{const{normalize:n}=r;return n(["上傳限制"])}},exporter:{processing:r=>{const{normalize:n}=r;return n(["正在處理,稍後會提示您下載文件"])},export:r=>{const{normalize:n}=r;return n(["導出"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["取消靜音中…"])},unmute:r=>{const{normalize:n}=r;return n(["取消靜音"])},mute_progress:r=>{const{normalize:n}=r;return n(["靜音中…"])},mute:r=>{const{normalize:n}=r;return n(["靜音"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["留言板"])}},about:{staff:r=>{const{normalize:n}=r;return n(["職員"])},mrf:{simple:{media_nsfw_desc:r=>{const{normalize:n}=r;return n(["這個實例強迫以下實例的帖子媒體設定為敏感:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["媒體強制設定為敏感"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["這個實例移除以下實例的帖子媒體:"])},media_removal:r=>{const{normalize:n}=r;return n(["移除媒體"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["這個實例在所有已知網絡中移除下列實例:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["從所有已知網路中移除"])},quarantine_desc:r=>{const{normalize:n}=r;return n(["本實例只會把公開發文發送到下列實例:"])},quarantine:r=>{const{normalize:n}=r;return n(["隔離"])},reject_desc:r=>{const{normalize:n}=r;return n(["本實例不會接收來自下列實例的消息:"])},reject:r=>{const{normalize:n}=r;return n(["拒絕"])},accept_desc:r=>{const{normalize:n}=r;return n(["本實例只接收來自下列實例的消息:"])},simple_policies:r=>{const{normalize:n}=r;return n(["站規"])},accept:r=>{const{normalize:n}=r;return n(["接受"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRF 策略會影響本實例的互通行為。以下策略已啟用:"])},keyword:{ftl_removal:r=>{const{normalize:n}=r;return n(["從“全部已知網絡”時間線上移除"])},replace:r=>{const{normalize:n}=r;return n(["取代"])},reject:r=>{const{normalize:n}=r;return n(["拒絕"])},is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},keyword_policies:r=>{const{normalize:n}=r;return n(["關鍵字政策"])}},mrf_policies:r=>{const{normalize:n}=r;return n(["已啟用的MRF政策"])},federation:r=>{const{normalize:n}=r;return n(["聯邦"])}}},settings:{style:{common:{color:r=>{const{normalize:n}=r;return n(["顏色"])},contrast:{context:{"18pt":r=>{const{normalize:n}=r;return n(["大字文本 (18pt+)"])},text:r=>{const{normalize:n}=r;return n(["文本"])}},level:{aaa:r=>{const{normalize:n}=r;return n(["符合 AAA 等級準則(推薦)"])},aa:r=>{const{normalize:n}=r;return n(["符合 AA 等級準則(最低)"])},bad:r=>{const{normalize:n}=r;return n(["不符合任何輔助功能指南"])}},hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["對比度是 ",e(t("ratio")),", 它 ",e(t("level"))," ",e(t("context"))])}},opacity:r=>{const{normalize:n}=r;return n(["透明度"])}},advanced_colors:{faint_text:r=>{const{normalize:n}=r;return n(["灰度文字"])},alert_error:r=>{const{normalize:n}=r;return n(["錯誤"])},badge_notification:r=>{const{normalize:n}=r;return n(["通知"])},alert:r=>{const{normalize:n}=r;return n(["提醒或警告背景色"])},_tab_label:r=>{const{normalize:n}=r;return n(["高级"])},alert_warning:r=>{const{normalize:n}=r;return n(["警告"])},alert_neutral:r=>{const{normalize:n}=r;return n(["中性"])},post:r=>{const{normalize:n}=r;return n(["帖子/用戶簡介"])},badge:r=>{const{normalize:n}=r;return n(["徽章背景"])},popover:r=>{const{normalize:n}=r;return n(["提示框,菜單,彈出框"])},panel_header:r=>{const{normalize:n}=r;return n(["面板標題"])},top_bar:r=>{const{normalize:n}=r;return n(["頂欄"])},borders:r=>{const{normalize:n}=r;return n(["邊框"])},buttons:r=>{const{normalize:n}=r;return n(["按鈕"])},inputs:r=>{const{normalize:n}=r;return n(["輸入框"])},underlay:r=>{const{normalize:n}=r;return n(["底襯"])},poll:r=>{const{normalize:n}=r;return n(["投票統計圖"])},icons:r=>{const{normalize:n}=r;return n(["圖標"])},highlight:r=>{const{normalize:n}=r;return n(["強調元素"])},pressed:r=>{const{normalize:n}=r;return n(["按下"])},selectedPost:r=>{const{normalize:n}=r;return n(["選中的帖子"])},selectedMenu:r=>{const{normalize:n}=r;return n(["選中的菜單項"])},disabled:r=>{const{normalize:n}=r;return n(["關閉"])},toggled:r=>{const{normalize:n}=r;return n(["切換"])},tabs:r=>{const{normalize:n}=r;return n(["標籤"])},chat:{incoming:r=>{const{normalize:n}=r;return n(["收到"])},outgoing:r=>{const{normalize:n}=r;return n(["發出"])},border:r=>{const{normalize:n}=r;return n(["邊框"])}},wallpaper:r=>{const{normalize:n}=r;return n(["桌布"])}},preview:{header_faint:r=>{const{normalize:n}=r;return n(["這很正常"])},header:r=>{const{normalize:n}=r;return n(["預覽"])},content:r=>{const{normalize:n}=r;return n(["內容"])},error:r=>{const{normalize:n}=r;return n(["例子錯誤"])},button:r=>{const{normalize:n}=r;return n(["按鈕"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["有堆 ",e(t(0))," 和 ",e(t(1))])},mono:r=>{const{normalize:n}=r;return n(["內容"])},input:r=>{const{normalize:n}=r;return n(["剛剛抵達洛杉磯."])},faint_link:r=>{const{normalize:n}=r;return n(["有用的手冊"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["閱讀我們的 ",e(t(0))," ,然而什麼有用的也學不到!"])},checkbox:r=>{const{normalize:n}=r;return n(["我已經瀏覽了條款及細則"])},link:r=>{const{normalize:n}=r;return n(["一個很好的小鏈接"])}},shadows:{override:r=>{const{normalize:n}=r;return n(["覆寫"])},_tab_label:r=>{const{normalize:n}=r;return n(["陰影和燈光"])},component:r=>{const{normalize:n}=r;return n(["組件"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["陰影 #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["模糊"])},spread:r=>{const{normalize:n}=r;return n(["擴散"])},inset:r=>{const{normalize:n}=r;return n(["插圖"])},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["對於陰影,您還可以使用",e(t(0)),"表示法來使用其他顏色插槽。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["警告,此陰影設置會總是使用 ",e(t(0))," ,如果瀏覽器支持的話。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 不支持參數 ",e(t(1))," 和關鍵詞 ",e(t(2))," 。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["請注意組合兩個內部和非內部的陰影到頭像上,在透明頭像上可能會有意料之外的效果。"])},spread_zero:r=>{const{normalize:n}=r;return n(["陰影的擴散 > 0 會同設置成零一樣"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["插入內部的陰影會使用 ",e(t(0))])}},components:{panel:r=>{const{normalize:n}=r;return n(["面板"])},panelHeader:r=>{const{normalize:n}=r;return n(["面板標題"])},topBar:r=>{const{normalize:n}=r;return n(["頂欄"])},avatar:r=>{const{normalize:n}=r;return n(["用戶頭像(在個人資料欄)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["用戶頭像(在帖子顯示欄)"])},popup:r=>{const{normalize:n}=r;return n(["彈窗和工具提示"])},button:r=>{const{normalize:n}=r;return n(["按鈕"])},buttonHover:r=>{const{normalize:n}=r;return n(["按鈕(懸停)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["按鈕(按下)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["按鈕(按下和懸停)"])},input:r=>{const{normalize:n}=r;return n(["輸入框"])}}},switcher:{use_snapshot:r=>{const{normalize:n}=r;return n(["舊版"])},load_theme:r=>{const{normalize:n}=r;return n(["載入主題"])},keep_color:r=>{const{normalize:n}=r;return n(["保留顏色"])},keep_shadows:r=>{const{normalize:n}=r;return n(["保留陰影"])},keep_opacity:r=>{const{normalize:n}=r;return n(["保留透明度"])},keep_roundness:r=>{const{normalize:n}=r;return n(["保留圓角"])},help:{migration_napshot_gone:r=>{const{normalize:n}=r;return n(["不知出於何種原因,主題快照缺失了,一些地方可能與您印象中的不符。"])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["版本衝突:很有可能是 FE 版本回滾後再次升級了,如果您使用舊版本的 FE 更改了主題那麼您可能需要使用舊版本,否則請使用新版本。"])},future_version_imported:r=>{const{normalize:n}=r;return n(["您導入的文件來自更高版本的 FE。"])},older_version_imported:r=>{const{normalize:n}=r;return n(["您導入的文件來自舊版本的 FE。"])},snapshot_missing:r=>{const{normalize:n}=r;return n(["在文件中沒有主題快照,所以網站外觀可能會與原來預想的不同。"])},fe_upgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的主題引擎隨著版本更新升級了。"])},fe_downgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的版本回滾了。"])},upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE 已升級,主題會和你記憶中的不太一樣。"])},v2_imported:r=>{const{normalize:n}=r;return n(["您導入的文件是舊版 FE 的。我們儘可能保持兼容性,但還是可能出現不一致的情況。"])},snapshot_present:r=>{const{normalize:n}=r;return n(["載入快照已加載,因此所有值均被覆蓋。 您可以改為載入主題實際數據。"])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["為保萬無一失,載入了主題快照。您可以試著載入主題數據。"])}},use_source:r=>{const{normalize:n}=r;return n(["新版本"])},keep_as_is:r=>{const{normalize:n}=r;return n(["保持原狀"])},clear_opacity:r=>{const{normalize:n}=r;return n(["清除透明度"])},clear_all:r=>{const{normalize:n}=r;return n(["清除全部"])},reset:r=>{const{normalize:n}=r;return n(["重置"])},keep_fonts:r=>{const{normalize:n}=r;return n(["保留字體"])},save_load_hint:r=>{const{normalize:n}=r;return n(['"保留" 選項在選擇或載入主題時保留當前設置的選項,在導出主題時還會存儲上述選項。當所有複選框未設置時,導出主題將保存所有內容。'])}},fonts:{components:{interface:r=>{const{normalize:n}=r;return n(["界面"])},input:r=>{const{normalize:n}=r;return n(["輸入框"])},post:r=>{const{normalize:n}=r;return n(["發帖文字"])},postCode:r=>{const{normalize:n}=r;return n(["帖子中使用等間距文字(富文本)"])}},_tab_label:r=>{const{normalize:n}=r;return n(["字體"])},help:r=>{const{normalize:n}=r;return n(["給用戶界面的元素選擇字體。選擇 “自選”的你必須輸入確切的字體名稱。"])},family:r=>{const{normalize:n}=r;return n(["字體名稱"])},size:r=>{const{normalize:n}=r;return n(["大小 (像素)"])},weight:r=>{const{normalize:n}=r;return n(["字重 (粗體))"])},custom:r=>{const{normalize:n}=r;return n(["自選"])}},common_colors:{foreground_hint:r=>{const{normalize:n}=r;return n(["點擊”高級“ 標籤進行細緻的控制"])},main:r=>{const{normalize:n}=r;return n(["常用顏色"])},_tab_label:r=>{const{normalize:n}=r;return n(["共同"])},rgbo:r=>{const{normalize:n}=r;return n(["圖標,強調,徽章"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["圓角"])}}},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["屏蔽來自你沒有關注的用戶的通知"])},user_mutes:r=>{const{normalize:n}=r;return n(["用户"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["不顯示關注者數量"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["不顯示富文本格式"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["用戶遷移"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["轉發"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["提及"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["喜歡"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["界面語言"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默認:",e(t("value")),")"])},inputRadius:r=>{const{normalize:n}=r;return n(["輸入框"])},import_theme:r=>{const{normalize:n}=r;return n(["導入預置主題"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["從 csv 文件中導入關注"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["從 csv 文件中導入封鎖黑名單名單"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["隱藏過濾的發文"])},lock_account_description:r=>{const{normalize:n}=r;return n(["你需要手動審核關注請求"])},loop_video:r=>{const{normalize:n}=r;return n(["循環視頻"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["只循環沒有聲音的視頻(例如:Mastodon 裡的“GIF”)"])},mutes_tab:r=>{const{normalize:n}=r;return n(["靜音"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["在彈出框內播放視頻"])},profile_fields:{add_field:r=>{const{normalize:n}=r;return n(["添加字段"])},name:r=>{const{normalize:n}=r;return n(["標籤"])},value:r=>{const{normalize:n}=r;return n(["內容"])},label:r=>{const{normalize:n}=r;return n(["個人資料元數據"])}},use_contain_fit:r=>{const{normalize:n}=r;return n(["生成縮略圖時不要裁剪附件"])},notification_visibility:r=>{const{normalize:n}=r;return n(["要顯示的通知類型"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["關注"])},new_email:r=>{const{normalize:n}=r;return n(["新電郵"])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["比如mastodon: copy as is"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["您確定要重置個人資料背景圖嗎?"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["您確定要重置橫幅圖片嗎?"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["您確定要重置頭像嗎?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["重置橫幅圖片"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["重置個人資料背景圖"])},reset_avatar:r=>{const{normalize:n}=r;return n(["重置頭像"])},discoverable:r=>{const{normalize:n}=r;return n(["允許通過搜索檢索等服務找到此賬號"])},delete_account_error:r=>{const{normalize:n}=r;return n(["刪除賬戶時發生錯誤,如果一直刪除不了,請聯繫實例管理員。"])},composing:r=>{const{normalize:n}=r;return n(["寫作設置"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["聊天訊息"])},mfa:{confirm_and_enable:r=>{const{normalize:n}=r;return n(["確認並啟用OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["設置OTP"])},otp:r=>{const{normalize:n}=r;return n(["OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["預設OTP"])},verify:{desc:r=>{const{normalize:n}=r;return n(["要啟用雙因素驗證,請把你的雙因素驗證 app 裡的數字輸入:"])}},scan:{secret_code:r=>{const{normalize:n}=r;return n(["密鑰"])},desc:r=>{const{normalize:n}=r;return n(["使用你的雙因素驗證 app,掃瞄這個二維碼,或者輸入這些文字密鑰:"])},title:r=>{const{normalize:n}=r;return n(["掃瞄"])}},authentication_methods:r=>{const{normalize:n}=r;return n(["身份驗證方法"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app,也丟失了你的恢復碼,你的賬號就再也無法登錄了。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["正在接收備份碼…"])},recovery_codes:r=>{const{normalize:n}=r;return n(["恢復碼。"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["當你生成新的恢復碼時,你的舊恢復碼就失效了。"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["生成新的恢復碼"])},title:r=>{const{normalize:n}=r;return n(["雙因素驗證"])}},new_password:r=>{const{normalize:n}=r;return n(["新密碼"])},name_bio:r=>{const{normalize:n}=r;return n(["名字及簡介"])},name:r=>{const{normalize:n}=r;return n(["名字"])},domain_mutes:r=>{const{normalize:n}=r;return n(["域名"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["在下面輸入密碼,以確認刪除帳戶。"])},delete_account_description:r=>{const{normalize:n}=r;return n(["永久刪除你的帳號和所有數據。"])},delete_account:r=>{const{normalize:n}=r;return n(["刪除帳戶"])},default_vis:r=>{const{normalize:n}=r;return n(["默認可見性範圍"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["數據導入/導出"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["靜音與封鎖"])},current_password:r=>{const{normalize:n}=r;return n(["當前密碼"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["確認新密碼"])},collapse_subject:r=>{const{normalize:n}=r;return n(["摺疊帶標題的內容"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["複選框"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(默認)"])},interface:r=>{const{normalize:n}=r;return n(["界面"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["您所選擇的主題文件不被 Pleroma 支持,因此主題未被修改。"])},limited_availability:r=>{const{normalize:n}=r;return n(["在您的瀏覽器中無法使用"])},links:r=>{const{normalize:n}=r;return n(["鏈接"])},changed_password:r=>{const{normalize:n}=r;return n(["成功修改了密碼!"])},change_password_error:r=>{const{normalize:n}=r;return n(["修改密碼的時候出了點問題。"])},change_password:r=>{const{normalize:n}=r;return n(["修改密碼"])},changed_email:r=>{const{normalize:n}=r;return n(["郵箱修改成功!"])},bot:r=>{const{normalize:n}=r;return n(["這是一個機器人賬號"])},change_email:r=>{const{normalize:n}=r;return n(["修改電子郵箱"])},cRed:r=>{const{normalize:n}=r;return n(["紅色(取消)"])},cOrange:r=>{const{normalize:n}=r;return n(["橙色(收藏)"])},cGreen:r=>{const{normalize:n}=r;return n(["綠色(轉發)"])},cBlue:r=>{const{normalize:n}=r;return n(["藍色(回覆,關注)"])},btnRadius:r=>{const{normalize:n}=r;return n(["按鈕"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["互動"])},no_blocks:r=>{const{normalize:n}=r;return n(["沒有封鎖"])},no_mutes:r=>{const{normalize:n}=r;return n(["沒有靜音"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["不要顯示我所關注的人"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["不要顯示關注我的人"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["不顯示關注數"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["將敏感附件和鏈接隱藏,點擊才能打開"])},valid_until:r=>{const{normalize:n}=r;return n(["有效期至"])},panelRadius:r=>{const{normalize:n}=r;return n(["面板"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["在離開頁面時暫停時間線推送"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},notification_setting_filters:r=>{const{normalize:n}=r;return n(["過濾器"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["隱私"])},notification_mutes:r=>{const{normalize:n}=r;return n(["要停止收到某個指定的用戶的通知,請使用靜音功能。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["封鎖一個用戶會停掉所有他的通知,等同於取消關注。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["啟用 web 推送通知"])},presets:r=>{const{normalize:n}=r;return n(["預置"])},profile_background:r=>{const{normalize:n}=r;return n(["配置文件背景圖"])},profile_banner:r=>{const{normalize:n}=r;return n(["橫幅圖片"])},profile_tab:r=>{const{normalize:n}=r;return n(["個人資料"])},radii_help:r=>{const{normalize:n}=r;return n(["設置界面邊緣的圓角 (單位:像素)"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["顯示所有回覆"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["自動隱藏新帖子的按鈕(移動設備)"])},saving_err:r=>{const{normalize:n}=r;return n(["保存設置時發生錯誤"])},saving_ok:r=>{const{normalize:n}=r;return n(["設置已保存"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["搜索你想屏蔽的用戶"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["搜索你想要隱藏的用戶"])},security_tab:r=>{const{normalize:n}=r;return n(["安全"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["設置新頭像"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["設置新的個人背景"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["設置新的個人橫幅"])},settings:r=>{const{normalize:n}=r;return n(["設置"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["總是顯示主題框"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["回覆時複製主題"])},subject_line_email:r=>{const{normalize:n}=r;return n(['比如電郵: "re: 主題"'])},subject_line_noop:r=>{const{normalize:n}=r;return n(["不要複製"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["發文內容類型"])},stop_gifs:r=>{const{normalize:n}=r;return n(["鼠標懸停時播放GIF"])},streaming:r=>{const{normalize:n}=r;return n(["開啟滾動到頂部時的自動推送"])},text:r=>{const{normalize:n}=r;return n(["文本"])},theme:r=>{const{normalize:n}=r;return n(["主題"])},theme_help:r=>{const{normalize:n}=r;return n(["使用十六進制代碼(#rrggbb)來設置主題顏色。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["你也可以通過切換複選框來覆蓋某些組件的顏色和透明。使用“清除所有”來清楚所有覆蓋設置。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["某些條目下的圖標是背景或文本對比指示器,鼠標懸停可以獲取詳細信息。請記住,使用透明度來顯示最差的情況。"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["提醒"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["上傳照片"])},user_settings:r=>{const{normalize:n}=r;return n(["用戶設置"])},values:{false:r=>{const{normalize:n}=r;return n(["否"])},true:r=>{const{normalize:n}=r;return n(["是"])}},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["推薦的頭像圖片最小的尺寸是 150x150 像素。"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["在時間線上顯示繪文字互動"])},export_theme:r=>{const{normalize:n}=r;return n(["導出預置主題"])},filtering:r=>{const{normalize:n}=r;return n(["過濾"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["所有包含以下詞彙的內容都會被隱藏,一行一個"])},follow_export:r=>{const{normalize:n}=r;return n(["導出關注"])},follow_export_button:r=>{const{normalize:n}=r;return n(["將關注導出成 csv 文件"])},follow_import:r=>{const{normalize:n}=r;return n(["導入關注"])},follow_import_error:r=>{const{normalize:n}=r;return n(["導入關注時錯誤"])},follows_imported:r=>{const{normalize:n}=r;return n(["關注已導入!尚需要一些時間來處理。"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["在對話中隱藏附件"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["在時間線上隱藏附件"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["不顯示被靜音的用戶的帖子"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["最多每個帖子所能顯示的縮略圖數量"])},hide_isp:r=>{const{normalize:n}=r;return n(["隱藏指定實例的面板"])},preload_images:r=>{const{normalize:n}=r;return n(["預載圖片"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["點擊一次以打開工作場所不適宜的附件"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["隱藏帖子的統計數據(例如:收藏的次數)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["隱藏用戶的統計數據(例如:關注者的數量)"])},general:r=>{const{normalize:n}=r;return n(["通用"])},foreground:r=>{const{normalize:n}=r;return n(["前景"])},blocks_tab:r=>{const{normalize:n}=r;return n(["封鎖"])},blocks_imported:r=>{const{normalize:n}=r;return n(["封鎖黑名單導入成功!需要一點時間來處理。"])},block_import_error:r=>{const{normalize:n}=r;return n(["導入封鎖黑名單出錯"])},block_import:r=>{const{normalize:n}=r;return n(["封鎖黑名單導入"])},block_export_button:r=>{const{normalize:n}=r;return n(["導出你的封鎖黑名單到一個 csv 文件"])},block_export:r=>{const{normalize:n}=r;return n(["封鎖黑名單導出"])},bio:r=>{const{normalize:n}=r;return n(["簡介"])},background:r=>{const{normalize:n}=r;return n(["背景"])},avatarRadius:r=>{const{normalize:n}=r;return n(["頭像"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["頭像(通知)"])},avatar:r=>{const{normalize:n}=r;return n(["頭像"])},attachments:r=>{const{normalize:n}=r;return n(["附件"])},attachmentRadius:r=>{const{normalize:n}=r;return n(["附件"])},allow_following_move:r=>{const{normalize:n}=r;return n(["正在關注的賬號遷移時自動重新關注"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["輸入你當前密碼來確認你的身份"])},security:r=>{const{normalize:n}=r;return n(["安全"])},app_name:r=>{const{normalize:n}=r;return n(["App 名稱"])},change_email_error:r=>{const{normalize:n}=r;return n(["修改你的電子郵箱時發生錯誤。"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["搜索需要隱藏的域名"])},pad_emoji:r=>{const{normalize:n}=r;return n(["從繪文字選擇器插入繪文字時,在繪文字兩側插入空格"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["實時接收發佈以及通知"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["最小發文範圍"])},scope_copy:r=>{const{normalize:n}=r;return n(["回覆時的複製範圍(私信是總是複製的)"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["只顯示發送給我的回覆"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["只顯示發送給我的回覆/發送給我關注的用戶的回覆"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["時間線中的回覆"])},revoke_token:r=>{const{normalize:n}=r;return n(["撤消"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["顯示管理徽章"])},accent:r=>{const{normalize:n}=r;return n(["強調色"])},greentext:r=>{const{normalize:n}=r;return n(["前文箭頭"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["顯示主持人徽章"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth代幣"])},token:r=>{const{normalize:n}=r;return n(["代幣"])},refresh_token:r=>{const{normalize:n}=r;return n(["刷新token"])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(不推薦使用,實驗性的,已知跳過文章)"])},fun:r=>{const{normalize:n}=r;return n(["有趣"])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["隱藏推送通知中的發送者與內容信息"])},version:{title:r=>{const{normalize:n}=r;return n(["版本"])},backend_version:r=>{const{normalize:n}=r;return n(["後端版本"])},frontend_version:r=>{const{normalize:n}=r;return n(["前端版本"])}},virtual_scrolling:r=>{const{normalize:n}=r;return n(["優化時間線渲染"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["從CSV文件導入靜音"])},mutes_imported:r=>{const{normalize:n}=r;return n(["靜音導入了!處理它們將需要一段時間。"])},mute_import:r=>{const{normalize:n}=r;return n(["靜音導入"])},mute_import_error:r=>{const{normalize:n}=r;return n(["導入靜音時出錯"])},mute_export_button:r=>{const{normalize:n}=r;return n(["將靜音導出到csv文件"])},mute_export:r=>{const{normalize:n}=r;return n(["靜音導出"])},hide_wallpaper:r=>{const{normalize:n}=r;return n(["隱藏實例桌布"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["只顯示對我本人的回复"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["顯示對我關注的人的回复"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["不顯示已隱藏的帖子"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["隱藏媒體預覽"])},word_filter:r=>{const{normalize:n}=r;return n(["詞過濾"])},setting_changed:r=>{const{normalize:n}=r;return n(["與默認設置不同"])},more_settings:r=>{const{normalize:n}=r;return n(["更多設置"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},file_export_import:{errors:{invalid_file:r=>{const{normalize:n}=r;return n(["所選文件不是受支持的Pleroma設置備份。 沒有進行任何更改。"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",此 PleromaFE(設置版本 ",e(t("feMajor")),")過舊,無法處理"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",文件版本過舊,不受支持(最小設置版本 ",e(t("feMajor")),")"])},file_slightly_new:r=>{const{normalize:n}=r;return n(["檔案的小版本不同,有些設置可能無法載入"])}},restore_settings:r=>{const{normalize:n}=r;return n(["從文件還原設置"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["備份設置和主題到文件"])},backup_settings:r=>{const{normalize:n}=r;return n(["備份設置到文件"])},backup_restore:r=>{const{normalize:n}=r;return n(["設定備份"])}},sensitive_by_default:r=>{const{normalize:n}=r;return n(["默認標記發文為敏感內容"])},right_sidebar:r=>{const{normalize:n}=r;return n(["在右側顯示側邊欄"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["隱藏實例留言框"])}},chats:{more:r=>{const{normalize:n}=r;return n(["更多"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您確實要刪除此消息嗎?"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["加載聊天時出了點問題。"])},error_sending_message:r=>{const{normalize:n}=r;return n(["發送消息時出了點問題。"])},empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["您還沒有任何聊天記錄。 開始新的聊天!"])},new:r=>{const{normalize:n}=r;return n(["新聊天"])},empty_message_error:r=>{const{normalize:n}=r;return n(["無法發布空消息"])},you:r=>{const{normalize:n}=r;return n(["你:"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["發消息給 ",e(t("nickname"))])},delete:r=>{const{normalize:n}=r;return n(["刪除"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])}},file_type:{audio:r=>{const{normalize:n}=r;return n(["音頻"])},video:r=>{const{normalize:n}=r;return n(["視頻"])},image:r=>{const{normalize:n}=r;return n(["图片"])},file:r=>{const{normalize:n}=r;return n(["檔案"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["今天"])}},status:{mute_conversation:r=>{const{normalize:n}=r;return n(["靜音對話"])},replies_list:r=>{const{normalize:n}=r;return n(["回覆:"])},reply_to:r=>{const{normalize:n}=r;return n(["回覆"])},pin:r=>{const{normalize:n}=r;return n(["在個人資料置頂"])},unpin:r=>{const{normalize:n}=r;return n(["取消在個人資料置頂"])},favorites:r=>{const{normalize:n}=r;return n(["喜歡"])},repeats:r=>{const{normalize:n}=r;return n(["轉發"])},delete:r=>{const{normalize:n}=r;return n(["刪除發文"])},pinned:r=>{const{normalize:n}=r;return n(["置頂"])},bookmark:r=>{const{normalize:n}=r;return n(["書籤"])},unbookmark:r=>{const{normalize:n}=r;return n(["取消書籤"])},delete_confirm:r=>{const{normalize:n}=r;return n(["你真的想要刪除這條發文嗎?"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["對話取消靜音"])},status_unavailable:r=>{const{normalize:n}=r;return n(["發文不可取得"])},copy_link:r=>{const{normalize:n}=r;return n(["複製發文鏈接"])},thread_muted:r=>{const{normalize:n}=r;return n(["静音線程"])},show_full_subject:r=>{const{normalize:n}=r;return n(["顯示完整標題"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([",有这些字:"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["隱藏完整標題"])},show_content:r=>{const{normalize:n}=r;return n(["顯示內容"])},hide_content:r=>{const{normalize:n}=r;return n(["隱藏內容"])},status_deleted:r=>{const{normalize:n}=r;return n(["該帖已被刪除"])},expand:r=>{const{normalize:n}=r;return n(["展开"])},external_source:r=>{const{normalize:n}=r;return n(["外部來源"])},nsfw:r=>{const{normalize:n}=r;return n(["工作不安全"])}},time:{hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 時"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"天"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"天"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 時"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"時"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," y"])},now:r=>{const{normalize:n}=r;return n(["剛剛"])},day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["還有 ",e(t(0))])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 之前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分鐘"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分鐘"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},now_short:r=>{const{normalize:n}=r;return n(["剛剛"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"周"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"年"])}},post_status:{media_description_error:r=>{const{normalize:n}=r;return n(["無法更新媒體,請重試"])},media_description:r=>{const{normalize:n}=r;return n(["媒體描述"])},scope:{unlisted:r=>{const{normalize:n}=r;return n(["不公開 - 不會發送到公共時間軸"])},public:r=>{const{normalize:n}=r;return n(["公共 - 發送到公共時間軸"])},private:r=>{const{normalize:n}=r;return n(["僅關注者 - 只有關注了你的人能看到"])},direct:r=>{const{normalize:n}=r;return n(["私信 - 只發送給被提及的用戶"])}},scope_notice:{unlisted:r=>{const{normalize:n}=r;return n(["本條內容既不在公共時間線,也不會在所有已知網絡上可見"])},private:r=>{const{normalize:n}=r;return n(["關注你的人才能看到本條內容"])},public:r=>{const{normalize:n}=r;return n(["本條帖子可以被所有人看到"])}},preview_empty:r=>{const{normalize:n}=r;return n(["空的"])},preview:r=>{const{normalize:n}=r;return n(["預覽"])},posting:r=>{const{normalize:n}=r;return n(["正在發送"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["本條內容只有被在消息開始處提及的用戶能夠看到。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["本條內容只有被提及的用戶能夠看到。"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["你的帳號沒有 ",e(t(0)),"。任何人都可以關注你並瀏覽你的上鎖內容。"])},new_status:r=>{const{normalize:n}=r;return n(["發佈新發文"])},content_warning:r=>{const{normalize:n}=r;return n(["主題(可選)"])},content_type:{"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/plain":r=>{const{normalize:n}=r;return n(["純文本"])}},attachments_sensitive:r=>{const{normalize:n}=r;return n(["標記附件為敏感內容"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["上鎖"])},default:r=>{const{normalize:n}=r;return n(["剛剛抵達洛杉磯。"])},empty_status_error:r=>{const{normalize:n}=r;return n(["不能發布沒有內容,沒有附件的發文"])},post:r=>{const{normalize:n}=r;return n(["發送"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma無法訪問瀏覽器存儲。您的登錄名或本地設置將不會保存,您可能會遇到意外問題。嘗試啟用Cookie。"])}},timeline:{error_fetching:r=>{const{normalize:n}=r;return n(["獲取更新時發生錯誤"])},conversation:r=>{const{normalize:n}=r;return n(["對話"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["這條內容僅關注者可見,或者是私信,因此不能轉發"])},collapse:r=>{const{normalize:n}=r;return n(["摺疊"])},load_older:r=>{const{normalize:n}=r;return n(["載入更早的發文"])},repeated:r=>{const{normalize:n}=r;return n(["已轉發"])},show_new:r=>{const{normalize:n}=r;return n(["顯示新內容"])},reload:r=>{const{normalize:n}=r;return n(["重新載入"])},up_to_date:r=>{const{normalize:n}=r;return n(["已是最新"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["没有更多發文"])},no_statuses:r=>{const{normalize:n}=r;return n(["没有發文"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得時間線時發生錯誤:",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["已建立實時連接"])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["丟失實時連接:CloseEvent代碼",e(t(0))])}},interactions:{load_older:r=>{const{normalize:n}=r;return n(["載入更早的互動"])},moves:r=>{const{normalize:n}=r;return n(["用戶遷移"])},follows:r=>{const{normalize:n}=r;return n(["新的關注者"])},favs_repeats:r=>{const{normalize:n}=r;return n(["轉發和喜歡"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["選擇全部"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["未找到。"])},searching_for:r=>{const{normalize:n}=r;return n(["搜索"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["遠程用戶解析器"])}},registration:{validations:{password_confirmation_match:r=>{const{normalize:n}=r;return n(["不能和密碼一樣"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_required:r=>{const{normalize:n}=r;return n(["不能留空"])},email_required:r=>{const{normalize:n}=r;return n(["不能留空"])},fullname_required:r=>{const{normalize:n}=r;return n(["不能留空"])},username_required:r=>{const{normalize:n}=r;return n(["不能留空"])}},fullname:r=>{const{normalize:n}=r;return n(["顯示名稱"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["例如:\n你好,我是玲音。\n我是一個住在日本郊區的動畫少女。你可能在 Wired 見過我。"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["例如:岩倉玲音"])},username_placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},new_captcha:r=>{const{normalize:n}=r;return n(["點擊圖片獲取新的驗證碼"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},token:r=>{const{normalize:n}=r;return n(["邀請碼"])},registration:r=>{const{normalize:n}=r;return n(["註冊"])},password_confirm:r=>{const{normalize:n}=r;return n(["確認密碼"])},email:r=>{const{normalize:n}=r;return n(["電子郵箱"])},bio:r=>{const{normalize:n}=r;return n(["簡介"])},reason_placeholder:r=>{const{normalize:n}=r;return n(["此實例的註冊需要手動批准。\n請讓管理知道您為什麼想要註冊。"])},reason:r=>{const{normalize:n}=r;return n(["註冊理由"])},register:r=>{const{normalize:n}=r;return n(["註冊"])}},user_card:{its_you:r=>{const{normalize:n}=r;return n(["就是你!!"])},media:r=>{const{normalize:n}=r;return n(["媒體"])},per_day:r=>{const{normalize:n}=r;return n(["每天"])},remote_follow:r=>{const{normalize:n}=r;return n(["跨站關注"])},subscribe:r=>{const{normalize:n}=r;return n(["訂閱"])},mute_progress:r=>{const{normalize:n}=r;return n(["靜音中…"])},admin_menu:{delete_account:r=>{const{normalize:n}=r;return n(["刪除賬號"])},delete_user:r=>{const{normalize:n}=r;return n(["刪除用戶"])},moderation:r=>{const{normalize:n}=r;return n(["調停"])},grant_admin:r=>{const{normalize:n}=r;return n(["賦予管理權限"])},revoke_admin:r=>{const{normalize:n}=r;return n(["撤銷管理權限"])},grant_moderator:r=>{const{normalize:n}=r;return n(["賦予主持人權限"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["撤銷主持人權限"])},activate_account:r=>{const{normalize:n}=r;return n(["啟用賬號"])},deactivate_account:r=>{const{normalize:n}=r;return n(["關閉賬號"])},force_nsfw:r=>{const{normalize:n}=r;return n(["標記所有的帖子都是工作場合不適"])},strip_media:r=>{const{normalize:n}=r;return n(["從帖子裡刪除媒體文件"])},force_unlisted:r=>{const{normalize:n}=r;return n(["強制帖子為不公開"])},sandbox:r=>{const{normalize:n}=r;return n(["強制帖子為只有關注者可看"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["禁止從遠程實例關注用戶"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["完全禁止關注用戶"])},quarantine:r=>{const{normalize:n}=r;return n(["從聯合實例中禁止用戶帖子"])}},approve:r=>{const{normalize:n}=r;return n(["批准"])},block:r=>{const{normalize:n}=r;return n(["封鎖"])},blocked:r=>{const{normalize:n}=r;return n(["已封鎖!"])},deny:r=>{const{normalize:n}=r;return n(["拒絕"])},favorites:r=>{const{normalize:n}=r;return n(["喜歡"])},follow:r=>{const{normalize:n}=r;return n(["關注"])},follow_sent:r=>{const{normalize:n}=r;return n(["請求已發送!"])},follow_progress:r=>{const{normalize:n}=r;return n(["請求中…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["取消關注"])},followees:r=>{const{normalize:n}=r;return n(["正在關注"])},followers:r=>{const{normalize:n}=r;return n(["關注者"])},following:r=>{const{normalize:n}=r;return n(["正在關注!"])},follows_you:r=>{const{normalize:n}=r;return n(["關注了你!"])},hidden:r=>{const{normalize:n}=r;return n(["已隱藏"])},mention:r=>{const{normalize:n}=r;return n(["提及"])},message:r=>{const{normalize:n}=r;return n(["消息"])},mute:r=>{const{normalize:n}=r;return n(["靜音"])},muted:r=>{const{normalize:n}=r;return n(["已靜音"])},report:r=>{const{normalize:n}=r;return n(["報告"])},statuses:r=>{const{normalize:n}=r;return n(["發文"])},unsubscribe:r=>{const{normalize:n}=r;return n(["退訂"])},unblock:r=>{const{normalize:n}=r;return n(["取消封鎖"])},unblock_progress:r=>{const{normalize:n}=r;return n(["取消封鎖中…"])},block_progress:r=>{const{normalize:n}=r;return n(["封鎖中…"])},unmute:r=>{const{normalize:n}=r;return n(["取消靜音"])},unmute_progress:r=>{const{normalize:n}=r;return n(["取消靜音中…"])},hide_repeats:r=>{const{normalize:n}=r;return n(["隱藏轉發"])},show_repeats:r=>{const{normalize:n}=r;return n(["顯示轉發"])},roles:{moderator:r=>{const{normalize:n}=r;return n(["主持人"])},admin:r=>{const{normalize:n}=r;return n(["管理員"])}},highlight:{disabled:r=>{const{normalize:n}=r;return n(["無突出顯示"])},solid:r=>{const{normalize:n}=r;return n(["單色背景"])},striped:r=>{const{normalize:n}=r;return n(["條紋背景"])},side:r=>{const{normalize:n}=r;return n(["彩條"])}},bot:r=>{const{normalize:n}=r;return n(["機器人"])},edit_profile:r=>{const{normalize:n}=r;return n(["編輯個人資料"])}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["用戶時間線"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["抱歉,此個人資料不存在。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["抱歉,載入個人資料時出錯。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["報告 ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["此報告會發送給你的實例管理員。你可以在下面提供更多詳細信息解釋報告的緣由:"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["轉發 ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["提交"])},generic_error:r=>{const{normalize:n}=r;return n(["當處理你的請求時,發生了一個錯誤。"])},additional_comments:r=>{const{normalize:n}=r;return n(["其它評論"])},forward_description:r=>{const{normalize:n}=r;return n(["這個賬號是從另外一個服務器。同時發送一個報告到那裡?"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["更多"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推薦關注"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["上傳多媒體"])},repeat:r=>{const{normalize:n}=r;return n(["轉發"])},favorite:r=>{const{normalize:n}=r;return n(["喜歡"])},add_reaction:r=>{const{normalize:n}=r;return n(["添加互動"])},reply:r=>{const{normalize:n}=r;return n(["回覆"])},user_settings:r=>{const{normalize:n}=r;return n(["用戶設置"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["接受關注請求"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["拒絕關注請求"])},bookmark:r=>{const{normalize:n}=r;return n(["書籤"])}},upload:{file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])}},error:{base:r=>{const{normalize:n}=r;return n(["上傳失敗。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文件太大[",e(t("filesize"))," ",e(t("filesizeunit"))," / ",e(t("allowedsize"))," ",e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["稍後再試"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["上傳錯誤:",e(t(0))])}}},search:{people:r=>{const{normalize:n}=r;return n(["人"])},hashtags:r=>{const{normalize:n}=r;return n(["標籤"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在討論"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在討論"])},no_results:r=>{const{normalize:n}=r;return n(["沒有搜索結果"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["忘記密碼了?"])},password_reset:r=>{const{normalize:n}=r;return n(["重置密碼"])},instruction:r=>{const{normalize:n}=r;return n(["輸入你的電郵地址或者用戶名,我們將發送一個鏈接到你的郵箱,用於重置密碼。"])},placeholder:r=>{const{normalize:n}=r;return n(["你的電郵地址或者用戶名"])},check_email:r=>{const{normalize:n}=r;return n(["檢查你的郵箱,會有一個鏈接用於重置密碼。"])},return_home:r=>{const{normalize:n}=r;return n(["回到首頁"])},too_many_requests:r=>{const{normalize:n}=r;return n(["你觸發了嘗試的限制,請稍後再試。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["密碼重置已經被禁用。請聯繫你的實例管理員。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["您必須重置密碼才能登陸。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["您必須重置密碼,但是密碼重置被禁用了。請聯繫您所在實例的管理員。"])}}}}}]);
-//# sourceMappingURL=zh_Hant-json.eedcc6a7effd11514fe4.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js.map b/priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js.map
deleted file mode 100644
index 995904e2f..000000000
--- a/priv/static/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/zh_Hant.json"],"sourcesContent":["export default {\n \"emoji\": {\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"統一碼繪文字\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定義繪文字\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插入繪文字\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索繪文字\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選擇器保持打開\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"繪文字\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"貼紙\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"加載所有繪文字(共 \", _interpolate(_named(\"emojiAmount\")), \" 個)\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"最先加載的 \", _interpolate(_named(\"saneAmount\")), \" ,加載全部繪文字可能會帶來性能問題。\"])}\n },\n \"polls\": {\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票的選項太少\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票 \", _interpolate(_list(0)), \" 前已結束\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票於 \", _interpolate(_list(0)), \" 內結束\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票期限\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"多選\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"單選\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"問卷類型\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"票\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選項\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加選項\"])},\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加投票\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 票\"]), _normalize([_interpolate(_named(\"count\")), \" 票\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 人已投票\"]), _normalize([_interpolate(_named(\"count\")), \" 人已投票\"])])}\n },\n \"notifications\": {\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反應\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"遷移到\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有更多的通知\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發了你的發文\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已閱!\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入更早的通知\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要關注你\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注了你\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡了你的發文\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的狀態,正在搜索中…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"獲取通知錯誤:\", _interpolate(_list(0))])}\n },\n \"nav\": {\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"時間線\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"偏好設置\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦關注\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶搜索\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"書籤\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已知網絡\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"時間線\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共時間線\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互動\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注請求\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"後退\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理員\"])},\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關於\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"家時間線\"])}\n },\n \"media_modal\": {\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往後\"])},\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往前\"])}\n },\n \"login\": {\n \"heading\": {\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"雙重因素恢復\"])},\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"雙重因素驗證\"])}\n },\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢復碼\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入一個雙重因素驗證碼\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入一個恢復碼\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"驗證碼\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登錄後加入討論\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶名\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例:鈴音\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密碼\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用 OAuth 登入\"])},\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登入\"])}\n },\n \"importer\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入此文件時出現一個錯誤。\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入成功。\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])}\n },\n \"image_cropper\": {\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存不裁剪\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"裁剪圖片\"])}\n },\n \"general\": {\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"窺視\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關閉\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"驗證\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"啟用\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忽略\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收起\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展開\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可選\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"再試\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請再試\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發生一個錯誤\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入中…\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"應用\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主持人\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理員\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊以使用 Ruffle 顯示 Flash 內容(實驗性,可能無效)。\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請注意,這可能有潜在的危險,因為Flash內容仍然是武斷的程式碼。\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無法加載flash內容,請參閱控制台瞭解詳細資訊。\"])}\n },\n \"finder\": {\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"尋找用戶\"])},\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"獲取用戶時發生錯誤\"])}\n },\n \"features_panel\": {\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦關注\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"特色\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文字數量限制\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可見範圍設置\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體代理\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 聊天\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳限制\"])}\n },\n \"exporter\": {\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在處理,稍後會提示您下載文件\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音中…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音中…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"about\": {\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"職員\"])},\n \"mrf\": {\n \"simple\": {\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個實例強迫以下實例的帖子媒體設定為敏感:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體強制設定為敏感\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個實例移除以下實例的帖子媒體:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除媒體\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個實例在所有已知網絡中移除下列實例:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從所有已知網路中移除\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本實例只會把公開發文發送到下列實例:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隔離\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本實例不會接收來自下列實例的消息:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本實例只接收來自下列實例的消息:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"站規\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF 策略會影響本實例的互通行為。以下策略已啟用:\"])},\n \"keyword\": {\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從“全部已知網絡”時間線上移除\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取代\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關鍵字政策\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已啟用的MRF政策\"])},\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聯邦\"])}\n }\n },\n \"settings\": {\n \"style\": {\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顏色\"])},\n \"contrast\": {\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大字文本 (18pt+)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])}\n },\n \"level\": {\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AAA 等級準則(推薦)\"])},\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AA 等級準則(最低)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不符合任何輔助功能指南\"])}\n },\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"對比度是 \", _interpolate(_named(\"ratio\")), \", 它 \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])}\n },\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"透明度\"])}\n },\n \"advanced_colors\": {\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"灰度文字\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"錯誤\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒或警告背景色\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"高级\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"警告\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"中性\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子/用戶簡介\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"徽章背景\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提示框,菜單,彈出框\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板標題\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頂欄\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邊框\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"底襯\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票統計圖\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圖標\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強調元素\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按下\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選中的帖子\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選中的菜單項\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關閉\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"切換\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標籤\"])},\n \"chat\": {\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收到\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發出\"])},\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邊框\"])}\n },\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"桌布\"])}\n },\n \"preview\": {\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這很正常\"])},\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預覽\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例子錯誤\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"有堆 \", _interpolate(_list(0)), \" 和 \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛抵達洛杉磯.\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有用的手冊\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"閱讀我們的 \", _interpolate(_list(0)), \" ,然而什麼有用的也學不到!\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我已經瀏覽了條款及細則\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"一個很好的小鏈接\"])}\n },\n \"shadows\": {\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"覆寫\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"陰影和燈光\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"組件\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"陰影 #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"模糊\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"擴散\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插圖\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"對於陰影,您還可以使用\", _interpolate(_list(0)), \"表示法來使用其他顏色插槽。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"警告,此陰影設置會總是使用 \", _interpolate(_list(0)), \" ,如果瀏覽器支持的話。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 不支持參數 \", _interpolate(_list(1)), \" 和關鍵詞 \", _interpolate(_list(2)), \" 。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請注意組合兩個內部和非內部的陰影到頭像上,在透明頭像上可能會有意料之外的效果。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"陰影的擴散 > 0 會同設置成零一樣\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"插入內部的陰影會使用 \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板標題\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頂欄\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶頭像(在個人資料欄)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶頭像(在帖子顯示欄)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"彈窗和工具提示\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕(懸停)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕(按下)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕(按下和懸停)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])}\n }\n },\n \"switcher\": {\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"舊版\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入主題\"])},\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留顏色\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留陰影\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留透明度\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留圓角\"])},\n \"help\": {\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不知出於何種原因,主題快照缺失了,一些地方可能與您印象中的不符。\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本衝突:很有可能是 FE 版本回滾後再次升級了,如果您使用舊版本的 FE 更改了主題那麼您可能需要使用舊版本,否則請使用新版本。\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您導入的文件來自更高版本的 FE。\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您導入的文件來自舊版本的 FE。\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在文件中沒有主題快照,所以網站外觀可能會與原來預想的不同。\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的主題引擎隨著版本更新升級了。\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的版本回滾了。\"])},\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 已升級,主題會和你記憶中的不太一樣。\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您導入的文件是舊版 FE 的。我們儘可能保持兼容性,但還是可能出現不一致的情況。\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入快照已加載,因此所有值均被覆蓋。 您可以改為載入主題實際數據。\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"為保萬無一失,載入了主題快照。您可以試著載入主題數據。\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新版本\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保持原狀\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除透明度\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除全部\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留字體\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"保留\\\" 選項在選擇或載入主題時保留當前設置的選項,在導出主題時還會存儲上述選項。當所有複選框未設置時,導出主題將保存所有內容。\"])}\n },\n \"fonts\": {\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發帖文字\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子中使用等間距文字(富文本)\"])}\n },\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字體\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"給用戶界面的元素選擇字體。選擇 “自選”的你必須輸入確切的字體名稱。\"])},\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字體名稱\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大小 (像素)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字重 (粗體))\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自選\"])}\n },\n \"common_colors\": {\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊”高級“ 標籤進行細緻的控制\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常用顏色\"])},\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"共同\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圖標,強調,徽章\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圓角\"])}\n }\n },\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽來自你沒有關注的用戶的通知\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示關注者數量\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示富文本格式\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶遷移\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面語言\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默認:\", _interpolate(_named(\"value\")), \")\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入框\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入預置主題\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從 csv 文件中導入關注\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從 csv 文件中導入封鎖黑名單名單\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏過濾的發文\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你需要手動審核關注請求\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"循環視頻\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只循環沒有聲音的視頻(例如:Mastodon 裡的“GIF”)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在彈出框內播放視頻\"])},\n \"profile_fields\": {\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加字段\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標籤\"])},\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"個人資料元數據\"])}\n },\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成縮略圖時不要裁剪附件\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要顯示的通知類型\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新電郵\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"比如mastodon: copy as is\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確定要重置個人資料背景圖嗎?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確定要重置橫幅圖片嗎?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確定要重置頭像嗎?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置橫幅圖片\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置個人資料背景圖\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置頭像\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允許通過搜索檢索等服務找到此賬號\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除賬戶時發生錯誤,如果一直刪除不了,請聯繫實例管理員。\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"寫作設置\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天訊息\"])},\n \"mfa\": {\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認並啟用OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置OTP\"])},\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預設OTP\"])},\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要啟用雙因素驗證,請把你的雙因素驗證 app 裡的數字輸入:\"])}\n },\n \"scan\": {\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密鑰\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用你的雙因素驗證 app,掃瞄這個二維碼,或者輸入這些文字密鑰:\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"掃瞄\"])}\n },\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"身份驗證方法\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app,也丟失了你的恢復碼,你的賬號就再也無法登錄了。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在接收備份碼…\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢復碼。\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"當你生成新的恢復碼時,你的舊恢復碼就失效了。\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成新的恢復碼\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"雙因素驗證\"])}\n },\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新密碼\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字及簡介\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"域名\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在下面輸入密碼,以確認刪除帳戶。\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"永久刪除你的帳號和所有數據。\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除帳戶\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默認可見性範圍\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"數據導入/導出\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音與封鎖\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"當前密碼\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認新密碼\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"摺疊帶標題的內容\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"複選框\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默認)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您所選擇的主題文件不被 Pleroma 支持,因此主題未被修改。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在您的瀏覽器中無法使用\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鏈接\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"成功修改了密碼!\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密碼的時候出了點問題。\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密碼\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"郵箱修改成功!\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這是一個機器人賬號\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改電子郵箱\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"紅色(取消)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橙色(收藏)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"綠色(轉發)\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"藍色(回覆,關注)\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按鈕\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互動\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有封鎖\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有靜音\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要顯示我所關注的人\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要顯示關注我的人\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示關注數\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"將敏感附件和鏈接隱藏,點擊才能打開\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有效期至\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在離開頁面時暫停時間線推送\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"過濾器\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱私\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要停止收到某個指定的用戶的通知,請使用靜音功能。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖一個用戶會停掉所有他的通知,等同於取消關注。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"啟用 web 推送通知\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預置\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"配置文件背景圖\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橫幅圖片\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"個人資料\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置界面邊緣的圓角 (單位:像素)\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示所有回覆\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自動隱藏新帖子的按鈕(移動設備)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存設置時發生錯誤\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置已保存\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想屏蔽的用戶\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想要隱藏的用戶\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置新頭像\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置新的個人背景\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置新的個人橫幅\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設置\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"總是顯示主題框\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆時複製主題\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"比如電郵: \\\"re: 主題\\\"\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要複製\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發文內容類型\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鼠標懸停時播放GIF\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"開啟滾動到頂部時的自動推送\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主題\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用十六進制代碼(#rrggbb)來設置主題顏色。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你也可以通過切換複選框來覆蓋某些組件的顏色和透明。使用“清除所有”來清楚所有覆蓋設置。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"某些條目下的圖標是背景或文本對比指示器,鼠標懸停可以獲取詳細信息。請記住,使用透明度來顯示最差的情況。\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳照片\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶設置\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])}\n },\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦的頭像圖片最小的尺寸是 150x150 像素。\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在時間線上顯示繪文字互動\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出預置主題\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"過濾\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所有包含以下詞彙的內容都會被隱藏,一行一個\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出關注\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"將關注導出成 csv 文件\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入關注\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入關注時錯誤\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注已導入!尚需要一些時間來處理。\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在對話中隱藏附件\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在時間線上隱藏附件\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示被靜音的用戶的帖子\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"最多每個帖子所能顯示的縮略圖數量\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏指定實例的面板\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預載圖片\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊一次以打開工作場所不適宜的附件\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏帖子的統計數據(例如:收藏的次數)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏用戶的統計數據(例如:關注者的數量)\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通用\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前景\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖黑名單導入成功!需要一點時間來處理。\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入封鎖黑名單出錯\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖黑名單導入\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導出你的封鎖黑名單到一個 csv 文件\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖黑名單導出\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"簡介\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頭像\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頭像(通知)\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"頭像\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在關注的賬號遷移時自動重新關注\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入你當前密碼來確認你的身份\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App 名稱\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改你的電子郵箱時發生錯誤。\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索需要隱藏的域名\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從繪文字選擇器插入繪文字時,在繪文字兩側插入空格\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"實時接收發佈以及通知\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"最小發文範圍\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆時的複製範圍(私信是總是複製的)\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只顯示發送給我的回覆\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只顯示發送給我的回覆/發送給我關注的用戶的回覆\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"時間線中的回覆\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤消\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示管理徽章\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強調色\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前文箭頭\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示主持人徽章\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth代幣\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"代幣\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刷新token\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(不推薦使用,實驗性的,已知跳過文章)\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有趣\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏推送通知中的發送者與內容信息\"])},\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"後端版本\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端版本\"])}\n },\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"優化時間線渲染\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從CSV文件導入靜音\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音導入了!處理它們將需要一段時間。\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音導入\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"導入靜音時出錯\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"將靜音導出到csv文件\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音導出\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏實例桌布\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只顯示對我本人的回复\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示對我關注的人的回复\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不顯示已隱藏的帖子\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏媒體預覽\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"詞過濾\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"與默認設置不同\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多設置\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"file_export_import\": {\n \"errors\": {\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所選文件不是受支持的Pleroma設置備份。 沒有進行任何更改。\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",此 PleromaFE(設置版本 \", _interpolate(_named(\"feMajor\")), \")過舊,無法處理\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",文件版本過舊,不受支持(最小設置版本 \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"檔案的小版本不同,有些設置可能無法載入\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從文件還原設置\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"備份設置和主題到文件\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"備份設置到文件\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"設定備份\"])}\n },\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默認標記發文為敏感內容\"])},\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在右側顯示側邊欄\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏實例留言框\"])}\n },\n \"chats\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您確實要刪除此消息嗎?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加載聊天時出了點問題。\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發送消息時出了點問題。\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您還沒有任何聊天記錄。 開始新的聊天!\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新聊天\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無法發布空消息\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"發消息給 \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"音頻\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"視頻\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图片\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"檔案\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"今天\"])}\n },\n \"status\": {\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音對話\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆:\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在個人資料置頂\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消在個人資料置頂\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除發文\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"置頂\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"書籤\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消書籤\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你真的想要刪除這條發文嗎?\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"對話取消靜音\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發文不可取得\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"複製發文鏈接\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"静音線程\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示完整標題\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\",有这些字:\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏完整標題\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示內容\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏內容\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"該帖已被刪除\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"外部來源\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"工作不安全\"])}\n },\n \"time\": {\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 時\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"天\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"天\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 時\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"時\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" y\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛\"])},\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"還有 \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 之前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分鐘\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分鐘\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"周\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"年\"])}\n },\n \"post_status\": {\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無法更新媒體,請重試\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體描述\"])},\n \"scope\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不公開 - 不會發送到公共時間軸\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共 - 發送到公共時間軸\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"僅關注者 - 只有關注了你的人能看到\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信 - 只發送給被提及的用戶\"])}\n },\n \"scope_notice\": {\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條內容既不在公共時間線,也不會在所有已知網絡上可見\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注你的人才能看到本條內容\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條帖子可以被所有人看到\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"空的\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"預覽\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在發送\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條內容只有被在消息開始處提及的用戶能夠看到。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本條內容只有被提及的用戶能夠看到。\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"你的帳號沒有 \", _interpolate(_list(0)), \"。任何人都可以關注你並瀏覽你的上鎖內容。\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發佈新發文\"])},\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主題(可選)\"])},\n \"content_type\": {\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"純文本\"])}\n },\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標記附件為敏感內容\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上鎖\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"剛剛抵達洛杉磯。\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能發布沒有內容,沒有附件的發文\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發送\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma無法訪問瀏覽器存儲。您的登錄名或本地設置將不會保存,您可能會遇到意外問題。嘗試啟用Cookie。\"])}\n },\n \"timeline\": {\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"獲取更新時發生錯誤\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"對話\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這條內容僅關注者可見,或者是私信,因此不能轉發\"])},\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"摺疊\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入更早的發文\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已轉發\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示新內容\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新載入\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已是最新\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多發文\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有發文\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得時間線時發生錯誤:\", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已建立實時連接\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"丟失實時連接:CloseEvent代碼\", _interpolate(_list(0))])}\n },\n \"interactions\": {\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"載入更早的互動\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶遷移\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的關注者\"])},\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發和喜歡\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"選擇全部\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未找到。\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"遠程用戶解析器\"])}\n },\n \"registration\": {\n \"validations\": {\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能和密碼一樣\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])}\n },\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示名稱\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:\\n你好,我是玲音。\\n我是一個住在日本郊區的動畫少女。你可能在 Wired 見過我。\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:岩倉玲音\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"點擊圖片獲取新的驗證碼\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邀請碼\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"確認密碼\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"電子郵箱\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"簡介\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此實例的註冊需要手動批准。\\n請讓管理知道您為什麼想要註冊。\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊理由\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"註冊\"])}\n },\n \"user_card\": {\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"就是你!!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒體\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每天\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"跨站關注\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"訂閱\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音中…\"])},\n \"admin_menu\": {\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除賬號\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刪除用戶\"])},\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"調停\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"賦予管理權限\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤銷管理權限\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"賦予主持人權限\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤銷主持人權限\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"啟用賬號\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關閉賬號\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標記所有的帖子都是工作場合不適\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從帖子裡刪除媒體文件\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強制帖子為不公開\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"強制帖子為只有關注者可看\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁止從遠程實例關注用戶\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全禁止關注用戶\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"從聯合實例中禁止用戶帖子\"])}\n },\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已封鎖!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請求已發送!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"請求中…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消關注\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在關注\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注者\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在關注!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"關注了你!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隱藏\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"消息\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"靜音\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已靜音\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"報告\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"發文\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"退訂\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消封鎖\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消封鎖中…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"封鎖中…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消靜音中…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隱藏轉發\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顯示轉發\"])},\n \"roles\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主持人\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理員\"])}\n },\n \"highlight\": {\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"無突出顯示\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"單色背景\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"條紋背景\"])},\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"彩條\"])}\n },\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"機器人\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"編輯個人資料\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶時間線\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,此個人資料不存在。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,載入個人資料時出錯。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"報告 \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此報告會發送給你的實例管理員。你可以在下面提供更多詳細信息解釋報告的緣由:\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"轉發 \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"當處理你的請求時,發生了一個錯誤。\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它評論\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"這個賬號是從另外一個服務器。同時發送一個報告到那裡?\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推薦關注\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳多媒體\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"轉發\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜歡\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加互動\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回覆\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用戶設置\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受關注請求\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒絕關注請求\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"書籤\"])}\n },\n \"upload\": {\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])}\n },\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上傳失敗。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文件太大[\", _interpolate(_named(\"filesize\")), \" \", _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), \" \", _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"稍後再試\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"上傳錯誤:\", _interpolate(_list(0))])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"標籤\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在討論\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在討論\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"沒有搜索結果\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忘記密碼了?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置密碼\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"輸入你的電郵地址或者用戶名,我們將發送一個鏈接到你的郵箱,用於重置密碼。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你的電郵地址或者用戶名\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"檢查你的郵箱,會有一個鏈接用於重置密碼。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回到首頁\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你觸發了嘗試的限制,請稍後再試。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密碼重置已經被禁用。請聯繫你的實例管理員。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必須重置密碼才能登陸。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必須重置密碼,但是密碼重置被禁用了。請聯繫您所在實例的管理員。\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","named","_named","list","_list","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/sw-pleroma.js b/priv/static/sw-pleroma.js
index e56f8076e..1ce0be6f7 100644
--- a/priv/static/sw-pleroma.js
+++ b/priv/static/sw-pleroma.js
@@ -1,5 +1,5 @@
-var serviceWorkerOption = {"assets":["/sw-pleroma.js.LICENSE.txt","/static/js/app.4c23e08cf351a54f4177.js","/static/img/nsfw.2958239.png","/static/img/pleromatan_apology.f9d5180.png","/static/img/pleromatan_apology_fox.038b0bb.png","/static/js/emoji.33eab91b64f59431137d.js","/static/js/i18n/ar-json.d09609af3224232857d6.js","/static/js/i18n/ca-json.1eb24bc001efa3c0627f.js","/static/js/i18n/cs-json.5eedbe9f7084c349fbe8.js","/static/js/i18n/de-json.bfa48615ac92f87ff37a.js","/static/js/i18n/eo-json.8b17b5b5653ed558d931.js","/static/js/i18n/es-json.4a302899a65e1f67d8a2.js","/static/js/i18n/et-json.580b101d6bb83a8aee75.js","/static/js/i18n/eu-json.d2eab39b0427995fc314.js","/static/js/i18n/fa-json.a19100f6a5a9431e2adb.js","/static/js/i18n/fi-json.d1934c18f12d80493ab1.js","/static/js/i18n/fr-json.36ef21ccb1203d3e65ae.js","/static/js/i18n/ga-json.3f1981817977a16f1d7e.js","/static/js/i18n/he-json.03c5d271a4034de06e6f.js","/static/js/i18n/hu-json.0487899ca7a7a8505ed8.js","/static/js/i18n/id-json.3e42564ce7a3a847ecb0.js","/static/js/i18n/it-json.99a21d5c98376af17141.js","/static/js/i18n/ja_easy-json.79705c1ec254307d2224.js","/static/js/i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js","/static/js/i18n/ko-json.4bd28b26a7390a09afc2.js","/static/js/i18n/nb-json.a54af3b1f47d576ad4aa.js","/static/js/i18n/nl-json.3fb9758b10c29434b613.js","/static/js/i18n/oc-json.4f52bf1b6e3213acc33c.js","/static/js/i18n/pl-json.c963247822381b05579b.js","/static/js/i18n/pt-json.3fc5593e030268bcd291.js","/static/js/i18n/ro-json.3fd9977ed1c1413059ae.js","/static/js/i18n/ru-json.b913eb7f7e9f0c642438.js","/static/js/i18n/sk-json.d8d0eba80f94e6f55145.js","/static/js/i18n/te-json.ce6db28261b2f824064f.js","/static/js/i18n/uk-json.c33e4c72a2dfe9a9d143.js","/static/js/i18n/vi-json.703c1e731be6e857bbf3.js","/static/js/i18n/zh-json.de02aa4e82fcb1ec557c.js","/static/js/i18n/zh_Hant-json.eedcc6a7effd11514fe4.js","/static/js/emoji-annotations/af-json.96c988285a6a2cce6246.js","/static/js/emoji-annotations/am-json.94388548f7c18233fec3.js","/static/js/emoji-annotations/ar-json.5527466d349f2954d49b.js","/static/js/emoji-annotations/ar_SA-json.4a6f4402931a867070f0.js","/static/js/emoji-annotations/as-json.34cf67edc1cecd195738.js","/static/js/emoji-annotations/ast-json.7e4da8cb7e539c19a9b9.js","/static/js/emoji-annotations/az-json.9a32f2941d9c4d1f834c.js","/static/js/emoji-annotations/be-json.f92f80669873a4100c69.js","/static/js/emoji-annotations/bg-json.7c69c52572a7bf87e1db.js","/static/js/emoji-annotations/bn-json.657aac057f36ad06c58d.js","/static/js/emoji-annotations/br-json.c7175423d8965ed10bae.js","/static/js/emoji-annotations/bs-json.48ef42da1c7976cf083c.js","/static/js/emoji-annotations/ca-json.ce029e860b10b242c6a5.js","/static/js/emoji-annotations/ccp-json.02836537ffe2b02291cb.js","/static/js/emoji-annotations/ceb-json.9db0336f168aa77ee395.js","/static/js/emoji-annotations/chr-json.e7e542ab5a74167dec10.js","/static/js/emoji-annotations/ckb-json.13dc83db1e15aa76051a.js","/static/js/emoji-annotations/cs-json.48d8bba230dc9fe6b3dc.js","/static/js/emoji-annotations/cy-json.e09dd13da5ad56530ead.js","/static/js/emoji-annotations/da-json.8d074e27df71edafc543.js","/static/js/emoji-annotations/de-json.e1443c01a191af1665e1.js","/static/js/emoji-annotations/de_CH-json.b4a5891ea2f38d616ec0.js","/static/js/emoji-annotations/doi-json.7841c3f3ceb4e3da0bd1.js","/static/js/emoji-annotations/dsb-json.7635686ffd8d62264466.js","/static/js/emoji-annotations/el-json.b36610f2ea16d56c2314.js","/static/js/emoji-annotations/en-json.6c3947f7c49c3952084d.js","/static/js/emoji-annotations/en_001-json.72d8c47269350f59aa9f.js","/static/js/emoji-annotations/en_AU-json.33aac9bbd887273a34b1.js","/static/js/emoji-annotations/en_CA-json.5de965778a6b8a5a4bb4.js","/static/js/emoji-annotations/en_GB-json.bd687f904492facc81d1.js","/static/js/emoji-annotations/en_IN-json.002faa48c09121928fca.js","/static/js/emoji-annotations/es-json.f593b0dc2367a9d7fb30.js","/static/js/emoji-annotations/es_419-json.d81991295392b6ed83bb.js","/static/js/emoji-annotations/es_MX-json.ee359d4b611fdb1aeb33.js","/static/js/emoji-annotations/es_US-json.280bdb036dfd651d079a.js","/static/js/emoji-annotations/et-json.c42e3f186a55ecb061cd.js","/static/js/emoji-annotations/eu-json.931b429f5fcc141549a5.js","/static/js/emoji-annotations/fa-json.819c7f263c8594ccf4fa.js","/static/js/emoji-annotations/fi-json.0f254bb4b0faaba4abcc.js","/static/js/emoji-annotations/fil-json.4fca833f178d1b889b69.js","/static/js/emoji-annotations/fo-json.9b060e8009b3a8be4597.js","/static/js/emoji-annotations/fr-json.da49ed0d1a6622fe1c67.js","/static/js/emoji-annotations/fr_CA-json.59ed6b59e2ca68707292.js","/static/js/emoji-annotations/ga-json.cb3f9e613a8c445aea23.js","/static/js/emoji-annotations/gd-json.e3d0aea3725be774ad81.js","/static/js/emoji-annotations/gl-json.ce89036f0ae72224c994.js","/static/js/emoji-annotations/gu-json.8a899f364cf260376905.js","/static/js/emoji-annotations/ha-json.2a08912b38925c10f970.js","/static/js/emoji-annotations/ha_NE-json.e4855d92aaccfdd6ba57.js","/static/js/emoji-annotations/he-json.a3d7631f32182b0955a2.js","/static/js/emoji-annotations/hi-json.04bc5f73dc2169def97e.js","/static/js/emoji-annotations/hi_Latn-json.3cb73c456f31261f1908.js","/static/js/emoji-annotations/hr-json.fe847ade1f18a60e513c.js","/static/js/emoji-annotations/hsb-json.438721731b4171bc6fc3.js","/static/js/emoji-annotations/hu-json.1faf52040deda872b416.js","/static/js/emoji-annotations/hy-json.2d819f7faabfeba8457f.js","/static/js/emoji-annotations/ia-json.8e8365e2bf41779e2beb.js","/static/js/emoji-annotations/id-json.55f83c46d753b0b69330.js","/static/js/emoji-annotations/ig-json.f19fa5fe3582463ba73c.js","/static/js/emoji-annotations/is-json.62e220c65215b034533d.js","/static/js/emoji-annotations/it-json.9c1758f4fd3391f7f61a.js","/static/js/emoji-annotations/ja-json.0bd51f8c40c106355b0e.js","/static/js/emoji-annotations/jv-json.1c8d5ffcff22b46b6214.js","/static/js/emoji-annotations/ka-json.567e7b051d90a37003f3.js","/static/js/emoji-annotations/kab-json.1a2de4774f4ddc2b51dd.js","/static/js/emoji-annotations/kk-json.a20b59d47bdfe99786ad.js","/static/js/emoji-annotations/kl-json.87ab8661b4bdecd09faf.js","/static/js/emoji-annotations/km-json.9bc922b2e0faa64b4c53.js","/static/js/emoji-annotations/kn-json.efdac8ac0cb00991ba1e.js","/static/js/emoji-annotations/ko-json.d175900fe48f48ce87c8.js","/static/js/emoji-annotations/kok-json.116e4f72db3bfb846233.js","/static/js/emoji-annotations/ku-json.2173ed87f8d7372ee209.js","/static/js/emoji-annotations/ky-json.310bda579c819eda9472.js","/static/js/emoji-annotations/lb-json.499c526f3a653618ea9b.js","/static/js/emoji-annotations/lo-json.ecb06d61465a355b8157.js","/static/js/emoji-annotations/lt-json.ced4d5e70edc60127df6.js","/static/js/emoji-annotations/lv-json.5600c2eb6d59fa0aa2e2.js","/static/js/emoji-annotations/mai-json.302386b3358f4d34f9c8.js","/static/js/emoji-annotations/mi-json.9efe6f146ecd8987f80a.js","/static/js/emoji-annotations/mk-json.a254cabb8570419cc426.js","/static/js/emoji-annotations/ml-json.3f2902a84240faff1b48.js","/static/js/emoji-annotations/mn-json.764169f1168d0432640f.js","/static/js/emoji-annotations/mni-json.7db7f76ab1ce34e3683d.js","/static/js/emoji-annotations/mr-json.cb0a87d9aabf8a52161d.js","/static/js/emoji-annotations/ms-json.272ee4735aabc37015dd.js","/static/js/emoji-annotations/mt-json.3ddf7dbc114adf90c500.js","/static/js/emoji-annotations/my-json.8e7dd1485813d15bba7e.js","/static/js/emoji-annotations/ne-json.a0118dca2096a101b8e8.js","/static/js/emoji-annotations/nl-json.52f4b93b8fa5e22cb585.js","/static/js/emoji-annotations/nn-json.7293cd5d7205681cf48c.js","/static/js/emoji-annotations/no-json.22bdbbc77cc3c14ada58.js","/static/js/emoji-annotations/or-json.b007c2f6f92dcc95efac.js","/static/js/emoji-annotations/pa-json.7d60d69762a108270669.js","/static/js/emoji-annotations/pa_Arab-json.5ae021308b1c5f6dd8a7.js","/static/js/emoji-annotations/pcm-json.eac3a5ad0b4b5b33289d.js","/static/js/emoji-annotations/pl-json.e9e8f1ed84dc6c169516.js","/static/js/emoji-annotations/ps-json.a0d9eea5b81bcad11e64.js","/static/js/emoji-annotations/pt-json.2b2512ee44291bdb2ae7.js","/static/js/emoji-annotations/pt_PT-json.c381b13e323f91b0e6b3.js","/static/js/emoji-annotations/qu-json.55f4df57e71076dbad9f.js","/static/js/emoji-annotations/rm-json.985d4934f386fd05a75c.js","/static/js/emoji-annotations/ro-json.cb62f86ce78c94d1e813.js","/static/js/emoji-annotations/ru-json.a81d0df34460837ccacc.js","/static/js/emoji-annotations/rw-json.031838c5374676191131.js","/static/js/emoji-annotations/sa-json.21b06234a08c7469ccb4.js","/static/js/emoji-annotations/sat-json.71e92700b2aaca8e021c.js","/static/js/emoji-annotations/sc-json.c84c9c47d2e104c43e4c.js","/static/js/emoji-annotations/sd-json.8f2a6a06dc3cf185f79d.js","/static/js/emoji-annotations/si-json.841b356da03623c10dbf.js","/static/js/emoji-annotations/sk-json.5d96bdb4da82655d0314.js","/static/js/emoji-annotations/sl-json.a40c5548da34fce6f1d0.js","/static/js/emoji-annotations/so-json.f75abd16637c8924c075.js","/static/js/emoji-annotations/sq-json.bcf154ed8a6138aa089c.js","/static/js/emoji-annotations/sr-json.e29a20e59a708df0c6a8.js","/static/js/emoji-annotations/sr_Cyrl_BA-json.83c7c64b9696ae2339f2.js","/static/js/emoji-annotations/sr_Latn-json.ff27d1f455bf2afb8d70.js","/static/js/emoji-annotations/sr_Latn_BA-json.72933405032b81344754.js","/static/js/emoji-annotations/su-json.daff15251020cbecea7d.js","/static/js/emoji-annotations/sv-json.8b0374cbca3a77519876.js","/static/js/emoji-annotations/sw-json.d5f350641b9cbcc0e126.js","/static/js/emoji-annotations/sw_KE-json.f3563cbeac1c158563d5.js","/static/js/emoji-annotations/ta-json.675cc6c7607449d4a91b.js","/static/js/emoji-annotations/te-json.8a69a10f62cdf626244e.js","/static/js/emoji-annotations/tg-json.9647f559a4477d7d8e96.js","/static/js/emoji-annotations/th-json.34709bae223bb9d2587c.js","/static/js/emoji-annotations/ti-json.5b173bd33bb960be805b.js","/static/js/emoji-annotations/tk-json.23a9a6229829921704ad.js","/static/js/emoji-annotations/to-json.50ac37d101caaf592c94.js","/static/js/emoji-annotations/tr-json.6462e8cfd5006cf5b6cf.js","/static/js/emoji-annotations/tt-json.4c089389ba9983ec8ef7.js","/static/js/emoji-annotations/ug-json.bf768bd32e9ff02b0a8a.js","/static/js/emoji-annotations/uk-json.af110c8eef232638fc4d.js","/static/js/emoji-annotations/ur-json.983c02109444c883a18f.js","/static/js/emoji-annotations/uz-json.ac43f4c54d4587324a20.js","/static/js/emoji-annotations/vi-json.f6a364b2add7f8c8bc67.js","/static/js/emoji-annotations/wo-json.e0d689e22cda0dd77e9a.js","/static/js/emoji-annotations/xh-json.21e88c05ad3113dfc7f2.js","/static/js/emoji-annotations/yo-json.ea1150d6bc360dd86f2e.js","/static/js/emoji-annotations/yo_BJ-json.650318c25fe4da92bad8.js","/static/js/emoji-annotations/yue-json.15102c0ddfdf19bdfb4c.js","/static/js/emoji-annotations/yue_Hans-json.cc60bb10d32fab3d8207.js","/static/js/emoji-annotations/zh-json.e42a28127d5c1aff6c85.js","/static/js/emoji-annotations/zh_Hant-json.9cbb765c181d443828a9.js","/static/js/emoji-annotations/zh_Hant_HK-json.7eee03c705347a21c612.js","/static/js/emoji-annotations/zu-json.e0cb7cd3890583fd0f6d.js","/static/js/1325.d1e5fcff4166acac7f06.js","/static/js/6464.2ababce187697ee8b1e9.js","/static/js/8532.290194af65a2e3a4120e.js","/static/js/1264.1e16af28a0b44d4d17d0.js","/static/js/9169.335214f6ab57538eae0b.js","/static/js/2677.45ff400a54f2f4c858f2.js","/static/ruffle/56f009143a5a7685fad9.wasm","/static/ruffle/92614a5efc3434baeaa9.wasm","/static/ruffle/LICENSE_APACHE","/static/ruffle/LICENSE_MIT","/static/ruffle/README.md","/static/ruffle/core.ruffle.61b3dd915983ae8a8b16.js","/static/ruffle/core.ruffle.848d766d6fc336164c2f.js","/static/ruffle/package.json","/static/ruffle/ruffle.js","/static/js/2677.45ff400a54f2f4c858f2.js.LICENSE.txt","/static/js/9169.335214f6ab57538eae0b.js.LICENSE.txt","/index.html","/static/css/app.86977512e08af1f17d78.css","/static/css/1325.715a7f40cdd53f460ef4.css","/static/css/6464.2fa2e5f1fa93842c62b1.css","/static/css/8532.88b90ac86f3060a3144e.css","/static/css/1264.177d0bf6917b317388ae.css"]};
+var serviceWorkerOption = {"assets":["/sw-pleroma.js.LICENSE.txt","/static/js/app.8d2126d35dba9482db51.js","/static/img/nsfw.2958239.png","/static/img/pleromatan_apology.f9d5180.png","/static/img/pleromatan_apology_fox.038b0bb.png","/static/js/emoji.33eab91b64f59431137d.js","/static/js/i18n/ar-json.d09609af3224232857d6.js","/static/js/i18n/ca-json.1eb24bc001efa3c0627f.js","/static/js/i18n/cs-json.5eedbe9f7084c349fbe8.js","/static/js/i18n/de-json.bfa48615ac92f87ff37a.js","/static/js/i18n/eo-json.d81690d5be30b23e516b.js","/static/js/i18n/es-json.4a302899a65e1f67d8a2.js","/static/js/i18n/et-json.580b101d6bb83a8aee75.js","/static/js/i18n/eu-json.d2eab39b0427995fc314.js","/static/js/i18n/fa-json.a19100f6a5a9431e2adb.js","/static/js/i18n/fi-json.d1934c18f12d80493ab1.js","/static/js/i18n/fr-json.36ef21ccb1203d3e65ae.js","/static/js/i18n/ga-json.3f1981817977a16f1d7e.js","/static/js/i18n/he-json.03c5d271a4034de06e6f.js","/static/js/i18n/hu-json.0487899ca7a7a8505ed8.js","/static/js/i18n/id-json.3e42564ce7a3a847ecb0.js","/static/js/i18n/it-json.99a21d5c98376af17141.js","/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js","/static/js/i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js","/static/js/i18n/ko-json.4bd28b26a7390a09afc2.js","/static/js/i18n/nb-json.a54af3b1f47d576ad4aa.js","/static/js/i18n/nl-json.3fb9758b10c29434b613.js","/static/js/i18n/oc-json.4f52bf1b6e3213acc33c.js","/static/js/i18n/pl-json.c963247822381b05579b.js","/static/js/i18n/pt-json.3fc5593e030268bcd291.js","/static/js/i18n/ro-json.3fd9977ed1c1413059ae.js","/static/js/i18n/ru-json.b913eb7f7e9f0c642438.js","/static/js/i18n/sk-json.d8d0eba80f94e6f55145.js","/static/js/i18n/te-json.ce6db28261b2f824064f.js","/static/js/i18n/uk-json.003908af9b15becdd382.js","/static/js/i18n/vi-json.703c1e731be6e857bbf3.js","/static/js/i18n/zh-json.63e4c9fe0197374a5dac.js","/static/js/i18n/zh_Hant-json.bfa569654a5cd74767ce.js","/static/js/emoji-annotations/af-json.96c988285a6a2cce6246.js","/static/js/emoji-annotations/am-json.94388548f7c18233fec3.js","/static/js/emoji-annotations/ar-json.5527466d349f2954d49b.js","/static/js/emoji-annotations/ar_SA-json.4a6f4402931a867070f0.js","/static/js/emoji-annotations/as-json.34cf67edc1cecd195738.js","/static/js/emoji-annotations/ast-json.7e4da8cb7e539c19a9b9.js","/static/js/emoji-annotations/az-json.9a32f2941d9c4d1f834c.js","/static/js/emoji-annotations/be-json.f92f80669873a4100c69.js","/static/js/emoji-annotations/bg-json.7c69c52572a7bf87e1db.js","/static/js/emoji-annotations/bn-json.657aac057f36ad06c58d.js","/static/js/emoji-annotations/br-json.c7175423d8965ed10bae.js","/static/js/emoji-annotations/bs-json.48ef42da1c7976cf083c.js","/static/js/emoji-annotations/ca-json.ce029e860b10b242c6a5.js","/static/js/emoji-annotations/ccp-json.02836537ffe2b02291cb.js","/static/js/emoji-annotations/ceb-json.9db0336f168aa77ee395.js","/static/js/emoji-annotations/chr-json.e7e542ab5a74167dec10.js","/static/js/emoji-annotations/ckb-json.13dc83db1e15aa76051a.js","/static/js/emoji-annotations/cs-json.48d8bba230dc9fe6b3dc.js","/static/js/emoji-annotations/cy-json.e09dd13da5ad56530ead.js","/static/js/emoji-annotations/da-json.8d074e27df71edafc543.js","/static/js/emoji-annotations/de-json.e1443c01a191af1665e1.js","/static/js/emoji-annotations/de_CH-json.b4a5891ea2f38d616ec0.js","/static/js/emoji-annotations/doi-json.7841c3f3ceb4e3da0bd1.js","/static/js/emoji-annotations/dsb-json.7635686ffd8d62264466.js","/static/js/emoji-annotations/el-json.b36610f2ea16d56c2314.js","/static/js/emoji-annotations/en-json.6c3947f7c49c3952084d.js","/static/js/emoji-annotations/en_001-json.72d8c47269350f59aa9f.js","/static/js/emoji-annotations/en_AU-json.33aac9bbd887273a34b1.js","/static/js/emoji-annotations/en_CA-json.5de965778a6b8a5a4bb4.js","/static/js/emoji-annotations/en_GB-json.bd687f904492facc81d1.js","/static/js/emoji-annotations/en_IN-json.002faa48c09121928fca.js","/static/js/emoji-annotations/es-json.f593b0dc2367a9d7fb30.js","/static/js/emoji-annotations/es_419-json.d81991295392b6ed83bb.js","/static/js/emoji-annotations/es_MX-json.ee359d4b611fdb1aeb33.js","/static/js/emoji-annotations/es_US-json.280bdb036dfd651d079a.js","/static/js/emoji-annotations/et-json.c42e3f186a55ecb061cd.js","/static/js/emoji-annotations/eu-json.931b429f5fcc141549a5.js","/static/js/emoji-annotations/fa-json.819c7f263c8594ccf4fa.js","/static/js/emoji-annotations/fi-json.0f254bb4b0faaba4abcc.js","/static/js/emoji-annotations/fil-json.4fca833f178d1b889b69.js","/static/js/emoji-annotations/fo-json.9b060e8009b3a8be4597.js","/static/js/emoji-annotations/fr-json.da49ed0d1a6622fe1c67.js","/static/js/emoji-annotations/fr_CA-json.59ed6b59e2ca68707292.js","/static/js/emoji-annotations/ga-json.cb3f9e613a8c445aea23.js","/static/js/emoji-annotations/gd-json.e3d0aea3725be774ad81.js","/static/js/emoji-annotations/gl-json.ce89036f0ae72224c994.js","/static/js/emoji-annotations/gu-json.8a899f364cf260376905.js","/static/js/emoji-annotations/ha-json.2a08912b38925c10f970.js","/static/js/emoji-annotations/ha_NE-json.e4855d92aaccfdd6ba57.js","/static/js/emoji-annotations/he-json.a3d7631f32182b0955a2.js","/static/js/emoji-annotations/hi-json.04bc5f73dc2169def97e.js","/static/js/emoji-annotations/hi_Latn-json.3cb73c456f31261f1908.js","/static/js/emoji-annotations/hr-json.fe847ade1f18a60e513c.js","/static/js/emoji-annotations/hsb-json.438721731b4171bc6fc3.js","/static/js/emoji-annotations/hu-json.1faf52040deda872b416.js","/static/js/emoji-annotations/hy-json.2d819f7faabfeba8457f.js","/static/js/emoji-annotations/ia-json.8e8365e2bf41779e2beb.js","/static/js/emoji-annotations/id-json.55f83c46d753b0b69330.js","/static/js/emoji-annotations/ig-json.f19fa5fe3582463ba73c.js","/static/js/emoji-annotations/is-json.62e220c65215b034533d.js","/static/js/emoji-annotations/it-json.9c1758f4fd3391f7f61a.js","/static/js/emoji-annotations/ja-json.0bd51f8c40c106355b0e.js","/static/js/emoji-annotations/jv-json.1c8d5ffcff22b46b6214.js","/static/js/emoji-annotations/ka-json.567e7b051d90a37003f3.js","/static/js/emoji-annotations/kab-json.1a2de4774f4ddc2b51dd.js","/static/js/emoji-annotations/kk-json.a20b59d47bdfe99786ad.js","/static/js/emoji-annotations/kl-json.87ab8661b4bdecd09faf.js","/static/js/emoji-annotations/km-json.9bc922b2e0faa64b4c53.js","/static/js/emoji-annotations/kn-json.efdac8ac0cb00991ba1e.js","/static/js/emoji-annotations/ko-json.d175900fe48f48ce87c8.js","/static/js/emoji-annotations/kok-json.116e4f72db3bfb846233.js","/static/js/emoji-annotations/ku-json.2173ed87f8d7372ee209.js","/static/js/emoji-annotations/ky-json.310bda579c819eda9472.js","/static/js/emoji-annotations/lb-json.499c526f3a653618ea9b.js","/static/js/emoji-annotations/lo-json.ecb06d61465a355b8157.js","/static/js/emoji-annotations/lt-json.ced4d5e70edc60127df6.js","/static/js/emoji-annotations/lv-json.5600c2eb6d59fa0aa2e2.js","/static/js/emoji-annotations/mai-json.302386b3358f4d34f9c8.js","/static/js/emoji-annotations/mi-json.9efe6f146ecd8987f80a.js","/static/js/emoji-annotations/mk-json.a254cabb8570419cc426.js","/static/js/emoji-annotations/ml-json.3f2902a84240faff1b48.js","/static/js/emoji-annotations/mn-json.764169f1168d0432640f.js","/static/js/emoji-annotations/mni-json.7db7f76ab1ce34e3683d.js","/static/js/emoji-annotations/mr-json.cb0a87d9aabf8a52161d.js","/static/js/emoji-annotations/ms-json.272ee4735aabc37015dd.js","/static/js/emoji-annotations/mt-json.3ddf7dbc114adf90c500.js","/static/js/emoji-annotations/my-json.8e7dd1485813d15bba7e.js","/static/js/emoji-annotations/ne-json.a0118dca2096a101b8e8.js","/static/js/emoji-annotations/nl-json.52f4b93b8fa5e22cb585.js","/static/js/emoji-annotations/nn-json.7293cd5d7205681cf48c.js","/static/js/emoji-annotations/no-json.22bdbbc77cc3c14ada58.js","/static/js/emoji-annotations/or-json.b007c2f6f92dcc95efac.js","/static/js/emoji-annotations/pa-json.7d60d69762a108270669.js","/static/js/emoji-annotations/pa_Arab-json.5ae021308b1c5f6dd8a7.js","/static/js/emoji-annotations/pcm-json.eac3a5ad0b4b5b33289d.js","/static/js/emoji-annotations/pl-json.e9e8f1ed84dc6c169516.js","/static/js/emoji-annotations/ps-json.a0d9eea5b81bcad11e64.js","/static/js/emoji-annotations/pt-json.2b2512ee44291bdb2ae7.js","/static/js/emoji-annotations/pt_PT-json.c381b13e323f91b0e6b3.js","/static/js/emoji-annotations/qu-json.55f4df57e71076dbad9f.js","/static/js/emoji-annotations/rm-json.985d4934f386fd05a75c.js","/static/js/emoji-annotations/ro-json.cb62f86ce78c94d1e813.js","/static/js/emoji-annotations/ru-json.a81d0df34460837ccacc.js","/static/js/emoji-annotations/rw-json.031838c5374676191131.js","/static/js/emoji-annotations/sa-json.21b06234a08c7469ccb4.js","/static/js/emoji-annotations/sat-json.71e92700b2aaca8e021c.js","/static/js/emoji-annotations/sc-json.c84c9c47d2e104c43e4c.js","/static/js/emoji-annotations/sd-json.8f2a6a06dc3cf185f79d.js","/static/js/emoji-annotations/si-json.841b356da03623c10dbf.js","/static/js/emoji-annotations/sk-json.5d96bdb4da82655d0314.js","/static/js/emoji-annotations/sl-json.a40c5548da34fce6f1d0.js","/static/js/emoji-annotations/so-json.f75abd16637c8924c075.js","/static/js/emoji-annotations/sq-json.bcf154ed8a6138aa089c.js","/static/js/emoji-annotations/sr-json.e29a20e59a708df0c6a8.js","/static/js/emoji-annotations/sr_Cyrl_BA-json.83c7c64b9696ae2339f2.js","/static/js/emoji-annotations/sr_Latn-json.ff27d1f455bf2afb8d70.js","/static/js/emoji-annotations/sr_Latn_BA-json.72933405032b81344754.js","/static/js/emoji-annotations/su-json.daff15251020cbecea7d.js","/static/js/emoji-annotations/sv-json.8b0374cbca3a77519876.js","/static/js/emoji-annotations/sw-json.d5f350641b9cbcc0e126.js","/static/js/emoji-annotations/sw_KE-json.f3563cbeac1c158563d5.js","/static/js/emoji-annotations/ta-json.675cc6c7607449d4a91b.js","/static/js/emoji-annotations/te-json.8a69a10f62cdf626244e.js","/static/js/emoji-annotations/tg-json.9647f559a4477d7d8e96.js","/static/js/emoji-annotations/th-json.34709bae223bb9d2587c.js","/static/js/emoji-annotations/ti-json.5b173bd33bb960be805b.js","/static/js/emoji-annotations/tk-json.23a9a6229829921704ad.js","/static/js/emoji-annotations/to-json.50ac37d101caaf592c94.js","/static/js/emoji-annotations/tr-json.6462e8cfd5006cf5b6cf.js","/static/js/emoji-annotations/tt-json.4c089389ba9983ec8ef7.js","/static/js/emoji-annotations/ug-json.bf768bd32e9ff02b0a8a.js","/static/js/emoji-annotations/uk-json.af110c8eef232638fc4d.js","/static/js/emoji-annotations/ur-json.983c02109444c883a18f.js","/static/js/emoji-annotations/uz-json.ac43f4c54d4587324a20.js","/static/js/emoji-annotations/vi-json.f6a364b2add7f8c8bc67.js","/static/js/emoji-annotations/wo-json.e0d689e22cda0dd77e9a.js","/static/js/emoji-annotations/xh-json.21e88c05ad3113dfc7f2.js","/static/js/emoji-annotations/yo-json.ea1150d6bc360dd86f2e.js","/static/js/emoji-annotations/yo_BJ-json.650318c25fe4da92bad8.js","/static/js/emoji-annotations/yue-json.15102c0ddfdf19bdfb4c.js","/static/js/emoji-annotations/yue_Hans-json.cc60bb10d32fab3d8207.js","/static/js/emoji-annotations/zh-json.e42a28127d5c1aff6c85.js","/static/js/emoji-annotations/zh_Hant-json.9cbb765c181d443828a9.js","/static/js/emoji-annotations/zh_Hant_HK-json.7eee03c705347a21c612.js","/static/js/emoji-annotations/zu-json.e0cb7cd3890583fd0f6d.js","/static/js/5948.2b7b4e97487f2539eb44.js","/static/js/6464.fea96fa80a7373e4e5f8.js","/static/js/159.3a9274574f1e33801c4a.js","/static/js/9114.e761a1c6846fea99aaf1.js","/static/js/2724.e4840c73281069ba54ab.js","/static/js/48.d7e479b200a6c89c4958.js","/static/ruffle/56f009143a5a7685fad9.wasm","/static/ruffle/92614a5efc3434baeaa9.wasm","/static/ruffle/LICENSE_APACHE","/static/ruffle/LICENSE_MIT","/static/ruffle/README.md","/static/ruffle/core.ruffle.61b3dd915983ae8a8b16.js","/static/ruffle/core.ruffle.848d766d6fc336164c2f.js","/static/ruffle/package.json","/static/ruffle/ruffle.js","/static/js/2724.e4840c73281069ba54ab.js.LICENSE.txt","/static/js/48.d7e479b200a6c89c4958.js.LICENSE.txt","/index.html","/static/css/app.48e52505beba5b9ab69b.css","/static/css/5948.06d2a0d84620cba6a4fb.css","/static/css/6464.169260b661120cc50815.css","/static/css/159.1d523a00378ebd68c5b3.css","/static/css/9114.8def3b2b7fe70b3b3712.css"]};
/*! For license information please see sw-pleroma.js.LICENSE.txt */
-(()=>{var e={5464:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["منشور مجهول، جارٍ البحث عنه…"])},favorited_you:e=>{const{normalize:t}=e;return t(["أعجِب بمنشورك"])},followed_you:e=>{const{normalize:t}=e;return t(["يُتابعك"])},load_older:e=>{const{normalize:t}=e;return t(["تحميل الإشعارات الأقدم"])},notifications:e=>{const{normalize:t}=e;return t(["الإخطارات"])},read:e=>{const{normalize:t}=e;return t(["مقروء!"])},repeated_you:e=>{const{normalize:t}=e;return t(["شارَك منشورك"])}}}},3708:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Publicació desconeguda, s'està cercant…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ha marcat un estat teu"])},followed_you:e=>{const{normalize:t}=e;return t(["ha començat a seguir-te"])},load_older:e=>{const{normalize:t}=e;return t(["Carrega més notificacions"])},notifications:e=>{const{normalize:t}=e;return t(["Notificacions"])},read:e=>{const{normalize:t}=e;return t(["Llegit!"])},repeated_you:e=>{const{normalize:t}=e;return t(["ha repetit el teu estat"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrat a"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No més notificacions"])},follow_request:e=>{const{normalize:t}=e;return t(["et vol seguir"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["ha reaccionat amb ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error obtenint notificacions: ",r(n(0))])}}}},122:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Neznámý příspěvek, hledám jej…"])},favorited_you:e=>{const{normalize:t}=e;return t(["si oblíbil/a váš příspěvek"])},followed_you:e=>{const{normalize:t}=e;return t(["vás nyní sleduje"])},load_older:e=>{const{normalize:t}=e;return t(["Načíst starší oznámení"])},notifications:e=>{const{normalize:t}=e;return t(["Oznámení"])},read:e=>{const{normalize:t}=e;return t(["Číst!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zopakoval/a váš příspěvek"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Žádná další oznámení"])}}}},414:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unbekannte Nachricht, suche danach…"])},favorited_you:e=>{const{normalize:t}=e;return t(["favorisierte deine Nachricht"])},followed_you:e=>{const{normalize:t}=e;return t(["folgt dir"])},load_older:e=>{const{normalize:t}=e;return t(["Ältere Benachrichtigungen laden"])},notifications:e=>{const{normalize:t}=e;return t(["Benachrichtigungen"])},read:e=>{const{normalize:t}=e;return t(["Gelesen!"])},repeated_you:e=>{const{normalize:t}=e;return t(["wiederholte deine Nachricht"])},follow_request:e=>{const{normalize:t}=e;return t(["möchte dir folgen"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrierte zu"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagierte mit ",r(n(0))])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Keine Benachrichtigungen mehr"])},error:e=>{const{normalize:t}=e;return t(["Error beim laden von Neuigkeiten"])}}}},2551:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error fetching notifications: ",r(n(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reacted with ",r(n(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["submitted a report"])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}}}},5775:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Nekonata stato, serĉante ĝin…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ŝatis vian staton"])},followed_you:e=>{const{normalize:t}=e;return t(["ekabonis vin"])},load_older:e=>{const{normalize:t}=e;return t(["Enlegi pli malnovajn sciigojn"])},notifications:e=>{const{normalize:t}=e;return t(["Sciigoj"])},read:e=>{const{normalize:t}=e;return t(["Legite!"])},repeated_you:e=>{const{normalize:t}=e;return t(["ripetis vian staton"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Neniuj pliaj sciigoj"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagis per ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migris al"])},follow_request:e=>{const{normalize:t}=e;return t(["volas vin aboni"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Eraris akirado de sciigoj: ",r(n(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["sendis raporton"])},poll_ended:e=>{const{normalize:t}=e;return t(["enketo finiĝis"])}}}},8438:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Estado desconocido, buscándolo…"])},favorited_you:e=>{const{normalize:t}=e;return t(["le gusta tu estado"])},followed_you:e=>{const{normalize:t}=e;return t(["empezó a seguirte"])},load_older:e=>{const{normalize:t}=e;return t(["Cargar notificaciones antiguas"])},notifications:e=>{const{normalize:t}=e;return t(["Notificaciones"])},read:e=>{const{normalize:t}=e;return t(["¡Leído!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repitió tu estado"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No hay más notificaciones"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reaccionó con ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migrado a"])},follow_request:e=>{const{normalize:t}=e;return t(["quiere seguirte"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error obteniendo notificaciones:",r(n(0))])}}}},9997:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["alustas sinu jälgimist"])},notifications:e=>{const{normalize:t}=e;return t(["Teated"])},read:e=>{const{normalize:t}=e;return t(["Loe!"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reageeris ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["kolis"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Rohkem teateid ei ole"])},repeated_you:e=>{const{normalize:t}=e;return t(["taaspostitas su staatuse"])},load_older:e=>{const{normalize:t}=e;return t(["Laadi vanemad teated"])},follow_request:e=>{const{normalize:t}=e;return t(["soovib Teid jälgida"])},favorited_you:e=>{const{normalize:t}=e;return t(["lisas su staatuse lemmikuks"])},broken_favorite:e=>{const{normalize:t}=e;return t(["Tundmatu staatus, otsin…"])}}}},9975:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Egoera ezezaguna, bilatzen…"])},favorited_you:e=>{const{normalize:t}=e;return t(["zure mezua gogoko du"])},followed_you:e=>{const{normalize:t}=e;return t(["Zu jarraitzen zaitu"])},load_older:e=>{const{normalize:t}=e;return t(["Kargatu jakinarazpen zaharragoak"])},notifications:e=>{const{normalize:t}=e;return t(["Jakinarazpenak"])},read:e=>{const{normalize:t}=e;return t(["Irakurrita!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zure mezua errepikatu du"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ez dago jakinarazpen gehiago"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0)),"kin erreakzionatu zuen"])},migrated_to:e=>{const{normalize:t}=e;return t(["hona migratua:"])},follow_request:e=>{const{normalize:t}=e;return t(["jarraitu nahi zaitu"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Errorea jakinarazpenak eskuratzean: ",r(n(0))])}}}},9923:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Viestiä ei löydetty…"])},favorited_you:e=>{const{normalize:t}=e;return t(["tykkäsi viestistäsi"])},followed_you:e=>{const{normalize:t}=e;return t(["seuraa sinua"])},load_older:e=>{const{normalize:t}=e;return t(["Lataa vanhempia ilmoituksia"])},notifications:e=>{const{normalize:t}=e;return t(["Ilmoitukset"])},read:e=>{const{normalize:t}=e;return t(["Lue!"])},repeated_you:e=>{const{normalize:t}=e;return t(["toisti viestisi"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ei enempää ilmoituksia"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["lisäsi reaktion ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["siirtyi sivulle"])},follow_request:e=>{const{normalize:t}=e;return t(["haluaa seurata sinua"])}}}},8375:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Message inconnu, recherche en cours…"])},favorited_you:e=>{const{normalize:t}=e;return t(["a aimé votre statut"])},followed_you:e=>{const{normalize:t}=e;return t(["vous suit"])},load_older:e=>{const{normalize:t}=e;return t(["Charger les notifications précédentes"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Lu !"])},repeated_you:e=>{const{normalize:t}=e;return t(["a partagé votre statut"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Aucune notification supplémentaire"])},migrated_to:e=>{const{normalize:t}=e;return t(["a migré à"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["a réagi avec ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["veut vous suivre"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Erreur de chargement des notifications : ",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["Sondage terminé"])},submitted_report:e=>{const{normalize:t}=e;return t(["Rapport envoyé"])}}}},1746:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Post anaithnid. Cuardach dó…"])},favorited_you:e=>{const{normalize:t}=e;return t(["toghadh le do phost"])},followed_you:e=>{const{normalize:t}=e;return t(["lean tú"])},load_older:e=>{const{normalize:t}=e;return t(["Luchtaigh fógraí aosta"])},notifications:e=>{const{normalize:t}=e;return t(["Fógraí"])},read:e=>{const{normalize:t}=e;return t(["Léigh!"])},repeated_you:e=>{const{normalize:t}=e;return t(["athphostáil tú"])}}}},9369:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["סטאטוס לא ידוע, מחפש…"])},favorited_you:e=>{const{normalize:t}=e;return t(["אהב את הסטטוס שלך"])},followed_you:e=>{const{normalize:t}=e;return t(["עקב אחריך"])},load_older:e=>{const{normalize:t}=e;return t(["טען התראות ישנות"])},notifications:e=>{const{normalize:t}=e;return t(["התראות"])},read:e=>{const{normalize:t}=e;return t(["קרא!"])},repeated_you:e=>{const{normalize:t}=e;return t(["חזר על הסטטוס שלך"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["לא עוד התראות"])}}}},377:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["követ téged"])},notifications:e=>{const{normalize:t}=e;return t(["Értesítések"])},read:e=>{const{normalize:t}=e;return t(["Olvasva!"])}}}},6710:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["ti segue"])},notifications:e=>{const{normalize:t}=e;return t(["Notifiche"])},read:e=>{const{normalize:t}=e;return t(["Letto!"])},broken_favorite:e=>{const{normalize:t}=e;return t(["Stato sconosciuto, lo sto cercando…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ha gradito"])},load_older:e=>{const{normalize:t}=e;return t(["Carica notifiche precedenti"])},repeated_you:e=>{const{normalize:t}=e;return t(["ha condiviso il tuo messaggio"])},follow_request:e=>{const{normalize:t}=e;return t(["vuole seguirti"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Fine delle notifiche"])},migrated_to:e=>{const{normalize:t}=e;return t(["è migrato verso"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["ha reagito con ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Errore nel caricare le notifiche: ",r(n(0))])}}}},6534:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["ステータスがみつかりません。さがしています…"])},favorited_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがおきにいりされました"])},followed_you:e=>{const{normalize:t}=e;return t(["フォローされました"])},load_older:e=>{const{normalize:t}=e;return t(["ふるいつうちをみる"])},notifications:e=>{const{normalize:t}=e;return t(["つうち"])},read:e=>{const{normalize:t}=e;return t(["よんだ!"])},repeated_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがリピートされました"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["つうちはありません"])}}}},333:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["ステータスが見つかりません。探しています…"])},favorited_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがお気に入りされました"])},followed_you:e=>{const{normalize:t}=e;return t(["フォローされました"])},load_older:e=>{const{normalize:t}=e;return t(["古い通知をみる"])},notifications:e=>{const{normalize:t}=e;return t(["通知"])},read:e=>{const{normalize:t}=e;return t(["読んだ!"])},repeated_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがリピートされました"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["通知はありません"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," でリアクションしました"])},migrated_to:e=>{const{normalize:t}=e;return t(["インスタンスを引っ越しました"])},follow_request:e=>{const{normalize:t}=e;return t(["あなたをフォローしたいです"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["通知の取得に失敗しました: ",r(n(0))])}}}},7379:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["알 수 없는 게시물입니다, 검색합니다…"])},favorited_you:e=>{const{normalize:t}=e;return t(["관심을 가짐"])},followed_you:e=>{const{normalize:t}=e;return t(["팔로우함"])},load_older:e=>{const{normalize:t}=e;return t(["이전 알림 불러오기"])},notifications:e=>{const{normalize:t}=e;return t(["알림"])},read:e=>{const{normalize:t}=e;return t(["읽음!"])},repeated_you:e=>{const{normalize:t}=e;return t(["리핏함"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["알림이 없습니다"])},migrated_to:e=>{const{normalize:t}=e;return t(["이사했습니다"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," 로 반응했습니다"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["알림 불러오기 실패: ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["팔로우 요청"])},submitted_report:e=>{const{normalize:t}=e;return t(["신고 내용을 전송함"])},poll_ended:e=>{const{normalize:t}=e;return t(["투표가 끝남"])}}}},8103:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Ukjent status, leter etter den…"])},favorited_you:e=>{const{normalize:t}=e;return t(["likte din status"])},followed_you:e=>{const{normalize:t}=e;return t(["fulgte deg"])},load_older:e=>{const{normalize:t}=e;return t(["Last eldre varsler"])},notifications:e=>{const{normalize:t}=e;return t(["Varslinger"])},read:e=>{const{normalize:t}=e;return t(["Les!"])},repeated_you:e=>{const{normalize:t}=e;return t(["Gjentok din status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ingen gjenstående varsler"])},follow_request:e=>{const{normalize:t}=e;return t(["ønsker å følge deg"])}}}},728:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Onbekend bericht, aan het zoeken…"])},favorited_you:e=>{const{normalize:t}=e;return t(["vond je bericht leuk"])},followed_you:e=>{const{normalize:t}=e;return t(["volgt jou"])},load_older:e=>{const{normalize:t}=e;return t(["Oudere meldingen laden"])},notifications:e=>{const{normalize:t}=e;return t(["Meldingen"])},read:e=>{const{normalize:t}=e;return t(["Gelezen!"])},repeated_you:e=>{const{normalize:t}=e;return t(["herhaalde je bericht"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Geen meldingen meer"])},migrated_to:e=>{const{normalize:t}=e;return t(["is gemigreerd naar"])},follow_request:e=>{const{normalize:t}=e;return t(["wil je volgen"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reageerde met ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Fout bij ophalen van meldingen: ",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["peiling is beëindigd"])}}}},3932:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Estatut desconegut, sèm a lo cercar..."])},favorited_you:e=>{const{normalize:t}=e;return t(["a aimat vòstre estatut"])},followed_you:e=>{const{normalize:t}=e;return t(["vos a seguit"])},load_older:e=>{const{normalize:t}=e;return t(["Cargar las notificacions mai ancianas"])},notifications:e=>{const{normalize:t}=e;return t(["Notficacions"])},read:e=>{const{normalize:t}=e;return t(["Legit !"])},repeated_you:e=>{const{normalize:t}=e;return t(["a repetit vòstre estatut"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Pas mai de notificacions"])}}}},7028:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Nieznany status, szukam go…"])},favorited_you:e=>{const{normalize:t}=e;return t(["dodał(-a) twój status do ulubionych"])},followed_you:e=>{const{normalize:t}=e;return t(["obserwuje cię"])},load_older:e=>{const{normalize:t}=e;return t(["Załaduj starsze powiadomienia"])},notifications:e=>{const{normalize:t}=e;return t(["Powiadomienia"])},read:e=>{const{normalize:t}=e;return t(["Przeczytane!"])},repeated_you:e=>{const{normalize:t}=e;return t(["powtórzył(-a) twój status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Nie masz więcej powiadomień"])},migrated_to:e=>{const{normalize:t}=e;return t(["wyemigrował do"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["zareagował z ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["chce ciebie obserwować"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Błąd pobierania powiadomień: ",r(n(0))])}}}},789:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Publicação desconhecida, a procurar…"])},favorited_you:e=>{const{normalize:t}=e;return t(["gostou do teu post"])},followed_you:e=>{const{normalize:t}=e;return t(["seguiu-te"])},load_older:e=>{const{normalize:t}=e;return t(["Carregar notificações antigas"])},notifications:e=>{const{normalize:t}=e;return t(["Notificações"])},read:e=>{const{normalize:t}=e;return t(["Lido!"])},repeated_you:e=>{const{normalize:t}=e;return t(["partilhou o teu post"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Sem mais notificações"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagiu com ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migrou para"])},follow_request:e=>{const{normalize:t}=e;return t(["quer seguir-te"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Erro ao obter notificações: ",r(n(0))])}}}},5032:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["te-a urmărit"])},notifications:e=>{const{normalize:t}=e;return t(["Notificări"])},read:e=>{const{normalize:t}=e;return t(["Citit!"])}}}},3460:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Неизвестный статус, ищем…"])},favorited_you:e=>{const{normalize:t}=e;return t(["нравится ваш статус"])},followed_you:e=>{const{normalize:t}=e;return t(["начал(а) читать вас"])},load_older:e=>{const{normalize:t}=e;return t(["Загрузить старые уведомления"])},notifications:e=>{const{normalize:t}=e;return t(["Уведомления"])},read:e=>{const{normalize:t}=e;return t(["Прочесть"])},repeated_you:e=>{const{normalize:t}=e;return t(["повторил(а) ваш статус"])},follow_request:e=>{const{normalize:t}=e;return t(["хочет читать вас"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["добавил(а) реакцию: ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["перехал на"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Нет дальнейших уведомлений"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Ошибка при обновлении уведомлений: ",r(n(0))])}}}},6139:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Neznáma správa, dohľadávam ju…"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Chyba získavania upozornení: ",r(n(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["si obľúbil tvoju správu"])},followed_you:e=>{const{normalize:t}=e;return t(["ťa nasleduje"])},follow_request:e=>{const{normalize:t}=e;return t(["ťa chce nasledovať"])},load_older:e=>{const{normalize:t}=e;return t(["Nahrať staršie upozornenia"])},notifications:e=>{const{normalize:t}=e;return t(["Upozornenia"])},read:e=>{const{normalize:t}=e;return t(["Prečítané!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zopakoval tvoju správu"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Žiadne ďalšie upozornenia"])},migrated_to:e=>{const{normalize:t}=e;return t(["sa presťahoval na"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagoval nasledovne ",r(n(0))])}}}},5751:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{}}},4389:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["未知的状态,正在搜索中…"])},favorited_you:e=>{const{normalize:t}=e;return t(["喜欢了你的状态"])},followed_you:e=>{const{normalize:t}=e;return t(["关注了你"])},load_older:e=>{const{normalize:t}=e;return t(["加载更早的通知"])},notifications:e=>{const{normalize:t}=e;return t(["通知"])},read:e=>{const{normalize:t}=e;return t(["已阅!"])},repeated_you:e=>{const{normalize:t}=e;return t(["转发了你的状态"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["没有更多的通知"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["作出了 ",r(n(0))," 的反应"])},migrated_to:e=>{const{normalize:t}=e;return t(["迁移到了"])},follow_request:e=>{const{normalize:t}=e;return t(["想要关注你"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["取得通知时发生错误:",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["投票结束了"])}}}},5573:e=>{"use strict";var t=/["'&<>]/;e.exports=function(e){var r,n=""+e,o=t.exec(n);if(!o)return n;var a="",i=0,s=0;for(i=o.index;i<n.length;i++){switch(n.charCodeAt(i)){case 34:r="&quot;";break;case 38:r="&amp;";break;case 39:r="&#39;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}s!==i&&(a+=n.substring(s,i)),s=i+1,a+=r}return s!==i?a+n.substring(s,i):a}},9483:function(e,t){!function(r){"object"==typeof t&&void 0!==e?e.exports=r():"function"==typeof define&&define.amd?define([],r):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=r()}((function(){return function e(t,r,n){function o(i,s){if(!r[i]){if(!t[i]){var l="function"==typeof require&&require;if(!s&&l)return l(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[i]={exports:{}};t[i][0].call(u.exports,(function(e){return o(t[i][1][e]||e)}),u,u.exports,e,t,r,n)}return r[i].exports}for(var a="function"==typeof require&&require,i=0;i<n.length;i++)o(n[i]);return o}({1:[function(e,t,r){(function(e){"use strict";var r,n,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var a=0,i=new o(u),s=e.document.createTextNode("");i.observe(s,{characterData:!0}),r=function(){s.data=a=++a%2}}else if(e.setImmediate||void 0===e.MessageChannel)r="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var l=new e.MessageChannel;l.port1.onmessage=u,r=function(){l.port2.postMessage(0)}}var c=[];function u(){var e,t;n=!0;for(var r=c.length;r;){for(t=c,c=[],e=-1;++e<r;)t[e]();r=c.length}n=!1}t.exports=function(e){1!==c.push(e)||n||r()}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,r){"use strict";var n=e(1);function o(){}var a={},i=["REJECTED"],s=["FULFILLED"],l=["PENDING"];function c(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==o&&d(this,e)}function u(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(e,t,r){n((function(){var n;try{n=t(r)}catch(t){return a.reject(e,t)}n===e?a.reject(e,new TypeError("Cannot resolve promise with itself")):a.resolve(e,n)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function d(e,t){var r=!1;function n(t){r||(r=!0,a.reject(e,t))}function o(t){r||(r=!0,a.resolve(e,t))}var i=m((function(){t(o,n)}));"error"===i.status&&n(i.value)}function m(e,t){var r={};try{r.value=e(t),r.status="success"}catch(e){r.status="error",r.value=e}return r}t.exports=c,c.prototype.catch=function(e){return this.then(null,e)},c.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===i)return this;var r=new this.constructor(o);return this.state!==l?f(r,this.state===s?e:t,this.outcome):this.queue.push(new u(r,e,t)),r},u.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){a.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},a.resolve=function(e,t){var r=m(p,t);if("error"===r.status)return a.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=s,e.outcome=t;for(var o=-1,i=e.queue.length;++o<i;)e.queue[o].callFulfilled(t)}return e},a.reject=function(e,t){e.state=i,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},c.resolve=function(e){return e instanceof this?e:a.resolve(new this(o),e)},c.reject=function(e){var t=new this(o);return a.reject(t,e)},c.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);for(var i=new Array(r),s=0,l=-1,c=new this(o);++l<r;)u(e[l],l);return c;function u(e,o){t.resolve(e).then((function(e){i[o]=e,++s!==r||n||(n=!0,a.resolve(c,i))}),(function(e){n||(n=!0,a.reject(c,e))}))}},c.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var n,i=-1,s=new this(o);++i<t;)n=e[i],this.resolve(n).then((function(e){r||(r=!0,a.resolve(s,e))}),(function(e){r||(r=!0,a.reject(s,e))}));return s}},{1:1}],3:[function(e,t,r){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function a(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(o){if("TypeError"!==o.name)throw o;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<e.length;n+=1)r.append(e[n]);return r.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var i=Promise;function s(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function l(e,t,r){"function"==typeof t&&e.then(t),"function"==typeof r&&e.catch(r)}function c(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function u(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",p=void 0,d={},m=Object.prototype.toString,h="readonly",_="readwrite";function v(e){var t=d[e.name],r={};r.promise=new i((function(e,t){r.resolve=e,r.reject=t})),t.deferredOperations.push(r),t.dbReady?t.dbReady=t.dbReady.then((function(){return r.promise})):t.dbReady=r.promise}function g(e){var t=d[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function y(e,t){var r=d[e.name].deferredOperations.pop();if(r)return r.reject(t),r.promise}function b(e,t){return new i((function(r,n){if(d[e.name]=d[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return r(e.db);v(e),e.db.close()}var a=[e.name];t&&a.push(e.version);var i=o.open.apply(o,a);t&&(i.onupgradeneeded=function(t){var r=i.result;try{r.createObjectStore(e.storeName),t.oldVersion<=1&&r.createObjectStore(f)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),i.onerror=function(e){e.preventDefault(),n(i.error)},i.onsuccess=function(){var t=i.result;t.onversionchange=function(e){e.target.close()},r(t),g(e)}}))}function w(e){return b(e,!1)}function x(e){return b(e,!0)}function k(e,t){if(!e.db)return!0;var r=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,o=e.version>e.db.version;if(n&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||r){if(r){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function z(e){return a([function(e){for(var t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r),o=0;o<t;o++)n[o]=e.charCodeAt(o);return r}(atob(e.data))],{type:e.type})}function O(e){return e&&e.__local_forage_encoded_blob}function j(e){var t=this,r=t._initReady().then((function(){var e=d[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(r,e,e),r}function E(e,t,r,n){void 0===n&&(n=1);try{var o=e.db.transaction(e.storeName,t);r(null,o)}catch(o){if(n>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return i.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return function(e){v(e);for(var t=d[e.name],r=t.forages,n=0;n<r.length;n++){var o=r[n];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,w(e).then((function(t){return e.db=t,k(e)?x(e):t})).then((function(n){e.db=t.db=n;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=n})).catch((function(t){throw y(e,t),t}))}(e).then((function(){E(e,t,r,n-1)}))})).catch(r);r(o)}}var I={_driver:"asyncStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]=e[n];var o=d[r.name];o||(o={forages:[],db:null,dbReady:null,deferredOperations:[]},d[r.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=j);var a=[];function s(){return i.resolve()}for(var l=0;l<o.forages.length;l++){var c=o.forages[l];c!==t&&a.push(c._initReady().catch(s))}var u=o.forages.slice(0);return i.all(a).then((function(){return r.db=o.db,w(r)})).then((function(e){return r.db=e,k(r,t._defaultConfig.version)?x(r):e})).then((function(e){r.db=o.db=e,t._dbInfo=r;for(var n=0;n<u.length;n++){var a=u[n];a!==t&&(a._dbInfo.db=r.db,a._dbInfo.version=r.version)}}))},_support:function(){try{if(!o||!o.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),iterate:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).openCursor(),s=1;i.onsuccess=function(){var r=i.result;if(r){var n=r.value;O(n)&&(n=z(n));var o=e(n,r.key,s++);void 0!==o?t(o):r.continue()}else t()},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),O(e)&&(e=z(e)),t(e)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},setItem:function(e,t,r){var n=this;e=c(e);var o=new i((function(r,o){var s;n.ready().then((function(){return s=n._dbInfo,"[object Blob]"===m.call(t)?function(e){return"boolean"==typeof p?i.resolve(p):function(e){return new i((function(t){var r=e.transaction(f,_),n=a([""]);r.objectStore(f).put(n,"key"),r.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},r.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);t(r||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return p=e}))}(s.db).then((function(e){return e?t:(r=t,new i((function(e,t){var n=new FileReader;n.onerror=t,n.onloadend=function(t){var n=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:n,type:r.type})},n.readAsBinaryString(r)})));var r})):t})).then((function(t){E(n._dbInfo,_,(function(a,i){if(a)return o(a);try{var s=i.objectStore(n._dbInfo.storeName);null===t&&(t=void 0);var l=s.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),r(t)},i.onabort=i.onerror=function(){var e=l.error?l.error:l.transaction.error;o(e)}}catch(e){o(e)}}))})).catch(o)}));return s(o,r),o},removeItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,_,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){n(i.error)},a.onabort=function(){var e=i.error?i.error:i.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},clear:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,_,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},length:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,h,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},key:function(e,t){var r=this,n=new i((function(t,n){e<0?t(null):r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName),s=!1,l=i.openKeyCursor();l.onsuccess=function(){var r=l.result;r?0===e||s?t(r.key):(s=!0,r.advance(e)):t(null)},l.onerror=function(){n(l.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},keys:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,h,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).openKeyCursor(),i=[];a.onsuccess=function(){var t=a.result;t?(i.push(t.key),t.continue()):e(i)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},dropInstance:function(e,t){t=u.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,a=this;if(e.name){var l=e.name===r.name&&a._dbInfo.db,c=l?i.resolve(a._dbInfo.db):w(e).then((function(t){var r=d[e.name],n=r.forages;r.db=t;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=t;return t}));n=e.storeName?c.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var r=t.version+1;v(e);var n=d[e.name],a=n.forages;t.close();for(var s=0;s<a.length;s++){var l=a[s];l._dbInfo.db=null,l._dbInfo.version=r}var c=new i((function(t,n){var a=o.open(e.name,r);a.onerror=function(e){a.result.close(),n(e)},a.onupgradeneeded=function(){a.result.deleteObjectStore(e.storeName)},a.onsuccess=function(){var e=a.result;e.close(),t(e)}}));return c.then((function(e){n.db=e;for(var t=0;t<a.length;t++){var r=a[t];r._dbInfo.db=e,g(r._dbInfo)}})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}})):c.then((function(t){v(e);var r=d[e.name],n=r.forages;t.close();for(var a=0;a<n.length;a++)n[a]._dbInfo.db=null;var s=new i((function(t,r){var n=o.deleteDatabase(e.name);n.onerror=function(){var e=n.result;e&&e.close(),r(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},n.onsuccess=function(){var e=n.result;e&&e.close(),t(e)}}));return s.then((function(e){r.db=e;for(var t=0;t<n.length;t++)g(n[t]._dbInfo)})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}))}else n=i.reject("Invalid arguments");return s(n,t),n}},N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",L=/^~~local_forage_type~([^~]+)~/,S="__lfsc__:",R=S.length,F="arbf",A="blob",T="si08",C="ui08",P="uic8",D="si16",M="si32",W="ur16",U="ui32",$="fl32",V="fl64",B=R+F.length,q=Object.prototype.toString;function H(e){var t,r,n,o,a,i=.75*e.length,s=e.length,l=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);var c=new ArrayBuffer(i),u=new Uint8Array(c);for(t=0;t<s;t+=4)r=N.indexOf(e[t]),n=N.indexOf(e[t+1]),o=N.indexOf(e[t+2]),a=N.indexOf(e[t+3]),u[l++]=r<<2|n>>4,u[l++]=(15&n)<<4|o>>2,u[l++]=(3&o)<<6|63&a;return c}function G(e){var t,r=new Uint8Array(e),n="";for(t=0;t<r.length;t+=3)n+=N[r[t]>>2],n+=N[(3&r[t])<<4|r[t+1]>>4],n+=N[(15&r[t+1])<<2|r[t+2]>>6],n+=N[63&r[t+2]];return r.length%3==2?n=n.substring(0,n.length-1)+"=":r.length%3==1&&(n=n.substring(0,n.length-2)+"=="),n}var Y={serialize:function(e,t){var r="";if(e&&(r=q.call(e)),e&&("[object ArrayBuffer]"===r||e.buffer&&"[object ArrayBuffer]"===q.call(e.buffer))){var n,o=S;e instanceof ArrayBuffer?(n=e,o+=F):(n=e.buffer,"[object Int8Array]"===r?o+=T:"[object Uint8Array]"===r?o+=C:"[object Uint8ClampedArray]"===r?o+=P:"[object Int16Array]"===r?o+=D:"[object Uint16Array]"===r?o+=W:"[object Int32Array]"===r?o+=M:"[object Uint32Array]"===r?o+=U:"[object Float32Array]"===r?o+=$:"[object Float64Array]"===r?o+=V:t(new Error("Failed to get type for BinaryArray"))),t(o+G(n))}else if("[object Blob]"===r){var a=new FileReader;a.onload=function(){var r="~~local_forage_type~"+e.type+"~"+G(this.result);t("__lfsc__:blob"+r)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(r){console.error("Couldn't convert value into a JSON string: ",e),t(null,r)}},deserialize:function(e){if(e.substring(0,R)!==S)return JSON.parse(e);var t,r=e.substring(B),n=e.substring(R,B);if(n===A&&L.test(r)){var o=r.match(L);t=o[1],r=r.substring(o[0].length)}var i=H(r);switch(n){case F:return i;case A:return a([i],{type:t});case T:return new Int8Array(i);case C:return new Uint8Array(i);case P:return new Uint8ClampedArray(i);case D:return new Int16Array(i);case W:return new Uint16Array(i);case M:return new Int32Array(i);case U:return new Uint32Array(i);case $:return new Float32Array(i);case V:return new Float64Array(i);default:throw new Error("Unkown type: "+n)}},stringToBuffer:H,bufferToString:G};function X(e,t,r,n){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],r,n)}function K(e,t,r,n,o,a){e.executeSql(r,n,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?a(e,i):X(e,t,(function(){e.executeSql(r,n,o,a)}),a)}),a):a(e,i)}),a)}function J(e,t,r,n){var o=this;e=c(e);var a=new i((function(a,i){o.ready().then((function(){void 0===t&&(t=null);var s=t,l=o._dbInfo;l.serializer.serialize(t,(function(t,c){c?i(c):l.db.transaction((function(r){K(r,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){a(s)}),(function(e,t){i(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(n>0)return void a(J.apply(o,[e,s,r,n-1]));i(t)}}))}))})).catch(i)}));return s(a,r),a}function Q(e){return new i((function(t,r){e.transaction((function(n){n.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(r,n){for(var o=[],a=0;a<n.rows.length;a++)o.push(n.rows.item(a).name);t({db:e,storeNames:o})}),(function(e,t){r(t)}))}),(function(e){r(e)}))}))}var Z={_driver:"webSQLStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]="string"!=typeof e[n]?e[n].toString():e[n];var o=new i((function(e,n){try{r.db=openDatabase(r.name,String(r.version),r.description,r.size)}catch(e){return n(e)}r.db.transaction((function(o){X(o,r,(function(){t._dbInfo=r,e()}),(function(e,t){n(t)}))}),n)}));return r.serializer=Y,o},_support:"function"==typeof openDatabase,iterate:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT * FROM "+o.storeName,[],(function(r,n){for(var a=n.rows,i=a.length,s=0;s<i;s++){var l=a.item(s),c=l.value;if(c&&(c=o.serializer.deserialize(c)),void 0!==(c=e(c,l.key,s+1)))return void t(c)}t()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,r){var n=r.rows.length?r.rows.item(0).value:null;n&&(n=o.serializer.deserialize(n)),t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},setItem:function(e,t,r){return J.apply(this,[e,t,r,1])},removeItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},clear:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"DELETE FROM "+n.storeName,[],(function(){e()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},length:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"SELECT COUNT(key) as c FROM "+n.storeName,[],(function(t,r){var n=r.rows.item(0).c;e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},key:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,r){var n=r.rows.length?r.rows.item(0).key:null;t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},keys:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"SELECT key FROM "+n.storeName,[],(function(t,r){for(var n=[],o=0;o<r.rows.length;o++)n.push(r.rows.item(o).key);e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},dropInstance:function(e,t){t=u.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,o=this;return s(n=e.name?new i((function(t){var n;n=e.name===r.name?o._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:n,storeNames:[e.storeName]}):t(Q(n))})).then((function(e){return new i((function(t,r){e.db.transaction((function(n){function o(e){return new i((function(t,r){n.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){r(t)}))}))}for(var a=[],s=0,l=e.storeNames.length;s<l;s++)a.push(o(e.storeNames[s]));i.all(a).then((function(){t()})).catch((function(e){r(e)}))}),(function(e){r(e)}))}))})):i.reject("Invalid arguments"),t),n}};function ee(e,t){var r=e.name+"/";return e.storeName!==t.storeName&&(r+=e.storeName+"/"),r}var te={_driver:"localStorageWrapper",_initStorage:function(e){var t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ee(e,this._defaultConfig),!function(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}()||localStorage.length>0?(this._dbInfo=t,t.serializer=Y,i.resolve()):i.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var r=this,n=r.ready().then((function(){for(var t=r._dbInfo,n=t.keyPrefix,o=n.length,a=localStorage.length,i=1,s=0;s<a;s++){var l=localStorage.key(s);if(0===l.indexOf(n)){var c=localStorage.getItem(l);if(c&&(c=t.serializer.deserialize(c)),void 0!==(c=e(c,l.substring(o),i++)))return c}}}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=r.ready().then((function(){var t=r._dbInfo,n=localStorage.getItem(t.keyPrefix+e);return n&&(n=t.serializer.deserialize(n)),n}));return s(n,t),n},setItem:function(e,t,r){var n=this;e=c(e);var o=n.ready().then((function(){void 0===t&&(t=null);var r=t;return new i((function(o,a){var i=n._dbInfo;i.serializer.serialize(t,(function(t,n){if(n)a(n);else try{localStorage.setItem(i.keyPrefix+e,t),o(r)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||a(e),a(e)}}))}))}));return s(o,r),o},removeItem:function(e,t){var r=this;e=c(e);var n=r.ready().then((function(){var t=r._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return s(n,t),n},clear:function(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,r=localStorage.length-1;r>=0;r--){var n=localStorage.key(r);0===n.indexOf(e)&&localStorage.removeItem(n)}}));return s(r,e),r},length:function(e){var t=this.keys().then((function(e){return e.length}));return s(t,e),t},key:function(e,t){var r=this,n=r.ready().then((function(){var t,n=r._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(n.keyPrefix.length)),t}));return s(n,t),n},keys:function(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo,r=localStorage.length,n=[],o=0;o<r;o++){var a=localStorage.key(o);0===a.indexOf(e.keyPrefix)&&n.push(a.substring(e.keyPrefix.length))}return n}));return s(r,e),r},dropInstance:function(e,t){if(t=u.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var r=this.config();e.name=e.name||r.name,e.storeName=e.storeName||r.storeName}var n,o=this;return s(n=e.name?new i((function(t){e.storeName?t(ee(e,o._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}})):i.reject("Invalid arguments"),t),n}},re=function(e,t){for(var r,n,o=e.length,a=0;a<o;){if((r=e[a])===(n=t)||"number"==typeof r&&"number"==typeof n&&isNaN(r)&&isNaN(n))return!0;a++}return!1},ne=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},oe={},ae={},ie={INDEXEDDB:I,WEBSQL:Z,LOCALSTORAGE:te},se=[ie.INDEXEDDB._driver,ie.WEBSQL._driver,ie.LOCALSTORAGE._driver],le=["dropInstance"],ce=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(le),ue={description:"",driver:se.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function fe(e,t){e[t]=function(){var r=arguments;return e.ready().then((function(){return e[t].apply(e,r)}))}}function pe(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var r in t)t.hasOwnProperty(r)&&(ne(t[r])?arguments[0][r]=t[r].slice():arguments[0][r]=t[r])}return arguments[0]}var de=function(){function e(t){for(var r in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ie)if(ie.hasOwnProperty(r)){var n=ie[r],o=n._driver;this[r]=o,oe[o]||this.defineDriver(n)}this._defaultConfig=pe({},ue),this._config=pe({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":n(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,r){var n=new i((function(t,r){try{var n=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void r(o);for(var a=ce.concat("_initStorage"),l=0,c=a.length;l<c;l++){var u=a[l];if((!re(le,u)||e[u])&&"function"!=typeof e[u])return void r(o)}!function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),r=i.reject(t);return s(r,arguments[arguments.length-1]),r}},r=0,n=le.length;r<n;r++){var o=le[r];e[o]||(e[o]=t(o))}}();var f=function(r){oe[n]&&console.info("Redefining LocalForage driver: "+n),oe[n]=e,ae[n]=r,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(f,r):f(!!e._support):f(!0)}catch(e){r(e)}}));return l(n,t,r),n},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,r){var n=oe[e]?i.resolve(oe[e]):i.reject(new Error("Driver not found."));return l(n,t,r),n},e.prototype.getSerializer=function(e){var t=i.resolve(Y);return l(t,e),t},e.prototype.ready=function(e){var t=this,r=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return l(r,e,e),r},e.prototype.setDriver=function(e,t,r){var n=this;ne(e)||(e=[e]);var o=this._getSupportedDrivers(e);function a(){n._config.driver=n.driver()}function s(e){return n._extend(e),a(),n._ready=n._initStorage(n._config),n._ready}var c=null!==this._driverSet?this._driverSet.catch((function(){return i.resolve()})):i.resolve();return this._driverSet=c.then((function(){var e=o[0];return n._dbInfo=null,n._ready=null,n.getDriver(e).then((function(e){n._driver=e._driver,a(),n._wrapLibraryMethodsWithReady(),n._initDriver=function(e){return function(){var t=0;return function r(){for(;t<e.length;){var o=e[t];return t++,n._dbInfo=null,n._ready=null,n.getDriver(o).then(s).catch(r)}a();var l=new Error("No available storage method found.");return n._driverSet=i.reject(l),n._driverSet}()}}(o)}))})).catch((function(){a();var e=new Error("No available storage method found.");return n._driverSet=i.reject(e),n._driverSet})),l(this._driverSet,t,r),this._driverSet},e.prototype.supports=function(e){return!!ae[e]},e.prototype._extend=function(e){pe(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],r=0,n=e.length;r<n;r++){var o=e[r];this.supports(o)&&t.push(o)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=ce.length;e<t;e++)fe(this,ce[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),me=new de;t.exports=me},{3:3}]},{},[4])(4)}))},8552:(e,t,r)=>{var n=r(852)(r(5639),"DataView");e.exports=n},1989:(e,t,r)=>{var n=r(1789),o=r(401),a=r(7667),i=r(1327),s=r(1866);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},8407:(e,t,r)=>{var n=r(7040),o=r(4125),a=r(2117),i=r(3755),s=r(4705);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},7071:(e,t,r)=>{var n=r(852)(r(5639),"Map");e.exports=n},3369:(e,t,r)=>{var n=r(4785),o=r(1285),a=r(6e3),i=r(9916),s=r(5265);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},3818:(e,t,r)=>{var n=r(852)(r(5639),"Promise");e.exports=n},8525:(e,t,r)=>{var n=r(852)(r(5639),"Set");e.exports=n},8668:(e,t,r)=>{var n=r(3369),o=r(619),a=r(2385);function i(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t<r;)this.add(e[t])}i.prototype.add=i.prototype.push=o,i.prototype.has=a,e.exports=i},6384:(e,t,r)=>{var n=r(8407),o=r(7465),a=r(3779),i=r(7599),s=r(4758),l=r(4309);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=o,c.prototype.delete=a,c.prototype.get=i,c.prototype.has=s,c.prototype.set=l,e.exports=c},2705:(e,t,r)=>{var n=r(5639).Symbol;e.exports=n},1149:(e,t,r)=>{var n=r(5639).Uint8Array;e.exports=n},577:(e,t,r)=>{var n=r(852)(r(5639),"WeakMap");e.exports=n},6874:e=>{e.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},4963:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[o++]=i)}return a}},4636:(e,t,r)=>{var n=r(2545),o=r(5694),a=r(1469),i=r(4144),s=r(5776),l=r(6719),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=a(e),u=!r&&o(e),f=!r&&!u&&i(e),p=!r&&!u&&!f&&l(e),d=r||u||f||p,m=d?n(e.length,String):[],h=m.length;for(var _ in e)!t&&!c.call(e,_)||d&&("length"==_||f&&("offset"==_||"parent"==_)||p&&("buffer"==_||"byteLength"==_||"byteOffset"==_)||s(_,h))||m.push(_);return m}},9932:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}},2488:e=>{e.exports=function(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}},2908:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},8470:(e,t,r)=>{var n=r(7813);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},9881:(e,t,r)=>{var n=r(7816),o=r(9291)(n);e.exports=o},760:(e,t,r)=>{var n=r(9881);e.exports=function(e,t){var r=[];return n(e,(function(e,n,o){t(e,n,o)&&r.push(e)})),r}},1848:e=>{e.exports=function(e,t,r,n){for(var o=e.length,a=r+(n?1:-1);n?a--:++a<o;)if(t(e[a],a,e))return a;return-1}},1078:(e,t,r)=>{var n=r(2488),o=r(7285);e.exports=function e(t,r,a,i,s){var l=-1,c=t.length;for(a||(a=o),s||(s=[]);++l<c;){var u=t[l];r>0&&a(u)?r>1?e(u,r-1,a,i,s):n(s,u):i||(s[s.length]=u)}return s}},8483:(e,t,r)=>{var n=r(5063)();e.exports=n},7816:(e,t,r)=>{var n=r(8483),o=r(3674);e.exports=function(e,t){return e&&n(e,t,o)}},7786:(e,t,r)=>{var n=r(1811),o=r(327);e.exports=function(e,t){for(var r=0,a=(t=n(t,e)).length;null!=e&&r<a;)e=e[o(t[r++])];return r&&r==a?e:void 0}},8866:(e,t,r)=>{var n=r(2488),o=r(1469);e.exports=function(e,t,r){var a=t(e);return o(e)?a:n(a,r(e))}},4239:(e,t,r)=>{var n=r(2705),o=r(9607),a=r(2333),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,r)=>{var n=r(1848),o=r(2722),a=r(2351);e.exports=function(e,t,r){return t==t?a(e,t,r):n(e,o,r)}},9454:(e,t,r)=>{var n=r(4239),o=r(7005);e.exports=function(e){return o(e)&&"[object Arguments]"==n(e)}},939:(e,t,r)=>{var n=r(2492),o=r(7005);e.exports=function e(t,r,a,i,s){return t===r||(null==t||null==r||!o(t)&&!o(r)?t!=t&&r!=r:n(t,r,a,i,e,s))}},2492:(e,t,r)=>{var n=r(6384),o=r(7114),a=r(8351),i=r(6096),s=r(4160),l=r(1469),c=r(4144),u=r(6719),f="[object Arguments]",p="[object Array]",d="[object Object]",m=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,h,_,v){var g=l(e),y=l(t),b=g?p:s(e),w=y?p:s(t),x=(b=b==f?d:b)==d,k=(w=w==f?d:w)==d,z=b==w;if(z&&c(e)){if(!c(t))return!1;g=!0,x=!1}if(z&&!x)return v||(v=new n),g||u(e)?o(e,t,r,h,_,v):a(e,t,b,r,h,_,v);if(!(1&r)){var O=x&&m.call(e,"__wrapped__"),j=k&&m.call(t,"__wrapped__");if(O||j){var E=O?e.value():e,I=j?t.value():t;return v||(v=new n),_(E,I,r,h,v)}}return!!z&&(v||(v=new n),i(e,t,r,h,_,v))}},2958:(e,t,r)=>{var n=r(6384),o=r(939);e.exports=function(e,t,r,a){var i=r.length,s=i,l=!a;if(null==e)return!s;for(e=Object(e);i--;){var c=r[i];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++i<s;){var u=(c=r[i])[0],f=e[u],p=c[1];if(l&&c[2]){if(void 0===f&&!(u in e))return!1}else{var d=new n;if(a)var m=a(f,p,u,e,t,d);if(!(void 0===m?o(p,f,3,a,d):m))return!1}}return!0}},2722:e=>{e.exports=function(e){return e!=e}},8458:(e,t,r)=>{var n=r(3560),o=r(5346),a=r(3218),i=r(346),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,f=c.hasOwnProperty,p=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(n(e)?p:s).test(i(e))}},8749:(e,t,r)=>{var n=r(4239),o=r(1780),a=r(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[n(e)]}},7206:(e,t,r)=>{var n=r(1573),o=r(6432),a=r(6557),i=r(1469),s=r(9601);e.exports=function(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?i(e)?o(e[0],e[1]):n(e):s(e)}},280:(e,t,r)=>{var n=r(5726),o=r(6916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return o(e);var t=[];for(var r in Object(e))a.call(e,r)&&"constructor"!=r&&t.push(r);return t}},9199:(e,t,r)=>{var n=r(9881),o=r(8612);e.exports=function(e,t){var r=-1,a=o(e)?Array(e.length):[];return n(e,(function(e,n,o){a[++r]=t(e,n,o)})),a}},1573:(e,t,r)=>{var n=r(2958),o=r(1499),a=r(2634);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},6432:(e,t,r)=>{var n=r(939),o=r(7361),a=r(9095),i=r(5403),s=r(9162),l=r(2634),c=r(327);e.exports=function(e,t){return i(e)&&s(t)?l(c(e),t):function(r){var i=o(r,e);return void 0===i&&i===t?a(r,e):n(t,i,3)}}},2689:(e,t,r)=>{var n=r(9932),o=r(7786),a=r(7206),i=r(9199),s=r(1131),l=r(7518),c=r(5022),u=r(6557),f=r(1469);e.exports=function(e,t,r){t=t.length?n(t,(function(e){return f(e)?function(t){return o(t,1===e.length?e[0]:e)}:e})):[u];var p=-1;t=n(t,l(a));var d=i(e,(function(e,r,o){return{criteria:n(t,(function(t){return t(e)})),index:++p,value:e}}));return s(d,(function(e,t){return c(e,t,r)}))}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,r)=>{var n=r(7786);e.exports=function(e){return function(t){return n(t,e)}}},5976:(e,t,r)=>{var n=r(6557),o=r(5357),a=r(61);e.exports=function(e,t){return a(o(e,t,n),e+"")}},6560:(e,t,r)=>{var n=r(5703),o=r(8777),a=r(6557),i=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:a;e.exports=i},1131:e=>{e.exports=function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}},2545:e=>{e.exports=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}},531:(e,t,r)=>{var n=r(2705),o=r(9932),a=r(1469),i=r(3448),s=n?n.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(a(t))return o(t,e)+"";if(i(t))return l?l.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},7561:(e,t,r)=>{var n=r(7990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,n(e)+1).replace(o,""):e}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},7415:(e,t,r)=>{var n=r(9932);e.exports=function(e,t){return n(t,(function(t){return e[t]}))}},4757:e=>{e.exports=function(e,t){return e.has(t)}},1811:(e,t,r)=>{var n=r(1469),o=r(5403),a=r(5514),i=r(9833);e.exports=function(e,t){return n(e)?e:o(e,t)?[e]:a(i(e))}},6393:(e,t,r)=>{var n=r(3448);e.exports=function(e,t){if(e!==t){var r=void 0!==e,o=null===e,a=e==e,i=n(e),s=void 0!==t,l=null===t,c=t==t,u=n(t);if(!l&&!u&&!i&&e>t||i&&s&&c&&!l&&!u||o&&s&&c||!r&&c||!a)return 1;if(!o&&!i&&!u&&e<t||u&&r&&a&&!o&&!i||l&&r&&a||!s&&a||!c)return-1}return 0}},5022:(e,t,r)=>{var n=r(6393);e.exports=function(e,t,r){for(var o=-1,a=e.criteria,i=t.criteria,s=a.length,l=r.length;++o<s;){var c=n(a[o],i[o]);if(c)return o>=l?c:c*("desc"==r[o]?-1:1)}return e.index-t.index}},4429:(e,t,r)=>{var n=r(5639)["__core-js_shared__"];e.exports=n},9291:(e,t,r)=>{var n=r(8612);e.exports=function(e,t){return function(r,o){if(null==r)return r;if(!n(r))return e(r,o);for(var a=r.length,i=t?a:-1,s=Object(r);(t?i--:++i<a)&&!1!==o(s[i],i,s););return r}}},5063:e=>{e.exports=function(e){return function(t,r,n){for(var o=-1,a=Object(t),i=n(t),s=i.length;s--;){var l=i[e?s:++o];if(!1===r(a[l],l,a))break}return t}}},8777:(e,t,r)=>{var n=r(852),o=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},7114:(e,t,r)=>{var n=r(8668),o=r(2908),a=r(4757);e.exports=function(e,t,r,i,s,l){var c=1&r,u=e.length,f=t.length;if(u!=f&&!(c&&f>u))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var m=-1,h=!0,_=2&r?new n:void 0;for(l.set(e,t),l.set(t,e);++m<u;){var v=e[m],g=t[m];if(i)var y=c?i(g,v,m,t,e,l):i(v,g,m,e,t,l);if(void 0!==y){if(y)continue;h=!1;break}if(_){if(!o(t,(function(e,t){if(!a(_,t)&&(v===e||s(v,e,r,i,l)))return _.push(t)}))){h=!1;break}}else if(v!==g&&!s(v,g,r,i,l)){h=!1;break}}return l.delete(e),l.delete(t),h}},8351:(e,t,r)=>{var n=r(2705),o=r(1149),a=r(7813),i=r(7114),s=r(8776),l=r(1814),c=n?n.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,f,p){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var d=s;case"[object Set]":var m=1&n;if(d||(d=l),e.size!=t.size&&!m)return!1;var h=p.get(e);if(h)return h==t;n|=2,p.set(e,t);var _=i(d(e),d(t),n,c,f,p);return p.delete(e),_;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},6096:(e,t,r)=>{var n=r(8234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,a,i,s){var l=1&r,c=n(e),u=c.length;if(u!=n(t).length&&!l)return!1;for(var f=u;f--;){var p=c[f];if(!(l?p in t:o.call(t,p)))return!1}var d=s.get(e),m=s.get(t);if(d&&m)return d==t&&m==e;var h=!0;s.set(e,t),s.set(t,e);for(var _=l;++f<u;){var v=e[p=c[f]],g=t[p];if(a)var y=l?a(g,v,p,t,e,s):a(v,g,p,e,t,s);if(!(void 0===y?v===g||i(v,g,r,a,s):y)){h=!1;break}_||(_="constructor"==p)}if(h&&!_){var b=e.constructor,w=t.constructor;b==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(h=!1)}return s.delete(e),s.delete(t),h}},1957:(e,t,r)=>{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;e.exports=n},8234:(e,t,r)=>{var n=r(8866),o=r(9551),a=r(3674);e.exports=function(e){return n(e,a,o)}},5050:(e,t,r)=>{var n=r(7019);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},1499:(e,t,r)=>{var n=r(9162),o=r(3674);e.exports=function(e){for(var t=o(e),r=t.length;r--;){var a=t[r],i=e[a];t[r]=[a,i,n(i)]}return t}},852:(e,t,r)=>{var n=r(8458),o=r(7801);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},9607:(e,t,r)=>{var n=r(2705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,s=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,s),r=e[s];try{e[s]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[s]=r:delete e[s]),o}},9551:(e,t,r)=>{var n=r(4963),o=r(479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(e){return null==e?[]:(e=Object(e),n(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=s},4160:(e,t,r)=>{var n=r(8552),o=r(7071),a=r(3818),i=r(8525),s=r(577),l=r(4239),c=r(346),u="[object Map]",f="[object Promise]",p="[object Set]",d="[object WeakMap]",m="[object DataView]",h=c(n),_=c(o),v=c(a),g=c(i),y=c(s),b=l;(n&&b(new n(new ArrayBuffer(1)))!=m||o&&b(new o)!=u||a&&b(a.resolve())!=f||i&&b(new i)!=p||s&&b(new s)!=d)&&(b=function(e){var t=l(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case h:return m;case _:return u;case v:return f;case g:return p;case y:return d}return t}),e.exports=b},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,r)=>{var n=r(1811),o=r(5694),a=r(1469),i=r(5776),s=r(1780),l=r(327);e.exports=function(e,t,r){for(var c=-1,u=(t=n(t,e)).length,f=!1;++c<u;){var p=l(t[c]);if(!(f=null!=e&&r(e,p)))break;e=e[p]}return f||++c!=u?f:!!(u=null==e?0:e.length)&&s(u)&&i(p,u)&&(a(e)||o(e))}},1789:(e,t,r)=>{var n=r(4536);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(t,e)?t[e]:void 0}},1327:(e,t,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:o.call(t,e)}},1866:(e,t,r)=>{var n=r(4536);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},7285:(e,t,r)=>{var n=r(2705),o=r(5694),a=r(1469),i=n?n.isConcatSpreadable:void 0;e.exports=function(e){return a(e)||o(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}},6612:(e,t,r)=>{var n=r(7813),o=r(8612),a=r(5776),i=r(3218);e.exports=function(e,t,r){if(!i(r))return!1;var s=typeof t;return!!("number"==s?o(r)&&a(t,r.length):"string"==s&&t in r)&&n(r[t],e)}},5403:(e,t,r)=>{var n=r(1469),o=r(3448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!o(e))||i.test(e)||!a.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,r)=>{var n,o=r(4429),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!a&&a in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},9162:(e,t,r)=>{var n=r(3218);e.exports=function(e){return e==e&&!n(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,r)=>{var n=r(8470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0||(r==t.length-1?t.pop():o.call(t,r,1),--this.size,0))}},2117:(e,t,r)=>{var n=r(8470);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},3755:(e,t,r)=>{var n=r(8470);e.exports=function(e){return n(this.__data__,e)>-1}},4705:(e,t,r)=>{var n=r(8470);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},4785:(e,t,r)=>{var n=r(1989),o=r(8407),a=r(7071);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},1285:(e,t,r)=>{var n=r(5050);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,r)=>{var n=r(5050);e.exports=function(e){return n(this,e).get(e)}},9916:(e,t,r)=>{var n=r(5050);e.exports=function(e){return n(this,e).has(e)}},5265:(e,t,r)=>{var n=r(5050);e.exports=function(e,t){var r=n(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},2634:e=>{e.exports=function(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}},4523:(e,t,r)=>{var n=r(8306);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},4536:(e,t,r)=>{var n=r(852)(Object,"create");e.exports=n},6916:(e,t,r)=>{var n=r(5569)(Object.keys,Object);e.exports=n},1167:(e,t,r)=>{e=r.nmd(e);var n=r(1957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&n.process,s=function(){try{return a&&a.require&&a.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=s},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},5357:(e,t,r)=>{var n=r(6874),o=Math.max;e.exports=function(e,t,r){return t=o(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,s=o(a.length-t,0),l=Array(s);++i<s;)l[i]=a[t+i];i=-1;for(var c=Array(t+1);++i<t;)c[i]=a[i];return c[t]=r(l),n(e,this,c)}}},5639:(e,t,r)=>{var n=r(1957),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();e.exports=a},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},61:(e,t,r)=>{var n=r(6560),o=r(1275)(n);e.exports=o},1275:e=>{var t=Date.now;e.exports=function(e){var r=0,n=0;return function(){var o=t(),a=16-(o-n);if(n=o,a>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},7465:(e,t,r)=>{var n=r(8407);e.exports=function(){this.__data__=new n,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,r)=>{var n=r(8407),o=r(7071),a=r(3369);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(e,t),this.size=r.size,this}},2351:e=>{e.exports=function(e,t,r){for(var n=r-1,o=e.length;++n<o;)if(e[n]===t)return n;return-1}},5514:(e,t,r)=>{var n=r(4523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,r,n,o){t.push(n?o.replace(a,"$1"):r||e)})),t}));e.exports=i},327:(e,t,r)=>{var n=r(3448);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},7990:e=>{var t=/\s/;e.exports=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r}},5703:e=>{e.exports=function(e){return function(){return e}}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},3105:(e,t,r)=>{var n=r(4963),o=r(760),a=r(7206),i=r(1469);e.exports=function(e,t){return(i(e)?n:o)(e,a(t,3))}},7361:(e,t,r)=>{var n=r(7786);e.exports=function(e,t,r){var o=null==e?void 0:n(e,t);return void 0===o?r:o}},9095:(e,t,r)=>{var n=r(13),o=r(222);e.exports=function(e,t){return null!=e&&o(e,t,n)}},6557:e=>{e.exports=function(e){return e}},4721:(e,t,r)=>{var n=r(2118),o=r(8612),a=r(7037),i=r(554),s=r(2628),l=Math.max;e.exports=function(e,t,r,c){e=o(e)?e:s(e),r=r&&!c?i(r):0;var u=e.length;return r<0&&(r=l(u+r,0)),a(e)?r<=u&&e.indexOf(t,r)>-1:!!u&&n(e,t,r)>-1}},5694:(e,t,r)=>{var n=r(9454),o=r(7005),a=Object.prototype,i=a.hasOwnProperty,s=a.propertyIsEnumerable,l=n(function(){return arguments}())?n:function(e){return o(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,r)=>{var n=r(3560),o=r(1780);e.exports=function(e){return null!=e&&o(e.length)&&!n(e)}},4144:(e,t,r)=>{e=r.nmd(e);var n=r(5639),o=r(5062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,s=i&&i.exports===a?n.Buffer:void 0,l=(s?s.isBuffer:void 0)||o;e.exports=l},3560:(e,t,r)=>{var n=r(4239),o=r(3218);e.exports=function(e){if(!o(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},7037:(e,t,r)=>{var n=r(4239),o=r(1469),a=r(7005);e.exports=function(e){return"string"==typeof e||!o(e)&&a(e)&&"[object String]"==n(e)}},3448:(e,t,r)=>{var n=r(4239),o=r(7005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==n(e)}},6719:(e,t,r)=>{var n=r(8749),o=r(7518),a=r(1167),i=a&&a.isTypedArray,s=i?o(i):n;e.exports=s},3674:(e,t,r)=>{var n=r(4636),o=r(280),a=r(8612);e.exports=function(e){return a(e)?n(e):o(e)}},8306:(e,t,r)=>{var n=r(3369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=e.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(o.Cache||n),r}o.Cache=n,e.exports=o},9601:(e,t,r)=>{var n=r(371),o=r(9152),a=r(5403),i=r(327);e.exports=function(e){return a(e)?n(i(e)):o(e)}},9734:(e,t,r)=>{var n=r(1078),o=r(2689),a=r(5976),i=r(6612),s=a((function(e,t){if(null==e)return[];var r=t.length;return r>1&&i(e,t[0],t[1])?t=[]:r>2&&i(t[0],t[1],t[2])&&(t=[t[0]]),o(e,n(t,1),[])}));e.exports=s},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},8601:(e,t,r)=>{var n=r(4841);e.exports=function(e){return e?Infinity===(e=n(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,r)=>{var n=r(8601);e.exports=function(e){var t=n(e),r=t%1;return t==t?r?t-r:t:0}},4841:(e,t,r)=>{var n=r(7561),o=r(3218),a=r(3448),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=n(e);var r=s.test(e);return r||l.test(e)?c(e.slice(2),r?2:8):i.test(e)?NaN:+e}},9833:(e,t,r)=>{var n=r(531);e.exports=function(e){return null==e?"":n(e)}},2628:(e,t,r)=>{var n=r(7415),o=r(3674);e.exports=function(e){return null==e?[]:n(e,o(e))}},8490:(e,t,r)=>{"use strict";var n=r(7673),o=r(8575),a=r(7529);const i=parseInt({NODE_ENV:"production"}.PARSE_LINK_HEADER_MAXLEN)||2e3,s=null!={NODE_ENV:"production"}.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED;function l(e){return e&&e.rel}function c(e,t){return t.rel.split(/\s+/).forEach((function(r){e[r]=a(t,{rel:r})})),e}function u(e,t){var r=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return r&&(e[r[1]]=r[2]),e}function f(e){try{var t=e.match(/<?([^>]*)>(.*)/),r=t[1],i=t[2].split(";"),s=o.parse(r),l=n.parse(s.query);i.shift();var c=i.reduce(u,{});return(c=a(l,c)).url=r,c}catch(e){return null}}e.exports=function(e){return function(e){if(!e)return!1;if(e.length>i){if(s)throw new Error("Input string too long, it should be under "+i+" characters.");return!1}return!0}(e)?e.split(/,\s*</).map(f).filter(l).reduce(c,{}):null}},4971:function(e,t,r){var n;e=r.nmd(e),function(o){t&&t.nodeType,e&&e.nodeType;var a="object"==typeof r.g&&r.g;a.global!==a&&a.window!==a&&a.self;var i,s=2147483647,l=36,c=/^xn--/,u=/[^\x20-\x7E]/,f=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,m=String.fromCharCode;function h(e){throw RangeError(p[e])}function _(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function v(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+_((e=e.replace(f,".")).split("."),t).join(".")}function g(e){for(var t,r,n=[],o=0,a=e.length;o<a;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<a?56320==(64512&(r=e.charCodeAt(o++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),o--):n.push(t);return n}function y(e){return _(e,(function(e){var t="";return e>65535&&(t+=m((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+m(e)})).join("")}function b(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function w(e,t,r){var n=0;for(e=r?d(e/700):e>>1,e+=d(e/t);e>455;n+=l)e=d(e/35);return d(n+36*e/(e+38))}function x(e){var t,r,n,o,a,i,c,u,f,p,m,_=[],v=e.length,g=0,b=128,x=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n<r;++n)e.charCodeAt(n)>=128&&h("not-basic"),_.push(e.charCodeAt(n));for(o=r>0?r+1:0;o<v;){for(a=g,i=1,c=l;o>=v&&h("invalid-input"),((u=(m=e.charCodeAt(o++))-48<10?m-22:m-65<26?m-65:m-97<26?m-97:l)>=l||u>d((s-g)/i))&&h("overflow"),g+=u*i,!(u<(f=c<=x?1:c>=x+26?26:c-x));c+=l)i>d(s/(p=l-f))&&h("overflow"),i*=p;x=w(g-a,t=_.length+1,0==a),d(g/t)>s-b&&h("overflow"),b+=d(g/t),g%=t,_.splice(g++,0,b)}return y(_)}function k(e){var t,r,n,o,a,i,c,u,f,p,_,v,y,x,k,z=[];for(v=(e=g(e)).length,t=128,r=0,a=72,i=0;i<v;++i)(_=e[i])<128&&z.push(m(_));for(n=o=z.length,o&&z.push("-");n<v;){for(c=s,i=0;i<v;++i)(_=e[i])>=t&&_<c&&(c=_);for(c-t>d((s-r)/(y=n+1))&&h("overflow"),r+=(c-t)*y,t=c,i=0;i<v;++i)if((_=e[i])<t&&++r>s&&h("overflow"),_==t){for(u=r,f=l;!(u<(p=f<=a?1:f>=a+26?26:f-a));f+=l)k=u-p,x=l-p,z.push(m(b(p+k%x,0))),u=d(k/x);z.push(m(b(u,0))),a=w(r,y,n==o),r=0,++n}++r,++t}return z.join("")}i={version:"1.3.2",ucs2:{decode:g,encode:y},decode:x,encode:k,toASCII:function(e){return v(e,(function(e){return u.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return v(e,(function(e){return c.test(e)?x(e.slice(4).toLowerCase()):e}))}},void 0===(n=function(){return i}.call(t,r,t,e))||(e.exports=n)}()},2587:e=>{"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,r,n,o){r=r||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var i=/\+/g;e=e.split(r);var s=1e3;o&&"number"==typeof o.maxKeys&&(s=o.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c<l;++c){var u,f,p,d,m=e[c].replace(i,"%20"),h=m.indexOf(n);h>=0?(u=m.substr(0,h),f=m.substr(h+1)):(u=m,f=""),p=decodeURIComponent(u),d=decodeURIComponent(f),t(a,p)?Array.isArray(a[p])?a[p].push(d):a[p]=[a[p],d]:a[p]=d}return a}},2361:e=>{"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,r,n,o){return r=r||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(o){var a=encodeURIComponent(t(o))+n;return Array.isArray(e[o])?e[o].map((function(e){return a+encodeURIComponent(t(e))})).join(r):a+encodeURIComponent(t(e[o]))})).join(r):o?encodeURIComponent(t(o))+n+encodeURIComponent(t(e)):""}},7673:(e,t,r)=>{"use strict";t.decode=t.parse=r(2587),t.encode=t.stringify=r(2361)},8575:(e,t,r)=>{"use strict";var n=r(4971),o=r(2502);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){return o.isString(e)&&(e=y(e)),e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),f=["%","/","?",";","#"].concat(u),p=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},_={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=r(7673);function y(e,t,r){if(e&&o.isObject(e)&&e instanceof a)return e;var n=new a;return n.parse(e,t,r),n}a.prototype.parse=function(e,t,r){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var y=e=c.join(s);if(y=y.trim(),!r&&1===e.split("#").length){var b=l.exec(y);if(b)return this.path=y,this.href=y,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?g.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=i.exec(y);if(w){var x=(w=w[0]).toLowerCase();this.protocol=x,y=y.substr(w.length)}if(r||w||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var k="//"===y.substr(0,2);!k||w&&_[w]||(y=y.substr(2),this.slashes=!0)}if(!_[w]&&(k||w&&!v[w])){for(var z,O,j=-1,E=0;E<p.length;E++)-1!==(I=y.indexOf(p[E]))&&(-1===j||I<j)&&(j=I);for(-1!==(O=-1===j?y.lastIndexOf("@"):y.lastIndexOf("@",j))&&(z=y.slice(0,O),y=y.slice(O+1),this.auth=decodeURIComponent(z)),j=-1,E=0;E<f.length;E++){var I;-1!==(I=y.indexOf(f[E]))&&(-1===j||I<j)&&(j=I)}-1===j&&(j=y.length),this.host=y.slice(0,j),y=y.slice(j),this.parseHost(),this.hostname=this.hostname||"";var N="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!N)for(var L=this.hostname.split(/\./),S=(E=0,L.length);E<S;E++){var R=L[E];if(R&&!R.match(d)){for(var F="",A=0,T=R.length;A<T;A++)R.charCodeAt(A)>127?F+="x":F+=R[A];if(!F.match(d)){var C=L.slice(0,E),P=L.slice(E+1),D=R.match(m);D&&(C.push(D[1]),P.unshift(D[2])),P.length&&(y="/"+P.join(".")+y),this.hostname=C.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),N||(this.hostname=n.toASCII(this.hostname));var M=this.port?":"+this.port:"",W=this.hostname||"";this.host=W+M,this.href+=this.host,N&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!h[x])for(E=0,S=u.length;E<S;E++){var U=u[E];if(-1!==y.indexOf(U)){var $=encodeURIComponent(U);$===U&&($=escape(U)),y=y.split(U).join($)}}var V=y.indexOf("#");-1!==V&&(this.hash=y.substr(V),y=y.slice(0,V));var B=y.indexOf("?");if(-1!==B?(this.search=y.substr(B),this.query=y.substr(B+1),t&&(this.query=g.parse(this.query)),y=y.slice(0,B)):t&&(this.search="",this.query={}),y&&(this.pathname=y),v[x]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){M=this.pathname||"";var q=this.search||"";this.path=M+q}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",n=this.hash||"",a=!1,i="";this.host?a=e+this.host:this.hostname&&(a=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(a+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(i=g.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||v[t])&&!1!==a?(a="//"+(a||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):a||(a=""),n&&"#"!==n.charAt(0)&&(n="#"+n),s&&"?"!==s.charAt(0)&&(s="?"+s),t+a+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+n},a.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(o.isString(e)){var t=new a;t.parse(e,!1,!0),e=t}for(var r=new a,n=Object.keys(this),i=0;i<n.length;i++){var s=n[i];r[s]=this[s]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),c=0;c<l.length;c++){var u=l[c];"protocol"!==u&&(r[u]=e[u])}return v[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!v[e.protocol]){for(var f=Object.keys(e),p=0;p<f.length;p++){var d=f[p];r[d]=e[d]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||_[e.protocol])r.pathname=e.pathname;else{for(var m=(e.pathname||"").split("/");m.length&&!(e.host=m.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==m[0]&&m.unshift(""),m.length<2&&m.unshift(""),r.pathname=m.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var h=r.pathname||"",g=r.search||"";r.path=h+g}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var y=r.pathname&&"/"===r.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=b||y||r.host&&e.pathname,x=w,k=r.pathname&&r.pathname.split("/")||[],z=(m=e.pathname&&e.pathname.split("/")||[],r.protocol&&!v[r.protocol]);if(z&&(r.hostname="",r.port=null,r.host&&(""===k[0]?k[0]=r.host:k.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===m[0]?m[0]=e.host:m.unshift(e.host)),e.host=null),w=w&&(""===m[0]||""===k[0])),b)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,k=m;else if(m.length)k||(k=[]),k.pop(),k=k.concat(m),r.search=e.search,r.query=e.query;else if(!o.isNullOrUndefined(e.search))return z&&(r.hostname=r.host=k.shift(),(N=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=N.shift(),r.host=r.hostname=N.shift())),r.search=e.search,r.query=e.query,o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!k.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var O=k.slice(-1)[0],j=(r.host||e.host||k.length>1)&&("."===O||".."===O)||""===O,E=0,I=k.length;I>=0;I--)"."===(O=k[I])?k.splice(I,1):".."===O?(k.splice(I,1),E++):E&&(k.splice(I,1),E--);if(!w&&!x)for(;E--;E)k.unshift("..");!w||""===k[0]||k[0]&&"/"===k[0].charAt(0)||k.unshift(""),j&&"/"!==k.join("/").substr(-1)&&k.push("");var N,L=""===k[0]||k[0]&&"/"===k[0].charAt(0);return z&&(r.hostname=r.host=L?"":k.length?k.shift():"",(N=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=N.shift(),r.host=r.hostname=N.shift())),(w=w||r.host&&k.length)&&!L&&k.unshift(""),k.length?r.pathname=k.join("/"):(r.pathname=null,r.path=null),o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},2502:e=>{"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},7529:e=>{e.exports=function(){for(var e={},r=0;r<arguments.length;r++){var n=arguments[r];for(var o in n)t.call(n,o)&&(e[o]=n[o])}return e};var t=Object.prototype.hasOwnProperty},7061:(e,t,r)=>{var n=r(8698).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},r=Object.prototype,a=r.hasOwnProperty,i=Object.defineProperty||function(e,t,r){e[t]=r.value},s="function"==typeof Symbol?Symbol:{},l=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function p(e,t,r,n){var o=t&&t.prototype instanceof h?t:h,a=Object.create(o.prototype),s=new I(n||[]);return i(a,"_invoke",{value:z(e,r,s)}),a}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=p;var m={};function h(){}function _(){}function v(){}var g={};f(g,l,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(N([])));b&&b!==r&&a.call(b,l)&&(g=b);var w=v.prototype=h.prototype=Object.create(g);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(o,i,s,l){var c=d(e[o],e,i);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==n(f)&&a.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,s,l)}),(function(e){r("throw",e,s,l)})):t.resolve(f).then((function(e){u.value=e,s(u)}),(function(e){return r("throw",e,s,l)}))}l(c.arg)}var o;i(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,o){r(e,n,t,o)}))}return o=o?o.then(a,a):a()}})}function z(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=O(i,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=d(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===m)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function O(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,O(e,t),"throw"===t.method))return m;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var n=d(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,m;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function j(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function N(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(a.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return n.next=n}}return{next:L}}function L(){return{value:void 0,done:!0}}return _.prototype=v,i(w,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:_,configurable:!0}),_.displayName=f(v,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===_||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,f(e,u,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},x(k.prototype),f(k.prototype,c,(function(){return this})),t.AsyncIterator=k,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new k(p(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(w),f(w,u,"Generator"),f(w,l,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=N,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=a.call(o,"catchLoc"),l=a.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),E(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:N(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),m}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},8698:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},4687:(e,t,r)=>{var n=r(7061)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";function e(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function t(t){return function(){var r=this,n=arguments;return new Promise((function(o,a){var i=t.apply(r,n);function s(t){e(i,o,a,s,l,"next",t)}function l(t){e(i,o,a,s,l,"throw",t)}s(void 0)}))}}var n=r(4687),o=r.n(n),a=r(9483),i=r.n(a);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var l=r(5573),c=r.n(l),u=(r(8490),r(4721)),f=r.n(u),p=(r(9734),r(3105),["like","mention","repeat","pleroma:emoji_reaction","poll"]),d=function(e){return f()(p,e)},m=function(e,t){var r,n={tag:e.id},o=e.status,a=e.from_profile.name;switch(n.title=a,n.icon=e.from_profile.profile_image_url,e.type){case"like":r="favorited_you";break;case"repeat":r="repeated_you";break;case"follow":r="followed_you";break;case"move":r="migrated_to";break;case"follow_request":r="follow_request";break;case"pleroma:report":r="submitted_report";break;case"poll":r="poll_ended"}return"pleroma:emoji_reaction"===e.type?n.body=t.t("notifications.reacted_with",[e.emoji]):r?n.body=t.t("notifications."+r):d(e.type)&&(n.body=e.status.text),o&&o.attachments&&o.attachments.length>0&&!o.nsfw&&o.attachments[0].mimetype.startsWith("image/")&&(n.image=o.attachments[0].url),n};const h=2147483647,_=36,v=/^xn--/,g=/[\x2E\u3002\uFF0E\uFF61]/g,y={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},b=Math.floor;String.fromCharCode;function w(e){throw new RangeError(y[e])}function x(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const o=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(g,".")).split("."),t).join(".");return n+o}const k=function(e,t,r){let n=0;for(e=r?b(e/700):e>>1,e+=b(e/t);e>455;n+=_)e=b(e/35);return b(n+36*e/(e+38))},z=function(e){const t=[],r=e.length;let n=0,o=128,a=72,i=e.lastIndexOf("-");i<0&&(i=0);for(let r=0;r<i;++r)e.charCodeAt(r)>=128&&w("not-basic"),t.push(e.charCodeAt(r));for(let l=i>0?i+1:0;l<r;){let i=n;for(let t=1,o=_;;o+=_){l>=r&&w("invalid-input");const i=(s=e.charCodeAt(l++))-48<10?s-22:s-65<26?s-65:s-97<26?s-97:_;(i>=_||i>b((h-n)/t))&&w("overflow"),n+=i*t;const c=o<=a?1:o>=a+26?26:o-a;if(i<c)break;const u=_-c;t>b(h/u)&&w("overflow"),t*=u}const c=t.length+1;a=k(n-i,c,0==i),b(n/c)>h-o&&w("overflow"),o+=b(n/c),n%=c,t.splice(n++,0,o)}var s;return String.fromCodePoint(...t)},O=function(e){return x(e,(function(e){return v.test(e)?z(e.slice(4).toLowerCase()):e}))};function j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var I=function(e){var t={},r=Object.prototype.hasOwnProperty.call(e,"acct"),n=r&&!Object.prototype.hasOwnProperty.call(e,"avatar");if(t.inLists=null,t.id=String(e.id),t._original=e,r){if(t.screen_name=e.acct,t.fqn=e.fqn,t.statusnet_profile_url=e.url,n)return t;if(t.emoji=e.emojis,t.name=c()(e.display_name),t.name_html=t.name,t.name_unescaped=e.display_name,t.description=e.note,t.description_html=e.note,t.fields=e.fields,t.fields_html=e.fields.map((function(e){return{name:c()(e.name),value:e.value}})),t.fields_text=e.fields.map((function(e){return{name:unescape(e.name.replace(/<[^>]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){e.pleroma.settings_store&&(t.storage=e.pleroma.settings_store["pleroma-fe"]);var o=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,o&&(t.relationship=o),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member",e.pleroma.privileges?t.privileges=e.pleroma.privileges:e.pleroma.is_admin?t.privileges=["users_read","users_manage_invites","users_manage_activation_state","users_manage_tags","users_manage_credentials","users_delete","messages_read","messages_delete","instances_delete","reports_manage_reports","moderation_log_read","announcements_manage_announcements","emoji_manage_emoji","statistics_read"]:e.pleroma.is_moderator?t.privileges=["messages_delete","reports_manage_reports"]:t.privileges=[]}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var a=t.screen_name.split("@"),i=O(a[1]);i!==a[1]?(t.screen_name_ui_contains_non_ascii=!0,t.screen_name_ui=[a[0],i].join("@")):t.screen_name_ui_contains_non_ascii=!1}return t},N=function(e){var t={};return Object.prototype.hasOwnProperty.call(e,"oembed")?t.mimetype=e.mimetype:(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id),t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},L=function e(t){var r,n={},o=Object.prototype.hasOwnProperty.call(t,"account");if(o){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,n.edited_at=t.edited_at,t.pleroma){var a=t.pleroma;n.text=a.content?t.pleroma.content["text/plain"]:t.content,n.summary=a.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=a.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=a.thread_muted,n.emoji_reactions=a.emoji_reactions,n.parent_visible=void 0===a.parent_visible||a.parent_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=c()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return E(E({},e),{},{title_html:c()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=(r=t).is_post_verb?"status":r.retweeted_status?"retweet":"string"==typeof r.uri&&r.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof r.text&&r.text.match(/favorited/)?"favorite":r.text.match(/deleted notice {{tag/)||r.qvitter_delete_notice?"deletion":r.text.match(/started following/)||"follow"===r.activity_type?"follow":"unknown",void 0===t.nsfw?(n.nsfw=R(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=I(o?t.account:t.user),n.attentions=((o?t.mentions:t.attentions)||[]).map(I),n.attachments=((o?t.media_attachments:t.attachments)||[]).map(N);var i=o?t.reblog:t.retweeted_status;return i&&(n.retweeted_status=e(i)),n.favoritedBy=[],n.rebloggedBy=[],Object.prototype.hasOwnProperty.call(t,"originalStatus")&&Object.assign(n,t.originalStatus),n},S=function(e){var t={};if(Object.prototype.hasOwnProperty.call(e,"ntype")){var r=L(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?L(e.notice.favorited_status):r,t.action=r,t.from_profile="pleroma:chat_mention"===t.type?I(e.account):I(e.from_profile)}else t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=d(t.type)?L(e.status):null,t.action=t.status,t.target="move"!==t.type?null:I(e.target),t.from_profile=I(e.account),t.emoji=e.emoji,e.report&&(t.report=e.report,t.report.content=e.report.content,t.report.acct=I(e.report.account),t.report.actor=I(e.report.actor),t.report.statuses=e.report.statuses.map(L));return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},R=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)};const F="undefined"!=typeof window,A="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,T=e=>A?Symbol(e):e,C=e=>"number"==typeof e&&isFinite(e),P=e=>"[object RegExp]"===Q(e),D=e=>Z(e)&&0===Object.keys(e).length;function M(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const W=Object.assign;let U;const $=()=>U||(U="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==r.g?r.g:{});function V(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const B=Object.prototype.hasOwnProperty;function q(e,t){return B.call(e,t)}const H=Array.isArray,G=e=>"function"==typeof e,Y=e=>"string"==typeof e,X=e=>"boolean"==typeof e,K=e=>null!==e&&"object"==typeof e,J=Object.prototype.toString,Q=e=>J.call(e),Z=e=>"[object Object]"===Q(e);function ee(e,t,r={}){const{domain:n,messages:o,args:a}=r,i=new SyntaxError(String(e));return i.code=e,t&&(i.location=t),i.domain=n,i}String.fromCharCode(8232),String.fromCharCode(8233);const te=[];te[0]={w:[0],i:[3,0],"[":[4],o:[7]},te[1]={w:[1],".":[2],"[":[4],o:[7]},te[2]={w:[2],i:[3,0],0:[3,0]},te[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},te[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},te[5]={"'":[4,0],o:8,l:[5,0]},te[6]={'"':[4,0],o:8,l:[6,0]};const re=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function ne(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}const oe=new Map;function ae(e,t){return K(e)?e[t]:null}const ie=e=>e,se=e=>"",le=e=>0===e.length?"":e.join(""),ce=e=>null==e?"":H(e)||Z(e)&&e.toString===J?JSON.stringify(e,null,2):String(e);function ue(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}let fe=null;const pe=de("function:translate");function de(e){return t=>fe&&fe.emit(e,t)}function me(e,t,r){return[...new Set([r,...H(t)?t:K(t)?Object.keys(t):Y(t)?[t]:[r]])]}function he(e,t,r){const n=Y(r)?r:ye,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let a=o.__localeChainCache.get(n);if(!a){a=[];let e=[r];for(;H(e);)e=_e(a,e,t);const i=H(t)||!Z(t)?t:t.default?t.default:null;e=Y(i)?[i]:i,H(e)&&_e(a,e,!1),o.__localeChainCache.set(n,a)}return a}function _e(e,t,r){let n=!0;for(let o=0;o<t.length&&X(n);o++){const a=t[o];Y(a)&&(n=ve(e,t[o],r))}return n}function ve(e,t,r){let n;const o=t.split("-");do{n=ge(e,o.join("-"),r),o.splice(-1,1)}while(o.length&&!0===n);return n}function ge(e,t,r){let n=!1;if(!e.includes(t)&&(n=!0,t)){n="!"!==t[t.length-1];const o=t.replace(/!/g,"");e.push(o),(H(r)||Z(r))&&r[o]&&(n=r[o])}return n}const ye="en-US",be=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;let we,xe,ke=null;const ze=e=>{ke=e};let Oe=null;const je=e=>{Oe=e};let Ee=0;function Ie(e,t,r,n,o){const{missing:a,onWarn:i}=e;if(null!==a){const n=a(e,r,t,o);return Y(n)?n:t}return t}function Ne(e,t,r){e.__localeChainCache=new Map,e.localeFallbacker(e,r,t)}Object.create(null);let Le=15;const Se=()=>++Le,Re={INVALID_ARGUMENT:Le,INVALID_DATE_ARGUMENT:Se(),INVALID_ISO_DATE_ARGUMENT:Se(),__EXTEND_POINT__:Se()};function Fe(e){return ee(e,null,void 0)}const Ae=()=>"",Te=e=>G(e);function Ce(e,...t){const{fallbackFormat:r,postTranslation:n,unresolving:o,messageCompiler:a,fallbackLocale:i,messages:s}=e,[l,c]=Me(...t),u=(X(c.missingWarn)?c.missingWarn:e.missingWarn,X(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,X(c.escapeParameter)?c.escapeParameter:e.escapeParameter),f=!!c.resolvedMessage,p=Y(c.default)||X(c.default)?X(c.default)?a?l:()=>l:c.default:r?a?l:()=>l:"",d=r||""!==p,m=Y(c.locale)?c.locale:e.locale;u&&function(e){H(e.list)?e.list=e.list.map((e=>Y(e)?V(e):e)):K(e.named)&&Object.keys(e.named).forEach((t=>{Y(e.named[t])&&(e.named[t]=V(e.named[t]))}))}(c);let[h,_,v]=f?[l,m,s[m]||{}]:Pe(e,l,m,i),g=h,y=l;if(f||Y(g)||Te(g)||d&&(g=p,y=g),!(f||(Y(g)||Te(g))&&Y(_)))return o?-1:l;let b=!1;const w=Te(g)?g:De(e,l,_,g,y,(()=>{b=!0}));if(b)return g;const x=function(e,t,r,n){const{modifiers:o,pluralRules:a,messageResolver:i,fallbackLocale:s,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:o,pluralRules:a,messages:n=>{let o=i(r,n);if(null==o&&u){const[,,e]=Pe(u,n,t,s);o=i(e,n)}if(Y(o)){let r=!1;const a=De(e,n,t,o,n,(()=>{r=!0}));return r?Ae:a}return Te(o)?o:Ae}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),C(n.plural)&&(f.pluralIndex=n.plural),f}(e,_,v,c),k=function(e,t,r){return t(r)}(0,w,function(e={}){const t=e.locale,r=function(e){const t=C(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(C(e.named.count)||C(e.named.n))?C(e.named.count)?e.named.count:C(e.named.n)?e.named.n:t:t}(e),n=K(e.pluralRules)&&Y(t)&&G(e.pluralRules[t])?e.pluralRules[t]:ue,o=K(e.pluralRules)&&Y(t)&&G(e.pluralRules[t])?ue:void 0,a=e.list||[],i=e.named||{};function s(t){return(G(e.messages)?e.messages(t):!!K(e.messages)&&e.messages[t])||(e.parent?e.parent.message(t):se)}C(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(r,i);const l=Z(e.processor)&&G(e.processor.normalize)?e.processor.normalize:le,c=Z(e.processor)&&G(e.processor.interpolate)?e.processor.interpolate:ce,u={list:e=>a[e],named:e=>i[e],plural:e=>e[n(r,e.length,o)],linked:(t,...r)=>{const[n,o]=r;let a="text",i="";1===r.length?K(n)?(i=n.modifier||i,a=n.type||a):Y(n)&&(i=n||i):2===r.length&&(Y(n)&&(i=n||i),Y(o)&&(a=o||a));let l=s(t)(u);return"vnode"===a&&H(l)&&i&&(l=l[0]),i?(c=i,e.modifiers?e.modifiers[c]:ie)(l,a):l;var c},message:s,type:Z(e.processor)&&Y(e.processor.type)?e.processor.type:"text",interpolate:c,normalize:l};return u}(x)),z=n?n(k,l):k;if(__INTLIFY_PROD_DEVTOOLS__){const t={timestamp:Date.now(),key:Y(l)?l:Te(g)?g.key:"",locale:_||(Te(g)?g.locale:""),format:Y(g)?g:Te(g)?g.source:"",message:z};t.meta=W({},e.__meta,ke||{}),pe(t)}return z}function Pe(e,t,r,n,o,a){const{messages:i,onWarn:s,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,r);let f,p={},d=null,m=r,h=null;for(let r=0;r<u.length&&(f=h=u[r],p=i[f]||{},null===(d=l(p,t))&&(d=p[t]),!Y(d)&&!G(d));r++){const r=Ie(e,t,f,0,"translate");r!==t&&(d=r),m=h}return[d,f,p]}function De(e,t,r,n,o,a){const{messageCompiler:i,warnHtmlMessage:s}=e;if(Te(n)){const e=n;return e.locale=e.locale||r,e.key=e.key||t,e}if(null==i){const e=()=>n;return e.locale=r,e.key=t,e}const l=i(n,function(e,t,r,n,o,a){return{warnHtmlMessage:o,onError:e=>{throw a&&a(e),e},onCacheKey:e=>((e,t,r)=>{return n={l:e,k:t,s:r},JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027");var n})(t,r,e)}}(0,r,o,0,s,a));return l.locale=r,l.key=t,l.source=n,l}function Me(...e){const[t,r,n]=e,o={};if(!Y(t)&&!C(t)&&!Te(t))throw Fe(Re.INVALID_ARGUMENT);const a=C(t)?String(t):(Te(t),t);return C(r)?o.plural=r:Y(r)?o.default=r:Z(r)&&!D(r)?o.named=r:H(r)&&(o.list=r),C(n)?o.plural=n:Y(n)?o.default=n:Z(n)&&W(o,n),[a,o]}const We="undefined"!=typeof Intl;function Ue(e,...t){const{datetimeFormats:r,unresolving:n,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__datetimeFormatters:s}=e,[l,c,u,f]=Ve(...t),p=(X(u.missingWarn)?u.missingWarn:e.missingWarn,X(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,!!u.part),d=Y(u.locale)?u.locale:e.locale,m=i(e,o,d);if(!Y(l)||""===l)return new Intl.DateTimeFormat(d,f).format(c);let h,_={},v=null,g=d,y=null;for(let t=0;t<m.length&&(h=y=m[t],_=r[h]||{},v=_[l],!Z(v));t++)Ie(e,l,h,0,"datetime format"),g=y;if(!Z(v)||!Y(h))return n?-1:l;let b=`${h}__${l}`;D(f)||(b=`${b}__${JSON.stringify(f)}`);let w=s.get(b);return w||(w=new Intl.DateTimeFormat(h,W({},v,f)),s.set(b,w)),p?w.formatToParts(c):w.format(c)}We&&Intl.DateTimeFormat,We&&Intl.NumberFormat;const $e=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Ve(...e){const[t,r,n,o]=e,a={};let i,s={};if(Y(t)){const e=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!e)throw Fe(Re.INVALID_ISO_DATE_ARGUMENT);const r=e[3]?e[3].trim().startsWith("T")?`${e[1].trim()}${e[3].trim()}`:`${e[1].trim()}T${e[3].trim()}`:e[1].trim();i=new Date(r);try{i.toISOString()}catch(e){throw Fe(Re.INVALID_ISO_DATE_ARGUMENT)}}else if("[object Date]"===Q(t)){if(isNaN(t.getTime()))throw Fe(Re.INVALID_DATE_ARGUMENT);i=t}else{if(!C(t))throw Fe(Re.INVALID_ARGUMENT);i=t}return Y(r)?a.key=r:Z(r)&&Object.keys(r).forEach((e=>{$e.includes(e)?s[e]=r[e]:a[e]=r[e]})),Y(n)?a.locale=n:Z(n)&&(s=n),Z(o)&&(s=o),[a.key||"",i,a,s]}function Be(e,t,r){const n=e;for(const e in r){const r=`${t}__${e}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function qe(e,...t){const{numberFormats:r,unresolving:n,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__numberFormatters:s}=e,[l,c,u,f]=Ge(...t),p=(X(u.missingWarn)?u.missingWarn:e.missingWarn,X(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,!!u.part),d=Y(u.locale)?u.locale:e.locale,m=i(e,o,d);if(!Y(l)||""===l)return new Intl.NumberFormat(d,f).format(c);let h,_={},v=null,g=d,y=null;for(let t=0;t<m.length&&(h=y=m[t],_=r[h]||{},v=_[l],!Z(v));t++)Ie(e,l,h,0,"number format"),g=y;if(!Z(v)||!Y(h))return n?-1:l;let b=`${h}__${l}`;D(f)||(b=`${b}__${JSON.stringify(f)}`);let w=s.get(b);return w||(w=new Intl.NumberFormat(h,W({},v,f)),s.set(b,w)),p?w.formatToParts(c):w.format(c)}const He=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Ge(...e){const[t,r,n,o]=e,a={};let i={};if(!C(t))throw Fe(Re.INVALID_ARGUMENT);const s=t;return Y(r)?a.key=r:Z(r)&&Object.keys(r).forEach((e=>{He.includes(e)?i[e]=r[e]:a[e]=r[e]})),Y(n)?a.locale=n:Z(n)&&(i=n),Z(o)&&(i=o),[a.key||"",s,a,i]}function Ye(e,t,r){const n=e;for(const e in r){const r=`${t}__${e}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}function Xe(e,t){const r=Object.create(null),n=e.split(",");for(let e=0;e<n.length;e++)r[n[e]]=!0;return t?e=>!!r[e.toLowerCase()]:e=>!!r[e]}function Ke(e){if(lt(e)){const t={};for(let r=0;r<e.length;r++){const n=e[r],o=ft(n)?Ze(n):Ke(n);if(o)for(const e in o)t[e]=o[e]}return t}return ft(e)||dt(e)?e:void 0}"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&($().__INTLIFY_PROD_DEVTOOLS__=!1);const Je=/;(?![^(]*\))/g,Qe=/:(.+)/;function Ze(e){const t={};return e.split(Je).forEach((e=>{if(e){const r=e.split(Qe);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}function et(e){let t="";if(ft(e))t=e;else if(lt(e))for(let r=0;r<e.length;r++){const n=et(e[r]);n&&(t+=n+" ")}else if(dt(e))for(const r in e)e[r]&&(t+=r+" ");return t.trim()}const tt={},rt=()=>{},nt=/^on[^a-z]/,ot=e=>nt.test(e),at=Object.assign,it=Object.prototype.hasOwnProperty,st=(e,t)=>it.call(e,t),lt=Array.isArray,ct=e=>"[object Map]"===ht(e),ut=e=>"function"==typeof e,ft=e=>"string"==typeof e,pt=e=>"symbol"==typeof e,dt=e=>null!==e&&"object"==typeof e,mt=Object.prototype.toString,ht=e=>mt.call(e),_t=e=>ft(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,vt=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},gt=/-(\w)/g,yt=(vt((e=>e.replace(gt,((e,t)=>t?t.toUpperCase():"")))),/\B([A-Z])/g),bt=(vt((e=>e.replace(yt,"-$1").toLowerCase())),vt((e=>e.charAt(0).toUpperCase()+e.slice(1)))),wt=(vt((e=>e?`on${bt(e)}`:"")),(e,t)=>!Object.is(e,t));let xt;class kt{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=xt,!e&&xt&&(this.index=(xt.scopes||(xt.scopes=[])).push(this)-1)}run(e){if(this.active){const t=xt;try{return xt=this,e()}finally{xt=t}}}on(){xt=this}off(){xt=this.parent}stop(e){if(this.active){let t,r;for(t=0,r=this.effects.length;t<r;t++)this.effects[t].stop();for(t=0,r=this.cleanups.length;t<r;t++)this.cleanups[t]();if(this.scopes)for(t=0,r=this.scopes.length;t<r;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this.active=!1}}}const zt=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Ot=e=>(e.w&Lt)>0,jt=e=>(e.n&Lt)>0,Et=new WeakMap;let It,Nt=0,Lt=1;const St=Symbol(""),Rt=Symbol("");class Ft{constructor(e,t=null,r){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t=xt){t&&t.active&&t.effects.push(e)}(this,r)}run(){if(!this.active)return this.fn();let e=It,t=Tt;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=It,It=this,Tt=!0,Lt=1<<++Nt,Nt<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=Lt})(this):At(this),this.fn()}finally{Nt<=30&&(e=>{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n<t.length;n++){const o=t[n];Ot(o)&&!jt(o)?o.delete(e):t[r++]=o,o.w&=~Lt,o.n&=~Lt}t.length=r}})(this),Lt=1<<--Nt,It=this.parent,Tt=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){It===this?this.deferStop=!0:this.active&&(At(this),this.onStop&&this.onStop(),this.active=!1)}}function At(e){const{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}let Tt=!0;const Ct=[];function Pt(){Ct.push(Tt),Tt=!1}function Dt(){const e=Ct.pop();Tt=void 0===e||e}function Mt(e,t,r){if(Tt&&It){let t=Et.get(e);t||Et.set(e,t=new Map);let n=t.get(r);n||t.set(r,n=zt()),Wt(n)}}function Wt(e,t){let r=!1;Nt<=30?jt(e)||(e.n|=Lt,r=!Ot(e)):r=!e.has(It),r&&(e.add(It),It.deps.push(e))}function Ut(e,t,r,n,o,a){const i=Et.get(e);if(!i)return;let s=[];if("clear"===t)s=[...i.values()];else if("length"===r&&lt(e))i.forEach(((e,t)=>{("length"===t||t>=n)&&s.push(e)}));else switch(void 0!==r&&s.push(i.get(r)),t){case"add":lt(e)?_t(r)&&s.push(i.get("length")):(s.push(i.get(St)),ct(e)&&s.push(i.get(Rt)));break;case"delete":lt(e)||(s.push(i.get(St)),ct(e)&&s.push(i.get(Rt)));break;case"set":ct(e)&&s.push(i.get(St))}if(1===s.length)s[0]&&$t(s[0]);else{const e=[];for(const t of s)t&&e.push(...t);$t(zt(e))}}function $t(e,t){const r=lt(e)?e:[...e];for(const e of r)e.computed&&Vt(e);for(const e of r)e.computed||Vt(e)}function Vt(e,t){(e!==It||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Bt=Xe("__proto__,__v_isRef,__isVue"),qt=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(pt)),Ht=Kt(),Gt=Kt(!0),Yt=Xt();function Xt(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const r=Sr(this);for(let e=0,t=this.length;e<t;e++)Mt(r,0,e+"");const n=r[t](...e);return-1===n||!1===n?r[t](...e.map(Sr)):n}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){Pt();const r=Sr(this)[t].apply(this,e);return Dt(),r}})),e}function Kt(e=!1,t=!1){return function(r,n,o){if("__v_isReactive"===n)return!e;if("__v_isReadonly"===n)return e;if("__v_isShallow"===n)return t;if("__v_raw"===n&&o===(e?t?kr:xr:t?wr:br).get(r))return r;const a=lt(r);if(!e&&a&&st(Yt,n))return Reflect.get(Yt,n,o);const i=Reflect.get(r,n,o);return(pt(n)?qt.has(n):Bt(n))?i:(e||Mt(r,0,n),t?i:Pr(i)?a&&_t(n)?i:i.value:dt(i)?e?Or(i):zr(i):i)}}function Jt(e=!1){return function(t,r,n,o){let a=t[r];if(Ir(a)&&Pr(a)&&!Pr(n))return!1;if(!e&&(Nr(n)||Ir(n)||(a=Sr(a),n=Sr(n)),!lt(t)&&Pr(a)&&!Pr(n)))return a.value=n,!0;const i=lt(t)&&_t(r)?Number(r)<t.length:st(t,r),s=Reflect.set(t,r,n,o);return t===Sr(o)&&(i?wt(n,a)&&Ut(t,"set",r,n):Ut(t,"add",r,n)),s}}const Qt={get:Ht,set:Jt(),deleteProperty:function(e,t){const r=st(e,t),n=(e[t],Reflect.deleteProperty(e,t));return n&&r&&Ut(e,"delete",t,void 0),n},has:function(e,t){const r=Reflect.has(e,t);return pt(t)&&qt.has(t)||Mt(e,0,t),r},ownKeys:function(e){return Mt(e,0,lt(e)?"length":St),Reflect.ownKeys(e)}},Zt={get:Gt,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},er=e=>e,tr=e=>Reflect.getPrototypeOf(e);function rr(e,t,r=!1,n=!1){const o=Sr(e=e.__v_raw),a=Sr(t);r||(t!==a&&Mt(o,0,t),Mt(o,0,a));const{has:i}=tr(o),s=n?er:r?Ar:Fr;return i.call(o,t)?s(e.get(t)):i.call(o,a)?s(e.get(a)):void(e!==o&&e.get(t))}function nr(e,t=!1){const r=this.__v_raw,n=Sr(r),o=Sr(e);return t||(e!==o&&Mt(n,0,e),Mt(n,0,o)),e===o?r.has(e):r.has(e)||r.has(o)}function or(e,t=!1){return e=e.__v_raw,!t&&Mt(Sr(e),0,St),Reflect.get(e,"size",e)}function ar(e){e=Sr(e);const t=Sr(this);return tr(t).has.call(t,e)||(t.add(e),Ut(t,"add",e,e)),this}function ir(e,t){t=Sr(t);const r=Sr(this),{has:n,get:o}=tr(r);let a=n.call(r,e);a||(e=Sr(e),a=n.call(r,e));const i=o.call(r,e);return r.set(e,t),a?wt(t,i)&&Ut(r,"set",e,t):Ut(r,"add",e,t),this}function sr(e){const t=Sr(this),{has:r,get:n}=tr(t);let o=r.call(t,e);o||(e=Sr(e),o=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return o&&Ut(t,"delete",e,void 0),a}function lr(){const e=Sr(this),t=0!==e.size,r=e.clear();return t&&Ut(e,"clear",void 0,void 0),r}function cr(e,t){return function(r,n){const o=this,a=o.__v_raw,i=Sr(a),s=t?er:e?Ar:Fr;return!e&&Mt(i,0,St),a.forEach(((e,t)=>r.call(n,s(e),s(t),o)))}}function ur(e,t,r){return function(...n){const o=this.__v_raw,a=Sr(o),i=ct(a),s="entries"===e||e===Symbol.iterator&&i,l="keys"===e&&i,c=o[e](...n),u=r?er:t?Ar:Fr;return!t&&Mt(a,0,l?Rt:St),{next(){const{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function fr(e){return function(...t){return"delete"!==e&&this}}function pr(){const e={get(e){return rr(this,e)},get size(){return or(this)},has:nr,add:ar,set:ir,delete:sr,clear:lr,forEach:cr(!1,!1)},t={get(e){return rr(this,e,!1,!0)},get size(){return or(this)},has:nr,add:ar,set:ir,delete:sr,clear:lr,forEach:cr(!1,!0)},r={get(e){return rr(this,e,!0)},get size(){return or(this,!0)},has(e){return nr.call(this,e,!0)},add:fr("add"),set:fr("set"),delete:fr("delete"),clear:fr("clear"),forEach:cr(!0,!1)},n={get(e){return rr(this,e,!0,!0)},get size(){return or(this,!0)},has(e){return nr.call(this,e,!0)},add:fr("add"),set:fr("set"),delete:fr("delete"),clear:fr("clear"),forEach:cr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((o=>{e[o]=ur(o,!1,!1),r[o]=ur(o,!0,!1),t[o]=ur(o,!1,!0),n[o]=ur(o,!0,!0)})),[e,r,t,n]}const[dr,mr,hr,_r]=pr();function vr(e,t){const r=t?e?_r:hr:e?mr:dr;return(t,n,o)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(st(r,n)&&n in t?r:t,n,o)}const gr={get:vr(!1,!1)},yr={get:vr(!0,!1)},br=new WeakMap,wr=new WeakMap,xr=new WeakMap,kr=new WeakMap;function zr(e){return Ir(e)?e:jr(e,!1,Qt,gr,br)}function Or(e){return jr(e,!0,Zt,yr,xr)}function jr(e,t,r,n,o){if(!dt(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const a=o.get(e);if(a)return a;const i=(s=e).__v_skip||!Object.isExtensible(s)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>ht(e).slice(8,-1))(s));var s;if(0===i)return e;const l=new Proxy(e,2===i?n:r);return o.set(e,l),l}function Er(e){return Ir(e)?Er(e.__v_raw):!(!e||!e.__v_isReactive)}function Ir(e){return!(!e||!e.__v_isReadonly)}function Nr(e){return!(!e||!e.__v_isShallow)}function Lr(e){return Er(e)||Ir(e)}function Sr(e){const t=e&&e.__v_raw;return t?Sr(t):e}function Rr(e){return((e,t,r)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})})(e,"__v_skip",!0),e}const Fr=e=>dt(e)?zr(e):e,Ar=e=>dt(e)?Or(e):e;function Tr(e){Tt&&It&&Wt((e=Sr(e)).dep||(e.dep=zt()))}function Cr(e,t){(e=Sr(e)).dep&&$t(e.dep)}function Pr(e){return!(!e||!0!==e.__v_isRef)}function Dr(e){return Mr(e,!1)}function Mr(e,t){return Pr(e)?e:new Wr(e,t)}class Wr{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:Sr(e),this._value=t?e:Fr(e)}get value(){return Tr(this),this._value}set value(e){const t=this.__v_isShallow||Nr(e)||Ir(e);e=t?e:Sr(e),wt(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:Fr(e),Cr(this))}}const Ur={get:(e,t,r)=>{return Pr(n=Reflect.get(e,t,r))?n.value:n;var n},set:(e,t,r,n)=>{const o=e[t];return Pr(o)&&!Pr(r)?(o.value=r,!0):Reflect.set(e,t,r,n)}};var $r;class Vr{constructor(e,t,r,n){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[$r]=!1,this._dirty=!0,this.effect=new Ft(e,(()=>{this._dirty||(this._dirty=!0,Cr(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!n,this.__v_isReadonly=r}get value(){const e=Sr(this);return Tr(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Br(e,t,r,n){let o;try{o=n?e(...n):e()}catch(e){Hr(e,t,r)}return o}function qr(e,t,r,n){if(ut(e)){const a=Br(e,t,r,n);return a&&(dt(o=a)&&ut(o.then)&&ut(o.catch))&&a.catch((e=>{Hr(e,t,r)})),a}var o;const a=[];for(let o=0;o<e.length;o++)a.push(qr(e[o],t,r,n));return a}function Hr(e,t,r,n=!0){if(t&&t.vnode,t){let n=t.parent;const o=t.proxy,a=r;for(;n;){const t=n.ec;if(t)for(let r=0;r<t.length;r++)if(!1===t[r](e,o,a))return;n=n.parent}const i=t.appContext.config.errorHandler;if(i)return void Br(i,null,10,[e,o,a])}!function(e,t,r,n=!0){console.error(e)}(e,0,0,n)}$r="__v_isReadonly";let Gr=!1,Yr=!1;const Xr=[];let Kr=0;const Jr=[];let Qr=null,Zr=0;const en=Promise.resolve();let tn=null;function rn(e){const t=tn||en;return e?t.then(this?e.bind(this):e):t}function nn(e){Xr.length&&Xr.includes(e,Gr&&e.allowRecurse?Kr+1:Kr)||(null==e.id?Xr.push(e):Xr.splice(function(e){let t=Kr+1,r=Xr.length;for(;t<r;){const n=t+r>>>1;an(Xr[n])<e?t=n+1:r=n}return t}(e.id),0,e),on())}function on(){Gr||Yr||(Yr=!0,tn=en.then(ln))}const an=e=>null==e.id?1/0:e.id,sn=(e,t)=>{const r=an(e)-an(t);if(0===r){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function ln(e){Yr=!1,Gr=!0,Xr.sort(sn);try{for(Kr=0;Kr<Xr.length;Kr++){const e=Xr[Kr];e&&!1!==e.active&&Br(e,null,14)}}finally{Kr=0,Xr.length=0,function(e){if(Jr.length){const e=[...new Set(Jr)];if(Jr.length=0,Qr)return void Qr.push(...e);for(Qr=e,Qr.sort(((e,t)=>an(e)-an(t))),Zr=0;Zr<Qr.length;Zr++)Qr[Zr]();Qr=null,Zr=0}}(),Gr=!1,tn=null,(Xr.length||Jr.length)&&ln(e)}}new Set,new Map;let cn=null;const un={};function fn(e,t,r){return pn(e,t,r)}function pn(e,t,{immediate:r,deep:n,flush:o,onTrack:a,onTrigger:i}=tt){const s=Wn;let l,c,u=!1,f=!1;if(Pr(e)?(l=()=>e.value,u=Nr(e)):Er(e)?(l=()=>e,n=!0):lt(e)?(f=!0,u=e.some((e=>Er(e)||Nr(e))),l=()=>e.map((e=>Pr(e)?e.value:Er(e)?mn(e):ut(e)?Br(e,s,2):void 0))):l=ut(e)?t?()=>Br(e,s,2):()=>{if(!s||!s.isUnmounted)return c&&c(),qr(e,s,3,[p])}:rt,t&&n){const e=l;l=()=>mn(e())}let p=e=>{c=_.onStop=()=>{Br(e,s,4)}};if(Bn)return p=rt,t?r&&qr(t,s,3,[l(),f?[]:void 0,p]):l(),rt;let d=f?[]:un;const m=()=>{if(_.active)if(t){const e=_.run();(n||u||(f?e.some(((e,t)=>wt(e,d[t]))):wt(e,d)))&&(c&&c(),qr(t,s,3,[e,d===un?void 0:d,p]),d=e)}else _.run()};let h;m.allowRecurse=!!t,"sync"===o?h=m:"post"===o?h=()=>In(m,s&&s.suspense):(m.pre=!0,s&&(m.id=s.uid),h=()=>nn(m));const _=new Ft(l,h);return t?r?m():d=_.run():"post"===o?In(_.run.bind(_),s&&s.suspense):_.run(),()=>{_.stop(),s&&s.scope&&((e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)})(s.scope.effects,_)}}function dn(e,t,r){const n=this.proxy,o=ft(e)?e.includes(".")?function(e,t){const r=t.split(".");return()=>{let t=e;for(let e=0;e<r.length&&t;e++)t=t[r[e]];return t}}(n,e):()=>n[e]:e.bind(n,n);let a;ut(t)?a=t:(a=t.handler,r=t);const i=Wn;$n(this);const s=pn(o,a.bind(n),r);return i?$n(i):Vn(),s}function mn(e,t){if(!dt(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),Pr(e))mn(e.value,t);else if(lt(e))for(let r=0;r<e.length;r++)mn(e[r],t);else if("[object Set]"===ht(e)||ct(e))e.forEach((e=>{mn(e,t)}));else if((e=>"[object Object]"===ht(e))(e))for(const r in e)mn(e[r],t);return e}Boolean,Boolean;RegExp,RegExp;const hn=e=>(t,r=Wn)=>(!Bn||"sp"===e)&&function(e,t,r=Wn,n=!1){if(r){const o=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...n)=>{if(r.isUnmounted)return;Pt(),$n(r);const o=qr(t,r,e,n);return Vn(),Dt(),o});return n?o.unshift(a):o.push(a),a}}(e,((...e)=>t(...e)),r),_n=hn("bm"),vn=hn("m"),gn=(hn("bu"),hn("u"),hn("bum"),hn("um"));hn("sp"),hn("rtg"),hn("rtc");const yn=Symbol(),bn=e=>e?4&e.vnode.shapeFlag?function(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy((t=Rr(e.exposed),Er(t)?t:new Proxy(t,Ur)),{get:(t,r)=>r in t?t[r]:r in wn?wn[r](e):void 0}));var t}(e)||e.proxy:bn(e.parent):null,wn=at(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>bn(e.parent),$root:e=>bn(e.root),$emit:e=>e.emit,$options:e=>function(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:o,optionsCache:a,config:{optionMergeStrategies:i}}=e.appContext,s=a.get(t);let l;return s?l=s:o.length||r||n?(l={},o.length&&o.forEach((e=>xn(l,e,i,!0))),xn(l,t,i)):l=t,dt(t)&&a.set(t,l),l}(e),$forceUpdate:e=>e.f||(e.f=()=>nn(e.update)),$nextTick:e=>e.n||(e.n=rn.bind(e.proxy)),$watch:e=>dn.bind(e)});function xn(e,t,r,n=!1){const{mixins:o,extends:a}=t;a&&xn(e,a,r,!0),o&&o.forEach((t=>xn(e,t,r,!0)));for(const o in t)if(n&&"expose"===o);else{const n=kn[o]||r&&r[o];e[o]=n?n(e[o],t[o]):t[o]}return e}const kn={data:zn,props:En,emits:En,methods:En,computed:En,beforeCreate:jn,created:jn,beforeMount:jn,mounted:jn,beforeUpdate:jn,updated:jn,beforeDestroy:jn,beforeUnmount:jn,destroyed:jn,unmounted:jn,activated:jn,deactivated:jn,errorCaptured:jn,serverPrefetch:jn,components:En,directives:En,watch:function(e,t){if(!e)return t;if(!t)return e;const r=at(Object.create(null),e);for(const n in t)r[n]=jn(e[n],t[n]);return r},provide:zn,inject:function(e,t){return En(On(e),On(t))}};function zn(e,t){return t?e?function(){return at(ut(e)?e.call(this,this):e,ut(t)?t.call(this,this):t)}:t:e}function On(e){if(lt(e)){const t={};for(let r=0;r<e.length;r++)t[e[r]]=e[r];return t}return e}function jn(e,t){return e?[...new Set([].concat(e,t))]:t}function En(e,t){return e?at(at(Object.create(null),e),t):t}const In=function(e,t){var r;t&&t.pendingBranch?lt(e)?t.effects.push(...e):t.effects.push(e):(lt(r=e)?Jr.push(...r):Qr&&Qr.includes(r,r.allowRecurse?Zr+1:Zr)||Jr.push(r),on())},Nn=Symbol(void 0),Ln=Symbol(void 0),Sn=Symbol(void 0);Symbol(void 0);function Rn(e){return!!e&&!0===e.__v_isVNode}const Fn="__vInternal",An=({key:e})=>null!=e?e:null,Tn=({ref:e,ref_key:t,ref_for:r})=>null!=e?ft(e)||Pr(e)||ut(e)?{i:cn,r:e,k:t,f:!!r}:e:null;const Cn=function(e,t=null,r=null,n=0,o=null,a=!1){if(e&&e!==yn||(e=Sn),Rn(e)){const n=Pn(e,t,!0);return r&&Mn(n,r),n.patchFlag|=-2,n}if(i=e,ut(i)&&"__vccOpts"in i&&(e=e.__vccOpts),t){t=function(e){return e?Lr(e)||Fn in e?at({},e):e:null}(t);let{class:e,style:r}=t;e&&!ft(e)&&(t.class=et(e)),dt(r)&&(Lr(r)&&!lt(r)&&(r=at({},r)),t.style=Ke(r))}var i;return function(e,t=null,r=null,n=0,o=null,a=(e===Nn?0:1),i=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&An(t),ref:t&&Tn(t),scopeId:null,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null};return s?(Mn(l,r),128&a&&e.normalize(l)):r&&(l.shapeFlag|=ft(r)?8:16),l}(e,t,r,n,o,ft(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:dt(e)?4:ut(e)?2:0,a,!0)};function Pn(e,t,r=!1){const{props:n,ref:o,patchFlag:a,children:i}=e,s=t?function(...e){const t={};for(let r=0;r<e.length;r++){const n=e[r];for(const e in n)if("class"===e)t.class!==n.class&&(t.class=et([t.class,n.class]));else if("style"===e)t.style=Ke([t.style,n.style]);else if(ot(e)){const r=t[e],o=n[e];!o||r===o||lt(r)&&r.includes(o)||(t[e]=r?[].concat(r,o):o)}else""!==e&&(t[e]=n[e])}return t}(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&An(s),ref:t&&t.ref?r&&o?lt(o)?o.concat(Tn(t)):[o,Tn(t)]:Tn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Nn?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pn(e.ssContent),ssFallback:e.ssFallback&&Pn(e.ssFallback),el:e.el,anchor:e.anchor}}function Dn(e=" ",t=0){return Cn(Ln,null,e,t)}function Mn(e,t){let r=0;const{shapeFlag:n}=e;if(null==t)t=null;else if(lt(t))r=16;else if("object"==typeof t){if(65&n){const r=t.default;return void(r&&(r._c&&(r._d=!1),Mn(e,r()),r._c&&(r._d=!0)))}{r=32;const e=t._;!e&&!(Fn in t)&&(t._ctx=cn)}}else ut(t)?(t={default:t,_ctx:cn},r=32):(t=String(t),64&n?(r=16,t=[Dn(t)]):r=8);e.children=t,e.shapeFlag|=r}Object.create(null),new WeakMap,new WeakMap,new WeakMap;let Wn=null;const Un=()=>Wn||cn,$n=e=>{Wn=e,e.scope.on()},Vn=()=>{Wn&&Wn.scope.off(),Wn=null};let Bn=!1;const qn=(e,t)=>function(e,t,r=!1){let n,o;const a=ut(e);return a?(n=e,o=rt):(n=e.get,o=e.set),new Vr(n,o,a||!o,r)}(e,0,Bn);function Hn(e,t,r){const n=arguments.length;return 2===n?dt(t)&&!lt(t)?Rn(t)?Cn(e,null,[t]):Cn(e,t):Cn(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):3===n&&Rn(r)&&(r=[r]),Cn(e,t,r))}Symbol("");let Gn=7;const Yn=()=>++Gn;Yn(),Yn(),Yn(),Yn(),Yn(),Yn();let Xn=15;const Kn=()=>++Xn,Jn={UNEXPECTED_RETURN_TYPE:Xn,INVALID_ARGUMENT:Kn(),MUST_BE_CALL_SETUP_TOP:Kn(),NOT_INSLALLED:Kn(),NOT_AVAILABLE_IN_LEGACY_MODE:Kn(),REQUIRED_VALUE:Kn(),INVALID_VALUE:Kn(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Kn(),NOT_INSLALLED_WITH_PROVIDE:Kn(),UNEXPECTED_ERROR:Kn(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Kn(),BRIDGE_SUPPORT_VUE_2_ONLY:Kn(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Kn(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Kn(),__EXTEND_POINT__:Kn()};function Qn(e,...t){return ee(e,null,void 0)}const Zn=T("__transrateVNode"),eo=T("__datetimeParts"),to=T("__numberParts"),ro=T("__setPluralRules");T("__intlifyMeta");const no=T("__injectWithOption");function oo(e){if(!K(e))return e;for(const t in e)if(q(e,t))if(t.includes(".")){const r=t.split("."),n=r.length-1;let o=e;for(let e=0;e<n;e++)r[e]in o||(o[r[e]]={}),o=o[r[e]];o[r[n]]=e[t],delete e[t],K(o[r[n]])&&oo(o[r[n]])}else K(e[t])&&oo(e[t]);return e}function ao(e,t){const{messages:r,__i18n:n,messageResolver:o,flatJson:a}=t,i=Z(r)?r:H(n)?{}:{[e]:{}};if(H(n)&&n.forEach((e=>{if("locale"in e&&"resource"in e){const{locale:t,resource:r}=e;t?(i[t]=i[t]||{},so(r,i[t])):so(r,i)}else Y(e)&&so(JSON.parse(e),i)})),null==o&&a)for(const e in i)q(i,e)&&oo(i[e]);return i}const io=e=>!K(e)||H(e);function so(e,t){if(io(e)||io(t))throw Qn(Jn.INVALID_VALUE);for(const r in e)q(e,r)&&(io(e[r])||io(t[r])?t[r]=e[r]:so(e[r],t[r]))}function lo(e){return e.type}function co(e,t,r){let n=K(t.messages)?t.messages:{};"__i18nGlobal"in r&&(n=ao(e.locale.value,{messages:n,__i18n:r.__i18nGlobal}));const o=Object.keys(n);if(o.length&&o.forEach((t=>{e.mergeLocaleMessage(t,n[t])})),K(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach((r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])}))}if(K(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach((r=>{e.mergeNumberFormat(r,t.numberFormats[r])}))}}function uo(e){return Cn(Ln,null,e,0)}const fo="__INTLIFY_META__";let po=0;function mo(e){return(t,r,n,o)=>e(r,n,Un()||void 0,o)}function ho(e={},t){const{__root:r}=e,n=void 0===r;let o=!X(e.inheritLocale)||e.inheritLocale;const a=Dr(r&&o?r.locale.value:Y(e.locale)?e.locale:ye),i=Dr(r&&o?r.fallbackLocale.value:Y(e.fallbackLocale)||H(e.fallbackLocale)||Z(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:a.value),s=Dr(ao(a.value,e)),l=Dr(Z(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),c=Dr(Z(e.numberFormats)?e.numberFormats:{[a.value]:{}});let u=r?r.missingWarn:!X(e.missingWarn)&&!P(e.missingWarn)||e.missingWarn,f=r?r.fallbackWarn:!X(e.fallbackWarn)&&!P(e.fallbackWarn)||e.fallbackWarn,p=r?r.fallbackRoot:!X(e.fallbackRoot)||e.fallbackRoot,d=!!e.fallbackFormat,m=G(e.missing)?e.missing:null,h=G(e.missing)?mo(e.missing):null,_=G(e.postTranslation)?e.postTranslation:null,v=r?r.warnHtmlMessage:!X(e.warnHtmlMessage)||e.warnHtmlMessage,g=!!e.escapeParameter;const y=r?r.modifiers:Z(e.modifiers)?e.modifiers:{};let b,w=e.pluralRules||r&&r.pluralRules;b=(()=>{n&&je(null);const t={version:"9.2.2",locale:a.value,fallbackLocale:i.value,messages:s.value,modifiers:y,pluralRules:w,missing:null===h?void 0:h,missingWarn:u,fallbackWarn:f,fallbackFormat:d,unresolving:!0,postTranslation:null===_?void 0:_,warnHtmlMessage:v,escapeParameter:g,messageResolver:e.messageResolver,__meta:{framework:"vue"}};t.datetimeFormats=l.value,t.numberFormats=c.value,t.__datetimeFormatters=Z(b)?b.__datetimeFormatters:void 0,t.__numberFormatters=Z(b)?b.__numberFormatters:void 0;const r=function(e={}){const t=Y(e.version)?e.version:"9.2.2",r=Y(e.locale)?e.locale:ye,n=H(e.fallbackLocale)||Z(e.fallbackLocale)||Y(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:r,o=Z(e.messages)?e.messages:{[r]:{}},a=Z(e.datetimeFormats)?e.datetimeFormats:{[r]:{}},i=Z(e.numberFormats)?e.numberFormats:{[r]:{}},s=W({},e.modifiers||{},{upper:(e,t)=>"text"===t&&Y(e)?e.toUpperCase():"vnode"===t&&K(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>"text"===t&&Y(e)?e.toLowerCase():"vnode"===t&&K(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>"text"===t&&Y(e)?be(e):"vnode"===t&&K(e)&&"__v_isVNode"in e?be(e.children):e}),l=e.pluralRules||{},c=G(e.missing)?e.missing:null,u=!X(e.missingWarn)&&!P(e.missingWarn)||e.missingWarn,f=!X(e.fallbackWarn)&&!P(e.fallbackWarn)||e.fallbackWarn,p=!!e.fallbackFormat,d=!!e.unresolving,m=G(e.postTranslation)?e.postTranslation:null,h=Z(e.processor)?e.processor:null,_=!X(e.warnHtmlMessage)||e.warnHtmlMessage,v=!!e.escapeParameter,g=G(e.messageCompiler)?e.messageCompiler:void 0,y=G(e.messageResolver)?e.messageResolver:we||ae,b=G(e.localeFallbacker)?e.localeFallbacker:xe||me,w=K(e.fallbackContext)?e.fallbackContext:void 0,x=G(e.onWarn)?e.onWarn:M,k=e,z=K(k.__datetimeFormatters)?k.__datetimeFormatters:new Map,O=K(k.__numberFormatters)?k.__numberFormatters:new Map,j=K(k.__meta)?k.__meta:{};Ee++;const E={version:t,cid:Ee,locale:r,fallbackLocale:n,messages:o,modifiers:s,pluralRules:l,missing:c,missingWarn:u,fallbackWarn:f,fallbackFormat:p,unresolving:d,postTranslation:m,processor:h,warnHtmlMessage:_,escapeParameter:v,messageCompiler:g,messageResolver:y,localeFallbacker:b,fallbackContext:w,onWarn:x,__meta:j};return E.datetimeFormats=a,E.numberFormats=i,E.__datetimeFormatters=z,E.__numberFormatters=O,__INTLIFY_PROD_DEVTOOLS__&&function(e,t,r){fe&&fe.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:r})}(E,t,j),E}(t);return n&&je(r),r})(),Ne(b,a.value,i.value);const x=qn({get:()=>a.value,set:e=>{a.value=e,b.locale=a.value}}),k=qn({get:()=>i.value,set:e=>{i.value=e,b.fallbackLocale=i.value,Ne(b,a.value,e)}}),z=qn((()=>s.value)),O=qn((()=>l.value)),j=qn((()=>c.value)),E=(e,t,o,u,f,d)=>{let m;if(a.value,i.value,s.value,l.value,c.value,__INTLIFY_PROD_DEVTOOLS__)try{ze((()=>{const e=Un();let t=null;return e&&(t=lo(e)[fo])?{[fo]:t}:null})()),n||(b.fallbackContext=r?Oe:void 0),m=e(b)}finally{ze(null),n||(b.fallbackContext=void 0)}else m=e(b);if(C(m)&&-1===m){const[e,n]=t();return r&&p?u(r):f(e)}if(d(m))return m;throw Qn(Jn.UNEXPECTED_RETURN_TYPE)};function I(...e){return E((t=>Reflect.apply(Ce,null,[t,...e])),(()=>Me(...e)),0,(t=>Reflect.apply(t.t,t,[...e])),(e=>e),(e=>Y(e)))}const N={normalize:function(e){return e.map((e=>Y(e)||C(e)||X(e)?uo(String(e)):e))},interpolate:e=>e,type:"vnode"};function L(e){return s.value[e]||{}}po++,r&&F&&(fn(r.locale,(e=>{o&&(a.value=e,b.locale=e,Ne(b,a.value,i.value))})),fn(r.fallbackLocale,(e=>{o&&(i.value=e,b.fallbackLocale=e,Ne(b,a.value,i.value))})));const S={id:po,locale:x,fallbackLocale:k,get inheritLocale(){return o},set inheritLocale(e){o=e,e&&r&&(a.value=r.locale.value,i.value=r.fallbackLocale.value,Ne(b,a.value,i.value))},get availableLocales(){return Object.keys(s.value).sort()},messages:z,get modifiers(){return y},get pluralRules(){return w||{}},get isGlobal(){return n},get missingWarn(){return u},set missingWarn(e){u=e,b.missingWarn=u},get fallbackWarn(){return f},set fallbackWarn(e){f=e,b.fallbackWarn=f},get fallbackRoot(){return p},set fallbackRoot(e){p=e},get fallbackFormat(){return d},set fallbackFormat(e){d=e,b.fallbackFormat=d},get warnHtmlMessage(){return v},set warnHtmlMessage(e){v=e,b.warnHtmlMessage=e},get escapeParameter(){return g},set escapeParameter(e){g=e,b.escapeParameter=e},t:I,getLocaleMessage:L,setLocaleMessage:function(e,t){s.value[e]=t,b.messages=s.value},mergeLocaleMessage:function(e,t){s.value[e]=s.value[e]||{},so(t,s.value[e]),b.messages=s.value},getPostTranslationHandler:function(){return G(_)?_:null},setPostTranslationHandler:function(e){_=e,b.postTranslation=e},getMissingHandler:function(){return m},setMissingHandler:function(e){null!==e&&(h=mo(e)),m=e,b.missing=h},[ro]:function(e){w=e,b.pluralRules=w}};return S.datetimeFormats=O,S.numberFormats=j,S.rt=function(...e){const[t,r,n]=e;if(n&&!K(n))throw Qn(Jn.INVALID_ARGUMENT);return I(t,r,W({resolvedMessage:!0},n||{}))},S.te=function(e,t){const r=L(Y(t)?t:a.value);return null!==b.messageResolver(r,e)},S.tm=function(e){const t=function(e){let t=null;const r=he(b,i.value,a.value);for(let n=0;n<r.length;n++){const o=s.value[r[n]]||{},a=b.messageResolver(o,e);if(null!=a){t=a;break}}return t}(e);return null!=t?t:r&&r.tm(e)||{}},S.d=function(...e){return E((t=>Reflect.apply(Ue,null,[t,...e])),(()=>Ve(...e)),0,(t=>Reflect.apply(t.d,t,[...e])),(()=>""),(e=>Y(e)))},S.n=function(...e){return E((t=>Reflect.apply(qe,null,[t,...e])),(()=>Ge(...e)),0,(t=>Reflect.apply(t.n,t,[...e])),(()=>""),(e=>Y(e)))},S.getDateTimeFormat=function(e){return l.value[e]||{}},S.setDateTimeFormat=function(e,t){l.value[e]=t,b.datetimeFormats=l.value,Be(b,e,t)},S.mergeDateTimeFormat=function(e,t){l.value[e]=W(l.value[e]||{},t),b.datetimeFormats=l.value,Be(b,e,t)},S.getNumberFormat=function(e){return c.value[e]||{}},S.setNumberFormat=function(e,t){c.value[e]=t,b.numberFormats=c.value,Ye(b,e,t)},S.mergeNumberFormat=function(e,t){c.value[e]=W(c.value[e]||{},t),b.numberFormats=c.value,Ye(b,e,t)},S[no]=e.__injectWithOption,S[Zn]=function(...e){return E((t=>{let r;const n=t;try{n.processor=N,r=Reflect.apply(Ce,null,[n,...e])}finally{n.processor=null}return r}),(()=>Me(...e)),0,(t=>t[Zn](...e)),(e=>[uo(e)]),(e=>H(e)))},S[eo]=function(...e){return E((t=>Reflect.apply(Ue,null,[t,...e])),(()=>Ve(...e)),0,(t=>t[eo](...e)),(()=>[]),(e=>Y(e)||H(e)))},S[to]=function(...e){return E((t=>Reflect.apply(qe,null,[t,...e])),(()=>Ge(...e)),0,(t=>t[to](...e)),(()=>[]),(e=>Y(e)||H(e)))},S}function _o(e={},t){{const t=ho(function(e){const t=Y(e.locale)?e.locale:ye,r=Y(e.fallbackLocale)||H(e.fallbackLocale)||Z(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,n=G(e.missing)?e.missing:void 0,o=!X(e.silentTranslationWarn)&&!P(e.silentTranslationWarn)||!e.silentTranslationWarn,a=!X(e.silentFallbackWarn)&&!P(e.silentFallbackWarn)||!e.silentFallbackWarn,i=!X(e.fallbackRoot)||e.fallbackRoot,s=!!e.formatFallbackMessages,l=Z(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=G(e.postTranslation)?e.postTranslation:void 0,f=!Y(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,p=!!e.escapeParameterHtml,d=!X(e.sync)||e.sync;let m=e.messages;if(Z(e.sharedMessages)){const t=e.sharedMessages;m=Object.keys(t).reduce(((e,r)=>{const n=e[r]||(e[r]={});return W(n,t[r]),e}),m||{})}const{__i18n:h,__root:_,__injectWithOption:v}=e,g=e.datetimeFormats,y=e.numberFormats;return{locale:t,fallbackLocale:r,messages:m,flatJson:e.flatJson,datetimeFormats:g,numberFormats:y,missing:n,missingWarn:o,fallbackWarn:a,fallbackRoot:i,fallbackFormat:s,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:d,__i18n:h,__root:_,__injectWithOption:v}}(e)),r={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return X(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=X(e)?!e:e},get silentFallbackWarn(){return X(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=X(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[r,n,o]=e,a={};let i=null,s=null;if(!Y(r))throw Qn(Jn.INVALID_ARGUMENT);const l=r;return Y(n)?a.locale=n:H(n)?i=n:Z(n)&&(s=n),H(o)?i=o:Z(o)&&(s=o),Reflect.apply(t.t,t,[l,i||s||{},a])},rt:(...e)=>Reflect.apply(t.rt,t,[...e]),tc(...e){const[r,n,o]=e,a={plural:1};let i=null,s=null;if(!Y(r))throw Qn(Jn.INVALID_ARGUMENT);const l=r;return Y(n)?a.locale=n:C(n)?a.plural=n:H(n)?i=n:Z(n)&&(s=n),Y(o)?a.locale=o:H(o)?i=o:Z(o)&&(s=o),Reflect.apply(t.t,t,[l,i||s||{},a])},te:(e,r)=>t.te(e,r),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,r){t.setLocaleMessage(e,r)},mergeLocaleMessage(e,r){t.mergeLocaleMessage(e,r)},d:(...e)=>Reflect.apply(t.d,t,[...e]),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,r){t.setDateTimeFormat(e,r)},mergeDateTimeFormat(e,r){t.mergeDateTimeFormat(e,r)},n:(...e)=>Reflect.apply(t.n,t,[...e]),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,r){t.setNumberFormat(e,r)},mergeNumberFormat(e,r){t.mergeNumberFormat(e,r)},getChoiceIndex:(e,t)=>-1,__onComponentInstanceCreated(t){const{componentInstanceCreatedListener:n}=e;n&&n(t,r)}};return r}}const vo={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}};function go(e){return Nn}const yo={name:"i18n-t",props:W({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>C(e)||!isNaN(e)}},vo),setup(e,t){const{slots:r,attrs:n}=t,o=e.i18n||Eo({useScope:e.scope,__useComponent:!0});return()=>{const a=Object.keys(r).filter((e=>"_"!==e)),i={};e.locale&&(i.locale=e.locale),void 0!==e.plural&&(i.plural=Y(e.plural)?+e.plural:e.plural);const s=function({slots:e},t){return 1===t.length&&"default"===t[0]?(e.default?e.default():[]).reduce(((e,t)=>[...e,...H(t.children)?t.children:[t]]),[]):t.reduce(((t,r)=>{const n=e[r];return n&&(t[r]=n()),t}),{})}(t,a),l=o[Zn](e.keypath,s,i),c=W({},n);return Hn(Y(e.tag)||K(e.tag)?e.tag:go(),c,l)}}};function bo(e,t,r,n){const{slots:o,attrs:a}=t;return()=>{const t={part:!0};let i={};e.locale&&(t.locale=e.locale),Y(e.format)?t.key=e.format:K(e.format)&&(Y(e.format.key)&&(t.key=e.format.key),i=Object.keys(e.format).reduce(((t,n)=>r.includes(n)?W({},t,{[n]:e.format[n]}):t),{}));const s=n(e.value,t,i);let l=[t.key];H(s)?l=s.map(((e,t)=>{const r=o[e.type],n=r?r({[e.type]:e.value,index:t,parts:s}):[e.value];var a;return H(a=n)&&!Y(a[0])&&(n[0].key=`${e.type}-${t}`),n})):Y(s)&&(l=[s]);const c=W({},a);return Hn(Y(e.tag)||K(e.tag)?e.tag:go(),c,l)}}const wo={name:"i18n-n",props:W({value:{type:Number,required:!0},format:{type:[String,Object]}},vo),setup(e,t){const r=e.i18n||Eo({useScope:"parent",__useComponent:!0});return bo(e,t,He,((...e)=>r[to](...e)))}},xo={name:"i18n-d",props:W({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},vo),setup(e,t){const r=e.i18n||Eo({useScope:"parent",__useComponent:!0});return bo(e,t,$e,((...e)=>r[eo](...e)))}};function ko(e){if(Y(e))return{path:e};if(Z(e)){if(!("path"in e))throw Qn(Jn.REQUIRED_VALUE);return e}throw Qn(Jn.INVALID_VALUE)}function zo(e){const{path:t,locale:r,args:n,choice:o,plural:a}=e,i={},s=n||{};return Y(r)&&(i.locale=r),C(o)&&(i.plural=o),C(a)&&(i.plural=a),[t,s,i]}function Oo(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[ro](t.pluralizationRules||e.pluralizationRules);const r=ao(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(r).forEach((t=>e.mergeLocaleMessage(t,r[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((r=>e.mergeNumberFormat(r,t.numberFormats[r]))),e}const jo=T("global-vue-i18n");function Eo(e={}){const t=Un();if(null==t)throw Qn(Jn.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&null!=t.appContext.app&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Qn(Jn.NOT_INSLALLED);const r=function(e){{const t=function(e,t,r=!1){const n=Wn||cn;if(n){const o=null==n.parent?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return r&&ut(t)?t.call(n.proxy):t}}(e.isCE?jo:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Qn(e.isCE?Jn.NOT_INSLALLED_WITH_PROVIDE:Jn.UNEXPECTED_ERROR);return t}}(t),n=function(e){return"composition"===e.mode?e.global:e.global.__composer}(r),o=lo(t),a=function(e,t){return D(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}(e,o);if(__VUE_I18N_LEGACY_API__&&"legacy"===r.mode&&!e.__useComponent){if(!r.allowComposition)throw Qn(Jn.NOT_AVAILABLE_IN_LEGACY_MODE);return function(e,t,r,n={}){const o="local"===t,a=(null,Mr(null,!0));if(o&&e.proxy&&!e.proxy.$options.i18n&&!e.proxy.$options.__i18n)throw Qn(Jn.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=!X(n.inheritLocale)||n.inheritLocale,s=Dr(o&&i?r.locale.value:Y(n.locale)?n.locale:ye),l=Dr(o&&i?r.fallbackLocale.value:Y(n.fallbackLocale)||H(n.fallbackLocale)||Z(n.fallbackLocale)||!1===n.fallbackLocale?n.fallbackLocale:s.value),c=Dr(ao(s.value,n)),u=Dr(Z(n.datetimeFormats)?n.datetimeFormats:{[s.value]:{}}),f=Dr(Z(n.numberFormats)?n.numberFormats:{[s.value]:{}}),p=o?r.missingWarn:!X(n.missingWarn)&&!P(n.missingWarn)||n.missingWarn,d=o?r.fallbackWarn:!X(n.fallbackWarn)&&!P(n.fallbackWarn)||n.fallbackWarn,m=o?r.fallbackRoot:!X(n.fallbackRoot)||n.fallbackRoot,h=!!n.fallbackFormat,_=G(n.missing)?n.missing:null,v=G(n.postTranslation)?n.postTranslation:null,g=o?r.warnHtmlMessage:!X(n.warnHtmlMessage)||n.warnHtmlMessage,y=!!n.escapeParameter,b=o?r.modifiers:Z(n.modifiers)?n.modifiers:{},w=n.pluralRules||o&&r.pluralRules;function x(e){return s.value,l.value,c.value,u.value,f.value,e()}const k={get id(){return a.value?a.value.id:-1},locale:qn({get:()=>a.value?a.value.locale.value:s.value,set:e=>{a.value&&(a.value.locale.value=e),s.value=e}}),fallbackLocale:qn({get:()=>a.value?a.value.fallbackLocale.value:l.value,set:e=>{a.value&&(a.value.fallbackLocale.value=e),l.value=e}}),messages:qn((()=>a.value?a.value.messages.value:c.value)),datetimeFormats:qn((()=>u.value)),numberFormats:qn((()=>f.value)),get inheritLocale(){return a.value?a.value.inheritLocale:i},set inheritLocale(e){a.value&&(a.value.inheritLocale=e)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(c.value)},get modifiers(){return a.value?a.value.modifiers:b},get pluralRules(){return a.value?a.value.pluralRules:w},get isGlobal(){return!!a.value&&a.value.isGlobal},get missingWarn(){return a.value?a.value.missingWarn:p},set missingWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackWarn(){return a.value?a.value.fallbackWarn:d},set fallbackWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackRoot(){return a.value?a.value.fallbackRoot:m},set fallbackRoot(e){a.value&&(a.value.fallbackRoot=e)},get fallbackFormat(){return a.value?a.value.fallbackFormat:h},set fallbackFormat(e){a.value&&(a.value.fallbackFormat=e)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:g},set warnHtmlMessage(e){a.value&&(a.value.warnHtmlMessage=e)},get escapeParameter(){return a.value?a.value.escapeParameter:y},set escapeParameter(e){a.value&&(a.value.escapeParameter=e)},t:function(...e){return a.value?x((()=>Reflect.apply(a.value.t,null,[...e]))):x((()=>""))},getPostTranslationHandler:function(){return a.value?a.value.getPostTranslationHandler():v},setPostTranslationHandler:function(e){a.value&&a.value.setPostTranslationHandler(e)},getMissingHandler:function(){return a.value?a.value.getMissingHandler():_},setMissingHandler:function(e){a.value&&a.value.setMissingHandler(e)},rt:function(...e){return a.value?Reflect.apply(a.value.rt,null,[...e]):""},d:function(...e){return a.value?x((()=>Reflect.apply(a.value.d,null,[...e]))):x((()=>""))},n:function(...e){return a.value?x((()=>Reflect.apply(a.value.n,null,[...e]))):x((()=>""))},tm:function(e){return a.value?a.value.tm(e):{}},te:function(e,t){return!!a.value&&a.value.te(e,t)},getLocaleMessage:function(e){return a.value?a.value.getLocaleMessage(e):{}},setLocaleMessage:function(e,t){a.value&&(a.value.setLocaleMessage(e,t),c.value[e]=t)},mergeLocaleMessage:function(e,t){a.value&&a.value.mergeLocaleMessage(e,t)},getDateTimeFormat:function(e){return a.value?a.value.getDateTimeFormat(e):{}},setDateTimeFormat:function(e,t){a.value&&(a.value.setDateTimeFormat(e,t),u.value[e]=t)},mergeDateTimeFormat:function(e,t){a.value&&a.value.mergeDateTimeFormat(e,t)},getNumberFormat:function(e){return a.value?a.value.getNumberFormat(e):{}},setNumberFormat:function(e,t){a.value&&(a.value.setNumberFormat(e,t),f.value[e]=t)},mergeNumberFormat:function(e,t){a.value&&a.value.mergeNumberFormat(e,t)}};return _n((()=>{if(null==e.proxy||null==e.proxy.$i18n)throw Qn(Jn.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const r=a.value=e.proxy.$i18n.__composer;"global"===t?(s.value=r.locale.value,l.value=r.fallbackLocale.value,c.value=r.messages.value,u.value=r.datetimeFormats.value,f.value=r.numberFormats.value):o&&function(e){e.locale.value=s.value,e.fallbackLocale.value=l.value,Object.keys(c.value).forEach((t=>{e.mergeLocaleMessage(t,c.value[t])})),Object.keys(u.value).forEach((t=>{e.mergeDateTimeFormat(t,u.value[t])})),Object.keys(f.value).forEach((t=>{e.mergeNumberFormat(t,f.value[t])})),e.escapeParameter=y,e.fallbackFormat=h,e.fallbackRoot=m,e.fallbackWarn=d,e.missingWarn=p,e.warnHtmlMessage=g}(r)})),k}(t,a,n,e)}if("global"===a)return co(n,e,o),n;if("parent"===a){let o=function(e,t,r=!1){let n=null;const o=t.root;let a=t.parent;for(;null!=a;){const t=e;if("composition"===e.mode)n=t.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const e=t.__getInstance(a);null!=e&&(n=e.__composer,r&&n&&!n[no]&&(n=null))}if(null!=n)break;if(o===a)break;a=a.parent}return n}(r,t,e.__useComponent);return null==o&&(o=n),o}const i=r;let s=i.__getInstance(t);if(null==s){const r=W({},e);"__i18n"in o&&(r.__i18n=o.__i18n),n&&(r.__root=n),s=ho(r),function(e,t,r){vn((()=>{}),t),gn((()=>{e.__deleteInstance(t)}),t)}(i,t),i.__setInstance(t,s)}return s}const Io=["locale","fallbackLocale","availableLocales"],No=["t","rt","d","n","tm"];var Lo;if(we=function(e,t){if(!K(e))return null;let r=oe.get(t);if(r||(r=function(e){const t=[];let r,n,o,a,i,s,l,c=-1,u=0,f=0;const p=[];function d(){const t=e[c+1];if(5===u&&"'"===t||6===u&&'"'===t)return c++,o="\\"+t,p[0](),!0}for(p[0]=()=>{void 0===n?n=o:n+=o},p[1]=()=>{void 0!==n&&(t.push(n),n=void 0)},p[2]=()=>{p[0](),f++},p[3]=()=>{if(f>0)f--,u=4,p[0]();else{if(f=0,void 0===n)return!1;if(n=function(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(r=t,re.test(r)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var r}(n),!1===n)return!1;p[1]()}};null!==u;)if(c++,r=e[c],"\\"!==r||!d()){if(a=ne(r),l=te[u],i=l[a]||l.l||8,8===i)return;if(u=i[0],void 0!==i[1]&&(s=p[i[1]],s&&(o=r,!1===s())))return;if(7===u)return t}}(t),r&&oe.set(t,r)),!r)return null;const n=r.length;let o=e,a=0;for(;a<n;){const e=o[r[a]];if(void 0===e)return null;o=e,a++}return o},xe=he,function(){let e=!1;"boolean"!=typeof __VUE_I18N_FULL_INSTALL__&&(e=!0,$().__VUE_I18N_FULL_INSTALL__=!0),"boolean"!=typeof __VUE_I18N_LEGACY_API__&&(e=!0,$().__VUE_I18N_LEGACY_API__=!0),"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&($().__INTLIFY_PROD_DEVTOOLS__=!1)}(),__INTLIFY_PROD_DEVTOOLS__){const e=$();e.__INTLIFY__=!0,Lo=e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__,fe=Lo}var So=function(e={},t){const r=__VUE_I18N_LEGACY_API__&&X(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=!X(e.globalInjection)||e.globalInjection,o=!__VUE_I18N_LEGACY_API__||!r||!!e.allowComposition,a=new Map,[i,s]=function(e,t,r){const n=new kt(undefined);{const r=__VUE_I18N_LEGACY_API__&&t?n.run((()=>_o(e))):n.run((()=>ho(e)));if(null==r)throw Qn(Jn.UNEXPECTED_ERROR);return[n,r]}}(e,r),l=T("");{const e={get mode(){return __VUE_I18N_LEGACY_API__&&r?"legacy":"composition"},get allowComposition(){return o},async install(t,...o){t.__VUE_I18N_SYMBOL__=l,t.provide(t.__VUE_I18N_SYMBOL__,e),!r&&n&&function(e,t){const r=Object.create(null);Io.forEach((e=>{const n=Object.getOwnPropertyDescriptor(t,e);if(!n)throw Qn(Jn.UNEXPECTED_ERROR);const o=Pr(n.value)?{get:()=>n.value.value,set(e){n.value.value=e}}:{get:()=>n.get&&n.get()};Object.defineProperty(r,e,o)})),e.config.globalProperties.$i18n=r,No.forEach((r=>{const n=Object.getOwnPropertyDescriptor(t,r);if(!n||!n.value)throw Qn(Jn.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${r}`,n)}))}(t,e.global),__VUE_I18N_FULL_INSTALL__&&function(e,t,...r){const n=Z(r[0])?r[0]:{},o=!!n.useI18nComponentName;(!X(n.globalInstall)||n.globalInstall)&&(e.component(o?"i18n":yo.name,yo),e.component(wo.name,wo),e.component(xo.name,xo)),e.directive("t",function(e){const t=t=>{const{instance:r,modifiers:n,value:o}=t;if(!r||!r.$)throw Qn(Jn.UNEXPECTED_ERROR);const a=function(e,t){const r=e;if("composition"===e.mode)return r.__getInstance(t)||e.global;{const n=r.__getInstance(t);return null!=n?n.__composer:e.global.__composer}}(e,r.$),i=ko(o);return[Reflect.apply(a.t,a,[...zo(i)]),a]};return{created:(r,n)=>{const[o,a]=t(n);F&&e.global===a&&(r.__i18nWatcher=fn(a.locale,(()=>{n.instance&&n.instance.$forceUpdate()}))),r.__composer=a,r.textContent=o},unmounted:e=>{F&&e.__i18nWatcher&&(e.__i18nWatcher(),e.__i18nWatcher=void 0,delete e.__i18nWatcher),e.__composer&&(e.__composer=void 0,delete e.__composer)},beforeUpdate:(e,{value:t})=>{if(e.__composer){const r=e.__composer,n=ko(t);e.textContent=Reflect.apply(r.t,r,[...zo(n)])}},getSSRProps:e=>{const[r]=t(e);return{textContent:r}}}}(t))}(t,e,...o),__VUE_I18N_LEGACY_API__&&r&&t.mixin(function(e,t,r){return{beforeCreate(){const n=Un();if(!n)throw Qn(Jn.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const r=o.i18n;o.__i18n&&(r.__i18n=o.__i18n),r.__root=t,this===this.$root?this.$i18n=Oo(e,r):(r.__injectWithOption=!0,this.$i18n=_o(r))}else o.__i18n?this===this.$root?this.$i18n=Oo(e,o):this.$i18n=_o({__i18n:o.__i18n,__injectWithOption:!0,__root:t}):this.$i18n=e;o.__i18nGlobal&&co(t,o,o),e.__onComponentInstanceCreated(this.$i18n),r.__setInstance(n,this.$i18n),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e)},mounted(){},unmounted(){const e=Un();if(!e)throw Qn(Jn.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,r.__deleteInstance(e),delete this.$i18n}}}(s,s.__composer,e));const a=t.unmount;t.unmount=()=>{e.dispose(),a()}},get global(){return s},dispose(){i.stop()},__instances:a,__getInstance:function(e){return a.get(e)||null},__setInstance:function(e,t){a.set(e,t)},__deleteInstance:function(e){a.delete(e)}};return e}}({locale:"en",fallbackLocale:"en",messages:{ar:r(5464),ca:r(3708),cs:r(122),de:r(414),eo:r(5775),es:r(8438),et:r(9997),eu:r(9975),fi:r(9923),fr:r(8375),ga:r(1746),he:r(9369),hu:r(377),it:r(6710),ja:r(333),ja_easy:r(6534),ko:r(7379),nb:r(8103),nl:r(728),oc:r(3932),pl:r(7028),pt:r(789),ro:r(5032),ru:r(3460),sk:r(6139),te:r(5751),zh:r(4389),en:r(2551)}});function Ro(){return clients.matchAll({includeUncontrolled:!0}).then((function(e){return e.filter((function(e){return"window"===e.type}))}))}var Fo=function(){var e=t(o().mark((function e(){var t,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i().getItem("vuex-lz");case 2:t=e.sent,r=t.config.interfaceLanguage||"en",So.locale=r;case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Ao=function(){var e=t(o().mark((function e(t){var r,n,a,s,l,c,u,f;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i().getItem("vuex-lz").then((function(e){return e.config.webPushNotifications}));case 2:return r=e.sent,e.next=5,Ro();case 5:return n=e.sent,e.next=8,Fo();case 8:if(!r||0!==n.length){e.next=20;break}return a=t.data.json(),s="".concat(self.registration.scope,"api/v1/notifications/").concat(a.notification_id),e.next=13,fetch(s,{headers:{Authorization:"Bearer "+a.access_token}});case 13:return l=e.sent,e.next=16,l.json();case 16:c=e.sent,u=S(c),f=m(u,So),self.registration.showNotification(f.title,f);case 20:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();self.addEventListener("push",function(){var e=t(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.data&&t.waitUntil(Ao(t));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),self.addEventListener("notificationclick",(function(e){e.notification.close(),e.waitUntil(Ro().then((function(e){for(var t=0;t<e.length;t++){var r=e[t];if("/"===r.url&&"focus"in r)return r.focus()}if(clients.openWindow)return clients.openWindow("/")})))}))})()})();
+(()=>{var e={5464:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["منشور مجهول، جارٍ البحث عنه…"])},favorited_you:e=>{const{normalize:t}=e;return t(["أعجِب بمنشورك"])},followed_you:e=>{const{normalize:t}=e;return t(["يُتابعك"])},load_older:e=>{const{normalize:t}=e;return t(["تحميل الإشعارات الأقدم"])},notifications:e=>{const{normalize:t}=e;return t(["الإخطارات"])},read:e=>{const{normalize:t}=e;return t(["مقروء!"])},repeated_you:e=>{const{normalize:t}=e;return t(["شارَك منشورك"])}}}},3708:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Publicació desconeguda, s'està cercant…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ha marcat un estat teu"])},followed_you:e=>{const{normalize:t}=e;return t(["ha començat a seguir-te"])},load_older:e=>{const{normalize:t}=e;return t(["Carrega més notificacions"])},notifications:e=>{const{normalize:t}=e;return t(["Notificacions"])},read:e=>{const{normalize:t}=e;return t(["Llegit!"])},repeated_you:e=>{const{normalize:t}=e;return t(["ha repetit el teu estat"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrat a"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No més notificacions"])},follow_request:e=>{const{normalize:t}=e;return t(["et vol seguir"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["ha reaccionat amb ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error obtenint notificacions: ",r(n(0))])}}}},122:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Neznámý příspěvek, hledám jej…"])},favorited_you:e=>{const{normalize:t}=e;return t(["si oblíbil/a váš příspěvek"])},followed_you:e=>{const{normalize:t}=e;return t(["vás nyní sleduje"])},load_older:e=>{const{normalize:t}=e;return t(["Načíst starší oznámení"])},notifications:e=>{const{normalize:t}=e;return t(["Oznámení"])},read:e=>{const{normalize:t}=e;return t(["Číst!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zopakoval/a váš příspěvek"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Žádná další oznámení"])}}}},414:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unbekannte Nachricht, suche danach…"])},favorited_you:e=>{const{normalize:t}=e;return t(["favorisierte deine Nachricht"])},followed_you:e=>{const{normalize:t}=e;return t(["folgt dir"])},load_older:e=>{const{normalize:t}=e;return t(["Ältere Benachrichtigungen laden"])},notifications:e=>{const{normalize:t}=e;return t(["Benachrichtigungen"])},read:e=>{const{normalize:t}=e;return t(["Gelesen!"])},repeated_you:e=>{const{normalize:t}=e;return t(["wiederholte deine Nachricht"])},follow_request:e=>{const{normalize:t}=e;return t(["möchte dir folgen"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrierte zu"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagierte mit ",r(n(0))])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Keine Benachrichtigungen mehr"])},error:e=>{const{normalize:t}=e;return t(["Error beim laden von Neuigkeiten"])}}}},2551:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error fetching notifications: ",r(n(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reacted with ",r(n(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["submitted a report"])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}}}},5775:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Nekonata afiŝo, serĉante ĝin…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ŝatis vian afiŝon"])},followed_you:e=>{const{normalize:t}=e;return t(["ekabonis vin"])},load_older:e=>{const{normalize:t}=e;return t(["Enlegi pli malnovajn sciigojn"])},notifications:e=>{const{normalize:t}=e;return t(["Sciigoj"])},read:e=>{const{normalize:t}=e;return t(["Legite!"])},repeated_you:e=>{const{normalize:t}=e;return t(["ripetis vian afiŝon"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Neniuj pliaj sciigoj"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagis per ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migris al"])},follow_request:e=>{const{normalize:t}=e;return t(["volas vin aboni"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Eraris akirado de sciigoj: ",r(n(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["sendis raporton"])},poll_ended:e=>{const{normalize:t}=e;return t(["enketo finiĝis"])}}}},8438:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Estado desconocido, buscándolo…"])},favorited_you:e=>{const{normalize:t}=e;return t(["le gusta tu estado"])},followed_you:e=>{const{normalize:t}=e;return t(["empezó a seguirte"])},load_older:e=>{const{normalize:t}=e;return t(["Cargar notificaciones antiguas"])},notifications:e=>{const{normalize:t}=e;return t(["Notificaciones"])},read:e=>{const{normalize:t}=e;return t(["¡Leído!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repitió tu estado"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No hay más notificaciones"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reaccionó con ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migrado a"])},follow_request:e=>{const{normalize:t}=e;return t(["quiere seguirte"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error obteniendo notificaciones:",r(n(0))])}}}},9997:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["alustas sinu jälgimist"])},notifications:e=>{const{normalize:t}=e;return t(["Teated"])},read:e=>{const{normalize:t}=e;return t(["Loe!"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reageeris ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["kolis"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Rohkem teateid ei ole"])},repeated_you:e=>{const{normalize:t}=e;return t(["taaspostitas su staatuse"])},load_older:e=>{const{normalize:t}=e;return t(["Laadi vanemad teated"])},follow_request:e=>{const{normalize:t}=e;return t(["soovib Teid jälgida"])},favorited_you:e=>{const{normalize:t}=e;return t(["lisas su staatuse lemmikuks"])},broken_favorite:e=>{const{normalize:t}=e;return t(["Tundmatu staatus, otsin…"])}}}},9975:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Egoera ezezaguna, bilatzen…"])},favorited_you:e=>{const{normalize:t}=e;return t(["zure mezua gogoko du"])},followed_you:e=>{const{normalize:t}=e;return t(["Zu jarraitzen zaitu"])},load_older:e=>{const{normalize:t}=e;return t(["Kargatu jakinarazpen zaharragoak"])},notifications:e=>{const{normalize:t}=e;return t(["Jakinarazpenak"])},read:e=>{const{normalize:t}=e;return t(["Irakurrita!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zure mezua errepikatu du"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ez dago jakinarazpen gehiago"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0)),"kin erreakzionatu zuen"])},migrated_to:e=>{const{normalize:t}=e;return t(["hona migratua:"])},follow_request:e=>{const{normalize:t}=e;return t(["jarraitu nahi zaitu"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Errorea jakinarazpenak eskuratzean: ",r(n(0))])}}}},9923:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Viestiä ei löydetty…"])},favorited_you:e=>{const{normalize:t}=e;return t(["tykkäsi viestistäsi"])},followed_you:e=>{const{normalize:t}=e;return t(["seuraa sinua"])},load_older:e=>{const{normalize:t}=e;return t(["Lataa vanhempia ilmoituksia"])},notifications:e=>{const{normalize:t}=e;return t(["Ilmoitukset"])},read:e=>{const{normalize:t}=e;return t(["Lue!"])},repeated_you:e=>{const{normalize:t}=e;return t(["toisti viestisi"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ei enempää ilmoituksia"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["lisäsi reaktion ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["siirtyi sivulle"])},follow_request:e=>{const{normalize:t}=e;return t(["haluaa seurata sinua"])}}}},8375:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Message inconnu, recherche en cours…"])},favorited_you:e=>{const{normalize:t}=e;return t(["a aimé votre statut"])},followed_you:e=>{const{normalize:t}=e;return t(["vous suit"])},load_older:e=>{const{normalize:t}=e;return t(["Charger les notifications précédentes"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Lu !"])},repeated_you:e=>{const{normalize:t}=e;return t(["a partagé votre statut"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Aucune notification supplémentaire"])},migrated_to:e=>{const{normalize:t}=e;return t(["a migré à"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["a réagi avec ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["veut vous suivre"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Erreur de chargement des notifications : ",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["Sondage terminé"])},submitted_report:e=>{const{normalize:t}=e;return t(["Rapport envoyé"])}}}},1746:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Post anaithnid. Cuardach dó…"])},favorited_you:e=>{const{normalize:t}=e;return t(["toghadh le do phost"])},followed_you:e=>{const{normalize:t}=e;return t(["lean tú"])},load_older:e=>{const{normalize:t}=e;return t(["Luchtaigh fógraí aosta"])},notifications:e=>{const{normalize:t}=e;return t(["Fógraí"])},read:e=>{const{normalize:t}=e;return t(["Léigh!"])},repeated_you:e=>{const{normalize:t}=e;return t(["athphostáil tú"])}}}},9369:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["סטאטוס לא ידוע, מחפש…"])},favorited_you:e=>{const{normalize:t}=e;return t(["אהב את הסטטוס שלך"])},followed_you:e=>{const{normalize:t}=e;return t(["עקב אחריך"])},load_older:e=>{const{normalize:t}=e;return t(["טען התראות ישנות"])},notifications:e=>{const{normalize:t}=e;return t(["התראות"])},read:e=>{const{normalize:t}=e;return t(["קרא!"])},repeated_you:e=>{const{normalize:t}=e;return t(["חזר על הסטטוס שלך"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["לא עוד התראות"])}}}},377:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["követ téged"])},notifications:e=>{const{normalize:t}=e;return t(["Értesítések"])},read:e=>{const{normalize:t}=e;return t(["Olvasva!"])}}}},6710:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["ti segue"])},notifications:e=>{const{normalize:t}=e;return t(["Notifiche"])},read:e=>{const{normalize:t}=e;return t(["Letto!"])},broken_favorite:e=>{const{normalize:t}=e;return t(["Stato sconosciuto, lo sto cercando…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ha gradito"])},load_older:e=>{const{normalize:t}=e;return t(["Carica notifiche precedenti"])},repeated_you:e=>{const{normalize:t}=e;return t(["ha condiviso il tuo messaggio"])},follow_request:e=>{const{normalize:t}=e;return t(["vuole seguirti"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Fine delle notifiche"])},migrated_to:e=>{const{normalize:t}=e;return t(["è migrato verso"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["ha reagito con ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Errore nel caricare le notifiche: ",r(n(0))])}}}},6534:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["ステータスがみつかりません。さがしています…"])},favorited_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがおきにいりされました"])},followed_you:e=>{const{normalize:t}=e;return t(["フォローされました"])},load_older:e=>{const{normalize:t}=e;return t(["ふるいつうちをみる"])},notifications:e=>{const{normalize:t}=e;return t(["つうち"])},read:e=>{const{normalize:t}=e;return t(["よんだ!"])},repeated_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがリピートされました"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["つうちはありません"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["つうちをとりにいくことに、しっぱいしました: ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["あなたをフォローしたいです"])},migrated_to:e=>{const{normalize:t}=e;return t(["インスタンスを、ひっこしました"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," でリアクションしました"])},poll_ended:e=>{const{normalize:t}=e;return t(["とうひょうが、おわりました"])},submitted_report:e=>{const{normalize:t}=e;return t(["つうほうしました"])}}}},333:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["ステータスが見つかりません。探しています…"])},favorited_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがお気に入りされました"])},followed_you:e=>{const{normalize:t}=e;return t(["フォローされました"])},load_older:e=>{const{normalize:t}=e;return t(["古い通知をみる"])},notifications:e=>{const{normalize:t}=e;return t(["通知"])},read:e=>{const{normalize:t}=e;return t(["読んだ!"])},repeated_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがリピートされました"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["通知はありません"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," でリアクションしました"])},migrated_to:e=>{const{normalize:t}=e;return t(["インスタンスを引っ越しました"])},follow_request:e=>{const{normalize:t}=e;return t(["あなたをフォローしたいです"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["通知の取得に失敗しました: ",r(n(0))])}}}},7379:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["알 수 없는 게시물입니다, 검색합니다…"])},favorited_you:e=>{const{normalize:t}=e;return t(["관심을 가짐"])},followed_you:e=>{const{normalize:t}=e;return t(["팔로우함"])},load_older:e=>{const{normalize:t}=e;return t(["이전 알림 불러오기"])},notifications:e=>{const{normalize:t}=e;return t(["알림"])},read:e=>{const{normalize:t}=e;return t(["읽음!"])},repeated_you:e=>{const{normalize:t}=e;return t(["리핏함"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["알림이 없습니다"])},migrated_to:e=>{const{normalize:t}=e;return t(["이사했습니다"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," 로 반응했습니다"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["알림 불러오기 실패: ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["팔로우 요청"])},submitted_report:e=>{const{normalize:t}=e;return t(["신고 내용을 전송함"])},poll_ended:e=>{const{normalize:t}=e;return t(["투표가 끝남"])}}}},8103:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Ukjent status, leter etter den…"])},favorited_you:e=>{const{normalize:t}=e;return t(["likte din status"])},followed_you:e=>{const{normalize:t}=e;return t(["fulgte deg"])},load_older:e=>{const{normalize:t}=e;return t(["Last eldre varsler"])},notifications:e=>{const{normalize:t}=e;return t(["Varslinger"])},read:e=>{const{normalize:t}=e;return t(["Les!"])},repeated_you:e=>{const{normalize:t}=e;return t(["Gjentok din status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ingen gjenstående varsler"])},follow_request:e=>{const{normalize:t}=e;return t(["ønsker å følge deg"])}}}},728:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Onbekend bericht, aan het zoeken…"])},favorited_you:e=>{const{normalize:t}=e;return t(["vond je bericht leuk"])},followed_you:e=>{const{normalize:t}=e;return t(["volgt jou"])},load_older:e=>{const{normalize:t}=e;return t(["Oudere meldingen laden"])},notifications:e=>{const{normalize:t}=e;return t(["Meldingen"])},read:e=>{const{normalize:t}=e;return t(["Gelezen!"])},repeated_you:e=>{const{normalize:t}=e;return t(["herhaalde je bericht"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Geen meldingen meer"])},migrated_to:e=>{const{normalize:t}=e;return t(["is gemigreerd naar"])},follow_request:e=>{const{normalize:t}=e;return t(["wil je volgen"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reageerde met ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Fout bij ophalen van meldingen: ",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["peiling is beëindigd"])}}}},3932:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Estatut desconegut, sèm a lo cercar..."])},favorited_you:e=>{const{normalize:t}=e;return t(["a aimat vòstre estatut"])},followed_you:e=>{const{normalize:t}=e;return t(["vos a seguit"])},load_older:e=>{const{normalize:t}=e;return t(["Cargar las notificacions mai ancianas"])},notifications:e=>{const{normalize:t}=e;return t(["Notficacions"])},read:e=>{const{normalize:t}=e;return t(["Legit !"])},repeated_you:e=>{const{normalize:t}=e;return t(["a repetit vòstre estatut"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Pas mai de notificacions"])}}}},7028:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Nieznany status, szukam go…"])},favorited_you:e=>{const{normalize:t}=e;return t(["dodał(-a) twój status do ulubionych"])},followed_you:e=>{const{normalize:t}=e;return t(["obserwuje cię"])},load_older:e=>{const{normalize:t}=e;return t(["Załaduj starsze powiadomienia"])},notifications:e=>{const{normalize:t}=e;return t(["Powiadomienia"])},read:e=>{const{normalize:t}=e;return t(["Przeczytane!"])},repeated_you:e=>{const{normalize:t}=e;return t(["powtórzył(-a) twój status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Nie masz więcej powiadomień"])},migrated_to:e=>{const{normalize:t}=e;return t(["wyemigrował do"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["zareagował z ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["chce ciebie obserwować"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Błąd pobierania powiadomień: ",r(n(0))])}}}},789:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Publicação desconhecida, a procurar…"])},favorited_you:e=>{const{normalize:t}=e;return t(["gostou do teu post"])},followed_you:e=>{const{normalize:t}=e;return t(["seguiu-te"])},load_older:e=>{const{normalize:t}=e;return t(["Carregar notificações antigas"])},notifications:e=>{const{normalize:t}=e;return t(["Notificações"])},read:e=>{const{normalize:t}=e;return t(["Lido!"])},repeated_you:e=>{const{normalize:t}=e;return t(["partilhou o teu post"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Sem mais notificações"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagiu com ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migrou para"])},follow_request:e=>{const{normalize:t}=e;return t(["quer seguir-te"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Erro ao obter notificações: ",r(n(0))])}}}},5032:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["te-a urmărit"])},notifications:e=>{const{normalize:t}=e;return t(["Notificări"])},read:e=>{const{normalize:t}=e;return t(["Citit!"])}}}},3460:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Неизвестный статус, ищем…"])},favorited_you:e=>{const{normalize:t}=e;return t(["нравится ваш статус"])},followed_you:e=>{const{normalize:t}=e;return t(["начал(а) читать вас"])},load_older:e=>{const{normalize:t}=e;return t(["Загрузить старые уведомления"])},notifications:e=>{const{normalize:t}=e;return t(["Уведомления"])},read:e=>{const{normalize:t}=e;return t(["Прочесть"])},repeated_you:e=>{const{normalize:t}=e;return t(["повторил(а) ваш статус"])},follow_request:e=>{const{normalize:t}=e;return t(["хочет читать вас"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["добавил(а) реакцию: ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["перехал на"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Нет дальнейших уведомлений"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Ошибка при обновлении уведомлений: ",r(n(0))])}}}},6139:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Neznáma správa, dohľadávam ju…"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Chyba získavania upozornení: ",r(n(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["si obľúbil tvoju správu"])},followed_you:e=>{const{normalize:t}=e;return t(["ťa nasleduje"])},follow_request:e=>{const{normalize:t}=e;return t(["ťa chce nasledovať"])},load_older:e=>{const{normalize:t}=e;return t(["Nahrať staršie upozornenia"])},notifications:e=>{const{normalize:t}=e;return t(["Upozornenia"])},read:e=>{const{normalize:t}=e;return t(["Prečítané!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zopakoval tvoju správu"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Žiadne ďalšie upozornenia"])},migrated_to:e=>{const{normalize:t}=e;return t(["sa presťahoval na"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagoval nasledovne ",r(n(0))])}}}},5751:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{}}},4389:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["未知的状态,正在搜索中…"])},favorited_you:e=>{const{normalize:t}=e;return t(["喜欢了你的状态"])},followed_you:e=>{const{normalize:t}=e;return t(["关注了你"])},load_older:e=>{const{normalize:t}=e;return t(["加载更早的通知"])},notifications:e=>{const{normalize:t}=e;return t(["通知"])},read:e=>{const{normalize:t}=e;return t(["已阅!"])},repeated_you:e=>{const{normalize:t}=e;return t(["转发了你的状态"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["没有更多的通知"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["作出了 ",r(n(0))," 的反应"])},migrated_to:e=>{const{normalize:t}=e;return t(["迁移到了"])},follow_request:e=>{const{normalize:t}=e;return t(["想要关注你"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["取得通知时发生错误:",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["投票结束了"])},submitted_report:e=>{const{normalize:t}=e;return t(["提交举报"])}}}},5573:e=>{"use strict";var t=/["'&<>]/;e.exports=function(e){var r,n=""+e,o=t.exec(n);if(!o)return n;var a="",i=0,s=0;for(i=o.index;i<n.length;i++){switch(n.charCodeAt(i)){case 34:r="&quot;";break;case 38:r="&amp;";break;case 39:r="&#39;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}s!==i&&(a+=n.substring(s,i)),s=i+1,a+=r}return s!==i?a+n.substring(s,i):a}},9483:function(e,t){!function(r){"object"==typeof t&&void 0!==e?e.exports=r():"function"==typeof define&&define.amd?define([],r):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=r()}((function(){return function e(t,r,n){function o(i,s){if(!r[i]){if(!t[i]){var l="function"==typeof require&&require;if(!s&&l)return l(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[i]={exports:{}};t[i][0].call(u.exports,(function(e){return o(t[i][1][e]||e)}),u,u.exports,e,t,r,n)}return r[i].exports}for(var a="function"==typeof require&&require,i=0;i<n.length;i++)o(n[i]);return o}({1:[function(e,t,r){(function(e){"use strict";var r,n,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var a=0,i=new o(u),s=e.document.createTextNode("");i.observe(s,{characterData:!0}),r=function(){s.data=a=++a%2}}else if(e.setImmediate||void 0===e.MessageChannel)r="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var l=new e.MessageChannel;l.port1.onmessage=u,r=function(){l.port2.postMessage(0)}}var c=[];function u(){var e,t;n=!0;for(var r=c.length;r;){for(t=c,c=[],e=-1;++e<r;)t[e]();r=c.length}n=!1}t.exports=function(e){1!==c.push(e)||n||r()}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,r){"use strict";var n=e(1);function o(){}var a={},i=["REJECTED"],s=["FULFILLED"],l=["PENDING"];function c(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==o&&d(this,e)}function u(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(e,t,r){n((function(){var n;try{n=t(r)}catch(t){return a.reject(e,t)}n===e?a.reject(e,new TypeError("Cannot resolve promise with itself")):a.resolve(e,n)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function d(e,t){var r=!1;function n(t){r||(r=!0,a.reject(e,t))}function o(t){r||(r=!0,a.resolve(e,t))}var i=m((function(){t(o,n)}));"error"===i.status&&n(i.value)}function m(e,t){var r={};try{r.value=e(t),r.status="success"}catch(e){r.status="error",r.value=e}return r}t.exports=c,c.prototype.catch=function(e){return this.then(null,e)},c.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===i)return this;var r=new this.constructor(o);return this.state!==l?f(r,this.state===s?e:t,this.outcome):this.queue.push(new u(r,e,t)),r},u.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){a.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},a.resolve=function(e,t){var r=m(p,t);if("error"===r.status)return a.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=s,e.outcome=t;for(var o=-1,i=e.queue.length;++o<i;)e.queue[o].callFulfilled(t)}return e},a.reject=function(e,t){e.state=i,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},c.resolve=function(e){return e instanceof this?e:a.resolve(new this(o),e)},c.reject=function(e){var t=new this(o);return a.reject(t,e)},c.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);for(var i=new Array(r),s=0,l=-1,c=new this(o);++l<r;)u(e[l],l);return c;function u(e,o){t.resolve(e).then((function(e){i[o]=e,++s!==r||n||(n=!0,a.resolve(c,i))}),(function(e){n||(n=!0,a.reject(c,e))}))}},c.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var n,i=-1,s=new this(o);++i<t;)n=e[i],this.resolve(n).then((function(e){r||(r=!0,a.resolve(s,e))}),(function(e){r||(r=!0,a.reject(s,e))}));return s}},{1:1}],3:[function(e,t,r){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function a(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(o){if("TypeError"!==o.name)throw o;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<e.length;n+=1)r.append(e[n]);return r.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var i=Promise;function s(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function l(e,t,r){"function"==typeof t&&e.then(t),"function"==typeof r&&e.catch(r)}function c(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function u(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",p=void 0,d={},m=Object.prototype.toString,h="readonly",_="readwrite";function v(e){var t=d[e.name],r={};r.promise=new i((function(e,t){r.resolve=e,r.reject=t})),t.deferredOperations.push(r),t.dbReady?t.dbReady=t.dbReady.then((function(){return r.promise})):t.dbReady=r.promise}function g(e){var t=d[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function y(e,t){var r=d[e.name].deferredOperations.pop();if(r)return r.reject(t),r.promise}function b(e,t){return new i((function(r,n){if(d[e.name]=d[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return r(e.db);v(e),e.db.close()}var a=[e.name];t&&a.push(e.version);var i=o.open.apply(o,a);t&&(i.onupgradeneeded=function(t){var r=i.result;try{r.createObjectStore(e.storeName),t.oldVersion<=1&&r.createObjectStore(f)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),i.onerror=function(e){e.preventDefault(),n(i.error)},i.onsuccess=function(){var t=i.result;t.onversionchange=function(e){e.target.close()},r(t),g(e)}}))}function w(e){return b(e,!1)}function x(e){return b(e,!0)}function z(e,t){if(!e.db)return!0;var r=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,o=e.version>e.db.version;if(n&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||r){if(r){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function k(e){return a([function(e){for(var t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r),o=0;o<t;o++)n[o]=e.charCodeAt(o);return r}(atob(e.data))],{type:e.type})}function O(e){return e&&e.__local_forage_encoded_blob}function j(e){var t=this,r=t._initReady().then((function(){var e=d[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(r,e,e),r}function E(e,t,r,n){void 0===n&&(n=1);try{var o=e.db.transaction(e.storeName,t);r(null,o)}catch(o){if(n>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return i.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return function(e){v(e);for(var t=d[e.name],r=t.forages,n=0;n<r.length;n++){var o=r[n];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,w(e).then((function(t){return e.db=t,z(e)?x(e):t})).then((function(n){e.db=t.db=n;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=n})).catch((function(t){throw y(e,t),t}))}(e).then((function(){E(e,t,r,n-1)}))})).catch(r);r(o)}}var I={_driver:"asyncStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]=e[n];var o=d[r.name];o||(o={forages:[],db:null,dbReady:null,deferredOperations:[]},d[r.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=j);var a=[];function s(){return i.resolve()}for(var l=0;l<o.forages.length;l++){var c=o.forages[l];c!==t&&a.push(c._initReady().catch(s))}var u=o.forages.slice(0);return i.all(a).then((function(){return r.db=o.db,w(r)})).then((function(e){return r.db=e,z(r,t._defaultConfig.version)?x(r):e})).then((function(e){r.db=o.db=e,t._dbInfo=r;for(var n=0;n<u.length;n++){var a=u[n];a!==t&&(a._dbInfo.db=r.db,a._dbInfo.version=r.version)}}))},_support:function(){try{if(!o||!o.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),iterate:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).openCursor(),s=1;i.onsuccess=function(){var r=i.result;if(r){var n=r.value;O(n)&&(n=k(n));var o=e(n,r.key,s++);void 0!==o?t(o):r.continue()}else t()},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),O(e)&&(e=k(e)),t(e)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},setItem:function(e,t,r){var n=this;e=c(e);var o=new i((function(r,o){var s;n.ready().then((function(){return s=n._dbInfo,"[object Blob]"===m.call(t)?function(e){return"boolean"==typeof p?i.resolve(p):function(e){return new i((function(t){var r=e.transaction(f,_),n=a([""]);r.objectStore(f).put(n,"key"),r.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},r.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);t(r||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return p=e}))}(s.db).then((function(e){return e?t:(r=t,new i((function(e,t){var n=new FileReader;n.onerror=t,n.onloadend=function(t){var n=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:n,type:r.type})},n.readAsBinaryString(r)})));var r})):t})).then((function(t){E(n._dbInfo,_,(function(a,i){if(a)return o(a);try{var s=i.objectStore(n._dbInfo.storeName);null===t&&(t=void 0);var l=s.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),r(t)},i.onabort=i.onerror=function(){var e=l.error?l.error:l.transaction.error;o(e)}}catch(e){o(e)}}))})).catch(o)}));return s(o,r),o},removeItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,_,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){n(i.error)},a.onabort=function(){var e=i.error?i.error:i.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},clear:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,_,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},length:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,h,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},key:function(e,t){var r=this,n=new i((function(t,n){e<0?t(null):r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName),s=!1,l=i.openKeyCursor();l.onsuccess=function(){var r=l.result;r?0===e||s?t(r.key):(s=!0,r.advance(e)):t(null)},l.onerror=function(){n(l.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},keys:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,h,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).openKeyCursor(),i=[];a.onsuccess=function(){var t=a.result;t?(i.push(t.key),t.continue()):e(i)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},dropInstance:function(e,t){t=u.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,a=this;if(e.name){var l=e.name===r.name&&a._dbInfo.db,c=l?i.resolve(a._dbInfo.db):w(e).then((function(t){var r=d[e.name],n=r.forages;r.db=t;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=t;return t}));n=e.storeName?c.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var r=t.version+1;v(e);var n=d[e.name],a=n.forages;t.close();for(var s=0;s<a.length;s++){var l=a[s];l._dbInfo.db=null,l._dbInfo.version=r}var c=new i((function(t,n){var a=o.open(e.name,r);a.onerror=function(e){a.result.close(),n(e)},a.onupgradeneeded=function(){a.result.deleteObjectStore(e.storeName)},a.onsuccess=function(){var e=a.result;e.close(),t(e)}}));return c.then((function(e){n.db=e;for(var t=0;t<a.length;t++){var r=a[t];r._dbInfo.db=e,g(r._dbInfo)}})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}})):c.then((function(t){v(e);var r=d[e.name],n=r.forages;t.close();for(var a=0;a<n.length;a++)n[a]._dbInfo.db=null;var s=new i((function(t,r){var n=o.deleteDatabase(e.name);n.onerror=function(){var e=n.result;e&&e.close(),r(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},n.onsuccess=function(){var e=n.result;e&&e.close(),t(e)}}));return s.then((function(e){r.db=e;for(var t=0;t<n.length;t++)g(n[t]._dbInfo)})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}))}else n=i.reject("Invalid arguments");return s(n,t),n}},S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",N=/^~~local_forage_type~([^~]+)~/,L="__lfsc__:",R=L.length,F="arbf",A="blob",T="si08",C="ui08",P="uic8",D="si16",M="si32",W="ur16",U="ui32",$="fl32",V="fl64",B=R+F.length,q=Object.prototype.toString;function H(e){var t,r,n,o,a,i=.75*e.length,s=e.length,l=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);var c=new ArrayBuffer(i),u=new Uint8Array(c);for(t=0;t<s;t+=4)r=S.indexOf(e[t]),n=S.indexOf(e[t+1]),o=S.indexOf(e[t+2]),a=S.indexOf(e[t+3]),u[l++]=r<<2|n>>4,u[l++]=(15&n)<<4|o>>2,u[l++]=(3&o)<<6|63&a;return c}function G(e){var t,r=new Uint8Array(e),n="";for(t=0;t<r.length;t+=3)n+=S[r[t]>>2],n+=S[(3&r[t])<<4|r[t+1]>>4],n+=S[(15&r[t+1])<<2|r[t+2]>>6],n+=S[63&r[t+2]];return r.length%3==2?n=n.substring(0,n.length-1)+"=":r.length%3==1&&(n=n.substring(0,n.length-2)+"=="),n}var Y={serialize:function(e,t){var r="";if(e&&(r=q.call(e)),e&&("[object ArrayBuffer]"===r||e.buffer&&"[object ArrayBuffer]"===q.call(e.buffer))){var n,o=L;e instanceof ArrayBuffer?(n=e,o+=F):(n=e.buffer,"[object Int8Array]"===r?o+=T:"[object Uint8Array]"===r?o+=C:"[object Uint8ClampedArray]"===r?o+=P:"[object Int16Array]"===r?o+=D:"[object Uint16Array]"===r?o+=W:"[object Int32Array]"===r?o+=M:"[object Uint32Array]"===r?o+=U:"[object Float32Array]"===r?o+=$:"[object Float64Array]"===r?o+=V:t(new Error("Failed to get type for BinaryArray"))),t(o+G(n))}else if("[object Blob]"===r){var a=new FileReader;a.onload=function(){var r="~~local_forage_type~"+e.type+"~"+G(this.result);t("__lfsc__:blob"+r)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(r){console.error("Couldn't convert value into a JSON string: ",e),t(null,r)}},deserialize:function(e){if(e.substring(0,R)!==L)return JSON.parse(e);var t,r=e.substring(B),n=e.substring(R,B);if(n===A&&N.test(r)){var o=r.match(N);t=o[1],r=r.substring(o[0].length)}var i=H(r);switch(n){case F:return i;case A:return a([i],{type:t});case T:return new Int8Array(i);case C:return new Uint8Array(i);case P:return new Uint8ClampedArray(i);case D:return new Int16Array(i);case W:return new Uint16Array(i);case M:return new Int32Array(i);case U:return new Uint32Array(i);case $:return new Float32Array(i);case V:return new Float64Array(i);default:throw new Error("Unkown type: "+n)}},stringToBuffer:H,bufferToString:G};function X(e,t,r,n){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],r,n)}function K(e,t,r,n,o,a){e.executeSql(r,n,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?a(e,i):X(e,t,(function(){e.executeSql(r,n,o,a)}),a)}),a):a(e,i)}),a)}function J(e,t,r,n){var o=this;e=c(e);var a=new i((function(a,i){o.ready().then((function(){void 0===t&&(t=null);var s=t,l=o._dbInfo;l.serializer.serialize(t,(function(t,c){c?i(c):l.db.transaction((function(r){K(r,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){a(s)}),(function(e,t){i(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(n>0)return void a(J.apply(o,[e,s,r,n-1]));i(t)}}))}))})).catch(i)}));return s(a,r),a}function Q(e){return new i((function(t,r){e.transaction((function(n){n.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(r,n){for(var o=[],a=0;a<n.rows.length;a++)o.push(n.rows.item(a).name);t({db:e,storeNames:o})}),(function(e,t){r(t)}))}),(function(e){r(e)}))}))}var Z={_driver:"webSQLStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]="string"!=typeof e[n]?e[n].toString():e[n];var o=new i((function(e,n){try{r.db=openDatabase(r.name,String(r.version),r.description,r.size)}catch(e){return n(e)}r.db.transaction((function(o){X(o,r,(function(){t._dbInfo=r,e()}),(function(e,t){n(t)}))}),n)}));return r.serializer=Y,o},_support:"function"==typeof openDatabase,iterate:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT * FROM "+o.storeName,[],(function(r,n){for(var a=n.rows,i=a.length,s=0;s<i;s++){var l=a.item(s),c=l.value;if(c&&(c=o.serializer.deserialize(c)),void 0!==(c=e(c,l.key,s+1)))return void t(c)}t()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,r){var n=r.rows.length?r.rows.item(0).value:null;n&&(n=o.serializer.deserialize(n)),t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},setItem:function(e,t,r){return J.apply(this,[e,t,r,1])},removeItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},clear:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"DELETE FROM "+n.storeName,[],(function(){e()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},length:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"SELECT COUNT(key) as c FROM "+n.storeName,[],(function(t,r){var n=r.rows.item(0).c;e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},key:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,r){var n=r.rows.length?r.rows.item(0).key:null;t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},keys:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"SELECT key FROM "+n.storeName,[],(function(t,r){for(var n=[],o=0;o<r.rows.length;o++)n.push(r.rows.item(o).key);e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},dropInstance:function(e,t){t=u.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,o=this;return s(n=e.name?new i((function(t){var n;n=e.name===r.name?o._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:n,storeNames:[e.storeName]}):t(Q(n))})).then((function(e){return new i((function(t,r){e.db.transaction((function(n){function o(e){return new i((function(t,r){n.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){r(t)}))}))}for(var a=[],s=0,l=e.storeNames.length;s<l;s++)a.push(o(e.storeNames[s]));i.all(a).then((function(){t()})).catch((function(e){r(e)}))}),(function(e){r(e)}))}))})):i.reject("Invalid arguments"),t),n}};function ee(e,t){var r=e.name+"/";return e.storeName!==t.storeName&&(r+=e.storeName+"/"),r}var te={_driver:"localStorageWrapper",_initStorage:function(e){var t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ee(e,this._defaultConfig),!function(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}()||localStorage.length>0?(this._dbInfo=t,t.serializer=Y,i.resolve()):i.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var r=this,n=r.ready().then((function(){for(var t=r._dbInfo,n=t.keyPrefix,o=n.length,a=localStorage.length,i=1,s=0;s<a;s++){var l=localStorage.key(s);if(0===l.indexOf(n)){var c=localStorage.getItem(l);if(c&&(c=t.serializer.deserialize(c)),void 0!==(c=e(c,l.substring(o),i++)))return c}}}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=r.ready().then((function(){var t=r._dbInfo,n=localStorage.getItem(t.keyPrefix+e);return n&&(n=t.serializer.deserialize(n)),n}));return s(n,t),n},setItem:function(e,t,r){var n=this;e=c(e);var o=n.ready().then((function(){void 0===t&&(t=null);var r=t;return new i((function(o,a){var i=n._dbInfo;i.serializer.serialize(t,(function(t,n){if(n)a(n);else try{localStorage.setItem(i.keyPrefix+e,t),o(r)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||a(e),a(e)}}))}))}));return s(o,r),o},removeItem:function(e,t){var r=this;e=c(e);var n=r.ready().then((function(){var t=r._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return s(n,t),n},clear:function(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,r=localStorage.length-1;r>=0;r--){var n=localStorage.key(r);0===n.indexOf(e)&&localStorage.removeItem(n)}}));return s(r,e),r},length:function(e){var t=this.keys().then((function(e){return e.length}));return s(t,e),t},key:function(e,t){var r=this,n=r.ready().then((function(){var t,n=r._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(n.keyPrefix.length)),t}));return s(n,t),n},keys:function(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo,r=localStorage.length,n=[],o=0;o<r;o++){var a=localStorage.key(o);0===a.indexOf(e.keyPrefix)&&n.push(a.substring(e.keyPrefix.length))}return n}));return s(r,e),r},dropInstance:function(e,t){if(t=u.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var r=this.config();e.name=e.name||r.name,e.storeName=e.storeName||r.storeName}var n,o=this;return s(n=e.name?new i((function(t){e.storeName?t(ee(e,o._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}})):i.reject("Invalid arguments"),t),n}},re=function(e,t){for(var r,n,o=e.length,a=0;a<o;){if((r=e[a])===(n=t)||"number"==typeof r&&"number"==typeof n&&isNaN(r)&&isNaN(n))return!0;a++}return!1},ne=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},oe={},ae={},ie={INDEXEDDB:I,WEBSQL:Z,LOCALSTORAGE:te},se=[ie.INDEXEDDB._driver,ie.WEBSQL._driver,ie.LOCALSTORAGE._driver],le=["dropInstance"],ce=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(le),ue={description:"",driver:se.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function fe(e,t){e[t]=function(){var r=arguments;return e.ready().then((function(){return e[t].apply(e,r)}))}}function pe(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var r in t)t.hasOwnProperty(r)&&(ne(t[r])?arguments[0][r]=t[r].slice():arguments[0][r]=t[r])}return arguments[0]}var de=function(){function e(t){for(var r in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ie)if(ie.hasOwnProperty(r)){var n=ie[r],o=n._driver;this[r]=o,oe[o]||this.defineDriver(n)}this._defaultConfig=pe({},ue),this._config=pe({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":n(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,r){var n=new i((function(t,r){try{var n=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void r(o);for(var a=ce.concat("_initStorage"),l=0,c=a.length;l<c;l++){var u=a[l];if((!re(le,u)||e[u])&&"function"!=typeof e[u])return void r(o)}!function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),r=i.reject(t);return s(r,arguments[arguments.length-1]),r}},r=0,n=le.length;r<n;r++){var o=le[r];e[o]||(e[o]=t(o))}}();var f=function(r){oe[n]&&console.info("Redefining LocalForage driver: "+n),oe[n]=e,ae[n]=r,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(f,r):f(!!e._support):f(!0)}catch(e){r(e)}}));return l(n,t,r),n},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,r){var n=oe[e]?i.resolve(oe[e]):i.reject(new Error("Driver not found."));return l(n,t,r),n},e.prototype.getSerializer=function(e){var t=i.resolve(Y);return l(t,e),t},e.prototype.ready=function(e){var t=this,r=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return l(r,e,e),r},e.prototype.setDriver=function(e,t,r){var n=this;ne(e)||(e=[e]);var o=this._getSupportedDrivers(e);function a(){n._config.driver=n.driver()}function s(e){return n._extend(e),a(),n._ready=n._initStorage(n._config),n._ready}var c=null!==this._driverSet?this._driverSet.catch((function(){return i.resolve()})):i.resolve();return this._driverSet=c.then((function(){var e=o[0];return n._dbInfo=null,n._ready=null,n.getDriver(e).then((function(e){n._driver=e._driver,a(),n._wrapLibraryMethodsWithReady(),n._initDriver=function(e){return function(){var t=0;return function r(){for(;t<e.length;){var o=e[t];return t++,n._dbInfo=null,n._ready=null,n.getDriver(o).then(s).catch(r)}a();var l=new Error("No available storage method found.");return n._driverSet=i.reject(l),n._driverSet}()}}(o)}))})).catch((function(){a();var e=new Error("No available storage method found.");return n._driverSet=i.reject(e),n._driverSet})),l(this._driverSet,t,r),this._driverSet},e.prototype.supports=function(e){return!!ae[e]},e.prototype._extend=function(e){pe(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],r=0,n=e.length;r<n;r++){var o=e[r];this.supports(o)&&t.push(o)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=ce.length;e<t;e++)fe(this,ce[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),me=new de;t.exports=me},{3:3}]},{},[4])(4)}))},8552:(e,t,r)=>{var n=r(852)(r(5639),"DataView");e.exports=n},1989:(e,t,r)=>{var n=r(1789),o=r(401),a=r(7667),i=r(1327),s=r(1866);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},8407:(e,t,r)=>{var n=r(7040),o=r(4125),a=r(2117),i=r(3755),s=r(4705);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},7071:(e,t,r)=>{var n=r(852)(r(5639),"Map");e.exports=n},3369:(e,t,r)=>{var n=r(4785),o=r(1285),a=r(6e3),i=r(9916),s=r(5265);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},3818:(e,t,r)=>{var n=r(852)(r(5639),"Promise");e.exports=n},8525:(e,t,r)=>{var n=r(852)(r(5639),"Set");e.exports=n},8668:(e,t,r)=>{var n=r(3369),o=r(619),a=r(2385);function i(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t<r;)this.add(e[t])}i.prototype.add=i.prototype.push=o,i.prototype.has=a,e.exports=i},6384:(e,t,r)=>{var n=r(8407),o=r(7465),a=r(3779),i=r(7599),s=r(4758),l=r(4309);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=o,c.prototype.delete=a,c.prototype.get=i,c.prototype.has=s,c.prototype.set=l,e.exports=c},2705:(e,t,r)=>{var n=r(5639).Symbol;e.exports=n},1149:(e,t,r)=>{var n=r(5639).Uint8Array;e.exports=n},577:(e,t,r)=>{var n=r(852)(r(5639),"WeakMap");e.exports=n},6874:e=>{e.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},4963:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[o++]=i)}return a}},4636:(e,t,r)=>{var n=r(2545),o=r(5694),a=r(1469),i=r(4144),s=r(5776),l=r(6719),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=a(e),u=!r&&o(e),f=!r&&!u&&i(e),p=!r&&!u&&!f&&l(e),d=r||u||f||p,m=d?n(e.length,String):[],h=m.length;for(var _ in e)!t&&!c.call(e,_)||d&&("length"==_||f&&("offset"==_||"parent"==_)||p&&("buffer"==_||"byteLength"==_||"byteOffset"==_)||s(_,h))||m.push(_);return m}},9932:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}},2488:e=>{e.exports=function(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}},2908:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},8470:(e,t,r)=>{var n=r(7813);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},9881:(e,t,r)=>{var n=r(7816),o=r(9291)(n);e.exports=o},760:(e,t,r)=>{var n=r(9881);e.exports=function(e,t){var r=[];return n(e,(function(e,n,o){t(e,n,o)&&r.push(e)})),r}},1848:e=>{e.exports=function(e,t,r,n){for(var o=e.length,a=r+(n?1:-1);n?a--:++a<o;)if(t(e[a],a,e))return a;return-1}},1078:(e,t,r)=>{var n=r(2488),o=r(7285);e.exports=function e(t,r,a,i,s){var l=-1,c=t.length;for(a||(a=o),s||(s=[]);++l<c;){var u=t[l];r>0&&a(u)?r>1?e(u,r-1,a,i,s):n(s,u):i||(s[s.length]=u)}return s}},8483:(e,t,r)=>{var n=r(5063)();e.exports=n},7816:(e,t,r)=>{var n=r(8483),o=r(3674);e.exports=function(e,t){return e&&n(e,t,o)}},7786:(e,t,r)=>{var n=r(1811),o=r(327);e.exports=function(e,t){for(var r=0,a=(t=n(t,e)).length;null!=e&&r<a;)e=e[o(t[r++])];return r&&r==a?e:void 0}},8866:(e,t,r)=>{var n=r(2488),o=r(1469);e.exports=function(e,t,r){var a=t(e);return o(e)?a:n(a,r(e))}},4239:(e,t,r)=>{var n=r(2705),o=r(9607),a=r(2333),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,r)=>{var n=r(1848),o=r(2722),a=r(2351);e.exports=function(e,t,r){return t==t?a(e,t,r):n(e,o,r)}},9454:(e,t,r)=>{var n=r(4239),o=r(7005);e.exports=function(e){return o(e)&&"[object Arguments]"==n(e)}},939:(e,t,r)=>{var n=r(2492),o=r(7005);e.exports=function e(t,r,a,i,s){return t===r||(null==t||null==r||!o(t)&&!o(r)?t!=t&&r!=r:n(t,r,a,i,e,s))}},2492:(e,t,r)=>{var n=r(6384),o=r(7114),a=r(8351),i=r(6096),s=r(4160),l=r(1469),c=r(4144),u=r(6719),f="[object Arguments]",p="[object Array]",d="[object Object]",m=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,h,_,v){var g=l(e),y=l(t),b=g?p:s(e),w=y?p:s(t),x=(b=b==f?d:b)==d,z=(w=w==f?d:w)==d,k=b==w;if(k&&c(e)){if(!c(t))return!1;g=!0,x=!1}if(k&&!x)return v||(v=new n),g||u(e)?o(e,t,r,h,_,v):a(e,t,b,r,h,_,v);if(!(1&r)){var O=x&&m.call(e,"__wrapped__"),j=z&&m.call(t,"__wrapped__");if(O||j){var E=O?e.value():e,I=j?t.value():t;return v||(v=new n),_(E,I,r,h,v)}}return!!k&&(v||(v=new n),i(e,t,r,h,_,v))}},2958:(e,t,r)=>{var n=r(6384),o=r(939);e.exports=function(e,t,r,a){var i=r.length,s=i,l=!a;if(null==e)return!s;for(e=Object(e);i--;){var c=r[i];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++i<s;){var u=(c=r[i])[0],f=e[u],p=c[1];if(l&&c[2]){if(void 0===f&&!(u in e))return!1}else{var d=new n;if(a)var m=a(f,p,u,e,t,d);if(!(void 0===m?o(p,f,3,a,d):m))return!1}}return!0}},2722:e=>{e.exports=function(e){return e!=e}},8458:(e,t,r)=>{var n=r(3560),o=r(5346),a=r(3218),i=r(346),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,f=c.hasOwnProperty,p=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(n(e)?p:s).test(i(e))}},8749:(e,t,r)=>{var n=r(4239),o=r(1780),a=r(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[n(e)]}},7206:(e,t,r)=>{var n=r(1573),o=r(6432),a=r(6557),i=r(1469),s=r(9601);e.exports=function(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?i(e)?o(e[0],e[1]):n(e):s(e)}},280:(e,t,r)=>{var n=r(5726),o=r(6916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return o(e);var t=[];for(var r in Object(e))a.call(e,r)&&"constructor"!=r&&t.push(r);return t}},9199:(e,t,r)=>{var n=r(9881),o=r(8612);e.exports=function(e,t){var r=-1,a=o(e)?Array(e.length):[];return n(e,(function(e,n,o){a[++r]=t(e,n,o)})),a}},1573:(e,t,r)=>{var n=r(2958),o=r(1499),a=r(2634);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},6432:(e,t,r)=>{var n=r(939),o=r(7361),a=r(9095),i=r(5403),s=r(9162),l=r(2634),c=r(327);e.exports=function(e,t){return i(e)&&s(t)?l(c(e),t):function(r){var i=o(r,e);return void 0===i&&i===t?a(r,e):n(t,i,3)}}},2689:(e,t,r)=>{var n=r(9932),o=r(7786),a=r(7206),i=r(9199),s=r(1131),l=r(7518),c=r(5022),u=r(6557),f=r(1469);e.exports=function(e,t,r){t=t.length?n(t,(function(e){return f(e)?function(t){return o(t,1===e.length?e[0]:e)}:e})):[u];var p=-1;t=n(t,l(a));var d=i(e,(function(e,r,o){return{criteria:n(t,(function(t){return t(e)})),index:++p,value:e}}));return s(d,(function(e,t){return c(e,t,r)}))}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,r)=>{var n=r(7786);e.exports=function(e){return function(t){return n(t,e)}}},5976:(e,t,r)=>{var n=r(6557),o=r(5357),a=r(61);e.exports=function(e,t){return a(o(e,t,n),e+"")}},6560:(e,t,r)=>{var n=r(5703),o=r(8777),a=r(6557),i=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:a;e.exports=i},1131:e=>{e.exports=function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}},2545:e=>{e.exports=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}},531:(e,t,r)=>{var n=r(2705),o=r(9932),a=r(1469),i=r(3448),s=n?n.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(a(t))return o(t,e)+"";if(i(t))return l?l.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},7561:(e,t,r)=>{var n=r(7990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,n(e)+1).replace(o,""):e}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},7415:(e,t,r)=>{var n=r(9932);e.exports=function(e,t){return n(t,(function(t){return e[t]}))}},4757:e=>{e.exports=function(e,t){return e.has(t)}},1811:(e,t,r)=>{var n=r(1469),o=r(5403),a=r(5514),i=r(9833);e.exports=function(e,t){return n(e)?e:o(e,t)?[e]:a(i(e))}},6393:(e,t,r)=>{var n=r(3448);e.exports=function(e,t){if(e!==t){var r=void 0!==e,o=null===e,a=e==e,i=n(e),s=void 0!==t,l=null===t,c=t==t,u=n(t);if(!l&&!u&&!i&&e>t||i&&s&&c&&!l&&!u||o&&s&&c||!r&&c||!a)return 1;if(!o&&!i&&!u&&e<t||u&&r&&a&&!o&&!i||l&&r&&a||!s&&a||!c)return-1}return 0}},5022:(e,t,r)=>{var n=r(6393);e.exports=function(e,t,r){for(var o=-1,a=e.criteria,i=t.criteria,s=a.length,l=r.length;++o<s;){var c=n(a[o],i[o]);if(c)return o>=l?c:c*("desc"==r[o]?-1:1)}return e.index-t.index}},4429:(e,t,r)=>{var n=r(5639)["__core-js_shared__"];e.exports=n},9291:(e,t,r)=>{var n=r(8612);e.exports=function(e,t){return function(r,o){if(null==r)return r;if(!n(r))return e(r,o);for(var a=r.length,i=t?a:-1,s=Object(r);(t?i--:++i<a)&&!1!==o(s[i],i,s););return r}}},5063:e=>{e.exports=function(e){return function(t,r,n){for(var o=-1,a=Object(t),i=n(t),s=i.length;s--;){var l=i[e?s:++o];if(!1===r(a[l],l,a))break}return t}}},8777:(e,t,r)=>{var n=r(852),o=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},7114:(e,t,r)=>{var n=r(8668),o=r(2908),a=r(4757);e.exports=function(e,t,r,i,s,l){var c=1&r,u=e.length,f=t.length;if(u!=f&&!(c&&f>u))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var m=-1,h=!0,_=2&r?new n:void 0;for(l.set(e,t),l.set(t,e);++m<u;){var v=e[m],g=t[m];if(i)var y=c?i(g,v,m,t,e,l):i(v,g,m,e,t,l);if(void 0!==y){if(y)continue;h=!1;break}if(_){if(!o(t,(function(e,t){if(!a(_,t)&&(v===e||s(v,e,r,i,l)))return _.push(t)}))){h=!1;break}}else if(v!==g&&!s(v,g,r,i,l)){h=!1;break}}return l.delete(e),l.delete(t),h}},8351:(e,t,r)=>{var n=r(2705),o=r(1149),a=r(7813),i=r(7114),s=r(8776),l=r(1814),c=n?n.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,f,p){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var d=s;case"[object Set]":var m=1&n;if(d||(d=l),e.size!=t.size&&!m)return!1;var h=p.get(e);if(h)return h==t;n|=2,p.set(e,t);var _=i(d(e),d(t),n,c,f,p);return p.delete(e),_;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},6096:(e,t,r)=>{var n=r(8234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,a,i,s){var l=1&r,c=n(e),u=c.length;if(u!=n(t).length&&!l)return!1;for(var f=u;f--;){var p=c[f];if(!(l?p in t:o.call(t,p)))return!1}var d=s.get(e),m=s.get(t);if(d&&m)return d==t&&m==e;var h=!0;s.set(e,t),s.set(t,e);for(var _=l;++f<u;){var v=e[p=c[f]],g=t[p];if(a)var y=l?a(g,v,p,t,e,s):a(v,g,p,e,t,s);if(!(void 0===y?v===g||i(v,g,r,a,s):y)){h=!1;break}_||(_="constructor"==p)}if(h&&!_){var b=e.constructor,w=t.constructor;b==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(h=!1)}return s.delete(e),s.delete(t),h}},1957:(e,t,r)=>{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;e.exports=n},8234:(e,t,r)=>{var n=r(8866),o=r(9551),a=r(3674);e.exports=function(e){return n(e,a,o)}},5050:(e,t,r)=>{var n=r(7019);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},1499:(e,t,r)=>{var n=r(9162),o=r(3674);e.exports=function(e){for(var t=o(e),r=t.length;r--;){var a=t[r],i=e[a];t[r]=[a,i,n(i)]}return t}},852:(e,t,r)=>{var n=r(8458),o=r(7801);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},9607:(e,t,r)=>{var n=r(2705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,s=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,s),r=e[s];try{e[s]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[s]=r:delete e[s]),o}},9551:(e,t,r)=>{var n=r(4963),o=r(479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(e){return null==e?[]:(e=Object(e),n(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=s},4160:(e,t,r)=>{var n=r(8552),o=r(7071),a=r(3818),i=r(8525),s=r(577),l=r(4239),c=r(346),u="[object Map]",f="[object Promise]",p="[object Set]",d="[object WeakMap]",m="[object DataView]",h=c(n),_=c(o),v=c(a),g=c(i),y=c(s),b=l;(n&&b(new n(new ArrayBuffer(1)))!=m||o&&b(new o)!=u||a&&b(a.resolve())!=f||i&&b(new i)!=p||s&&b(new s)!=d)&&(b=function(e){var t=l(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case h:return m;case _:return u;case v:return f;case g:return p;case y:return d}return t}),e.exports=b},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,r)=>{var n=r(1811),o=r(5694),a=r(1469),i=r(5776),s=r(1780),l=r(327);e.exports=function(e,t,r){for(var c=-1,u=(t=n(t,e)).length,f=!1;++c<u;){var p=l(t[c]);if(!(f=null!=e&&r(e,p)))break;e=e[p]}return f||++c!=u?f:!!(u=null==e?0:e.length)&&s(u)&&i(p,u)&&(a(e)||o(e))}},1789:(e,t,r)=>{var n=r(4536);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(t,e)?t[e]:void 0}},1327:(e,t,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:o.call(t,e)}},1866:(e,t,r)=>{var n=r(4536);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},7285:(e,t,r)=>{var n=r(2705),o=r(5694),a=r(1469),i=n?n.isConcatSpreadable:void 0;e.exports=function(e){return a(e)||o(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}},6612:(e,t,r)=>{var n=r(7813),o=r(8612),a=r(5776),i=r(3218);e.exports=function(e,t,r){if(!i(r))return!1;var s=typeof t;return!!("number"==s?o(r)&&a(t,r.length):"string"==s&&t in r)&&n(r[t],e)}},5403:(e,t,r)=>{var n=r(1469),o=r(3448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!o(e))||i.test(e)||!a.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,r)=>{var n,o=r(4429),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!a&&a in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},9162:(e,t,r)=>{var n=r(3218);e.exports=function(e){return e==e&&!n(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,r)=>{var n=r(8470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0||(r==t.length-1?t.pop():o.call(t,r,1),--this.size,0))}},2117:(e,t,r)=>{var n=r(8470);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},3755:(e,t,r)=>{var n=r(8470);e.exports=function(e){return n(this.__data__,e)>-1}},4705:(e,t,r)=>{var n=r(8470);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},4785:(e,t,r)=>{var n=r(1989),o=r(8407),a=r(7071);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},1285:(e,t,r)=>{var n=r(5050);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,r)=>{var n=r(5050);e.exports=function(e){return n(this,e).get(e)}},9916:(e,t,r)=>{var n=r(5050);e.exports=function(e){return n(this,e).has(e)}},5265:(e,t,r)=>{var n=r(5050);e.exports=function(e,t){var r=n(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},2634:e=>{e.exports=function(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}},4523:(e,t,r)=>{var n=r(8306);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},4536:(e,t,r)=>{var n=r(852)(Object,"create");e.exports=n},6916:(e,t,r)=>{var n=r(5569)(Object.keys,Object);e.exports=n},1167:(e,t,r)=>{e=r.nmd(e);var n=r(1957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&n.process,s=function(){try{return a&&a.require&&a.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=s},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},5357:(e,t,r)=>{var n=r(6874),o=Math.max;e.exports=function(e,t,r){return t=o(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,s=o(a.length-t,0),l=Array(s);++i<s;)l[i]=a[t+i];i=-1;for(var c=Array(t+1);++i<t;)c[i]=a[i];return c[t]=r(l),n(e,this,c)}}},5639:(e,t,r)=>{var n=r(1957),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();e.exports=a},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},61:(e,t,r)=>{var n=r(6560),o=r(1275)(n);e.exports=o},1275:e=>{var t=Date.now;e.exports=function(e){var r=0,n=0;return function(){var o=t(),a=16-(o-n);if(n=o,a>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},7465:(e,t,r)=>{var n=r(8407);e.exports=function(){this.__data__=new n,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,r)=>{var n=r(8407),o=r(7071),a=r(3369);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(e,t),this.size=r.size,this}},2351:e=>{e.exports=function(e,t,r){for(var n=r-1,o=e.length;++n<o;)if(e[n]===t)return n;return-1}},5514:(e,t,r)=>{var n=r(4523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,r,n,o){t.push(n?o.replace(a,"$1"):r||e)})),t}));e.exports=i},327:(e,t,r)=>{var n=r(3448);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},7990:e=>{var t=/\s/;e.exports=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r}},5703:e=>{e.exports=function(e){return function(){return e}}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},3105:(e,t,r)=>{var n=r(4963),o=r(760),a=r(7206),i=r(1469);e.exports=function(e,t){return(i(e)?n:o)(e,a(t,3))}},7361:(e,t,r)=>{var n=r(7786);e.exports=function(e,t,r){var o=null==e?void 0:n(e,t);return void 0===o?r:o}},9095:(e,t,r)=>{var n=r(13),o=r(222);e.exports=function(e,t){return null!=e&&o(e,t,n)}},6557:e=>{e.exports=function(e){return e}},4721:(e,t,r)=>{var n=r(2118),o=r(8612),a=r(7037),i=r(554),s=r(2628),l=Math.max;e.exports=function(e,t,r,c){e=o(e)?e:s(e),r=r&&!c?i(r):0;var u=e.length;return r<0&&(r=l(u+r,0)),a(e)?r<=u&&e.indexOf(t,r)>-1:!!u&&n(e,t,r)>-1}},5694:(e,t,r)=>{var n=r(9454),o=r(7005),a=Object.prototype,i=a.hasOwnProperty,s=a.propertyIsEnumerable,l=n(function(){return arguments}())?n:function(e){return o(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,r)=>{var n=r(3560),o=r(1780);e.exports=function(e){return null!=e&&o(e.length)&&!n(e)}},4144:(e,t,r)=>{e=r.nmd(e);var n=r(5639),o=r(5062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,s=i&&i.exports===a?n.Buffer:void 0,l=(s?s.isBuffer:void 0)||o;e.exports=l},3560:(e,t,r)=>{var n=r(4239),o=r(3218);e.exports=function(e){if(!o(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},7037:(e,t,r)=>{var n=r(4239),o=r(1469),a=r(7005);e.exports=function(e){return"string"==typeof e||!o(e)&&a(e)&&"[object String]"==n(e)}},3448:(e,t,r)=>{var n=r(4239),o=r(7005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==n(e)}},6719:(e,t,r)=>{var n=r(8749),o=r(7518),a=r(1167),i=a&&a.isTypedArray,s=i?o(i):n;e.exports=s},3674:(e,t,r)=>{var n=r(4636),o=r(280),a=r(8612);e.exports=function(e){return a(e)?n(e):o(e)}},8306:(e,t,r)=>{var n=r(3369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=e.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(o.Cache||n),r}o.Cache=n,e.exports=o},9601:(e,t,r)=>{var n=r(371),o=r(9152),a=r(5403),i=r(327);e.exports=function(e){return a(e)?n(i(e)):o(e)}},9734:(e,t,r)=>{var n=r(1078),o=r(2689),a=r(5976),i=r(6612),s=a((function(e,t){if(null==e)return[];var r=t.length;return r>1&&i(e,t[0],t[1])?t=[]:r>2&&i(t[0],t[1],t[2])&&(t=[t[0]]),o(e,n(t,1),[])}));e.exports=s},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},8601:(e,t,r)=>{var n=r(4841);e.exports=function(e){return e?Infinity===(e=n(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,r)=>{var n=r(8601);e.exports=function(e){var t=n(e),r=t%1;return t==t?r?t-r:t:0}},4841:(e,t,r)=>{var n=r(7561),o=r(3218),a=r(3448),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=n(e);var r=s.test(e);return r||l.test(e)?c(e.slice(2),r?2:8):i.test(e)?NaN:+e}},9833:(e,t,r)=>{var n=r(531);e.exports=function(e){return null==e?"":n(e)}},2628:(e,t,r)=>{var n=r(7415),o=r(3674);e.exports=function(e){return null==e?[]:n(e,o(e))}},8490:(e,t,r)=>{"use strict";var n=r(7673),o=r(8575),a=r(7529);const i=parseInt({NODE_ENV:"production"}.PARSE_LINK_HEADER_MAXLEN)||2e3,s=null!={NODE_ENV:"production"}.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED;function l(e){return e&&e.rel}function c(e,t){return t.rel.split(/\s+/).forEach((function(r){e[r]=a(t,{rel:r})})),e}function u(e,t){var r=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return r&&(e[r[1]]=r[2]),e}function f(e){try{var t=e.match(/<?([^>]*)>(.*)/),r=t[1],i=t[2].split(";"),s=o.parse(r),l=n.parse(s.query);i.shift();var c=i.reduce(u,{});return(c=a(l,c)).url=r,c}catch(e){return null}}e.exports=function(e){return function(e){if(!e)return!1;if(e.length>i){if(s)throw new Error("Input string too long, it should be under "+i+" characters.");return!1}return!0}(e)?e.split(/,\s*</).map(f).filter(l).reduce(c,{}):null}},3689:(e,t,r)=>{"use strict";r.r(t),r.d(t,{decode:()=>v,default:()=>w,encode:()=>g,toASCII:()=>b,toUnicode:()=>y,ucs2decode:()=>d,ucs2encode:()=>m});const n=2147483647,o=36,a=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,u=String.fromCharCode;function f(e){throw new RangeError(l[e])}function p(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const o=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(s,".")).split("."),t).join(".");return n+o}function d(e){const t=[];let r=0;const n=e.length;for(;r<n;){const o=e.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){const n=e.charCodeAt(r++);56320==(64512&n)?t.push(((1023&o)<<10)+(1023&n)+65536):(t.push(o),r--)}else t.push(o)}return t}const m=e=>String.fromCodePoint(...e),h=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},_=function(e,t,r){let n=0;for(e=r?c(e/700):e>>1,e+=c(e/t);e>455;n+=o)e=c(e/35);return c(n+36*e/(e+38))},v=function(e){const t=[],r=e.length;let a=0,i=128,s=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let r=0;r<l;++r)e.charCodeAt(r)>=128&&f("not-basic"),t.push(e.charCodeAt(r));for(let p=l>0?l+1:0;p<r;){let l=a;for(let t=1,i=o;;i+=o){p>=r&&f("invalid-input");const l=(u=e.charCodeAt(p++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:o;(l>=o||l>c((n-a)/t))&&f("overflow"),a+=l*t;const d=i<=s?1:i>=s+26?26:i-s;if(l<d)break;const m=o-d;t>c(n/m)&&f("overflow"),t*=m}const d=t.length+1;s=_(a-l,d,0==l),c(a/d)>n-i&&f("overflow"),i+=c(a/d),a%=d,t.splice(a++,0,i)}var u;return String.fromCodePoint(...t)},g=function(e){const t=[];let r=(e=d(e)).length,a=128,i=0,s=72;for(const r of e)r<128&&t.push(u(r));let l=t.length,p=l;for(l&&t.push("-");p<r;){let r=n;for(const t of e)t>=a&&t<r&&(r=t);const d=p+1;r-a>c((n-i)/d)&&f("overflow"),i+=(r-a)*d,a=r;for(const r of e)if(r<a&&++i>n&&f("overflow"),r==a){let e=i;for(let r=o;;r+=o){const n=r<=s?1:r>=s+26?26:r-s;if(e<n)break;const a=e-n,i=o-n;t.push(u(h(n+a%i,0))),e=c(a/i)}t.push(u(h(e,0))),s=_(i,d,p==l),i=0,++p}++i,++a}return t.join("")},y=function(e){return p(e,(function(e){return a.test(e)?v(e.slice(4).toLowerCase()):e}))},b=function(e){return p(e,(function(e){return i.test(e)?"xn--"+g(e):e}))},w={version:"2.1.0",ucs2:{decode:d,encode:m},decode:v,encode:g,toASCII:b,toUnicode:y}},2587:e=>{"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,r,n,o){r=r||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var i=/\+/g;e=e.split(r);var s=1e3;o&&"number"==typeof o.maxKeys&&(s=o.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c<l;++c){var u,f,p,d,m=e[c].replace(i,"%20"),h=m.indexOf(n);h>=0?(u=m.substr(0,h),f=m.substr(h+1)):(u=m,f=""),p=decodeURIComponent(u),d=decodeURIComponent(f),t(a,p)?Array.isArray(a[p])?a[p].push(d):a[p]=[a[p],d]:a[p]=d}return a}},2361:e=>{"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,r,n,o){return r=r||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(o){var a=encodeURIComponent(t(o))+n;return Array.isArray(e[o])?e[o].map((function(e){return a+encodeURIComponent(t(e))})).join(r):a+encodeURIComponent(t(e[o]))})).join(r):o?encodeURIComponent(t(o))+n+encodeURIComponent(t(e)):""}},7673:(e,t,r)=>{"use strict";t.decode=t.parse=r(2587),t.encode=t.stringify=r(2361)},8575:(e,t,r)=>{"use strict";var n=r(3689),o=r(2502);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){return o.isString(e)&&(e=y(e)),e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),f=["%","/","?",";","#"].concat(u),p=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},_={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=r(7673);function y(e,t,r){if(e&&o.isObject(e)&&e instanceof a)return e;var n=new a;return n.parse(e,t,r),n}a.prototype.parse=function(e,t,r){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var y=e=c.join(s);if(y=y.trim(),!r&&1===e.split("#").length){var b=l.exec(y);if(b)return this.path=y,this.href=y,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?g.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=i.exec(y);if(w){var x=(w=w[0]).toLowerCase();this.protocol=x,y=y.substr(w.length)}if(r||w||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var z="//"===y.substr(0,2);!z||w&&_[w]||(y=y.substr(2),this.slashes=!0)}if(!_[w]&&(z||w&&!v[w])){for(var k,O,j=-1,E=0;E<p.length;E++)-1!==(I=y.indexOf(p[E]))&&(-1===j||I<j)&&(j=I);for(-1!==(O=-1===j?y.lastIndexOf("@"):y.lastIndexOf("@",j))&&(k=y.slice(0,O),y=y.slice(O+1),this.auth=decodeURIComponent(k)),j=-1,E=0;E<f.length;E++){var I;-1!==(I=y.indexOf(f[E]))&&(-1===j||I<j)&&(j=I)}-1===j&&(j=y.length),this.host=y.slice(0,j),y=y.slice(j),this.parseHost(),this.hostname=this.hostname||"";var S="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!S)for(var N=this.hostname.split(/\./),L=(E=0,N.length);E<L;E++){var R=N[E];if(R&&!R.match(d)){for(var F="",A=0,T=R.length;A<T;A++)R.charCodeAt(A)>127?F+="x":F+=R[A];if(!F.match(d)){var C=N.slice(0,E),P=N.slice(E+1),D=R.match(m);D&&(C.push(D[1]),P.unshift(D[2])),P.length&&(y="/"+P.join(".")+y),this.hostname=C.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),S||(this.hostname=n.toASCII(this.hostname));var M=this.port?":"+this.port:"",W=this.hostname||"";this.host=W+M,this.href+=this.host,S&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!h[x])for(E=0,L=u.length;E<L;E++){var U=u[E];if(-1!==y.indexOf(U)){var $=encodeURIComponent(U);$===U&&($=escape(U)),y=y.split(U).join($)}}var V=y.indexOf("#");-1!==V&&(this.hash=y.substr(V),y=y.slice(0,V));var B=y.indexOf("?");if(-1!==B?(this.search=y.substr(B),this.query=y.substr(B+1),t&&(this.query=g.parse(this.query)),y=y.slice(0,B)):t&&(this.search="",this.query={}),y&&(this.pathname=y),v[x]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){M=this.pathname||"";var q=this.search||"";this.path=M+q}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",n=this.hash||"",a=!1,i="";this.host?a=e+this.host:this.hostname&&(a=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(a+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(i=g.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||v[t])&&!1!==a?(a="//"+(a||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):a||(a=""),n&&"#"!==n.charAt(0)&&(n="#"+n),s&&"?"!==s.charAt(0)&&(s="?"+s),t+a+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+n},a.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(o.isString(e)){var t=new a;t.parse(e,!1,!0),e=t}for(var r=new a,n=Object.keys(this),i=0;i<n.length;i++){var s=n[i];r[s]=this[s]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),c=0;c<l.length;c++){var u=l[c];"protocol"!==u&&(r[u]=e[u])}return v[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!v[e.protocol]){for(var f=Object.keys(e),p=0;p<f.length;p++){var d=f[p];r[d]=e[d]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||_[e.protocol])r.pathname=e.pathname;else{for(var m=(e.pathname||"").split("/");m.length&&!(e.host=m.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==m[0]&&m.unshift(""),m.length<2&&m.unshift(""),r.pathname=m.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var h=r.pathname||"",g=r.search||"";r.path=h+g}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var y=r.pathname&&"/"===r.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=b||y||r.host&&e.pathname,x=w,z=r.pathname&&r.pathname.split("/")||[],k=(m=e.pathname&&e.pathname.split("/")||[],r.protocol&&!v[r.protocol]);if(k&&(r.hostname="",r.port=null,r.host&&(""===z[0]?z[0]=r.host:z.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===m[0]?m[0]=e.host:m.unshift(e.host)),e.host=null),w=w&&(""===m[0]||""===z[0])),b)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,z=m;else if(m.length)z||(z=[]),z.pop(),z=z.concat(m),r.search=e.search,r.query=e.query;else if(!o.isNullOrUndefined(e.search))return k&&(r.hostname=r.host=z.shift(),(S=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=S.shift(),r.host=r.hostname=S.shift())),r.search=e.search,r.query=e.query,o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!z.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var O=z.slice(-1)[0],j=(r.host||e.host||z.length>1)&&("."===O||".."===O)||""===O,E=0,I=z.length;I>=0;I--)"."===(O=z[I])?z.splice(I,1):".."===O?(z.splice(I,1),E++):E&&(z.splice(I,1),E--);if(!w&&!x)for(;E--;E)z.unshift("..");!w||""===z[0]||z[0]&&"/"===z[0].charAt(0)||z.unshift(""),j&&"/"!==z.join("/").substr(-1)&&z.push("");var S,N=""===z[0]||z[0]&&"/"===z[0].charAt(0);return k&&(r.hostname=r.host=N?"":z.length?z.shift():"",(S=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=S.shift(),r.host=r.hostname=S.shift())),(w=w||r.host&&z.length)&&!N&&z.unshift(""),z.length?r.pathname=z.join("/"):(r.pathname=null,r.path=null),o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},2502:e=>{"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},7529:e=>{e.exports=function(){for(var e={},r=0;r<arguments.length;r++){var n=arguments[r];for(var o in n)t.call(n,o)&&(e[o]=n[o])}return e};var t=Object.prototype.hasOwnProperty},7061:(e,t,r)=>{var n=r(8698).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},r=Object.prototype,a=r.hasOwnProperty,i=Object.defineProperty||function(e,t,r){e[t]=r.value},s="function"==typeof Symbol?Symbol:{},l=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function p(e,t,r,n){var o=t&&t.prototype instanceof h?t:h,a=Object.create(o.prototype),s=new I(n||[]);return i(a,"_invoke",{value:k(e,r,s)}),a}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=p;var m={};function h(){}function _(){}function v(){}var g={};f(g,l,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(S([])));b&&b!==r&&a.call(b,l)&&(g=b);var w=v.prototype=h.prototype=Object.create(g);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function z(e,t){function r(o,i,s,l){var c=d(e[o],e,i);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==n(f)&&a.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,s,l)}),(function(e){r("throw",e,s,l)})):t.resolve(f).then((function(e){u.value=e,s(u)}),(function(e){return r("throw",e,s,l)}))}l(c.arg)}var o;i(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,o){r(e,n,t,o)}))}return o=o?o.then(a,a):a()}})}function k(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=O(i,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=d(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===m)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function O(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,O(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var o=d(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,m;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function j(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function S(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(a.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return n.next=n}}return{next:N}}function N(){return{value:void 0,done:!0}}return _.prototype=v,i(w,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:_,configurable:!0}),_.displayName=f(v,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===_||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,f(e,u,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},x(z.prototype),f(z.prototype,c,(function(){return this})),t.AsyncIterator=z,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new z(p(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(w),f(w,u,"Generator"),f(w,l,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=S,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=a.call(o,"catchLoc"),l=a.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),E(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:S(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),m}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},8698:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},4687:(e,t,r)=>{var n=r(7061)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";function e(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function t(t){return function(){var r=this,n=arguments;return new Promise((function(o,a){var i=t.apply(r,n);function s(t){e(i,o,a,s,l,"next",t)}function l(t){e(i,o,a,s,l,"throw",t)}s(void 0)}))}}var n=r(4687),o=r.n(n),a=r(9483),i=r.n(a);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!==s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"===s(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c=r(5573),u=r.n(c),f=(r(8490),r(4721)),p=r.n(f),d=(r(9734),r(3105),["like","mention","repeat","pleroma:emoji_reaction","poll"]),m=function(e){return p()(d,e)},h=function(e,t){var r,n={tag:e.id},o=e.status,a=e.from_profile.name;switch(n.title=a,n.icon=e.from_profile.profile_image_url,e.type){case"like":r="favorited_you";break;case"repeat":r="repeated_you";break;case"follow":r="followed_you";break;case"move":r="migrated_to";break;case"follow_request":r="follow_request";break;case"pleroma:report":r="submitted_report";break;case"poll":r="poll_ended"}return"pleroma:emoji_reaction"===e.type?n.body=t.t("notifications.reacted_with",[e.emoji]):r?n.body=t.t("notifications."+r):m(e.type)&&(n.body=e.status.text),o&&o.attachments&&o.attachments.length>0&&!o.nsfw&&o.attachments[0].mimetype.startsWith("image/")&&(n.image=o.attachments[0].url),n};const _=2147483647,v=36,g=/^xn--/,y=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},w=Math.floor;String.fromCharCode;function x(e){throw new RangeError(b[e])}function z(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const o=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(y,".")).split("."),t).join(".");return n+o}const k=function(e,t,r){let n=0;for(e=r?w(e/700):e>>1,e+=w(e/t);e>455;n+=v)e=w(e/35);return w(n+36*e/(e+38))},O=function(e){const t=[],r=e.length;let n=0,o=128,a=72,i=e.lastIndexOf("-");i<0&&(i=0);for(let r=0;r<i;++r)e.charCodeAt(r)>=128&&x("not-basic"),t.push(e.charCodeAt(r));for(let l=i>0?i+1:0;l<r;){const i=n;for(let t=1,o=v;;o+=v){l>=r&&x("invalid-input");const i=(s=e.charCodeAt(l++))>=48&&s<58?s-48+26:s>=65&&s<91?s-65:s>=97&&s<123?s-97:v;i>=v&&x("invalid-input"),i>w((_-n)/t)&&x("overflow"),n+=i*t;const c=o<=a?1:o>=a+26?26:o-a;if(i<c)break;const u=v-c;t>w(_/u)&&x("overflow"),t*=u}const c=t.length+1;a=k(n-i,c,0==i),w(n/c)>_-o&&x("overflow"),o+=w(n/c),n%=c,t.splice(n++,0,o)}var s;return String.fromCodePoint(...t)},j=function(e){return z(e,(function(e){return g.test(e)?O(e.slice(4).toLowerCase()):e}))};function E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function I(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?E(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var S=function(e){var t={},r=Object.prototype.hasOwnProperty.call(e,"acct"),n=r&&!Object.prototype.hasOwnProperty.call(e,"avatar");if(t.inLists=null,t.id=String(e.id),t._original=e,r){if(t.screen_name=e.acct,t.fqn=e.fqn,t.statusnet_profile_url=e.url,n)return t;if(t.emoji=e.emojis,t.name=u()(e.display_name),t.name_html=t.name,t.name_unescaped=e.display_name,t.description=e.note,t.description_html=e.note,t.fields=e.fields,t.fields_html=e.fields.map((function(e){return{name:u()(e.name),value:e.value}})),t.fields_text=e.fields.map((function(e){return{name:unescape(e.name.replace(/<[^>]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){e.pleroma.settings_store&&(t.storage=e.pleroma.settings_store["pleroma-fe"]);var o=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,o&&(t.relationship=o),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member",t.birthday=e.pleroma.birthday,e.pleroma.privileges?t.privileges=e.pleroma.privileges:e.pleroma.is_admin?t.privileges=["users_read","users_manage_invites","users_manage_activation_state","users_manage_tags","users_manage_credentials","users_delete","messages_read","messages_delete","instances_delete","reports_manage_reports","moderation_log_read","announcements_manage_announcements","emoji_manage_emoji","statistics_read"]:e.pleroma.is_moderator?t.privileges=["messages_delete","reports_manage_reports"]:t.privileges=[]}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable,t.show_birthday=e.pleroma.show_birthday)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var a=t.screen_name.split("@"),i=j(a[1]);i!==a[1]?(t.screen_name_ui_contains_non_ascii=!0,t.screen_name_ui=[a[0],i].join("@")):t.screen_name_ui_contains_non_ascii=!1}return t},N=function(e){var t={};return Object.prototype.hasOwnProperty.call(e,"oembed")?t.mimetype=e.mimetype:(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id),t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},L=function e(t){var r,n={},o=Object.prototype.hasOwnProperty.call(t,"account");if(o){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,n.edited_at=t.edited_at,t.pleroma){var a=t.pleroma;n.text=a.content?t.pleroma.content["text/plain"]:t.content,n.summary=a.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=a.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=a.thread_muted,n.emoji_reactions=a.emoji_reactions,n.parent_visible=void 0===a.parent_visible||a.parent_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=u()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return I(I({},e),{},{title_html:u()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=(r=t).is_post_verb?"status":r.retweeted_status?"retweet":"string"==typeof r.uri&&r.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof r.text&&r.text.match(/favorited/)?"favorite":r.text.match(/deleted notice {{tag/)||r.qvitter_delete_notice?"deletion":r.text.match(/started following/)||"follow"===r.activity_type?"follow":"unknown",void 0===t.nsfw?(n.nsfw=F(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=S(o?t.account:t.user),n.attentions=((o?t.mentions:t.attentions)||[]).map(S),n.attachments=((o?t.media_attachments:t.attachments)||[]).map(N);var i=o?t.reblog:t.retweeted_status;return i&&(n.retweeted_status=e(i)),n.favoritedBy=[],n.rebloggedBy=[],Object.prototype.hasOwnProperty.call(t,"originalStatus")&&Object.assign(n,t.originalStatus),n},R=function(e){var t={};if(Object.prototype.hasOwnProperty.call(e,"ntype")){var r=L(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?L(e.notice.favorited_status):r,t.action=r,t.from_profile="pleroma:chat_mention"===t.type?S(e.account):S(e.from_profile)}else t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=m(t.type)?L(e.status):null,t.action=t.status,t.target="move"!==t.type?null:S(e.target),t.from_profile=S(e.account),t.emoji=e.emoji,e.report&&(t.report=e.report,t.report.content=e.report.content,t.report.acct=S(e.report.account),t.report.actor=S(e.report.actor),t.report.statuses=e.report.statuses.map(L));return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},F=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)};const A="undefined"!=typeof window,T="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,C=e=>T?Symbol(e):e,P=e=>"number"==typeof e&&isFinite(e),D=e=>"[object RegExp]"===Z(e),M=e=>ee(e)&&0===Object.keys(e).length;function W(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const U=Object.assign;let $;const V=()=>$||($="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==r.g?r.g:{});function B(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const q=Object.prototype.hasOwnProperty;function H(e,t){return q.call(e,t)}const G=Array.isArray,Y=e=>"function"==typeof e,X=e=>"string"==typeof e,K=e=>"boolean"==typeof e,J=e=>null!==e&&"object"==typeof e,Q=Object.prototype.toString,Z=e=>Q.call(e),ee=e=>"[object Object]"===Z(e);function te(e,t,r={}){const{domain:n,messages:o,args:a}=r,i=new SyntaxError(String(e));return i.code=e,t&&(i.location=t),i.domain=n,i}String.fromCharCode(8232),String.fromCharCode(8233);const re=[];re[0]={w:[0],i:[3,0],"[":[4],o:[7]},re[1]={w:[1],".":[2],"[":[4],o:[7]},re[2]={w:[2],i:[3,0],0:[3,0]},re[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},re[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},re[5]={"'":[4,0],o:8,l:[5,0]},re[6]={'"':[4,0],o:8,l:[6,0]};const ne=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function oe(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}const ae=new Map;function ie(e,t){return J(e)?e[t]:null}const se=e=>e,le=e=>"",ce=e=>0===e.length?"":e.join(""),ue=e=>null==e?"":G(e)||ee(e)&&e.toString===Q?JSON.stringify(e,null,2):String(e);function fe(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}let pe=null;const de=me("function:translate");function me(e){return t=>pe&&pe.emit(e,t)}function he(e,t,r){return[...new Set([r,...G(t)?t:J(t)?Object.keys(t):X(t)?[t]:[r]])]}function _e(e,t,r){const n=X(r)?r:be,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let a=o.__localeChainCache.get(n);if(!a){a=[];let e=[r];for(;G(e);)e=ve(a,e,t);const i=G(t)||!ee(t)?t:t.default?t.default:null;e=X(i)?[i]:i,G(e)&&ve(a,e,!1),o.__localeChainCache.set(n,a)}return a}function ve(e,t,r){let n=!0;for(let o=0;o<t.length&&K(n);o++){const a=t[o];X(a)&&(n=ge(e,t[o],r))}return n}function ge(e,t,r){let n;const o=t.split("-");do{n=ye(e,o.join("-"),r),o.splice(-1,1)}while(o.length&&!0===n);return n}function ye(e,t,r){let n=!1;if(!e.includes(t)&&(n=!0,t)){n="!"!==t[t.length-1];const o=t.replace(/!/g,"");e.push(o),(G(r)||ee(r))&&r[o]&&(n=r[o])}return n}const be="en-US",we=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;let xe,ze,ke=null;const Oe=e=>{ke=e};let je=null;const Ee=e=>{je=e};let Ie=0;function Se(e,t,r,n,o){const{missing:a,onWarn:i}=e;if(null!==a){const n=a(e,r,t,o);return X(n)?n:t}return t}function Ne(e,t,r){e.__localeChainCache=new Map,e.localeFallbacker(e,r,t)}Object.create(null);let Le=15;const Re=()=>++Le,Fe={INVALID_ARGUMENT:Le,INVALID_DATE_ARGUMENT:Re(),INVALID_ISO_DATE_ARGUMENT:Re(),__EXTEND_POINT__:Re()};function Ae(e){return te(e,null,void 0)}const Te=()=>"",Ce=e=>Y(e);function Pe(e,...t){const{fallbackFormat:r,postTranslation:n,unresolving:o,messageCompiler:a,fallbackLocale:i,messages:s}=e,[l,c]=We(...t),u=(K(c.missingWarn)?c.missingWarn:e.missingWarn,K(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,K(c.escapeParameter)?c.escapeParameter:e.escapeParameter),f=!!c.resolvedMessage,p=X(c.default)||K(c.default)?K(c.default)?a?l:()=>l:c.default:r?a?l:()=>l:"",d=r||""!==p,m=X(c.locale)?c.locale:e.locale;u&&function(e){G(e.list)?e.list=e.list.map((e=>X(e)?B(e):e)):J(e.named)&&Object.keys(e.named).forEach((t=>{X(e.named[t])&&(e.named[t]=B(e.named[t]))}))}(c);let[h,_,v]=f?[l,m,s[m]||{}]:De(e,l,m,i),g=h,y=l;if(f||X(g)||Ce(g)||d&&(g=p,y=g),!(f||(X(g)||Ce(g))&&X(_)))return o?-1:l;let b=!1;const w=Ce(g)?g:Me(e,l,_,g,y,(()=>{b=!0}));if(b)return g;const x=function(e,t,r,n){const{modifiers:o,pluralRules:a,messageResolver:i,fallbackLocale:s,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:o,pluralRules:a,messages:n=>{let o=i(r,n);if(null==o&&u){const[,,e]=De(u,n,t,s);o=i(e,n)}if(X(o)){let r=!1;const a=Me(e,n,t,o,n,(()=>{r=!0}));return r?Te:a}return Ce(o)?o:Te}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),P(n.plural)&&(f.pluralIndex=n.plural),f}(e,_,v,c),z=function(e,t,r){return t(r)}(0,w,function(e={}){const t=e.locale,r=function(e){const t=P(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(P(e.named.count)||P(e.named.n))?P(e.named.count)?e.named.count:P(e.named.n)?e.named.n:t:t}(e),n=J(e.pluralRules)&&X(t)&&Y(e.pluralRules[t])?e.pluralRules[t]:fe,o=J(e.pluralRules)&&X(t)&&Y(e.pluralRules[t])?fe:void 0,a=e.list||[],i=e.named||{};function s(t){return(Y(e.messages)?e.messages(t):!!J(e.messages)&&e.messages[t])||(e.parent?e.parent.message(t):le)}P(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(r,i);const l=ee(e.processor)&&Y(e.processor.normalize)?e.processor.normalize:ce,c=ee(e.processor)&&Y(e.processor.interpolate)?e.processor.interpolate:ue,u={list:e=>a[e],named:e=>i[e],plural:e=>e[n(r,e.length,o)],linked:(t,...r)=>{const[n,o]=r;let a="text",i="";1===r.length?J(n)?(i=n.modifier||i,a=n.type||a):X(n)&&(i=n||i):2===r.length&&(X(n)&&(i=n||i),X(o)&&(a=o||a));let l=s(t)(u);return"vnode"===a&&G(l)&&i&&(l=l[0]),i?(c=i,e.modifiers?e.modifiers[c]:se)(l,a):l;var c},message:s,type:ee(e.processor)&&X(e.processor.type)?e.processor.type:"text",interpolate:c,normalize:l};return u}(x)),k=n?n(z,l):z;if(__INTLIFY_PROD_DEVTOOLS__){const t={timestamp:Date.now(),key:X(l)?l:Ce(g)?g.key:"",locale:_||(Ce(g)?g.locale:""),format:X(g)?g:Ce(g)?g.source:"",message:k};t.meta=U({},e.__meta,ke||{}),de(t)}return k}function De(e,t,r,n,o,a){const{messages:i,onWarn:s,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,r);let f,p={},d=null,m=r,h=null;for(let r=0;r<u.length&&(f=h=u[r],p=i[f]||{},null===(d=l(p,t))&&(d=p[t]),!X(d)&&!Y(d));r++){const r=Se(e,t,f,0,"translate");r!==t&&(d=r),m=h}return[d,f,p]}function Me(e,t,r,n,o,a){const{messageCompiler:i,warnHtmlMessage:s}=e;if(Ce(n)){const e=n;return e.locale=e.locale||r,e.key=e.key||t,e}if(null==i){const e=()=>n;return e.locale=r,e.key=t,e}const l=i(n,function(e,t,r,n,o,a){return{warnHtmlMessage:o,onError:e=>{throw a&&a(e),e},onCacheKey:e=>((e,t,r)=>{return n={l:e,k:t,s:r},JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027");var n})(t,r,e)}}(0,r,o,0,s,a));return l.locale=r,l.key=t,l.source=n,l}function We(...e){const[t,r,n]=e,o={};if(!X(t)&&!P(t)&&!Ce(t))throw Ae(Fe.INVALID_ARGUMENT);const a=P(t)?String(t):(Ce(t),t);return P(r)?o.plural=r:X(r)?o.default=r:ee(r)&&!M(r)?o.named=r:G(r)&&(o.list=r),P(n)?o.plural=n:X(n)?o.default=n:ee(n)&&U(o,n),[a,o]}const Ue="undefined"!=typeof Intl;function $e(e,...t){const{datetimeFormats:r,unresolving:n,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__datetimeFormatters:s}=e,[l,c,u,f]=Be(...t),p=(K(u.missingWarn)?u.missingWarn:e.missingWarn,K(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,!!u.part),d=X(u.locale)?u.locale:e.locale,m=i(e,o,d);if(!X(l)||""===l)return new Intl.DateTimeFormat(d,f).format(c);let h,_={},v=null,g=d,y=null;for(let t=0;t<m.length&&(h=y=m[t],_=r[h]||{},v=_[l],!ee(v));t++)Se(e,l,h,0,"datetime format"),g=y;if(!ee(v)||!X(h))return n?-1:l;let b=`${h}__${l}`;M(f)||(b=`${b}__${JSON.stringify(f)}`);let w=s.get(b);return w||(w=new Intl.DateTimeFormat(h,U({},v,f)),s.set(b,w)),p?w.formatToParts(c):w.format(c)}Ue&&Intl.DateTimeFormat,Ue&&Intl.NumberFormat;const Ve=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Be(...e){const[t,r,n,o]=e,a={};let i,s={};if(X(t)){const e=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!e)throw Ae(Fe.INVALID_ISO_DATE_ARGUMENT);const r=e[3]?e[3].trim().startsWith("T")?`${e[1].trim()}${e[3].trim()}`:`${e[1].trim()}T${e[3].trim()}`:e[1].trim();i=new Date(r);try{i.toISOString()}catch(e){throw Ae(Fe.INVALID_ISO_DATE_ARGUMENT)}}else if("[object Date]"===Z(t)){if(isNaN(t.getTime()))throw Ae(Fe.INVALID_DATE_ARGUMENT);i=t}else{if(!P(t))throw Ae(Fe.INVALID_ARGUMENT);i=t}return X(r)?a.key=r:ee(r)&&Object.keys(r).forEach((e=>{Ve.includes(e)?s[e]=r[e]:a[e]=r[e]})),X(n)?a.locale=n:ee(n)&&(s=n),ee(o)&&(s=o),[a.key||"",i,a,s]}function qe(e,t,r){const n=e;for(const e in r){const r=`${t}__${e}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function He(e,...t){const{numberFormats:r,unresolving:n,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__numberFormatters:s}=e,[l,c,u,f]=Ye(...t),p=(K(u.missingWarn)?u.missingWarn:e.missingWarn,K(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,!!u.part),d=X(u.locale)?u.locale:e.locale,m=i(e,o,d);if(!X(l)||""===l)return new Intl.NumberFormat(d,f).format(c);let h,_={},v=null,g=d,y=null;for(let t=0;t<m.length&&(h=y=m[t],_=r[h]||{},v=_[l],!ee(v));t++)Se(e,l,h,0,"number format"),g=y;if(!ee(v)||!X(h))return n?-1:l;let b=`${h}__${l}`;M(f)||(b=`${b}__${JSON.stringify(f)}`);let w=s.get(b);return w||(w=new Intl.NumberFormat(h,U({},v,f)),s.set(b,w)),p?w.formatToParts(c):w.format(c)}const Ge=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Ye(...e){const[t,r,n,o]=e,a={};let i={};if(!P(t))throw Ae(Fe.INVALID_ARGUMENT);const s=t;return X(r)?a.key=r:ee(r)&&Object.keys(r).forEach((e=>{Ge.includes(e)?i[e]=r[e]:a[e]=r[e]})),X(n)?a.locale=n:ee(n)&&(i=n),ee(o)&&(i=o),[a.key||"",s,a,i]}function Xe(e,t,r){const n=e;for(const e in r){const r=`${t}__${e}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}function Ke(e,t){const r=Object.create(null),n=e.split(",");for(let e=0;e<n.length;e++)r[n[e]]=!0;return t?e=>!!r[e.toLowerCase()]:e=>!!r[e]}function Je(e){if(ut(e)){const t={};for(let r=0;r<e.length;r++){const n=e[r],o=dt(n)?tt(n):Je(n);if(o)for(const e in o)t[e]=o[e]}return t}return dt(e)||ht(e)?e:void 0}"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(V().__INTLIFY_PROD_DEVTOOLS__=!1);const Qe=/;(?![^(]*\))/g,Ze=/:([^]+)/,et=/\/\*.*?\*\//gs;function tt(e){const t={};return e.replace(et,"").split(Qe).forEach((e=>{if(e){const r=e.split(Ze);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}function rt(e){let t="";if(dt(e))t=e;else if(ut(e))for(let r=0;r<e.length;r++){const n=rt(e[r]);n&&(t+=n+" ")}else if(ht(e))for(const r in e)e[r]&&(t+=r+" ");return t.trim()}const nt={},ot=()=>{},at=/^on[^a-z]/,it=e=>at.test(e),st=Object.assign,lt=Object.prototype.hasOwnProperty,ct=(e,t)=>lt.call(e,t),ut=Array.isArray,ft=e=>"[object Map]"===vt(e),pt=e=>"function"==typeof e,dt=e=>"string"==typeof e,mt=e=>"symbol"==typeof e,ht=e=>null!==e&&"object"==typeof e,_t=Object.prototype.toString,vt=e=>_t.call(e),gt=e=>dt(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,yt=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},bt=/-(\w)/g,wt=(yt((e=>e.replace(bt,((e,t)=>t?t.toUpperCase():"")))),/\B([A-Z])/g),xt=(yt((e=>e.replace(wt,"-$1").toLowerCase())),yt((e=>e.charAt(0).toUpperCase()+e.slice(1)))),zt=(yt((e=>e?`on${xt(e)}`:"")),(e,t)=>!Object.is(e,t));let kt;class Ot{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=kt,!e&&kt&&(this.index=(kt.scopes||(kt.scopes=[])).push(this)-1)}run(e){if(this.active){const t=kt;try{return kt=this,e()}finally{kt=t}}}on(){kt=this}off(){kt=this.parent}stop(e){if(this.active){let t,r;for(t=0,r=this.effects.length;t<r;t++)this.effects[t].stop();for(t=0,r=this.cleanups.length;t<r;t++)this.cleanups[t]();if(this.scopes)for(t=0,r=this.scopes.length;t<r;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this.active=!1}}}const jt=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Et=e=>(e.w&Rt)>0,It=e=>(e.n&Rt)>0,St=new WeakMap;let Nt,Lt=0,Rt=1;const Ft=Symbol(""),At=Symbol("");class Tt{constructor(e,t=null,r){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t=kt){t&&t.active&&t.effects.push(e)}(this,r)}run(){if(!this.active)return this.fn();let e=Nt,t=Pt;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=Nt,Nt=this,Pt=!0,Rt=1<<++Lt,Lt<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=Rt})(this):Ct(this),this.fn()}finally{Lt<=30&&(e=>{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n<t.length;n++){const o=t[n];Et(o)&&!It(o)?o.delete(e):t[r++]=o,o.w&=~Rt,o.n&=~Rt}t.length=r}})(this),Rt=1<<--Lt,Nt=this.parent,Pt=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){Nt===this?this.deferStop=!0:this.active&&(Ct(this),this.onStop&&this.onStop(),this.active=!1)}}function Ct(e){const{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}let Pt=!0;const Dt=[];function Mt(){Dt.push(Pt),Pt=!1}function Wt(){const e=Dt.pop();Pt=void 0===e||e}function Ut(e,t,r){if(Pt&&Nt){let t=St.get(e);t||St.set(e,t=new Map);let n=t.get(r);n||t.set(r,n=jt()),$t(n)}}function $t(e,t){let r=!1;Lt<=30?It(e)||(e.n|=Rt,r=!Et(e)):r=!e.has(Nt),r&&(e.add(Nt),Nt.deps.push(e))}function Vt(e,t,r,n,o,a){const i=St.get(e);if(!i)return;let s=[];if("clear"===t)s=[...i.values()];else if("length"===r&&ut(e)){const e=(e=>{const t=parseFloat(e);return isNaN(t)?e:t})(n);i.forEach(((t,r)=>{("length"===r||r>=e)&&s.push(t)}))}else switch(void 0!==r&&s.push(i.get(r)),t){case"add":ut(e)?gt(r)&&s.push(i.get("length")):(s.push(i.get(Ft)),ft(e)&&s.push(i.get(At)));break;case"delete":ut(e)||(s.push(i.get(Ft)),ft(e)&&s.push(i.get(At)));break;case"set":ft(e)&&s.push(i.get(Ft))}if(1===s.length)s[0]&&Bt(s[0]);else{const e=[];for(const t of s)t&&e.push(...t);Bt(jt(e))}}function Bt(e,t){const r=ut(e)?e:[...e];for(const e of r)e.computed&&qt(e);for(const e of r)e.computed||qt(e)}function qt(e,t){(e!==Nt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Ht=Ke("__proto__,__v_isRef,__isVue"),Gt=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(mt)),Yt=Qt(),Xt=Qt(!0),Kt=Jt();function Jt(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const r=Fr(this);for(let e=0,t=this.length;e<t;e++)Ut(r,0,e+"");const n=r[t](...e);return-1===n||!1===n?r[t](...e.map(Fr)):n}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){Mt();const r=Fr(this)[t].apply(this,e);return Wt(),r}})),e}function Qt(e=!1,t=!1){return function(r,n,o){if("__v_isReactive"===n)return!e;if("__v_isReadonly"===n)return e;if("__v_isShallow"===n)return t;if("__v_raw"===n&&o===(e?t?Or:kr:t?zr:xr).get(r))return r;const a=ut(r);if(!e&&a&&ct(Kt,n))return Reflect.get(Kt,n,o);const i=Reflect.get(r,n,o);return(mt(n)?Gt.has(n):Ht(n))?i:(e||Ut(r,0,n),t?i:Mr(i)?a&&gt(n)?i:i.value:ht(i)?e?Er(i):jr(i):i)}}function Zt(e=!1){return function(t,r,n,o){let a=t[r];if(Nr(a)&&Mr(a)&&!Mr(n))return!1;if(!e&&(Lr(n)||Nr(n)||(a=Fr(a),n=Fr(n)),!ut(t)&&Mr(a)&&!Mr(n)))return a.value=n,!0;const i=ut(t)&&gt(r)?Number(r)<t.length:ct(t,r),s=Reflect.set(t,r,n,o);return t===Fr(o)&&(i?zt(n,a)&&Vt(t,"set",r,n):Vt(t,"add",r,n)),s}}const er={get:Yt,set:Zt(),deleteProperty:function(e,t){const r=ct(e,t),n=(e[t],Reflect.deleteProperty(e,t));return n&&r&&Vt(e,"delete",t,void 0),n},has:function(e,t){const r=Reflect.has(e,t);return mt(t)&&Gt.has(t)||Ut(e,0,t),r},ownKeys:function(e){return Ut(e,0,ut(e)?"length":Ft),Reflect.ownKeys(e)}},tr={get:Xt,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},rr=e=>e,nr=e=>Reflect.getPrototypeOf(e);function or(e,t,r=!1,n=!1){const o=Fr(e=e.__v_raw),a=Fr(t);r||(t!==a&&Ut(o,0,t),Ut(o,0,a));const{has:i}=nr(o),s=n?rr:r?Cr:Tr;return i.call(o,t)?s(e.get(t)):i.call(o,a)?s(e.get(a)):void(e!==o&&e.get(t))}function ar(e,t=!1){const r=this.__v_raw,n=Fr(r),o=Fr(e);return t||(e!==o&&Ut(n,0,e),Ut(n,0,o)),e===o?r.has(e):r.has(e)||r.has(o)}function ir(e,t=!1){return e=e.__v_raw,!t&&Ut(Fr(e),0,Ft),Reflect.get(e,"size",e)}function sr(e){e=Fr(e);const t=Fr(this);return nr(t).has.call(t,e)||(t.add(e),Vt(t,"add",e,e)),this}function lr(e,t){t=Fr(t);const r=Fr(this),{has:n,get:o}=nr(r);let a=n.call(r,e);a||(e=Fr(e),a=n.call(r,e));const i=o.call(r,e);return r.set(e,t),a?zt(t,i)&&Vt(r,"set",e,t):Vt(r,"add",e,t),this}function cr(e){const t=Fr(this),{has:r,get:n}=nr(t);let o=r.call(t,e);o||(e=Fr(e),o=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return o&&Vt(t,"delete",e,void 0),a}function ur(){const e=Fr(this),t=0!==e.size,r=e.clear();return t&&Vt(e,"clear",void 0,void 0),r}function fr(e,t){return function(r,n){const o=this,a=o.__v_raw,i=Fr(a),s=t?rr:e?Cr:Tr;return!e&&Ut(i,0,Ft),a.forEach(((e,t)=>r.call(n,s(e),s(t),o)))}}function pr(e,t,r){return function(...n){const o=this.__v_raw,a=Fr(o),i=ft(a),s="entries"===e||e===Symbol.iterator&&i,l="keys"===e&&i,c=o[e](...n),u=r?rr:t?Cr:Tr;return!t&&Ut(a,0,l?At:Ft),{next(){const{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function dr(e){return function(...t){return"delete"!==e&&this}}function mr(){const e={get(e){return or(this,e)},get size(){return ir(this)},has:ar,add:sr,set:lr,delete:cr,clear:ur,forEach:fr(!1,!1)},t={get(e){return or(this,e,!1,!0)},get size(){return ir(this)},has:ar,add:sr,set:lr,delete:cr,clear:ur,forEach:fr(!1,!0)},r={get(e){return or(this,e,!0)},get size(){return ir(this,!0)},has(e){return ar.call(this,e,!0)},add:dr("add"),set:dr("set"),delete:dr("delete"),clear:dr("clear"),forEach:fr(!0,!1)},n={get(e){return or(this,e,!0,!0)},get size(){return ir(this,!0)},has(e){return ar.call(this,e,!0)},add:dr("add"),set:dr("set"),delete:dr("delete"),clear:dr("clear"),forEach:fr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((o=>{e[o]=pr(o,!1,!1),r[o]=pr(o,!0,!1),t[o]=pr(o,!1,!0),n[o]=pr(o,!0,!0)})),[e,r,t,n]}const[hr,_r,vr,gr]=mr();function yr(e,t){const r=t?e?gr:vr:e?_r:hr;return(t,n,o)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(ct(r,n)&&n in t?r:t,n,o)}const br={get:yr(!1,!1)},wr={get:yr(!0,!1)},xr=new WeakMap,zr=new WeakMap,kr=new WeakMap,Or=new WeakMap;function jr(e){return Nr(e)?e:Ir(e,!1,er,br,xr)}function Er(e){return Ir(e,!0,tr,wr,kr)}function Ir(e,t,r,n,o){if(!ht(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const a=o.get(e);if(a)return a;const i=(s=e).__v_skip||!Object.isExtensible(s)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>vt(e).slice(8,-1))(s));var s;if(0===i)return e;const l=new Proxy(e,2===i?n:r);return o.set(e,l),l}function Sr(e){return Nr(e)?Sr(e.__v_raw):!(!e||!e.__v_isReactive)}function Nr(e){return!(!e||!e.__v_isReadonly)}function Lr(e){return!(!e||!e.__v_isShallow)}function Rr(e){return Sr(e)||Nr(e)}function Fr(e){const t=e&&e.__v_raw;return t?Fr(t):e}function Ar(e){return((e,t,r)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})})(e,"__v_skip",!0),e}const Tr=e=>ht(e)?jr(e):e,Cr=e=>ht(e)?Er(e):e;function Pr(e){Pt&&Nt&&$t((e=Fr(e)).dep||(e.dep=jt()))}function Dr(e,t){(e=Fr(e)).dep&&Bt(e.dep)}function Mr(e){return!(!e||!0!==e.__v_isRef)}function Wr(e){return Ur(e,!1)}function Ur(e,t){return Mr(e)?e:new $r(e,t)}class $r{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:Fr(e),this._value=t?e:Tr(e)}get value(){return Pr(this),this._value}set value(e){const t=this.__v_isShallow||Lr(e)||Nr(e);e=t?e:Fr(e),zt(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:Tr(e),Dr(this))}}const Vr={get:(e,t,r)=>{return Mr(n=Reflect.get(e,t,r))?n.value:n;var n},set:(e,t,r,n)=>{const o=e[t];return Mr(o)&&!Mr(r)?(o.value=r,!0):Reflect.set(e,t,r,n)}};var Br;class qr{constructor(e,t,r,n){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[Br]=!1,this._dirty=!0,this.effect=new Tt(e,(()=>{this._dirty||(this._dirty=!0,Dr(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!n,this.__v_isReadonly=r}get value(){const e=Fr(this);return Pr(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Hr(e,t,r,n){let o;try{o=n?e(...n):e()}catch(e){Yr(e,t,r)}return o}function Gr(e,t,r,n){if(pt(e)){const a=Hr(e,t,r,n);return a&&(ht(o=a)&&pt(o.then)&&pt(o.catch))&&a.catch((e=>{Yr(e,t,r)})),a}var o;const a=[];for(let o=0;o<e.length;o++)a.push(Gr(e[o],t,r,n));return a}function Yr(e,t,r,n=!0){if(t&&t.vnode,t){let n=t.parent;const o=t.proxy,a=r;for(;n;){const t=n.ec;if(t)for(let r=0;r<t.length;r++)if(!1===t[r](e,o,a))return;n=n.parent}const i=t.appContext.config.errorHandler;if(i)return void Hr(i,null,10,[e,o,a])}!function(e,t,r,n=!0){console.error(e)}(e,0,0,n)}Br="__v_isReadonly";let Xr=!1,Kr=!1;const Jr=[];let Qr=0;const Zr=[];let en=null,tn=0;const rn=Promise.resolve();let nn=null;function on(e){const t=nn||rn;return e?t.then(this?e.bind(this):e):t}function an(e){Jr.length&&Jr.includes(e,Xr&&e.allowRecurse?Qr+1:Qr)||(null==e.id?Jr.push(e):Jr.splice(function(e){let t=Qr+1,r=Jr.length;for(;t<r;){const n=t+r>>>1;ln(Jr[n])<e?t=n+1:r=n}return t}(e.id),0,e),sn())}function sn(){Xr||Kr||(Kr=!0,nn=rn.then(un))}const ln=e=>null==e.id?1/0:e.id,cn=(e,t)=>{const r=ln(e)-ln(t);if(0===r){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function un(e){Kr=!1,Xr=!0,Jr.sort(cn);try{for(Qr=0;Qr<Jr.length;Qr++){const e=Jr[Qr];e&&!1!==e.active&&Hr(e,null,14)}}finally{Qr=0,Jr.length=0,function(e){if(Zr.length){const e=[...new Set(Zr)];if(Zr.length=0,en)return void en.push(...e);for(en=e,en.sort(((e,t)=>ln(e)-ln(t))),tn=0;tn<en.length;tn++)en[tn]();en=null,tn=0}}(),Xr=!1,nn=null,(Jr.length||Zr.length)&&un(e)}}new Set,new Map;let fn=null;function pn(e,t,r=!1){const n=Vn||fn;if(n){const o=null==n.parent?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return r&&pt(t)?t.call(n.proxy):t}}const dn={};function mn(e,t,r){return hn(e,t,r)}function hn(e,t,{immediate:r,deep:n,flush:o,onTrack:a,onTrigger:i}=nt){const s=Vn;let l,c,u=!1,f=!1;if(Mr(e)?(l=()=>e.value,u=Lr(e)):Sr(e)?(l=()=>e,n=!0):ut(e)?(f=!0,u=e.some((e=>Sr(e)||Lr(e))),l=()=>e.map((e=>Mr(e)?e.value:Sr(e)?vn(e):pt(e)?Hr(e,s,2):void 0))):l=pt(e)?t?()=>Hr(e,s,2):()=>{if(!s||!s.isUnmounted)return c&&c(),Gr(e,s,3,[d])}:ot,t&&n){const e=l;l=()=>vn(e())}let p,d=e=>{c=v.onStop=()=>{Hr(e,s,4)}};if(Gn){if(d=ot,t?r&&Gr(t,s,3,[l(),f?[]:void 0,d]):l(),"sync"!==o)return ot;{const e=Jn();p=e.__watcherHandles||(e.__watcherHandles=[])}}let m=f?new Array(e.length).fill(dn):dn;const h=()=>{if(v.active)if(t){const e=v.run();(n||u||(f?e.some(((e,t)=>zt(e,m[t]))):zt(e,m)))&&(c&&c(),Gr(t,s,3,[e,m===dn?void 0:f&&m[0]===dn?[]:m,d]),m=e)}else v.run()};let _;h.allowRecurse=!!t,"sync"===o?_=h:"post"===o?_=()=>Ln(h,s&&s.suspense):(h.pre=!0,s&&(h.id=s.uid),_=()=>an(h));const v=new Tt(l,_);t?r?h():m=v.run():"post"===o?Ln(v.run.bind(v),s&&s.suspense):v.run();const g=()=>{v.stop(),s&&s.scope&&((e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)})(s.scope.effects,v)};return p&&p.push(g),g}function _n(e,t,r){const n=this.proxy,o=dt(e)?e.includes(".")?function(e,t){const r=t.split(".");return()=>{let t=e;for(let e=0;e<r.length&&t;e++)t=t[r[e]];return t}}(n,e):()=>n[e]:e.bind(n,n);let a;pt(t)?a=t:(a=t.handler,r=t);const i=Vn;qn(this);const s=hn(o,a.bind(n),r);return i?qn(i):Hn(),s}function vn(e,t){if(!ht(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),Mr(e))vn(e.value,t);else if(ut(e))for(let r=0;r<e.length;r++)vn(e[r],t);else if("[object Set]"===vt(e)||ft(e))e.forEach((e=>{vn(e,t)}));else if((e=>"[object Object]"===vt(e))(e))for(const r in e)vn(e[r],t);return e}Boolean,Boolean;RegExp,RegExp;const gn=e=>(t,r=Vn)=>(!Gn||"sp"===e)&&function(e,t,r=Vn,n=!1){if(r){const o=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...n)=>{if(r.isUnmounted)return;Mt(),qn(r);const o=Gr(t,r,e,n);return Hn(),Wt(),o});return n?o.unshift(a):o.push(a),a}}(e,((...e)=>t(...e)),r),yn=gn("bm"),bn=gn("m"),wn=(gn("bu"),gn("u"),gn("bum"),gn("um"));gn("sp"),gn("rtg"),gn("rtc");const xn=Symbol(),zn=e=>e?4&e.vnode.shapeFlag?function(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy((t=Ar(e.exposed),Sr(t)?t:new Proxy(t,Vr)),{get:(t,r)=>r in t?t[r]:r in kn?kn[r](e):void 0,has:(e,t)=>t in e||t in kn}));var t}(e)||e.proxy:zn(e.parent):null,kn=st(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zn(e.parent),$root:e=>zn(e.root),$emit:e=>e.emit,$options:e=>function(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:o,optionsCache:a,config:{optionMergeStrategies:i}}=e.appContext,s=a.get(t);let l;return s?l=s:o.length||r||n?(l={},o.length&&o.forEach((e=>On(l,e,i,!0))),On(l,t,i)):l=t,ht(t)&&a.set(t,l),l}(e),$forceUpdate:e=>e.f||(e.f=()=>an(e.update)),$nextTick:e=>e.n||(e.n=on.bind(e.proxy)),$watch:e=>_n.bind(e)});function On(e,t,r,n=!1){const{mixins:o,extends:a}=t;a&&On(e,a,r,!0),o&&o.forEach((t=>On(e,t,r,!0)));for(const o in t)if(n&&"expose"===o);else{const n=jn[o]||r&&r[o];e[o]=n?n(e[o],t[o]):t[o]}return e}const jn={data:En,props:Nn,emits:Nn,methods:Nn,computed:Nn,beforeCreate:Sn,created:Sn,beforeMount:Sn,mounted:Sn,beforeUpdate:Sn,updated:Sn,beforeDestroy:Sn,beforeUnmount:Sn,destroyed:Sn,unmounted:Sn,activated:Sn,deactivated:Sn,errorCaptured:Sn,serverPrefetch:Sn,components:Nn,directives:Nn,watch:function(e,t){if(!e)return t;if(!t)return e;const r=st(Object.create(null),e);for(const n in t)r[n]=Sn(e[n],t[n]);return r},provide:En,inject:function(e,t){return Nn(In(e),In(t))}};function En(e,t){return t?e?function(){return st(pt(e)?e.call(this,this):e,pt(t)?t.call(this,this):t)}:t:e}function In(e){if(ut(e)){const t={};for(let r=0;r<e.length;r++)t[e[r]]=e[r];return t}return e}function Sn(e,t){return e?[...new Set([].concat(e,t))]:t}function Nn(e,t){return e?st(st(Object.create(null),e),t):t}const Ln=function(e,t){var r;t&&t.pendingBranch?ut(e)?t.effects.push(...e):t.effects.push(e):(ut(r=e)?Zr.push(...r):en&&en.includes(r,r.allowRecurse?tn+1:tn)||Zr.push(r),sn())},Rn=Symbol(void 0),Fn=Symbol(void 0),An=Symbol(void 0);Symbol(void 0);function Tn(e){return!!e&&!0===e.__v_isVNode}const Cn="__vInternal",Pn=({key:e})=>null!=e?e:null,Dn=({ref:e,ref_key:t,ref_for:r})=>null!=e?dt(e)||Mr(e)||pt(e)?{i:fn,r:e,k:t,f:!!r}:e:null;const Mn=function(e,t=null,r=null,n=0,o=null,a=!1){if(e&&e!==xn||(e=An),Tn(e)){const n=Wn(e,t,!0);return r&&$n(n,r),n.patchFlag|=-2,n}if(i=e,pt(i)&&"__vccOpts"in i&&(e=e.__vccOpts),t){t=function(e){return e?Rr(e)||Cn in e?st({},e):e:null}(t);let{class:e,style:r}=t;e&&!dt(e)&&(t.class=rt(e)),ht(r)&&(Rr(r)&&!ut(r)&&(r=st({},r)),t.style=Je(r))}var i;return function(e,t=null,r=null,n=0,o=null,a=(e===Rn?0:1),i=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Pn(t),ref:t&&Dn(t),scopeId:null,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:fn};return s?($n(l,r),128&a&&e.normalize(l)):r&&(l.shapeFlag|=dt(r)?8:16),l}(e,t,r,n,o,dt(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:ht(e)?4:pt(e)?2:0,a,!0)};function Wn(e,t,r=!1){const{props:n,ref:o,patchFlag:a,children:i}=e,s=t?function(...e){const t={};for(let r=0;r<e.length;r++){const n=e[r];for(const e in n)if("class"===e)t.class!==n.class&&(t.class=rt([t.class,n.class]));else if("style"===e)t.style=Je([t.style,n.style]);else if(it(e)){const r=t[e],o=n[e];!o||r===o||ut(r)&&r.includes(o)||(t[e]=r?[].concat(r,o):o)}else""!==e&&(t[e]=n[e])}return t}(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&Pn(s),ref:t&&t.ref?r&&o?ut(o)?o.concat(Dn(t)):[o,Dn(t)]:Dn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Rn?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wn(e.ssContent),ssFallback:e.ssFallback&&Wn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function Un(e=" ",t=0){return Mn(Fn,null,e,t)}function $n(e,t){let r=0;const{shapeFlag:n}=e;if(null==t)t=null;else if(ut(t))r=16;else if("object"==typeof t){if(65&n){const r=t.default;return void(r&&(r._c&&(r._d=!1),$n(e,r()),r._c&&(r._d=!0)))}{r=32;const e=t._;!e&&!(Cn in t)&&(t._ctx=fn)}}else pt(t)?(t={default:t,_ctx:fn},r=32):(t=String(t),64&n?(r=16,t=[Un(t)]):r=8);e.children=t,e.shapeFlag|=r}Object.create(null),new WeakMap,new WeakMap,new WeakMap;let Vn=null;const Bn=()=>Vn||fn,qn=e=>{Vn=e,e.scope.on()},Hn=()=>{Vn&&Vn.scope.off(),Vn=null};let Gn=!1;const Yn=(e,t)=>function(e,t,r=!1){let n,o;const a=pt(e);return a?(n=e,o=ot):(n=e.get,o=e.set),new qr(n,o,a||!o,r)}(e,0,Gn);function Xn(e,t,r){const n=arguments.length;return 2===n?ht(t)&&!ut(t)?Tn(t)?Mn(e,null,[t]):Mn(e,t):Mn(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):3===n&&Tn(r)&&(r=[r]),Mn(e,t,r))}const Kn=Symbol(""),Jn=()=>pn(Kn);let Qn=7;const Zn=()=>++Qn;Zn(),Zn(),Zn(),Zn(),Zn(),Zn();let eo=15;const to=()=>++eo,ro={UNEXPECTED_RETURN_TYPE:eo,INVALID_ARGUMENT:to(),MUST_BE_CALL_SETUP_TOP:to(),NOT_INSLALLED:to(),NOT_AVAILABLE_IN_LEGACY_MODE:to(),REQUIRED_VALUE:to(),INVALID_VALUE:to(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:to(),NOT_INSLALLED_WITH_PROVIDE:to(),UNEXPECTED_ERROR:to(),NOT_COMPATIBLE_LEGACY_VUE_I18N:to(),BRIDGE_SUPPORT_VUE_2_ONLY:to(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:to(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:to(),__EXTEND_POINT__:to()};function no(e,...t){return te(e,null,void 0)}const oo=C("__transrateVNode"),ao=C("__datetimeParts"),io=C("__numberParts"),so=C("__setPluralRules");C("__intlifyMeta");const lo=C("__injectWithOption");function co(e){if(!J(e))return e;for(const t in e)if(H(e,t))if(t.includes(".")){const r=t.split("."),n=r.length-1;let o=e;for(let e=0;e<n;e++)r[e]in o||(o[r[e]]={}),o=o[r[e]];o[r[n]]=e[t],delete e[t],J(o[r[n]])&&co(o[r[n]])}else J(e[t])&&co(e[t]);return e}function uo(e,t){const{messages:r,__i18n:n,messageResolver:o,flatJson:a}=t,i=ee(r)?r:G(n)?{}:{[e]:{}};if(G(n)&&n.forEach((e=>{if("locale"in e&&"resource"in e){const{locale:t,resource:r}=e;t?(i[t]=i[t]||{},po(r,i[t])):po(r,i)}else X(e)&&po(JSON.parse(e),i)})),null==o&&a)for(const e in i)H(i,e)&&co(i[e]);return i}const fo=e=>!J(e)||G(e);function po(e,t){if(fo(e)||fo(t))throw no(ro.INVALID_VALUE);for(const r in e)H(e,r)&&(fo(e[r])||fo(t[r])?t[r]=e[r]:po(e[r],t[r]))}function mo(e){return e.type}function ho(e,t,r){let n=J(t.messages)?t.messages:{};"__i18nGlobal"in r&&(n=uo(e.locale.value,{messages:n,__i18n:r.__i18nGlobal}));const o=Object.keys(n);if(o.length&&o.forEach((t=>{e.mergeLocaleMessage(t,n[t])})),J(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach((r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])}))}if(J(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach((r=>{e.mergeNumberFormat(r,t.numberFormats[r])}))}}function _o(e){return Mn(Fn,null,e,0)}const vo="__INTLIFY_META__";let go=0;function yo(e){return(t,r,n,o)=>e(r,n,Bn()||void 0,o)}function bo(e={},t){const{__root:r}=e,n=void 0===r;let o=!K(e.inheritLocale)||e.inheritLocale;const a=Wr(r&&o?r.locale.value:X(e.locale)?e.locale:be),i=Wr(r&&o?r.fallbackLocale.value:X(e.fallbackLocale)||G(e.fallbackLocale)||ee(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:a.value),s=Wr(uo(a.value,e)),l=Wr(ee(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),c=Wr(ee(e.numberFormats)?e.numberFormats:{[a.value]:{}});let u=r?r.missingWarn:!K(e.missingWarn)&&!D(e.missingWarn)||e.missingWarn,f=r?r.fallbackWarn:!K(e.fallbackWarn)&&!D(e.fallbackWarn)||e.fallbackWarn,p=r?r.fallbackRoot:!K(e.fallbackRoot)||e.fallbackRoot,d=!!e.fallbackFormat,m=Y(e.missing)?e.missing:null,h=Y(e.missing)?yo(e.missing):null,_=Y(e.postTranslation)?e.postTranslation:null,v=r?r.warnHtmlMessage:!K(e.warnHtmlMessage)||e.warnHtmlMessage,g=!!e.escapeParameter;const y=r?r.modifiers:ee(e.modifiers)?e.modifiers:{};let b,w=e.pluralRules||r&&r.pluralRules;b=(()=>{n&&Ee(null);const t={version:"9.2.2",locale:a.value,fallbackLocale:i.value,messages:s.value,modifiers:y,pluralRules:w,missing:null===h?void 0:h,missingWarn:u,fallbackWarn:f,fallbackFormat:d,unresolving:!0,postTranslation:null===_?void 0:_,warnHtmlMessage:v,escapeParameter:g,messageResolver:e.messageResolver,__meta:{framework:"vue"}};t.datetimeFormats=l.value,t.numberFormats=c.value,t.__datetimeFormatters=ee(b)?b.__datetimeFormatters:void 0,t.__numberFormatters=ee(b)?b.__numberFormatters:void 0;const r=function(e={}){const t=X(e.version)?e.version:"9.2.2",r=X(e.locale)?e.locale:be,n=G(e.fallbackLocale)||ee(e.fallbackLocale)||X(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:r,o=ee(e.messages)?e.messages:{[r]:{}},a=ee(e.datetimeFormats)?e.datetimeFormats:{[r]:{}},i=ee(e.numberFormats)?e.numberFormats:{[r]:{}},s=U({},e.modifiers||{},{upper:(e,t)=>"text"===t&&X(e)?e.toUpperCase():"vnode"===t&&J(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>"text"===t&&X(e)?e.toLowerCase():"vnode"===t&&J(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>"text"===t&&X(e)?we(e):"vnode"===t&&J(e)&&"__v_isVNode"in e?we(e.children):e}),l=e.pluralRules||{},c=Y(e.missing)?e.missing:null,u=!K(e.missingWarn)&&!D(e.missingWarn)||e.missingWarn,f=!K(e.fallbackWarn)&&!D(e.fallbackWarn)||e.fallbackWarn,p=!!e.fallbackFormat,d=!!e.unresolving,m=Y(e.postTranslation)?e.postTranslation:null,h=ee(e.processor)?e.processor:null,_=!K(e.warnHtmlMessage)||e.warnHtmlMessage,v=!!e.escapeParameter,g=Y(e.messageCompiler)?e.messageCompiler:void 0,y=Y(e.messageResolver)?e.messageResolver:xe||ie,b=Y(e.localeFallbacker)?e.localeFallbacker:ze||he,w=J(e.fallbackContext)?e.fallbackContext:void 0,x=Y(e.onWarn)?e.onWarn:W,z=e,k=J(z.__datetimeFormatters)?z.__datetimeFormatters:new Map,O=J(z.__numberFormatters)?z.__numberFormatters:new Map,j=J(z.__meta)?z.__meta:{};Ie++;const E={version:t,cid:Ie,locale:r,fallbackLocale:n,messages:o,modifiers:s,pluralRules:l,missing:c,missingWarn:u,fallbackWarn:f,fallbackFormat:p,unresolving:d,postTranslation:m,processor:h,warnHtmlMessage:_,escapeParameter:v,messageCompiler:g,messageResolver:y,localeFallbacker:b,fallbackContext:w,onWarn:x,__meta:j};return E.datetimeFormats=a,E.numberFormats=i,E.__datetimeFormatters=k,E.__numberFormatters=O,__INTLIFY_PROD_DEVTOOLS__&&function(e,t,r){pe&&pe.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:r})}(E,t,j),E}(t);return n&&Ee(r),r})(),Ne(b,a.value,i.value);const x=Yn({get:()=>a.value,set:e=>{a.value=e,b.locale=a.value}}),z=Yn({get:()=>i.value,set:e=>{i.value=e,b.fallbackLocale=i.value,Ne(b,a.value,e)}}),k=Yn((()=>s.value)),O=Yn((()=>l.value)),j=Yn((()=>c.value)),E=(e,t,o,u,f,d)=>{let m;if(a.value,i.value,s.value,l.value,c.value,__INTLIFY_PROD_DEVTOOLS__)try{Oe((()=>{const e=Bn();let t=null;return e&&(t=mo(e)[vo])?{[vo]:t}:null})()),n||(b.fallbackContext=r?je:void 0),m=e(b)}finally{Oe(null),n||(b.fallbackContext=void 0)}else m=e(b);if(P(m)&&-1===m){const[e,n]=t();return r&&p?u(r):f(e)}if(d(m))return m;throw no(ro.UNEXPECTED_RETURN_TYPE)};function I(...e){return E((t=>Reflect.apply(Pe,null,[t,...e])),(()=>We(...e)),0,(t=>Reflect.apply(t.t,t,[...e])),(e=>e),(e=>X(e)))}const S={normalize:function(e){return e.map((e=>X(e)||P(e)||K(e)?_o(String(e)):e))},interpolate:e=>e,type:"vnode"};function N(e){return s.value[e]||{}}go++,r&&A&&(mn(r.locale,(e=>{o&&(a.value=e,b.locale=e,Ne(b,a.value,i.value))})),mn(r.fallbackLocale,(e=>{o&&(i.value=e,b.fallbackLocale=e,Ne(b,a.value,i.value))})));const L={id:go,locale:x,fallbackLocale:z,get inheritLocale(){return o},set inheritLocale(e){o=e,e&&r&&(a.value=r.locale.value,i.value=r.fallbackLocale.value,Ne(b,a.value,i.value))},get availableLocales(){return Object.keys(s.value).sort()},messages:k,get modifiers(){return y},get pluralRules(){return w||{}},get isGlobal(){return n},get missingWarn(){return u},set missingWarn(e){u=e,b.missingWarn=u},get fallbackWarn(){return f},set fallbackWarn(e){f=e,b.fallbackWarn=f},get fallbackRoot(){return p},set fallbackRoot(e){p=e},get fallbackFormat(){return d},set fallbackFormat(e){d=e,b.fallbackFormat=d},get warnHtmlMessage(){return v},set warnHtmlMessage(e){v=e,b.warnHtmlMessage=e},get escapeParameter(){return g},set escapeParameter(e){g=e,b.escapeParameter=e},t:I,getLocaleMessage:N,setLocaleMessage:function(e,t){s.value[e]=t,b.messages=s.value},mergeLocaleMessage:function(e,t){s.value[e]=s.value[e]||{},po(t,s.value[e]),b.messages=s.value},getPostTranslationHandler:function(){return Y(_)?_:null},setPostTranslationHandler:function(e){_=e,b.postTranslation=e},getMissingHandler:function(){return m},setMissingHandler:function(e){null!==e&&(h=yo(e)),m=e,b.missing=h},[so]:function(e){w=e,b.pluralRules=w}};return L.datetimeFormats=O,L.numberFormats=j,L.rt=function(...e){const[t,r,n]=e;if(n&&!J(n))throw no(ro.INVALID_ARGUMENT);return I(t,r,U({resolvedMessage:!0},n||{}))},L.te=function(e,t){const r=N(X(t)?t:a.value);return null!==b.messageResolver(r,e)},L.tm=function(e){const t=function(e){let t=null;const r=_e(b,i.value,a.value);for(let n=0;n<r.length;n++){const o=s.value[r[n]]||{},a=b.messageResolver(o,e);if(null!=a){t=a;break}}return t}(e);return null!=t?t:r&&r.tm(e)||{}},L.d=function(...e){return E((t=>Reflect.apply($e,null,[t,...e])),(()=>Be(...e)),0,(t=>Reflect.apply(t.d,t,[...e])),(()=>""),(e=>X(e)))},L.n=function(...e){return E((t=>Reflect.apply(He,null,[t,...e])),(()=>Ye(...e)),0,(t=>Reflect.apply(t.n,t,[...e])),(()=>""),(e=>X(e)))},L.getDateTimeFormat=function(e){return l.value[e]||{}},L.setDateTimeFormat=function(e,t){l.value[e]=t,b.datetimeFormats=l.value,qe(b,e,t)},L.mergeDateTimeFormat=function(e,t){l.value[e]=U(l.value[e]||{},t),b.datetimeFormats=l.value,qe(b,e,t)},L.getNumberFormat=function(e){return c.value[e]||{}},L.setNumberFormat=function(e,t){c.value[e]=t,b.numberFormats=c.value,Xe(b,e,t)},L.mergeNumberFormat=function(e,t){c.value[e]=U(c.value[e]||{},t),b.numberFormats=c.value,Xe(b,e,t)},L[lo]=e.__injectWithOption,L[oo]=function(...e){return E((t=>{let r;const n=t;try{n.processor=S,r=Reflect.apply(Pe,null,[n,...e])}finally{n.processor=null}return r}),(()=>We(...e)),0,(t=>t[oo](...e)),(e=>[_o(e)]),(e=>G(e)))},L[ao]=function(...e){return E((t=>Reflect.apply($e,null,[t,...e])),(()=>Be(...e)),0,(t=>t[ao](...e)),(()=>[]),(e=>X(e)||G(e)))},L[io]=function(...e){return E((t=>Reflect.apply(He,null,[t,...e])),(()=>Ye(...e)),0,(t=>t[io](...e)),(()=>[]),(e=>X(e)||G(e)))},L}function wo(e={},t){{const t=bo(function(e){const t=X(e.locale)?e.locale:be,r=X(e.fallbackLocale)||G(e.fallbackLocale)||ee(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,n=Y(e.missing)?e.missing:void 0,o=!K(e.silentTranslationWarn)&&!D(e.silentTranslationWarn)||!e.silentTranslationWarn,a=!K(e.silentFallbackWarn)&&!D(e.silentFallbackWarn)||!e.silentFallbackWarn,i=!K(e.fallbackRoot)||e.fallbackRoot,s=!!e.formatFallbackMessages,l=ee(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Y(e.postTranslation)?e.postTranslation:void 0,f=!X(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,p=!!e.escapeParameterHtml,d=!K(e.sync)||e.sync;let m=e.messages;if(ee(e.sharedMessages)){const t=e.sharedMessages;m=Object.keys(t).reduce(((e,r)=>{const n=e[r]||(e[r]={});return U(n,t[r]),e}),m||{})}const{__i18n:h,__root:_,__injectWithOption:v}=e,g=e.datetimeFormats,y=e.numberFormats;return{locale:t,fallbackLocale:r,messages:m,flatJson:e.flatJson,datetimeFormats:g,numberFormats:y,missing:n,missingWarn:o,fallbackWarn:a,fallbackRoot:i,fallbackFormat:s,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:d,__i18n:h,__root:_,__injectWithOption:v}}(e)),r={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return K(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=K(e)?!e:e},get silentFallbackWarn(){return K(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=K(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[r,n,o]=e,a={};let i=null,s=null;if(!X(r))throw no(ro.INVALID_ARGUMENT);const l=r;return X(n)?a.locale=n:G(n)?i=n:ee(n)&&(s=n),G(o)?i=o:ee(o)&&(s=o),Reflect.apply(t.t,t,[l,i||s||{},a])},rt:(...e)=>Reflect.apply(t.rt,t,[...e]),tc(...e){const[r,n,o]=e,a={plural:1};let i=null,s=null;if(!X(r))throw no(ro.INVALID_ARGUMENT);const l=r;return X(n)?a.locale=n:P(n)?a.plural=n:G(n)?i=n:ee(n)&&(s=n),X(o)?a.locale=o:G(o)?i=o:ee(o)&&(s=o),Reflect.apply(t.t,t,[l,i||s||{},a])},te:(e,r)=>t.te(e,r),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,r){t.setLocaleMessage(e,r)},mergeLocaleMessage(e,r){t.mergeLocaleMessage(e,r)},d:(...e)=>Reflect.apply(t.d,t,[...e]),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,r){t.setDateTimeFormat(e,r)},mergeDateTimeFormat(e,r){t.mergeDateTimeFormat(e,r)},n:(...e)=>Reflect.apply(t.n,t,[...e]),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,r){t.setNumberFormat(e,r)},mergeNumberFormat(e,r){t.mergeNumberFormat(e,r)},getChoiceIndex:(e,t)=>-1,__onComponentInstanceCreated(t){const{componentInstanceCreatedListener:n}=e;n&&n(t,r)}};return r}}const xo={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}};function zo(e){return Rn}const ko={name:"i18n-t",props:U({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>P(e)||!isNaN(e)}},xo),setup(e,t){const{slots:r,attrs:n}=t,o=e.i18n||Ro({useScope:e.scope,__useComponent:!0});return()=>{const a=Object.keys(r).filter((e=>"_"!==e)),i={};e.locale&&(i.locale=e.locale),void 0!==e.plural&&(i.plural=X(e.plural)?+e.plural:e.plural);const s=function({slots:e},t){return 1===t.length&&"default"===t[0]?(e.default?e.default():[]).reduce(((e,t)=>[...e,...G(t.children)?t.children:[t]]),[]):t.reduce(((t,r)=>{const n=e[r];return n&&(t[r]=n()),t}),{})}(t,a),l=o[oo](e.keypath,s,i),c=U({},n);return Xn(X(e.tag)||J(e.tag)?e.tag:zo(),c,l)}}};function Oo(e,t,r,n){const{slots:o,attrs:a}=t;return()=>{const t={part:!0};let i={};e.locale&&(t.locale=e.locale),X(e.format)?t.key=e.format:J(e.format)&&(X(e.format.key)&&(t.key=e.format.key),i=Object.keys(e.format).reduce(((t,n)=>r.includes(n)?U({},t,{[n]:e.format[n]}):t),{}));const s=n(e.value,t,i);let l=[t.key];G(s)?l=s.map(((e,t)=>{const r=o[e.type],n=r?r({[e.type]:e.value,index:t,parts:s}):[e.value];var a;return G(a=n)&&!X(a[0])&&(n[0].key=`${e.type}-${t}`),n})):X(s)&&(l=[s]);const c=U({},a);return Xn(X(e.tag)||J(e.tag)?e.tag:zo(),c,l)}}const jo={name:"i18n-n",props:U({value:{type:Number,required:!0},format:{type:[String,Object]}},xo),setup(e,t){const r=e.i18n||Ro({useScope:"parent",__useComponent:!0});return Oo(e,t,Ge,((...e)=>r[io](...e)))}},Eo={name:"i18n-d",props:U({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},xo),setup(e,t){const r=e.i18n||Ro({useScope:"parent",__useComponent:!0});return Oo(e,t,Ve,((...e)=>r[ao](...e)))}};function Io(e){if(X(e))return{path:e};if(ee(e)){if(!("path"in e))throw no(ro.REQUIRED_VALUE);return e}throw no(ro.INVALID_VALUE)}function So(e){const{path:t,locale:r,args:n,choice:o,plural:a}=e,i={},s=n||{};return X(r)&&(i.locale=r),P(o)&&(i.plural=o),P(a)&&(i.plural=a),[t,s,i]}function No(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[so](t.pluralizationRules||e.pluralizationRules);const r=uo(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(r).forEach((t=>e.mergeLocaleMessage(t,r[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((r=>e.mergeNumberFormat(r,t.numberFormats[r]))),e}const Lo=C("global-vue-i18n");function Ro(e={}){const t=Bn();if(null==t)throw no(ro.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&null!=t.appContext.app&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw no(ro.NOT_INSLALLED);const r=function(e){{const t=pn(e.isCE?Lo:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw no(e.isCE?ro.NOT_INSLALLED_WITH_PROVIDE:ro.UNEXPECTED_ERROR);return t}}(t),n=function(e){return"composition"===e.mode?e.global:e.global.__composer}(r),o=mo(t),a=function(e,t){return M(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}(e,o);if(__VUE_I18N_LEGACY_API__&&"legacy"===r.mode&&!e.__useComponent){if(!r.allowComposition)throw no(ro.NOT_AVAILABLE_IN_LEGACY_MODE);return function(e,t,r,n={}){const o="local"===t,a=(null,Ur(null,!0));if(o&&e.proxy&&!e.proxy.$options.i18n&&!e.proxy.$options.__i18n)throw no(ro.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=!K(n.inheritLocale)||n.inheritLocale,s=Wr(o&&i?r.locale.value:X(n.locale)?n.locale:be),l=Wr(o&&i?r.fallbackLocale.value:X(n.fallbackLocale)||G(n.fallbackLocale)||ee(n.fallbackLocale)||!1===n.fallbackLocale?n.fallbackLocale:s.value),c=Wr(uo(s.value,n)),u=Wr(ee(n.datetimeFormats)?n.datetimeFormats:{[s.value]:{}}),f=Wr(ee(n.numberFormats)?n.numberFormats:{[s.value]:{}}),p=o?r.missingWarn:!K(n.missingWarn)&&!D(n.missingWarn)||n.missingWarn,d=o?r.fallbackWarn:!K(n.fallbackWarn)&&!D(n.fallbackWarn)||n.fallbackWarn,m=o?r.fallbackRoot:!K(n.fallbackRoot)||n.fallbackRoot,h=!!n.fallbackFormat,_=Y(n.missing)?n.missing:null,v=Y(n.postTranslation)?n.postTranslation:null,g=o?r.warnHtmlMessage:!K(n.warnHtmlMessage)||n.warnHtmlMessage,y=!!n.escapeParameter,b=o?r.modifiers:ee(n.modifiers)?n.modifiers:{},w=n.pluralRules||o&&r.pluralRules;function x(e){return s.value,l.value,c.value,u.value,f.value,e()}const z={get id(){return a.value?a.value.id:-1},locale:Yn({get:()=>a.value?a.value.locale.value:s.value,set:e=>{a.value&&(a.value.locale.value=e),s.value=e}}),fallbackLocale:Yn({get:()=>a.value?a.value.fallbackLocale.value:l.value,set:e=>{a.value&&(a.value.fallbackLocale.value=e),l.value=e}}),messages:Yn((()=>a.value?a.value.messages.value:c.value)),datetimeFormats:Yn((()=>u.value)),numberFormats:Yn((()=>f.value)),get inheritLocale(){return a.value?a.value.inheritLocale:i},set inheritLocale(e){a.value&&(a.value.inheritLocale=e)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(c.value)},get modifiers(){return a.value?a.value.modifiers:b},get pluralRules(){return a.value?a.value.pluralRules:w},get isGlobal(){return!!a.value&&a.value.isGlobal},get missingWarn(){return a.value?a.value.missingWarn:p},set missingWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackWarn(){return a.value?a.value.fallbackWarn:d},set fallbackWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackRoot(){return a.value?a.value.fallbackRoot:m},set fallbackRoot(e){a.value&&(a.value.fallbackRoot=e)},get fallbackFormat(){return a.value?a.value.fallbackFormat:h},set fallbackFormat(e){a.value&&(a.value.fallbackFormat=e)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:g},set warnHtmlMessage(e){a.value&&(a.value.warnHtmlMessage=e)},get escapeParameter(){return a.value?a.value.escapeParameter:y},set escapeParameter(e){a.value&&(a.value.escapeParameter=e)},t:function(...e){return a.value?x((()=>Reflect.apply(a.value.t,null,[...e]))):x((()=>""))},getPostTranslationHandler:function(){return a.value?a.value.getPostTranslationHandler():v},setPostTranslationHandler:function(e){a.value&&a.value.setPostTranslationHandler(e)},getMissingHandler:function(){return a.value?a.value.getMissingHandler():_},setMissingHandler:function(e){a.value&&a.value.setMissingHandler(e)},rt:function(...e){return a.value?Reflect.apply(a.value.rt,null,[...e]):""},d:function(...e){return a.value?x((()=>Reflect.apply(a.value.d,null,[...e]))):x((()=>""))},n:function(...e){return a.value?x((()=>Reflect.apply(a.value.n,null,[...e]))):x((()=>""))},tm:function(e){return a.value?a.value.tm(e):{}},te:function(e,t){return!!a.value&&a.value.te(e,t)},getLocaleMessage:function(e){return a.value?a.value.getLocaleMessage(e):{}},setLocaleMessage:function(e,t){a.value&&(a.value.setLocaleMessage(e,t),c.value[e]=t)},mergeLocaleMessage:function(e,t){a.value&&a.value.mergeLocaleMessage(e,t)},getDateTimeFormat:function(e){return a.value?a.value.getDateTimeFormat(e):{}},setDateTimeFormat:function(e,t){a.value&&(a.value.setDateTimeFormat(e,t),u.value[e]=t)},mergeDateTimeFormat:function(e,t){a.value&&a.value.mergeDateTimeFormat(e,t)},getNumberFormat:function(e){return a.value?a.value.getNumberFormat(e):{}},setNumberFormat:function(e,t){a.value&&(a.value.setNumberFormat(e,t),f.value[e]=t)},mergeNumberFormat:function(e,t){a.value&&a.value.mergeNumberFormat(e,t)}};return yn((()=>{if(null==e.proxy||null==e.proxy.$i18n)throw no(ro.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const r=a.value=e.proxy.$i18n.__composer;"global"===t?(s.value=r.locale.value,l.value=r.fallbackLocale.value,c.value=r.messages.value,u.value=r.datetimeFormats.value,f.value=r.numberFormats.value):o&&function(e){e.locale.value=s.value,e.fallbackLocale.value=l.value,Object.keys(c.value).forEach((t=>{e.mergeLocaleMessage(t,c.value[t])})),Object.keys(u.value).forEach((t=>{e.mergeDateTimeFormat(t,u.value[t])})),Object.keys(f.value).forEach((t=>{e.mergeNumberFormat(t,f.value[t])})),e.escapeParameter=y,e.fallbackFormat=h,e.fallbackRoot=m,e.fallbackWarn=d,e.missingWarn=p,e.warnHtmlMessage=g}(r)})),z}(t,a,n,e)}if("global"===a)return ho(n,e,o),n;if("parent"===a){let o=function(e,t,r=!1){let n=null;const o=t.root;let a=t.parent;for(;null!=a;){const t=e;if("composition"===e.mode)n=t.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const e=t.__getInstance(a);null!=e&&(n=e.__composer,r&&n&&!n[lo]&&(n=null))}if(null!=n)break;if(o===a)break;a=a.parent}return n}(r,t,e.__useComponent);return null==o&&(o=n),o}const i=r;let s=i.__getInstance(t);if(null==s){const r=U({},e);"__i18n"in o&&(r.__i18n=o.__i18n),n&&(r.__root=n),s=bo(r),function(e,t,r){bn((()=>{}),t),wn((()=>{e.__deleteInstance(t)}),t)}(i,t),i.__setInstance(t,s)}return s}const Fo=["locale","fallbackLocale","availableLocales"],Ao=["t","rt","d","n","tm"];var To;if(xe=function(e,t){if(!J(e))return null;let r=ae.get(t);if(r||(r=function(e){const t=[];let r,n,o,a,i,s,l,c=-1,u=0,f=0;const p=[];function d(){const t=e[c+1];if(5===u&&"'"===t||6===u&&'"'===t)return c++,o="\\"+t,p[0](),!0}for(p[0]=()=>{void 0===n?n=o:n+=o},p[1]=()=>{void 0!==n&&(t.push(n),n=void 0)},p[2]=()=>{p[0](),f++},p[3]=()=>{if(f>0)f--,u=4,p[0]();else{if(f=0,void 0===n)return!1;if(n=function(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(r=t,ne.test(r)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var r}(n),!1===n)return!1;p[1]()}};null!==u;)if(c++,r=e[c],"\\"!==r||!d()){if(a=oe(r),l=re[u],i=l[a]||l.l||8,8===i)return;if(u=i[0],void 0!==i[1]&&(s=p[i[1]],s&&(o=r,!1===s())))return;if(7===u)return t}}(t),r&&ae.set(t,r)),!r)return null;const n=r.length;let o=e,a=0;for(;a<n;){const e=o[r[a]];if(void 0===e)return null;o=e,a++}return o},ze=_e,function(){let e=!1;"boolean"!=typeof __VUE_I18N_FULL_INSTALL__&&(e=!0,V().__VUE_I18N_FULL_INSTALL__=!0),"boolean"!=typeof __VUE_I18N_LEGACY_API__&&(e=!0,V().__VUE_I18N_LEGACY_API__=!0),"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(V().__INTLIFY_PROD_DEVTOOLS__=!1)}(),__INTLIFY_PROD_DEVTOOLS__){const e=V();e.__INTLIFY__=!0,To=e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__,pe=To}var Co=function(e={},t){const r=__VUE_I18N_LEGACY_API__&&K(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=!K(e.globalInjection)||e.globalInjection,o=!__VUE_I18N_LEGACY_API__||!r||!!e.allowComposition,a=new Map,[i,s]=function(e,t,r){const n=new Ot(undefined);{const r=__VUE_I18N_LEGACY_API__&&t?n.run((()=>wo(e))):n.run((()=>bo(e)));if(null==r)throw no(ro.UNEXPECTED_ERROR);return[n,r]}}(e,r),l=C("");{const e={get mode(){return __VUE_I18N_LEGACY_API__&&r?"legacy":"composition"},get allowComposition(){return o},async install(t,...o){t.__VUE_I18N_SYMBOL__=l,t.provide(t.__VUE_I18N_SYMBOL__,e),!r&&n&&function(e,t){const r=Object.create(null);Fo.forEach((e=>{const n=Object.getOwnPropertyDescriptor(t,e);if(!n)throw no(ro.UNEXPECTED_ERROR);const o=Mr(n.value)?{get:()=>n.value.value,set(e){n.value.value=e}}:{get:()=>n.get&&n.get()};Object.defineProperty(r,e,o)})),e.config.globalProperties.$i18n=r,Ao.forEach((r=>{const n=Object.getOwnPropertyDescriptor(t,r);if(!n||!n.value)throw no(ro.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${r}`,n)}))}(t,e.global),__VUE_I18N_FULL_INSTALL__&&function(e,t,...r){const n=ee(r[0])?r[0]:{},o=!!n.useI18nComponentName;(!K(n.globalInstall)||n.globalInstall)&&(e.component(o?"i18n":ko.name,ko),e.component(jo.name,jo),e.component(Eo.name,Eo)),e.directive("t",function(e){const t=t=>{const{instance:r,modifiers:n,value:o}=t;if(!r||!r.$)throw no(ro.UNEXPECTED_ERROR);const a=function(e,t){const r=e;if("composition"===e.mode)return r.__getInstance(t)||e.global;{const n=r.__getInstance(t);return null!=n?n.__composer:e.global.__composer}}(e,r.$),i=Io(o);return[Reflect.apply(a.t,a,[...So(i)]),a]};return{created:(r,n)=>{const[o,a]=t(n);A&&e.global===a&&(r.__i18nWatcher=mn(a.locale,(()=>{n.instance&&n.instance.$forceUpdate()}))),r.__composer=a,r.textContent=o},unmounted:e=>{A&&e.__i18nWatcher&&(e.__i18nWatcher(),e.__i18nWatcher=void 0,delete e.__i18nWatcher),e.__composer&&(e.__composer=void 0,delete e.__composer)},beforeUpdate:(e,{value:t})=>{if(e.__composer){const r=e.__composer,n=Io(t);e.textContent=Reflect.apply(r.t,r,[...So(n)])}},getSSRProps:e=>{const[r]=t(e);return{textContent:r}}}}(t))}(t,e,...o),__VUE_I18N_LEGACY_API__&&r&&t.mixin(function(e,t,r){return{beforeCreate(){const n=Bn();if(!n)throw no(ro.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const r=o.i18n;o.__i18n&&(r.__i18n=o.__i18n),r.__root=t,this===this.$root?this.$i18n=No(e,r):(r.__injectWithOption=!0,this.$i18n=wo(r))}else o.__i18n?this===this.$root?this.$i18n=No(e,o):this.$i18n=wo({__i18n:o.__i18n,__injectWithOption:!0,__root:t}):this.$i18n=e;o.__i18nGlobal&&ho(t,o,o),e.__onComponentInstanceCreated(this.$i18n),r.__setInstance(n,this.$i18n),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e)},mounted(){},unmounted(){const e=Bn();if(!e)throw no(ro.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,r.__deleteInstance(e),delete this.$i18n}}}(s,s.__composer,e));const a=t.unmount;t.unmount=()=>{e.dispose(),a()}},get global(){return s},dispose(){i.stop()},__instances:a,__getInstance:function(e){return a.get(e)||null},__setInstance:function(e,t){a.set(e,t)},__deleteInstance:function(e){a.delete(e)}};return e}}({locale:"en",fallbackLocale:"en",messages:{ar:r(5464),ca:r(3708),cs:r(122),de:r(414),eo:r(5775),es:r(8438),et:r(9997),eu:r(9975),fi:r(9923),fr:r(8375),ga:r(1746),he:r(9369),hu:r(377),it:r(6710),ja:r(333),ja_easy:r(6534),ko:r(7379),nb:r(8103),nl:r(728),oc:r(3932),pl:r(7028),pt:r(789),ro:r(5032),ru:r(3460),sk:r(6139),te:r(5751),zh:r(4389),en:r(2551)}});function Po(){return clients.matchAll({includeUncontrolled:!0}).then((function(e){return e.filter((function(e){return"window"===e.type}))}))}var Do=function(){var e=t(o().mark((function e(){var t,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i().getItem("vuex-lz");case 2:t=e.sent,r=t.config.interfaceLanguage||"en",Co.locale=r;case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Mo=function(){var e=t(o().mark((function e(t){var r,n,a,s,l,c,u,f;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i().getItem("vuex-lz").then((function(e){return e.config.webPushNotifications}));case 2:return r=e.sent,e.next=5,Po();case 5:return n=e.sent,e.next=8,Do();case 8:if(!r||0!==n.length){e.next=20;break}return a=t.data.json(),s="".concat(self.registration.scope,"api/v1/notifications/").concat(a.notification_id),e.next=13,fetch(s,{headers:{Authorization:"Bearer "+a.access_token}});case 13:return l=e.sent,e.next=16,l.json();case 16:c=e.sent,u=R(c),f=h(u,Co),self.registration.showNotification(f.title,f);case 20:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();self.addEventListener("push",function(){var e=t(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.data&&t.waitUntil(Mo(t));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),self.addEventListener("notificationclick",(function(e){e.notification.close(),e.waitUntil(Po().then((function(e){for(var t=0;t<e.length;t++){var r=e[t];if("/"===r.url&&"focus"in r)return r.focus()}if(clients.openWindow)return clients.openWindow("/")})))}))})()})();
//# sourceMappingURL=sw-pleroma.js.map \ No newline at end of file
diff --git a/priv/static/sw-pleroma.js.LICENSE.txt b/priv/static/sw-pleroma.js.LICENSE.txt
index 9b9ab65b2..63c4ca54c 100644
--- a/priv/static/sw-pleroma.js.LICENSE.txt
+++ b/priv/static/sw-pleroma.js.LICENSE.txt
@@ -25,6 +25,4 @@
* MIT Licensed
*/
-/*! https://mths.be/punycode v1.3.2 by @mathias */
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
diff --git a/priv/static/sw-pleroma.js.map b/priv/static/sw-pleroma.js.map
index 5472fccce..f81d54283 100644
--- a/priv/static/sw-pleroma.js.map
+++ b/priv/static/sw-pleroma.js.map
@@ -1 +1 @@
-{"version":3,"file":"sw-pleroma.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/ar.json","webpack://pleroma_fe/./src/i18n/ca.json","webpack://pleroma_fe/./src/i18n/cs.json","webpack://pleroma_fe/./src/i18n/de.json","webpack://pleroma_fe/./src/i18n/en.json","webpack://pleroma_fe/./src/i18n/eo.json","webpack://pleroma_fe/./src/i18n/es.json","webpack://pleroma_fe/./src/i18n/et.json","webpack://pleroma_fe/./src/i18n/eu.json","webpack://pleroma_fe/./src/i18n/fi.json","webpack://pleroma_fe/./src/i18n/fr.json","webpack://pleroma_fe/./src/i18n/ga.json","webpack://pleroma_fe/./src/i18n/he.json","webpack://pleroma_fe/./src/i18n/hu.json","webpack://pleroma_fe/./src/i18n/it.json","webpack://pleroma_fe/./src/i18n/ja_easy.json","webpack://pleroma_fe/./src/i18n/ja_pedantic.json","webpack://pleroma_fe/./src/i18n/ko.json","webpack://pleroma_fe/./src/i18n/nb.json","webpack://pleroma_fe/./src/i18n/nl.json","webpack://pleroma_fe/./src/i18n/oc.json","webpack://pleroma_fe/./src/i18n/pl.json","webpack://pleroma_fe/./src/i18n/pt.json","webpack://pleroma_fe/./src/i18n/ro.json","webpack://pleroma_fe/./src/i18n/ru.json","webpack://pleroma_fe/./src/i18n/sk.json","webpack://pleroma_fe/./src/i18n/te.json","webpack://pleroma_fe/./src/i18n/zh.json","webpack://pleroma_fe/./node_modules/escape-html/index.js","webpack://pleroma_fe/./node_modules/localforage/dist/localforage.js","webpack://pleroma_fe/./node_modules/lodash/_DataView.js","webpack://pleroma_fe/./node_modules/lodash/_Hash.js","webpack://pleroma_fe/./node_modules/lodash/_ListCache.js","webpack://pleroma_fe/./node_modules/lodash/_Map.js","webpack://pleroma_fe/./node_modules/lodash/_MapCache.js","webpack://pleroma_fe/./node_modules/lodash/_Promise.js","webpack://pleroma_fe/./node_modules/lodash/_Set.js","webpack://pleroma_fe/./node_modules/lodash/_SetCache.js","webpack://pleroma_fe/./node_modules/lodash/_Stack.js","webpack://pleroma_fe/./node_modules/lodash/_Symbol.js","webpack://pleroma_fe/./node_modules/lodash/_Uint8Array.js","webpack://pleroma_fe/./node_modules/lodash/_WeakMap.js","webpack://pleroma_fe/./node_modules/lodash/_apply.js","webpack://pleroma_fe/./node_modules/lodash/_arrayFilter.js","webpack://pleroma_fe/./node_modules/lodash/_arrayLikeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_arrayMap.js","webpack://pleroma_fe/./node_modules/lodash/_arrayPush.js","webpack://pleroma_fe/./node_modules/lodash/_arraySome.js","webpack://pleroma_fe/./node_modules/lodash/_assocIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseEach.js","webpack://pleroma_fe/./node_modules/lodash/_baseFilter.js","webpack://pleroma_fe/./node_modules/lodash/_baseFindIndex.js","webpack://pleroma_fe/./node_modules/lodash/_baseFlatten.js","webpack://pleroma_fe/./node_modules/lodash/_baseFor.js","webpack://pleroma_fe/./node_modules/lodash/_baseForOwn.js","webpack://pleroma_fe/./node_modules/lodash/_baseGet.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetTag.js","webpack://pleroma_fe/./node_modules/lodash/_baseHasIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsArguments.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqual.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqualDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsMatch.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNaN.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNative.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/_baseIteratee.js","webpack://pleroma_fe/./node_modules/lodash/_baseKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseMap.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatches.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatchesProperty.js","webpack://pleroma_fe/./node_modules/lodash/_baseOrderBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseProperty.js","webpack://pleroma_fe/./node_modules/lodash/_basePropertyDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseRest.js","webpack://pleroma_fe/./node_modules/lodash/_baseSetToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseSortBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseTimes.js","webpack://pleroma_fe/./node_modules/lodash/_baseToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseTrim.js","webpack://pleroma_fe/./node_modules/lodash/_baseUnary.js","webpack://pleroma_fe/./node_modules/lodash/_baseValues.js","webpack://pleroma_fe/./node_modules/lodash/_cacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_castPath.js","webpack://pleroma_fe/./node_modules/lodash/_compareAscending.js","webpack://pleroma_fe/./node_modules/lodash/_compareMultiple.js","webpack://pleroma_fe/./node_modules/lodash/_coreJsData.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseEach.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseFor.js","webpack://pleroma_fe/./node_modules/lodash/_defineProperty.js","webpack://pleroma_fe/./node_modules/lodash/_equalArrays.js","webpack://pleroma_fe/./node_modules/lodash/_equalByTag.js","webpack://pleroma_fe/./node_modules/lodash/_equalObjects.js","webpack://pleroma_fe/./node_modules/lodash/_freeGlobal.js","webpack://pleroma_fe/./node_modules/lodash/_getAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_getMapData.js","webpack://pleroma_fe/./node_modules/lodash/_getMatchData.js","webpack://pleroma_fe/./node_modules/lodash/_getNative.js","webpack://pleroma_fe/./node_modules/lodash/_getRawTag.js","webpack://pleroma_fe/./node_modules/lodash/_getSymbols.js","webpack://pleroma_fe/./node_modules/lodash/_getTag.js","webpack://pleroma_fe/./node_modules/lodash/_getValue.js","webpack://pleroma_fe/./node_modules/lodash/_hasPath.js","webpack://pleroma_fe/./node_modules/lodash/_hashClear.js","webpack://pleroma_fe/./node_modules/lodash/_hashDelete.js","webpack://pleroma_fe/./node_modules/lodash/_hashGet.js","webpack://pleroma_fe/./node_modules/lodash/_hashHas.js","webpack://pleroma_fe/./node_modules/lodash/_hashSet.js","webpack://pleroma_fe/./node_modules/lodash/_isFlattenable.js","webpack://pleroma_fe/./node_modules/lodash/_isIndex.js","webpack://pleroma_fe/./node_modules/lodash/_isIterateeCall.js","webpack://pleroma_fe/./node_modules/lodash/_isKey.js","webpack://pleroma_fe/./node_modules/lodash/_isKeyable.js","webpack://pleroma_fe/./node_modules/lodash/_isMasked.js","webpack://pleroma_fe/./node_modules/lodash/_isPrototype.js","webpack://pleroma_fe/./node_modules/lodash/_isStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapToArray.js","webpack://pleroma_fe/./node_modules/lodash/_matchesStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_memoizeCapped.js","webpack://pleroma_fe/./node_modules/lodash/_nativeCreate.js","webpack://pleroma_fe/./node_modules/lodash/_nativeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_nodeUtil.js","webpack://pleroma_fe/./node_modules/lodash/_objectToString.js","webpack://pleroma_fe/./node_modules/lodash/_overArg.js","webpack://pleroma_fe/./node_modules/lodash/_overRest.js","webpack://pleroma_fe/./node_modules/lodash/_root.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheAdd.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_setToArray.js","webpack://pleroma_fe/./node_modules/lodash/_setToString.js","webpack://pleroma_fe/./node_modules/lodash/_shortOut.js","webpack://pleroma_fe/./node_modules/lodash/_stackClear.js","webpack://pleroma_fe/./node_modules/lodash/_stackDelete.js","webpack://pleroma_fe/./node_modules/lodash/_stackGet.js","webpack://pleroma_fe/./node_modules/lodash/_stackHas.js","webpack://pleroma_fe/./node_modules/lodash/_stackSet.js","webpack://pleroma_fe/./node_modules/lodash/_strictIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_stringToPath.js","webpack://pleroma_fe/./node_modules/lodash/_toKey.js","webpack://pleroma_fe/./node_modules/lodash/_toSource.js","webpack://pleroma_fe/./node_modules/lodash/_trimmedEndIndex.js","webpack://pleroma_fe/./node_modules/lodash/constant.js","webpack://pleroma_fe/./node_modules/lodash/eq.js","webpack://pleroma_fe/./node_modules/lodash/filter.js","webpack://pleroma_fe/./node_modules/lodash/get.js","webpack://pleroma_fe/./node_modules/lodash/hasIn.js","webpack://pleroma_fe/./node_modules/lodash/identity.js","webpack://pleroma_fe/./node_modules/lodash/includes.js","webpack://pleroma_fe/./node_modules/lodash/isArguments.js","webpack://pleroma_fe/./node_modules/lodash/isArray.js","webpack://pleroma_fe/./node_modules/lodash/isArrayLike.js","webpack://pleroma_fe/./node_modules/lodash/isBuffer.js","webpack://pleroma_fe/./node_modules/lodash/isFunction.js","webpack://pleroma_fe/./node_modules/lodash/isLength.js","webpack://pleroma_fe/./node_modules/lodash/isObject.js","webpack://pleroma_fe/./node_modules/lodash/isObjectLike.js","webpack://pleroma_fe/./node_modules/lodash/isString.js","webpack://pleroma_fe/./node_modules/lodash/isSymbol.js","webpack://pleroma_fe/./node_modules/lodash/isTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/keys.js","webpack://pleroma_fe/./node_modules/lodash/memoize.js","webpack://pleroma_fe/./node_modules/lodash/property.js","webpack://pleroma_fe/./node_modules/lodash/sortBy.js","webpack://pleroma_fe/./node_modules/lodash/stubArray.js","webpack://pleroma_fe/./node_modules/lodash/stubFalse.js","webpack://pleroma_fe/./node_modules/lodash/toFinite.js","webpack://pleroma_fe/./node_modules/lodash/toInteger.js","webpack://pleroma_fe/./node_modules/lodash/toNumber.js","webpack://pleroma_fe/./node_modules/lodash/toString.js","webpack://pleroma_fe/./node_modules/lodash/values.js","webpack://pleroma_fe/./node_modules/parse-link-header/index.js","webpack://pleroma_fe/./node_modules/punycode/punycode.js","webpack://pleroma_fe/./node_modules/querystring/decode.js","webpack://pleroma_fe/./node_modules/querystring/encode.js","webpack://pleroma_fe/./node_modules/querystring/index.js","webpack://pleroma_fe/./node_modules/url/url.js","webpack://pleroma_fe/./node_modules/url/util.js","webpack://pleroma_fe/./node_modules/xtend/immutable.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/regenerator/index.js","webpack://pleroma_fe/webpack/bootstrap","webpack://pleroma_fe/webpack/runtime/compat get default export","webpack://pleroma_fe/webpack/runtime/define property getters","webpack://pleroma_fe/webpack/runtime/global","webpack://pleroma_fe/webpack/runtime/hasOwnProperty shorthand","webpack://pleroma_fe/webpack/runtime/make namespace object","webpack://pleroma_fe/webpack/runtime/node module decorator","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://pleroma_fe/./src/services/notification_utils/notification_utils.js","webpack://pleroma_fe/./node_modules/punycode.js/punycode.es6.js","webpack://pleroma_fe/./src/services/entity_normalizer/entity_normalizer.service.js","webpack://pleroma_fe/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://pleroma_fe/./node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","webpack://pleroma_fe/./src/sw.js","webpack://pleroma_fe/./src/i18n/service_worker_messages.js"],"sourcesContent":["export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"منشور مجهول، جارٍ البحث عنه…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"أعجِب بمنشورك\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"يُتابعك\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"تحميل الإشعارات الأقدم\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"الإخطارات\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"مقروء!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"شارَك منشورك\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publicació desconeguda, s'està cercant…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha marcat un estat teu\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha començat a seguir-te\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carrega més notificacions\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificacions\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Llegit!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha repetit el teu estat\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrat a\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No més notificacions\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"et vol seguir\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ha reaccionat amb \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error obtenint notificacions: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neznámý příspěvek, hledám jej…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"si oblíbil/a váš příspěvek\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vás nyní sleduje\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Načíst starší oznámení\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oznámení\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Číst!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zopakoval/a váš příspěvek\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Žádná další oznámení\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unbekannte Nachricht, suche danach…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorisierte deine Nachricht\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"folgt dir\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ältere Benachrichtigungen laden\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benachrichtigungen\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gelesen!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wiederholte deine Nachricht\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"möchte dir folgen\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrierte zu\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagierte mit \", _interpolate(_list(0))])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Benachrichtigungen mehr\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error beim laden von Neuigkeiten\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown status, searching for it…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching notifications: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorited your status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"followed you\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wants to follow you\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older notifications\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Read!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated your status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more notifications\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrated to\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reacted with \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"submitted a report\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poll has ended\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nekonata stato, serĉante ĝin…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ŝatis vian staton\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekabonis vin\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pli malnovajn sciigojn\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legite!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ripetis vian staton\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj sciigoj\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagis per \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migris al\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volas vin aboni\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris akirado de sciigoj: \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sendis raporton\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enketo finiĝis\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estado desconocido, buscándolo…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"le gusta tu estado\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"empezó a seguirte\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar notificaciones antiguas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificaciones\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¡Leído!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repitió tu estado\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay más notificaciones\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reaccionó con \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrado a\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"quiere seguirte\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error obteniendo notificaciones:\", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"alustas sinu jälgimist\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teated\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loe!\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reageeris \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kolis\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rohkem teateid ei ole\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taaspostitas su staatuse\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laadi vanemad teated\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"soovib Teid jälgida\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lisas su staatuse lemmikuks\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tundmatu staatus, otsin…\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Egoera ezezaguna, bilatzen…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zure mezua gogoko du\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zu jarraitzen zaitu\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kargatu jakinarazpen zaharragoak\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jakinarazpenak\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Irakurrita!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zure mezua errepikatu du\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ez dago jakinarazpen gehiago\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"kin erreakzionatu zuen\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hona migratua:\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jarraitu nahi zaitu\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Errorea jakinarazpenak eskuratzean: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Viestiä ei löydetty…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tykkäsi viestistäsi\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuraa sinua\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lataa vanhempia ilmoituksia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ilmoitukset\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lue!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toisti viestisi\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ei enempää ilmoituksia\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"lisäsi reaktion \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"siirtyi sivulle\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"haluaa seurata sinua\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Message inconnu, recherche en cours…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a aimé votre statut\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vous suit\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les notifications précédentes\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lu !\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a partagé votre statut\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune notification supplémentaire\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a migré à\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"a réagi avec \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"veut vous suivre\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Erreur de chargement des notifications : \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sondage terminé\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rapport envoyé\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post anaithnid. Cuardach dó…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toghadh le do phost\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lean tú\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luchtaigh fógraí aosta\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fógraí\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Léigh!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"athphostáil tú\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"סטאטוס לא ידוע, מחפש…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"אהב את הסטטוס שלך\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"עקב אחריך\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"טען התראות ישנות\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"התראות\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"קרא!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"חזר על הסטטוס שלך\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"לא עוד התראות\"])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"követ téged\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Értesítések\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Olvasva!\"])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ti segue\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifiche\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letto!\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stato sconosciuto, lo sto cercando…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha gradito\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica notifiche precedenti\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha condiviso il tuo messaggio\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vuole seguirti\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fine delle notifiche\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"è migrato verso\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ha reagito con \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Errore nel caricare le notifiche: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがみつかりません。さがしています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがおきにいりされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいつうちをみる\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よんだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちはありません\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスが見つかりません。探しています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがお気に入りされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"古い通知をみる\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"読んだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知はありません\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" でリアクションしました\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスを引っ越しました\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたをフォローしたいです\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"通知の取得に失敗しました: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알 수 없는 게시물입니다, 검색합니다…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"관심을 가짐\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"팔로우함\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"이전 알림 불러오기\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알림\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"읽음!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"리핏함\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알림이 없습니다\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"이사했습니다\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 로 반응했습니다\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"알림 불러오기 실패: \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"팔로우 요청\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"신고 내용을 전송함\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"투표가 끝남\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ukjent status, leter etter den…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"likte din status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fulgte deg\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last eldre varsler\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Varslinger\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gjentok din status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen gjenstående varsler\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ønsker å følge deg\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Onbekend bericht, aan het zoeken…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vond je bericht leuk\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgt jou\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oudere meldingen laden\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meldingen\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gelezen!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"herhaalde je bericht\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen meldingen meer\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"is gemigreerd naar\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wil je volgen\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reageerde met \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Fout bij ophalen van meldingen: \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"peiling is beëindigd\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estatut desconegut, sèm a lo cercar...\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a aimat vòstre estatut\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vos a seguit\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar las notificacions mai ancianas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notficacions\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legit !\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a repetit vòstre estatut\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas mai de notificacions\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieznany status, szukam go…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dodał(-a) twój status do ulubionych\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"obserwuje cię\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Załaduj starsze powiadomienia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Powiadomienia\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Przeczytane!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"powtórzył(-a) twój status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nie masz więcej powiadomień\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wyemigrował do\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"zareagował z \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"chce ciebie obserwować\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Błąd pobierania powiadomień: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publicação desconhecida, a procurar…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gostou do teu post\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seguiu-te\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carregar notificações antigas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificações\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lido!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partilhou o teu post\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sem mais notificações\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagiu com \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrou para\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"quer seguir-te\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Erro ao obter notificações: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"te-a urmărit\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificări\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Citit!\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Неизвестный статус, ищем…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"нравится ваш статус\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"начал(а) читать вас\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загрузить старые уведомления\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Уведомления\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прочесть\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"повторил(а) ваш статус\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"хочет читать вас\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"добавил(а) реакцию: \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"перехал на\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нет дальнейших уведомлений\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Ошибка при обновлении уведомлений: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neznáma správa, dohľadávam ju…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Chyba získavania upozornení: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"si obľúbil tvoju správu\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ťa nasleduje\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ťa chce nasledovať\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nahrať staršie upozornenia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upozornenia\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prečítané!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zopakoval tvoju správu\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Žiadne ďalšie upozornenia\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sa presťahoval na\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagoval nasledovne \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的状态,正在搜索中…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢了你的状态\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的通知\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已阅!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了你的状态\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的通知\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反应\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迁移到了\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要关注你\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得通知时发生错误:\", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票结束了\"])}\n }\n}","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&#39;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","'use strict';\n\nvar qs = require('querystring')\n , url = require('url')\n , xtend = require('xtend');\n\nconst PARSE_LINK_HEADER_MAXLEN = parseInt(process.env.PARSE_LINK_HEADER_MAXLEN) || 2000;\nconst PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED = process.env.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED != null\n\nfunction hasRel(x) {\n return x && x.rel;\n}\n\nfunction intoRels (acc, x) {\n function splitRel (rel) {\n acc[rel] = xtend(x, { rel: rel });\n }\n\n x.rel.split(/\\s+/).forEach(splitRel);\n\n return acc;\n}\n\nfunction createObjects (acc, p) {\n // rel=\"next\" => 1: rel 2: next\n var m = p.match(/\\s*(.+)\\s*=\\s*\"?([^\"]+)\"?/)\n if (m) acc[m[1]] = m[2];\n return acc;\n}\n\nfunction parseLink(link) {\n try {\n var m = link.match(/<?([^>]*)>(.*)/)\n , linkUrl = m[1]\n , parts = m[2].split(';')\n , parsedUrl = url.parse(linkUrl)\n , qry = qs.parse(parsedUrl.query);\n\n parts.shift();\n\n var info = parts\n .reduce(createObjects, {});\n \n info = xtend(qry, info);\n info.url = linkUrl;\n return info;\n } catch (e) {\n return null;\n }\n}\n\nfunction checkHeader(linkHeader){\n if (!linkHeader) return false;\n\n if (linkHeader.length > PARSE_LINK_HEADER_MAXLEN) {\n if (PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED) {\n throw new Error('Input string too long, it should be under ' + PARSE_LINK_HEADER_MAXLEN + ' characters.');\n } else {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = function (linkHeader) {\n if (!checkHeader(linkHeader)) return null;\n\n return linkHeader.split(/,\\s*</)\n .map(parseLink)\n .filter(hasRel)\n .reduce(intoRels, {});\n};\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import { filter, sortBy, includes } from 'lodash'\nimport { muteWordHits } from '../status_parser/status_parser.js'\nimport { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => {\n const rootState = store.rootState || store.state\n\n return ([\n rootState.config.notificationVisibility.likes && 'like',\n rootState.config.notificationVisibility.mentions && 'mention',\n rootState.config.notificationVisibility.repeats && 'repeat',\n rootState.config.notificationVisibility.follows && 'follow',\n rootState.config.notificationVisibility.followRequest && 'follow_request',\n rootState.config.notificationVisibility.moves && 'move',\n rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction',\n rootState.config.notificationVisibility.reports && 'pleroma:report',\n rootState.config.notificationVisibility.polls && 'poll'\n ].filter(_ => _))\n}\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction', 'poll']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nexport const isValidNotification = (notification) => {\n if (isStatusNotification(notification.type) && !notification.status) {\n return false\n }\n return true\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst isMutedNotification = (store, notification) => {\n if (!notification.status) return\n return notification.status.muted || muteWordHits(notification.status, store.rootGetters.mergedConfig.muteWords).length > 0\n}\n\nexport const maybeShowNotification = (store, notification) => {\n const rootState = store.rootState || store.state\n\n if (notification.seen) return\n if (!visibleTypes(store).includes(notification.type)) return\n if (notification.type === 'mention' && isMutedNotification(store, notification)) return\n\n const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)\n showDesktopNotification(rootState, notificationObject)\n}\n\nexport const filteredNotificationsFromStore = (store, types) => {\n // map is just to clone the array since sort mutates it and it causes some issues\n let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n sortedNotifications = sortBy(sortedNotifications, 'seen')\n return sortedNotifications.filter(\n (notification) => (types || visibleTypes(store)).includes(notification.type)\n )\n}\n\nexport const unseenNotificationsFromStore = store =>\n filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)\n\nexport const prepareNotificationObject = (notification, i18n) => {\n const notifObj = {\n tag: notification.id\n }\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.title = title\n notifObj.icon = notification.from_profile.profile_image_url\n let i18nString\n switch (notification.type) {\n case 'like':\n i18nString = 'favorited_you'\n break\n case 'repeat':\n i18nString = 'repeated_you'\n break\n case 'follow':\n i18nString = 'followed_you'\n break\n case 'move':\n i18nString = 'migrated_to'\n break\n case 'follow_request':\n i18nString = 'follow_request'\n break\n case 'pleroma:report':\n i18nString = 'submitted_report'\n break\n case 'poll':\n i18nString = 'poll_ended'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = i18n.t('notifications.' + i18nString)\n } else if (isStatusNotification(notification.type)) {\n notifObj.body = notification.status.text\n }\n\n // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...\n if (status && status.attachments && status.attachments.length > 0 && !status.nsfw &&\n status.attachments[0].mimetype.startsWith('image/')) {\n notifObj.image = status.attachments[0].url\n }\n\n return notifObj\n}\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","import escape from 'escape-html'\nimport parseLinkHeader from 'parse-link-header'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\nimport punycode from 'punycode.js'\n\n/** NOTICE! **\n * Do not initialize UI-generated data here.\n * It will override existing data.\n *\n * i.e. user.pinnedStatusIds was set to [] here\n * UI code would update it with data but upon next user fetch\n * it would be reverted back to []\n */\n\nconst qvitterStatusType = (status) => {\n if (status.is_post_verb) {\n return 'status'\n }\n\n if (status.retweeted_status) {\n return 'retweet'\n }\n\n if ((typeof status.uri === 'string' && status.uri.match(/(fave|objectType=Favourite)/)) ||\n (typeof status.text === 'string' && status.text.match(/favorited/))) {\n return 'favorite'\n }\n\n if (status.text.match(/deleted notice {{tag/) || status.qvitter_delete_notice) {\n return 'deletion'\n }\n\n if (status.text.match(/started following/) || status.activity_type === 'follow') {\n return 'follow'\n }\n\n return 'unknown'\n}\n\nexport const parseUser = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !Object.prototype.hasOwnProperty.call(data, 'avatar')\n\n output.inLists = null\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.fqn = data.fqn\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n if (data.pleroma.settings_store) {\n output.storage = data.pleroma.settings_store['pleroma-fe']\n }\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n\n if (data.pleroma.privileges) {\n output.privileges = data.pleroma.privileges\n } else if (data.pleroma.is_admin) {\n output.privileges = [\n 'users_read',\n 'users_manage_invites',\n 'users_manage_activation_state',\n 'users_manage_tags',\n 'users_manage_credentials',\n 'users_delete',\n 'messages_read',\n 'messages_delete',\n 'instances_delete',\n 'reports_manage_reports',\n 'moderation_log_read',\n 'announcements_manage_announcements',\n 'emoji_manage_emoji',\n 'statistics_read'\n ]\n } else if (data.pleroma.is_moderator) {\n output.privileges = [\n 'messages_delete',\n 'reports_manage_reports'\n ]\n } else {\n output.privileges = []\n }\n }\n\n if (data.source) {\n output.description = data.source.note\n output.default_scope = data.source.privacy\n output.fields = data.source.fields\n if (data.source.pleroma) {\n output.no_rich_text = data.source.pleroma.no_rich_text\n output.show_role = data.source.pleroma.show_role\n output.discoverable = data.source.pleroma.discoverable\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n const unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n output.screen_name_ui_contains_non_ascii = true\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n } else {\n output.screen_name_ui_contains_non_ascii = false\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !Object.prototype.hasOwnProperty.call(data, 'oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseSource = (data) => {\n const output = {}\n\n output.text = data.text\n output.spoiler_text = data.spoiler_text\n output.content_type = data.content_type\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n output.edited_at = data.edited_at\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n if (Object.prototype.hasOwnProperty.call(data, 'originalStatus')) {\n Object.assign(output, data.originalStatus)\n }\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n favourite: 'like',\n reblog: 'repeat'\n }\n const masto = !Object.prototype.hasOwnProperty.call(data, 'ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n if (data.report) {\n output.report = data.report\n output.report.content = data.report.content\n output.report.acct = parseUser(data.report.account)\n output.report.actor = parseUser(data.report.actor)\n output.report.statuses = data.report.statuses.map(parseStatus)\n }\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&apos;');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function detectModuloStart(scnr) {\r\n const spaces = peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n scnr.peek() === \"{\" /* BraceLeft */;\r\n scnr.resetPeek();\r\n return {\r\n isModulo: ret,\r\n hasSpace: spaces.length > 0\r\n };\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readModulo(scnr) {\r\n skipSpaces(scnr);\r\n const ch = scnr.currentChar();\r\n if (ch !== \"%\" /* Modulo */) {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n }\r\n scnr.next();\r\n return \"%\" /* Modulo */;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n if (isModulo) {\r\n return hasSpace\r\n ? getToken(context, 0 /* Text */, readText(scnr))\r\n : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n transformer.helper(\"type\" /* TYPE */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n generator.push(`, _type`);\r\n }\r\n else {\r\n generator.push(`, undefined, _type`);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\n */\nfunction includeBooleanAttr(value) {\n return !!value || value === '';\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return (attrValidationCache[name] = !isUnsafe);\n}\nconst propsToAttrMap = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n};\n/**\n * CSS properties that accept plain numbers\n */\nconst isNoUnitNumericStyleProp = /*#__PURE__*/ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +\n `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +\n `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +\n `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +\n `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +\n `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +\n // SVG\n `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +\n `stroke-miterlimit,stroke-opacity,stroke-width`);\n/**\n * Known attributes, this is used for stringification of runtime static nodes\n * so that we don't stringify bindings that cannot be set from HTML.\n * Don't also forget to allow `data-*` and `aria-*`!\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n */\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\n `value,width,wrap`);\n/**\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n */\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\n `color-interpolation-filters,color-profile,color-rendering,` +\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:(.+)/;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) ||\n (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = '' + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = '';\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escaped = '&quot;';\n break;\n case 38: // &\n escaped = '&amp;';\n break;\n case 39: // '\n escaped = '&#39;';\n break;\n case 60: // <\n escaped = '&lt;';\n break;\n case 62: // >\n escaped = '&gt;';\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\n// https://www.w3.org/TR/html52/syntax.html#comments\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, '');\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if ((aHasKey && !bHasKey) ||\n (!aHasKey && bHasKey) ||\n !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex(item => looseEqual(item, val));\n}\n\n/**\n * For converting {{ interpolation }} values to displayed strings.\n * @private\n */\nconst toDisplayString = (val) => {\n return isString(val)\n ? val\n : val == null\n ? ''\n : isArray(val) ||\n (isObject(val) &&\n (val.toString === objectToString || !isFunction(val.toString)))\n ? JSON.stringify(val, replacer, 2)\n : String(val);\n};\nconst replacer = (_key, val) => {\n // can't use isRef here since @vue/shared has no deps\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n }\n else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\n entries[`${key} =>`] = val;\n return entries;\n }, {})\n };\n }\n else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n }\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\n ? Object.freeze({})\n : {};\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\nconst NOOP = () => { };\n/**\n * Always return false.\n */\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith('onUpdate:');\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === '[object Map]';\nconst isSet = (val) => toTypeString(val) === '[object Set]';\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isSymbol = (val) => typeof val === 'symbol';\nconst isObject = (val) => val !== null && typeof val === 'object';\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n // extract \"RawType\" from strings like \"[object RawType]\"\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\nconst isIntegerKey = (key) => isString(key) &&\n key !== 'NaN' &&\n key[0] !== '-' &&\n '' + parseInt(key, 10) === key;\nconst isReservedProp = /*#__PURE__*/ makeMap(\n// the leading comma is intentional so empty string \"\" is also included\n',key,ref,ref_for,ref_key,' +\n 'onVnodeBeforeMount,onVnodeMounted,' +\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\nconst cacheStringFunction = (fn) => {\n const cache = Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-(\\w)/g;\n/**\n * @private\n */\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\n});\nconst hyphenateRE = /\\B([A-Z])/g;\n/**\n * @private\n */\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\n/**\n * @private\n */\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n/**\n * @private\n */\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n// compare whether a value has changed, accounting for NaN.\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name)\n ? `__props.${name}`\n : `__props[${JSON.stringify(name)}]`;\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isNoUnitNumericStyleProp, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`onScopeDispose() is called when there is no active effect scope` +\n ` to be associated with.`);\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit; // set was tracked\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n }\n else {\n deps[ptr++] = dep;\n }\n // clear bits\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = new WeakMap();\n// The number of effects currently being tracked recursively.\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\n/**\n * The bitwise track markers support at most 30 levels of recursion.\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\n * When recursion depth is greater, fall back to using a full cleanup.\n */\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = undefined;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n }\n else {\n cleanupEffect(this);\n }\n return this.fn();\n }\n finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = undefined;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n // stopped while running itself - defer the cleanup\n if (activeEffect === this) {\n this.deferStop = true;\n }\n else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === undefined ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, (depsMap = new Map()));\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, (dep = createDep()));\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { effect: activeEffect, target, type, key }\n : undefined;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit; // set newly tracked\n shouldTrack = !wasTracked(dep);\n }\n }\n else {\n // Full cleanup mode.\n shouldTrack = !dep.has(activeEffect);\n }\n if (shouldTrack) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n // never been tracked\n return;\n }\n let deps = [];\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\n // collection being cleared\n // trigger all effects for target\n deps = [...depsMap.values()];\n }\n else if (key === 'length' && isArray(target)) {\n depsMap.forEach((dep, key) => {\n if (key === 'length' || key >= newValue) {\n deps.push(dep);\n }\n });\n }\n else {\n // schedule runs for SET | ADD | DELETE\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n // also run for iteration key on ADD | DELETE | Map.SET\n switch (type) {\n case \"add\" /* TriggerOpTypes.ADD */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n else if (isIntegerKey(key)) {\n // new index added to array -> length changes\n deps.push(depsMap.get('length'));\n }\n break;\n case \"delete\" /* TriggerOpTypes.DELETE */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\" /* TriggerOpTypes.SET */:\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { target, type, key, newValue, oldValue, oldTarget }\n : undefined;\n if (deps.length === 1) {\n if (deps[0]) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(deps[0], eventInfo);\n }\n else {\n triggerEffects(deps[0]);\n }\n }\n }\n else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(createDep(effects), eventInfo);\n }\n else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n // spread into array for stabilization\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\n }\n if (effect.scheduler) {\n effect.scheduler();\n }\n else {\n effect.run();\n }\n }\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n/*#__PURE__*/\nObject.getOwnPropertyNames(Symbol)\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\n // function\n .filter(key => key !== 'arguments' && key !== 'caller')\n .map(key => Symbol[key])\n .filter(isSymbol));\nconst get = /*#__PURE__*/ createGetter();\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\n }\n // we run the method using the original args first (which may be reactive)\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n // if that didn't work, run it again using raw values.\n return arr[key](...args.map(toRaw));\n }\n else {\n return res;\n }\n };\n });\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\n instrumentations[key] = function (...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get(target, key, receiver) {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\n return shallow;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\n receiver ===\n (isReadonly\n ? shallow\n ? shallowReadonlyMap\n : readonlyMap\n : shallow\n ? shallowReactiveMap\n : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\" /* TrackOpTypes.GET */, key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n // ref unwrapping - skip unwrap for Array + integer key.\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n // Convert returned value into a proxy as well. we do the isObject check\n // here to avoid invalid value warning. Also need to lazy access readonly\n // and reactive here to avoid circular dependency.\n return isReadonly ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set = /*#__PURE__*/ createSetter();\nconst shallowSet = /*#__PURE__*/ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key)\n ? Number(key) < target.length\n : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n // don't trigger if target is something up in the prototype chain of original\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get,\n set,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\n// Props handlers are special in the sense that it should not unwrap top-level\n// refs (in order to allow refs to be explicitly passed down), but should\n// retain the reactivity of the normal readonly object.\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n});\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\n // of the value\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\n }\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n }\n else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n }\n else if (target !== rawTarget) {\n // #3602 readonly(reactive(Map))\n // ensure that the nested reactive `Map` can do tracking for itself\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\n }\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\n }\n return key === rawKey\n ? target.has(key)\n : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return Reflect.get(target, 'size', target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : undefined;\n // forward the operation before queueing reactions\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = (process.env.NODE_ENV !== 'production')\n ? isMap(target)\n ? new Map(target)\n : new Set(target)\n : undefined;\n // forward the operation before queueing reactions\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return target.forEach((value, key) => {\n // important: make sure the callback is\n // 1. invoked with the reactive map as `this` and 3rd arg\n // 2. the value received should be a corresponding reactive/readonly.\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function (...args) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\n const isKeyOnly = method === 'keys' && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly &&\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n // return a wrapped iterator which returns observed versions of the\n // values emitted from the real iterator\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done\n ? { value, done }\n : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function (...args) {\n if ((process.env.NODE_ENV !== 'production')) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\n iteratorMethods.forEach(method => {\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow\n ? isReadonly\n ? shallowReadonlyInstrumentations\n : shallowInstrumentations\n : isReadonly\n ? readonlyInstrumentations\n : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target\n ? instrumentations\n : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\n `which can lead to inconsistencies. ` +\n `Avoid differentiating between the raw and reactive versions ` +\n `of an object and only use the reactive version if possible.`);\n }\n}\n\nconst reactiveMap = new WeakMap();\nconst shallowReactiveMap = new WeakMap();\nconst readonlyMap = new WeakMap();\nconst shallowReadonlyMap = new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return 1 /* TargetType.COMMON */;\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n return 2 /* TargetType.COLLECTION */;\n default:\n return 0 /* TargetType.INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\n ? 0 /* TargetType.INVALID */\n : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\n/**\n * Creates a readonly copy of the original object. Note the returned copy is not\n * made reactive, but `readonly` can be called on an already reactive object.\n */\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n // target is already a Proxy, return it.\n // exception: calling readonly() on a reactive object\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\n return target;\n }\n // target already has corresponding Proxy\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n // only specific value types can be observed.\n const targetType = getTargetType(target);\n if (targetType === 0 /* TargetType.INVALID */) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n if ((process.env.NODE_ENV !== 'production')) {\n trackEffects(ref.dep || (ref.dep = createDep()), {\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(ref.dep, {\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value',\n newValue: newVal\n });\n }\n else {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = undefined;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref) {\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs)\n ? objectWithRefs\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = undefined;\n this.__v_isRef = true;\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === undefined ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n}\nfunction toRef(object, key, defaultValue) {\n const val = object[key];\n return isRef(val)\n ? val\n : new ObjectRefImpl(object, key, defaultValue);\n}\n\nvar _a;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = undefined;\n this.__v_isRef = true;\n this[_a] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\n }\n get value() {\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = (process.env.NODE_ENV !== 'production')\n ? () => {\n console.warn('Write operation failed: computed value is readonly');\n }\n : NOOP;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nvar _a$1;\nconst tick = /*#__PURE__*/ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = undefined;\n this._dirty = true;\n this.__v_isRef = true;\n this[_a$1] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n }\n else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n // chained upstream computeds are notified synchronously to ensure\n // value invalidation in case of sync access; normal effects are\n // deferred to be triggered in scheduler.\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(true /* computedTrigger */);\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return (this._value = this.effect.run());\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n return toRaw(this)._get();\n }\n}\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n // avoid props formatting or warn handler tracking deps that might be mutated\n // during patch, leading to infinite recursion.\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\n msg + args.join(''),\n instance && instance.proxy,\n trace\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\n .join('\\n'),\n trace\n ]);\n }\n else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n /* istanbul ignore if */\n if (trace.length &&\n // avoid spamming console during tests\n !false) {\n warnArgs.push(`\\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n // we can't just use the stack because it will be incomplete during updates\n // that did not start from the root. Re-construct the parent chain using\n // instance parent pointers.\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n }\n else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\n/* istanbul ignore next */\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\n const close = `>` + postfix;\n return vnode.props\n ? [open, ...formatProps(vnode.props), close]\n : [open + close];\n}\n/* istanbul ignore next */\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach(key => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\n/* istanbul ignore next */\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n }\n else if (typeof value === 'number' ||\n typeof value === 'boolean' ||\n value == null) {\n return raw ? value : [`${key}=${value}`];\n }\n else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n }\n else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n }\n else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if ((process.env.NODE_ENV !== 'production')) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n // crash in dev by default so it's more noticeable\n if (throwInDev) {\n throw err;\n }\n else {\n console.error(err);\n }\n }\n else {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if ((process.env.NODE_ENV !== 'production') &&\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = (process.env.NODE_ENV !== 'production')\n ? (job) => checkRecursiveUpdates(seen, job)\n : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n }\n else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`);\n return true;\n }\n else {\n seen.set(fn, count + 1);\n }\n }\n}\n\n/* eslint-disable no-restricted-globals */\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = new Set();\n// Expose the HMR runtime on the global object\n// This makes it entirely tree-shakable without polluting the exports and makes\n// it easier to be used in toolings like vue-loader\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\n// to be set so that its instances can be registered / removed.\nif ((process.env.NODE_ENV !== 'production')) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n // update initial record (for not-yet-rendered component)\n record.initialDef.render = newRender;\n [...record.instances].forEach(instance => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n // this flag forces child components with slot content to update\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n // update initial def (for not-yet-rendered components)\n updateComponentDef(record.initialDef, newComp);\n // create a snapshot which avoids the set being mutated during updates\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n // 1. Update existing comp definition to match new one\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n // 2. mark definition dirty. This forces the renderer to replace the\n // component on patch.\n hmrDirtyComponents.add(oldComp);\n }\n // 3. invalidate options resolution cache\n instance.appContext.optionsCache.delete(instance.type);\n // 4. actually update\n if (instance.ceReload) {\n // custom element\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n }\n else if (instance.parent) {\n // 4. Force the parent instance to re-render. This will cause all updated\n // components to be unmounted and re-mounted. Queue the update so that we\n // don't end up forcing the same parent to re-render multiple times.\n queueJob(instance.parent.update);\n // instance is the inner component of an async custom element\n // invoke to reset styles\n if (instance.parent.type.__asyncLoader &&\n instance.parent.ceReload) {\n instance.parent.ceReload(newComp.styles);\n }\n }\n else if (instance.appContext.reload) {\n // root instance mounted via createApp() has a reload method\n instance.appContext.reload();\n }\n else if (typeof window !== 'undefined') {\n // root instance inside tree created via raw render(). Force reload.\n window.location.reload();\n }\n else {\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\n }\n }\n // 5. make sure to cleanup dirty hmr components after update\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== '__file' && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n }\n catch (e) {\n console.error(e);\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\n `Full reload required.`);\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n }\n else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3000);\n }\n else {\n // non-browser env, assume not installed\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = \n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools &&\n typeof devtools.cleanupBuffer === 'function' &&\n // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\n };\n}\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if ((process.env.NODE_ENV !== 'production')) {\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) &&\n !(false )) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\n }\n }\n else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => a.trim());\n }\n if (number) {\n args = rawArgs.map(toNumber);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\n `Note that HTML attributes are case-insensitive and you cannot use ` +\n `v-on to listen to camelCase events when using in-DOM templates. ` +\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\n }\n }\n let handlerName;\n let handler = props[(handlerName = toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = toHandlerKey(camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n hasOwn(options, hyphenate(key)) ||\n hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled `<slot>`, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\n/**\n * dev only flag to track whether $attrs was used during render.\n * If $attrs was used during render then the warning for failed attrs\n * fallthrough can be suppressed.\n */\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(render.length > 1\n ? render(props, (process.env.NODE_ENV !== 'production')\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n let setRoot = undefined;\n if ((process.env.NODE_ENV !== 'production') &&\n result.patchFlag > 0 &&\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n // ignore v-model handlers when they fail to fallthrough\n if (!isModelListener(key)) {\n // remove `on`, lowercase first letter to reflect event casing\n // accurately\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n }\n else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(`Extraneous non-props attributes (` +\n `${extraAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes.`);\n }\n if (eventAttrs.length) {\n warn(`Extraneous non-emits event listeners (` +\n `${eventAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes. ` +\n `If the listener is intended to be a component custom event listener only, ` +\n `declare it using the \"emits\" option.`);\n }\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Runtime directive used on component with non-element root node. ` +\n `The directives will not function as intended.`);\n }\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Component inside <Transition> renders non-element root node ` +\n `that cannot be animated.`);\n }\n root.transition = vnode.transition;\n }\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\n setRoot(root);\n }\n else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\n/**\n * dev only\n * In dev mode, template root level comments are rendered, which turns the\n * template into a fragment root, but we need to locate the single element\n * root for attrs and scope id processing.\n */\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, undefined];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n }\n else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\n vnode.type === Comment // potential v-if branch switch\n );\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // Parent component's render function was hot-updated. Since this may have\n // caused the child component's slots content to have changed, we need to\n // force the child to update as well.\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\n hasWarned = true;\n // @ts-ignore `console.info` cannot be null error\n console[console.info ? 'info' : 'log'](`<Suspense> is an experimental feature and its API will likely change.`);\n }\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = toNumber(vnode.props && vnode.props.timeout);\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n if ((process.env.NODE_ENV !== 'production')) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(`suspense.resolve() is called without a pending branch.`);\n }\n if (suspense.isUnmounted) {\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\n }\n }\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(vnode);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\n warn(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`provide() can only be used inside setup().`);\n }\n }\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`injection \"${String(key)}\" not found.`);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\n `supports \\`watch(source, cb, options?) signature.`);\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n if ((process.env.NODE_ENV !== 'production') && !cb) {\n if (immediate !== undefined) {\n warn(`watch() \"immediate\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n if (deep !== undefined) {\n warn(`watch() \"deep\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n }\n const warnInvalidSource = (s) => {\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\n `a reactive object, or an array of these types.`);\n };\n const instance = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n }\n else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\n getter = () => source.map(s => {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\n }\n });\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = NOOP;\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return NOOP;\n }\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\n : hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n return () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\n // warn more than one non-comment child\n warn('<transition> can only be used on a single element or component. ' +\n 'Use <transition-group> for lists.');\n break;\n }\n child = c;\n hasFound = true;\n if (!(process.env.NODE_ENV !== 'production'))\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n // check mode\n if ((process.env.NODE_ENV !== 'production') &&\n mode &&\n mode !== 'in-out' &&\n mode !== 'out-in' &&\n mode !== 'default') {\n warn(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of <transition><keep-alive/></transition>, we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n instance.update();\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of <template v-for>\n const key = parentKey == null\n ? child.key\n : String(parentKey) + String(child.key != null ? child.key : i);\n // handle fragment children case, e.g. v-for\n if (child.type === Fragment) {\n if (child.patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n }\n // comment placeholders should be skipped, e.g. v-if\n else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n // #1126 if a transition children list contains multiple sub fragments, these\n // fragments will be merged into a flat children array. Since each v-for\n // fragment may contain different static bindings inside, we need to de-op\n // these children to force full diffs to ensure correct behavior.\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2 /* PatchFlags.BAIL */;\n }\n }\n return ret;\n}\n\n// implementation, close to no-op\nfunction defineComponent(options) {\n return isFunction(options) ? { setup: options, name: options.name } : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\n suspensible = true, onError: userOnError } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return (pendingRequest ||\n (thisRequest = pendingRequest =\n loader()\n .catch(err => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n }\n else {\n throw err;\n }\n })\n .then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if ((process.env.NODE_ENV !== 'production') && !comp) {\n warn(`Async component loader resolved to undefined. ` +\n `If you are using retry(), make sure to return its return value.`);\n }\n // interop module default\n if (comp &&\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n })));\n };\n return defineComponent({\n name: 'AsyncComponentWrapper',\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n // already resolved\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(err, instance, 13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\n };\n // suspense-controlled or SSR.\n if ((suspensible && instance.suspense) ||\n (isInSSRComponentSetup)) {\n return load()\n .then(comp => {\n return () => createInnerComp(comp, instance);\n })\n .catch(err => {\n onError(err);\n return () => errorComponent\n ? createVNode(errorComponent, {\n error: err\n })\n : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(`Async component timed out after ${timeout}ms.`);\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load()\n .then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n // parent is keep-alive, force update so the loaded component's\n // name is taken into account\n queueJob(instance.parent.update);\n }\n })\n .catch(err => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n }\n else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n }\n else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, { vnode: { ref, props, children, shapeFlag }, parent }) {\n const vnode = createVNode(comp, props, children);\n // ensure inner component inherits the async wrapper's ref owner\n vnode.ref = ref;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n // KeepAlive communicates with the instantiated renderer via the\n // ctx where the renderer passes in its internals,\n // and the KeepAlive instance exposes activate/deactivate implementations.\n // The whole point of this is to avoid importing KeepAlive directly in the\n // renderer to facilitate tree-shaking.\n const sharedContext = instance.ctx;\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\n // for KeepAlive, we just need to render its children\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = new Map();\n const keys = new Set();\n let current = null;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\n const storageContainer = createElement('div');\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance = vnode.component;\n move(vnode, container, anchor, 0 /* MoveType.ENTER */, parentSuspense);\n // in case props have changed\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\n queuePostRenderEffect(() => {\n instance.isDeactivated = false;\n if (instance.a) {\n invokeArrayFns(instance.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance = vnode.component;\n move(vnode, storageContainer, null, 1 /* MoveType.LEAVE */, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance.da) {\n invokeArrayFns(instance.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n instance.isDeactivated = true;\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n function unmount(vnode) {\n // reset the shapeFlag so it can be properly unmounted\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || cached.type !== current.type) {\n unmount(cached);\n }\n else if (current) {\n // current active instance should no longer be kept-alive.\n // we can't unmount it now but it might be later, so reset its flag now.\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n // prune cache on include/exclude prop change\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\n include && pruneCache(name => matches(include, name));\n exclude && pruneCache(name => !matches(exclude, name));\n }, \n // prune post-render after `current` has been updated\n { flush: 'post', deep: true });\n // cache sub tree after render\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n // fix #1621, the pendingCacheKey could be 0\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach(cached => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type) {\n // current instance will be unmounted as part of keep-alive's unmount\n resetShapeFlag(vnode);\n // but invoke its deactivated hook here\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n }\n else if (!isVNode(rawVNode) ||\n (!(rawVNode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) &&\n !(rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */))) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n // for async components, name check should be based in its loaded\n // inner component if available\n const name = getComponentName(isAsyncWrapper(vnode)\n ? vnode.type.__asyncResolved || {}\n : comp);\n const { include, exclude, max } = props;\n if ((include && (!name || !matches(include, name))) ||\n (exclude && name && matches(exclude, name))) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n // clone vnode if it's reused because we are going to mutate it\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n rawVNode.ssContent = vnode;\n }\n }\n // #1513 it's possible for the returned vnode to be cloned due to attr\n // fallthrough or scopeId, so the vnode here may not be the final vnode\n // that is mounted. Instead of caching it directly, we store the pending\n // key and cache `instance.subTree` (the normalized vnode) in\n // beforeMount/beforeUpdate hooks.\n pendingCacheKey = key;\n if (cachedVNode) {\n // copy over mounted state\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n // recursively update transition hooks on subTree\n setTransitionHooks(vnode, vnode.transition);\n }\n // avoid vnode being mounted as fresh\n vnode.shapeFlag |= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n // make this key the freshest\n keys.delete(key);\n keys.add(key);\n }\n else {\n keys.add(key);\n // prune oldest entry\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n // avoid vnode being unmounted\n vnode.shapeFlag |= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n }\n else if (isString(pattern)) {\n return pattern.split(',').includes(name);\n }\n else if (pattern.test) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\" /* LifecycleHooks.ACTIVATED */, target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\" /* LifecycleHooks.DEACTIVATED */, target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n // cache the deactivate branch check wrapper for injected hooks so the same\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\n // deactivation check\".\n const wrappedHook = hook.__wdc ||\n (hook.__wdc = () => {\n // only fire the hook if the target instance is NOT in a deactivated branch.\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n // In addition to registering it on the target instance, we walk up the parent\n // chain and register it on all ancestor instances that are keep-alive roots.\n // This avoids the need to walk the entire component tree when invoking these\n // hooks, and more importantly, avoids the need to track child components in\n // arrays.\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n // injectHook wraps the original for error handling, so make sure to remove\n // the wrapped version.\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n let shapeFlag = vnode.shapeFlag;\n if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {\n shapeFlag -= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n }\n if (shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {\n shapeFlag -= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n }\n vnode.shapeFlag = shapeFlag;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */ ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n // cache the error handling wrapper for injected hooks so the same hook\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\n // handling\".\n const wrappedHook = hook.__weh ||\n (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n // Set currentInstance during hook invocation.\n // This assumes the hook does not synchronously trigger other hooks, which\n // can only be false when the user does something really funky.\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n }\n else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\n warn(`${apiName} is called when there is no active component instance to be ` +\n `associated with. ` +\n `Lifecycle injection APIs can only be used during execution of setup().` +\n (` If you are using async setup(), make sure to register lifecycle ` +\n `hooks before the first await statement.`\n ));\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* LifecycleHooks.SERVER_PREFETCH */) &&\n injectHook(lifecycle, (...args) => hook(...args), target);\nconst onBeforeMount = createHook(\"bm\" /* LifecycleHooks.BEFORE_MOUNT */);\nconst onMounted = createHook(\"m\" /* LifecycleHooks.MOUNTED */);\nconst onBeforeUpdate = createHook(\"bu\" /* LifecycleHooks.BEFORE_UPDATE */);\nconst onUpdated = createHook(\"u\" /* LifecycleHooks.UPDATED */);\nconst onBeforeUnmount = createHook(\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */);\nconst onUnmounted = createHook(\"um\" /* LifecycleHooks.UNMOUNTED */);\nconst onServerPrefetch = createHook(\"sp\" /* LifecycleHooks.SERVER_PREFETCH */);\nconst onRenderTriggered = createHook(\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */);\nconst onRenderTracked = createHook(\"rtc\" /* LifecycleHooks.RENDER_TRACKED */);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\" /* LifecycleHooks.ERROR_CAPTURED */, hook, target);\n}\n\n/**\nRuntime helper for applying directives to a vnode. Example usage:\n\nconst comp = resolveComponent('comp')\nconst foo = resolveDirective('foo')\nconst bar = resolveDirective('bar')\n\nreturn withDirectives(h(comp), [\n [foo, this.x],\n [bar, this.y]\n])\n*/\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn('Do not use built-in directive ids as custom directive id: ' + name);\n }\n}\n/**\n * Adds directives to a VNode.\n */\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) ||\n internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8 /* ErrorCodes.DIRECTIVE_HOOK */, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst COMPONENTS = 'components';\nconst DIRECTIVES = 'directives';\n/**\n * @private\n */\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\n/**\n * @private\n */\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n }\n else {\n // invalid types will fallthrough to createVNode and raise warning\n return (component || NULL_DYNAMIC_COMPONENT);\n }\n}\n/**\n * @private\n */\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\n// implementation\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n // explicit self name has highest priority\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false /* do not include inferred name to avoid breaking existing code */);\n if (selfName &&\n (selfName === name ||\n selfName === camelize(name) ||\n selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = \n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) ||\n // global registration\n resolve(instance.appContext[type], name);\n if (!res && maybeSelfReference) {\n // fallback to implicit self-reference\n return Component;\n }\n if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {\n const extra = type === COMPONENTS\n ? `\\nIf this is a native custom element, make sure to exclude it from ` +\n `component resolution via compilerOptions.isCustomElement.`\n : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`resolve${capitalize(type.slice(0, -1))} ` +\n `can only be used in render() or setup().`);\n }\n}\nfunction resolve(registry, name) {\n return (registry &&\n (registry[name] ||\n registry[camelize(name)] ||\n registry[capitalize(camelize(name))]));\n}\n\n/**\n * Actual implementation\n */\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = (cache && cache[index]);\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, undefined, cached && cached[i]);\n }\n }\n else if (typeof source === 'number') {\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, undefined, cached && cached[i]);\n }\n }\n else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, undefined, cached && cached[i]));\n }\n else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n }\n else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\n/**\n * Compiler runtime helper for creating dynamic slots object\n * @private\n */\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n // array of dynamic slot generated by <template v-for=\"...\" #[...]>\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n }\n else if (slot) {\n // conditional single slot generated by <template v-if=\"...\" #foo>\n slots[slot.name] = slot.key\n ? (...args) => {\n const res = slot.fn(...args);\n // attach branch key so each conditional branch is considered a\n // different fragment\n if (res)\n res.key = slot.key;\n return res;\n }\n : slot.fn;\n }\n }\n return slots;\n}\n\n/**\n * Compiler runtime helper for rendering `<slot/>`\n * @private\n */\nfunction renderSlot(slots, name, props = {}, \n// this is not a user-facing function, so the fallback is always generated by\n// the compiler and guaranteed to be a function returning an array\nfallback, noSlotted) {\n if (currentRenderingInstance.isCE ||\n (currentRenderingInstance.parent &&\n isAsyncWrapper(currentRenderingInstance.parent) &&\n currentRenderingInstance.parent.isCE)) {\n return createVNode('slot', name === 'default' ? null : { name }, fallback && fallback());\n }\n let slot = slots[name];\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\n `function. You need to mark this component with $dynamic-slots in the ` +\n `parent template.`);\n slot = () => [];\n }\n // a compiled slot disables block tracking by default to avoid manual\n // invocation interfering with template-based block tracking, but in\n // `renderSlot` we can be sure that it's template-based so we can force\n // enable it.\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, {\n key: props.key ||\n // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n (validSlotContent && validSlotContent.key) ||\n `_${name}`\n }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* SlotFlags.STABLE */\n ? 64 /* PatchFlags.STABLE_FRAGMENT */\n : -2 /* PatchFlags.BAIL */);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + '-s'];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment &&\n !ensureValidVNode(child.children))\n return false;\n return true;\n })\n ? vnodes\n : null;\n}\n\n/**\n * For prefixing keys in v-on=\"obj\" with \"on\"\n * @private\n */\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if ((process.env.NODE_ENV !== 'production') && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key)\n ? `on:${key}`\n : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\n/**\n * #2437 In Vue 3, functional components do not have a public instance proxy but\n * they exist in the internal parent chain. For code that relies on traversing\n * public $parent chains, skip functional ones and go to the parent instead.\n */\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = \n// Move PURE marker to new line to workaround compiler discarding it\n// due to type annotation\n/*#__PURE__*/ extend(Object.create(null), {\n $: i => i,\n $el: i => i.vnode.el,\n $data: i => i.data,\n $props: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.props) : i.props),\n $attrs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.attrs) : i.attrs),\n $slots: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.slots) : i.slots),\n $refs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.refs) : i.refs),\n $parent: i => getPublicInstance(i.parent),\n $root: i => getPublicInstance(i.root),\n $emit: i => i.emit,\n $options: i => (__VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type),\n $forceUpdate: i => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: i => (__VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP)\n});\nconst isReservedPrefix = (key) => key === '_' || key === '$';\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n // for internal formatters to know that this is a Vue instance\n if ((process.env.NODE_ENV !== 'production') && key === '__isVue') {\n return true;\n }\n // prioritize <script setup> bindings during dev.\n // this allows even properties that start with _ or $ to be used - so that\n // it aligns with the production behavior where the render fn is inlined and\n // indeed has access to all declared variables.\n if ((process.env.NODE_ENV !== 'production') &&\n setupState !== EMPTY_OBJ &&\n setupState.__isScriptSetup &&\n hasOwn(setupState, key)) {\n return setupState[key];\n }\n // data / props / ctx\n // This getter gets called for every property access on the render context\n // during render and is a major hotspot. The most expensive part of this\n // is the multiple hasOwn() calls. It's much faster to do a simple property\n // access on a plain object, so we use an accessCache object (with null\n // prototype) to memoize what access type a key corresponds to.\n let normalizedProps;\n if (key[0] !== '$') {\n const n = accessCache[key];\n if (n !== undefined) {\n switch (n) {\n case 1 /* AccessTypes.SETUP */:\n return setupState[key];\n case 2 /* AccessTypes.DATA */:\n return data[key];\n case 4 /* AccessTypes.CONTEXT */:\n return ctx[key];\n case 3 /* AccessTypes.PROPS */:\n return props[key];\n // default: just fallthrough\n }\n }\n else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n accessCache[key] = 1 /* AccessTypes.SETUP */;\n return setupState[key];\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* AccessTypes.DATA */;\n return data[key];\n }\n else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) &&\n hasOwn(normalizedProps, key)) {\n accessCache[key] = 3 /* AccessTypes.PROPS */;\n return props[key];\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* AccessTypes.OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n // public $xxx properties\n if (publicGetter) {\n if (key === '$attrs') {\n track(instance, \"get\" /* TrackOpTypes.GET */, key);\n (process.env.NODE_ENV !== 'production') && markAttrsAccessed();\n }\n return publicGetter(instance);\n }\n else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) &&\n (cssModule = cssModule[key])) {\n return cssModule;\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n // user may set custom properties to `this` that start with `$`\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (\n // global properties\n ((globalProperties = appContext.config.globalProperties),\n hasOwn(globalProperties, key))) {\n {\n return globalProperties[key];\n }\n }\n else if ((process.env.NODE_ENV !== 'production') &&\n currentRenderingInstance &&\n (!isString(key) ||\n // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf('__v') !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(`Property ${JSON.stringify(key)} must be accessed via $data because it starts with a reserved ` +\n `character (\"$\" or \"_\") and is not proxied on the render context.`);\n }\n else if (instance === currentRenderingInstance) {\n warn(`Property ${JSON.stringify(key)} was accessed during render ` +\n `but is not defined on instance.`);\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n setupState[key] = value;\n return true;\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n }\n else if (hasOwn(instance.props, key)) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to mutate prop \"${key}\". Props are readonly.`, instance);\n return false;\n }\n if (key[0] === '$' && key.slice(1) in instance) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to mutate public property \"${key}\". ` +\n `Properties starting with $ are reserved and readonly.`, instance);\n return false;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n }\n else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n let normalizedProps;\n return (!!accessCache[key] ||\n (data !== EMPTY_OBJ && hasOwn(data, key)) ||\n (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) ||\n ((normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key)) ||\n hasOwn(ctx, key) ||\n hasOwn(publicPropertiesMap, key) ||\n hasOwn(appContext.config.globalProperties, key));\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n // invalidate key cache of a getter based property #5417\n target._.accessCache[key] = 0;\n }\n else if (hasOwn(descriptor, 'value')) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif ((process.env.NODE_ENV !== 'production') && !false) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn(`Avoid app logic that relies on enumerating keys on a component instance. ` +\n `The keys will be empty in production mode to avoid performance overhead.`);\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /*#__PURE__*/ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n // fast path for unscopables when using `with` block\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== '_' && !isGloballyWhitelisted(key);\n if ((process.env.NODE_ENV !== 'production') && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn(`Property ${JSON.stringify(key)} should not start with _ which is a reserved prefix for Vue internals.`);\n }\n return has;\n }\n});\n// dev only\n// In dev mode, the proxy target exposes the same properties as seen on `this`\n// for easier console inspection. In prod mode it will be an empty object so\n// these properties definitions can be skipped.\nfunction createDevRenderContext(instance) {\n const target = {};\n // expose internal instance for proxy handlers\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n // expose public properties\n Object.keys(publicPropertiesMap).forEach(key => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\n// dev only\nfunction exposePropsOnRenderContext(instance) {\n const { ctx, propsOptions: [propsOptions] } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach(key => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\n// dev only\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach(key => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn(`setup() return property ${JSON.stringify(key)} should not start with \"$\" or \"_\" ` +\n `which are reserved prefixes for Vue internals.`);\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nfunction createDuplicateChecker() {\n const cache = Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n }\n else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n // do not cache property access on public proxy during state initialization\n shouldCacheAccess = false;\n // call beforeCreate first before accessing other options since\n // the hook may mutate resolved options (#2791)\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\" /* LifecycleHooks.BEFORE_CREATE */);\n }\n const { \n // state\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \n // lifecycle\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \n // public API\n expose, inheritAttrs, \n // assets\n components, directives, filters } = options;\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\n if ((process.env.NODE_ENV !== 'production')) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* OptionTypes.PROPS */, key);\n }\n }\n }\n // options initialization order (to be consistent with Vue 2):\n // - props (already done outside of this function)\n // - inject\n // - methods\n // - data (deferred since it relies on `this` access)\n // - computed\n // - watch (deferred since it relies on `this` access)\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n // In dev mode, we use the `createRenderContext` function to define\n // methods to the proxy target, and those are read-only but\n // reconfigurable, so it needs to be redefined here\n if ((process.env.NODE_ENV !== 'production')) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n }\n else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Methods\" /* OptionTypes.METHODS */, key);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\n `Did you reference the function correctly?`);\n }\n }\n }\n if (dataOptions) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\n warn(`The data option must be a function. ` +\n `Plain object usage is no longer supported.`);\n }\n const data = dataOptions.call(publicThis, publicThis);\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\n `intend to perform data fetching before component renders, use ` +\n `async setup() + <Suspense>.`);\n }\n if (!isObject(data)) {\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\n }\n else {\n instance.data = reactive(data);\n if ((process.env.NODE_ENV !== 'production')) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* OptionTypes.DATA */, key);\n // expose data on ctx during dev\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n // state initialization complete at this point - start caching access\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt)\n ? opt.bind(publicThis, publicThis)\n : isFunction(opt.get)\n ? opt.get.bind(publicThis, publicThis)\n : NOOP;\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\n warn(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set)\n ? opt.set.bind(publicThis)\n : (process.env.NODE_ENV !== 'production')\n ? () => {\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\n }\n : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: v => (c.value = v)\n });\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Computed\" /* OptionTypes.COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions)\n ? provideOptions.call(publicThis)\n : provideOptions;\n Reflect.ownKeys(provides).forEach(key => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\" /* LifecycleHooks.CREATED */);\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach(_hook => register(_hook.bind(publicThis)));\n }\n else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach(key => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: val => (publicThis[key] = val)\n });\n });\n }\n else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n // options that are handled when creating the instance but also need to be\n // applied from mixins\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n // asset options.\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if ('default' in opt) {\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\n }\n else {\n injected = inject(opt.from || key);\n }\n }\n else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n // TODO remove the check in 3.3\n if (unwrapRef) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: v => (injected.value = v)\n });\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\n `and no longer needs \\`.value\\` in the next minor release. ` +\n `To opt-in to the new behavior now, ` +\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\n `temporary and will not be needed in the future.)`);\n }\n ctx[key] = injected;\n }\n }\n else {\n ctx[key] = injected;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Inject\" /* OptionTypes.INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(isArray(hook)\n ? hook.map(h => h.bind(instance.proxy))\n : hook.bind(instance.proxy), instance, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes('.')\n ? createPathGetter(publicThis, key)\n : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n }\n else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n }\n else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\n }\n else {\n const handler = isFunction(raw.handler)\n ? raw.handler.bind(publicThis)\n : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch option: \"${key}\"`, raw);\n }\n}\n/**\n * Resolve merged options and cache it on the component.\n * This is done only once per-component since the merging does not involve\n * instances.\n */\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n }\n else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n }\n else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\n }\n for (const key in from) {\n if (asMixin && key === 'expose') {\n (process.env.NODE_ENV !== 'production') &&\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\n `It should only be declared in the base component itself.`);\n }\n else {\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeObjectOptions,\n emits: mergeObjectOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(extend(Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\nisSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance.propsDefaults = Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n // ensure all declared prop keys are present\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = undefined;\n }\n }\n // validation\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n // stateful\n instance.props = isSSR ? props : shallowReactive(props);\n }\n else {\n if (!instance.type.props) {\n // functional w/ optional props, props === attrs\n instance.props = attrs;\n }\n else {\n // functional w/ declared props\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const { props, attrs, vnode: { patchFlag } } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !((process.env.NODE_ENV !== 'production') && isInHmrContext(instance)) &&\n (optimized || patchFlag > 0) &&\n !(patchFlag & 16 /* PatchFlags.FULL_PROPS */)) {\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // Compiler-generated props & no keys change, just set the updated\n // the props.\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n // skip if the prop key is a declared emit event listener\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n // PROPS flag guarantees rawProps to be non-null\n const value = rawProps[key];\n if (options) {\n // attr / props separation was done on init and will be consistent\n // in this code path, so just check if attrs have it.\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\n }\n }\n else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n }\n else {\n // full props update.\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n // in case of dynamic props, check if we need to delete keys from\n // the props object\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps ||\n // for camelCase\n (!hasOwn(rawProps, key) &&\n // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\n if (options) {\n if (rawPrevProps &&\n // for camelCase\n (rawPrevProps[key] !== undefined ||\n // for kebab-case\n rawPrevProps[kebabKey] !== undefined)) {\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\n }\n }\n else {\n delete props[key];\n }\n }\n }\n // in the case of functional component w/o props declaration, props and\n // attrs point to the same object so it should already have been updated.\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps ||\n (!hasOwn(rawProps, key) &&\n (!false ))) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n // trigger updates for $attrs in case it's used in component slots\n if (hasAttrsChanged) {\n trigger(instance, \"set\" /* TriggerOpTypes.SET */, '$attrs');\n }\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n // key, ref are reserved and never passed down\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n // prop option names are camelized during normalization, so to support\n // kebab -> camel conversion here we need to camelize the key.\n let camelKey;\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n }\n else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n }\n else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, 'default');\n // default values\n if (hasDefault && value === undefined) {\n const defaultValue = opt.default;\n if (opt.type !== Function && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n }\n else {\n setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(null, props);\n unsetCurrentInstance();\n }\n }\n else {\n value = defaultValue;\n }\n }\n // boolean casting\n if (opt[0 /* BooleanFlags.shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n }\n else if (opt[1 /* BooleanFlags.shouldCastTrue */] &&\n (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\n warn(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n }\n else if (raw) {\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\n warn(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = (normalized[normalizedKey] =\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* BooleanFlags.shouldCast */] = booleanIndex > -1;\n prop[1 /* BooleanFlags.shouldCastTrue */] =\n stringIndex < 0 || booleanIndex < stringIndex;\n // if the prop needs boolean casting or default value\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== '$') {\n return true;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\n// use function string name to check type constructors\n// so that it works across vms / iframes.\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ctor === null ? 'null' : '';\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex(t => isSameType(t, type));\n }\n else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\n/**\n * dev only\n */\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\n }\n}\n/**\n * dev only\n */\nfunction validateProp(name, value, prop, isAbsent) {\n const { type, required, validator } = prop;\n // required!\n if (required && isAbsent) {\n warn('Missing required prop: \"' + name + '\"');\n return;\n }\n // missing but optional\n if (value == null && !prop.required) {\n return;\n }\n // type check\n if (type != null && type !== true) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n // value is valid as long as one of the specified types match\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || '');\n isValid = valid;\n }\n if (!isValid) {\n warn(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n // custom validator\n if (validator && !validator(value)) {\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\n/**\n * dev only\n */\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else if (expectedType === 'null') {\n valid = value === null;\n }\n else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\n/**\n * dev only\n */\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\n/**\n * dev only\n */\nfunction styleValue(value, type) {\n if (type === 'String') {\n return `\"${value}\"`;\n }\n else if (type === 'Number') {\n return `${Number(value)}`;\n }\n else {\n return `${value}`;\n }\n}\n/**\n * dev only\n */\nfunction isExplicable(type) {\n const explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(elem => type.toLowerCase() === elem);\n}\n/**\n * dev only\n */\nfunction isBoolean(...args) {\n return args.some(elem => elem.toLowerCase() === 'boolean');\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\nconst normalizeSlotValue = (value) => isArray(value)\n ? value.map(normalizeVNode)\n : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n // already normalized - #5353\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\n `this will not track dependencies used in the slot. ` +\n `Invoke the slot function inside the render function instead.`);\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n }\n else if (value != null) {\n if ((process.env.NODE_ENV !== 'production') &&\n !(false )) {\n warn(`Non-function value encountered for slot \"${key}\". ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if ((process.env.NODE_ENV !== 'production') &&\n !isKeepAlive(instance.vnode) &&\n !(false )) {\n warn(`Non-function value encountered for default slot. ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n if (instance.vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // users can get the shallow readonly version of the slots object through `this.$slots`,\n // we should avoid the proxy object polluting the slots of the internal instance\n instance.slots = toRaw(children);\n // make compiler marker non-enumerable\n def(children, '_', type);\n }\n else {\n normalizeObjectSlots(children, (instance.slots = {}));\n }\n }\n else {\n instance.slots = {};\n if (children) {\n normalizeVNodeSlots(instance, children);\n }\n }\n def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // compiled slots.\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // Parent was HMR updated so slot content may have changed.\n // force update slots and mark instance for hmr as well\n extend(slots, children);\n }\n else if (optimized && type === 1 /* SlotFlags.STABLE */) {\n // compiled AND stable.\n // no need to update, and skip stale slots removal.\n needDeletionCheck = false;\n }\n else {\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\n // normalization.\n extend(slots, children);\n // #2893\n // when rendering the optimized slots by manually written render function,\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\n // i.e. let the `renderSlot` create the bailed Fragment\n if (!optimized && type === 1 /* SlotFlags.STABLE */) {\n delete slots._;\n }\n }\n }\n else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n }\n else if (children) {\n // non slot object children (direct value) passed to a component\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n // delete stale slots\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n delete slots[key];\n }\n }\n }\n};\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: undefined,\n warnHandler: undefined,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: Object.create(null),\n optionsCache: new WeakMap(),\n propsCache: new WeakMap(),\n emitsCache: new WeakMap()\n };\n}\nlet uid = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = Object.assign({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = new Set();\n let isMounted = false;\n const app = (context.app = {\n _uid: uid++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`app.config cannot be replaced. Modify individual options instead.`);\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\n }\n else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n }\n else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`A plugin must either be a function or an object with an \"install\" ` +\n `function.`);\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixin has already been applied to target app' +\n (mixin.name ? `: ${mixin.name}` : ''));\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixins are only available in builds supporting Options API');\n }\n return app;\n },\n component(name, component) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\n warn(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\n warn(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, isSVG) {\n if (!isMounted) {\n // #5571\n if ((process.env.NODE_ENV !== 'production') && rootContainer.__vue_app__) {\n warn(`There is already an app instance mounted on the host container.\\n` +\n ` If you want to mount another app on the same host container,` +\n ` you need to unmount the previous app by calling \\`app.unmount()\\` first.`);\n }\n const vnode = createVNode(rootComponent, rootProps);\n // store app context on the root VNode.\n // this will be set on the root instance on initial mount.\n vnode.appContext = context;\n // HMR root reload\n if ((process.env.NODE_ENV !== 'production')) {\n context.reload = () => {\n render(cloneVNode(vnode), rootContainer, isSVG);\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n }\n else {\n render(vnode, rootContainer, isSVG);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`App has already been mounted.\\n` +\n `If you want to remount the same app, move your app creation logic ` +\n `into a factory function and create fresh app instances for each ` +\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\n }\n },\n unmount() {\n if (isMounted) {\n render(null, app._container);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\n warn(`App already provides property with key \"${String(key)}\". ` +\n `It will be overwritten with the new value.`);\n }\n context.provides[key] = value;\n return app;\n }\n });\n return app;\n };\n}\n\n/**\n * Function for handling a template ref\n */\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n // when mounting async components, nothing needs to be done,\n // because the template ref is forwarded to inner component\n return;\n }\n const refValue = vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */\n ? getExposeProxy(vnode.component) || vnode.component.proxy\n : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if ((process.env.NODE_ENV !== 'production') && !owner) {\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\n `A vnode with ref must be created inside the render function.`);\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\n const setupState = owner.setupState;\n // dynamic ref changed. unset old ref\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n }\n else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12 /* ErrorCodes.FUNCTION_REF */, [value, refs]);\n }\n else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString\n ? hasOwn(setupState, ref)\n ? setupState[ref]\n : refs[ref]\n : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n }\n else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n }\n else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n }\n else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n }\n else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n }\n else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n }\n else {\n doSet();\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\nconst isComment = (node) => node.nodeType === 8 /* DOMNodeTypes.COMMENT */;\n// Note: hydration is DOM-specific\n// But we have to place it in core due to tight coupling with core - splitting\n// it out creates a ton of unnecessary complexity.\n// Hydration also depends on some renderer internal logic which needs to be\n// passed in via arguments.\nfunction createHydrationFunctions(rendererInternals) {\n const { mt: mountComponent, p: patch, o: { patchProp, createText, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to hydrate existing markup but container is empty. ` +\n `Performing full mount instead.`);\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hasMismatch = false;\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n if (hasMismatch && !false) {\n // this error should show up in production\n console.error(`Hydration completed but contains mismatches.`);\n }\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n const isFragmentStart = isComment(node) && node.data === '[';\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3 /* DOMNodeTypes.TEXT */) {\n // #5728 empty text node inside a slot can cause hydration failure\n // because the server rendered HTML won't contain a text node\n if (vnode.children === '') {\n insert((vnode.el = createText('')), parentNode(node), node);\n nextNode = node;\n }\n else {\n nextNode = onMismatch();\n }\n }\n else {\n if (node.data !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text mismatch:` +\n `\\n- Client: ${JSON.stringify(node.data)}` +\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (domType !== 8 /* DOMNodeTypes.COMMENT */ || isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n // entire template is static but SSRed as a fragment\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 /* DOMNodeTypes.ELEMENT */ || domType === 3 /* DOMNodeTypes.TEXT */) {\n // determine anchor, adopt content\n nextNode = node;\n // if the static vnode has its content stripped during build,\n // adopt it from the server-rendered HTML.\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children +=\n nextNode.nodeType === 1 /* DOMNodeTypes.ELEMENT */\n ? nextNode.outerHTML\n : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n }\n else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n if (domType !== 1 /* DOMNodeTypes.ELEMENT */ ||\n vnode.type.toLowerCase() !==\n node.tagName.toLowerCase()) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n // when setting up the render effect, if the initial vnode already\n // has .el set, the component will perform hydration instead of mount\n // on its sub-tree.\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\n // component may be async, so in the case of fragments we cannot rely\n // on component's rendered output to determine the end of the fragment\n // instead, we do a lookahead to find the end anchor node.\n nextNode = isFragmentStart\n ? locateClosingAsyncAnchor(node)\n : nextSibling(node);\n // #4293 teleport as component root\n if (nextNode &&\n isComment(nextNode) &&\n nextNode.data === 'teleport end') {\n nextNode = nextSibling(nextNode);\n }\n // #3787\n // if component is async, it may get moved / unmounted before its\n // inner component is loaded, so we need to give it a placeholder\n // vnode that matches its adopted DOM.\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode\n ? nextNode.previousSibling\n : container.lastChild;\n }\n else {\n subTree =\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n if (domType !== 8 /* DOMNodeTypes.COMMENT */) {\n nextNode = onMismatch();\n }\n else {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\n }\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\n // #4006 for form elements with non-string v-model value bindings\n // e.g. <option :value=\"obj\">, <input type=\"checkbox\" :true-value=\"1\">\n const forcePatchValue = (type === 'input' && dirs) || type === 'option';\n // skip props & children if this is hoisted static nodes\n // #5405 in dev, always hydrate children for HMR\n if ((process.env.NODE_ENV !== 'production') || forcePatchValue || patchFlag !== -1 /* PatchFlags.HOISTED */) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n if (forcePatchValue ||\n !optimized ||\n patchFlag & (16 /* PatchFlags.FULL_PROPS */ | 32 /* PatchFlags.HYDRATE_EVENTS */)) {\n for (const key in props) {\n if ((forcePatchValue && key.endsWith('value')) ||\n (isOn(key) && !isReservedProp(key))) {\n patchProp(el, key, null, props[key], false, undefined, parentComponent);\n }\n }\n }\n else if (props.onClick) {\n // Fast path for click listeners (which is most often) to avoid\n // iterating through props.\n patchProp(el, 'onClick', null, props.onClick, false, undefined, parentComponent);\n }\n }\n // vnode / directive hooks\n let vnodeHooks;\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n // children\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */ &&\n // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);\n let hasWarned = false;\n while (next) {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\n `server rendered element contains more child nodes than client vdom.`);\n hasWarned = true;\n }\n // The SSRed DOM contains more nodes than it should. Remove them.\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n }\n else if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n if (el.textContent !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\n `- Client: ${el.textContent}\\n` +\n `- Server: ${vnode.children}`);\n el.textContent = vnode.children;\n }\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized\n ? children[i]\n : (children[i] = normalizeVNode(children[i]));\n if (node) {\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n else if (vnode.type === Text && !vnode.children) {\n continue;\n }\n else {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\n `server rendered element contains fewer child nodes than client vdom.`);\n hasWarned = true;\n }\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);\n if (next && isComment(next) && next.data === ']') {\n return nextSibling((vnode.anchor = next));\n }\n else {\n // fragment didn't hydrate successfully, since we didn't get a end anchor\n // back. This should have led to node/children mismatch warnings.\n hasMismatch = true;\n // since the anchor is missing, we need to create one and insert it\n insert((vnode.anchor = createComment(`]`)), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* DOMNodeTypes.TEXT */\n ? `(text)`\n : isComment(node) && node.data === '['\n ? `(start of fragment)`\n : ``);\n vnode.el = null;\n if (isFragment) {\n // remove excessive fragment nodes\n const end = locateClosingAsyncAnchor(node);\n while (true) {\n const next = nextSibling(node);\n if (next && next !== end) {\n remove(next);\n }\n else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n return next;\n };\n const locateClosingAsyncAnchor = (node) => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === '[')\n match++;\n if (node.data === ']') {\n if (match === 0) {\n return nextSibling(node);\n }\n else {\n match--;\n }\n }\n }\n }\n return node;\n };\n return [hydrate, hydrateNode];\n}\n\n/* eslint-disable no-restricted-globals */\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\n\n/**\n * This is only called in esm-bundler builds.\n * It is called when a renderer is created, in `baseCreateRenderer` so that\n * importing runtime-core is side-effects free.\n *\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if ((process.env.NODE_ENV !== 'production') && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(`Feature flag${multi ? `s` : ``} ${needWarn.join(', ')} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, ` +\n `which expects these compile-time feature flags to be globally injected ` +\n `via the bundler config in order to get better tree-shaking in the ` +\n `production bundle.\\n\\n` +\n `For more details, see https://link.vuejs.org/feature-flags.`);\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense\n ;\n/**\n * The createRenderer function accepts two generic arguments:\n * HostNode and HostElement, corresponding to Node and Element types in the\n * host environment. For example, for runtime-dom, HostNode would be the DOM\n * `Node` interface and HostElement would be the DOM `Element` interface.\n *\n * Custom renderers can pass in the platform specific types like this:\n *\n * ``` js\n * const { render, createApp } = createRenderer<Node, Element>({\n * patchProp,\n * ...nodeOps\n * })\n * ```\n */\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\n// Separate API for creating hydration-enabled renderer.\n// Hydration logic is only used when calling this function, making it\n// tree-shakable.\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\n// implementation\nfunction baseCreateRenderer(options, createHydrationFns) {\n // compile-time feature flags check\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options;\n // Note: functions inside this closure should use `const xxx = () => {}`\n // style in order to prevent being inlined by minifiers.\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = (process.env.NODE_ENV !== 'production') && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n // patching & not same type, unmount old tree\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, isSVG);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n patchStaticNode(n1, n2, container, isSVG);\n }\n break;\n case Fragment:\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid VNode type:', type, `(${typeof type})`);\n }\n }\n // set ref\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\n }\n else {\n const el = (n2.el = n1.el);\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\n }\n else {\n // there's no support for dynamic comments\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, isSVG) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n };\n /**\n * Dev / HMR only\n */\n const patchStaticNode = (n1, n2, container, isSVG) => {\n // static nodes are only patched during dev for HMR\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n // remove existing\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\n }\n else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n isSVG = isSVG || n2.type === 'svg';\n if (n1 == null) {\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { type, props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n // mount children first, since some props may rely on child content\n // being already rendered, e.g. `<select value>`\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(el, vnode.children);\n }\n else if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== 'foreignObject', slotScopeIds, optimized);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n for (const key in props) {\n if (key !== 'value' && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n /**\n * Special case for setting value on DOM elements:\n * - it can be order-sensitive (e.g. should be set *after* min/max, #2325, #4024)\n * - it needs to be forced (#1471)\n * #2353 proposes adding another renderer option to configure this, but\n * the properties affects are so finite it is worth special casing it\n * here to reduce the complexity. (Special casing it also should not\n * affect non-DOM renderers)\n */\n if ('value' in props) {\n hostPatchProp(el, 'value', null, props.value);\n }\n if ((vnodeHook = props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n // scopeId\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n Object.defineProperty(el, '__vnode', {\n value: vnode,\n enumerable: false\n });\n Object.defineProperty(el, '__vueParentComponent', {\n value: parentComponent,\n enumerable: false\n });\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n // #1583 For inside suspense + suspense not resolved case, enter hook should call when suspense resolved\n // #1689 For inside suspense + suspense resolved case, just call it\n const needCallTransitionHooks = (!parentSuspense || (parentSuspense && !parentSuspense.pendingBranch)) &&\n transition &&\n !transition.persisted;\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) ||\n needCallTransitionHooks ||\n dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if ((process.env.NODE_ENV !== 'production') &&\n subTree.patchFlag > 0 &&\n subTree.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n subTree =\n filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = (children[i] = optimized\n ? cloneIfMounted(children[i])\n : normalizeVNode(children[i]));\n patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const el = (n2.el = n1.el);\n let { patchFlag, dynamicChildren, dirs } = n2;\n // #1426 take the old vnode's patch flag into account since user may clone a\n // compiler-generated vnode, which de-opts to FULL_PROPS\n patchFlag |= n1.patchFlag & 16 /* PatchFlags.FULL_PROPS */;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n // disable recurse in beforeUpdate hooks\n parentComponent && toggleRecurse(parentComponent, false);\n if ((vnodeHook = newProps.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate');\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // HMR updated, force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n const areChildrenSVG = isSVG && n2.type !== 'foreignObject';\n if (dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n }\n else if (!optimized) {\n // full diff\n patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n }\n if (patchFlag > 0) {\n // the presence of a patchFlag means this element's render code was\n // generated by the compiler and can take the fast path.\n // in this path old node and new node are guaranteed to have the same shape\n // (i.e. at the exact same position in the source template)\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n // element props contain dynamic keys, full diff needed\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n else {\n // class\n // this flag is matched when the element has dynamic class bindings.\n if (patchFlag & 2 /* PatchFlags.CLASS */) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, 'class', null, newProps.class, isSVG);\n }\n }\n // style\n // this flag is matched when the element has dynamic style bindings\n if (patchFlag & 4 /* PatchFlags.STYLE */) {\n hostPatchProp(el, 'style', oldProps.style, newProps.style, isSVG);\n }\n // props\n // This flag is matched when the element has dynamic prop/attr bindings\n // other than class and style. The keys of dynamic prop/attrs are saved for\n // faster iteration.\n // Note dynamic keys like :[foo]=\"bar\" will cause this optimization to\n // bail out and go through a full diff because we need to unset the old key\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // if the flag is present then dynamicProps must be non-null\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n // #1471 force patch value\n if (next !== prev || key === 'value') {\n hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n }\n // text\n // This flag is matched when the element has only dynamic text children.\n if (patchFlag & 1 /* PatchFlags.TEXT */) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n }\n else if (!optimized && dynamicChildren == null) {\n // unoptimized, full diff\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, 'updated');\n }, parentSuspense);\n }\n };\n // The fast path for blocks.\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n // Determine the container (parent element) for the patch.\n const container = \n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el &&\n // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment ||\n // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) ||\n // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 64 /* ShapeFlags.TELEPORT */))\n ? hostParentNode(oldVNode.el)\n : // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer;\n patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n for (const key in newProps) {\n // empty string is not valid prop\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n // defer patching value\n if (next !== prev && key !== 'value') {\n hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if ('value' in newProps) {\n hostPatchProp(el, 'value', oldProps.value, newProps.value);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const fragmentStartAnchor = (n2.el = n1 ? n1.el : hostCreateText(''));\n const fragmentEndAnchor = (n2.anchor = n1 ? n1.anchor : hostCreateText(''));\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if ((process.env.NODE_ENV !== 'production') &&\n // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */)) {\n // HMR updated / Dev root fragment (w/ comments), force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n // check if this is a slot fragment with :slotted scope ids\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n // a fragment can only have array children\n // since they are either generated by the compiler, or implicitly created\n // from arrays.\n mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n if (patchFlag > 0 &&\n patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */ &&\n dynamicChildren &&\n // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n // a stable fragment (template root or <template v-for>) doesn't need to\n // patch children order, but it may contain dynamicChildren.\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null ||\n (parentComponent && n2 === parentComponent.subTree)) {\n traverseStaticChildren(n1, n2, true /* shallow */);\n }\n }\n else {\n // keyed / unkeyed, or manual fragments.\n // for keyed & unkeyed, since they are compiler generated from v-for,\n // each child is guaranteed to be a block so the fragment will never\n // have dynamicChildren.\n patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {\n parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n }\n else {\n mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n }\n }\n else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense));\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n // inject renderer internals for keepAlive\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n // resolve props and slots for setup context\n {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `init`);\n }\n }\n // setup() is async. This component relies on async logic to be resolved\n // before proceeding\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n // Give it a placeholder if this is not hydration\n // TODO handle self-defined fallback\n if (!initialVNode.el) {\n const placeholder = (instance.subTree = createVNode(Comment));\n processCommentNode(null, placeholder, container, anchor);\n }\n return;\n }\n setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = (n2.component = n1.component);\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep &&\n !instance.asyncResolved) {\n // async & still pending - just update props and slots\n // since the component's reactive effect for render isn't set-up yet\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n return;\n }\n else {\n // normal update\n instance.next = n2;\n // in case the child component is also queued, remove it to avoid\n // double updating the same child component in the same flush.\n invalidateJob(instance.update);\n // instance.update is the reactive effect.\n instance.update();\n }\n }\n else {\n // no update needed. just copy over properties\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n // beforeMount hook\n if (bm) {\n invokeArrayFns(bm);\n }\n // onVnodeBeforeMount\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n // vnode has adopted host node - perform hydration instead of mount.\n const hydrateSubTree = () => {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(el, instance.subTree, instance, parentSuspense, null);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n // note: we are moving the render call into an async callback,\n // which means it won't track dependencies - but it's ok because\n // a server-rendered async wrapper is already in resolved state\n // and it will never need to change.\n () => !instance.isUnmounted && hydrateSubTree());\n }\n else {\n hydrateSubTree();\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const subTree = (instance.subTree = renderComponentRoot(instance));\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(null, subTree, container, anchor, instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n // mounted hook\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n // onVnodeMounted\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n }\n // activated hook for keep-alive roots.\n // #1742 activated hook must be accessed after first render\n // since the hook may be injected by a child keep-alive\n if (initialVNode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */ ||\n (parent &&\n isAsyncWrapper(parent.vnode) &&\n parent.vnode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */)) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n // #2458: deference mount-only object parameters to prevent memleaks\n initialVNode = container = anchor = null;\n }\n else {\n // updateComponent\n // This is triggered by mutation of component's own state (next: null)\n // OR parent calling processComponent (next: VNode)\n let { next, bu, u, parent, vnode } = instance;\n let originNext = next;\n let vnodeHook;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(next || instance.vnode);\n }\n // Disallow component effect recursion during pre-lifecycle hooks.\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n else {\n next = vnode;\n }\n // beforeUpdate hook\n if (bu) {\n invokeArrayFns(bu);\n }\n // onVnodeBeforeUpdate\n if ((vnodeHook = next.props && next.props.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n // render\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(prevTree, nextTree, \n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el), \n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree), instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n // self-triggered update. In case of HOC, update parent component\n // vnode el. HOC is indicated by parent instance's subTree pointing\n // to child component's vnode\n updateHOCHostEl(instance, nextTree.el);\n }\n // updated hook\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n // onVnodeUpdated\n if ((vnodeHook = next.props && next.props.onVnodeUpdated)) {\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n }\n };\n // create reactive effect for rendering\n const effect = (instance.effect = new ReactiveEffect(componentUpdateFn, () => queueJob(update), instance.scope // track it in component's effect scope\n ));\n const update = (instance.update = () => effect.run());\n update.id = instance.uid;\n // allowRecurse\n // #1801, #2043 component render effects should allow recursive updates\n toggleRecurse(instance, true);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = instance.rtc\n ? e => invokeArrayFns(instance.rtc, e)\n : void 0;\n effect.onTrigger = instance.rtg\n ? e => invokeArrayFns(instance.rtg, e)\n : void 0;\n update.ownerInstance = instance;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n // props update may have triggered pre-flush watchers.\n // flush them before the render update.\n flushPreFlushCbs();\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n // fast path\n if (patchFlag > 0) {\n if (patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */) {\n // this could be either fully-keyed or mixed (some keyed some not)\n // presence of patchFlag means children are guaranteed to be arrays\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n else if (patchFlag & 256 /* PatchFlags.UNKEYED_FRAGMENT */) {\n // unkeyed\n patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n }\n // children has 3 possibilities: text, array or no children.\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n // text children fast path\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n }\n else {\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // prev children was array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // two arrays, cannot assume anything, do full diff\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n // no new children, just unmount old\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n }\n else {\n // prev children was text OR null\n // new children is array OR null\n if (prevShapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(container, '');\n }\n // mount new if array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n if (oldLength > newLength) {\n // remove old\n unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n }\n else {\n // mount new\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n }\n };\n // can be all-keyed or mixed\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n i++;\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = (c2[e2] = optimized\n ? cloneIfMounted(c2[e2])\n : normalizeVNode(c2[e2]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n e1--;\n e2--;\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(null, (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i])), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n i++;\n }\n }\n }\n // 4. common sequence + unmount\n // (a b) c\n // (a b)\n // i = 2, e1 = 2, e2 = 1\n // a (b c)\n // (b c)\n // i = 0, e1 = 0, e2 = -1\n else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n }\n // 5. unknown sequence\n // [i ... e1 + 1]: a b [c d e] f g\n // [i ... e2 + 1]: a b [e d c h] f g\n // i = 2, e1 = 4, e2 = 5\n else {\n const s1 = i; // prev starting index\n const s2 = i; // next starting index\n // 5.1 build key:index map for newChildren\n const keyToNewIndexMap = new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (nextChild.key != null) {\n if ((process.env.NODE_ENV !== 'production') && keyToNewIndexMap.has(nextChild.key)) {\n warn(`Duplicate keys found during update:`, JSON.stringify(nextChild.key), `Make sure keys are unique.`);\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n // 5.2 loop through old children left to be patched and try to patch\n // matching nodes & remove nodes that are no longer present\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n // used to track whether any node has moved\n let maxNewIndexSoFar = 0;\n // works as Map<newIndex, oldIndex>\n // Note that oldIndex is offset by +1\n // and oldIndex = 0 is a special value indicating the new node has\n // no corresponding old node.\n // used for determining longest stable subsequence\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n // all new children have been patched so this can only be a removal\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n }\n else {\n // key-less node, try to locate a key-less node of the same type\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 &&\n isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === undefined) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n }\n else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n patched++;\n }\n }\n // 5.3 move and mount\n // generate longest stable subsequence only when nodes have moved\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n // looping backwards so that we can use last patched node as anchor\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n // mount new\n patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (moved) {\n // move if:\n // There is no stable subsequence (e.g. a reverse)\n // OR current node is not among the stable sequence\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2 /* MoveType.REORDER */);\n }\n else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n // single nodes\n const needTransition = moveType !== 2 /* MoveType.REORDER */ &&\n shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition;\n if (needTransition) {\n if (moveType === 0 /* MoveType.ENTER */) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n }\n else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove, performLeave);\n }\n else {\n performLeave();\n }\n }\n }\n else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n // unset ref\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 /* ShapeFlags.ELEMENT */ && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n }\n else {\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeUnmount');\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n }\n else if (dynamicChildren &&\n // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment ||\n (patchFlag > 0 && patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */))) {\n // fast path for block nodes: only need to unmount dynamic children.\n unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n }\n else if ((type === Fragment &&\n patchFlag &\n (128 /* PatchFlags.KEYED_FRAGMENT */ | 256 /* PatchFlags.UNKEYED_FRAGMENT */)) ||\n (!optimized && shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */)) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if ((shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeUnmounted)) ||\n shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs &&\n invokeDirectiveHook(vnode, null, parentComponent, 'unmounted');\n }, parentSuspense);\n }\n };\n const remove = vnode => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if ((process.env.NODE_ENV !== 'production') &&\n vnode.patchFlag > 0 &&\n vnode.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */ &&\n transition &&\n !transition.persisted) {\n vnode.children.forEach(child => {\n if (child.type === Comment) {\n hostRemove(child.el);\n }\n else {\n remove(child);\n }\n });\n }\n else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition &&\n !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n }\n else {\n performLeave();\n }\n }\n else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n // For fragments, directly remove all contained DOM nodes.\n // (fragment child nodes cannot have transition)\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, update, subTree, um } = instance;\n // beforeUnmount hook\n if (bum) {\n invokeArrayFns(bum);\n }\n // stop effects in component scope\n scope.stop();\n // update may be null if a component is unmounted before its async\n // setup has resolved.\n if (update) {\n // so that scheduler will no longer invoke it\n update.active = false;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n // unmounted hook\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n // A component with async dep inside a pending suspense is unmounted before\n // its async dep resolves. This should remove the dep from the suspense, and\n // cause the suspense to resolve immediately if that was the last dep.\n if (parentSuspense &&\n parentSuspense.pendingBranch &&\n !parentSuspense.isUnmounted &&\n instance.asyncDep &&\n !instance.asyncResolved &&\n instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = vnode => {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n return vnode.suspense.next();\n }\n return hostNextSibling((vnode.anchor || vnode.el));\n };\n const render = (vnode, container, isSVG) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n }\n else {\n patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n }\n flushPreFlushCbs();\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(internals);\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\n/**\n * #1156\n * When a component is HMR-enabled, we need to make sure that all static nodes\n * inside a block also inherit the DOM element from the previous tree so that\n * HMR updates (which are full updates) can retrieve the element for patching.\n *\n * #2080\n * Inside keyed `template` fragment static children, if a fragment is moved,\n * the children will always be moved. Therefore, in order to ensure correct move\n * position, el should be inherited from previous nodes.\n */\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n // this is only called in the optimized path so array children are\n // guaranteed to be vnodes\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32 /* PatchFlags.HYDRATE_EVENTS */) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n // also inherit for comment nodes, but not placeholders (e.g. v-if which\n // would have received .el during block patch)\n if ((process.env.NODE_ENV !== 'production') && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === '');\nconst isTargetSVG = (target) => typeof SVGElement !== 'undefined' && target instanceof SVGElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Current renderer does not support string target for Teleports. ` +\n `(missing querySelector renderer option)`);\n return null;\n }\n else {\n const target = select(targetSelector);\n if (!target) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Failed to locate Teleport target with selector \"${targetSelector}\". ` +\n `Note the target element must exist before the component is mounted - ` +\n `i.e. the target cannot be rendered by the component itself, and ` +\n `ideally should be outside of the entire Vue component tree.`);\n }\n return target;\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !targetSelector && !isTeleportDisabled(props)) {\n warn(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {\n const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n // #3302\n // HMR updated, force full diff\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n // insert anchors in the main view\n const placeholder = (n2.el = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport start')\n : createText(''));\n const mainAnchor = (n2.anchor = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport end')\n : createText(''));\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const target = (n2.target = resolveTarget(n2.props, querySelector));\n const targetAnchor = (n2.targetAnchor = createText(''));\n if (target) {\n insert(targetAnchor, target);\n // #2652 we could be teleporting from a non-SVG tree into an SVG tree\n isSVG = isSVG || isTargetSVG(target);\n }\n else if ((process.env.NODE_ENV !== 'production') && !disabled) {\n warn('Invalid Teleport target on mount:', target, `(${typeof target})`);\n }\n const mount = (container, anchor) => {\n // Teleport *always* has Array children. This is enforced in both the\n // compiler and vnode children normalization.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n }\n else if (target) {\n mount(target, targetAnchor);\n }\n }\n else {\n // update content\n n2.el = n1.el;\n const mainAnchor = (n2.anchor = n1.anchor);\n const target = (n2.target = n1.target);\n const targetAnchor = (n2.targetAnchor = n1.targetAnchor);\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n isSVG = isSVG || isTargetSVG(target);\n if (dynamicChildren) {\n // fast path when the teleport happens to be a block root\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, isSVG, slotScopeIds);\n // even in block tree mode we need to make sure all root-level nodes\n // in the teleport inherit previous DOM references so that they can\n // be moved in future patches.\n traverseStaticChildren(n1, n2, true);\n }\n else if (!optimized) {\n patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, false);\n }\n if (disabled) {\n if (!wasDisabled) {\n // enabled -> disabled\n // move into main container\n moveTeleport(n2, container, mainAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n else {\n // target changed\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = (n2.target = resolveTarget(n2.props, querySelector));\n if (nextTarget) {\n moveTeleport(n2, nextTarget, null, internals, 0 /* TeleportMoveTypes.TARGET_CHANGE */);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid Teleport target on update:', target, `(${typeof target})`);\n }\n }\n else if (wasDisabled) {\n // disabled -> enabled\n // move into teleport target\n moveTeleport(n2, target, targetAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n }\n },\n remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n if (target) {\n hostRemove(targetAnchor);\n }\n // an unmounted teleport should always remove its children if not disabled\n if (doRemove || !isTeleportDisabled(props)) {\n hostRemove(anchor);\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(child, parentComponent, parentSuspense, true, !!child.dynamicChildren);\n }\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* TeleportMoveTypes.REORDER */) {\n // move target anchor if this is a target change.\n if (moveType === 0 /* TeleportMoveTypes.TARGET_CHANGE */) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2 /* TeleportMoveTypes.REORDER */;\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n // if this is a re-order and teleport is enabled (content is in target)\n // do not move children. So the opposite is: only move children if this\n // is not a reorder, or the teleport is disabled\n if (!isReorder || isTeleportDisabled(props)) {\n // Teleport has either Array children or no children.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, parentAnchor, 2 /* MoveType.REORDER */);\n }\n }\n }\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector } }, hydrateChildren) {\n const target = (vnode.target = resolveTarget(vnode.props, querySelector));\n if (target) {\n // if multiple teleports rendered to the same target element, we need to\n // pick up from where the last teleport finished instead of the first node\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);\n vnode.targetAnchor = targetNode;\n }\n else {\n vnode.anchor = nextSibling(node);\n // lookahead until we find the target anchor\n // we cannot rely on return value of hydrateChildren() because there\n // could be nested teleports\n let targetAnchor = targetNode;\n while (targetAnchor) {\n targetAnchor = nextSibling(targetAnchor);\n if (targetAnchor &&\n targetAnchor.nodeType === 8 &&\n targetAnchor.data === 'teleport anchor') {\n vnode.targetAnchor = targetAnchor;\n target._lpa =\n vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n hydrateChildren(targetNode, vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\n// Force-casted public typing for h and TSX props inference\nconst Teleport = TeleportImpl;\n\nconst Fragment = Symbol((process.env.NODE_ENV !== 'production') ? 'Fragment' : undefined);\nconst Text = Symbol((process.env.NODE_ENV !== 'production') ? 'Text' : undefined);\nconst Comment = Symbol((process.env.NODE_ENV !== 'production') ? 'Comment' : undefined);\nconst Static = Symbol((process.env.NODE_ENV !== 'production') ? 'Static' : undefined);\n// Since v-if and v-for are the two possible ways node structure can dynamically\n// change, once we consider v-if branches and each v-for fragment a block, we\n// can divide a template into nested blocks, and within each block the node\n// structure would be stable. This allows us to skip most children diffing\n// and only worry about the dynamic nodes (indicated by patch flags).\nconst blockStack = [];\nlet currentBlock = null;\n/**\n * Open a block.\n * This must be called before `createBlock`. It cannot be part of `createBlock`\n * because the children of the block are evaluated before `createBlock` itself\n * is called. The generated code typically looks like this:\n *\n * ```js\n * function render() {\n * return (openBlock(),createBlock('div', null, [...]))\n * }\n * ```\n * disableTracking is true when creating a v-for fragment block, since a v-for\n * fragment always diffs its children.\n *\n * @private\n */\nfunction openBlock(disableTracking = false) {\n blockStack.push((currentBlock = disableTracking ? null : []));\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\n// Whether we should be tracking dynamic child nodes inside a block.\n// Only tracks when this value is > 0\n// We are not using a simple boolean because this value may need to be\n// incremented/decremented by nested usage of v-once (see below)\nlet isBlockTreeEnabled = 1;\n/**\n * Block tracking sometimes needs to be disabled, for example during the\n * creation of a tree that needs to be cached by v-once. The compiler generates\n * code like this:\n *\n * ``` js\n * _cache[1] || (\n * setBlockTracking(-1),\n * _cache[1] = createVNode(...),\n * setBlockTracking(1),\n * _cache[1]\n * )\n * ```\n *\n * @private\n */\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n // save current block children on the block vnode\n vnode.dynamicChildren =\n isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n // close block\n closeBlock();\n // a block is always going to be patched, so track it as a child of its\n // parent block\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\n/**\n * @private\n */\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true /* isBlock */));\n}\n/**\n * Create a block root vnode. Takes the same exact arguments as `createVNode`.\n * A block root keeps track of dynamic nodes within the block in the\n * `dynamicChildren` array.\n *\n * @private\n */\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */));\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if ((process.env.NODE_ENV !== 'production') &&\n n2.shapeFlag & 6 /* ShapeFlags.COMPONENT */ &&\n hmrDirtyComponents.has(n2.type)) {\n // HMR only: if the component has been hot-updated, force a reload.\n return false;\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\n/**\n * Internal API for registering an arguments transform for createVNode\n * used for creating stubs in the test-utils\n * It is *internal* but needs to be exposed for test-utils to pick up proper\n * typings\n */\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(...(vnodeArgsTransformer\n ? vnodeArgsTransformer(args, currentRenderingInstance)\n : args));\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n return (ref != null\n ? isString(ref) || isRef(ref) || isFunction(ref)\n ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for }\n : ref\n : null);\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1 /* ShapeFlags.ELEMENT */, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n // normalize suspense children\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.normalize(vnode);\n }\n }\n else if (children) {\n // compiled element vnode - if children is passed, only possible types are\n // string or Array.\n vnode.shapeFlag |= isString(children)\n ? 8 /* ShapeFlags.TEXT_CHILDREN */\n : 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n // validate key\n if ((process.env.NODE_ENV !== 'production') && vnode.key !== vnode.key) {\n warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n // track vnode for block tree\n if (isBlockTreeEnabled > 0 &&\n // avoid a block node from tracking itself\n !isBlockNode &&\n // has current parent block\n currentBlock &&\n // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6 /* ShapeFlags.COMPONENT */) &&\n // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32 /* PatchFlags.HYDRATE_EVENTS */) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = ((process.env.NODE_ENV !== 'production') ? createVNodeWithArgsTransform : _createVNode);\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if ((process.env.NODE_ENV !== 'production') && !type) {\n warn(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n // createVNode receiving an existing vnode. This happens in cases like\n // <component :is=\"vnode\"/>\n // #2078 make sure to merge refs during the clone instead of overwriting it\n const cloned = cloneVNode(type, props, true /* mergeRef: true */);\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n }\n else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2 /* PatchFlags.BAIL */;\n return cloned;\n }\n // class component normalization.\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n // class & style normalization.\n if (props) {\n // for reactive or proxy objects, we need to clone it to enable mutation.\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n // reactive state objects need to be cloned since they are likely to be\n // mutated\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n // encode the vnode type information into a bitmap\n const shapeFlag = isString(type)\n ? 1 /* ShapeFlags.ELEMENT */\n : isSuspense(type)\n ? 128 /* ShapeFlags.SUSPENSE */\n : isTeleport(type)\n ? 64 /* ShapeFlags.TELEPORT */\n : isObject(type)\n ? 4 /* ShapeFlags.STATEFUL_COMPONENT */\n : isFunction(type)\n ? 2 /* ShapeFlags.FUNCTIONAL_COMPONENT */\n : 0;\n if ((process.env.NODE_ENV !== 'production') && shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */ && isProxy(type)) {\n type = toRaw(type);\n warn(`Vue received a Component which was made a reactive object. This can ` +\n `lead to unnecessary performance overhead, and should be avoided by ` +\n `marking the component with \\`markRaw\\` or using \\`shallowRef\\` ` +\n `instead of \\`ref\\`.`, `\\nComponent that was made reactive: `, type);\n }\n return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props\n ? extend({}, props)\n : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n // This is intentionally NOT using spread or extend to avoid the runtime\n // key enumeration cost.\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref\n ? // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref\n ? isArray(ref)\n ? ref.concat(normalizeRef(extraProps))\n : [ref, normalizeRef(extraProps)]\n : normalizeRef(extraProps)\n : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: (process.env.NODE_ENV !== 'production') && patchFlag === -1 /* PatchFlags.HOISTED */ && isArray(children)\n ? children.map(deepCloneVNode)\n : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment\n ? patchFlag === -1 // hoisted node\n ? 16 /* PatchFlags.FULL_PROPS */\n : patchFlag | 16 /* PatchFlags.FULL_PROPS */\n : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor\n };\n return cloned;\n}\n/**\n * Dev only, for HMR of hoisted vnodes reused in v-for\n * https://github.com/vitejs/vite/issues/2022\n */\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\n/**\n * @private\n */\nfunction createTextVNode(text = ' ', flag = 0) {\n return createVNode(Text, null, text, flag);\n}\n/**\n * @private\n */\nfunction createStaticVNode(content, numberOfNodes) {\n // A static vnode can contain multiple stringified elements, and the number\n // of elements is necessary for hydration.\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\n/**\n * @private\n */\nfunction createCommentVNode(text = '', \n// when used as the v-else branch, the comment node must be created as a\n// block to ensure correct updates.\nasBlock = false) {\n return asBlock\n ? (openBlock(), createBlock(Comment, null, text))\n : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === 'boolean') {\n // empty placeholder\n return createVNode(Comment);\n }\n else if (isArray(child)) {\n // fragment\n return createVNode(Fragment, null, \n // #3666, avoid reference pollution when reusing vnode\n child.slice());\n }\n else if (typeof child === 'object') {\n // already vnode, this should be the most common since compiled templates\n // always produce all-vnode children arrays\n return cloneIfMounted(child);\n }\n else {\n // strings and numbers\n return createVNode(Text, null, String(child));\n }\n}\n// optimized normalization for template-compiled render fns\nfunction cloneIfMounted(child) {\n return (child.el === null && child.patchFlag !== -1 /* PatchFlags.HOISTED */) ||\n child.memo\n ? child\n : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n }\n else if (isArray(children)) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n else if (typeof children === 'object') {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 64 /* ShapeFlags.TELEPORT */)) {\n // Normalize slot to plain children for plain element and Teleport\n const slot = children.default;\n if (slot) {\n // _c marker is added by withCtx() indicating this is a compiled slot\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n }\n else {\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n }\n else if (slotFlag === 3 /* SlotFlags.FORWARDED */ && currentRenderingInstance) {\n // a child component receives forwarded slots from the parent.\n // its slot type is determined by its parent's slot type.\n if (currentRenderingInstance.slots._ === 1 /* SlotFlags.STABLE */) {\n children._ = 1 /* SlotFlags.STABLE */;\n }\n else {\n children._ = 2 /* SlotFlags.DYNAMIC */;\n vnode.patchFlag |= 1024 /* PatchFlags.DYNAMIC_SLOTS */;\n }\n }\n }\n }\n else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n }\n else {\n children = String(children);\n // force teleport children to array so it can be moved around\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n children = [createTextVNode(children)];\n }\n else {\n type = 8 /* ShapeFlags.TEXT_CHILDREN */;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === 'class') {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n }\n else if (key === 'style') {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n }\n else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming &&\n existing !== incoming &&\n !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing\n ? [].concat(existing, incoming)\n : incoming;\n }\n }\n else if (key !== '') {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7 /* ErrorCodes.VNODE_HOOK */, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n // inherit parent app context - or - if root, adopt from root vnode\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid$1++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n next: null,\n subTree: null,\n effect: null,\n update: null,\n scope: new EffectScope(true /* detached */),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if ((process.env.NODE_ENV !== 'production')) {\n instance.ctx = createDevRenderContext(instance);\n }\n else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit$1.bind(null, instance);\n // apply custom element special handling\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance) => {\n currentInstance = instance;\n instance.scope.on();\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n currentInstance = null;\n};\nconst isBuiltInTag = /*#__PURE__*/ makeMap('slot,component');\nfunction validateComponentName(name, config) {\n const appIsNativeTag = config.isNativeTag || NO;\n if (isBuiltInTag(name) || appIsNativeTag(name)) {\n warn('Do not use built-in or reserved HTML elements as component id: ' + name);\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isInSSRComponentSetup = isSSR;\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children);\n const setupResult = isStateful\n ? setupStatefulComponent(instance, isSSR)\n : undefined;\n isInSSRComponentSetup = false;\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if ((process.env.NODE_ENV !== 'production')) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn(`\"compilerOptions\" is only supported when using a build of Vue that ` +\n `includes the runtime compiler. Since you are using a runtime-only ` +\n `build, the options should be passed via your build tool config instead.`);\n }\n }\n // 0. create render proxy property access cache\n instance.accessCache = Object.create(null);\n // 1. create public instance / render proxy\n // also mark it raw so it's never observed\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if ((process.env.NODE_ENV !== 'production')) {\n exposePropsOnRenderContext(instance);\n }\n // 2. call setup()\n const { setup } = Component;\n if (setup) {\n const setupContext = (instance.setupContext =\n setup.length > 1 ? createSetupContext(instance) : null);\n setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(setup, instance, 0 /* ErrorCodes.SETUP_FUNCTION */, [(process.env.NODE_ENV !== 'production') ? shallowReadonly(instance.props) : instance.props, setupContext]);\n resetTracking();\n unsetCurrentInstance();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n // return the promise so server-renderer can wait on it\n return setupResult\n .then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n })\n .catch(e => {\n handleError(e, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n });\n }\n else {\n // async setup returned Promise.\n // bail here and wait for re-entry.\n instance.asyncDep = setupResult;\n if ((process.env.NODE_ENV !== 'production') && !instance.suspense) {\n const name = (_a = Component.name) !== null && _a !== void 0 ? _a : 'Anonymous';\n warn(`Component <${name}>: setup function returned a promise, but no ` +\n `<Suspense> boundary was found in the parent component tree. ` +\n `A component with async setup() must be nested in a <Suspense> ` +\n `in order to be rendered.`);\n }\n }\n }\n else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n }\n else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n // setup returned an inline render function\n if (instance.type.__ssrInlineRender) {\n // when the function's name is `ssrRender` (compiled by SFC inline mode),\n // set it as ssrRender instead.\n instance.ssrRender = setupResult;\n }\n else {\n instance.render = setupResult;\n }\n }\n else if (isObject(setupResult)) {\n if ((process.env.NODE_ENV !== 'production') && isVNode(setupResult)) {\n warn(`setup() should not return VNodes directly - ` +\n `return a render function instead.`);\n }\n // setup returned bindings.\n // assuming a render function compiled from template is present.\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if ((process.env.NODE_ENV !== 'production')) {\n exposeSetupStateOnRenderContext(instance);\n }\n }\n else if ((process.env.NODE_ENV !== 'production') && setupResult !== undefined) {\n warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\n/**\n * For runtime-dom to register the compiler.\n * Note the exported method uses any to avoid d.ts relying on the compiler types.\n */\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = i => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\n// dev only\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n // template / render function normalization\n // could be already set when returned from setup()\n if (!instance.render) {\n // only do on-the-fly compile if not in SSR - SSR on-the-fly compilation\n // is done by server-renderer\n if (!isSSR && compile && !Component.render) {\n const template = Component.template ||\n resolveMergedOptions(instance).template;\n if (template) {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(extend({\n isCustomElement,\n delimiters\n }, compilerOptions), componentCompilerOptions);\n Component.render = compile(template, finalCompilerOptions);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = (Component.render || NOOP);\n // for runtime-compiled render functions using `with` blocks, the render\n // proxy used needs a different `has` handler which is more performant and\n // also only allows a whitelist of globals to fallthrough.\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n // support for 2.x options\n if (__VUE_OPTIONS_API__ && !(false )) {\n setCurrentInstance(instance);\n pauseTracking();\n applyOptions(instance);\n resetTracking();\n unsetCurrentInstance();\n }\n // warn missing template/render\n // the runtime compilation of template in SSR is done by server-render\n if ((process.env.NODE_ENV !== 'production') && !Component.render && instance.render === NOOP && !isSSR) {\n /* istanbul ignore if */\n if (!compile && Component.template) {\n warn(`Component provided template option but ` +\n `runtime compilation is not supported in this build of Vue.` +\n (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".`\n ) /* should not happen */);\n }\n else {\n warn(`Component is missing template or render function.`);\n }\n }\n}\nfunction createAttrsProxy(instance) {\n return new Proxy(instance.attrs, (process.env.NODE_ENV !== 'production')\n ? {\n get(target, key) {\n markAttrsAccessed();\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n },\n set() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n }\n }\n : {\n get(target, key) {\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = exposed => {\n if ((process.env.NODE_ENV !== 'production') && instance.exposed) {\n warn(`expose() should be called only once per setup().`);\n }\n instance.exposed = exposed || {};\n };\n let attrs;\n if ((process.env.NODE_ENV !== 'production')) {\n // We use getters in dev in case libs like test-utils overwrite instance\n // properties (overwrites should not be done in prod)\n return Object.freeze({\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n get slots() {\n return shallowReadonly(instance.slots);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n }\n else {\n return {\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return (instance.exposeProxy ||\n (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n }\n })));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component)\n ? Component.displayName || Component.name\n : Component.name || (includeInferred && Component.__name);\n}\n/* istanbul ignore next */\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n // try to infer the name based on reverse resolution\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name =\n inferFromRegistry(instance.components ||\n instance.parent.type.components) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && '__vccOpts' in value;\n}\n\nconst computed = ((getterOrOptions, debugOptions) => {\n // @ts-ignore\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n});\n\n// dev only\nconst warnRuntimeUsage = (method) => warn(`${method}() is a compiler-hint helper that is only usable inside ` +\n `<script setup> of a single file component. Its arguments should be ` +\n `compiled away and passing it at runtime has no effect.`);\n// implementation\nfunction defineProps() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\n// implementation\nfunction defineEmits() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\n/**\n * Vue `<script setup>` compiler macro for declaring a component's exposed\n * instance properties when it is accessed by a parent component via template\n * refs.\n *\n * `<script setup>` components are closed by default - i.e. variables inside\n * the `<script setup>` scope is not exposed to parent unless explicitly exposed\n * via `defineExpose`.\n *\n * This is only usable inside `<script setup>`, is compiled away in the\n * output and should **not** be actually called at runtime.\n */\nfunction defineExpose(exposed) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\n/**\n * Vue `<script setup>` compiler macro for providing props default values when\n * using type-based `defineProps` declaration.\n *\n * Example usage:\n * ```ts\n * withDefaults(defineProps<{\n * size?: number\n * labels?: string[]\n * }>(), {\n * size: 3,\n * labels: () => ['default label']\n * })\n * ```\n *\n * This is only usable inside `<script setup>`, is compiled away in the output\n * and should **not** be actually called at runtime.\n */\nfunction withDefaults(props, defaults) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !i) {\n warn(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\n/**\n * Runtime helper for merging default declarations. Imported by compiled code\n * only.\n * @internal\n */\nfunction mergeDefaults(raw, defaults) {\n const props = isArray(raw)\n ? raw.reduce((normalized, p) => ((normalized[p] = {}), normalized), {})\n : raw;\n for (const key in defaults) {\n const opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n props[key] = { type: opt, default: defaults[key] };\n }\n else {\n opt.default = defaults[key];\n }\n }\n else if (opt === null) {\n props[key] = { default: defaults[key] };\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`props default key \"${key}\" has no corresponding declaration.`);\n }\n }\n return props;\n}\n/**\n * Used to create a proxy for the rest element when destructuring props with\n * defineProps().\n * @internal\n */\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\n/**\n * `<script setup>` helper for persisting the current instance context over\n * async/await flows.\n *\n * `@vue/compiler-sfc` converts the following:\n *\n * ```ts\n * const x = await foo()\n * ```\n *\n * into:\n *\n * ```ts\n * let __temp, __restore\n * const x = (([__temp, __restore] = withAsyncContext(() => foo())),__temp=await __temp,__restore(),__temp)\n * ```\n * @internal\n */\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !ctx) {\n warn(`withAsyncContext called without active current instance. ` +\n `This is likely a bug.`);\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch(e => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\n// Actual implementation\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n // single vnode without props\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n // props without children\n return createVNode(type, propsOrChildren);\n }\n else {\n // omit props\n return createVNode(type, null, propsOrChildren);\n }\n }\n else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n }\n else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nconst ssrContextKey = Symbol((process.env.NODE_ENV !== 'production') ? `ssrContext` : ``);\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n warn(`Server rendering context not provided. Make sure to only call ` +\n `useSSRContext() conditionally in the server build.`);\n }\n return ctx;\n }\n};\n\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\n\nfunction initCustomFormatter() {\n /* eslint-disable no-restricted-globals */\n if (!(process.env.NODE_ENV !== 'production') || typeof window === 'undefined') {\n return;\n }\n const vueStyle = { style: 'color:#3ba776' };\n const numberStyle = { style: 'color:#0b1bc9' };\n const stringStyle = { style: 'color:#b62e24' };\n const keywordStyle = { style: 'color:#9d288c' };\n // custom formatter for Chrome\n // https://www.mattzeunert.com/2016/02/19/custom-chrome-devtools-object-formatters.html\n const formatter = {\n header(obj) {\n // TODO also format ComponentPublicInstance & ctx.slots/attrs in setup\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return ['div', vueStyle, `VueInstance`];\n }\n else if (isRef(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, genRefFlag(obj)],\n '<',\n formatValue(obj.value),\n `>`\n ];\n }\n else if (isReactive(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReactive' : 'Reactive'],\n '<',\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n }\n else if (isReadonly(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],\n '<',\n formatValue(obj),\n '>'\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n 'div',\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock('props', toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('setup', instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('data', toRaw(instance.data)));\n }\n const computed = extractKeys(instance, 'computed');\n if (computed) {\n blocks.push(createInstanceBlock('computed', computed));\n }\n const injected = extractKeys(instance, 'inject');\n if (injected) {\n blocks.push(createInstanceBlock('injected', injected));\n }\n blocks.push([\n 'div',\n {},\n [\n 'span',\n {\n style: keywordStyle.style + ';opacity:0.66'\n },\n '$ (internal): '\n ],\n ['object', { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return ['span', {}];\n }\n return [\n 'div',\n { style: 'line-height:1.25em;margin-bottom:0.6em' },\n [\n 'div',\n {\n style: 'color:#476582'\n },\n type\n ],\n [\n 'div',\n {\n style: 'padding-left:1.25em'\n },\n ...Object.keys(target).map(key => {\n return [\n 'div',\n {},\n ['span', keywordStyle, key + ': '],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === 'number') {\n return ['span', numberStyle, v];\n }\n else if (typeof v === 'string') {\n return ['span', stringStyle, JSON.stringify(v)];\n }\n else if (typeof v === 'boolean') {\n return ['span', keywordStyle, v];\n }\n else if (isObject(v)) {\n return ['object', { object: asRaw ? toRaw(v) : v }];\n }\n else {\n return ['span', stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if ((isArray(opts) && opts.includes(key)) ||\n (isObject(opts) && key in opts)) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some(m => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n }\n else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n // shallow clone\n ret.memo = memo.slice();\n return (cache[index] = ret);\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n // make sure to let parent block track it when returning cached\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\n// Core API ------------------------------------------------------------------\nconst version = \"3.2.41\";\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode,\n normalizeVNode\n};\n/**\n * SSR utils for \\@vue/server-renderer. Only exposed in ssr-possible builds.\n * @internal\n */\nconst ssrUtils = (_ssrUtils );\n/**\n * @internal only exposed in compat builds\n */\nconst resolveFilter = null;\n/**\n * @internal only exposed in compat builds.\n */\nconst compatUtils = (null);\n\nexport { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","/*!\n * vue-i18n v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, isString, hasOwn, isObject, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CompileErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, ref, computed, watch, getCurrentInstance, Fragment, h, effectScope, inject, onMounted, onUnmounted, shallowRef, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.2.2';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nlet code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\nconst inc$1 = () => ++code$1;\r\nconst I18nWarnCodes = {\r\n FALLBACK_TO_ROOT: code$1,\r\n NOT_SUPPORTED_PRESERVE: inc$1(),\r\n NOT_SUPPORTED_FORMATTER: inc$1(),\r\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n};\r\nconst warnMessages = {\r\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst I18nErrorCodes = {\r\n // composer module errors\r\n UNEXPECTED_RETURN_TYPE: code,\r\n // legacy module errors\r\n INVALID_ARGUMENT: inc(),\r\n // i18n module errors\r\n MUST_BE_CALL_SETUP_TOP: inc(),\r\n NOT_INSLALLED: inc(),\r\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n // directive module errors\r\n REQUIRED_VALUE: inc(),\r\n INVALID_VALUE: inc(),\r\n // vue-devtools errors\r\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n // unexpected error\r\n UNEXPECTED_ERROR: inc(),\r\n // not compatible legacy vue-i18n constructor\r\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n // bridge support vue 2.x only\r\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n // for enhancement\r\n __EXTEND_POINT__: inc() // 29\r\n};\r\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\r\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\r\n};\n\nconst TransrateVNodeSymbol = \r\n/* #__PURE__*/ makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes('.')) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split('.');\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n, messageResolver, flatJson } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(custom => {\r\n if ('locale' in custom && 'resource' in custom) {\r\n const { locale, resource } = custom;\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n }\r\n else {\r\n isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (messageResolver == null && flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getComponentOptions(instance) {\r\n return instance.type ;\r\n}\r\nfunction adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in componentOptions) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: componentOptions.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n {\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n }\r\n}\r\nfunction createTextNode(key) {\r\n return createVNode(Text, null, key, 0)\r\n ;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// extend VNode interface\r\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = () => {\r\n const instance = getCurrentInstance();\r\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createComposer(options = {}, VueI18nLegacy) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n let _warnHtmlMessage = __root\r\n ? __root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n const getCoreContext = () => {\r\n _isGlobal && setFallbackContext(null);\r\n const ctxOptions = {\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n messageResolver: options.messageResolver,\r\n __meta: { framework: 'vue' }\r\n };\r\n {\r\n ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n ctxOptions.numberFormats = _numberFormats.value;\r\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined;\r\n ctxOptions.__numberFormatters = isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ctxOptions.__v_emitter = isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined;\r\n }\r\n const ctx = createCoreContext(ctxOptions);\r\n _isGlobal && setFallbackContext(ctx);\r\n return ctx;\r\n };\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ]\r\n ;\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !arg.resolvedMessage;\r\n }\r\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n if (!_isGlobal) {\r\n _context.fallbackContext = __root\r\n ? getFallbackContext()\r\n : undefined;\r\n }\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n if (!_isGlobal) {\r\n _context.fallbackContext = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n }\r\n };\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n ? createTextNode(String(val))\r\n : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = Reflect.apply(translate, null, [_context, ...args]);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return _context.messageResolver(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root && inBrowser) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define basic composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [SetPluralRulesSymbol]: setPluralRules\r\n };\r\n {\r\n composer.datetimeFormats = datetimeFormats;\r\n composer.numberFormats = numberFormats;\r\n composer.rt = rt;\r\n composer.te = te;\r\n composer.tm = tm;\r\n composer.d = d;\r\n composer.n = n;\r\n composer.getDateTimeFormat = getDateTimeFormat;\r\n composer.setDateTimeFormat = setDateTimeFormat;\r\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n composer.getNumberFormat = getNumberFormat;\r\n composer.setNumberFormat = setNumberFormat;\r\n composer.mergeNumberFormat = mergeNumberFormat;\r\n composer[InejctWithOption] = options.__injectWithOption;\r\n composer[TransrateVNodeSymbol] = transrateVNode;\r\n composer[DatetimePartsSymbol] = datetimeParts;\r\n composer[NumberPartsSymbol] = numberParts;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageResolver: options.messageResolver,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createVueI18n(options = {}, VueI18nLegacy) {\r\n {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n rt(...args) {\r\n return Reflect.apply(composer.rt, composer, [...args]);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return Reflect.apply(composer.d, composer, [...args]);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return Reflect.apply(composer.n, composer, [...args]);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n }\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n default: 'parent' /* ComponetI18nScope */\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\nfunction getInterpolateArg(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n{ slots }, // SetupContext,\r\nkeys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot with list\r\n const ret = slots.default ? slots.default() : [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return ret.reduce((slot, current) => {\r\n return (slot = [\r\n ...slot,\r\n ...(isArray(current.children) ? current.children : [current])\r\n ]);\r\n }, []);\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getFragmentableTag(tag) {\r\n return Fragment ;\r\n}\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n * <div id=\"app\">\r\n * <!-- ... -->\r\n * <i18n path=\"term\" tag=\"label\" for=\"tos\">\r\n * <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\r\n * </i18n>\r\n * <!-- ... -->\r\n * </div>\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n return () => {\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n }\r\n};\n\nfunction isVNode(target) {\r\n return isArray(target) && !isString(target[0]);\r\n}\r\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n const node = slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n if (isVNode(node)) {\r\n node[0].key = `${part.type}-${index}`;\r\n }\r\n return node;\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n}\n\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = /*defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const _process = (binding) => {\r\n const { instance, modifiers, value } = binding;\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n }\r\n const parsedValue = parseValue(value);\r\n return [\r\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n composer\r\n ];\r\n };\r\n const register = (el, binding) => {\r\n const [textContent, composer] = _process(binding);\r\n if (inBrowser && i18n.global === composer) {\r\n // global scope only\r\n el.__i18nWatcher = watch(composer.locale, () => {\r\n binding.instance && binding.instance.$forceUpdate();\r\n });\r\n }\r\n el.__composer = composer;\r\n el.textContent = textContent;\r\n };\r\n const unregister = (el) => {\r\n if (inBrowser && el.__i18nWatcher) {\r\n el.__i18nWatcher();\r\n el.__i18nWatcher = undefined;\r\n delete el.__i18nWatcher;\r\n }\r\n if (el.__composer) {\r\n el.__composer = undefined;\r\n delete el.__composer;\r\n }\r\n };\r\n const update = (el, { value }) => {\r\n if (el.__composer) {\r\n const composer = el.__composer;\r\n const parsedValue = parseValue(value);\r\n el.textContent = Reflect.apply(composer.t, composer, [\r\n ...makeParams(parsedValue)\r\n ]);\r\n }\r\n };\r\n const getSSRProps = (binding) => {\r\n const [textContent] = _process(binding);\r\n return { textContent };\r\n };\r\n return {\r\n created: register,\r\n unmounted: unregister,\r\n beforeUpdate: update,\r\n getSSRProps\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n {\r\n app.directive('t', vTDirective(i18n));\r\n }\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el &&\r\n componentInstance.vnode.el.__VUE_I18N__ &&\r\n instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n const roots = new Map();\r\n api.on.getInspectorState(async (payload) => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n api.unhighlightElement();\r\n inspectScope(payload, i18n);\r\n if (payload.nodeId === 'global') {\r\n if (!roots.has(payload.app)) {\r\n const [root] = await api.getComponentInstances(payload.app);\r\n roots.set(payload.app, root);\r\n }\r\n api.highlightElement(roots.get(payload.app));\r\n }\r\n else {\r\n const instance = getComponentInstance(payload.nodeId, i18n);\r\n instance && api.highlightElement(instance);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getI18nScopeLable(instance) {\r\n return (instance.type.name ||\r\n instance.type.displayName ||\r\n instance.type.__file ||\r\n 'Anonymous');\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const tag = {\r\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n {\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '&lt;',\r\n '>': '&gt;',\r\n '\"': '&quot;',\r\n '&': '&amp;'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `<span>ƒ</span> ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${getI18nScopeLable(keyInstance)} Scope`\r\n });\r\n }\r\n}\r\nfunction getComponentInstance(nodeId, i18n) {\r\n let instance = null;\r\n if (nodeId !== 'global') {\r\n for (const [component, composer] of i18n.__instances.entries()) {\r\n if (composer.id.toString() === nodeId) {\r\n instance = component;\r\n break;\r\n }\r\n }\r\n }\r\n return instance;\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n // TODO:\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n return null;\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n {\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n }\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n/**\r\n * Supports compatibility for legacy vue-i18n APIs\r\n * This mixin is used when we use vue-i18n@v9.x or later\r\n */\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n if (options.__i18nGlobal) {\r\n adjustI18nResources(composer, options, options);\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$i18n) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter =\r\n createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n unmounted() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$el.__VUE_I18N__) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n if (this.$i18n) {\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Injection key for {@link useI18n}\r\n *\r\n * @remarks\r\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst I18nInjectionKey = \r\n/* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction createI18n(options = {}, VueI18nLegacy) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n // prettier-ignore\r\n const __globalInjection = isBoolean(options.globalInjection)\r\n ? options.globalInjection\r\n : true;\r\n // prettier-ignore\r\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? !!options.allowComposition\r\n : true;\r\n const __instances = new Map();\r\n const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n function __getInstance(component) {\r\n return __instances.get(component) || null;\r\n }\r\n function __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n }\r\n function __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n {\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n return __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? 'legacy'\r\n : 'composition';\r\n },\r\n // allowComposition\r\n get allowComposition() {\r\n return __allowComposition;\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // release global scope\r\n const unmountApp = app.unmount;\r\n app.unmount = () => {\r\n i18n.dispose();\r\n unmountApp();\r\n };\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n dispose() {\r\n globalScope.stop();\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance,\r\n // @internal\r\n __setInstance,\r\n // @internal\r\n __deleteInstance\r\n };\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n }\r\n if (!instance.isCE &&\r\n instance.appContext.app != null &&\r\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n }\r\n const i18n = getI18nInstance(instance);\r\n const global = getGlobalComposer(i18n);\r\n const componentOptions = getComponentOptions(instance);\r\n const scope = getScope(options, componentOptions);\r\n if (__VUE_I18N_LEGACY_API__) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n if (!i18n.allowComposition) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n }\r\n return useI18nForLegacy(instance, scope, global, options);\r\n }\r\n }\r\n if (scope === 'global') {\r\n adjustI18nResources(global, options, componentOptions);\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const composerOptions = assign({}, options);\r\n if ('__i18n' in componentOptions) {\r\n composerOptions.__i18n = componentOptions.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\n/**\r\n * Cast to VueI18n legacy compatible type\r\n *\r\n * @remarks\r\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n *\r\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\r\n *\r\n * @param i18n - An instance of {@link I18n}\r\n * @returns A i18n instance which is casted to {@link VueI18n} type\r\n *\r\n * @VueI18nTip\r\n * :new: provided by **vue-i18n-bridge only**\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst castToVueI18n = (i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) => {\r\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n }\r\n return i18n;\r\n};\r\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const scope = effectScope();\r\n {\r\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\r\n ? scope.run(() => createVueI18n(options))\r\n : scope.run(() => createComposer(options));\r\n if (obj == null) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n return [scope, obj];\r\n }\r\n}\r\nfunction getI18nInstance(instance) {\r\n {\r\n const i18n = inject(!instance.isCE\r\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n : I18nInjectionKey);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(!instance.isCE\r\n ? I18nErrorCodes.UNEXPECTED_ERROR\r\n : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n }\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getScope(options, componentOptions) {\r\n // prettier-ignore\r\n return isEmptyObject(options)\r\n ? ('__i18n' in componentOptions)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n}\r\nfunction getGlobalComposer(i18n) {\r\n // prettier-ignore\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer\r\n ;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n if (__VUE_I18N_LEGACY_API__) {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n if (useComponent &&\r\n composer &&\r\n !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n composer = null;\r\n }\r\n }\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n {\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n }\r\n}\r\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const isLocale = scope === 'local';\r\n const _composer = shallowRef(null);\r\n if (isLocale &&\r\n instance.proxy &&\r\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n }\r\n const _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _missingWarn = isLocale\r\n ? root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackWarn = isLocale\r\n ? root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackRoot = isLocale\r\n ? root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n const _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n const _missing = isFunction(options.missing) ? options.missing : null;\r\n // postTranslation handler\r\n const _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n const _warnHtmlMessage = isLocale\r\n ? root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const _escapeParameter = !!options.escapeParameter;\r\n // prettier-ignore\r\n const _modifiers = isLocale\r\n ? root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => {\r\n return _composer.value ? _composer.value.locale.value : _locale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.locale.value = val;\r\n }\r\n _locale.value = val;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => {\r\n return _composer.value\r\n ? _composer.value.fallbackLocale.value\r\n : _fallbackLocale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.fallbackLocale.value = val;\r\n }\r\n _fallbackLocale.value = val;\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => {\r\n if (_composer.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _composer.value.messages.value;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _messages.value;\r\n }\r\n });\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n const numberFormats = computed(() => _numberFormats.value);\r\n function getPostTranslationHandler() {\r\n return _composer.value\r\n ? _composer.value.getPostTranslationHandler()\r\n : _postTranslation;\r\n }\r\n function setPostTranslationHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setPostTranslationHandler(handler);\r\n }\r\n }\r\n function getMissingHandler() {\r\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n }\r\n function setMissingHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setMissingHandler(handler);\r\n }\r\n }\r\n function warpWithDeps(fn) {\r\n trackReactivityValues();\r\n return fn();\r\n }\r\n function t(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function rt(...args) {\r\n return _composer.value\r\n ? Reflect.apply(_composer.value.rt, null, [...args])\r\n : '';\r\n }\r\n function d(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function n(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function tm(key) {\r\n return _composer.value ? _composer.value.tm(key) : {};\r\n }\r\n function te(key, locale) {\r\n return _composer.value ? _composer.value.te(key, locale) : false;\r\n }\r\n function getLocaleMessage(locale) {\r\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n }\r\n function setLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.setLocaleMessage(locale, message);\r\n _messages.value[locale] = message;\r\n }\r\n }\r\n function mergeLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.mergeLocaleMessage(locale, message);\r\n }\r\n }\r\n function getDateTimeFormat(locale) {\r\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n }\r\n function setDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setDateTimeFormat(locale, format);\r\n _datetimeFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeDateTimeFormat(locale, format);\r\n }\r\n }\r\n function getNumberFormat(locale) {\r\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n }\r\n function setNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setNumberFormat(locale, format);\r\n _numberFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeNumberFormat(locale, format);\r\n }\r\n }\r\n const wrapper = {\r\n get id() {\r\n return _composer.value ? _composer.value.id : -1;\r\n },\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get inheritLocale() {\r\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n if (_composer.value) {\r\n _composer.value.inheritLocale = val;\r\n }\r\n },\r\n get availableLocales() {\r\n return _composer.value\r\n ? _composer.value.availableLocales\r\n : Object.keys(_messages.value);\r\n },\r\n get modifiers() {\r\n return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n },\r\n get pluralRules() {\r\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n },\r\n get isGlobal() {\r\n return _composer.value ? _composer.value.isGlobal : false;\r\n },\r\n get missingWarn() {\r\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackWarn() {\r\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackRoot() {\r\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackRoot = val;\r\n }\r\n },\r\n get fallbackFormat() {\r\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackFormat = val;\r\n }\r\n },\r\n get warnHtmlMessage() {\r\n return _composer.value\r\n ? _composer.value.warnHtmlMessage\r\n : _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n if (_composer.value) {\r\n _composer.value.warnHtmlMessage = val;\r\n }\r\n },\r\n get escapeParameter() {\r\n return _composer.value\r\n ? _composer.value.escapeParameter\r\n : _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n if (_composer.value) {\r\n _composer.value.escapeParameter = val;\r\n }\r\n },\r\n t,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n rt,\r\n d,\r\n n,\r\n tm,\r\n te,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat\r\n };\r\n function sync(composer) {\r\n composer.locale.value = _locale.value;\r\n composer.fallbackLocale.value = _fallbackLocale.value;\r\n Object.keys(_messages.value).forEach(locale => {\r\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n });\r\n Object.keys(_datetimeFormats.value).forEach(locale => {\r\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n });\r\n Object.keys(_numberFormats.value).forEach(locale => {\r\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n });\r\n composer.escapeParameter = _escapeParameter;\r\n composer.fallbackFormat = _fallbackFormat;\r\n composer.fallbackRoot = _fallbackRoot;\r\n composer.fallbackWarn = _fallbackWarn;\r\n composer.missingWarn = _missingWarn;\r\n composer.warnHtmlMessage = _warnHtmlMessage;\r\n }\r\n onBeforeMount(() => {\r\n if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const composer = (_composer.value = instance.proxy.$i18n\r\n .__composer);\r\n if (scope === 'global') {\r\n _locale.value = composer.locale.value;\r\n _fallbackLocale.value = composer.fallbackLocale.value;\r\n _messages.value = composer.messages.value;\r\n _datetimeFormats.value = composer.datetimeFormats.value;\r\n _numberFormats.value = composer.numberFormats.value;\r\n }\r\n else if (isLocale) {\r\n sync(composer);\r\n }\r\n });\r\n return wrapper;\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'] ;\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message resolver at vue-i18n\r\nregisterMessageResolver(resolveValue);\r\n// register fallback locale at vue-i18n\r\nregisterLocaleFallbacker(fallbackWithLocaleChain);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nInjectionKey, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","/* eslint-env serviceworker */\n\nimport localForage from 'localforage'\nimport { parseNotification } from './services/entity_normalizer/entity_normalizer.service.js'\nimport { prepareNotificationObject } from './services/notification_utils/notification_utils.js'\nimport { createI18n } from 'vue-i18n'\nimport messages from './i18n/service_worker_messages.js'\n\nconst i18n = createI18n({\n // By default, use the browser locale, we will update it if neccessary\n locale: 'en',\n fallbackLocale: 'en',\n messages\n})\n\nfunction isEnabled () {\n return localForage.getItem('vuex-lz')\n .then(data => data.config.webPushNotifications)\n}\n\nfunction getWindowClients () {\n return clients.matchAll({ includeUncontrolled: true })\n .then((clientList) => clientList.filter(({ type }) => type === 'window'))\n}\n\nconst setLocale = async () => {\n const state = await localForage.getItem('vuex-lz')\n const locale = state.config.interfaceLanguage || 'en'\n i18n.locale = locale\n}\n\nconst maybeShowNotification = async (event) => {\n const enabled = await isEnabled()\n const activeClients = await getWindowClients()\n await setLocale()\n if (enabled && (activeClients.length === 0)) {\n const data = event.data.json()\n\n const url = `${self.registration.scope}api/v1/notifications/${data.notification_id}`\n const notification = await fetch(url, { headers: { Authorization: 'Bearer ' + data.access_token } })\n const notificationJson = await notification.json()\n const parsedNotification = parseNotification(notificationJson)\n\n const res = prepareNotificationObject(parsedNotification, i18n)\n\n self.registration.showNotification(res.title, res)\n }\n}\n\nself.addEventListener('push', async (event) => {\n if (event.data) {\n event.waitUntil(maybeShowNotification(event))\n }\n})\n\nself.addEventListener('notificationclick', (event) => {\n event.notification.close()\n\n event.waitUntil(getWindowClients().then((list) => {\n for (let i = 0; i < list.length; i++) {\n const client = list[i]\n if (client.url === '/' && 'focus' in client) { return client.focus() }\n }\n\n if (clients.openWindow) return clients.openWindow('/')\n }))\n})\n","/* eslint-disable import/no-webpack-loader-syntax */\n// This module exports only the notification part of the i18n,\n// which is useful for the service worker\n\nconst messages = {\n ar: require('../lib/notification-i18n-loader.js!./ar.json'),\n ca: require('../lib/notification-i18n-loader.js!./ca.json'),\n cs: require('../lib/notification-i18n-loader.js!./cs.json'),\n de: require('../lib/notification-i18n-loader.js!./de.json'),\n eo: require('../lib/notification-i18n-loader.js!./eo.json'),\n es: require('../lib/notification-i18n-loader.js!./es.json'),\n et: require('../lib/notification-i18n-loader.js!./et.json'),\n eu: require('../lib/notification-i18n-loader.js!./eu.json'),\n fi: require('../lib/notification-i18n-loader.js!./fi.json'),\n fr: require('../lib/notification-i18n-loader.js!./fr.json'),\n ga: require('../lib/notification-i18n-loader.js!./ga.json'),\n he: require('../lib/notification-i18n-loader.js!./he.json'),\n hu: require('../lib/notification-i18n-loader.js!./hu.json'),\n it: require('../lib/notification-i18n-loader.js!./it.json'),\n ja: require('../lib/notification-i18n-loader.js!./ja_pedantic.json'),\n ja_easy: require('../lib/notification-i18n-loader.js!./ja_easy.json'),\n ko: require('../lib/notification-i18n-loader.js!./ko.json'),\n nb: require('../lib/notification-i18n-loader.js!./nb.json'),\n nl: require('../lib/notification-i18n-loader.js!./nl.json'),\n oc: require('../lib/notification-i18n-loader.js!./oc.json'),\n pl: require('../lib/notification-i18n-loader.js!./pl.json'),\n pt: require('../lib/notification-i18n-loader.js!./pt.json'),\n ro: require('../lib/notification-i18n-loader.js!./ro.json'),\n ru: require('../lib/notification-i18n-loader.js!./ru.json'),\n sk: require('../lib/notification-i18n-loader.js!./sk.json'),\n te: require('../lib/notification-i18n-loader.js!./te.json'),\n zh: require('../lib/notification-i18n-loader.js!./zh.json'),\n en: require('../lib/notification-i18n-loader.js!./en.json')\n}\n\nexport default messages\n"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","matchHtmlRegExp","module","exports","string","escape","str","match","exec","html","index","lastIndex","length","charCodeAt","substring","f","define","amd","window","global","self","this","localforage","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","_dereq_","scheduleDrain","draining","Mutation","MutationObserver","WebKitMutationObserver","called","observer","nextTick","element","document","createTextNode","observe","characterData","data","setImmediate","MessageChannel","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","setTimeout","channel","port1","onmessage","port2","postMessage","queue","oldQueue","len","task","push","immediate","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","Promise","resolver","TypeError","state","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","value","returnValue","reject","resolve","getThen","obj","then","apply","arguments","thenable","onError","onSuccess","result","tryCatch","status","out","prototype","constructor","error","reason","all","iterable","Object","toString","values","Array","resolved","allResolver","outValue","race","response","_typeof","Symbol","iterator","idb","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","getIDB","createBlob","parts","properties","Blob","name","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","append","getBlob","type","Promise$1","executeCallback","callback","executeTwoCallbacks","errorCallback","normalizeKey","key","console","warn","String","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","pop","_rejectReadiness","err","_getConnection","upgradeNeeded","forages","db","close","dbArgs","version","openreq","open","onupgradeneeded","createObjectStore","storeName","oldVersion","ex","newVersion","onerror","preventDefault","onsuccess","onversionchange","target","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","contains","isDowngrade","isUpgrade","incVersion","_decodeBlob","encodedBlob","bin","buf","ArrayBuffer","arr","Uint8Array","_binStringToArrayBuffer","atob","_isEncodedBlob","__local_forage_encoded_blob","_fullyReady","_initReady","_dbInfo","createTransaction","mode","retries","undefined","tx","transaction","forage","_tryReconnect","asyncStorage","_driver","_initStorage","options","ready","initPromises","ignoreErrors","j","slice","_defaultConfig","k","_support","isSafari","openDatabase","test","navigator","userAgent","platform","hasFetch","fetch","indexOf","IDBKeyRange","isIndexedDBValid","iterate","req","objectStore","openCursor","iterationNumber","cursor","getItem","get","setItem","txn","blob","put","onabort","stopPropagation","oncomplete","matchedChrome","matchedEdge","parseInt","_checkBlobSupportWithoutCaching","_checkBlobSupport","blobSupport","reader","FileReader","onloadend","base64","btoa","readAsBinaryString","store","removeItem","clear","count","advanced","openKeyCursor","advance","keys","dropInstance","currentConfig","config","isCurrentDb","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","BASE_CHARS","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","p","buffer","bytes","bufferToString","base64String","localforageSerializer","serialize","valueType","marker","fileReader","onload","readAsArrayBuffer","JSON","stringify","deserialize","parse","blobType","matcher","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","createDbTable","executeSql","tryExecuteSql","sqlStatement","args","SYNTAX_ERR","results","rows","_setItem","retriesLeft","originalValue","serializer","sqlError","QUOTA_ERR","getAllStoreNames","storeNames","item","webSQLStorage","dbInfoPromise","description","size","c","operationInfo","dropTable","operations","_getKeyPrefix","defaultConfig","keyPrefix","localStorageWrapper","localStorageTestKey","localStorage","checkIfLocalStorageThrows","isLocalStorageValid","keyPrefixLength","itemKey","includes","array","searchElement","x","y","isNaN","isArray","arg","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","concat","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","extend","_key","hasOwnProperty","LocalForage","driverTypeKey","instance","Constructor","_classCallCheck","driverName","defineDriver","_config","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","replace","driverObject","complianceError","driverMethods","driverMethodName","methodNotImplementedFactory","methodName","_i","_len","optionalDriverMethod","configureMissingMethods","setDriverSupport","support","info","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","oldDriverSetDone","currentDriverIndex","driverPromiseLoop","initDriver","supports","libraryMethodsAndProperties","createInstance","localforage_js","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","entry","set","has","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Set","setCacheAdd","setCacheHas","SetCache","__data__","add","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","WeakMap","thisArg","predicate","resIndex","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","offset","eq","baseForOwn","baseEach","createBaseEach","collection","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","object","castPath","toKey","path","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","other","bitmask","customizer","stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","source","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","reIsNative","RegExp","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","property","isPrototype","nativeKeys","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","overRest","setToString","start","constant","defineProperty","baseSetToString","comparer","sort","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","props","cache","stringToPath","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","coreJsData","eachFunc","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolValueOf","valueOf","tag","byteLength","byteOffset","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","g","baseGetAllKeys","getSymbols","isKeyable","map","baseIsNative","getValue","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasFunc","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","splice","getMapData","forEach","memoize","overArg","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","transform","nativeMax","Math","max","otherArgs","freeSelf","root","shortOut","nativeNow","Date","now","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","reWhitespace","charAt","baseFilter","defaultValue","baseHasIn","hasPath","baseIndexOf","isString","toInteger","guard","baseIsArguments","stubFalse","Buffer","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","memoized","Cache","baseProperty","basePropertyDeep","baseOrderBy","baseRest","isIterateeCall","sortBy","toNumber","toFinite","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseValues","qs","url","xtend","PARSE_LINK_HEADER_MAXLEN","PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED","hasRel","rel","intoRels","acc","split","createObjects","m","parseLink","link","linkUrl","parsedUrl","qry","query","shift","reduce","linkHeader","checkHeader","filter","punycode","maxInt","base","regexPunycode","regexNonASCII","regexSeparators","errors","floor","stringFromCharCode","fromCharCode","RangeError","fn","mapDomain","join","ucs2decode","extra","output","counter","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","decode","input","basic","oldi","w","baseMinusT","codePoint","inputLength","bias","lastIndexOf","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toLowerCase","prop","sep","regexp","maxKeys","kstr","vstr","v","idx","substr","decodeURIComponent","stringifyPrimitive","isFinite","ks","encodeURIComponent","util","Url","protocol","slashes","auth","host","port","hostname","hash","search","pathname","href","urlParse","relative","resolveObject","format","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","rest","trim","simplePath","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","unshift","toASCII","h","ae","esc","qm","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","isAbsolute","_regeneratorRuntime","__esModule","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","doneResult","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","val","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","getter","d","definition","nmd","paths","children","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_defineProperty","statusNotifications","isStatusNotification","prepareNotificationObject","notification","i18n","i18nString","notifObj","title","from_profile","icon","profile_image_url","body","emoji","text","attachments","nsfw","mimetype","startsWith","image","encoded","fromCodePoint","parseUser","masto","mastoShort","inLists","_original","screen_name","acct","fqn","statusnet_profile_url","emojis","display_name","name_html","name_unescaped","note","description_html","fields","fields_html","field","fields_text","unescape","avatar","profile_image_url_original","cover_photo","header","friends_count","following_count","bot","pleroma","settings_store","storage","relationship","background_image","favicon","token","chat_token","allow_following_move","hide_follows","hide_followers","hide_follows_count","hide_followers_count","rights","moderator","is_moderator","admin","is_admin","role","privileges","default_scope","privacy","no_rich_text","show_role","discoverable","is_local","delete_others_notice","muting","muted","blocking","statusnet_blocking","followed_by","follows_you","following","created_at","locked","followers_count","statuses_count","follow_request_count","tags","deactivated","is_active","notification_settings","unread_chat_count","screen_name_ui","unicodeDomain","screen_name_ui_contains_non_ascii","parseAttachment","mime_type","meta","large_thumb_url","preview_url","parseStatus","favorited","favourited","fave_num","favourites_count","repeated","reblogged","repeat_num","reblogs_count","bookmarked","reblog","sensitive","raw_html","content","edited_at","summary","spoiler_text","statusnet_conversation_id","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","thread_muted","emoji_reactions","parent_visible","in_reply_to_status_id","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","retweeted_status","summary_raw_html","external_url","poll","title_html","pinned","is_post_verb","uri","qvitter_delete_notice","activity_type","isNsfw","statusnet_html","summary_html","visibility","card","user","account","attentions","mentions","media_attachments","retweetedStatus","favoritedBy","rebloggedBy","assign","originalStatus","parseNotification","parsedNotice","notice","ntype","Boolean","is_seen","favorited_status","action","favourite","report","actor","statuses","inBrowser","hasSymbol","isNumber","isRegExp","toTypeString","isEmptyObject","isPlainObject","msg","_globalThis","escapeHtml","rawText","createCompileError","domain","messages","SyntaxError","location","pathStateMachine","literalValueRE","getPathCharType","ch","resolveWithKeyValue","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","abs","min","devtools","translateDevTools","createDevToolsHook","hook","payloads","emit","fallbackWithSimple","fallback","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","__localeChainCache","chain","block","appendBlockToChain","defaults","blocks","follow","locale","appendLocaleToChain","tokens","appendItemToChain","toLocaleUpperCase","_resolver","_fallbacker","_additionalMeta","setAdditionalMeta","_fallbackContext","setFallbackContext","_cid","handleMissing","missingWarn","missing","onWarn","ret","updateFallbackLocale","localeFallbacker","inc","CoreErrorCodes","INVALID_ARGUMENT","INVALID_DATE_ARGUMENT","INVALID_ISO_DATE_ARGUMENT","__EXTEND_POINT__","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","fallbackFormat","postTranslation","unresolving","messageCompiler","fallbackLocale","parseTranslateArgs","escapeParameter","fallbackWarn","resolvedMessage","defaultMsgOrKey","default","enableDefaultMsg","named","escapeParams","formatScope","targetLocale","resolveMessageFormat","cacheBaseKey","occurred","compileMessageFormat","ctxOptions","modifiers","pluralRules","messageResolver","resolveValue","fallbackContext","processor","plural","pluralIndex","getMessageContextOptions","messaged","msgCtx","evaluateMessage","getPluralIndex","pluralRule","orgPluralRule","_named","parent","normalizeNamed","arg1","arg2","modifier","createMessageContext","__INTLIFY_PROD_DEVTOOLS__","timestamp","__meta","locales","from","to","missingRet","errorDetector","warnHtmlMessage","onCacheKey","friendlyJSONstringify","json","generateFormatCacheKey","getCompileOptions","arg3","intlDefined","Intl","datetime","datetimeFormats","__datetimeFormatters","overrides","parseDateTimeArgs","DateTimeFormat","datetimeFormat","formatter","formatToParts","NumberFormat","DATETIME_FORMAT_OPTIONS_KEYS","arg4","matches","dateTime","toISOString","getTime","clearDateTimeFormat","delete","numberFormats","__numberFormatters","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","expectsLowerCase","normalizeStyle","res","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","cssText","tmp","normalizeClass","onRE","isMap","isIntegerKey","cacheStringFunction","camelizeRE","hyphenateRE","_","toUpperCase","oldValue","is","activeEffectScope","EffectScope","detached","active","effects","cleanups","scopes","run","currentEffectScope","on","off","fromParent","createDep","dep","wasTracked","trackOpBit","newTracked","targetMap","activeEffect","effectTrackDepth","ITERATE_KEY","MAP_KEY_ITERATE_KEY","scheduler","scope","deps","effect","recordEffectScope","lastShouldTrack","shouldTrack","initDepMarkers","cleanupEffect","ptr","finalizeDepMarkers","deferStop","onStop","trackStack","track","depsMap","trackEffects","debuggerEventExtraInfo","newValue","oldTarget","triggerEffects","computed","triggerEffect","allowRecurse","isNonTrackableKeys","builtInSymbols","getOwnPropertyNames","createGetter","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","readonly","reactive","createSetter","isShallow","hadKey","Number","mutableHandlers","deleteProperty","ownKeys","readonlyHandlers","toShallow","get$1","rawTarget","rawKey","toReadonly","toReactive","has$1","set$1","deleteEntry","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","rawType","targetTypeMap","proxy","Proxy","isProxy","raw","markRaw","def","trackRefValue","ref","triggerRefValue","newVal","__v_isRef","createRef","rawValue","RefImpl","__v_isShallow","_rawValue","_value","useDirectValue","shallowUnwrapHandlers","unref","_a","ComputedRefImpl","_setter","isSSR","_dirty","_cacheable","callWithErrorHandling","handleError","callWithAsyncErrorHandling","catch","throwInDev","vnode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","contextVNode","logError","isFlushing","isFlushPending","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","bind","queueJob","job","end","middle","getId","findInsertionIndex","queueFlush","flushJobs","Infinity","comparator","b","diff","pre","deduped","flushPostFlushCbs","currentRenderingInstance","INITIAL_WATCHER_VALUE","watch","cb","doWatch","deep","flush","onTrack","onTrigger","currentInstance","cleanup","forceTrigger","isMultiSource","some","traverse","isUnmounted","onCleanup","baseGetter","isInSSRComponentSetup","queuePostRenderEffect","suspense","el","instanceWatch","publicThis","segments","createPathGetter","handler","setCurrentInstance","unsetCurrentInstance","createHook","lifecycle","prepend","hooks","wrappedHook","__weh","injectHook","onBeforeMount","onMounted","onUnmounted","NULL_DYNAMIC_COMPONENT","getPublicInstance","shapeFlag","exposed","exposeProxy","objectWithRefs","publicPropertiesMap","getExposeProxy","$","$el","$data","$props","$attrs","attrs","$slots","slots","$refs","refs","$parent","$root","$emit","$options","mixins","extends","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","cached","mergeOptions","resolveMergedOptions","$forceUpdate","update","$nextTick","$watch","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","emits","methods","beforeCreate","mergeAsArray","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","errorCaptured","serverPrefetch","components","directives","merged","provide","inject","normalizeInject","pendingBranch","Fragment","Text","Comment","isVNode","__v_isVNode","InternalObjectKey","normalizeRef","ref_key","ref_for","createVNode","patchFlag","dynamicProps","isBlockNode","cloned","cloneVNode","normalizeChildren","__vccOpts","guardReactiveProps","class","klass","style","needFullChildrenNormalization","__v_skip","scopeId","slotScopeIds","component","ssContent","ssFallback","dirs","transition","anchor","targetAnchor","staticCount","dynamicChildren","createBaseVNode","__isSuspense","isSuspense","__isTeleport","isTeleport","extraProps","mergeRef","mergedProps","toMerge","existing","incoming","mergeProps","createTextVNode","slot","_c","_d","slotFlag","_ctx","getCurrentInstance","getterOrOptions","debugOptions","setter","onlyGetter","propsOrChildren","code$1","inc$1","I18nErrorCodes","UNEXPECTED_RETURN_TYPE","MUST_BE_CALL_SETUP_TOP","NOT_INSLALLED","NOT_AVAILABLE_IN_LEGACY_MODE","REQUIRED_VALUE","INVALID_VALUE","CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN","NOT_INSLALLED_WITH_PROVIDE","UNEXPECTED_ERROR","NOT_COMPATIBLE_LEGACY_VUE_I18N","BRIDGE_SUPPORT_VUE_2_ONLY","MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION","NOT_AVAILABLE_COMPOSITION_IN_LEGACY","createI18nError","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOption","handleFlatJson","subKeys","currentObj","getLocaleMessages","__i18n","flatJson","custom","resource","deepCopy","isNotObjectOrIsArray","src","des","getComponentOptions","adjustI18nResources","componentOptions","__i18nGlobal","mergeLocaleMessage","mergeDateTimeFormat","mergeNumberFormat","DEVTOOLS_META","composerID","defineCoreMissingHandler","createComposer","VueI18nLegacy","__root","_isGlobal","_inheritLocale","inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_context","_pluralRules","framework","upper","lower","capitalize","_compiler","internalOptions","cid","initI18nDevTools","createCoreContext","getCoreContext","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","getMetaInfo","getLocaleMessage","composer","availableLocales","isGlobal","setLocaleMessage","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","rules","rt","te","tm","targetLocaleMessages","messageValue","resolveMessages","getDateTimeFormat","setDateTimeFormat","getNumberFormat","setNumberFormat","__injectWithOption","createVueI18n","silentTranslationWarn","silentFallbackWarn","formatFallbackMessages","pluralizationRules","warnHtmlInMessage","escapeParameterHtml","sync","sharedMessages","convertComposerOptions","vueI18n","preserveDirectiveContent","__composer","tc","getChoiceIndex","__onComponentInstanceCreated","componentInstanceCreatedListener","baseFormatProps","validator","getFragmentableTag","Translation","keypath","required","setup","useI18n","useScope","__useComponent","current","getInterpolateArg","assignedAttrs","renderFormatter","slotKeys","partFormatter","node","DatetimeFormat","parseValue","makeParams","mergeToRoot","I18nInjectionKey","isCE","app","__VUE_I18N_SYMBOL__","treatDefaultAsFactory","provides","getI18nInstance","getGlobalComposer","getScope","__VUE_I18N_LEGACY_API__","allowComposition","isLocale","_composer","warpWithDeps","wrapper","$i18n","useI18nForLegacy","useComponent","i18nInternal","__getInstance","getComposer","composerOptions","__deleteInstance","setupLifeCycle","__setInstance","globalExportProps","globalExportMethods","hit","newChar","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","trimmed","exp","stripQuotes","formatSubPath","needWarn","__VUE_I18N_FULL_INSTALL__","__INTLIFY__","__INTLIFY_DEVTOOLS_GLOBAL_HOOK__","__legacyMode","legacy","__globalInjection","globalInjection","__allowComposition","__instances","globalScope","__global","legacyMode","createGlobal","getOwnPropertyDescriptor","globalProperties","injectGlobalFields","pluginOptions","useI18nComponentName","globalInstall","directive","_process","getComposer$2","parsedValue","textContent","__i18nWatcher","getSSRProps","vTDirective","mixin","vuei18n","optionsI18n","$t","$rt","$tc","$te","$d","$n","$tm","defineMixin","unmountApp","unmount","dispose","createI18n","ar","ca","cs","de","eo","es","et","eu","fi","fr","ga","he","hu","it","ja","ja_easy","ko","nb","nl","oc","pl","pt","ro","ru","sk","zh","en","getWindowClients","clients","matchAll","includeUncontrolled","clientList","setLocale","localForage","interfaceLanguage","maybeShowNotification","event","webPushNotifications","enabled","activeClients","registration","notification_id","headers","Authorization","access_token","notificationJson","parsedNotification","showNotification","addEventListener","waitUntil","client","focus","openWindow"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"sw-pleroma.js","mappings":"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BACApE,WACA4hB,SALazgD,EAAQygD,SAMrB/Z,kBACAiB,gBACA7F,UACAD,cACAuB,eACAof,eACA3f,iBACAqB,YACAC,YAAayhB,EACb9iB,kBACAkD,kBACA7C,kBACAiB,gBAAiBpkC,EAAQokC,gBACzB2d,gBACAvB,SACAoB,SACA2D,qBAER,CASwCU,CAAuBjmD,IAEjDkmD,EAAU,CAEZ5zB,GAAI8xB,EAAS9xB,GAET0O,aACA,OAAOojB,EAASpjB,OAAOvpC,KAC3B,EACIupC,WAAOpQ,GACPwzB,EAASpjB,OAAOvpC,MAAQm5B,CAC5B,EAEIqS,qBACA,OAAOmhB,EAASnhB,eAAexrC,KACnC,EACIwrC,mBAAerS,GACfwzB,EAASnhB,eAAexrC,MAAQm5B,CACpC,EAEIiO,eACA,OAAOulB,EAASvlB,SAASpnC,KAC7B,EAEIivC,sBACA,OAAO0d,EAAS1d,gBAAgBjvC,KACpC,EAEIkwC,oBACA,OAAOyc,EAASzc,cAAclwC,KAClC,EAEI4sD,uBACA,OAAOD,EAASC,gBACpB,EAEIrd,gBAGA,MAAO,CACHx1C,YAAW,IACA,GAGnB,EACIw1C,cAAUpW,GAEd,EAEIkR,cACA,OAAOsiB,EAASM,mBACpB,EACI5iB,YAAQyU,GACR6N,EAASO,kBAAkBpO,EAC/B,EAEIkP,4BACA,OAAO,EAAUrB,EAASviB,cACnBuiB,EAASviB,YACVuiB,EAASviB,WACnB,EACI4jB,0BAAsB70B,GACtBwzB,EAASviB,YAAc,EAAUjR,IAAQA,EAAMA,CACnD,EAEI80B,yBACA,OAAO,EAAUtB,EAAShhB,eACnBghB,EAAShhB,aACVghB,EAAShhB,YACnB,EACIsiB,uBAAmB90B,GACnBwzB,EAAShhB,aAAe,EAAUxS,IAAQA,EAAMA,CACpD,EAEIsT,gBACA,OAAOkgB,EAASlgB,SACpB,EAEIyhB,6BACA,OAAOvB,EAASvhB,cACpB,EACI8iB,2BAAuB/0B,GACvBwzB,EAASvhB,eAAiBjS,CAC9B,EAEIkS,sBACA,OAAOshB,EAASI,2BACpB,EACI1hB,oBAAgByT,GAChB6N,EAASK,0BAA0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","sources":["webpack://pleroma_fe/./src/i18n/ar.json","webpack://pleroma_fe/./src/i18n/ca.json","webpack://pleroma_fe/./src/i18n/cs.json","webpack://pleroma_fe/./src/i18n/de.json","webpack://pleroma_fe/./src/i18n/en.json","webpack://pleroma_fe/./src/i18n/eo.json","webpack://pleroma_fe/./src/i18n/es.json","webpack://pleroma_fe/./src/i18n/et.json","webpack://pleroma_fe/./src/i18n/eu.json","webpack://pleroma_fe/./src/i18n/fi.json","webpack://pleroma_fe/./src/i18n/fr.json","webpack://pleroma_fe/./src/i18n/ga.json","webpack://pleroma_fe/./src/i18n/he.json","webpack://pleroma_fe/./src/i18n/hu.json","webpack://pleroma_fe/./src/i18n/it.json","webpack://pleroma_fe/./src/i18n/ja_easy.json","webpack://pleroma_fe/./src/i18n/ja_pedantic.json","webpack://pleroma_fe/./src/i18n/ko.json","webpack://pleroma_fe/./src/i18n/nb.json","webpack://pleroma_fe/./src/i18n/nl.json","webpack://pleroma_fe/./src/i18n/oc.json","webpack://pleroma_fe/./src/i18n/pl.json","webpack://pleroma_fe/./src/i18n/pt.json","webpack://pleroma_fe/./src/i18n/ro.json","webpack://pleroma_fe/./src/i18n/ru.json","webpack://pleroma_fe/./src/i18n/sk.json","webpack://pleroma_fe/./src/i18n/te.json","webpack://pleroma_fe/./src/i18n/zh.json","webpack://pleroma_fe/./node_modules/escape-html/index.js","webpack://pleroma_fe/./node_modules/localforage/dist/localforage.js","webpack://pleroma_fe/./node_modules/lodash/_DataView.js","webpack://pleroma_fe/./node_modules/lodash/_Hash.js","webpack://pleroma_fe/./node_modules/lodash/_ListCache.js","webpack://pleroma_fe/./node_modules/lodash/_Map.js","webpack://pleroma_fe/./node_modules/lodash/_MapCache.js","webpack://pleroma_fe/./node_modules/lodash/_Promise.js","webpack://pleroma_fe/./node_modules/lodash/_Set.js","webpack://pleroma_fe/./node_modules/lodash/_SetCache.js","webpack://pleroma_fe/./node_modules/lodash/_Stack.js","webpack://pleroma_fe/./node_modules/lodash/_Symbol.js","webpack://pleroma_fe/./node_modules/lodash/_Uint8Array.js","webpack://pleroma_fe/./node_modules/lodash/_WeakMap.js","webpack://pleroma_fe/./node_modules/lodash/_apply.js","webpack://pleroma_fe/./node_modules/lodash/_arrayFilter.js","webpack://pleroma_fe/./node_modules/lodash/_arrayLikeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_arrayMap.js","webpack://pleroma_fe/./node_modules/lodash/_arrayPush.js","webpack://pleroma_fe/./node_modules/lodash/_arraySome.js","webpack://pleroma_fe/./node_modules/lodash/_assocIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseEach.js","webpack://pleroma_fe/./node_modules/lodash/_baseFilter.js","webpack://pleroma_fe/./node_modules/lodash/_baseFindIndex.js","webpack://pleroma_fe/./node_modules/lodash/_baseFlatten.js","webpack://pleroma_fe/./node_modules/lodash/_baseFor.js","webpack://pleroma_fe/./node_modules/lodash/_baseForOwn.js","webpack://pleroma_fe/./node_modules/lodash/_baseGet.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseGetTag.js","webpack://pleroma_fe/./node_modules/lodash/_baseHasIn.js","webpack://pleroma_fe/./node_modules/lodash/_baseIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsArguments.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqual.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsEqualDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsMatch.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNaN.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsNative.js","webpack://pleroma_fe/./node_modules/lodash/_baseIsTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/_baseIteratee.js","webpack://pleroma_fe/./node_modules/lodash/_baseKeys.js","webpack://pleroma_fe/./node_modules/lodash/_baseMap.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatches.js","webpack://pleroma_fe/./node_modules/lodash/_baseMatchesProperty.js","webpack://pleroma_fe/./node_modules/lodash/_baseOrderBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseProperty.js","webpack://pleroma_fe/./node_modules/lodash/_basePropertyDeep.js","webpack://pleroma_fe/./node_modules/lodash/_baseRest.js","webpack://pleroma_fe/./node_modules/lodash/_baseSetToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseSortBy.js","webpack://pleroma_fe/./node_modules/lodash/_baseTimes.js","webpack://pleroma_fe/./node_modules/lodash/_baseToString.js","webpack://pleroma_fe/./node_modules/lodash/_baseTrim.js","webpack://pleroma_fe/./node_modules/lodash/_baseUnary.js","webpack://pleroma_fe/./node_modules/lodash/_baseValues.js","webpack://pleroma_fe/./node_modules/lodash/_cacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_castPath.js","webpack://pleroma_fe/./node_modules/lodash/_compareAscending.js","webpack://pleroma_fe/./node_modules/lodash/_compareMultiple.js","webpack://pleroma_fe/./node_modules/lodash/_coreJsData.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseEach.js","webpack://pleroma_fe/./node_modules/lodash/_createBaseFor.js","webpack://pleroma_fe/./node_modules/lodash/_defineProperty.js","webpack://pleroma_fe/./node_modules/lodash/_equalArrays.js","webpack://pleroma_fe/./node_modules/lodash/_equalByTag.js","webpack://pleroma_fe/./node_modules/lodash/_equalObjects.js","webpack://pleroma_fe/./node_modules/lodash/_freeGlobal.js","webpack://pleroma_fe/./node_modules/lodash/_getAllKeys.js","webpack://pleroma_fe/./node_modules/lodash/_getMapData.js","webpack://pleroma_fe/./node_modules/lodash/_getMatchData.js","webpack://pleroma_fe/./node_modules/lodash/_getNative.js","webpack://pleroma_fe/./node_modules/lodash/_getRawTag.js","webpack://pleroma_fe/./node_modules/lodash/_getSymbols.js","webpack://pleroma_fe/./node_modules/lodash/_getTag.js","webpack://pleroma_fe/./node_modules/lodash/_getValue.js","webpack://pleroma_fe/./node_modules/lodash/_hasPath.js","webpack://pleroma_fe/./node_modules/lodash/_hashClear.js","webpack://pleroma_fe/./node_modules/lodash/_hashDelete.js","webpack://pleroma_fe/./node_modules/lodash/_hashGet.js","webpack://pleroma_fe/./node_modules/lodash/_hashHas.js","webpack://pleroma_fe/./node_modules/lodash/_hashSet.js","webpack://pleroma_fe/./node_modules/lodash/_isFlattenable.js","webpack://pleroma_fe/./node_modules/lodash/_isIndex.js","webpack://pleroma_fe/./node_modules/lodash/_isIterateeCall.js","webpack://pleroma_fe/./node_modules/lodash/_isKey.js","webpack://pleroma_fe/./node_modules/lodash/_isKeyable.js","webpack://pleroma_fe/./node_modules/lodash/_isMasked.js","webpack://pleroma_fe/./node_modules/lodash/_isPrototype.js","webpack://pleroma_fe/./node_modules/lodash/_isStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_listCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheClear.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheDelete.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheGet.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_mapCacheSet.js","webpack://pleroma_fe/./node_modules/lodash/_mapToArray.js","webpack://pleroma_fe/./node_modules/lodash/_matchesStrictComparable.js","webpack://pleroma_fe/./node_modules/lodash/_memoizeCapped.js","webpack://pleroma_fe/./node_modules/lodash/_nativeCreate.js","webpack://pleroma_fe/./node_modules/lodash/_nativeKeys.js","webpack://pleroma_fe/./node_modules/lodash/_nodeUtil.js","webpack://pleroma_fe/./node_modules/lodash/_objectToString.js","webpack://pleroma_fe/./node_modules/lodash/_overArg.js","webpack://pleroma_fe/./node_modules/lodash/_overRest.js","webpack://pleroma_fe/./node_modules/lodash/_root.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheAdd.js","webpack://pleroma_fe/./node_modules/lodash/_setCacheHas.js","webpack://pleroma_fe/./node_modules/lodash/_setToArray.js","webpack://pleroma_fe/./node_modules/lodash/_setToString.js","webpack://pleroma_fe/./node_modules/lodash/_shortOut.js","webpack://pleroma_fe/./node_modules/lodash/_stackClear.js","webpack://pleroma_fe/./node_modules/lodash/_stackDelete.js","webpack://pleroma_fe/./node_modules/lodash/_stackGet.js","webpack://pleroma_fe/./node_modules/lodash/_stackHas.js","webpack://pleroma_fe/./node_modules/lodash/_stackSet.js","webpack://pleroma_fe/./node_modules/lodash/_strictIndexOf.js","webpack://pleroma_fe/./node_modules/lodash/_stringToPath.js","webpack://pleroma_fe/./node_modules/lodash/_toKey.js","webpack://pleroma_fe/./node_modules/lodash/_toSource.js","webpack://pleroma_fe/./node_modules/lodash/_trimmedEndIndex.js","webpack://pleroma_fe/./node_modules/lodash/constant.js","webpack://pleroma_fe/./node_modules/lodash/eq.js","webpack://pleroma_fe/./node_modules/lodash/filter.js","webpack://pleroma_fe/./node_modules/lodash/get.js","webpack://pleroma_fe/./node_modules/lodash/hasIn.js","webpack://pleroma_fe/./node_modules/lodash/identity.js","webpack://pleroma_fe/./node_modules/lodash/includes.js","webpack://pleroma_fe/./node_modules/lodash/isArguments.js","webpack://pleroma_fe/./node_modules/lodash/isArray.js","webpack://pleroma_fe/./node_modules/lodash/isArrayLike.js","webpack://pleroma_fe/./node_modules/lodash/isBuffer.js","webpack://pleroma_fe/./node_modules/lodash/isFunction.js","webpack://pleroma_fe/./node_modules/lodash/isLength.js","webpack://pleroma_fe/./node_modules/lodash/isObject.js","webpack://pleroma_fe/./node_modules/lodash/isObjectLike.js","webpack://pleroma_fe/./node_modules/lodash/isString.js","webpack://pleroma_fe/./node_modules/lodash/isSymbol.js","webpack://pleroma_fe/./node_modules/lodash/isTypedArray.js","webpack://pleroma_fe/./node_modules/lodash/keys.js","webpack://pleroma_fe/./node_modules/lodash/memoize.js","webpack://pleroma_fe/./node_modules/lodash/property.js","webpack://pleroma_fe/./node_modules/lodash/sortBy.js","webpack://pleroma_fe/./node_modules/lodash/stubArray.js","webpack://pleroma_fe/./node_modules/lodash/stubFalse.js","webpack://pleroma_fe/./node_modules/lodash/toFinite.js","webpack://pleroma_fe/./node_modules/lodash/toInteger.js","webpack://pleroma_fe/./node_modules/lodash/toNumber.js","webpack://pleroma_fe/./node_modules/lodash/toString.js","webpack://pleroma_fe/./node_modules/lodash/values.js","webpack://pleroma_fe/./node_modules/parse-link-header/index.js","webpack://pleroma_fe/./node_modules/punycode/punycode.es6.js","webpack://pleroma_fe/./node_modules/querystring/decode.js","webpack://pleroma_fe/./node_modules/querystring/encode.js","webpack://pleroma_fe/./node_modules/querystring/index.js","webpack://pleroma_fe/./node_modules/url/url.js","webpack://pleroma_fe/./node_modules/url/util.js","webpack://pleroma_fe/./node_modules/xtend/immutable.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/regenerator/index.js","webpack://pleroma_fe/webpack/bootstrap","webpack://pleroma_fe/webpack/runtime/compat get default export","webpack://pleroma_fe/webpack/runtime/define property getters","webpack://pleroma_fe/webpack/runtime/global","webpack://pleroma_fe/webpack/runtime/hasOwnProperty shorthand","webpack://pleroma_fe/webpack/runtime/make namespace object","webpack://pleroma_fe/webpack/runtime/node module decorator","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://pleroma_fe/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://pleroma_fe/./src/services/notification_utils/notification_utils.js","webpack://pleroma_fe/./node_modules/punycode.js/punycode.es6.js","webpack://pleroma_fe/./src/services/entity_normalizer/entity_normalizer.service.js","webpack://pleroma_fe/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://pleroma_fe/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://pleroma_fe/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://pleroma_fe/./node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","webpack://pleroma_fe/./src/sw.js","webpack://pleroma_fe/./src/i18n/service_worker_messages.js"],"sourcesContent":["export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"منشور مجهول، جارٍ البحث عنه…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"أعجِب بمنشورك\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"يُتابعك\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"تحميل الإشعارات الأقدم\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"الإخطارات\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"مقروء!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"شارَك منشورك\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publicació desconeguda, s'està cercant…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha marcat un estat teu\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha començat a seguir-te\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carrega més notificacions\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificacions\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Llegit!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha repetit el teu estat\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrat a\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No més notificacions\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"et vol seguir\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ha reaccionat amb \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error obtenint notificacions: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neznámý příspěvek, hledám jej…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"si oblíbil/a váš příspěvek\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vás nyní sleduje\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Načíst starší oznámení\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oznámení\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Číst!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zopakoval/a váš příspěvek\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Žádná další oznámení\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unbekannte Nachricht, suche danach…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorisierte deine Nachricht\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"folgt dir\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ältere Benachrichtigungen laden\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benachrichtigungen\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gelesen!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wiederholte deine Nachricht\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"möchte dir folgen\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrierte zu\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagierte mit \", _interpolate(_list(0))])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Benachrichtigungen mehr\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error beim laden von Neuigkeiten\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown status, searching for it…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching notifications: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorited your status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"followed you\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wants to follow you\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older notifications\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Read!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated your status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more notifications\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrated to\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reacted with \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"submitted a report\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poll has ended\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nekonata afiŝo, serĉante ĝin…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ŝatis vian afiŝon\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ekabonis vin\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enlegi pli malnovajn sciigojn\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sciigoj\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legite!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ripetis vian afiŝon\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neniuj pliaj sciigoj\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagis per \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migris al\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volas vin aboni\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Eraris akirado de sciigoj: \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sendis raporton\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enketo finiĝis\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estado desconocido, buscándolo…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"le gusta tu estado\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"empezó a seguirte\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar notificaciones antiguas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificaciones\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¡Leído!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repitió tu estado\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay más notificaciones\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reaccionó con \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrado a\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"quiere seguirte\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error obteniendo notificaciones:\", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"alustas sinu jälgimist\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Teated\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loe!\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reageeris \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kolis\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rohkem teateid ei ole\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taaspostitas su staatuse\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laadi vanemad teated\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"soovib Teid jälgida\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lisas su staatuse lemmikuks\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tundmatu staatus, otsin…\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Egoera ezezaguna, bilatzen…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zure mezua gogoko du\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zu jarraitzen zaitu\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kargatu jakinarazpen zaharragoak\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jakinarazpenak\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Irakurrita!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zure mezua errepikatu du\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ez dago jakinarazpen gehiago\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"kin erreakzionatu zuen\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hona migratua:\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jarraitu nahi zaitu\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Errorea jakinarazpenak eskuratzean: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Viestiä ei löydetty…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tykkäsi viestistäsi\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuraa sinua\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lataa vanhempia ilmoituksia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ilmoitukset\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lue!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toisti viestisi\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ei enempää ilmoituksia\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"lisäsi reaktion \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"siirtyi sivulle\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"haluaa seurata sinua\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Message inconnu, recherche en cours…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a aimé votre statut\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vous suit\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les notifications précédentes\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lu !\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a partagé votre statut\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucune notification supplémentaire\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a migré à\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"a réagi avec \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"veut vous suivre\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Erreur de chargement des notifications : \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sondage terminé\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rapport envoyé\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post anaithnid. Cuardach dó…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toghadh le do phost\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lean tú\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luchtaigh fógraí aosta\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fógraí\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Léigh!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"athphostáil tú\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"סטאטוס לא ידוע, מחפש…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"אהב את הסטטוס שלך\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"עקב אחריך\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"טען התראות ישנות\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"התראות\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"קרא!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"חזר על הסטטוס שלך\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"לא עוד התראות\"])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"követ téged\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Értesítések\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Olvasva!\"])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ti segue\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifiche\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letto!\"])},\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stato sconosciuto, lo sto cercando…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha gradito\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica notifiche precedenti\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha condiviso il tuo messaggio\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vuole seguirti\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fine delle notifiche\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"è migrato verso\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"ha reagito con \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Errore nel caricare le notifiche: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスがみつかりません。さがしています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがおきにいりされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ふるいつうちをみる\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうち\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"よんだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうちはありません\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"つうちをとりにいくことに、しっぱいしました: \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたをフォローしたいです\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスを、ひっこしました\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" でリアクションしました\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"とうひょうが、おわりました\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"つうほうしました\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ステータスが見つかりません。探しています…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがお気に入りされました\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"フォローされました\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"古い通知をみる\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"読んだ!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたのステータスがリピートされました\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知はありません\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" でリアクションしました\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"インスタンスを引っ越しました\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"あなたをフォローしたいです\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"通知の取得に失敗しました: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알 수 없는 게시물입니다, 검색합니다…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"관심을 가짐\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"팔로우함\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"이전 알림 불러오기\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알림\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"읽음!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"리핏함\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"알림이 없습니다\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"이사했습니다\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 로 반응했습니다\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"알림 불러오기 실패: \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"팔로우 요청\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"신고 내용을 전송함\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"투표가 끝남\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ukjent status, leter etter den…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"likte din status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fulgte deg\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last eldre varsler\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Varslinger\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gjentok din status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen gjenstående varsler\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ønsker å følge deg\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Onbekend bericht, aan het zoeken…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vond je bericht leuk\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgt jou\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oudere meldingen laden\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meldingen\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gelezen!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"herhaalde je bericht\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen meldingen meer\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"is gemigreerd naar\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wil je volgen\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reageerde met \", _interpolate(_list(0))])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Fout bij ophalen van meldingen: \", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"peiling is beëindigd\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estatut desconegut, sèm a lo cercar...\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a aimat vòstre estatut\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vos a seguit\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar las notificacions mai ancianas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notficacions\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legit !\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a repetit vòstre estatut\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas mai de notificacions\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieznany status, szukam go…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dodał(-a) twój status do ulubionych\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"obserwuje cię\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Załaduj starsze powiadomienia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Powiadomienia\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Przeczytane!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"powtórzył(-a) twój status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nie masz więcej powiadomień\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wyemigrował do\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"zareagował z \", _interpolate(_list(0))])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"chce ciebie obserwować\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Błąd pobierania powiadomień: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Publicação desconhecida, a procurar…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gostou do teu post\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seguiu-te\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carregar notificações antigas\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificações\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lido!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partilhou o teu post\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sem mais notificações\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagiu com \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrou para\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"quer seguir-te\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Erro ao obter notificações: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"te-a urmărit\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notificări\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Citit!\"])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Неизвестный статус, ищем…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"нравится ваш статус\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"начал(а) читать вас\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Загрузить старые уведомления\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Уведомления\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Прочесть\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"повторил(а) ваш статус\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"хочет читать вас\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"добавил(а) реакцию: \", _interpolate(_list(0))])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"перехал на\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Нет дальнейших уведомлений\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Ошибка при обновлении уведомлений: \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neznáma správa, dohľadávam ju…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Chyba získavania upozornení: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"si obľúbil tvoju správu\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ťa nasleduje\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ťa chce nasledovať\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nahrať staršie upozornenia\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upozornenia\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prečítané!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zopakoval tvoju správu\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Žiadne ďalšie upozornenia\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sa presťahoval na\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reagoval nasledovne \", _interpolate(_list(0))])}\n }\n}","export default {\n \"notifications\": {\n \n }\n}","export default {\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的状态,正在搜索中…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢了你的状态\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的通知\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已阅!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了你的状态\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的通知\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反应\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迁移到了\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要关注你\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得通知时发生错误:\", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票结束了\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交举报\"])}\n }\n}","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&#39;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","'use strict';\n\nvar qs = require('querystring')\n , url = require('url')\n , xtend = require('xtend');\n\nconst PARSE_LINK_HEADER_MAXLEN = parseInt(process.env.PARSE_LINK_HEADER_MAXLEN) || 2000;\nconst PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED = process.env.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED != null\n\nfunction hasRel(x) {\n return x && x.rel;\n}\n\nfunction intoRels (acc, x) {\n function splitRel (rel) {\n acc[rel] = xtend(x, { rel: rel });\n }\n\n x.rel.split(/\\s+/).forEach(splitRel);\n\n return acc;\n}\n\nfunction createObjects (acc, p) {\n // rel=\"next\" => 1: rel 2: next\n var m = p.match(/\\s*(.+)\\s*=\\s*\"?([^\"]+)\"?/)\n if (m) acc[m[1]] = m[2];\n return acc;\n}\n\nfunction parseLink(link) {\n try {\n var m = link.match(/<?([^>]*)>(.*)/)\n , linkUrl = m[1]\n , parts = m[2].split(';')\n , parsedUrl = url.parse(linkUrl)\n , qry = qs.parse(parsedUrl.query);\n\n parts.shift();\n\n var info = parts\n .reduce(createObjects, {});\n \n info = xtend(qry, info);\n info.url = linkUrl;\n return info;\n } catch (e) {\n return null;\n }\n}\n\nfunction checkHeader(linkHeader){\n if (!linkHeader) return false;\n\n if (linkHeader.length > PARSE_LINK_HEADER_MAXLEN) {\n if (PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED) {\n throw new Error('Input string too long, it should be under ' + PARSE_LINK_HEADER_MAXLEN + ' characters.');\n } else {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = function (linkHeader) {\n if (!checkHeader(linkHeader)) return null;\n\n return linkHeader.split(/,\\s*</)\n .map(parseLink)\n .filter(hasRel)\n .reduce(intoRels, {});\n};\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import { filter, sortBy, includes } from 'lodash'\nimport { muteWordHits } from '../status_parser/status_parser.js'\nimport { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => {\n const rootState = store.rootState || store.state\n\n return ([\n rootState.config.notificationVisibility.likes && 'like',\n rootState.config.notificationVisibility.mentions && 'mention',\n rootState.config.notificationVisibility.repeats && 'repeat',\n rootState.config.notificationVisibility.follows && 'follow',\n rootState.config.notificationVisibility.followRequest && 'follow_request',\n rootState.config.notificationVisibility.moves && 'move',\n rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction',\n rootState.config.notificationVisibility.reports && 'pleroma:report',\n rootState.config.notificationVisibility.polls && 'poll'\n ].filter(_ => _))\n}\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction', 'poll']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nexport const isValidNotification = (notification) => {\n if (isStatusNotification(notification.type) && !notification.status) {\n return false\n }\n return true\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst isMutedNotification = (store, notification) => {\n if (!notification.status) return\n return notification.status.muted || muteWordHits(notification.status, store.rootGetters.mergedConfig.muteWords).length > 0\n}\n\nexport const maybeShowNotification = (store, notification) => {\n const rootState = store.rootState || store.state\n\n if (notification.seen) return\n if (!visibleTypes(store).includes(notification.type)) return\n if (notification.type === 'mention' && isMutedNotification(store, notification)) return\n\n const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)\n showDesktopNotification(rootState, notificationObject)\n}\n\nexport const filteredNotificationsFromStore = (store, types) => {\n // map is just to clone the array since sort mutates it and it causes some issues\n let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n sortedNotifications = sortBy(sortedNotifications, 'seen')\n return sortedNotifications.filter(\n (notification) => (types || visibleTypes(store)).includes(notification.type)\n )\n}\n\nexport const unseenNotificationsFromStore = store =>\n filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)\n\nexport const prepareNotificationObject = (notification, i18n) => {\n const notifObj = {\n tag: notification.id\n }\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.title = title\n notifObj.icon = notification.from_profile.profile_image_url\n let i18nString\n switch (notification.type) {\n case 'like':\n i18nString = 'favorited_you'\n break\n case 'repeat':\n i18nString = 'repeated_you'\n break\n case 'follow':\n i18nString = 'followed_you'\n break\n case 'move':\n i18nString = 'migrated_to'\n break\n case 'follow_request':\n i18nString = 'follow_request'\n break\n case 'pleroma:report':\n i18nString = 'submitted_report'\n break\n case 'poll':\n i18nString = 'poll_ended'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = i18n.t('notifications.' + i18nString)\n } else if (isStatusNotification(notification.type)) {\n notifObj.body = notification.status.text\n }\n\n // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...\n if (status && status.attachments && status.attachments.length > 0 && !status.nsfw &&\n status.attachments[0].mimetype.startsWith('image/')) {\n notifObj.image = status.attachments[0].url\n }\n\n return notifObj\n}\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","import escape from 'escape-html'\nimport parseLinkHeader from 'parse-link-header'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\nimport punycode from 'punycode.js'\n\n/** NOTICE! **\n * Do not initialize UI-generated data here.\n * It will override existing data.\n *\n * i.e. user.pinnedStatusIds was set to [] here\n * UI code would update it with data but upon next user fetch\n * it would be reverted back to []\n */\n\nconst qvitterStatusType = (status) => {\n if (status.is_post_verb) {\n return 'status'\n }\n\n if (status.retweeted_status) {\n return 'retweet'\n }\n\n if ((typeof status.uri === 'string' && status.uri.match(/(fave|objectType=Favourite)/)) ||\n (typeof status.text === 'string' && status.text.match(/favorited/))) {\n return 'favorite'\n }\n\n if (status.text.match(/deleted notice {{tag/) || status.qvitter_delete_notice) {\n return 'deletion'\n }\n\n if (status.text.match(/started following/) || status.activity_type === 'follow') {\n return 'follow'\n }\n\n return 'unknown'\n}\n\nexport const parseUser = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !Object.prototype.hasOwnProperty.call(data, 'avatar')\n\n output.inLists = null\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.fqn = data.fqn\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n if (data.pleroma.settings_store) {\n output.storage = data.pleroma.settings_store['pleroma-fe']\n }\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n\n output.birthday = data.pleroma.birthday\n\n if (data.pleroma.privileges) {\n output.privileges = data.pleroma.privileges\n } else if (data.pleroma.is_admin) {\n output.privileges = [\n 'users_read',\n 'users_manage_invites',\n 'users_manage_activation_state',\n 'users_manage_tags',\n 'users_manage_credentials',\n 'users_delete',\n 'messages_read',\n 'messages_delete',\n 'instances_delete',\n 'reports_manage_reports',\n 'moderation_log_read',\n 'announcements_manage_announcements',\n 'emoji_manage_emoji',\n 'statistics_read'\n ]\n } else if (data.pleroma.is_moderator) {\n output.privileges = [\n 'messages_delete',\n 'reports_manage_reports'\n ]\n } else {\n output.privileges = []\n }\n }\n\n if (data.source) {\n output.description = data.source.note\n output.default_scope = data.source.privacy\n output.fields = data.source.fields\n if (data.source.pleroma) {\n output.no_rich_text = data.source.pleroma.no_rich_text\n output.show_role = data.source.pleroma.show_role\n output.discoverable = data.source.pleroma.discoverable\n output.show_birthday = data.pleroma.show_birthday\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n const unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n output.screen_name_ui_contains_non_ascii = true\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n } else {\n output.screen_name_ui_contains_non_ascii = false\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !Object.prototype.hasOwnProperty.call(data, 'oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseSource = (data) => {\n const output = {}\n\n output.text = data.text\n output.spoiler_text = data.spoiler_text\n output.content_type = data.content_type\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n output.edited_at = data.edited_at\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n if (Object.prototype.hasOwnProperty.call(data, 'originalStatus')) {\n Object.assign(output, data.originalStatus)\n }\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n favourite: 'like',\n reblog: 'repeat'\n }\n const masto = !Object.prototype.hasOwnProperty.call(data, 'ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n if (data.report) {\n output.report = data.report\n output.report.content = data.report.content\n output.report.acct = parseUser(data.report.account)\n output.report.actor = parseUser(data.report.actor)\n output.report.statuses = data.report.statuses.map(parseStatus)\n }\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&apos;');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function detectModuloStart(scnr) {\r\n const spaces = peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n scnr.peek() === \"{\" /* BraceLeft */;\r\n scnr.resetPeek();\r\n return {\r\n isModulo: ret,\r\n hasSpace: spaces.length > 0\r\n };\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readModulo(scnr) {\r\n skipSpaces(scnr);\r\n const ch = scnr.currentChar();\r\n if (ch !== \"%\" /* Modulo */) {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n }\r\n scnr.next();\r\n return \"%\" /* Modulo */;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n if (isModulo) {\r\n return hasSpace\r\n ? getToken(context, 0 /* Text */, readText(scnr))\r\n : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n transformer.helper(\"type\" /* TYPE */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n generator.push(`, _type`);\r\n }\r\n else {\r\n generator.push(`, undefined, _type`);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*.*?\\*\\//gs;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText\n .replace(styleCommentRE, '')\n .split(listDelimiterRE)\n .forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === 'number') {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\n */\nfunction includeBooleanAttr(value) {\n return !!value || value === '';\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return (attrValidationCache[name] = !isUnsafe);\n}\nconst propsToAttrMap = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n};\n/**\n * Known attributes, this is used for stringification of runtime static nodes\n * so that we don't stringify bindings that cannot be set from HTML.\n * Don't also forget to allow `data-*` and `aria-*`!\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n */\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\n `value,width,wrap`);\n/**\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n */\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\n `color-interpolation-filters,color-profile,color-rendering,` +\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = '' + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = '';\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escaped = '&quot;';\n break;\n case 38: // &\n escaped = '&amp;';\n break;\n case 39: // '\n escaped = '&#39;';\n break;\n case 60: // <\n escaped = '&lt;';\n break;\n case 62: // >\n escaped = '&gt;';\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\n// https://www.w3.org/TR/html52/syntax.html#comments\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, '');\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if ((aHasKey && !bHasKey) ||\n (!aHasKey && bHasKey) ||\n !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex(item => looseEqual(item, val));\n}\n\n/**\n * For converting {{ interpolation }} values to displayed strings.\n * @private\n */\nconst toDisplayString = (val) => {\n return isString(val)\n ? val\n : val == null\n ? ''\n : isArray(val) ||\n (isObject(val) &&\n (val.toString === objectToString || !isFunction(val.toString)))\n ? JSON.stringify(val, replacer, 2)\n : String(val);\n};\nconst replacer = (_key, val) => {\n // can't use isRef here since @vue/shared has no deps\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n }\n else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\n entries[`${key} =>`] = val;\n return entries;\n }, {})\n };\n }\n else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n }\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\n ? Object.freeze({})\n : {};\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\nconst NOOP = () => { };\n/**\n * Always return false.\n */\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith('onUpdate:');\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === '[object Map]';\nconst isSet = (val) => toTypeString(val) === '[object Set]';\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isSymbol = (val) => typeof val === 'symbol';\nconst isObject = (val) => val !== null && typeof val === 'object';\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n // extract \"RawType\" from strings like \"[object RawType]\"\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\nconst isIntegerKey = (key) => isString(key) &&\n key !== 'NaN' &&\n key[0] !== '-' &&\n '' + parseInt(key, 10) === key;\nconst isReservedProp = /*#__PURE__*/ makeMap(\n// the leading comma is intentional so empty string \"\" is also included\n',key,ref,ref_for,ref_key,' +\n 'onVnodeBeforeMount,onVnodeMounted,' +\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\nconst cacheStringFunction = (fn) => {\n const cache = Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-(\\w)/g;\n/**\n * @private\n */\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\n});\nconst hyphenateRE = /\\B([A-Z])/g;\n/**\n * @private\n */\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\n/**\n * @private\n */\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n/**\n * @private\n */\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n// compare whether a value has changed, accounting for NaN.\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name)\n ? `__props.${name}`\n : `__props[${JSON.stringify(name)}]`;\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { extend, isArray, toNumber, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`onScopeDispose() is called when there is no active effect scope` +\n ` to be associated with.`);\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit; // set was tracked\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n }\n else {\n deps[ptr++] = dep;\n }\n // clear bits\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = new WeakMap();\n// The number of effects currently being tracked recursively.\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\n/**\n * The bitwise track markers support at most 30 levels of recursion.\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\n * When recursion depth is greater, fall back to using a full cleanup.\n */\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = undefined;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n }\n else {\n cleanupEffect(this);\n }\n return this.fn();\n }\n finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = undefined;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n // stopped while running itself - defer the cleanup\n if (activeEffect === this) {\n this.deferStop = true;\n }\n else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === undefined ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, (depsMap = new Map()));\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, (dep = createDep()));\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { effect: activeEffect, target, type, key }\n : undefined;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit; // set newly tracked\n shouldTrack = !wasTracked(dep);\n }\n }\n else {\n // Full cleanup mode.\n shouldTrack = !dep.has(activeEffect);\n }\n if (shouldTrack) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n // never been tracked\n return;\n }\n let deps = [];\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\n // collection being cleared\n // trigger all effects for target\n deps = [...depsMap.values()];\n }\n else if (key === 'length' && isArray(target)) {\n const newLength = toNumber(newValue);\n depsMap.forEach((dep, key) => {\n if (key === 'length' || key >= newLength) {\n deps.push(dep);\n }\n });\n }\n else {\n // schedule runs for SET | ADD | DELETE\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n // also run for iteration key on ADD | DELETE | Map.SET\n switch (type) {\n case \"add\" /* TriggerOpTypes.ADD */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n else if (isIntegerKey(key)) {\n // new index added to array -> length changes\n deps.push(depsMap.get('length'));\n }\n break;\n case \"delete\" /* TriggerOpTypes.DELETE */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\" /* TriggerOpTypes.SET */:\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { target, type, key, newValue, oldValue, oldTarget }\n : undefined;\n if (deps.length === 1) {\n if (deps[0]) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(deps[0], eventInfo);\n }\n else {\n triggerEffects(deps[0]);\n }\n }\n }\n else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(createDep(effects), eventInfo);\n }\n else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n // spread into array for stabilization\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\n }\n if (effect.scheduler) {\n effect.scheduler();\n }\n else {\n effect.run();\n }\n }\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n/*#__PURE__*/\nObject.getOwnPropertyNames(Symbol)\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\n // function\n .filter(key => key !== 'arguments' && key !== 'caller')\n .map(key => Symbol[key])\n .filter(isSymbol));\nconst get = /*#__PURE__*/ createGetter();\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\n }\n // we run the method using the original args first (which may be reactive)\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n // if that didn't work, run it again using raw values.\n return arr[key](...args.map(toRaw));\n }\n else {\n return res;\n }\n };\n });\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\n instrumentations[key] = function (...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get(target, key, receiver) {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\n return shallow;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\n receiver ===\n (isReadonly\n ? shallow\n ? shallowReadonlyMap\n : readonlyMap\n : shallow\n ? shallowReactiveMap\n : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\" /* TrackOpTypes.GET */, key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n // ref unwrapping - skip unwrap for Array + integer key.\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n // Convert returned value into a proxy as well. we do the isObject check\n // here to avoid invalid value warning. Also need to lazy access readonly\n // and reactive here to avoid circular dependency.\n return isReadonly ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set = /*#__PURE__*/ createSetter();\nconst shallowSet = /*#__PURE__*/ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key)\n ? Number(key) < target.length\n : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n // don't trigger if target is something up in the prototype chain of original\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get,\n set,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\n// Props handlers are special in the sense that it should not unwrap top-level\n// refs (in order to allow refs to be explicitly passed down), but should\n// retain the reactivity of the normal readonly object.\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n});\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\n // of the value\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\n }\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n }\n else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n }\n else if (target !== rawTarget) {\n // #3602 readonly(reactive(Map))\n // ensure that the nested reactive `Map` can do tracking for itself\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\n }\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\n }\n return key === rawKey\n ? target.has(key)\n : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return Reflect.get(target, 'size', target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : undefined;\n // forward the operation before queueing reactions\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = (process.env.NODE_ENV !== 'production')\n ? isMap(target)\n ? new Map(target)\n : new Set(target)\n : undefined;\n // forward the operation before queueing reactions\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return target.forEach((value, key) => {\n // important: make sure the callback is\n // 1. invoked with the reactive map as `this` and 3rd arg\n // 2. the value received should be a corresponding reactive/readonly.\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function (...args) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\n const isKeyOnly = method === 'keys' && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly &&\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n // return a wrapped iterator which returns observed versions of the\n // values emitted from the real iterator\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done\n ? { value, done }\n : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function (...args) {\n if ((process.env.NODE_ENV !== 'production')) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\n iteratorMethods.forEach(method => {\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow\n ? isReadonly\n ? shallowReadonlyInstrumentations\n : shallowInstrumentations\n : isReadonly\n ? readonlyInstrumentations\n : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target\n ? instrumentations\n : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\n `which can lead to inconsistencies. ` +\n `Avoid differentiating between the raw and reactive versions ` +\n `of an object and only use the reactive version if possible.`);\n }\n}\n\nconst reactiveMap = new WeakMap();\nconst shallowReactiveMap = new WeakMap();\nconst readonlyMap = new WeakMap();\nconst shallowReadonlyMap = new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return 1 /* TargetType.COMMON */;\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n return 2 /* TargetType.COLLECTION */;\n default:\n return 0 /* TargetType.INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\n ? 0 /* TargetType.INVALID */\n : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\n/**\n * Creates a readonly copy of the original object. Note the returned copy is not\n * made reactive, but `readonly` can be called on an already reactive object.\n */\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n // target is already a Proxy, return it.\n // exception: calling readonly() on a reactive object\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\n return target;\n }\n // target already has corresponding Proxy\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n // only specific value types can be observed.\n const targetType = getTargetType(target);\n if (targetType === 0 /* TargetType.INVALID */) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n if ((process.env.NODE_ENV !== 'production')) {\n trackEffects(ref.dep || (ref.dep = createDep()), {\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(ref.dep, {\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value',\n newValue: newVal\n });\n }\n else {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = undefined;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref) {\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs)\n ? objectWithRefs\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = undefined;\n this.__v_isRef = true;\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === undefined ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n}\nfunction toRef(object, key, defaultValue) {\n const val = object[key];\n return isRef(val)\n ? val\n : new ObjectRefImpl(object, key, defaultValue);\n}\n\nvar _a;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = undefined;\n this.__v_isRef = true;\n this[_a] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\n }\n get value() {\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = (process.env.NODE_ENV !== 'production')\n ? () => {\n console.warn('Write operation failed: computed value is readonly');\n }\n : NOOP;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nvar _a$1;\nconst tick = /*#__PURE__*/ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = undefined;\n this._dirty = true;\n this.__v_isRef = true;\n this[_a$1] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n }\n else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n // chained upstream computeds are notified synchronously to ensure\n // value invalidation in case of sync access; normal effects are\n // deferred to be triggered in scheduler.\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(true /* computedTrigger */);\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return (this._value = this.effect.run());\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n return toRaw(this)._get();\n }\n}\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!(process.env.NODE_ENV !== 'production'))\n return;\n // avoid props formatting or warn handler tracking deps that might be mutated\n // during patch, leading to infinite recursion.\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\n msg + args.join(''),\n instance && instance.proxy,\n trace\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\n .join('\\n'),\n trace\n ]);\n }\n else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n /* istanbul ignore if */\n if (trace.length &&\n // avoid spamming console during tests\n !false) {\n warnArgs.push(`\\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n // we can't just use the stack because it will be incomplete during updates\n // that did not start from the root. Re-construct the parent chain using\n // instance parent pointers.\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n }\n else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\n/* istanbul ignore next */\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\n const close = `>` + postfix;\n return vnode.props\n ? [open, ...formatProps(vnode.props), close]\n : [open + close];\n}\n/* istanbul ignore next */\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach(key => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\n/* istanbul ignore next */\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n }\n else if (typeof value === 'number' ||\n typeof value === 'boolean' ||\n value == null) {\n return raw ? value : [`${key}=${value}`];\n }\n else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n }\n else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n }\n else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if ((process.env.NODE_ENV !== 'production')) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n // crash in dev by default so it's more noticeable\n if (throwInDev) {\n throw err;\n }\n else {\n console.error(err);\n }\n }\n else {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if ((process.env.NODE_ENV !== 'production') &&\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = (process.env.NODE_ENV !== 'production')\n ? (job) => checkRecursiveUpdates(seen, job)\n : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n }\n else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`);\n return true;\n }\n else {\n seen.set(fn, count + 1);\n }\n }\n}\n\n/* eslint-disable no-restricted-globals */\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = new Set();\n// Expose the HMR runtime on the global object\n// This makes it entirely tree-shakable without polluting the exports and makes\n// it easier to be used in toolings like vue-loader\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\n// to be set so that its instances can be registered / removed.\nif ((process.env.NODE_ENV !== 'production')) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n // update initial record (for not-yet-rendered component)\n record.initialDef.render = newRender;\n [...record.instances].forEach(instance => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n // this flag forces child components with slot content to update\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n // update initial def (for not-yet-rendered components)\n updateComponentDef(record.initialDef, newComp);\n // create a snapshot which avoids the set being mutated during updates\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n // 1. Update existing comp definition to match new one\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n // 2. mark definition dirty. This forces the renderer to replace the\n // component on patch.\n hmrDirtyComponents.add(oldComp);\n }\n // 3. invalidate options resolution cache\n instance.appContext.optionsCache.delete(instance.type);\n // 4. actually update\n if (instance.ceReload) {\n // custom element\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n }\n else if (instance.parent) {\n // 4. Force the parent instance to re-render. This will cause all updated\n // components to be unmounted and re-mounted. Queue the update so that we\n // don't end up forcing the same parent to re-render multiple times.\n queueJob(instance.parent.update);\n }\n else if (instance.appContext.reload) {\n // root instance mounted via createApp() has a reload method\n instance.appContext.reload();\n }\n else if (typeof window !== 'undefined') {\n // root instance inside tree created via raw render(). Force reload.\n window.location.reload();\n }\n else {\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\n }\n }\n // 5. make sure to cleanup dirty hmr components after update\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== '__file' && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n }\n catch (e) {\n console.error(e);\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\n `Full reload required.`);\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n }\n else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3000);\n }\n else {\n // non-browser env, assume not installed\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = \n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools &&\n typeof devtools.cleanupBuffer === 'function' &&\n // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\n };\n}\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if ((process.env.NODE_ENV !== 'production')) {\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) &&\n !(false )) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\n }\n }\n else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => (isString(a) ? a.trim() : a));\n }\n if (number) {\n args = rawArgs.map(toNumber);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\n `Note that HTML attributes are case-insensitive and you cannot use ` +\n `v-on to listen to camelCase events when using in-DOM templates. ` +\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\n }\n }\n let handlerName;\n let handler = props[(handlerName = toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = toHandlerKey(camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n hasOwn(options, hyphenate(key)) ||\n hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled `<slot>`, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\n/**\n * dev only flag to track whether $attrs was used during render.\n * If $attrs was used during render then the warning for failed attrs\n * fallthrough can be suppressed.\n */\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(render.length > 1\n ? render(props, (process.env.NODE_ENV !== 'production')\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n let setRoot = undefined;\n if ((process.env.NODE_ENV !== 'production') &&\n result.patchFlag > 0 &&\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n // ignore v-model handlers when they fail to fallthrough\n if (!isModelListener(key)) {\n // remove `on`, lowercase first letter to reflect event casing\n // accurately\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n }\n else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(`Extraneous non-props attributes (` +\n `${extraAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes.`);\n }\n if (eventAttrs.length) {\n warn(`Extraneous non-emits event listeners (` +\n `${eventAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes. ` +\n `If the listener is intended to be a component custom event listener only, ` +\n `declare it using the \"emits\" option.`);\n }\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Runtime directive used on component with non-element root node. ` +\n `The directives will not function as intended.`);\n }\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Component inside <Transition> renders non-element root node ` +\n `that cannot be animated.`);\n }\n root.transition = vnode.transition;\n }\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\n setRoot(root);\n }\n else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\n/**\n * dev only\n * In dev mode, template root level comments are rendered, which turns the\n * template into a fragment root, but we need to locate the single element\n * root for attrs and scope id processing.\n */\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, undefined];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n }\n else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\n vnode.type === Comment // potential v-if branch switch\n );\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // Parent component's render function was hot-updated. Since this may have\n // caused the child component's slots content to have changed, we need to\n // force the child to update as well.\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\n hasWarned = true;\n // @ts-ignore `console.info` cannot be null error\n console[console.info ? 'info' : 'log'](`<Suspense> is an experimental feature and its API will likely change.`);\n }\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = toNumber(vnode.props && vnode.props.timeout);\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n if ((process.env.NODE_ENV !== 'production')) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(`suspense.resolve() is called without a pending branch.`);\n }\n if (suspense.isUnmounted) {\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\n }\n }\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(vnode);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\n warn(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`provide() can only be used inside setup().`);\n }\n }\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`injection \"${String(key)}\" not found.`);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\n `supports \\`watch(source, cb, options?) signature.`);\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n if ((process.env.NODE_ENV !== 'production') && !cb) {\n if (immediate !== undefined) {\n warn(`watch() \"immediate\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n if (deep !== undefined) {\n warn(`watch() \"deep\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n }\n const warnInvalidSource = (s) => {\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\n `a reactive object, or an array of these types.`);\n };\n const instance = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n }\n else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\n getter = () => source.map(s => {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\n }\n });\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = NOOP;\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager or sync flush\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n if (flush === 'sync') {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n }\n else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource\n ? new Array(source.length).fill(INITIAL_WATCHER_VALUE)\n : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\n : hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE\n ? undefined\n : (isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE)\n ? []\n : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\n // warn more than one non-comment child\n warn('<transition> can only be used on a single element or component. ' +\n 'Use <transition-group> for lists.');\n break;\n }\n child = c;\n hasFound = true;\n if (!(process.env.NODE_ENV !== 'production'))\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n // check mode\n if ((process.env.NODE_ENV !== 'production') &&\n mode &&\n mode !== 'in-out' &&\n mode !== 'out-in' &&\n mode !== 'default') {\n warn(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of <transition><keep-alive/></transition>, we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n // #6835\n // it also needs to be updated when active is undefined\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of <template v-for>\n const key = parentKey == null\n ? child.key\n : String(parentKey) + String(child.key != null ? child.key : i);\n // handle fragment children case, e.g. v-for\n if (child.type === Fragment) {\n if (child.patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n }\n // comment placeholders should be skipped, e.g. v-if\n else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n // #1126 if a transition children list contains multiple sub fragments, these\n // fragments will be merged into a flat children array. Since each v-for\n // fragment may contain different static bindings inside, we need to de-op\n // these children to force full diffs to ensure correct behavior.\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2 /* PatchFlags.BAIL */;\n }\n }\n return ret;\n}\n\n// implementation, close to no-op\nfunction defineComponent(options) {\n return isFunction(options) ? { setup: options, name: options.name } : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\n suspensible = true, onError: userOnError } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return (pendingRequest ||\n (thisRequest = pendingRequest =\n loader()\n .catch(err => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n }\n else {\n throw err;\n }\n })\n .then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if ((process.env.NODE_ENV !== 'production') && !comp) {\n warn(`Async component loader resolved to undefined. ` +\n `If you are using retry(), make sure to return its return value.`);\n }\n // interop module default\n if (comp &&\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n })));\n };\n return defineComponent({\n name: 'AsyncComponentWrapper',\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n // already resolved\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(err, instance, 13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\n };\n // suspense-controlled or SSR.\n if ((suspensible && instance.suspense) ||\n (isInSSRComponentSetup)) {\n return load()\n .then(comp => {\n return () => createInnerComp(comp, instance);\n })\n .catch(err => {\n onError(err);\n return () => errorComponent\n ? createVNode(errorComponent, {\n error: err\n })\n : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(`Async component timed out after ${timeout}ms.`);\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load()\n .then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n // parent is keep-alive, force update so the loaded component's\n // name is taken into account\n queueJob(instance.parent.update);\n }\n })\n .catch(err => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n }\n else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n }\n else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n // ensure inner component inherits the async wrapper's ref owner\n vnode.ref = ref;\n // pass the custom element callback on to the inner comp\n // and remove it from the async wrapper\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n // KeepAlive communicates with the instantiated renderer via the\n // ctx where the renderer passes in its internals,\n // and the KeepAlive instance exposes activate/deactivate implementations.\n // The whole point of this is to avoid importing KeepAlive directly in the\n // renderer to facilitate tree-shaking.\n const sharedContext = instance.ctx;\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\n // for KeepAlive, we just need to render its children\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = new Map();\n const keys = new Set();\n let current = null;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\n const storageContainer = createElement('div');\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance = vnode.component;\n move(vnode, container, anchor, 0 /* MoveType.ENTER */, parentSuspense);\n // in case props have changed\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\n queuePostRenderEffect(() => {\n instance.isDeactivated = false;\n if (instance.a) {\n invokeArrayFns(instance.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance = vnode.component;\n move(vnode, storageContainer, null, 1 /* MoveType.LEAVE */, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance.da) {\n invokeArrayFns(instance.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n instance.isDeactivated = true;\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n function unmount(vnode) {\n // reset the shapeFlag so it can be properly unmounted\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || cached.type !== current.type) {\n unmount(cached);\n }\n else if (current) {\n // current active instance should no longer be kept-alive.\n // we can't unmount it now but it might be later, so reset its flag now.\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n // prune cache on include/exclude prop change\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\n include && pruneCache(name => matches(include, name));\n exclude && pruneCache(name => !matches(exclude, name));\n }, \n // prune post-render after `current` has been updated\n { flush: 'post', deep: true });\n // cache sub tree after render\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n // fix #1621, the pendingCacheKey could be 0\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach(cached => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type) {\n // current instance will be unmounted as part of keep-alive's unmount\n resetShapeFlag(vnode);\n // but invoke its deactivated hook here\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n }\n else if (!isVNode(rawVNode) ||\n (!(rawVNode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) &&\n !(rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */))) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n // for async components, name check should be based in its loaded\n // inner component if available\n const name = getComponentName(isAsyncWrapper(vnode)\n ? vnode.type.__asyncResolved || {}\n : comp);\n const { include, exclude, max } = props;\n if ((include && (!name || !matches(include, name))) ||\n (exclude && name && matches(exclude, name))) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n // clone vnode if it's reused because we are going to mutate it\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n rawVNode.ssContent = vnode;\n }\n }\n // #1513 it's possible for the returned vnode to be cloned due to attr\n // fallthrough or scopeId, so the vnode here may not be the final vnode\n // that is mounted. Instead of caching it directly, we store the pending\n // key and cache `instance.subTree` (the normalized vnode) in\n // beforeMount/beforeUpdate hooks.\n pendingCacheKey = key;\n if (cachedVNode) {\n // copy over mounted state\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n // recursively update transition hooks on subTree\n setTransitionHooks(vnode, vnode.transition);\n }\n // avoid vnode being mounted as fresh\n vnode.shapeFlag |= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n // make this key the freshest\n keys.delete(key);\n keys.add(key);\n }\n else {\n keys.add(key);\n // prune oldest entry\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n // avoid vnode being unmounted\n vnode.shapeFlag |= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n }\n else if (isString(pattern)) {\n return pattern.split(',').includes(name);\n }\n else if (pattern.test) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\" /* LifecycleHooks.ACTIVATED */, target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\" /* LifecycleHooks.DEACTIVATED */, target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n // cache the deactivate branch check wrapper for injected hooks so the same\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\n // deactivation check\".\n const wrappedHook = hook.__wdc ||\n (hook.__wdc = () => {\n // only fire the hook if the target instance is NOT in a deactivated branch.\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n // In addition to registering it on the target instance, we walk up the parent\n // chain and register it on all ancestor instances that are keep-alive roots.\n // This avoids the need to walk the entire component tree when invoking these\n // hooks, and more importantly, avoids the need to track child components in\n // arrays.\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n // injectHook wraps the original for error handling, so make sure to remove\n // the wrapped version.\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n // bitwise operations to remove keep alive flags\n vnode.shapeFlag &= ~256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n vnode.shapeFlag &= ~512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */ ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n // cache the error handling wrapper for injected hooks so the same hook\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\n // handling\".\n const wrappedHook = hook.__weh ||\n (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n // Set currentInstance during hook invocation.\n // This assumes the hook does not synchronously trigger other hooks, which\n // can only be false when the user does something really funky.\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n }\n else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\n warn(`${apiName} is called when there is no active component instance to be ` +\n `associated with. ` +\n `Lifecycle injection APIs can only be used during execution of setup().` +\n (` If you are using async setup(), make sure to register lifecycle ` +\n `hooks before the first await statement.`\n ));\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* LifecycleHooks.SERVER_PREFETCH */) &&\n injectHook(lifecycle, (...args) => hook(...args), target);\nconst onBeforeMount = createHook(\"bm\" /* LifecycleHooks.BEFORE_MOUNT */);\nconst onMounted = createHook(\"m\" /* LifecycleHooks.MOUNTED */);\nconst onBeforeUpdate = createHook(\"bu\" /* LifecycleHooks.BEFORE_UPDATE */);\nconst onUpdated = createHook(\"u\" /* LifecycleHooks.UPDATED */);\nconst onBeforeUnmount = createHook(\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */);\nconst onUnmounted = createHook(\"um\" /* LifecycleHooks.UNMOUNTED */);\nconst onServerPrefetch = createHook(\"sp\" /* LifecycleHooks.SERVER_PREFETCH */);\nconst onRenderTriggered = createHook(\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */);\nconst onRenderTracked = createHook(\"rtc\" /* LifecycleHooks.RENDER_TRACKED */);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\" /* LifecycleHooks.ERROR_CAPTURED */, hook, target);\n}\n\n/**\nRuntime helper for applying directives to a vnode. Example usage:\n\nconst comp = resolveComponent('comp')\nconst foo = resolveDirective('foo')\nconst bar = resolveDirective('bar')\n\nreturn withDirectives(h(comp), [\n [foo, this.x],\n [bar, this.y]\n])\n*/\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn('Do not use built-in directive ids as custom directive id: ' + name);\n }\n}\n/**\n * Adds directives to a VNode.\n */\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) ||\n internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8 /* ErrorCodes.DIRECTIVE_HOOK */, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst COMPONENTS = 'components';\nconst DIRECTIVES = 'directives';\n/**\n * @private\n */\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\n/**\n * @private\n */\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n }\n else {\n // invalid types will fallthrough to createVNode and raise warning\n return (component || NULL_DYNAMIC_COMPONENT);\n }\n}\n/**\n * @private\n */\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\n// implementation\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n // explicit self name has highest priority\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false /* do not include inferred name to avoid breaking existing code */);\n if (selfName &&\n (selfName === name ||\n selfName === camelize(name) ||\n selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = \n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) ||\n // global registration\n resolve(instance.appContext[type], name);\n if (!res && maybeSelfReference) {\n // fallback to implicit self-reference\n return Component;\n }\n if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {\n const extra = type === COMPONENTS\n ? `\\nIf this is a native custom element, make sure to exclude it from ` +\n `component resolution via compilerOptions.isCustomElement.`\n : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`resolve${capitalize(type.slice(0, -1))} ` +\n `can only be used in render() or setup().`);\n }\n}\nfunction resolve(registry, name) {\n return (registry &&\n (registry[name] ||\n registry[camelize(name)] ||\n registry[capitalize(camelize(name))]));\n}\n\n/**\n * Actual implementation\n */\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = (cache && cache[index]);\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, undefined, cached && cached[i]);\n }\n }\n else if (typeof source === 'number') {\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, undefined, cached && cached[i]);\n }\n }\n else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, undefined, cached && cached[i]));\n }\n else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n }\n else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\n/**\n * Compiler runtime helper for creating dynamic slots object\n * @private\n */\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n // array of dynamic slot generated by <template v-for=\"...\" #[...]>\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n }\n else if (slot) {\n // conditional single slot generated by <template v-if=\"...\" #foo>\n slots[slot.name] = slot.key\n ? (...args) => {\n const res = slot.fn(...args);\n // attach branch key so each conditional branch is considered a\n // different fragment\n if (res)\n res.key = slot.key;\n return res;\n }\n : slot.fn;\n }\n }\n return slots;\n}\n\n/**\n * Compiler runtime helper for rendering `<slot/>`\n * @private\n */\nfunction renderSlot(slots, name, props = {}, \n// this is not a user-facing function, so the fallback is always generated by\n// the compiler and guaranteed to be a function returning an array\nfallback, noSlotted) {\n if (currentRenderingInstance.isCE ||\n (currentRenderingInstance.parent &&\n isAsyncWrapper(currentRenderingInstance.parent) &&\n currentRenderingInstance.parent.isCE)) {\n if (name !== 'default')\n props.name = name;\n return createVNode('slot', props, fallback && fallback());\n }\n let slot = slots[name];\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\n `function. You need to mark this component with $dynamic-slots in the ` +\n `parent template.`);\n slot = () => [];\n }\n // a compiled slot disables block tracking by default to avoid manual\n // invocation interfering with template-based block tracking, but in\n // `renderSlot` we can be sure that it's template-based so we can force\n // enable it.\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, {\n key: props.key ||\n // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n (validSlotContent && validSlotContent.key) ||\n `_${name}`\n }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* SlotFlags.STABLE */\n ? 64 /* PatchFlags.STABLE_FRAGMENT */\n : -2 /* PatchFlags.BAIL */);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + '-s'];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment &&\n !ensureValidVNode(child.children))\n return false;\n return true;\n })\n ? vnodes\n : null;\n}\n\n/**\n * For prefixing keys in v-on=\"obj\" with \"on\"\n * @private\n */\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if ((process.env.NODE_ENV !== 'production') && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key)\n ? `on:${key}`\n : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\n/**\n * #2437 In Vue 3, functional components do not have a public instance proxy but\n * they exist in the internal parent chain. For code that relies on traversing\n * public $parent chains, skip functional ones and go to the parent instead.\n */\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = \n// Move PURE marker to new line to workaround compiler discarding it\n// due to type annotation\n/*#__PURE__*/ extend(Object.create(null), {\n $: i => i,\n $el: i => i.vnode.el,\n $data: i => i.data,\n $props: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.props) : i.props),\n $attrs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.attrs) : i.attrs),\n $slots: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.slots) : i.slots),\n $refs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.refs) : i.refs),\n $parent: i => getPublicInstance(i.parent),\n $root: i => getPublicInstance(i.root),\n $emit: i => i.emit,\n $options: i => (__VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type),\n $forceUpdate: i => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: i => (__VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP)\n});\nconst isReservedPrefix = (key) => key === '_' || key === '$';\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n // for internal formatters to know that this is a Vue instance\n if ((process.env.NODE_ENV !== 'production') && key === '__isVue') {\n return true;\n }\n // data / props / ctx\n // This getter gets called for every property access on the render context\n // during render and is a major hotspot. The most expensive part of this\n // is the multiple hasOwn() calls. It's much faster to do a simple property\n // access on a plain object, so we use an accessCache object (with null\n // prototype) to memoize what access type a key corresponds to.\n let normalizedProps;\n if (key[0] !== '$') {\n const n = accessCache[key];\n if (n !== undefined) {\n switch (n) {\n case 1 /* AccessTypes.SETUP */:\n return setupState[key];\n case 2 /* AccessTypes.DATA */:\n return data[key];\n case 4 /* AccessTypes.CONTEXT */:\n return ctx[key];\n case 3 /* AccessTypes.PROPS */:\n return props[key];\n // default: just fallthrough\n }\n }\n else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* AccessTypes.SETUP */;\n return setupState[key];\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* AccessTypes.DATA */;\n return data[key];\n }\n else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) &&\n hasOwn(normalizedProps, key)) {\n accessCache[key] = 3 /* AccessTypes.PROPS */;\n return props[key];\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* AccessTypes.OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n // public $xxx properties\n if (publicGetter) {\n if (key === '$attrs') {\n track(instance, \"get\" /* TrackOpTypes.GET */, key);\n (process.env.NODE_ENV !== 'production') && markAttrsAccessed();\n }\n return publicGetter(instance);\n }\n else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) &&\n (cssModule = cssModule[key])) {\n return cssModule;\n }\n else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n // user may set custom properties to `this` that start with `$`\n accessCache[key] = 4 /* AccessTypes.CONTEXT */;\n return ctx[key];\n }\n else if (\n // global properties\n ((globalProperties = appContext.config.globalProperties),\n hasOwn(globalProperties, key))) {\n {\n return globalProperties[key];\n }\n }\n else if ((process.env.NODE_ENV !== 'production') &&\n currentRenderingInstance &&\n (!isString(key) ||\n // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf('__v') !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(`Property ${JSON.stringify(key)} must be accessed via $data because it starts with a reserved ` +\n `character (\"$\" or \"_\") and is not proxied on the render context.`);\n }\n else if (instance === currentRenderingInstance) {\n warn(`Property ${JSON.stringify(key)} was accessed during render ` +\n `but is not defined on instance.`);\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n }\n else if ((process.env.NODE_ENV !== 'production') &&\n setupState.__isScriptSetup &&\n hasOwn(setupState, key)) {\n warn(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n }\n else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n }\n else if (hasOwn(instance.props, key)) {\n (process.env.NODE_ENV !== 'production') && warn(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === '$' && key.slice(1) in instance) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to mutate public property \"${key}\". ` +\n `Properties starting with $ are reserved and readonly.`);\n return false;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n }\n else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n let normalizedProps;\n return (!!accessCache[key] ||\n (data !== EMPTY_OBJ && hasOwn(data, key)) ||\n hasSetupBinding(setupState, key) ||\n ((normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key)) ||\n hasOwn(ctx, key) ||\n hasOwn(publicPropertiesMap, key) ||\n hasOwn(appContext.config.globalProperties, key));\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n // invalidate key cache of a getter based property #5417\n target._.accessCache[key] = 0;\n }\n else if (hasOwn(descriptor, 'value')) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif ((process.env.NODE_ENV !== 'production') && !false) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn(`Avoid app logic that relies on enumerating keys on a component instance. ` +\n `The keys will be empty in production mode to avoid performance overhead.`);\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /*#__PURE__*/ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n // fast path for unscopables when using `with` block\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== '_' && !isGloballyWhitelisted(key);\n if ((process.env.NODE_ENV !== 'production') && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn(`Property ${JSON.stringify(key)} should not start with _ which is a reserved prefix for Vue internals.`);\n }\n return has;\n }\n});\n// dev only\n// In dev mode, the proxy target exposes the same properties as seen on `this`\n// for easier console inspection. In prod mode it will be an empty object so\n// these properties definitions can be skipped.\nfunction createDevRenderContext(instance) {\n const target = {};\n // expose internal instance for proxy handlers\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n // expose public properties\n Object.keys(publicPropertiesMap).forEach(key => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\n// dev only\nfunction exposePropsOnRenderContext(instance) {\n const { ctx, propsOptions: [propsOptions] } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach(key => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\n// dev only\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach(key => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn(`setup() return property ${JSON.stringify(key)} should not start with \"$\" or \"_\" ` +\n `which are reserved prefixes for Vue internals.`);\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nfunction createDuplicateChecker() {\n const cache = Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n }\n else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n // do not cache property access on public proxy during state initialization\n shouldCacheAccess = false;\n // call beforeCreate first before accessing other options since\n // the hook may mutate resolved options (#2791)\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\" /* LifecycleHooks.BEFORE_CREATE */);\n }\n const { \n // state\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \n // lifecycle\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \n // public API\n expose, inheritAttrs, \n // assets\n components, directives, filters } = options;\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\n if ((process.env.NODE_ENV !== 'production')) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* OptionTypes.PROPS */, key);\n }\n }\n }\n // options initialization order (to be consistent with Vue 2):\n // - props (already done outside of this function)\n // - inject\n // - methods\n // - data (deferred since it relies on `this` access)\n // - computed\n // - watch (deferred since it relies on `this` access)\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n // In dev mode, we use the `createRenderContext` function to define\n // methods to the proxy target, and those are read-only but\n // reconfigurable, so it needs to be redefined here\n if ((process.env.NODE_ENV !== 'production')) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n }\n else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Methods\" /* OptionTypes.METHODS */, key);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\n `Did you reference the function correctly?`);\n }\n }\n }\n if (dataOptions) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\n warn(`The data option must be a function. ` +\n `Plain object usage is no longer supported.`);\n }\n const data = dataOptions.call(publicThis, publicThis);\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\n `intend to perform data fetching before component renders, use ` +\n `async setup() + <Suspense>.`);\n }\n if (!isObject(data)) {\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\n }\n else {\n instance.data = reactive(data);\n if ((process.env.NODE_ENV !== 'production')) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* OptionTypes.DATA */, key);\n // expose data on ctx during dev\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n // state initialization complete at this point - start caching access\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt)\n ? opt.bind(publicThis, publicThis)\n : isFunction(opt.get)\n ? opt.get.bind(publicThis, publicThis)\n : NOOP;\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\n warn(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set)\n ? opt.set.bind(publicThis)\n : (process.env.NODE_ENV !== 'production')\n ? () => {\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\n }\n : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: v => (c.value = v)\n });\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Computed\" /* OptionTypes.COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions)\n ? provideOptions.call(publicThis)\n : provideOptions;\n Reflect.ownKeys(provides).forEach(key => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\" /* LifecycleHooks.CREATED */);\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach(_hook => register(_hook.bind(publicThis)));\n }\n else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach(key => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: val => (publicThis[key] = val)\n });\n });\n }\n else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n // options that are handled when creating the instance but also need to be\n // applied from mixins\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n // asset options.\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if ('default' in opt) {\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\n }\n else {\n injected = inject(opt.from || key);\n }\n }\n else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n // TODO remove the check in 3.3\n if (unwrapRef) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: v => (injected.value = v)\n });\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\n `and no longer needs \\`.value\\` in the next minor release. ` +\n `To opt-in to the new behavior now, ` +\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\n `temporary and will not be needed in the future.)`);\n }\n ctx[key] = injected;\n }\n }\n else {\n ctx[key] = injected;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n checkDuplicateProperties(\"Inject\" /* OptionTypes.INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(isArray(hook)\n ? hook.map(h => h.bind(instance.proxy))\n : hook.bind(instance.proxy), instance, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes('.')\n ? createPathGetter(publicThis, key)\n : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n }\n else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n }\n else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\n }\n else {\n const handler = isFunction(raw.handler)\n ? raw.handler.bind(publicThis)\n : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid watch option: \"${key}\"`, raw);\n }\n}\n/**\n * Resolve merged options and cache it on the component.\n * This is done only once per-component since the merging does not involve\n * instances.\n */\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n }\n else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n }\n else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\n }\n for (const key in from) {\n if (asMixin && key === 'expose') {\n (process.env.NODE_ENV !== 'production') &&\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\n `It should only be declared in the base component itself.`);\n }\n else {\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeObjectOptions,\n emits: mergeObjectOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(extend(Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\nisSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance.propsDefaults = Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n // ensure all declared prop keys are present\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = undefined;\n }\n }\n // validation\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n // stateful\n instance.props = isSSR ? props : shallowReactive(props);\n }\n else {\n if (!instance.type.props) {\n // functional w/ optional props, props === attrs\n instance.props = attrs;\n }\n else {\n // functional w/ declared props\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const { props, attrs, vnode: { patchFlag } } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !((process.env.NODE_ENV !== 'production') && isInHmrContext(instance)) &&\n (optimized || patchFlag > 0) &&\n !(patchFlag & 16 /* PatchFlags.FULL_PROPS */)) {\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // Compiler-generated props & no keys change, just set the updated\n // the props.\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n // skip if the prop key is a declared emit event listener\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n // PROPS flag guarantees rawProps to be non-null\n const value = rawProps[key];\n if (options) {\n // attr / props separation was done on init and will be consistent\n // in this code path, so just check if attrs have it.\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\n }\n }\n else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n }\n else {\n // full props update.\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n // in case of dynamic props, check if we need to delete keys from\n // the props object\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps ||\n // for camelCase\n (!hasOwn(rawProps, key) &&\n // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\n if (options) {\n if (rawPrevProps &&\n // for camelCase\n (rawPrevProps[key] !== undefined ||\n // for kebab-case\n rawPrevProps[kebabKey] !== undefined)) {\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\n }\n }\n else {\n delete props[key];\n }\n }\n }\n // in the case of functional component w/o props declaration, props and\n // attrs point to the same object so it should already have been updated.\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps ||\n (!hasOwn(rawProps, key) &&\n (!false ))) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n // trigger updates for $attrs in case it's used in component slots\n if (hasAttrsChanged) {\n trigger(instance, \"set\" /* TriggerOpTypes.SET */, '$attrs');\n }\n if ((process.env.NODE_ENV !== 'production')) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n // key, ref are reserved and never passed down\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n // prop option names are camelized during normalization, so to support\n // kebab -> camel conversion here we need to camelize the key.\n let camelKey;\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n }\n else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n }\n else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, 'default');\n // default values\n if (hasDefault && value === undefined) {\n const defaultValue = opt.default;\n if (opt.type !== Function && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n }\n else {\n setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(null, props);\n unsetCurrentInstance();\n }\n }\n else {\n value = defaultValue;\n }\n }\n // boolean casting\n if (opt[0 /* BooleanFlags.shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n }\n else if (opt[1 /* BooleanFlags.shouldCastTrue */] &&\n (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\n warn(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n }\n else if (raw) {\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\n warn(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = (normalized[normalizedKey] =\n isArray(opt) || isFunction(opt) ? { type: opt } : Object.assign({}, opt));\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* BooleanFlags.shouldCast */] = booleanIndex > -1;\n prop[1 /* BooleanFlags.shouldCastTrue */] =\n stringIndex < 0 || booleanIndex < stringIndex;\n // if the prop needs boolean casting or default value\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== '$') {\n return true;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\n// use function string name to check type constructors\n// so that it works across vms / iframes.\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ctor === null ? 'null' : '';\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex(t => isSameType(t, type));\n }\n else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\n/**\n * dev only\n */\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\n }\n}\n/**\n * dev only\n */\nfunction validateProp(name, value, prop, isAbsent) {\n const { type, required, validator } = prop;\n // required!\n if (required && isAbsent) {\n warn('Missing required prop: \"' + name + '\"');\n return;\n }\n // missing but optional\n if (value == null && !prop.required) {\n return;\n }\n // type check\n if (type != null && type !== true) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n // value is valid as long as one of the specified types match\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || '');\n isValid = valid;\n }\n if (!isValid) {\n warn(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n // custom validator\n if (validator && !validator(value)) {\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\n/**\n * dev only\n */\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else if (expectedType === 'null') {\n valid = value === null;\n }\n else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\n/**\n * dev only\n */\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\n/**\n * dev only\n */\nfunction styleValue(value, type) {\n if (type === 'String') {\n return `\"${value}\"`;\n }\n else if (type === 'Number') {\n return `${Number(value)}`;\n }\n else {\n return `${value}`;\n }\n}\n/**\n * dev only\n */\nfunction isExplicable(type) {\n const explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(elem => type.toLowerCase() === elem);\n}\n/**\n * dev only\n */\nfunction isBoolean(...args) {\n return args.some(elem => elem.toLowerCase() === 'boolean');\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\nconst normalizeSlotValue = (value) => isArray(value)\n ? value.map(normalizeVNode)\n : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n // already normalized - #5353\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\n `this will not track dependencies used in the slot. ` +\n `Invoke the slot function inside the render function instead.`);\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n }\n else if (value != null) {\n if ((process.env.NODE_ENV !== 'production') &&\n !(false )) {\n warn(`Non-function value encountered for slot \"${key}\". ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if ((process.env.NODE_ENV !== 'production') &&\n !isKeepAlive(instance.vnode) &&\n !(false )) {\n warn(`Non-function value encountered for default slot. ` +\n `Prefer function slots for better performance.`);\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n if (instance.vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // users can get the shallow readonly version of the slots object through `this.$slots`,\n // we should avoid the proxy object polluting the slots of the internal instance\n instance.slots = toRaw(children);\n // make compiler marker non-enumerable\n def(children, '_', type);\n }\n else {\n normalizeObjectSlots(children, (instance.slots = {}));\n }\n }\n else {\n instance.slots = {};\n if (children) {\n normalizeVNodeSlots(instance, children);\n }\n }\n def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {\n const type = children._;\n if (type) {\n // compiled slots.\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // Parent was HMR updated so slot content may have changed.\n // force update slots and mark instance for hmr as well\n extend(slots, children);\n }\n else if (optimized && type === 1 /* SlotFlags.STABLE */) {\n // compiled AND stable.\n // no need to update, and skip stale slots removal.\n needDeletionCheck = false;\n }\n else {\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\n // normalization.\n extend(slots, children);\n // #2893\n // when rendering the optimized slots by manually written render function,\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\n // i.e. let the `renderSlot` create the bailed Fragment\n if (!optimized && type === 1 /* SlotFlags.STABLE */) {\n delete slots._;\n }\n }\n }\n else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n }\n else if (children) {\n // non slot object children (direct value) passed to a component\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n // delete stale slots\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n delete slots[key];\n }\n }\n }\n};\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: undefined,\n warnHandler: undefined,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: Object.create(null),\n optionsCache: new WeakMap(),\n propsCache: new WeakMap(),\n emitsCache: new WeakMap()\n };\n}\nlet uid = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = Object.assign({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = new Set();\n let isMounted = false;\n const app = (context.app = {\n _uid: uid++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`app.config cannot be replaced. Modify individual options instead.`);\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\n }\n else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n }\n else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`A plugin must either be a function or an object with an \"install\" ` +\n `function.`);\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixin has already been applied to target app' +\n (mixin.name ? `: ${mixin.name}` : ''));\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Mixins are only available in builds supporting Options API');\n }\n return app;\n },\n component(name, component) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\n warn(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\n warn(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, isSVG) {\n if (!isMounted) {\n // #5571\n if ((process.env.NODE_ENV !== 'production') && rootContainer.__vue_app__) {\n warn(`There is already an app instance mounted on the host container.\\n` +\n ` If you want to mount another app on the same host container,` +\n ` you need to unmount the previous app by calling \\`app.unmount()\\` first.`);\n }\n const vnode = createVNode(rootComponent, rootProps);\n // store app context on the root VNode.\n // this will be set on the root instance on initial mount.\n vnode.appContext = context;\n // HMR root reload\n if ((process.env.NODE_ENV !== 'production')) {\n context.reload = () => {\n render(cloneVNode(vnode), rootContainer, isSVG);\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n }\n else {\n render(vnode, rootContainer, isSVG);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`App has already been mounted.\\n` +\n `If you want to remount the same app, move your app creation logic ` +\n `into a factory function and create fresh app instances for each ` +\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\n }\n },\n unmount() {\n if (isMounted) {\n render(null, app._container);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\n warn(`App already provides property with key \"${String(key)}\". ` +\n `It will be overwritten with the new value.`);\n }\n context.provides[key] = value;\n return app;\n }\n });\n return app;\n };\n}\n\n/**\n * Function for handling a template ref\n */\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n // when mounting async components, nothing needs to be done,\n // because the template ref is forwarded to inner component\n return;\n }\n const refValue = vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */\n ? getExposeProxy(vnode.component) || vnode.component.proxy\n : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if ((process.env.NODE_ENV !== 'production') && !owner) {\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\n `A vnode with ref must be created inside the render function.`);\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\n const setupState = owner.setupState;\n // dynamic ref changed. unset old ref\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n }\n else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12 /* ErrorCodes.FUNCTION_REF */, [value, refs]);\n }\n else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString\n ? hasOwn(setupState, ref)\n ? setupState[ref]\n : refs[ref]\n : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n }\n else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n }\n else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n }\n else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n }\n else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n }\n else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n }\n else {\n doSet();\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\nconst isComment = (node) => node.nodeType === 8 /* DOMNodeTypes.COMMENT */;\n// Note: hydration is DOM-specific\n// But we have to place it in core due to tight coupling with core - splitting\n// it out creates a ton of unnecessary complexity.\n// Hydration also depends on some renderer internal logic which needs to be\n// passed in via arguments.\nfunction createHydrationFunctions(rendererInternals) {\n const { mt: mountComponent, p: patch, o: { patchProp, createText, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Attempting to hydrate existing markup but container is empty. ` +\n `Performing full mount instead.`);\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hasMismatch = false;\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n if (hasMismatch && !false) {\n // this error should show up in production\n console.error(`Hydration completed but contains mismatches.`);\n }\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n const isFragmentStart = isComment(node) && node.data === '[';\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3 /* DOMNodeTypes.TEXT */) {\n // #5728 empty text node inside a slot can cause hydration failure\n // because the server rendered HTML won't contain a text node\n if (vnode.children === '') {\n insert((vnode.el = createText('')), parentNode(node), node);\n nextNode = node;\n }\n else {\n nextNode = onMismatch();\n }\n }\n else {\n if (node.data !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text mismatch:` +\n `\\n- Client: ${JSON.stringify(node.data)}` +\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (domType !== 8 /* DOMNodeTypes.COMMENT */ || isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n // entire template is static but SSRed as a fragment\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 /* DOMNodeTypes.ELEMENT */ || domType === 3 /* DOMNodeTypes.TEXT */) {\n // determine anchor, adopt content\n nextNode = node;\n // if the static vnode has its content stripped during build,\n // adopt it from the server-rendered HTML.\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children +=\n nextNode.nodeType === 1 /* DOMNodeTypes.ELEMENT */\n ? nextNode.outerHTML\n : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n }\n else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n if (domType !== 1 /* DOMNodeTypes.ELEMENT */ ||\n vnode.type.toLowerCase() !==\n node.tagName.toLowerCase()) {\n nextNode = onMismatch();\n }\n else {\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n // when setting up the render effect, if the initial vnode already\n // has .el set, the component will perform hydration instead of mount\n // on its sub-tree.\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\n // component may be async, so in the case of fragments we cannot rely\n // on component's rendered output to determine the end of the fragment\n // instead, we do a lookahead to find the end anchor node.\n nextNode = isFragmentStart\n ? locateClosingAsyncAnchor(node)\n : nextSibling(node);\n // #4293 teleport as component root\n if (nextNode &&\n isComment(nextNode) &&\n nextNode.data === 'teleport end') {\n nextNode = nextSibling(nextNode);\n }\n // #3787\n // if component is async, it may get moved / unmounted before its\n // inner component is loaded, so we need to give it a placeholder\n // vnode that matches its adopted DOM.\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode\n ? nextNode.previousSibling\n : container.lastChild;\n }\n else {\n subTree =\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n if (domType !== 8 /* DOMNodeTypes.COMMENT */) {\n nextNode = onMismatch();\n }\n else {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\n }\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\n // #4006 for form elements with non-string v-model value bindings\n // e.g. <option :value=\"obj\">, <input type=\"checkbox\" :true-value=\"1\">\n const forcePatchValue = (type === 'input' && dirs) || type === 'option';\n // skip props & children if this is hoisted static nodes\n // #5405 in dev, always hydrate children for HMR\n if ((process.env.NODE_ENV !== 'production') || forcePatchValue || patchFlag !== -1 /* PatchFlags.HOISTED */) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n if (forcePatchValue ||\n !optimized ||\n patchFlag & (16 /* PatchFlags.FULL_PROPS */ | 32 /* PatchFlags.HYDRATE_EVENTS */)) {\n for (const key in props) {\n if ((forcePatchValue && key.endsWith('value')) ||\n (isOn(key) && !isReservedProp(key))) {\n patchProp(el, key, null, props[key], false, undefined, parentComponent);\n }\n }\n }\n else if (props.onClick) {\n // Fast path for click listeners (which is most often) to avoid\n // iterating through props.\n patchProp(el, 'onClick', null, props.onClick, false, undefined, parentComponent);\n }\n }\n // vnode / directive hooks\n let vnodeHooks;\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n // children\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */ &&\n // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);\n let hasWarned = false;\n while (next) {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\n `server rendered element contains more child nodes than client vdom.`);\n hasWarned = true;\n }\n // The SSRed DOM contains more nodes than it should. Remove them.\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n }\n else if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n if (el.textContent !== vnode.children) {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\n `- Client: ${el.textContent}\\n` +\n `- Server: ${vnode.children}`);\n el.textContent = vnode.children;\n }\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized\n ? children[i]\n : (children[i] = normalizeVNode(children[i]));\n if (node) {\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n else if (vnode.type === Text && !vnode.children) {\n continue;\n }\n else {\n hasMismatch = true;\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\n `server rendered element contains fewer child nodes than client vdom.`);\n hasWarned = true;\n }\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);\n if (next && isComment(next) && next.data === ']') {\n return nextSibling((vnode.anchor = next));\n }\n else {\n // fragment didn't hydrate successfully, since we didn't get a end anchor\n // back. This should have led to node/children mismatch warnings.\n hasMismatch = true;\n // since the anchor is missing, we need to create one and insert it\n insert((vnode.anchor = createComment(`]`)), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n hasMismatch = true;\n (process.env.NODE_ENV !== 'production') &&\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* DOMNodeTypes.TEXT */\n ? `(text)`\n : isComment(node) && node.data === '['\n ? `(start of fragment)`\n : ``);\n vnode.el = null;\n if (isFragment) {\n // remove excessive fragment nodes\n const end = locateClosingAsyncAnchor(node);\n while (true) {\n const next = nextSibling(node);\n if (next && next !== end) {\n remove(next);\n }\n else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);\n return next;\n };\n const locateClosingAsyncAnchor = (node) => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === '[')\n match++;\n if (node.data === ']') {\n if (match === 0) {\n return nextSibling(node);\n }\n else {\n match--;\n }\n }\n }\n }\n return node;\n };\n return [hydrate, hydrateNode];\n}\n\n/* eslint-disable no-restricted-globals */\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\n\n/**\n * This is only called in esm-bundler builds.\n * It is called when a renderer is created, in `baseCreateRenderer` so that\n * importing runtime-core is side-effects free.\n *\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\n (process.env.NODE_ENV !== 'production') && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if ((process.env.NODE_ENV !== 'production') && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(`Feature flag${multi ? `s` : ``} ${needWarn.join(', ')} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, ` +\n `which expects these compile-time feature flags to be globally injected ` +\n `via the bundler config in order to get better tree-shaking in the ` +\n `production bundle.\\n\\n` +\n `For more details, see https://link.vuejs.org/feature-flags.`);\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense\n ;\n/**\n * The createRenderer function accepts two generic arguments:\n * HostNode and HostElement, corresponding to Node and Element types in the\n * host environment. For example, for runtime-dom, HostNode would be the DOM\n * `Node` interface and HostElement would be the DOM `Element` interface.\n *\n * Custom renderers can pass in the platform specific types like this:\n *\n * ``` js\n * const { render, createApp } = createRenderer<Node, Element>({\n * patchProp,\n * ...nodeOps\n * })\n * ```\n */\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\n// Separate API for creating hydration-enabled renderer.\n// Hydration logic is only used when calling this function, making it\n// tree-shakable.\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\n// implementation\nfunction baseCreateRenderer(options, createHydrationFns) {\n // compile-time feature flags check\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options;\n // Note: functions inside this closure should use `const xxx = () => {}`\n // style in order to prevent being inlined by minifiers.\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = (process.env.NODE_ENV !== 'production') && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n // patching & not same type, unmount old tree\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2 /* PatchFlags.BAIL */) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, isSVG);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n patchStaticNode(n1, n2, container, isSVG);\n }\n break;\n case Fragment:\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n break;\n default:\n if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid VNode type:', type, `(${typeof type})`);\n }\n }\n // set ref\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\n }\n else {\n const el = (n2.el = n1.el);\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\n }\n else {\n // there's no support for dynamic comments\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, isSVG) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n };\n /**\n * Dev / HMR only\n */\n const patchStaticNode = (n1, n2, container, isSVG) => {\n // static nodes are only patched during dev for HMR\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n // remove existing\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\n }\n else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n isSVG = isSVG || n2.type === 'svg';\n if (n1 == null) {\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { type, props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n // mount children first, since some props may rely on child content\n // being already rendered, e.g. `<select value>`\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(el, vnode.children);\n }\n else if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== 'foreignObject', slotScopeIds, optimized);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\n }\n // props\n if (props) {\n for (const key in props) {\n if (key !== 'value' && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n /**\n * Special case for setting value on DOM elements:\n * - it can be order-sensitive (e.g. should be set *after* min/max, #2325, #4024)\n * - it needs to be forced (#1471)\n * #2353 proposes adding another renderer option to configure this, but\n * the properties affects are so finite it is worth special casing it\n * here to reduce the complexity. (Special casing it also should not\n * affect non-DOM renderers)\n */\n if ('value' in props) {\n hostPatchProp(el, 'value', null, props.value);\n }\n if ((vnodeHook = props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n // scopeId\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n Object.defineProperty(el, '__vnode', {\n value: vnode,\n enumerable: false\n });\n Object.defineProperty(el, '__vueParentComponent', {\n value: parentComponent,\n enumerable: false\n });\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\n }\n // #1583 For inside suspense + suspense not resolved case, enter hook should call when suspense resolved\n // #1689 For inside suspense + suspense resolved case, just call it\n const needCallTransitionHooks = (!parentSuspense || (parentSuspense && !parentSuspense.pendingBranch)) &&\n transition &&\n !transition.persisted;\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) ||\n needCallTransitionHooks ||\n dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if ((process.env.NODE_ENV !== 'production') &&\n subTree.patchFlag > 0 &&\n subTree.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n subTree =\n filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = (children[i] = optimized\n ? cloneIfMounted(children[i])\n : normalizeVNode(children[i]));\n patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const el = (n2.el = n1.el);\n let { patchFlag, dynamicChildren, dirs } = n2;\n // #1426 take the old vnode's patch flag into account since user may clone a\n // compiler-generated vnode, which de-opts to FULL_PROPS\n patchFlag |= n1.patchFlag & 16 /* PatchFlags.FULL_PROPS */;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n // disable recurse in beforeUpdate hooks\n parentComponent && toggleRecurse(parentComponent, false);\n if ((vnodeHook = newProps.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate');\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n // HMR updated, force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n const areChildrenSVG = isSVG && n2.type !== 'foreignObject';\n if (dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n }\n else if (!optimized) {\n // full diff\n patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n }\n if (patchFlag > 0) {\n // the presence of a patchFlag means this element's render code was\n // generated by the compiler and can take the fast path.\n // in this path old node and new node are guaranteed to have the same shape\n // (i.e. at the exact same position in the source template)\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n // element props contain dynamic keys, full diff needed\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n else {\n // class\n // this flag is matched when the element has dynamic class bindings.\n if (patchFlag & 2 /* PatchFlags.CLASS */) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, 'class', null, newProps.class, isSVG);\n }\n }\n // style\n // this flag is matched when the element has dynamic style bindings\n if (patchFlag & 4 /* PatchFlags.STYLE */) {\n hostPatchProp(el, 'style', oldProps.style, newProps.style, isSVG);\n }\n // props\n // This flag is matched when the element has dynamic prop/attr bindings\n // other than class and style. The keys of dynamic prop/attrs are saved for\n // faster iteration.\n // Note dynamic keys like :[foo]=\"bar\" will cause this optimization to\n // bail out and go through a full diff because we need to unset the old key\n if (patchFlag & 8 /* PatchFlags.PROPS */) {\n // if the flag is present then dynamicProps must be non-null\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n // #1471 force patch value\n if (next !== prev || key === 'value') {\n hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n }\n // text\n // This flag is matched when the element has only dynamic text children.\n if (patchFlag & 1 /* PatchFlags.TEXT */) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n }\n else if (!optimized && dynamicChildren == null) {\n // unoptimized, full diff\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, 'updated');\n }, parentSuspense);\n }\n };\n // The fast path for blocks.\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n // Determine the container (parent element) for the patch.\n const container = \n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el &&\n // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment ||\n // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) ||\n // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 64 /* ShapeFlags.TELEPORT */))\n ? hostParentNode(oldVNode.el)\n : // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer;\n patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n for (const key in newProps) {\n // empty string is not valid prop\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n // defer patching value\n if (next !== prev && key !== 'value') {\n hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if ('value' in newProps) {\n hostPatchProp(el, 'value', oldProps.value, newProps.value);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const fragmentStartAnchor = (n2.el = n1 ? n1.el : hostCreateText(''));\n const fragmentEndAnchor = (n2.anchor = n1 ? n1.anchor : hostCreateText(''));\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if ((process.env.NODE_ENV !== 'production') &&\n // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */)) {\n // HMR updated / Dev root fragment (w/ comments), force full diff\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n // check if this is a slot fragment with :slotted scope ids\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds\n ? slotScopeIds.concat(fragmentSlotScopeIds)\n : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n // a fragment can only have array children\n // since they are either generated by the compiler, or implicitly created\n // from arrays.\n mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n if (patchFlag > 0 &&\n patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */ &&\n dynamicChildren &&\n // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n // a stable fragment (template root or <template v-for>) doesn't need to\n // patch children order, but it may contain dynamicChildren.\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n if ((process.env.NODE_ENV !== 'production') && parentComponent && parentComponent.type.__hmrId) {\n traverseStaticChildren(n1, n2);\n }\n else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null ||\n (parentComponent && n2 === parentComponent.subTree)) {\n traverseStaticChildren(n1, n2, true /* shallow */);\n }\n }\n else {\n // keyed / unkeyed, or manual fragments.\n // for keyed & unkeyed, since they are compiler generated from v-for,\n // each child is guaranteed to be a block so the fragment will never\n // have dynamicChildren.\n patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {\n parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n }\n else {\n mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n }\n }\n else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense));\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n // inject renderer internals for keepAlive\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n // resolve props and slots for setup context\n {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `init`);\n }\n }\n // setup() is async. This component relies on async logic to be resolved\n // before proceeding\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n // Give it a placeholder if this is not hydration\n // TODO handle self-defined fallback\n if (!initialVNode.el) {\n const placeholder = (instance.subTree = createVNode(Comment));\n processCommentNode(null, placeholder, container, anchor);\n }\n return;\n }\n setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = (n2.component = n1.component);\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep &&\n !instance.asyncResolved) {\n // async & still pending - just update props and slots\n // since the component's reactive effect for render isn't set-up yet\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n return;\n }\n else {\n // normal update\n instance.next = n2;\n // in case the child component is also queued, remove it to avoid\n // double updating the same child component in the same flush.\n invalidateJob(instance.update);\n // instance.update is the reactive effect.\n instance.update();\n }\n }\n else {\n // no update needed. just copy over properties\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n // beforeMount hook\n if (bm) {\n invokeArrayFns(bm);\n }\n // onVnodeBeforeMount\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n // vnode has adopted host node - perform hydration instead of mount.\n const hydrateSubTree = () => {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(el, instance.subTree, instance, parentSuspense, null);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n // note: we are moving the render call into an async callback,\n // which means it won't track dependencies - but it's ok because\n // a server-rendered async wrapper is already in resolved state\n // and it will never need to change.\n () => !instance.isUnmounted && hydrateSubTree());\n }\n else {\n hydrateSubTree();\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const subTree = (instance.subTree = renderComponentRoot(instance));\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(null, subTree, container, anchor, instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n // mounted hook\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n // onVnodeMounted\n if (!isAsyncWrapperVNode &&\n (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n }\n // activated hook for keep-alive roots.\n // #1742 activated hook must be accessed after first render\n // since the hook may be injected by a child keep-alive\n if (initialVNode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */ ||\n (parent &&\n isAsyncWrapper(parent.vnode) &&\n parent.vnode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */)) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n // #2458: deference mount-only object parameters to prevent memleaks\n initialVNode = container = anchor = null;\n }\n else {\n // updateComponent\n // This is triggered by mutation of component's own state (next: null)\n // OR parent calling processComponent (next: VNode)\n let { next, bu, u, parent, vnode } = instance;\n let originNext = next;\n let vnodeHook;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(next || instance.vnode);\n }\n // Disallow component effect recursion during pre-lifecycle hooks.\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n else {\n next = vnode;\n }\n // beforeUpdate hook\n if (bu) {\n invokeArrayFns(bu);\n }\n // onVnodeBeforeUpdate\n if ((vnodeHook = next.props && next.props.onVnodeBeforeUpdate)) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n // render\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `patch`);\n }\n patch(prevTree, nextTree, \n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el), \n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree), instance, parentSuspense, isSVG);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n // self-triggered update. In case of HOC, update parent component\n // vnode el. HOC is indicated by parent instance's subTree pointing\n // to child component's vnode\n updateHOCHostEl(instance, nextTree.el);\n }\n // updated hook\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n // onVnodeUpdated\n if ((vnodeHook = next.props && next.props.onVnodeUpdated)) {\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n }\n };\n // create reactive effect for rendering\n const effect = (instance.effect = new ReactiveEffect(componentUpdateFn, () => queueJob(update), instance.scope // track it in component's effect scope\n ));\n const update = (instance.update = () => effect.run());\n update.id = instance.uid;\n // allowRecurse\n // #1801, #2043 component render effects should allow recursive updates\n toggleRecurse(instance, true);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = instance.rtc\n ? e => invokeArrayFns(instance.rtc, e)\n : void 0;\n effect.onTrigger = instance.rtg\n ? e => invokeArrayFns(instance.rtg, e)\n : void 0;\n update.ownerInstance = instance;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n // props update may have triggered pre-flush watchers.\n // flush them before the render update.\n flushPreFlushCbs();\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n // fast path\n if (patchFlag > 0) {\n if (patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */) {\n // this could be either fully-keyed or mixed (some keyed some not)\n // presence of patchFlag means children are guaranteed to be arrays\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n else if (patchFlag & 256 /* PatchFlags.UNKEYED_FRAGMENT */) {\n // unkeyed\n patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n }\n // children has 3 possibilities: text, array or no children.\n if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n // text children fast path\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n }\n else {\n if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // prev children was array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n // two arrays, cannot assume anything, do full diff\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n // no new children, just unmount old\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n }\n else {\n // prev children was text OR null\n // new children is array OR null\n if (prevShapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {\n hostSetElementText(container, '');\n }\n // mount new if array\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n if (oldLength > newLength) {\n // remove old\n unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n }\n else {\n // mount new\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n }\n };\n // can be all-keyed or mixed\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n i++;\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = (c2[e2] = optimized\n ? cloneIfMounted(c2[e2])\n : normalizeVNode(c2[e2]));\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else {\n break;\n }\n e1--;\n e2--;\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(null, (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i])), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n i++;\n }\n }\n }\n // 4. common sequence + unmount\n // (a b) c\n // (a b)\n // i = 2, e1 = 2, e2 = 1\n // a (b c)\n // (b c)\n // i = 0, e1 = 0, e2 = -1\n else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n }\n // 5. unknown sequence\n // [i ... e1 + 1]: a b [c d e] f g\n // [i ... e2 + 1]: a b [e d c h] f g\n // i = 2, e1 = 4, e2 = 5\n else {\n const s1 = i; // prev starting index\n const s2 = i; // next starting index\n // 5.1 build key:index map for newChildren\n const keyToNewIndexMap = new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = (c2[i] = optimized\n ? cloneIfMounted(c2[i])\n : normalizeVNode(c2[i]));\n if (nextChild.key != null) {\n if ((process.env.NODE_ENV !== 'production') && keyToNewIndexMap.has(nextChild.key)) {\n warn(`Duplicate keys found during update:`, JSON.stringify(nextChild.key), `Make sure keys are unique.`);\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n // 5.2 loop through old children left to be patched and try to patch\n // matching nodes & remove nodes that are no longer present\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n // used to track whether any node has moved\n let maxNewIndexSoFar = 0;\n // works as Map<newIndex, oldIndex>\n // Note that oldIndex is offset by +1\n // and oldIndex = 0 is a special value indicating the new node has\n // no corresponding old node.\n // used for determining longest stable subsequence\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n // all new children have been patched so this can only be a removal\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n }\n else {\n // key-less node, try to locate a key-less node of the same type\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 &&\n isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === undefined) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n }\n else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n patched++;\n }\n }\n // 5.3 move and mount\n // generate longest stable subsequence only when nodes have moved\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n // looping backwards so that we can use last patched node as anchor\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n // mount new\n patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n else if (moved) {\n // move if:\n // There is no stable subsequence (e.g. a reverse)\n // OR current node is not among the stable sequence\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2 /* MoveType.REORDER */);\n }\n else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n // single nodes\n const needTransition = moveType !== 2 /* MoveType.REORDER */ &&\n shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition;\n if (needTransition) {\n if (moveType === 0 /* MoveType.ENTER */) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n }\n else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove, performLeave);\n }\n else {\n performLeave();\n }\n }\n }\n else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n // unset ref\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 /* ShapeFlags.ELEMENT */ && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n }\n else {\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeUnmount');\n }\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n }\n else if (dynamicChildren &&\n // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment ||\n (patchFlag > 0 && patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */))) {\n // fast path for block nodes: only need to unmount dynamic children.\n unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n }\n else if ((type === Fragment &&\n patchFlag &\n (128 /* PatchFlags.KEYED_FRAGMENT */ | 256 /* PatchFlags.UNKEYED_FRAGMENT */)) ||\n (!optimized && shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */)) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if ((shouldInvokeVnodeHook &&\n (vnodeHook = props && props.onVnodeUnmounted)) ||\n shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs &&\n invokeDirectiveHook(vnode, null, parentComponent, 'unmounted');\n }, parentSuspense);\n }\n };\n const remove = vnode => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if ((process.env.NODE_ENV !== 'production') &&\n vnode.patchFlag > 0 &&\n vnode.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */ &&\n transition &&\n !transition.persisted) {\n vnode.children.forEach(child => {\n if (child.type === Comment) {\n hostRemove(child.el);\n }\n else {\n remove(child);\n }\n });\n }\n else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&\n transition &&\n !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n }\n else {\n performLeave();\n }\n }\n else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n // For fragments, directly remove all contained DOM nodes.\n // (fragment child nodes cannot have transition)\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if ((process.env.NODE_ENV !== 'production') && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, update, subTree, um } = instance;\n // beforeUnmount hook\n if (bum) {\n invokeArrayFns(bum);\n }\n // stop effects in component scope\n scope.stop();\n // update may be null if a component is unmounted before its async\n // setup has resolved.\n if (update) {\n // so that scheduler will no longer invoke it\n update.active = false;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n // unmounted hook\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n // A component with async dep inside a pending suspense is unmounted before\n // its async dep resolves. This should remove the dep from the suspense, and\n // cause the suspense to resolve immediately if that was the last dep.\n if (parentSuspense &&\n parentSuspense.pendingBranch &&\n !parentSuspense.isUnmounted &&\n instance.asyncDep &&\n !instance.asyncResolved &&\n instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = vnode => {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n return vnode.suspense.next();\n }\n return hostNextSibling((vnode.anchor || vnode.el));\n };\n const render = (vnode, container, isSVG) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n }\n else {\n patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n }\n flushPreFlushCbs();\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(internals);\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\n/**\n * #1156\n * When a component is HMR-enabled, we need to make sure that all static nodes\n * inside a block also inherit the DOM element from the previous tree so that\n * HMR updates (which are full updates) can retrieve the element for patching.\n *\n * #2080\n * Inside keyed `template` fragment static children, if a fragment is moved,\n * the children will always be moved. Therefore, in order to ensure correct move\n * position, el should be inherited from previous nodes.\n */\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n // this is only called in the optimized path so array children are\n // guaranteed to be vnodes\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32 /* PatchFlags.HYDRATE_EVENTS */) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n // #6852 also inherit for text nodes\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n // also inherit for comment nodes, but not placeholders (e.g. v-if which\n // would have received .el during block patch)\n if ((process.env.NODE_ENV !== 'production') && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === '');\nconst isTargetSVG = (target) => typeof SVGElement !== 'undefined' && target instanceof SVGElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Current renderer does not support string target for Teleports. ` +\n `(missing querySelector renderer option)`);\n return null;\n }\n else {\n const target = select(targetSelector);\n if (!target) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Failed to locate Teleport target with selector \"${targetSelector}\". ` +\n `Note the target element must exist before the component is mounted - ` +\n `i.e. the target cannot be rendered by the component itself, and ` +\n `ideally should be outside of the entire Vue component tree.`);\n }\n return target;\n }\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !targetSelector && !isTeleportDisabled(props)) {\n warn(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {\n const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n // #3302\n // HMR updated, force full diff\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n // insert anchors in the main view\n const placeholder = (n2.el = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport start')\n : createText(''));\n const mainAnchor = (n2.anchor = (process.env.NODE_ENV !== 'production')\n ? createComment('teleport end')\n : createText(''));\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const target = (n2.target = resolveTarget(n2.props, querySelector));\n const targetAnchor = (n2.targetAnchor = createText(''));\n if (target) {\n insert(targetAnchor, target);\n // #2652 we could be teleporting from a non-SVG tree into an SVG tree\n isSVG = isSVG || isTargetSVG(target);\n }\n else if ((process.env.NODE_ENV !== 'production') && !disabled) {\n warn('Invalid Teleport target on mount:', target, `(${typeof target})`);\n }\n const mount = (container, anchor) => {\n // Teleport *always* has Array children. This is enforced in both the\n // compiler and vnode children normalization.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n mountChildren(children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n }\n else if (target) {\n mount(target, targetAnchor);\n }\n }\n else {\n // update content\n n2.el = n1.el;\n const mainAnchor = (n2.anchor = n1.anchor);\n const target = (n2.target = n1.target);\n const targetAnchor = (n2.targetAnchor = n1.targetAnchor);\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n isSVG = isSVG || isTargetSVG(target);\n if (dynamicChildren) {\n // fast path when the teleport happens to be a block root\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, isSVG, slotScopeIds);\n // even in block tree mode we need to make sure all root-level nodes\n // in the teleport inherit previous DOM references so that they can\n // be moved in future patches.\n traverseStaticChildren(n1, n2, true);\n }\n else if (!optimized) {\n patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, false);\n }\n if (disabled) {\n if (!wasDisabled) {\n // enabled -> disabled\n // move into main container\n moveTeleport(n2, container, mainAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n else {\n // target changed\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = (n2.target = resolveTarget(n2.props, querySelector));\n if (nextTarget) {\n moveTeleport(n2, nextTarget, null, internals, 0 /* TeleportMoveTypes.TARGET_CHANGE */);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn('Invalid Teleport target on update:', target, `(${typeof target})`);\n }\n }\n else if (wasDisabled) {\n // disabled -> enabled\n // move into teleport target\n moveTeleport(n2, target, targetAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);\n }\n }\n }\n updateCssVars(n2);\n },\n remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n if (target) {\n hostRemove(targetAnchor);\n }\n // an unmounted teleport should always remove its children if not disabled\n if (doRemove || !isTeleportDisabled(props)) {\n hostRemove(anchor);\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(child, parentComponent, parentSuspense, true, !!child.dynamicChildren);\n }\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* TeleportMoveTypes.REORDER */) {\n // move target anchor if this is a target change.\n if (moveType === 0 /* TeleportMoveTypes.TARGET_CHANGE */) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2 /* TeleportMoveTypes.REORDER */;\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n // if this is a re-order and teleport is enabled (content is in target)\n // do not move children. So the opposite is: only move children if this\n // is not a reorder, or the teleport is disabled\n if (!isReorder || isTeleportDisabled(props)) {\n // Teleport has either Array children or no children.\n if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, parentAnchor, 2 /* MoveType.REORDER */);\n }\n }\n }\n // move main view anchor if this is a re-order.\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector } }, hydrateChildren) {\n const target = (vnode.target = resolveTarget(vnode.props, querySelector));\n if (target) {\n // if multiple teleports rendered to the same target element, we need to\n // pick up from where the last teleport finished instead of the first node\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);\n vnode.targetAnchor = targetNode;\n }\n else {\n vnode.anchor = nextSibling(node);\n // lookahead until we find the target anchor\n // we cannot rely on return value of hydrateChildren() because there\n // could be nested teleports\n let targetAnchor = targetNode;\n while (targetAnchor) {\n targetAnchor = nextSibling(targetAnchor);\n if (targetAnchor &&\n targetAnchor.nodeType === 8 &&\n targetAnchor.data === 'teleport anchor') {\n vnode.targetAnchor = targetAnchor;\n target._lpa =\n vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n hydrateChildren(targetNode, vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\n// Force-casted public typing for h and TSX props inference\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n // presence of .ut method indicates owner component uses css vars.\n // code path here can assume browser environment.\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.children[0].el;\n while (node !== vnode.targetAnchor) {\n if (node.nodeType === 1)\n node.setAttribute('data-v-owner', ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\n\nconst Fragment = Symbol((process.env.NODE_ENV !== 'production') ? 'Fragment' : undefined);\nconst Text = Symbol((process.env.NODE_ENV !== 'production') ? 'Text' : undefined);\nconst Comment = Symbol((process.env.NODE_ENV !== 'production') ? 'Comment' : undefined);\nconst Static = Symbol((process.env.NODE_ENV !== 'production') ? 'Static' : undefined);\n// Since v-if and v-for are the two possible ways node structure can dynamically\n// change, once we consider v-if branches and each v-for fragment a block, we\n// can divide a template into nested blocks, and within each block the node\n// structure would be stable. This allows us to skip most children diffing\n// and only worry about the dynamic nodes (indicated by patch flags).\nconst blockStack = [];\nlet currentBlock = null;\n/**\n * Open a block.\n * This must be called before `createBlock`. It cannot be part of `createBlock`\n * because the children of the block are evaluated before `createBlock` itself\n * is called. The generated code typically looks like this:\n *\n * ```js\n * function render() {\n * return (openBlock(),createBlock('div', null, [...]))\n * }\n * ```\n * disableTracking is true when creating a v-for fragment block, since a v-for\n * fragment always diffs its children.\n *\n * @private\n */\nfunction openBlock(disableTracking = false) {\n blockStack.push((currentBlock = disableTracking ? null : []));\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\n// Whether we should be tracking dynamic child nodes inside a block.\n// Only tracks when this value is > 0\n// We are not using a simple boolean because this value may need to be\n// incremented/decremented by nested usage of v-once (see below)\nlet isBlockTreeEnabled = 1;\n/**\n * Block tracking sometimes needs to be disabled, for example during the\n * creation of a tree that needs to be cached by v-once. The compiler generates\n * code like this:\n *\n * ``` js\n * _cache[1] || (\n * setBlockTracking(-1),\n * _cache[1] = createVNode(...),\n * setBlockTracking(1),\n * _cache[1]\n * )\n * ```\n *\n * @private\n */\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n // save current block children on the block vnode\n vnode.dynamicChildren =\n isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n // close block\n closeBlock();\n // a block is always going to be patched, so track it as a child of its\n // parent block\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\n/**\n * @private\n */\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true /* isBlock */));\n}\n/**\n * Create a block root vnode. Takes the same exact arguments as `createVNode`.\n * A block root keeps track of dynamic nodes within the block in the\n * `dynamicChildren` array.\n *\n * @private\n */\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */));\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if ((process.env.NODE_ENV !== 'production') &&\n n2.shapeFlag & 6 /* ShapeFlags.COMPONENT */ &&\n hmrDirtyComponents.has(n2.type)) {\n // #7042, ensure the vnode being unmounted during HMR\n // bitwise operations to remove keep alive flags\n n1.shapeFlag &= ~256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n n2.shapeFlag &= ~512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n // HMR only: if the component has been hot-updated, force a reload.\n return false;\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\n/**\n * Internal API for registering an arguments transform for createVNode\n * used for creating stubs in the test-utils\n * It is *internal* but needs to be exposed for test-utils to pick up proper\n * typings\n */\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(...(vnodeArgsTransformer\n ? vnodeArgsTransformer(args, currentRenderingInstance)\n : args));\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n return (ref != null\n ? isString(ref) || isRef(ref) || isFunction(ref)\n ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for }\n : ref\n : null);\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1 /* ShapeFlags.ELEMENT */, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n // normalize suspense children\n if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n type.normalize(vnode);\n }\n }\n else if (children) {\n // compiled element vnode - if children is passed, only possible types are\n // string or Array.\n vnode.shapeFlag |= isString(children)\n ? 8 /* ShapeFlags.TEXT_CHILDREN */\n : 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n // validate key\n if ((process.env.NODE_ENV !== 'production') && vnode.key !== vnode.key) {\n warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n // track vnode for block tree\n if (isBlockTreeEnabled > 0 &&\n // avoid a block node from tracking itself\n !isBlockNode &&\n // has current parent block\n currentBlock &&\n // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6 /* ShapeFlags.COMPONENT */) &&\n // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32 /* PatchFlags.HYDRATE_EVENTS */) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = ((process.env.NODE_ENV !== 'production') ? createVNodeWithArgsTransform : _createVNode);\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if ((process.env.NODE_ENV !== 'production') && !type) {\n warn(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n // createVNode receiving an existing vnode. This happens in cases like\n // <component :is=\"vnode\"/>\n // #2078 make sure to merge refs during the clone instead of overwriting it\n const cloned = cloneVNode(type, props, true /* mergeRef: true */);\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n }\n else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2 /* PatchFlags.BAIL */;\n return cloned;\n }\n // class component normalization.\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n // class & style normalization.\n if (props) {\n // for reactive or proxy objects, we need to clone it to enable mutation.\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n // reactive state objects need to be cloned since they are likely to be\n // mutated\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n // encode the vnode type information into a bitmap\n const shapeFlag = isString(type)\n ? 1 /* ShapeFlags.ELEMENT */\n : isSuspense(type)\n ? 128 /* ShapeFlags.SUSPENSE */\n : isTeleport(type)\n ? 64 /* ShapeFlags.TELEPORT */\n : isObject(type)\n ? 4 /* ShapeFlags.STATEFUL_COMPONENT */\n : isFunction(type)\n ? 2 /* ShapeFlags.FUNCTIONAL_COMPONENT */\n : 0;\n if ((process.env.NODE_ENV !== 'production') && shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */ && isProxy(type)) {\n type = toRaw(type);\n warn(`Vue received a Component which was made a reactive object. This can ` +\n `lead to unnecessary performance overhead, and should be avoided by ` +\n `marking the component with \\`markRaw\\` or using \\`shallowRef\\` ` +\n `instead of \\`ref\\`.`, `\\nComponent that was made reactive: `, type);\n }\n return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props\n ? extend({}, props)\n : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n // This is intentionally NOT using spread or extend to avoid the runtime\n // key enumeration cost.\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref\n ? // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref\n ? isArray(ref)\n ? ref.concat(normalizeRef(extraProps))\n : [ref, normalizeRef(extraProps)]\n : normalizeRef(extraProps)\n : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: (process.env.NODE_ENV !== 'production') && patchFlag === -1 /* PatchFlags.HOISTED */ && isArray(children)\n ? children.map(deepCloneVNode)\n : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment\n ? patchFlag === -1 // hoisted node\n ? 16 /* PatchFlags.FULL_PROPS */\n : patchFlag | 16 /* PatchFlags.FULL_PROPS */\n : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx\n };\n return cloned;\n}\n/**\n * Dev only, for HMR of hoisted vnodes reused in v-for\n * https://github.com/vitejs/vite/issues/2022\n */\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\n/**\n * @private\n */\nfunction createTextVNode(text = ' ', flag = 0) {\n return createVNode(Text, null, text, flag);\n}\n/**\n * @private\n */\nfunction createStaticVNode(content, numberOfNodes) {\n // A static vnode can contain multiple stringified elements, and the number\n // of elements is necessary for hydration.\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\n/**\n * @private\n */\nfunction createCommentVNode(text = '', \n// when used as the v-else branch, the comment node must be created as a\n// block to ensure correct updates.\nasBlock = false) {\n return asBlock\n ? (openBlock(), createBlock(Comment, null, text))\n : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === 'boolean') {\n // empty placeholder\n return createVNode(Comment);\n }\n else if (isArray(child)) {\n // fragment\n return createVNode(Fragment, null, \n // #3666, avoid reference pollution when reusing vnode\n child.slice());\n }\n else if (typeof child === 'object') {\n // already vnode, this should be the most common since compiled templates\n // always produce all-vnode children arrays\n return cloneIfMounted(child);\n }\n else {\n // strings and numbers\n return createVNode(Text, null, String(child));\n }\n}\n// optimized normalization for template-compiled render fns\nfunction cloneIfMounted(child) {\n return (child.el === null && child.patchFlag !== -1 /* PatchFlags.HOISTED */) ||\n child.memo\n ? child\n : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n }\n else if (isArray(children)) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n }\n else if (typeof children === 'object') {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 64 /* ShapeFlags.TELEPORT */)) {\n // Normalize slot to plain children for plain element and Teleport\n const slot = children.default;\n if (slot) {\n // _c marker is added by withCtx() indicating this is a compiled slot\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n }\n else {\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n }\n else if (slotFlag === 3 /* SlotFlags.FORWARDED */ && currentRenderingInstance) {\n // a child component receives forwarded slots from the parent.\n // its slot type is determined by its parent's slot type.\n if (currentRenderingInstance.slots._ === 1 /* SlotFlags.STABLE */) {\n children._ = 1 /* SlotFlags.STABLE */;\n }\n else {\n children._ = 2 /* SlotFlags.DYNAMIC */;\n vnode.patchFlag |= 1024 /* PatchFlags.DYNAMIC_SLOTS */;\n }\n }\n }\n }\n else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32 /* ShapeFlags.SLOTS_CHILDREN */;\n }\n else {\n children = String(children);\n // force teleport children to array so it can be moved around\n if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {\n type = 16 /* ShapeFlags.ARRAY_CHILDREN */;\n children = [createTextVNode(children)];\n }\n else {\n type = 8 /* ShapeFlags.TEXT_CHILDREN */;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === 'class') {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n }\n else if (key === 'style') {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n }\n else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming &&\n existing !== incoming &&\n !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing\n ? [].concat(existing, incoming)\n : incoming;\n }\n }\n else if (key !== '') {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7 /* ErrorCodes.VNODE_HOOK */, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n // inherit parent app context - or - if root, adopt from root vnode\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid$1++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n next: null,\n subTree: null,\n effect: null,\n update: null,\n scope: new EffectScope(true /* detached */),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if ((process.env.NODE_ENV !== 'production')) {\n instance.ctx = createDevRenderContext(instance);\n }\n else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit$1.bind(null, instance);\n // apply custom element special handling\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance) => {\n currentInstance = instance;\n instance.scope.on();\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n currentInstance = null;\n};\nconst isBuiltInTag = /*#__PURE__*/ makeMap('slot,component');\nfunction validateComponentName(name, config) {\n const appIsNativeTag = config.isNativeTag || NO;\n if (isBuiltInTag(name) || appIsNativeTag(name)) {\n warn('Do not use built-in or reserved HTML elements as component id: ' + name);\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isInSSRComponentSetup = isSSR;\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children);\n const setupResult = isStateful\n ? setupStatefulComponent(instance, isSSR)\n : undefined;\n isInSSRComponentSetup = false;\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if ((process.env.NODE_ENV !== 'production')) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn(`\"compilerOptions\" is only supported when using a build of Vue that ` +\n `includes the runtime compiler. Since you are using a runtime-only ` +\n `build, the options should be passed via your build tool config instead.`);\n }\n }\n // 0. create render proxy property access cache\n instance.accessCache = Object.create(null);\n // 1. create public instance / render proxy\n // also mark it raw so it's never observed\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if ((process.env.NODE_ENV !== 'production')) {\n exposePropsOnRenderContext(instance);\n }\n // 2. call setup()\n const { setup } = Component;\n if (setup) {\n const setupContext = (instance.setupContext =\n setup.length > 1 ? createSetupContext(instance) : null);\n setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(setup, instance, 0 /* ErrorCodes.SETUP_FUNCTION */, [(process.env.NODE_ENV !== 'production') ? shallowReadonly(instance.props) : instance.props, setupContext]);\n resetTracking();\n unsetCurrentInstance();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n // return the promise so server-renderer can wait on it\n return setupResult\n .then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n })\n .catch(e => {\n handleError(e, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n });\n }\n else {\n // async setup returned Promise.\n // bail here and wait for re-entry.\n instance.asyncDep = setupResult;\n if ((process.env.NODE_ENV !== 'production') && !instance.suspense) {\n const name = (_a = Component.name) !== null && _a !== void 0 ? _a : 'Anonymous';\n warn(`Component <${name}>: setup function returned a promise, but no ` +\n `<Suspense> boundary was found in the parent component tree. ` +\n `A component with async setup() must be nested in a <Suspense> ` +\n `in order to be rendered.`);\n }\n }\n }\n else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n }\n else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n // setup returned an inline render function\n if (instance.type.__ssrInlineRender) {\n // when the function's name is `ssrRender` (compiled by SFC inline mode),\n // set it as ssrRender instead.\n instance.ssrRender = setupResult;\n }\n else {\n instance.render = setupResult;\n }\n }\n else if (isObject(setupResult)) {\n if ((process.env.NODE_ENV !== 'production') && isVNode(setupResult)) {\n warn(`setup() should not return VNodes directly - ` +\n `return a render function instead.`);\n }\n // setup returned bindings.\n // assuming a render function compiled from template is present.\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if ((process.env.NODE_ENV !== 'production')) {\n exposeSetupStateOnRenderContext(instance);\n }\n }\n else if ((process.env.NODE_ENV !== 'production') && setupResult !== undefined) {\n warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\n/**\n * For runtime-dom to register the compiler.\n * Note the exported method uses any to avoid d.ts relying on the compiler types.\n */\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = i => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\n// dev only\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n // template / render function normalization\n // could be already set when returned from setup()\n if (!instance.render) {\n // only do on-the-fly compile if not in SSR - SSR on-the-fly compilation\n // is done by server-renderer\n if (!isSSR && compile && !Component.render) {\n const template = Component.template ||\n resolveMergedOptions(instance).template;\n if (template) {\n if ((process.env.NODE_ENV !== 'production')) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(extend({\n isCustomElement,\n delimiters\n }, compilerOptions), componentCompilerOptions);\n Component.render = compile(template, finalCompilerOptions);\n if ((process.env.NODE_ENV !== 'production')) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = (Component.render || NOOP);\n // for runtime-compiled render functions using `with` blocks, the render\n // proxy used needs a different `has` handler which is more performant and\n // also only allows a whitelist of globals to fallthrough.\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n // support for 2.x options\n if (__VUE_OPTIONS_API__ && !(false )) {\n setCurrentInstance(instance);\n pauseTracking();\n applyOptions(instance);\n resetTracking();\n unsetCurrentInstance();\n }\n // warn missing template/render\n // the runtime compilation of template in SSR is done by server-render\n if ((process.env.NODE_ENV !== 'production') && !Component.render && instance.render === NOOP && !isSSR) {\n /* istanbul ignore if */\n if (!compile && Component.template) {\n warn(`Component provided template option but ` +\n `runtime compilation is not supported in this build of Vue.` +\n (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".`\n ) /* should not happen */);\n }\n else {\n warn(`Component is missing template or render function.`);\n }\n }\n}\nfunction createAttrsProxy(instance) {\n return new Proxy(instance.attrs, (process.env.NODE_ENV !== 'production')\n ? {\n get(target, key) {\n markAttrsAccessed();\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n },\n set() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn(`setupContext.attrs is readonly.`);\n return false;\n }\n }\n : {\n get(target, key) {\n track(instance, \"get\" /* TrackOpTypes.GET */, '$attrs');\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = exposed => {\n if ((process.env.NODE_ENV !== 'production') && instance.exposed) {\n warn(`expose() should be called only once per setup().`);\n }\n instance.exposed = exposed || {};\n };\n let attrs;\n if ((process.env.NODE_ENV !== 'production')) {\n // We use getters in dev in case libs like test-utils overwrite instance\n // properties (overwrites should not be done in prod)\n return Object.freeze({\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n get slots() {\n return shallowReadonly(instance.slots);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n }\n else {\n return {\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance));\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return (instance.exposeProxy ||\n (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n })));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component)\n ? Component.displayName || Component.name\n : Component.name || (includeInferred && Component.__name);\n}\n/* istanbul ignore next */\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n // try to infer the name based on reverse resolution\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name =\n inferFromRegistry(instance.components ||\n instance.parent.type.components) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && '__vccOpts' in value;\n}\n\nconst computed = ((getterOrOptions, debugOptions) => {\n // @ts-ignore\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n});\n\n// dev only\nconst warnRuntimeUsage = (method) => warn(`${method}() is a compiler-hint helper that is only usable inside ` +\n `<script setup> of a single file component. Its arguments should be ` +\n `compiled away and passing it at runtime has no effect.`);\n// implementation\nfunction defineProps() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\n// implementation\nfunction defineEmits() {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\n/**\n * Vue `<script setup>` compiler macro for declaring a component's exposed\n * instance properties when it is accessed by a parent component via template\n * refs.\n *\n * `<script setup>` components are closed by default - i.e. variables inside\n * the `<script setup>` scope is not exposed to parent unless explicitly exposed\n * via `defineExpose`.\n *\n * This is only usable inside `<script setup>`, is compiled away in the\n * output and should **not** be actually called at runtime.\n */\nfunction defineExpose(exposed) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\n/**\n * Vue `<script setup>` compiler macro for providing props default values when\n * using type-based `defineProps` declaration.\n *\n * Example usage:\n * ```ts\n * withDefaults(defineProps<{\n * size?: number\n * labels?: string[]\n * }>(), {\n * size: 3,\n * labels: () => ['default label']\n * })\n * ```\n *\n * This is only usable inside `<script setup>`, is compiled away in the output\n * and should **not** be actually called at runtime.\n */\nfunction withDefaults(props, defaults) {\n if ((process.env.NODE_ENV !== 'production')) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !i) {\n warn(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\n/**\n * Runtime helper for merging default declarations. Imported by compiled code\n * only.\n * @internal\n */\nfunction mergeDefaults(raw, defaults) {\n const props = isArray(raw)\n ? raw.reduce((normalized, p) => ((normalized[p] = {}), normalized), {})\n : raw;\n for (const key in defaults) {\n const opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n props[key] = { type: opt, default: defaults[key] };\n }\n else {\n opt.default = defaults[key];\n }\n }\n else if (opt === null) {\n props[key] = { default: defaults[key] };\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`props default key \"${key}\" has no corresponding declaration.`);\n }\n }\n return props;\n}\n/**\n * Used to create a proxy for the rest element when destructuring props with\n * defineProps().\n * @internal\n */\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\n/**\n * `<script setup>` helper for persisting the current instance context over\n * async/await flows.\n *\n * `@vue/compiler-sfc` converts the following:\n *\n * ```ts\n * const x = await foo()\n * ```\n *\n * into:\n *\n * ```ts\n * let __temp, __restore\n * const x = (([__temp, __restore] = withAsyncContext(() => foo())),__temp=await __temp,__restore(),__temp)\n * ```\n * @internal\n */\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if ((process.env.NODE_ENV !== 'production') && !ctx) {\n warn(`withAsyncContext called without active current instance. ` +\n `This is likely a bug.`);\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch(e => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\n// Actual implementation\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n // single vnode without props\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n // props without children\n return createVNode(type, propsOrChildren);\n }\n else {\n // omit props\n return createVNode(type, null, propsOrChildren);\n }\n }\n else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n }\n else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nconst ssrContextKey = Symbol((process.env.NODE_ENV !== 'production') ? `ssrContext` : ``);\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Server rendering context not provided. Make sure to only call ` +\n `useSSRContext() conditionally in the server build.`);\n }\n return ctx;\n }\n};\n\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\n\nfunction initCustomFormatter() {\n /* eslint-disable no-restricted-globals */\n if (!(process.env.NODE_ENV !== 'production') || typeof window === 'undefined') {\n return;\n }\n const vueStyle = { style: 'color:#3ba776' };\n const numberStyle = { style: 'color:#0b1bc9' };\n const stringStyle = { style: 'color:#b62e24' };\n const keywordStyle = { style: 'color:#9d288c' };\n // custom formatter for Chrome\n // https://www.mattzeunert.com/2016/02/19/custom-chrome-devtools-object-formatters.html\n const formatter = {\n header(obj) {\n // TODO also format ComponentPublicInstance & ctx.slots/attrs in setup\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return ['div', vueStyle, `VueInstance`];\n }\n else if (isRef(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, genRefFlag(obj)],\n '<',\n formatValue(obj.value),\n `>`\n ];\n }\n else if (isReactive(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReactive' : 'Reactive'],\n '<',\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n }\n else if (isReadonly(obj)) {\n return [\n 'div',\n {},\n ['span', vueStyle, isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],\n '<',\n formatValue(obj),\n '>'\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n 'div',\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock('props', toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('setup', instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock('data', toRaw(instance.data)));\n }\n const computed = extractKeys(instance, 'computed');\n if (computed) {\n blocks.push(createInstanceBlock('computed', computed));\n }\n const injected = extractKeys(instance, 'inject');\n if (injected) {\n blocks.push(createInstanceBlock('injected', injected));\n }\n blocks.push([\n 'div',\n {},\n [\n 'span',\n {\n style: keywordStyle.style + ';opacity:0.66'\n },\n '$ (internal): '\n ],\n ['object', { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return ['span', {}];\n }\n return [\n 'div',\n { style: 'line-height:1.25em;margin-bottom:0.6em' },\n [\n 'div',\n {\n style: 'color:#476582'\n },\n type\n ],\n [\n 'div',\n {\n style: 'padding-left:1.25em'\n },\n ...Object.keys(target).map(key => {\n return [\n 'div',\n {},\n ['span', keywordStyle, key + ': '],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === 'number') {\n return ['span', numberStyle, v];\n }\n else if (typeof v === 'string') {\n return ['span', stringStyle, JSON.stringify(v)];\n }\n else if (typeof v === 'boolean') {\n return ['span', keywordStyle, v];\n }\n else if (isObject(v)) {\n return ['object', { object: asRaw ? toRaw(v) : v }];\n }\n else {\n return ['span', stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if ((isArray(opts) && opts.includes(key)) ||\n (isObject(opts) && key in opts)) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some(m => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n }\n else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n // shallow clone\n ret.memo = memo.slice();\n return (cache[index] = ret);\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n // make sure to let parent block track it when returning cached\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\n// Core API ------------------------------------------------------------------\nconst version = \"3.2.45\";\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode,\n normalizeVNode\n};\n/**\n * SSR utils for \\@vue/server-renderer. Only exposed in ssr-possible builds.\n * @internal\n */\nconst ssrUtils = (_ssrUtils );\n/**\n * @internal only exposed in compat builds\n */\nconst resolveFilter = null;\n/**\n * @internal only exposed in compat builds.\n */\nconst compatUtils = (null);\n\nexport { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","/*!\n * vue-i18n v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, isString, hasOwn, isObject, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CompileErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, ref, computed, watch, getCurrentInstance, Fragment, h, effectScope, inject, onMounted, onUnmounted, shallowRef, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.2.2';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nlet code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\nconst inc$1 = () => ++code$1;\r\nconst I18nWarnCodes = {\r\n FALLBACK_TO_ROOT: code$1,\r\n NOT_SUPPORTED_PRESERVE: inc$1(),\r\n NOT_SUPPORTED_FORMATTER: inc$1(),\r\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n};\r\nconst warnMessages = {\r\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst I18nErrorCodes = {\r\n // composer module errors\r\n UNEXPECTED_RETURN_TYPE: code,\r\n // legacy module errors\r\n INVALID_ARGUMENT: inc(),\r\n // i18n module errors\r\n MUST_BE_CALL_SETUP_TOP: inc(),\r\n NOT_INSLALLED: inc(),\r\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n // directive module errors\r\n REQUIRED_VALUE: inc(),\r\n INVALID_VALUE: inc(),\r\n // vue-devtools errors\r\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n // unexpected error\r\n UNEXPECTED_ERROR: inc(),\r\n // not compatible legacy vue-i18n constructor\r\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n // bridge support vue 2.x only\r\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n // for enhancement\r\n __EXTEND_POINT__: inc() // 29\r\n};\r\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\r\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\r\n};\n\nconst TransrateVNodeSymbol = \r\n/* #__PURE__*/ makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes('.')) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split('.');\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n, messageResolver, flatJson } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(custom => {\r\n if ('locale' in custom && 'resource' in custom) {\r\n const { locale, resource } = custom;\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n }\r\n else {\r\n isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (messageResolver == null && flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getComponentOptions(instance) {\r\n return instance.type ;\r\n}\r\nfunction adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in componentOptions) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: componentOptions.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n {\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n }\r\n}\r\nfunction createTextNode(key) {\r\n return createVNode(Text, null, key, 0)\r\n ;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// extend VNode interface\r\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = () => {\r\n const instance = getCurrentInstance();\r\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createComposer(options = {}, VueI18nLegacy) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n let _warnHtmlMessage = __root\r\n ? __root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n const getCoreContext = () => {\r\n _isGlobal && setFallbackContext(null);\r\n const ctxOptions = {\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n messageResolver: options.messageResolver,\r\n __meta: { framework: 'vue' }\r\n };\r\n {\r\n ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n ctxOptions.numberFormats = _numberFormats.value;\r\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined;\r\n ctxOptions.__numberFormatters = isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ctxOptions.__v_emitter = isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined;\r\n }\r\n const ctx = createCoreContext(ctxOptions);\r\n _isGlobal && setFallbackContext(ctx);\r\n return ctx;\r\n };\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ]\r\n ;\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !arg.resolvedMessage;\r\n }\r\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n if (!_isGlobal) {\r\n _context.fallbackContext = __root\r\n ? getFallbackContext()\r\n : undefined;\r\n }\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n if (!_isGlobal) {\r\n _context.fallbackContext = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n }\r\n };\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n ? createTextNode(String(val))\r\n : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = Reflect.apply(translate, null, [_context, ...args]);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return _context.messageResolver(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root && inBrowser) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define basic composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [SetPluralRulesSymbol]: setPluralRules\r\n };\r\n {\r\n composer.datetimeFormats = datetimeFormats;\r\n composer.numberFormats = numberFormats;\r\n composer.rt = rt;\r\n composer.te = te;\r\n composer.tm = tm;\r\n composer.d = d;\r\n composer.n = n;\r\n composer.getDateTimeFormat = getDateTimeFormat;\r\n composer.setDateTimeFormat = setDateTimeFormat;\r\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n composer.getNumberFormat = getNumberFormat;\r\n composer.setNumberFormat = setNumberFormat;\r\n composer.mergeNumberFormat = mergeNumberFormat;\r\n composer[InejctWithOption] = options.__injectWithOption;\r\n composer[TransrateVNodeSymbol] = transrateVNode;\r\n composer[DatetimePartsSymbol] = datetimeParts;\r\n composer[NumberPartsSymbol] = numberParts;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageResolver: options.messageResolver,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createVueI18n(options = {}, VueI18nLegacy) {\r\n {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n rt(...args) {\r\n return Reflect.apply(composer.rt, composer, [...args]);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return Reflect.apply(composer.d, composer, [...args]);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return Reflect.apply(composer.n, composer, [...args]);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n }\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n default: 'parent' /* ComponetI18nScope */\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\nfunction getInterpolateArg(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n{ slots }, // SetupContext,\r\nkeys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot with list\r\n const ret = slots.default ? slots.default() : [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return ret.reduce((slot, current) => {\r\n return (slot = [\r\n ...slot,\r\n ...(isArray(current.children) ? current.children : [current])\r\n ]);\r\n }, []);\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getFragmentableTag(tag) {\r\n return Fragment ;\r\n}\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n * <div id=\"app\">\r\n * <!-- ... -->\r\n * <i18n path=\"term\" tag=\"label\" for=\"tos\">\r\n * <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\r\n * </i18n>\r\n * <!-- ... -->\r\n * </div>\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n return () => {\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n }\r\n};\n\nfunction isVNode(target) {\r\n return isArray(target) && !isString(target[0]);\r\n}\r\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n const node = slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n if (isVNode(node)) {\r\n node[0].key = `${part.type}-${index}`;\r\n }\r\n return node;\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n}\n\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = /*defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const _process = (binding) => {\r\n const { instance, modifiers, value } = binding;\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n }\r\n const parsedValue = parseValue(value);\r\n return [\r\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n composer\r\n ];\r\n };\r\n const register = (el, binding) => {\r\n const [textContent, composer] = _process(binding);\r\n if (inBrowser && i18n.global === composer) {\r\n // global scope only\r\n el.__i18nWatcher = watch(composer.locale, () => {\r\n binding.instance && binding.instance.$forceUpdate();\r\n });\r\n }\r\n el.__composer = composer;\r\n el.textContent = textContent;\r\n };\r\n const unregister = (el) => {\r\n if (inBrowser && el.__i18nWatcher) {\r\n el.__i18nWatcher();\r\n el.__i18nWatcher = undefined;\r\n delete el.__i18nWatcher;\r\n }\r\n if (el.__composer) {\r\n el.__composer = undefined;\r\n delete el.__composer;\r\n }\r\n };\r\n const update = (el, { value }) => {\r\n if (el.__composer) {\r\n const composer = el.__composer;\r\n const parsedValue = parseValue(value);\r\n el.textContent = Reflect.apply(composer.t, composer, [\r\n ...makeParams(parsedValue)\r\n ]);\r\n }\r\n };\r\n const getSSRProps = (binding) => {\r\n const [textContent] = _process(binding);\r\n return { textContent };\r\n };\r\n return {\r\n created: register,\r\n unmounted: unregister,\r\n beforeUpdate: update,\r\n getSSRProps\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n {\r\n app.directive('t', vTDirective(i18n));\r\n }\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el &&\r\n componentInstance.vnode.el.__VUE_I18N__ &&\r\n instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n const roots = new Map();\r\n api.on.getInspectorState(async (payload) => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n api.unhighlightElement();\r\n inspectScope(payload, i18n);\r\n if (payload.nodeId === 'global') {\r\n if (!roots.has(payload.app)) {\r\n const [root] = await api.getComponentInstances(payload.app);\r\n roots.set(payload.app, root);\r\n }\r\n api.highlightElement(roots.get(payload.app));\r\n }\r\n else {\r\n const instance = getComponentInstance(payload.nodeId, i18n);\r\n instance && api.highlightElement(instance);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getI18nScopeLable(instance) {\r\n return (instance.type.name ||\r\n instance.type.displayName ||\r\n instance.type.__file ||\r\n 'Anonymous');\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const tag = {\r\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n {\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '&lt;',\r\n '>': '&gt;',\r\n '\"': '&quot;',\r\n '&': '&amp;'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `<span>ƒ</span> ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${getI18nScopeLable(keyInstance)} Scope`\r\n });\r\n }\r\n}\r\nfunction getComponentInstance(nodeId, i18n) {\r\n let instance = null;\r\n if (nodeId !== 'global') {\r\n for (const [component, composer] of i18n.__instances.entries()) {\r\n if (composer.id.toString() === nodeId) {\r\n instance = component;\r\n break;\r\n }\r\n }\r\n }\r\n return instance;\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n // TODO:\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n return null;\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n {\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n }\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n/**\r\n * Supports compatibility for legacy vue-i18n APIs\r\n * This mixin is used when we use vue-i18n@v9.x or later\r\n */\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n if (options.__i18nGlobal) {\r\n adjustI18nResources(composer, options, options);\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$i18n) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter =\r\n createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n unmounted() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$el.__VUE_I18N__) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n if (this.$i18n) {\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Injection key for {@link useI18n}\r\n *\r\n * @remarks\r\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst I18nInjectionKey = \r\n/* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction createI18n(options = {}, VueI18nLegacy) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n // prettier-ignore\r\n const __globalInjection = isBoolean(options.globalInjection)\r\n ? options.globalInjection\r\n : true;\r\n // prettier-ignore\r\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? !!options.allowComposition\r\n : true;\r\n const __instances = new Map();\r\n const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n function __getInstance(component) {\r\n return __instances.get(component) || null;\r\n }\r\n function __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n }\r\n function __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n {\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n return __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? 'legacy'\r\n : 'composition';\r\n },\r\n // allowComposition\r\n get allowComposition() {\r\n return __allowComposition;\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // release global scope\r\n const unmountApp = app.unmount;\r\n app.unmount = () => {\r\n i18n.dispose();\r\n unmountApp();\r\n };\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n dispose() {\r\n globalScope.stop();\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance,\r\n // @internal\r\n __setInstance,\r\n // @internal\r\n __deleteInstance\r\n };\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n }\r\n if (!instance.isCE &&\r\n instance.appContext.app != null &&\r\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n }\r\n const i18n = getI18nInstance(instance);\r\n const global = getGlobalComposer(i18n);\r\n const componentOptions = getComponentOptions(instance);\r\n const scope = getScope(options, componentOptions);\r\n if (__VUE_I18N_LEGACY_API__) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n if (!i18n.allowComposition) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n }\r\n return useI18nForLegacy(instance, scope, global, options);\r\n }\r\n }\r\n if (scope === 'global') {\r\n adjustI18nResources(global, options, componentOptions);\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const composerOptions = assign({}, options);\r\n if ('__i18n' in componentOptions) {\r\n composerOptions.__i18n = componentOptions.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\n/**\r\n * Cast to VueI18n legacy compatible type\r\n *\r\n * @remarks\r\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n *\r\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\r\n *\r\n * @param i18n - An instance of {@link I18n}\r\n * @returns A i18n instance which is casted to {@link VueI18n} type\r\n *\r\n * @VueI18nTip\r\n * :new: provided by **vue-i18n-bridge only**\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst castToVueI18n = (i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) => {\r\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n }\r\n return i18n;\r\n};\r\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const scope = effectScope();\r\n {\r\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\r\n ? scope.run(() => createVueI18n(options))\r\n : scope.run(() => createComposer(options));\r\n if (obj == null) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n return [scope, obj];\r\n }\r\n}\r\nfunction getI18nInstance(instance) {\r\n {\r\n const i18n = inject(!instance.isCE\r\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n : I18nInjectionKey);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(!instance.isCE\r\n ? I18nErrorCodes.UNEXPECTED_ERROR\r\n : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n }\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getScope(options, componentOptions) {\r\n // prettier-ignore\r\n return isEmptyObject(options)\r\n ? ('__i18n' in componentOptions)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n}\r\nfunction getGlobalComposer(i18n) {\r\n // prettier-ignore\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer\r\n ;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n if (__VUE_I18N_LEGACY_API__) {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n if (useComponent &&\r\n composer &&\r\n !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n composer = null;\r\n }\r\n }\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n {\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n }\r\n}\r\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const isLocale = scope === 'local';\r\n const _composer = shallowRef(null);\r\n if (isLocale &&\r\n instance.proxy &&\r\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n }\r\n const _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _missingWarn = isLocale\r\n ? root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackWarn = isLocale\r\n ? root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackRoot = isLocale\r\n ? root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n const _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n const _missing = isFunction(options.missing) ? options.missing : null;\r\n // postTranslation handler\r\n const _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n const _warnHtmlMessage = isLocale\r\n ? root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const _escapeParameter = !!options.escapeParameter;\r\n // prettier-ignore\r\n const _modifiers = isLocale\r\n ? root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => {\r\n return _composer.value ? _composer.value.locale.value : _locale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.locale.value = val;\r\n }\r\n _locale.value = val;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => {\r\n return _composer.value\r\n ? _composer.value.fallbackLocale.value\r\n : _fallbackLocale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.fallbackLocale.value = val;\r\n }\r\n _fallbackLocale.value = val;\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => {\r\n if (_composer.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _composer.value.messages.value;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _messages.value;\r\n }\r\n });\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n const numberFormats = computed(() => _numberFormats.value);\r\n function getPostTranslationHandler() {\r\n return _composer.value\r\n ? _composer.value.getPostTranslationHandler()\r\n : _postTranslation;\r\n }\r\n function setPostTranslationHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setPostTranslationHandler(handler);\r\n }\r\n }\r\n function getMissingHandler() {\r\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n }\r\n function setMissingHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setMissingHandler(handler);\r\n }\r\n }\r\n function warpWithDeps(fn) {\r\n trackReactivityValues();\r\n return fn();\r\n }\r\n function t(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function rt(...args) {\r\n return _composer.value\r\n ? Reflect.apply(_composer.value.rt, null, [...args])\r\n : '';\r\n }\r\n function d(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function n(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function tm(key) {\r\n return _composer.value ? _composer.value.tm(key) : {};\r\n }\r\n function te(key, locale) {\r\n return _composer.value ? _composer.value.te(key, locale) : false;\r\n }\r\n function getLocaleMessage(locale) {\r\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n }\r\n function setLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.setLocaleMessage(locale, message);\r\n _messages.value[locale] = message;\r\n }\r\n }\r\n function mergeLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.mergeLocaleMessage(locale, message);\r\n }\r\n }\r\n function getDateTimeFormat(locale) {\r\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n }\r\n function setDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setDateTimeFormat(locale, format);\r\n _datetimeFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeDateTimeFormat(locale, format);\r\n }\r\n }\r\n function getNumberFormat(locale) {\r\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n }\r\n function setNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setNumberFormat(locale, format);\r\n _numberFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeNumberFormat(locale, format);\r\n }\r\n }\r\n const wrapper = {\r\n get id() {\r\n return _composer.value ? _composer.value.id : -1;\r\n },\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get inheritLocale() {\r\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n if (_composer.value) {\r\n _composer.value.inheritLocale = val;\r\n }\r\n },\r\n get availableLocales() {\r\n return _composer.value\r\n ? _composer.value.availableLocales\r\n : Object.keys(_messages.value);\r\n },\r\n get modifiers() {\r\n return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n },\r\n get pluralRules() {\r\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n },\r\n get isGlobal() {\r\n return _composer.value ? _composer.value.isGlobal : false;\r\n },\r\n get missingWarn() {\r\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackWarn() {\r\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackRoot() {\r\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackRoot = val;\r\n }\r\n },\r\n get fallbackFormat() {\r\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackFormat = val;\r\n }\r\n },\r\n get warnHtmlMessage() {\r\n return _composer.value\r\n ? _composer.value.warnHtmlMessage\r\n : _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n if (_composer.value) {\r\n _composer.value.warnHtmlMessage = val;\r\n }\r\n },\r\n get escapeParameter() {\r\n return _composer.value\r\n ? _composer.value.escapeParameter\r\n : _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n if (_composer.value) {\r\n _composer.value.escapeParameter = val;\r\n }\r\n },\r\n t,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n rt,\r\n d,\r\n n,\r\n tm,\r\n te,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat\r\n };\r\n function sync(composer) {\r\n composer.locale.value = _locale.value;\r\n composer.fallbackLocale.value = _fallbackLocale.value;\r\n Object.keys(_messages.value).forEach(locale => {\r\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n });\r\n Object.keys(_datetimeFormats.value).forEach(locale => {\r\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n });\r\n Object.keys(_numberFormats.value).forEach(locale => {\r\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n });\r\n composer.escapeParameter = _escapeParameter;\r\n composer.fallbackFormat = _fallbackFormat;\r\n composer.fallbackRoot = _fallbackRoot;\r\n composer.fallbackWarn = _fallbackWarn;\r\n composer.missingWarn = _missingWarn;\r\n composer.warnHtmlMessage = _warnHtmlMessage;\r\n }\r\n onBeforeMount(() => {\r\n if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const composer = (_composer.value = instance.proxy.$i18n\r\n .__composer);\r\n if (scope === 'global') {\r\n _locale.value = composer.locale.value;\r\n _fallbackLocale.value = composer.fallbackLocale.value;\r\n _messages.value = composer.messages.value;\r\n _datetimeFormats.value = composer.datetimeFormats.value;\r\n _numberFormats.value = composer.numberFormats.value;\r\n }\r\n else if (isLocale) {\r\n sync(composer);\r\n }\r\n });\r\n return wrapper;\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'] ;\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message resolver at vue-i18n\r\nregisterMessageResolver(resolveValue);\r\n// register fallback locale at vue-i18n\r\nregisterLocaleFallbacker(fallbackWithLocaleChain);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nInjectionKey, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","/* eslint-env serviceworker */\n\nimport localForage from 'localforage'\nimport { parseNotification } from './services/entity_normalizer/entity_normalizer.service.js'\nimport { prepareNotificationObject } from './services/notification_utils/notification_utils.js'\nimport { createI18n } from 'vue-i18n'\nimport messages from './i18n/service_worker_messages.js'\n\nconst i18n = createI18n({\n // By default, use the browser locale, we will update it if neccessary\n locale: 'en',\n fallbackLocale: 'en',\n messages\n})\n\nfunction isEnabled () {\n return localForage.getItem('vuex-lz')\n .then(data => data.config.webPushNotifications)\n}\n\nfunction getWindowClients () {\n return clients.matchAll({ includeUncontrolled: true })\n .then((clientList) => clientList.filter(({ type }) => type === 'window'))\n}\n\nconst setLocale = async () => {\n const state = await localForage.getItem('vuex-lz')\n const locale = state.config.interfaceLanguage || 'en'\n i18n.locale = locale\n}\n\nconst maybeShowNotification = async (event) => {\n const enabled = await isEnabled()\n const activeClients = await getWindowClients()\n await setLocale()\n if (enabled && (activeClients.length === 0)) {\n const data = event.data.json()\n\n const url = `${self.registration.scope}api/v1/notifications/${data.notification_id}`\n const notification = await fetch(url, { headers: { Authorization: 'Bearer ' + data.access_token } })\n const notificationJson = await notification.json()\n const parsedNotification = parseNotification(notificationJson)\n\n const res = prepareNotificationObject(parsedNotification, i18n)\n\n self.registration.showNotification(res.title, res)\n }\n}\n\nself.addEventListener('push', async (event) => {\n if (event.data) {\n event.waitUntil(maybeShowNotification(event))\n }\n})\n\nself.addEventListener('notificationclick', (event) => {\n event.notification.close()\n\n event.waitUntil(getWindowClients().then((list) => {\n for (let i = 0; i < list.length; i++) {\n const client = list[i]\n if (client.url === '/' && 'focus' in client) { return client.focus() }\n }\n\n if (clients.openWindow) return clients.openWindow('/')\n }))\n})\n","/* eslint-disable import/no-webpack-loader-syntax */\n// This module exports only the notification part of the i18n,\n// which is useful for the service worker\n\nconst messages = {\n ar: require('../lib/notification-i18n-loader.js!./ar.json'),\n ca: require('../lib/notification-i18n-loader.js!./ca.json'),\n cs: require('../lib/notification-i18n-loader.js!./cs.json'),\n de: require('../lib/notification-i18n-loader.js!./de.json'),\n eo: require('../lib/notification-i18n-loader.js!./eo.json'),\n es: require('../lib/notification-i18n-loader.js!./es.json'),\n et: require('../lib/notification-i18n-loader.js!./et.json'),\n eu: require('../lib/notification-i18n-loader.js!./eu.json'),\n fi: require('../lib/notification-i18n-loader.js!./fi.json'),\n fr: require('../lib/notification-i18n-loader.js!./fr.json'),\n ga: require('../lib/notification-i18n-loader.js!./ga.json'),\n he: require('../lib/notification-i18n-loader.js!./he.json'),\n hu: require('../lib/notification-i18n-loader.js!./hu.json'),\n it: require('../lib/notification-i18n-loader.js!./it.json'),\n ja: require('../lib/notification-i18n-loader.js!./ja_pedantic.json'),\n ja_easy: require('../lib/notification-i18n-loader.js!./ja_easy.json'),\n ko: require('../lib/notification-i18n-loader.js!./ko.json'),\n nb: require('../lib/notification-i18n-loader.js!./nb.json'),\n nl: require('../lib/notification-i18n-loader.js!./nl.json'),\n oc: require('../lib/notification-i18n-loader.js!./oc.json'),\n pl: require('../lib/notification-i18n-loader.js!./pl.json'),\n pt: require('../lib/notification-i18n-loader.js!./pt.json'),\n ro: require('../lib/notification-i18n-loader.js!./ro.json'),\n ru: require('../lib/notification-i18n-loader.js!./ru.json'),\n sk: require('../lib/notification-i18n-loader.js!./sk.json'),\n te: require('../lib/notification-i18n-loader.js!./te.json'),\n zh: require('../lib/notification-i18n-loader.js!./zh.json'),\n en: require('../lib/notification-i18n-loader.js!./en.json')\n}\n\nexport default messages\n"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","matchHtmlRegExp","module","exports","string","escape","str","match","exec","html","index","lastIndex","length","charCodeAt","substring","f","define","amd","window","global","self","this","localforage","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","_dereq_","scheduleDrain","draining","Mutation","MutationObserver","WebKitMutationObserver","called","observer","nextTick","element","document","createTextNode","observe","characterData","data","setImmediate","MessageChannel","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","setTimeout","channel","port1","onmessage","port2","postMessage","queue","oldQueue","len","task","push","immediate","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","Promise","resolver","TypeError","state","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","value","returnValue","reject","resolve","getThen","obj","then","apply","arguments","thenable","onError","onSuccess","result","tryCatch","status","out","prototype","constructor","error","reason","all","iterable","Object","toString","values","Array","resolved","allResolver","outValue","race","response","_typeof","Symbol","iterator","idb","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","getIDB","createBlob","parts","properties","Blob","name","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","append","getBlob","type","Promise$1","executeCallback","callback","executeTwoCallbacks","errorCallback","normalizeKey","key","console","warn","String","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","pop","_rejectReadiness","err","_getConnection","upgradeNeeded","forages","db","close","dbArgs","version","openreq","open","onupgradeneeded","createObjectStore","storeName","oldVersion","ex","newVersion","onerror","preventDefault","onsuccess","onversionchange","target","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","contains","isDowngrade","isUpgrade","incVersion","_decodeBlob","encodedBlob","bin","buf","ArrayBuffer","arr","Uint8Array","_binStringToArrayBuffer","atob","_isEncodedBlob","__local_forage_encoded_blob","_fullyReady","_initReady","_dbInfo","createTransaction","mode","retries","undefined","tx","transaction","forage","_tryReconnect","asyncStorage","_driver","_initStorage","options","ready","initPromises","ignoreErrors","j","slice","_defaultConfig","k","_support","isSafari","openDatabase","test","navigator","userAgent","platform","hasFetch","fetch","indexOf","IDBKeyRange","isIndexedDBValid","iterate","req","objectStore","openCursor","iterationNumber","cursor","getItem","get","setItem","txn","blob","put","onabort","stopPropagation","oncomplete","matchedChrome","matchedEdge","parseInt","_checkBlobSupportWithoutCaching","_checkBlobSupport","blobSupport","reader","FileReader","onloadend","base64","btoa","readAsBinaryString","store","removeItem","clear","count","advanced","openKeyCursor","advance","keys","dropInstance","currentConfig","config","isCurrentDb","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","BASE_CHARS","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","p","buffer","bytes","bufferToString","base64String","localforageSerializer","serialize","valueType","marker","fileReader","onload","readAsArrayBuffer","JSON","stringify","deserialize","parse","blobType","matcher","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","createDbTable","executeSql","tryExecuteSql","sqlStatement","args","SYNTAX_ERR","results","rows","_setItem","retriesLeft","originalValue","serializer","sqlError","QUOTA_ERR","getAllStoreNames","storeNames","item","webSQLStorage","dbInfoPromise","description","size","c","operationInfo","dropTable","operations","_getKeyPrefix","defaultConfig","keyPrefix","localStorageWrapper","localStorageTestKey","localStorage","checkIfLocalStorageThrows","isLocalStorageValid","keyPrefixLength","itemKey","includes","array","searchElement","x","y","isNaN","isArray","arg","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","concat","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","extend","_key","hasOwnProperty","LocalForage","driverTypeKey","instance","Constructor","_classCallCheck","driverName","defineDriver","_config","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","replace","driverObject","complianceError","driverMethods","driverMethodName","methodNotImplementedFactory","methodName","_i","_len","optionalDriverMethod","configureMissingMethods","setDriverSupport","support","info","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","oldDriverSetDone","currentDriverIndex","driverPromiseLoop","initDriver","supports","libraryMethodsAndProperties","createInstance","localforage_js","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","entry","set","has","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Set","setCacheAdd","setCacheHas","SetCache","__data__","add","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","WeakMap","thisArg","predicate","resIndex","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","offset","eq","baseForOwn","baseEach","createBaseEach","collection","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","object","castPath","toKey","path","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","other","bitmask","customizer","stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","source","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","reIsNative","RegExp","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","property","isPrototype","nativeKeys","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","overRest","setToString","start","constant","defineProperty","baseSetToString","comparer","sort","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","props","cache","stringToPath","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","coreJsData","eachFunc","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolValueOf","valueOf","tag","byteLength","byteOffset","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","g","baseGetAllKeys","getSymbols","isKeyable","map","baseIsNative","getValue","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasFunc","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","splice","getMapData","forEach","memoize","overArg","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","transform","nativeMax","Math","max","otherArgs","freeSelf","root","shortOut","nativeNow","Date","now","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","reWhitespace","charAt","baseFilter","defaultValue","baseHasIn","hasPath","baseIndexOf","isString","toInteger","guard","baseIsArguments","stubFalse","Buffer","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","memoized","Cache","baseProperty","basePropertyDeep","baseOrderBy","baseRest","isIterateeCall","sortBy","toNumber","toFinite","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseValues","qs","url","xtend","PARSE_LINK_HEADER_MAXLEN","PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED","hasRel","rel","intoRels","acc","split","createObjects","m","parseLink","link","linkUrl","parsedUrl","qry","query","shift","reduce","linkHeader","checkHeader","filter","maxInt","base","regexPunycode","regexNonASCII","regexSeparators","errors","floor","stringFromCharCode","fromCharCode","RangeError","mapDomain","fn","encoded","join","ucs2decode","output","counter","extra","ucs2encode","fromCodePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","decode","input","inputLength","bias","basic","lastIndexOf","oldi","w","codePoint","baseMinusT","encode","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","toUnicode","toLowerCase","toASCII","prop","sep","regexp","maxKeys","kstr","vstr","v","idx","substr","decodeURIComponent","stringifyPrimitive","isFinite","ks","encodeURIComponent","punycode","util","Url","protocol","slashes","auth","host","port","hostname","hash","search","pathname","href","urlParse","relative","resolveObject","format","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","rest","trim","simplePath","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","unshift","h","ae","esc","qm","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","isAbsolute","_regeneratorRuntime","__esModule","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","doneResult","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","val","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","getter","d","definition","nmd","paths","children","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_defineProperty","hint","prim","toPrimitive","res","statusNotifications","isStatusNotification","prepareNotificationObject","notification","i18n","i18nString","notifObj","title","from_profile","icon","profile_image_url","body","emoji","text","attachments","nsfw","mimetype","startsWith","image","domain","parseUser","masto","mastoShort","inLists","_original","screen_name","acct","fqn","statusnet_profile_url","emojis","display_name","name_html","name_unescaped","note","description_html","fields","fields_html","field","fields_text","unescape","avatar","profile_image_url_original","cover_photo","header","friends_count","following_count","bot","pleroma","settings_store","storage","relationship","background_image","favicon","token","chat_token","allow_following_move","hide_follows","hide_followers","hide_follows_count","hide_followers_count","rights","moderator","is_moderator","admin","is_admin","role","birthday","privileges","default_scope","privacy","no_rich_text","show_role","discoverable","show_birthday","is_local","delete_others_notice","muting","muted","blocking","statusnet_blocking","followed_by","follows_you","following","created_at","locked","followers_count","statuses_count","follow_request_count","tags","deactivated","is_active","notification_settings","unread_chat_count","screen_name_ui","unicodeDomain","screen_name_ui_contains_non_ascii","parseAttachment","mime_type","meta","large_thumb_url","preview_url","parseStatus","favorited","favourited","fave_num","favourites_count","repeated","reblogged","repeat_num","reblogs_count","bookmarked","reblog","sensitive","raw_html","content","edited_at","summary","spoiler_text","statusnet_conversation_id","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","thread_muted","emoji_reactions","parent_visible","in_reply_to_status_id","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","retweeted_status","summary_raw_html","external_url","poll","title_html","pinned","is_post_verb","uri","qvitter_delete_notice","activity_type","isNsfw","statusnet_html","summary_html","visibility","card","user","account","attentions","mentions","media_attachments","retweetedStatus","favoritedBy","rebloggedBy","assign","originalStatus","parseNotification","parsedNotice","notice","ntype","Boolean","is_seen","favorited_status","action","favourite","report","actor","statuses","inBrowser","hasSymbol","isNumber","isRegExp","toTypeString","isEmptyObject","isPlainObject","msg","_globalThis","escapeHtml","rawText","createCompileError","messages","SyntaxError","location","pathStateMachine","literalValueRE","getPathCharType","ch","resolveWithKeyValue","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","abs","min","devtools","translateDevTools","createDevToolsHook","hook","payloads","emit","fallbackWithSimple","fallback","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","__localeChainCache","chain","block","appendBlockToChain","defaults","blocks","follow","locale","appendLocaleToChain","tokens","appendItemToChain","toLocaleUpperCase","_resolver","_fallbacker","_additionalMeta","setAdditionalMeta","_fallbackContext","setFallbackContext","_cid","handleMissing","missingWarn","missing","onWarn","ret","updateFallbackLocale","localeFallbacker","inc","CoreErrorCodes","INVALID_ARGUMENT","INVALID_DATE_ARGUMENT","INVALID_ISO_DATE_ARGUMENT","__EXTEND_POINT__","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","fallbackFormat","postTranslation","unresolving","messageCompiler","fallbackLocale","parseTranslateArgs","escapeParameter","fallbackWarn","resolvedMessage","defaultMsgOrKey","default","enableDefaultMsg","named","escapeParams","formatScope","targetLocale","resolveMessageFormat","cacheBaseKey","occurred","compileMessageFormat","ctxOptions","modifiers","pluralRules","messageResolver","resolveValue","fallbackContext","processor","plural","pluralIndex","getMessageContextOptions","messaged","msgCtx","evaluateMessage","getPluralIndex","pluralRule","orgPluralRule","_named","parent","normalizeNamed","arg1","arg2","modifier","createMessageContext","__INTLIFY_PROD_DEVTOOLS__","timestamp","__meta","locales","from","to","missingRet","errorDetector","warnHtmlMessage","onCacheKey","friendlyJSONstringify","json","generateFormatCacheKey","getCompileOptions","arg3","intlDefined","Intl","datetime","datetimeFormats","__datetimeFormatters","overrides","parseDateTimeArgs","DateTimeFormat","datetimeFormat","formatter","formatToParts","NumberFormat","DATETIME_FORMAT_OPTIONS_KEYS","arg4","matches","dateTime","toISOString","getTime","clearDateTimeFormat","delete","numberFormats","__numberFormatters","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","expectsLowerCase","normalizeStyle","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","tmp","normalizeClass","onRE","isMap","isIntegerKey","cacheStringFunction","camelizeRE","hyphenateRE","_","toUpperCase","oldValue","is","activeEffectScope","EffectScope","detached","active","effects","cleanups","scopes","run","currentEffectScope","on","off","fromParent","createDep","dep","wasTracked","trackOpBit","newTracked","targetMap","activeEffect","effectTrackDepth","ITERATE_KEY","MAP_KEY_ITERATE_KEY","scheduler","scope","deps","effect","recordEffectScope","lastShouldTrack","shouldTrack","initDepMarkers","cleanupEffect","ptr","finalizeDepMarkers","deferStop","onStop","trackStack","track","depsMap","trackEffects","debuggerEventExtraInfo","newValue","oldTarget","newLength","parseFloat","triggerEffects","computed","triggerEffect","allowRecurse","isNonTrackableKeys","builtInSymbols","getOwnPropertyNames","createGetter","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","readonly","reactive","createSetter","isShallow","hadKey","Number","mutableHandlers","deleteProperty","ownKeys","readonlyHandlers","toShallow","get$1","rawTarget","rawKey","toReadonly","toReactive","has$1","set$1","deleteEntry","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","rawType","targetTypeMap","proxy","Proxy","isProxy","raw","markRaw","def","trackRefValue","ref","triggerRefValue","newVal","__v_isRef","createRef","rawValue","RefImpl","__v_isShallow","_rawValue","_value","useDirectValue","shallowUnwrapHandlers","unref","_a","ComputedRefImpl","_setter","isSSR","_dirty","_cacheable","callWithErrorHandling","handleError","callWithAsyncErrorHandling","catch","throwInDev","vnode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","contextVNode","logError","isFlushing","isFlushPending","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","bind","queueJob","job","end","middle","getId","findInsertionIndex","queueFlush","flushJobs","Infinity","comparator","b","diff","pre","deduped","flushPostFlushCbs","currentRenderingInstance","inject","treatDefaultAsFactory","currentInstance","provides","INITIAL_WATCHER_VALUE","watch","cb","doWatch","deep","flush","onTrack","onTrigger","cleanup","forceTrigger","isMultiSource","some","traverse","isUnmounted","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","useSSRContext","__watcherHandles","fill","queuePostRenderEffect","suspense","unwatch","el","instanceWatch","publicThis","segments","createPathGetter","handler","setCurrentInstance","unsetCurrentInstance","createHook","lifecycle","prepend","hooks","wrappedHook","__weh","injectHook","onBeforeMount","onMounted","onUnmounted","NULL_DYNAMIC_COMPONENT","getPublicInstance","shapeFlag","exposed","exposeProxy","objectWithRefs","publicPropertiesMap","getExposeProxy","$","$el","$data","$props","$attrs","attrs","$slots","slots","$refs","refs","$parent","$root","$emit","$options","mixins","extends","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","cached","mergeOptions","resolveMergedOptions","$forceUpdate","update","$nextTick","$watch","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","emits","methods","beforeCreate","mergeAsArray","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","errorCaptured","serverPrefetch","components","directives","merged","provide","normalizeInject","pendingBranch","Fragment","Text","Comment","isVNode","__v_isVNode","InternalObjectKey","normalizeRef","ref_key","ref_for","createVNode","patchFlag","dynamicProps","isBlockNode","cloned","cloneVNode","normalizeChildren","__vccOpts","guardReactiveProps","class","klass","style","needFullChildrenNormalization","__v_skip","scopeId","slotScopeIds","component","ssContent","ssFallback","dirs","transition","anchor","targetAnchor","staticCount","dynamicChildren","createBaseVNode","__isSuspense","isSuspense","__isTeleport","isTeleport","extraProps","mergeRef","mergedProps","toMerge","existing","incoming","mergeProps","createTextVNode","slot","_c","_d","slotFlag","_ctx","getCurrentInstance","getterOrOptions","debugOptions","setter","onlyGetter","propsOrChildren","ssrContextKey","code$1","inc$1","I18nErrorCodes","UNEXPECTED_RETURN_TYPE","MUST_BE_CALL_SETUP_TOP","NOT_INSLALLED","NOT_AVAILABLE_IN_LEGACY_MODE","REQUIRED_VALUE","INVALID_VALUE","CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN","NOT_INSLALLED_WITH_PROVIDE","UNEXPECTED_ERROR","NOT_COMPATIBLE_LEGACY_VUE_I18N","BRIDGE_SUPPORT_VUE_2_ONLY","MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION","NOT_AVAILABLE_COMPOSITION_IN_LEGACY","createI18nError","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOption","handleFlatJson","subKeys","currentObj","getLocaleMessages","__i18n","flatJson","custom","resource","deepCopy","isNotObjectOrIsArray","src","des","getComponentOptions","adjustI18nResources","componentOptions","__i18nGlobal","mergeLocaleMessage","mergeDateTimeFormat","mergeNumberFormat","DEVTOOLS_META","composerID","defineCoreMissingHandler","createComposer","VueI18nLegacy","__root","_isGlobal","_inheritLocale","inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_context","_pluralRules","framework","upper","lower","capitalize","_compiler","internalOptions","cid","initI18nDevTools","createCoreContext","getCoreContext","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","getMetaInfo","getLocaleMessage","composer","availableLocales","isGlobal","setLocaleMessage","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","rules","rt","te","tm","targetLocaleMessages","messageValue","resolveMessages","getDateTimeFormat","setDateTimeFormat","getNumberFormat","setNumberFormat","__injectWithOption","createVueI18n","silentTranslationWarn","silentFallbackWarn","formatFallbackMessages","pluralizationRules","warnHtmlInMessage","escapeParameterHtml","sync","sharedMessages","convertComposerOptions","vueI18n","preserveDirectiveContent","__composer","tc","getChoiceIndex","__onComponentInstanceCreated","componentInstanceCreatedListener","baseFormatProps","validator","getFragmentableTag","Translation","keypath","required","setup","useI18n","useScope","__useComponent","current","getInterpolateArg","assignedAttrs","renderFormatter","slotKeys","partFormatter","node","DatetimeFormat","parseValue","makeParams","mergeToRoot","I18nInjectionKey","isCE","app","__VUE_I18N_SYMBOL__","getI18nInstance","getGlobalComposer","getScope","__VUE_I18N_LEGACY_API__","allowComposition","isLocale","_composer","warpWithDeps","wrapper","$i18n","useI18nForLegacy","useComponent","i18nInternal","__getInstance","getComposer","composerOptions","__deleteInstance","setupLifeCycle","__setInstance","globalExportProps","globalExportMethods","hit","newChar","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","trimmed","exp","stripQuotes","formatSubPath","needWarn","__VUE_I18N_FULL_INSTALL__","__INTLIFY__","__INTLIFY_DEVTOOLS_GLOBAL_HOOK__","__legacyMode","legacy","__globalInjection","globalInjection","__allowComposition","__instances","globalScope","__global","legacyMode","createGlobal","getOwnPropertyDescriptor","globalProperties","injectGlobalFields","pluginOptions","useI18nComponentName","globalInstall","directive","_process","getComposer$2","parsedValue","textContent","__i18nWatcher","getSSRProps","vTDirective","mixin","vuei18n","optionsI18n","$t","$rt","$tc","$te","$d","$n","$tm","defineMixin","unmountApp","unmount","dispose","createI18n","ar","ca","cs","de","eo","es","et","eu","fi","fr","ga","he","hu","it","ja","ja_easy","ko","nb","nl","oc","pl","pt","ro","ru","sk","zh","en","getWindowClients","clients","matchAll","includeUncontrolled","clientList","setLocale","localForage","interfaceLanguage","maybeShowNotification","event","webPushNotifications","enabled","activeClients","registration","notification_id","headers","Authorization","access_token","notificationJson","parsedNotification","showNotification","addEventListener","waitUntil","client","focus","openWindow"],"sourceRoot":""} \ No newline at end of file
diff --git a/test/fixtures/image_with_imagedescription_and_caption-abstract_and_stray_data_after.png b/test/fixtures/image_with_imagedescription_and_caption-abstract_and_stray_data_after.png
new file mode 100644
index 000000000..7ce8640fa
--- /dev/null
+++ b/test/fixtures/image_with_imagedescription_and_caption-abstract_and_stray_data_after.png
Binary files differ
diff --git a/test/fixtures/image_with_stray_data_after.png b/test/fixtures/image_with_stray_data_after.png
new file mode 100755
index 000000000..a280e4377
--- /dev/null
+++ b/test/fixtures/image_with_stray_data_after.png
Binary files differ
diff --git a/test/pleroma/notification_test.exs b/test/pleroma/notification_test.exs
index 255097ed0..e55aa3a08 100644
--- a/test/pleroma/notification_test.exs
+++ b/test/pleroma/notification_test.exs
@@ -334,6 +334,32 @@ defmodule Pleroma.NotificationTest do
refute Notification.create_notification(activity, followed)
end
+ test "it disables notifications from non-followees" do
+ follower = insert(:user)
+
+ followed =
+ insert(:user,
+ notification_settings: %Pleroma.User.NotificationSetting{block_from_strangers: true}
+ )
+
+ CommonAPI.follow(follower, followed)
+ {:ok, activity} = CommonAPI.post(follower, %{status: "hey @#{followed.nickname}"})
+ refute Notification.create_notification(activity, followed)
+ end
+
+ test "it allows notifications from followees" do
+ poster = insert(:user)
+
+ receiver =
+ insert(:user,
+ notification_settings: %Pleroma.User.NotificationSetting{block_from_strangers: true}
+ )
+
+ CommonAPI.follow(receiver, poster)
+ {:ok, activity} = CommonAPI.post(poster, %{status: "hey @#{receiver.nickname}"})
+ assert Notification.create_notification(activity, receiver)
+ end
+
test "it doesn't create a notification for user if he is the activity author" do
activity = insert(:note_activity)
author = User.get_cached_by_ap_id(activity.data["actor"])
@@ -1225,5 +1251,32 @@ defmodule Pleroma.NotificationTest do
assert length(Notification.for_user(user)) == 1
end
+
+ test "it returns notifications when related object is without content and filters are defined",
+ %{user: user} do
+ followed_user = insert(:user, is_locked: true)
+
+ insert(:filter, user: followed_user, phrase: "test", hide: true)
+
+ {:ok, _, _, _activity} = CommonAPI.follow(user, followed_user)
+ refute FollowingRelationship.following?(user, followed_user)
+ assert [notification] = Notification.for_user(followed_user)
+
+ assert %{type: "follow_request"} =
+ NotificationView.render("show.json", %{
+ notification: notification,
+ for: followed_user
+ })
+
+ assert {:ok, _} = CommonAPI.accept_follow_request(user, followed_user)
+
+ assert [notification] = Notification.for_user(followed_user)
+
+ assert %{type: "follow"} =
+ NotificationView.render("show.json", %{
+ notification: notification,
+ for: followed_user
+ })
+ end
end
end
diff --git a/test/pleroma/upload/filter/exiftool/read_description_test.exs b/test/pleroma/upload/filter/exiftool/read_description_test.exs
index 7389fda47..7cc83969d 100644
--- a/test/pleroma/upload/filter/exiftool/read_description_test.exs
+++ b/test/pleroma/upload/filter/exiftool/read_description_test.exs
@@ -42,6 +42,33 @@ defmodule Pleroma.Upload.Filter.Exiftool.ReadDescriptionTest do
{:ok, :filtered, uploads_after}
end
+ test "Ignores warnings" do
+ uploads = %Pleroma.Upload{
+ name: "image_with_imagedescription_and_caption-abstract_and_stray_data_after.png",
+ content_type: "image/png",
+ path:
+ Path.absname(
+ "test/fixtures/image_with_imagedescription_and_caption-abstract_and_stray_data_after.png"
+ ),
+ tempfile:
+ Path.absname(
+ "test/fixtures/image_with_imagedescription_and_caption-abstract_and_stray_data_after.png"
+ )
+ }
+
+ assert {:ok, :filtered, %{description: "a descriptive white pixel"}} =
+ Filter.Exiftool.ReadDescription.filter(uploads)
+
+ uploads = %Pleroma.Upload{
+ name: "image_with_stray_data_after.png",
+ content_type: "image/png",
+ path: Path.absname("test/fixtures/image_with_stray_data_after.png"),
+ tempfile: Path.absname("test/fixtures/image_with_stray_data_after.png")
+ }
+
+ assert {:ok, :filtered, %{description: nil}} = Filter.Exiftool.ReadDescription.filter(uploads)
+ end
+
test "otherwise returns iptc:Caption-Abstract when present" do
upload = %Pleroma.Upload{
name: "image_with_caption-abstract.jpg",
diff --git a/test/pleroma/upload/filter/exiftool/strip_location_test.exs b/test/pleroma/upload/filter/exiftool/strip_location_test.exs
index 7e1541f60..bcb5f3f60 100644
--- a/test/pleroma/upload/filter/exiftool/strip_location_test.exs
+++ b/test/pleroma/upload/filter/exiftool/strip_location_test.exs
@@ -31,12 +31,19 @@ defmodule Pleroma.Upload.Filter.Exiftool.StripLocationTest do
refute String.match?(exif_filtered, ~r/GPS/)
end
- test "verify webp files are skipped" do
- upload = %Pleroma.Upload{
- name: "sample.webp",
- content_type: "image/webp"
- }
-
- assert Filter.Exiftool.StripLocation.filter(upload) == {:ok, :noop}
+ test "verify webp, heic, svg files are skipped" do
+ uploads =
+ ~w{webp heic svg svg+xml}
+ |> Enum.map(fn type ->
+ %Pleroma.Upload{
+ name: "sample.#{type}",
+ content_type: "image/#{type}"
+ }
+ end)
+
+ uploads
+ |> Enum.each(fn upload ->
+ assert Filter.Exiftool.StripLocation.filter(upload) == {:ok, :noop}
+ end)
end
end
diff --git a/test/pleroma/web/activity_pub/activity_pub_test.exs b/test/pleroma/web/activity_pub/activity_pub_test.exs
index fc6fc039d..a6f8b6152 100644
--- a/test/pleroma/web/activity_pub/activity_pub_test.exs
+++ b/test/pleroma/web/activity_pub/activity_pub_test.exs
@@ -1342,6 +1342,14 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
%{test_file: test_file}
end
+ test "strips / from filename", %{test_file: file} do
+ file = %Plug.Upload{file | filename: "../../../../../nested/bad.jpg"}
+ {:ok, %Object{} = object} = ActivityPub.upload(file)
+ [%{"href" => href}] = object.data["url"]
+ assert Regex.match?(~r"/bad.jpg$", href)
+ refute Regex.match?(~r"/nested/", href)
+ end
+
test "sets a description if given", %{test_file: file} do
{:ok, %Object{} = object} = ActivityPub.upload(file, description: "a cool file")
assert object.data["name"] == "a cool file"
diff --git a/test/pleroma/web/admin_api/controllers/report_controller_test.exs b/test/pleroma/web/admin_api/controllers/report_controller_test.exs
index aee26d80a..c141cf69d 100644
--- a/test/pleroma/web/admin_api/controllers/report_controller_test.exs
+++ b/test/pleroma/web/admin_api/controllers/report_controller_test.exs
@@ -366,6 +366,34 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
|> json_response_and_validate_schema(:ok)
end
+ test "renders content correctly", %{conn: conn} do
+ [reporter, target_user] = insert_pair(:user)
+ note = insert(:note, user: target_user, data: %{"content" => "mew 1"})
+ note2 = insert(:note, user: target_user, data: %{"content" => "mew 2"})
+ activity = insert(:note_activity, user: target_user, note: note)
+ activity2 = insert(:note_activity, user: target_user, note: note2)
+
+ {:ok, _report} =
+ CommonAPI.report(reporter, %{
+ account_id: target_user.id,
+ comment: "I feel offended",
+ status_ids: [activity.id, activity2.id]
+ })
+
+ CommonAPI.delete(activity.id, target_user)
+ CommonAPI.delete(activity2.id, target_user)
+
+ response =
+ conn
+ |> get(report_path(conn, :index))
+ |> json_response_and_validate_schema(:ok)
+
+ assert [open_report] = response["reports"]
+ assert %{"statuses" => [s1, s2]} = open_report
+ assert "mew 1" in [s1["content"], s2["content"]]
+ assert "mew 2" in [s1["content"], s2["content"]]
+ end
+
test "returns 403 when requested by a non-admin" do
user = insert(:user)
token = insert(:oauth_token, user: user)
diff --git a/test/pleroma/web/common_api/utils_test.exs b/test/pleroma/web/common_api/utils_test.exs
index b538c5979..d309c6ded 100644
--- a/test/pleroma/web/common_api/utils_test.exs
+++ b/test/pleroma/web/common_api/utils_test.exs
@@ -178,6 +178,10 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do
code = "https://github.com/pragdave/earmark/"
{result, [], []} = Utils.format_input(code, "text/markdown")
assert result == ~s[<p><a href="#{code}">#{code}</a></p>]
+
+ code = "https://github.com/~foo/bar"
+ {result, [], []} = Utils.format_input(code, "text/markdown")
+ assert result == ~s[<p><a href="#{code}">#{code}</a></p>]
end
test "link with local mention" do
diff --git a/test/pleroma/web/common_api_test.exs b/test/pleroma/web/common_api_test.exs
index 44355c26d..5c9103e9f 100644
--- a/test/pleroma/web/common_api_test.exs
+++ b/test/pleroma/web/common_api_test.exs
@@ -518,6 +518,25 @@ defmodule Pleroma.Web.CommonAPITest do
assert Object.tags(object) == ["2hu"]
end
+ test "zwnj is treated as word character" do
+ user = insert(:user)
+ {:ok, activity} = CommonAPI.post(user, %{status: "#ساٴين‌س"})
+
+ object = Object.normalize(activity, fetch: false)
+
+ assert Object.tags(object) == ["ساٴين‌س"]
+ end
+
+ test "double dot in link is allowed" do
+ user = insert(:user)
+ text = "https://example.to/something..mp3"
+ {:ok, activity} = CommonAPI.post(user, %{status: text})
+
+ object = Object.normalize(activity, fetch: false)
+
+ assert object.data["content"] == "<a href=\"#{text}\" rel=\"ugc\">#{text}</a>"
+ end
+
test "it adds emoji in the object" do
user = insert(:user)
{:ok, activity} = CommonAPI.post(user, %{status: ":firefox:"})
diff --git a/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs
index 13e3ffc0a..a556ef6a8 100644
--- a/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs
+++ b/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs
@@ -92,4 +92,18 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do
assert ["peer1.com", "peer2.com"] == Enum.sort(result)
end
+
+ test "instance languages", %{conn: conn} do
+ assert %{"languages" => ["en"]} =
+ conn
+ |> get("/api/v1/instance")
+ |> json_response_and_validate_schema(200)
+
+ clear_config([:instance, :languages], ["aa", "bb"])
+
+ assert %{"languages" => ["aa", "bb"]} =
+ conn
+ |> get("/api/v1/instance")
+ |> json_response_and_validate_schema(200)
+ end
end
diff --git a/test/pleroma/web/mastodon_api/controllers/media_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/media_controller_test.exs
index 79d52bb2f..750296230 100644
--- a/test/pleroma/web/mastodon_api/controllers/media_controller_test.exs
+++ b/test/pleroma/web/mastodon_api/controllers/media_controller_test.exs
@@ -122,6 +122,23 @@ defmodule Pleroma.Web.MastodonAPI.MediaControllerTest do
assert :ok == File.rm(Path.absname("test/tmp/large_binary.data"))
end
+
+ test "Do not allow nested filename", %{conn: conn, image: image} do
+ image = %Plug.Upload{
+ image
+ | filename: "../../../../../nested/file.jpg"
+ }
+
+ desc = "Description of the image"
+
+ media =
+ conn
+ |> put_req_header("content-type", "multipart/form-data")
+ |> post("/api/v1/media", %{"file" => image, "description" => desc})
+ |> json_response_and_validate_schema(:ok)
+
+ refute Regex.match?(~r"/nested/", media["url"])
+ end
end
describe "Update media description" do
diff --git a/test/pleroma/web/mastodon_api/update_credentials_test.exs b/test/pleroma/web/mastodon_api/update_credentials_test.exs
index d5fac7e25..57fa0f047 100644
--- a/test/pleroma/web/mastodon_api/update_credentials_test.exs
+++ b/test/pleroma/web/mastodon_api/update_credentials_test.exs
@@ -383,6 +383,34 @@ defmodule Pleroma.Web.MastodonAPI.UpdateCredentialsTest do
assert :ok == File.rm(Path.absname("test/tmp/large_binary.data"))
end
+ test "Strip / from upload files", %{user: user, conn: conn} do
+ new_image = %Plug.Upload{
+ content_type: "image/jpeg",
+ path: Path.absname("test/fixtures/image.jpg"),
+ filename: "../../../../nested/an_image.jpg"
+ }
+
+ assert user.avatar == %{}
+
+ res =
+ patch(conn, "/api/v1/accounts/update_credentials", %{
+ "avatar" => new_image,
+ "header" => new_image,
+ "pleroma_background_image" => new_image
+ })
+
+ assert user_response = json_response_and_validate_schema(res, 200)
+ assert user_response["avatar"]
+ assert user_response["header"]
+ assert user_response["pleroma"]["background_image"]
+ refute Regex.match?(~r"/nested/", user_response["avatar"])
+ refute Regex.match?(~r"/nested/", user_response["header"])
+ refute Regex.match?(~r"/nested/", user_response["pleroma"]["background_image"])
+
+ user = User.get_by_id(user.id)
+ refute user.avatar == %{}
+ end
+
test "requires 'write:accounts' permission" do
token1 = insert(:oauth_token, scopes: ["read"])
token2 = insert(:oauth_token, scopes: ["write", "follow"])